From 2b96bea61aab5dc2d64173af2406e663df0f40f6 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Thu, 30 Jan 2025 13:40:41 -0600 Subject: [PATCH 01/35] fix: improve error upon component not found and remove unnecessary async --- screenpipe-js/cli/dist/index.js | 91 +++++++++---------- .../commands/components/commands/add/add.ts | 3 +- .../commands/add/preflights/preflight-add.ts | 3 +- .../components/commands/add/registry/api.ts | 90 ++++++++---------- .../commands/add/utils/add-components.ts | 2 +- 5 files changed, 84 insertions(+), 105 deletions(-) diff --git a/screenpipe-js/cli/dist/index.js b/screenpipe-js/cli/dist/index.js index ea23943ce..664d915a3 100755 --- a/screenpipe-js/cli/dist/index.js +++ b/screenpipe-js/cli/dist/index.js @@ -72167,7 +72167,7 @@ var registry_default = { // src/commands/components/commands/add/registry/api.ts var import_deepmerge = __toESM(require_cjs2(), 1); -async function getRegistry() { +function getRegistry() { try { const parsedRegistry = registrySchema.parse(registry_default); return parsedRegistry; @@ -72177,13 +72177,13 @@ async function getRegistry() { handleError(error); } } -async function resolveRegistryItems(names) { +function resolveRegistryItems(names) { let registryDependencies = {}; - const registry = await getRegistry(); + const registry = getRegistry(); if (!registry) return; for (const name of names) { - const itemRegistryDependencies = await resolveRegistryDependencies(name, registry); + const itemRegistryDependencies = resolveRegistryDependencies(name, registry); registryDependencies = { ...registryDependencies, ...itemRegistryDependencies @@ -72191,57 +72191,48 @@ async function resolveRegistryItems(names) { } return registryDependencies; } -async function resolveRegistryDependencies(name, registry) { +function resolveRegistryDependencies(name, registry) { const components = {}; - async function resolveDependencies(componentName) { - try { - if (registry[componentName]) { - components[componentName] = registry[componentName]; - } else { - throw Error(componentName); - } - if (registry[componentName].registryDependencies) { - for (const dependency of registry[componentName].registryDependencies) { - await resolveDependencies(dependency); - } + function resolveDependencies(componentName) { + if (registry[componentName]) { + components[componentName] = registry[componentName]; + } else { + handleError(`Component ${componentName} not found.`); + } + if (registry[componentName].registryDependencies) { + for (const dependency of registry[componentName].registryDependencies) { + resolveDependencies(dependency); } - } catch (error) { - console.error(`Component ${error.message} not found.`, error); } } - await resolveDependencies(name); + resolveDependencies(name); return components; } -async function registryResolveItemsTree(names) { - try { - let relevantItemsRegistry = await resolveRegistryItems(names); - const payload = registrySchema.parse(relevantItemsRegistry); - if (!payload) { - return null; - } - const componentArray = Object.values(payload); - let docs = ""; - componentArray.forEach((item) => { - if (item.docs) { - docs += `${item.docs} -`; - } - }); - return registryResolvedComponentsTreeSchema.parse({ - dependencies: import_deepmerge.default.all(componentArray.map((item) => item.dependencies ?? [])), - devDependencies: import_deepmerge.default.all(componentArray.map((item) => item.devDependencies ?? [])), - files: componentArray.map((item) => { - return { - src: item.src, - target: item.target - }; - }), - docs - }); - } catch (error) { - handleError(error); +function registryResolveItemsTree(names) { + let relevantItemsRegistry = resolveRegistryItems(names); + const payload = registrySchema.parse(relevantItemsRegistry); + if (!payload) { return null; } + const componentArray = Object.values(payload); + let docs = ""; + componentArray.forEach((item) => { + if (item.docs) { + docs += `${item.docs} +`; + } + }); + return registryResolvedComponentsTreeSchema.parse({ + dependencies: import_deepmerge.default.all(componentArray.map((item) => item.dependencies ?? [])), + devDependencies: import_deepmerge.default.all(componentArray.map((item) => item.devDependencies ?? [])), + files: componentArray.map((item) => { + return { + src: item.src, + target: item.target + }; + }), + docs + }); } // src/commands/components/commands/add/utils/prompt-for-component.ts @@ -72283,7 +72274,7 @@ async function promptForRegistryComponents(all) { // src/commands/components/commands/add/preflights/preflight-add.ts import fs5 from "fs"; import path4 from "path"; -async function preFlightAdd(cwd) { +function preFlightAdd(cwd) { const errors12 = {}; if (!fs5.existsSync(cwd) || !fs5.existsSync(path4.resolve(cwd, "package.json"))) { errors12[ERRORS.MISSING_DIR_OR_EMPTY_PIPE] = true; @@ -78941,7 +78932,7 @@ async function addComponents(components, options) { const registrySpinner = spinner(`Checking registry.`, { silent: options.silent })?.start(); - const tree = await registryResolveItemsTree(components); + const tree = registryResolveItemsTree(components); if (!tree) { registrySpinner?.fail(); return handleError(new Error("Failed to fetch components from registry.")); @@ -78980,7 +78971,7 @@ var addComponentCommand = command({ } else { components = [opts.components]; } - const result = await preFlightAdd(opts.cwd); + const result = preFlightAdd(opts.cwd); if (result?.errors[ERRORS.MISSING_DIR_OR_EMPTY_PIPE]) { logger.warn("you need to create a pipe first. run bunx @screenpipe/create-pipe@latest or visit https://docs.screenpi.pe/docs/plugins for more information."); process.exit(1); diff --git a/screenpipe-js/cli/src/commands/components/commands/add/add.ts b/screenpipe-js/cli/src/commands/components/commands/add/add.ts index fdb5fd3b7..7e4b497c5 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/add.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/add.ts @@ -27,13 +27,12 @@ export const addComponentCommand = command({ } // Before addig check a few things - const result = await preFlightAdd(opts.cwd) + const result = preFlightAdd(opts.cwd) // If the current directory is not a pipe, create one if (result?.errors[ERRORS.MISSING_DIR_OR_EMPTY_PIPE]) { logger.warn('you need to create a pipe first. run bunx @screenpipe/create-pipe@latest or visit https://docs.screenpi.pe/docs/plugins for more information.') process.exit(1) - // await createPipe(options) } // Add components to the directory diff --git a/screenpipe-js/cli/src/commands/components/commands/add/preflights/preflight-add.ts b/screenpipe-js/cli/src/commands/components/commands/add/preflights/preflight-add.ts index 381bc4d69..cf93b7c6f 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/preflights/preflight-add.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/preflights/preflight-add.ts @@ -1,9 +1,8 @@ import fs from 'fs'; import path from 'path'; -import { z } from 'zod'; import { ERRORS } from '../utils/handle-error'; -export async function preFlightAdd(cwd: string) { +export function preFlightAdd(cwd: string) { const errors: Record = {} // Ensure target directory exists. diff --git a/screenpipe-js/cli/src/commands/components/commands/add/registry/api.ts b/screenpipe-js/cli/src/commands/components/commands/add/registry/api.ts index 601a380f8..61c9832b8 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/registry/api.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/registry/api.ts @@ -4,7 +4,7 @@ import { registryResolvedComponentsTreeSchema, RegistrySchema, registrySchema } import registry from "./registry.json"; import deepmerge from "deepmerge"; -export async function getRegistry() { +export function getRegistry() { try { const parsedRegistry = registrySchema.parse(registry) return parsedRegistry @@ -14,13 +14,13 @@ export async function getRegistry() { } } -async function resolveRegistryItems(names: string[]) { +function resolveRegistryItems(names: string[]) { let registryDependencies: RegistrySchema = {} - const registry = await getRegistry() + const registry = getRegistry() if(!registry) return for (const name of names) { - const itemRegistryDependencies = await resolveRegistryDependencies( + const itemRegistryDependencies = resolveRegistryDependencies( name, registry ) @@ -34,75 +34,65 @@ async function resolveRegistryItems(names: string[]) { return registryDependencies } -async function resolveRegistryDependencies( +function resolveRegistryDependencies( name: string, registry: RegistrySchema -): Promise { +): RegistrySchema { const components: RegistrySchema = {} - async function resolveDependencies(componentName: string) { - try { + function resolveDependencies(componentName: string) { if (registry[componentName]) { components[componentName] = registry[componentName] } else { - throw Error(componentName) + handleError( + `Component ${componentName} not found.`, + ) } if (registry[componentName].registryDependencies) { for (const dependency of registry[componentName].registryDependencies) { - await resolveDependencies(dependency) + resolveDependencies(dependency) } } - } catch (error: any) { - console.error( - `Component ${error.message} not found.`, - error - ) - } } - await resolveDependencies(name) + resolveDependencies(name) return components } -export async function registryResolveItemsTree( +export function registryResolveItemsTree( names: RegistrySchema['']["name"][], ) { - try { - let relevantItemsRegistry = await resolveRegistryItems(names) - const payload = registrySchema.parse(relevantItemsRegistry) + let relevantItemsRegistry = resolveRegistryItems(names) + const payload = registrySchema.parse(relevantItemsRegistry) - if (!payload) { - return null - } + if (!payload) { + return null + } - const componentArray = Object.values(payload) + const componentArray = Object.values(payload) - let docs = "" - componentArray.forEach((item) => { - if (item.docs) { - docs += `${item.docs}\n` - } - }) + let docs = "" + componentArray.forEach((item) => { + if (item.docs) { + docs += `${item.docs}\n` + } + }) - return registryResolvedComponentsTreeSchema.parse({ - dependencies: deepmerge.all( - componentArray.map((item) => item.dependencies ?? []) - ), - devDependencies: deepmerge.all( - componentArray.map((item) => item.devDependencies ?? []) - ), - files: componentArray.map((item) => { - return { - src: item.src, - target: item.target - } - }), - docs, - }) - } catch (error) { - handleError(error) - return null - } + return registryResolvedComponentsTreeSchema.parse({ + dependencies: deepmerge.all( + componentArray.map((item) => item.dependencies ?? []) + ), + devDependencies: deepmerge.all( + componentArray.map((item) => item.devDependencies ?? []) + ), + files: componentArray.map((item) => { + return { + src: item.src, + target: item.target + } + }), + docs, + }) } \ No newline at end of file diff --git a/screenpipe-js/cli/src/commands/components/commands/add/utils/add-components.ts b/screenpipe-js/cli/src/commands/components/commands/add/utils/add-components.ts index 5d47dc47e..c20f39002 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/utils/add-components.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/utils/add-components.ts @@ -16,7 +16,7 @@ export async function addComponents( silent: options.silent, })?.start() - const tree = await registryResolveItemsTree(components) + const tree = registryResolveItemsTree(components) if (!tree) { registrySpinner?.fail() From 794039b252d61b92d94077ea78245dd1e3a93298 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 08:07:08 -0600 Subject: [PATCH 02/35] fix: update colors, remove kleur in favour of chalk --- .../commands/components/commands/add/utils/logger.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/screenpipe-js/cli/src/commands/components/commands/add/utils/logger.ts b/screenpipe-js/cli/src/commands/components/commands/add/utils/logger.ts index 43de81f77..335b1a6c1 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/utils/logger.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/utils/logger.ts @@ -1,11 +1,11 @@ -import { cyan, green, red, yellow } from "kleur/colors" import ora, { type Options } from "ora" +import { colors } from "../../../../../utils/colors" export const highlighter = { - error: red, - warn: yellow, - info: cyan, - success: green, + error: colors.error, + warn: colors.warning, + info: colors.info, + success: colors.success, } export const logger = { From a9c3338b46ced441008a675c3db235d6e1163db3 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 18:47:32 -0600 Subject: [PATCH 03/35] feat(cli): migrate components commands to Commander --- .../commands/components/commands/register.ts | 168 +++++++++--------- .../cli/src/commands/components/index.ts | 16 +- screenpipe-js/cli/src/index.ts | 78 +++++--- 3 files changed, 145 insertions(+), 117 deletions(-) diff --git a/screenpipe-js/cli/src/commands/components/commands/register.ts b/screenpipe-js/cli/src/commands/components/commands/register.ts index 627eab92f..c8152f80b 100644 --- a/screenpipe-js/cli/src/commands/components/commands/register.ts +++ b/screenpipe-js/cli/src/commands/components/commands/register.ts @@ -5,6 +5,7 @@ import prompts from "prompts"; import { ComponentSchema, RegistrySchema } from "./add/registry/schema"; import { getRegistry } from "./add/registry/api"; import fs from 'fs-extra'; +import { Command } from "commander"; async function writeJsonToFile(filePath: string, data: RegistrySchema) { try { @@ -25,98 +26,101 @@ async function writeJsonToFile(filePath: string, data: RegistrySchema) { } } -export const registerComponentCommand = command({ - name: "register", - desc: "register a new component in screenpipe's component registry", - options: { - name: string().desc("name of the component"), - src: string().desc("github url for the component."), - target: string().desc("path where file should be created."), - }, - handler: async (opts) => { - try { - if (!opts.name) { - const { name } = await prompts({ - type: "text", - name: "name", - message: "what's your component's name?", - instructions: false, - }) - - opts.name = name - } - - if (!opts.src) { - const { src } = await prompts({ - type: "text", - name: "src", - message: "where should we download the component from?", - hint: "url with the following pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}. see README for more info.", - }) - - opts.src = src - } +export const registerComponentCommand = new Command() + .name("register") + .description("register a new component in screenpipe's component registry") + .option( + "-n, --name ", + "name of the component" + ).option( + "-s, --src", + "github url for the component" + ).option( + "-t, --target", + "path where file should be created" + ).action(async (opts) => { + try { + if (!opts.name) { + const { name } = await prompts({ + type: "text", + name: "name", + message: "what's your component's name?", + instructions: false, + }) - if (!opts.target) { - const { target } = await prompts({ - type: "text", - name: "target", - message: "where should the component be created?", - }) + opts.name = name + } - opts.target = target - } + if (!opts.src) { + const { src } = await prompts({ + type: "text", + name: "src", + message: "where should we download the component from?", + hint: "url with the following pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}. see README for more info.", + }) - if (!opts.name?.length || !opts.src?.length || !opts.target?.length) { - logger.break() - handleError('invalid component') - process.exit(1) - } + opts.src = src + } - const { deps } = await prompts({ - type: "list", - name: "deps", - message: "type all of the component's runtime dependencies by name, separated by a comma", - separator: ',', + if (!opts.target) { + const { target } = await prompts({ + type: "text", + name: "target", + message: "where should the component be created?", }) - const { devDeps } = await prompts({ - type: "list", - name: "devDeps", - message: "type all of the component's dev dependencies by name, separated by a comma", - separator: ',', - }) + opts.target = target + } - const { registryDeps } = await prompts({ - type: "list", - name: "registryDeps", - message: "type all of the component's registry dependencies by name, separated by a comma", - separator: ',', - }) + if (!opts.name?.length || !opts.src?.length || !opts.target?.length) { + logger.break() + handleError('invalid component') + process.exit(1) + } - const componentObject: ComponentSchema = { - name: opts.name as string, - src: opts.src as string, - target: opts.target as string, - dependencies: (deps as string[]).filter(item => item !== ""), - devDependencies: (devDeps as string[]).filter(item => item !== ""), - registryDependencies: (registryDeps as string[]).filter(item => item !== "") - } - - const currentRegistry = await getRegistry() - if (!currentRegistry) { - logger.break() - handleError('critical: build is missing registry file.') - process.exit(1) - } + const { deps } = await prompts({ + type: "list", + name: "deps", + message: "type all of the component's runtime dependencies by name, separated by a comma", + separator: ',', + }) + + const { devDeps } = await prompts({ + type: "list", + name: "devDeps", + message: "type all of the component's dev dependencies by name, separated by a comma", + separator: ',', + }) - currentRegistry[opts.name as string] = componentObject + const { registryDeps } = await prompts({ + type: "list", + name: "registryDeps", + message: "type all of the component's registry dependencies by name, separated by a comma", + separator: ',', + }) - await writeJsonToFile('./src/commands/components/commands/add/registry/registry.json', currentRegistry) - logger.log("run `bun run build` and open a PR at https://github.com/mediar-ai/screenpipe to update registry.") - } catch (error) { + const componentObject: ComponentSchema = { + name: opts.name as string, + src: opts.src as string, + target: opts.target as string, + dependencies: (deps as string[]).filter(item => item !== ""), + devDependencies: (devDeps as string[]).filter(item => item !== ""), + registryDependencies: (registryDeps as string[]).filter(item => item !== "") + } + + const currentRegistry = await getRegistry() + if (!currentRegistry) { logger.break() - handleError(error) + handleError('critical: build is missing registry file.') + process.exit(1) } - }, + + currentRegistry[opts.name as string] = componentObject + + await writeJsonToFile('./src/commands/components/commands/add/registry/registry.json', currentRegistry) + logger.log("run `bun run build` and open a PR at https://github.com/mediar-ai/screenpipe to update registry.") + } catch (error) { + logger.break() + handleError(error) + } }) \ No newline at end of file diff --git a/screenpipe-js/cli/src/commands/components/index.ts b/screenpipe-js/cli/src/commands/components/index.ts index bf262310f..826a3e1c1 100644 --- a/screenpipe-js/cli/src/commands/components/index.ts +++ b/screenpipe-js/cli/src/commands/components/index.ts @@ -1,12 +1,12 @@ import { command } from "@drizzle-team/brocli"; import { addComponentCommand } from "./commands/add/add"; import { registerComponentCommand } from "./commands/register"; +import { Command } from "commander"; -export const componentsCommands = command({ - name: "components", - desc: "commands to interact with screenpipe's components", - subcommands: [ - addComponentCommand, - registerComponentCommand - ] -}); \ No newline at end of file +export const componentsCommands = new Command() + .name("components") + .description("commands to interact with screenpipe's components") + +componentsCommands.addCommand(addComponentCommand) + +componentsCommands.addCommand(registerComponentCommand) \ No newline at end of file diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index a40adfa87..48f252ff3 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -1,27 +1,51 @@ -#!/usr/bin/env bun -import { run } from "@drizzle-team/brocli"; -import { - loginCommand, - logoutCommand, - publishCommand, - registerCommand, - listVersionsCommand, - createCommand, - componentsCommands -} from "./commands"; - -run( - [ - loginCommand, - logoutCommand, - createCommand, - componentsCommands, - registerCommand, - publishCommand, - listVersionsCommand, - ], - { - name: "screenpipe-dev", - description: "screenpipe development CLI tool", - } -); +// import { run } from "@drizzle-team/brocli"; +// import { +// // loginCommand, +// // logoutCommand, +// // publishCommand, +// // registerCommand, +// // listVersionsCommand, +// // createCommand, +// // componentsCommands +// } from "./commands"; +// import { addComponentCommand } from "./commands/components/commands/add/add"; + +import { Command } from "commander"; +import { addComponentCommand } from "./commands/components/commands/add/add"; +import { componentsCommands } from "./commands"; + +// run( +// [ +// // loginCommand, +// // logoutCommand, +// // createCommand, +// // componentsCommands, +// // registerCommand, +// // publishCommand, +// // listVersionsCommand, +// addComponentCommand +// ], +// { +// name: "screenpipe-dev", +// description: "screenpipe development CLI tool", +// } +// ); + +process.on("SIGINT", () => process.exit(0)) +process.on("SIGTERM", () => process.exit(0)) + +async function main() { + const program = new Command(); + + program + .name('screenpipe-dev') + .description('screenpipe development CLI tool') + .version('0.0.1'); + + program + .addCommand(componentsCommands) + + program.parse() +} + +main() \ No newline at end of file From f402c2d05e5087133240d97cf1940745ca946de7 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 19:02:11 -0600 Subject: [PATCH 04/35] feat(cli): migrate components commands to Commander --- .../commands/components/commands/add/add.ts | 67 +++++++++---------- .../components/commands/add/registry/api.ts | 3 +- .../commands/components/commands/register.ts | 16 ++--- .../cli/src/commands/components/index.ts | 1 - screenpipe-js/cli/src/index.ts | 1 - 5 files changed, 39 insertions(+), 49 deletions(-) diff --git a/screenpipe-js/cli/src/commands/components/commands/add/add.ts b/screenpipe-js/cli/src/commands/components/commands/add/add.ts index 188987382..d334c78b1 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/add.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/add.ts @@ -1,45 +1,42 @@ -import { boolean, command, GenericCommandHandler, OutputType, positional, string } from "@drizzle-team/brocli"; import { logger } from "./utils/logger"; import { ERRORS, handleError } from "./utils/handle-error"; import { promptForRegistryComponents } from "./utils/prompt-for-component"; import { preFlightAdd } from "./preflights/preflight-add"; import { addComponents } from "./utils/add-components"; +import { Command } from "commander"; -export const addComponentCommand = command({ - name: "add", - desc: "add components and dependencies to your pipe", - options: { - components: positional().desc("list of components by name"), - path: string().desc("the path to add the component to."), - silent: boolean().desc("mute output.").default(false), - overwrite: boolean().desc("overwrite existing files.").default(false), - cwd: string().desc("the working directory. defaults to the current directory.").default(process.cwd()) - }, - handler: async (opts) => { - try { - let components +export const addComponentCommand = new Command() + .name("add") + .description("add components and dependencies to your pipe") + .argument('[components...]', 'List of components by name') + .option('--path ', 'The path to add the component to.') + .option('--silent', 'Mute output.', false) + .option('--overwrite', 'Overwrite existing files.', false) + .option('--cwd ', 'The working directory. Defaults to the current directory.', process.cwd()) + .action(async (comps, opts) => { + try { + let components - // If there are no components, ask the user which ones they want. - if (!opts?.components?.length) { - components = await promptForRegistryComponents() - } else { - components = [opts.components] - } - - // Before addig check a few things - const result = preFlightAdd(opts.cwd) + // If there are no components, ask the user which ones they want. + if (!comps?.length) { + components = await promptForRegistryComponents() + } else { + components = [comps] + } - // If the current directory is not a pipe, create one - if (result?.errors[ERRORS.MISSING_DIR_OR_EMPTY_PIPE]) { - logger.warn('you need to create a pipe first. run bunx @screenpipe/dev create or visit https://docs.screenpi.pe/docs/plugins for more information.') - process.exit(1) - } + // Before addig check a few things + const result = preFlightAdd(opts.cwd) - // Add components to the directory - await addComponents(components, {silent: opts.silent, cwd: opts.cwd, overwrite: opts.overwrite}) - } catch (error) { - logger.break() - handleError(error) + // If the current directory is not a pipe, create one + if (result?.errors[ERRORS.MISSING_DIR_OR_EMPTY_PIPE]) { + logger.warn('you need to create a pipe first. run bunx @screenpipe/dev create or visit https://docs.screenpi.pe/docs/plugins for more information.') + process.exit(1) } - }, - }) + + // Add components to the directory + await addComponents(components, {silent: opts.silent, cwd: opts.cwd, overwrite: opts.overwrite}) + } catch (error) { + logger.break() + handleError(error) + } + }) \ No newline at end of file diff --git a/screenpipe-js/cli/src/commands/components/commands/add/registry/api.ts b/screenpipe-js/cli/src/commands/components/commands/add/registry/api.ts index 61c9832b8..441f515b3 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/registry/api.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/registry/api.ts @@ -9,7 +9,7 @@ export function getRegistry() { const parsedRegistry = registrySchema.parse(registry) return parsedRegistry } catch (error) { - logger.error("\n") + logger.break() handleError(error) } } @@ -45,6 +45,7 @@ function resolveRegistryDependencies( if (registry[componentName]) { components[componentName] = registry[componentName] } else { + logger.break() handleError( `Component ${componentName} not found.`, ) diff --git a/screenpipe-js/cli/src/commands/components/commands/register.ts b/screenpipe-js/cli/src/commands/components/commands/register.ts index c8152f80b..d56c351cf 100644 --- a/screenpipe-js/cli/src/commands/components/commands/register.ts +++ b/screenpipe-js/cli/src/commands/components/commands/register.ts @@ -29,16 +29,10 @@ async function writeJsonToFile(filePath: string, data: RegistrySchema) { export const registerComponentCommand = new Command() .name("register") .description("register a new component in screenpipe's component registry") - .option( - "-n, --name ", - "name of the component" - ).option( - "-s, --src", - "github url for the component" - ).option( - "-t, --target", - "path where file should be created" - ).action(async (opts) => { + .option("-n, --name ", "name of the component") + .option("-s, --src", "github url for the component") + .option("-t, --target", "path where file should be created") + .action(async (opts) => { try { if (!opts.name) { const { name } = await prompts({ @@ -108,7 +102,7 @@ export const registerComponentCommand = new Command() registryDependencies: (registryDeps as string[]).filter(item => item !== "") } - const currentRegistry = await getRegistry() + const currentRegistry = getRegistry() if (!currentRegistry) { logger.break() handleError('critical: build is missing registry file.') diff --git a/screenpipe-js/cli/src/commands/components/index.ts b/screenpipe-js/cli/src/commands/components/index.ts index 826a3e1c1..431f23d11 100644 --- a/screenpipe-js/cli/src/commands/components/index.ts +++ b/screenpipe-js/cli/src/commands/components/index.ts @@ -1,4 +1,3 @@ -import { command } from "@drizzle-team/brocli"; import { addComponentCommand } from "./commands/add/add"; import { registerComponentCommand } from "./commands/register"; import { Command } from "commander"; diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index 48f252ff3..0e7d9e358 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -11,7 +11,6 @@ // import { addComponentCommand } from "./commands/components/commands/add/add"; import { Command } from "commander"; -import { addComponentCommand } from "./commands/components/commands/add/add"; import { componentsCommands } from "./commands"; // run( From faf83507cc005ecfabed427b509fc3b3d8a98167 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 19:12:45 -0600 Subject: [PATCH 05/35] feat(cli): migrate create command to Commander --- .../src/commands/components/commands/register.ts | 1 - screenpipe-js/cli/src/commands/create.ts | 13 ++++++------- screenpipe-js/cli/src/index.ts | 10 +++++++--- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/screenpipe-js/cli/src/commands/components/commands/register.ts b/screenpipe-js/cli/src/commands/components/commands/register.ts index d56c351cf..4a4eab331 100644 --- a/screenpipe-js/cli/src/commands/components/commands/register.ts +++ b/screenpipe-js/cli/src/commands/components/commands/register.ts @@ -1,4 +1,3 @@ -import { command, string } from "@drizzle-team/brocli"; import { logger } from "./add/utils/logger"; import { handleError } from "./add/utils/handle-error"; import prompts from "prompts"; diff --git a/screenpipe-js/cli/src/commands/create.ts b/screenpipe-js/cli/src/commands/create.ts index 868b4be7e..c036cb5b6 100644 --- a/screenpipe-js/cli/src/commands/create.ts +++ b/screenpipe-js/cli/src/commands/create.ts @@ -9,7 +9,7 @@ import chalk from "chalk"; import ora from "ora"; import https from "https"; import { Extract } from "unzip-stream"; -import { command } from "@drizzle-team/brocli"; +import { Command } from "commander"; const PIPE_ADDITIONS = { dependencies: { @@ -98,10 +98,10 @@ async function downloadAndExtractRepo( }); } -export const createCommand = command({ - name: "create", - desc: "create a new pipe", - handler: async () => { +export const createCommand = new Command() + .name('create') + .description('create a new pipe') + .action(async () => { console.log(chalk.bold("\nwelcome to screenpipe! šŸš€\n")); console.log("let's create a new screenpipe pipe.\n"); console.log( @@ -172,6 +172,5 @@ export const createCommand = command({ console.error(error); process.exit(1); } - }, -}); + }) diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index 0e7d9e358..74c3cf293 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -11,7 +11,10 @@ // import { addComponentCommand } from "./commands/components/commands/add/add"; import { Command } from "commander"; -import { componentsCommands } from "./commands"; +import { + componentsCommands, + createCommand +} from "./commands"; // run( // [ @@ -40,9 +43,10 @@ async function main() { .name('screenpipe-dev') .description('screenpipe development CLI tool') .version('0.0.1'); + + program.addCommand(createCommand) + program.addCommand(componentsCommands) - program - .addCommand(componentsCommands) program.parse() } From 5d1de6920f0cb20def3f65757ced7069e724787c Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 19:13:20 -0600 Subject: [PATCH 06/35] feat(cli): migrate publish command to Commander --- screenpipe-js/cli/src/commands/publish.ts | 19 ++++++++----------- screenpipe-js/cli/src/index.ts | 4 +++- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/screenpipe-js/cli/src/commands/publish.ts b/screenpipe-js/cli/src/commands/publish.ts index 06befdd0d..31a3e7ca8 100644 --- a/screenpipe-js/cli/src/commands/publish.ts +++ b/screenpipe-js/cli/src/commands/publish.ts @@ -1,12 +1,12 @@ import fs from "fs"; import path from "path"; -import { command, string, boolean } from "@drizzle-team/brocli"; import { Credentials } from "../utils/credentials"; import { API_BASE_URL } from "../constants"; import archiver from "archiver"; import crypto from "crypto"; import ignore from "ignore"; import { colors, symbols } from "../utils/colors"; +import { Command } from "commander"; interface ProjectFiles { required: string[]; @@ -68,14 +68,12 @@ function archiveStandardProject( }); } -export const publishCommand = command({ - name: "publish", - desc: "publish or update a pipe to the store", - options: { - name: string().required().desc("name of the pipe"), - verbose: boolean().desc("enable verbose logging").default(false), - }, - handler: async (opts) => { +export const publishCommand = new Command() + .name('publish') + .description('Publish or update a pipe to the store') + .requiredOption('--name ', 'Name of the pipe') + .option('--verbose', 'Enable verbose logging', false) + .action(async (opts) => { try { if (opts.verbose) { console.log(colors.dim(`${symbols.arrow} starting publish command...`)); @@ -352,5 +350,4 @@ export const publishCommand = command({ } process.exit(1); } - }, -}); + }) diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index 74c3cf293..e8451edb6 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -13,7 +13,8 @@ import { Command } from "commander"; import { componentsCommands, - createCommand + createCommand, + publishCommand } from "./commands"; // run( @@ -46,6 +47,7 @@ async function main() { program.addCommand(createCommand) program.addCommand(componentsCommands) + program.addCommand(publishCommand) program.parse() From 813e016b3f517083005d13b8e31349c4b821f5e7 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 19:16:21 -0600 Subject: [PATCH 07/35] feat(cli): migrate register command --- screenpipe-js/cli/src/commands/register.ts | 39 ++++++++++------------ screenpipe-js/cli/src/index.ts | 8 ++--- 2 files changed, 20 insertions(+), 27 deletions(-) diff --git a/screenpipe-js/cli/src/commands/register.ts b/screenpipe-js/cli/src/commands/register.ts index 8e0d09753..9f87c7655 100644 --- a/screenpipe-js/cli/src/commands/register.ts +++ b/screenpipe-js/cli/src/commands/register.ts @@ -1,30 +1,26 @@ import fs from "fs"; -import { boolean, command, number, string } from "@drizzle-team/brocli"; import { Credentials } from "../utils/credentials"; import { API_BASE_URL } from "../constants"; import { colors, symbols } from "../utils/colors"; +import { Command } from "commander"; -export const registerCommand = command({ - name: "register", - desc: "register a new pipe", - options: { - name: string().required().desc("name of the pipe"), - paid: boolean().desc("set this flag to create a paid pipe"), - price: number().desc("price in USD (required for paid pipes)"), - source: string().desc("source code URL (e.g. GitHub repository)"), - }, - transform: (opts) => { - if (opts.paid && !opts.price) { - throw new Error( - "Price is required for paid pipes, i.e. --price " - ); +export const registerCommand = new Command() + .name('register') + .description('Register a new pipe') + .requiredOption('--name ', 'Name of the pipe') + .option('--paid', 'Set this flag to create a paid pipe') + .option('--price ', 'Price in USD (required for paid pipes)', parseFloat) + .option('--source ', 'Source code URL (e.g., GitHub repository)') + .action(async (opts) => { + if (opts.paid && opts.price == null) { + console.error('Error: Price is required for paid pipes, i.e., --price '); + process.exit(1); } - if (opts.paid && opts.price && opts.price <= 0) { - throw new Error("Price must be positive for paid pipes"); + if (opts.paid && opts.price <= 0) { + console.error('Error: Price must be positive for paid pipes'); + process.exit(1); } - return opts; - }, - handler: async (opts) => { + try { const apiKey = Credentials.getApiKey(); if (!apiKey) { @@ -129,5 +125,4 @@ export const registerCommand = command({ } process.exit(1); } - }, -}); + }) diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index e8451edb6..85b09399c 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -14,17 +14,14 @@ import { Command } from "commander"; import { componentsCommands, createCommand, - publishCommand + publishCommand, + registerCommand } from "./commands"; // run( // [ // // loginCommand, // // logoutCommand, -// // createCommand, -// // componentsCommands, -// // registerCommand, -// // publishCommand, // // listVersionsCommand, // addComponentCommand // ], @@ -47,6 +44,7 @@ async function main() { program.addCommand(createCommand) program.addCommand(componentsCommands) + program.addCommand(registerCommand) program.addCommand(publishCommand) From 019b8112a7d217310e3d01d1277e749a5db5c624 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 19:20:53 -0600 Subject: [PATCH 08/35] feat(cli): migrate list-versions command to Commander --- screenpipe-js/cli/src/commands/list-versions.ts | 17 +++++++---------- screenpipe-js/cli/src/index.ts | 5 +++-- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/screenpipe-js/cli/src/commands/list-versions.ts b/screenpipe-js/cli/src/commands/list-versions.ts index 3b935ae55..4b04d77bb 100644 --- a/screenpipe-js/cli/src/commands/list-versions.ts +++ b/screenpipe-js/cli/src/commands/list-versions.ts @@ -1,15 +1,13 @@ -import { command, string } from "@drizzle-team/brocli"; import { API_BASE_URL } from "../constants"; import { Credentials } from "../utils/credentials"; import { colors, symbols } from "../utils/colors"; +import { Command } from "commander"; -export const listVersionsCommand = command({ - name: "list-versions", - desc: "list all versions of a pipe", - options: { - name: string().required().desc("name of the pipe"), - }, - handler: async (opts) => { +export const listVersionsCommand = new Command() + .name('list-versions') + .description('List all versions of a pipe') + .requiredOption('--name ', 'Name of the pipe') + .action(async (opts) => { try { const response = await fetch( `${API_BASE_URL}/api/plugins/list-versions`, @@ -90,5 +88,4 @@ export const listVersionsCommand = command({ } process.exit(1); } - }, -}); + }); \ No newline at end of file diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index 85b09399c..8e765f2ce 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -15,14 +15,14 @@ import { componentsCommands, createCommand, publishCommand, - registerCommand + registerCommand, + listVersionsCommand } from "./commands"; // run( // [ // // loginCommand, // // logoutCommand, -// // listVersionsCommand, // addComponentCommand // ], // { @@ -46,6 +46,7 @@ async function main() { program.addCommand(componentsCommands) program.addCommand(registerCommand) program.addCommand(publishCommand) + program.addCommand(listVersionsCommand) program.parse() From b50c6bfe83b9ea3446f59467bb17b366a5350f9b Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 19:21:47 -0600 Subject: [PATCH 09/35] feat(cli): migrate login command to Commander --- screenpipe-js/cli/src/commands/login.ts | 16 +++++++--------- screenpipe-js/cli/src/index.ts | 6 ++++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/screenpipe-js/cli/src/commands/login.ts b/screenpipe-js/cli/src/commands/login.ts index b76f3023c..7f301e797 100644 --- a/screenpipe-js/cli/src/commands/login.ts +++ b/screenpipe-js/cli/src/commands/login.ts @@ -1,14 +1,13 @@ -import { command, string } from "@drizzle-team/brocli"; import { API_BASE_URL } from "../constants"; import { Credentials } from "../utils/credentials"; import { colors, symbols } from "../utils/colors"; +import { Command } from "commander"; -export const loginCommand = command({ - name: "login", - options: { - apiKey: string().required().desc("API key to login with"), - }, - handler: async (opts) => { +export const loginCommand = new Command() + .name('login') + .description('Login with an API key') + .requiredOption('--apiKey ', 'API key to login with') + .action(async (opts) => { try { console.log(colors.info(`\n${symbols.info} Validating API key...`)); @@ -78,5 +77,4 @@ export const loginCommand = command({ } process.exit(1); } - } -}); + }); \ No newline at end of file diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index 8e765f2ce..110c38386 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -12,10 +12,11 @@ import { Command } from "commander"; import { - componentsCommands, + loginCommand, createCommand, - publishCommand, + componentsCommands, registerCommand, + publishCommand, listVersionsCommand } from "./commands"; @@ -42,6 +43,7 @@ async function main() { .description('screenpipe development CLI tool') .version('0.0.1'); + program.addCommand(loginCommand) program.addCommand(createCommand) program.addCommand(componentsCommands) program.addCommand(registerCommand) From af76f9a8c1ef814db0f9af56bfd8f2f5a5d175a8 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 19:23:21 -0600 Subject: [PATCH 10/35] feat(cli): migrate logout command to Commander --- screenpipe-js/cli/src/commands/logout.ts | 13 +++++----- screenpipe-js/cli/src/index.ts | 30 ++++-------------------- 2 files changed, 10 insertions(+), 33 deletions(-) diff --git a/screenpipe-js/cli/src/commands/logout.ts b/screenpipe-js/cli/src/commands/logout.ts index 28b5e9c05..e307e3712 100644 --- a/screenpipe-js/cli/src/commands/logout.ts +++ b/screenpipe-js/cli/src/commands/logout.ts @@ -1,13 +1,12 @@ -import { command } from "@drizzle-team/brocli"; import { Credentials } from "../utils/credentials"; import { colors, symbols } from "../utils/colors"; +import { Command } from "commander"; -export const logoutCommand = command({ - name: "logout", - desc: "End current session", - handler: async () => { +export const logoutCommand = new Command() + .name("logout") + .description("end current session") + .action(async () => { Credentials.clearCredentials(); console.log(colors.success(`\n${symbols.success} Successfully logged out`)); console.log(colors.info(`${symbols.info} Thanks for using ScreenPipe! Come back soon.`)); - } -}); + }) \ No newline at end of file diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index 110c38386..4a5cb9edb 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -1,15 +1,3 @@ -// import { run } from "@drizzle-team/brocli"; -// import { -// // loginCommand, -// // logoutCommand, -// // publishCommand, -// // registerCommand, -// // listVersionsCommand, -// // createCommand, -// // componentsCommands -// } from "./commands"; -// import { addComponentCommand } from "./commands/components/commands/add/add"; - import { Command } from "commander"; import { loginCommand, @@ -17,21 +5,10 @@ import { componentsCommands, registerCommand, publishCommand, - listVersionsCommand + listVersionsCommand, + logoutCommand } from "./commands"; -// run( -// [ -// // loginCommand, -// // logoutCommand, -// addComponentCommand -// ], -// { -// name: "screenpipe-dev", -// description: "screenpipe development CLI tool", -// } -// ); - process.on("SIGINT", () => process.exit(0)) process.on("SIGTERM", () => process.exit(0)) @@ -42,8 +19,9 @@ async function main() { .name('screenpipe-dev') .description('screenpipe development CLI tool') .version('0.0.1'); - + program.addCommand(loginCommand) + program.addCommand(logoutCommand) program.addCommand(createCommand) program.addCommand(componentsCommands) program.addCommand(registerCommand) From 7d2b02d51bb8fd1aaf0ccdb3ee1cec687978023e Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Sat, 1 Feb 2025 19:26:16 -0600 Subject: [PATCH 11/35] chore(cli): update dist --- screenpipe-js/cli/dist/index.js | 5158 ++++++++++++++++--------------- 1 file changed, 2602 insertions(+), 2556 deletions(-) diff --git a/screenpipe-js/cli/dist/index.js b/screenpipe-js/cli/dist/index.js index c7c690662..5838dd657 100755 --- a/screenpipe-js/cli/dist/index.js +++ b/screenpipe-js/cli/dist/index.js @@ -1,5 +1,3 @@ -#!/usr/bin/env bun -// @bun import { createRequire } from "node:module"; var __create = Object.create; var __getProtoOf = Object.getPrototypeOf; @@ -30,6 +28,1783 @@ var __export = (target, all) => { var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res); var __require = /* @__PURE__ */ createRequire(import.meta.url); +// node_modules/commander/lib/error.js +var require_error = __commonJS((exports) => { + class CommanderError extends Error { + constructor(exitCode, code, message) { + super(message); + Error.captureStackTrace(this, this.constructor); + this.name = this.constructor.name; + this.code = code; + this.exitCode = exitCode; + this.nestedError = undefined; + } + } + + class InvalidArgumentError extends CommanderError { + constructor(message) { + super(1, "commander.invalidArgument", message); + Error.captureStackTrace(this, this.constructor); + this.name = this.constructor.name; + } + } + exports.CommanderError = CommanderError; + exports.InvalidArgumentError = InvalidArgumentError; +}); + +// node_modules/commander/lib/argument.js +var require_argument = __commonJS((exports) => { + var { InvalidArgumentError } = require_error(); + + class Argument { + constructor(name, description) { + this.description = description || ""; + this.variadic = false; + this.parseArg = undefined; + this.defaultValue = undefined; + this.defaultValueDescription = undefined; + this.argChoices = undefined; + switch (name[0]) { + case "<": + this.required = true; + this._name = name.slice(1, -1); + break; + case "[": + this.required = false; + this._name = name.slice(1, -1); + break; + default: + this.required = true; + this._name = name; + break; + } + if (this._name.length > 3 && this._name.slice(-3) === "...") { + this.variadic = true; + this._name = this._name.slice(0, -3); + } + } + name() { + return this._name; + } + _concatValue(value, previous) { + if (previous === this.defaultValue || !Array.isArray(previous)) { + return [value]; + } + return previous.concat(value); + } + default(value, description) { + this.defaultValue = value; + this.defaultValueDescription = description; + return this; + } + argParser(fn) { + this.parseArg = fn; + return this; + } + choices(values) { + this.argChoices = values.slice(); + this.parseArg = (arg, previous) => { + if (!this.argChoices.includes(arg)) { + throw new InvalidArgumentError(`Allowed choices are ${this.argChoices.join(", ")}.`); + } + if (this.variadic) { + return this._concatValue(arg, previous); + } + return arg; + }; + return this; + } + argRequired() { + this.required = true; + return this; + } + argOptional() { + this.required = false; + return this; + } + } + function humanReadableArgName(arg) { + const nameOutput = arg.name() + (arg.variadic === true ? "..." : ""); + return arg.required ? "<" + nameOutput + ">" : "[" + nameOutput + "]"; + } + exports.Argument = Argument; + exports.humanReadableArgName = humanReadableArgName; +}); + +// node_modules/commander/lib/help.js +var require_help = __commonJS((exports) => { + var { humanReadableArgName } = require_argument(); + + class Help { + constructor() { + this.helpWidth = undefined; + this.sortSubcommands = false; + this.sortOptions = false; + this.showGlobalOptions = false; + } + visibleCommands(cmd) { + const visibleCommands = cmd.commands.filter((cmd2) => !cmd2._hidden); + if (cmd._hasImplicitHelpCommand()) { + const [, helpName, helpArgs] = cmd._helpCommandnameAndArgs.match(/([^ ]+) *(.*)/); + const helpCommand = cmd.createCommand(helpName).helpOption(false); + helpCommand.description(cmd._helpCommandDescription); + if (helpArgs) + helpCommand.arguments(helpArgs); + visibleCommands.push(helpCommand); + } + if (this.sortSubcommands) { + visibleCommands.sort((a, b) => { + return a.name().localeCompare(b.name()); + }); + } + return visibleCommands; + } + compareOptions(a, b) { + const getSortKey = (option) => { + return option.short ? option.short.replace(/^-/, "") : option.long.replace(/^--/, ""); + }; + return getSortKey(a).localeCompare(getSortKey(b)); + } + visibleOptions(cmd) { + const visibleOptions = cmd.options.filter((option) => !option.hidden); + const showShortHelpFlag = cmd._hasHelpOption && cmd._helpShortFlag && !cmd._findOption(cmd._helpShortFlag); + const showLongHelpFlag = cmd._hasHelpOption && !cmd._findOption(cmd._helpLongFlag); + if (showShortHelpFlag || showLongHelpFlag) { + let helpOption; + if (!showShortHelpFlag) { + helpOption = cmd.createOption(cmd._helpLongFlag, cmd._helpDescription); + } else if (!showLongHelpFlag) { + helpOption = cmd.createOption(cmd._helpShortFlag, cmd._helpDescription); + } else { + helpOption = cmd.createOption(cmd._helpFlags, cmd._helpDescription); + } + visibleOptions.push(helpOption); + } + if (this.sortOptions) { + visibleOptions.sort(this.compareOptions); + } + return visibleOptions; + } + visibleGlobalOptions(cmd) { + if (!this.showGlobalOptions) + return []; + const globalOptions = []; + for (let ancestorCmd = cmd.parent;ancestorCmd; ancestorCmd = ancestorCmd.parent) { + const visibleOptions = ancestorCmd.options.filter((option) => !option.hidden); + globalOptions.push(...visibleOptions); + } + if (this.sortOptions) { + globalOptions.sort(this.compareOptions); + } + return globalOptions; + } + visibleArguments(cmd) { + if (cmd._argsDescription) { + cmd.registeredArguments.forEach((argument) => { + argument.description = argument.description || cmd._argsDescription[argument.name()] || ""; + }); + } + if (cmd.registeredArguments.find((argument) => argument.description)) { + return cmd.registeredArguments; + } + return []; + } + subcommandTerm(cmd) { + const args = cmd.registeredArguments.map((arg) => humanReadableArgName(arg)).join(" "); + return cmd._name + (cmd._aliases[0] ? "|" + cmd._aliases[0] : "") + (cmd.options.length ? " [options]" : "") + (args ? " " + args : ""); + } + optionTerm(option) { + return option.flags; + } + argumentTerm(argument) { + return argument.name(); + } + longestSubcommandTermLength(cmd, helper) { + return helper.visibleCommands(cmd).reduce((max, command) => { + return Math.max(max, helper.subcommandTerm(command).length); + }, 0); + } + longestOptionTermLength(cmd, helper) { + return helper.visibleOptions(cmd).reduce((max, option) => { + return Math.max(max, helper.optionTerm(option).length); + }, 0); + } + longestGlobalOptionTermLength(cmd, helper) { + return helper.visibleGlobalOptions(cmd).reduce((max, option) => { + return Math.max(max, helper.optionTerm(option).length); + }, 0); + } + longestArgumentTermLength(cmd, helper) { + return helper.visibleArguments(cmd).reduce((max, argument) => { + return Math.max(max, helper.argumentTerm(argument).length); + }, 0); + } + commandUsage(cmd) { + let cmdName = cmd._name; + if (cmd._aliases[0]) { + cmdName = cmdName + "|" + cmd._aliases[0]; + } + let ancestorCmdNames = ""; + for (let ancestorCmd = cmd.parent;ancestorCmd; ancestorCmd = ancestorCmd.parent) { + ancestorCmdNames = ancestorCmd.name() + " " + ancestorCmdNames; + } + return ancestorCmdNames + cmdName + " " + cmd.usage(); + } + commandDescription(cmd) { + return cmd.description(); + } + subcommandDescription(cmd) { + return cmd.summary() || cmd.description(); + } + optionDescription(option) { + const extraInfo = []; + if (option.argChoices) { + extraInfo.push(`choices: ${option.argChoices.map((choice) => JSON.stringify(choice)).join(", ")}`); + } + if (option.defaultValue !== undefined) { + const showDefault = option.required || option.optional || option.isBoolean() && typeof option.defaultValue === "boolean"; + if (showDefault) { + extraInfo.push(`default: ${option.defaultValueDescription || JSON.stringify(option.defaultValue)}`); + } + } + if (option.presetArg !== undefined && option.optional) { + extraInfo.push(`preset: ${JSON.stringify(option.presetArg)}`); + } + if (option.envVar !== undefined) { + extraInfo.push(`env: ${option.envVar}`); + } + if (extraInfo.length > 0) { + return `${option.description} (${extraInfo.join(", ")})`; + } + return option.description; + } + argumentDescription(argument) { + const extraInfo = []; + if (argument.argChoices) { + extraInfo.push(`choices: ${argument.argChoices.map((choice) => JSON.stringify(choice)).join(", ")}`); + } + if (argument.defaultValue !== undefined) { + extraInfo.push(`default: ${argument.defaultValueDescription || JSON.stringify(argument.defaultValue)}`); + } + if (extraInfo.length > 0) { + const extraDescripton = `(${extraInfo.join(", ")})`; + if (argument.description) { + return `${argument.description} ${extraDescripton}`; + } + return extraDescripton; + } + return argument.description; + } + formatHelp(cmd, helper) { + const termWidth = helper.padWidth(cmd, helper); + const helpWidth = helper.helpWidth || 80; + const itemIndentWidth = 2; + const itemSeparatorWidth = 2; + function formatItem(term, description) { + if (description) { + const fullText = `${term.padEnd(termWidth + itemSeparatorWidth)}${description}`; + return helper.wrap(fullText, helpWidth - itemIndentWidth, termWidth + itemSeparatorWidth); + } + return term; + } + function formatList(textArray) { + return textArray.join(` +`).replace(/^/gm, " ".repeat(itemIndentWidth)); + } + let output = [`Usage: ${helper.commandUsage(cmd)}`, ""]; + const commandDescription = helper.commandDescription(cmd); + if (commandDescription.length > 0) { + output = output.concat([helper.wrap(commandDescription, helpWidth, 0), ""]); + } + const argumentList = helper.visibleArguments(cmd).map((argument) => { + return formatItem(helper.argumentTerm(argument), helper.argumentDescription(argument)); + }); + if (argumentList.length > 0) { + output = output.concat(["Arguments:", formatList(argumentList), ""]); + } + const optionList = helper.visibleOptions(cmd).map((option) => { + return formatItem(helper.optionTerm(option), helper.optionDescription(option)); + }); + if (optionList.length > 0) { + output = output.concat(["Options:", formatList(optionList), ""]); + } + if (this.showGlobalOptions) { + const globalOptionList = helper.visibleGlobalOptions(cmd).map((option) => { + return formatItem(helper.optionTerm(option), helper.optionDescription(option)); + }); + if (globalOptionList.length > 0) { + output = output.concat(["Global Options:", formatList(globalOptionList), ""]); + } + } + const commandList = helper.visibleCommands(cmd).map((cmd2) => { + return formatItem(helper.subcommandTerm(cmd2), helper.subcommandDescription(cmd2)); + }); + if (commandList.length > 0) { + output = output.concat(["Commands:", formatList(commandList), ""]); + } + return output.join(` +`); + } + padWidth(cmd, helper) { + return Math.max(helper.longestOptionTermLength(cmd, helper), helper.longestGlobalOptionTermLength(cmd, helper), helper.longestSubcommandTermLength(cmd, helper), helper.longestArgumentTermLength(cmd, helper)); + } + wrap(str, width, indent, minColumnWidth = 40) { + const indents = " \\f\\t\\vĀ įš€ā€€-ā€Šā€ÆāŸć€€\uFEFF"; + const manualIndent = new RegExp(`[\\n][${indents}]+`); + if (str.match(manualIndent)) + return str; + const columnWidth = width - indent; + if (columnWidth < minColumnWidth) + return str; + const leadingStr = str.slice(0, indent); + const columnText = str.slice(indent).replace(`\r +`, ` +`); + const indentString = " ".repeat(indent); + const zeroWidthSpace = "ā€‹"; + const breaks = `\\s${zeroWidthSpace}`; + const regex = new RegExp(` +|.{1,${columnWidth - 1}}([${breaks}]|$)|[^${breaks}]+?([${breaks}]|$)`, "g"); + const lines = columnText.match(regex) || []; + return leadingStr + lines.map((line, i) => { + if (line === ` +`) + return ""; + return (i > 0 ? indentString : "") + line.trimEnd(); + }).join(` +`); + } + } + exports.Help = Help; +}); + +// node_modules/commander/lib/option.js +var require_option = __commonJS((exports) => { + var { InvalidArgumentError } = require_error(); + + class Option { + constructor(flags, description) { + this.flags = flags; + this.description = description || ""; + this.required = flags.includes("<"); + this.optional = flags.includes("["); + this.variadic = /\w\.\.\.[>\]]$/.test(flags); + this.mandatory = false; + const optionFlags = splitOptionFlags(flags); + this.short = optionFlags.shortFlag; + this.long = optionFlags.longFlag; + this.negate = false; + if (this.long) { + this.negate = this.long.startsWith("--no-"); + } + this.defaultValue = undefined; + this.defaultValueDescription = undefined; + this.presetArg = undefined; + this.envVar = undefined; + this.parseArg = undefined; + this.hidden = false; + this.argChoices = undefined; + this.conflictsWith = []; + this.implied = undefined; + } + default(value, description) { + this.defaultValue = value; + this.defaultValueDescription = description; + return this; + } + preset(arg) { + this.presetArg = arg; + return this; + } + conflicts(names) { + this.conflictsWith = this.conflictsWith.concat(names); + return this; + } + implies(impliedOptionValues) { + let newImplied = impliedOptionValues; + if (typeof impliedOptionValues === "string") { + newImplied = { [impliedOptionValues]: true }; + } + this.implied = Object.assign(this.implied || {}, newImplied); + return this; + } + env(name) { + this.envVar = name; + return this; + } + argParser(fn) { + this.parseArg = fn; + return this; + } + makeOptionMandatory(mandatory = true) { + this.mandatory = !!mandatory; + return this; + } + hideHelp(hide = true) { + this.hidden = !!hide; + return this; + } + _concatValue(value, previous) { + if (previous === this.defaultValue || !Array.isArray(previous)) { + return [value]; + } + return previous.concat(value); + } + choices(values) { + this.argChoices = values.slice(); + this.parseArg = (arg, previous) => { + if (!this.argChoices.includes(arg)) { + throw new InvalidArgumentError(`Allowed choices are ${this.argChoices.join(", ")}.`); + } + if (this.variadic) { + return this._concatValue(arg, previous); + } + return arg; + }; + return this; + } + name() { + if (this.long) { + return this.long.replace(/^--/, ""); + } + return this.short.replace(/^-/, ""); + } + attributeName() { + return camelcase(this.name().replace(/^no-/, "")); + } + is(arg) { + return this.short === arg || this.long === arg; + } + isBoolean() { + return !this.required && !this.optional && !this.negate; + } + } + + class DualOptions { + constructor(options) { + this.positiveOptions = new Map; + this.negativeOptions = new Map; + this.dualOptions = new Set; + options.forEach((option) => { + if (option.negate) { + this.negativeOptions.set(option.attributeName(), option); + } else { + this.positiveOptions.set(option.attributeName(), option); + } + }); + this.negativeOptions.forEach((value, key) => { + if (this.positiveOptions.has(key)) { + this.dualOptions.add(key); + } + }); + } + valueFromOption(value, option) { + const optionKey = option.attributeName(); + if (!this.dualOptions.has(optionKey)) + return true; + const preset = this.negativeOptions.get(optionKey).presetArg; + const negativeValue = preset !== undefined ? preset : false; + return option.negate === (negativeValue === value); + } + } + function camelcase(str) { + return str.split("-").reduce((str2, word) => { + return str2 + word[0].toUpperCase() + word.slice(1); + }); + } + function splitOptionFlags(flags) { + let shortFlag; + let longFlag; + const flagParts = flags.split(/[ |,]+/); + if (flagParts.length > 1 && !/^[[<]/.test(flagParts[1])) + shortFlag = flagParts.shift(); + longFlag = flagParts.shift(); + if (!shortFlag && /^-[^-]$/.test(longFlag)) { + shortFlag = longFlag; + longFlag = undefined; + } + return { shortFlag, longFlag }; + } + exports.Option = Option; + exports.splitOptionFlags = splitOptionFlags; + exports.DualOptions = DualOptions; +}); + +// node_modules/commander/lib/suggestSimilar.js +var require_suggestSimilar = __commonJS((exports) => { + var maxDistance = 3; + function editDistance(a, b) { + if (Math.abs(a.length - b.length) > maxDistance) + return Math.max(a.length, b.length); + const d = []; + for (let i = 0;i <= a.length; i++) { + d[i] = [i]; + } + for (let j = 0;j <= b.length; j++) { + d[0][j] = j; + } + for (let j = 1;j <= b.length; j++) { + for (let i = 1;i <= a.length; i++) { + let cost = 1; + if (a[i - 1] === b[j - 1]) { + cost = 0; + } else { + cost = 1; + } + d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost); + if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) { + d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + 1); + } + } + } + return d[a.length][b.length]; + } + function suggestSimilar(word, candidates) { + if (!candidates || candidates.length === 0) + return ""; + candidates = Array.from(new Set(candidates)); + const searchingOptions = word.startsWith("--"); + if (searchingOptions) { + word = word.slice(2); + candidates = candidates.map((candidate) => candidate.slice(2)); + } + let similar = []; + let bestDistance = maxDistance; + const minSimilarity = 0.4; + candidates.forEach((candidate) => { + if (candidate.length <= 1) + return; + const distance = editDistance(word, candidate); + const length = Math.max(word.length, candidate.length); + const similarity = (length - distance) / length; + if (similarity > minSimilarity) { + if (distance < bestDistance) { + bestDistance = distance; + similar = [candidate]; + } else if (distance === bestDistance) { + similar.push(candidate); + } + } + }); + similar.sort((a, b) => a.localeCompare(b)); + if (searchingOptions) { + similar = similar.map((candidate) => `--${candidate}`); + } + if (similar.length > 1) { + return ` +(Did you mean one of ${similar.join(", ")}?)`; + } + if (similar.length === 1) { + return ` +(Did you mean ${similar[0]}?)`; + } + return ""; + } + exports.suggestSimilar = suggestSimilar; +}); + +// node_modules/commander/lib/command.js +var require_command = __commonJS((exports) => { + var EventEmitter = __require("events").EventEmitter; + var childProcess = __require("child_process"); + var path = __require("path"); + var fs = __require("fs"); + var process2 = __require("process"); + var { Argument, humanReadableArgName } = require_argument(); + var { CommanderError } = require_error(); + var { Help } = require_help(); + var { Option, splitOptionFlags, DualOptions } = require_option(); + var { suggestSimilar } = require_suggestSimilar(); + + class Command extends EventEmitter { + constructor(name) { + super(); + this.commands = []; + this.options = []; + this.parent = null; + this._allowUnknownOption = false; + this._allowExcessArguments = true; + this.registeredArguments = []; + this._args = this.registeredArguments; + this.args = []; + this.rawArgs = []; + this.processedArgs = []; + this._scriptPath = null; + this._name = name || ""; + this._optionValues = {}; + this._optionValueSources = {}; + this._storeOptionsAsProperties = false; + this._actionHandler = null; + this._executableHandler = false; + this._executableFile = null; + this._executableDir = null; + this._defaultCommandName = null; + this._exitCallback = null; + this._aliases = []; + this._combineFlagAndOptionalValue = true; + this._description = ""; + this._summary = ""; + this._argsDescription = undefined; + this._enablePositionalOptions = false; + this._passThroughOptions = false; + this._lifeCycleHooks = {}; + this._showHelpAfterError = false; + this._showSuggestionAfterError = true; + this._outputConfiguration = { + writeOut: (str) => process2.stdout.write(str), + writeErr: (str) => process2.stderr.write(str), + getOutHelpWidth: () => process2.stdout.isTTY ? process2.stdout.columns : undefined, + getErrHelpWidth: () => process2.stderr.isTTY ? process2.stderr.columns : undefined, + outputError: (str, write) => write(str) + }; + this._hidden = false; + this._hasHelpOption = true; + this._helpFlags = "-h, --help"; + this._helpDescription = "display help for command"; + this._helpShortFlag = "-h"; + this._helpLongFlag = "--help"; + this._addImplicitHelpCommand = undefined; + this._helpCommandName = "help"; + this._helpCommandnameAndArgs = "help [command]"; + this._helpCommandDescription = "display help for command"; + this._helpConfiguration = {}; + } + copyInheritedSettings(sourceCommand) { + this._outputConfiguration = sourceCommand._outputConfiguration; + this._hasHelpOption = sourceCommand._hasHelpOption; + this._helpFlags = sourceCommand._helpFlags; + this._helpDescription = sourceCommand._helpDescription; + this._helpShortFlag = sourceCommand._helpShortFlag; + this._helpLongFlag = sourceCommand._helpLongFlag; + this._helpCommandName = sourceCommand._helpCommandName; + this._helpCommandnameAndArgs = sourceCommand._helpCommandnameAndArgs; + this._helpCommandDescription = sourceCommand._helpCommandDescription; + this._helpConfiguration = sourceCommand._helpConfiguration; + this._exitCallback = sourceCommand._exitCallback; + this._storeOptionsAsProperties = sourceCommand._storeOptionsAsProperties; + this._combineFlagAndOptionalValue = sourceCommand._combineFlagAndOptionalValue; + this._allowExcessArguments = sourceCommand._allowExcessArguments; + this._enablePositionalOptions = sourceCommand._enablePositionalOptions; + this._showHelpAfterError = sourceCommand._showHelpAfterError; + this._showSuggestionAfterError = sourceCommand._showSuggestionAfterError; + return this; + } + _getCommandAndAncestors() { + const result = []; + for (let command = this;command; command = command.parent) { + result.push(command); + } + return result; + } + command(nameAndArgs, actionOptsOrExecDesc, execOpts) { + let desc = actionOptsOrExecDesc; + let opts = execOpts; + if (typeof desc === "object" && desc !== null) { + opts = desc; + desc = null; + } + opts = opts || {}; + const [, name, args] = nameAndArgs.match(/([^ ]+) *(.*)/); + const cmd = this.createCommand(name); + if (desc) { + cmd.description(desc); + cmd._executableHandler = true; + } + if (opts.isDefault) + this._defaultCommandName = cmd._name; + cmd._hidden = !!(opts.noHelp || opts.hidden); + cmd._executableFile = opts.executableFile || null; + if (args) + cmd.arguments(args); + this.commands.push(cmd); + cmd.parent = this; + cmd.copyInheritedSettings(this); + if (desc) + return this; + return cmd; + } + createCommand(name) { + return new Command(name); + } + createHelp() { + return Object.assign(new Help, this.configureHelp()); + } + configureHelp(configuration) { + if (configuration === undefined) + return this._helpConfiguration; + this._helpConfiguration = configuration; + return this; + } + configureOutput(configuration) { + if (configuration === undefined) + return this._outputConfiguration; + Object.assign(this._outputConfiguration, configuration); + return this; + } + showHelpAfterError(displayHelp = true) { + if (typeof displayHelp !== "string") + displayHelp = !!displayHelp; + this._showHelpAfterError = displayHelp; + return this; + } + showSuggestionAfterError(displaySuggestion = true) { + this._showSuggestionAfterError = !!displaySuggestion; + return this; + } + addCommand(cmd, opts) { + if (!cmd._name) { + throw new Error(`Command passed to .addCommand() must have a name +- specify the name in Command constructor or using .name()`); + } + opts = opts || {}; + if (opts.isDefault) + this._defaultCommandName = cmd._name; + if (opts.noHelp || opts.hidden) + cmd._hidden = true; + this.commands.push(cmd); + cmd.parent = this; + return this; + } + createArgument(name, description) { + return new Argument(name, description); + } + argument(name, description, fn, defaultValue) { + const argument = this.createArgument(name, description); + if (typeof fn === "function") { + argument.default(defaultValue).argParser(fn); + } else { + argument.default(fn); + } + this.addArgument(argument); + return this; + } + arguments(names) { + names.trim().split(/ +/).forEach((detail) => { + this.argument(detail); + }); + return this; + } + addArgument(argument) { + const previousArgument = this.registeredArguments.slice(-1)[0]; + if (previousArgument && previousArgument.variadic) { + throw new Error(`only the last argument can be variadic '${previousArgument.name()}'`); + } + if (argument.required && argument.defaultValue !== undefined && argument.parseArg === undefined) { + throw new Error(`a default value for a required argument is never used: '${argument.name()}'`); + } + this.registeredArguments.push(argument); + return this; + } + addHelpCommand(enableOrNameAndArgs, description) { + if (enableOrNameAndArgs === false) { + this._addImplicitHelpCommand = false; + } else { + this._addImplicitHelpCommand = true; + if (typeof enableOrNameAndArgs === "string") { + this._helpCommandName = enableOrNameAndArgs.split(" ")[0]; + this._helpCommandnameAndArgs = enableOrNameAndArgs; + } + this._helpCommandDescription = description || this._helpCommandDescription; + } + return this; + } + _hasImplicitHelpCommand() { + if (this._addImplicitHelpCommand === undefined) { + return this.commands.length && !this._actionHandler && !this._findCommand("help"); + } + return this._addImplicitHelpCommand; + } + hook(event, listener) { + const allowedValues = ["preSubcommand", "preAction", "postAction"]; + if (!allowedValues.includes(event)) { + throw new Error(`Unexpected value for event passed to hook : '${event}'. +Expecting one of '${allowedValues.join("', '")}'`); + } + if (this._lifeCycleHooks[event]) { + this._lifeCycleHooks[event].push(listener); + } else { + this._lifeCycleHooks[event] = [listener]; + } + return this; + } + exitOverride(fn) { + if (fn) { + this._exitCallback = fn; + } else { + this._exitCallback = (err) => { + if (err.code !== "commander.executeSubCommandAsync") { + throw err; + } else { + } + }; + } + return this; + } + _exit(exitCode, code, message) { + if (this._exitCallback) { + this._exitCallback(new CommanderError(exitCode, code, message)); + } + process2.exit(exitCode); + } + action(fn) { + const listener = (args) => { + const expectedArgsCount = this.registeredArguments.length; + const actionArgs = args.slice(0, expectedArgsCount); + if (this._storeOptionsAsProperties) { + actionArgs[expectedArgsCount] = this; + } else { + actionArgs[expectedArgsCount] = this.opts(); + } + actionArgs.push(this); + return fn.apply(this, actionArgs); + }; + this._actionHandler = listener; + return this; + } + createOption(flags, description) { + return new Option(flags, description); + } + _callParseArg(target, value, previous, invalidArgumentMessage) { + try { + return target.parseArg(value, previous); + } catch (err) { + if (err.code === "commander.invalidArgument") { + const message = `${invalidArgumentMessage} ${err.message}`; + this.error(message, { exitCode: err.exitCode, code: err.code }); + } + throw err; + } + } + addOption(option) { + const oname = option.name(); + const name = option.attributeName(); + if (option.negate) { + const positiveLongFlag = option.long.replace(/^--no-/, "--"); + if (!this._findOption(positiveLongFlag)) { + this.setOptionValueWithSource(name, option.defaultValue === undefined ? true : option.defaultValue, "default"); + } + } else if (option.defaultValue !== undefined) { + this.setOptionValueWithSource(name, option.defaultValue, "default"); + } + this.options.push(option); + const handleOptionValue = (val, invalidValueMessage, valueSource) => { + if (val == null && option.presetArg !== undefined) { + val = option.presetArg; + } + const oldValue = this.getOptionValue(name); + if (val !== null && option.parseArg) { + val = this._callParseArg(option, val, oldValue, invalidValueMessage); + } else if (val !== null && option.variadic) { + val = option._concatValue(val, oldValue); + } + if (val == null) { + if (option.negate) { + val = false; + } else if (option.isBoolean() || option.optional) { + val = true; + } else { + val = ""; + } + } + this.setOptionValueWithSource(name, val, valueSource); + }; + this.on("option:" + oname, (val) => { + const invalidValueMessage = `error: option '${option.flags}' argument '${val}' is invalid.`; + handleOptionValue(val, invalidValueMessage, "cli"); + }); + if (option.envVar) { + this.on("optionEnv:" + oname, (val) => { + const invalidValueMessage = `error: option '${option.flags}' value '${val}' from env '${option.envVar}' is invalid.`; + handleOptionValue(val, invalidValueMessage, "env"); + }); + } + return this; + } + _optionEx(config, flags, description, fn, defaultValue) { + if (typeof flags === "object" && flags instanceof Option) { + throw new Error("To add an Option object use addOption() instead of option() or requiredOption()"); + } + const option = this.createOption(flags, description); + option.makeOptionMandatory(!!config.mandatory); + if (typeof fn === "function") { + option.default(defaultValue).argParser(fn); + } else if (fn instanceof RegExp) { + const regex = fn; + fn = (val, def) => { + const m = regex.exec(val); + return m ? m[0] : def; + }; + option.default(defaultValue).argParser(fn); + } else { + option.default(fn); + } + return this.addOption(option); + } + option(flags, description, parseArg, defaultValue) { + return this._optionEx({}, flags, description, parseArg, defaultValue); + } + requiredOption(flags, description, parseArg, defaultValue) { + return this._optionEx({ mandatory: true }, flags, description, parseArg, defaultValue); + } + combineFlagAndOptionalValue(combine = true) { + this._combineFlagAndOptionalValue = !!combine; + return this; + } + allowUnknownOption(allowUnknown = true) { + this._allowUnknownOption = !!allowUnknown; + return this; + } + allowExcessArguments(allowExcess = true) { + this._allowExcessArguments = !!allowExcess; + return this; + } + enablePositionalOptions(positional = true) { + this._enablePositionalOptions = !!positional; + return this; + } + passThroughOptions(passThrough = true) { + this._passThroughOptions = !!passThrough; + if (!!this.parent && passThrough && !this.parent._enablePositionalOptions) { + throw new Error("passThroughOptions can not be used without turning on enablePositionalOptions for parent command(s)"); + } + return this; + } + storeOptionsAsProperties(storeAsProperties = true) { + if (this.options.length) { + throw new Error("call .storeOptionsAsProperties() before adding options"); + } + this._storeOptionsAsProperties = !!storeAsProperties; + return this; + } + getOptionValue(key) { + if (this._storeOptionsAsProperties) { + return this[key]; + } + return this._optionValues[key]; + } + setOptionValue(key, value) { + return this.setOptionValueWithSource(key, value, undefined); + } + setOptionValueWithSource(key, value, source) { + if (this._storeOptionsAsProperties) { + this[key] = value; + } else { + this._optionValues[key] = value; + } + this._optionValueSources[key] = source; + return this; + } + getOptionValueSource(key) { + return this._optionValueSources[key]; + } + getOptionValueSourceWithGlobals(key) { + let source; + this._getCommandAndAncestors().forEach((cmd) => { + if (cmd.getOptionValueSource(key) !== undefined) { + source = cmd.getOptionValueSource(key); + } + }); + return source; + } + _prepareUserArgs(argv, parseOptions) { + if (argv !== undefined && !Array.isArray(argv)) { + throw new Error("first parameter to parse must be array or undefined"); + } + parseOptions = parseOptions || {}; + if (argv === undefined) { + argv = process2.argv; + if (process2.versions && process2.versions.electron) { + parseOptions.from = "electron"; + } + } + this.rawArgs = argv.slice(); + let userArgs; + switch (parseOptions.from) { + case undefined: + case "node": + this._scriptPath = argv[1]; + userArgs = argv.slice(2); + break; + case "electron": + if (process2.defaultApp) { + this._scriptPath = argv[1]; + userArgs = argv.slice(2); + } else { + userArgs = argv.slice(1); + } + break; + case "user": + userArgs = argv.slice(0); + break; + default: + throw new Error(`unexpected parse option { from: '${parseOptions.from}' }`); + } + if (!this._name && this._scriptPath) + this.nameFromFilename(this._scriptPath); + this._name = this._name || "program"; + return userArgs; + } + parse(argv, parseOptions) { + const userArgs = this._prepareUserArgs(argv, parseOptions); + this._parseCommand([], userArgs); + return this; + } + async parseAsync(argv, parseOptions) { + const userArgs = this._prepareUserArgs(argv, parseOptions); + await this._parseCommand([], userArgs); + return this; + } + _executeSubCommand(subcommand, args) { + args = args.slice(); + let launchWithNode = false; + const sourceExt = [".js", ".ts", ".tsx", ".mjs", ".cjs"]; + function findFile(baseDir, baseName) { + const localBin = path.resolve(baseDir, baseName); + if (fs.existsSync(localBin)) + return localBin; + if (sourceExt.includes(path.extname(baseName))) + return; + const foundExt = sourceExt.find((ext) => fs.existsSync(`${localBin}${ext}`)); + if (foundExt) + return `${localBin}${foundExt}`; + return; + } + this._checkForMissingMandatoryOptions(); + this._checkForConflictingOptions(); + let executableFile = subcommand._executableFile || `${this._name}-${subcommand._name}`; + let executableDir = this._executableDir || ""; + if (this._scriptPath) { + let resolvedScriptPath; + try { + resolvedScriptPath = fs.realpathSync(this._scriptPath); + } catch (err) { + resolvedScriptPath = this._scriptPath; + } + executableDir = path.resolve(path.dirname(resolvedScriptPath), executableDir); + } + if (executableDir) { + let localFile = findFile(executableDir, executableFile); + if (!localFile && !subcommand._executableFile && this._scriptPath) { + const legacyName = path.basename(this._scriptPath, path.extname(this._scriptPath)); + if (legacyName !== this._name) { + localFile = findFile(executableDir, `${legacyName}-${subcommand._name}`); + } + } + executableFile = localFile || executableFile; + } + launchWithNode = sourceExt.includes(path.extname(executableFile)); + let proc; + if (process2.platform !== "win32") { + if (launchWithNode) { + args.unshift(executableFile); + args = incrementNodeInspectorPort(process2.execArgv).concat(args); + proc = childProcess.spawn(process2.argv[0], args, { stdio: "inherit" }); + } else { + proc = childProcess.spawn(executableFile, args, { stdio: "inherit" }); + } + } else { + args.unshift(executableFile); + args = incrementNodeInspectorPort(process2.execArgv).concat(args); + proc = childProcess.spawn(process2.execPath, args, { stdio: "inherit" }); + } + if (!proc.killed) { + const signals = ["SIGUSR1", "SIGUSR2", "SIGTERM", "SIGINT", "SIGHUP"]; + signals.forEach((signal) => { + process2.on(signal, () => { + if (proc.killed === false && proc.exitCode === null) { + proc.kill(signal); + } + }); + }); + } + const exitCallback = this._exitCallback; + if (!exitCallback) { + proc.on("close", process2.exit.bind(process2)); + } else { + proc.on("close", () => { + exitCallback(new CommanderError(process2.exitCode || 0, "commander.executeSubCommandAsync", "(close)")); + }); + } + proc.on("error", (err) => { + if (err.code === "ENOENT") { + const executableDirMessage = executableDir ? `searched for local subcommand relative to directory '${executableDir}'` : "no directory for search for local subcommand, use .executableDir() to supply a custom directory"; + const executableMissing = `'${executableFile}' does not exist + - if '${subcommand._name}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead + - if the default executable name is not suitable, use the executableFile option to supply a custom name or path + - ${executableDirMessage}`; + throw new Error(executableMissing); + } else if (err.code === "EACCES") { + throw new Error(`'${executableFile}' not executable`); + } + if (!exitCallback) { + process2.exit(1); + } else { + const wrappedError = new CommanderError(1, "commander.executeSubCommandAsync", "(error)"); + wrappedError.nestedError = err; + exitCallback(wrappedError); + } + }); + this.runningCommand = proc; + } + _dispatchSubcommand(commandName, operands, unknown) { + const subCommand = this._findCommand(commandName); + if (!subCommand) + this.help({ error: true }); + let promiseChain; + promiseChain = this._chainOrCallSubCommandHook(promiseChain, subCommand, "preSubcommand"); + promiseChain = this._chainOrCall(promiseChain, () => { + if (subCommand._executableHandler) { + this._executeSubCommand(subCommand, operands.concat(unknown)); + } else { + return subCommand._parseCommand(operands, unknown); + } + }); + return promiseChain; + } + _dispatchHelpCommand(subcommandName) { + if (!subcommandName) { + this.help(); + } + const subCommand = this._findCommand(subcommandName); + if (subCommand && !subCommand._executableHandler) { + subCommand.help(); + } + return this._dispatchSubcommand(subcommandName, [], [ + this._helpLongFlag || this._helpShortFlag + ]); + } + _checkNumberOfArguments() { + this.registeredArguments.forEach((arg, i) => { + if (arg.required && this.args[i] == null) { + this.missingArgument(arg.name()); + } + }); + if (this.registeredArguments.length > 0 && this.registeredArguments[this.registeredArguments.length - 1].variadic) { + return; + } + if (this.args.length > this.registeredArguments.length) { + this._excessArguments(this.args); + } + } + _processArguments() { + const myParseArg = (argument, value, previous) => { + let parsedValue = value; + if (value !== null && argument.parseArg) { + const invalidValueMessage = `error: command-argument value '${value}' is invalid for argument '${argument.name()}'.`; + parsedValue = this._callParseArg(argument, value, previous, invalidValueMessage); + } + return parsedValue; + }; + this._checkNumberOfArguments(); + const processedArgs = []; + this.registeredArguments.forEach((declaredArg, index) => { + let value = declaredArg.defaultValue; + if (declaredArg.variadic) { + if (index < this.args.length) { + value = this.args.slice(index); + if (declaredArg.parseArg) { + value = value.reduce((processed, v) => { + return myParseArg(declaredArg, v, processed); + }, declaredArg.defaultValue); + } + } else if (value === undefined) { + value = []; + } + } else if (index < this.args.length) { + value = this.args[index]; + if (declaredArg.parseArg) { + value = myParseArg(declaredArg, value, declaredArg.defaultValue); + } + } + processedArgs[index] = value; + }); + this.processedArgs = processedArgs; + } + _chainOrCall(promise, fn) { + if (promise && promise.then && typeof promise.then === "function") { + return promise.then(() => fn()); + } + return fn(); + } + _chainOrCallHooks(promise, event) { + let result = promise; + const hooks = []; + this._getCommandAndAncestors().reverse().filter((cmd) => cmd._lifeCycleHooks[event] !== undefined).forEach((hookedCommand) => { + hookedCommand._lifeCycleHooks[event].forEach((callback) => { + hooks.push({ hookedCommand, callback }); + }); + }); + if (event === "postAction") { + hooks.reverse(); + } + hooks.forEach((hookDetail) => { + result = this._chainOrCall(result, () => { + return hookDetail.callback(hookDetail.hookedCommand, this); + }); + }); + return result; + } + _chainOrCallSubCommandHook(promise, subCommand, event) { + let result = promise; + if (this._lifeCycleHooks[event] !== undefined) { + this._lifeCycleHooks[event].forEach((hook) => { + result = this._chainOrCall(result, () => { + return hook(this, subCommand); + }); + }); + } + return result; + } + _parseCommand(operands, unknown) { + const parsed = this.parseOptions(unknown); + this._parseOptionsEnv(); + this._parseOptionsImplied(); + operands = operands.concat(parsed.operands); + unknown = parsed.unknown; + this.args = operands.concat(unknown); + if (operands && this._findCommand(operands[0])) { + return this._dispatchSubcommand(operands[0], operands.slice(1), unknown); + } + if (this._hasImplicitHelpCommand() && operands[0] === this._helpCommandName) { + return this._dispatchHelpCommand(operands[1]); + } + if (this._defaultCommandName) { + outputHelpIfRequested(this, unknown); + return this._dispatchSubcommand(this._defaultCommandName, operands, unknown); + } + if (this.commands.length && this.args.length === 0 && !this._actionHandler && !this._defaultCommandName) { + this.help({ error: true }); + } + outputHelpIfRequested(this, parsed.unknown); + this._checkForMissingMandatoryOptions(); + this._checkForConflictingOptions(); + const checkForUnknownOptions = () => { + if (parsed.unknown.length > 0) { + this.unknownOption(parsed.unknown[0]); + } + }; + const commandEvent = `command:${this.name()}`; + if (this._actionHandler) { + checkForUnknownOptions(); + this._processArguments(); + let promiseChain; + promiseChain = this._chainOrCallHooks(promiseChain, "preAction"); + promiseChain = this._chainOrCall(promiseChain, () => this._actionHandler(this.processedArgs)); + if (this.parent) { + promiseChain = this._chainOrCall(promiseChain, () => { + this.parent.emit(commandEvent, operands, unknown); + }); + } + promiseChain = this._chainOrCallHooks(promiseChain, "postAction"); + return promiseChain; + } + if (this.parent && this.parent.listenerCount(commandEvent)) { + checkForUnknownOptions(); + this._processArguments(); + this.parent.emit(commandEvent, operands, unknown); + } else if (operands.length) { + if (this._findCommand("*")) { + return this._dispatchSubcommand("*", operands, unknown); + } + if (this.listenerCount("command:*")) { + this.emit("command:*", operands, unknown); + } else if (this.commands.length) { + this.unknownCommand(); + } else { + checkForUnknownOptions(); + this._processArguments(); + } + } else if (this.commands.length) { + checkForUnknownOptions(); + this.help({ error: true }); + } else { + checkForUnknownOptions(); + this._processArguments(); + } + } + _findCommand(name) { + if (!name) + return; + return this.commands.find((cmd) => cmd._name === name || cmd._aliases.includes(name)); + } + _findOption(arg) { + return this.options.find((option) => option.is(arg)); + } + _checkForMissingMandatoryOptions() { + this._getCommandAndAncestors().forEach((cmd) => { + cmd.options.forEach((anOption) => { + if (anOption.mandatory && cmd.getOptionValue(anOption.attributeName()) === undefined) { + cmd.missingMandatoryOptionValue(anOption); + } + }); + }); + } + _checkForConflictingLocalOptions() { + const definedNonDefaultOptions = this.options.filter((option) => { + const optionKey = option.attributeName(); + if (this.getOptionValue(optionKey) === undefined) { + return false; + } + return this.getOptionValueSource(optionKey) !== "default"; + }); + const optionsWithConflicting = definedNonDefaultOptions.filter((option) => option.conflictsWith.length > 0); + optionsWithConflicting.forEach((option) => { + const conflictingAndDefined = definedNonDefaultOptions.find((defined) => option.conflictsWith.includes(defined.attributeName())); + if (conflictingAndDefined) { + this._conflictingOption(option, conflictingAndDefined); + } + }); + } + _checkForConflictingOptions() { + this._getCommandAndAncestors().forEach((cmd) => { + cmd._checkForConflictingLocalOptions(); + }); + } + parseOptions(argv) { + const operands = []; + const unknown = []; + let dest = operands; + const args = argv.slice(); + function maybeOption(arg) { + return arg.length > 1 && arg[0] === "-"; + } + let activeVariadicOption = null; + while (args.length) { + const arg = args.shift(); + if (arg === "--") { + if (dest === unknown) + dest.push(arg); + dest.push(...args); + break; + } + if (activeVariadicOption && !maybeOption(arg)) { + this.emit(`option:${activeVariadicOption.name()}`, arg); + continue; + } + activeVariadicOption = null; + if (maybeOption(arg)) { + const option = this._findOption(arg); + if (option) { + if (option.required) { + const value = args.shift(); + if (value === undefined) + this.optionMissingArgument(option); + this.emit(`option:${option.name()}`, value); + } else if (option.optional) { + let value = null; + if (args.length > 0 && !maybeOption(args[0])) { + value = args.shift(); + } + this.emit(`option:${option.name()}`, value); + } else { + this.emit(`option:${option.name()}`); + } + activeVariadicOption = option.variadic ? option : null; + continue; + } + } + if (arg.length > 2 && arg[0] === "-" && arg[1] !== "-") { + const option = this._findOption(`-${arg[1]}`); + if (option) { + if (option.required || option.optional && this._combineFlagAndOptionalValue) { + this.emit(`option:${option.name()}`, arg.slice(2)); + } else { + this.emit(`option:${option.name()}`); + args.unshift(`-${arg.slice(2)}`); + } + continue; + } + } + if (/^--[^=]+=/.test(arg)) { + const index = arg.indexOf("="); + const option = this._findOption(arg.slice(0, index)); + if (option && (option.required || option.optional)) { + this.emit(`option:${option.name()}`, arg.slice(index + 1)); + continue; + } + } + if (maybeOption(arg)) { + dest = unknown; + } + if ((this._enablePositionalOptions || this._passThroughOptions) && operands.length === 0 && unknown.length === 0) { + if (this._findCommand(arg)) { + operands.push(arg); + if (args.length > 0) + unknown.push(...args); + break; + } else if (arg === this._helpCommandName && this._hasImplicitHelpCommand()) { + operands.push(arg); + if (args.length > 0) + operands.push(...args); + break; + } else if (this._defaultCommandName) { + unknown.push(arg); + if (args.length > 0) + unknown.push(...args); + break; + } + } + if (this._passThroughOptions) { + dest.push(arg); + if (args.length > 0) + dest.push(...args); + break; + } + dest.push(arg); + } + return { operands, unknown }; + } + opts() { + if (this._storeOptionsAsProperties) { + const result = {}; + const len = this.options.length; + for (let i = 0;i < len; i++) { + const key = this.options[i].attributeName(); + result[key] = key === this._versionOptionName ? this._version : this[key]; + } + return result; + } + return this._optionValues; + } + optsWithGlobals() { + return this._getCommandAndAncestors().reduce((combinedOptions, cmd) => Object.assign(combinedOptions, cmd.opts()), {}); + } + error(message, errorOptions) { + this._outputConfiguration.outputError(`${message} +`, this._outputConfiguration.writeErr); + if (typeof this._showHelpAfterError === "string") { + this._outputConfiguration.writeErr(`${this._showHelpAfterError} +`); + } else if (this._showHelpAfterError) { + this._outputConfiguration.writeErr(` +`); + this.outputHelp({ error: true }); + } + const config = errorOptions || {}; + const exitCode = config.exitCode || 1; + const code = config.code || "commander.error"; + this._exit(exitCode, code, message); + } + _parseOptionsEnv() { + this.options.forEach((option) => { + if (option.envVar && option.envVar in process2.env) { + const optionKey = option.attributeName(); + if (this.getOptionValue(optionKey) === undefined || ["default", "config", "env"].includes(this.getOptionValueSource(optionKey))) { + if (option.required || option.optional) { + this.emit(`optionEnv:${option.name()}`, process2.env[option.envVar]); + } else { + this.emit(`optionEnv:${option.name()}`); + } + } + } + }); + } + _parseOptionsImplied() { + const dualHelper = new DualOptions(this.options); + const hasCustomOptionValue = (optionKey) => { + return this.getOptionValue(optionKey) !== undefined && !["default", "implied"].includes(this.getOptionValueSource(optionKey)); + }; + this.options.filter((option) => option.implied !== undefined && hasCustomOptionValue(option.attributeName()) && dualHelper.valueFromOption(this.getOptionValue(option.attributeName()), option)).forEach((option) => { + Object.keys(option.implied).filter((impliedKey) => !hasCustomOptionValue(impliedKey)).forEach((impliedKey) => { + this.setOptionValueWithSource(impliedKey, option.implied[impliedKey], "implied"); + }); + }); + } + missingArgument(name) { + const message = `error: missing required argument '${name}'`; + this.error(message, { code: "commander.missingArgument" }); + } + optionMissingArgument(option) { + const message = `error: option '${option.flags}' argument missing`; + this.error(message, { code: "commander.optionMissingArgument" }); + } + missingMandatoryOptionValue(option) { + const message = `error: required option '${option.flags}' not specified`; + this.error(message, { code: "commander.missingMandatoryOptionValue" }); + } + _conflictingOption(option, conflictingOption) { + const findBestOptionFromValue = (option2) => { + const optionKey = option2.attributeName(); + const optionValue = this.getOptionValue(optionKey); + const negativeOption = this.options.find((target) => target.negate && optionKey === target.attributeName()); + const positiveOption = this.options.find((target) => !target.negate && optionKey === target.attributeName()); + if (negativeOption && (negativeOption.presetArg === undefined && optionValue === false || negativeOption.presetArg !== undefined && optionValue === negativeOption.presetArg)) { + return negativeOption; + } + return positiveOption || option2; + }; + const getErrorMessage = (option2) => { + const bestOption = findBestOptionFromValue(option2); + const optionKey = bestOption.attributeName(); + const source = this.getOptionValueSource(optionKey); + if (source === "env") { + return `environment variable '${bestOption.envVar}'`; + } + return `option '${bestOption.flags}'`; + }; + const message = `error: ${getErrorMessage(option)} cannot be used with ${getErrorMessage(conflictingOption)}`; + this.error(message, { code: "commander.conflictingOption" }); + } + unknownOption(flag) { + if (this._allowUnknownOption) + return; + let suggestion = ""; + if (flag.startsWith("--") && this._showSuggestionAfterError) { + let candidateFlags = []; + let command = this; + do { + const moreFlags = command.createHelp().visibleOptions(command).filter((option) => option.long).map((option) => option.long); + candidateFlags = candidateFlags.concat(moreFlags); + command = command.parent; + } while (command && !command._enablePositionalOptions); + suggestion = suggestSimilar(flag, candidateFlags); + } + const message = `error: unknown option '${flag}'${suggestion}`; + this.error(message, { code: "commander.unknownOption" }); + } + _excessArguments(receivedArgs) { + if (this._allowExcessArguments) + return; + const expected = this.registeredArguments.length; + const s = expected === 1 ? "" : "s"; + const forSubcommand = this.parent ? ` for '${this.name()}'` : ""; + const message = `error: too many arguments${forSubcommand}. Expected ${expected} argument${s} but got ${receivedArgs.length}.`; + this.error(message, { code: "commander.excessArguments" }); + } + unknownCommand() { + const unknownName = this.args[0]; + let suggestion = ""; + if (this._showSuggestionAfterError) { + const candidateNames = []; + this.createHelp().visibleCommands(this).forEach((command) => { + candidateNames.push(command.name()); + if (command.alias()) + candidateNames.push(command.alias()); + }); + suggestion = suggestSimilar(unknownName, candidateNames); + } + const message = `error: unknown command '${unknownName}'${suggestion}`; + this.error(message, { code: "commander.unknownCommand" }); + } + version(str, flags, description) { + if (str === undefined) + return this._version; + this._version = str; + flags = flags || "-V, --version"; + description = description || "output the version number"; + const versionOption = this.createOption(flags, description); + this._versionOptionName = versionOption.attributeName(); + this.options.push(versionOption); + this.on("option:" + versionOption.name(), () => { + this._outputConfiguration.writeOut(`${str} +`); + this._exit(0, "commander.version", str); + }); + return this; + } + description(str, argsDescription) { + if (str === undefined && argsDescription === undefined) + return this._description; + this._description = str; + if (argsDescription) { + this._argsDescription = argsDescription; + } + return this; + } + summary(str) { + if (str === undefined) + return this._summary; + this._summary = str; + return this; + } + alias(alias) { + if (alias === undefined) + return this._aliases[0]; + let command = this; + if (this.commands.length !== 0 && this.commands[this.commands.length - 1]._executableHandler) { + command = this.commands[this.commands.length - 1]; + } + if (alias === command._name) + throw new Error("Command alias can't be the same as its name"); + command._aliases.push(alias); + return this; + } + aliases(aliases) { + if (aliases === undefined) + return this._aliases; + aliases.forEach((alias) => this.alias(alias)); + return this; + } + usage(str) { + if (str === undefined) { + if (this._usage) + return this._usage; + const args = this.registeredArguments.map((arg) => { + return humanReadableArgName(arg); + }); + return [].concat(this.options.length || this._hasHelpOption ? "[options]" : [], this.commands.length ? "[command]" : [], this.registeredArguments.length ? args : []).join(" "); + } + this._usage = str; + return this; + } + name(str) { + if (str === undefined) + return this._name; + this._name = str; + return this; + } + nameFromFilename(filename) { + this._name = path.basename(filename, path.extname(filename)); + return this; + } + executableDir(path2) { + if (path2 === undefined) + return this._executableDir; + this._executableDir = path2; + return this; + } + helpInformation(contextOptions) { + const helper = this.createHelp(); + if (helper.helpWidth === undefined) { + helper.helpWidth = contextOptions && contextOptions.error ? this._outputConfiguration.getErrHelpWidth() : this._outputConfiguration.getOutHelpWidth(); + } + return helper.formatHelp(this, helper); + } + _getHelpContext(contextOptions) { + contextOptions = contextOptions || {}; + const context = { error: !!contextOptions.error }; + let write; + if (context.error) { + write = (arg) => this._outputConfiguration.writeErr(arg); + } else { + write = (arg) => this._outputConfiguration.writeOut(arg); + } + context.write = contextOptions.write || write; + context.command = this; + return context; + } + outputHelp(contextOptions) { + let deprecatedCallback; + if (typeof contextOptions === "function") { + deprecatedCallback = contextOptions; + contextOptions = undefined; + } + const context = this._getHelpContext(contextOptions); + this._getCommandAndAncestors().reverse().forEach((command) => command.emit("beforeAllHelp", context)); + this.emit("beforeHelp", context); + let helpInformation = this.helpInformation(context); + if (deprecatedCallback) { + helpInformation = deprecatedCallback(helpInformation); + if (typeof helpInformation !== "string" && !Buffer.isBuffer(helpInformation)) { + throw new Error("outputHelp callback must return a string or a Buffer"); + } + } + context.write(helpInformation); + if (this._helpLongFlag) { + this.emit(this._helpLongFlag); + } + this.emit("afterHelp", context); + this._getCommandAndAncestors().forEach((command) => command.emit("afterAllHelp", context)); + } + helpOption(flags, description) { + if (typeof flags === "boolean") { + this._hasHelpOption = flags; + return this; + } + this._helpFlags = flags || this._helpFlags; + this._helpDescription = description || this._helpDescription; + const helpFlags = splitOptionFlags(this._helpFlags); + this._helpShortFlag = helpFlags.shortFlag; + this._helpLongFlag = helpFlags.longFlag; + return this; + } + help(contextOptions) { + this.outputHelp(contextOptions); + let exitCode = process2.exitCode || 0; + if (exitCode === 0 && contextOptions && typeof contextOptions !== "function" && contextOptions.error) { + exitCode = 1; + } + this._exit(exitCode, "commander.help", "(outputHelp)"); + } + addHelpText(position, text) { + const allowedValues = ["beforeAll", "before", "after", "afterAll"]; + if (!allowedValues.includes(position)) { + throw new Error(`Unexpected value for position to addHelpText. +Expecting one of '${allowedValues.join("', '")}'`); + } + const helpEvent = `${position}Help`; + this.on(helpEvent, (context) => { + let helpStr; + if (typeof text === "function") { + helpStr = text({ error: context.error, command: context.command }); + } else { + helpStr = text; + } + if (helpStr) { + context.write(`${helpStr} +`); + } + }); + return this; + } + } + function outputHelpIfRequested(cmd, args) { + const helpOption = cmd._hasHelpOption && args.find((arg) => arg === cmd._helpLongFlag || arg === cmd._helpShortFlag); + if (helpOption) { + cmd.outputHelp(); + cmd._exit(0, "commander.helpDisplayed", "(outputHelp)"); + } + } + function incrementNodeInspectorPort(args) { + return args.map((arg) => { + if (!arg.startsWith("--inspect")) { + return arg; + } + let debugOption; + let debugHost = "127.0.0.1"; + let debugPort = "9229"; + let match; + if ((match = arg.match(/^(--inspect(-brk)?)$/)) !== null) { + debugOption = match[1]; + } else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/)) !== null) { + debugOption = match[1]; + if (/^\d+$/.test(match[3])) { + debugPort = match[3]; + } else { + debugHost = match[3]; + } + } else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/)) !== null) { + debugOption = match[1]; + debugHost = match[3]; + debugPort = match[4]; + } + if (debugOption && debugPort !== "0") { + return `${debugOption}=${debugHost}:${parseInt(debugPort) + 1}`; + } + return arg; + }); + } + exports.Command = Command; +}); + +// node_modules/commander/index.js +var require_commander = __commonJS((exports, module) => { + var { Argument } = require_argument(); + var { Command } = require_command(); + var { CommanderError, InvalidArgumentError } = require_error(); + var { Help } = require_help(); + var { Option } = require_option(); + exports = module.exports = new Command; + exports.program = exports; + exports.Command = Command; + exports.Option = Option; + exports.Argument = Argument; + exports.Help = Help; + exports.CommanderError = CommanderError; + exports.InvalidArgumentError = InvalidArgumentError; + exports.InvalidOptionArgumentError = InvalidArgumentError; +}); + // node_modules/universalify/index.js var require_universalify = __commonJS((exports) => { exports.fromCallback = function(fn) { @@ -464,7 +2239,7 @@ var require_legacy_streams = __commonJS((exports, module) => { }); // node_modules/graceful-fs/clone.js -var require_clone2 = __commonJS((exports, module) => { +var require_clone = __commonJS((exports, module) => { module.exports = clone; var getPrototypeOf = Object.getPrototypeOf || function(obj) { return obj.__proto__; @@ -488,7 +2263,7 @@ var require_graceful_fs = __commonJS((exports, module) => { var fs = __require("fs"); var polyfills = require_polyfills(); var legacy = require_legacy_streams(); - var clone = require_clone2(); + var clone = require_clone(); var util = __require("util"); var gracefulQueue; var previousSymbol; @@ -2302,19 +4077,19 @@ var require_yoctocolors_cjs = __commonJS((exports, module) => { const openCode = `\x1B[${open}m`; const closeCode = `\x1B[${close}m`; return (input) => { - const string2 = input + ""; - let index = string2.indexOf(closeCode); + const string = input + ""; + let index = string.indexOf(closeCode); if (index === -1) { - return openCode + string2 + closeCode; + return openCode + string + closeCode; } let result = openCode; let lastIndex = 0; while (index !== -1) { - result += string2.slice(lastIndex, index) + openCode; + result += string.slice(lastIndex, index) + openCode; lastIndex = index + closeCode.length; - index = string2.indexOf(closeCode, lastIndex); + index = string.indexOf(closeCode, lastIndex); } - result += string2.slice(lastIndex) + closeCode; + result += string.slice(lastIndex) + closeCode; return result; }; }; @@ -2848,7 +4623,7 @@ var require_ansi_regex = __commonJS((exports, module) => { // node_modules/wrap-ansi/node_modules/strip-ansi/index.js var require_strip_ansi = __commonJS((exports, module) => { var ansiRegex = require_ansi_regex(); - module.exports = (string2) => typeof string2 === "string" ? string2.replace(ansiRegex(), "") : string2; + module.exports = (string) => typeof string === "string" ? string.replace(ansiRegex(), "") : string; }); // node_modules/is-fullwidth-code-point/index.js @@ -2878,18 +4653,18 @@ var require_string_width = __commonJS((exports, module) => { var stripAnsi = require_strip_ansi(); var isFullwidthCodePoint = require_is_fullwidth_code_point(); var emojiRegex = require_emoji_regex(); - var stringWidth = (string2) => { - if (typeof string2 !== "string" || string2.length === 0) { + var stringWidth = (string) => { + if (typeof string !== "string" || string.length === 0) { return 0; } - string2 = stripAnsi(string2); - if (string2.length === 0) { + string = stripAnsi(string); + if (string.length === 0) { return 0; } - string2 = string2.replace(emojiRegex(), " "); + string = string.replace(emojiRegex(), " "); let width = 0; - for (let i = 0;i < string2.length; i++) { - const code = string2.codePointAt(i); + for (let i = 0;i < string.length; i++) { + const code = string.codePointAt(i); if (code <= 31 || code >= 127 && code <= 159) { continue; } @@ -3540,8 +5315,8 @@ var require_conversions = __commonJS((exports, module) => { }; convert.rgb.hex = function(args) { const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); - const string2 = integer.toString(16).toUpperCase(); - return "000000".substring(string2.length) + string2; + const string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; }; convert.hex.rgb = function(args) { const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); @@ -3721,8 +5496,8 @@ var require_conversions = __commonJS((exports, module) => { convert.gray.hex = function(gray) { const val = Math.round(gray[0] / 100 * 255) & 255; const integer = (val << 16) + (val << 8) + val; - const string2 = integer.toString(16).toUpperCase(); - return "000000".substring(string2.length) + string2; + const string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; }; convert.rgb.gray = function(rgb) { const val = (rgb[0] + rgb[1] + rgb[2]) / 3; @@ -4002,7 +5777,7 @@ var require_wrap_ansi = __commonJS((exports, module) => { ]); var END_CODE = 39; var wrapAnsi = (code) => `${ESCAPES.values().next().value}[${code}m`; - var wordLengths = (string2) => string2.split(" ").map((character) => stringWidth(character)); + var wordLengths = (string) => string.split(" ").map((character) => stringWidth(character)); var wrapWord = (rows, word, columns) => { const characters = [...word]; let isInsideEscape = false; @@ -4048,16 +5823,16 @@ var require_wrap_ansi = __commonJS((exports, module) => { } return words.slice(0, last).join(" ") + words.slice(last).join(""); }; - var exec = (string2, columns, options = {}) => { - if (options.trim !== false && string2.trim() === "") { + var exec = (string, columns, options = {}) => { + if (options.trim !== false && string.trim() === "") { return ""; } let pre = ""; let ret = ""; let escapeCode; - const lengths = wordLengths(string2); + const lengths = wordLengths(string); let rows = [""]; - for (const [index, word] of string2.split(" ").entries()) { + for (const [index, word] of string.split(" ").entries()) { if (options.trim !== false) { rows[rows.length - 1] = rows[rows.length - 1].trimLeft(); } @@ -4119,8 +5894,8 @@ var require_wrap_ansi = __commonJS((exports, module) => { } return ret; }; - module.exports = (string2, columns, options) => { - return String(string2).normalize().replace(/\r\n/g, ` + module.exports = (string, columns, options) => { + return String(string).normalize().replace(/\r\n/g, ` `).split(` `).map((line) => exec(line, columns, options)).join(` `); @@ -4578,23 +6353,6 @@ var init_mjs = __esm(() => { } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback)); }); -// node_modules/@inquirer/core/node_modules/strip-ansi/node_modules/ansi-regex/index.js -var require_ansi_regex2 = __commonJS((exports, module) => { - module.exports = ({ onlyFirst = false } = {}) => { - const pattern = [ - "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", - "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" - ].join("|"); - return new RegExp(pattern, onlyFirst ? undefined : "g"); - }; -}); - -// node_modules/@inquirer/core/node_modules/strip-ansi/index.js -var require_strip_ansi2 = __commonJS((exports, module) => { - var ansiRegex = require_ansi_regex2(); - module.exports = (string2) => typeof string2 === "string" ? string2.replace(ansiRegex(), "") : string2; -}); - // node_modules/ansi-escapes/index.js var require_ansi_escapes = __commonJS((exports, module) => { var ansiEscapes = exports; @@ -4714,6 +6472,7 @@ var require_ansi_escapes = __commonJS((exports, module) => { }); // node_modules/@inquirer/core/dist/esm/lib/screen-manager.js +import { stripVTControlCharacters } from "node:util"; function cursorDown(n) { return n > 0 ? import_ansi_escapes.default.cursorDown(n) : ""; } @@ -4735,7 +6494,7 @@ class ScreenManager { } render(content, bottomContent = "") { const promptLine = lastLine(content); - const rawPromptLine = import_strip_ansi.default(promptLine); + const rawPromptLine = stripVTControlCharacters(promptLine); let prompt = rawPromptLine; if (this.rl.line.length > 0) { prompt = prompt.slice(0, -this.rl.line.length); @@ -4777,11 +6536,10 @@ class ScreenManager { this.rl.close(); } } -var import_strip_ansi, import_ansi_escapes, height = (content) => content.split(` +var import_ansi_escapes, height = (content) => content.split(` `).length, lastLine = (content) => content.split(` `).pop() ?? ""; var init_screen_manager = __esm(() => { - import_strip_ansi = __toESM(require_strip_ansi2(), 1); import_ansi_escapes = __toESM(require_ansi_escapes(), 1); init_utils(); }); @@ -11554,7 +13312,7 @@ var require_sbcs_data_generated = __commonJS((exports, module) => { csibm863: "cp863", cp864: { type: "_sbcs", - chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b\t + chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b \v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#$ŁŖ&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~Ā°Ā·āˆ™āˆšā–’ā”€ā”‚ā”¼ā”¤ā”¬ā”œā”“ā”ā”Œā””ā”˜Ī²āˆžĻ†Ā±Ā½Ā¼ā‰ˆĀ«Ā»ļ»·ļ»øļæ½ļæ½ļ»»ļ»¼ļæ½Ā Ā­ļŗ‚Ā£Ā¤ļŗ„ļæ½ļæ½ļŗŽļŗļŗ•ļŗ™ŲŒļŗļŗ”ļŗ„Ł Ł”Ł¢Ł£Ł¤Ł„Ł¦Ł§ŁØŁ©ļ»‘Ų›ļŗ±ļŗµļŗ¹ŲŸĀ¢ļŗ€ļŗļŗƒļŗ…ļ»Šļŗ‹ļŗļŗ‘ļŗ“ļŗ—ļŗ›ļŗŸļŗ£ļŗ§ļŗ©ļŗ«ļŗ­ļŗÆļŗ³ļŗ·ļŗ»ļŗæļ»ļ»…ļ»‹ļ»Ā¦Ā¬Ć·Ć—ļ»‰Ł€ļ»“ļ»—ļ»›ļ»Ÿļ»£ļ»§ļ»«ļ»­ļ»Æļ»³ļŗ½ļ»Œļ»Žļ»ļ»”ļ¹½Ł‘ļ»„ļ»©ļ»¬ļ»°ļ»²ļ»ļ»•ļ»µļ»¶ļ»ļ»™ļ»±ā– ļæ½` }, ibm864: "cp864", @@ -11693,7 +13451,7 @@ var require_sbcs_data_generated = __commonJS((exports, module) => { }, tcvn: { type: "_sbcs", - chars: `\x00ƚį»¤\x03į»Ŗį»¬į»®\x07\b\t + chars: `\x00ƚį»¤\x03į»Ŗį»¬į»®\x07\b \v\f\r\x0E\x0F\x10į»Øį»°į»²į»¶į»øƝį»“\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~ƀįŗ¢ĆƒĆįŗ įŗ¶įŗ¬Ćˆįŗŗįŗ¼Ć‰įŗøį»†ĆŒį»ˆÄØƍį»ŠĆ’į»ŽĆ•Ć“į»Œį»˜į»œį»žį» į»šį»¢Ć™į»¦ÅØĀ Ä‚ƂƊƔʠĘÆÄÄƒĆ¢ĆŖƓʔʰđįŗ°Ģ€Ģ‰ĢƒĢĢ£Ć įŗ£Ć£Ć”įŗ”įŗ²įŗ±įŗ³įŗµįŗÆįŗ“įŗ®įŗ¦įŗØįŗŖįŗ¤į»€įŗ·įŗ§įŗ©įŗ«įŗ„įŗ­ĆØį»‚įŗ»įŗ½Ć©įŗ¹į»į»ƒį»…įŗæį»‡Ć¬į»‰į»„įŗ¾į»’Ä©Ć­į»‹Ć²į»”į»ĆµĆ³į»į»“į»•į»—į»‘į»™į»į»Ÿį»”į»›į»£Ć¹į»–į»§Å©Ćŗį»„į»«į»­į»Æį»©į»±į»³į»·į»¹Ć½į»µį»` }, georgianacademy: { @@ -11710,17 +13468,17 @@ var require_sbcs_data_generated = __commonJS((exports, module) => { }, viscii: { type: "_sbcs", - chars: `\x00\x01įŗ²\x03\x04įŗ“įŗŖ\x07\b\t + chars: `\x00\x01įŗ²\x03\x04įŗ“įŗŖ\x07\b \v\f\r\x0E\x0F\x10\x11\x12\x13į»¶\x15\x16\x17\x18į»ø\x1A\x1B\x1C\x1Dį»“\x1F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~įŗ įŗ®įŗ°įŗ¶įŗ¤įŗ¦įŗØįŗ¬įŗ¼įŗøįŗ¾į»€į»‚į»„į»†į»į»’į»”į»–į»˜į»¢į»šį»œį»žį»Šį»Žį»Œį»ˆį»¦ÅØį»¤į»²Ć•įŗÆįŗ±įŗ·įŗ„įŗ§įŗ©įŗ­įŗ½įŗ¹įŗæį»į»ƒį»…į»‡į»‘į»“į»•į»—į» Ę į»™į»į»Ÿį»‹į»°į»Øį»Ŗį»¬Ę”į»›ĘÆƀƁƂƃįŗ¢Ä‚įŗ³įŗµĆˆĆ‰ĆŠįŗŗƌƍÄØį»³Äį»©Ć’Ć“Ć”įŗ”į»·į»«į»­Ć™Ćšį»¹į»µĆį»”Ę°Ć Ć”Ć¢Ć£įŗ£Äƒį»Æįŗ«ĆØĆ©ĆŖįŗ»Ć¬Ć­Ä©į»‰Ä‘į»±Ć²Ć³Ć“Ƶį»į»į»„Ć¹ĆŗÅ©į»§Ć½į»£į»®` }, iso646cn: { type: "_sbcs", - chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b\t + chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b \v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#Ā„%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}ā€¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½` }, iso646jp: { type: "_sbcs", - chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b\t + chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b \v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Ā„]^_\`abcdefghijklmnopqrstuvwxyz{|}ā€¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½` }, hproman8: { @@ -13626,7 +15384,7 @@ var require_extend_node = __commonJS((exports, module) => { return iconv.decode(this.slice(start, end), encoding); }; original.SlowBufferWrite = SlowBuffer.prototype.write; - SlowBuffer.prototype.write = function(string2, offset, length, encoding) { + SlowBuffer.prototype.write = function(string, offset, length, encoding) { if (isFinite(offset)) { if (!isFinite(length)) { encoding = length; @@ -13650,10 +15408,10 @@ var require_extend_node = __commonJS((exports, module) => { } encoding = String(encoding || "utf8").toLowerCase(); if (Buffer2.isNativeEncoding(encoding)) - return original.SlowBufferWrite.call(this, string2, offset, length, encoding); - if (string2.length > 0 && (length < 0 || offset < 0)) + return original.SlowBufferWrite.call(this, string, offset, length, encoding); + if (string.length > 0 && (length < 0 || offset < 0)) throw new RangeError("attempt to write beyond buffer bounds"); - var buf = iconv.encode(string2, encoding); + var buf = iconv.encode(string, encoding); if (buf.length < length) length = buf.length; buf.copy(this, offset, 0, length); @@ -13682,7 +15440,7 @@ var require_extend_node = __commonJS((exports, module) => { return iconv.decode(this.slice(start, end), encoding); }; original.BufferWrite = Buffer2.prototype.write; - Buffer2.prototype.write = function(string2, offset, length, encoding) { + Buffer2.prototype.write = function(string, offset, length, encoding) { var _offset = offset, _length = length, _encoding = encoding; if (isFinite(offset)) { if (!isFinite(length)) { @@ -13697,7 +15455,7 @@ var require_extend_node = __commonJS((exports, module) => { } encoding = String(encoding || "utf8").toLowerCase(); if (Buffer2.isNativeEncoding(encoding)) - return original.BufferWrite.call(this, string2, _offset, _length, _encoding); + return original.BufferWrite.call(this, string, _offset, _length, _encoding); offset = +offset || 0; var remaining = this.length - offset; if (!length) { @@ -13708,9 +15466,9 @@ var require_extend_node = __commonJS((exports, module) => { length = remaining; } } - if (string2.length > 0 && (length < 0 || offset < 0)) + if (string.length > 0 && (length < 0 || offset < 0)) throw new RangeError("attempt to write beyond buffer bounds"); - var buf = iconv.encode(string2, encoding); + var buf = iconv.encode(string, encoding); if (buf.length < length) length = buf.length; buf.copy(this, offset, 0, length); @@ -19937,7 +21695,7 @@ var require_animationFrames = __commonJS((exports) => { var provider = timestampProvider || performanceTimestampProvider_1.performanceTimestampProvider; var start = provider.now(); var id = 0; - var run2 = function() { + var run = function() { if (!subscriber.closed) { id = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function(timestamp) { id = 0; @@ -19946,11 +21704,11 @@ var require_animationFrames = __commonJS((exports) => { timestamp: timestampProvider ? now : timestamp, elapsed: now - start }); - run2(); + run(); }); } }; - run2(); + run(); return function() { if (id) { animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id); @@ -29590,8 +31348,8 @@ var require_async2 = __commonJS((exports, module) => { return callback(null, results); } while (readyTasks.length && runningTasks < concurrency) { - var run2 = readyTasks.shift(); - run2(); + var run = readyTasks.shift(); + run(); } } function addListener(taskName, fn) { @@ -29674,26 +31432,26 @@ var require_async2 = __commonJS((exports, module) => { var ARROW_FN_ARGS = /^(?:async\s)?\s*(?:\(\s*)?((?:[^)=\s]\s*)*)(?:\)\s*)?=>/; var FN_ARG_SPLIT = /,/; var FN_ARG = /(=.+)?(\s*)$/; - function stripComments(string2) { + function stripComments(string) { let stripped = ""; let index2 = 0; - let endBlockComment = string2.indexOf("*/"); - while (index2 < string2.length) { - if (string2[index2] === "/" && string2[index2 + 1] === "/") { - let endIndex = string2.indexOf(` + let endBlockComment = string.indexOf("*/"); + while (index2 < string.length) { + if (string[index2] === "/" && string[index2 + 1] === "/") { + let endIndex = string.indexOf(` `, index2); - index2 = endIndex === -1 ? string2.length : endIndex; - } else if (endBlockComment !== -1 && string2[index2] === "/" && string2[index2 + 1] === "*") { - let endIndex = string2.indexOf("*/", index2); + index2 = endIndex === -1 ? string.length : endIndex; + } else if (endBlockComment !== -1 && string[index2] === "/" && string[index2 + 1] === "*") { + let endIndex = string.indexOf("*/", index2); if (endIndex !== -1) { index2 = endIndex + 2; - endBlockComment = string2.indexOf("*/", index2); + endBlockComment = string.indexOf("*/", index2); } else { - stripped += string2[index2]; + stripped += string[index2]; index2++; } } else { - stripped += string2[index2]; + stripped += string[index2]; index2++; } } @@ -33505,11 +35263,11 @@ var require__baseSetToString = __commonJS((exports, module) => { var constant = require_constant(); var defineProperty = require__defineProperty(); var identity = require_identity2(); - var baseSetToString = !defineProperty ? identity : function(func, string2) { + var baseSetToString = !defineProperty ? identity : function(func, string) { return defineProperty(func, "toString", { configurable: true, enumerable: false, - value: constant(string2), + value: constant(string), writable: true }); }; @@ -39791,24 +41549,24 @@ var require_operators = __commonJS((exports, module) => { } }.call(this); } - function toIntegerOrInfinity(number2) { - number2 = Number2(number2); - if (NumberIsNaN(number2)) { + function toIntegerOrInfinity(number) { + number = Number2(number); + if (NumberIsNaN(number)) { return 0; } - if (number2 < 0) { - throw new ERR_OUT_OF_RANGE("number", ">= 0", number2); + if (number < 0) { + throw new ERR_OUT_OF_RANGE("number", ">= 0", number); } - return number2; + return number; } - function drop(number2, options = undefined) { + function drop(number, options = undefined) { if (options != null) { validateObject(options, "options"); } if ((options === null || options === undefined ? undefined : options.signal) != null) { validateAbortSignal(options.signal, "options.signal"); } - number2 = toIntegerOrInfinity(number2); + number = toIntegerOrInfinity(number); return async function* drop() { var _options$signal5; if (options !== null && options !== undefined && (_options$signal5 = options.signal) !== null && _options$signal5 !== undefined && _options$signal5.aborted) { @@ -39819,20 +41577,20 @@ var require_operators = __commonJS((exports, module) => { if (options !== null && options !== undefined && (_options$signal6 = options.signal) !== null && _options$signal6 !== undefined && _options$signal6.aborted) { throw new AbortError; } - if (number2-- <= 0) { + if (number-- <= 0) { yield val; } } }.call(this); } - function take(number2, options = undefined) { + function take(number, options = undefined) { if (options != null) { validateObject(options, "options"); } if ((options === null || options === undefined ? undefined : options.signal) != null) { validateAbortSignal(options.signal, "options.signal"); } - number2 = toIntegerOrInfinity(number2); + number = toIntegerOrInfinity(number); return async function* take() { var _options$signal7; if (options !== null && options !== undefined && (_options$signal7 = options.signal) !== null && _options$signal7 !== undefined && _options$signal7.aborted) { @@ -39843,10 +41601,10 @@ var require_operators = __commonJS((exports, module) => { if (options !== null && options !== undefined && (_options$signal8 = options.signal) !== null && _options$signal8 !== undefined && _options$signal8.aborted) { throw new AbortError; } - if (number2-- > 0) { + if (number-- > 0) { yield val; } - if (number2 <= 0) { + if (number <= 0) { return; } } @@ -46533,7 +48291,7 @@ var require_archiver_utils = __commonJS((exports, module) => { }); // node_modules/archiver/lib/error.js -var require_error = __commonJS((exports, module) => { +var require_error2 = __commonJS((exports, module) => { var util = __require("util"); var ERROR_CODES = { ABORTED: "archive was aborted", @@ -46571,7 +48329,7 @@ var require_core = __commonJS((exports, module) => { var path3 = __require("path"); var util = require_archiver_utils(); var inherits = __require("util").inherits; - var ArchiverError = require_error(); + var ArchiverError = require_error2(); var Transform = require_ours().Transform; var win32 = process.platform === "win32"; var Archiver = function(format, options) { @@ -48217,16 +49975,6 @@ var require_zip3 = __commonJS((exports, module) => { module.exports = Zip; }); -// node_modules/queue-tick/queue-microtask.js -var require_queue_microtask = __commonJS((exports, module) => { - module.exports = typeof queueMicrotask === "function" ? queueMicrotask : (fn) => Promise.resolve().then(fn); -}); - -// node_modules/queue-tick/process-next-tick.js -var require_process_next_tick = __commonJS((exports, module) => { - module.exports = typeof process !== "undefined" && typeof process.nextTick === "function" ? process.nextTick.bind(process) : require_queue_microtask(); -}); - // node_modules/fast-fifo/fixed-size.js var require_fixed_size = __commonJS((exports, module) => { module.exports = class FixedFIFO { @@ -48332,8 +50080,8 @@ var require_b4a = __commonJS((exports, module) => { function allocUnsafeSlow(size) { return Buffer.allocUnsafeSlow(size); } - function byteLength(string2, encoding) { - return Buffer.byteLength(string2, encoding); + function byteLength(string, encoding) { + return Buffer.byteLength(string, encoding); } function compare(a, b) { return Buffer.compare(a, b); @@ -48379,8 +50127,8 @@ var require_b4a = __commonJS((exports, module) => { function toString(buffer, encoding, start, end) { return toBuffer(buffer).toString(encoding, start, end); } - function write(buffer, string2, offset, length, encoding) { - return toBuffer(buffer).write(string2, offset, length, encoding); + function write(buffer, string, offset, length, encoding) { + return toBuffer(buffer).write(string, offset, length, encoding); } function writeDoubleLE(buffer, value, offset) { return toBuffer(buffer).writeDoubleLE(value, offset); @@ -48644,7 +50392,6 @@ var require_streamx = __commonJS((exports, module) => { var { EventEmitter } = __require("events"); var STREAM_DESTROYED = new Error("Stream was destroyed"); var PREMATURE_CLOSE = new Error("Premature close"); - var queueTick = require_process_next_tick(); var FIFO = require_fast_fifo(); var TextDecoder2 = require_text_decoder(); var MAX = (1 << 29) - 1; @@ -48841,7 +50588,7 @@ var require_streamx = __commonJS((exports, module) => { return; this.stream._duplexState |= WRITE_NEXT_TICK; if ((this.stream._duplexState & WRITE_UPDATING) === 0) - queueTick(this.afterUpdateNextTick); + queueMicrotask(this.afterUpdateNextTick); } } @@ -49010,14 +50757,14 @@ var require_streamx = __commonJS((exports, module) => { return; this.stream._duplexState |= READ_NEXT_TICK; if ((this.stream._duplexState & READ_UPDATING) === 0) - queueTick(this.afterUpdateNextTick); + queueMicrotask(this.afterUpdateNextTick); } updateNextTick() { if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return; this.stream._duplexState |= READ_NEXT_TICK; if ((this.stream._duplexState & READ_UPDATING) === 0) - queueTick(this.afterUpdateNextTick); + queueMicrotask(this.afterUpdateNextTick); } } @@ -51440,37 +53187,37 @@ var require_ignore2 = __commonJS((exports, module) => { // node_modules/prompts/node_modules/kleur/index.js var require_kleur = __commonJS((exports, module) => { - var { FORCE_COLOR: FORCE_COLOR2, NODE_DISABLE_COLORS: NODE_DISABLE_COLORS2, TERM: TERM2 } = process.env; - var $2 = { - enabled: !NODE_DISABLE_COLORS2 && TERM2 !== "dumb" && FORCE_COLOR2 !== "0", - reset: init2(0, 0), - bold: init2(1, 22), - dim: init2(2, 22), - italic: init2(3, 23), - underline: init2(4, 24), - inverse: init2(7, 27), - hidden: init2(8, 28), - strikethrough: init2(9, 29), - black: init2(30, 39), - red: init2(31, 39), - green: init2(32, 39), - yellow: init2(33, 39), - blue: init2(34, 39), - magenta: init2(35, 39), - cyan: init2(36, 39), - white: init2(37, 39), - gray: init2(90, 39), - grey: init2(90, 39), - bgBlack: init2(40, 49), - bgRed: init2(41, 49), - bgGreen: init2(42, 49), - bgYellow: init2(43, 49), - bgBlue: init2(44, 49), - bgMagenta: init2(45, 49), - bgCyan: init2(46, 49), - bgWhite: init2(47, 49) - }; - function run2(arr, str) { + var { FORCE_COLOR, NODE_DISABLE_COLORS, TERM } = process.env; + var $ = { + enabled: !NODE_DISABLE_COLORS && TERM !== "dumb" && FORCE_COLOR !== "0", + reset: init(0, 0), + bold: init(1, 22), + dim: init(2, 22), + italic: init(3, 23), + underline: init(4, 24), + inverse: init(7, 27), + hidden: init(8, 28), + strikethrough: init(9, 29), + black: init(30, 39), + red: init(31, 39), + green: init(32, 39), + yellow: init(33, 39), + blue: init(34, 39), + magenta: init(35, 39), + cyan: init(36, 39), + white: init(37, 39), + gray: init(90, 39), + grey: init(90, 39), + bgBlack: init(40, 49), + bgRed: init(41, 49), + bgGreen: init(42, 49), + bgYellow: init(43, 49), + bgBlue: init(44, 49), + bgMagenta: init(45, 49), + bgCyan: init(46, 49), + bgWhite: init(47, 49) + }; + function run(arr, str) { let i = 0, tmp, beg = "", end = ""; for (;i < arr.length; i++) { tmp = arr[i]; @@ -51484,35 +53231,35 @@ var require_kleur = __commonJS((exports, module) => { } function chain(has, keys) { let ctx = { has, keys }; - ctx.reset = $2.reset.bind(ctx); - ctx.bold = $2.bold.bind(ctx); - ctx.dim = $2.dim.bind(ctx); - ctx.italic = $2.italic.bind(ctx); - ctx.underline = $2.underline.bind(ctx); - ctx.inverse = $2.inverse.bind(ctx); - ctx.hidden = $2.hidden.bind(ctx); - ctx.strikethrough = $2.strikethrough.bind(ctx); - ctx.black = $2.black.bind(ctx); - ctx.red = $2.red.bind(ctx); - ctx.green = $2.green.bind(ctx); - ctx.yellow = $2.yellow.bind(ctx); - ctx.blue = $2.blue.bind(ctx); - ctx.magenta = $2.magenta.bind(ctx); - ctx.cyan = $2.cyan.bind(ctx); - ctx.white = $2.white.bind(ctx); - ctx.gray = $2.gray.bind(ctx); - ctx.grey = $2.grey.bind(ctx); - ctx.bgBlack = $2.bgBlack.bind(ctx); - ctx.bgRed = $2.bgRed.bind(ctx); - ctx.bgGreen = $2.bgGreen.bind(ctx); - ctx.bgYellow = $2.bgYellow.bind(ctx); - ctx.bgBlue = $2.bgBlue.bind(ctx); - ctx.bgMagenta = $2.bgMagenta.bind(ctx); - ctx.bgCyan = $2.bgCyan.bind(ctx); - ctx.bgWhite = $2.bgWhite.bind(ctx); + ctx.reset = $.reset.bind(ctx); + ctx.bold = $.bold.bind(ctx); + ctx.dim = $.dim.bind(ctx); + ctx.italic = $.italic.bind(ctx); + ctx.underline = $.underline.bind(ctx); + ctx.inverse = $.inverse.bind(ctx); + ctx.hidden = $.hidden.bind(ctx); + ctx.strikethrough = $.strikethrough.bind(ctx); + ctx.black = $.black.bind(ctx); + ctx.red = $.red.bind(ctx); + ctx.green = $.green.bind(ctx); + ctx.yellow = $.yellow.bind(ctx); + ctx.blue = $.blue.bind(ctx); + ctx.magenta = $.magenta.bind(ctx); + ctx.cyan = $.cyan.bind(ctx); + ctx.white = $.white.bind(ctx); + ctx.gray = $.gray.bind(ctx); + ctx.grey = $.grey.bind(ctx); + ctx.bgBlack = $.bgBlack.bind(ctx); + ctx.bgRed = $.bgRed.bind(ctx); + ctx.bgGreen = $.bgGreen.bind(ctx); + ctx.bgYellow = $.bgYellow.bind(ctx); + ctx.bgBlue = $.bgBlue.bind(ctx); + ctx.bgMagenta = $.bgMagenta.bind(ctx); + ctx.bgCyan = $.bgCyan.bind(ctx); + ctx.bgWhite = $.bgWhite.bind(ctx); return ctx; } - function init2(open, close) { + function init(open, close) { let blk = { open: `\x1B[${open}m`, close: `\x1B[${close}m`, @@ -51521,12 +53268,12 @@ var require_kleur = __commonJS((exports, module) => { return function(txt) { if (this !== undefined && this.has !== undefined) { this.has.includes(open) || (this.has.push(open), this.keys.push(blk)); - return txt === undefined ? this : $2.enabled ? run2(this.keys, txt + "") : txt + ""; + return txt === undefined ? this : $.enabled ? run(this.keys, txt + "") : txt + ""; } - return txt === undefined ? chain([open], [blk]) : $2.enabled ? run2([blk], txt + "") : txt + ""; + return txt === undefined ? chain([open], [blk]) : $.enabled ? run([blk], txt + "") : txt + ""; }; } - module.exports = $2; + module.exports = $; }); // node_modules/prompts/dist/util/action.js @@ -52951,9 +54698,9 @@ var require_number = __commonJS((exports, module) => { var lines2 = _require2.lines; var isNumber = /[0-9]/; var isDef = (any) => any !== undefined; - var round = (number2, precision) => { + var round = (number, precision) => { let factor = Math.pow(10, precision); - return Math.round(number2 * factor) / factor; + return Math.round(number * factor) / factor; }; class NumberPrompt extends Prompt { @@ -53892,7 +55639,7 @@ var require_elements = __commonJS((exports, module) => { // node_modules/prompts/dist/prompts.js var require_prompts = __commonJS((exports) => { - var $2 = exports; + var $ = exports; var el = require_elements(); var noop = (v) => v; function toPrompt(type, args, opts = {}) { @@ -53907,27 +55654,27 @@ var require_prompts = __commonJS((exports) => { p.on("abort", (x) => rej(onAbort(x))); }); } - $2.text = (args) => toPrompt("TextPrompt", args); - $2.password = (args) => { + $.text = (args) => toPrompt("TextPrompt", args); + $.password = (args) => { args.style = "password"; - return $2.text(args); + return $.text(args); }; - $2.invisible = (args) => { + $.invisible = (args) => { args.style = "invisible"; - return $2.text(args); + return $.text(args); }; - $2.number = (args) => toPrompt("NumberPrompt", args); - $2.date = (args) => toPrompt("DatePrompt", args); - $2.confirm = (args) => toPrompt("ConfirmPrompt", args); - $2.list = (args) => { + $.number = (args) => toPrompt("NumberPrompt", args); + $.date = (args) => toPrompt("DatePrompt", args); + $.confirm = (args) => toPrompt("ConfirmPrompt", args); + $.list = (args) => { const sep = args.separator || ","; return toPrompt("TextPrompt", args, { onSubmit: (str) => str.split(sep).map((s) => s.trim()) }); }; - $2.toggle = (args) => toPrompt("TogglePrompt", args); - $2.select = (args) => toPrompt("SelectPrompt", args); - $2.multiselect = (args) => { + $.toggle = (args) => toPrompt("TogglePrompt", args); + $.select = (args) => toPrompt("SelectPrompt", args); + $.multiselect = (args) => { args.choices = [].concat(args.choices || []); const toSelected = (items) => items.filter((item) => item.selected).map((item) => item.value); return toPrompt("MultiselectPrompt", args, { @@ -53935,7 +55682,7 @@ var require_prompts = __commonJS((exports) => { onSubmit: toSelected }); }; - $2.autocompleteMultiselect = (args) => { + $.autocompleteMultiselect = (args) => { args.choices = [].concat(args.choices || []); const toSelected = (items) => items.filter((item) => item.selected).map((item) => item.value); return toPrompt("AutocompleteMultiselectPrompt", args, { @@ -53944,7 +55691,7 @@ var require_prompts = __commonJS((exports) => { }); }; var byTitle = (input, choices) => Promise.resolve(choices.filter((item) => item.title.slice(0, input.length).toLowerCase() === input.toLowerCase())); - $2.autocomplete = (args) => { + $.autocomplete = (args) => { args.suggest = args.suggest || byTitle; args.choices = [].concat(args.choices || []); return toPrompt("AutocompletePrompt", args); @@ -55328,9 +57075,9 @@ var require_number2 = __commonJS((exports, module) => { var { style, figures: figures2, clear, lines: lines2 } = require_util6(); var isNumber = /[0-9]/; var isDef = (any) => any !== undefined; - var round = (number2, precision) => { + var round = (number, precision) => { let factor = Math.pow(10, precision); - return Math.round(number2 * factor) / factor; + return Math.round(number * factor) / factor; }; class NumberPrompt extends Prompt { @@ -56216,7 +57963,7 @@ var require_elements2 = __commonJS((exports, module) => { // node_modules/prompts/lib/prompts.js var require_prompts2 = __commonJS((exports) => { - var $2 = exports; + var $ = exports; var el = require_elements2(); var noop = (v) => v; function toPrompt(type, args, opts = {}) { @@ -56231,27 +57978,27 @@ var require_prompts2 = __commonJS((exports) => { p.on("abort", (x) => rej(onAbort(x))); }); } - $2.text = (args) => toPrompt("TextPrompt", args); - $2.password = (args) => { + $.text = (args) => toPrompt("TextPrompt", args); + $.password = (args) => { args.style = "password"; - return $2.text(args); + return $.text(args); }; - $2.invisible = (args) => { + $.invisible = (args) => { args.style = "invisible"; - return $2.text(args); + return $.text(args); }; - $2.number = (args) => toPrompt("NumberPrompt", args); - $2.date = (args) => toPrompt("DatePrompt", args); - $2.confirm = (args) => toPrompt("ConfirmPrompt", args); - $2.list = (args) => { + $.number = (args) => toPrompt("NumberPrompt", args); + $.date = (args) => toPrompt("DatePrompt", args); + $.confirm = (args) => toPrompt("ConfirmPrompt", args); + $.list = (args) => { const sep = args.separator || ","; return toPrompt("TextPrompt", args, { onSubmit: (str) => str.split(sep).map((s) => s.trim()) }); }; - $2.toggle = (args) => toPrompt("TogglePrompt", args); - $2.select = (args) => toPrompt("SelectPrompt", args); - $2.multiselect = (args) => { + $.toggle = (args) => toPrompt("TogglePrompt", args); + $.select = (args) => toPrompt("SelectPrompt", args); + $.multiselect = (args) => { args.choices = [].concat(args.choices || []); const toSelected = (items) => items.filter((item) => item.selected).map((item) => item.value); return toPrompt("MultiselectPrompt", args, { @@ -56259,7 +58006,7 @@ var require_prompts2 = __commonJS((exports) => { onSubmit: toSelected }); }; - $2.autocompleteMultiselect = (args) => { + $.autocompleteMultiselect = (args) => { args.choices = [].concat(args.choices || []); const toSelected = (items) => items.filter((item) => item.selected).map((item) => item.value); return toPrompt("AutocompleteMultiselectPrompt", args, { @@ -56268,7 +58015,7 @@ var require_prompts2 = __commonJS((exports) => { }); }; var byTitle = (input, choices) => Promise.resolve(choices.filter((item) => item.title.slice(0, input.length).toLowerCase() === input.toLowerCase())); - $2.autocomplete = (args) => { + $.autocomplete = (args) => { args.suggest = args.suggest || byTitle; args.choices = [].concat(args.choices || []); return toPrompt("AutocompletePrompt", args); @@ -56762,8 +58509,8 @@ var require_shebang_regex = __commonJS((exports, module) => { // node_modules/shebang-command/index.js var require_shebang_command = __commonJS((exports, module) => { var shebangRegex = require_shebang_regex(); - module.exports = (string2 = "") => { - const match = string2.match(shebangRegex); + module.exports = (string = "") => { + const match = string.match(shebangRegex); if (!match) { return null; } @@ -56780,12 +58527,12 @@ var require_shebang_command = __commonJS((exports, module) => { var require_readShebang = __commonJS((exports, module) => { var fs6 = __require("fs"); var shebangCommand = require_shebang_command(); - function readShebang(command2) { + function readShebang(command) { const size = 150; const buffer = Buffer.alloc(size); let fd; try { - fd = fs6.openSync(command2, "r"); + fd = fs6.openSync(command, "r"); fs6.readSync(fd, buffer, 0, size, 0); fs6.closeSync(fd); } catch (e) { @@ -56796,7 +58543,7 @@ var require_readShebang = __commonJS((exports, module) => { }); // node_modules/cross-spawn/lib/parse.js -var require_parse2 = __commonJS((exports, module) => { +var require_parse = __commonJS((exports, module) => { var path5 = __require("path"); var resolveCommand = require_resolveCommand(); var escape = require_escape2(); @@ -56832,7 +58579,7 @@ var require_parse2 = __commonJS((exports, module) => { } return parsed; } - function parse(command2, args, options) { + function parse(command, args, options) { if (args && !Array.isArray(args)) { options = args; args = null; @@ -56840,12 +58587,12 @@ var require_parse2 = __commonJS((exports, module) => { args = args ? args.slice(0) : []; options = Object.assign({}, options); const parsed = { - command: command2, + command, args, options, file: undefined, original: { - command: command2, + command, args } }; @@ -56904,16 +58651,16 @@ var require_enoent = __commonJS((exports, module) => { // node_modules/cross-spawn/index.js var require_cross_spawn = __commonJS((exports, module) => { var cp = __require("child_process"); - var parse = require_parse2(); + var parse = require_parse(); var enoent = require_enoent(); - function spawn(command2, args, options) { - const parsed = parse(command2, args, options); + function spawn(command, args, options) { + const parsed = parse(command, args, options); const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); enoent.hookChildProcess(spawned, parsed); return spawned; } - function spawnSync(command2, args, options) { - const parsed = parse(command2, args, options); + function spawnSync(command, args, options) { + const parsed = parse(command, args, options); const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); return result; @@ -56925,1602 +58672,21 @@ var require_cross_spawn = __commonJS((exports, module) => { module.exports._enoent = enoent; }); -// node_modules/@drizzle-team/brocli/index.js -var __create2 = Object.create; -var __defProp2 = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames2 = Object.getOwnPropertyNames; -var __getProtoOf2 = Object.getPrototypeOf; -var __hasOwnProp2 = Object.prototype.hasOwnProperty; -var __commonJS2 = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, mod)); -var require_clone = __commonJS2({ - "node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js"(exports, module) { - var clone2 = function() { - function _instanceof(obj, type) { - return type != null && obj instanceof type; - } - var nativeMap; - try { - nativeMap = Map; - } catch (_2) { - nativeMap = function() { - }; - } - var nativeSet; - try { - nativeSet = Set; - } catch (_2) { - nativeSet = function() { - }; - } - var nativePromise; - try { - nativePromise = Promise; - } catch (_2) { - nativePromise = function() { - }; - } - function clone3(parent, circular, depth, prototype, includeNonEnumerable) { - if (typeof circular === "object") { - depth = circular.depth; - prototype = circular.prototype; - includeNonEnumerable = circular.includeNonEnumerable; - circular = circular.circular; - } - var allParents = []; - var allChildren = []; - var useBuffer = typeof Buffer != "undefined"; - if (typeof circular == "undefined") - circular = true; - if (typeof depth == "undefined") - depth = Infinity; - function _clone(parent2, depth2) { - if (parent2 === null) - return null; - if (depth2 === 0) - return parent2; - var child; - var proto; - if (typeof parent2 != "object") { - return parent2; - } - if (_instanceof(parent2, nativeMap)) { - child = new nativeMap; - } else if (_instanceof(parent2, nativeSet)) { - child = new nativeSet; - } else if (_instanceof(parent2, nativePromise)) { - child = new nativePromise(function(resolve, reject) { - parent2.then(function(value) { - resolve(_clone(value, depth2 - 1)); - }, function(err) { - reject(_clone(err, depth2 - 1)); - }); - }); - } else if (clone3.__isArray(parent2)) { - child = []; - } else if (clone3.__isRegExp(parent2)) { - child = new RegExp(parent2.source, __getRegExpFlags(parent2)); - if (parent2.lastIndex) - child.lastIndex = parent2.lastIndex; - } else if (clone3.__isDate(parent2)) { - child = new Date(parent2.getTime()); - } else if (useBuffer && Buffer.isBuffer(parent2)) { - if (Buffer.allocUnsafe) { - child = Buffer.allocUnsafe(parent2.length); - } else { - child = new Buffer(parent2.length); - } - parent2.copy(child); - return child; - } else if (_instanceof(parent2, Error)) { - child = Object.create(parent2); - } else { - if (typeof prototype == "undefined") { - proto = Object.getPrototypeOf(parent2); - child = Object.create(proto); - } else { - child = Object.create(prototype); - proto = prototype; - } - } - if (circular) { - var index = allParents.indexOf(parent2); - if (index != -1) { - return allChildren[index]; - } - allParents.push(parent2); - allChildren.push(child); - } - if (_instanceof(parent2, nativeMap)) { - parent2.forEach(function(value, key) { - var keyChild = _clone(key, depth2 - 1); - var valueChild = _clone(value, depth2 - 1); - child.set(keyChild, valueChild); - }); - } - if (_instanceof(parent2, nativeSet)) { - parent2.forEach(function(value) { - var entryChild = _clone(value, depth2 - 1); - child.add(entryChild); - }); - } - for (var i in parent2) { - var attrs; - if (proto) { - attrs = Object.getOwnPropertyDescriptor(proto, i); - } - if (attrs && attrs.set == null) { - continue; - } - child[i] = _clone(parent2[i], depth2 - 1); - } - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(parent2); - for (var i = 0;i < symbols.length; i++) { - var symbol = symbols[i]; - var descriptor = Object.getOwnPropertyDescriptor(parent2, symbol); - if (descriptor && !descriptor.enumerable && !includeNonEnumerable) { - continue; - } - child[symbol] = _clone(parent2[symbol], depth2 - 1); - if (!descriptor.enumerable) { - Object.defineProperty(child, symbol, { - enumerable: false - }); - } - } - } - if (includeNonEnumerable) { - var allPropertyNames = Object.getOwnPropertyNames(parent2); - for (var i = 0;i < allPropertyNames.length; i++) { - var propertyName = allPropertyNames[i]; - var descriptor = Object.getOwnPropertyDescriptor(parent2, propertyName); - if (descriptor && descriptor.enumerable) { - continue; - } - child[propertyName] = _clone(parent2[propertyName], depth2 - 1); - Object.defineProperty(child, propertyName, { - enumerable: false - }); - } - } - return child; - } - return _clone(parent, depth); - } - clone3.clonePrototype = function clonePrototype(parent) { - if (parent === null) - return null; - var c = function() { - }; - c.prototype = parent; - return new c; - }; - function __objToStr(o) { - return Object.prototype.toString.call(o); - } - clone3.__objToStr = __objToStr; - function __isDate(o) { - return typeof o === "object" && __objToStr(o) === "[object Date]"; - } - clone3.__isDate = __isDate; - function __isArray(o) { - return typeof o === "object" && __objToStr(o) === "[object Array]"; - } - clone3.__isArray = __isArray; - function __isRegExp(o) { - return typeof o === "object" && __objToStr(o) === "[object RegExp]"; - } - clone3.__isRegExp = __isRegExp; - function __getRegExpFlags(re) { - var flags = ""; - if (re.global) - flags += "g"; - if (re.ignoreCase) - flags += "i"; - if (re.multiline) - flags += "m"; - return flags; - } - clone3.__getRegExpFlags = __getRegExpFlags; - return clone3; - }(); - if (typeof module === "object" && module.exports) { - module.exports = clone2; - } - } -}); -var require_quote = __commonJS2({ - "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/quote.js"(exports, module) { - module.exports = function quote(xs) { - return xs.map(function(s) { - if (s && typeof s === "object") { - return s.op.replace(/(.)/g, "\\$1"); - } - if (/["\s]/.test(s) && !/'/.test(s)) { - return "'" + s.replace(/(['\\])/g, "\\$1") + "'"; - } - if (/["'\s]/.test(s)) { - return '"' + s.replace(/(["\\$`!])/g, "\\$1") + '"'; - } - return String(s).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g, "$1\\$2"); - }).join(" "); - }; - } -}); -var require_parse = __commonJS2({ - "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/parse.js"(exports, module) { - var CONTROL = "(?:" + [ - "\\|\\|", - "\\&\\&", - ";;", - "\\|\\&", - "\\<\\(", - "\\<\\<\\<", - ">>", - ">\\&", - "<\\&", - "[&;()|<>]" - ].join("|") + ")"; - var controlRE = new RegExp("^" + CONTROL + "$"); - var META = "|&;()<> \\t"; - var SINGLE_QUOTE = '"((\\\\"|[^"])*?)"'; - var DOUBLE_QUOTE = "'((\\\\'|[^'])*?)'"; - var hash = /^#$/; - var SQ = "'"; - var DQ = '"'; - var DS = "$"; - var TOKEN = ""; - var mult = 4294967296; - for (i = 0;i < 4; i++) { - TOKEN += (mult * Math.random()).toString(16); - } - var i; - var startsWithToken = new RegExp("^" + TOKEN); - function matchAll(s, r) { - var origIndex = r.lastIndex; - var matches = []; - var matchObj; - while (matchObj = r.exec(s)) { - matches.push(matchObj); - if (r.lastIndex === matchObj.index) { - r.lastIndex += 1; - } - } - r.lastIndex = origIndex; - return matches; - } - function getVar(env, pre, key) { - var r = typeof env === "function" ? env(key) : env[key]; - if (typeof r === "undefined" && key != "") { - r = ""; - } else if (typeof r === "undefined") { - r = "$"; - } - if (typeof r === "object") { - return pre + TOKEN + JSON.stringify(r) + TOKEN; - } - return pre + r; - } - function parseInternal(string2, env, opts) { - if (!opts) { - opts = {}; - } - var BS = opts.escape || "\\"; - var BAREWORD = "(\\" + BS + `['"` + META + `]|[^\\s'"` + META + "])+"; - var chunker = new RegExp([ - "(" + CONTROL + ")", - "(" + BAREWORD + "|" + SINGLE_QUOTE + "|" + DOUBLE_QUOTE + ")+" - ].join("|"), "g"); - var matches = matchAll(string2, chunker); - if (matches.length === 0) { - return []; - } - if (!env) { - env = {}; - } - var commented = false; - return matches.map(function(match) { - var s = match[0]; - if (!s || commented) { - return; - } - if (controlRE.test(s)) { - return { op: s }; - } - var quote = false; - var esc = false; - var out = ""; - var isGlob = false; - var i2; - function parseEnvVar() { - i2 += 1; - var varend; - var varname; - var char = s.charAt(i2); - if (char === "{") { - i2 += 1; - if (s.charAt(i2) === "}") { - throw new Error("Bad substitution: " + s.slice(i2 - 2, i2 + 1)); - } - varend = s.indexOf("}", i2); - if (varend < 0) { - throw new Error("Bad substitution: " + s.slice(i2)); - } - varname = s.slice(i2, varend); - i2 = varend; - } else if (/[*@#?$!_-]/.test(char)) { - varname = char; - i2 += 1; - } else { - var slicedFromI = s.slice(i2); - varend = slicedFromI.match(/[^\w\d_]/); - if (!varend) { - varname = slicedFromI; - i2 = s.length; - } else { - varname = slicedFromI.slice(0, varend.index); - i2 += varend.index - 1; - } - } - return getVar(env, "", varname); - } - for (i2 = 0;i2 < s.length; i2++) { - var c = s.charAt(i2); - isGlob = isGlob || !quote && (c === "*" || c === "?"); - if (esc) { - out += c; - esc = false; - } else if (quote) { - if (c === quote) { - quote = false; - } else if (quote == SQ) { - out += c; - } else { - if (c === BS) { - i2 += 1; - c = s.charAt(i2); - if (c === DQ || c === BS || c === DS) { - out += c; - } else { - out += BS + c; - } - } else if (c === DS) { - out += parseEnvVar(); - } else { - out += c; - } - } - } else if (c === DQ || c === SQ) { - quote = c; - } else if (controlRE.test(c)) { - return { op: s }; - } else if (hash.test(c)) { - commented = true; - var commentObj = { comment: string2.slice(match.index + i2 + 1) }; - if (out.length) { - return [out, commentObj]; - } - return [commentObj]; - } else if (c === BS) { - esc = true; - } else if (c === DS) { - out += parseEnvVar(); - } else { - out += c; - } - } - if (isGlob) { - return { op: "glob", pattern: out }; - } - return out; - }).reduce(function(prev, arg) { - return typeof arg === "undefined" ? prev : prev.concat(arg); - }, []); - } - module.exports = function parse(s, env, opts) { - var mapped = parseInternal(s, env, opts); - if (typeof env !== "function") { - return mapped; - } - return mapped.reduce(function(acc, s2) { - if (typeof s2 === "object") { - return acc.concat(s2); - } - var xs = s2.split(RegExp("(" + TOKEN + ".*?" + TOKEN + ")", "g")); - if (xs.length === 1) { - return acc.concat(xs[0]); - } - return acc.concat(xs.filter(Boolean).map(function(x) { - if (startsWithToken.test(x)) { - return JSON.parse(x.split(TOKEN)[1]); - } - return x; - })); - }, []); - }; - } -}); -var require_shell_quote = __commonJS2({ - "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/index.js"(exports) { - exports.quote = require_quote(); - exports.parse = require_parse(); - } -}); -var BroCliError = class extends Error { - constructor(message, event) { - const errPrefix = "BroCli error: "; - super(message === undefined ? message : `${errPrefix}${message}`); - this.event = event; - } -}; -var import_clone = __toESM2(require_clone(), 1); -var getOptionTypeText = (option) => { - let result = ""; - switch (option.type) { - case "boolean": - result = ""; - break; - case "number": { - if ((option.minVal ?? option.maxVal) !== undefined) { - let text = ""; - if (option.isInt) - text = text + `integer `; - if (option.minVal !== undefined) - text = text + `[${option.minVal};`; - else - text = text + `(āˆž;`; - if (option.maxVal !== undefined) - text = text + `${option.maxVal}]`; - else - text = text + `āˆž)`; - result = text; - break; - } - if (option.isInt) { - result = "integer"; - break; - } - result = "number"; - break; - } - case "string": { - if (option.enumVals) { - result = "[ " + option.enumVals.join(" | ") + " ]"; - break; - } - result = "string"; - break; - } - case "positional": { - result = `${option.isRequired ? "<" : "["}${option.enumVals ? option.enumVals.join("|") : option.name}${option.isRequired ? ">" : "]"}`; - break; - } - } - if (option.isRequired && option.type !== "positional") - result = "!" + result.length ? " " : "" + result; - return result; -}; -var defaultEventHandler = async (event) => { - switch (event.type) { - case "command_help": { - const command2 = event.command; - const commandName = getCommandNameWithParents(command2); - const cliName = event.name; - const desc = command2.desc ?? command2.shortDesc; - const subs = command2.subcommands?.filter((s) => !s.hidden); - const subcommands = subs && subs.length ? subs : undefined; - const defaultGlobals = [ - { - config: { - name: "--help", - aliases: ["-h"], - type: "boolean", - description: `help for ${commandName}`, - default: undefined - }, - $output: undefined - }, - { - config: { - name: "--version", - aliases: ["-v"], - type: "boolean", - description: `version${cliName ? ` for ${cliName}` : ""}`, - default: undefined - }, - $output: undefined - } - ]; - const globals = event.globals ? [...Object.values(event.globals), ...defaultGlobals] : defaultGlobals; - if (desc !== undefined) { - console.log(` -${desc}`); - } - const opts = Object.values(command2.options ?? {}).filter((opt) => !opt.config.isHidden); - const positionals = opts.filter((opt) => opt.config.type === "positional"); - const options = [...opts.filter((opt) => opt.config.type !== "positional"), ...globals]; - console.log(` -Usage:`); - if (command2.handler) { - console.log(` ${cliName ? cliName + " " : ""}${commandName}${positionals.length ? " " + positionals.map(({ config: p }) => getOptionTypeText(p)).join(" ") : ""} [flags]`); - } else - console.log(` ${cliName ? cliName + " " : ""}${commandName} [command]`); - if (command2.aliases) { - console.log(` -Aliases:`); - console.log(` ${[command2.name, ...command2.aliases].join(", ")}`); - } - if (subcommands) { - console.log(` -Available Commands:`); - const padding = 3; - const maxLength = subcommands.reduce((p, e) => e.name.length > p ? e.name.length : p, 0); - const paddedLength = maxLength + padding; - const preDescPad = 2 + paddedLength; - const data = subcommands.map((s) => ` ${s.name.padEnd(paddedLength)}${(() => { - const description = s.shortDesc ?? s.desc; - if (!description?.length) - return ""; - const split = description.split(` -`); - const first = split.shift(); - const final = [first, ...split.map((s2) => "".padEnd(preDescPad) + s2)].join(` -`); - return final; - })()}`).join(` -`); - console.log(data); - } - if (options.length) { - const aliasLength = options.reduce((p, e) => { - const currentLength = e.config.aliases.reduce((pa, a) => pa + a.length, 0) + (e.config.aliases.length - 1) * 2 + 1; - return currentLength > p ? currentLength : p; - }, 0); - const paddedAliasLength = aliasLength > 0 ? aliasLength + 1 : 0; - const nameLength = options.reduce((p, e) => { - const typeLen = getOptionTypeText(e.config).length; - const length = typeLen > 0 ? e.config.name.length + 1 + typeLen : e.config.name.length; - return length > p ? length : p; - }, 0) + 3; - const preDescPad = paddedAliasLength + nameLength + 2; - const data = options.map(({ config: opt }) => ` ${`${opt.aliases.length ? opt.aliases.join(", ") + "," : ""}`.padEnd(paddedAliasLength)}${`${opt.name}${(() => { - const typeText = getOptionTypeText(opt); - return typeText.length ? " " + typeText : ""; - })()}`.padEnd(nameLength)}${(() => { - if (!opt.description?.length) { - return opt.default !== undefined ? `default: ${JSON.stringify(opt.default)}` : ""; - } - const split = opt.description.split(` -`); - const first = split.shift(); - const def = opt.default !== undefined ? ` (default: ${JSON.stringify(opt.default)})` : ""; - const final = [first, ...split.map((s) => "".padEnd(preDescPad) + s)].join(` -`) + def; - return final; - })()}`).join(` -`); - console.log(` -Flags:`); - console.log(data); - } - if (subcommands) { - console.log(` -Use "${cliName ? cliName + " " : ""}${commandName} [command] --help" for more information about a command. -`); - } - return true; - } - case "global_help": { - const cliName = event.name; - const desc = event.description; - const commands = event.commands.filter((c) => !c.hidden); - const defaultGlobals = [ - { - config: { - name: "--help", - aliases: ["-h"], - type: "boolean", - description: `help${cliName ? ` for ${cliName}` : ""}`, - default: undefined - }, - $output: undefined - }, - { - config: { - name: "--version", - aliases: ["-v"], - type: "boolean", - description: `version${cliName ? ` for ${cliName}` : ""}`, - default: undefined - }, - $output: undefined - } - ]; - const globals = event.globals ? [...defaultGlobals, ...Object.values(event.globals)] : defaultGlobals; - if (desc !== undefined) { - console.log(`${desc} -`); - } - console.log("Usage:"); - console.log(` ${cliName ? cliName + " " : ""}[command]`); - if (commands.length) { - console.log(` -Available Commands:`); - const padding = 3; - const maxLength = commands.reduce((p, e) => e.name.length > p ? e.name.length : p, 0); - const paddedLength = maxLength + padding; - const data = commands.map((c) => ` ${c.name.padEnd(paddedLength)}${(() => { - const desc2 = c.shortDesc ?? c.desc; - if (!desc2?.length) - return ""; - const split = desc2.split(` -`); - const first = split.shift(); - const final = [first, ...split.map((s) => "".padEnd(paddedLength + 2) + s)].join(` -`); - return final; - })()}`).join(` -`); - console.log(data); - } else { - console.log(` -No available commands.`); - } - const aliasLength = globals.reduce((p, e) => { - const currentLength = e.config.aliases.reduce((pa, a) => pa + a.length, 0) + (e.config.aliases.length - 1) * 2 + 1; - return currentLength > p ? currentLength : p; - }, 0); - const paddedAliasLength = aliasLength > 0 ? aliasLength + 1 : 0; - const nameLength = globals.reduce((p, e) => { - const typeLen = getOptionTypeText(e.config).length; - const length = typeLen > 0 ? e.config.name.length + 1 + typeLen : e.config.name.length; - return length > p ? length : p; - }, 0) + 3; - const preDescPad = paddedAliasLength + nameLength + 2; - const gData = globals.map(({ config: opt }) => ` ${`${opt.aliases.length ? opt.aliases.join(", ") + "," : ""}`.padEnd(paddedAliasLength)}${`${opt.name}${(() => { - const typeText = getOptionTypeText(opt); - return typeText.length ? " " + typeText : ""; - })()}`.padEnd(nameLength)}${(() => { - if (!opt.description?.length) { - return opt.default !== undefined ? `default: ${JSON.stringify(opt.default)}` : ""; - } - const split = opt.description.split(` -`); - const first = split.shift(); - const def = opt.default !== undefined ? ` (default: ${JSON.stringify(opt.default)})` : ""; - const final = [first, ...split.map((s) => "".padEnd(preDescPad) + s)].join(` -`) + def; - return final; - })()}`).join(` -`); - console.log(` -Flags:`); - console.log(gData); - return true; - } - case "version": { - return true; - } - case "error": { - let msg; - switch (event.violation) { - case "above_max": { - const matchedName = event.offender.namePart; - const data = event.offender.dataPart; - const option = event.option; - const max = option.maxVal; - msg = `Invalid value: number type argument '${matchedName}' expects maximal value of ${max} as an input, got: ${data}`; - break; - } - case "below_min": { - const matchedName = event.offender.namePart; - const data = event.offender.dataPart; - const option = event.option; - const min = option.minVal; - msg = `Invalid value: number type argument '${matchedName}' expects minimal value of ${min} as an input, got: ${data}`; - break; - } - case "expected_int": { - const matchedName = event.offender.namePart; - const data = event.offender.dataPart; - msg = `Invalid value: number type argument '${matchedName}' expects an integer as an input, got: ${data}`; - break; - } - case "invalid_boolean_syntax": { - const matchedName = event.offender.namePart; - const data = event.offender.dataPart; - msg = `Invalid syntax: boolean type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}= | ${matchedName} | ${matchedName}. -Allowed values: true, false, 0, 1`; - break; - } - case "invalid_string_syntax": { - const matchedName = event.offender.namePart; - msg = `Invalid syntax: string type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}= | ${matchedName} `; - break; - } - case "invalid_number_syntax": { - const matchedName = event.offender.namePart; - msg = `Invalid syntax: number type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}= | ${matchedName} `; - break; - } - case "invalid_number_value": { - const matchedName = event.offender.namePart; - const data = event.offender.dataPart; - msg = `Invalid value: number type argument '${matchedName}' expects a number as an input, got: ${data}`; - break; - } - case "enum_violation": { - const matchedName = event.offender.namePart; - const data = event.offender.dataPart; - const option = event.option; - const values = option.enumVals; - msg = option.type === "positional" ? `Invalid value: value for the positional argument '${option.name}' must be either one of the following: ${values.join(", ")}; Received: ${data}` : `Invalid value: value for the argument '${matchedName}' must be either one of the following: ${values.join(", ")}; Received: ${data}`; - break; - } - case "unknown_command_error": { - const msg2 = `Unknown command: '${event.offender}'. -Type '--help' to get help on the cli.`; - console.error(msg2); - return true; - } - case "unknown_subcommand_error": { - const cName = getCommandNameWithParents(event.command); - const msg2 = `Unknown command: ${cName} ${event.offender}. -Type '${cName} --help' to get the help on command.`; - console.error(msg2); - return true; - } - case "missing_args_error": { - const { missing: missingOpts, command: command2 } = event; - msg = `Command '${command2.name}' is missing following required options: ${missingOpts.map((opt) => { - const name = opt.shift(); - const aliases = opt; - if (aliases.length) - return `${name} [${aliases.join(", ")}]`; - return name; - }).join(", ")}`; - break; - } - case "unrecognized_args_error": { - const { command: command2, unrecognized } = event; - msg = `Unrecognized options for command '${command2.name}': ${unrecognized.join(", ")}`; - break; - } - case "unknown_error": { - const e = event.error; - console.error(typeof e === "object" && e !== null && "message" in e ? e.message : e); - return true; - } - } - console.error(msg); - return true; - } - } - return false; -}; -var eventHandlerWrapper = (customEventHandler) => async (event) => await customEventHandler(event) ? true : await defaultEventHandler(event); -var import_shell_quote = __toESM2(require_shell_quote(), 1); -function isInt(value) { - return value === Math.floor(value); -} -var executeOrLog = async (target) => typeof target === "string" ? console.log(target) : target ? await target() : undefined; -var generatePrefix = (name) => name.startsWith("-") ? name : name.length > 1 ? `--${name}` : `-${name}`; -var validateOptions = (config) => { - const cloned = (0, import_clone.default)(config); - const entries = []; - const storedNames = []; - const cfgEntries = Object.entries(cloned); - for (const [key, value] of cfgEntries) { - const cfg = value._.config; - if (cfg.name === undefined) - cfg.name = key; - if (cfg.type === "positional") - continue; - if (cfg.name.includes("=")) { - throw new BroCliError(`Can't define option '${generatePrefix(cfg.name)}' - option names and aliases cannot contain '='!`); - } - for (const alias of cfg.aliases) { - if (alias.includes("=")) { - throw new BroCliError(`Can't define option '${generatePrefix(cfg.name)}' - option names and aliases cannot contain '='!`); - } - } - cfg.name = generatePrefix(cfg.name); - cfg.aliases = cfg.aliases.map((a) => generatePrefix(a)); - } - for (const [key, value] of cfgEntries) { - const cfg = value._.config; - if (cfg.type === "positional") { - entries.push([key, { config: cfg, $output: undefined }]); - continue; - } - const reservedNames = ["--help", "-h", "--version", "-v"]; - const allNames = [cfg.name, ...cfg.aliases]; - for (const name of allNames) { - const match = reservedNames.find((n) => n === name); - if (match) - throw new BroCliError(`Can't define option '${cfg.name}' - name '${match}' is reserved!`); - } - for (const storage of storedNames) { - const nameOccupier = storage.find((e) => e === cfg.name); - if (!nameOccupier) - continue; - throw new BroCliError(`Can't define option '${cfg.name}' - name is already in use by option '${storage[0]}'!`); - } - for (const alias of cfg.aliases) { - for (const storage of storedNames) { - const nameOccupier = storage.find((e) => e === alias); - if (!nameOccupier) - continue; - throw new BroCliError(`Can't define option '${cfg.name}' - alias '${alias}' is already in use by option '${storage[0]}'!`); - } - } - const currentNames = [cfg.name, ...cfg.aliases]; - storedNames.push(currentNames); - currentNames.forEach((name, idx) => { - if (currentNames.findIndex((e) => e === name) === idx) - return; - throw new BroCliError(`Can't define option '${cfg.name}' - duplicate alias '${name}'!`); - }); - entries.push([key, { config: cfg, $output: undefined }]); - } - return Object.fromEntries(entries); -}; -var assignParent = (parent, subcommands) => subcommands.forEach((e) => { - e.parent = parent; - if (e.subcommands) - assignParent(e, e.subcommands); -}); -var command = (command2) => { - const allNames = command2.aliases ? [command2.name, ...command2.aliases] : [command2.name]; - const cmd = (0, import_clone.default)(command2); - if (command2.subcommands && command2.options && Object.values(command2.options).find((opt) => opt._.config.type === "positional")) { - throw new BroCliError(`Can't define command '${cmd.name}' - command can't have subcommands and positional args at the same time!`); - } - if (!command2.handler && !command2.subcommands) { - throw new BroCliError(`Can't define command '${cmd.name}' - command without subcommands must have a handler present!`); - } - const processedOptions = command2.options ? validateOptions(command2.options) : undefined; - cmd.options = processedOptions; - cmd.name = cmd.name ?? cmd.aliases?.shift(); - if (!cmd.name) - throw new BroCliError(`Can't define command without name!`); - cmd.aliases = cmd.aliases?.length ? cmd.aliases : undefined; - if (cmd.name.startsWith("-")) { - throw new BroCliError(`Can't define command '${cmd.name}' - command name can't start with '-'!`); - } - cmd.aliases?.forEach((a) => { - if (a.startsWith("-")) { - throw new BroCliError(`Can't define command '${cmd.name}' - command aliases can't start with '-'!`); - } - }); - allNames.forEach((n, i) => { - if (n === "help") { - throw new BroCliError(`Can't define command '${cmd.name}' - 'help' is a reserved name. If you want to redefine help message - do so in runCli's config.`); - } - const lCaseName = n?.toLowerCase(); - if (lCaseName === "0" || lCaseName === "1" || lCaseName === "true" || lCaseName === "false") { - throw new BroCliError(`Can't define command '${cmd.name}' - '${n}' is a reserved for boolean values name!`); - } - const idx = allNames.findIndex((an) => an === n); - if (idx !== i) - throw new BroCliError(`Can't define command '${cmd.name}' - duplicate alias '${n}'!`); - }); - if (cmd.subcommands) { - assignParent(cmd, cmd.subcommands); - } - return cmd; -}; -var getCommandInner = (commands, candidates, args, cliName, cliDescription) => { - const { data: arg, originalIndex: index } = candidates.shift(); - const command2 = commands.find((c) => { - const names = c.aliases ? [c.name, ...c.aliases] : [c.name]; - const res = names.find((name) => name === arg); - return res; - }); - if (!command2) { - return { - command: command2, - args - }; - } - const newArgs = removeByIndex(args, index); - if (!candidates.length || !command2.subcommands) { - return { - command: command2, - args: newArgs - }; - } - const newCandidates = candidates.map((c) => ({ data: c.data, originalIndex: c.originalIndex - 1 })); - const subcommand = getCommandInner(command2.subcommands, newCandidates, newArgs, cliName, cliDescription); - if (!subcommand.command) { - throw new BroCliError(undefined, { - type: "error", - violation: "unknown_subcommand_error", - name: cliName, - description: cliDescription, - command: command2, - offender: candidates[0].data - }); - } - return subcommand; -}; -var getCommand = (commands, args, cliName, cliDescription) => { - const candidates = []; - for (let i = 0;i < args.length; ++i) { - const arg = args[i]; - if (arg === "--help" || arg === "-h" || arg === "--version" || arg === "-v") { - const lCaseNext = args[i + 1]?.toLowerCase(); - if (lCaseNext === "0" || lCaseNext === "1" || lCaseNext === "true" || lCaseNext === "false") - ++i; - continue; - } - if (arg?.startsWith("-")) { - if (!arg.includes("=")) - ++i; - continue; - } - candidates.push({ - data: arg, - originalIndex: i - }); - } - if (!candidates.length) { - return { - command: undefined, - args - }; - } - const firstCandidate = candidates[0]; - if (firstCandidate.data === "help") { - return { - command: "help", - args: removeByIndex(args, firstCandidate.originalIndex) - }; - } - const { command: command2, args: argsRes } = getCommandInner(commands, candidates, args, cliName, cliDescription); - if (!command2) { - throw new BroCliError(undefined, { - type: "error", - violation: "unknown_command_error", - commands, - name: cliName, - description: cliDescription, - offender: firstCandidate.data - }); - } - return { - command: command2, - args: argsRes - }; -}; -var parseArg = (command2, options, positionals, arg, nextArg, cliName, cliDescription) => { - let data = undefined; - const argSplit = arg.split("="); - const hasEq = arg.includes("="); - const namePart = argSplit.shift(); - const dataPart = hasEq ? argSplit.join("=") : nextArg; - let skipNext = !hasEq; - if (namePart === "--help" || namePart === "-h") { - return { - isHelp: true - }; - } - if (namePart === "--version" || namePart === "-v") { - return { - isVersion: true - }; - } - if (!arg.startsWith("-")) { - if (!positionals.length) - return {}; - const pos = positionals.shift(); - if (pos[1].enumVals && !pos[1].enumVals.find((val) => val === arg)) { - throw new BroCliError(undefined, { - type: "error", - name: cliName, - description: cliDescription, - violation: "enum_violation", - command: command2, - option: pos[1], - offender: { - dataPart: arg - } - }); - } - data = arg; - return { - data, - skipNext: false, - name: pos[0], - option: pos[1] - }; - } - const option = options.find(([optKey, opt]) => { - const names = [opt.name, ...opt.aliases]; - if (opt.type === "boolean") { - const match = names.find((name) => name === namePart); - if (!match) - return false; - let lcaseData = dataPart?.toLowerCase(); - if (!hasEq && nextArg?.startsWith("-")) { - data = true; - skipNext = false; - return true; - } - if (lcaseData === undefined || lcaseData === "" || lcaseData === "true" || lcaseData === "1") { - data = true; - return true; - } - if (lcaseData === "false" || lcaseData === "0") { - data = false; - return true; - } - if (!hasEq) { - data = true; - skipNext = false; - return true; - } - throw new BroCliError(undefined, { - type: "error", - name: cliName, - description: cliDescription, - violation: "invalid_boolean_syntax", - option: opt, - command: command2, - offender: { - namePart, - dataPart - } - }); - } else { - const match = names.find((name) => name === namePart); - if (!match) - return false; - if (opt.type === "string") { - if (!hasEq && nextArg === undefined) { - throw new BroCliError(undefined, { - type: "error", - name: cliName, - description: cliDescription, - violation: "invalid_string_syntax", - option: opt, - command: command2, - offender: { - namePart, - dataPart - } - }); - } - if (opt.enumVals && !opt.enumVals.find((val) => val === dataPart)) { - throw new BroCliError(undefined, { - type: "error", - name: cliName, - description: cliDescription, - violation: "enum_violation", - option: opt, - command: command2, - offender: { - namePart, - dataPart - } - }); - } - data = dataPart; - return true; - } - if (!hasEq && nextArg === undefined) { - throw new BroCliError(undefined, { - type: "error", - name: cliName, - description: cliDescription, - violation: "invalid_number_syntax", - option: opt, - command: command2, - offender: { - namePart, - dataPart - } - }); - } - const numData = Number(dataPart); - if (isNaN(numData)) { - throw new BroCliError(undefined, { - type: "error", - name: cliName, - description: cliDescription, - violation: "invalid_number_value", - option: opt, - command: command2, - offender: { - namePart, - dataPart - } - }); - } - if (opt.isInt && !isInt(numData)) { - throw new BroCliError(undefined, { - type: "error", - name: cliName, - description: cliDescription, - violation: "expected_int", - option: opt, - command: command2, - offender: { - namePart, - dataPart - } - }); - } - if (opt.minVal !== undefined && numData < opt.minVal) { - throw new BroCliError(undefined, { - type: "error", - name: cliName, - description: cliDescription, - violation: "below_min", - option: opt, - command: command2, - offender: { - namePart, - dataPart - } - }); - } - if (opt.maxVal !== undefined && numData > opt.maxVal) { - throw new BroCliError(undefined, { - type: "error", - name: cliName, - description: cliDescription, - violation: "above_max", - option: opt, - command: command2, - offender: { - namePart, - dataPart - } - }); - } - data = numData; - return true; - } - }); - return { - data, - skipNext, - name: option?.[0], - option: option?.[1] - }; -}; -var parseOptions = (command2, args, cliName, cliDescription, omitKeysOfUndefinedOptions) => { - const options = command2.options; - let noOpts = !options; - const optEntries = Object.entries(options ?? {}).map((opt) => [opt[0], opt[1].config]); - const nonPositionalEntries = optEntries.filter(([key, opt]) => opt.type !== "positional"); - const positionalEntries = optEntries.filter(([key, opt]) => opt.type === "positional"); - const result = {}; - const missingRequiredArr = []; - const unrecognizedArgsArr = []; - for (let i = 0;i < args.length; ++i) { - const arg = args[i]; - const nextArg = args[i + 1]; - const { - data, - name, - option, - skipNext, - isHelp, - isVersion - } = parseArg(command2, nonPositionalEntries, positionalEntries, arg, nextArg, cliName, cliDescription); - if (!option) - unrecognizedArgsArr.push(arg.split("=")[0]); - if (skipNext) - ++i; - if (isHelp) - return "help"; - if (isVersion) - return "version"; - result[name] = data; - } - for (const [optKey, option] of optEntries) { - const data = result[optKey] ?? option.default; - if (!omitKeysOfUndefinedOptions) { - result[optKey] = data; - } else { - if (data !== undefined) - result[optKey] = data; - } - if (option.isRequired && result[optKey] === undefined) - missingRequiredArr.push([option.name, ...option.aliases]); - } - if (missingRequiredArr.length) { - throw new BroCliError(undefined, { - type: "error", - violation: "missing_args_error", - name: cliName, - description: cliDescription, - command: command2, - missing: missingRequiredArr - }); - } - if (unrecognizedArgsArr.length) { - throw new BroCliError(undefined, { - type: "error", - violation: "unrecognized_args_error", - name: cliName, - description: cliDescription, - command: command2, - unrecognized: unrecognizedArgsArr - }); - } - return noOpts ? undefined : result; -}; -var parseGlobals = (command2, globals, args, cliName, cliDescription, omitKeysOfUndefinedOptions) => { - if (!globals) - return; - const optEntries = Object.entries(globals).map((opt) => [opt[0], opt[1].config]); - const result = {}; - const missingRequiredArr = []; - for (let i = 0;i < args.length; ++i) { - const arg = args[i]; - const nextArg = args[i + 1]; - const { - data, - name, - option, - skipNext, - isHelp, - isVersion - } = parseArg(command2, optEntries, [], arg, nextArg, cliName, cliDescription); - if (skipNext) - ++i; - if (isHelp) - return "help"; - if (isVersion) - return "version"; - if (!option) - continue; - delete args[i]; - if (skipNext) - delete args[i - 1]; - result[name] = data; - } - for (const [optKey, option] of optEntries) { - const data = result[optKey] ?? option.default; - if (!omitKeysOfUndefinedOptions) { - result[optKey] = data; - } else { - if (data !== undefined) - result[optKey] = data; - } - if (option.isRequired && result[optKey] === undefined) - missingRequiredArr.push([option.name, ...option.aliases]); - } - if (missingRequiredArr.length) { - throw new BroCliError(undefined, { - type: "error", - violation: "missing_args_error", - name: cliName, - description: cliDescription, - command: command2, - missing: missingRequiredArr - }); - } - return Object.keys(result).length ? result : undefined; -}; -var getCommandNameWithParents = (command2) => command2.parent ? `${getCommandNameWithParents(command2.parent)} ${command2.name}` : command2.name; -var validateCommands = (commands, parent) => { - const storedNames = {}; - for (const cmd of commands) { - const storageVals = Object.values(storedNames); - for (const storage of storageVals) { - const nameOccupier = storage.find((e) => e === cmd.name); - if (!nameOccupier) - continue; - throw new BroCliError(`Can't define command '${getCommandNameWithParents(cmd)}': name is already in use by command '${parent ? `${getCommandNameWithParents(parent)} ` : ""}${storage[0]}'!`); - } - if (cmd.aliases) { - for (const alias of cmd.aliases) { - for (const storage of storageVals) { - const nameOccupier = storage.find((e) => e === alias); - if (!nameOccupier) - continue; - throw new BroCliError(`Can't define command '${getCommandNameWithParents(cmd)}': alias '${alias}' is already in use by command '${parent ? `${getCommandNameWithParents(parent)} ` : ""}${storage[0]}'!`); - } - } - } - storedNames[cmd.name] = cmd.aliases ? [cmd.name, ...cmd.aliases] : [cmd.name]; - if (cmd.subcommands) - cmd.subcommands = validateCommands(cmd.subcommands, cmd); - } - return commands; -}; -var validateGlobalsInner = (commands, globals) => { - for (const c of commands) { - const { options } = c; - if (!options) - continue; - for (const { config: opt } of Object.values(options)) { - const foundNameOverlap = globals.find(({ config: g }) => g.name === opt.name); - if (foundNameOverlap) { - throw new BroCliError(`Global options overlap with option '${opt.name}' of command '${getCommandNameWithParents(c)}' on name`); - } - let foundAliasOverlap = opt.aliases.find((a) => globals.find(({ config: g }) => g.name === a)) ?? globals.find(({ config: g }) => opt.aliases.find((a) => a === g.name)); - if (!foundAliasOverlap) { - for (const { config: g } of globals) { - foundAliasOverlap = g.aliases.find((gAlias) => opt.name === gAlias); - if (foundAliasOverlap) - break; - } - } - if (!foundAliasOverlap) { - for (const { config: g } of globals) { - foundAliasOverlap = g.aliases.find((gAlias) => opt.aliases.find((a) => a === gAlias)); - if (foundAliasOverlap) - break; - } - } - if (foundAliasOverlap) { - throw new BroCliError(`Global options overlap with option '${opt.name}' of command '${getCommandNameWithParents(c)}' on alias '${foundAliasOverlap}'`); - } - } - if (c.subcommands) - validateGlobalsInner(c.subcommands, globals); - } -}; -var validateGlobals = (commands, globals) => { - if (!globals) - return; - const globalEntries = Object.values(globals); - validateGlobalsInner(commands, globalEntries); -}; -var removeByIndex = (arr, idx) => [...arr.slice(0, idx), ...arr.slice(idx + 1, arr.length)]; -var run = async (commands, config) => { - const eventHandler = config?.theme ? eventHandlerWrapper(config.theme) : defaultEventHandler; - const argSource = config?.argSource ?? process.argv; - const version = config?.version; - const help = config?.help; - const omitKeysOfUndefinedOptions = config?.omitKeysOfUndefinedOptions ?? false; - const cliName = config?.name; - const cliDescription = config?.description; - const globals = config?.globals; - try { - const processedCmds = validateCommands(commands); - const processedGlobals = globals ? validateOptions(globals) : undefined; - if (processedGlobals) - validateGlobals(processedCmds, processedGlobals); - let args = argSource.slice(2, argSource.length); - if (!args.length) { - return help !== undefined ? await executeOrLog(help) : await eventHandler({ - type: "global_help", - description: cliDescription, - name: cliName, - commands: processedCmds, - globals: processedGlobals - }); - } - const helpIndex = args.findIndex((arg) => arg === "--help" || arg === "-h"); - if (helpIndex !== -1 && (helpIndex > 0 ? args[helpIndex - 1]?.startsWith("-") && !args[helpIndex - 1].includes("=") ? false : true : true)) { - const command3 = getCommand(processedCmds, args, cliName, cliDescription).command; - if (typeof command3 === "object") { - return command3.help !== undefined ? await executeOrLog(command3.help) : await eventHandler({ - type: "command_help", - description: cliDescription, - name: cliName, - command: command3, - globals: processedGlobals - }); - } else { - return help !== undefined ? await executeOrLog(help) : await eventHandler({ - type: "global_help", - description: cliDescription, - name: cliName, - commands: processedCmds, - globals: processedGlobals - }); - } - } - const versionIndex = args.findIndex((arg) => arg === "--version" || arg === "-v"); - if (versionIndex !== -1 && (versionIndex > 0 ? args[versionIndex - 1]?.startsWith("-") ? false : true : true)) { - return version !== undefined ? await executeOrLog(version) : await eventHandler({ - type: "version", - name: cliName, - description: cliDescription - }); - } - const { command: command2, args: newArgs } = getCommand(processedCmds, args, cliName, cliDescription); - if (!command2) { - return help !== undefined ? await executeOrLog(help) : await eventHandler({ - type: "global_help", - description: cliDescription, - name: cliName, - commands: processedCmds, - globals: processedGlobals - }); - } - if (command2 === "help") { - let helpCommand; - let newestArgs = newArgs; - do { - const res = getCommand(processedCmds, newestArgs, cliName, cliDescription); - helpCommand = res.command; - newestArgs = res.args; - } while (helpCommand === "help"); - return helpCommand ? helpCommand.help !== undefined ? await executeOrLog(helpCommand.help) : await eventHandler({ - type: "command_help", - description: cliDescription, - name: cliName, - command: helpCommand, - globals: processedGlobals - }) : help !== undefined ? await executeOrLog(help) : await eventHandler({ - type: "global_help", - description: cliDescription, - name: cliName, - commands: processedCmds, - globals: processedGlobals - }); - } - const gOptionResult = parseGlobals(command2, processedGlobals, newArgs, cliName, cliDescription, omitKeysOfUndefinedOptions); - const optionResult = gOptionResult && (gOptionResult === "help" || gOptionResult === "version") ? gOptionResult : parseOptions(command2, globals ? newArgs.filter((a) => a !== undefined) : newArgs, cliName, cliDescription, omitKeysOfUndefinedOptions); - if (optionResult === "help" || gOptionResult === "help") { - return command2.help !== undefined ? await executeOrLog(command2.help) : await eventHandler({ - type: "command_help", - description: cliDescription, - name: cliName, - command: command2, - globals: processedGlobals - }); - } - if (optionResult === "version" || gOptionResult === "version") { - return version !== undefined ? await executeOrLog(version) : await eventHandler({ - type: "version", - name: cliName, - description: cliDescription - }); - } - if (command2.handler) { - if (config?.hook) - await config.hook("before", command2, gOptionResult); - await command2.handler(command2.transform ? await command2.transform(optionResult) : optionResult); - if (config?.hook) - await config.hook("after", command2, gOptionResult); - return; - } else { - return command2.help !== undefined ? await executeOrLog(command2.help) : await eventHandler({ - type: "command_help", - description: cliDescription, - name: cliName, - command: command2, - globals: processedGlobals - }); - } - } catch (e) { - if (e instanceof BroCliError) { - if (e.event) - await eventHandler(e.event); - else { - if (!config?.noExit) - console.error(e.message); - else - return e.message; - } - } else { - await eventHandler({ - type: "error", - violation: "unknown_error", - name: cliName, - description: cliDescription, - error: e - }); - } - if (!config?.noExit) - process.exit(1); - return; - } -}; -var OptionBuilderBase = class _OptionBuilderBase { - _; - config = () => this._.config; - constructor(config) { - this._ = { - config: config ?? { - aliases: [], - type: "string" - }, - $output: undefined - }; - } - string(name) { - const config = this.config(); - return new _OptionBuilderBase({ ...config, type: "string", name }); - } - number(name) { - const config = this.config(); - return new _OptionBuilderBase({ ...config, type: "number", name }); - } - boolean(name) { - const config = this.config(); - return new _OptionBuilderBase({ ...config, type: "boolean", name }); - } - positional(displayName) { - const config = this.config(); - return new _OptionBuilderBase({ ...config, type: "positional", name: displayName }); - } - alias(...aliases) { - const config = this.config(); - return new _OptionBuilderBase({ ...config, aliases }); - } - desc(description) { - const config = this.config(); - return new _OptionBuilderBase({ ...config, description }); - } - hidden() { - const config = this.config(); - return new _OptionBuilderBase({ ...config, isHidden: true }); - } - required() { - const config = this.config(); - return new _OptionBuilderBase({ ...config, isRequired: true }); - } - default(value) { - const config = this.config(); - const enums = config.enumVals; - if (enums && !enums.find((v) => value === v)) { - throw new Error(`Option enums [ ${enums.join(", ")} ] are incompatible with default value ${value}`); - } - return new _OptionBuilderBase({ ...config, default: value }); - } - enum(...values) { - const config = this.config(); - const defaultVal = config.default; - if (defaultVal !== undefined && !values.find((v) => defaultVal === v)) { - throw new Error(`Option enums [ ${values.join(", ")} ] are incompatible with default value ${defaultVal}`); - } - return new _OptionBuilderBase({ ...config, enumVals: values }); - } - min(value) { - const config = this.config(); - const maxVal = config.maxVal; - if (maxVal !== undefined && maxVal < value) { - throw new BroCliError("Unable to define option's min value to be higher than max value!"); - } - return new _OptionBuilderBase({ ...config, minVal: value }); - } - max(value) { - const config = this.config(); - const minVal = config.minVal; - if (minVal !== undefined && minVal > value) { - throw new BroCliError("Unable to define option's max value to be lower than min value!"); - } - return new _OptionBuilderBase({ ...config, maxVal: value }); - } - int() { - const config = this.config(); - return new _OptionBuilderBase({ ...config, isInt: true }); - } -}; -function string(name) { - return typeof name === "string" ? new OptionBuilderBase().string(name) : new OptionBuilderBase().string(); -} -function number(name) { - return typeof name === "string" ? new OptionBuilderBase().number(name) : new OptionBuilderBase().number(); -} -function boolean(name) { - return typeof name === "string" ? new OptionBuilderBase().boolean(name) : new OptionBuilderBase().boolean(); -} -function positional(displayName) { - return typeof displayName === "string" ? new OptionBuilderBase().positional(displayName) : new OptionBuilderBase().positional(); -} +// node_modules/commander/esm.mjs +var import__ = __toESM(require_commander(), 1); +var { + program, + createCommand, + createArgument, + createOption, + CommanderError, + InvalidArgumentError, + InvalidOptionArgumentError, + Command, + Argument, + Option, + Help +} = import__.default; // src/commands/create.ts var import_fs_extra = __toESM(require_lib(), 1); @@ -58831,35 +58997,35 @@ var supportsColor = { var supports_color_default = supportsColor; // node_modules/chalk/source/utilities.js -function stringReplaceAll(string2, substring, replacer) { - let index = string2.indexOf(substring); +function stringReplaceAll(string, substring, replacer) { + let index = string.indexOf(substring); if (index === -1) { - return string2; + return string; } const substringLength = substring.length; let endIndex = 0; let returnValue = ""; do { - returnValue += string2.slice(endIndex, index) + substring + replacer; + returnValue += string.slice(endIndex, index) + substring + replacer; endIndex = index + substringLength; - index = string2.indexOf(substring, endIndex); + index = string.indexOf(substring, endIndex); } while (index !== -1); - returnValue += string2.slice(endIndex); + returnValue += string.slice(endIndex); return returnValue; } -function stringEncaseCRLFWithFirstIndex(string2, prefix, postfix, index) { +function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) { let endIndex = 0; let returnValue = ""; do { - const gotCR = string2[index - 1] === "\r"; - returnValue += string2.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? `\r + const gotCR = string[index - 1] === "\r"; + returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? `\r ` : ` `) + postfix; endIndex = index + 1; - index = string2.indexOf(` + index = string.indexOf(` `, endIndex); } while (index !== -1); - returnValue += string2.slice(endIndex); + returnValue += string.slice(endIndex); return returnValue; } @@ -58984,27 +59150,27 @@ var createBuilder = (self2, _styler, _isEmpty) => { builder[IS_EMPTY] = _isEmpty; return builder; }; -var applyStyle = (self2, string2) => { - if (self2.level <= 0 || !string2) { - return self2[IS_EMPTY] ? "" : string2; +var applyStyle = (self2, string) => { + if (self2.level <= 0 || !string) { + return self2[IS_EMPTY] ? "" : string; } let styler = self2[STYLER]; if (styler === undefined) { - return string2; + return string; } const { openAll, closeAll } = styler; - if (string2.includes("\x1B")) { + if (string.includes("\x1B")) { while (styler !== undefined) { - string2 = stringReplaceAll(string2, styler.close, styler.open); + string = stringReplaceAll(string, styler.close, styler.open); styler = styler.parent; } } - const lfIndex = string2.indexOf(` + const lfIndex = string.indexOf(` `); if (lfIndex !== -1) { - string2 = stringEncaseCRLFWithFirstIndex(string2, closeAll, openAll, lfIndex); + string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); } - return openAll + string2 + closeAll; + return openAll + string + closeAll; }; Object.defineProperties(createChalk.prototype, styles2); var chalk = createChalk(); @@ -59178,11 +59344,11 @@ function ansiRegex({ onlyFirst = false } = {}) { // node_modules/strip-ansi/index.js var regex = ansiRegex(); -function stripAnsi2(string2) { - if (typeof string2 !== "string") { - throw new TypeError(`Expected a \`string\`, got \`${typeof string2}\``); +function stripAnsi(string) { + if (typeof string !== "string") { + throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``); } - return string2.replace(regex, ""); + return string.replace(regex, ""); } // node_modules/get-east-asian-width/lookup.js @@ -59214,8 +59380,8 @@ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) { var import_emoji_regex = __toESM(require_emoji_regex2(), 1); var segmenter = new Intl.Segmenter; var defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u; -function stringWidth(string2, options = {}) { - if (typeof string2 !== "string" || string2.length === 0) { +function stringWidth(string, options = {}) { + if (typeof string !== "string" || string.length === 0) { return 0; } const { @@ -59223,14 +59389,14 @@ function stringWidth(string2, options = {}) { countAnsiEscapeCodes = false } = options; if (!countAnsiEscapeCodes) { - string2 = stripAnsi2(string2); + string = stripAnsi(string); } - if (string2.length === 0) { + if (string.length === 0) { return 0; } let width = 0; const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow }; - for (const { segment: character } of segmenter.segment(string2)) { + for (const { segment: character } of segmenter.segment(string)) { const codePoint = character.codePointAt(0); if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { continue; @@ -59470,7 +59636,7 @@ class Ora { const fullSuffixText = this.#getFullSuffixText(this.#suffixText, "-"); const fullText = " ".repeat(this.#indent) + fullPrefixText + "--" + this.#text + "--" + fullSuffixText; this.#lineCount = 0; - for (const line of stripAnsi2(fullText).split(` + for (const line of stripAnsi(fullText).split(` `)) { this.#lineCount += Math.max(1, Math.ceil(stringWidth(line, { countAnsiEscapeCodes: true }) / columns)); } @@ -59681,60 +59847,56 @@ async function downloadAndExtractRepo(owner, repo, branch, subdir, destPath) { request.end(); }); } -var createCommand = command({ - name: "create", - desc: "create a new pipe", - handler: async () => { - console.log(source_default.bold(` -welcome to create-pipe! \uD83D\uDE80 +var createCommand2 = new Command().name("create").description("create a new pipe").action(async () => { + console.log(source_default.bold(` +welcome to screenpipe! \uD83D\uDE80 `)); - console.log(`let's create a new screenpipe pipe. + console.log(`let's create a new screenpipe pipe. `); - console.log("pipes are plugins that interact with captured screen and audio data."); - console.log(`build powerful agents, monetize it, etc. + console.log("pipes are plugins that interact with captured screen and audio data."); + console.log(`build powerful agents, monetize it, etc. `); - const pipeName = await esm_default5({ - message: "what is your pipe name?", - default: "my-screenpipe", - validate: (input) => { - if (input.trim().length === 0) - return "pipe name is required"; - return true; - } - }); - const directory = await esm_default5({ - message: "where would you like to create your pipe?", - default: pipeName - }); - const spinner = ora("creating your pipe...").start(); - try { - await downloadAndExtractRepo("mediar-ai", "screenpipe", "main", "pipes/obsidian", directory); - const pkgPath = path.join(process.cwd(), directory, "package.json"); - const pkg = await import_fs_extra.default.readJson(pkgPath); - pkg.name = pipeName; - pkg.dependencies = { - ...pkg.dependencies, - ...PIPE_ADDITIONS.dependencies - }; - pkg.devDependencies = { - ...pkg.devDependencies, - ...PIPE_ADDITIONS.devDependencies - }; - await import_fs_extra.default.writeJson(pkgPath, pkg, { spaces: 2 }); - spinner.succeed(source_default.green("pipe created successfully! \uD83C\uDF89")); - console.log(` + const pipeName = await esm_default5({ + message: "what is your pipe name?", + default: "my-screenpipe", + validate: (input) => { + if (input.trim().length === 0) + return "pipe name is required"; + return true; + } + }); + const directory = await esm_default5({ + message: "where would you like to create your pipe?", + default: pipeName + }); + const spinner = ora("creating your pipe...").start(); + try { + await downloadAndExtractRepo("mediar-ai", "screenpipe", "main", "pipes/obsidian", directory); + const pkgPath = path.join(process.cwd(), directory, "package.json"); + const pkg = await import_fs_extra.default.readJson(pkgPath); + pkg.name = pipeName; + pkg.dependencies = { + ...pkg.dependencies, + ...PIPE_ADDITIONS.dependencies + }; + pkg.devDependencies = { + ...pkg.devDependencies, + ...PIPE_ADDITIONS.devDependencies + }; + await import_fs_extra.default.writeJson(pkgPath, pkg, { spaces: 2 }); + spinner.succeed(source_default.green("pipe created successfully! \uD83C\uDF89")); + console.log(` to get started:`); - console.log(source_default.cyan(`cd ${directory}`)); - console.log(source_default.cyan("bun install # or use: npm install, pnpm install, yarn")); - console.log(source_default.cyan("bun dev # or use: npm run dev, pnpm dev, yarn dev")); - console.log(` + console.log(source_default.cyan(`cd ${directory}`)); + console.log(source_default.cyan("bun install # or use: npm install, pnpm install, yarn")); + console.log(source_default.cyan("bun dev # or use: npm run dev, pnpm dev, yarn dev")); + console.log(` when you're ready, you can ship your pipe to the app by adding it to the pipe store using the UI and then send a PR to the main repo. `); - } catch (error) { - spinner.fail("failed to create pipe"); - console.error(error); - process.exit(1); - } + } catch (error) { + spinner.fail("failed to create pipe"); + console.error(error); + process.exit(1); } }); // src/constants.ts @@ -59801,87 +59963,77 @@ var symbols = { }; // src/commands/login.ts -var loginCommand = command({ - name: "login", - options: { - apiKey: string().required().desc("API key to login with") - }, - handler: async (opts) => { - try { - console.log(colors8.info(` +var loginCommand = new Command().name("login").description("Login with an API key").requiredOption("--apiKey ", "API key to login with").action(async (opts) => { + try { + console.log(colors8.info(` ${symbols.info} Validating API key...`)); - const response = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { - method: "GET", + const response = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { + method: "GET", + headers: { + Authorization: `Bearer ${opts.apiKey}`, + "Content-Type": "application/json" + } + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(`Failed to validate API key ${error.error}`); + } + const data = await response.json(); + if (data.data.needs_name) { + const inquirer2 = (await Promise.resolve().then(() => (init_esm14(), exports_esm))).default; + const { developerName } = await inquirer2.prompt([ + { + type: "input", + name: "developerName", + message: "Enter your developer name:", + validate: (input) => { + if (input.length < 2) { + return "Developer name must be at least 2 characters"; + } + if (input.length > 50) { + return "Developer name must be less than 50 characters"; + } + return true; + } + } + ]); + const updateResponse = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { + method: "POST", headers: { Authorization: `Bearer ${opts.apiKey}`, "Content-Type": "application/json" - } + }, + body: JSON.stringify({ developer_name: developerName }) }); - if (!response.ok) { - const error = await response.json(); - throw new Error(`Failed to validate API key ${error.error}`); - } - const data = await response.json(); - if (data.data.needs_name) { - const inquirer2 = (await Promise.resolve().then(() => (init_esm14(), exports_esm))).default; - const { developerName } = await inquirer2.prompt([ - { - type: "input", - name: "developerName", - message: "Enter your developer name:", - validate: (input) => { - if (input.length < 2) { - return "Developer name must be at least 2 characters"; - } - if (input.length > 50) { - return "Developer name must be less than 50 characters"; - } - return true; - } - } - ]); - const updateResponse = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { - method: "POST", - headers: { - Authorization: `Bearer ${opts.apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ developer_name: developerName }) - }); - if (!updateResponse.ok) { - const error = await updateResponse.json(); - throw new Error(`Failed to set developer name: ${error.error}`); - } - const updateData = await updateResponse.json(); - data.data.developer_name = updateData.data.developer_name; + if (!updateResponse.ok) { + const error = await updateResponse.json(); + throw new Error(`Failed to set developer name: ${error.error}`); } - console.log(colors8.success(` + const updateData = await updateResponse.json(); + data.data.developer_name = updateData.data.developer_name; + } + console.log(colors8.success(` ${symbols.success} Successfully logged in!`)); - console.log(colors8.listItem(`${colors8.label("Developer ID")} ${data.data.developer_id}`)); - console.log(colors8.listItem(`${colors8.label("Developer Name")} ${data.data.developer_name}`)); - Credentials.setApiKey(opts.apiKey, data.data.developer_id); - } catch (error) { - if (error instanceof Error) { - console.error(colors8.error(` + console.log(colors8.listItem(`${colors8.label("Developer ID")} ${data.data.developer_id}`)); + console.log(colors8.listItem(`${colors8.label("Developer Name")} ${data.data.developer_name}`)); + Credentials.setApiKey(opts.apiKey, data.data.developer_id); + } catch (error) { + if (error instanceof Error) { + console.error(colors8.error(` ${symbols.error} Login failed: ${error.message}`)); - } else { - console.error(colors8.error(` + } else { + console.error(colors8.error(` ${symbols.error} Login failed with unexpected error`)); - } - process.exit(1); } + process.exit(1); } }); // src/commands/logout.ts -var logoutCommand = command({ - name: "logout", - desc: "End current session", - handler: async () => { - Credentials.clearCredentials(); - console.log(colors8.success(` +var logoutCommand = new Command().name("logout").description("end current session").action(async () => { + Credentials.clearCredentials(); + console.log(colors8.success(` ${symbols.success} Successfully logged out`)); - console.log(colors8.info(`${symbols.info} Thanks for using ScreenPipe! Come back soon.`)); - } + console.log(colors8.info(`${symbols.info} Thanks for using ScreenPipe! Come back soon.`)); }); // src/commands/publish.ts import fs3 from "fs"; @@ -59926,371 +60078,296 @@ function archiveStandardProject(archive, ig) { mark: true }); } -var publishCommand = command({ - name: "publish", - desc: "publish or update a pipe to the store", - options: { - name: string().required().desc("name of the pipe"), - verbose: boolean().desc("enable verbose logging").default(false) - }, - handler: async (opts) => { +var publishCommand = new Command().name("publish").description("Publish or update a pipe to the store").requiredOption("--name ", "Name of the pipe").option("--verbose", "Enable verbose logging", false).action(async (opts) => { + try { + if (opts.verbose) { + console.log(colors8.dim(`${symbols.arrow} starting publish command...`)); + } + const apiKey = Credentials.getApiKey(); + if (!apiKey) { + console.error(colors8.error(`${symbols.error} Not logged in. Please login first using ${colors8.highlight("screenpipe login")}`)); + process.exit(1); + } + if (opts.verbose) { + console.log(colors8.dim(`${symbols.arrow} reading package.json...`)); + } + let packageJson; try { - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} starting publish command...`)); - } - const apiKey = Credentials.getApiKey(); - if (!apiKey) { - console.error(colors8.error(`${symbols.error} Not logged in. Please login first using ${colors8.highlight("screenpipe login")}`)); - process.exit(1); - } - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} reading package.json...`)); - } - let packageJson; - try { - packageJson = JSON.parse(fs3.readFileSync("package.json", "utf-8")); - } catch (error) { - console.error(colors8.error(`${symbols.error} Failed to read package.json. Make sure you're in the correct directory.`)); - process.exit(1); - } - if (!packageJson.name || !packageJson.version) { - console.error(colors8.error(`${symbols.error} Package name and version are required in package.json`)); - process.exit(1); - } - console.log(colors8.info(` + packageJson = JSON.parse(fs3.readFileSync("package.json", "utf-8")); + } catch (error) { + console.error(colors8.error(`${symbols.error} Failed to read package.json. Make sure you're in the correct directory.`)); + process.exit(1); + } + if (!packageJson.name || !packageJson.version) { + console.error(colors8.error(`${symbols.error} Package name and version are required in package.json`)); + process.exit(1); + } + console.log(colors8.info(` ${symbols.info} Publishing ${colors8.highlight(packageJson.name)} v${packageJson.version}...`)); - console.log(colors8.dim(`${symbols.arrow} Creating package archive...`)); - const zipPath = path3.join(process.cwd(), `${packageJson.name}-${packageJson.version}.zip`); - const output = fs3.createWriteStream(zipPath); - const archive = import_archiver.default("zip", { zlib: { level: 9 } }); - const ig = import_ignore.default(); - if (fs3.existsSync(".gitignore")) { - ig.add(fs3.readFileSync(".gitignore").toString()); - } - const isNextProject = fs3.existsSync("next.config.js") || fs3.existsSync("next.config.mjs") || fs3.existsSync("next.config.ts"); - archive.pipe(output); - if (isNextProject) { - await archiveNextJsProject(archive); - } else { - archiveStandardProject(archive, ig); + console.log(colors8.dim(`${symbols.arrow} Creating package archive...`)); + const zipPath = path3.join(process.cwd(), `${packageJson.name}-${packageJson.version}.zip`); + const output = fs3.createWriteStream(zipPath); + const archive = import_archiver.default("zip", { zlib: { level: 9 } }); + const ig = import_ignore.default(); + if (fs3.existsSync(".gitignore")) { + ig.add(fs3.readFileSync(".gitignore").toString()); + } + const isNextProject = fs3.existsSync("next.config.js") || fs3.existsSync("next.config.mjs") || fs3.existsSync("next.config.ts"); + archive.pipe(output); + if (isNextProject) { + await archiveNextJsProject(archive); + } else { + archiveStandardProject(archive, ig); + } + await new Promise((resolve, reject) => { + output.on("close", resolve); + archive.on("error", reject); + archive.finalize(); + }); + if (opts.verbose) { + console.log(colors8.dim(`${symbols.arrow} detected project type: ${isNextProject ? "nextjs" : "standard"}`)); + console.log(colors8.dim(`${symbols.arrow} starting archive creation...`)); + } + const fileBuffer = fs3.readFileSync(zipPath); + const hashSum = crypto.createHash("sha256"); + hashSum.update(fileBuffer); + const fileHash = hashSum.digest("hex"); + const fileSize = fs3.statSync(zipPath).size; + if (fileSize > MAX_FILE_SIZE) { + console.error(colors8.error(`${symbols.error} Package size (${(fileSize / 1024 / 1024).toFixed(2)}MB) exceeds maximum allowed size (${MAX_FILE_SIZE / 1024 / 1024}MB)`)); + fs3.unlinkSync(zipPath); + process.exit(1); + } + let description = null; + try { + const readmeContent = fs3.readFileSync("README.md", "utf-8"); + if (readmeContent) { + description = readmeContent; + } + } catch (error) { + console.log(colors8.dim(`${symbols.arrow} No README.md found, required for description`)); + } + if (!description) { + console.error(colors8.error(`${symbols.error} Description is required`)); + process.exit(1); + } + if (opts.verbose) { + console.log(colors8.dim(`${symbols.arrow} calculating file hash...`)); + } + try { + console.log(colors8.dim(`${symbols.arrow} Getting upload URL...`)); + const urlResponse = await fetch(`${API_BASE_URL}/api/plugins/publish`, { + method: "POST", + headers: { + Authorization: `Bearer ${apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name, + version: packageJson.version, + fileSize, + fileHash, + description + }) + }); + if (!urlResponse.ok) { + throw new Error(`Failed to get upload URL: ${await urlResponse.text()}`); } - await new Promise((resolve, reject) => { - output.on("close", resolve); - archive.on("error", reject); - archive.finalize(); + const { uploadUrl, path: path4 } = await urlResponse.json(); + console.log(colors8.dim(`${symbols.arrow} Uploading to storage...`)); + const uploadResponse = await fetch(uploadUrl, { + method: "PUT", + headers: { + "Content-Type": "application/zip" + }, + body: fileBuffer }); - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} detected project type: ${isNextProject ? "nextjs" : "standard"}`)); - console.log(colors8.dim(`${symbols.arrow} starting archive creation...`)); - } - const fileBuffer = fs3.readFileSync(zipPath); - const hashSum = crypto.createHash("sha256"); - hashSum.update(fileBuffer); - const fileHash = hashSum.digest("hex"); - const fileSize = fs3.statSync(zipPath).size; - if (fileSize > MAX_FILE_SIZE) { - console.error(colors8.error(`${symbols.error} Package size (${(fileSize / 1024 / 1024).toFixed(2)}MB) exceeds maximum allowed size (${MAX_FILE_SIZE / 1024 / 1024}MB)`)); - fs3.unlinkSync(zipPath); - process.exit(1); + if (!uploadResponse.ok) { + const text = await uploadResponse.text(); + throw new Error(`Failed to upload file to storage: ${text}`); } - let description = null; - try { - const readmeContent = fs3.readFileSync("README.md", "utf-8"); - if (readmeContent) { - description = readmeContent; - } - } catch (error) { - console.log(colors8.dim(`${symbols.arrow} No README.md found, required for description`)); + console.log(colors8.dim(`${symbols.arrow} Finalizing upload...`)); + const finalizeResponse = await fetch(`${API_BASE_URL}/api/plugins/publish/finalize`, { + method: "POST", + headers: { + Authorization: `Bearer ${apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name, + version: packageJson.version, + fileHash, + storagePath: path4, + description, + fileSize + }) + }); + if (!finalizeResponse.ok) { + const text = await finalizeResponse.text(); + throw new Error(`Failed to finalize upload: ${text}`); } - if (!description) { - console.error(colors8.error(`${symbols.error} Description is required`)); - process.exit(1); + const data = await finalizeResponse.json(); + console.log(colors8.success(` +${symbols.success} Successfully published plugin!`)); + console.log(colors8.listItem(`${colors8.label("Name")} ${packageJson.name}`)); + console.log(colors8.listItem(`${colors8.label("Version")} ${packageJson.version}`)); + console.log(colors8.listItem(`${colors8.label("Size")} ${(fileSize / 1024).toFixed(2)} KB`)); + if (data.message) { + console.log(colors8.info(` +${symbols.info} ${data.message}`)); } + fs3.unlinkSync(zipPath); if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} calculating file hash...`)); + console.log(colors8.dim(`${symbols.arrow} cleaned up temporary zip file`)); } - try { - console.log(colors8.dim(`${symbols.arrow} Getting upload URL...`)); - const urlResponse = await fetch(`${API_BASE_URL}/api/plugins/publish`, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name, - version: packageJson.version, - fileSize, - fileHash, - description - }) - }); - if (!urlResponse.ok) { - throw new Error(`Failed to get upload URL: ${await urlResponse.text()}`); - } - const { uploadUrl, path: path4 } = await urlResponse.json(); - console.log(colors8.dim(`${symbols.arrow} Uploading to storage...`)); - const uploadResponse = await fetch(uploadUrl, { - method: "PUT", - headers: { - "Content-Type": "application/zip" - }, - body: fileBuffer - }); - if (!uploadResponse.ok) { - const text = await uploadResponse.text(); - throw new Error(`Failed to upload file to storage: ${text}`); - } - console.log(colors8.dim(`${symbols.arrow} Finalizing upload...`)); - const finalizeResponse = await fetch(`${API_BASE_URL}/api/plugins/publish/finalize`, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name, - version: packageJson.version, - fileHash, - storagePath: path4, - description, - fileSize - }) - }); - if (!finalizeResponse.ok) { - const text = await finalizeResponse.text(); - throw new Error(`Failed to finalize upload: ${text}`); - } - const data = await finalizeResponse.json(); - console.log(colors8.success(` -${symbols.success} Successfully published plugin!`)); - console.log(colors8.listItem(`${colors8.label("Name")} ${packageJson.name}`)); - console.log(colors8.listItem(`${colors8.label("Version")} ${packageJson.version}`)); - console.log(colors8.listItem(`${colors8.label("Size")} ${(fileSize / 1024).toFixed(2)} KB`)); - if (data.message) { - console.log(colors8.info(` -${symbols.info} ${data.message}`)); - } + } catch (error) { + if (fs3.existsSync(zipPath)) { fs3.unlinkSync(zipPath); if (opts.verbose) { console.log(colors8.dim(`${symbols.arrow} cleaned up temporary zip file`)); } - } catch (error) { - if (fs3.existsSync(zipPath)) { - fs3.unlinkSync(zipPath); - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} cleaned up temporary zip file`)); - } - } - if (error instanceof Error) { - console.error(colors8.error(` -${symbols.error} Publishing failed: ${error.message}`)); - } - process.exit(1); } - } catch (error) { if (error instanceof Error) { console.error(colors8.error(` ${symbols.error} Publishing failed: ${error.message}`)); - } else { - console.error(colors8.error(` -${symbols.error} Publishing failed with unexpected error`)); } process.exit(1); } + } catch (error) { + if (error instanceof Error) { + console.error(colors8.error(` +${symbols.error} Publishing failed: ${error.message}`)); + } else { + console.error(colors8.error(` +${symbols.error} Publishing failed with unexpected error`)); + } + process.exit(1); } }); // src/commands/register.ts import fs4 from "fs"; -var registerCommand = command({ - name: "register", - desc: "register a new pipe", - options: { - name: string().required().desc("name of the pipe"), - paid: boolean().desc("set this flag to create a paid pipe"), - price: number().desc("price in USD (required for paid pipes)"), - source: string().desc("source code URL (e.g. GitHub repository)") - }, - transform: (opts) => { - if (opts.paid && !opts.price) { - throw new Error("Price is required for paid pipes, i.e. --price "); +var registerCommand = new Command().name("register").description("Register a new pipe").requiredOption("--name ", "Name of the pipe").option("--paid", "Set this flag to create a paid pipe").option("--price ", "Price in USD (required for paid pipes)", parseFloat).option("--source ", "Source code URL (e.g., GitHub repository)").action(async (opts) => { + if (opts.paid && opts.price == null) { + console.error("Error: Price is required for paid pipes, i.e., --price "); + process.exit(1); + } + if (opts.paid && opts.price <= 0) { + console.error("Error: Price must be positive for paid pipes"); + process.exit(1); + } + try { + const apiKey = Credentials.getApiKey(); + if (!apiKey) { + console.error(colors8.error(`${symbols.error} Not logged in. Please login first using ${colors8.highlight("screenpipe login")}`)); + process.exit(1); } - if (opts.paid && opts.price && opts.price <= 0) { - throw new Error("Price must be positive for paid pipes"); + let packageJson; + try { + packageJson = JSON.parse(fs4.readFileSync("package.json", "utf-8")); + } catch (error) { + console.error(colors8.error(`${symbols.error} Failed to read package.json. Make sure you're in the correct directory.`)); + process.exit(1); } - return opts; - }, - handler: async (opts) => { + const isPaid = opts.paid || false; + const price = opts.price; + let description = null; try { - const apiKey = Credentials.getApiKey(); - if (!apiKey) { - console.error(colors8.error(`${symbols.error} Not logged in. Please login first using ${colors8.highlight("screenpipe login")}`)); - process.exit(1); - } - let packageJson; - try { - packageJson = JSON.parse(fs4.readFileSync("package.json", "utf-8")); - } catch (error) { - console.error(colors8.error(`${symbols.error} Failed to read package.json. Make sure you're in the correct directory.`)); - process.exit(1); - } - const isPaid = opts.paid || false; - const price = opts.price; - let description = null; - try { - const readmeContent = fs4.readFileSync("README.md", "utf-8"); - if (readmeContent) { - description = readmeContent; - } - } catch (error) { - console.log(colors8.dim(`${symbols.arrow} No README.md found, required for description`)); + const readmeContent = fs4.readFileSync("README.md", "utf-8"); + if (readmeContent) { + description = readmeContent; } - const response = await fetch(`${API_BASE_URL}/api/plugins/create`, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name, - description, - is_paid: isPaid, - price: isPaid ? price : null, - source_url: opts.source || null - }) - }); - if (!response.ok) { - const errorData = await response.json(); - throw new Error(errorData.error || "Failed to create plugin"); - } - const data = await response.json(); - console.log(colors8.success(` + } catch (error) { + console.log(colors8.dim(`${symbols.arrow} No README.md found, required for description`)); + } + const response = await fetch(`${API_BASE_URL}/api/plugins/create`, { + method: "POST", + headers: { + Authorization: `Bearer ${apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name, + description, + is_paid: isPaid, + price: isPaid ? price : null, + source_url: opts.source || null + }) + }); + if (!response.ok) { + const errorData = await response.json(); + throw new Error(errorData.error || "Failed to create plugin"); + } + const data = await response.json(); + console.log(colors8.success(` ${symbols.success} Successfully created pipe: ${colors8.highlight(opts.name)}`)); - console.log(colors8.info(` + console.log(colors8.info(` ${symbols.info} Plugin Details:`)); - console.log(colors8.listItem(`${colors8.label("Name")} ${opts.name}`)); - console.log(colors8.listItem(`${colors8.label("Type")} ${isPaid ? `Paid ($${price})` : "Free"}`)); - if (opts.source) { - console.log(colors8.listItem(`${colors8.label("Source")} ${opts.source}`)); - } - } catch (error) { - if (error instanceof Error) { - console.error(colors8.error(` + console.log(colors8.listItem(`${colors8.label("Name")} ${opts.name}`)); + console.log(colors8.listItem(`${colors8.label("Type")} ${isPaid ? `Paid ($${price})` : "Free"}`)); + if (opts.source) { + console.log(colors8.listItem(`${colors8.label("Source")} ${opts.source}`)); + } + } catch (error) { + if (error instanceof Error) { + console.error(colors8.error(` ${symbols.error} Creating failed: ${error.message}`)); - } else { - console.error(colors8.error(` + } else { + console.error(colors8.error(` ${symbols.error} Creating failed with unexpected error`)); - } - process.exit(1); } + process.exit(1); } }); // src/commands/list-versions.ts -var listVersionsCommand = command({ - name: "list-versions", - desc: "list all versions of a pipe", - options: { - name: string().required().desc("name of the pipe") - }, - handler: async (opts) => { - try { - const response = await fetch(`${API_BASE_URL}/api/plugins/list-versions`, { - method: "POST", - headers: { - Authorization: `Bearer ${Credentials.getApiKey()}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name - }) - }); - if (!response.ok) { - const error = await response.json(); - throw new Error(`Failed to list versions ${error.error}`); - } - const data = await response.json(); - console.log(colors8.header(`Plugin Information`)); - console.log(colors8.listItem(`${colors8.label("Name")} ${opts.name}`)); - console.log(colors8.listItem(`${colors8.label("ID")} ${data.plugin_id}`)); - console.log(colors8.header("Version History")); - data.versions.forEach((version) => { - const status = version.status === "published" ? colors8.success(version.status) : colors8.warning(version.status); - console.log(colors8.primary(` +var listVersionsCommand = new Command().name("list-versions").description("List all versions of a pipe").requiredOption("--name ", "Name of the pipe").action(async (opts) => { + try { + const response = await fetch(`${API_BASE_URL}/api/plugins/list-versions`, { + method: "POST", + headers: { + Authorization: `Bearer ${Credentials.getApiKey()}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name + }) + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(`Failed to list versions ${error.error}`); + } + const data = await response.json(); + console.log(colors8.header(`Plugin Information`)); + console.log(colors8.listItem(`${colors8.label("Name")} ${opts.name}`)); + console.log(colors8.listItem(`${colors8.label("ID")} ${data.plugin_id}`)); + console.log(colors8.header("Version History")); + data.versions.forEach((version) => { + const status = version.status === "published" ? colors8.success(version.status) : colors8.warning(version.status); + console.log(colors8.primary(` ${symbols.arrow} Version ${colors8.bold(version.version)} ${colors8.dim(`(${status})`)}`)); - console.log(colors8.listItem(`${colors8.label("Created")} ${new Date(version.created_at).toLocaleString()}`)); - console.log(colors8.listItem(`${colors8.label("Size")} ${(version.file_size / 1024).toFixed(2)} KB`)); - console.log(colors8.listItem(`${colors8.label("Hash")} ${colors8.dim(version.file_hash)}`)); - if (version.changelog) { - console.log(colors8.listItem(`${colors8.label("Changelog")} ${version.changelog}`)); - } - }); - } catch (error) { - if (error instanceof Error) { - console.error(colors8.error(` + console.log(colors8.listItem(`${colors8.label("Created")} ${new Date(version.created_at).toLocaleString()}`)); + console.log(colors8.listItem(`${colors8.label("Size")} ${(version.file_size / 1024).toFixed(2)} KB`)); + console.log(colors8.listItem(`${colors8.label("Hash")} ${colors8.dim(version.file_hash)}`)); + if (version.changelog) { + console.log(colors8.listItem(`${colors8.label("Changelog")} ${version.changelog}`)); + } + }); + } catch (error) { + if (error instanceof Error) { + console.error(colors8.error(` ${symbols.error} List versions failed: ${error.message}`)); - } else { - console.error(colors8.error(` + } else { + console.error(colors8.error(` ${symbols.error} List versions failed with unexpected error`)); - } - process.exit(1); } + process.exit(1); } }); -// node_modules/kleur/colors.mjs -var FORCE_COLOR; -var NODE_DISABLE_COLORS; -var NO_COLOR; -var TERM; -var isTTY = true; -if (typeof process !== "undefined") { - ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {}); - isTTY = process.stdout && process.stdout.isTTY; -} -var $ = { - enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== "dumb" && (FORCE_COLOR != null && FORCE_COLOR !== "0" || isTTY) -}; -function init(x, y) { - let rgx = new RegExp(`\\x1b\\[${y}m`, "g"); - let open = `\x1B[${x}m`, close = `\x1B[${y}m`; - return function(txt) { - if (!$.enabled || txt == null) - return txt; - return open + (~("" + txt).indexOf(close) ? txt.replace(rgx, close + open) : txt) + close; - }; -} -var reset = init(0, 0); -var bold = init(1, 22); -var dim = init(2, 22); -var italic = init(3, 23); -var underline = init(4, 24); -var inverse = init(7, 27); -var hidden = init(8, 28); -var strikethrough = init(9, 29); -var black = init(30, 39); -var red = init(31, 39); -var green = init(32, 39); -var yellow = init(33, 39); -var blue = init(34, 39); -var magenta = init(35, 39); -var cyan = init(36, 39); -var white = init(37, 39); -var gray = init(90, 39); -var grey = init(90, 39); -var bgBlack = init(40, 49); -var bgRed = init(41, 49); -var bgGreen = init(42, 49); -var bgYellow = init(43, 49); -var bgBlue = init(44, 49); -var bgMagenta = init(45, 49); -var bgCyan = init(46, 49); -var bgWhite = init(47, 49); - // src/commands/components/commands/add/utils/logger.ts var highlighter = { - error: red, - warn: yellow, - info: cyan, - success: green + error: colors8.error, + warn: colors8.warning, + info: colors8.info, + success: colors8.success }; var logger = { error(...args) { @@ -64448,23 +64525,22 @@ var registry_default = { // src/commands/components/commands/add/registry/api.ts var import_deepmerge = __toESM(require_cjs2(), 1); -async function getRegistry() { +function getRegistry() { try { const parsedRegistry = registrySchema.parse(registry_default); return parsedRegistry; } catch (error) { - logger.error(` -`); + logger.break(); handleError(error); } } -async function resolveRegistryItems(names) { +function resolveRegistryItems(names) { let registryDependencies = {}; - const registry = await getRegistry(); + const registry = getRegistry(); if (!registry) return; for (const name of names) { - const itemRegistryDependencies = await resolveRegistryDependencies(name, registry); + const itemRegistryDependencies = resolveRegistryDependencies(name, registry); registryDependencies = { ...registryDependencies, ...itemRegistryDependencies @@ -64472,57 +64548,49 @@ async function resolveRegistryItems(names) { } return registryDependencies; } -async function resolveRegistryDependencies(name, registry) { +function resolveRegistryDependencies(name, registry) { const components = {}; - async function resolveDependencies(componentName) { - try { - if (registry[componentName]) { - components[componentName] = registry[componentName]; - } else { - throw Error(componentName); - } - if (registry[componentName].registryDependencies) { - for (const dependency of registry[componentName].registryDependencies) { - await resolveDependencies(dependency); - } + function resolveDependencies(componentName) { + if (registry[componentName]) { + components[componentName] = registry[componentName]; + } else { + logger.break(); + handleError(`Component ${componentName} not found.`); + } + if (registry[componentName].registryDependencies) { + for (const dependency of registry[componentName].registryDependencies) { + resolveDependencies(dependency); } - } catch (error) { - console.error(`Component ${error.message} not found.`, error); } } - await resolveDependencies(name); + resolveDependencies(name); return components; } -async function registryResolveItemsTree(names) { - try { - let relevantItemsRegistry = await resolveRegistryItems(names); - const payload = registrySchema.parse(relevantItemsRegistry); - if (!payload) { - return null; - } - const componentArray = Object.values(payload); - let docs = ""; - componentArray.forEach((item) => { - if (item.docs) { - docs += `${item.docs} -`; - } - }); - return registryResolvedComponentsTreeSchema.parse({ - dependencies: import_deepmerge.default.all(componentArray.map((item) => item.dependencies ?? [])), - devDependencies: import_deepmerge.default.all(componentArray.map((item) => item.devDependencies ?? [])), - files: componentArray.map((item) => { - return { - src: item.src, - target: item.target - }; - }), - docs - }); - } catch (error) { - handleError(error); +function registryResolveItemsTree(names) { + let relevantItemsRegistry = resolveRegistryItems(names); + const payload = registrySchema.parse(relevantItemsRegistry); + if (!payload) { return null; } + const componentArray = Object.values(payload); + let docs = ""; + componentArray.forEach((item) => { + if (item.docs) { + docs += `${item.docs} +`; + } + }); + return registryResolvedComponentsTreeSchema.parse({ + dependencies: import_deepmerge.default.all(componentArray.map((item) => item.dependencies ?? [])), + devDependencies: import_deepmerge.default.all(componentArray.map((item) => item.devDependencies ?? [])), + files: componentArray.map((item) => { + return { + src: item.src, + target: item.target + }; + }), + docs + }); } // src/commands/components/commands/add/utils/prompt-for-component.ts @@ -64564,7 +64632,7 @@ async function promptForRegistryComponents(all) { // src/commands/components/commands/add/preflights/preflight-add.ts import fs5 from "fs"; import path4 from "path"; -async function preFlightAdd(cwd) { +function preFlightAdd(cwd) { const errors2 = {}; if (!fs5.existsSync(cwd) || !fs5.existsSync(path4.resolve(cwd, "package.json"))) { errors2[ERRORS.MISSING_DIR_OR_EMPTY_PIPE] = true; @@ -64627,7 +64695,7 @@ var isArrayBuffer = (value) => objectToString.call(value) === "[object ArrayBuff var isUint8Array = (value) => objectToString.call(value) === "[object Uint8Array]"; var bufferToUint8Array = (buffer) => new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); var textEncoder = new TextEncoder; -var stringToUint8Array = (string2) => textEncoder.encode(string2); +var stringToUint8Array = (string) => textEncoder.encode(string); var textDecoder = new TextDecoder; var uint8ArrayToString = (uint8Array) => textDecoder.decode(uint8Array); var joinToString = (uint8ArraysOrStrings, encoding) => { @@ -64869,14 +64937,14 @@ import { inspect } from "node:util"; // node_modules/execa/lib/arguments/escape.js import { platform } from "node:process"; -import { stripVTControlCharacters } from "node:util"; +import { stripVTControlCharacters as stripVTControlCharacters2 } from "node:util"; var joinCommand = (filePath, rawArguments) => { const fileAndArguments = [filePath, ...rawArguments]; - const command2 = fileAndArguments.join(" "); + const command = fileAndArguments.join(" "); const escapedCommand = fileAndArguments.map((fileAndArgument) => quoteString(escapeControlCharacters(fileAndArgument))).join(" "); - return { command: command2, escapedCommand }; + return { command, escapedCommand }; }; -var escapeLines = (lines2) => stripVTControlCharacters(lines2).split(` +var escapeLines = (lines2) => stripVTControlCharacters2(lines2).split(` `).map((line) => escapeControlCharacters(line)).join(` `); var escapeControlCharacters = (line) => line.replaceAll(SPECIAL_CHAR_REGEXP, (character) => escapeControlCharacter(character)); @@ -65200,48 +65268,48 @@ var format = (open, close) => { const openCode = `\x1B[${open}m`; const closeCode = `\x1B[${close}m`; return (input) => { - const string2 = input + ""; - let index = string2.indexOf(closeCode); + const string = input + ""; + let index = string.indexOf(closeCode); if (index === -1) { - return openCode + string2 + closeCode; + return openCode + string + closeCode; } let result = openCode; let lastIndex = 0; while (index !== -1) { - result += string2.slice(lastIndex, index) + openCode; + result += string.slice(lastIndex, index) + openCode; lastIndex = index + closeCode.length; - index = string2.indexOf(closeCode, lastIndex); + index = string.indexOf(closeCode, lastIndex); } - result += string2.slice(lastIndex) + closeCode; + result += string.slice(lastIndex) + closeCode; return result; }; }; -var reset2 = format(0, 0); -var bold2 = format(1, 22); -var dim2 = format(2, 22); -var italic2 = format(3, 23); -var underline2 = format(4, 24); +var reset = format(0, 0); +var bold = format(1, 22); +var dim = format(2, 22); +var italic = format(3, 23); +var underline = format(4, 24); var overline = format(53, 55); -var inverse2 = format(7, 27); -var hidden2 = format(8, 28); -var strikethrough2 = format(9, 29); -var black2 = format(30, 39); -var red2 = format(31, 39); -var green2 = format(32, 39); -var yellow2 = format(33, 39); -var blue2 = format(34, 39); -var magenta2 = format(35, 39); -var cyan2 = format(36, 39); -var white2 = format(37, 39); -var gray2 = format(90, 39); -var bgBlack2 = format(40, 49); -var bgRed2 = format(41, 49); -var bgGreen2 = format(42, 49); -var bgYellow2 = format(43, 49); -var bgBlue2 = format(44, 49); -var bgMagenta2 = format(45, 49); -var bgCyan2 = format(46, 49); -var bgWhite2 = format(47, 49); +var inverse = format(7, 27); +var hidden = format(8, 28); +var strikethrough = format(9, 29); +var black = format(30, 39); +var red = format(31, 39); +var green = format(32, 39); +var yellow = format(33, 39); +var blue = format(34, 39); +var magenta = format(35, 39); +var cyan = format(36, 39); +var white = format(37, 39); +var gray = format(90, 39); +var bgBlack = format(40, 49); +var bgRed = format(41, 49); +var bgGreen = format(42, 49); +var bgYellow = format(43, 49); +var bgBlue = format(44, 49); +var bgMagenta = format(45, 49); +var bgCyan = format(46, 49); +var bgWhite = format(47, 49); var bgGray = format(100, 49); var redBright = format(91, 39); var greenBright = format(92, 39); @@ -65271,7 +65339,7 @@ var defaultVerboseFunction = ({ const timestampString = serializeTimestamp(timestamp); const icon = ICONS[type]({ failed, reject, piped }); const color = COLORS[type]({ reject }); - return `${gray2(`[${timestampString}]`)} ${gray2(`[${commandId}]`)} ${color(icon)} ${color(message)}`; + return `${gray(`[${timestampString}]`)} ${gray(`[${commandId}]`)} ${color(icon)} ${color(message)}`; }; var serializeTimestamp = (timestamp) => `${padField(timestamp.getHours(), 2)}:${padField(timestamp.getMinutes(), 2)}:${padField(timestamp.getSeconds(), 2)}.${padField(timestamp.getMilliseconds(), 3)}`; var padField = (field, padding) => String(field).padStart(padding, "0"); @@ -65288,13 +65356,13 @@ var ICONS = { error: getFinalIcon, duration: getFinalIcon }; -var identity = (string2) => string2; +var identity = (string) => string; var COLORS = { - command: () => bold2, + command: () => bold, output: () => identity, ipc: () => identity, error: ({ reject }) => reject ? redBright : yellowBright, - duration: () => gray2 + duration: () => gray }; // node_modules/execa/lib/verbose/custom.js @@ -65398,12 +65466,12 @@ var getDurationMs = (startTime) => Number(hrtime.bigint() - startTime) / 1e6; // node_modules/execa/lib/arguments/command.js var handleCommand = (filePath, rawArguments, rawOptions) => { const startTime = getStartTime(); - const { command: command2, escapedCommand } = joinCommand(filePath, rawArguments); + const { command, escapedCommand } = joinCommand(filePath, rawArguments); const verbose = normalizeFdSpecificOption(rawOptions, "verbose"); const verboseInfo = getVerboseInfo(verbose, escapedCommand, { ...rawOptions }); logCommand(escapedCommand, verboseInfo); return { - command: command2, + command, escapedCommand, startTime, verboseInfo @@ -65849,8 +65917,8 @@ var normalizeSignal = ({ signals: { [name]: constantSignal } } = constants; const supported = constantSignal !== undefined; - const number2 = supported ? constantSignal : defaultNumber; - return { name, number: number2, description, supported, action, forced, standard }; + const number = supported ? constantSignal : defaultNumber; + return { name, number, description, supported, action, forced, standard }; }; // node_modules/human-signals/build/src/main.js @@ -65860,30 +65928,30 @@ var getSignalsByName = () => { }; var getSignalByName = ({ name, - number: number2, + number, description, supported, action, forced, standard -}) => [name, { name, number: number2, description, supported, action, forced, standard }]; +}) => [name, { name, number, description, supported, action, forced, standard }]; var signalsByName = getSignalsByName(); var getSignalsByNumber = () => { const signals2 = getSignals(); const length = SIGRTMAX + 1; - const signalsA = Array.from({ length }, (value, number2) => getSignalByNumber(number2, signals2)); + const signalsA = Array.from({ length }, (value, number) => getSignalByNumber(number, signals2)); return Object.assign({}, ...signalsA); }; -var getSignalByNumber = (number2, signals2) => { - const signal = findSignalByNumber(number2, signals2); +var getSignalByNumber = (number, signals2) => { + const signal = findSignalByNumber(number, signals2); if (signal === undefined) { return {}; } const { name, description, supported, action, forced, standard } = signal; return { - [number2]: { + [number]: { name, - number: number2, + number, description, supported, action, @@ -65892,12 +65960,12 @@ var getSignalByNumber = (number2, signals2) => { } }; }; -var findSignalByNumber = (number2, signals2) => { - const signal = signals2.find(({ name }) => constants2.signals[name] === number2); +var findSignalByNumber = (number, signals2) => { + const signal = signals2.find(({ name }) => constants2.signals[name] === number); if (signal !== undefined) { return signal; } - return signals2.find((signalA) => signalA.number === number2); + return signals2.find((signalA) => signalA.number === number); }; var signalsByNumber = getSignalsByNumber(); @@ -66063,8 +66131,8 @@ var throwOnStrictDeadlockError = (isSubprocess) => { This can be fixed by both sending a message and listening to incoming messages at the same time: const [receivedMessage] = await Promise.all([ -\t${getMethodName("getOneMessage", isSubprocess)}, -\t${getMethodName("sendMessage", isSubprocess, "message, {strict: true}")}, + ${getMethodName("getOneMessage", isSubprocess)}, + ${getMethodName("sendMessage", isSubprocess, "message, {strict: true}")}, ]);`); }; var getStrictResponseError = (error, isSubprocess) => new Error(`${getMethodName("sendMessage", isSubprocess)} failed when sending an acknowledgment response to the ${getOtherProcessName(isSubprocess)}.`, { cause: error }); @@ -67025,9 +67093,9 @@ var handleStreamEnd = async (stream, controller, state) => { var nodeImports = {}; // node_modules/get-stream/source/contents.js -var getStreamContents = async (stream, { init: init2, convertChunk, getSize, truncateChunk, addChunk, getFinalChunk, finalize }, { maxBuffer = Number.POSITIVE_INFINITY } = {}) => { +var getStreamContents = async (stream, { init, convertChunk, getSize, truncateChunk, addChunk, getFinalChunk, finalize }, { maxBuffer = Number.POSITIVE_INFINITY } = {}) => { const asyncIterable = getAsyncIterable(stream); - const state = init2(); + const state = init(); state.length = 0; try { for await (const chunk of asyncIterable) { @@ -67423,7 +67491,7 @@ var serializeMessageItem = (messageItem) => { // node_modules/execa/lib/return/result.js var makeSuccessResult = ({ - command: command2, + command, escapedCommand, stdio, all, @@ -67431,7 +67499,7 @@ var makeSuccessResult = ({ options: { cwd }, startTime }) => omitUndefinedProperties({ - command: command2, + command, escapedCommand, cwd, durationMs: getDurationMs(startTime), @@ -67452,7 +67520,7 @@ var makeSuccessResult = ({ }); var makeEarlyError = ({ error, - command: command2, + command, escapedCommand, fileDescriptors, options, @@ -67460,7 +67528,7 @@ var makeEarlyError = ({ isSync }) => makeError({ error, - command: command2, + command, escapedCommand, startTime, timedOut: false, @@ -67475,7 +67543,7 @@ var makeEarlyError = ({ }); var makeError = ({ error: originalError, - command: command2, + command, escapedCommand, startTime, timedOut, @@ -67522,7 +67590,7 @@ var makeError = ({ const error = getFinalError(originalError, message, isSync); Object.assign(error, getErrorProperties({ error, - command: command2, + command, escapedCommand, startTime, timedOut, @@ -67544,7 +67612,7 @@ var makeError = ({ }; var getErrorProperties = ({ error, - command: command2, + command, escapedCommand, startTime, timedOut, @@ -67564,7 +67632,7 @@ var getErrorProperties = ({ }) => omitUndefinedProperties({ shortMessage, originalMessage, - command: command2, + command, escapedCommand, cwd, durationMs: getDurationMs(startTime), @@ -69028,12 +69096,12 @@ var getResultError = (error, exitCode, signal) => { // node_modules/execa/lib/methods/main-sync.js var execaCoreSync = (rawFile, rawArguments, rawOptions) => { - const { file, commandArguments, command: command2, escapedCommand, startTime, verboseInfo, options, fileDescriptors } = handleSyncArguments(rawFile, rawArguments, rawOptions); + const { file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors } = handleSyncArguments(rawFile, rawArguments, rawOptions); const result = spawnSubprocessSync({ file, commandArguments, options, - command: command2, + command, escapedCommand, verboseInfo, fileDescriptors, @@ -69042,7 +69110,7 @@ var execaCoreSync = (rawFile, rawArguments, rawOptions) => { return handleResult2(result, verboseInfo, options); }; var handleSyncArguments = (rawFile, rawArguments, rawOptions) => { - const { command: command2, escapedCommand, startTime, verboseInfo } = handleCommand(rawFile, rawArguments, rawOptions); + const { command, escapedCommand, startTime, verboseInfo } = handleCommand(rawFile, rawArguments, rawOptions); const syncOptions = normalizeSyncOptions(rawOptions); const { file, commandArguments, options } = normalizeOptions(rawFile, rawArguments, syncOptions); validateSyncOptions(options); @@ -69050,7 +69118,7 @@ var handleSyncArguments = (rawFile, rawArguments, rawOptions) => { return { file, commandArguments, - command: command2, + command, escapedCommand, startTime, verboseInfo, @@ -69076,12 +69144,12 @@ var validateSyncOptions = ({ ipc, ipcInput, detached, cancelSignal }) => { var throwInvalidSyncOption = (value) => { throw new TypeError(`The "${value}" option cannot be used with synchronous methods.`); }; -var spawnSubprocessSync = ({ file, commandArguments, options, command: command2, escapedCommand, verboseInfo, fileDescriptors, startTime }) => { +var spawnSubprocessSync = ({ file, commandArguments, options, command, escapedCommand, verboseInfo, fileDescriptors, startTime }) => { const syncResult = runSubprocessSync({ file, commandArguments, options, - command: command2, + command, escapedCommand, fileDescriptors, startTime @@ -69108,12 +69176,12 @@ var spawnSubprocessSync = ({ file, commandArguments, options, command: command2, stdio, all, options, - command: command2, + command, escapedCommand, startTime }); }; -var runSubprocessSync = ({ file, commandArguments, options, command: command2, escapedCommand, fileDescriptors, startTime }) => { +var runSubprocessSync = ({ file, commandArguments, options, command, escapedCommand, fileDescriptors, startTime }) => { try { addInputOptionsSync(fileDescriptors, options); const normalizedOptions = normalizeSpawnSyncOptions(options); @@ -69121,7 +69189,7 @@ var runSubprocessSync = ({ file, commandArguments, options, command: command2, e } catch (error) { return makeEarlyError({ error, - command: command2, + command, escapedCommand, fileDescriptors, options, @@ -69131,8 +69199,8 @@ var runSubprocessSync = ({ file, commandArguments, options, command: command2, e } }; var normalizeSpawnSyncOptions = ({ encoding, maxBuffer, ...options }) => ({ ...options, encoding: "buffer", maxBuffer: getMaxBufferSync(maxBuffer) }); -var getSyncResult = ({ error, exitCode, signal, timedOut, isMaxBuffer, stdio, all, options, command: command2, escapedCommand, startTime }) => error === undefined ? makeSuccessResult({ - command: command2, +var getSyncResult = ({ error, exitCode, signal, timedOut, isMaxBuffer, stdio, all, options, command, escapedCommand, startTime }) => error === undefined ? makeSuccessResult({ + command, escapedCommand, stdio, all, @@ -69141,7 +69209,7 @@ var getSyncResult = ({ error, exitCode, signal, timedOut, isMaxBuffer, stdio, al startTime }) : makeError({ error, - command: command2, + command, escapedCommand, timedOut, isCanceled: false, @@ -69346,14 +69414,14 @@ import { Writable, Duplex } from "node:stream"; -var handleEarlyError = ({ error, command: command2, escapedCommand, fileDescriptors, options, startTime, verboseInfo }) => { +var handleEarlyError = ({ error, command, escapedCommand, fileDescriptors, options, startTime, verboseInfo }) => { cleanupCustomStreams(fileDescriptors); const subprocess = new ChildProcess2; createDummyStreams(subprocess, fileDescriptors); Object.assign(subprocess, { readable, writable, duplex }); const earlyError = makeEarlyError({ error, - command: command2, + command, escapedCommand, fileDescriptors, options, @@ -70810,14 +70878,14 @@ var descriptors = ["then", "catch", "finally"].map((property) => [ // node_modules/execa/lib/methods/main-async.js var execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested) => { - const { file, commandArguments, command: command2, escapedCommand, startTime, verboseInfo, options, fileDescriptors } = handleAsyncArguments(rawFile, rawArguments, rawOptions); + const { file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors } = handleAsyncArguments(rawFile, rawArguments, rawOptions); const { subprocess, promise } = spawnSubprocessAsync({ file, commandArguments, options, startTime, verboseInfo, - command: command2, + command, escapedCommand, fileDescriptors }); @@ -70832,14 +70900,14 @@ var execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested) => { return subprocess; }; var handleAsyncArguments = (rawFile, rawArguments, rawOptions) => { - const { command: command2, escapedCommand, startTime, verboseInfo } = handleCommand(rawFile, rawArguments, rawOptions); + const { command, escapedCommand, startTime, verboseInfo } = handleCommand(rawFile, rawArguments, rawOptions); const { file, commandArguments, options: normalizedOptions } = normalizeOptions(rawFile, rawArguments, rawOptions); const options = handleAsyncOptions(normalizedOptions); const fileDescriptors = handleStdioAsync(options, verboseInfo); return { file, commandArguments, - command: command2, + command, escapedCommand, startTime, verboseInfo, @@ -70853,14 +70921,14 @@ var handleAsyncOptions = ({ timeout, signal, ...options }) => { } return { ...options, timeoutDuration: timeout }; }; -var spawnSubprocessAsync = ({ file, commandArguments, options, startTime, verboseInfo, command: command2, escapedCommand, fileDescriptors }) => { +var spawnSubprocessAsync = ({ file, commandArguments, options, startTime, verboseInfo, command, escapedCommand, fileDescriptors }) => { let subprocess; try { subprocess = spawn(file, commandArguments, options); } catch (error) { return handleEarlyError({ error, - command: command2, + command, escapedCommand, fileDescriptors, options, @@ -70892,7 +70960,7 @@ var spawnSubprocessAsync = ({ file, commandArguments, options, startTime, verbos verboseInfo, fileDescriptors, originalStreams, - command: command2, + command, escapedCommand, context, onInternalError, @@ -70900,7 +70968,7 @@ var spawnSubprocessAsync = ({ file, commandArguments, options, startTime, verbos }); return { subprocess, promise }; }; -var handlePromise = async ({ subprocess, options, startTime, verboseInfo, fileDescriptors, originalStreams, command: command2, escapedCommand, context, onInternalError, controller }) => { +var handlePromise = async ({ subprocess, options, startTime, verboseInfo, fileDescriptors, originalStreams, command, escapedCommand, context, onInternalError, controller }) => { const [ errorInfo, [exitCode, signal], @@ -70930,15 +70998,15 @@ var handlePromise = async ({ subprocess, options, startTime, verboseInfo, fileDe ipcOutput, context, options, - command: command2, + command, escapedCommand, startTime }); return handleResult2(result, verboseInfo, options); }; -var getAsyncResult = ({ errorInfo, exitCode, signal, stdio, all, ipcOutput, context, options, command: command2, escapedCommand, startTime }) => ("error" in errorInfo) ? makeError({ +var getAsyncResult = ({ errorInfo, exitCode, signal, stdio, all, ipcOutput, context, options, command, escapedCommand, startTime }) => ("error" in errorInfo) ? makeError({ error: errorInfo.error, - command: command2, + command, escapedCommand, timedOut: context.terminationReason === "timeout", isCanceled: context.terminationReason === "cancel" || context.terminationReason === "gracefulCancel", @@ -70954,7 +71022,7 @@ var getAsyncResult = ({ errorInfo, exitCode, signal, stdio, all, ipcOutput, cont startTime, isSync: false }) : makeSuccessResult({ - command: command2, + command, escapedCommand, stdio, all, @@ -71028,18 +71096,18 @@ var parseArguments = ({ mapArguments, firstArgument, nextArguments, deepOptions, // node_modules/execa/lib/methods/command.js var mapCommandAsync = ({ file, commandArguments }) => parseCommand(file, commandArguments); var mapCommandSync = ({ file, commandArguments }) => ({ ...parseCommand(file, commandArguments), isSync: true }); -var parseCommand = (command2, unusedArguments) => { +var parseCommand = (command, unusedArguments) => { if (unusedArguments.length > 0) { - throw new TypeError(`The command and its arguments must be passed as a single string: ${command2} ${unusedArguments}.`); + throw new TypeError(`The command and its arguments must be passed as a single string: ${command} ${unusedArguments}.`); } - const [file, ...commandArguments] = parseCommandString(command2); + const [file, ...commandArguments] = parseCommandString(command); return { file, commandArguments }; }; -var parseCommandString = (command2) => { - if (typeof command2 !== "string") { - throw new TypeError(`The command must be a string: ${String(command2)}.`); +var parseCommandString = (command) => { + if (typeof command !== "string") { + throw new TypeError(`The command must be a string: ${String(command)}.`); } - const trimmedCommand = command2.trim(); + const trimmedCommand = command.trim(); if (trimmedCommand === "") { return []; } @@ -71073,7 +71141,7 @@ var execaSync = createExeca(() => ({ isSync: true })); var execaCommand = createExeca(mapCommandAsync); var execaCommandSync = createExeca(mapCommandSync); var execaNode = createExeca(mapNode); -var $2 = createExeca(mapScriptAsync, {}, deepScriptOptions, setScriptSync); +var $ = createExeca(mapScriptAsync, {}, deepScriptOptions, setScriptSync); var { sendMessage: sendMessage2, getOneMessage: getOneMessage2, @@ -71222,7 +71290,7 @@ async function addComponents(components, options) { const registrySpinner = spinner(`Checking registry.`, { silent: options.silent })?.start(); - const tree = await registryResolveItemsTree(components); + const tree = registryResolveItemsTree(components); if (!tree) { registrySpinner?.fail(); return handleError(new Error("Failed to fetch components from registry.")); @@ -71243,34 +71311,23 @@ async function addComponents(components, options) { } // src/commands/components/commands/add/add.ts -var addComponentCommand = command({ - name: "add", - desc: "add components and dependencies to your pipe", - options: { - components: positional().desc("list of components by name"), - path: string().desc("the path to add the component to."), - silent: boolean().desc("mute output.").default(false), - overwrite: boolean().desc("overwrite existing files.").default(false), - cwd: string().desc("the working directory. defaults to the current directory.").default(process.cwd()) - }, - handler: async (opts) => { - try { - let components; - if (!opts?.components?.length) { - components = await promptForRegistryComponents(); - } else { - components = [opts.components]; - } - const result = await preFlightAdd(opts.cwd); - if (result?.errors[ERRORS.MISSING_DIR_OR_EMPTY_PIPE]) { - logger.warn("you need to create a pipe first. run bunx @screenpipe/create-pipe@latest or visit https://docs.screenpi.pe/docs/plugins for more information."); - process.exit(1); - } - await addComponents(components, { silent: opts.silent, cwd: opts.cwd, overwrite: opts.overwrite }); - } catch (error) { - logger.break(); - handleError(error); +var addComponentCommand = new Command().name("add").description("add components and dependencies to your pipe").argument("[components...]", "List of components by name").option("--path ", "The path to add the component to.").option("--silent", "Mute output.", false).option("--overwrite", "Overwrite existing files.", false).option("--cwd ", "The working directory. Defaults to the current directory.", process.cwd()).action(async (comps, opts) => { + try { + let components; + if (!comps?.length) { + components = await promptForRegistryComponents(); + } else { + components = [comps]; } + const result = preFlightAdd(opts.cwd); + if (result?.errors[ERRORS.MISSING_DIR_OR_EMPTY_PIPE]) { + logger.warn("you need to create a pipe first. run bunx @screenpipe/dev create or visit https://docs.screenpi.pe/docs/plugins for more information."); + process.exit(1); + } + await addComponents(components, { silent: opts.silent, cwd: opts.cwd, overwrite: opts.overwrite }); + } catch (error) { + logger.break(); + handleError(error); } }); @@ -71296,108 +71353,97 @@ async function writeJsonToFile(filePath, data) { process.exit(1); } } -var registerComponentCommand = command({ - name: "register", - desc: "register a new component in screenpipe's component registry", - options: { - name: string().desc("name of the component"), - src: string().desc("github url for the component."), - target: string().desc("path where file should be created.") - }, - handler: async (opts) => { - try { - if (!opts.name) { - const { name } = await import_prompts5.default({ - type: "text", - name: "name", - message: "what's your component's name?", - instructions: false - }); - opts.name = name; - } - if (!opts.src) { - const { src } = await import_prompts5.default({ - type: "text", - name: "src", - message: "where should we download the component from?", - hint: "url with the following pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}. see README for more info." - }); - opts.src = src; - } - if (!opts.target) { - const { target } = await import_prompts5.default({ - type: "text", - name: "target", - message: "where should the component be created?" - }); - opts.target = target; - } - if (!opts.name?.length || !opts.src?.length || !opts.target?.length) { - logger.break(); - handleError("invalid component"); - process.exit(1); - } - const { deps } = await import_prompts5.default({ - type: "list", - name: "deps", - message: "type all of the component's runtime dependencies by name, separated by a comma", - separator: "," +var registerComponentCommand = new Command().name("register").description("register a new component in screenpipe's component registry").option("-n, --name ", "name of the component").option("-s, --src", "github url for the component").option("-t, --target", "path where file should be created").action(async (opts) => { + try { + if (!opts.name) { + const { name } = await import_prompts5.default({ + type: "text", + name: "name", + message: "what's your component's name?", + instructions: false }); - const { devDeps } = await import_prompts5.default({ - type: "list", - name: "devDeps", - message: "type all of the component's dev dependencies by name, separated by a comma", - separator: "," + opts.name = name; + } + if (!opts.src) { + const { src } = await import_prompts5.default({ + type: "text", + name: "src", + message: "where should we download the component from?", + hint: "url with the following pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}. see README for more info." }); - const { registryDeps } = await import_prompts5.default({ - type: "list", - name: "registryDeps", - message: "type all of the component's registry dependencies by name, separated by a comma", - separator: "," + opts.src = src; + } + if (!opts.target) { + const { target } = await import_prompts5.default({ + type: "text", + name: "target", + message: "where should the component be created?" }); - const componentObject = { - name: opts.name, - src: opts.src, - target: opts.target, - dependencies: deps.filter((item) => item !== ""), - devDependencies: devDeps.filter((item) => item !== ""), - registryDependencies: registryDeps.filter((item) => item !== "") - }; - const currentRegistry = await getRegistry(); - if (!currentRegistry) { - logger.break(); - handleError("critical: build is missing registry file."); - process.exit(1); - } - currentRegistry[opts.name] = componentObject; - await writeJsonToFile("./src/commands/components/commands/add/registry/registry.json", currentRegistry); - logger.log("run `bun run build` and open a PR at https://github.com/mediar-ai/screenpipe to update registry."); - } catch (error) { + opts.target = target; + } + if (!opts.name?.length || !opts.src?.length || !opts.target?.length) { + logger.break(); + handleError("invalid component"); + process.exit(1); + } + const { deps } = await import_prompts5.default({ + type: "list", + name: "deps", + message: "type all of the component's runtime dependencies by name, separated by a comma", + separator: "," + }); + const { devDeps } = await import_prompts5.default({ + type: "list", + name: "devDeps", + message: "type all of the component's dev dependencies by name, separated by a comma", + separator: "," + }); + const { registryDeps } = await import_prompts5.default({ + type: "list", + name: "registryDeps", + message: "type all of the component's registry dependencies by name, separated by a comma", + separator: "," + }); + const componentObject = { + name: opts.name, + src: opts.src, + target: opts.target, + dependencies: deps.filter((item) => item !== ""), + devDependencies: devDeps.filter((item) => item !== ""), + registryDependencies: registryDeps.filter((item) => item !== "") + }; + const currentRegistry = getRegistry(); + if (!currentRegistry) { logger.break(); - handleError(error); + handleError("critical: build is missing registry file."); + process.exit(1); } + currentRegistry[opts.name] = componentObject; + await writeJsonToFile("./src/commands/components/commands/add/registry/registry.json", currentRegistry); + logger.log("run `bun run build` and open a PR at https://github.com/mediar-ai/screenpipe to update registry."); + } catch (error) { + logger.break(); + handleError(error); } }); // src/commands/components/index.ts -var componentsCommands = command({ - name: "components", - desc: "commands to interact with screenpipe's components", - subcommands: [ - addComponentCommand, - registerComponentCommand - ] -}); +var componentsCommands = new Command().name("components").description("commands to interact with screenpipe's components"); +componentsCommands.addCommand(addComponentCommand); +componentsCommands.addCommand(registerComponentCommand); // src/index.ts -run([ - loginCommand, - logoutCommand, - createCommand, - componentsCommands, - registerCommand, - publishCommand, - listVersionsCommand -], { - name: "screenpipe-dev", - description: "screenpipe development CLI tool" -}); +process.on("SIGINT", () => process.exit(0)); +process.on("SIGTERM", () => process.exit(0)); +async function main2() { + const program2 = new Command; + program2.name("screenpipe-dev").description("screenpipe development CLI tool").version("0.0.1"); + program2.addCommand(loginCommand); + program2.addCommand(logoutCommand); + program2.addCommand(createCommand2); + program2.addCommand(componentsCommands); + program2.addCommand(registerCommand); + program2.addCommand(publishCommand); + program2.addCommand(listVersionsCommand); + program2.parse(); +} +main2(); From 30a1404186aa29094560f8add7bafd9803b5a11d Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:30:36 -0600 Subject: [PATCH 12/35] fix: import lost in merge --- screenpipe-js/cli/src/commands/components/commands/add/add.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/screenpipe-js/cli/src/commands/components/commands/add/add.ts b/screenpipe-js/cli/src/commands/components/commands/add/add.ts index afdcec18b..03faf3a04 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/add.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/add.ts @@ -3,6 +3,7 @@ import { ERRORS, handleError } from "./utils/handle-error"; import { promptForRegistryComponents } from "./utils/prompt-for-component"; import { preFlightAdd } from "./preflights/preflight-add"; import { addComponents } from "./utils/add-components"; +import { Command } from "commander"; export const addComponentCommand = new Command() .name("add") From 1ab6c155be1f019c396821a37fffa7e7d8b3c116 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:30:49 -0600 Subject: [PATCH 13/35] chore(cli): remove dead code --- .../commands/add/utils/create-pipe.ts | 78 ------------------- 1 file changed, 78 deletions(-) delete mode 100644 screenpipe-js/cli/src/commands/components/commands/add/utils/create-pipe.ts diff --git a/screenpipe-js/cli/src/commands/components/commands/add/utils/create-pipe.ts b/screenpipe-js/cli/src/commands/components/commands/add/utils/create-pipe.ts deleted file mode 100644 index ae402261f..000000000 --- a/screenpipe-js/cli/src/commands/components/commands/add/utils/create-pipe.ts +++ /dev/null @@ -1,78 +0,0 @@ -import prompts from "prompts" -import fs from "fs-extra" -import { highlighter, logger } from "./logger"; -import path from 'path'; - -export async function createPipe( - cwd: string -){ - let projectType: "next" = "next" - let projectName: string = "my-app" - - const { type, name } = await prompts([ - { - type: "select", - name: "type", - message: `The path ${highlighter.info( - cwd - )} does not contain a package.json file.\n Would you like to start a new project?`, - choices: [ - { title: "Next.js", value: "next" }, - ], - initial: 0, - }, - { - type: "text", - name: "name", - message: "What is your project named?", - initial: projectName, - format: (value: string) => value.trim(), - validate: (value: string) => - value.length > 128 - ? `Name should be less than 128 characters.` - : true, - }, - ]) - - projectName = name - projectType = type - - const projectPath = `${cwd}/${projectName}` - - // Check if path is writable. - try { - await fs.access(cwd, fs.constants.W_OK) - } catch (error) { - logger.break() - logger.error(`The path ${highlighter.info(cwd)} is not writable.`) - logger.error( - `It is likely you do not have write permissions for this folder or the path ${highlighter.info( - cwd - )} does not exist.` - ) - logger.break() - process.exit(1) - } - - // Check if project already exists - if (fs.existsSync(path.resolve(cwd, projectName, "package.json"))) { - logger.break() - logger.error( - `A project with the name ${highlighter.info(projectName)} already exists.` - ) - logger.error(`Please choose a different name and try again.`) - logger.break() - process.exit(1) - } - - if (projectType === "next") { - // TODO: look into pipes cli - // main - } - - return { - projectPath, - projectName, - projectType, - } - } From 37cf7b78b86d76b249d25a46d8abc809de6d8dfa Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:31:38 -0600 Subject: [PATCH 14/35] chore(cli): remove unused deps - @drizzle-team/brocli in favour of commander - kleur in favour of chalk - prompts in favour of inquirer --- screenpipe-js/cli/package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/screenpipe-js/cli/package.json b/screenpipe-js/cli/package.json index ed28aa94c..e764d43ae 100644 --- a/screenpipe-js/cli/package.json +++ b/screenpipe-js/cli/package.json @@ -13,7 +13,6 @@ "dev": "bun run src/index.ts" }, "dependencies": { - "@drizzle-team/brocli": "^0.11.0", "@screenpipe/browser": "^0.1.24", "@screenpipe/js": "^1.0.7", "archiver": "^7.0.1", @@ -24,9 +23,7 @@ "fs-extra": "^11.3.0", "ignore": "^7.0.3", "inquirer": "^12.3.2", - "kleur": "^4.1.5", "ora": "^8.1.1", - "prompts": "^2.4.2", "simple-git": "^3.27.0", "unzip-stream": "^0.3.4", "zod": "^3.24.1" From fb0a589cbb8c519bd3f3a2034f9274c1f3fb688c Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:40:44 -0600 Subject: [PATCH 15/35] fix(cli): remove prompts from all commands --- screenpipe-js/cli/dist/index.js | 5458 +---------------- screenpipe-js/cli/package.json | 4 +- .../commands/add/registry/registry.json | 14 +- .../add/utils/prompt-for-component.ts | 29 +- .../add/utils/updaters/update-files.ts | 17 +- .../commands/components/commands/register.ts | 134 +- .../cli/src/hooks/use-ai-provider.tsx | 85 + screenpipe-js/cli/src/hooks/use-health.tsx | 131 + 8 files changed, 613 insertions(+), 5259 deletions(-) create mode 100644 screenpipe-js/cli/src/hooks/use-ai-provider.tsx create mode 100644 screenpipe-js/cli/src/hooks/use-health.tsx diff --git a/screenpipe-js/cli/dist/index.js b/screenpipe-js/cli/dist/index.js index 5838dd657..e7c37ed30 100755 --- a/screenpipe-js/cli/dist/index.js +++ b/screenpipe-js/cli/dist/index.js @@ -6353,6 +6353,23 @@ var init_mjs = __esm(() => { } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback)); }); +// node_modules/@inquirer/core/node_modules/strip-ansi/node_modules/ansi-regex/index.js +var require_ansi_regex2 = __commonJS((exports, module) => { + module.exports = ({ onlyFirst = false } = {}) => { + const pattern = [ + "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", + "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" + ].join("|"); + return new RegExp(pattern, onlyFirst ? undefined : "g"); + }; +}); + +// node_modules/@inquirer/core/node_modules/strip-ansi/index.js +var require_strip_ansi2 = __commonJS((exports, module) => { + var ansiRegex = require_ansi_regex2(); + module.exports = (string) => typeof string === "string" ? string.replace(ansiRegex(), "") : string; +}); + // node_modules/ansi-escapes/index.js var require_ansi_escapes = __commonJS((exports, module) => { var ansiEscapes = exports; @@ -6472,7 +6489,6 @@ var require_ansi_escapes = __commonJS((exports, module) => { }); // node_modules/@inquirer/core/dist/esm/lib/screen-manager.js -import { stripVTControlCharacters } from "node:util"; function cursorDown(n) { return n > 0 ? import_ansi_escapes.default.cursorDown(n) : ""; } @@ -6494,7 +6510,7 @@ class ScreenManager { } render(content, bottomContent = "") { const promptLine = lastLine(content); - const rawPromptLine = stripVTControlCharacters(promptLine); + const rawPromptLine = import_strip_ansi.default(promptLine); let prompt = rawPromptLine; if (this.rl.line.length > 0) { prompt = prompt.slice(0, -this.rl.line.length); @@ -6536,10 +6552,11 @@ class ScreenManager { this.rl.close(); } } -var import_ansi_escapes, height = (content) => content.split(` +var import_strip_ansi, import_ansi_escapes, height = (content) => content.split(` `).length, lastLine = (content) => content.split(` `).pop() ?? ""; var init_screen_manager = __esm(() => { + import_strip_ansi = __toESM(require_strip_ansi2(), 1); import_ansi_escapes = __toESM(require_ansi_escapes(), 1); init_utils(); }); @@ -49975,6 +49992,16 @@ var require_zip3 = __commonJS((exports, module) => { module.exports = Zip; }); +// node_modules/queue-tick/queue-microtask.js +var require_queue_microtask = __commonJS((exports, module) => { + module.exports = typeof queueMicrotask === "function" ? queueMicrotask : (fn) => Promise.resolve().then(fn); +}); + +// node_modules/queue-tick/process-next-tick.js +var require_process_next_tick = __commonJS((exports, module) => { + module.exports = typeof process !== "undefined" && typeof process.nextTick === "function" ? process.nextTick.bind(process) : require_queue_microtask(); +}); + // node_modules/fast-fifo/fixed-size.js var require_fixed_size = __commonJS((exports, module) => { module.exports = class FixedFIFO { @@ -50392,6 +50419,7 @@ var require_streamx = __commonJS((exports, module) => { var { EventEmitter } = __require("events"); var STREAM_DESTROYED = new Error("Stream was destroyed"); var PREMATURE_CLOSE = new Error("Premature close"); + var queueTick = require_process_next_tick(); var FIFO = require_fast_fifo(); var TextDecoder2 = require_text_decoder(); var MAX = (1 << 29) - 1; @@ -50588,7 +50616,7 @@ var require_streamx = __commonJS((exports, module) => { return; this.stream._duplexState |= WRITE_NEXT_TICK; if ((this.stream._duplexState & WRITE_UPDATING) === 0) - queueMicrotask(this.afterUpdateNextTick); + queueTick(this.afterUpdateNextTick); } } @@ -50757,14 +50785,14 @@ var require_streamx = __commonJS((exports, module) => { return; this.stream._duplexState |= READ_NEXT_TICK; if ((this.stream._duplexState & READ_UPDATING) === 0) - queueMicrotask(this.afterUpdateNextTick); + queueTick(this.afterUpdateNextTick); } updateNextTick() { if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return; this.stream._duplexState |= READ_NEXT_TICK; if ((this.stream._duplexState & READ_UPDATING) === 0) - queueMicrotask(this.afterUpdateNextTick); + queueTick(this.afterUpdateNextTick); } } @@ -53185,5151 +53213,224 @@ var require_ignore2 = __commonJS((exports, module) => { module.exports.isPathValid = isPathValid; }); -// node_modules/prompts/node_modules/kleur/index.js -var require_kleur = __commonJS((exports, module) => { - var { FORCE_COLOR, NODE_DISABLE_COLORS, TERM } = process.env; - var $ = { - enabled: !NODE_DISABLE_COLORS && TERM !== "dumb" && FORCE_COLOR !== "0", - reset: init(0, 0), - bold: init(1, 22), - dim: init(2, 22), - italic: init(3, 23), - underline: init(4, 24), - inverse: init(7, 27), - hidden: init(8, 28), - strikethrough: init(9, 29), - black: init(30, 39), - red: init(31, 39), - green: init(32, 39), - yellow: init(33, 39), - blue: init(34, 39), - magenta: init(35, 39), - cyan: init(36, 39), - white: init(37, 39), - gray: init(90, 39), - grey: init(90, 39), - bgBlack: init(40, 49), - bgRed: init(41, 49), - bgGreen: init(42, 49), - bgYellow: init(43, 49), - bgBlue: init(44, 49), - bgMagenta: init(45, 49), - bgCyan: init(46, 49), - bgWhite: init(47, 49) - }; - function run(arr, str) { - let i = 0, tmp, beg = "", end = ""; - for (;i < arr.length; i++) { - tmp = arr[i]; - beg += tmp.open; - end += tmp.close; - if (str.includes(tmp.close)) { - str = str.replace(tmp.rgx, tmp.close + tmp.open); - } - } - return beg + str + end; - } - function chain(has, keys) { - let ctx = { has, keys }; - ctx.reset = $.reset.bind(ctx); - ctx.bold = $.bold.bind(ctx); - ctx.dim = $.dim.bind(ctx); - ctx.italic = $.italic.bind(ctx); - ctx.underline = $.underline.bind(ctx); - ctx.inverse = $.inverse.bind(ctx); - ctx.hidden = $.hidden.bind(ctx); - ctx.strikethrough = $.strikethrough.bind(ctx); - ctx.black = $.black.bind(ctx); - ctx.red = $.red.bind(ctx); - ctx.green = $.green.bind(ctx); - ctx.yellow = $.yellow.bind(ctx); - ctx.blue = $.blue.bind(ctx); - ctx.magenta = $.magenta.bind(ctx); - ctx.cyan = $.cyan.bind(ctx); - ctx.white = $.white.bind(ctx); - ctx.gray = $.gray.bind(ctx); - ctx.grey = $.grey.bind(ctx); - ctx.bgBlack = $.bgBlack.bind(ctx); - ctx.bgRed = $.bgRed.bind(ctx); - ctx.bgGreen = $.bgGreen.bind(ctx); - ctx.bgYellow = $.bgYellow.bind(ctx); - ctx.bgBlue = $.bgBlue.bind(ctx); - ctx.bgMagenta = $.bgMagenta.bind(ctx); - ctx.bgCyan = $.bgCyan.bind(ctx); - ctx.bgWhite = $.bgWhite.bind(ctx); - return ctx; - } - function init(open, close) { - let blk = { - open: `\x1B[${open}m`, - close: `\x1B[${close}m`, - rgx: new RegExp(`\\x1b\\[${close}m`, "g") - }; - return function(txt) { - if (this !== undefined && this.has !== undefined) { - this.has.includes(open) || (this.has.push(open), this.keys.push(blk)); - return txt === undefined ? this : $.enabled ? run(this.keys, txt + "") : txt + ""; - } - return txt === undefined ? chain([open], [blk]) : $.enabled ? run([blk], txt + "") : txt + ""; - }; - } - module.exports = $; -}); - -// node_modules/prompts/dist/util/action.js -var require_action = __commonJS((exports, module) => { - module.exports = (key2, isSelect) => { - if (key2.meta && key2.name !== "escape") - return; - if (key2.ctrl) { - if (key2.name === "a") - return "first"; - if (key2.name === "c") - return "abort"; - if (key2.name === "d") - return "abort"; - if (key2.name === "e") - return "last"; - if (key2.name === "g") - return "reset"; - } - if (isSelect) { - if (key2.name === "j") - return "down"; - if (key2.name === "k") - return "up"; - } - if (key2.name === "return") - return "submit"; - if (key2.name === "enter") - return "submit"; - if (key2.name === "backspace") - return "delete"; - if (key2.name === "delete") - return "deleteForward"; - if (key2.name === "abort") - return "abort"; - if (key2.name === "escape") - return "exit"; - if (key2.name === "tab") - return "next"; - if (key2.name === "pagedown") - return "nextPage"; - if (key2.name === "pageup") - return "prevPage"; - if (key2.name === "home") - return "home"; - if (key2.name === "end") - return "end"; - if (key2.name === "up") - return "up"; - if (key2.name === "down") - return "down"; - if (key2.name === "right") - return "right"; - if (key2.name === "left") - return "left"; - return false; - }; -}); - -// node_modules/prompts/dist/util/strip.js -var require_strip = __commonJS((exports, module) => { - module.exports = (str) => { - const pattern = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))"].join("|"); - const RGX = new RegExp(pattern, "g"); - return typeof str === "string" ? str.replace(RGX, "") : str; +// node_modules/deepmerge/dist/cjs.js +var require_cjs2 = __commonJS((exports, module) => { + var isMergeableObject = function isMergeableObject(value) { + return isNonNullObject(value) && !isSpecial(value); }; -}); - -// node_modules/sisteransi/src/index.js -var require_src = __commonJS((exports, module) => { - var ESC = "\x1B"; - var CSI = `${ESC}[`; - var beep = "\x07"; - var cursor = { - to(x, y) { - if (!y) - return `${CSI}${x + 1}G`; - return `${CSI}${y + 1};${x + 1}H`; - }, - move(x, y) { - let ret = ""; - if (x < 0) - ret += `${CSI}${-x}D`; - else if (x > 0) - ret += `${CSI}${x}C`; - if (y < 0) - ret += `${CSI}${-y}A`; - else if (y > 0) - ret += `${CSI}${y}B`; - return ret; - }, - up: (count = 1) => `${CSI}${count}A`, - down: (count = 1) => `${CSI}${count}B`, - forward: (count = 1) => `${CSI}${count}C`, - backward: (count = 1) => `${CSI}${count}D`, - nextLine: (count = 1) => `${CSI}E`.repeat(count), - prevLine: (count = 1) => `${CSI}F`.repeat(count), - left: `${CSI}G`, - hide: `${CSI}?25l`, - show: `${CSI}?25h`, - save: `${ESC}7`, - restore: `${ESC}8` - }; - var scroll = { - up: (count = 1) => `${CSI}S`.repeat(count), - down: (count = 1) => `${CSI}T`.repeat(count) - }; - var erase = { - screen: `${CSI}2J`, - up: (count = 1) => `${CSI}1J`.repeat(count), - down: (count = 1) => `${CSI}J`.repeat(count), - line: `${CSI}2K`, - lineEnd: `${CSI}K`, - lineStart: `${CSI}1K`, - lines(count) { - let clear = ""; - for (let i = 0;i < count; i++) - clear += this.line + (i < count - 1 ? cursor.up() : ""); - if (count) - clear += cursor.left; - return clear; - } - }; - module.exports = { cursor, scroll, erase, beep }; -}); - -// node_modules/prompts/dist/util/clear.js -var require_clear = __commonJS((exports, module) => { - function _createForOfIteratorHelper(o, allowArrayLike) { - var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; - if (!it) { - if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { - if (it) - o = it; - var i = 0; - var F = function F() { - }; - return { s: F, n: function n() { - if (i >= o.length) - return { done: true }; - return { done: false, value: o[i++] }; - }, e: function e(_e) { - throw _e; - }, f: F }; - } - throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); - } - var normalCompletion = true, didErr = false, err; - return { s: function s() { - it = it.call(o); - }, n: function n() { - var step = it.next(); - normalCompletion = step.done; - return step; - }, e: function e(_e2) { - didErr = true; - err = _e2; - }, f: function f() { - try { - if (!normalCompletion && it.return != null) - it.return(); - } finally { - if (didErr) - throw err; - } - } }; + function isNonNullObject(value) { + return !!value && typeof value === "object"; } - function _unsupportedIterableToArray(o, minLen) { - if (!o) - return; - if (typeof o === "string") - return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) - n = o.constructor.name; - if (n === "Map" || n === "Set") - return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) - return _arrayLikeToArray(o, minLen); - } - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) - len = arr.length; - for (var i = 0, arr2 = new Array(len);i < len; i++) - arr2[i] = arr[i]; - return arr2; - } - var strip = require_strip(); - var _require = require_src(); - var erase = _require.erase; - var cursor = _require.cursor; - var width = (str) => [...strip(str)].length; - module.exports = function(prompt2, perLine) { - if (!perLine) - return erase.line + cursor.to(0); - let rows = 0; - const lines2 = prompt2.split(/\r?\n/); - var _iterator = _createForOfIteratorHelper(lines2), _step; - try { - for (_iterator.s();!(_step = _iterator.n()).done; ) { - let line = _step.value; - rows += 1 + Math.floor(Math.max(width(line) - 1, 0) / perLine); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - return erase.lines(rows); - }; -}); - -// node_modules/prompts/dist/util/figures.js -var require_figures = __commonJS((exports, module) => { - var main2 = { - arrowUp: "ā†‘", - arrowDown: "ā†“", - arrowLeft: "ā†", - arrowRight: "ā†’", - radioOn: "ā—‰", - radioOff: "ā—Æ", - tick: "āœ”", - cross: "āœ–", - ellipsis: "ā€¦", - pointerSmall: "ā€ŗ", - line: "ā”€", - pointer: "āÆ" - }; - var win = { - arrowUp: main2.arrowUp, - arrowDown: main2.arrowDown, - arrowLeft: main2.arrowLeft, - arrowRight: main2.arrowRight, - radioOn: "(*)", - radioOff: "( )", - tick: "āˆš", - cross: "Ɨ", - ellipsis: "...", - pointerSmall: "Ā»", - line: "ā”€", - pointer: ">" - }; - var figures2 = process.platform === "win32" ? win : main2; - module.exports = figures2; -}); - -// node_modules/prompts/dist/util/style.js -var require_style = __commonJS((exports, module) => { - var c = require_kleur(); - var figures2 = require_figures(); - var styles3 = Object.freeze({ - password: { - scale: 1, - render: (input) => "*".repeat(input.length) - }, - emoji: { - scale: 2, - render: (input) => "\uD83D\uDE03".repeat(input.length) - }, - invisible: { - scale: 0, - render: (input) => "" - }, - default: { - scale: 1, - render: (input) => `${input}` - } - }); - var render = (type) => styles3[type] || styles3.default; - var symbols2 = Object.freeze({ - aborted: c.red(figures2.cross), - done: c.green(figures2.tick), - exited: c.yellow(figures2.cross), - default: c.cyan("?") - }); - var symbol = (done, aborted, exited) => aborted ? symbols2.aborted : exited ? symbols2.exited : done ? symbols2.done : symbols2.default; - var delimiter = (completing) => c.gray(completing ? figures2.ellipsis : figures2.pointerSmall); - var item = (expandable, expanded) => c.gray(expandable ? expanded ? figures2.pointerSmall : "+" : figures2.line); - module.exports = { - styles: styles3, - render, - symbols: symbols2, - symbol, - delimiter, - item - }; -}); - -// node_modules/prompts/dist/util/lines.js -var require_lines = __commonJS((exports, module) => { - var strip = require_strip(); - module.exports = function(msg, perLine) { - let lines2 = String(strip(msg) || "").split(/\r?\n/); - if (!perLine) - return lines2.length; - return lines2.map((l) => Math.ceil(l.length / perLine)).reduce((a, b) => a + b); - }; -}); - -// node_modules/prompts/dist/util/wrap.js -var require_wrap = __commonJS((exports, module) => { - module.exports = (msg, opts = {}) => { - const tab = Number.isSafeInteger(parseInt(opts.margin)) ? new Array(parseInt(opts.margin)).fill(" ").join("") : opts.margin || ""; - const width = opts.width; - return (msg || "").split(/\r?\n/g).map((line) => line.split(/\s+/g).reduce((arr, w) => { - if (w.length + tab.length >= width || arr[arr.length - 1].length + w.length + 1 < width) - arr[arr.length - 1] += ` ${w}`; - else - arr.push(`${tab}${w}`); - return arr; - }, [tab]).join(` -`)).join(` -`); - }; -}); - -// node_modules/prompts/dist/util/entriesToDisplay.js -var require_entriesToDisplay = __commonJS((exports, module) => { - module.exports = (cursor, total, maxVisible) => { - maxVisible = maxVisible || total; - let startIndex = Math.min(total - maxVisible, cursor - Math.floor(maxVisible / 2)); - if (startIndex < 0) - startIndex = 0; - let endIndex = Math.min(startIndex + maxVisible, total); - return { - startIndex, - endIndex - }; - }; -}); - -// node_modules/prompts/dist/util/index.js -var require_util5 = __commonJS((exports, module) => { - module.exports = { - action: require_action(), - clear: require_clear(), - style: require_style(), - strip: require_strip(), - figures: require_figures(), - lines: require_lines(), - wrap: require_wrap(), - entriesToDisplay: require_entriesToDisplay() - }; -}); - -// node_modules/prompts/dist/elements/prompt.js -var require_prompt = __commonJS((exports, module) => { - var readline4 = __require("readline"); - var _require = require_util5(); - var action = _require.action; - var EventEmitter = __require("events"); - var _require2 = require_src(); - var beep = _require2.beep; - var cursor = _require2.cursor; - var color = require_kleur(); - - class Prompt extends EventEmitter { - constructor(opts = {}) { - super(); - this.firstRender = true; - this.in = opts.stdin || process.stdin; - this.out = opts.stdout || process.stdout; - this.onRender = (opts.onRender || (() => { - return; - })).bind(this); - const rl = readline4.createInterface({ - input: this.in, - escapeCodeTimeout: 50 - }); - readline4.emitKeypressEvents(this.in, rl); - if (this.in.isTTY) - this.in.setRawMode(true); - const isSelect = ["SelectPrompt", "MultiselectPrompt"].indexOf(this.constructor.name) > -1; - const keypress = (str, key2) => { - let a = action(key2, isSelect); - if (a === false) { - this._ && this._(str, key2); - } else if (typeof this[a] === "function") { - this[a](key2); - } else { - this.bell(); - } - }; - this.close = () => { - this.out.write(cursor.show); - this.in.removeListener("keypress", keypress); - if (this.in.isTTY) - this.in.setRawMode(false); - rl.close(); - this.emit(this.aborted ? "abort" : this.exited ? "exit" : "submit", this.value); - this.closed = true; - }; - this.in.on("keypress", keypress); - } - fire() { - this.emit("state", { - value: this.value, - aborted: !!this.aborted, - exited: !!this.exited - }); - } - bell() { - this.out.write(beep); - } - render() { - this.onRender(color); - if (this.firstRender) - this.firstRender = false; + function isSpecial(value) { + var stringValue = Object.prototype.toString.call(value); + return stringValue === "[object RegExp]" || stringValue === "[object Date]" || isReactElement(value); + } + var canUseSymbol = typeof Symbol === "function" && Symbol.for; + var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for("react.element") : 60103; + function isReactElement(value) { + return value.$$typeof === REACT_ELEMENT_TYPE; + } + function emptyTarget(val) { + return Array.isArray(val) ? [] : {}; + } + function cloneUnlessOtherwiseSpecified(value, options) { + return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value; + } + function defaultArrayMerge(target, source, options) { + return target.concat(source).map(function(element) { + return cloneUnlessOtherwiseSpecified(element, options); + }); + } + function getMergeFunction(key2, options) { + if (!options.customMerge) { + return deepmerge; } + var customMerge = options.customMerge(key2); + return typeof customMerge === "function" ? customMerge : deepmerge; } - module.exports = Prompt; -}); - -// node_modules/prompts/dist/elements/text.js -var require_text = __commonJS((exports, module) => { - function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key2, arg) { + function getEnumerableOwnPropertySymbols(target) { + return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) { + return Object.propertyIsEnumerable.call(target, symbol); + }) : []; + } + function getKeys(target) { + return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)); + } + function propertyIsOnObject(object, property) { try { - var info = gen[key2](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); + return property in object; + } catch (_3) { + return false; } } - function _asyncToGenerator(fn) { - return function() { - var self2 = this, args = arguments; - return new Promise(function(resolve, reject) { - var gen = fn.apply(self2, args); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; + function propertyIsUnsafe(target, key2) { + return propertyIsOnObject(target, key2) && !(Object.hasOwnProperty.call(target, key2) && Object.propertyIsEnumerable.call(target, key2)); } - var color = require_kleur(); - var Prompt = require_prompt(); - var _require = require_src(); - var erase = _require.erase; - var cursor = _require.cursor; - var _require2 = require_util5(); - var style = _require2.style; - var clear = _require2.clear; - var lines2 = _require2.lines; - var figures2 = _require2.figures; - - class TextPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.transform = style.render(opts.style); - this.scale = this.transform.scale; - this.msg = opts.message; - this.initial = opts.initial || ``; - this.validator = opts.validate || (() => true); - this.value = ``; - this.errorMsg = opts.error || `Please Enter A Valid Value`; - this.cursor = Number(!!this.initial); - this.cursorOffset = 0; - this.clear = clear(``, this.out.columns); - this.render(); - } - set value(v) { - if (!v && this.initial) { - this.placeholder = true; - this.rendered = color.gray(this.transform.render(this.initial)); - } else { - this.placeholder = false; - this.rendered = this.transform.render(v); - } - this._value = v; - this.fire(); - } - get value() { - return this._value; - } - reset() { - this.value = ``; - this.cursor = Number(!!this.initial); - this.cursorOffset = 0; - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.value = this.value || this.initial; - this.done = this.aborted = true; - this.error = false; - this.red = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - validate() { - var _this = this; - return _asyncToGenerator(function* () { - let valid = yield _this.validator(_this.value); - if (typeof valid === `string`) { - _this.errorMsg = valid; - valid = false; - } - _this.error = !valid; - })(); - } - submit() { - var _this2 = this; - return _asyncToGenerator(function* () { - _this2.value = _this2.value || _this2.initial; - _this2.cursorOffset = 0; - _this2.cursor = _this2.rendered.length; - yield _this2.validate(); - if (_this2.error) { - _this2.red = true; - _this2.fire(); - _this2.render(); - return; - } - _this2.done = true; - _this2.aborted = false; - _this2.fire(); - _this2.render(); - _this2.out.write(` -`); - _this2.close(); - })(); - } - next() { - if (!this.placeholder) - return this.bell(); - this.value = this.initial; - this.cursor = this.rendered.length; - this.fire(); - this.render(); - } - moveCursor(n) { - if (this.placeholder) - return; - this.cursor = this.cursor + n; - this.cursorOffset += n; - } - _(c, key2) { - let s1 = this.value.slice(0, this.cursor); - let s2 = this.value.slice(this.cursor); - this.value = `${s1}${c}${s2}`; - this.red = false; - this.cursor = this.placeholder ? 0 : s1.length + 1; - this.render(); - } - delete() { - if (this.isCursorAtStart()) - return this.bell(); - let s1 = this.value.slice(0, this.cursor - 1); - let s2 = this.value.slice(this.cursor); - this.value = `${s1}${s2}`; - this.red = false; - if (this.isCursorAtStart()) { - this.cursorOffset = 0; - } else { - this.cursorOffset++; - this.moveCursor(-1); - } - this.render(); - } - deleteForward() { - if (this.cursor * this.scale >= this.rendered.length || this.placeholder) - return this.bell(); - let s1 = this.value.slice(0, this.cursor); - let s2 = this.value.slice(this.cursor + 1); - this.value = `${s1}${s2}`; - this.red = false; - if (this.isCursorAtEnd()) { - this.cursorOffset = 0; - } else { - this.cursorOffset++; - } - this.render(); - } - first() { - this.cursor = 0; - this.render(); - } - last() { - this.cursor = this.value.length; - this.render(); - } - left() { - if (this.cursor <= 0 || this.placeholder) - return this.bell(); - this.moveCursor(-1); - this.render(); - } - right() { - if (this.cursor * this.scale >= this.rendered.length || this.placeholder) - return this.bell(); - this.moveCursor(1); - this.render(); - } - isCursorAtStart() { - return this.cursor === 0 || this.placeholder && this.cursor === 1; - } - isCursorAtEnd() { - return this.cursor === this.rendered.length || this.placeholder && this.cursor === this.rendered.length + 1; - } - render() { - if (this.closed) - return; - if (!this.firstRender) { - if (this.outputError) - this.out.write(cursor.down(lines2(this.outputError, this.out.columns) - 1) + clear(this.outputError, this.out.columns)); - this.out.write(clear(this.outputText, this.out.columns)); - } - super.render(); - this.outputError = ""; - this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(this.done), this.red ? color.red(this.rendered) : this.rendered].join(` `); - if (this.error) { - this.outputError += this.errorMsg.split(` -`).reduce((a, l, i) => a + ` -${i ? " " : figures2.pointerSmall} ${color.red().italic(l)}`, ``); - } - this.out.write(erase.line + cursor.to(0) + this.outputText + cursor.save + this.outputError + cursor.restore + cursor.move(this.cursorOffset, 0)); - } - } - module.exports = TextPrompt; -}); - -// node_modules/prompts/dist/elements/select.js -var require_select = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt(); - var _require = require_util5(); - var style = _require.style; - var clear = _require.clear; - var figures2 = _require.figures; - var wrap = _require.wrap; - var entriesToDisplay = _require.entriesToDisplay; - var _require2 = require_src(); - var cursor = _require2.cursor; - - class SelectPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.hint = opts.hint || "- Use arrow-keys. Return to submit."; - this.warn = opts.warn || "- This option is disabled"; - this.cursor = opts.initial || 0; - this.choices = opts.choices.map((ch, idx) => { - if (typeof ch === "string") - ch = { - title: ch, - value: idx - }; - return { - title: ch && (ch.title || ch.value || ch), - value: ch && (ch.value === undefined ? idx : ch.value), - description: ch && ch.description, - selected: ch && ch.selected, - disabled: ch && ch.disabled - }; + function mergeObject(target, source, options) { + var destination = {}; + if (options.isMergeableObject(target)) { + getKeys(target).forEach(function(key2) { + destination[key2] = cloneUnlessOtherwiseSpecified(target[key2], options); }); - this.optionsPerPage = opts.optionsPerPage || 10; - this.value = (this.choices[this.cursor] || {}).value; - this.clear = clear("", this.out.columns); - this.render(); - } - moveCursor(n) { - this.cursor = n; - this.value = this.choices[n].value; - this.fire(); - } - reset() { - this.moveCursor(0); - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - if (!this.selection.disabled) { - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } else - this.bell(); } - first() { - this.moveCursor(0); - this.render(); - } - last() { - this.moveCursor(this.choices.length - 1); - this.render(); - } - up() { - if (this.cursor === 0) { - this.moveCursor(this.choices.length - 1); - } else { - this.moveCursor(this.cursor - 1); + getKeys(source).forEach(function(key2) { + if (propertyIsUnsafe(target, key2)) { + return; } - this.render(); - } - down() { - if (this.cursor === this.choices.length - 1) { - this.moveCursor(0); + if (propertyIsOnObject(target, key2) && options.isMergeableObject(source[key2])) { + destination[key2] = getMergeFunction(key2, options)(target[key2], source[key2], options); } else { - this.moveCursor(this.cursor + 1); - } - this.render(); - } - next() { - this.moveCursor((this.cursor + 1) % this.choices.length); - this.render(); - } - _(c, key2) { - if (c === " ") - return this.submit(); - } - get selection() { - return this.choices[this.cursor]; - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - let _entriesToDisplay = entriesToDisplay(this.cursor, this.choices.length, this.optionsPerPage), startIndex = _entriesToDisplay.startIndex, endIndex = _entriesToDisplay.endIndex; - this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(false), this.done ? this.selection.title : this.selection.disabled ? color.yellow(this.warn) : color.gray(this.hint)].join(" "); - if (!this.done) { - this.outputText += ` -`; - for (let i = startIndex;i < endIndex; i++) { - let title, prefix, desc = "", v = this.choices[i]; - if (i === startIndex && startIndex > 0) { - prefix = figures2.arrowUp; - } else if (i === endIndex - 1 && endIndex < this.choices.length) { - prefix = figures2.arrowDown; - } else { - prefix = " "; - } - if (v.disabled) { - title = this.cursor === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title); - prefix = (this.cursor === i ? color.bold().gray(figures2.pointer) + " " : " ") + prefix; - } else { - title = this.cursor === i ? color.cyan().underline(v.title) : v.title; - prefix = (this.cursor === i ? color.cyan(figures2.pointer) + " " : " ") + prefix; - if (v.description && this.cursor === i) { - desc = ` - ${v.description}`; - if (prefix.length + title.length + desc.length >= this.out.columns || v.description.split(/\r?\n/).length > 1) { - desc = ` -` + wrap(v.description, { - margin: 3, - width: this.out.columns - }); - } - } - } - this.outputText += `${prefix} ${title}${color.gray(desc)} -`; - } + destination[key2] = cloneUnlessOtherwiseSpecified(source[key2], options); } - this.out.write(this.outputText); - } + }); + return destination; } - module.exports = SelectPrompt; -}); - -// node_modules/prompts/dist/elements/toggle.js -var require_toggle = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt(); - var _require = require_util5(); - var style = _require.style; - var clear = _require.clear; - var _require2 = require_src(); - var cursor = _require2.cursor; - var erase = _require2.erase; - - class TogglePrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.value = !!opts.initial; - this.active = opts.active || "on"; - this.inactive = opts.inactive || "off"; - this.initialValue = this.value; - this.render(); - } - reset() { - this.value = this.initialValue; - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - deactivate() { - if (this.value === false) - return this.bell(); - this.value = false; - this.render(); - } - activate() { - if (this.value === true) - return this.bell(); - this.value = true; - this.render(); - } - delete() { - this.deactivate(); - } - left() { - this.deactivate(); - } - right() { - this.activate(); - } - down() { - this.deactivate(); - } - up() { - this.activate(); - } - next() { - this.value = !this.value; - this.fire(); - this.render(); - } - _(c, key2) { - if (c === " ") { - this.value = !this.value; - } else if (c === "1") { - this.value = true; - } else if (c === "0") { - this.value = false; - } else - return this.bell(); - this.render(); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(this.done), this.value ? this.inactive : color.cyan().underline(this.inactive), color.gray("/"), this.value ? color.cyan().underline(this.active) : this.active].join(" "); - this.out.write(erase.line + cursor.to(0) + this.outputText); + function deepmerge(target, source, options) { + options = options || {}; + options.arrayMerge = options.arrayMerge || defaultArrayMerge; + options.isMergeableObject = options.isMergeableObject || isMergeableObject; + options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; + var sourceIsArray = Array.isArray(source); + var targetIsArray = Array.isArray(target); + var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; + if (!sourceAndTargetTypesMatch) { + return cloneUnlessOtherwiseSpecified(source, options); + } else if (sourceIsArray) { + return options.arrayMerge(target, source, options); + } else { + return mergeObject(target, source, options); } } - module.exports = TogglePrompt; -}); - -// node_modules/prompts/dist/dateparts/datepart.js -var require_datepart = __commonJS((exports, module) => { - class DatePart { - constructor({ - token, - date, - parts, - locales - }) { - this.token = token; - this.date = date || new Date; - this.parts = parts || [this]; - this.locales = locales || {}; - } - up() { - } - down() { - } - next() { - const currentIdx = this.parts.indexOf(this); - return this.parts.find((part, idx) => idx > currentIdx && part instanceof DatePart); - } - setTo(val) { - } - prev() { - let parts = [].concat(this.parts).reverse(); - const currentIdx = parts.indexOf(this); - return parts.find((part, idx) => idx > currentIdx && part instanceof DatePart); - } - toString() { - return String(this.date); + deepmerge.all = function deepmergeAll(array, options) { + if (!Array.isArray(array)) { + throw new Error("first argument should be an array"); } - } - module.exports = DatePart; + return array.reduce(function(prev, next) { + return deepmerge(prev, next, options); + }, {}); + }; + var deepmerge_1 = deepmerge; + module.exports = deepmerge_1; }); -// node_modules/prompts/dist/dateparts/meridiem.js -var require_meridiem = __commonJS((exports, module) => { - var DatePart = require_datepart(); - - class Meridiem extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setHours((this.date.getHours() + 12) % 24); +// node_modules/isexe/windows.js +var require_windows = __commonJS((exports, module) => { + module.exports = isexe; + isexe.sync = sync; + var fs6 = __require("fs"); + function checkPathExt(path5, options) { + var pathext = options.pathExt !== undefined ? options.pathExt : process.env.PATHEXT; + if (!pathext) { + return true; } - down() { - this.up(); + pathext = pathext.split(";"); + if (pathext.indexOf("") !== -1) { + return true; } - toString() { - let meridiem = this.date.getHours() > 12 ? "pm" : "am"; - return /\A/.test(this.token) ? meridiem.toUpperCase() : meridiem; + for (var i = 0;i < pathext.length; i++) { + var p = pathext[i].toLowerCase(); + if (p && path5.substr(-p.length).toLowerCase() === p) { + return true; + } } + return false; } - module.exports = Meridiem; -}); - -// node_modules/prompts/dist/dateparts/day.js -var require_day = __commonJS((exports, module) => { - var DatePart = require_datepart(); - var pos = (n) => { - n = n % 10; - return n === 1 ? "st" : n === 2 ? "nd" : n === 3 ? "rd" : "th"; - }; - - class Day extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setDate(this.date.getDate() + 1); - } - down() { - this.date.setDate(this.date.getDate() - 1); - } - setTo(val) { - this.date.setDate(parseInt(val.substr(-2))); - } - toString() { - let date = this.date.getDate(); - let day = this.date.getDay(); - return this.token === "DD" ? String(date).padStart(2, "0") : this.token === "Do" ? date + pos(date) : this.token === "d" ? day + 1 : this.token === "ddd" ? this.locales.weekdaysShort[day] : this.token === "dddd" ? this.locales.weekdays[day] : date; + function checkStat(stat, path5, options) { + if (!stat.isSymbolicLink() && !stat.isFile()) { + return false; } + return checkPathExt(path5, options); } - module.exports = Day; -}); - -// node_modules/prompts/dist/dateparts/hours.js -var require_hours = __commonJS((exports, module) => { - var DatePart = require_datepart(); - - class Hours extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setHours(this.date.getHours() + 1); - } - down() { - this.date.setHours(this.date.getHours() - 1); - } - setTo(val) { - this.date.setHours(parseInt(val.substr(-2))); - } - toString() { - let hours = this.date.getHours(); - if (/h/.test(this.token)) - hours = hours % 12 || 12; - return this.token.length > 1 ? String(hours).padStart(2, "0") : hours; - } + function isexe(path5, options, cb) { + fs6.stat(path5, function(er, stat) { + cb(er, er ? false : checkStat(stat, path5, options)); + }); } - module.exports = Hours; -}); - -// node_modules/prompts/dist/dateparts/milliseconds.js -var require_milliseconds = __commonJS((exports, module) => { - var DatePart = require_datepart(); - - class Milliseconds extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setMilliseconds(this.date.getMilliseconds() + 1); - } - down() { - this.date.setMilliseconds(this.date.getMilliseconds() - 1); - } - setTo(val) { - this.date.setMilliseconds(parseInt(val.substr(-this.token.length))); - } - toString() { - return String(this.date.getMilliseconds()).padStart(4, "0").substr(0, this.token.length); - } + function sync(path5, options) { + return checkStat(fs6.statSync(path5), path5, options); } - module.exports = Milliseconds; }); -// node_modules/prompts/dist/dateparts/minutes.js -var require_minutes = __commonJS((exports, module) => { - var DatePart = require_datepart(); - - class Minutes extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setMinutes(this.date.getMinutes() + 1); - } - down() { - this.date.setMinutes(this.date.getMinutes() - 1); - } - setTo(val) { - this.date.setMinutes(parseInt(val.substr(-2))); - } - toString() { - let m = this.date.getMinutes(); - return this.token.length > 1 ? String(m).padStart(2, "0") : m; - } +// node_modules/isexe/mode.js +var require_mode = __commonJS((exports, module) => { + module.exports = isexe; + isexe.sync = sync; + var fs6 = __require("fs"); + function isexe(path5, options, cb) { + fs6.stat(path5, function(er, stat) { + cb(er, er ? false : checkStat(stat, options)); + }); } - module.exports = Minutes; -}); - -// node_modules/prompts/dist/dateparts/month.js -var require_month = __commonJS((exports, module) => { - var DatePart = require_datepart(); - - class Month extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setMonth(this.date.getMonth() + 1); - } - down() { - this.date.setMonth(this.date.getMonth() - 1); - } - setTo(val) { - val = parseInt(val.substr(-2)) - 1; - this.date.setMonth(val < 0 ? 0 : val); - } - toString() { - let month = this.date.getMonth(); - let tl = this.token.length; - return tl === 2 ? String(month + 1).padStart(2, "0") : tl === 3 ? this.locales.monthsShort[month] : tl === 4 ? this.locales.months[month] : String(month + 1); - } + function sync(path5, options) { + return checkStat(fs6.statSync(path5), options); } - module.exports = Month; -}); - -// node_modules/prompts/dist/dateparts/seconds.js -var require_seconds = __commonJS((exports, module) => { - var DatePart = require_datepart(); - - class Seconds extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setSeconds(this.date.getSeconds() + 1); - } - down() { - this.date.setSeconds(this.date.getSeconds() - 1); - } - setTo(val) { - this.date.setSeconds(parseInt(val.substr(-2))); - } - toString() { - let s = this.date.getSeconds(); - return this.token.length > 1 ? String(s).padStart(2, "0") : s; - } + function checkStat(stat, options) { + return stat.isFile() && checkMode(stat, options); } - module.exports = Seconds; -}); - -// node_modules/prompts/dist/dateparts/year.js -var require_year = __commonJS((exports, module) => { - var DatePart = require_datepart(); - - class Year extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setFullYear(this.date.getFullYear() + 1); - } - down() { - this.date.setFullYear(this.date.getFullYear() - 1); - } - setTo(val) { - this.date.setFullYear(val.substr(-4)); - } - toString() { - let year = String(this.date.getFullYear()).padStart(4, "0"); - return this.token.length === 2 ? year.substr(-2) : year; - } + function checkMode(stat, options) { + var mod = stat.mode; + var uid = stat.uid; + var gid = stat.gid; + var myUid = options.uid !== undefined ? options.uid : process.getuid && process.getuid(); + var myGid = options.gid !== undefined ? options.gid : process.getgid && process.getgid(); + var u = parseInt("100", 8); + var g = parseInt("010", 8); + var o = parseInt("001", 8); + var ug = u | g; + var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0; + return ret; } - module.exports = Year; -}); - -// node_modules/prompts/dist/dateparts/index.js -var require_dateparts = __commonJS((exports, module) => { - module.exports = { - DatePart: require_datepart(), - Meridiem: require_meridiem(), - Day: require_day(), - Hours: require_hours(), - Milliseconds: require_milliseconds(), - Minutes: require_minutes(), - Month: require_month(), - Seconds: require_seconds(), - Year: require_year() - }; }); -// node_modules/prompts/dist/elements/date.js -var require_date = __commonJS((exports, module) => { - function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key2, arg) { - try { - var info = gen[key2](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } +// node_modules/isexe/index.js +var require_isexe = __commonJS((exports, module) => { + var fs6 = __require("fs"); + var core; + if (process.platform === "win32" || global.TESTING_WINDOWS) { + core = require_windows(); + } else { + core = require_mode(); } - function _asyncToGenerator(fn) { - return function() { - var self2 = this, args = arguments; + module.exports = isexe; + isexe.sync = sync; + function isexe(path5, options, cb) { + if (typeof options === "function") { + cb = options; + options = {}; + } + if (!cb) { + if (typeof Promise !== "function") { + throw new TypeError("callback not provided"); + } return new Promise(function(resolve, reject) { - var gen = fn.apply(self2, args); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); + isexe(path5, options || {}, function(er, is) { + if (er) { + reject(er); + } else { + resolve(is); + } + }); }); - }; - } - var color = require_kleur(); - var Prompt = require_prompt(); - var _require = require_util5(); - var style = _require.style; - var clear = _require.clear; - var figures2 = _require.figures; - var _require2 = require_src(); - var erase = _require2.erase; - var cursor = _require2.cursor; - var _require3 = require_dateparts(); - var DatePart = _require3.DatePart; - var Meridiem = _require3.Meridiem; - var Day = _require3.Day; - var Hours = _require3.Hours; - var Milliseconds = _require3.Milliseconds; - var Minutes = _require3.Minutes; - var Month = _require3.Month; - var Seconds = _require3.Seconds; - var Year = _require3.Year; - var regex2 = /\\(.)|"((?:\\["\\]|[^"])+)"|(D[Do]?|d{3,4}|d)|(M{1,4})|(YY(?:YY)?)|([aA])|([Hh]{1,2})|(m{1,2})|(s{1,2})|(S{1,4})|./g; - var regexGroups = { - 1: ({ - token - }) => token.replace(/\\(.)/g, "$1"), - 2: (opts) => new Day(opts), - 3: (opts) => new Month(opts), - 4: (opts) => new Year(opts), - 5: (opts) => new Meridiem(opts), - 6: (opts) => new Hours(opts), - 7: (opts) => new Minutes(opts), - 8: (opts) => new Seconds(opts), - 9: (opts) => new Milliseconds(opts) - }; - var dfltLocales = { - months: "January,February,March,April,May,June,July,August,September,October,November,December".split(","), - monthsShort: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","), - weekdays: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","), - weekdaysShort: "Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(",") - }; - - class DatePrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.cursor = 0; - this.typed = ""; - this.locales = Object.assign(dfltLocales, opts.locales); - this._date = opts.initial || new Date; - this.errorMsg = opts.error || "Please Enter A Valid Value"; - this.validator = opts.validate || (() => true); - this.mask = opts.mask || "YYYY-MM-DD HH:mm:ss"; - this.clear = clear("", this.out.columns); - this.render(); - } - get value() { - return this.date; - } - get date() { - return this._date; - } - set date(date) { - if (date) - this._date.setTime(date.getTime()); - } - set mask(mask) { - let result; - this.parts = []; - while (result = regex2.exec(mask)) { - let match = result.shift(); - let idx = result.findIndex((gr) => gr != null); - this.parts.push(idx in regexGroups ? regexGroups[idx]({ - token: result[idx] || match, - date: this.date, - parts: this.parts, - locales: this.locales - }) : result[idx] || match); - } - let parts = this.parts.reduce((arr, i) => { - if (typeof i === "string" && typeof arr[arr.length - 1] === "string") - arr[arr.length - 1] += i; - else - arr.push(i); - return arr; - }, []); - this.parts.splice(0); - this.parts.push(...parts); - this.reset(); - } - moveCursor(n) { - this.typed = ""; - this.cursor = n; - this.fire(); - } - reset() { - this.moveCursor(this.parts.findIndex((p) => p instanceof DatePart)); - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.error = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - validate() { - var _this = this; - return _asyncToGenerator(function* () { - let valid = yield _this.validator(_this.value); - if (typeof valid === "string") { - _this.errorMsg = valid; - valid = false; - } - _this.error = !valid; - })(); } - submit() { - var _this2 = this; - return _asyncToGenerator(function* () { - yield _this2.validate(); - if (_this2.error) { - _this2.color = "red"; - _this2.fire(); - _this2.render(); - return; + core(path5, options || {}, function(er, is) { + if (er) { + if (er.code === "EACCES" || options && options.ignoreErrors) { + er = null; + is = false; } - _this2.done = true; - _this2.aborted = false; - _this2.fire(); - _this2.render(); - _this2.out.write(` -`); - _this2.close(); - })(); - } - up() { - this.typed = ""; - this.parts[this.cursor].up(); - this.render(); - } - down() { - this.typed = ""; - this.parts[this.cursor].down(); - this.render(); - } - left() { - let prev = this.parts[this.cursor].prev(); - if (prev == null) - return this.bell(); - this.moveCursor(this.parts.indexOf(prev)); - this.render(); - } - right() { - let next = this.parts[this.cursor].next(); - if (next == null) - return this.bell(); - this.moveCursor(this.parts.indexOf(next)); - this.render(); - } - next() { - let next = this.parts[this.cursor].next(); - this.moveCursor(next ? this.parts.indexOf(next) : this.parts.findIndex((part) => part instanceof DatePart)); - this.render(); - } - _(c) { - if (/\d/.test(c)) { - this.typed += c; - this.parts[this.cursor].setTo(this.typed); - this.render(); - } - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(false), this.parts.reduce((arr, p, idx) => arr.concat(idx === this.cursor && !this.done ? color.cyan().underline(p.toString()) : p), []).join("")].join(" "); - if (this.error) { - this.outputText += this.errorMsg.split(` -`).reduce((a, l, i) => a + ` -${i ? ` ` : figures2.pointerSmall} ${color.red().italic(l)}`, ``); } - this.out.write(erase.line + cursor.to(0) + this.outputText); - } + cb(er, is); + }); } - module.exports = DatePrompt; -}); - -// node_modules/prompts/dist/elements/number.js -var require_number = __commonJS((exports, module) => { - function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key2, arg) { + function sync(path5, options) { try { - var info = gen[key2](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } - } - function _asyncToGenerator(fn) { - return function() { - var self2 = this, args = arguments; - return new Promise(function(resolve, reject) { - var gen = fn.apply(self2, args); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; - } - var color = require_kleur(); - var Prompt = require_prompt(); - var _require = require_src(); - var cursor = _require.cursor; - var erase = _require.erase; - var _require2 = require_util5(); - var style = _require2.style; - var figures2 = _require2.figures; - var clear = _require2.clear; - var lines2 = _require2.lines; - var isNumber = /[0-9]/; - var isDef = (any) => any !== undefined; - var round = (number, precision) => { - let factor = Math.pow(10, precision); - return Math.round(number * factor) / factor; - }; - - class NumberPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.transform = style.render(opts.style); - this.msg = opts.message; - this.initial = isDef(opts.initial) ? opts.initial : ""; - this.float = !!opts.float; - this.round = opts.round || 2; - this.inc = opts.increment || 1; - this.min = isDef(opts.min) ? opts.min : -Infinity; - this.max = isDef(opts.max) ? opts.max : Infinity; - this.errorMsg = opts.error || `Please Enter A Valid Value`; - this.validator = opts.validate || (() => true); - this.color = `cyan`; - this.value = ``; - this.typed = ``; - this.lastHit = 0; - this.render(); - } - set value(v) { - if (!v && v !== 0) { - this.placeholder = true; - this.rendered = color.gray(this.transform.render(`${this.initial}`)); - this._value = ``; - } else { - this.placeholder = false; - this.rendered = this.transform.render(`${round(v, this.round)}`); - this._value = round(v, this.round); - } - this.fire(); - } - get value() { - return this._value; - } - parse(x) { - return this.float ? parseFloat(x) : parseInt(x); - } - valid(c) { - return c === `-` || c === `.` && this.float || isNumber.test(c); - } - reset() { - this.typed = ``; - this.value = ``; - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - let x = this.value; - this.value = x !== `` ? x : this.initial; - this.done = this.aborted = true; - this.error = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - validate() { - var _this = this; - return _asyncToGenerator(function* () { - let valid = yield _this.validator(_this.value); - if (typeof valid === `string`) { - _this.errorMsg = valid; - valid = false; - } - _this.error = !valid; - })(); - } - submit() { - var _this2 = this; - return _asyncToGenerator(function* () { - yield _this2.validate(); - if (_this2.error) { - _this2.color = `red`; - _this2.fire(); - _this2.render(); - return; - } - let x = _this2.value; - _this2.value = x !== `` ? x : _this2.initial; - _this2.done = true; - _this2.aborted = false; - _this2.error = false; - _this2.fire(); - _this2.render(); - _this2.out.write(` -`); - _this2.close(); - })(); - } - up() { - this.typed = ``; - if (this.value === "") { - this.value = this.min - this.inc; - } - if (this.value >= this.max) - return this.bell(); - this.value += this.inc; - this.color = `cyan`; - this.fire(); - this.render(); - } - down() { - this.typed = ``; - if (this.value === "") { - this.value = this.min + this.inc; - } - if (this.value <= this.min) - return this.bell(); - this.value -= this.inc; - this.color = `cyan`; - this.fire(); - this.render(); - } - delete() { - let val = this.value.toString(); - if (val.length === 0) - return this.bell(); - this.value = this.parse(val = val.slice(0, -1)) || ``; - if (this.value !== "" && this.value < this.min) { - this.value = this.min; - } - this.color = `cyan`; - this.fire(); - this.render(); - } - next() { - this.value = this.initial; - this.fire(); - this.render(); - } - _(c, key2) { - if (!this.valid(c)) - return this.bell(); - const now = Date.now(); - if (now - this.lastHit > 1000) - this.typed = ``; - this.typed += c; - this.lastHit = now; - this.color = `cyan`; - if (c === `.`) - return this.fire(); - this.value = Math.min(this.parse(this.typed), this.max); - if (this.value > this.max) - this.value = this.max; - if (this.value < this.min) - this.value = this.min; - this.fire(); - this.render(); - } - render() { - if (this.closed) - return; - if (!this.firstRender) { - if (this.outputError) - this.out.write(cursor.down(lines2(this.outputError, this.out.columns) - 1) + clear(this.outputError, this.out.columns)); - this.out.write(clear(this.outputText, this.out.columns)); - } - super.render(); - this.outputError = ""; - this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(this.done), !this.done || !this.done && !this.placeholder ? color[this.color]().underline(this.rendered) : this.rendered].join(` `); - if (this.error) { - this.outputError += this.errorMsg.split(` -`).reduce((a, l, i) => a + ` -${i ? ` ` : figures2.pointerSmall} ${color.red().italic(l)}`, ``); - } - this.out.write(erase.line + cursor.to(0) + this.outputText + cursor.save + this.outputError + cursor.restore); - } - } - module.exports = NumberPrompt; -}); - -// node_modules/prompts/dist/elements/multiselect.js -var require_multiselect = __commonJS((exports, module) => { - var color = require_kleur(); - var _require = require_src(); - var cursor = _require.cursor; - var Prompt = require_prompt(); - var _require2 = require_util5(); - var clear = _require2.clear; - var figures2 = _require2.figures; - var style = _require2.style; - var wrap = _require2.wrap; - var entriesToDisplay = _require2.entriesToDisplay; - - class MultiselectPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.cursor = opts.cursor || 0; - this.scrollIndex = opts.cursor || 0; - this.hint = opts.hint || ""; - this.warn = opts.warn || "- This option is disabled -"; - this.minSelected = opts.min; - this.showMinError = false; - this.maxChoices = opts.max; - this.instructions = opts.instructions; - this.optionsPerPage = opts.optionsPerPage || 10; - this.value = opts.choices.map((ch, idx) => { - if (typeof ch === "string") - ch = { - title: ch, - value: idx - }; - return { - title: ch && (ch.title || ch.value || ch), - description: ch && ch.description, - value: ch && (ch.value === undefined ? idx : ch.value), - selected: ch && ch.selected, - disabled: ch && ch.disabled - }; - }); - this.clear = clear("", this.out.columns); - if (!opts.overrideRender) { - this.render(); - } - } - reset() { - this.value.map((v) => !v.selected); - this.cursor = 0; - this.fire(); - this.render(); - } - selected() { - return this.value.filter((v) => v.selected); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - const selected = this.value.filter((e) => e.selected); - if (this.minSelected && selected.length < this.minSelected) { - this.showMinError = true; - this.render(); - } else { - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - } - first() { - this.cursor = 0; - this.render(); - } - last() { - this.cursor = this.value.length - 1; - this.render(); - } - next() { - this.cursor = (this.cursor + 1) % this.value.length; - this.render(); - } - up() { - if (this.cursor === 0) { - this.cursor = this.value.length - 1; - } else { - this.cursor--; - } - this.render(); - } - down() { - if (this.cursor === this.value.length - 1) { - this.cursor = 0; - } else { - this.cursor++; - } - this.render(); - } - left() { - this.value[this.cursor].selected = false; - this.render(); - } - right() { - if (this.value.filter((e) => e.selected).length >= this.maxChoices) - return this.bell(); - this.value[this.cursor].selected = true; - this.render(); - } - handleSpaceToggle() { - const v = this.value[this.cursor]; - if (v.selected) { - v.selected = false; - this.render(); - } else if (v.disabled || this.value.filter((e) => e.selected).length >= this.maxChoices) { - return this.bell(); - } else { - v.selected = true; - this.render(); - } - } - toggleAll() { - if (this.maxChoices !== undefined || this.value[this.cursor].disabled) { - return this.bell(); - } - const newSelected = !this.value[this.cursor].selected; - this.value.filter((v) => !v.disabled).forEach((v) => v.selected = newSelected); - this.render(); - } - _(c, key2) { - if (c === " ") { - this.handleSpaceToggle(); - } else if (c === "a") { - this.toggleAll(); - } else { - return this.bell(); - } - } - renderInstructions() { - if (this.instructions === undefined || this.instructions) { - if (typeof this.instructions === "string") { - return this.instructions; - } - return ` -Instructions: -` + ` ${figures2.arrowUp}/${figures2.arrowDown}: Highlight option -` + ` ${figures2.arrowLeft}/${figures2.arrowRight}/[space]: Toggle selection -` + (this.maxChoices === undefined ? ` a: Toggle all -` : "") + ` enter/return: Complete answer`; - } - return ""; - } - renderOption(cursor2, v, i, arrowIndicator) { - const prefix = (v.selected ? color.green(figures2.radioOn) : figures2.radioOff) + " " + arrowIndicator + " "; - let title, desc; - if (v.disabled) { - title = cursor2 === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title); - } else { - title = cursor2 === i ? color.cyan().underline(v.title) : v.title; - if (cursor2 === i && v.description) { - desc = ` - ${v.description}`; - if (prefix.length + title.length + desc.length >= this.out.columns || v.description.split(/\r?\n/).length > 1) { - desc = ` -` + wrap(v.description, { - margin: prefix.length, - width: this.out.columns - }); - } - } - } - return prefix + title + color.gray(desc || ""); - } - paginateOptions(options) { - if (options.length === 0) { - return color.red("No matches for this query."); - } - let _entriesToDisplay = entriesToDisplay(this.cursor, options.length, this.optionsPerPage), startIndex = _entriesToDisplay.startIndex, endIndex = _entriesToDisplay.endIndex; - let prefix, styledOptions = []; - for (let i = startIndex;i < endIndex; i++) { - if (i === startIndex && startIndex > 0) { - prefix = figures2.arrowUp; - } else if (i === endIndex - 1 && endIndex < options.length) { - prefix = figures2.arrowDown; - } else { - prefix = " "; - } - styledOptions.push(this.renderOption(this.cursor, options[i], i, prefix)); - } - return ` -` + styledOptions.join(` -`); - } - renderOptions(options) { - if (!this.done) { - return this.paginateOptions(options); - } - return ""; - } - renderDoneOrInstructions() { - if (this.done) { - return this.value.filter((e) => e.selected).map((v) => v.title).join(", "); - } - const output = [color.gray(this.hint), this.renderInstructions()]; - if (this.value[this.cursor].disabled) { - output.push(color.yellow(this.warn)); - } - return output.join(" "); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - super.render(); - let prompt2 = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(false), this.renderDoneOrInstructions()].join(" "); - if (this.showMinError) { - prompt2 += color.red(`You must select a minimum of ${this.minSelected} choices.`); - this.showMinError = false; - } - prompt2 += this.renderOptions(this.value); - this.out.write(this.clear + prompt2); - this.clear = clear(prompt2, this.out.columns); - } - } - module.exports = MultiselectPrompt; -}); - -// node_modules/prompts/dist/elements/autocomplete.js -var require_autocomplete = __commonJS((exports, module) => { - function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key2, arg) { - try { - var info = gen[key2](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } - } - function _asyncToGenerator(fn) { - return function() { - var self2 = this, args = arguments; - return new Promise(function(resolve, reject) { - var gen = fn.apply(self2, args); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; - } - var color = require_kleur(); - var Prompt = require_prompt(); - var _require = require_src(); - var erase = _require.erase; - var cursor = _require.cursor; - var _require2 = require_util5(); - var style = _require2.style; - var clear = _require2.clear; - var figures2 = _require2.figures; - var wrap = _require2.wrap; - var entriesToDisplay = _require2.entriesToDisplay; - var getVal = (arr, i) => arr[i] && (arr[i].value || arr[i].title || arr[i]); - var getTitle = (arr, i) => arr[i] && (arr[i].title || arr[i].value || arr[i]); - var getIndex = (arr, valOrTitle) => { - const index = arr.findIndex((el) => el.value === valOrTitle || el.title === valOrTitle); - return index > -1 ? index : undefined; - }; - - class AutocompletePrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.suggest = opts.suggest; - this.choices = opts.choices; - this.initial = typeof opts.initial === "number" ? opts.initial : getIndex(opts.choices, opts.initial); - this.select = this.initial || opts.cursor || 0; - this.i18n = { - noMatches: opts.noMatches || "no matches found" - }; - this.fallback = opts.fallback || this.initial; - this.clearFirst = opts.clearFirst || false; - this.suggestions = []; - this.input = ""; - this.limit = opts.limit || 10; - this.cursor = 0; - this.transform = style.render(opts.style); - this.scale = this.transform.scale; - this.render = this.render.bind(this); - this.complete = this.complete.bind(this); - this.clear = clear("", this.out.columns); - this.complete(this.render); - this.render(); - } - set fallback(fb) { - this._fb = Number.isSafeInteger(parseInt(fb)) ? parseInt(fb) : fb; - } - get fallback() { - let choice; - if (typeof this._fb === "number") - choice = this.choices[this._fb]; - else if (typeof this._fb === "string") - choice = { - title: this._fb - }; - return choice || this._fb || { - title: this.i18n.noMatches - }; - } - moveSelect(i) { - this.select = i; - if (this.suggestions.length > 0) - this.value = getVal(this.suggestions, i); - else - this.value = this.fallback.value; - this.fire(); - } - complete(cb) { - var _this = this; - return _asyncToGenerator(function* () { - const p = _this.completing = _this.suggest(_this.input, _this.choices); - const suggestions = yield p; - if (_this.completing !== p) - return; - _this.suggestions = suggestions.map((s, i, arr) => ({ - title: getTitle(arr, i), - value: getVal(arr, i), - description: s.description - })); - _this.completing = false; - const l = Math.max(suggestions.length - 1, 0); - _this.moveSelect(Math.min(l, _this.select)); - cb && cb(); - })(); - } - reset() { - this.input = ""; - this.complete(() => { - this.moveSelect(this.initial !== undefined ? this.initial : 0); - this.render(); - }); - this.render(); - } - exit() { - if (this.clearFirst && this.input.length > 0) { - this.reset(); - } else { - this.done = this.exited = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - } - abort() { - this.done = this.aborted = true; - this.exited = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - this.done = true; - this.aborted = this.exited = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - _(c, key2) { - let s1 = this.input.slice(0, this.cursor); - let s2 = this.input.slice(this.cursor); - this.input = `${s1}${c}${s2}`; - this.cursor = s1.length + 1; - this.complete(this.render); - this.render(); - } - delete() { - if (this.cursor === 0) - return this.bell(); - let s1 = this.input.slice(0, this.cursor - 1); - let s2 = this.input.slice(this.cursor); - this.input = `${s1}${s2}`; - this.complete(this.render); - this.cursor = this.cursor - 1; - this.render(); - } - deleteForward() { - if (this.cursor * this.scale >= this.rendered.length) - return this.bell(); - let s1 = this.input.slice(0, this.cursor); - let s2 = this.input.slice(this.cursor + 1); - this.input = `${s1}${s2}`; - this.complete(this.render); - this.render(); - } - first() { - this.moveSelect(0); - this.render(); - } - last() { - this.moveSelect(this.suggestions.length - 1); - this.render(); - } - up() { - if (this.select === 0) { - this.moveSelect(this.suggestions.length - 1); - } else { - this.moveSelect(this.select - 1); - } - this.render(); - } - down() { - if (this.select === this.suggestions.length - 1) { - this.moveSelect(0); - } else { - this.moveSelect(this.select + 1); - } - this.render(); - } - next() { - if (this.select === this.suggestions.length - 1) { - this.moveSelect(0); - } else - this.moveSelect(this.select + 1); - this.render(); - } - nextPage() { - this.moveSelect(Math.min(this.select + this.limit, this.suggestions.length - 1)); - this.render(); - } - prevPage() { - this.moveSelect(Math.max(this.select - this.limit, 0)); - this.render(); - } - left() { - if (this.cursor <= 0) - return this.bell(); - this.cursor = this.cursor - 1; - this.render(); - } - right() { - if (this.cursor * this.scale >= this.rendered.length) - return this.bell(); - this.cursor = this.cursor + 1; - this.render(); - } - renderOption(v, hovered, isStart, isEnd) { - let desc; - let prefix = isStart ? figures2.arrowUp : isEnd ? figures2.arrowDown : " "; - let title = hovered ? color.cyan().underline(v.title) : v.title; - prefix = (hovered ? color.cyan(figures2.pointer) + " " : " ") + prefix; - if (v.description) { - desc = ` - ${v.description}`; - if (prefix.length + title.length + desc.length >= this.out.columns || v.description.split(/\r?\n/).length > 1) { - desc = ` -` + wrap(v.description, { - margin: 3, - width: this.out.columns - }); - } - } - return prefix + " " + title + color.gray(desc || ""); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - let _entriesToDisplay = entriesToDisplay(this.select, this.choices.length, this.limit), startIndex = _entriesToDisplay.startIndex, endIndex = _entriesToDisplay.endIndex; - this.outputText = [style.symbol(this.done, this.aborted, this.exited), color.bold(this.msg), style.delimiter(this.completing), this.done && this.suggestions[this.select] ? this.suggestions[this.select].title : this.rendered = this.transform.render(this.input)].join(" "); - if (!this.done) { - const suggestions = this.suggestions.slice(startIndex, endIndex).map((item, i) => this.renderOption(item, this.select === i + startIndex, i === 0 && startIndex > 0, i + startIndex === endIndex - 1 && endIndex < this.choices.length)).join(` -`); - this.outputText += ` -` + (suggestions || color.gray(this.fallback.title)); - } - this.out.write(erase.line + cursor.to(0) + this.outputText); - } - } - module.exports = AutocompletePrompt; -}); - -// node_modules/prompts/dist/elements/autocompleteMultiselect.js -var require_autocompleteMultiselect = __commonJS((exports, module) => { - var color = require_kleur(); - var _require = require_src(); - var cursor = _require.cursor; - var MultiselectPrompt = require_multiselect(); - var _require2 = require_util5(); - var clear = _require2.clear; - var style = _require2.style; - var figures2 = _require2.figures; - - class AutocompleteMultiselectPrompt extends MultiselectPrompt { - constructor(opts = {}) { - opts.overrideRender = true; - super(opts); - this.inputValue = ""; - this.clear = clear("", this.out.columns); - this.filteredOptions = this.value; - this.render(); - } - last() { - this.cursor = this.filteredOptions.length - 1; - this.render(); - } - next() { - this.cursor = (this.cursor + 1) % this.filteredOptions.length; - this.render(); - } - up() { - if (this.cursor === 0) { - this.cursor = this.filteredOptions.length - 1; - } else { - this.cursor--; - } - this.render(); - } - down() { - if (this.cursor === this.filteredOptions.length - 1) { - this.cursor = 0; - } else { - this.cursor++; - } - this.render(); - } - left() { - this.filteredOptions[this.cursor].selected = false; - this.render(); - } - right() { - if (this.value.filter((e) => e.selected).length >= this.maxChoices) - return this.bell(); - this.filteredOptions[this.cursor].selected = true; - this.render(); - } - delete() { - if (this.inputValue.length) { - this.inputValue = this.inputValue.substr(0, this.inputValue.length - 1); - this.updateFilteredOptions(); - } - } - updateFilteredOptions() { - const currentHighlight = this.filteredOptions[this.cursor]; - this.filteredOptions = this.value.filter((v) => { - if (this.inputValue) { - if (typeof v.title === "string") { - if (v.title.toLowerCase().includes(this.inputValue.toLowerCase())) { - return true; - } - } - if (typeof v.value === "string") { - if (v.value.toLowerCase().includes(this.inputValue.toLowerCase())) { - return true; - } - } - return false; - } - return true; - }); - const newHighlightIndex = this.filteredOptions.findIndex((v) => v === currentHighlight); - this.cursor = newHighlightIndex < 0 ? 0 : newHighlightIndex; - this.render(); - } - handleSpaceToggle() { - const v = this.filteredOptions[this.cursor]; - if (v.selected) { - v.selected = false; - this.render(); - } else if (v.disabled || this.value.filter((e) => e.selected).length >= this.maxChoices) { - return this.bell(); - } else { - v.selected = true; - this.render(); - } - } - handleInputChange(c) { - this.inputValue = this.inputValue + c; - this.updateFilteredOptions(); - } - _(c, key2) { - if (c === " ") { - this.handleSpaceToggle(); - } else { - this.handleInputChange(c); - } - } - renderInstructions() { - if (this.instructions === undefined || this.instructions) { - if (typeof this.instructions === "string") { - return this.instructions; - } - return ` -Instructions: - ${figures2.arrowUp}/${figures2.arrowDown}: Highlight option - ${figures2.arrowLeft}/${figures2.arrowRight}/[space]: Toggle selection - [a,b,c]/delete: Filter choices - enter/return: Complete answer -`; - } - return ""; - } - renderCurrentInput() { - return ` -Filtered results for: ${this.inputValue ? this.inputValue : color.gray("Enter something to filter")} -`; - } - renderOption(cursor2, v, i) { - let title; - if (v.disabled) - title = cursor2 === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title); - else - title = cursor2 === i ? color.cyan().underline(v.title) : v.title; - return (v.selected ? color.green(figures2.radioOn) : figures2.radioOff) + " " + title; - } - renderDoneOrInstructions() { - if (this.done) { - return this.value.filter((e) => e.selected).map((v) => v.title).join(", "); - } - const output = [color.gray(this.hint), this.renderInstructions(), this.renderCurrentInput()]; - if (this.filteredOptions.length && this.filteredOptions[this.cursor].disabled) { - output.push(color.yellow(this.warn)); - } - return output.join(" "); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - super.render(); - let prompt2 = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(false), this.renderDoneOrInstructions()].join(" "); - if (this.showMinError) { - prompt2 += color.red(`You must select a minimum of ${this.minSelected} choices.`); - this.showMinError = false; - } - prompt2 += this.renderOptions(this.filteredOptions); - this.out.write(this.clear + prompt2); - this.clear = clear(prompt2, this.out.columns); - } - } - module.exports = AutocompleteMultiselectPrompt; -}); - -// node_modules/prompts/dist/elements/confirm.js -var require_confirm = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt(); - var _require = require_util5(); - var style = _require.style; - var clear = _require.clear; - var _require2 = require_src(); - var erase = _require2.erase; - var cursor = _require2.cursor; - - class ConfirmPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.value = opts.initial; - this.initialValue = !!opts.initial; - this.yesMsg = opts.yes || "yes"; - this.yesOption = opts.yesOption || "(Y/n)"; - this.noMsg = opts.no || "no"; - this.noOption = opts.noOption || "(y/N)"; - this.render(); - } - reset() { - this.value = this.initialValue; - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - this.value = this.value || false; - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - _(c, key2) { - if (c.toLowerCase() === "y") { - this.value = true; - return this.submit(); - } - if (c.toLowerCase() === "n") { - this.value = false; - return this.submit(); - } - return this.bell(); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(this.done), this.done ? this.value ? this.yesMsg : this.noMsg : color.gray(this.initialValue ? this.yesOption : this.noOption)].join(" "); - this.out.write(erase.line + cursor.to(0) + this.outputText); - } - } - module.exports = ConfirmPrompt; -}); - -// node_modules/prompts/dist/elements/index.js -var require_elements = __commonJS((exports, module) => { - module.exports = { - TextPrompt: require_text(), - SelectPrompt: require_select(), - TogglePrompt: require_toggle(), - DatePrompt: require_date(), - NumberPrompt: require_number(), - MultiselectPrompt: require_multiselect(), - AutocompletePrompt: require_autocomplete(), - AutocompleteMultiselectPrompt: require_autocompleteMultiselect(), - ConfirmPrompt: require_confirm() - }; -}); - -// node_modules/prompts/dist/prompts.js -var require_prompts = __commonJS((exports) => { - var $ = exports; - var el = require_elements(); - var noop = (v) => v; - function toPrompt(type, args, opts = {}) { - return new Promise((res, rej) => { - const p = new el[type](args); - const onAbort = opts.onAbort || noop; - const onSubmit = opts.onSubmit || noop; - const onExit2 = opts.onExit || noop; - p.on("state", args.onState || noop); - p.on("submit", (x) => res(onSubmit(x))); - p.on("exit", (x) => res(onExit2(x))); - p.on("abort", (x) => rej(onAbort(x))); - }); - } - $.text = (args) => toPrompt("TextPrompt", args); - $.password = (args) => { - args.style = "password"; - return $.text(args); - }; - $.invisible = (args) => { - args.style = "invisible"; - return $.text(args); - }; - $.number = (args) => toPrompt("NumberPrompt", args); - $.date = (args) => toPrompt("DatePrompt", args); - $.confirm = (args) => toPrompt("ConfirmPrompt", args); - $.list = (args) => { - const sep = args.separator || ","; - return toPrompt("TextPrompt", args, { - onSubmit: (str) => str.split(sep).map((s) => s.trim()) - }); - }; - $.toggle = (args) => toPrompt("TogglePrompt", args); - $.select = (args) => toPrompt("SelectPrompt", args); - $.multiselect = (args) => { - args.choices = [].concat(args.choices || []); - const toSelected = (items) => items.filter((item) => item.selected).map((item) => item.value); - return toPrompt("MultiselectPrompt", args, { - onAbort: toSelected, - onSubmit: toSelected - }); - }; - $.autocompleteMultiselect = (args) => { - args.choices = [].concat(args.choices || []); - const toSelected = (items) => items.filter((item) => item.selected).map((item) => item.value); - return toPrompt("AutocompleteMultiselectPrompt", args, { - onAbort: toSelected, - onSubmit: toSelected - }); - }; - var byTitle = (input, choices) => Promise.resolve(choices.filter((item) => item.title.slice(0, input.length).toLowerCase() === input.toLowerCase())); - $.autocomplete = (args) => { - args.suggest = args.suggest || byTitle; - args.choices = [].concat(args.choices || []); - return toPrompt("AutocompletePrompt", args); - }; -}); - -// node_modules/prompts/dist/index.js -var require_dist2 = __commonJS((exports, module) => { - function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols2 = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols2 = symbols2.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - keys.push.apply(keys, symbols2); - } - return keys; - } - function _objectSpread(target) { - for (var i = 1;i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - ownKeys(Object(source), true).forEach(function(key2) { - _defineProperty(target, key2, source[key2]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function(key2) { - Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2)); - }); - } - } - return target; - } - function _defineProperty(obj, key2, value) { - if (key2 in obj) { - Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true }); - } else { - obj[key2] = value; - } - return obj; - } - function _createForOfIteratorHelper(o, allowArrayLike) { - var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; - if (!it) { - if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { - if (it) - o = it; - var i = 0; - var F = function F() { - }; - return { s: F, n: function n() { - if (i >= o.length) - return { done: true }; - return { done: false, value: o[i++] }; - }, e: function e(_e) { - throw _e; - }, f: F }; - } - throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); - } - var normalCompletion = true, didErr = false, err; - return { s: function s() { - it = it.call(o); - }, n: function n() { - var step = it.next(); - normalCompletion = step.done; - return step; - }, e: function e(_e2) { - didErr = true; - err = _e2; - }, f: function f() { - try { - if (!normalCompletion && it.return != null) - it.return(); - } finally { - if (didErr) - throw err; - } - } }; - } - function _unsupportedIterableToArray(o, minLen) { - if (!o) - return; - if (typeof o === "string") - return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) - n = o.constructor.name; - if (n === "Map" || n === "Set") - return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) - return _arrayLikeToArray(o, minLen); - } - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) - len = arr.length; - for (var i = 0, arr2 = new Array(len);i < len; i++) - arr2[i] = arr[i]; - return arr2; - } - function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key2, arg) { - try { - var info = gen[key2](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } - } - function _asyncToGenerator(fn) { - return function() { - var self2 = this, args = arguments; - return new Promise(function(resolve, reject) { - var gen = fn.apply(self2, args); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; - } - var prompts = require_prompts(); - var passOn = ["suggest", "format", "onState", "validate", "onRender", "type"]; - var noop = () => { - }; - function prompt2() { - return _prompt.apply(this, arguments); - } - function _prompt() { - _prompt = _asyncToGenerator(function* (questions = [], { - onSubmit = noop, - onCancel = noop - } = {}) { - const answers = {}; - const override2 = prompt2._override || {}; - questions = [].concat(questions); - let answer, question, quit, name, type, lastPrompt; - const getFormattedAnswer = /* @__PURE__ */ function() { - var _ref = _asyncToGenerator(function* (question2, answer2, skipValidation = false) { - if (!skipValidation && question2.validate && question2.validate(answer2) !== true) { - return; - } - return question2.format ? yield question2.format(answer2, answers) : answer2; - }); - return function getFormattedAnswer(_x, _x2) { - return _ref.apply(this, arguments); - }; - }(); - var _iterator = _createForOfIteratorHelper(questions), _step; - try { - for (_iterator.s();!(_step = _iterator.n()).done; ) { - question = _step.value; - var _question = question; - name = _question.name; - type = _question.type; - if (typeof type === "function") { - type = yield type(answer, _objectSpread({}, answers), question); - question["type"] = type; - } - if (!type) - continue; - for (let key2 in question) { - if (passOn.includes(key2)) - continue; - let value = question[key2]; - question[key2] = typeof value === "function" ? yield value(answer, _objectSpread({}, answers), lastPrompt) : value; - } - lastPrompt = question; - if (typeof question.message !== "string") { - throw new Error("prompt message is required"); - } - var _question2 = question; - name = _question2.name; - type = _question2.type; - if (prompts[type] === undefined) { - throw new Error(`prompt type (${type}) is not defined`); - } - if (override2[question.name] !== undefined) { - answer = yield getFormattedAnswer(question, override2[question.name]); - if (answer !== undefined) { - answers[name] = answer; - continue; - } - } - try { - answer = prompt2._injected ? getInjectedAnswer(prompt2._injected, question.initial) : yield prompts[type](question); - answers[name] = answer = yield getFormattedAnswer(question, answer, true); - quit = yield onSubmit(question, answer, answers); - } catch (err) { - quit = !(yield onCancel(question, answers)); - } - if (quit) - return answers; - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - return answers; - }); - return _prompt.apply(this, arguments); - } - function getInjectedAnswer(injected, deafultValue) { - const answer = injected.shift(); - if (answer instanceof Error) { - throw answer; - } - return answer === undefined ? deafultValue : answer; - } - function inject(answers) { - prompt2._injected = (prompt2._injected || []).concat(answers); - } - function override(answers) { - prompt2._override = Object.assign({}, answers); - } - module.exports = Object.assign(prompt2, { - prompt: prompt2, - prompts, - inject, - override - }); -}); - -// node_modules/prompts/lib/util/action.js -var require_action2 = __commonJS((exports, module) => { - module.exports = (key2, isSelect) => { - if (key2.meta && key2.name !== "escape") - return; - if (key2.ctrl) { - if (key2.name === "a") - return "first"; - if (key2.name === "c") - return "abort"; - if (key2.name === "d") - return "abort"; - if (key2.name === "e") - return "last"; - if (key2.name === "g") - return "reset"; - } - if (isSelect) { - if (key2.name === "j") - return "down"; - if (key2.name === "k") - return "up"; - } - if (key2.name === "return") - return "submit"; - if (key2.name === "enter") - return "submit"; - if (key2.name === "backspace") - return "delete"; - if (key2.name === "delete") - return "deleteForward"; - if (key2.name === "abort") - return "abort"; - if (key2.name === "escape") - return "exit"; - if (key2.name === "tab") - return "next"; - if (key2.name === "pagedown") - return "nextPage"; - if (key2.name === "pageup") - return "prevPage"; - if (key2.name === "home") - return "home"; - if (key2.name === "end") - return "end"; - if (key2.name === "up") - return "up"; - if (key2.name === "down") - return "down"; - if (key2.name === "right") - return "right"; - if (key2.name === "left") - return "left"; - return false; - }; -}); - -// node_modules/prompts/lib/util/strip.js -var require_strip2 = __commonJS((exports, module) => { - module.exports = (str) => { - const pattern = [ - "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", - "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))" - ].join("|"); - const RGX = new RegExp(pattern, "g"); - return typeof str === "string" ? str.replace(RGX, "") : str; - }; -}); - -// node_modules/prompts/lib/util/clear.js -var require_clear2 = __commonJS((exports, module) => { - var strip = require_strip2(); - var { erase, cursor } = require_src(); - var width = (str) => [...strip(str)].length; - module.exports = function(prompt2, perLine) { - if (!perLine) - return erase.line + cursor.to(0); - let rows = 0; - const lines2 = prompt2.split(/\r?\n/); - for (let line of lines2) { - rows += 1 + Math.floor(Math.max(width(line) - 1, 0) / perLine); - } - return erase.lines(rows); - }; -}); - -// node_modules/prompts/lib/util/figures.js -var require_figures2 = __commonJS((exports, module) => { - var main2 = { - arrowUp: "ā†‘", - arrowDown: "ā†“", - arrowLeft: "ā†", - arrowRight: "ā†’", - radioOn: "ā—‰", - radioOff: "ā—Æ", - tick: "āœ”", - cross: "āœ–", - ellipsis: "ā€¦", - pointerSmall: "ā€ŗ", - line: "ā”€", - pointer: "āÆ" - }; - var win = { - arrowUp: main2.arrowUp, - arrowDown: main2.arrowDown, - arrowLeft: main2.arrowLeft, - arrowRight: main2.arrowRight, - radioOn: "(*)", - radioOff: "( )", - tick: "āˆš", - cross: "Ɨ", - ellipsis: "...", - pointerSmall: "Ā»", - line: "ā”€", - pointer: ">" - }; - var figures2 = process.platform === "win32" ? win : main2; - module.exports = figures2; -}); - -// node_modules/prompts/lib/util/style.js -var require_style2 = __commonJS((exports, module) => { - var c = require_kleur(); - var figures2 = require_figures2(); - var styles3 = Object.freeze({ - password: { scale: 1, render: (input) => "*".repeat(input.length) }, - emoji: { scale: 2, render: (input) => "\uD83D\uDE03".repeat(input.length) }, - invisible: { scale: 0, render: (input) => "" }, - default: { scale: 1, render: (input) => `${input}` } - }); - var render = (type) => styles3[type] || styles3.default; - var symbols2 = Object.freeze({ - aborted: c.red(figures2.cross), - done: c.green(figures2.tick), - exited: c.yellow(figures2.cross), - default: c.cyan("?") - }); - var symbol = (done, aborted, exited) => aborted ? symbols2.aborted : exited ? symbols2.exited : done ? symbols2.done : symbols2.default; - var delimiter = (completing) => c.gray(completing ? figures2.ellipsis : figures2.pointerSmall); - var item = (expandable, expanded) => c.gray(expandable ? expanded ? figures2.pointerSmall : "+" : figures2.line); - module.exports = { - styles: styles3, - render, - symbols: symbols2, - symbol, - delimiter, - item - }; -}); - -// node_modules/prompts/lib/util/lines.js -var require_lines2 = __commonJS((exports, module) => { - var strip = require_strip2(); - module.exports = function(msg, perLine) { - let lines2 = String(strip(msg) || "").split(/\r?\n/); - if (!perLine) - return lines2.length; - return lines2.map((l) => Math.ceil(l.length / perLine)).reduce((a, b) => a + b); - }; -}); - -// node_modules/prompts/lib/util/wrap.js -var require_wrap2 = __commonJS((exports, module) => { - module.exports = (msg, opts = {}) => { - const tab = Number.isSafeInteger(parseInt(opts.margin)) ? new Array(parseInt(opts.margin)).fill(" ").join("") : opts.margin || ""; - const width = opts.width; - return (msg || "").split(/\r?\n/g).map((line) => line.split(/\s+/g).reduce((arr, w) => { - if (w.length + tab.length >= width || arr[arr.length - 1].length + w.length + 1 < width) - arr[arr.length - 1] += ` ${w}`; - else - arr.push(`${tab}${w}`); - return arr; - }, [tab]).join(` -`)).join(` -`); - }; -}); - -// node_modules/prompts/lib/util/entriesToDisplay.js -var require_entriesToDisplay2 = __commonJS((exports, module) => { - module.exports = (cursor, total, maxVisible) => { - maxVisible = maxVisible || total; - let startIndex = Math.min(total - maxVisible, cursor - Math.floor(maxVisible / 2)); - if (startIndex < 0) - startIndex = 0; - let endIndex = Math.min(startIndex + maxVisible, total); - return { startIndex, endIndex }; - }; -}); - -// node_modules/prompts/lib/util/index.js -var require_util6 = __commonJS((exports, module) => { - module.exports = { - action: require_action2(), - clear: require_clear2(), - style: require_style2(), - strip: require_strip2(), - figures: require_figures2(), - lines: require_lines2(), - wrap: require_wrap2(), - entriesToDisplay: require_entriesToDisplay2() - }; -}); - -// node_modules/prompts/lib/elements/prompt.js -var require_prompt2 = __commonJS((exports, module) => { - var readline4 = __require("readline"); - var { action } = require_util6(); - var EventEmitter = __require("events"); - var { beep, cursor } = require_src(); - var color = require_kleur(); - - class Prompt extends EventEmitter { - constructor(opts = {}) { - super(); - this.firstRender = true; - this.in = opts.stdin || process.stdin; - this.out = opts.stdout || process.stdout; - this.onRender = (opts.onRender || (() => { - return; - })).bind(this); - const rl = readline4.createInterface({ input: this.in, escapeCodeTimeout: 50 }); - readline4.emitKeypressEvents(this.in, rl); - if (this.in.isTTY) - this.in.setRawMode(true); - const isSelect = ["SelectPrompt", "MultiselectPrompt"].indexOf(this.constructor.name) > -1; - const keypress = (str, key2) => { - let a = action(key2, isSelect); - if (a === false) { - this._ && this._(str, key2); - } else if (typeof this[a] === "function") { - this[a](key2); - } else { - this.bell(); - } - }; - this.close = () => { - this.out.write(cursor.show); - this.in.removeListener("keypress", keypress); - if (this.in.isTTY) - this.in.setRawMode(false); - rl.close(); - this.emit(this.aborted ? "abort" : this.exited ? "exit" : "submit", this.value); - this.closed = true; - }; - this.in.on("keypress", keypress); - } - fire() { - this.emit("state", { - value: this.value, - aborted: !!this.aborted, - exited: !!this.exited - }); - } - bell() { - this.out.write(beep); - } - render() { - this.onRender(color); - if (this.firstRender) - this.firstRender = false; - } - } - module.exports = Prompt; -}); - -// node_modules/prompts/lib/elements/text.js -var require_text2 = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt2(); - var { erase, cursor } = require_src(); - var { style, clear, lines: lines2, figures: figures2 } = require_util6(); - - class TextPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.transform = style.render(opts.style); - this.scale = this.transform.scale; - this.msg = opts.message; - this.initial = opts.initial || ``; - this.validator = opts.validate || (() => true); - this.value = ``; - this.errorMsg = opts.error || `Please Enter A Valid Value`; - this.cursor = Number(!!this.initial); - this.cursorOffset = 0; - this.clear = clear(``, this.out.columns); - this.render(); - } - set value(v) { - if (!v && this.initial) { - this.placeholder = true; - this.rendered = color.gray(this.transform.render(this.initial)); - } else { - this.placeholder = false; - this.rendered = this.transform.render(v); - } - this._value = v; - this.fire(); - } - get value() { - return this._value; - } - reset() { - this.value = ``; - this.cursor = Number(!!this.initial); - this.cursorOffset = 0; - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.value = this.value || this.initial; - this.done = this.aborted = true; - this.error = false; - this.red = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - async validate() { - let valid = await this.validator(this.value); - if (typeof valid === `string`) { - this.errorMsg = valid; - valid = false; - } - this.error = !valid; - } - async submit() { - this.value = this.value || this.initial; - this.cursorOffset = 0; - this.cursor = this.rendered.length; - await this.validate(); - if (this.error) { - this.red = true; - this.fire(); - this.render(); - return; - } - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - next() { - if (!this.placeholder) - return this.bell(); - this.value = this.initial; - this.cursor = this.rendered.length; - this.fire(); - this.render(); - } - moveCursor(n) { - if (this.placeholder) - return; - this.cursor = this.cursor + n; - this.cursorOffset += n; - } - _(c, key2) { - let s1 = this.value.slice(0, this.cursor); - let s2 = this.value.slice(this.cursor); - this.value = `${s1}${c}${s2}`; - this.red = false; - this.cursor = this.placeholder ? 0 : s1.length + 1; - this.render(); - } - delete() { - if (this.isCursorAtStart()) - return this.bell(); - let s1 = this.value.slice(0, this.cursor - 1); - let s2 = this.value.slice(this.cursor); - this.value = `${s1}${s2}`; - this.red = false; - if (this.isCursorAtStart()) { - this.cursorOffset = 0; - } else { - this.cursorOffset++; - this.moveCursor(-1); - } - this.render(); - } - deleteForward() { - if (this.cursor * this.scale >= this.rendered.length || this.placeholder) - return this.bell(); - let s1 = this.value.slice(0, this.cursor); - let s2 = this.value.slice(this.cursor + 1); - this.value = `${s1}${s2}`; - this.red = false; - if (this.isCursorAtEnd()) { - this.cursorOffset = 0; - } else { - this.cursorOffset++; - } - this.render(); - } - first() { - this.cursor = 0; - this.render(); - } - last() { - this.cursor = this.value.length; - this.render(); - } - left() { - if (this.cursor <= 0 || this.placeholder) - return this.bell(); - this.moveCursor(-1); - this.render(); - } - right() { - if (this.cursor * this.scale >= this.rendered.length || this.placeholder) - return this.bell(); - this.moveCursor(1); - this.render(); - } - isCursorAtStart() { - return this.cursor === 0 || this.placeholder && this.cursor === 1; - } - isCursorAtEnd() { - return this.cursor === this.rendered.length || this.placeholder && this.cursor === this.rendered.length + 1; - } - render() { - if (this.closed) - return; - if (!this.firstRender) { - if (this.outputError) - this.out.write(cursor.down(lines2(this.outputError, this.out.columns) - 1) + clear(this.outputError, this.out.columns)); - this.out.write(clear(this.outputText, this.out.columns)); - } - super.render(); - this.outputError = ""; - this.outputText = [ - style.symbol(this.done, this.aborted), - color.bold(this.msg), - style.delimiter(this.done), - this.red ? color.red(this.rendered) : this.rendered - ].join(` `); - if (this.error) { - this.outputError += this.errorMsg.split(` -`).reduce((a, l, i) => a + ` -${i ? " " : figures2.pointerSmall} ${color.red().italic(l)}`, ``); - } - this.out.write(erase.line + cursor.to(0) + this.outputText + cursor.save + this.outputError + cursor.restore + cursor.move(this.cursorOffset, 0)); - } - } - module.exports = TextPrompt; -}); - -// node_modules/prompts/lib/elements/select.js -var require_select2 = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt2(); - var { style, clear, figures: figures2, wrap, entriesToDisplay } = require_util6(); - var { cursor } = require_src(); - - class SelectPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.hint = opts.hint || "- Use arrow-keys. Return to submit."; - this.warn = opts.warn || "- This option is disabled"; - this.cursor = opts.initial || 0; - this.choices = opts.choices.map((ch, idx) => { - if (typeof ch === "string") - ch = { title: ch, value: idx }; - return { - title: ch && (ch.title || ch.value || ch), - value: ch && (ch.value === undefined ? idx : ch.value), - description: ch && ch.description, - selected: ch && ch.selected, - disabled: ch && ch.disabled - }; - }); - this.optionsPerPage = opts.optionsPerPage || 10; - this.value = (this.choices[this.cursor] || {}).value; - this.clear = clear("", this.out.columns); - this.render(); - } - moveCursor(n) { - this.cursor = n; - this.value = this.choices[n].value; - this.fire(); - } - reset() { - this.moveCursor(0); - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - if (!this.selection.disabled) { - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } else - this.bell(); - } - first() { - this.moveCursor(0); - this.render(); - } - last() { - this.moveCursor(this.choices.length - 1); - this.render(); - } - up() { - if (this.cursor === 0) { - this.moveCursor(this.choices.length - 1); - } else { - this.moveCursor(this.cursor - 1); - } - this.render(); - } - down() { - if (this.cursor === this.choices.length - 1) { - this.moveCursor(0); - } else { - this.moveCursor(this.cursor + 1); - } - this.render(); - } - next() { - this.moveCursor((this.cursor + 1) % this.choices.length); - this.render(); - } - _(c, key2) { - if (c === " ") - return this.submit(); - } - get selection() { - return this.choices[this.cursor]; - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - let { startIndex, endIndex } = entriesToDisplay(this.cursor, this.choices.length, this.optionsPerPage); - this.outputText = [ - style.symbol(this.done, this.aborted), - color.bold(this.msg), - style.delimiter(false), - this.done ? this.selection.title : this.selection.disabled ? color.yellow(this.warn) : color.gray(this.hint) - ].join(" "); - if (!this.done) { - this.outputText += ` -`; - for (let i = startIndex;i < endIndex; i++) { - let title, prefix, desc = "", v = this.choices[i]; - if (i === startIndex && startIndex > 0) { - prefix = figures2.arrowUp; - } else if (i === endIndex - 1 && endIndex < this.choices.length) { - prefix = figures2.arrowDown; - } else { - prefix = " "; - } - if (v.disabled) { - title = this.cursor === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title); - prefix = (this.cursor === i ? color.bold().gray(figures2.pointer) + " " : " ") + prefix; - } else { - title = this.cursor === i ? color.cyan().underline(v.title) : v.title; - prefix = (this.cursor === i ? color.cyan(figures2.pointer) + " " : " ") + prefix; - if (v.description && this.cursor === i) { - desc = ` - ${v.description}`; - if (prefix.length + title.length + desc.length >= this.out.columns || v.description.split(/\r?\n/).length > 1) { - desc = ` -` + wrap(v.description, { margin: 3, width: this.out.columns }); - } - } - } - this.outputText += `${prefix} ${title}${color.gray(desc)} -`; - } - } - this.out.write(this.outputText); - } - } - module.exports = SelectPrompt; -}); - -// node_modules/prompts/lib/elements/toggle.js -var require_toggle2 = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt2(); - var { style, clear } = require_util6(); - var { cursor, erase } = require_src(); - - class TogglePrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.value = !!opts.initial; - this.active = opts.active || "on"; - this.inactive = opts.inactive || "off"; - this.initialValue = this.value; - this.render(); - } - reset() { - this.value = this.initialValue; - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - deactivate() { - if (this.value === false) - return this.bell(); - this.value = false; - this.render(); - } - activate() { - if (this.value === true) - return this.bell(); - this.value = true; - this.render(); - } - delete() { - this.deactivate(); - } - left() { - this.deactivate(); - } - right() { - this.activate(); - } - down() { - this.deactivate(); - } - up() { - this.activate(); - } - next() { - this.value = !this.value; - this.fire(); - this.render(); - } - _(c, key2) { - if (c === " ") { - this.value = !this.value; - } else if (c === "1") { - this.value = true; - } else if (c === "0") { - this.value = false; - } else - return this.bell(); - this.render(); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - this.outputText = [ - style.symbol(this.done, this.aborted), - color.bold(this.msg), - style.delimiter(this.done), - this.value ? this.inactive : color.cyan().underline(this.inactive), - color.gray("/"), - this.value ? color.cyan().underline(this.active) : this.active - ].join(" "); - this.out.write(erase.line + cursor.to(0) + this.outputText); - } - } - module.exports = TogglePrompt; -}); - -// node_modules/prompts/lib/dateparts/datepart.js -var require_datepart2 = __commonJS((exports, module) => { - class DatePart { - constructor({ token, date, parts, locales }) { - this.token = token; - this.date = date || new Date; - this.parts = parts || [this]; - this.locales = locales || {}; - } - up() { - } - down() { - } - next() { - const currentIdx = this.parts.indexOf(this); - return this.parts.find((part, idx) => idx > currentIdx && part instanceof DatePart); - } - setTo(val) { - } - prev() { - let parts = [].concat(this.parts).reverse(); - const currentIdx = parts.indexOf(this); - return parts.find((part, idx) => idx > currentIdx && part instanceof DatePart); - } - toString() { - return String(this.date); - } - } - module.exports = DatePart; -}); - -// node_modules/prompts/lib/dateparts/meridiem.js -var require_meridiem2 = __commonJS((exports, module) => { - var DatePart = require_datepart2(); - - class Meridiem extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setHours((this.date.getHours() + 12) % 24); - } - down() { - this.up(); - } - toString() { - let meridiem = this.date.getHours() > 12 ? "pm" : "am"; - return /\A/.test(this.token) ? meridiem.toUpperCase() : meridiem; - } - } - module.exports = Meridiem; -}); - -// node_modules/prompts/lib/dateparts/day.js -var require_day2 = __commonJS((exports, module) => { - var DatePart = require_datepart2(); - var pos = (n) => { - n = n % 10; - return n === 1 ? "st" : n === 2 ? "nd" : n === 3 ? "rd" : "th"; - }; - - class Day extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setDate(this.date.getDate() + 1); - } - down() { - this.date.setDate(this.date.getDate() - 1); - } - setTo(val) { - this.date.setDate(parseInt(val.substr(-2))); - } - toString() { - let date = this.date.getDate(); - let day = this.date.getDay(); - return this.token === "DD" ? String(date).padStart(2, "0") : this.token === "Do" ? date + pos(date) : this.token === "d" ? day + 1 : this.token === "ddd" ? this.locales.weekdaysShort[day] : this.token === "dddd" ? this.locales.weekdays[day] : date; - } - } - module.exports = Day; -}); - -// node_modules/prompts/lib/dateparts/hours.js -var require_hours2 = __commonJS((exports, module) => { - var DatePart = require_datepart2(); - - class Hours extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setHours(this.date.getHours() + 1); - } - down() { - this.date.setHours(this.date.getHours() - 1); - } - setTo(val) { - this.date.setHours(parseInt(val.substr(-2))); - } - toString() { - let hours = this.date.getHours(); - if (/h/.test(this.token)) - hours = hours % 12 || 12; - return this.token.length > 1 ? String(hours).padStart(2, "0") : hours; - } - } - module.exports = Hours; -}); - -// node_modules/prompts/lib/dateparts/milliseconds.js -var require_milliseconds2 = __commonJS((exports, module) => { - var DatePart = require_datepart2(); - - class Milliseconds extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setMilliseconds(this.date.getMilliseconds() + 1); - } - down() { - this.date.setMilliseconds(this.date.getMilliseconds() - 1); - } - setTo(val) { - this.date.setMilliseconds(parseInt(val.substr(-this.token.length))); - } - toString() { - return String(this.date.getMilliseconds()).padStart(4, "0").substr(0, this.token.length); - } - } - module.exports = Milliseconds; -}); - -// node_modules/prompts/lib/dateparts/minutes.js -var require_minutes2 = __commonJS((exports, module) => { - var DatePart = require_datepart2(); - - class Minutes extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setMinutes(this.date.getMinutes() + 1); - } - down() { - this.date.setMinutes(this.date.getMinutes() - 1); - } - setTo(val) { - this.date.setMinutes(parseInt(val.substr(-2))); - } - toString() { - let m = this.date.getMinutes(); - return this.token.length > 1 ? String(m).padStart(2, "0") : m; - } - } - module.exports = Minutes; -}); - -// node_modules/prompts/lib/dateparts/month.js -var require_month2 = __commonJS((exports, module) => { - var DatePart = require_datepart2(); - - class Month extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setMonth(this.date.getMonth() + 1); - } - down() { - this.date.setMonth(this.date.getMonth() - 1); - } - setTo(val) { - val = parseInt(val.substr(-2)) - 1; - this.date.setMonth(val < 0 ? 0 : val); - } - toString() { - let month = this.date.getMonth(); - let tl = this.token.length; - return tl === 2 ? String(month + 1).padStart(2, "0") : tl === 3 ? this.locales.monthsShort[month] : tl === 4 ? this.locales.months[month] : String(month + 1); - } - } - module.exports = Month; -}); - -// node_modules/prompts/lib/dateparts/seconds.js -var require_seconds2 = __commonJS((exports, module) => { - var DatePart = require_datepart2(); - - class Seconds extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setSeconds(this.date.getSeconds() + 1); - } - down() { - this.date.setSeconds(this.date.getSeconds() - 1); - } - setTo(val) { - this.date.setSeconds(parseInt(val.substr(-2))); - } - toString() { - let s = this.date.getSeconds(); - return this.token.length > 1 ? String(s).padStart(2, "0") : s; - } - } - module.exports = Seconds; -}); - -// node_modules/prompts/lib/dateparts/year.js -var require_year2 = __commonJS((exports, module) => { - var DatePart = require_datepart2(); - - class Year extends DatePart { - constructor(opts = {}) { - super(opts); - } - up() { - this.date.setFullYear(this.date.getFullYear() + 1); - } - down() { - this.date.setFullYear(this.date.getFullYear() - 1); - } - setTo(val) { - this.date.setFullYear(val.substr(-4)); - } - toString() { - let year = String(this.date.getFullYear()).padStart(4, "0"); - return this.token.length === 2 ? year.substr(-2) : year; - } - } - module.exports = Year; -}); - -// node_modules/prompts/lib/dateparts/index.js -var require_dateparts2 = __commonJS((exports, module) => { - module.exports = { - DatePart: require_datepart2(), - Meridiem: require_meridiem2(), - Day: require_day2(), - Hours: require_hours2(), - Milliseconds: require_milliseconds2(), - Minutes: require_minutes2(), - Month: require_month2(), - Seconds: require_seconds2(), - Year: require_year2() - }; -}); - -// node_modules/prompts/lib/elements/date.js -var require_date2 = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt2(); - var { style, clear, figures: figures2 } = require_util6(); - var { erase, cursor } = require_src(); - var { DatePart, Meridiem, Day, Hours, Milliseconds, Minutes, Month, Seconds, Year } = require_dateparts2(); - var regex2 = /\\(.)|"((?:\\["\\]|[^"])+)"|(D[Do]?|d{3,4}|d)|(M{1,4})|(YY(?:YY)?)|([aA])|([Hh]{1,2})|(m{1,2})|(s{1,2})|(S{1,4})|./g; - var regexGroups = { - 1: ({ token }) => token.replace(/\\(.)/g, "$1"), - 2: (opts) => new Day(opts), - 3: (opts) => new Month(opts), - 4: (opts) => new Year(opts), - 5: (opts) => new Meridiem(opts), - 6: (opts) => new Hours(opts), - 7: (opts) => new Minutes(opts), - 8: (opts) => new Seconds(opts), - 9: (opts) => new Milliseconds(opts) - }; - var dfltLocales = { - months: "January,February,March,April,May,June,July,August,September,October,November,December".split(","), - monthsShort: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","), - weekdays: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","), - weekdaysShort: "Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(",") - }; - - class DatePrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.cursor = 0; - this.typed = ""; - this.locales = Object.assign(dfltLocales, opts.locales); - this._date = opts.initial || new Date; - this.errorMsg = opts.error || "Please Enter A Valid Value"; - this.validator = opts.validate || (() => true); - this.mask = opts.mask || "YYYY-MM-DD HH:mm:ss"; - this.clear = clear("", this.out.columns); - this.render(); - } - get value() { - return this.date; - } - get date() { - return this._date; - } - set date(date) { - if (date) - this._date.setTime(date.getTime()); - } - set mask(mask) { - let result; - this.parts = []; - while (result = regex2.exec(mask)) { - let match = result.shift(); - let idx = result.findIndex((gr) => gr != null); - this.parts.push(idx in regexGroups ? regexGroups[idx]({ token: result[idx] || match, date: this.date, parts: this.parts, locales: this.locales }) : result[idx] || match); - } - let parts = this.parts.reduce((arr, i) => { - if (typeof i === "string" && typeof arr[arr.length - 1] === "string") - arr[arr.length - 1] += i; - else - arr.push(i); - return arr; - }, []); - this.parts.splice(0); - this.parts.push(...parts); - this.reset(); - } - moveCursor(n) { - this.typed = ""; - this.cursor = n; - this.fire(); - } - reset() { - this.moveCursor(this.parts.findIndex((p) => p instanceof DatePart)); - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.error = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - async validate() { - let valid = await this.validator(this.value); - if (typeof valid === "string") { - this.errorMsg = valid; - valid = false; - } - this.error = !valid; - } - async submit() { - await this.validate(); - if (this.error) { - this.color = "red"; - this.fire(); - this.render(); - return; - } - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - up() { - this.typed = ""; - this.parts[this.cursor].up(); - this.render(); - } - down() { - this.typed = ""; - this.parts[this.cursor].down(); - this.render(); - } - left() { - let prev = this.parts[this.cursor].prev(); - if (prev == null) - return this.bell(); - this.moveCursor(this.parts.indexOf(prev)); - this.render(); - } - right() { - let next = this.parts[this.cursor].next(); - if (next == null) - return this.bell(); - this.moveCursor(this.parts.indexOf(next)); - this.render(); - } - next() { - let next = this.parts[this.cursor].next(); - this.moveCursor(next ? this.parts.indexOf(next) : this.parts.findIndex((part) => part instanceof DatePart)); - this.render(); - } - _(c) { - if (/\d/.test(c)) { - this.typed += c; - this.parts[this.cursor].setTo(this.typed); - this.render(); - } - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - this.outputText = [ - style.symbol(this.done, this.aborted), - color.bold(this.msg), - style.delimiter(false), - this.parts.reduce((arr, p, idx) => arr.concat(idx === this.cursor && !this.done ? color.cyan().underline(p.toString()) : p), []).join("") - ].join(" "); - if (this.error) { - this.outputText += this.errorMsg.split(` -`).reduce((a, l, i) => a + ` -${i ? ` ` : figures2.pointerSmall} ${color.red().italic(l)}`, ``); - } - this.out.write(erase.line + cursor.to(0) + this.outputText); - } - } - module.exports = DatePrompt; -}); - -// node_modules/prompts/lib/elements/number.js -var require_number2 = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt2(); - var { cursor, erase } = require_src(); - var { style, figures: figures2, clear, lines: lines2 } = require_util6(); - var isNumber = /[0-9]/; - var isDef = (any) => any !== undefined; - var round = (number, precision) => { - let factor = Math.pow(10, precision); - return Math.round(number * factor) / factor; - }; - - class NumberPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.transform = style.render(opts.style); - this.msg = opts.message; - this.initial = isDef(opts.initial) ? opts.initial : ""; - this.float = !!opts.float; - this.round = opts.round || 2; - this.inc = opts.increment || 1; - this.min = isDef(opts.min) ? opts.min : -Infinity; - this.max = isDef(opts.max) ? opts.max : Infinity; - this.errorMsg = opts.error || `Please Enter A Valid Value`; - this.validator = opts.validate || (() => true); - this.color = `cyan`; - this.value = ``; - this.typed = ``; - this.lastHit = 0; - this.render(); - } - set value(v) { - if (!v && v !== 0) { - this.placeholder = true; - this.rendered = color.gray(this.transform.render(`${this.initial}`)); - this._value = ``; - } else { - this.placeholder = false; - this.rendered = this.transform.render(`${round(v, this.round)}`); - this._value = round(v, this.round); - } - this.fire(); - } - get value() { - return this._value; - } - parse(x) { - return this.float ? parseFloat(x) : parseInt(x); - } - valid(c) { - return c === `-` || c === `.` && this.float || isNumber.test(c); - } - reset() { - this.typed = ``; - this.value = ``; - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - let x = this.value; - this.value = x !== `` ? x : this.initial; - this.done = this.aborted = true; - this.error = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - async validate() { - let valid = await this.validator(this.value); - if (typeof valid === `string`) { - this.errorMsg = valid; - valid = false; - } - this.error = !valid; - } - async submit() { - await this.validate(); - if (this.error) { - this.color = `red`; - this.fire(); - this.render(); - return; - } - let x = this.value; - this.value = x !== `` ? x : this.initial; - this.done = true; - this.aborted = false; - this.error = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - up() { - this.typed = ``; - if (this.value === "") { - this.value = this.min - this.inc; - } - if (this.value >= this.max) - return this.bell(); - this.value += this.inc; - this.color = `cyan`; - this.fire(); - this.render(); - } - down() { - this.typed = ``; - if (this.value === "") { - this.value = this.min + this.inc; - } - if (this.value <= this.min) - return this.bell(); - this.value -= this.inc; - this.color = `cyan`; - this.fire(); - this.render(); - } - delete() { - let val = this.value.toString(); - if (val.length === 0) - return this.bell(); - this.value = this.parse(val = val.slice(0, -1)) || ``; - if (this.value !== "" && this.value < this.min) { - this.value = this.min; - } - this.color = `cyan`; - this.fire(); - this.render(); - } - next() { - this.value = this.initial; - this.fire(); - this.render(); - } - _(c, key2) { - if (!this.valid(c)) - return this.bell(); - const now = Date.now(); - if (now - this.lastHit > 1000) - this.typed = ``; - this.typed += c; - this.lastHit = now; - this.color = `cyan`; - if (c === `.`) - return this.fire(); - this.value = Math.min(this.parse(this.typed), this.max); - if (this.value > this.max) - this.value = this.max; - if (this.value < this.min) - this.value = this.min; - this.fire(); - this.render(); - } - render() { - if (this.closed) - return; - if (!this.firstRender) { - if (this.outputError) - this.out.write(cursor.down(lines2(this.outputError, this.out.columns) - 1) + clear(this.outputError, this.out.columns)); - this.out.write(clear(this.outputText, this.out.columns)); - } - super.render(); - this.outputError = ""; - this.outputText = [ - style.symbol(this.done, this.aborted), - color.bold(this.msg), - style.delimiter(this.done), - !this.done || !this.done && !this.placeholder ? color[this.color]().underline(this.rendered) : this.rendered - ].join(` `); - if (this.error) { - this.outputError += this.errorMsg.split(` -`).reduce((a, l, i) => a + ` -${i ? ` ` : figures2.pointerSmall} ${color.red().italic(l)}`, ``); - } - this.out.write(erase.line + cursor.to(0) + this.outputText + cursor.save + this.outputError + cursor.restore); - } - } - module.exports = NumberPrompt; -}); - -// node_modules/prompts/lib/elements/multiselect.js -var require_multiselect2 = __commonJS((exports, module) => { - var color = require_kleur(); - var { cursor } = require_src(); - var Prompt = require_prompt2(); - var { clear, figures: figures2, style, wrap, entriesToDisplay } = require_util6(); - - class MultiselectPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.cursor = opts.cursor || 0; - this.scrollIndex = opts.cursor || 0; - this.hint = opts.hint || ""; - this.warn = opts.warn || "- This option is disabled -"; - this.minSelected = opts.min; - this.showMinError = false; - this.maxChoices = opts.max; - this.instructions = opts.instructions; - this.optionsPerPage = opts.optionsPerPage || 10; - this.value = opts.choices.map((ch, idx) => { - if (typeof ch === "string") - ch = { title: ch, value: idx }; - return { - title: ch && (ch.title || ch.value || ch), - description: ch && ch.description, - value: ch && (ch.value === undefined ? idx : ch.value), - selected: ch && ch.selected, - disabled: ch && ch.disabled - }; - }); - this.clear = clear("", this.out.columns); - if (!opts.overrideRender) { - this.render(); - } - } - reset() { - this.value.map((v) => !v.selected); - this.cursor = 0; - this.fire(); - this.render(); - } - selected() { - return this.value.filter((v) => v.selected); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - const selected = this.value.filter((e) => e.selected); - if (this.minSelected && selected.length < this.minSelected) { - this.showMinError = true; - this.render(); - } else { - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - } - first() { - this.cursor = 0; - this.render(); - } - last() { - this.cursor = this.value.length - 1; - this.render(); - } - next() { - this.cursor = (this.cursor + 1) % this.value.length; - this.render(); - } - up() { - if (this.cursor === 0) { - this.cursor = this.value.length - 1; - } else { - this.cursor--; - } - this.render(); - } - down() { - if (this.cursor === this.value.length - 1) { - this.cursor = 0; - } else { - this.cursor++; - } - this.render(); - } - left() { - this.value[this.cursor].selected = false; - this.render(); - } - right() { - if (this.value.filter((e) => e.selected).length >= this.maxChoices) - return this.bell(); - this.value[this.cursor].selected = true; - this.render(); - } - handleSpaceToggle() { - const v = this.value[this.cursor]; - if (v.selected) { - v.selected = false; - this.render(); - } else if (v.disabled || this.value.filter((e) => e.selected).length >= this.maxChoices) { - return this.bell(); - } else { - v.selected = true; - this.render(); - } - } - toggleAll() { - if (this.maxChoices !== undefined || this.value[this.cursor].disabled) { - return this.bell(); - } - const newSelected = !this.value[this.cursor].selected; - this.value.filter((v) => !v.disabled).forEach((v) => v.selected = newSelected); - this.render(); - } - _(c, key2) { - if (c === " ") { - this.handleSpaceToggle(); - } else if (c === "a") { - this.toggleAll(); - } else { - return this.bell(); - } - } - renderInstructions() { - if (this.instructions === undefined || this.instructions) { - if (typeof this.instructions === "string") { - return this.instructions; - } - return ` -Instructions: -` + ` ${figures2.arrowUp}/${figures2.arrowDown}: Highlight option -` + ` ${figures2.arrowLeft}/${figures2.arrowRight}/[space]: Toggle selection -` + (this.maxChoices === undefined ? ` a: Toggle all -` : "") + ` enter/return: Complete answer`; - } - return ""; - } - renderOption(cursor2, v, i, arrowIndicator) { - const prefix = (v.selected ? color.green(figures2.radioOn) : figures2.radioOff) + " " + arrowIndicator + " "; - let title, desc; - if (v.disabled) { - title = cursor2 === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title); - } else { - title = cursor2 === i ? color.cyan().underline(v.title) : v.title; - if (cursor2 === i && v.description) { - desc = ` - ${v.description}`; - if (prefix.length + title.length + desc.length >= this.out.columns || v.description.split(/\r?\n/).length > 1) { - desc = ` -` + wrap(v.description, { margin: prefix.length, width: this.out.columns }); - } - } - } - return prefix + title + color.gray(desc || ""); - } - paginateOptions(options) { - if (options.length === 0) { - return color.red("No matches for this query."); - } - let { startIndex, endIndex } = entriesToDisplay(this.cursor, options.length, this.optionsPerPage); - let prefix, styledOptions = []; - for (let i = startIndex;i < endIndex; i++) { - if (i === startIndex && startIndex > 0) { - prefix = figures2.arrowUp; - } else if (i === endIndex - 1 && endIndex < options.length) { - prefix = figures2.arrowDown; - } else { - prefix = " "; - } - styledOptions.push(this.renderOption(this.cursor, options[i], i, prefix)); - } - return ` -` + styledOptions.join(` -`); - } - renderOptions(options) { - if (!this.done) { - return this.paginateOptions(options); - } - return ""; - } - renderDoneOrInstructions() { - if (this.done) { - return this.value.filter((e) => e.selected).map((v) => v.title).join(", "); - } - const output = [color.gray(this.hint), this.renderInstructions()]; - if (this.value[this.cursor].disabled) { - output.push(color.yellow(this.warn)); - } - return output.join(" "); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - super.render(); - let prompt2 = [ - style.symbol(this.done, this.aborted), - color.bold(this.msg), - style.delimiter(false), - this.renderDoneOrInstructions() - ].join(" "); - if (this.showMinError) { - prompt2 += color.red(`You must select a minimum of ${this.minSelected} choices.`); - this.showMinError = false; - } - prompt2 += this.renderOptions(this.value); - this.out.write(this.clear + prompt2); - this.clear = clear(prompt2, this.out.columns); - } - } - module.exports = MultiselectPrompt; -}); - -// node_modules/prompts/lib/elements/autocomplete.js -var require_autocomplete2 = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt2(); - var { erase, cursor } = require_src(); - var { style, clear, figures: figures2, wrap, entriesToDisplay } = require_util6(); - var getVal = (arr, i) => arr[i] && (arr[i].value || arr[i].title || arr[i]); - var getTitle = (arr, i) => arr[i] && (arr[i].title || arr[i].value || arr[i]); - var getIndex = (arr, valOrTitle) => { - const index = arr.findIndex((el) => el.value === valOrTitle || el.title === valOrTitle); - return index > -1 ? index : undefined; - }; - - class AutocompletePrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.suggest = opts.suggest; - this.choices = opts.choices; - this.initial = typeof opts.initial === "number" ? opts.initial : getIndex(opts.choices, opts.initial); - this.select = this.initial || opts.cursor || 0; - this.i18n = { noMatches: opts.noMatches || "no matches found" }; - this.fallback = opts.fallback || this.initial; - this.clearFirst = opts.clearFirst || false; - this.suggestions = []; - this.input = ""; - this.limit = opts.limit || 10; - this.cursor = 0; - this.transform = style.render(opts.style); - this.scale = this.transform.scale; - this.render = this.render.bind(this); - this.complete = this.complete.bind(this); - this.clear = clear("", this.out.columns); - this.complete(this.render); - this.render(); - } - set fallback(fb) { - this._fb = Number.isSafeInteger(parseInt(fb)) ? parseInt(fb) : fb; - } - get fallback() { - let choice; - if (typeof this._fb === "number") - choice = this.choices[this._fb]; - else if (typeof this._fb === "string") - choice = { title: this._fb }; - return choice || this._fb || { title: this.i18n.noMatches }; - } - moveSelect(i) { - this.select = i; - if (this.suggestions.length > 0) - this.value = getVal(this.suggestions, i); - else - this.value = this.fallback.value; - this.fire(); - } - async complete(cb) { - const p = this.completing = this.suggest(this.input, this.choices); - const suggestions = await p; - if (this.completing !== p) - return; - this.suggestions = suggestions.map((s, i, arr) => ({ title: getTitle(arr, i), value: getVal(arr, i), description: s.description })); - this.completing = false; - const l = Math.max(suggestions.length - 1, 0); - this.moveSelect(Math.min(l, this.select)); - cb && cb(); - } - reset() { - this.input = ""; - this.complete(() => { - this.moveSelect(this.initial !== undefined ? this.initial : 0); - this.render(); - }); - this.render(); - } - exit() { - if (this.clearFirst && this.input.length > 0) { - this.reset(); - } else { - this.done = this.exited = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - } - abort() { - this.done = this.aborted = true; - this.exited = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - this.done = true; - this.aborted = this.exited = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - _(c, key2) { - let s1 = this.input.slice(0, this.cursor); - let s2 = this.input.slice(this.cursor); - this.input = `${s1}${c}${s2}`; - this.cursor = s1.length + 1; - this.complete(this.render); - this.render(); - } - delete() { - if (this.cursor === 0) - return this.bell(); - let s1 = this.input.slice(0, this.cursor - 1); - let s2 = this.input.slice(this.cursor); - this.input = `${s1}${s2}`; - this.complete(this.render); - this.cursor = this.cursor - 1; - this.render(); - } - deleteForward() { - if (this.cursor * this.scale >= this.rendered.length) - return this.bell(); - let s1 = this.input.slice(0, this.cursor); - let s2 = this.input.slice(this.cursor + 1); - this.input = `${s1}${s2}`; - this.complete(this.render); - this.render(); - } - first() { - this.moveSelect(0); - this.render(); - } - last() { - this.moveSelect(this.suggestions.length - 1); - this.render(); - } - up() { - if (this.select === 0) { - this.moveSelect(this.suggestions.length - 1); - } else { - this.moveSelect(this.select - 1); - } - this.render(); - } - down() { - if (this.select === this.suggestions.length - 1) { - this.moveSelect(0); - } else { - this.moveSelect(this.select + 1); - } - this.render(); - } - next() { - if (this.select === this.suggestions.length - 1) { - this.moveSelect(0); - } else - this.moveSelect(this.select + 1); - this.render(); - } - nextPage() { - this.moveSelect(Math.min(this.select + this.limit, this.suggestions.length - 1)); - this.render(); - } - prevPage() { - this.moveSelect(Math.max(this.select - this.limit, 0)); - this.render(); - } - left() { - if (this.cursor <= 0) - return this.bell(); - this.cursor = this.cursor - 1; - this.render(); - } - right() { - if (this.cursor * this.scale >= this.rendered.length) - return this.bell(); - this.cursor = this.cursor + 1; - this.render(); - } - renderOption(v, hovered, isStart, isEnd) { - let desc; - let prefix = isStart ? figures2.arrowUp : isEnd ? figures2.arrowDown : " "; - let title = hovered ? color.cyan().underline(v.title) : v.title; - prefix = (hovered ? color.cyan(figures2.pointer) + " " : " ") + prefix; - if (v.description) { - desc = ` - ${v.description}`; - if (prefix.length + title.length + desc.length >= this.out.columns || v.description.split(/\r?\n/).length > 1) { - desc = ` -` + wrap(v.description, { margin: 3, width: this.out.columns }); - } - } - return prefix + " " + title + color.gray(desc || ""); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - let { startIndex, endIndex } = entriesToDisplay(this.select, this.choices.length, this.limit); - this.outputText = [ - style.symbol(this.done, this.aborted, this.exited), - color.bold(this.msg), - style.delimiter(this.completing), - this.done && this.suggestions[this.select] ? this.suggestions[this.select].title : this.rendered = this.transform.render(this.input) - ].join(" "); - if (!this.done) { - const suggestions = this.suggestions.slice(startIndex, endIndex).map((item, i) => this.renderOption(item, this.select === i + startIndex, i === 0 && startIndex > 0, i + startIndex === endIndex - 1 && endIndex < this.choices.length)).join(` -`); - this.outputText += ` -` + (suggestions || color.gray(this.fallback.title)); - } - this.out.write(erase.line + cursor.to(0) + this.outputText); - } - } - module.exports = AutocompletePrompt; -}); - -// node_modules/prompts/lib/elements/autocompleteMultiselect.js -var require_autocompleteMultiselect2 = __commonJS((exports, module) => { - var color = require_kleur(); - var { cursor } = require_src(); - var MultiselectPrompt = require_multiselect2(); - var { clear, style, figures: figures2 } = require_util6(); - - class AutocompleteMultiselectPrompt extends MultiselectPrompt { - constructor(opts = {}) { - opts.overrideRender = true; - super(opts); - this.inputValue = ""; - this.clear = clear("", this.out.columns); - this.filteredOptions = this.value; - this.render(); - } - last() { - this.cursor = this.filteredOptions.length - 1; - this.render(); - } - next() { - this.cursor = (this.cursor + 1) % this.filteredOptions.length; - this.render(); - } - up() { - if (this.cursor === 0) { - this.cursor = this.filteredOptions.length - 1; - } else { - this.cursor--; - } - this.render(); - } - down() { - if (this.cursor === this.filteredOptions.length - 1) { - this.cursor = 0; - } else { - this.cursor++; - } - this.render(); - } - left() { - this.filteredOptions[this.cursor].selected = false; - this.render(); - } - right() { - if (this.value.filter((e) => e.selected).length >= this.maxChoices) - return this.bell(); - this.filteredOptions[this.cursor].selected = true; - this.render(); - } - delete() { - if (this.inputValue.length) { - this.inputValue = this.inputValue.substr(0, this.inputValue.length - 1); - this.updateFilteredOptions(); - } - } - updateFilteredOptions() { - const currentHighlight = this.filteredOptions[this.cursor]; - this.filteredOptions = this.value.filter((v) => { - if (this.inputValue) { - if (typeof v.title === "string") { - if (v.title.toLowerCase().includes(this.inputValue.toLowerCase())) { - return true; - } - } - if (typeof v.value === "string") { - if (v.value.toLowerCase().includes(this.inputValue.toLowerCase())) { - return true; - } - } - return false; - } - return true; - }); - const newHighlightIndex = this.filteredOptions.findIndex((v) => v === currentHighlight); - this.cursor = newHighlightIndex < 0 ? 0 : newHighlightIndex; - this.render(); - } - handleSpaceToggle() { - const v = this.filteredOptions[this.cursor]; - if (v.selected) { - v.selected = false; - this.render(); - } else if (v.disabled || this.value.filter((e) => e.selected).length >= this.maxChoices) { - return this.bell(); - } else { - v.selected = true; - this.render(); - } - } - handleInputChange(c) { - this.inputValue = this.inputValue + c; - this.updateFilteredOptions(); - } - _(c, key2) { - if (c === " ") { - this.handleSpaceToggle(); - } else { - this.handleInputChange(c); - } - } - renderInstructions() { - if (this.instructions === undefined || this.instructions) { - if (typeof this.instructions === "string") { - return this.instructions; - } - return ` -Instructions: - ${figures2.arrowUp}/${figures2.arrowDown}: Highlight option - ${figures2.arrowLeft}/${figures2.arrowRight}/[space]: Toggle selection - [a,b,c]/delete: Filter choices - enter/return: Complete answer -`; - } - return ""; - } - renderCurrentInput() { - return ` -Filtered results for: ${this.inputValue ? this.inputValue : color.gray("Enter something to filter")} -`; - } - renderOption(cursor2, v, i) { - let title; - if (v.disabled) - title = cursor2 === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title); - else - title = cursor2 === i ? color.cyan().underline(v.title) : v.title; - return (v.selected ? color.green(figures2.radioOn) : figures2.radioOff) + " " + title; - } - renderDoneOrInstructions() { - if (this.done) { - return this.value.filter((e) => e.selected).map((v) => v.title).join(", "); - } - const output = [color.gray(this.hint), this.renderInstructions(), this.renderCurrentInput()]; - if (this.filteredOptions.length && this.filteredOptions[this.cursor].disabled) { - output.push(color.yellow(this.warn)); - } - return output.join(" "); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - super.render(); - let prompt2 = [ - style.symbol(this.done, this.aborted), - color.bold(this.msg), - style.delimiter(false), - this.renderDoneOrInstructions() - ].join(" "); - if (this.showMinError) { - prompt2 += color.red(`You must select a minimum of ${this.minSelected} choices.`); - this.showMinError = false; - } - prompt2 += this.renderOptions(this.filteredOptions); - this.out.write(this.clear + prompt2); - this.clear = clear(prompt2, this.out.columns); - } - } - module.exports = AutocompleteMultiselectPrompt; -}); - -// node_modules/prompts/lib/elements/confirm.js -var require_confirm2 = __commonJS((exports, module) => { - var color = require_kleur(); - var Prompt = require_prompt2(); - var { style, clear } = require_util6(); - var { erase, cursor } = require_src(); - - class ConfirmPrompt extends Prompt { - constructor(opts = {}) { - super(opts); - this.msg = opts.message; - this.value = opts.initial; - this.initialValue = !!opts.initial; - this.yesMsg = opts.yes || "yes"; - this.yesOption = opts.yesOption || "(Y/n)"; - this.noMsg = opts.no || "no"; - this.noOption = opts.noOption || "(y/N)"; - this.render(); - } - reset() { - this.value = this.initialValue; - this.fire(); - this.render(); - } - exit() { - this.abort(); - } - abort() { - this.done = this.aborted = true; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - submit() { - this.value = this.value || false; - this.done = true; - this.aborted = false; - this.fire(); - this.render(); - this.out.write(` -`); - this.close(); - } - _(c, key2) { - if (c.toLowerCase() === "y") { - this.value = true; - return this.submit(); - } - if (c.toLowerCase() === "n") { - this.value = false; - return this.submit(); - } - return this.bell(); - } - render() { - if (this.closed) - return; - if (this.firstRender) - this.out.write(cursor.hide); - else - this.out.write(clear(this.outputText, this.out.columns)); - super.render(); - this.outputText = [ - style.symbol(this.done, this.aborted), - color.bold(this.msg), - style.delimiter(this.done), - this.done ? this.value ? this.yesMsg : this.noMsg : color.gray(this.initialValue ? this.yesOption : this.noOption) - ].join(" "); - this.out.write(erase.line + cursor.to(0) + this.outputText); - } - } - module.exports = ConfirmPrompt; -}); - -// node_modules/prompts/lib/elements/index.js -var require_elements2 = __commonJS((exports, module) => { - module.exports = { - TextPrompt: require_text2(), - SelectPrompt: require_select2(), - TogglePrompt: require_toggle2(), - DatePrompt: require_date2(), - NumberPrompt: require_number2(), - MultiselectPrompt: require_multiselect2(), - AutocompletePrompt: require_autocomplete2(), - AutocompleteMultiselectPrompt: require_autocompleteMultiselect2(), - ConfirmPrompt: require_confirm2() - }; -}); - -// node_modules/prompts/lib/prompts.js -var require_prompts2 = __commonJS((exports) => { - var $ = exports; - var el = require_elements2(); - var noop = (v) => v; - function toPrompt(type, args, opts = {}) { - return new Promise((res, rej) => { - const p = new el[type](args); - const onAbort = opts.onAbort || noop; - const onSubmit = opts.onSubmit || noop; - const onExit2 = opts.onExit || noop; - p.on("state", args.onState || noop); - p.on("submit", (x) => res(onSubmit(x))); - p.on("exit", (x) => res(onExit2(x))); - p.on("abort", (x) => rej(onAbort(x))); - }); - } - $.text = (args) => toPrompt("TextPrompt", args); - $.password = (args) => { - args.style = "password"; - return $.text(args); - }; - $.invisible = (args) => { - args.style = "invisible"; - return $.text(args); - }; - $.number = (args) => toPrompt("NumberPrompt", args); - $.date = (args) => toPrompt("DatePrompt", args); - $.confirm = (args) => toPrompt("ConfirmPrompt", args); - $.list = (args) => { - const sep = args.separator || ","; - return toPrompt("TextPrompt", args, { - onSubmit: (str) => str.split(sep).map((s) => s.trim()) - }); - }; - $.toggle = (args) => toPrompt("TogglePrompt", args); - $.select = (args) => toPrompt("SelectPrompt", args); - $.multiselect = (args) => { - args.choices = [].concat(args.choices || []); - const toSelected = (items) => items.filter((item) => item.selected).map((item) => item.value); - return toPrompt("MultiselectPrompt", args, { - onAbort: toSelected, - onSubmit: toSelected - }); - }; - $.autocompleteMultiselect = (args) => { - args.choices = [].concat(args.choices || []); - const toSelected = (items) => items.filter((item) => item.selected).map((item) => item.value); - return toPrompt("AutocompleteMultiselectPrompt", args, { - onAbort: toSelected, - onSubmit: toSelected - }); - }; - var byTitle = (input, choices) => Promise.resolve(choices.filter((item) => item.title.slice(0, input.length).toLowerCase() === input.toLowerCase())); - $.autocomplete = (args) => { - args.suggest = args.suggest || byTitle; - args.choices = [].concat(args.choices || []); - return toPrompt("AutocompletePrompt", args); - }; -}); - -// node_modules/prompts/lib/index.js -var require_lib5 = __commonJS((exports, module) => { - var prompts = require_prompts2(); - var passOn = ["suggest", "format", "onState", "validate", "onRender", "type"]; - var noop = () => { - }; - async function prompt2(questions = [], { onSubmit = noop, onCancel = noop } = {}) { - const answers = {}; - const override2 = prompt2._override || {}; - questions = [].concat(questions); - let answer, question, quit, name, type, lastPrompt; - const getFormattedAnswer = async (question2, answer2, skipValidation = false) => { - if (!skipValidation && question2.validate && question2.validate(answer2) !== true) { - return; - } - return question2.format ? await question2.format(answer2, answers) : answer2; - }; - for (question of questions) { - ({ name, type } = question); - if (typeof type === "function") { - type = await type(answer, { ...answers }, question); - question["type"] = type; - } - if (!type) - continue; - for (let key2 in question) { - if (passOn.includes(key2)) - continue; - let value = question[key2]; - question[key2] = typeof value === "function" ? await value(answer, { ...answers }, lastPrompt) : value; - } - lastPrompt = question; - if (typeof question.message !== "string") { - throw new Error("prompt message is required"); - } - ({ name, type } = question); - if (prompts[type] === undefined) { - throw new Error(`prompt type (${type}) is not defined`); - } - if (override2[question.name] !== undefined) { - answer = await getFormattedAnswer(question, override2[question.name]); - if (answer !== undefined) { - answers[name] = answer; - continue; - } - } - try { - answer = prompt2._injected ? getInjectedAnswer(prompt2._injected, question.initial) : await prompts[type](question); - answers[name] = answer = await getFormattedAnswer(question, answer, true); - quit = await onSubmit(question, answer, answers); - } catch (err) { - quit = !await onCancel(question, answers); - } - if (quit) - return answers; - } - return answers; - } - function getInjectedAnswer(injected, deafultValue) { - const answer = injected.shift(); - if (answer instanceof Error) { - throw answer; - } - return answer === undefined ? deafultValue : answer; - } - function inject(answers) { - prompt2._injected = (prompt2._injected || []).concat(answers); - } - function override(answers) { - prompt2._override = Object.assign({}, answers); - } - module.exports = Object.assign(prompt2, { prompt: prompt2, prompts, inject, override }); -}); - -// node_modules/prompts/index.js -var require_prompts3 = __commonJS((exports, module) => { - function isNodeLT(tar) { - tar = (Array.isArray(tar) ? tar : tar.split(".")).map(Number); - let i = 0, src = process.versions.node.split(".").map(Number); - for (;i < tar.length; i++) { - if (src[i] > tar[i]) - return false; - if (tar[i] > src[i]) - return true; - } - return false; - } - module.exports = isNodeLT("8.6.0") ? require_dist2() : require_lib5(); -}); - -// node_modules/deepmerge/dist/cjs.js -var require_cjs2 = __commonJS((exports, module) => { - var isMergeableObject = function isMergeableObject(value) { - return isNonNullObject(value) && !isSpecial(value); - }; - function isNonNullObject(value) { - return !!value && typeof value === "object"; - } - function isSpecial(value) { - var stringValue = Object.prototype.toString.call(value); - return stringValue === "[object RegExp]" || stringValue === "[object Date]" || isReactElement(value); - } - var canUseSymbol = typeof Symbol === "function" && Symbol.for; - var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for("react.element") : 60103; - function isReactElement(value) { - return value.$$typeof === REACT_ELEMENT_TYPE; - } - function emptyTarget(val) { - return Array.isArray(val) ? [] : {}; - } - function cloneUnlessOtherwiseSpecified(value, options) { - return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value; - } - function defaultArrayMerge(target, source, options) { - return target.concat(source).map(function(element) { - return cloneUnlessOtherwiseSpecified(element, options); - }); - } - function getMergeFunction(key2, options) { - if (!options.customMerge) { - return deepmerge; - } - var customMerge = options.customMerge(key2); - return typeof customMerge === "function" ? customMerge : deepmerge; - } - function getEnumerableOwnPropertySymbols(target) { - return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) { - return Object.propertyIsEnumerable.call(target, symbol); - }) : []; - } - function getKeys(target) { - return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)); - } - function propertyIsOnObject(object, property) { - try { - return property in object; - } catch (_3) { - return false; - } - } - function propertyIsUnsafe(target, key2) { - return propertyIsOnObject(target, key2) && !(Object.hasOwnProperty.call(target, key2) && Object.propertyIsEnumerable.call(target, key2)); - } - function mergeObject(target, source, options) { - var destination = {}; - if (options.isMergeableObject(target)) { - getKeys(target).forEach(function(key2) { - destination[key2] = cloneUnlessOtherwiseSpecified(target[key2], options); - }); - } - getKeys(source).forEach(function(key2) { - if (propertyIsUnsafe(target, key2)) { - return; - } - if (propertyIsOnObject(target, key2) && options.isMergeableObject(source[key2])) { - destination[key2] = getMergeFunction(key2, options)(target[key2], source[key2], options); - } else { - destination[key2] = cloneUnlessOtherwiseSpecified(source[key2], options); - } - }); - return destination; - } - function deepmerge(target, source, options) { - options = options || {}; - options.arrayMerge = options.arrayMerge || defaultArrayMerge; - options.isMergeableObject = options.isMergeableObject || isMergeableObject; - options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; - var sourceIsArray = Array.isArray(source); - var targetIsArray = Array.isArray(target); - var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; - if (!sourceAndTargetTypesMatch) { - return cloneUnlessOtherwiseSpecified(source, options); - } else if (sourceIsArray) { - return options.arrayMerge(target, source, options); - } else { - return mergeObject(target, source, options); - } - } - deepmerge.all = function deepmergeAll(array, options) { - if (!Array.isArray(array)) { - throw new Error("first argument should be an array"); - } - return array.reduce(function(prev, next) { - return deepmerge(prev, next, options); - }, {}); - }; - var deepmerge_1 = deepmerge; - module.exports = deepmerge_1; -}); - -// node_modules/isexe/windows.js -var require_windows = __commonJS((exports, module) => { - module.exports = isexe; - isexe.sync = sync; - var fs6 = __require("fs"); - function checkPathExt(path5, options) { - var pathext = options.pathExt !== undefined ? options.pathExt : process.env.PATHEXT; - if (!pathext) { - return true; - } - pathext = pathext.split(";"); - if (pathext.indexOf("") !== -1) { - return true; - } - for (var i = 0;i < pathext.length; i++) { - var p = pathext[i].toLowerCase(); - if (p && path5.substr(-p.length).toLowerCase() === p) { - return true; - } - } - return false; - } - function checkStat(stat, path5, options) { - if (!stat.isSymbolicLink() && !stat.isFile()) { - return false; - } - return checkPathExt(path5, options); - } - function isexe(path5, options, cb) { - fs6.stat(path5, function(er, stat) { - cb(er, er ? false : checkStat(stat, path5, options)); - }); - } - function sync(path5, options) { - return checkStat(fs6.statSync(path5), path5, options); - } -}); - -// node_modules/isexe/mode.js -var require_mode = __commonJS((exports, module) => { - module.exports = isexe; - isexe.sync = sync; - var fs6 = __require("fs"); - function isexe(path5, options, cb) { - fs6.stat(path5, function(er, stat) { - cb(er, er ? false : checkStat(stat, options)); - }); - } - function sync(path5, options) { - return checkStat(fs6.statSync(path5), options); - } - function checkStat(stat, options) { - return stat.isFile() && checkMode(stat, options); - } - function checkMode(stat, options) { - var mod = stat.mode; - var uid = stat.uid; - var gid = stat.gid; - var myUid = options.uid !== undefined ? options.uid : process.getuid && process.getuid(); - var myGid = options.gid !== undefined ? options.gid : process.getgid && process.getgid(); - var u = parseInt("100", 8); - var g = parseInt("010", 8); - var o = parseInt("001", 8); - var ug = u | g; - var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0; - return ret; - } -}); - -// node_modules/isexe/index.js -var require_isexe = __commonJS((exports, module) => { - var fs6 = __require("fs"); - var core; - if (process.platform === "win32" || global.TESTING_WINDOWS) { - core = require_windows(); - } else { - core = require_mode(); - } - module.exports = isexe; - isexe.sync = sync; - function isexe(path5, options, cb) { - if (typeof options === "function") { - cb = options; - options = {}; - } - if (!cb) { - if (typeof Promise !== "function") { - throw new TypeError("callback not provided"); - } - return new Promise(function(resolve, reject) { - isexe(path5, options || {}, function(er, is) { - if (er) { - reject(er); - } else { - resolve(is); - } - }); - }); - } - core(path5, options || {}, function(er, is) { - if (er) { - if (er.code === "EACCES" || options && options.ignoreErrors) { - er = null; - is = false; - } - } - cb(er, is); - }); - } - function sync(path5, options) { - try { - return core.sync(path5, options || {}); - } catch (er) { - if (options && options.ignoreErrors || er.code === "EACCES") { - return false; - } else { - throw er; - } + return core.sync(path5, options || {}); + } catch (er) { + if (options && options.ignoreErrors || er.code === "EACCES") { + return false; + } else { + throw er; + } } } }); @@ -59344,7 +54445,7 @@ function ansiRegex({ onlyFirst = false } = {}) { // node_modules/strip-ansi/index.js var regex = ansiRegex(); -function stripAnsi(string) { +function stripAnsi2(string) { if (typeof string !== "string") { throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``); } @@ -59389,7 +54490,7 @@ function stringWidth(string, options = {}) { countAnsiEscapeCodes = false } = options; if (!countAnsiEscapeCodes) { - string = stripAnsi(string); + string = stripAnsi2(string); } if (string.length === 0) { return 0; @@ -59636,7 +54737,7 @@ class Ora { const fullSuffixText = this.#getFullSuffixText(this.#suffixText, "-"); const fullText = " ".repeat(this.#indent) + fullPrefixText + "--" + this.#text + "--" + fullSuffixText; this.#lineCount = 0; - for (const line of stripAnsi(fullText).split(` + for (const line of stripAnsi2(fullText).split(` `)) { this.#lineCount += Math.max(1, Math.ceil(stringWidth(line, { countAnsiEscapeCodes: true }) / columns)); } @@ -64418,9 +59519,6 @@ var ERRORS = { BUILD_MISSING_REGISTRY_FILE: "3" }; -// src/commands/components/commands/add/utils/prompt-for-component.ts -var import_prompts3 = __toESM(require_prompts3(), 1); - // src/commands/components/commands/add/registry/schema.ts var registryComponentSchema = z.object({ name: z.string(), @@ -64594,6 +59692,7 @@ function registryResolveItemsTree(names) { } // src/commands/components/commands/add/utils/prompt-for-component.ts +init_esm14(); async function promptForRegistryComponents(all) { const registryIndex = await getRegistry(); if (!registryIndex) { @@ -64604,17 +59703,17 @@ async function promptForRegistryComponents(all) { if (all) { return Object.values(registryIndex).map((entry) => entry.name); } - const { components } = await import_prompts3.default({ - type: "multiselect", - name: "components", - message: "Which components would you like to add?", - hint: "Space to select. A to toggle all. Enter to submit.", - instructions: false, - choices: Object.values(registryIndex).filter((item) => item.internal !== true).map((entry) => ({ - title: entry.name, - value: entry.name - })) - }); + const { components } = await esm_default12.prompt([ + { + type: "checkbox", + name: "components", + message: "Which components would you like to add?", + choices: Object.values(registryIndex).filter((item) => item.internal !== true).map((entry) => ({ + name: entry.name, + value: entry.name + })) + } + ]); if (!components?.length) { logger.warn("No components selected. Exiting."); logger.info(""); @@ -64937,14 +60036,14 @@ import { inspect } from "node:util"; // node_modules/execa/lib/arguments/escape.js import { platform } from "node:process"; -import { stripVTControlCharacters as stripVTControlCharacters2 } from "node:util"; +import { stripVTControlCharacters } from "node:util"; var joinCommand = (filePath, rawArguments) => { const fileAndArguments = [filePath, ...rawArguments]; const command = fileAndArguments.join(" "); const escapedCommand = fileAndArguments.map((fileAndArgument) => quoteString(escapeControlCharacters(fileAndArgument))).join(" "); return { command, escapedCommand }; }; -var escapeLines = (lines2) => stripVTControlCharacters2(lines2).split(` +var escapeLines = (lines2) => stripVTControlCharacters(lines2).split(` `).map((line) => escapeControlCharacters(line)).join(` `); var escapeControlCharacters = (line) => line.replaceAll(SPECIAL_CHAR_REGEXP, (character) => escapeControlCharacter(character)); @@ -71176,7 +66275,6 @@ async function updateDependencies(dependencies, cwd, options) { // src/commands/components/commands/add/utils/updaters/update-files.ts var import_fs_extra3 = __toESM(require_lib(), 1); import path10 from "path"; -var import_prompts4 = __toESM(require_prompts3(), 1); import { existsSync } from "fs"; // src/commands/components/commands/add/utils/download-file-from-github.ts @@ -71196,6 +66294,7 @@ async function fetchFileFromGitHubAPI(apiUrl, outputPath) { } // src/commands/components/commands/add/utils/updaters/update-files.ts +init_esm14(); async function updateFiles(componentLocations, options) { if (!componentLocations?.length) { return { @@ -71220,12 +66319,14 @@ async function updateFiles(componentLocations, options) { const existingFile = existsSync(location.target); if (existingFile && !options.overwrite) { filesCreatedSpinner.stop(); - const { overwrite } = await import_prompts4.default({ - type: "confirm", - name: "overwrite", - message: `The file ${highlighter.info(location.target)} already exists. Would you like to overwrite?`, - initial: false - }); + const { overwrite } = await esm_default12.prompt([ + { + type: "confirm", + name: "overwrite", + message: `The file ${highlighter.info(location.target)} already exists. Would you like to overwrite?`, + default: false + } + ]); if (!overwrite) { filesSkipped.push(path10.relative(options.cwd, location.target)); continue; @@ -71332,8 +66433,8 @@ var addComponentCommand = new Command().name("add").description("add components }); // src/commands/components/commands/register.ts -var import_prompts5 = __toESM(require_prompts3(), 1); var import_fs_extra4 = __toESM(require_lib(), 1); +init_esm14(); async function writeJsonToFile(filePath, data) { try { await import_fs_extra4.default.promises.writeFile(filePath, JSON.stringify(data, null, 2), "utf8"); @@ -71356,29 +66457,34 @@ async function writeJsonToFile(filePath, data) { var registerComponentCommand = new Command().name("register").description("register a new component in screenpipe's component registry").option("-n, --name ", "name of the component").option("-s, --src", "github url for the component").option("-t, --target", "path where file should be created").action(async (opts) => { try { if (!opts.name) { - const { name } = await import_prompts5.default({ - type: "text", - name: "name", - message: "what's your component's name?", - instructions: false - }); + const { name } = await esm_default12.prompt([ + { + type: "input", + name: "name", + message: "what's your component's name?" + } + ]); opts.name = name; } if (!opts.src) { - const { src } = await import_prompts5.default({ - type: "text", - name: "src", - message: "where should we download the component from?", - hint: "url with the following pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}. see README for more info." - }); + const { src } = await esm_default12.prompt([ + { + type: "input", + name: "src", + message: "where should we download the component from?", + validate: (input) => input.startsWith("https://api.github.com/repos/") ? true : "URL must follow the pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}" + } + ]); opts.src = src; } if (!opts.target) { - const { target } = await import_prompts5.default({ - type: "text", - name: "target", - message: "where should the component be created?" - }); + const { target } = await esm_default12.prompt([ + { + type: "input", + name: "target", + message: "where should the component be created?" + } + ]); opts.target = target; } if (!opts.name?.length || !opts.src?.length || !opts.target?.length) { @@ -71386,31 +66492,37 @@ var registerComponentCommand = new Command().name("register").description("regis handleError("invalid component"); process.exit(1); } - const { deps } = await import_prompts5.default({ - type: "list", - name: "deps", - message: "type all of the component's runtime dependencies by name, separated by a comma", - separator: "," - }); - const { devDeps } = await import_prompts5.default({ - type: "list", - name: "devDeps", - message: "type all of the component's dev dependencies by name, separated by a comma", - separator: "," - }); - const { registryDeps } = await import_prompts5.default({ - type: "list", - name: "registryDeps", - message: "type all of the component's registry dependencies by name, separated by a comma", - separator: "," - }); + const { deps } = await esm_default12.prompt([ + { + type: "input", + name: "deps", + message: "type all of the component's runtime dependencies by name, separated by a comma", + filter: (input) => input.split(",").map((item) => item.trim()).filter((item) => item !== "") + } + ]); + const { devDeps } = await esm_default12.prompt([ + { + type: "input", + name: "devDeps", + message: "type all of the component's dev dependencies by name, separated by a comma", + filter: (input) => input.split(",").map((item) => item.trim()).filter((item) => item !== "") + } + ]); + const { registryDeps } = await esm_default12.prompt([ + { + type: "input", + name: "registryDeps", + message: "type all of the component's registry dependencies by name, separated by a comma", + filter: (input) => input.split(",").map((item) => item.trim()).filter((item) => item !== "") + } + ]); const componentObject = { name: opts.name, src: opts.src, target: opts.target, - dependencies: deps.filter((item) => item !== ""), - devDependencies: devDeps.filter((item) => item !== ""), - registryDependencies: registryDeps.filter((item) => item !== "") + dependencies: deps, + devDependencies: devDeps, + registryDependencies: registryDeps }; const currentRegistry = getRegistry(); if (!currentRegistry) { diff --git a/screenpipe-js/cli/package.json b/screenpipe-js/cli/package.json index e764d43ae..2cd485f7d 100644 --- a/screenpipe-js/cli/package.json +++ b/screenpipe-js/cli/package.json @@ -13,7 +13,7 @@ "dev": "bun run src/index.ts" }, "dependencies": { - "@screenpipe/browser": "^0.1.24", + "@screenpipe/browser": "^0.1.26", "@screenpipe/js": "^1.0.7", "archiver": "^7.0.1", "chalk": "^5.4.1", @@ -23,6 +23,7 @@ "fs-extra": "^11.3.0", "ignore": "^7.0.3", "inquirer": "^12.3.2", + "lodash": "^4.17.21", "ora": "^8.1.1", "simple-git": "^3.27.0", "unzip-stream": "^0.3.4", @@ -31,6 +32,7 @@ "devDependencies": { "@types/archiver": "^6.0.3", "@types/fs-extra": "^11.0.4", + "@types/lodash": "^4.17.15", "@types/node": "^20.11.5", "@types/prompts": "^2.4.9", "@types/unzip-stream": "^0.3.4", diff --git a/screenpipe-js/cli/src/commands/components/commands/add/registry/registry.json b/screenpipe-js/cli/src/commands/components/commands/add/registry/registry.json index 5017bc99f..bd92cf821 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/registry/registry.json +++ b/screenpipe-js/cli/src/commands/components/commands/add/registry/registry.json @@ -71,7 +71,19 @@ "dependencies": [ "@screenpipe/browser" ], - "devDependencies": [], + "registryDependencies": [], + "devDependencies": [] + }, + "test": { + "name": "test", + "src": "https://api.github.com/repos/mediar-ai/screenpipe/contents/pipes/search/src/lib/hooks/use-ai-provider.tsx", + "target": "a", + "dependencies": [ + "s" + ], + "devDependencies": [ + "d" + ], "registryDependencies": [] } } \ No newline at end of file diff --git a/screenpipe-js/cli/src/commands/components/commands/add/utils/prompt-for-component.ts b/screenpipe-js/cli/src/commands/components/commands/add/utils/prompt-for-component.ts index 4a7a242a9..2c1880795 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/utils/prompt-for-component.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/utils/prompt-for-component.ts @@ -3,6 +3,7 @@ import prompts from 'prompts'; import { handleError } from "./handle-error"; import { getRegistry } from "../registry/api"; import { logger } from "./logger"; +import inquirer from "inquirer"; export async function promptForRegistryComponents( all?: boolean @@ -19,19 +20,21 @@ export async function promptForRegistryComponents( return Object.values(registryIndex).map((entry) => entry.name) } - const { components } = await prompts({ - type: "multiselect", - name: "components", - message: "Which components would you like to add?", - hint: "Space to select. A to toggle all. Enter to submit.", - instructions: false, - choices: Object.values(registryIndex).filter((item) => item.internal !== true) - .map((entry) => ({ - title: entry.name, - value: entry.name, - // selected: options.all ? true : options.components?.includes(entry.name), - })), - }) + const { components } = await inquirer.prompt([ + { + type: "checkbox", + name: "components", + message: "Which components would you like to add?", + choices: Object.values(registryIndex) + .filter((item) => item.internal !== true) + .map((entry) => ({ + name: entry.name, + value: entry.name, + // checked: options.all ? true : options.components?.includes(entry.name), + })), + }, + ]); + if (!components?.length) { logger.warn("No components selected. Exiting.") diff --git a/screenpipe-js/cli/src/commands/components/commands/add/utils/updaters/update-files.ts b/screenpipe-js/cli/src/commands/components/commands/add/utils/updaters/update-files.ts index ba954f06e..62e44d415 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/utils/updaters/update-files.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/utils/updaters/update-files.ts @@ -4,6 +4,7 @@ import { highlighter, logger, spinner } from "../logger"; import prompts from "prompts"; import { existsSync } from "fs"; import { fetchFileFromGitHubAPI } from "../download-file-from-github"; +import inquirer from 'inquirer'; export async function updateFiles( componentLocations: {src: string, target: string}[], @@ -41,14 +42,14 @@ export async function updateFiles( const existingFile = existsSync(location.target) if (existingFile && !options.overwrite) { filesCreatedSpinner.stop() - const { overwrite } = await prompts({ - type: "confirm", - name: "overwrite", - message: `The file ${highlighter.info( - location.target - )} already exists. Would you like to overwrite?`, - initial: false, - }) + const { overwrite } = await inquirer.prompt([ + { + type: "confirm", + name: "overwrite", + message: `The file ${highlighter.info(location.target)} already exists. Would you like to overwrite?`, + default: false, + }, + ]); if (!overwrite) { filesSkipped.push(path.relative(options.cwd, location.target)) diff --git a/screenpipe-js/cli/src/commands/components/commands/register.ts b/screenpipe-js/cli/src/commands/components/commands/register.ts index 4a4eab331..1e9e9c5d5 100644 --- a/screenpipe-js/cli/src/commands/components/commands/register.ts +++ b/screenpipe-js/cli/src/commands/components/commands/register.ts @@ -1,10 +1,10 @@ import { logger } from "./add/utils/logger"; import { handleError } from "./add/utils/handle-error"; -import prompts from "prompts"; import { ComponentSchema, RegistrySchema } from "./add/registry/schema"; import { getRegistry } from "./add/registry/api"; import fs from 'fs-extra'; import { Command } from "commander"; +import inquirer from "inquirer"; async function writeJsonToFile(filePath: string, data: RegistrySchema) { try { @@ -34,86 +34,94 @@ export const registerComponentCommand = new Command() .action(async (opts) => { try { if (!opts.name) { - const { name } = await prompts({ - type: "text", - name: "name", - message: "what's your component's name?", - instructions: false, - }) - - opts.name = name + const { name } = await inquirer.prompt([ + { + type: "input", + name: "name", + message: "what's your component's name?", + }, + ]); + opts.name = name; } if (!opts.src) { - const { src } = await prompts({ - type: "text", - name: "src", - message: "where should we download the component from?", - hint: "url with the following pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}. see README for more info.", - }) - - opts.src = src + const { src } = await inquirer.prompt([ + { + type: "input", + name: "src", + message: "where should we download the component from?", + validate: input => input.startsWith("https://api.github.com/repos/") ? true : "URL must follow the pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}", + }, + ]); + opts.src = src; } if (!opts.target) { - const { target } = await prompts({ - type: "text", - name: "target", - message: "where should the component be created?", - }) - - opts.target = target + const { target } = await inquirer.prompt([ + { + type: "input", + name: "target", + message: "where should the component be created?", + }, + ]); + opts.target = target; } if (!opts.name?.length || !opts.src?.length || !opts.target?.length) { - logger.break() - handleError('invalid component') - process.exit(1) + logger.break(); + handleError("invalid component"); + process.exit(1); } - const { deps } = await prompts({ - type: "list", - name: "deps", - message: "type all of the component's runtime dependencies by name, separated by a comma", - separator: ',', - }) + const { deps } = await inquirer.prompt([ + { + type: "input", + name: "deps", + message: "type all of the component's runtime dependencies by name, separated by a comma", + filter: (input: string) => input.split(',').map(item => item.trim()).filter(item => item !== ""), + }, + ]); - const { devDeps } = await prompts({ - type: "list", - name: "devDeps", - message: "type all of the component's dev dependencies by name, separated by a comma", - separator: ',', - }) + const { devDeps } = await inquirer.prompt([ + { + type: "input", + name: "devDeps", + message: "type all of the component's dev dependencies by name, separated by a comma", + filter: (input: string) => input.split(',').map(item => item.trim()).filter(item => item !== ""), + }, + ]); - const { registryDeps } = await prompts({ - type: "list", - name: "registryDeps", - message: "type all of the component's registry dependencies by name, separated by a comma", - separator: ',', - }) + const { registryDeps } = await inquirer.prompt([ + { + type: "input", + name: "registryDeps", + message: "type all of the component's registry dependencies by name, separated by a comma", + filter: (input: string) => input.split(',').map(item => item.trim()).filter(item => item !== ""), + }, + ]); - const componentObject: ComponentSchema = { - name: opts.name as string, - src: opts.src as string, - target: opts.target as string, - dependencies: (deps as string[]).filter(item => item !== ""), - devDependencies: (devDeps as string[]).filter(item => item !== ""), - registryDependencies: (registryDeps as string[]).filter(item => item !== "") - } - - const currentRegistry = getRegistry() + const componentObject: ComponentSchema = { + name: opts.name, + src: opts.src, + target: opts.target, + dependencies: deps, + devDependencies: devDeps, + registryDependencies: registryDeps, + }; + + const currentRegistry = getRegistry(); if (!currentRegistry) { - logger.break() - handleError('critical: build is missing registry file.') - process.exit(1) + logger.break(); + handleError("critical: build is missing registry file."); + process.exit(1); } - currentRegistry[opts.name as string] = componentObject + currentRegistry[opts.name] = componentObject; - await writeJsonToFile('./src/commands/components/commands/add/registry/registry.json', currentRegistry) - logger.log("run `bun run build` and open a PR at https://github.com/mediar-ai/screenpipe to update registry.") + await writeJsonToFile("./src/commands/components/commands/add/registry/registry.json", currentRegistry); + logger.log("run `bun run build` and open a PR at https://github.com/mediar-ai/screenpipe to update registry."); } catch (error) { - logger.break() - handleError(error) + logger.break(); + handleError(error); } }) \ No newline at end of file diff --git a/screenpipe-js/cli/src/hooks/use-ai-provider.tsx b/screenpipe-js/cli/src/hooks/use-ai-provider.tsx new file mode 100644 index 000000000..97ead8f20 --- /dev/null +++ b/screenpipe-js/cli/src/hooks/use-ai-provider.tsx @@ -0,0 +1,85 @@ +import { useState, useEffect } from "react"; +import type { Settings } from "@screenpipe/browser"; + +interface AIProviderStatus { + isAvailable: boolean; + error: string; +} + +export function useAiProvider(settings: Settings): AIProviderStatus { + const [status, setStatus] = useState({ + isAvailable: true, + error: "", + }); + + useEffect(() => { + const checkAiProvider = async () => { + try { + if (!settings.aiProviderType) { + setStatus({ isAvailable: false, error: "no ai-provider is set" }); + return; + } + switch (settings.aiProviderType) { + case "openai": + if (!settings.openaiApiKey) { + setStatus({ + isAvailable: false, + error: "openai api key not configured", + }); + return; + } + break; + + case "native-ollama": + try { + const response = await fetch("http://localhost:11434/api/tags"); + if (!response.ok) throw new Error(); + } catch { + setStatus({ + isAvailable: false, + error: "ollama not running on port 11434", + }); + return; + } + break; + + case "screenpipe-cloud": + if (!settings.user?.token) { + setStatus({ + isAvailable: false, + error: "login required for screenpipe cloud", + }); + return; + } + break; + + case "custom": + if (!settings.aiUrl || !settings.openaiApiKey) { + setStatus({ + isAvailable: false, + error: "custom ai url not configured", + }); + return; + } + break; + } + + setStatus({ isAvailable: true, error: "" }); + } catch (error) { + setStatus({ + isAvailable: false, + error: "failed to check ai provider", + }); + } + }; + + checkAiProvider(); + }, [ + settings.aiProviderType, + settings.openaiApiKey, + settings.aiUrl, + settings.user?.token, + ]); + + return status; +} diff --git a/screenpipe-js/cli/src/hooks/use-health.tsx b/screenpipe-js/cli/src/hooks/use-health.tsx new file mode 100644 index 000000000..8d32570d0 --- /dev/null +++ b/screenpipe-js/cli/src/hooks/use-health.tsx @@ -0,0 +1,131 @@ +import { useState, useEffect, useCallback, useRef } from "react"; + +import { debounce } from "lodash"; + + +interface HealthCheckResponse { + status: string; + status_code: number; + last_frame_timestamp: string | null; + last_audio_timestamp: string | null; + last_ui_timestamp: string | null; + frame_status: string; + audio_status: string; + ui_status: string; + message: string; +} + +function isHealthChanged( + oldHealth: HealthCheckResponse | null, + newHealth: HealthCheckResponse +): boolean { + if (!oldHealth) return true; + return ( + oldHealth.status !== newHealth.status || + oldHealth.status_code !== newHealth.status_code || + oldHealth.last_frame_timestamp !== newHealth.last_frame_timestamp || + oldHealth.last_audio_timestamp !== newHealth.last_audio_timestamp || + oldHealth.last_ui_timestamp !== newHealth.last_ui_timestamp || + oldHealth.frame_status !== newHealth.frame_status || + oldHealth.audio_status !== newHealth.audio_status || + oldHealth.ui_status !== newHealth.ui_status || + oldHealth.message !== newHealth.message + ); +} + +interface HealthCheckHook { + health: HealthCheckResponse | null; + isServerDown: boolean; + isLoading: boolean; + fetchHealth: () => Promise; + debouncedFetchHealth: () => Promise; +} + +export function useHealthCheck() { + const [health, setHealth] = useState(null); + const [isServerDown, setIsServerDown] = useState(false); + const [isLoading, setIsLoading] = useState(false); + const abortControllerRef = useRef(null); + const healthRef = useRef(health); + + const fetchHealth = useCallback(async () => { + if (abortControllerRef.current) { + abortControllerRef.current.abort(); + } + + abortControllerRef.current = new AbortController(); + + try { + setIsLoading(true); + const response = await fetch("http://localhost:3030/health", { + cache: "no-store", + signal: abortControllerRef.current.signal, + headers: { + "Cache-Control": "no-cache", + Pragma: "no-cache", + }, + }); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data: HealthCheckResponse = await response.json(); + + if (isHealthChanged(healthRef.current, data)) { + setHealth(data); + healthRef.current = data; + } + + setIsServerDown(false); + } catch (error) { + if (error instanceof Error && error.name === "AbortError") { + return; + } + + // console.error("Health check error:", error); + if (!isServerDown) { + setIsServerDown(true); + const errorHealth: HealthCheckResponse = { + last_frame_timestamp: null, + last_audio_timestamp: null, + last_ui_timestamp: null, + frame_status: "error", + audio_status: "error", + ui_status: "error", + status: "error", + status_code: 500, + message: "Failed to fetch health status. Server might be down.", + }; + setHealth(errorHealth); + healthRef.current = errorHealth; + } + } finally { + setIsLoading(false); + } + }, [isServerDown, setIsLoading]); + + const debouncedFetchHealth = useCallback(debounce(fetchHealth, 200), [ + fetchHealth, + ]); + + useEffect(() => { + fetchHealth(); + const interval = setInterval(fetchHealth, 1000); + + return () => { + clearInterval(interval); + if (abortControllerRef.current) { + abortControllerRef.current.abort(); + } + }; + }, [fetchHealth]); + + return { + health, + isServerDown, + isLoading, + fetchHealth, + debouncedFetchHealth, + } as HealthCheckHook; +} From 74a260fadd72b8de9f2de208793b6a3669555fe5 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:41:14 -0600 Subject: [PATCH 16/35] fix(cli): remove test registered component --- .../components/commands/add/registry/registry.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/screenpipe-js/cli/src/commands/components/commands/add/registry/registry.json b/screenpipe-js/cli/src/commands/components/commands/add/registry/registry.json index bd92cf821..11d34f436 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/registry/registry.json +++ b/screenpipe-js/cli/src/commands/components/commands/add/registry/registry.json @@ -73,17 +73,5 @@ ], "registryDependencies": [], "devDependencies": [] - }, - "test": { - "name": "test", - "src": "https://api.github.com/repos/mediar-ai/screenpipe/contents/pipes/search/src/lib/hooks/use-ai-provider.tsx", - "target": "a", - "dependencies": [ - "s" - ], - "devDependencies": [ - "d" - ], - "registryDependencies": [] } } \ No newline at end of file From fec1a2016f9130896c011eddda0a15cb42e8227a Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:48:22 -0600 Subject: [PATCH 17/35] feat(cli): add hint to register command --- .../cli/src/commands/components/commands/register.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/screenpipe-js/cli/src/commands/components/commands/register.ts b/screenpipe-js/cli/src/commands/components/commands/register.ts index 1e9e9c5d5..2092730de 100644 --- a/screenpipe-js/cli/src/commands/components/commands/register.ts +++ b/screenpipe-js/cli/src/commands/components/commands/register.ts @@ -49,8 +49,8 @@ export const registerComponentCommand = new Command() { type: "input", name: "src", - message: "where should we download the component from?", - validate: input => input.startsWith("https://api.github.com/repos/") ? true : "URL must follow the pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}", + message: "where should we download the component from? (URL pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path})", + validate: input => input.startsWith("https://api.github.com/repos/") ? true : "URL must follow the pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}. \n \n \nvisit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/commands/components/README.md for more details.", }, ]); opts.src = src; From 967cf15a117be12918040cf2c52b053500dd9cb9 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:48:48 -0600 Subject: [PATCH 18/35] chore(cli): update dist and lockfile --- screenpipe-js/cli/bun.lockb | Bin 99901 -> 98802 bytes screenpipe-js/cli/dist/index.js | 11 +++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/screenpipe-js/cli/bun.lockb b/screenpipe-js/cli/bun.lockb index 0e7b3a58e08c83da27193bf23f800858a53e8329..56b272e0748fe56ec3af04c811847ae219ad14bc 100755 GIT binary patch delta 18501 zcmeHvcU%_7*8k25%BoKkMWjj*MCqXLfXG8pEZNwSD1t$KR1{P?7HnYGSaH-9EP%bl zN{kv~i`PVxnAl>JSVG#>#1xH*G54Ch-?K%zzMA*m`}^bfPxg~9XTLLN&YUxIW_DSe z99~fW?u`0Ng4=x*7$yV-WmSCkO~gT;!?*XQ?0y;J=dF z_(7$gL6Y?<5Gp^9AJpq{NPEb8sB8-Pl1Xzr5t7QQb-h3+Q@dw{AC6dCqFxWbxFiP+ zsAE@Hg{_iNkQ7#H-O!hMhZi8JqvMdxAou9y>mX_Tmg;=EE-Rr#<%LU;z@*Btv9 zG^7p&LsAEsBeQez(*m|Q@+tr<4Yl7yJQ|DjYO_BzaTv*t6&N^OqYC*@F~z-YhgxE(&+S}LR~RK zR~QIM3Vk8T(=4Q$6Xb}@kz@1I3xuvHr;fY3Xc4Y);jh+fl@NepR}>$DFVyc|U0U;p zWn_*^&%f@bne%biX7C_54bW|HnqdpSRnM>3&qHf{RoA)+PNOnc*P0ATQ4Gr;7Sujm z5De!lV2!NI_R@MWtOt5)>D&sE>L2yiN(-VH%E?}4c1C)BW+7K>?2Ge#1OdU6427gz zONOL?r}%2VWo2e(=2{C1dZC;mZQn+VWG*E2k))S<`DyJPAZb92+%%-IBtK}YwfkQ= zc~Kv-g2McCYt{rI&|h=J6Ox=B+Cf|Ej^H#?m)dC#okBaRHyqrdb8A6S_ApG#27nx$ z14-@P3Dji&Ad<+*T=X}r5V<#EjI|IsI1HH>G^#*23`L4~?AXlVXe*>ofM!8~uq#B% zxwViqTZDj8Co;vq{Y!rct^z@(+nfV2U4pabs0aL9u zD6|%iEl4jIo}Q~Vl=S*)=>b;Y1>MKq|G4- z_Q|nh(4zsrhk(?X3$tgjOX}4Hi()ibUyrgMp)8yFc3(^kC@A>w5 z_hy?zcc<{(O*2>xceamX5>LU;mv|X|&f!<=y5fw-{&cX6_aUp3&VP8KNy4{)lpRW+xAk!c&1y#1m5W)r1%_-c zsi*qd8gowORYxQ%SUi{wuXQ$y+Zyp2SGd)PySQ1H2TyT}V>Z0ZElwP2;x%p-af^w& zxLd@VCZ6hUks^>DWVk-BZDE!sg3+*INSw{KZxG{Y&N0$m+-Y4{-ON%CWKMr*Y0gxD zku#VW4C6JO*>D>6wpb0wb#m0%EER&0bxgIpS=tRoJ!@n14H#Le$E)1Twr#OYuc*CGJTBy^(u-jlDsqZ&i@ERYB_@D)M@wG_1@wg-}p@|{-9;_D_e8%u~ z!oEfBN$PZr10yS1-A*v-LCsg&e}E-&_hvCttW#aBv0&P;(va^0(UerHf#cva0`5Ll@0stTv2mG8m1kmVMj6$flMIx51(`hW;#g z#nEyYgDvGgVif5*us+aKV-xSX@>G9|6zC=h*u*iUPC&u_5s-Q>VoL(sdb@6JqPU3%t#l(C`%Zxax_bJUfO(Ud65XF zZ4>175-xgy|uflL8wt18VaB~INV>fHSNV6WV4L6Hnemu2m{^(iW5 zg>jcyi?}n4r^Z^O8>rJG3N%X|SdjYegLR$;MoUb4`YwN5hZTAQOlwDp=+R!&)bcnP zjAGFCfH`1fQ*-wu7)>XhtnY(ns?rr9&5TQ}Lyo*K3 zM02fk+Npj9>!Wr~x%~>B3fg>8mm8vad6GrE70qjsEE0$RT~$qLcLj``h978W!q%6l z*1->{H<;!)X)XlQ#)HQ3Fqk&PG&S{*%bHCqG<$$)bzaTPwll!uxqEmgJKXeFjZ+in zSV4H<5laU{wLX7UU|RCgKK-p;2N$EwVzh;q_rO|)W7LPXCU<~gK&d(W{^BtUF^jF^ zc=_`dac~^3c^=W@9ZZh`nkT?0LOh_cp)|*El1ti_Iv9**s3A?KsKj%Z7c90{P#DY8 zoMNQm34&lnHD0&yy6^>9H-0TCM)XhQERaIn}1V_qYOCid+E{}k}i_?^+Ld|r`BV2rs7szrm6vKR_gUMNseL1QLleTGJfX8mOOBv zT`@JmDpoI&b^r!Xbpd&zUL?t7jFx&mO;UZlR;^0n2|yzN879;RUIgf>Ba79T2cnS1 zXb?aR2Lp7Gr1GIeaMhKhHw+*-9H6VN#4jI0CO}z`rOP}>vRA0f@%WUWDooN9Kvjk5 zkYsoUKo?2kGl}4;E6Ly-fFfK7&_$BUmk_~4QUsO~!9}t$u-1nduCS9Cp+)bpph zyr!4ek(%q*Q9&Kt&=p8h!&;q_B*T9P>hXpBTNYErkMsjqT}dPK6JP_}2k0V6)_)~} z>uHke9{?nO1L&$NX(y;hm6|M8J7}O6{Fx*bJ6(^Y2e=<36}8pN{~bvI1wtQRE`(^N z#!okzp^myCl9U^9I{$AZHI3KXKT{UhQJ{?Jrt_ysT30Wjo+3!r^+?hLr|6s{-KOfC zB;5|g4+?0AF4G~&PHZOC;v(4)vOwn~>9$bkPm>})JfLMJWy(ZoksFhBZIZ;N>as+a z)AjnNNz$LG*FQ}%-qY$)Ois^(7RiOWHc4u|Sm$*mdAC$ACrNtCAgO4%UQUwoaxEm) zS3*)%75&g9-L7NUR_SIvevsluU7@a|^35oxsx7+Qs!J59kKO#%6^P-$&ehTawm@jXao6INVnE1k6nfdW6 zU~O|vJT_0pU%BSxCG*Q*-+=}2==@|pH_yb^p=0y_`AJ{dpB;IZk;+u&0 zCdsTDzXH~F65^XI5#JP<_2jp}qNX6esWR)$%cdeeu!mrM zd5>bmHx=;}%lJ#-1F-JJh_6Iu{rJ`r#0O@YCbMLoG7a&SAU?1ZE=@;#(-7ZunGNIz z!R)3Zz8Nx0^rd0JbEtTn}hh~%J|#mEwHG$h;N?Ea(LN1#0T~e zERXki74gkOe6Px^fIk51{wm^|FSD_H>wLrqWqiH}_*vnl*I*a0x##WE}Ad5aO>A`|}@Y#R4kg7_Aj_^c%|o59b4odSy} zmDwyltrYPsG4Zd!=J2qkh_BSdmoJssJYEZS87zs*Y(6jLh;ONh{|vT}CoDsJ+{8C7 zli6Z^2ka(TzvVJ3sHI%T0VA*mBMk#0QqH$V}mTz_zSFd@E&E z#;q$6pMv#J3XhmC0-kKMr;P%(q--6+EvT@s%Myuqy7g3h|XAzEv_?&(DFK z0*hEJRWhsQeX9^(CE^3y$Jsi>2bR80X8ZXbuq{=HZ@tV8 za_f4;w+``v9pd&I5Z`*lw?Sry`EjrVV7?n=c9iFBM0^_%AJ}p3wF&WUM0}fMc7mS+ zI|UZ8S!O5sw9SZb6XFAVmxpaZe47#97MY#qwP2UQlD5k1eO|g1@ohnTU}t#3HpI6T z@okgYNBj=hO|X93Wp<8NZAX0D5Z`MuyTJRthWNH4KCq8D+kyDN(s#)06TSy*%WH^l zr;NYATX!P99f%L?Q*OTt@$E!>yJU8a9|t=C=DS;FH+bG|#J3Cafz@)aJ&12N;@cy$ zFZemIQ(zH$W%d=Hwiog3L406;=V8@|Z!hAjmf0;{3w9YS>2;ZX%S&HJeAS2#>^q*Y z5AnT@`1Z-{2Yv_aCRo2WWOj#Fy@B}lA-?@G`-%76kNDm|eEa2|KWh&!^{361^YhOY zz1M5XxwL%+Lq{Zh(>A8_57HM|Zt<~4){Lp_G_TbJj|7K?pGq?$&opdv)USC?wJzk9=pA3h+n`&>GRaoUfa>7dLW@Pl9j4q#_`Qx^Xr@KJB}=XM9- z_(-|u!@3Tf`04)D(m|&Ks?6(T9^lkxM`g1yhnM7?H1FxOb74^FgN==EhS_wwWM6Um z&dHJocfM)y?X7CzLW{B!?|wOD`QG2&d!OY#Ey4JW{jUcq_7^< z*0;#dv*BS4kNu&=6E7;0L>6EC`ybjxr9S}l zvOwRh=rTC{qFsRss-rJgB4o%5iyuH2O*$#km*kduC%@=r^!dPqGIGH9Oh%tmTIqW9sf=#vt8pW}j6Rc55cFN= z1VGn60Q$RMr$o0qCNErB3XD=TS+{ zGf2{F2E^lr92NDl=C}`~uTtbGeW=5K^bf7nZ=3YqZi50c*aCP3pw8;+dXBhH)5{v@ zW%RA%20#~mx1+XBKrKLZ4Rt+d+u@xXPgzB0;|O?Rg+Ih%l3 zl+ha~eJY|?*A;-GJhWvkeJRJb0o#GsfE~b2U>C3y;J`8^x<2y@TZr35z+!+>4u9{W zKO55DsOXPJ^w%)@mkUB`0Lw}6RZ8pQU+j|i2CzMM4$yZ}nl zHh?=oqv8WdKnuVLprNM(rBQSSd;uCM7l1~>8*l_@+B_&LU2#KG;|a6|8~_?dH=r>< zb51!!IbsV?UQlLJBA)^d00)6LfkVJsz^?!;Us|rTJSo990-JyhKow94tfh&65jXvS z6d)By01|=D%IOBoqc{$?7J$A^1p+}p0N@2s+E6-CI&k>40GJPy0@HyRKo8&rpf}J9 zkbxM$0?;So5?~rYUsXeZ0l+7)cM-UNv=uJn<`QrWI07669ssmW(3V15NHwqz*bHm| z1_D!naDeiXzGl*A+!?s1&$h1sX}}<0Fz^}5Zva<;4}tfAbHG{JHm>7lC}0IZg=s(s zARP@y0<^+tLD6Cv222O&W9=wl43Gt6135r0kO$-gwCU0(VA^mi0a}bFQC0yA078N1 zY1@bc;(<`01Mo2_-UD6-1_7@CX#nXNI0OC>Fa#i-T7Xvg_rMTfFhJ$s0JM5(wGtnq z%O5GvaEU8Tv|9bTgZ>Ww5by^60sIEgEUX1+7S;gi0Ij3p01ZYj;CY}2;01UpSq)j7 z`p43`+2e$&7Jvgl+iDYlc0t-Yo9Ud)Is!DItpInx0|)^qBmIH406kmU0JO@<)z*M7 z&`#&wX&>ySBs5~pi#wq#2IvS-c9TBY3kD2(l<`zvw=5c*`XL`^WzbxaUL?>SpfXB6 zk`Vyqiy4Rl>ew$<8yTHahel_lWH?Z_{#o}=wo5>J((MX#0TO}EKoVfs_NH{M)9O zHj2mNhbLednm~oXRA4eN1(*a(1d0GEn+41RW&<;T>A*CAMuwuN`kBBSU@kBpcokR# zP;N8oK_U^w&^?hR)S;GR0)57h0H zI@tqIo2dYGLVDG}A%NN+2kJUsOa{nfBl>r6Zzxhn6zxf%3t&V?QIQ@QGs;in{uJ;Y z@Bwfc_z1WLdh3!F>nz$51a$2{0cxiq)Y8c zk{(H_r!wk{ICc0La04J`zX1MD^Zx^G?gBpo-vY$Ff$xCZ!1p>g%I@g=Ctcoy{08{5 zgnNMc`@pXN*&+Osq?bX>;lUk(qp=?-c~D?emH7}6bD-A{dKJDUfdRA9 zhe9tRxP5SYytJUEIche{yX=4N+8_s!4GIko3l5JIHYh*Yvz~0PlF$r>4k-hhv1!Tz zU*_Z<9%dX+YwY*FQ(8rpCt5|JRTvh963`s#A1X=B*}KfDm>ifF`&&V)R1$IiX3v&|h+9{QekkyjX)EV}TV{)sDeHvfezpIJvBPQ#-r2Oa( z&Cev|Gtx8;+yyLNCG7BCegc~M7~PkYPAyqDdr>KM#>jV6=CwqRRgIJ*Et!*E>Sml$ zTa!KSy9>Vz{Q=E8AdpBrIT|aCozTJb#_9`6iRED~qVDaU3u8``f)=I^FcS$Nd`z z_Odn%S=Z~trLf0s?=@DgqOBf+F=i}L*^W5HCk9A-$)tSf`bhg3T9L*vLC0k&jSJ=! zexS#InR@mB8SziWuxpyb)<2W(cQbY^)bo&AiAKe zLKjcTH(ChDH{GcRjJgO&NMFdo|JOrhj~$$MXm_{twewi7!Y@)ZY7)s^-P zU!NQ%J8aCXF1EcXRZmjHh)NTqi^(|+Oi_*)Rg^Lw#%5+FKPFQ0w&4Ey*bYH07kd|!7{ zTD8U~7-vNf`FFIqTjUC8=+6(`I`dIRx5l1_04mWS(l~Vb+Tr^9Qe561f(H7qJvx?J zKW$a)f{odaJJU^xSKSpmA2vd~?XKkdFeg__EA^{ZiPxtggZu`0{T(YULVJq%DeHaE z=}iyivJb{WH=y|VB1yD_F&q+Sdntv!7^nZcdsw;Zi}`zMx9U^ZI05^{oT>v!IdeCu zOJ5x?xICy0bBZv|&aP{JsaM6u2WDLZGi;o$eLtpaj529sZ`9~BYEibgK`==^%4aYU zX`Dp$5I-N(_xtbZ$wbmtIq~+|CY81#yNHq&C^3!%_q%Z0XJSs%6gWgLMM&C4 zZPge1lCXw%zV+|wU?Z~oXybr3Pdq2wp8cGFrW^Wqd#dlo^MX7Sbx+-%^4y5l-hw`8 ztE_E@^t{wgIS=V-oH?FxsehX<#&)q+hq675hoj=*kFC@=tZd&edDAAZmN!%dHMBr~ zKqWK=Pv|+y`~Wsm>>srMUI3fP z#BYO@_;A?Pj@{yX@ZZ)?jk|uiub%&AeEA7hb_SuPq)ZFJM(&{02H_F!5u$t_ic*Wx z6Q!bmh!Pr%)nOb@b{+Cl>CAzSee?x})sYaQJ#|J63`sqF!Nx~q^d5)|7J7y#Q>m?S zlzP?VK-;fQ+(#;7?L^Y}8;7lD_O{FJG@~q4tx?_{?tGnhDYbSuXRqidadtoTSXQc96_sB&?C_Ygh~4muDd!wl@#bx!xwem z70)o%OLrn%yb!Kz2xH~O*y>GZRbI?ufNqPHxyg}t;IF=!XeRKAxhDpePC~B{ zcHm!nblj47CT787OJ@_5C1h!6qNY*)L&=G?`G@GGh!!m_&4g|#;@OsrbMsrPn;kg* zk@twleP|Y3jf3=CQ~S=d|7v^QlM3Shhb_|C^%%bINEn*+@2@PX7_SttMzW0_fu8VClwkFpueBsS{bcu=!AFmo1Ivw-`PNIkDVD6@d2Cg-0!D!rBwPO z3$BKp#zt8@!;~MJGAAWDmi4T!{V#2lHL)yy|D9O2sNVjdL>6bOygryk?qA!DwRGD5 z?O=A%TdB1$&;8yr*m$Ol>BgQ@q(r=09w}xG95oXmK_S{rkoIjxIX;8=?XR54*0BEp Dh5BE0 delta 19282 zcmeHvd3a7&_x9OG5;+JNkVJwc2uUO|NS;J^5@J5a4q_&FWDuEyC=x>qHFx6(B4$a9 zk(#Pns-?8vq9`pzRn1gsRlWG#>kN_l^nLq%|NO4+x_YkO*16YSd+ojUUVERDlkWU7 z)n@-3n*{+rO|DlREd?FffAQ1n;&pesqK$`62A1SLl+J$#D7~9Y- zUDSxG5o!uT-uToJDmk-op(*zZ+*X6~nJ5UZkT)S~LyoWv%Z^9c=uE9*T1M*Vw5&{_ zot0)kD%p~qfuhumIMtw|wWgn=%T|yz;HSQg=FbtbI=CP7wIDqp!E^I!;D#C;o)DKj z3a$+P91T%#e}N=NH}rW+>ICX3TB>5kOVb7%@!O&-nuw)5ds7R66LsA2Y@hPbp7C{)9 z>2DdAl@WKnjy8lznW-rw6O%0$z^UVwahBnf1$__}@fb+7k=F{68cd7J$h7#6&I|yj z_KIAzK-1!~aufVVS#p}_hOW9n4M_AMPlTkNHmD~EsFOD`F+MxPk|{i{t2OildWyV< zTZKc_-`Ir2;R)zaVkWu(q?$@>KN)S`JRxz6C1ZYlt)VlJG`C5R9C^>aRTqgQu^3qx} zT5)QmEdgstva4tn{%Aa(z#e{is+DVQzb1l!X!5#1QXkBaWHZ8B>)YtWl*F{S%*;^e zDb#vRwMbGS$#-*IZ`(|({}g%}Y9nh6X{_IJAFZCgese3bHD4dH%&ZJc+~{$Flb_a+ zs*p4Y!&+(^!!utk*!_^yp&Znsa-)NTbsm?QlQJChvI(G$j)$bV-{P;yHUT7akxgiC zcowp9WO7`VMG%G~NByy;*TIk)$j(k2fx3ca94s?4g(ZPnHs(W8c4tG<$i+iaL;ZBw z4U$G88j?DgX-QH2wA8r`Wc5%KSS~;{vbrJkQJAeooUG&VM$Xf{;Zdu zYQbCCm~&5oQvaIi{<2fj64TIscbz+sf0SR-t7XKE^&gfxB4=1m7E)divU1Wa{)w4F z|8UK&7bFePXzYIeBZdj-WQ41Igw~zUA!%dX18Gk?Z2@j5;ILL&prazS)JTZSOdXpd z2wlNx0ER+RN8(epIAX!6-_;i;*k5-~Dk;xck5q5{k;b?64lseySqp9G1> z^3otFFu!(!-~qWC(g|`iB-QH@14%pWv$k3XTy%q~?KOus;N*B6I5`>thm-Nj%Jjl@`#e<=n8e>~|iBlB2%x^kH+10QTgfNtd=)4twP}`4RwzrkKL5l<+ z`(Tqa6AU|EUKRep%OrgO764|edhTVdSytugXlIGeY>2T_{ATSaDF`nI7&G{K;9!y_ zgCRrms_`->6Fb05>O@I4RRzHeoed9iF-h&gD(uBYRe4ffvvgQjifS`;@tV*c6-25a z_P6D}&Sq&Dl+J`CGP8DW;=PJOO*5kMHC!@@702W7yYX7 zTPQB$KCV&hF;8@j62q(WQdhH-fV?1Ek(areq-9`O4H%Ym|8QFnYC-Li>teEwC&ov+L`rLMr!|!BW|IB@>jSGQ>Jaq8@}VwaqA;xUbcQ%F4d=nI zF3?^0lbT>9YtxMasFEM6cSs)YEJ|77H_) z-*t;*ySa~7lysLkjI7DIwLe}_)Gmmrb@(kWv$Pfp>`Qso5o5S52-#{OhTyr1J(UI! zZH}tTZ#6QDrFFS)W3v>84UT$;xkC;Yf%O2hQits>7w~?>?B8z!+r7)4hVBXK#Yhx>I8l*Shm0 zAG353%19`ytINm*k8^T{#f}OEVANeTC#7p(omEDzJ2lX{1ZUVXHi6N4Rkr}zviz{5 z8uBDRvy|3Q5L%)LdkfNXoz9T-sCEU6Vn#~%nM7v~p48kd_4d%(QNyz?1?#G=gh#le zHngzAJu6L(ln+LYFkV*2B<%&GDb*6=AsE%ewt>8B>%~i5%+gq|iUoo7TMlJ_S!&uy z8z8OTSTHRnig({jhGBjIM$>~dMOmB1T3-;omr0!1nEM8rrJYdfvALMoQ(h7nWu4kY z5Z>ZU(I0!~w1$8A@`)VOd z>X63h3@ZUMHQAT@hML90zB~z{fgdjoHA@5ij8RBOzgPHi-!QXu3`$BNrY4k4bFFm@ z6rzX*qt?N&k>oY!z9zHuL4`61!}bR+F-3{Z{rN4ESv=&=eZ$S{1y2l*5<3O((r~jl zHGtoO*c-roBh2hBPmG9?8n@6|(Vk|bzyi^VEww2wZ^3Np&6{tRY#kYd_tw^)DIGFpk#)AxHT2vS* z$tJ|ud1#Hd2cxM~>q!$T$`Gn_7)+~|4rYUFCQB_9&0rLRw*FJVDEZWMlQx6V?5o?V z^b?qtb@Whi57pMcz=Il_#2%sCH_9yKL5V@uoQa!5c`1|^prjTMw5v(15ypL^%~E@K z($*1ma1xl_K_8R!5g6K{W_`kKD~jlCBG_c~50QvzCSKasENz2Q3kY42u7lAwg(*U= zxQ6qjc4lh}%FVRDifhC9t#)Sdaya*mF^kR-JSoO3^@^xyAE|o*te4h4W+?{Ur1hkx znK-)@Pik)#PqgBt?ak77Y;W{1LK*5E0Hc0mC{gbbm^P8xkg`JCf`-sMeY!e;Wa6y%Zq6381U8 zB>iS1|8S#Tuai|#QVx*AT>y>iK9aoft%m&lw>;DkK81#^%96TvSk?YnlE>q^o+NeU zUjXUP0CZKBRDM>~zE)~ENCq?m7j#3C)Pe7Hc^Q(f%j&3XP%KS`?a8(;JlE$AJ zsHQ9alO&Vsx*f@e;J%Qg^3(NyM^bw&U~dPR+gh(kl5X4RoFrvSJDvZ(NU9p6*Z&Kd z`zHfRqON*{*U1_v?}KuRpucWMlIDD%&PmekAf1z>+rjvU0vfK%1V}5I|70q~MY0;? z7@d=(+p#)-our0ybi47o9ZAZaiI7yTE-_sapRDVrlH`N>I`ibdwz*U?0~)$sC#h(r zUj8~sLox^DBp2v*B+2i4IjCJ_G@DQgy2uarNQ;|LH^gd9CMaMwfSu`_3xY z6IWd0Uu|8AJ!xa-Wm$fK2^vf!_Z2IE*y*_mgUOBPw+N`NVrrONwllsMQ z2dkFd-FHlQYu@_X_dC4NoV(UOmF4w#Ugu|S>Er6ucrB4{A zEi(u1Ix?1zi?`zwN6O5J9|dccV8{LAWmbph#K-b;U>CuhxlckYpP6XK=O)O^m7fO- zPqO1}5@qJbXC=n+8(??A>hp-CSiW?W9WP9hSwnsktaGv*?>2qJpF7_$HrDp^Pd)3b(watQ~$*yy;HK!F6i{8(-*r6S+8m3i|Sb->N*yf znpDe3ZMS8M@BKSd20iFg;C^@U*0#KGvnq^{~GGrFYb22baU>Ctm+$R&`l!bB1lvxBn4;G${amtceB%hUqaRR#w z)`mx9W1PldoU&yW#czUj9*c1rBeS-=U<}3y>={@L?=m))7mu^!TgJ+)1AhY6HwW>J zlUXNTG7j;LM|?Rl>%#lxAU?4DU^17+BffVK-*}mI=X=3iCLq3dWY&`>zJvI{j)V2) zt`iX7M8r2iW^eMNV9h2WzKJq>o99eKd|(&BV!6*G#FvZsCdsTHKMxk3hxl@3Hh|B{ zMSNg)!3Ob&Jj6E{@#V>E2)_x|c?#m2EVDRXFd6ZIJp&ugyG%iRQxV@3nOXP~u)fm} z-&C2!^OC8EFCXzulUX9~Hx2QD?FSphrF_IU9r5MMY&72s<}w5EO_y0JPn?eUz>b5Z zbJrP&ZzkfKA+t<=6s*}S#5YrB**s?^;sd(~HkSL$LVWKczF9KM;pf4^XWQ|&ky-EX zpmz};*y49(Hj!TeTRO*%cbF}+T)uEN;+t#7e+8S&+s;9JVC(0|Y$|^MRy+@0=E^Le zubzwe=G$@Wc`}>9d(T6B3+(t#uvwhVM|@zG`7)c$%fJ#A+VMIIWHy(_EkJzl+40Z7 z=5vRIhz~4#q0AQYgJ9#h9dGiU%s5Yf5AiLs<7dDYb5D-=!1B4w6n+wH=3+Y@x=3aP zeDWg1x5SQL16$6679&2e#fxQD$ghAcRS@42nHBMcOAy~u#0R#Tw^a}y*m^}~Yxx7P z;sV6CRA%e>>ZOQp8R9FD*+$;G0P!tHd|)Mg!4{RR~T7~$)7O#@oetrdP=^DhhT4o>fg{u+YTEqu-khfif_`ue$k=Y^s z0IYZ&;#(`T&-m)Kh;KdOTPL$4y!Sf9w*m2i9p!92;sdj+m)RG*3@l+I;@cpz<2-Hy z;wwgcU|(^Ejff8{d!x)w@`GUGN)TVM%)aL7#fYyI@qwM;o+XG6EWbo%-|&-QGdCf= zQkk9SlS>ibX2b{f9S_=s_`nu#lG#Om1#IaS#J5>ym-xcXh;J+61G~c8Zb5ut>$k}4 zDt`c0ybbYfmDx4EdMo1Fj`+68>^kqg4e^yBKCqjdZAW}ymhCdT&C9?Nb|Aho8Nb7d zD?@zch!5;Oci4gWz_NG9>;XRrHtv1IS1z-MJiQ$8?L>TFzjDv_5g%Co`!fEohLd13 zcOkx=a`z{dpAg@5KGMi3Y4x@u*PW}zHvV=cyZz0i&Sqic)V00t@b!+TC#*Vn_2l<8 z502V3>)x!Ki9Y$O4)*hF>|FGsee2)OOv=8;{dc=`o7U#$__k}zc6D2OOlJjKx7&Bw z-fDX91|JNcH)fbs^AR_H%&vK6X3VjDjeehg&BkF-gGogmm!|bzedgTKLZ0mTd{?Ds z@>70(Cx&}BHosjmd&Xz&!f@}w<_GqIN9@LM@5Sb~TNWAP%l7mUMaF;G(}z{zUG~N@ zE53TKV%-b=s+F@(JBd4vtYQZEs)L>J>jNw448GapOHAIS@`(rMGwX4l_*TUyAAG15 z#wVu^qw%?2{_N0I(RwgGv)jSdK1QYG>pov#UEcX$!9j4wtL+id5U!!teA{^$lkbscpb{SN6SK$nwVw;}F_0pz!iYKL!39w4^?s!&(2?1}q3y3SeG zEubO7^|PdO71@;T6fJ!`D*>W$Paopw<6Hr-3|J1V04VuZ0!08N-4mE+ctn%nOKE6=lbEcIp7a81}HKQfP$b8b~F;R z(BN!S~t1HJ(E0UrYUfscTXfu{idCV-YR zEniCZVgc{#CAirLtOM2ptAV$Hz5r$VAZ3dcYnUtJwj0nLXa}?fFzEueDEfV_`Wr$o zNJ=Y83rfQ!=-Yf?91c6X4M(iH+G2JAdw^146EGOa1404HbNYZx-_xh#elX+^U?>m=3G`!Ice-vF!uFeU0YXxj2V$Nd^$01yJuCesd}jfFN66L1cC+CX*#aljB@C_r`w zPJo{Rh6AvPR5u7(==5M9LJ4I}`R3Go1pLvMgGh%%`$&gZY>D>O2P7p?D?zKN4;Rz6X>CXxCIyj z(2^SnQ2O=<`T>1_w*U{|P2dfHwwv6(_$L+^1dyQ{V5H_y+{Xd5+;V_bKoKwsC!fm0IEpFw5BNV`ti~Sb$z7!}1)&gsQjlc$A zJ+KZa0lotE0tbN|z)j#IU_WpJ_zAcMd;xp{>;Vn|KLDQt9{{_6_W>IEBfw!G_fz~+ z4wM1gfo;H6U<52)NIwXqYRI#U2@19rLU z2Kq4wIrt2y+E&yKxS7`oE z;pQZ88K8pG02Pw{GEiCfJ@_SE_Z{Rnz_-A8;2dxkI0KOWB0x4&pX!k$JCamRy3;iO zq@V_W1g-+q+v~t>;34oE@CdlC^CplFfS-Y10OE%3SN;C6E`NvoQ^J8)&NuTKD4qlV z2A%g-OV^HDNOmO z`16h#hfx}edV!d6CEWr2c&^Nba5qj{rf;|?jA`ncp!Qd_^RQM9I53wmKB zzg*bjwfGP$5go->Tus^P#DZA|<%$!=^0xBS34M5@h7wqtx#(JV;}m6K%B;Iz|2FJC zs<%Y-Fudc~DU)CrW*pQsAC1~pIPzI_)gqWC*Eq_#<%3HJ?8sNsU)FuoPWcjb-HpSa zM-D36QyVvw6xM26g_Gw(M@3angpZ;swE(N)oF;^*W@5&1aeSsF!VLK7_QB;aa4D6YS8=1 z_lB?3M+#oQRQ5X~D&wf`$-bp0x;!enCbCJiep}+5M@zR?N9E6BW{hyf(EgWVJu_dK zAEWmFo%)sO`#-wU+ew*FuVQwUt@T(vaf6d`tRC|IlJcw`qNfAIHL#yPvGdwlCwkS- zA{(M>^yvShXRi*59@Z;8Vi%M$Pv)w$bZ7P0b)}~}R+=W$7fQ#xduCpEbYX zIMM^R-Hmg!A09nzxe^~31xqXi>Q7RAWvB;wo>N~L*bp%qCwJw=(=Qxn zXFh`^Z5^Ug4s0uQCD zC&JY0D@#0)4O(VYv~KcJeuB;4XdPa9c(HEmzOvj439KKi&f7I(^_~u?GdHNqR~?DM z2FeL9<`QZg$zBt3wnx$WCnntjGi4mw{vxttr1H-Co+#00=Dt$D5esoQPFf$R*TiPu zkfE2=u?V6EXJ`{8xe-RoIJ=#1KQK9Y8e5@`0p56mgf2~#Rj>#%PJ5TuIQ#rX%$b&| zh1x;m2z;+e$sb-QE8mO~lQxM+(0h%TZ{x1s>QChrC&PdKbYj|yZ@&DRe9#j-P^i~b zY2BE)xEW`|V|$M8BpY&a{USx})amIFmefI*kZ?_ZRHNi*pJM_uQTC1!@whx**&|FliH^KD$ z0*ap#@`9>8xb54qww1`fhlbwm{`M2V8VLpCd4KV^c=;rt9?>I+r2A{02oc&lPq~j` z?~Qca@2j+jbTdx1Pd(em`)YQ32X*K|DE?>4LT@}YtNJOMz2Vx)PdSVV?#8kAhT;!{ zd*8c9uS7Ip=%zj!;s}2wpeZ_GoNE5~Q1O7zcYOQ3YN^isB!9)j1fTQ#l?kvE3;dNO zO<8cLaRPpF_n!M4+puEPpoNY13F8obx39~d9{KWJ@`XtXMEK*CXH8kW*d}22$YyLB z6Hm2J?)ac}?a($(mw&o;Qq=e7dh6+J!jFk96c1lK7=Bj#{4q(!DfsRMADOOJo3mA9 z`Z5q~0+pfuFubpP><2^Re0!fO_gZf07_eAmv_D}b;RL+$Aw0SpC*zX_wCKP8Ypcd& z5u#eO3{-xGMOZY(iJmyiCp5RdcIYuO6{`hr2lzCF63UfnJ#AB3Pc7)LmZ)|61uAAg z)HTlgk2T-797tXeKo+zL@Oc3L*pt@}{dSvk%34v0`YI*l2P$(=*Uk7F0vBW2Ubxu% zj}npLO`9I`*sUlyW7zaT*iU0SDe;8lOwDpm`d7!s{ckDzxaOFLJ)3^Lb5u@KAkahbTHF||Bs{)a4{lk?H z0@0855z0N{3nG+&mXwDP%65_)Bb3%bXj}iw19{%RXUyzk)6YiDI(5oFk5JNJAvSNN z)CjKRA*_`WOsaHJ#W2xh z4m18b!aI-7M&xcv>r1(&<*D)a6RvN%_GZeC0{r|M6cC~2xHdC&8iXJvqqUz4GptAb zbR&Af?^HdE_5k6A5)_ID>oY}$a5w(uLC>|VYhQ3b1!umnq06P6k{61kH~yT0U#EGC z+~u$b2wi^*&|Khs^JExv4Kx1C!f#z#6}LMcIp?J(;}0>6`u5?u+0WwVzbxqzqqv8u zZ8i;eZukD z^Cy+tNPL~Dg+SZ}w%BRmp52H$(h60s zm{~*RQZ5VLeWMMFvZmXb*6ODhwP^RC80PGvG>c)OyE6x{GhWKVLCm9m^lLf=?^^Ga Yz&Pf;J7E$V%amRdSk>Kc=dnWeKNRR7_y7O^ diff --git a/screenpipe-js/cli/dist/index.js b/screenpipe-js/cli/dist/index.js index e7c37ed30..c7721e60f 100755 --- a/screenpipe-js/cli/dist/index.js +++ b/screenpipe-js/cli/dist/index.js @@ -59616,8 +59616,8 @@ var registry_default = { dependencies: [ "@screenpipe/browser" ], - devDependencies: [], - registryDependencies: [] + registryDependencies: [], + devDependencies: [] } }; @@ -66471,8 +66471,11 @@ var registerComponentCommand = new Command().name("register").description("regis { type: "input", name: "src", - message: "where should we download the component from?", - validate: (input) => input.startsWith("https://api.github.com/repos/") ? true : "URL must follow the pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}" + message: "where should we download the component from? (URL pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path})", + validate: (input) => input.startsWith("https://api.github.com/repos/") ? true : `URL must follow the pattern: https://api.github.com/repos/{owner}/{repo}/contents/{path}. + + +visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/commands/components/README.md for more details.` } ]); opts.src = src; From 295a29affb296bba7c9e1eb154ae1c5dabecc9f9 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:08:29 -0600 Subject: [PATCH 19/35] feat(cli): make all logging lowercase by default --- .../commands/components/commands/add/utils/logger.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/screenpipe-js/cli/src/commands/components/commands/add/utils/logger.ts b/screenpipe-js/cli/src/commands/components/commands/add/utils/logger.ts index 335b1a6c1..c840c18b6 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/utils/logger.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/utils/logger.ts @@ -10,19 +10,19 @@ export const highlighter = { export const logger = { error(...args: unknown[]) { - console.log(highlighter.error(args.join(" "))) + console.log(highlighter.error(args.join(" ").toLowerCase())) }, warn(...args: unknown[]) { - console.log(highlighter.warn(args.join(" "))) + console.log(highlighter.warn(args.join(" ").toLowerCase())) }, info(...args: unknown[]) { - console.log(highlighter.info(args.join(" "))) + console.log(highlighter.info(args.join(" ").toLowerCase())) }, success(...args: unknown[]) { - console.log(highlighter.success(args.join(" "))) + console.log(highlighter.success(args.join(" ").toLowerCase())) }, log(...args: unknown[]) { - console.log(args.join(" ")) + console.log(args.join(" ").toLowerCase()) }, break() { console.log("") From 1b770415e5e19bd17b197fcbb1db22b85543c8de Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:11:10 -0600 Subject: [PATCH 20/35] feat(cli): implement logger --- screenpipe-js/cli/src/commands/register.ts | 75 ++++++++-------------- 1 file changed, 27 insertions(+), 48 deletions(-) diff --git a/screenpipe-js/cli/src/commands/register.ts b/screenpipe-js/cli/src/commands/register.ts index 9f87c7655..b9b43b9d2 100644 --- a/screenpipe-js/cli/src/commands/register.ts +++ b/screenpipe-js/cli/src/commands/register.ts @@ -3,37 +3,28 @@ import { Credentials } from "../utils/credentials"; import { API_BASE_URL } from "../constants"; import { colors, symbols } from "../utils/colors"; import { Command } from "commander"; +import { logger } from "./components/commands/add/utils/logger"; +import { handleError } from "./components/commands/add/utils/handle-error"; export const registerCommand = new Command() .name('register') - .description('Register a new pipe') - .requiredOption('--name ', 'Name of the pipe') - .option('--paid', 'Set this flag to create a paid pipe') - .option('--price ', 'Price in USD (required for paid pipes)', parseFloat) - .option('--source ', 'Source code URL (e.g., GitHub repository)') + .description('register a new pipe') + .requiredOption('--name ', 'name of the pipe') + .option('--paid', 'set this flag to create a paid pipe') + .option('--price ', 'price in usd (required for paid pipes)', parseFloat) + .option('--source ', 'source code url (e.g., github repository)') .action(async (opts) => { if (opts.paid && opts.price == null) { - console.error('Error: Price is required for paid pipes, i.e., --price '); - process.exit(1); + handleError('error: price is required for paid pipes, i.e., --price '); } if (opts.paid && opts.price <= 0) { - console.error('Error: Price must be positive for paid pipes'); - process.exit(1); + handleError('error: price must be positive for paid pipes'); } try { const apiKey = Credentials.getApiKey(); if (!apiKey) { - console.error( - colors.error( - `${ - symbols.error - } Not logged in. Please login first using ${colors.highlight( - "screenpipe login" - )}` - ) - ); - process.exit(1); + handleError(symbols.error + " not logged in. please login first using" + colors.highlight("screenpipe login")) } let packageJson: { @@ -43,12 +34,9 @@ export const registerCommand = new Command() try { packageJson = JSON.parse(fs.readFileSync("package.json", "utf-8")); } catch (error) { - console.error( - colors.error( - `${symbols.error} Failed to read package.json. Make sure you're in the correct directory.` - ) - ); - process.exit(1); + handleError( + `${symbols.error} failed to read package.json. make sure you're in the correct directory.` + ) } const isPaid = opts.paid || false; @@ -62,10 +50,8 @@ export const registerCommand = new Command() description = readmeContent; } } catch (error) { - console.log( - colors.dim( - `${symbols.arrow} No README.md found, required for description` - ) + logger.warn( + `${symbols.arrow} no README.md found, required for description` ); } @@ -86,43 +72,36 @@ export const registerCommand = new Command() if (!response.ok) { const errorData = await response.json(); - throw new Error(errorData.error || "Failed to create plugin"); + handleError(errorData.error || "failed to create plugin"); } const data = await response.json(); - console.log( - colors.success( - `\n${symbols.success} Successfully created pipe: ${colors.highlight( - opts.name - )}` - ) + logger.success( + `\n${symbols.success} successfully created pipe: ${colors.highlight( + opts.name + )}` ); // Display additional info - console.log(colors.info(`\n${symbols.info} Plugin Details:`)); - console.log(colors.listItem(`${colors.label("Name")} ${opts.name}`)); + logger.info(`\n${symbols.info} plugin details:`); + console.log(colors.listItem(`${colors.label("name")} ${opts.name}`)); console.log( colors.listItem( - `${colors.label("Type")} ${isPaid ? `Paid ($${price})` : "Free"}` + `${colors.label("type")} ${isPaid ? `paid ($${price})` : "free"}` ) ); if (opts.source) { console.log( - colors.listItem(`${colors.label("Source")} ${opts.source}`) + colors.listItem(`${colors.label("source")} ${opts.source}`) ); } } catch (error) { if (error instanceof Error) { - console.error( - colors.error(`\n${symbols.error} Creating failed: ${error.message}`) - ); + handleError(`\n${symbols.error} creating failed: ${error.message}`) } else { - console.error( - colors.error( - `\n${symbols.error} Creating failed with unexpected error` - ) + handleError( + `\n${symbols.error} creating failed with unexpected error` ); } - process.exit(1); } }) From 685d53603950fc4c24f52fe819bbe8d8f2dfc4d9 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:18:05 -0600 Subject: [PATCH 21/35] feat(cli): implement logger publish command --- screenpipe-js/cli/src/commands/publish.ts | 160 +++++++++------------- 1 file changed, 66 insertions(+), 94 deletions(-) diff --git a/screenpipe-js/cli/src/commands/publish.ts b/screenpipe-js/cli/src/commands/publish.ts index 31a3e7ca8..bd832b593 100644 --- a/screenpipe-js/cli/src/commands/publish.ts +++ b/screenpipe-js/cli/src/commands/publish.ts @@ -7,6 +7,8 @@ import crypto from "crypto"; import ignore from "ignore"; import { colors, symbols } from "../utils/colors"; import { Command } from "commander"; +import { logger } from "./components/commands/add/utils/logger"; +import { handleError } from "./components/commands/add/utils/handle-error"; interface ProjectFiles { required: string[]; @@ -70,62 +72,53 @@ function archiveStandardProject( export const publishCommand = new Command() .name('publish') - .description('Publish or update a pipe to the store') - .requiredOption('--name ', 'Name of the pipe') - .option('--verbose', 'Enable verbose logging', false) + .description('publish or update a pipe to the store') + .requiredOption('--name ', 'name of the pipe') + .option('--verbose', 'enable verbose logging', false) .action(async (opts) => { try { if (opts.verbose) { - console.log(colors.dim(`${symbols.arrow} starting publish command...`)); + logger.info(`${symbols.arrow} starting publish command...`); } const apiKey = Credentials.getApiKey(); if (!apiKey) { - console.error( - colors.error( - `${ - symbols.error - } Not logged in. Please login first using ${colors.highlight( - "screenpipe login" - )}` - ) - ); - process.exit(1); + handleError( + `${ + symbols.error + } not logged in. please login first using ${colors.highlight( + "screenpipe login" + )}` + ) } if (opts.verbose) { - console.log(colors.dim(`${symbols.arrow} reading package.json...`)); + logger.info(`${symbols.arrow} reading package.json...`); } // Read package.json - let packageJson: { name: string; version: string }; + let packageJson: { name: string; version: string } | undefined try { packageJson = JSON.parse(fs.readFileSync("package.json", "utf-8")); } catch (error) { - console.error( - colors.error( - `${symbols.error} Failed to read package.json. Make sure you're in the correct directory.` - ) - ); - process.exit(1); + handleError( + `${symbols.error} failed to read package.json. make sure you're in the correct directory.` + ) } - if (!packageJson.name || !packageJson.version) { - console.error( - colors.error( - `${symbols.error} Package name and version are required in package.json` - ) + if (!packageJson || !packageJson.name || !packageJson.version) { + handleError( + `${symbols.error} package name and version are required in package.json` ); - process.exit(1); + // handleError terminates process but ts doesnt infer that. This return will never be executed, its ts friendly. + return } - console.log( - colors.info( - `\n${symbols.info} Publishing ${colors.highlight( - packageJson.name - )} v${packageJson.version}...` - ) - ); - console.log(colors.dim(`${symbols.arrow} Creating package archive...`)); + logger.info( + `\n${symbols.info} publishing ${colors.highlight( + packageJson.name + )} v${packageJson.version}...` + ) + logger.info(colors.dim(`${symbols.arrow} creating package archive...`)); // Create temporary zip file const zipPath = path.join( @@ -163,14 +156,12 @@ export const publishCommand = new Command() }); if (opts.verbose) { - console.log( - colors.dim( - `${symbols.arrow} detected project type: ${ - isNextProject ? "nextjs" : "standard" - }` - ) + logger.info( + `${symbols.arrow} detected project type: ${ + isNextProject ? "nextjs" : "standard" + }` ); - console.log( + logger.info( colors.dim(`${symbols.arrow} starting archive creation...`) ); } @@ -183,17 +174,14 @@ export const publishCommand = new Command() const fileSize = fs.statSync(zipPath).size; if (fileSize > MAX_FILE_SIZE) { - console.error( - colors.error( - `${symbols.error} Package size (${(fileSize / 1024 / 1024).toFixed( - 2 - )}MB) exceeds maximum allowed size (${ - MAX_FILE_SIZE / 1024 / 1024 - }MB)` - ) - ); + handleError( + `${symbols.error} package size (${(fileSize / 1024 / 1024).toFixed( + 2 + )}MB) exceeds maximum allowed size (${ + MAX_FILE_SIZE / 1024 / 1024 + }MB)` + ) fs.unlinkSync(zipPath); // Clean up the zip file - process.exit(1); } let description = null; @@ -203,25 +191,22 @@ export const publishCommand = new Command() description = readmeContent; } } catch (error) { - console.log( - colors.dim( - `${symbols.arrow} No README.md found, required for description` - ) - ); + logger.warn( + `${symbols.arrow} no README.md found, required for description` + ) } if (!description) { - console.error(colors.error(`${symbols.error} Description is required`)); - process.exit(1); + handleError(`${symbols.error} description is required`) } if (opts.verbose) { - console.log(colors.dim(`${symbols.arrow} calculating file hash...`)); + logger.info(`${symbols.arrow} calculating file hash...`) } // Replace the upload section with this: try { // First get the signed URL - console.log(colors.dim(`${symbols.arrow} Getting upload URL...`)); + logger.info(`${symbols.arrow} getting upload URL...`) const urlResponse = await fetch(`${API_BASE_URL}/api/plugins/publish`, { method: "POST", @@ -240,14 +225,14 @@ export const publishCommand = new Command() if (!urlResponse.ok) { throw new Error( - `Failed to get upload URL: ${await urlResponse.text()}` + `failed to get upload URL: ${await urlResponse.text()}` ); } const { uploadUrl, path } = await urlResponse.json(); // Upload directly to Supabase - console.log(colors.dim(`${symbols.arrow} Uploading to storage...`)); + logger.info(`${symbols.arrow} uploading to storage...`); const uploadResponse = await fetch(uploadUrl, { method: "PUT", headers: { @@ -258,11 +243,11 @@ export const publishCommand = new Command() if (!uploadResponse.ok) { const text = await uploadResponse.text(); - throw new Error(`Failed to upload file to storage: ${text}`); + throw new Error(`failed to upload file to storage: ${text}`); } // Notify server that upload is complete - console.log(colors.dim(`${symbols.arrow} Finalizing upload...`)); + logger.info(`${symbols.arrow} finalizing upload...`); const finalizeResponse = await fetch( `${API_BASE_URL}/api/plugins/publish/finalize`, { @@ -284,70 +269,57 @@ export const publishCommand = new Command() if (!finalizeResponse.ok) { const text = await finalizeResponse.text(); - throw new Error(`Failed to finalize upload: ${text}`); + throw new Error(`failed to finalize upload: ${text}`); } const data = await finalizeResponse.json(); // Success messages + logger.success(`\n${symbols.success} successfully published plugin!`) console.log( - colors.success(`\n${symbols.success} Successfully published plugin!`) - ); - console.log( - colors.listItem(`${colors.label("Name")} ${packageJson.name}`) + colors.listItem(`${colors.label("name")} ${packageJson.name}`) ); console.log( - colors.listItem(`${colors.label("Version")} ${packageJson.version}`) + colors.listItem(`${colors.label("version")} ${packageJson.version}`) ); console.log( colors.listItem( - `${colors.label("Size")} ${(fileSize / 1024).toFixed(2)} KB` + `${colors.label("size")} ${(fileSize / 1024).toFixed(2)} KB` ) ); if (data.message) { - console.log(colors.info(`\n${symbols.info} ${data.message}`)); + logger.info(`\n${symbols.info} ${data.message}`); } // Cleanup zip file fs.unlinkSync(zipPath); if (opts.verbose) { - console.log( - colors.dim(`${symbols.arrow} cleaned up temporary zip file`) - ); + logger.log(`${symbols.arrow} cleaned up temporary zip file`) } } catch (error) { // Cleanup zip file even if upload failed if (fs.existsSync(zipPath)) { fs.unlinkSync(zipPath); if (opts.verbose) { - console.log( - colors.dim(`${symbols.arrow} cleaned up temporary zip file`) - ); + logger.log(`${symbols.arrow} cleaned up temporary zip file`) } } if (error instanceof Error) { - console.error( - colors.error( - `\n${symbols.error} Publishing failed: ${error.message}` - ) - ); + handleError( + `\n${symbols.error} publishing failed: ${error.message}` + ); } process.exit(1); } } catch (error) { if (error instanceof Error) { - console.error( - colors.error(`\n${symbols.error} Publishing failed: ${error.message}`) - ); + handleError(`\n${symbols.error} publishing failed: ${error.message}`) } else { - console.error( - colors.error( - `\n${symbols.error} Publishing failed with unexpected error` - ) - ); + handleError( + `\n${symbols.error} publishing failed with unexpected error` + ) } - process.exit(1); } }) From 1707f59e4f8c8f8d49c7002be481b304066ef5be Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:18:43 -0600 Subject: [PATCH 22/35] feat(cli): implement logger logout --- screenpipe-js/cli/src/commands/logout.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/screenpipe-js/cli/src/commands/logout.ts b/screenpipe-js/cli/src/commands/logout.ts index e307e3712..f9e8ba528 100644 --- a/screenpipe-js/cli/src/commands/logout.ts +++ b/screenpipe-js/cli/src/commands/logout.ts @@ -1,12 +1,13 @@ import { Credentials } from "../utils/credentials"; import { colors, symbols } from "../utils/colors"; import { Command } from "commander"; +import { logger } from "./components/commands/add/utils/logger"; export const logoutCommand = new Command() .name("logout") .description("end current session") .action(async () => { Credentials.clearCredentials(); - console.log(colors.success(`\n${symbols.success} Successfully logged out`)); - console.log(colors.info(`${symbols.info} Thanks for using ScreenPipe! Come back soon.`)); + logger.success(`\n${symbols.success} successfully logged out`); + logger.info(`${symbols.info} thanks for using screenpipe! come back soon.`); }) \ No newline at end of file From fd135c9c6d9049b283da807139b180aee78fe3da Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:19:55 -0600 Subject: [PATCH 23/35] feat(cli): implement logger in login command --- screenpipe-js/cli/src/commands/login.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/screenpipe-js/cli/src/commands/login.ts b/screenpipe-js/cli/src/commands/login.ts index 7f301e797..56722d4d5 100644 --- a/screenpipe-js/cli/src/commands/login.ts +++ b/screenpipe-js/cli/src/commands/login.ts @@ -2,14 +2,16 @@ import { API_BASE_URL } from "../constants"; import { Credentials } from "../utils/credentials"; import { colors, symbols } from "../utils/colors"; import { Command } from "commander"; +import { logger } from "./components/commands/add/utils/logger"; +import { handleError } from "./components/commands/add/utils/handle-error"; export const loginCommand = new Command() .name('login') - .description('Login with an API key') + .description('login with an API key') .requiredOption('--apiKey ', 'API key to login with') .action(async (opts) => { try { - console.log(colors.info(`\n${symbols.info} Validating API key...`)); + logger.info(`\n${symbols.info} validating API key...`); const response = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { method: "GET", @@ -33,13 +35,13 @@ export const loginCommand = new Command() { type: 'input', name: 'developerName', - message: 'Enter your developer name:', + message: 'enter your developer name:', validate: (input: string) => { if (input.length < 2) { - return 'Developer name must be at least 2 characters'; + return 'developer name must be at least 2 characters'; } if (input.length > 50) { - return 'Developer name must be less than 50 characters'; + return 'developer name must be less than 50 characters'; } return true; } @@ -57,23 +59,23 @@ export const loginCommand = new Command() if (!updateResponse.ok) { const error = await updateResponse.json(); - throw new Error(`Failed to set developer name: ${error.error}`); + throw new Error(`failed to set developer name: ${error.error}`); } const updateData = await updateResponse.json(); data.data.developer_name = updateData.data.developer_name; } - console.log(colors.success(`\n${symbols.success} Successfully logged in!`)); - console.log(colors.listItem(`${colors.label('Developer ID')} ${data.data.developer_id}`)); - console.log(colors.listItem(`${colors.label('Developer Name')} ${data.data.developer_name}`)); + logger.info(`\n${symbols.success} successfully logged in!`); + console.log(colors.listItem(`${colors.label('developer id')} ${data.data.developer_id}`)); + console.log(colors.listItem(`${colors.label('developer name')} ${data.data.developer_name}`)); Credentials.setApiKey(opts.apiKey, data.data.developer_id); } catch (error) { if (error instanceof Error) { - console.error(colors.error(`\n${symbols.error} Login failed: ${error.message}`)); + handleError(`\n${symbols.error} login failed: ${error.message}`); } else { - console.error(colors.error(`\n${symbols.error} Login failed with unexpected error`)); + handleError(`\n${symbols.error} login failed with unexpected error`); } process.exit(1); } From c2fab140e22f335410b94e7e414d8e2aa082f53b Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:20:46 -0600 Subject: [PATCH 24/35] feat(cli): implement logger in list-versions command --- .../cli/src/commands/list-versions.ts | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/screenpipe-js/cli/src/commands/list-versions.ts b/screenpipe-js/cli/src/commands/list-versions.ts index 4b04d77bb..7a7907c29 100644 --- a/screenpipe-js/cli/src/commands/list-versions.ts +++ b/screenpipe-js/cli/src/commands/list-versions.ts @@ -2,11 +2,12 @@ import { API_BASE_URL } from "../constants"; import { Credentials } from "../utils/credentials"; import { colors, symbols } from "../utils/colors"; import { Command } from "commander"; +import { handleError } from "./components/commands/add/utils/handle-error"; export const listVersionsCommand = new Command() .name('list-versions') .description('List all versions of a pipe') - .requiredOption('--name ', 'Name of the pipe') + .requiredOption('--name ', 'name of the pipe') .action(async (opts) => { try { const response = await fetch( @@ -25,15 +26,15 @@ export const listVersionsCommand = new Command() if (!response.ok) { const error = await response.json(); - throw new Error(`Failed to list versions ${error.error}`); + throw new Error(`failed to list versions ${error.error}`); } const data = await response.json(); - console.log(colors.header(`Plugin Information`)); + console.log(colors.header(`plugin Information`)); console.log(colors.listItem(`${colors.label("Name")} ${opts.name}`)); console.log(colors.listItem(`${colors.label("ID")} ${data.plugin_id}`)); - console.log(colors.header("Version History")); + console.log(colors.header("version History")); data.versions.forEach((version: any) => { const status = version.status === "published" @@ -42,50 +43,45 @@ export const listVersionsCommand = new Command() console.log( colors.primary( - `\n ${symbols.arrow} Version ${colors.bold( + `\n ${symbols.arrow} version ${colors.bold( version.version )} ${colors.dim(`(${status})`)}` ) ); console.log( colors.listItem( - `${colors.label("Created")} ${new Date( + `${colors.label("created")} ${new Date( version.created_at ).toLocaleString()}` ) ); console.log( colors.listItem( - `${colors.label("Size")} ${(version.file_size / 1024).toFixed( + `${colors.label("size")} ${(version.file_size / 1024).toFixed( 2 )} KB` ) ); console.log( colors.listItem( - `${colors.label("Hash")} ${colors.dim(version.file_hash)}` + `${colors.label("hash")} ${colors.dim(version.file_hash)}` ) ); if (version.changelog) { console.log( - colors.listItem(`${colors.label("Changelog")} ${version.changelog}`) + colors.listItem(`${colors.label("changelog")} ${version.changelog}`) ); } }); } catch (error) { if (error instanceof Error) { - console.error( - colors.error( - `\n${symbols.error} List versions failed: ${error.message}` - ) - ); + handleError( + `\n${symbols.error} list versions failed: ${error.message}` + ) } else { - console.error( - colors.error( - `\n${symbols.error} List versions failed with unexpected error` - ) + handleError( + `\n${symbols.error} list versions failed with unexpected error` ); } - process.exit(1); } }); \ No newline at end of file From 91e229f0efe87647fb94a804d7715132a88a4663 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:21:07 -0600 Subject: [PATCH 25/35] feat(cli): lowercase logger --- .../commands/components/commands/add/utils/handle-error.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/screenpipe-js/cli/src/commands/components/commands/add/utils/handle-error.ts b/screenpipe-js/cli/src/commands/components/commands/add/utils/handle-error.ts index b0bec07d3..41936c3b7 100644 --- a/screenpipe-js/cli/src/commands/components/commands/add/utils/handle-error.ts +++ b/screenpipe-js/cli/src/commands/components/commands/add/utils/handle-error.ts @@ -3,9 +3,9 @@ import { highlighter, logger } from "./logger" export function handleError(error: unknown) { logger.error( - `Something went wrong. Please check the error below for more details.` + `something went wrong. please check the error below for more details.` ) - logger.error(`If the problem persists, please open an issue on GitHub.`) + logger.error(`if the problem persists, please open an issue on github.`) logger.error("") if (typeof error === "string") { logger.error(error) @@ -14,7 +14,7 @@ export function handleError(error: unknown) { } if (error instanceof z.ZodError) { - logger.error("Validation failed:") + logger.error("validation failed:") for (const [key, value] of Object.entries(error.flatten().fieldErrors)) { logger.error(`- ${highlighter.info(key)}: ${value}`) } From 88faacb958f4b010f9f8456f7d00818da8f2fda5 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:22:18 -0600 Subject: [PATCH 26/35] refactor(cli): create command refactor. preparing for create app create will now have two subcommands: - pipe - app --- screenpipe-js/cli/src/commands/create/index.ts | 8 ++++++++ .../cli/src/commands/{create.ts => create/pipe/index.ts} | 2 +- screenpipe-js/cli/src/commands/index.ts | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 screenpipe-js/cli/src/commands/create/index.ts rename screenpipe-js/cli/src/commands/{create.ts => create/pipe/index.ts} (99%) diff --git a/screenpipe-js/cli/src/commands/create/index.ts b/screenpipe-js/cli/src/commands/create/index.ts new file mode 100644 index 000000000..47bc84325 --- /dev/null +++ b/screenpipe-js/cli/src/commands/create/index.ts @@ -0,0 +1,8 @@ +import { Command } from "commander"; +import { createPipeCommand } from "./pipe"; + +export const createCommands = new Command() + .name("create") + .description("commands to initiate projects that contribute to screenpipe") + +createCommands.addCommand(createPipeCommand) \ No newline at end of file diff --git a/screenpipe-js/cli/src/commands/create.ts b/screenpipe-js/cli/src/commands/create/pipe/index.ts similarity index 99% rename from screenpipe-js/cli/src/commands/create.ts rename to screenpipe-js/cli/src/commands/create/pipe/index.ts index c036cb5b6..975892099 100644 --- a/screenpipe-js/cli/src/commands/create.ts +++ b/screenpipe-js/cli/src/commands/create/pipe/index.ts @@ -98,7 +98,7 @@ async function downloadAndExtractRepo( }); } -export const createCommand = new Command() +export const createPipeCommand = new Command() .name('create') .description('create a new pipe') .action(async () => { diff --git a/screenpipe-js/cli/src/commands/index.ts b/screenpipe-js/cli/src/commands/index.ts index 4c94872e8..074d9965f 100644 --- a/screenpipe-js/cli/src/commands/index.ts +++ b/screenpipe-js/cli/src/commands/index.ts @@ -1,4 +1,4 @@ -export { createCommand } from './create'; +export { createCommands } from './create/index'; export { loginCommand } from './login'; export { logoutCommand } from './logout'; export { publishCommand } from './publish'; From 519a0df616584f787f6ae8e7d972ec1ed7c63433 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:24:14 -0600 Subject: [PATCH 27/35] feat(cli): implement logger in create pipe command --- screenpipe-js/cli/src/commands/create/pipe/index.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/screenpipe-js/cli/src/commands/create/pipe/index.ts b/screenpipe-js/cli/src/commands/create/pipe/index.ts index 975892099..d6b399dcc 100644 --- a/screenpipe-js/cli/src/commands/create/pipe/index.ts +++ b/screenpipe-js/cli/src/commands/create/pipe/index.ts @@ -10,6 +10,8 @@ import ora from "ora"; import https from "https"; import { Extract } from "unzip-stream"; import { Command } from "commander"; +import { logger } from "../../components/commands/add/utils/logger"; +import { handleError } from "../../components/commands/add/utils/handle-error"; const PIPE_ADDITIONS = { dependencies: { @@ -103,11 +105,11 @@ export const createPipeCommand = new Command() .description('create a new pipe') .action(async () => { console.log(chalk.bold("\nwelcome to screenpipe! šŸš€\n")); - console.log("let's create a new screenpipe pipe.\n"); - console.log( + logger.log("let's create a new screenpipe pipe.\n"); + logger.log( "pipes are plugins that interact with captured screen and audio data." ); - console.log("build powerful agents, monetize it, etc.\n"); + logger.log("build powerful agents, monetize it, etc.\n"); // get project name const pipeName = await input({ @@ -169,8 +171,7 @@ export const createPipeCommand = new Command() ); } catch (error) { spinner.fail("failed to create pipe"); - console.error(error); - process.exit(1); + handleError(error); } }) From 2ebee8ee011b186e7f77aad1f5965ba15fa9fdab Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 20:17:52 -0600 Subject: [PATCH 28/35] feat(cli): migrate create pipe to use simpleGit --- .../cli/src/commands/create/pipe/index.ts | 87 ++----------------- 1 file changed, 7 insertions(+), 80 deletions(-) diff --git a/screenpipe-js/cli/src/commands/create/pipe/index.ts b/screenpipe-js/cli/src/commands/create/pipe/index.ts index d6b399dcc..6a6677cd8 100644 --- a/screenpipe-js/cli/src/commands/create/pipe/index.ts +++ b/screenpipe-js/cli/src/commands/create/pipe/index.ts @@ -11,6 +11,7 @@ import https from "https"; import { Extract } from "unzip-stream"; import { Command } from "commander"; import { logger } from "../../components/commands/add/utils/logger"; +import simpleGit from "simple-git"; import { handleError } from "../../components/commands/add/utils/handle-error"; const PIPE_ADDITIONS = { @@ -22,82 +23,13 @@ const PIPE_ADDITIONS = { }, }; -async function downloadAndExtractRepo( - owner: string, - repo: string, - branch: string, - subdir: string, - destPath: string -): Promise { - const url = `https://github.com/${owner}/${repo}/archive/refs/heads/${branch}.zip`; - - // Create a temporary directory for extraction +async function downloadAndExtractSubdir(subdir: string, destPath: string) { const tempDir = path.join(destPath, "_temp"); await fs.ensureDir(tempDir); - - return new Promise((resolve, reject) => { - const request = https - .get(url, (response) => { - if (response.statusCode === 302 || response.statusCode === 301) { - const redirectUrl = response.headers.location; - if (!redirectUrl) { - reject(new Error("Redirect location not found")); - return; - } - - https - .get(redirectUrl, async (redirectResponse) => { - if (redirectResponse.statusCode !== 200) { - reject( - new Error( - `Failed to download: ${redirectResponse.statusCode}` - ) - ); - return; - } - - const extractStream = Extract({ path: tempDir }); - - extractStream.on("finish", async () => { - try { - // Move files from the specific subdirectory to the final destination - const sourcePath = path.join( - tempDir, - `screenpipe-${branch}`, - subdir - ); - await fs.copy(sourcePath, destPath); - // Clean up temp directory - await fs.remove(tempDir); - console.log("extraction completed"); - resolve(); - } catch (err) { - reject(err); - } - }); - - extractStream.on("error", async (err) => { - await fs.remove(tempDir).catch(console.error); - reject(err); - }); - - redirectResponse.pipe(extractStream); - }) - .on("error", async (err) => { - await fs.remove(tempDir).catch(console.error); - reject(err); - }); - } else { - reject(new Error(`Failed to download: ${response.statusCode}`)); - } - }) - .on("error", async (err) => { - await fs.remove(tempDir).catch(console.error); - reject(err); - }); - - request.end(); - }); + await simpleGit().clone("https://github.com/mediar-ai/screenpipe", tempDir); + const sourcePath = path.join(tempDir, subdir); + await fs.copy(sourcePath, destPath); + await fs.remove(tempDir); } export const createPipeCommand = new Command() @@ -111,7 +43,6 @@ export const createPipeCommand = new Command() ); logger.log("build powerful agents, monetize it, etc.\n"); - // get project name const pipeName = await input({ message: "what is your pipe name?", default: "my-screenpipe", @@ -121,7 +52,6 @@ export const createPipeCommand = new Command() }, }); - // get directory const directory = await input({ message: "where would you like to create your pipe?", default: pipeName, @@ -131,10 +61,7 @@ export const createPipeCommand = new Command() try { // Download and extract the appropriate template - await downloadAndExtractRepo( - "mediar-ai", - "screenpipe", - "main", + await downloadAndExtractSubdir( "pipes/obsidian", directory ); From efef558ca650972ed5bc0c5d73231cc43cbc8d18 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 20:19:00 -0600 Subject: [PATCH 29/35] fix(cli): rectify typo --- screenpipe-js/cli/src/commands/create/pipe/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/screenpipe-js/cli/src/commands/create/pipe/index.ts b/screenpipe-js/cli/src/commands/create/pipe/index.ts index 6a6677cd8..9eee51f7b 100644 --- a/screenpipe-js/cli/src/commands/create/pipe/index.ts +++ b/screenpipe-js/cli/src/commands/create/pipe/index.ts @@ -33,7 +33,7 @@ async function downloadAndExtractSubdir(subdir: string, destPath: string) { } export const createPipeCommand = new Command() - .name('create') + .name('pipe') .description('create a new pipe') .action(async () => { console.log(chalk.bold("\nwelcome to screenpipe! šŸš€\n")); From bd645a54ce942b4773f6aabfb457f7ae58938b71 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 20:21:39 -0600 Subject: [PATCH 30/35] feat(cli): add create app command - tauri - electron --- .../cli/src/commands/create/app/index.ts | 80 +++++++++++++++++++ .../cli/src/commands/create/index.ts | 5 +- 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 screenpipe-js/cli/src/commands/create/app/index.ts diff --git a/screenpipe-js/cli/src/commands/create/app/index.ts b/screenpipe-js/cli/src/commands/create/app/index.ts new file mode 100644 index 000000000..2a8da4d11 --- /dev/null +++ b/screenpipe-js/cli/src/commands/create/app/index.ts @@ -0,0 +1,80 @@ +#!/usr/bin/env node +import { input } from "@inquirer/prompts"; // Import select from inquirer prompts +import { Command } from "commander"; +import inquirer from "inquirer"; +import { logger, spinner } from "../../components/commands/add/utils/logger"; +import { handleError } from "../../components/commands/add/utils/handle-error"; +import simpleGit from "simple-git"; + +const TEMPLATE_REPOS = { + electron: "https://github.com/neo773/screenpipe-electron", + tauri: "https://github.com/LorenzoBloedow/screenpipe-tauri-template-dev", +}; + +export const createAppCommand = new Command() + .name("app") + .description("create a new desktop app project") + .option( + "-a, --name ", + "the name of your app (optional)", + ) + .option( + "-t, --appType ", + "the type of desktop app (electron or tauri)", + ) + .action(async (options) => { + let { name, appType } = options; + + if (!appType) { + let { appTypePrompt } = await inquirer.prompt({ + name: "appTypePrompt", + type: "select", + message: "what type of desktop app would you like to create?", + choices: [ + { name: "electron", value: "electron"}, + { name: "tauri", value: "tauri"} + ], + default: "tauri" + }); + + appType = appTypePrompt + } + + + if (!name || name.length === 0) { + name = await input({ + message: "What is your project name?", + default: "my-desktop-app", + validate: (input) => { + if (input.trim().length === 0) return "project name is required."; + return true; + }, + }); + } + + const loadingSpinner = spinner("creating your desktop app..."); + + try { + loadingSpinner.start(); + + await simpleGit().clone(TEMPLATE_REPOS[appType as "electron" | "tauri"], name); + loadingSpinner.succeed("Project created successfully! šŸŽ‰"); + + logger.info("\ncredits to the template authors:"); + if (appType === "electron") { + logger.info("electron template by: Neo @ https://github.com/neo773"); + } else { + logger.info("tauri template by: Lorenzo @ https://github.com/LorenzoBloedow"); + } + + logger.info("\nto get started:"); + logger.info(`cd ${name}`); + logger.info("npm install # or bun install, pnpm install, yarn"); + logger.info("npm run dev # or bun dev, pnpm dev, yarn dev"); + + logger.info("\nwhen you're ready, you can deploy your app following the documentation for the respective framework.\n"); + } catch (error) { + loadingSpinner.fail("failed to create project"); + handleError(error instanceof Error ? error.message : String(error)); + } + }); diff --git a/screenpipe-js/cli/src/commands/create/index.ts b/screenpipe-js/cli/src/commands/create/index.ts index 47bc84325..17491cc36 100644 --- a/screenpipe-js/cli/src/commands/create/index.ts +++ b/screenpipe-js/cli/src/commands/create/index.ts @@ -1,8 +1,11 @@ import { Command } from "commander"; import { createPipeCommand } from "./pipe"; +import { createAppCommand } from "./app"; export const createCommands = new Command() .name("create") .description("commands to initiate projects that contribute to screenpipe") -createCommands.addCommand(createPipeCommand) \ No newline at end of file +createCommands.addCommand(createPipeCommand) + +createCommands.addCommand(createAppCommand) \ No newline at end of file From 618cf9d4d0c663ce0549820d529028ab31aa7cf0 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 20:21:51 -0600 Subject: [PATCH 31/35] fix(cli): expose create commands --- screenpipe-js/cli/src/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index 4a5cb9edb..416285458 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -1,12 +1,12 @@ import { Command } from "commander"; import { loginCommand, - createCommand, componentsCommands, registerCommand, publishCommand, listVersionsCommand, - logoutCommand + logoutCommand, + createCommands } from "./commands"; process.on("SIGINT", () => process.exit(0)) @@ -22,7 +22,7 @@ async function main() { program.addCommand(loginCommand) program.addCommand(logoutCommand) - program.addCommand(createCommand) + program.addCommand(createCommands) program.addCommand(componentsCommands) program.addCommand(registerCommand) program.addCommand(publishCommand) From 522ed46bf64cd75a729b3a2fed81128e597d1056 Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Mon, 3 Feb 2025 20:22:13 -0600 Subject: [PATCH 32/35] feat(cli): update dist --- screenpipe-js/cli/dist/index.js | 8753 ++++++++++++++++++++----------- 1 file changed, 5807 insertions(+), 2946 deletions(-) diff --git a/screenpipe-js/cli/dist/index.js b/screenpipe-js/cli/dist/index.js index c7721e60f..dce2b26c2 100755 --- a/screenpipe-js/cli/dist/index.js +++ b/screenpipe-js/cli/dist/index.js @@ -18767,1907 +18767,751 @@ var require_emoji_regex2 = __commonJS((exports, module) => { }; }); -// node_modules/traverse/index.js -var require_traverse = __commonJS((exports, module) => { - module.exports = Traverse; - function Traverse(obj) { - if (!(this instanceof Traverse)) - return new Traverse(obj); - this.value = obj; - } - Traverse.prototype.get = function(ps) { - var node = this.value; - for (var i = 0;i < ps.length; i++) { - var key2 = ps[i]; - if (!Object.hasOwnProperty.call(node, key2)) { - node = undefined; - break; - } - node = node[key2]; +// node_modules/ms/index.js +var require_ms = __commonJS((exports, module) => { + var s = 1000; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); } - return node; + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); }; - Traverse.prototype.set = function(ps, value) { - var node = this.value; - for (var i = 0;i < ps.length - 1; i++) { - var key2 = ps[i]; - if (!Object.hasOwnProperty.call(node, key2)) - node[key2] = {}; - node = node[key2]; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; } - node[ps[i]] = value; - return value; - }; - Traverse.prototype.map = function(cb) { - return walk(this.value, cb, true); - }; - Traverse.prototype.forEach = function(cb) { - this.value = walk(this.value, cb, false); - return this.value; - }; - Traverse.prototype.reduce = function(cb, init) { - var skip = arguments.length === 1; - var acc = skip ? this.value : init; - this.forEach(function(x) { - if (!this.isRoot || !skip) { - acc = cb.call(this, acc, x); - } - }); - return acc; - }; - Traverse.prototype.deepEqual = function(obj) { - if (arguments.length !== 1) { - throw new Error("deepEqual requires exactly one object to compare against"); + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; } - var equal = true; - var node = obj; - this.forEach(function(y) { - var notEqual = function() { - equal = false; + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: return; - }.bind(this); - if (!this.isRoot) { - if (typeof node !== "object") - return notEqual(); - node = node[this.key]; - } - var x = node; - this.post(function() { - node = x; - }); - var toS = function(o) { - return Object.prototype.toString.call(o); - }; - if (this.circular) { - if (Traverse(obj).get(this.circular.path) !== x) - notEqual(); - } else if (typeof x !== typeof y) { - notEqual(); - } else if (x === null || y === null || x === undefined || y === undefined) { - if (x !== y) - notEqual(); - } else if (x.__proto__ !== y.__proto__) { - notEqual(); - } else if (x === y) { - } else if (typeof x === "function") { - if (x instanceof RegExp) { - if (x.toString() != y.toString()) - notEqual(); - } else if (x !== y) - notEqual(); - } else if (typeof x === "object") { - if (toS(y) === "[object Arguments]" || toS(x) === "[object Arguments]") { - if (toS(x) !== toS(y)) { - notEqual(); - } - } else if (x instanceof Date || y instanceof Date) { - if (!(x instanceof Date) || !(y instanceof Date) || x.getTime() !== y.getTime()) { - notEqual(); + } + } + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } +}); + +// node_modules/debug/src/common.js +var require_common = __commonJS((exports, module) => { + function setup(env2) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env2).forEach((key2) => { + createDebug[key2] = env2[key2]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash = 0; + for (let i = 0;i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug(...args) { + if (!debug.enabled) { + return; + } + const self2 = debug; + const curr = Number(new Date); + const ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; } - } else { - var kx = Object.keys(x); - var ky = Object.keys(y); - if (kx.length !== ky.length) - return notEqual(); - for (var i = 0;i < kx.length; i++) { - var k = kx[i]; - if (!Object.hasOwnProperty.call(y, k)) { - notEqual(); - } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self2, val); + args.splice(index, 1); + index--; } - } - } - }); - return equal; - }; - Traverse.prototype.paths = function() { - var acc = []; - this.forEach(function(x) { - acc.push(this.path); - }); - return acc; - }; - Traverse.prototype.nodes = function() { - var acc = []; - this.forEach(function(x) { - acc.push(this.node); - }); - return acc; - }; - Traverse.prototype.clone = function() { - var parents = [], nodes = []; - return function clone(src) { - for (var i = 0;i < parents.length; i++) { - if (parents[i] === src) { - return nodes[i]; - } - } - if (typeof src === "object" && src !== null) { - var dst = copy(src); - parents.push(src); - nodes.push(dst); - Object.keys(src).forEach(function(key2) { - dst[key2] = clone(src[key2]); + return match; }); - parents.pop(); - nodes.pop(); - return dst; - } else { - return src; - } - }(this.value); - }; - function walk(root, cb, immutable) { - var path = []; - var parents = []; - var alive = true; - return function walker(node_) { - var node = immutable ? copy(node_) : node_; - var modifiers = {}; - var state = { - node, - node_, - path: [].concat(path), - parent: parents.slice(-1)[0], - key: path.slice(-1)[0], - isRoot: path.length === 0, - level: path.length, - circular: null, - update: function(x) { - if (!state.isRoot) { - state.parent.node[state.key] = x; + createDebug.formatArgs.call(self2, args); + const logFn = self2.log || createDebug.log; + logFn.apply(self2, args); + } + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; + Object.defineProperty(debug, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; } - state.node = x; - }, - delete: function() { - delete state.parent.node[state.key]; - }, - remove: function() { - if (Array.isArray(state.parent.node)) { - state.parent.node.splice(state.key, 1); - } else { - delete state.parent.node[state.key]; + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); } + return enabledCache; }, - before: function(f) { - modifiers.before = f; - }, - after: function(f) { - modifiers.after = f; - }, - pre: function(f) { - modifiers.pre = f; - }, - post: function(f) { - modifiers.post = f; - }, - stop: function() { - alive = false; - } - }; - if (!alive) - return state; - if (typeof node === "object" && node !== null) { - state.isLeaf = Object.keys(node).length == 0; - for (var i = 0;i < parents.length; i++) { - if (parents[i].node_ === node_) { - state.circular = parents[i]; - break; - } + set: (v) => { + enableOverride = v; } - } else { - state.isLeaf = true; - } - state.notLeaf = !state.isLeaf; - state.notRoot = !state.isRoot; - var ret = cb.call(state, state.node); - if (ret !== undefined && state.update) - state.update(ret); - if (modifiers.before) - modifiers.before.call(state, state.node); - if (typeof state.node == "object" && state.node !== null && !state.circular) { - parents.push(state); - var keys = Object.keys(state.node); - keys.forEach(function(key2, i2) { - path.push(key2); - if (modifiers.pre) - modifiers.pre.call(state, state.node[key2], key2); - var child = walker(state.node[key2]); - if (immutable && Object.hasOwnProperty.call(state.node, key2)) { - state.node[key2] = child.node; - } - child.isLast = i2 == keys.length - 1; - child.isFirst = i2 == 0; - if (modifiers.post) - modifiers.post.call(state, child); - path.pop(); - }); - parents.pop(); - } - if (modifiers.after) - modifiers.after.call(state, state.node); - return state; - }(root).node; - } - Object.keys(Traverse.prototype).forEach(function(key2) { - Traverse[key2] = function(obj) { - var args = [].slice.call(arguments, 1); - var t = Traverse(obj); - return t[key2].apply(t, args); - }; - }); - function copy(src) { - if (typeof src === "object" && src !== null) { - var dst; - if (Array.isArray(src)) { - dst = []; - } else if (src instanceof Date) { - dst = new Date(src); - } else if (src instanceof Boolean) { - dst = new Boolean(src); - } else if (src instanceof Number) { - dst = new Number(src); - } else if (src instanceof String) { - dst = new String(src); - } else { - dst = Object.create(Object.getPrototypeOf(src)); - } - Object.keys(src).forEach(function(key2) { - dst[key2] = src[key2]; }); - return dst; - } else - return src; - } -}); - -// node_modules/chainsaw/index.js -var require_chainsaw = __commonJS((exports, module) => { - var Traverse = require_traverse(); - var EventEmitter = __require("events").EventEmitter; - module.exports = Chainsaw; - function Chainsaw(builder) { - var saw = Chainsaw.saw(builder, {}); - var r = builder.call(saw.handlers, saw); - if (r !== undefined) - saw.handlers = r; - saw.record(); - return saw.chain(); - } - Chainsaw.light = function ChainsawLight(builder) { - var saw = Chainsaw.saw(builder, {}); - var r = builder.call(saw.handlers, saw); - if (r !== undefined) - saw.handlers = r; - return saw.chain(); - }; - Chainsaw.saw = function(builder, handlers) { - var saw = new EventEmitter; - saw.handlers = handlers; - saw.actions = []; - saw.chain = function() { - var ch = Traverse(saw.handlers).map(function(node) { - if (this.isRoot) - return node; - var ps = this.path; - if (typeof node === "function") { - this.update(function() { - saw.actions.push({ - path: ps, - args: [].slice.call(arguments) - }); - return ch; - }); + if (typeof createDebug.init === "function") { + createDebug.init(debug); + } + return debug; + } + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + const split2 = (typeof namespaces === "string" ? namespaces : "").trim().replace(" ", ",").split(",").filter(Boolean); + for (const ns of split2) { + if (ns[0] === "-") { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); } - }); - process.nextTick(function() { - saw.emit("begin"); - saw.next(); - }); - return ch; - }; - saw.pop = function() { - return saw.actions.shift(); - }; - saw.next = function() { - var action = saw.pop(); - if (!action) { - saw.emit("end"); - } else if (!action.trap) { - var node = saw.handlers; - action.path.forEach(function(key2) { - node = node[key2]; - }); - node.apply(saw.handlers, action.args); } - }; - saw.nest = function(cb) { - var args = [].slice.call(arguments, 1); - var autonext = true; - if (typeof cb === "boolean") { - var autonext = cb; - cb = args.shift(); - } - var s = Chainsaw.saw(builder, {}); - var r = builder.call(s.handlers, s); - if (r !== undefined) - s.handlers = r; - if (typeof saw.step !== "undefined") { - s.record(); - } - cb.apply(s.chain(), args); - if (autonext !== false) - s.on("end", saw.next); - }; - saw.record = function() { - upgradeChainsaw(saw); - }; - ["trap", "down", "jump"].forEach(function(method) { - saw[method] = function() { - throw new Error("To use the trap, down and jump features, please " + "call record() first to start recording actions."); - }; - }); - return saw; - }; - function upgradeChainsaw(saw) { - saw.step = 0; - saw.pop = function() { - return saw.actions[saw.step++]; - }; - saw.trap = function(name, cb) { - var ps = Array.isArray(name) ? name : [name]; - saw.actions.push({ - path: ps, - step: saw.step, - cb, - trap: true - }); - }; - saw.down = function(name) { - var ps = (Array.isArray(name) ? name : [name]).join("/"); - var i = saw.actions.slice(saw.step).map(function(x) { - if (x.trap && x.step <= saw.step) - return false; - return x.path.join("/") == ps; - }).indexOf(true); - if (i >= 0) - saw.step += i; - else - saw.step = saw.actions.length; - var act = saw.actions[saw.step - 1]; - if (act && act.trap) { - saw.step = act.step; - act.cb(); - } else - saw.next(); - }; - saw.jump = function(step) { - saw.step = step; - saw.next(); - }; - } -}); - -// node_modules/buffers/index.js -var require_buffers = __commonJS((exports, module) => { - module.exports = Buffers; - function Buffers(bufs) { - if (!(this instanceof Buffers)) - return new Buffers(bufs); - this.buffers = bufs || []; - this.length = this.buffers.reduce(function(size, buf) { - return size + buf.length; - }, 0); - } - Buffers.prototype.push = function() { - for (var i = 0;i < arguments.length; i++) { - if (!Buffer.isBuffer(arguments[i])) { - throw new TypeError("Tried to push a non-buffer"); - } - } - for (var i = 0;i < arguments.length; i++) { - var buf = arguments[i]; - this.buffers.push(buf); - this.length += buf.length; - } - return this.length; - }; - Buffers.prototype.unshift = function() { - for (var i = 0;i < arguments.length; i++) { - if (!Buffer.isBuffer(arguments[i])) { - throw new TypeError("Tried to unshift a non-buffer"); - } - } - for (var i = 0;i < arguments.length; i++) { - var buf = arguments[i]; - this.buffers.unshift(buf); - this.length += buf.length; - } - return this.length; - }; - Buffers.prototype.copy = function(dst, dStart, start, end) { - return this.slice(start, end).copy(dst, dStart, 0, end - start); - }; - Buffers.prototype.splice = function(i, howMany) { - var buffers = this.buffers; - var index = i >= 0 ? i : this.length - i; - var reps = [].slice.call(arguments, 2); - if (howMany === undefined) { - howMany = this.length - index; - } else if (howMany > this.length - index) { - howMany = this.length - index; - } - for (var i = 0;i < reps.length; i++) { - this.length += reps[i].length; - } - var removed = new Buffers; - var bytes = 0; - var startBytes = 0; - for (var ii = 0;ii < buffers.length && startBytes + buffers[ii].length < index; ii++) { - startBytes += buffers[ii].length; - } - if (index - startBytes > 0) { - var start = index - startBytes; - if (start + howMany < buffers[ii].length) { - removed.push(buffers[ii].slice(start, start + howMany)); - var orig = buffers[ii]; - var buf0 = new Buffer(start); - for (var i = 0;i < start; i++) { - buf0[i] = orig[i]; - } - var buf1 = new Buffer(orig.length - start - howMany); - for (var i = start + howMany;i < orig.length; i++) { - buf1[i - howMany - start] = orig[i]; - } - if (reps.length > 0) { - var reps_ = reps.slice(); - reps_.unshift(buf0); - reps_.push(buf1); - buffers.splice.apply(buffers, [ii, 1].concat(reps_)); - ii += reps_.length; - reps = []; + } + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) { + if (template[templateIndex] === "*") { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; } else { - buffers.splice(ii, 1, buf0, buf1); - ii += 2; + return false; } - } else { - removed.push(buffers[ii].slice(start)); - buffers[ii] = buffers[ii].slice(0, start); - ii++; - } - } - if (reps.length > 0) { - buffers.splice.apply(buffers, [ii, 0].concat(reps)); - ii += reps.length; - } - while (removed.length < howMany) { - var buf = buffers[ii]; - var len = buf.length; - var take = Math.min(len, howMany - removed.length); - if (take === len) { - removed.push(buf); - buffers.splice(ii, 1); - } else { - removed.push(buf.slice(0, take)); - buffers[ii] = buffers[ii].slice(take); } - } - this.length -= removed.length; - return removed; - }; - Buffers.prototype.slice = function(i, j) { - var buffers = this.buffers; - if (j === undefined) - j = this.length; - if (i === undefined) - i = 0; - if (j > this.length) - j = this.length; - var startBytes = 0; - for (var si = 0;si < buffers.length && startBytes + buffers[si].length <= i; si++) { - startBytes += buffers[si].length; - } - var target = new Buffer(j - i); - var ti = 0; - for (var ii = si;ti < j - i && ii < buffers.length; ii++) { - var len = buffers[ii].length; - var start = ti === 0 ? i - startBytes : 0; - var end = ti + len >= j - i ? Math.min(start + (j - i) - ti, len) : len; - buffers[ii].copy(target, ti, start, end); - ti += end - start; - } - return target; - }; - Buffers.prototype.pos = function(i) { - if (i < 0 || i >= this.length) - throw new Error("oob"); - var l = i, bi = 0, bu = null; - for (;; ) { - bu = this.buffers[bi]; - if (l < bu.length) { - return { buf: bi, offset: l }; - } else { - l -= bu.length; + while (templateIndex < template.length && template[templateIndex] === "*") { + templateIndex++; } - bi++; - } - }; - Buffers.prototype.get = function get(i) { - var pos = this.pos(i); - return this.buffers[pos.buf].get(pos.offset); - }; - Buffers.prototype.set = function set(i, b) { - var pos = this.pos(i); - return this.buffers[pos.buf].set(pos.offset, b); - }; - Buffers.prototype.indexOf = function(needle, offset) { - if (typeof needle === "string") { - needle = new Buffer(needle); - } else if (needle instanceof Buffer) { - } else { - throw new Error("Invalid type for a search string"); - } - if (!needle.length) { - return 0; + return templateIndex === template.length; } - if (!this.length) { - return -1; - } - var i = 0, j = 0, match = 0, mstart, pos = 0; - if (offset) { - var p = this.pos(offset); - i = p.buf; - j = p.offset; - pos = offset; + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; } - for (;; ) { - while (j >= this.buffers[i].length) { - j = 0; - i++; - if (i >= this.buffers.length) { - return -1; + function enabled(name) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name, skip)) { + return false; } } - var char = this.buffers[i][j]; - if (char == needle[match]) { - if (match == 0) { - mstart = { - i, - j, - pos - }; - } - match++; - if (match == needle.length) { - return mstart.pos; + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; } - } else if (match != 0) { - i = mstart.i; - j = mstart.j; - pos = mstart.pos; - match = 0; } - j++; - pos++; + return false; } - }; - Buffers.prototype.toBuffer = function() { - return this.slice(); - }; - Buffers.prototype.toString = function(encoding, start, end) { - return this.slice(start, end).toString(encoding); - }; -}); - -// node_modules/binary/lib/vars.js -var require_vars = __commonJS((exports, module) => { - module.exports = function(store) { - function getset(name, value) { - var node = vars.store; - var keys = name.split("."); - keys.slice(0, -1).forEach(function(k) { - if (node[k] === undefined) - node[k] = {}; - node = node[k]; - }); - var key2 = keys[keys.length - 1]; - if (arguments.length == 1) { - return node[key2]; - } else { - return node[key2] = value; + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; } + return val; } - var vars = { - get: function(name) { - return getset(name); - }, - set: function(name, value) { - return getset(name, value); - }, - store: store || {} - }; - return vars; - }; + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + module.exports = setup; }); -// node_modules/binary/index.js -var require_binary = __commonJS((exports, module) => { - var Chainsaw = require_chainsaw(); - var EventEmitter = __require("events").EventEmitter; - var Buffers = require_buffers(); - var Vars = require_vars(); - var Stream = __require("stream").Stream; - exports = module.exports = function(bufOrEm, eventName) { - if (Buffer.isBuffer(bufOrEm)) { - return exports.parse(bufOrEm); - } - var s = exports.stream(); - if (bufOrEm && bufOrEm.pipe) { - bufOrEm.pipe(s); - } else if (bufOrEm) { - bufOrEm.on(eventName || "data", function(buf) { - s.write(buf); - }); - bufOrEm.on("end", function() { - s.end(); - }); +// node_modules/debug/src/browser.js +var require_browser = __commonJS((exports, module) => { + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load2; + exports.useColors = useColors; + exports.storage = localstorage(); + exports.destroy = (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; } - return s; - }; - exports.stream = function(input) { - if (input) - return exports.apply(null, arguments); - var pending = null; - function getBytes(bytes, cb, skip) { - pending = { - bytes, - skip, - cb: function(buf) { - pending = null; - cb(buf); - } - }; - dispatch(); + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; } - var offset = null; - function dispatch() { - if (!pending) { - if (caughtEnd) - done = true; + let m; + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { return; } - if (typeof pending === "function") { - pending(); - } else { - var bytes = offset + pending.bytes; - if (buffers.length >= bytes) { - var buf; - if (offset == null) { - buf = buffers.splice(0, bytes); - if (!pending.skip) { - buf = buf.slice(); - } - } else { - if (!pending.skip) { - buf = buffers.slice(offset, bytes); - } - offset = bytes; - } - if (pending.skip) { - pending.cb(); - } else { - pending.cb(buf); - } - } - } - } - function builder(saw) { - function next() { - if (!done) - saw.next(); + index++; + if (match === "%c") { + lastC = index; } - var self2 = words(function(bytes, cb) { - return function(name) { - getBytes(bytes, function(buf) { - vars.set(name, cb(buf)); - next(); - }); - }; - }); - self2.tap = function(cb) { - saw.nest(cb, vars.store); - }; - self2.into = function(key2, cb) { - if (!vars.get(key2)) - vars.set(key2, {}); - var parent = vars; - vars = Vars(parent.get(key2)); - saw.nest(function() { - cb.apply(this, arguments); - this.tap(function() { - vars = parent; - }); - }, vars.store); - }; - self2.flush = function() { - vars.store = {}; - next(); - }; - self2.loop = function(cb) { - var end = false; - saw.nest(false, function loop() { - this.vars = vars.store; - cb.call(this, function() { - end = true; - next(); - }, vars.store); - this.tap(function() { - if (end) - saw.next(); - else - loop.call(this); - }.bind(this)); - }, vars.store); - }; - self2.buffer = function(name, bytes) { - if (typeof bytes === "string") { - bytes = vars.get(bytes); - } - getBytes(bytes, function(buf) { - vars.set(name, buf); - next(); - }); - }; - self2.skip = function(bytes) { - if (typeof bytes === "string") { - bytes = vars.get(bytes); - } - getBytes(bytes, function() { - next(); - }); - }; - self2.scan = function find(name, search) { - if (typeof search === "string") { - search = new Buffer(search); - } else if (!Buffer.isBuffer(search)) { - throw new Error("search must be a Buffer or a string"); - } - var taken = 0; - pending = function() { - var pos = buffers.indexOf(search, offset + taken); - var i = pos - offset - taken; - if (pos !== -1) { - pending = null; - if (offset != null) { - vars.set(name, buffers.slice(offset, offset + taken + i)); - offset += taken + i + search.length; - } else { - vars.set(name, buffers.slice(0, taken + i)); - buffers.splice(0, taken + i + search.length); - } - next(); - dispatch(); - } else { - i = Math.max(buffers.length - search.length - offset - taken, 0); - } - taken += i; - }; - dispatch(); - }; - self2.peek = function(cb) { - offset = 0; - saw.nest(function() { - cb.call(this, vars.store); - this.tap(function() { - offset = null; - }); - }); - }; - return self2; - } - var stream = Chainsaw.light(builder); - stream.writable = true; - var buffers = Buffers(); - stream.write = function(buf) { - buffers.push(buf); - dispatch(); - }; - var vars = Vars(); - var done = false, caughtEnd = false; - stream.end = function() { - caughtEnd = true; - }; - stream.pipe = Stream.prototype.pipe; - Object.getOwnPropertyNames(EventEmitter.prototype).forEach(function(name) { - stream[name] = EventEmitter.prototype[name]; - }); - return stream; - }; - exports.parse = function parse(buffer) { - var self2 = words(function(bytes, cb) { - return function(name) { - if (offset + bytes <= buffer.length) { - var buf = buffer.slice(offset, offset + bytes); - offset += bytes; - vars.set(name, cb(buf)); - } else { - vars.set(name, null); - } - return self2; - }; }); - var offset = 0; - var vars = Vars(); - self2.vars = vars.store; - self2.tap = function(cb) { - cb.call(self2, vars.store); - return self2; - }; - self2.into = function(key2, cb) { - if (!vars.get(key2)) { - vars.set(key2, {}); - } - var parent = vars; - vars = Vars(parent.get(key2)); - cb.call(self2, vars.store); - vars = parent; - return self2; - }; - self2.loop = function(cb) { - var end = false; - var ender = function() { - end = true; - }; - while (end === false) { - cb.call(self2, ender, vars.store); - } - return self2; - }; - self2.buffer = function(name, size) { - if (typeof size === "string") { - size = vars.get(size); - } - var buf = buffer.slice(offset, Math.min(buffer.length, offset + size)); - offset += size; - vars.set(name, buf); - return self2; - }; - self2.skip = function(bytes) { - if (typeof bytes === "string") { - bytes = vars.get(bytes); - } - offset += bytes; - return self2; - }; - self2.scan = function(name, search) { - if (typeof search === "string") { - search = new Buffer(search); - } else if (!Buffer.isBuffer(search)) { - throw new Error("search must be a Buffer or a string"); - } - vars.set(name, null); - for (var i = 0;i + offset <= buffer.length - search.length + 1; i++) { - for (var j = 0;j < search.length && buffer[offset + i + j] === search[j]; j++) - ; - if (j === search.length) - break; + args.splice(lastC, 0, c); + } + exports.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem("debug", namespaces); + } else { + exports.storage.removeItem("debug"); } - vars.set(name, buffer.slice(offset, offset + i)); - offset += i + search.length; - return self2; - }; - self2.peek = function(cb) { - var was = offset; - cb.call(self2, vars.store); - offset = was; - return self2; - }; - self2.flush = function() { - vars.store = {}; - return self2; - }; - self2.eof = function() { - return offset >= buffer.length; - }; - return self2; - }; - function decodeLEu(bytes) { - var acc = 0; - for (var i = 0;i < bytes.length; i++) { - acc += Math.pow(256, i) * bytes[i]; + } catch (error) { } - return acc; } - function decodeBEu(bytes) { - var acc = 0; - for (var i = 0;i < bytes.length; i++) { - acc += Math.pow(256, bytes.length - i - 1) * bytes[i]; + function load2() { + let r; + try { + r = exports.storage.getItem("debug"); + } catch (error) { } - return acc; - } - function decodeBEs(bytes) { - var val = decodeBEu(bytes); - if ((bytes[0] & 128) == 128) { - val -= Math.pow(256, bytes.length); + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; } - return val; + return r; } - function decodeLEs(bytes) { - var val = decodeLEu(bytes); - if ((bytes[bytes.length - 1] & 128) == 128) { - val -= Math.pow(256, bytes.length); + function localstorage() { + try { + return localStorage; + } catch (error) { } - return val; - } - function words(decode) { - var self2 = {}; - [1, 2, 4, 8].forEach(function(bytes) { - var bits = bytes * 8; - self2["word" + bits + "le"] = self2["word" + bits + "lu"] = decode(bytes, decodeLEu); - self2["word" + bits + "ls"] = decode(bytes, decodeLEs); - self2["word" + bits + "be"] = self2["word" + bits + "bu"] = decode(bytes, decodeBEu); - self2["word" + bits + "bs"] = decode(bytes, decodeBEs); - }); - self2.word8 = self2.word8u = self2.word8be; - self2.word8s = self2.word8bs; - return self2; } + module.exports = require_common()(exports); + var { formatters } = module.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; }); -// node_modules/unzip-stream/lib/matcher-stream.js -var require_matcher_stream = __commonJS((exports, module) => { - var Transform = __require("stream").Transform; +// node_modules/debug/src/node.js +var require_node = __commonJS((exports, module) => { + var tty2 = __require("tty"); var util = __require("util"); - function MatcherStream(patternDesc, matchFn) { - if (!(this instanceof MatcherStream)) { - return new MatcherStream; - } - Transform.call(this); - var p = typeof patternDesc === "object" ? patternDesc.pattern : patternDesc; - this.pattern = Buffer.isBuffer(p) ? p : Buffer.from(p); - this.requiredLength = this.pattern.length; - if (patternDesc.requiredExtraSize) - this.requiredLength += patternDesc.requiredExtraSize; - this.data = new Buffer(""); - this.bytesSoFar = 0; - this.matchFn = matchFn; - } - util.inherits(MatcherStream, Transform); - MatcherStream.prototype.checkDataChunk = function(ignoreMatchZero) { - var enoughData = this.data.length >= this.requiredLength; - if (!enoughData) { - return; + exports.init = init; + exports.log = log; + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load2; + exports.useColors = useColors; + exports.destroy = util.deprecate(() => { + }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + exports.colors = [6, 2, 3, 4, 5, 1]; + try { + const supportsColor2 = (()=>{throw new Error("Cannot require module "+"supports-color");})(); + if (supportsColor2 && (supportsColor2.stderr || supportsColor2).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; } - var matchIndex = this.data.indexOf(this.pattern, ignoreMatchZero ? 1 : 0); - if (matchIndex >= 0 && matchIndex + this.requiredLength > this.data.length) { - if (matchIndex > 0) { - var packet = this.data.slice(0, matchIndex); - this.push(packet); - this.bytesSoFar += matchIndex; - this.data = this.data.slice(matchIndex); - } - return; + } catch (error) { + } + exports.inspectOpts = Object.keys(process.env).filter((key2) => { + return /^debug_/i.test(key2); + }).reduce((obj, key2) => { + const prop = key2.substring(6).toLowerCase().replace(/_([a-z])/g, (_2, k) => { + return k.toUpperCase(); + }); + let val = process.env[key2]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === "null") { + val = null; + } else { + val = Number(val); } - if (matchIndex === -1) { - var packetLen = this.data.length - this.requiredLength + 1; - var packet = this.data.slice(0, packetLen); - this.push(packet); - this.bytesSoFar += packetLen; - this.data = this.data.slice(packetLen); - return; + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty2.isatty(process.stderr.fd); + } + function formatArgs(args) { + const { namespace: name, useColors: useColors2 } = this; + if (useColors2) { + const c = this.color; + const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); + const prefix = ` ${colorCode};1m${name} \x1B[0m`; + args[0] = prefix + args[0].split(` +`).join(` +` + prefix); + args.push(colorCode + "m+" + module.exports.humanize(this.diff) + "\x1B[0m"); + } else { + args[0] = getDate() + name + " " + args[0]; } - if (matchIndex > 0) { - var packet = this.data.slice(0, matchIndex); - this.data = this.data.slice(matchIndex); - this.push(packet); - this.bytesSoFar += matchIndex; + } + function getDate() { + if (exports.inspectOpts.hideDate) { + return ""; } - var finished = this.matchFn ? this.matchFn(this.data, this.bytesSoFar) : true; - if (finished) { - this.data = new Buffer(""); - return; + return new Date().toISOString() + " "; + } + function log(...args) { + return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + ` +`); + } + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + delete process.env.DEBUG; } - return true; - }; - MatcherStream.prototype._transform = function(chunk, encoding, cb) { - this.data = Buffer.concat([this.data, chunk]); - var firstIteration = true; - while (this.checkDataChunk(!firstIteration)) { - firstIteration = false; + } + function load2() { + return process.env.DEBUG; + } + function init(debug) { + debug.inspectOpts = {}; + const keys = Object.keys(exports.inspectOpts); + for (let i = 0;i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; } - cb(); + } + module.exports = require_common()(exports); + var { formatters } = module.exports; + formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split(` +`).map((str) => str.trim()).join(" "); }; - MatcherStream.prototype._flush = function(cb) { - if (this.data.length > 0) { - var firstIteration = true; - while (this.checkDataChunk(!firstIteration)) { - firstIteration = false; - } - } - if (this.data.length > 0) { - this.push(this.data); - this.data = null; - } - cb(); + formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); }; - module.exports = MatcherStream; }); -// node_modules/unzip-stream/lib/entry.js -var require_entry = __commonJS((exports, module) => { - var stream = __require("stream"); - var inherits = __require("util").inherits; - function Entry() { - if (!(this instanceof Entry)) { - return new Entry; - } - stream.PassThrough.call(this); - this.path = null; - this.type = null; - this.isDirectory = false; - } - inherits(Entry, stream.PassThrough); - Entry.prototype.autodrain = function() { - return this.pipe(new stream.Transform({ transform: function(d, e, cb) { - cb(); - } })); - }; - module.exports = Entry; +// node_modules/debug/src/index.js +var require_src = __commonJS((exports, module) => { + if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) { + module.exports = require_browser(); + } else { + module.exports = require_node(); + } }); -// node_modules/unzip-stream/lib/unzip-stream.js -var require_unzip_stream = __commonJS((exports, module) => { - var binary = require_binary(); - var stream = __require("stream"); - var util = __require("util"); - var zlib = __require("zlib"); - var MatcherStream = require_matcher_stream(); - var Entry = require_entry(); - var states = { - STREAM_START: 0, - START: 1, - LOCAL_FILE_HEADER: 2, - LOCAL_FILE_HEADER_SUFFIX: 3, - FILE_DATA: 4, - FILE_DATA_END: 5, - DATA_DESCRIPTOR: 6, - CENTRAL_DIRECTORY_FILE_HEADER: 7, - CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX: 8, - CDIR64_END: 9, - CDIR64_END_DATA_SECTOR: 10, - CDIR64_LOCATOR: 11, - CENTRAL_DIRECTORY_END: 12, - CENTRAL_DIRECTORY_END_COMMENT: 13, - TRAILING_JUNK: 14, - ERROR: 99 - }; - var FOUR_GIGS = 4294967296; - var SIG_LOCAL_FILE_HEADER = 67324752; - var SIG_DATA_DESCRIPTOR = 134695760; - var SIG_CDIR_RECORD = 33639248; - var SIG_CDIR64_RECORD_END = 101075792; - var SIG_CDIR64_LOCATOR_END = 117853008; - var SIG_CDIR_RECORD_END = 101010256; - function UnzipStream(options) { - if (!(this instanceof UnzipStream)) { - return new UnzipStream(options); - } - stream.Transform.call(this); - this.options = options || {}; - this.data = new Buffer(""); - this.state = states.STREAM_START; - this.skippedBytes = 0; - this.parsedEntity = null; - this.outStreamInfo = {}; - } - util.inherits(UnzipStream, stream.Transform); - UnzipStream.prototype.processDataChunk = function(chunk) { - var requiredLength; - switch (this.state) { - case states.STREAM_START: - case states.START: - requiredLength = 4; - break; - case states.LOCAL_FILE_HEADER: - requiredLength = 26; - break; - case states.LOCAL_FILE_HEADER_SUFFIX: - requiredLength = this.parsedEntity.fileNameLength + this.parsedEntity.extraFieldLength; - break; - case states.DATA_DESCRIPTOR: - requiredLength = 12; - break; - case states.CENTRAL_DIRECTORY_FILE_HEADER: - requiredLength = 42; - break; - case states.CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX: - requiredLength = this.parsedEntity.fileNameLength + this.parsedEntity.extraFieldLength + this.parsedEntity.fileCommentLength; - break; - case states.CDIR64_END: - requiredLength = 52; - break; - case states.CDIR64_END_DATA_SECTOR: - requiredLength = this.parsedEntity.centralDirectoryRecordSize - 44; - break; - case states.CDIR64_LOCATOR: - requiredLength = 16; - break; - case states.CENTRAL_DIRECTORY_END: - requiredLength = 18; - break; - case states.CENTRAL_DIRECTORY_END_COMMENT: - requiredLength = this.parsedEntity.commentLength; - break; - case states.FILE_DATA: - return 0; - case states.FILE_DATA_END: - return 0; - case states.TRAILING_JUNK: - if (this.options.debug) - console.log("found", chunk.length, "bytes of TRAILING_JUNK"); - return chunk.length; - default: - return chunk.length; - } - var chunkLength = chunk.length; - if (chunkLength < requiredLength) { - return 0; - } - switch (this.state) { - case states.STREAM_START: - case states.START: - var signature = chunk.readUInt32LE(0); - switch (signature) { - case SIG_LOCAL_FILE_HEADER: - this.state = states.LOCAL_FILE_HEADER; - break; - case SIG_CDIR_RECORD: - this.state = states.CENTRAL_DIRECTORY_FILE_HEADER; - break; - case SIG_CDIR64_RECORD_END: - this.state = states.CDIR64_END; - break; - case SIG_CDIR64_LOCATOR_END: - this.state = states.CDIR64_LOCATOR; - break; - case SIG_CDIR_RECORD_END: - this.state = states.CENTRAL_DIRECTORY_END; - break; - default: - var isStreamStart = this.state === states.STREAM_START; - if (!isStreamStart && (signature & 65535) !== 19280 && this.skippedBytes < 26) { - var remaining = signature; - var toSkip = 4; - for (var i = 1;i < 4 && remaining !== 0; i++) { - remaining = remaining >>> 8; - if ((remaining & 255) === 80) { - toSkip = i; - break; - } - } - this.skippedBytes += toSkip; - if (this.options.debug) - console.log("Skipped", this.skippedBytes, "bytes"); - return toSkip; - } - this.state = states.ERROR; - var errMsg = isStreamStart ? "Not a valid zip file" : "Invalid signature in zip file"; - if (this.options.debug) { - var sig = chunk.readUInt32LE(0); - var asString; - try { - asString = chunk.slice(0, 4).toString(); - } catch (e) { - } - console.log("Unexpected signature in zip file: 0x" + sig.toString(16), '"' + asString + '", skipped', this.skippedBytes, "bytes"); - } - this.emit("error", new Error(errMsg)); - return chunk.length; - } - this.skippedBytes = 0; - return requiredLength; - case states.LOCAL_FILE_HEADER: - this.parsedEntity = this._readFile(chunk); - this.state = states.LOCAL_FILE_HEADER_SUFFIX; - return requiredLength; - case states.LOCAL_FILE_HEADER_SUFFIX: - var entry = new Entry; - var isUtf8 = (this.parsedEntity.flags & 2048) !== 0; - entry.path = this._decodeString(chunk.slice(0, this.parsedEntity.fileNameLength), isUtf8); - var extraDataBuffer = chunk.slice(this.parsedEntity.fileNameLength, this.parsedEntity.fileNameLength + this.parsedEntity.extraFieldLength); - var extra = this._readExtraFields(extraDataBuffer); - if (extra && extra.parsed) { - if (extra.parsed.path && !isUtf8) { - entry.path = extra.parsed.path; - } - if (Number.isFinite(extra.parsed.uncompressedSize) && this.parsedEntity.uncompressedSize === FOUR_GIGS - 1) { - this.parsedEntity.uncompressedSize = extra.parsed.uncompressedSize; - } - if (Number.isFinite(extra.parsed.compressedSize) && this.parsedEntity.compressedSize === FOUR_GIGS - 1) { - this.parsedEntity.compressedSize = extra.parsed.compressedSize; - } - } - this.parsedEntity.extra = extra.parsed || {}; - if (this.options.debug) { - const debugObj = Object.assign({}, this.parsedEntity, { - path: entry.path, - flags: "0x" + this.parsedEntity.flags.toString(16), - extraFields: extra && extra.debug - }); - console.log("decoded LOCAL_FILE_HEADER:", JSON.stringify(debugObj, null, 2)); - } - this._prepareOutStream(this.parsedEntity, entry); - this.emit("entry", entry); - this.state = states.FILE_DATA; - return requiredLength; - case states.CENTRAL_DIRECTORY_FILE_HEADER: - this.parsedEntity = this._readCentralDirectoryEntry(chunk); - this.state = states.CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX; - return requiredLength; - case states.CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX: - var isUtf8 = (this.parsedEntity.flags & 2048) !== 0; - var path = this._decodeString(chunk.slice(0, this.parsedEntity.fileNameLength), isUtf8); - var extraDataBuffer = chunk.slice(this.parsedEntity.fileNameLength, this.parsedEntity.fileNameLength + this.parsedEntity.extraFieldLength); - var extra = this._readExtraFields(extraDataBuffer); - if (extra && extra.parsed && extra.parsed.path && !isUtf8) { - path = extra.parsed.path; - } - this.parsedEntity.extra = extra.parsed; - var isUnix = (this.parsedEntity.versionMadeBy & 65280) >> 8 === 3; - var unixAttrs, isSymlink; - if (isUnix) { - unixAttrs = this.parsedEntity.externalFileAttributes >>> 16; - var fileType = unixAttrs >>> 12; - isSymlink = (fileType & 10) === 10; - } - if (this.options.debug) { - const debugObj = Object.assign({}, this.parsedEntity, { - path, - flags: "0x" + this.parsedEntity.flags.toString(16), - unixAttrs: unixAttrs && "0" + unixAttrs.toString(8), - isSymlink, - extraFields: extra.debug - }); - console.log("decoded CENTRAL_DIRECTORY_FILE_HEADER:", JSON.stringify(debugObj, null, 2)); - } - this.state = states.START; - return requiredLength; - case states.CDIR64_END: - this.parsedEntity = this._readEndOfCentralDirectory64(chunk); - if (this.options.debug) { - console.log("decoded CDIR64_END_RECORD:", this.parsedEntity); - } - this.state = states.CDIR64_END_DATA_SECTOR; - return requiredLength; - case states.CDIR64_END_DATA_SECTOR: - this.state = states.START; - return requiredLength; - case states.CDIR64_LOCATOR: - this.state = states.START; - return requiredLength; - case states.CENTRAL_DIRECTORY_END: - this.parsedEntity = this._readEndOfCentralDirectory(chunk); - if (this.options.debug) { - console.log("decoded CENTRAL_DIRECTORY_END:", this.parsedEntity); - } - this.state = states.CENTRAL_DIRECTORY_END_COMMENT; - return requiredLength; - case states.CENTRAL_DIRECTORY_END_COMMENT: - if (this.options.debug) { - console.log("decoded CENTRAL_DIRECTORY_END_COMMENT:", chunk.slice(0, requiredLength).toString()); - } - this.state = states.TRAILING_JUNK; - return requiredLength; - case states.ERROR: - return chunk.length; - default: - console.log("didn't handle state #", this.state, "discarding"); - return chunk.length; - } +// node_modules/@kwsites/file-exists/dist/src/index.js +var require_src2 = __commonJS((exports) => { + var __importDefault = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { default: mod }; }; - UnzipStream.prototype._prepareOutStream = function(vars, entry) { - var self2 = this; - var isDirectory = vars.uncompressedSize === 0 && /[\/\\]$/.test(entry.path); - entry.path = entry.path.replace(/(?<=^|[/\\]+)[.][.]+(?=[/\\]+|$)/g, "."); - entry.type = isDirectory ? "Directory" : "File"; - entry.isDirectory = isDirectory; - var fileSizeKnown = !(vars.flags & 8); - if (fileSizeKnown) { - entry.size = vars.uncompressedSize; - } - var isVersionSupported = vars.versionsNeededToExtract <= 45; - this.outStreamInfo = { - stream: null, - limit: fileSizeKnown ? vars.compressedSize : -1, - written: 0 - }; - if (!fileSizeKnown) { - var pattern = new Buffer(4); - pattern.writeUInt32LE(SIG_DATA_DESCRIPTOR, 0); - var zip64Mode = vars.extra.zip64Mode; - var extraSize = zip64Mode ? 20 : 12; - var searchPattern = { - pattern, - requiredExtraSize: extraSize - }; - var matcherStream = new MatcherStream(searchPattern, function(matchedChunk, sizeSoFar) { - var vars2 = self2._readDataDescriptor(matchedChunk, zip64Mode); - var compressedSizeMatches = vars2.compressedSize === sizeSoFar; - if (!zip64Mode && !compressedSizeMatches && sizeSoFar >= FOUR_GIGS) { - var overflown = sizeSoFar - FOUR_GIGS; - while (overflown >= 0) { - compressedSizeMatches = vars2.compressedSize === overflown; - if (compressedSizeMatches) - break; - overflown -= FOUR_GIGS; - } - } - if (!compressedSizeMatches) { - return; - } - self2.state = states.FILE_DATA_END; - var sliceOffset = zip64Mode ? 24 : 16; - if (self2.data.length > 0) { - self2.data = Buffer.concat([matchedChunk.slice(sliceOffset), self2.data]); - } else { - self2.data = matchedChunk.slice(sliceOffset); - } + Object.defineProperty(exports, "__esModule", { value: true }); + var fs_1 = __require("fs"); + var debug_1 = __importDefault(require_src()); + var log = debug_1.default("@kwsites/file-exists"); + function check2(path, isFile, isDirectory) { + log(`checking %s`, path); + try { + const stat = fs_1.statSync(path); + if (stat.isFile() && isFile) { + log(`[OK] path represents a file`); return true; - }); - this.outStreamInfo.stream = matcherStream; - } else { - this.outStreamInfo.stream = new stream.PassThrough; - } - var isEncrypted = vars.flags & 1 || vars.flags & 64; - if (isEncrypted || !isVersionSupported) { - var message = isEncrypted ? "Encrypted files are not supported!" : "Zip version " + Math.floor(vars.versionsNeededToExtract / 10) + "." + vars.versionsNeededToExtract % 10 + " is not supported"; - entry.skip = true; - setImmediate(() => { - self2.emit("error", new Error(message)); - }); - this.outStreamInfo.stream.pipe(new Entry().autodrain()); - return; - } - var isCompressed = vars.compressionMethod > 0; - if (isCompressed) { - var inflater = zlib.createInflateRaw(); - inflater.on("error", function(err) { - self2.state = states.ERROR; - self2.emit("error", err); - }); - this.outStreamInfo.stream.pipe(inflater).pipe(entry); - } else { - this.outStreamInfo.stream.pipe(entry); - } - if (this._drainAllEntries) { - entry.autodrain(); - } - }; - UnzipStream.prototype._readFile = function(data) { - var vars = binary.parse(data).word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").vars; - return vars; - }; - UnzipStream.prototype._readExtraFields = function(data) { - var extra = {}; - var result = { parsed: extra }; - if (this.options.debug) { - result.debug = []; - } - var index = 0; - while (index < data.length) { - var vars = binary.parse(data).skip(index).word16lu("extraId").word16lu("extraSize").vars; - index += 4; - var fieldType = undefined; - switch (vars.extraId) { - case 1: - fieldType = "Zip64 extended information extra field"; - var z64vars = binary.parse(data.slice(index, index + vars.extraSize)).word64lu("uncompressedSize").word64lu("compressedSize").word64lu("offsetToLocalHeader").word32lu("diskStartNumber").vars; - if (z64vars.uncompressedSize !== null) { - extra.uncompressedSize = z64vars.uncompressedSize; - } - if (z64vars.compressedSize !== null) { - extra.compressedSize = z64vars.compressedSize; - } - extra.zip64Mode = true; - break; - case 10: - fieldType = "NTFS extra field"; - break; - case 21589: - fieldType = "extended timestamp"; - var timestampFields = data.readUInt8(index); - var offset = 1; - if (vars.extraSize >= offset + 4 && timestampFields & 1) { - extra.mtime = new Date(data.readUInt32LE(index + offset) * 1000); - offset += 4; - } - if (vars.extraSize >= offset + 4 && timestampFields & 2) { - extra.atime = new Date(data.readUInt32LE(index + offset) * 1000); - offset += 4; - } - if (vars.extraSize >= offset + 4 && timestampFields & 4) { - extra.ctime = new Date(data.readUInt32LE(index + offset) * 1000); - } - break; - case 28789: - fieldType = "Info-ZIP Unicode Path Extra Field"; - var fieldVer = data.readUInt8(index); - if (fieldVer === 1) { - var offset = 1; - var nameCrc32 = data.readUInt32LE(index + offset); - offset += 4; - var pathBuffer = data.slice(index + offset); - extra.path = pathBuffer.toString(); - } - break; - case 13: - case 22613: - fieldType = vars.extraId === 13 ? "PKWARE Unix" : "Info-ZIP UNIX (type 1)"; - var offset = 0; - if (vars.extraSize >= 8) { - var atime = new Date(data.readUInt32LE(index + offset) * 1000); - offset += 4; - var mtime = new Date(data.readUInt32LE(index + offset) * 1000); - offset += 4; - extra.atime = atime; - extra.mtime = mtime; - if (vars.extraSize >= 12) { - var uid = data.readUInt16LE(index + offset); - offset += 2; - var gid = data.readUInt16LE(index + offset); - offset += 2; - extra.uid = uid; - extra.gid = gid; - } - } - break; - case 30805: - fieldType = "Info-ZIP UNIX (type 2)"; - var offset = 0; - if (vars.extraSize >= 4) { - var uid = data.readUInt16LE(index + offset); - offset += 2; - var gid = data.readUInt16LE(index + offset); - offset += 2; - extra.uid = uid; - extra.gid = gid; - } - break; - case 30837: - fieldType = "Info-ZIP New Unix"; - var offset = 0; - var extraVer = data.readUInt8(index); - offset += 1; - if (extraVer === 1) { - var uidSize = data.readUInt8(index + offset); - offset += 1; - if (uidSize <= 6) { - extra.uid = data.readUIntLE(index + offset, uidSize); - } - offset += uidSize; - var gidSize = data.readUInt8(index + offset); - offset += 1; - if (gidSize <= 6) { - extra.gid = data.readUIntLE(index + offset, gidSize); - } - } - break; - case 30062: - fieldType = "ASi Unix"; - var offset = 0; - if (vars.extraSize >= 14) { - var crc = data.readUInt32LE(index + offset); - offset += 4; - var mode = data.readUInt16LE(index + offset); - offset += 2; - var sizdev = data.readUInt32LE(index + offset); - offset += 4; - var uid = data.readUInt16LE(index + offset); - offset += 2; - var gid = data.readUInt16LE(index + offset); - offset += 2; - extra.mode = mode; - extra.uid = uid; - extra.gid = gid; - if (vars.extraSize > 14) { - var start = index + offset; - var end = index + vars.extraSize - 14; - var symlinkName = this._decodeString(data.slice(start, end)); - extra.symlink = symlinkName; - } - } - break; } - if (this.options.debug) { - result.debug.push({ - extraId: "0x" + vars.extraId.toString(16), - description: fieldType, - data: data.slice(index, index + vars.extraSize).inspect() - }); + if (stat.isDirectory() && isDirectory) { + log(`[OK] path represents a directory`); + return true; } - index += vars.extraSize; - } - return result; - }; - UnzipStream.prototype._readDataDescriptor = function(data, zip64Mode) { - if (zip64Mode) { - var vars = binary.parse(data).word32lu("dataDescriptorSignature").word32lu("crc32").word64lu("compressedSize").word64lu("uncompressedSize").vars; - return vars; - } - var vars = binary.parse(data).word32lu("dataDescriptorSignature").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").vars; - return vars; - }; - UnzipStream.prototype._readCentralDirectoryEntry = function(data) { - var vars = binary.parse(data).word16lu("versionMadeBy").word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").word16lu("fileCommentLength").word16lu("diskNumber").word16lu("internalFileAttributes").word32lu("externalFileAttributes").word32lu("offsetToLocalFileHeader").vars; - return vars; - }; - UnzipStream.prototype._readEndOfCentralDirectory64 = function(data) { - var vars = binary.parse(data).word64lu("centralDirectoryRecordSize").word16lu("versionMadeBy").word16lu("versionsNeededToExtract").word32lu("diskNumber").word32lu("diskNumberWithCentralDirectoryStart").word64lu("centralDirectoryEntries").word64lu("totalCentralDirectoryEntries").word64lu("sizeOfCentralDirectory").word64lu("offsetToStartOfCentralDirectory").vars; - return vars; - }; - UnzipStream.prototype._readEndOfCentralDirectory = function(data) { - var vars = binary.parse(data).word16lu("diskNumber").word16lu("diskStart").word16lu("centralDirectoryEntries").word16lu("totalCentralDirectoryEntries").word32lu("sizeOfCentralDirectory").word32lu("offsetToStartOfCentralDirectory").word16lu("commentLength").vars; - return vars; - }; - var cp437 = "\x00ā˜ŗā˜»ā™„ā™¦ā™£ā™ ā€¢ā—˜ā—‹ā—™ā™‚ā™€ā™Ŗā™«ā˜¼ā–ŗā—„ā†•ā€¼Ā¶Ā§ā–¬ā†Øā†‘ā†“ā†’ā†āˆŸā†”ā–²ā–¼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~āŒ‚Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„ƧĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĀ¢Ā£Ā„ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā–  "; - UnzipStream.prototype._decodeString = function(buffer, isUtf8) { - if (isUtf8) { - return buffer.toString("utf8"); - } - if (this.options.decodeString) { - return this.options.decodeString(buffer); - } - let result = ""; - for (var i = 0;i < buffer.length; i++) { - result += cp437[buffer[i]]; - } - return result; - }; - UnzipStream.prototype._parseOrOutput = function(encoding, cb) { - var consume; - while ((consume = this.processDataChunk(this.data)) > 0) { - this.data = this.data.slice(consume); - if (this.data.length === 0) - break; + log(`[FAIL] path represents something other than a file or directory`); + return false; + } catch (e) { + if (e.code === "ENOENT") { + log(`[FAIL] path is not accessible: %o`, e); + return false; + } + log(`[FATAL] %o`, e); + throw e; } - if (this.state === states.FILE_DATA) { - if (this.outStreamInfo.limit >= 0) { - var remaining = this.outStreamInfo.limit - this.outStreamInfo.written; - var packet; - if (remaining < this.data.length) { - packet = this.data.slice(0, remaining); - this.data = this.data.slice(remaining); - } else { - packet = this.data; - this.data = new Buffer(""); + } + function exists(path, type = exports.READABLE) { + return check2(path, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); + } + exports.exists = exists; + exports.FILE = 1; + exports.FOLDER = 2; + exports.READABLE = exports.FILE + exports.FOLDER; +}); + +// node_modules/@kwsites/file-exists/dist/index.js +var require_dist = __commonJS((exports) => { + function __export2(m) { + for (var p in m) + if (!exports.hasOwnProperty(p)) + exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export2(require_src2()); +}); + +// node_modules/@kwsites/promise-deferred/dist/index.js +var require_dist2 = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createDeferred = exports.deferred = undefined; + function deferred() { + let done; + let fail; + let status = "pending"; + const promise = new Promise((_done, _fail) => { + done = _done; + fail = _fail; + }); + return { + promise, + done(result) { + if (status === "pending") { + status = "resolved"; + done(result); } - this.outStreamInfo.written += packet.length; - if (this.outStreamInfo.limit === this.outStreamInfo.written) { - this.state = states.START; - this.outStreamInfo.stream.end(packet, encoding, cb); - } else { - this.outStreamInfo.stream.write(packet, encoding, cb); + }, + fail(error) { + if (status === "pending") { + status = "rejected"; + fail(error); } - } else { - var packet = this.data; - this.data = new Buffer(""); - this.outStreamInfo.written += packet.length; - var outputStream = this.outStreamInfo.stream; - outputStream.write(packet, encoding, () => { - if (this.state === states.FILE_DATA_END) { - this.state = states.START; - return outputStream.end(cb); - } - cb(); - }); - } - return; - } - cb(); - }; - UnzipStream.prototype.drainAll = function() { - this._drainAllEntries = true; - }; - UnzipStream.prototype._transform = function(chunk, encoding, cb) { - var self2 = this; - if (self2.data.length > 0) { - self2.data = Buffer.concat([self2.data, chunk]); - } else { - self2.data = chunk; - } - var startDataLength = self2.data.length; - var done = function() { - if (self2.data.length > 0 && self2.data.length < startDataLength) { - startDataLength = self2.data.length; - self2._parseOrOutput(encoding, done); - return; + }, + get fulfilled() { + return status !== "pending"; + }, + get status() { + return status; } - cb(); }; - self2._parseOrOutput(encoding, done); - }; - UnzipStream.prototype._flush = function(cb) { - var self2 = this; - if (self2.data.length > 0) { - self2._parseOrOutput("buffer", function() { - if (self2.data.length > 0) - return setImmediate(function() { - self2._flush(cb); - }); - cb(); - }); - return; - } - if (self2.state === states.FILE_DATA) { - return cb(new Error("Stream finished in an invalid state, uncompression failed")); - } - setImmediate(cb); - }; - module.exports = UnzipStream; + } + exports.deferred = deferred; + exports.createDeferred = deferred; + exports.default = deferred; }); -// node_modules/unzip-stream/lib/parser-stream.js -var require_parser_stream = __commonJS((exports, module) => { - var Transform = __require("stream").Transform; - var util = __require("util"); - var UnzipStream = require_unzip_stream(); - function ParserStream(opts) { - if (!(this instanceof ParserStream)) { - return new ParserStream(opts); - } - var transformOpts = opts || {}; - Transform.call(this, { readableObjectMode: true }); - this.opts = opts || {}; - this.unzipStream = new UnzipStream(this.opts); - var self2 = this; - this.unzipStream.on("entry", function(entry) { - self2.push(entry); - }); - this.unzipStream.on("error", function(error) { - self2.emit("error", error); - }); +// node_modules/rxjs/dist/cjs/internal/util/isFunction.js +var require_isFunction = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isFunction = undefined; + function isFunction(value) { + return typeof value === "function"; } - util.inherits(ParserStream, Transform); - ParserStream.prototype._transform = function(chunk, encoding, cb) { - this.unzipStream.write(chunk, encoding, cb); - }; - ParserStream.prototype._flush = function(cb) { - var self2 = this; - this.unzipStream.end(function() { - process.nextTick(function() { - self2.emit("close"); - }); - cb(); - }); - }; - ParserStream.prototype.on = function(eventName, fn) { - if (eventName === "entry") { - return Transform.prototype.on.call(this, "data", fn); - } - return Transform.prototype.on.call(this, eventName, fn); - }; - ParserStream.prototype.drainAll = function() { - this.unzipStream.drainAll(); - return this.pipe(new Transform({ objectMode: true, transform: function(d, e, cb) { - cb(); - } })); - }; - module.exports = ParserStream; + exports.isFunction = isFunction; }); -// node_modules/mkdirp/index.js -var require_mkdirp = __commonJS((exports, module) => { - var path = __require("path"); - var fs = __require("fs"); - var _0777 = parseInt("0777", 8); - module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; - function mkdirP(p, opts, f, made) { - if (typeof opts === "function") { - f = opts; - opts = {}; - } else if (!opts || typeof opts !== "object") { - opts = { mode: opts }; - } - var mode = opts.mode; - var xfs = opts.fs || fs; - if (mode === undefined) { - mode = _0777; - } - if (!made) - made = null; - var cb = f || function() { +// node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js +var require_createErrorClass = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createErrorClass = undefined; + function createErrorClass(createImpl) { + var _super = function(instance) { + Error.call(instance); + instance.stack = new Error().stack; }; - p = path.resolve(p); - xfs.mkdir(p, mode, function(er) { - if (!er) { - made = made || p; - return cb(null, made); - } - switch (er.code) { - case "ENOENT": - if (path.dirname(p) === p) - return cb(er); - mkdirP(path.dirname(p), opts, function(er2, made2) { - if (er2) - cb(er2, made2); - else - mkdirP(p, opts, cb, made2); - }); - break; - default: - xfs.stat(p, function(er2, stat) { - if (er2 || !stat.isDirectory()) - cb(er, made); - else - cb(null, made); - }); - break; - } - }); - } - mkdirP.sync = function sync(p, opts, made) { - if (!opts || typeof opts !== "object") { - opts = { mode: opts }; - } - var mode = opts.mode; - var xfs = opts.fs || fs; - if (mode === undefined) { - mode = _0777; - } - if (!made) - made = null; - p = path.resolve(p); - try { - xfs.mkdirSync(p, mode); - made = made || p; - } catch (err0) { - switch (err0.code) { - case "ENOENT": - made = sync(path.dirname(p), opts, made); - sync(p, opts, made); - break; - default: - var stat; - try { - stat = xfs.statSync(p); - } catch (err1) { - throw err0; - } - if (!stat.isDirectory()) - throw err0; - break; - } - } - return made; - }; -}); - -// node_modules/unzip-stream/lib/extract.js -var require_extract = __commonJS((exports, module) => { - var fs = __require("fs"); - var path = __require("path"); - var util = __require("util"); - var mkdirp = require_mkdirp(); - var Transform = __require("stream").Transform; - var UnzipStream = require_unzip_stream(); - function Extract(opts) { - if (!(this instanceof Extract)) - return new Extract(opts); - Transform.call(this); - this.opts = opts || {}; - this.unzipStream = new UnzipStream(this.opts); - this.unfinishedEntries = 0; - this.afterFlushWait = false; - this.createdDirectories = {}; - var self2 = this; - this.unzipStream.on("entry", this._processEntry.bind(this)); - this.unzipStream.on("error", function(error) { - self2.emit("error", error); - }); - } - util.inherits(Extract, Transform); - Extract.prototype._transform = function(chunk, encoding, cb) { - this.unzipStream.write(chunk, encoding, cb); - }; - Extract.prototype._flush = function(cb) { - var self2 = this; - var allDone = function() { - process.nextTick(function() { - self2.emit("close"); - }); - cb(); - }; - this.unzipStream.end(function() { - if (self2.unfinishedEntries > 0) { - self2.afterFlushWait = true; - return self2.on("await-finished", allDone); - } - allDone(); - }); - }; - Extract.prototype._processEntry = function(entry) { - var self2 = this; - var destPath = path.join(this.opts.path, entry.path); - var directory = entry.isDirectory ? destPath : path.dirname(destPath); - this.unfinishedEntries++; - var writeFileFn = function() { - var pipedStream = fs.createWriteStream(destPath); - pipedStream.on("close", function() { - self2.unfinishedEntries--; - self2._notifyAwaiter(); - }); - pipedStream.on("error", function(error) { - self2.emit("error", error); - }); - entry.pipe(pipedStream); - }; - if (this.createdDirectories[directory] || directory === ".") { - return writeFileFn(); - } - mkdirp(directory, function(err) { - if (err) - return self2.emit("error", err); - self2.createdDirectories[directory] = true; - if (entry.isDirectory) { - self2.unfinishedEntries--; - self2._notifyAwaiter(); - return; - } - writeFileFn(); - }); - }; - Extract.prototype._notifyAwaiter = function() { - if (this.afterFlushWait && this.unfinishedEntries === 0) { - this.emit("await-finished"); - this.afterFlushWait = false; - } - }; - module.exports = Extract; -}); - -// node_modules/rxjs/dist/cjs/internal/util/isFunction.js -var require_isFunction = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.isFunction = undefined; - function isFunction(value) { - return typeof value === "function"; - } - exports.isFunction = isFunction; -}); - -// node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js -var require_createErrorClass = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.createErrorClass = undefined; - function createErrorClass(createImpl) { - var _super = function(instance) { - Error.call(instance); - instance.stack = new Error().stack; - }; - var ctorFunc = createImpl(_super); - ctorFunc.prototype = Object.create(Error.prototype); - ctorFunc.prototype.constructor = ctorFunc; - return ctorFunc; + var ctorFunc = createImpl(_super); + ctorFunc.prototype = Object.create(Error.prototype); + ctorFunc.prototype.constructor = ctorFunc; + return ctorFunc; } exports.createErrorClass = createErrorClass; }); @@ -20759,7 +19603,7 @@ var require_Subscription = __commonJS((exports) => { this._finalizers = null; } Subscription2.prototype.unsubscribe = function() { - var e_1, _a, e_2, _b; + var e_1, _a2, e_2, _b; var errors2; if (!this.closed) { this.closed = true; @@ -20776,8 +19620,8 @@ var require_Subscription = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) - _a.call(_parentage_1); + if (_parentage_1_1 && !_parentage_1_1.done && (_a2 = _parentage_1.return)) + _a2.call(_parentage_1); } finally { if (e_1) throw e_1.error; @@ -20830,7 +19674,7 @@ var require_Subscription = __commonJS((exports) => { } }; Subscription2.prototype.add = function(teardown) { - var _a; + var _a2; if (teardown && teardown !== this) { if (this.closed) { execFinalizer(teardown); @@ -20841,7 +19685,7 @@ var require_Subscription = __commonJS((exports) => { } teardown._addParent(this); } - (this._finalizers = (_a = this._finalizers) !== null && _a !== undefined ? _a : []).push(teardown); + (this._finalizers = (_a2 = this._finalizers) !== null && _a2 !== undefined ? _a2 : []).push(teardown); } } }; @@ -21020,7 +19864,7 @@ var require_errorContext = __commonJS((exports) => { } cb(); if (isRoot) { - var _a = context, errorThrown = _a.errorThrown, error = _a.error; + var _a2 = context, errorThrown = _a2.errorThrown, error = _a2.error; context = null; if (errorThrown) { throw error; @@ -21315,7 +20159,7 @@ var require_Observable = __commonJS((exports) => { var _this = this; var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new Subscriber_1.SafeSubscriber(observerOrNext, error, complete); errorContext_1.errorContext(function() { - var _a = _this, operator = _a.operator, source = _a.source; + var _a2 = _this, operator = _a2.operator, source = _a2.source; subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); }); return subscriber; @@ -21347,8 +20191,8 @@ var require_Observable = __commonJS((exports) => { }); }; Observable2.prototype._subscribe = function(subscriber) { - var _a; - return (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber); + var _a2; + return (_a2 = this.source) === null || _a2 === undefined ? undefined : _a2.subscribe(subscriber); }; Observable2.prototype[observable_1.observable] = function() { return this; @@ -21381,8 +20225,8 @@ var require_Observable = __commonJS((exports) => { }(); exports.Observable = Observable; function getPromiseCtor(promiseCtor) { - var _a; - return (_a = promiseCtor !== null && promiseCtor !== undefined ? promiseCtor : config_1.config.Promise) !== null && _a !== undefined ? _a : Promise; + var _a2; + return (_a2 = promiseCtor !== null && promiseCtor !== undefined ? promiseCtor : config_1.config.Promise) !== null && _a2 !== undefined ? _a2 : Promise; } function isObserver(value) { return value && isFunction_1.isFunction(value.next) && isFunction_1.isFunction(value.error) && isFunction_1.isFunction(value.complete); @@ -21444,13 +20288,13 @@ var require_OperatorSubscriber = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.OperatorSubscriber = exports.createOperatorSubscriber = undefined; var Subscriber_1 = require_Subscriber(); - function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { - return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); + function createOperatorSubscriber(destination, onNext, onComplete, onError2, onFinalize) { + return new OperatorSubscriber(destination, onNext, onComplete, onError2, onFinalize); } exports.createOperatorSubscriber = createOperatorSubscriber; var OperatorSubscriber = function(_super) { __extends(OperatorSubscriber2, _super); - function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { + function OperatorSubscriber2(destination, onNext, onComplete, onError2, onFinalize, shouldUnsubscribe) { var _this = _super.call(this, destination) || this; _this.onFinalize = onFinalize; _this.shouldUnsubscribe = shouldUnsubscribe; @@ -21461,9 +20305,9 @@ var require_OperatorSubscriber = __commonJS((exports) => { destination.error(err); } } : _super.prototype._next; - _this._error = onError ? function(err) { + _this._error = onError2 ? function(err) { try { - onError(err); + onError2(err); } catch (err2) { destination.error(err2); } finally { @@ -21482,11 +20326,11 @@ var require_OperatorSubscriber = __commonJS((exports) => { return _this; } OperatorSubscriber2.prototype.unsubscribe = function() { - var _a; + var _a2; if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { var closed_1 = this.closed; _super.prototype.unsubscribe.call(this); - !closed_1 && ((_a = this.onFinalize) === null || _a === undefined || _a.call(this)); + !closed_1 && ((_a2 = this.onFinalize) === null || _a2 === undefined || _a2.call(this)); } }; return OperatorSubscriber2; @@ -21819,7 +20663,7 @@ var require_Subject = __commonJS((exports) => { Subject2.prototype.next = function(value) { var _this = this; errorContext_1.errorContext(function() { - var e_1, _a; + var e_1, _a2; _this._throwIfClosed(); if (!_this.isStopped) { if (!_this.currentObservers) { @@ -21834,8 +20678,8 @@ var require_Subject = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (_c && !_c.done && (_a = _b.return)) - _a.call(_b); + if (_c && !_c.done && (_a2 = _b.return)) + _a2.call(_b); } finally { if (e_1) throw e_1.error; @@ -21877,8 +20721,8 @@ var require_Subject = __commonJS((exports) => { }; Object.defineProperty(Subject2.prototype, "observed", { get: function() { - var _a; - return ((_a = this.observers) === null || _a === undefined ? undefined : _a.length) > 0; + var _a2; + return ((_a2 = this.observers) === null || _a2 === undefined ? undefined : _a2.length) > 0; }, enumerable: false, configurable: true @@ -21894,7 +20738,7 @@ var require_Subject = __commonJS((exports) => { }; Subject2.prototype._innerSubscribe = function(subscriber) { var _this = this; - var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; + var _a2 = this, hasError = _a2.hasError, isStopped = _a2.isStopped, observers = _a2.observers; if (hasError || isStopped) { return Subscription_1.EMPTY_SUBSCRIPTION; } @@ -21906,7 +20750,7 @@ var require_Subject = __commonJS((exports) => { }); }; Subject2.prototype._checkFinalizedStatuses = function(subscriber) { - var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; + var _a2 = this, hasError = _a2.hasError, thrownError = _a2.thrownError, isStopped = _a2.isStopped; if (hasError) { subscriber.error(thrownError); } else if (isStopped) { @@ -21933,20 +20777,20 @@ var require_Subject = __commonJS((exports) => { return _this; } AnonymousSubject2.prototype.next = function(value) { - var _a, _b; - (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.next) === null || _b === undefined || _b.call(_a, value); + var _a2, _b; + (_b = (_a2 = this.destination) === null || _a2 === undefined ? undefined : _a2.next) === null || _b === undefined || _b.call(_a2, value); }; AnonymousSubject2.prototype.error = function(err) { - var _a, _b; - (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.error) === null || _b === undefined || _b.call(_a, err); + var _a2, _b; + (_b = (_a2 = this.destination) === null || _a2 === undefined ? undefined : _a2.error) === null || _b === undefined || _b.call(_a2, err); }; AnonymousSubject2.prototype.complete = function() { - var _a, _b; - (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.complete) === null || _b === undefined || _b.call(_a); + var _a2, _b; + (_b = (_a2 = this.destination) === null || _a2 === undefined ? undefined : _a2.complete) === null || _b === undefined || _b.call(_a2); }; AnonymousSubject2.prototype._subscribe = function(subscriber) { - var _a, _b; - return (_b = (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber)) !== null && _b !== undefined ? _b : Subscription_1.EMPTY_SUBSCRIPTION; + var _a2, _b; + return (_b = (_a2 = this.source) === null || _a2 === undefined ? undefined : _a2.subscribe(subscriber)) !== null && _b !== undefined ? _b : Subscription_1.EMPTY_SUBSCRIPTION; }; return AnonymousSubject2; }(Subject); @@ -21999,7 +20843,7 @@ var require_BehaviorSubject = __commonJS((exports) => { return subscription; }; BehaviorSubject2.prototype.getValue = function() { - var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; + var _a2 = this, hasError = _a2.hasError, thrownError = _a2.thrownError, _value = _a2._value; if (hasError) { throw thrownError; } @@ -22077,7 +20921,7 @@ var require_ReplaySubject = __commonJS((exports) => { return _this; } ReplaySubject2.prototype.next = function(value) { - var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime; + var _a2 = this, isStopped = _a2.isStopped, _buffer = _a2._buffer, _infiniteTimeWindow = _a2._infiniteTimeWindow, _timestampProvider = _a2._timestampProvider, _windowTime = _a2._windowTime; if (!isStopped) { _buffer.push(value); !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); @@ -22089,7 +20933,7 @@ var require_ReplaySubject = __commonJS((exports) => { this._throwIfClosed(); this._trimBuffer(); var subscription = this._innerSubscribe(subscriber); - var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer; + var _a2 = this, _infiniteTimeWindow = _a2._infiniteTimeWindow, _buffer = _a2._buffer; var copy = _buffer.slice(); for (var i = 0;i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { subscriber.next(copy[i]); @@ -22098,16 +20942,16 @@ var require_ReplaySubject = __commonJS((exports) => { return subscription; }; ReplaySubject2.prototype._trimBuffer = function() { - var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow; + var _a2 = this, _bufferSize = _a2._bufferSize, _timestampProvider = _a2._timestampProvider, _buffer = _a2._buffer, _infiniteTimeWindow = _a2._infiniteTimeWindow; var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); if (!_infiniteTimeWindow) { var now = _timestampProvider.now(); - var last = 0; + var last2 = 0; for (var i = 1;i < _buffer.length && _buffer[i] <= now; i += 2) { - last = i; + last2 = i; } - last && _buffer.splice(0, last + 1); + last2 && _buffer.splice(0, last2 + 1); } }; return ReplaySubject2; @@ -22151,7 +20995,7 @@ var require_AsyncSubject = __commonJS((exports) => { return _this; } AsyncSubject2.prototype._checkFinalizedStatuses = function(subscriber) { - var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete; + var _a2 = this, hasError = _a2.hasError, _hasValue = _a2._hasValue, _value = _a2._value, thrownError = _a2.thrownError, isStopped = _a2.isStopped, _isComplete = _a2._isComplete; if (hasError) { subscriber.error(thrownError); } else if (isStopped || _isComplete) { @@ -22166,7 +21010,7 @@ var require_AsyncSubject = __commonJS((exports) => { } }; AsyncSubject2.prototype.complete = function() { - var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete; + var _a2 = this, _hasValue = _a2._hasValue, _value = _a2._value, _isComplete = _a2._isComplete; if (!_isComplete) { this._isComplete = true; _hasValue && _super.prototype.next.call(this, _value); @@ -22209,9 +21053,9 @@ var require_Action = __commonJS((exports) => { function Action2(scheduler, work) { return _super.call(this) || this; } - Action2.prototype.schedule = function(state, delay) { - if (delay === undefined) { - delay = 0; + Action2.prototype.schedule = function(state, delay2) { + if (delay2 === undefined) { + delay2 = 0; } return this; }; @@ -22307,10 +21151,10 @@ var require_AsyncAction = __commonJS((exports) => { _this.pending = false; return _this; } - AsyncAction2.prototype.schedule = function(state, delay) { - var _a; - if (delay === undefined) { - delay = 0; + AsyncAction2.prototype.schedule = function(state, delay2) { + var _a2; + if (delay2 === undefined) { + delay2 = 0; } if (this.closed) { return this; @@ -22319,24 +21163,24 @@ var require_AsyncAction = __commonJS((exports) => { var id = this.id; var scheduler = this.scheduler; if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, delay); + this.id = this.recycleAsyncId(scheduler, id, delay2); } this.pending = true; - this.delay = delay; - this.id = (_a = this.id) !== null && _a !== undefined ? _a : this.requestAsyncId(scheduler, this.id, delay); + this.delay = delay2; + this.id = (_a2 = this.id) !== null && _a2 !== undefined ? _a2 : this.requestAsyncId(scheduler, this.id, delay2); return this; }; - AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay) { - if (delay === undefined) { - delay = 0; + AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay2) { + if (delay2 === undefined) { + delay2 = 0; } - return intervalProvider_1.intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay); + return intervalProvider_1.intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay2); }; - AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay) { - if (delay === undefined) { - delay = 0; + AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay2) { + if (delay2 === undefined) { + delay2 = 0; } - if (delay != null && this.delay === delay && this.pending === false) { + if (delay2 != null && this.delay === delay2 && this.pending === false) { return id; } if (id != null) { @@ -22344,12 +21188,12 @@ var require_AsyncAction = __commonJS((exports) => { } return; }; - AsyncAction2.prototype.execute = function(state, delay) { + AsyncAction2.prototype.execute = function(state, delay2) { if (this.closed) { return new Error("executing a cancelled action"); } this.pending = false; - var error = this._execute(state, delay); + var error = this._execute(state, delay2); if (error) { return error; } else if (this.pending === false && this.id != null) { @@ -22372,7 +21216,7 @@ var require_AsyncAction = __commonJS((exports) => { }; AsyncAction2.prototype.unsubscribe = function() { if (!this.closed) { - var _a = this, id = _a.id, scheduler = _a.scheduler; + var _a2 = this, id = _a2.id, scheduler = _a2.scheduler; var actions = scheduler.actions; this.work = this.state = this.scheduler = null; this.pending = false; @@ -22511,26 +21355,26 @@ var require_AsapAction = __commonJS((exports) => { _this.work = work; return _this; } - AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay) { - if (delay === undefined) { - delay = 0; + AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { + if (delay2 === undefined) { + delay2 = 0; } - if (delay !== null && delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + if (delay2 !== null && delay2 > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); } scheduler.actions.push(this); return scheduler._scheduled || (scheduler._scheduled = immediateProvider_1.immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined))); }; - AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { - var _a; - if (delay === undefined) { - delay = 0; + AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { + var _a2; + if (delay2 === undefined) { + delay2 = 0; } - if (delay != null ? delay > 0 : this.delay > 0) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + if (delay2 != null ? delay2 > 0 : this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2); } var actions = scheduler.actions; - if (id != null && ((_a = actions[actions.length - 1]) === null || _a === undefined ? undefined : _a.id) !== id) { + if (id != null && ((_a2 = actions[actions.length - 1]) === null || _a2 === undefined ? undefined : _a2.id) !== id) { immediateProvider_1.immediateProvider.clearImmediate(id); if (scheduler._scheduled === id) { scheduler._scheduled = undefined; @@ -22548,24 +21392,24 @@ var require_Scheduler = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.Scheduler = undefined; var dateTimestampProvider_1 = require_dateTimestampProvider(); - var Scheduler = function() { - function Scheduler2(schedulerActionCtor, now) { + var Scheduler2 = function() { + function Scheduler3(schedulerActionCtor, now) { if (now === undefined) { - now = Scheduler2.now; + now = Scheduler3.now; } this.schedulerActionCtor = schedulerActionCtor; this.now = now; } - Scheduler2.prototype.schedule = function(work, delay, state) { - if (delay === undefined) { - delay = 0; + Scheduler3.prototype.schedule = function(work, delay2, state) { + if (delay2 === undefined) { + delay2 = 0; } - return new this.schedulerActionCtor(this, work).schedule(state, delay); + return new this.schedulerActionCtor(this, work).schedule(state, delay2); }; - Scheduler2.now = dateTimestampProvider_1.dateTimestampProvider.now; - return Scheduler2; + Scheduler3.now = dateTimestampProvider_1.dateTimestampProvider.now; + return Scheduler3; }(); - exports.Scheduler = Scheduler; + exports.Scheduler = Scheduler2; }); // node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js @@ -22741,27 +21585,27 @@ var require_QueueAction = __commonJS((exports) => { _this.work = work; return _this; } - QueueAction2.prototype.schedule = function(state, delay) { - if (delay === undefined) { - delay = 0; + QueueAction2.prototype.schedule = function(state, delay2) { + if (delay2 === undefined) { + delay2 = 0; } - if (delay > 0) { - return _super.prototype.schedule.call(this, state, delay); + if (delay2 > 0) { + return _super.prototype.schedule.call(this, state, delay2); } - this.delay = delay; + this.delay = delay2; this.state = state; this.scheduler.flush(this); return this; }; - QueueAction2.prototype.execute = function(state, delay) { - return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay); + QueueAction2.prototype.execute = function(state, delay2) { + return delay2 > 0 || this.closed ? _super.prototype.execute.call(this, state, delay2) : this._execute(state, delay2); }; - QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay) { - if (delay === undefined) { - delay = 0; + QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { + if (delay2 === undefined) { + delay2 = 0; } - if (delay != null && delay > 0 || delay == null && this.delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + if (delay2 != null && delay2 > 0 || delay2 == null && this.delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); } scheduler.flush(this); return 0; @@ -22852,28 +21696,28 @@ var require_AnimationFrameAction = __commonJS((exports) => { _this.work = work; return _this; } - AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay) { - if (delay === undefined) { - delay = 0; + AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { + if (delay2 === undefined) { + delay2 = 0; } - if (delay !== null && delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + if (delay2 !== null && delay2 > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); } scheduler.actions.push(this); return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function() { return scheduler.flush(undefined); })); }; - AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { - var _a; - if (delay === undefined) { - delay = 0; + AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { + var _a2; + if (delay2 === undefined) { + delay2 = 0; } - if (delay != null ? delay > 0 : this.delay > 0) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + if (delay2 != null ? delay2 > 0 : this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2); } var actions = scheduler.actions; - if (id != null && ((_a = actions[actions.length - 1]) === null || _a === undefined ? undefined : _a.id) !== id) { + if (id != null && ((_a2 = actions[actions.length - 1]) === null || _a2 === undefined ? undefined : _a2.id) !== id) { animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id); scheduler._scheduled = undefined; } @@ -22996,7 +21840,7 @@ var require_VirtualTimeScheduler = __commonJS((exports) => { return _this; } VirtualTimeScheduler2.prototype.flush = function() { - var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var _a2 = this, actions = _a2.actions, maxFrames = _a2.maxFrames; var error; var action; while ((action = actions[0]) && action.delay <= maxFrames) { @@ -23031,41 +21875,41 @@ var require_VirtualTimeScheduler = __commonJS((exports) => { _this.index = scheduler.index = index; return _this; } - VirtualAction2.prototype.schedule = function(state, delay) { - if (delay === undefined) { - delay = 0; + VirtualAction2.prototype.schedule = function(state, delay2) { + if (delay2 === undefined) { + delay2 = 0; } - if (Number.isFinite(delay)) { + if (Number.isFinite(delay2)) { if (!this.id) { - return _super.prototype.schedule.call(this, state, delay); + return _super.prototype.schedule.call(this, state, delay2); } this.active = false; var action = new VirtualAction2(this.scheduler, this.work); this.add(action); - return action.schedule(state, delay); + return action.schedule(state, delay2); } else { return Subscription_1.Subscription.EMPTY; } }; - VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay) { - if (delay === undefined) { - delay = 0; + VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { + if (delay2 === undefined) { + delay2 = 0; } - this.delay = scheduler.frame + delay; + this.delay = scheduler.frame + delay2; var actions = scheduler.actions; actions.push(this); actions.sort(VirtualAction2.sortActions); return 1; }; - VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { - if (delay === undefined) { - delay = 0; + VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { + if (delay2 === undefined) { + delay2 = 0; } return; }; - VirtualAction2.prototype._execute = function(state, delay) { + VirtualAction2.prototype._execute = function(state, delay2) { if (this.active === true) { - return _super.prototype._execute.call(this, state, delay); + return _super.prototype._execute.call(this, state, delay2); } }; VirtualAction2.sortActions = function(a, b) { @@ -23126,19 +21970,19 @@ var require_args = __commonJS((exports) => { exports.popNumber = exports.popScheduler = exports.popResultSelector = undefined; var isFunction_1 = require_isFunction(); var isScheduler_1 = require_isScheduler(); - function last(arr) { + function last2(arr) { return arr[arr.length - 1]; } function popResultSelector(args) { - return isFunction_1.isFunction(last(args)) ? args.pop() : undefined; + return isFunction_1.isFunction(last2(args)) ? args.pop() : undefined; } exports.popResultSelector = popResultSelector; function popScheduler(args) { - return isScheduler_1.isScheduler(last(args)) ? args.pop() : undefined; + return isScheduler_1.isScheduler(last2(args)) ? args.pop() : undefined; } exports.popScheduler = popScheduler; function popNumber(args, defaultValue) { - return typeof last(args) === "number" ? args.pop() : defaultValue; + return typeof last2(args) === "number" ? args.pop() : defaultValue; } exports.popNumber = popNumber; }); @@ -23344,7 +22188,7 @@ var require_isReadableStreamLike = __commonJS((exports) => { var isFunction_1 = require_isFunction(); function readableStreamLikeToAsyncGenerator(readableStream) { return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() { - var reader, _a, value, done; + var reader, _a2, value, done; return __generator(this, function(_b) { switch (_b.label) { case 0: @@ -23358,7 +22202,7 @@ var require_isReadableStreamLike = __commonJS((exports) => { ; return [4, __await(reader.read())]; case 3: - _a = _b.sent(), value = _a.value, done = _a.done; + _a2 = _b.sent(), value = _a2.value, done = _a2.done; if (!done) return [3, 5]; return [4, __await(undefined)]; @@ -23602,7 +22446,7 @@ var require_innerFrom = __commonJS((exports) => { exports.fromPromise = fromPromise; function fromIterable(iterable) { return new Observable_1.Observable(function(subscriber) { - var e_1, _a; + var e_1, _a2; try { for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next();!iterable_1_1.done; iterable_1_1 = iterable_1.next()) { var value = iterable_1_1.value; @@ -23615,8 +22459,8 @@ var require_innerFrom = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) - _a.call(iterable_1); + if (iterable_1_1 && !iterable_1_1.done && (_a2 = iterable_1.return)) + _a2.call(iterable_1); } finally { if (e_1) throw e_1.error; @@ -23640,7 +22484,7 @@ var require_innerFrom = __commonJS((exports) => { exports.fromReadableStreamLike = fromReadableStreamLike; function process11(asyncIterable, subscriber) { var asyncIterable_1, asyncIterable_1_1; - var e_2, _a; + var e_2, _a2; return __awaiter(this, undefined, undefined, function() { var value, e_2_1; return __generator(this, function(_b) { @@ -23670,9 +22514,9 @@ var require_innerFrom = __commonJS((exports) => { return [3, 11]; case 6: _b.trys.push([6, , 9, 10]); - if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) + if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a2 = asyncIterable_1.return))) return [3, 8]; - return [4, _a.call(asyncIterable_1)]; + return [4, _a2.call(asyncIterable_1)]; case 7: _b.sent(); _b.label = 8; @@ -23697,9 +22541,9 @@ var require_innerFrom = __commonJS((exports) => { var require_executeSchedule = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.executeSchedule = undefined; - function executeSchedule(parentSubscription, scheduler, work, delay, repeat) { - if (delay === undefined) { - delay = 0; + function executeSchedule(parentSubscription, scheduler, work, delay2, repeat) { + if (delay2 === undefined) { + delay2 = 0; } if (repeat === undefined) { repeat = false; @@ -23707,11 +22551,11 @@ var require_executeSchedule = __commonJS((exports) => { var scheduleSubscription = scheduler.schedule(function() { work(); if (repeat) { - parentSubscription.add(this.schedule(null, delay)); + parentSubscription.add(this.schedule(null, delay2)); } else { this.unsubscribe(); } - }, delay); + }, delay2); parentSubscription.add(scheduleSubscription); if (!repeat) { return scheduleSubscription; @@ -23727,23 +22571,23 @@ var require_observeOn = __commonJS((exports) => { var executeSchedule_1 = require_executeSchedule(); var lift_1 = require_lift(); var OperatorSubscriber_1 = require_OperatorSubscriber(); - function observeOn(scheduler, delay) { - if (delay === undefined) { - delay = 0; + function observeOn(scheduler, delay2) { + if (delay2 === undefined) { + delay2 = 0; } return lift_1.operate(function(source, subscriber) { source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { return subscriber.next(value); - }, delay); + }, delay2); }, function() { return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { return subscriber.complete(); - }, delay); + }, delay2); }, function(err) { return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { return subscriber.error(err); - }, delay); + }, delay2); })); }); } @@ -23755,14 +22599,14 @@ var require_subscribeOn = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.subscribeOn = undefined; var lift_1 = require_lift(); - function subscribeOn(scheduler, delay) { - if (delay === undefined) { - delay = 0; + function subscribeOn(scheduler, delay2) { + if (delay2 === undefined) { + delay2 = 0; } return lift_1.operate(function(source, subscriber) { subscriber.add(scheduler.schedule(function() { return source.subscribe(subscriber); - }, delay)); + }, delay2)); }); } exports.subscribeOn = subscribeOn; @@ -23831,11 +22675,11 @@ var require_scheduleIterable = __commonJS((exports) => { executeSchedule_1.executeSchedule(subscriber, scheduler, function() { iterator = input[iterator_1.iterator](); executeSchedule_1.executeSchedule(subscriber, scheduler, function() { - var _a; + var _a2; var value; var done; try { - _a = iterator.next(), value = _a.value, done = _a.done; + _a2 = iterator.next(), value = _a2.value, done = _a2.done; } catch (err) { subscriber.error(err); return; @@ -24012,15 +22856,15 @@ var require_Notification = __commonJS((exports) => { return observeNotification(this, observer); }; Notification2.prototype.do = function(nextHandler, errorHandler, completeHandler) { - var _a = this, kind = _a.kind, value = _a.value, error = _a.error; + var _a2 = this, kind = _a2.kind, value = _a2.value, error = _a2.error; return kind === "N" ? nextHandler === null || nextHandler === undefined ? undefined : nextHandler(value) : kind === "E" ? errorHandler === null || errorHandler === undefined ? undefined : errorHandler(error) : completeHandler === null || completeHandler === undefined ? undefined : completeHandler(); }; Notification2.prototype.accept = function(nextOrObserver, error, complete) { - var _a; - return isFunction_1.isFunction((_a = nextOrObserver) === null || _a === undefined ? undefined : _a.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete); + var _a2; + return isFunction_1.isFunction((_a2 = nextOrObserver) === null || _a2 === undefined ? undefined : _a2.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete); }; Notification2.prototype.toObservable = function() { - var _a = this, kind = _a.kind, value = _a.value, error = _a.error; + var _a2 = this, kind = _a2.kind, value = _a2.value, error = _a2.error; var result = kind === "N" ? of_1.of(value) : kind === "E" ? throwError_1.throwError(function() { return error; }) : kind === "C" ? empty_1.EMPTY : 0; @@ -24043,12 +22887,12 @@ var require_Notification = __commonJS((exports) => { }(); exports.Notification = Notification; function observeNotification(notification, observer) { - var _a, _b, _c; + var _a2, _b, _c; var _d = notification, kind = _d.kind, value = _d.value, error = _d.error; if (typeof kind !== "string") { throw new TypeError('Invalid notification, missing "kind"'); } - kind === "N" ? (_a = observer.next) === null || _a === undefined || _a.call(observer, value) : kind === "E" ? (_b = observer.error) === null || _b === undefined || _b.call(observer, error) : (_c = observer.complete) === null || _c === undefined || _c.call(observer); + kind === "N" ? (_a2 = observer.next) === null || _a2 === undefined || _a2.call(observer, value) : kind === "E" ? (_b = observer.error) === null || _b === undefined || _b.call(observer, error) : (_c = observer.complete) === null || _c === undefined || _c.call(observer); } exports.observeNotification = observeNotification; }); @@ -24214,8 +23058,8 @@ var require_timeout = __commonJS((exports) => { }; }); function timeout(config, schedulerArg) { - var _a = isDate_1.isValidDate(config) ? { first: config } : typeof config === "number" ? { each: config } : config, first = _a.first, each = _a.each, _b = _a.with, _with = _b === undefined ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === undefined ? schedulerArg !== null && schedulerArg !== undefined ? schedulerArg : async_1.asyncScheduler : _c, _d = _a.meta, meta = _d === undefined ? null : _d; - if (first == null && each == null) { + var _a2 = isDate_1.isValidDate(config) ? { first: config } : typeof config === "number" ? { each: config } : config, first2 = _a2.first, each = _a2.each, _b = _a2.with, _with = _b === undefined ? timeoutErrorFactory : _b, _c = _a2.scheduler, scheduler = _c === undefined ? schedulerArg !== null && schedulerArg !== undefined ? schedulerArg : async_1.asyncScheduler : _c, _d = _a2.meta, meta = _d === undefined ? null : _d; + if (first2 == null && each == null) { throw new TypeError("No timeout provided."); } return lift_1.operate(function(source, subscriber) { @@ -24223,7 +23067,7 @@ var require_timeout = __commonJS((exports) => { var timerSubscription; var lastValue = null; var seen = 0; - var startTimer = function(delay) { + var startTimer = function(delay2) { timerSubscription = executeSchedule_1.executeSchedule(subscriber, scheduler, function() { try { originalSourceSubscription.unsubscribe(); @@ -24235,7 +23079,7 @@ var require_timeout = __commonJS((exports) => { } catch (err) { subscriber.error(err); } - }, delay); + }, delay2); }; originalSourceSubscription = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { timerSubscription === null || timerSubscription === undefined || timerSubscription.unsubscribe(); @@ -24248,7 +23092,7 @@ var require_timeout = __commonJS((exports) => { } lastValue = null; })); - !seen && startTimer(first != null ? typeof first === "number" ? first : +first - scheduler.now() : each); + !seen && startTimer(first2 != null ? typeof first2 === "number" ? first2 : +first2 - scheduler.now() : each); }); } exports.timeout = timeout; @@ -24508,7 +23352,7 @@ var require_combineLatest = __commonJS((exports) => { } var scheduler = args_1.popScheduler(args); var resultSelector = args_1.popResultSelector(args); - var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys; + var _a2 = argsArgArrayOrObject_1.argsArgArrayOrObject(args), observables = _a2.args, keys = _a2.keys; if (observables.length === 0) { return from_1.from([], scheduler); } @@ -24736,7 +23580,7 @@ var require_connectable = __commonJS((exports) => { config = DEFAULT_CONFIG; } var connection = null; - var { connector, resetOnDisconnect: _a } = config, resetOnDisconnect = _a === undefined ? true : _a; + var { connector, resetOnDisconnect: _a2 } = config, resetOnDisconnect = _a2 === undefined ? true : _a2; var subject = connector(); var result = new Observable_1.Observable(function(subscriber) { return subject.subscribe(subscriber); @@ -24776,7 +23620,7 @@ var require_forkJoin = __commonJS((exports) => { args[_i] = arguments[_i]; } var resultSelector = args_1.popResultSelector(args); - var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys; + var _a2 = argsArgArrayOrObject_1.argsArgArrayOrObject(args), sources = _a2.args, keys = _a2.keys; var result = new Observable_1.Observable(function(subscriber) { var length = sources.length; if (!length) { @@ -24856,11 +23700,11 @@ var require_fromEvent = __commonJS((exports) => { if (resultSelector) { return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); } - var _a = __read(isEventTarget(target) ? eventTargetMethods.map(function(methodName) { + var _a2 = __read(isEventTarget(target) ? eventTargetMethods.map(function(methodName) { return function(handler) { return target[methodName](eventName, handler, options); }; - }) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add = _a[0], remove = _a[1]; + }) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add = _a2[0], remove2 = _a2[1]; if (!add) { if (isArrayLike_1.isArrayLike(target)) { return mergeMap_1.mergeMap(function(subTarget) { @@ -24881,7 +23725,7 @@ var require_fromEvent = __commonJS((exports) => { }; add(handler); return function() { - return remove(handler); + return remove2(handler); }; }); } @@ -25017,11 +23861,11 @@ var require_generate = __commonJS((exports) => { var defer_1 = require_defer(); var scheduleIterable_1 = require_scheduleIterable(); function generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) { - var _a, _b; + var _a2, _b; var resultSelector; var initialState; if (arguments.length === 1) { - _a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate = _a.iterate, _b = _a.resultSelector, resultSelector = _b === undefined ? identity_1.identity : _b, scheduler = _a.scheduler; + _a2 = initialStateOrOptions, initialState = _a2.initialState, condition = _a2.condition, iterate = _a2.iterate, _b = _a2.resultSelector, resultSelector = _b === undefined ? identity_1.identity : _b, scheduler = _a2.scheduler; } else { initialState = initialStateOrOptions; if (!resultSelectorOrScheduler || isScheduler_1.isScheduler(resultSelectorOrScheduler)) { @@ -25033,18 +23877,18 @@ var require_generate = __commonJS((exports) => { } function gen() { var state; - return __generator(this, function(_a2) { - switch (_a2.label) { + return __generator(this, function(_a3) { + switch (_a3.label) { case 0: state = initialState; - _a2.label = 1; + _a3.label = 1; case 1: if (!(!condition || condition(state))) return [3, 4]; return [4, resultSelector(state)]; case 2: - _a2.sent(); - _a2.label = 3; + _a3.sent(); + _a3.label = 3; case 3: state = iterate(state); return [3, 1]; @@ -25167,10 +24011,10 @@ var require_never = __commonJS((exports) => { var Observable_1 = require_Observable(); var noop_1 = require_noop(); exports.NEVER = new Observable_1.Observable(noop_1.noop); - function never() { + function never2() { return exports.NEVER; } - exports.never = never; + exports.never = never2; }); // node_modules/rxjs/dist/cjs/internal/util/argsOrArgArray.js @@ -25585,7 +24429,7 @@ var require_bufferCount = __commonJS((exports) => { var buffers = []; var count = 0; source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a, e_2, _b; + var e_1, _a2, e_2, _b; var toEmit = null; if (count++ % startBufferEvery === 0) { buffers.push([]); @@ -25603,8 +24447,8 @@ var require_bufferCount = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) - _a.call(buffers_1); + if (buffers_1_1 && !buffers_1_1.done && (_a2 = buffers_1.return)) + _a2.call(buffers_1); } finally { if (e_1) throw e_1.error; @@ -25630,7 +24474,7 @@ var require_bufferCount = __commonJS((exports) => { } } }, function() { - var e_3, _a; + var e_3, _a2; try { for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next();!buffers_2_1.done; buffers_2_1 = buffers_2.next()) { var buffer = buffers_2_1.value; @@ -25640,8 +24484,8 @@ var require_bufferCount = __commonJS((exports) => { e_3 = { error: e_3_1 }; } finally { try { - if (buffers_2_1 && !buffers_2_1.done && (_a = buffers_2.return)) - _a.call(buffers_2); + if (buffers_2_1 && !buffers_2_1.done && (_a2 = buffers_2.return)) + _a2.call(buffers_2); } finally { if (e_3) throw e_3.error; @@ -25682,12 +24526,12 @@ var require_bufferTime = __commonJS((exports) => { var args_1 = require_args(); var executeSchedule_1 = require_executeSchedule(); function bufferTime(bufferTimeSpan) { - var _a, _b; + var _a2, _b; var otherArgs = []; for (var _i = 1;_i < arguments.length; _i++) { otherArgs[_i - 1] = arguments[_i]; } - var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== undefined ? _a : async_1.asyncScheduler; + var scheduler = (_a2 = args_1.popScheduler(otherArgs)) !== null && _a2 !== undefined ? _a2 : async_1.asyncScheduler; var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== undefined ? _b : null; var maxBufferSize = otherArgs[1] || Infinity; return lift_1.operate(function(source, subscriber) { @@ -25722,7 +24566,7 @@ var require_bufferTime = __commonJS((exports) => { } startBuffer(); var bufferTimeSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a2; + var e_1, _a3; var recordsCopy = bufferRecords.slice(); try { for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next();!recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) { @@ -25735,8 +24579,8 @@ var require_bufferTime = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a2 = recordsCopy_1.return)) - _a2.call(recordsCopy_1); + if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a3 = recordsCopy_1.return)) + _a3.call(recordsCopy_1); } finally { if (e_1) throw e_1.error; @@ -25797,7 +24641,7 @@ var require_bufferToggle = __commonJS((exports) => { closingSubscription.add(innerFrom_1.innerFrom(closingSelector(openValue)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, emitBuffer, noop_1.noop))); }, noop_1.noop)); source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a; + var e_1, _a2; try { for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next();!buffers_1_1.done; buffers_1_1 = buffers_1.next()) { var buffer = buffers_1_1.value; @@ -25807,8 +24651,8 @@ var require_bufferToggle = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) - _a.call(buffers_1); + if (buffers_1_1 && !buffers_1_1.done && (_a2 = buffers_1.return)) + _a2.call(buffers_1); } finally { if (e_1) throw e_1.error; @@ -26436,7 +25280,7 @@ var require_delay = __commonJS((exports) => { var async_1 = require_async(); var delayWhen_1 = require_delayWhen(); var timer_1 = require_timer(); - function delay(due, scheduler) { + function delay2(due, scheduler) { if (scheduler === undefined) { scheduler = async_1.asyncScheduler; } @@ -26445,7 +25289,7 @@ var require_delay = __commonJS((exports) => { return duration; }); } - exports.delay = delay; + exports.delay = delay2; }); // node_modules/rxjs/dist/cjs/internal/operators/dematerialize.js @@ -26505,11 +25349,11 @@ var require_distinctUntilChanged = __commonJS((exports) => { comparator = comparator !== null && comparator !== undefined ? comparator : defaultCompare; return lift_1.operate(function(source, subscriber) { var previousKey; - var first = true; + var first2 = true; source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { var currentKey = keySelector(value); - if (first || !comparator(previousKey, currentKey)) { - first = false; + if (first2 || !comparator(previousKey, currentKey)) { + first2 = false; previousKey = currentKey; subscriber.next(value); } @@ -26799,7 +25643,7 @@ var require_first = __commonJS((exports) => { var defaultIfEmpty_1 = require_defaultIfEmpty(); var throwIfEmpty_1 = require_throwIfEmpty(); var identity_1 = require_identity(); - function first(predicate, defaultValue) { + function first2(predicate, defaultValue) { var hasDefaultValue = arguments.length >= 2; return function(source) { return source.pipe(predicate ? filter_1.filter(function(v, i) { @@ -26809,7 +25653,7 @@ var require_first = __commonJS((exports) => { })); }; } - exports.first = first; + exports.first = first2; }); // node_modules/rxjs/dist/cjs/internal/operators/groupBy.js @@ -26834,7 +25678,7 @@ var require_groupBy = __commonJS((exports) => { groups.forEach(cb); cb(subscriber); }; - var handleError = function(err) { + var handleError2 = function(err) { return notify(function(consumer) { return consumer.error(err); }); @@ -26861,13 +25705,13 @@ var require_groupBy = __commonJS((exports) => { } group_1.next(element ? element(value) : value); } catch (err) { - handleError(err); + handleError2(err); } }, function() { return notify(function(consumer) { return consumer.complete(); }); - }, handleError, function() { + }, handleError2, function() { return groups.clear(); }, function() { teardownAttempted = true; @@ -26941,7 +25785,7 @@ var require_takeLast = __commonJS((exports) => { buffer.push(value); count < buffer.length && buffer.shift(); }, function() { - var e_1, _a; + var e_1, _a2; try { for (var buffer_1 = __values(buffer), buffer_1_1 = buffer_1.next();!buffer_1_1.done; buffer_1_1 = buffer_1.next()) { var value = buffer_1_1.value; @@ -26951,8 +25795,8 @@ var require_takeLast = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) - _a.call(buffer_1); + if (buffer_1_1 && !buffer_1_1.done && (_a2 = buffer_1.return)) + _a2.call(buffer_1); } finally { if (e_1) throw e_1.error; @@ -26977,7 +25821,7 @@ var require_last = __commonJS((exports) => { var throwIfEmpty_1 = require_throwIfEmpty(); var defaultIfEmpty_1 = require_defaultIfEmpty(); var identity_1 = require_identity(); - function last(predicate, defaultValue) { + function last2(predicate, defaultValue) { var hasDefaultValue = arguments.length >= 2; return function(source) { return source.pipe(predicate ? filter_1.filter(function(v, i) { @@ -26987,7 +25831,7 @@ var require_last = __commonJS((exports) => { })); }; } - exports.last = last; + exports.last = last2; }); // node_modules/rxjs/dist/cjs/internal/operators/materialize.js @@ -27438,12 +26282,12 @@ var require_repeat = __commonJS((exports) => { var innerFrom_1 = require_innerFrom(); var timer_1 = require_timer(); function repeat(countOrConfig) { - var _a; + var _a2; var count = Infinity; - var delay; + var delay2; if (countOrConfig != null) { if (typeof countOrConfig === "object") { - _a = countOrConfig.count, count = _a === undefined ? Infinity : _a, delay = countOrConfig.delay; + _a2 = countOrConfig.count, count = _a2 === undefined ? Infinity : _a2, delay2 = countOrConfig.delay; } else { count = countOrConfig; } @@ -27456,8 +26300,8 @@ var require_repeat = __commonJS((exports) => { var resubscribe = function() { sourceSub === null || sourceSub === undefined || sourceSub.unsubscribe(); sourceSub = null; - if (delay != null) { - var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(soFar)); + if (delay2 != null) { + var notifier = typeof delay2 === "number" ? timer_1.timer(delay2) : innerFrom_1.innerFrom(delay2(soFar)); var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { notifierSubscriber_1.unsubscribe(); subscribeToSource(); @@ -27564,7 +26408,7 @@ var require_retry = __commonJS((exports) => { count: configOrCount }; } - var _a = config.count, count = _a === undefined ? Infinity : _a, delay = config.delay, _b = config.resetOnSuccess, resetOnSuccess = _b === undefined ? false : _b; + var _a2 = config.count, count = _a2 === undefined ? Infinity : _a2, delay2 = config.delay, _b = config.resetOnSuccess, resetOnSuccess = _b === undefined ? false : _b; return count <= 0 ? identity_1.identity : lift_1.operate(function(source, subscriber) { var soFar = 0; var innerSub; @@ -27586,8 +26430,8 @@ var require_retry = __commonJS((exports) => { syncUnsub = true; } }; - if (delay != null) { - var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(err, soFar)); + if (delay2 != null) { + var notifier = typeof delay2 === "number" ? timer_1.timer(delay2) : innerFrom_1.innerFrom(delay2(err, soFar)); var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { notifierSubscriber_1.unsubscribe(); resub_1(); @@ -27796,9 +26640,9 @@ var require_share = __commonJS((exports) => { if (options === undefined) { options = {}; } - var _a = options.connector, connector = _a === undefined ? function() { + var _a2 = options.connector, connector = _a2 === undefined ? function() { return new Subject_1.Subject; - } : _a, _b = options.resetOnError, resetOnError = _b === undefined ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === undefined ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === undefined ? true : _d; + } : _a2, _b = options.resetOnError, resetOnError = _b === undefined ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === undefined ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === undefined ? true : _d; return function(wrapperSource) { var connection; var resetConnection; @@ -27886,11 +26730,11 @@ var require_shareReplay = __commonJS((exports) => { var ReplaySubject_1 = require_ReplaySubject(); var share_1 = require_share(); function shareReplay(configOrBufferSize, windowTime, scheduler) { - var _a, _b, _c; + var _a2, _b, _c; var bufferSize; var refCount = false; if (configOrBufferSize && typeof configOrBufferSize === "object") { - _a = configOrBufferSize.bufferSize, bufferSize = _a === undefined ? Infinity : _a, _b = configOrBufferSize.windowTime, windowTime = _b === undefined ? Infinity : _b, _c = configOrBufferSize.refCount, refCount = _c === undefined ? false : _c, scheduler = configOrBufferSize.scheduler; + _a2 = configOrBufferSize.bufferSize, bufferSize = _a2 === undefined ? Infinity : _a2, _b = configOrBufferSize.windowTime, windowTime = _b === undefined ? Infinity : _b, _c = configOrBufferSize.refCount, refCount = _c === undefined ? false : _c, scheduler = configOrBufferSize.scheduler; } else { bufferSize = configOrBufferSize !== null && configOrBufferSize !== undefined ? configOrBufferSize : Infinity; } @@ -28182,27 +27026,27 @@ var require_tap = __commonJS((exports) => { function tap(observerOrNext, error, complete) { var tapObserver = isFunction_1.isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext; return tapObserver ? lift_1.operate(function(source, subscriber) { - var _a; - (_a = tapObserver.subscribe) === null || _a === undefined || _a.call(tapObserver); + var _a2; + (_a2 = tapObserver.subscribe) === null || _a2 === undefined || _a2.call(tapObserver); var isUnsub = true; source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var _a2; - (_a2 = tapObserver.next) === null || _a2 === undefined || _a2.call(tapObserver, value); + var _a3; + (_a3 = tapObserver.next) === null || _a3 === undefined || _a3.call(tapObserver, value); subscriber.next(value); }, function() { - var _a2; + var _a3; isUnsub = false; - (_a2 = tapObserver.complete) === null || _a2 === undefined || _a2.call(tapObserver); + (_a3 = tapObserver.complete) === null || _a3 === undefined || _a3.call(tapObserver); subscriber.complete(); }, function(err) { - var _a2; + var _a3; isUnsub = false; - (_a2 = tapObserver.error) === null || _a2 === undefined || _a2.call(tapObserver, err); + (_a3 = tapObserver.error) === null || _a3 === undefined || _a3.call(tapObserver, err); subscriber.error(err); }, function() { - var _a2, _b; + var _a3, _b; if (isUnsub) { - (_a2 = tapObserver.unsubscribe) === null || _a2 === undefined || _a2.call(tapObserver); + (_a3 = tapObserver.unsubscribe) === null || _a3 === undefined || _a3.call(tapObserver); } (_b = tapObserver.finalize) === null || _b === undefined || _b.call(tapObserver); })); @@ -28220,7 +27064,7 @@ var require_throttle = __commonJS((exports) => { var innerFrom_1 = require_innerFrom(); function throttle(durationSelector, config) { return lift_1.operate(function(source, subscriber) { - var _a = config !== null && config !== undefined ? config : {}, _b = _a.leading, leading = _b === undefined ? true : _b, _c = _a.trailing, trailing = _c === undefined ? false : _c; + var _a2 = config !== null && config !== undefined ? config : {}, _b = _a2.leading, leading = _b === undefined ? true : _b, _c = _a2.trailing, trailing = _c === undefined ? false : _c; var hasValue = false; var sendValue = null; var throttled = null; @@ -28293,11 +27137,11 @@ var require_timeInterval = __commonJS((exports) => { scheduler = async_1.asyncScheduler; } return lift_1.operate(function(source, subscriber) { - var last = scheduler.now(); + var last2 = scheduler.now(); source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { var now = scheduler.now(); - var interval = now - last; - last = now; + var interval = now - last2; + last2 = now; subscriber.next(new TimeInterval(value, interval)); })); }); @@ -28321,12 +27165,12 @@ var require_timeoutWith = __commonJS((exports) => { var isDate_1 = require_isDate(); var timeout_1 = require_timeout(); function timeoutWith(due, withObservable, scheduler) { - var first; + var first2; var each; var _with; scheduler = scheduler !== null && scheduler !== undefined ? scheduler : async_1.async; if (isDate_1.isValidDate(due)) { - first = due; + first2 = due; } else if (typeof due === "number") { each = due; } @@ -28337,11 +27181,11 @@ var require_timeoutWith = __commonJS((exports) => { } else { throw new TypeError("No observable provided to switch to"); } - if (first == null && each == null) { + if (first2 == null && each == null) { throw new TypeError("No timeout provided."); } return timeout_1.timeout({ - first, + first: first2, each, scheduler, with: _with @@ -28435,7 +27279,7 @@ var require_windowCount = __commonJS((exports) => { var count = 0; subscriber.next(windows[0].asObservable()); source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a; + var e_1, _a2; try { for (var windows_1 = __values(windows), windows_1_1 = windows_1.next();!windows_1_1.done; windows_1_1 = windows_1.next()) { var window_1 = windows_1_1.value; @@ -28445,8 +27289,8 @@ var require_windowCount = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (windows_1_1 && !windows_1_1.done && (_a = windows_1.return)) - _a.call(windows_1); + if (windows_1_1 && !windows_1_1.done && (_a2 = windows_1.return)) + _a2.call(windows_1); } finally { if (e_1) throw e_1.error; @@ -28493,12 +27337,12 @@ var require_windowTime = __commonJS((exports) => { var args_1 = require_args(); var executeSchedule_1 = require_executeSchedule(); function windowTime(windowTimeSpan) { - var _a, _b; + var _a2, _b; var otherArgs = []; for (var _i = 1;_i < arguments.length; _i++) { otherArgs[_i - 1] = arguments[_i]; } - var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== undefined ? _a : async_1.asyncScheduler; + var scheduler = (_a2 = args_1.popScheduler(otherArgs)) !== null && _a2 !== undefined ? _a2 : async_1.asyncScheduler; var windowCreationInterval = (_b = otherArgs[0]) !== null && _b !== undefined ? _b : null; var maxWindowSize = otherArgs[1] || Infinity; return lift_1.operate(function(source, subscriber) { @@ -28538,8 +27382,8 @@ var require_windowTime = __commonJS((exports) => { return windowRecords.slice().forEach(cb); }; var terminate = function(cb) { - loop(function(_a2) { - var window2 = _a2.window; + loop(function(_a3) { + var window2 = _a3.window; return cb(window2); }); cb(subscriber); @@ -28595,7 +27439,7 @@ var require_windowToggle = __commonJS((exports) => { function windowToggle(openings, closingSelector) { return lift_1.operate(function(source, subscriber) { var windows = []; - var handleError = function(err) { + var handleError2 = function(err) { while (0 < windows.length) { windows.shift().error(err); } @@ -28614,14 +27458,14 @@ var require_windowToggle = __commonJS((exports) => { try { closingNotifier = innerFrom_1.innerFrom(closingSelector(openValue)); } catch (err) { - handleError(err); + handleError2(err); return; } subscriber.next(window2.asObservable()); - closingSubscription.add(closingNotifier.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, closeWindow, noop_1.noop, handleError))); + closingSubscription.add(closingNotifier.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, closeWindow, noop_1.noop, handleError2))); }, noop_1.noop)); source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a; + var e_1, _a2; var windowsCopy = windows.slice(); try { for (var windowsCopy_1 = __values(windowsCopy), windowsCopy_1_1 = windowsCopy_1.next();!windowsCopy_1_1.done; windowsCopy_1_1 = windowsCopy_1.next()) { @@ -28632,8 +27476,8 @@ var require_windowToggle = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a = windowsCopy_1.return)) - _a.call(windowsCopy_1); + if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a2 = windowsCopy_1.return)) + _a2.call(windowsCopy_1); } finally { if (e_1) throw e_1.error; @@ -28644,7 +27488,7 @@ var require_windowToggle = __commonJS((exports) => { windows.shift().complete(); } subscriber.complete(); - }, handleError, function() { + }, handleError2, function() { while (0 < windows.length) { windows.shift().unsubscribe(); } @@ -28666,7 +27510,7 @@ var require_windowWhen = __commonJS((exports) => { return lift_1.operate(function(source, subscriber) { var window2; var closingSubscriber; - var handleError = function(err) { + var handleError2 = function(err) { window2.error(err); subscriber.error(err); }; @@ -28679,10 +27523,10 @@ var require_windowWhen = __commonJS((exports) => { try { closingNotifier = innerFrom_1.innerFrom(closingSelector()); } catch (err) { - handleError(err); + handleError2(err); return; } - closingNotifier.subscribe(closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openWindow, openWindow, handleError)); + closingNotifier.subscribe(closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openWindow, openWindow, handleError2)); }; openWindow(); source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { @@ -28690,7 +27534,7 @@ var require_windowWhen = __commonJS((exports) => { }, function() { window2.complete(); subscriber.complete(); - }, handleError, function() { + }, handleError2, function() { closingSubscriber === null || closingSubscriber === undefined || closingSubscriber.unsubscribe(); window2 = null; })); @@ -29870,9 +28714,9 @@ var init_prompt = __esm(() => { init_esm2(); import_ansi_escapes5 = __toESM(require_ansi_escapes(), 1); _2 = { - set: (obj, path3 = "", value) => { + set: (obj, path2 = "", value) => { let pointer = obj; - path3.split(".").forEach((key2, index, arr) => { + path2.split(".").forEach((key2, index, arr) => { if (key2 === "__proto__" || key2 === "constructor") return; if (index === arr.length - 1) { @@ -29883,8 +28727,8 @@ var init_prompt = __esm(() => { pointer = pointer[key2]; }); }, - get: (obj, path3 = "", defaultValue) => { - const travel = (regexp) => String.prototype.split.call(path3, regexp).filter(Boolean).reduce((res, key2) => res == null ? res : res[key2], obj); + get: (obj, path2 = "", defaultValue) => { + const travel = (regexp) => String.prototype.split.call(path2, regexp).filter(Boolean).reduce((res, key2) => res == null ? res : res[key2], obj); const result = travel(/[,[\]]+?/) || travel(/[,.[\]]+?/); return result === undefined || result === obj ? defaultValue : result; } @@ -29898,7 +28742,7 @@ var init_prompt = __esm(() => { // node_modules/inquirer/dist/esm/index.js var exports_esm = {}; __export(exports_esm, { - default: () => esm_default12, + default: () => esm_default13, createPromptModule: () => createPromptModule }); function createPromptModule(opt) { @@ -29923,7 +28767,7 @@ function registerPrompt(name, newPrompt) { function restoreDefaultPrompts() { prompt.restoreDefaultPrompts(); } -var builtInPrompts, prompt, inquirer, esm_default12; +var builtInPrompts, prompt, inquirer, esm_default13; var init_esm14 = __esm(() => { init_esm13(); init_prompt(); @@ -29951,7 +28795,7 @@ var init_esm14 = __esm(() => { restoreDefaultPrompts, Separator }; - esm_default12 = inquirer; + esm_default13 = inquirer; }); // node_modules/minimatch/lib/path.js @@ -30138,11 +28982,11 @@ var require_brace_expansion = __commonJS((exports, module) => { if (pad) { var need = width - c.length; if (need > 0) { - var z = new Array(need + 1).join("0"); + var z2 = new Array(need + 1).join("0"); if (i < 0) - c = "-" + z + c.slice(1); + c = "-" + z2 + c.slice(1); else - c = z + c; + c = z2 + c; } } } @@ -30733,7 +29577,7 @@ globstar while`, file, fr, pattern, pr, swallowee); var require_readdir_glob = __commonJS((exports, module) => { module.exports = readdirGlob; var fs3 = __require("fs"); - var { EventEmitter } = __require("events"); + var { EventEmitter: EventEmitter2 } = __require("events"); var { Minimatch } = require_minimatch(); var { resolve } = __require("path"); function readdir(dir, strict) { @@ -30840,7 +29684,7 @@ var require_readdir_glob = __commonJS((exports, module) => { }; } - class ReaddirGlob extends EventEmitter { + class ReaddirGlob extends EventEmitter2 { constructor(cwd, options, cb) { super(); if (typeof options === "function") { @@ -30975,7 +29819,7 @@ var require_async2 = __commonJS((exports, module) => { } var setImmediate$1 = wrap(_defer$1); function asyncify(func) { - if (isAsync(func)) { + if (isAsync2(func)) { return function(...args) { const callback = args.pop(); const promise = func.apply(this, args); @@ -31012,7 +29856,7 @@ var require_async2 = __commonJS((exports, module) => { }, err); } } - function isAsync(fn) { + function isAsync2(fn) { return fn[Symbol.toStringTag] === "AsyncFunction"; } function isAsyncGenerator(fn) { @@ -31024,7 +29868,7 @@ var require_async2 = __commonJS((exports, module) => { function wrapAsync(asyncFn) { if (typeof asyncFn !== "function") throw new Error("expected a function"); - return isAsync(asyncFn) ? asyncify(asyncFn) : asyncFn; + return isAsync2(asyncFn) ? asyncify(asyncFn) : asyncFn; } function awaitify(asyncFn, arity) { if (!arity) @@ -31072,7 +29916,7 @@ var require_async2 = __commonJS((exports, module) => { callback(err, results); }); } - function isArrayLike(value) { + function isArrayLike2(value) { return value && typeof value.length === "number" && value.length >= 0 && value.length % 1 === 0; } const breakLoop = {}; @@ -31120,7 +29964,7 @@ var require_async2 = __commonJS((exports, module) => { }; } function createIterator(coll) { - if (isArrayLike(coll)) { + if (isArrayLike2(coll)) { return createArrayIterator(coll); } var iterator = getIterator(coll); @@ -31160,14 +30004,14 @@ var require_async2 = __commonJS((exports, module) => { iteratee(value, idx, iterateeCallback); idx++; replenish(); - }).catch(handleError); + }).catch(handleError2); } function iterateeCallback(err, result) { running -= 1; if (canceled) return; if (err) - return handleError(err); + return handleError2(err); if (err === false) { done = true; canceled = true; @@ -31179,7 +30023,7 @@ var require_async2 = __commonJS((exports, module) => { } replenish(); } - function handleError(err) { + function handleError2(err) { if (canceled) return; awaiting = false; @@ -31274,7 +30118,7 @@ var require_async2 = __commonJS((exports, module) => { return eachOfLimit$1(coll, Infinity, iteratee, callback); } function eachOf(coll, iteratee, callback) { - var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric; + var eachOfImplementation = isArrayLike2(coll) ? eachOfArrayLike : eachOfGeneric; return eachOfImplementation(coll, wrapAsync(iteratee), callback); } var eachOf$1 = awaitify(eachOf, 3); @@ -31384,7 +30228,7 @@ var require_async2 = __commonJS((exports, module) => { function runTask(key2, task) { if (hasError) return; - var taskCallback = onlyOnce((err, ...result) => { + var taskCallback2 = onlyOnce((err, ...result) => { runningTasks--; if (err === false) { canceled = true; @@ -31412,9 +30256,9 @@ var require_async2 = __commonJS((exports, module) => { runningTasks++; var taskFn = wrapAsync(task[task.length - 1]); if (task.length > 1) { - taskFn(results, taskCallback); + taskFn(results, taskCallback2); } else { - taskFn(taskCallback); + taskFn(taskCallback2); } } function checkForDeadlocks() { @@ -31492,7 +30336,7 @@ Source: Object.keys(tasks).forEach((key2) => { var taskFn = tasks[key2]; var params; - var fnIsAsync = isAsync(taskFn); + var fnIsAsync = isAsync2(taskFn); var hasNoDeps = !fnIsAsync && taskFn.length === 1 || fnIsAsync && taskFn.length === 0; if (Array.isArray(taskFn)) { params = [...taskFn]; @@ -32023,7 +30867,7 @@ Source: } var eachSeries$1 = awaitify(eachSeries, 3); function ensureAsync(fn) { - if (isAsync(fn)) + if (isAsync2(fn)) return fn; return function(...args) { var callback = args.pop(); @@ -32051,7 +30895,7 @@ Source: return _createTester((bool) => !bool, (res) => !res)(eachOfSeries$1, coll, iteratee, callback); } var everySeries$1 = awaitify(everySeries, 3); - function filterArray(eachfn, arr, iteratee, callback) { + function filterArray2(eachfn, arr, iteratee, callback) { var truthValues = new Array(arr.length); eachfn(arr, (x, index2, iterCb) => { iteratee(x, (err, v) => { @@ -32087,7 +30931,7 @@ Source: }); } function _filter(eachfn, coll, iteratee, callback) { - var filter3 = isArrayLike(coll) ? filterArray : filterGeneric; + var filter3 = isArrayLike2(coll) ? filterArray2 : filterGeneric; return filter3(eachfn, coll, wrapAsync(iteratee), callback); } function filter2(coll, iteratee, callback) { @@ -32206,7 +31050,7 @@ Source: } var nextTick = wrap(_defer); var _parallel = awaitify((eachfn, tasks, callback) => { - var results = isArrayLike(tasks) ? [] : {}; + var results = isArrayLike2(tasks) ? [] : {}; eachfn(tasks, (task, key2, taskCb) => { wrapAsync(task)((err, ...result) => { if (result.length < 2) { @@ -32471,7 +31315,7 @@ Source: opts = null; } let arity = opts && opts.arity || task.length; - if (isAsync(task)) { + if (isAsync2(task)) { arity += 1; } var _task = wrapAsync(task); @@ -32987,7 +31831,7 @@ var require_util = __commonJS((exports) => { if (Array.isArray) { return Array.isArray(arg); } - return objectToString(arg) === "[object Array]"; + return objectToString2(arg) === "[object Array]"; } exports.isArray = isArray; function isBoolean(arg) { @@ -33019,7 +31863,7 @@ var require_util = __commonJS((exports) => { } exports.isUndefined = isUndefined; function isRegExp(re) { - return objectToString(re) === "[object RegExp]"; + return objectToString2(re) === "[object RegExp]"; } exports.isRegExp = isRegExp; function isObject(arg) { @@ -33027,11 +31871,11 @@ var require_util = __commonJS((exports) => { } exports.isObject = isObject; function isDate(d) { - return objectToString(d) === "[object Date]"; + return objectToString2(d) === "[object Date]"; } exports.isDate = isDate; function isError(e) { - return objectToString(e) === "[object Error]" || e instanceof Error; + return objectToString2(e) === "[object Error]" || e instanceof Error; } exports.isError = isError; function isFunction(arg) { @@ -33043,7 +31887,7 @@ var require_util = __commonJS((exports) => { } exports.isPrimitive = isPrimitive; exports.isBuffer = __require("buffer").Buffer.isBuffer; - function objectToString(o) { + function objectToString2(o) { return Object.prototype.toString.call(o); } }); @@ -33081,14 +31925,14 @@ var require_inherits_browser = __commonJS((exports, module) => { // node_modules/inherits/inherits.js var require_inherits = __commonJS((exports, module) => { try { - util = __require("util"); - if (typeof util.inherits !== "function") + util2 = __require("util"); + if (typeof util2.inherits !== "function") throw ""; - module.exports = util.inherits; + module.exports = util2.inherits; } catch (e) { module.exports = require_inherits_browser(); } - var util; + var util2; }); // node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/BufferList.js @@ -33099,7 +31943,7 @@ var require_BufferList = __commonJS((exports, module) => { } } var Buffer2 = require_safe_buffer().Buffer; - var util = __require("util"); + var util2 = __require("util"); function copyBuffer(src, target, offset) { src.copy(target, offset); } @@ -33166,9 +32010,9 @@ var require_BufferList = __commonJS((exports, module) => { }; return BufferList; }(); - if (util && util.inspect && util.inspect.custom) { - module.exports.prototype[util.inspect.custom] = function() { - var obj = util.inspect({ length: this.length }); + if (util2 && util2.inspect && util2.inspect.custom) { + module.exports.prototype[util2.inspect.custom] = function() { + var obj = util2.inspect({ length: this.length }); return this.constructor.name + " " + obj; }; } @@ -33241,7 +32085,7 @@ var require_destroy = __commonJS((exports, module) => { }); // node_modules/util-deprecate/node.js -var require_node = __commonJS((exports, module) => { +var require_node2 = __commonJS((exports, module) => { module.exports = __require("util").deprecate; }); @@ -33260,10 +32104,10 @@ var require__stream_writable = __commonJS((exports, module) => { var asyncWrite = ["v0.10", "v0.9."].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; var Duplex; Writable.WritableState = WritableState; - var util = Object.create(require_util()); - util.inherits = require_inherits(); + var util2 = Object.create(require_util()); + util2.inherits = require_inherits(); var internalUtil = { - deprecate: require_node() + deprecate: require_node2() }; var Stream = __require("stream"); var Buffer2 = require_safe_buffer().Buffer; @@ -33276,7 +32120,7 @@ var require__stream_writable = __commonJS((exports, module) => { return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; } var destroyImpl = require_destroy(); - util.inherits(Writable, Stream); + util2.inherits(Writable, Stream); function nop() { } function WritableState(options, stream) { @@ -33473,7 +32317,7 @@ var require__stream_writable = __commonJS((exports, module) => { if (!ret) state.needDrain = true; if (state.writing || state.corked) { - var last = state.lastBufferedRequest; + var last2 = state.lastBufferedRequest; state.lastBufferedRequest = { chunk, encoding, @@ -33481,8 +32325,8 @@ var require__stream_writable = __commonJS((exports, module) => { callback: cb, next: null }; - if (last) { - last.next = state.lastBufferedRequest; + if (last2) { + last2.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } @@ -33718,11 +32562,11 @@ var require__stream_duplex = __commonJS((exports, module) => { return keys2; }; module.exports = Duplex; - var util = Object.create(require_util()); - util.inherits = require_inherits(); + var util2 = Object.create(require_util()); + util2.inherits = require_inherits(); var Readable = require__stream_readable(); var Writable = require__stream_writable(); - util.inherits(Duplex, Readable); + util2.inherits(Duplex, Readable); { keys = objectKeys(Writable.prototype); for (v = 0;v < keys.length; v++) { @@ -34062,20 +32906,20 @@ var require__stream_readable = __commonJS((exports, module) => { function _isUint8Array(obj) { return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; } - var util = Object.create(require_util()); - util.inherits = require_inherits(); + var util2 = Object.create(require_util()); + util2.inherits = require_inherits(); var debugUtil = __require("util"); - var debug = undefined; + var debug2 = undefined; if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog("stream"); + debug2 = debugUtil.debuglog("stream"); } else { - debug = function() { + debug2 = function() { }; } var BufferList = require_BufferList(); var destroyImpl = require_destroy(); var StringDecoder; - util.inherits(Readable, Stream); + util2.inherits(Readable, Stream); var kProxyEvents = ["error", "close", "destroy", "pause", "resume"]; function prependListener(emitter, event, fn) { if (typeof emitter.prependListener === "function") @@ -34296,14 +33140,14 @@ var require__stream_readable = __commonJS((exports, module) => { return state.length; } Readable.prototype.read = function(n) { - debug("read", n); + debug2("read", n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; if (n !== 0) state.emittedReadable = false; if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug("read: emitReadable", state.length, state.ended); + debug2("read: emitReadable", state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this); else @@ -34317,16 +33161,16 @@ var require__stream_readable = __commonJS((exports, module) => { return null; } var doRead = state.needReadable; - debug("need readable", doRead); + debug2("need readable", doRead); if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; - debug("length less than watermark", doRead); + debug2("length less than watermark", doRead); } if (state.ended || state.reading) { doRead = false; - debug("reading or ended", doRead); + debug2("reading or ended", doRead); } else if (doRead) { - debug("do read"); + debug2("do read"); state.reading = true; state.sync = true; if (state.length === 0) @@ -34374,7 +33218,7 @@ var require__stream_readable = __commonJS((exports, module) => { var state = stream._readableState; state.needReadable = false; if (!state.emittedReadable) { - debug("emitReadable", state.flowing); + debug2("emitReadable", state.flowing); state.emittedReadable = true; if (state.sync) pna.nextTick(emitReadable_, stream); @@ -34383,7 +33227,7 @@ var require__stream_readable = __commonJS((exports, module) => { } } function emitReadable_(stream) { - debug("emit readable"); + debug2("emit readable"); stream.emit("readable"); flow(stream); } @@ -34396,7 +33240,7 @@ var require__stream_readable = __commonJS((exports, module) => { function maybeReadMore_(stream, state) { var len = state.length; while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug("maybeReadMore read 0"); + debug2("maybeReadMore read 0"); stream.read(0); if (len === state.length) break; @@ -34423,7 +33267,7 @@ var require__stream_readable = __commonJS((exports, module) => { break; } state.pipesCount += 1; - debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts); + debug2("pipe count=%d opts=%j", state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) @@ -34432,7 +33276,7 @@ var require__stream_readable = __commonJS((exports, module) => { src.once("end", endFn); dest.on("unpipe", onunpipe); function onunpipe(readable, unpipeInfo) { - debug("onunpipe"); + debug2("onunpipe"); if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; @@ -34441,14 +33285,14 @@ var require__stream_readable = __commonJS((exports, module) => { } } function onend() { - debug("onend"); + debug2("onend"); dest.end(); } var ondrain = pipeOnDrain(src); dest.on("drain", ondrain); var cleanedUp = false; function cleanup() { - debug("cleanup"); + debug2("cleanup"); dest.removeListener("close", onclose); dest.removeListener("finish", onfinish); dest.removeListener("drain", ondrain); @@ -34464,12 +33308,12 @@ var require__stream_readable = __commonJS((exports, module) => { var increasedAwaitDrain = false; src.on("data", ondata); function ondata(chunk) { - debug("ondata"); + debug2("ondata"); increasedAwaitDrain = false; var ret = dest.write(chunk); if (ret === false && !increasedAwaitDrain) { if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug("false write response, pause", state.awaitDrain); + debug2("false write response, pause", state.awaitDrain); state.awaitDrain++; increasedAwaitDrain = true; } @@ -34477,7 +33321,7 @@ var require__stream_readable = __commonJS((exports, module) => { } } function onerror(er) { - debug("onerror", er); + debug2("onerror", er); unpipe(); dest.removeListener("error", onerror); if (EElistenerCount(dest, "error") === 0) @@ -34490,18 +33334,18 @@ var require__stream_readable = __commonJS((exports, module) => { } dest.once("close", onclose); function onfinish() { - debug("onfinish"); + debug2("onfinish"); dest.removeListener("close", onclose); unpipe(); } dest.once("finish", onfinish); function unpipe() { - debug("unpipe"); + debug2("unpipe"); src.unpipe(dest); } dest.emit("pipe", src); if (!state.flowing) { - debug("pipe resume"); + debug2("pipe resume"); src.resume(); } return dest; @@ -34509,7 +33353,7 @@ var require__stream_readable = __commonJS((exports, module) => { function pipeOnDrain(src) { return function() { var state = src._readableState; - debug("pipeOnDrain", state.awaitDrain); + debug2("pipeOnDrain", state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; if (state.awaitDrain === 0 && EElistenerCount(src, "data")) { @@ -34577,13 +33421,13 @@ var require__stream_readable = __commonJS((exports, module) => { }; Readable.prototype.addListener = Readable.prototype.on; function nReadingNextTick(self2) { - debug("readable nexttick read 0"); + debug2("readable nexttick read 0"); self2.read(0); } Readable.prototype.resume = function() { var state = this._readableState; if (!state.flowing) { - debug("resume"); + debug2("resume"); state.flowing = true; resume(this, state); } @@ -34597,7 +33441,7 @@ var require__stream_readable = __commonJS((exports, module) => { } function resume_(stream, state) { if (!state.reading) { - debug("resume read 0"); + debug2("resume read 0"); stream.read(0); } state.resumeScheduled = false; @@ -34608,9 +33452,9 @@ var require__stream_readable = __commonJS((exports, module) => { stream.read(0); } Readable.prototype.pause = function() { - debug("call pause flowing=%j", this._readableState.flowing); + debug2("call pause flowing=%j", this._readableState.flowing); if (this._readableState.flowing !== false) { - debug("pause"); + debug2("pause"); this._readableState.flowing = false; this.emit("pause"); } @@ -34618,7 +33462,7 @@ var require__stream_readable = __commonJS((exports, module) => { }; function flow(stream) { var state = stream._readableState; - debug("flow", state.flowing); + debug2("flow", state.flowing); while (state.flowing && stream.read() !== null) { } } @@ -34627,7 +33471,7 @@ var require__stream_readable = __commonJS((exports, module) => { var state = this._readableState; var paused = false; stream.on("end", function() { - debug("wrapped end"); + debug2("wrapped end"); if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) @@ -34636,7 +33480,7 @@ var require__stream_readable = __commonJS((exports, module) => { _this.push(null); }); stream.on("data", function(chunk) { - debug("wrapped data"); + debug2("wrapped data"); if (state.decoder) chunk = state.decoder.write(chunk); if (state.objectMode && (chunk === null || chunk === undefined)) @@ -34662,7 +33506,7 @@ var require__stream_readable = __commonJS((exports, module) => { stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); } this._read = function(n2) { - debug("wrapped _read", n2); + debug2("wrapped _read", n2); if (paused) { paused = false; stream.resume(); @@ -34797,9 +33641,9 @@ var require__stream_readable = __commonJS((exports, module) => { var require__stream_transform = __commonJS((exports, module) => { module.exports = Transform; var Duplex = require__stream_duplex(); - var util = Object.create(require_util()); - util.inherits = require_inherits(); - util.inherits(Transform, Duplex); + var util2 = Object.create(require_util()); + util2.inherits = require_inherits(); + util2.inherits(Transform, Duplex); function afterTransform(er, data) { var ts = this._transformState; ts.transforming = false; @@ -34901,9 +33745,9 @@ var require__stream_transform = __commonJS((exports, module) => { var require__stream_passthrough = __commonJS((exports, module) => { module.exports = PassThrough; var Transform = require__stream_transform(); - var util = Object.create(require_util()); - util.inherits = require_inherits(); - util.inherits(PassThrough, Transform); + var util2 = Object.create(require_util()); + util2.inherits = require_inherits(); + util2.inherits(PassThrough, Transform); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); @@ -34944,14 +33788,14 @@ var require_passthrough = __commonJS((exports, module) => { // node_modules/lazystream/lib/lazystream.js var require_lazystream = __commonJS((exports, module) => { - var util = __require("util"); + var util2 = __require("util"); var PassThrough = require_passthrough(); module.exports = { Readable, Writable }; - util.inherits(Readable, PassThrough); - util.inherits(Writable, PassThrough); + util2.inherits(Readable, PassThrough); + util2.inherits(Writable, PassThrough); function beforeFirstCall(instance, method, callback) { instance[method] = function() { delete instance[method]; @@ -35129,17 +33973,17 @@ var require__getRawTag = __commonJS((exports, module) => { var require__objectToString = __commonJS((exports, module) => { var objectProto = Object.prototype; var nativeObjectToString = objectProto.toString; - function objectToString(value) { + function objectToString2(value) { return nativeObjectToString.call(value); } - module.exports = objectToString; + module.exports = objectToString2; }); // node_modules/lodash/_baseGetTag.js var require__baseGetTag = __commonJS((exports, module) => { var Symbol2 = require__Symbol(); var getRawTag = require__getRawTag(); - var objectToString = require__objectToString(); + var objectToString2 = require__objectToString(); var nullTag = "[object Null]"; var undefinedTag = "[object Undefined]"; var symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined; @@ -35147,7 +33991,7 @@ var require__baseGetTag = __commonJS((exports, module) => { if (value == null) { return value === undefined ? undefinedTag : nullTag; } - return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); + return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString2(value); } module.exports = baseGetTag; }); @@ -35354,10 +34198,10 @@ var require_isLength = __commonJS((exports, module) => { var require_isArrayLike2 = __commonJS((exports, module) => { var isFunction = require_isFunction2(); var isLength = require_isLength(); - function isArrayLike(value) { + function isArrayLike2(value) { return value != null && isLength(value.length) && !isFunction(value); } - module.exports = isArrayLike; + module.exports = isArrayLike2; }); // node_modules/lodash/_isIndex.js @@ -35375,7 +34219,7 @@ var require__isIndex = __commonJS((exports, module) => { // node_modules/lodash/_isIterateeCall.js var require__isIterateeCall = __commonJS((exports, module) => { var eq = require_eq(); - var isArrayLike = require_isArrayLike2(); + var isArrayLike2 = require_isArrayLike2(); var isIndex = require__isIndex(); var isObject = require_isObject(); function isIterateeCall(value, index, object) { @@ -35383,7 +34227,7 @@ var require__isIterateeCall = __commonJS((exports, module) => { return false; } var type = typeof index; - if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && (index in object)) { + if (type == "number" ? isArrayLike2(object) && isIndex(index, object.length) : type == "string" && (index in object)) { return eq(object[index], value); } return false; @@ -35614,9 +34458,9 @@ var require__baseKeysIn = __commonJS((exports, module) => { var require_keysIn = __commonJS((exports, module) => { var arrayLikeKeys = require__arrayLikeKeys(); var baseKeysIn = require__baseKeysIn(); - var isArrayLike = require_isArrayLike2(); + var isArrayLike2 = require_isArrayLike2(); function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + return isArrayLike2(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); } module.exports = keysIn; }); @@ -35973,8 +34817,8 @@ var require_errors = __commonJS((exports, module) => { msg += `one of type ${types[0]} or ${types[1]}`; break; default: { - const last = types.pop(); - msg += `one of type ${types.join(", ")}, or ${last}`; + const last2 = types.pop(); + msg += `one of type ${types.join(", ")}, or ${last2}`; } } if (instances.length > 0 || other.length > 0) { @@ -35990,8 +34834,8 @@ var require_errors = __commonJS((exports, module) => { msg += `an instance of ${instances[0]} or ${instances[1]}`; break; default: { - const last = instances.pop(); - msg += `an instance of ${instances.join(", ")}, or ${last}`; + const last2 = instances.pop(); + msg += `an instance of ${instances.join(", ")}, or ${last2}`; } } if (other.length > 0) { @@ -36011,8 +34855,8 @@ var require_errors = __commonJS((exports, module) => { msg += `one of ${other[0]} or ${other[1]}`; break; default: { - const last = other.pop(); - msg += `one of ${other.join(", ")}, or ${last}`; + const last2 = other.pop(); + msg += `one of ${other.join(", ")}, or ${last2}`; } } if (actual == null) { @@ -36067,8 +34911,8 @@ var require_errors = __commonJS((exports, module) => { break; default: { - const last = args.pop(); - msg += `The ${args.join(", ")}, and ${last} arguments`; + const last2 = args.pop(); + msg += `The ${args.join(", ")}, and ${last2} arguments`; } break; } @@ -37059,12 +35903,12 @@ var require_utils3 = __commonJS((exports, module) => { function isWebStream(obj) { return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj); } - function isIterable(obj, isAsync) { + function isIterable(obj, isAsync2) { if (obj == null) return false; - if (isAsync === true) + if (isAsync2 === true) return typeof obj[SymbolAsyncIterator] === "function"; - if (isAsync === false) + if (isAsync2 === false) return typeof obj[SymbolIterator] === "function"; return typeof obj[SymbolAsyncIterator] === "function" || typeof obj[SymbolIterator] === "function"; } @@ -37444,11 +36288,11 @@ var require_end_of_stream = __commonJS((exports, module) => { return cleanup; } function eosWeb(stream, options, callback) { - let isAborted = false; + let isAborted2 = false; let abort = nop; if (options.signal) { abort = () => { - isAborted = true; + isAborted2 = true; callback.call(stream, new AbortError(undefined, { cause: options.signal.reason })); @@ -37466,7 +36310,7 @@ var require_end_of_stream = __commonJS((exports, module) => { } } const resolverFn = (...args) => { - if (!isAborted) { + if (!isAborted2) { process11.nextTick(() => callback.apply(stream, args)); } }; @@ -38418,12 +37262,12 @@ var require_from2 = __commonJS((exports, module) => { } }); } - let isAsync; + let isAsync2; if (iterable && iterable[SymbolAsyncIterator]) { - isAsync = true; + isAsync2 = true; iterator = iterable[SymbolAsyncIterator](); } else if (iterable && iterable[SymbolIterator]) { - isAsync = false; + isAsync2 = false; iterator = iterable[SymbolIterator](); } else { throw new ERR_INVALID_ARG_TYPE("iterable", ["Iterable"], iterable); @@ -38461,7 +37305,7 @@ var require_from2 = __commonJS((exports, module) => { async function next() { for (;; ) { try { - const { value, done } = isAsync ? await iterator.next() : iterator.next(); + const { value, done } = isAsync2 ? await iterator.next() : iterator.next(); if (done) { readable.push(null); } else { @@ -38510,8 +37354,8 @@ var require_readable2 = __commonJS((exports, module) => { var { Buffer: Buffer2 } = __require("buffer"); var { addAbortSignal } = require_add_abort_signal(); var eos = require_end_of_stream(); - var debug = require_util2().debuglog("stream", (fn) => { - debug = fn; + var debug2 = require_util2().debuglog("stream", (fn) => { + debug2 = fn; }); var BufferList = require_buffer_list(); var destroyImpl = require_destroy2(); @@ -38663,7 +37507,7 @@ var require_readable2 = __commonJS((exports, module) => { return readableAddChunk(this, chunk, encoding, true); }; function readableAddChunk(stream, chunk, encoding, addToFront) { - debug("readableAddChunk", chunk); + debug2("readableAddChunk", chunk); const state = stream._readableState; let err; if ((state.state & kObjectMode) === 0) { @@ -38790,7 +37634,7 @@ var require_readable2 = __commonJS((exports, module) => { return state.ended ? state.length : 0; } Readable.prototype.read = function(n) { - debug("read", n); + debug2("read", n); if (n === undefined) { n = NaN; } else if (!NumberIsInteger(n)) { @@ -38803,7 +37647,7 @@ var require_readable2 = __commonJS((exports, module) => { if (n !== 0) state.state &= ~kEmittedReadable; if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { - debug("read: emitReadable", state.length, state.ended); + debug2("read: emitReadable", state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this); else @@ -38817,16 +37661,16 @@ var require_readable2 = __commonJS((exports, module) => { return null; } let doRead = (state.state & kNeedReadable) !== 0; - debug("need readable", doRead); + debug2("need readable", doRead); if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; - debug("length less than watermark", doRead); + debug2("length less than watermark", doRead); } if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) { doRead = false; - debug("reading, ended or constructing", doRead); + debug2("reading, ended or constructing", doRead); } else if (doRead) { - debug("do read"); + debug2("do read"); state.state |= kReading | kSync; if (state.length === 0) state.state |= kNeedReadable; @@ -38868,7 +37712,7 @@ var require_readable2 = __commonJS((exports, module) => { return ret; }; function onEofChunk(stream, state) { - debug("onEofChunk"); + debug2("onEofChunk"); if (state.ended) return; if (state.decoder) { @@ -38889,17 +37733,17 @@ var require_readable2 = __commonJS((exports, module) => { } function emitReadable(stream) { const state = stream._readableState; - debug("emitReadable", state.needReadable, state.emittedReadable); + debug2("emitReadable", state.needReadable, state.emittedReadable); state.needReadable = false; if (!state.emittedReadable) { - debug("emitReadable", state.flowing); + debug2("emitReadable", state.flowing); state.emittedReadable = true; process11.nextTick(emitReadable_, stream); } } function emitReadable_(stream) { const state = stream._readableState; - debug("emitReadable_", state.destroyed, state.length, state.ended); + debug2("emitReadable_", state.destroyed, state.length, state.ended); if (!state.destroyed && !state.errored && (state.length || state.ended)) { stream.emit("readable"); state.emittedReadable = false; @@ -38916,7 +37760,7 @@ var require_readable2 = __commonJS((exports, module) => { function maybeReadMore_(stream, state) { while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { const len = state.length; - debug("maybeReadMore read 0"); + debug2("maybeReadMore read 0"); stream.read(0); if (len === state.length) break; @@ -38936,7 +37780,7 @@ var require_readable2 = __commonJS((exports, module) => { } } state.pipes.push(dest); - debug("pipe count=%d opts=%j", state.pipes.length, pipeOpts); + debug2("pipe count=%d opts=%j", state.pipes.length, pipeOpts); const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process11.stdout && dest !== process11.stderr; const endFn = doEnd ? onend : unpipe; if (state.endEmitted) @@ -38945,7 +37789,7 @@ var require_readable2 = __commonJS((exports, module) => { src.once("end", endFn); dest.on("unpipe", onunpipe); function onunpipe(readable, unpipeInfo) { - debug("onunpipe"); + debug2("onunpipe"); if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; @@ -38954,13 +37798,13 @@ var require_readable2 = __commonJS((exports, module) => { } } function onend() { - debug("onend"); + debug2("onend"); dest.end(); } let ondrain; let cleanedUp = false; function cleanup() { - debug("cleanup"); + debug2("cleanup"); dest.removeListener("close", onclose); dest.removeListener("finish", onfinish); if (ondrain) { @@ -38978,11 +37822,11 @@ var require_readable2 = __commonJS((exports, module) => { function pause() { if (!cleanedUp) { if (state.pipes.length === 1 && state.pipes[0] === dest) { - debug("false write response, pause", 0); + debug2("false write response, pause", 0); state.awaitDrainWriters = dest; state.multiAwaitDrain = false; } else if (state.pipes.length > 1 && state.pipes.includes(dest)) { - debug("false write response, pause", state.awaitDrainWriters.size); + debug2("false write response, pause", state.awaitDrainWriters.size); state.awaitDrainWriters.add(dest); } src.pause(); @@ -38994,15 +37838,15 @@ var require_readable2 = __commonJS((exports, module) => { } src.on("data", ondata); function ondata(chunk) { - debug("ondata"); + debug2("ondata"); const ret = dest.write(chunk); - debug("dest.write", ret); + debug2("dest.write", ret); if (ret === false) { pause(); } } function onerror(er) { - debug("onerror", er); + debug2("onerror", er); unpipe(); dest.removeListener("error", onerror); if (dest.listenerCount("error") === 0) { @@ -39021,20 +37865,20 @@ var require_readable2 = __commonJS((exports, module) => { } dest.once("close", onclose); function onfinish() { - debug("onfinish"); + debug2("onfinish"); dest.removeListener("close", onclose); unpipe(); } dest.once("finish", onfinish); function unpipe() { - debug("unpipe"); + debug2("unpipe"); src.unpipe(dest); } dest.emit("pipe", src); if (dest.writableNeedDrain === true) { pause(); } else if (!state.flowing) { - debug("pipe resume"); + debug2("pipe resume"); src.resume(); } return dest; @@ -39043,10 +37887,10 @@ var require_readable2 = __commonJS((exports, module) => { return function pipeOnDrainFunctionResult() { const state = src._readableState; if (state.awaitDrainWriters === dest) { - debug("pipeOnDrain", 1); + debug2("pipeOnDrain", 1); state.awaitDrainWriters = null; } else if (state.multiAwaitDrain) { - debug("pipeOnDrain", state.awaitDrainWriters.size); + debug2("pipeOnDrain", state.awaitDrainWriters.size); state.awaitDrainWriters.delete(dest); } if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount("data")) { @@ -39092,7 +37936,7 @@ var require_readable2 = __commonJS((exports, module) => { state.readableListening = state.needReadable = true; state.flowing = false; state.emittedReadable = false; - debug("on readable", state.length, state.reading); + debug2("on readable", state.length, state.reading); if (state.length) { emitReadable(this); } else if (!state.reading) { @@ -39130,13 +37974,13 @@ var require_readable2 = __commonJS((exports, module) => { } } function nReadingNextTick(self2) { - debug("readable nexttick read 0"); + debug2("readable nexttick read 0"); self2.read(0); } Readable.prototype.resume = function() { const state = this._readableState; if (!state.flowing) { - debug("resume"); + debug2("resume"); state.flowing = !state.readableListening; resume(this, state); } @@ -39150,7 +37994,7 @@ var require_readable2 = __commonJS((exports, module) => { } } function resume_(stream, state) { - debug("resume", state.reading); + debug2("resume", state.reading); if (!state.reading) { stream.read(0); } @@ -39161,9 +38005,9 @@ var require_readable2 = __commonJS((exports, module) => { stream.read(0); } Readable.prototype.pause = function() { - debug("call pause flowing=%j", this._readableState.flowing); + debug2("call pause flowing=%j", this._readableState.flowing); if (this._readableState.flowing !== false) { - debug("pause"); + debug2("pause"); this._readableState.flowing = false; this.emit("pause"); } @@ -39172,7 +38016,7 @@ var require_readable2 = __commonJS((exports, module) => { }; function flow(stream) { const state = stream._readableState; - debug("flow", state.flowing); + debug2("flow", state.flowing); while (state.flowing && stream.read() !== null) ; } @@ -39421,14 +38265,14 @@ var require_readable2 = __commonJS((exports, module) => { } function endReadable(stream) { const state = stream._readableState; - debug("endReadable", state.endEmitted); + debug2("endReadable", state.endEmitted); if (!state.endEmitted) { state.ended = true; process11.nextTick(endReadableNT, state, stream); } } function endReadableNT(state, stream) { - debug("endReadableNT", state.endEmitted, state.length); + debug2("endReadableNT", state.endEmitted, state.length); if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) { state.endEmitted = true; stream.emit("end"); @@ -40868,12 +39712,12 @@ var require_pipeline = __commonJS((exports, module) => { const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false; const isLastStream = i === streams.length - 1; if (isNodeStream(stream)) { - let onError2 = function(err) { + let onError3 = function(err) { if (err && err.name !== "AbortError" && err.code !== "ERR_STREAM_PREMATURE_CLOSE") { finish(err); } }; - var onError = onError2; + var onError2 = onError3; if (end) { const { destroy, cleanup } = destroyer(stream, reading, writing); destroys.push(destroy); @@ -40881,10 +39725,10 @@ var require_pipeline = __commonJS((exports, module) => { lastStreamCleanup.push(cleanup); } } - stream.on("error", onError2); + stream.on("error", onError3); if (isReadable(stream) && isLastStream) { lastStreamCleanup.push(() => { - stream.removeListener("error", onError2); + stream.removeListener("error", onError3); }); } } @@ -41453,7 +40297,7 @@ var require_operators = __commonJS((exports, module) => { } return; } - async function forEach(fn, options) { + async function forEach2(fn, options) { if (typeof fn !== "function") { throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); } @@ -41638,7 +40482,7 @@ var require_operators = __commonJS((exports, module) => { }; exports.promiseReturningOperators = { every, - forEach, + forEach: forEach2, reduce: reduce2, toArray, some, @@ -42340,8 +41184,8 @@ var require__arrayMap = __commonJS((exports, module) => { // node_modules/lodash/_cacheHas.js var require__cacheHas = __commonJS((exports, module) => { - function cacheHas(cache, key2) { - return cache.has(key2); + function cacheHas(cache2, key2) { + return cache2.has(key2); } module.exports = cacheHas; }); @@ -42394,10 +41238,10 @@ var require__baseDifference = __commonJS((exports, module) => { // node_modules/lodash/isArrayLikeObject.js var require_isArrayLikeObject = __commonJS((exports, module) => { - var isArrayLike = require_isArrayLike2(); + var isArrayLike2 = require_isArrayLike2(); var isObjectLike = require_isObjectLike(); function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); + return isObjectLike(value) && isArrayLike2(value); } module.exports = isArrayLikeObject; }); @@ -48309,7 +47153,7 @@ var require_archiver_utils = __commonJS((exports, module) => { // node_modules/archiver/lib/error.js var require_error2 = __commonJS((exports, module) => { - var util = __require("util"); + var util2 = __require("util"); var ERROR_CODES = { ABORTED: "archive was aborted", DIRECTORYDIRPATHREQUIRED: "diretory dirpath argument must be a non-empty string value", @@ -48334,7 +47178,7 @@ var require_error2 = __commonJS((exports, module) => { this.code = code; this.data = data; } - util.inherits(ArchiverError, Error); + util2.inherits(ArchiverError, Error); exports = module.exports = ArchiverError; }); @@ -48344,7 +47188,7 @@ var require_core = __commonJS((exports, module) => { var glob = require_readdir_glob(); var async = require_async2(); var path3 = __require("path"); - var util = require_archiver_utils(); + var util2 = require_archiver_utils(); var inherits = __require("util").inherits; var ArchiverError = require_error2(); var Transform = require_ours().Transform; @@ -48357,7 +47201,7 @@ var require_core = __commonJS((exports, module) => { options = format; format = "zip"; } - options = this.options = util.defaults(options, { + options = this.options = util2.defaults(options, { highWaterMark: 1024 * 1024, statConcurrency: 4 }); @@ -48494,7 +47338,7 @@ var require_core = __commonJS((exports, module) => { this._state.modulePiped = false; }; Archiver.prototype._normalizeEntryData = function(data, stats) { - data = util.defaults(data, { + data = util2.defaults(data, { type: "file", name: null, date: null, @@ -48512,7 +47356,7 @@ var require_core = __commonJS((exports, module) => { data.name = data.prefix + "/" + data.name; data.prefix = null; } - data.name = util.sanitizePath(data.name); + data.name = util2.sanitizePath(data.name); if (data.type !== "symlink" && data.name.slice(-1) === "/") { isDir = true; data.type = "directory"; @@ -48541,7 +47385,7 @@ var require_core = __commonJS((exports, module) => { if (data.stats && data.date === null) { data.date = data.stats.mtime; } else { - data.date = util.dateify(data.date); + data.date = util2.dateify(data.date); } return data; }; @@ -48610,11 +47454,11 @@ var require_core = __commonJS((exports, module) => { if (stats.isFile()) { task.data.type = "file"; task.data.sourceType = "stream"; - task.source = util.lazyReadStream(task.filepath); + task.source = util2.lazyReadStream(task.filepath); } else if (stats.isDirectory() && this._moduleSupports("directory")) { - task.data.name = util.trailingSlashIt(task.data.name); + task.data.name = util2.trailingSlashIt(task.data.name); task.data.type = "directory"; - task.data.sourcePath = util.trailingSlashIt(task.filepath); + task.data.sourcePath = util2.trailingSlashIt(task.filepath); task.data.sourceType = "buffer"; task.source = Buffer.concat([]); } else if (stats.isSymbolicLink() && this._moduleSupports("symlink")) { @@ -48658,10 +47502,10 @@ var require_core = __commonJS((exports, module) => { this.emit("error", new ArchiverError("DIRECTORYNOTSUPPORTED", { name: data.name })); return this; } - source = util.normalizeInputSource(source); + source = util2.normalizeInputSource(source); if (Buffer.isBuffer(source)) { data.sourceType = "buffer"; - } else if (util.isStream(source)) { + } else if (util2.isStream(source)) { data.sourceType = "stream"; } else { this.emit("error", new ArchiverError("INPUTSTEAMBUFFERREQUIRED", { name: data.name })); @@ -48754,7 +47598,7 @@ var require_core = __commonJS((exports, module) => { }; Archiver.prototype.glob = function(pattern, options, data) { this._pending++; - options = util.defaults(options, { + options = util2.defaults(options, { stat: true, pattern }); @@ -48887,8 +47731,8 @@ var require_archive_entry = __commonJS((exports, module) => { // node_modules/compress-commons/lib/archivers/zip/util.js var require_util3 = __commonJS((exports, module) => { - var util = module.exports = {}; - util.dateToDos = function(d, forceLocalTime) { + var util2 = module.exports = {}; + util2.dateToDos = function(d, forceLocalTime) { forceLocalTime = forceLocalTime || false; var year = forceLocalTime ? d.getFullYear() : d.getUTCFullYear(); if (year < 1980) { @@ -48906,36 +47750,36 @@ var require_util3 = __commonJS((exports, module) => { }; return val.year - 1980 << 25 | val.month + 1 << 21 | val.date << 16 | val.hours << 11 | val.minutes << 5 | val.seconds / 2; }; - util.dosToDate = function(dos) { + util2.dosToDate = function(dos) { return new Date((dos >> 25 & 127) + 1980, (dos >> 21 & 15) - 1, dos >> 16 & 31, dos >> 11 & 31, dos >> 5 & 63, (dos & 31) << 1); }; - util.fromDosTime = function(buf) { - return util.dosToDate(buf.readUInt32LE(0)); + util2.fromDosTime = function(buf) { + return util2.dosToDate(buf.readUInt32LE(0)); }; - util.getEightBytes = function(v) { + util2.getEightBytes = function(v) { var buf = Buffer.alloc(8); buf.writeUInt32LE(v % 4294967296, 0); buf.writeUInt32LE(v / 4294967296 | 0, 4); return buf; }; - util.getShortBytes = function(v) { + util2.getShortBytes = function(v) { var buf = Buffer.alloc(2); buf.writeUInt16LE((v & 65535) >>> 0, 0); return buf; }; - util.getShortBytesValue = function(buf, offset) { + util2.getShortBytesValue = function(buf, offset) { return buf.readUInt16LE(offset); }; - util.getLongBytes = function(v) { + util2.getLongBytes = function(v) { var buf = Buffer.alloc(4); buf.writeUInt32LE((v & 4294967295) >>> 0, 0); return buf; }; - util.getLongBytesValue = function(buf, offset) { + util2.getLongBytesValue = function(buf, offset) { return buf.readUInt32LE(offset); }; - util.toDosTime = function(d) { - return util.getLongBytes(util.dateToDos(d)); + util2.toDosTime = function(d) { + return util2.getLongBytes(util2.dateToDos(d)); }; }); @@ -49269,8 +48113,8 @@ var require_util4 = __commonJS((exports, module) => { var Stream = __require("stream").Stream; var PassThrough = require_ours().PassThrough; var isStream = require_is_stream2(); - var util = module.exports = {}; - util.normalizeInputSource = function(source) { + var util2 = module.exports = {}; + util2.normalizeInputSource = function(source) { if (source === null) { return Buffer.alloc(0); } else if (typeof source === "string") { @@ -49290,7 +48134,7 @@ var require_archive_output_stream = __commonJS((exports, module) => { var isStream = require_is_stream2(); var Transform = require_ours().Transform; var ArchiveEntry = require_archive_entry(); - var util = require_util4(); + var util2 = require_util4(); var ArchiveOutputStream = module.exports = function(options) { if (!(this instanceof ArchiveOutputStream)) { return new ArchiveOutputStream(options); @@ -49340,7 +48184,7 @@ var require_archive_output_stream = __commonJS((exports, module) => { this._archive.processing = true; this._normalizeEntry(ae); this._entry = ae; - source = util.normalizeInputSource(source); + source = util2.normalizeInputSource(source); if (Buffer.isBuffer(source)) { this._appendBuffer(ae, source, callback); } else if (isStream(source)) { @@ -49570,7 +48414,7 @@ var require_zip_archive_output_stream = __commonJS((exports, module) => { var ZipArchiveEntry = require_zip_archive_entry(); var GeneralPurposeBit = require_general_purpose_bit(); var constants = require_constants(); - var util = require_util4(); + var util2 = require_util4(); var zipUtil = require_util3(); var ZipArchiveOutputStream = module.exports = function(options) { if (!(this instanceof ZipArchiveOutputStream)) { @@ -49858,7 +48702,7 @@ var require_zip_stream = __commonJS((exports, module) => { var inherits = __require("util").inherits; var ZipArchiveOutputStream = require_compress_commons().ZipArchiveOutputStream; var ZipArchiveEntry = require_compress_commons().ZipArchiveEntry; - var util = require_archiver_utils(); + var util2 = require_archiver_utils(); var ZipStream = module.exports = function(options) { if (!(this instanceof ZipStream)) { return new ZipStream(options); @@ -49880,7 +48724,7 @@ var require_zip_stream = __commonJS((exports, module) => { }; inherits(ZipStream, ZipArchiveOutputStream); ZipStream.prototype._normalizeFileData = function(data) { - data = util.defaults(data, { + data = util2.defaults(data, { type: "file", name: null, namePrependSlash: this.options.namePrependSlash, @@ -49893,7 +48737,7 @@ var require_zip_stream = __commonJS((exports, module) => { var isDir = data.type === "directory"; var isSymlink = data.type === "symlink"; if (data.name) { - data.name = util.sanitizePath(data.name); + data.name = util2.sanitizePath(data.name); if (!isSymlink && data.name.slice(-1) === "/") { isDir = true; data.type = "directory"; @@ -49904,7 +48748,7 @@ var require_zip_stream = __commonJS((exports, module) => { if (isDir || isSymlink) { data.store = true; } - data.date = util.dateify(data.date); + data.date = util2.dateify(data.date); return data; }; ZipStream.prototype.entry = function(source, data, callback) { @@ -49957,12 +48801,12 @@ var require_zip_stream = __commonJS((exports, module) => { // node_modules/archiver/lib/plugins/zip.js var require_zip3 = __commonJS((exports, module) => { var engine = require_zip_stream(); - var util = require_archiver_utils(); + var util2 = require_archiver_utils(); var Zip = function(options) { if (!(this instanceof Zip)) { return new Zip(options); } - options = this.options = util.defaults(options, { + options = this.options = util2.defaults(options, { comment: "", forceUTC: false, namePrependSlash: false, @@ -50027,12 +48871,12 @@ var require_fixed_size = __commonJS((exports, module) => { return true; } shift() { - const last = this.buffer[this.btm]; - if (last === undefined) + const last2 = this.buffer[this.btm]; + if (last2 === undefined) return; this.buffer[this.btm] = undefined; this.btm = this.btm + 1 & this.mask; - return last; + return last2; } peek() { return this.buffer[this.btm]; @@ -50416,7 +49260,7 @@ var require_text_decoder = __commonJS((exports, module) => { // node_modules/streamx/index.js var require_streamx = __commonJS((exports, module) => { - var { EventEmitter } = __require("events"); + var { EventEmitter: EventEmitter2 } = __require("events"); var STREAM_DESTROYED = new Error("Stream was destroyed"); var PREMATURE_CLOSE = new Error("Premature close"); var queueTick = require_process_next_tick(); @@ -50967,7 +49811,7 @@ var require_streamx = __commonJS((exports, module) => { } } - class Stream extends EventEmitter { + class Stream extends EventEmitter2 { constructor(opts) { super(); this._duplexState = 0; @@ -51775,7 +50619,7 @@ var require_headers = __commonJS((exports) => { }); // node_modules/tar-stream/extract.js -var require_extract2 = __commonJS((exports, module) => { +var require_extract = __commonJS((exports, module) => { var { Writable, Readable, getStreamError } = require_streamx(); var FIFO = require_fast_fifo(); var b4a = require_b4a(); @@ -52412,7 +51256,7 @@ var require_pack = __commonJS((exports, module) => { // node_modules/tar-stream/index.js var require_tar_stream = __commonJS((exports) => { - exports.extract = require_extract2(); + exports.extract = require_extract(); exports.pack = require_pack(); }); @@ -52420,12 +51264,12 @@ var require_tar_stream = __commonJS((exports) => { var require_tar = __commonJS((exports, module) => { var zlib = __require("zlib"); var engine = require_tar_stream(); - var util = require_archiver_utils(); + var util2 = require_archiver_utils(); var Tar = function(options) { if (!(this instanceof Tar)) { return new Tar(options); } - options = this.options = util.defaults(options, { + options = this.options = util2.defaults(options, { gzip: false }); if (typeof options.gzipOptions !== "object") { @@ -52448,7 +51292,7 @@ var require_tar = __commonJS((exports, module) => { Tar.prototype.append = function(source, data, callback) { var self2 = this; data.mtime = data.date; - function append(err, sourceBuffer) { + function append2(err, sourceBuffer) { if (err) { callback(err); return; @@ -52458,7 +51302,7 @@ var require_tar = __commonJS((exports, module) => { }); } if (data.sourceType === "buffer") { - append(null, source); + append2(null, source); } else if (data.sourceType === "stream" && data.stats) { data.size = data.stats.size; var entry = self2.engine.entry(data, function(err) { @@ -52466,7 +51310,7 @@ var require_tar = __commonJS((exports, module) => { }); source.pipe(entry); } else if (data.sourceType === "stream") { - util.collectStream(source, append); + util2.collectStream(source, append2); } }; Tar.prototype.finalize = function() { @@ -52493,7 +51337,7 @@ var require_tar = __commonJS((exports, module) => { }); // node_modules/buffer-crc32/dist/index.cjs -var require_dist = __commonJS((exports, module) => { +var require_dist3 = __commonJS((exports, module) => { function getDefaultExportFromCjs(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } @@ -52801,13 +51645,13 @@ var require_dist = __commonJS((exports, module) => { var require_json2 = __commonJS((exports, module) => { var inherits = __require("util").inherits; var Transform = require_ours().Transform; - var crc32 = require_dist(); - var util = require_archiver_utils(); + var crc32 = require_dist3(); + var util2 = require_archiver_utils(); var Json = function(options) { if (!(this instanceof Json)) { return new Json(options); } - options = this.options = util.defaults(options, {}); + options = this.options = util2.defaults(options, {}); Transform.call(this, options); this.supports = { directory: true, @@ -52839,7 +51683,7 @@ var require_json2 = __commonJS((exports, module) => { if (data.sourceType === "buffer") { onend(null, source); } else if (data.sourceType === "stream") { - util.collectStream(source, onend); + util2.collectStream(source, onend); } }; Json.prototype.finalize = function() { @@ -53154,10 +51998,10 @@ var require_ignore2 = __commonJS((exports, module) => { addPattern(pattern) { return this.add(pattern); } - _test(originalPath, cache, checkUnignored, slices) { + _test(originalPath, cache2, checkUnignored, slices) { const path3 = originalPath && checkPath.convert(originalPath); checkPath(path3, originalPath, this._strictPathCheck ? throwError : RETURN_FALSE); - return this._t(path3, cache, checkUnignored, slices); + return this._t(path3, cache2, checkUnignored, slices); } checkIgnore(path3) { if (!REGEX_TEST_TRAILING_SLASH.test(path3)) { @@ -53173,19 +52017,19 @@ var require_ignore2 = __commonJS((exports, module) => { } return this._rules.test(path3, false, MODE_CHECK_IGNORE); } - _t(path3, cache, checkUnignored, slices) { - if (path3 in cache) { - return cache[path3]; + _t(path3, cache2, checkUnignored, slices) { + if (path3 in cache2) { + return cache2[path3]; } if (!slices) { slices = path3.split(SLASH).filter(Boolean); } slices.pop(); if (!slices.length) { - return cache[path3] = this._rules.test(path3, checkUnignored, MODE_IGNORE); + return cache2[path3] = this._rules.test(path3, checkUnignored, MODE_IGNORE); } - const parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); - return cache[path3] = parent.ignored ? parent : this._rules.test(path3, checkUnignored, MODE_IGNORE); + const parent = this._t(slices.join(SLASH) + SLASH, cache2, checkUnignored, slices); + return cache2[path3] = parent.ignored ? parent : this._rules.test(path3, checkUnignored, MODE_IGNORE); } ignores(path3) { return this._test(path3, this._ignoreCache, false).ignored; @@ -53754,7 +52598,7 @@ var require_cross_spawn = __commonJS((exports, module) => { var cp = __require("child_process"); var parse = require_parse(); var enoent = require_enoent(); - function spawn(command, args, options) { + function spawn2(command, args, options) { const parsed = parse(command, args, options); const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); enoent.hookChildProcess(spawned, parsed); @@ -53766,8 +52610,8 @@ var require_cross_spawn = __commonJS((exports, module) => { result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); return result; } - module.exports = spawn; - module.exports.spawn = spawn; + module.exports = spawn2; + module.exports.spawn = spawn2; module.exports.sync = spawnSync; module.exports._parse = parse; module.exports._enoent = enoent; @@ -53789,7 +52633,7 @@ var { Help } = import__.default; -// src/commands/create.ts +// src/commands/create/pipe/index.ts var import_fs_extra = __toESM(require_lib(), 1); init_esm13(); import path from "path"; @@ -54883,161 +53727,6 @@ function ora(options) { return new Ora(options); } -// src/commands/create.ts -import https from "https"; - -// node_modules/unzip-stream/unzip.js -var $Parse = require_parser_stream(); -var $Extract = require_extract(); - -// src/commands/create.ts -process.removeAllListeners("warning"); -var PIPE_ADDITIONS = { - dependencies: { - "@screenpipe/js": "latest" - }, - devDependencies: { - "bun-types": "latest" - } -}; -async function downloadAndExtractRepo(owner, repo, branch, subdir, destPath) { - const url = `https://github.com/${owner}/${repo}/archive/refs/heads/${branch}.zip`; - const tempDir = path.join(destPath, "_temp"); - await import_fs_extra.default.ensureDir(tempDir); - return new Promise((resolve, reject) => { - const request = https.get(url, (response) => { - if (response.statusCode === 302 || response.statusCode === 301) { - const redirectUrl = response.headers.location; - if (!redirectUrl) { - reject(new Error("Redirect location not found")); - return; - } - https.get(redirectUrl, async (redirectResponse) => { - if (redirectResponse.statusCode !== 200) { - reject(new Error(`Failed to download: ${redirectResponse.statusCode}`)); - return; - } - const extractStream = $Extract({ path: tempDir }); - extractStream.on("finish", async () => { - try { - const sourcePath = path.join(tempDir, `screenpipe-${branch}`, subdir); - await import_fs_extra.default.copy(sourcePath, destPath); - await import_fs_extra.default.remove(tempDir); - console.log("extraction completed"); - resolve(); - } catch (err) { - reject(err); - } - }); - extractStream.on("error", async (err) => { - await import_fs_extra.default.remove(tempDir).catch(console.error); - reject(err); - }); - redirectResponse.pipe(extractStream); - }).on("error", async (err) => { - await import_fs_extra.default.remove(tempDir).catch(console.error); - reject(err); - }); - } else { - reject(new Error(`Failed to download: ${response.statusCode}`)); - } - }).on("error", async (err) => { - await import_fs_extra.default.remove(tempDir).catch(console.error); - reject(err); - }); - request.end(); - }); -} -var createCommand2 = new Command().name("create").description("create a new pipe").action(async () => { - console.log(source_default.bold(` -welcome to screenpipe! \uD83D\uDE80 -`)); - console.log(`let's create a new screenpipe pipe. -`); - console.log("pipes are plugins that interact with captured screen and audio data."); - console.log(`build powerful agents, monetize it, etc. -`); - const pipeName = await esm_default5({ - message: "what is your pipe name?", - default: "my-screenpipe", - validate: (input) => { - if (input.trim().length === 0) - return "pipe name is required"; - return true; - } - }); - const directory = await esm_default5({ - message: "where would you like to create your pipe?", - default: pipeName - }); - const spinner = ora("creating your pipe...").start(); - try { - await downloadAndExtractRepo("mediar-ai", "screenpipe", "main", "pipes/obsidian", directory); - const pkgPath = path.join(process.cwd(), directory, "package.json"); - const pkg = await import_fs_extra.default.readJson(pkgPath); - pkg.name = pipeName; - pkg.dependencies = { - ...pkg.dependencies, - ...PIPE_ADDITIONS.dependencies - }; - pkg.devDependencies = { - ...pkg.devDependencies, - ...PIPE_ADDITIONS.devDependencies - }; - await import_fs_extra.default.writeJson(pkgPath, pkg, { spaces: 2 }); - spinner.succeed(source_default.green("pipe created successfully! \uD83C\uDF89")); - console.log(` -to get started:`); - console.log(source_default.cyan(`cd ${directory}`)); - console.log(source_default.cyan("bun install # or use: npm install, pnpm install, yarn")); - console.log(source_default.cyan("bun dev # or use: npm run dev, pnpm dev, yarn dev")); - console.log(` -when you're ready, you can ship your pipe to the app by adding it to the pipe store using the UI and then send a PR to the main repo. -`); - } catch (error) { - spinner.fail("failed to create pipe"); - console.error(error); - process.exit(1); - } -}); -// src/constants.ts -var API_BASE_URL = process.env.SC_API_BASE_URL || "https://screenpi.pe"; - -// src/utils/credentials.ts -import os2 from "os"; -import fs2 from "fs"; -import path2 from "path"; - -class Credentials { - static configDir = path2.join(os2.homedir(), ".screenpipe"); - static configFile = path2.join(this.configDir, "config-developer.json"); - static getApiKey() { - try { - if (!fs2.existsSync(this.configFile)) { - return null; - } - const config = JSON.parse(fs2.readFileSync(this.configFile, "utf-8")); - return config.apiKey || null; - } catch (error) { - return null; - } - } - static setApiKey(apiKey, developerId) { - if (!fs2.existsSync(this.configDir)) { - fs2.mkdirSync(this.configDir); - } - fs2.writeFileSync(this.configFile, JSON.stringify({ - apiKey, - developerId - }, null, 2)); - } - static clearCredentials() { - if (fs2.existsSync(this.configFile)) { - fs2.unlinkSync(this.configFile); - } - } -} - // src/utils/colors.ts var colors8 = { primary: source_default.cyan, @@ -55063,406 +53752,6 @@ var symbols = { arrow: ">" }; -// src/commands/login.ts -var loginCommand = new Command().name("login").description("Login with an API key").requiredOption("--apiKey ", "API key to login with").action(async (opts) => { - try { - console.log(colors8.info(` -${symbols.info} Validating API key...`)); - const response = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { - method: "GET", - headers: { - Authorization: `Bearer ${opts.apiKey}`, - "Content-Type": "application/json" - } - }); - if (!response.ok) { - const error = await response.json(); - throw new Error(`Failed to validate API key ${error.error}`); - } - const data = await response.json(); - if (data.data.needs_name) { - const inquirer2 = (await Promise.resolve().then(() => (init_esm14(), exports_esm))).default; - const { developerName } = await inquirer2.prompt([ - { - type: "input", - name: "developerName", - message: "Enter your developer name:", - validate: (input) => { - if (input.length < 2) { - return "Developer name must be at least 2 characters"; - } - if (input.length > 50) { - return "Developer name must be less than 50 characters"; - } - return true; - } - } - ]); - const updateResponse = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { - method: "POST", - headers: { - Authorization: `Bearer ${opts.apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ developer_name: developerName }) - }); - if (!updateResponse.ok) { - const error = await updateResponse.json(); - throw new Error(`Failed to set developer name: ${error.error}`); - } - const updateData = await updateResponse.json(); - data.data.developer_name = updateData.data.developer_name; - } - console.log(colors8.success(` -${symbols.success} Successfully logged in!`)); - console.log(colors8.listItem(`${colors8.label("Developer ID")} ${data.data.developer_id}`)); - console.log(colors8.listItem(`${colors8.label("Developer Name")} ${data.data.developer_name}`)); - Credentials.setApiKey(opts.apiKey, data.data.developer_id); - } catch (error) { - if (error instanceof Error) { - console.error(colors8.error(` -${symbols.error} Login failed: ${error.message}`)); - } else { - console.error(colors8.error(` -${symbols.error} Login failed with unexpected error`)); - } - process.exit(1); - } -}); -// src/commands/logout.ts -var logoutCommand = new Command().name("logout").description("end current session").action(async () => { - Credentials.clearCredentials(); - console.log(colors8.success(` -${symbols.success} Successfully logged out`)); - console.log(colors8.info(`${symbols.info} Thanks for using ScreenPipe! Come back soon.`)); -}); -// src/commands/publish.ts -import fs3 from "fs"; -import path3 from "path"; -var import_archiver = __toESM(require_archiver(), 1); -var import_ignore = __toESM(require_ignore2(), 1); -import crypto from "crypto"; -var NEXTJS_FILES = { - required: ["package.json", ".next"], - optional: [ - "package-lock.json", - "bun.lockb", - "next.config.js", - "next.config.mjs" - ] -}; -var MAX_FILE_SIZE = 500 * 1024 * 1024; -async function archiveNextJsProject(archive) { - const { required, optional } = NEXTJS_FILES; - const missingFiles = required.filter((file) => !fs3.existsSync(file)); - if (missingFiles.length > 0) { - throw new Error(`Required files not found: ${missingFiles.join(", ")}. ` + "Make sure you're in the correct directory and the project is built."); - } - for (const file of required) { - if (file === ".next") { - archive.directory(".next", ".next", (entry) => { - return entry.name.startsWith(".next/cache/") ? false : entry; - }); - } else { - archive.file(file, { name: file }); - } - } - optional.filter((file) => fs3.existsSync(file)).forEach((file) => { - archive.file(file, { name: file }); - }); -} -function archiveStandardProject(archive, ig) { - archive.glob("**/*", { - ignore: [".git/**", "node_modules/**", ".next/cache/**"], - dot: true, - nodir: false, - mark: true - }); -} -var publishCommand = new Command().name("publish").description("Publish or update a pipe to the store").requiredOption("--name ", "Name of the pipe").option("--verbose", "Enable verbose logging", false).action(async (opts) => { - try { - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} starting publish command...`)); - } - const apiKey = Credentials.getApiKey(); - if (!apiKey) { - console.error(colors8.error(`${symbols.error} Not logged in. Please login first using ${colors8.highlight("screenpipe login")}`)); - process.exit(1); - } - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} reading package.json...`)); - } - let packageJson; - try { - packageJson = JSON.parse(fs3.readFileSync("package.json", "utf-8")); - } catch (error) { - console.error(colors8.error(`${symbols.error} Failed to read package.json. Make sure you're in the correct directory.`)); - process.exit(1); - } - if (!packageJson.name || !packageJson.version) { - console.error(colors8.error(`${symbols.error} Package name and version are required in package.json`)); - process.exit(1); - } - console.log(colors8.info(` -${symbols.info} Publishing ${colors8.highlight(packageJson.name)} v${packageJson.version}...`)); - console.log(colors8.dim(`${symbols.arrow} Creating package archive...`)); - const zipPath = path3.join(process.cwd(), `${packageJson.name}-${packageJson.version}.zip`); - const output = fs3.createWriteStream(zipPath); - const archive = import_archiver.default("zip", { zlib: { level: 9 } }); - const ig = import_ignore.default(); - if (fs3.existsSync(".gitignore")) { - ig.add(fs3.readFileSync(".gitignore").toString()); - } - const isNextProject = fs3.existsSync("next.config.js") || fs3.existsSync("next.config.mjs") || fs3.existsSync("next.config.ts"); - archive.pipe(output); - if (isNextProject) { - await archiveNextJsProject(archive); - } else { - archiveStandardProject(archive, ig); - } - await new Promise((resolve, reject) => { - output.on("close", resolve); - archive.on("error", reject); - archive.finalize(); - }); - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} detected project type: ${isNextProject ? "nextjs" : "standard"}`)); - console.log(colors8.dim(`${symbols.arrow} starting archive creation...`)); - } - const fileBuffer = fs3.readFileSync(zipPath); - const hashSum = crypto.createHash("sha256"); - hashSum.update(fileBuffer); - const fileHash = hashSum.digest("hex"); - const fileSize = fs3.statSync(zipPath).size; - if (fileSize > MAX_FILE_SIZE) { - console.error(colors8.error(`${symbols.error} Package size (${(fileSize / 1024 / 1024).toFixed(2)}MB) exceeds maximum allowed size (${MAX_FILE_SIZE / 1024 / 1024}MB)`)); - fs3.unlinkSync(zipPath); - process.exit(1); - } - let description = null; - try { - const readmeContent = fs3.readFileSync("README.md", "utf-8"); - if (readmeContent) { - description = readmeContent; - } - } catch (error) { - console.log(colors8.dim(`${symbols.arrow} No README.md found, required for description`)); - } - if (!description) { - console.error(colors8.error(`${symbols.error} Description is required`)); - process.exit(1); - } - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} calculating file hash...`)); - } - try { - console.log(colors8.dim(`${symbols.arrow} Getting upload URL...`)); - const urlResponse = await fetch(`${API_BASE_URL}/api/plugins/publish`, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name, - version: packageJson.version, - fileSize, - fileHash, - description - }) - }); - if (!urlResponse.ok) { - throw new Error(`Failed to get upload URL: ${await urlResponse.text()}`); - } - const { uploadUrl, path: path4 } = await urlResponse.json(); - console.log(colors8.dim(`${symbols.arrow} Uploading to storage...`)); - const uploadResponse = await fetch(uploadUrl, { - method: "PUT", - headers: { - "Content-Type": "application/zip" - }, - body: fileBuffer - }); - if (!uploadResponse.ok) { - const text = await uploadResponse.text(); - throw new Error(`Failed to upload file to storage: ${text}`); - } - console.log(colors8.dim(`${symbols.arrow} Finalizing upload...`)); - const finalizeResponse = await fetch(`${API_BASE_URL}/api/plugins/publish/finalize`, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name, - version: packageJson.version, - fileHash, - storagePath: path4, - description, - fileSize - }) - }); - if (!finalizeResponse.ok) { - const text = await finalizeResponse.text(); - throw new Error(`Failed to finalize upload: ${text}`); - } - const data = await finalizeResponse.json(); - console.log(colors8.success(` -${symbols.success} Successfully published plugin!`)); - console.log(colors8.listItem(`${colors8.label("Name")} ${packageJson.name}`)); - console.log(colors8.listItem(`${colors8.label("Version")} ${packageJson.version}`)); - console.log(colors8.listItem(`${colors8.label("Size")} ${(fileSize / 1024).toFixed(2)} KB`)); - if (data.message) { - console.log(colors8.info(` -${symbols.info} ${data.message}`)); - } - fs3.unlinkSync(zipPath); - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} cleaned up temporary zip file`)); - } - } catch (error) { - if (fs3.existsSync(zipPath)) { - fs3.unlinkSync(zipPath); - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} cleaned up temporary zip file`)); - } - } - if (error instanceof Error) { - console.error(colors8.error(` -${symbols.error} Publishing failed: ${error.message}`)); - } - process.exit(1); - } - } catch (error) { - if (error instanceof Error) { - console.error(colors8.error(` -${symbols.error} Publishing failed: ${error.message}`)); - } else { - console.error(colors8.error(` -${symbols.error} Publishing failed with unexpected error`)); - } - process.exit(1); - } -}); -// src/commands/register.ts -import fs4 from "fs"; -var registerCommand = new Command().name("register").description("Register a new pipe").requiredOption("--name ", "Name of the pipe").option("--paid", "Set this flag to create a paid pipe").option("--price ", "Price in USD (required for paid pipes)", parseFloat).option("--source ", "Source code URL (e.g., GitHub repository)").action(async (opts) => { - if (opts.paid && opts.price == null) { - console.error("Error: Price is required for paid pipes, i.e., --price "); - process.exit(1); - } - if (opts.paid && opts.price <= 0) { - console.error("Error: Price must be positive for paid pipes"); - process.exit(1); - } - try { - const apiKey = Credentials.getApiKey(); - if (!apiKey) { - console.error(colors8.error(`${symbols.error} Not logged in. Please login first using ${colors8.highlight("screenpipe login")}`)); - process.exit(1); - } - let packageJson; - try { - packageJson = JSON.parse(fs4.readFileSync("package.json", "utf-8")); - } catch (error) { - console.error(colors8.error(`${symbols.error} Failed to read package.json. Make sure you're in the correct directory.`)); - process.exit(1); - } - const isPaid = opts.paid || false; - const price = opts.price; - let description = null; - try { - const readmeContent = fs4.readFileSync("README.md", "utf-8"); - if (readmeContent) { - description = readmeContent; - } - } catch (error) { - console.log(colors8.dim(`${symbols.arrow} No README.md found, required for description`)); - } - const response = await fetch(`${API_BASE_URL}/api/plugins/create`, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name, - description, - is_paid: isPaid, - price: isPaid ? price : null, - source_url: opts.source || null - }) - }); - if (!response.ok) { - const errorData = await response.json(); - throw new Error(errorData.error || "Failed to create plugin"); - } - const data = await response.json(); - console.log(colors8.success(` -${symbols.success} Successfully created pipe: ${colors8.highlight(opts.name)}`)); - console.log(colors8.info(` -${symbols.info} Plugin Details:`)); - console.log(colors8.listItem(`${colors8.label("Name")} ${opts.name}`)); - console.log(colors8.listItem(`${colors8.label("Type")} ${isPaid ? `Paid ($${price})` : "Free"}`)); - if (opts.source) { - console.log(colors8.listItem(`${colors8.label("Source")} ${opts.source}`)); - } - } catch (error) { - if (error instanceof Error) { - console.error(colors8.error(` -${symbols.error} Creating failed: ${error.message}`)); - } else { - console.error(colors8.error(` -${symbols.error} Creating failed with unexpected error`)); - } - process.exit(1); - } -}); -// src/commands/list-versions.ts -var listVersionsCommand = new Command().name("list-versions").description("List all versions of a pipe").requiredOption("--name ", "Name of the pipe").action(async (opts) => { - try { - const response = await fetch(`${API_BASE_URL}/api/plugins/list-versions`, { - method: "POST", - headers: { - Authorization: `Bearer ${Credentials.getApiKey()}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name - }) - }); - if (!response.ok) { - const error = await response.json(); - throw new Error(`Failed to list versions ${error.error}`); - } - const data = await response.json(); - console.log(colors8.header(`Plugin Information`)); - console.log(colors8.listItem(`${colors8.label("Name")} ${opts.name}`)); - console.log(colors8.listItem(`${colors8.label("ID")} ${data.plugin_id}`)); - console.log(colors8.header("Version History")); - data.versions.forEach((version) => { - const status = version.status === "published" ? colors8.success(version.status) : colors8.warning(version.status); - console.log(colors8.primary(` - ${symbols.arrow} Version ${colors8.bold(version.version)} ${colors8.dim(`(${status})`)}`)); - console.log(colors8.listItem(`${colors8.label("Created")} ${new Date(version.created_at).toLocaleString()}`)); - console.log(colors8.listItem(`${colors8.label("Size")} ${(version.file_size / 1024).toFixed(2)} KB`)); - console.log(colors8.listItem(`${colors8.label("Hash")} ${colors8.dim(version.file_hash)}`)); - if (version.changelog) { - console.log(colors8.listItem(`${colors8.label("Changelog")} ${version.changelog}`)); - } - }); - } catch (error) { - if (error instanceof Error) { - console.error(colors8.error(` -${symbols.error} List versions failed: ${error.message}`)); - } else { - console.error(colors8.error(` -${symbols.error} List versions failed with unexpected error`)); - } - process.exit(1); - } -}); // src/commands/components/commands/add/utils/logger.ts var highlighter = { error: colors8.error, @@ -55472,19 +53761,19 @@ var highlighter = { }; var logger = { error(...args) { - console.log(highlighter.error(args.join(" "))); + console.log(highlighter.error(args.join(" ").toLowerCase())); }, warn(...args) { - console.log(highlighter.warn(args.join(" "))); + console.log(highlighter.warn(args.join(" ").toLowerCase())); }, info(...args) { - console.log(highlighter.info(args.join(" "))); + console.log(highlighter.info(args.join(" ").toLowerCase())); }, success(...args) { - console.log(highlighter.success(args.join(" "))); + console.log(highlighter.success(args.join(" ").toLowerCase())); }, log(...args) { - console.log(args.join(" ")); + console.log(args.join(" ").toLowerCase()); }, break() { console.log(""); @@ -55497,6 +53786,4018 @@ function spinner(text, options) { }); } +// node_modules/simple-git/dist/esm/index.js +var import_file_exists = __toESM(require_dist(), 1); +var import_debug = __toESM(require_src(), 1); +var import_promise_deferred = __toESM(require_dist2(), 1); +var import_promise_deferred2 = __toESM(require_dist2(), 1); +import { spawn } from "child_process"; +import { EventEmitter } from "node:events"; +var __defProp2 = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames2 = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp2 = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key2, value) => (key2 in obj) ? __defProp2(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp2.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __esm2 = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; +}; +var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export2 = (target, all) => { + for (var name in all) + __defProp2(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key2 of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key2) && key2 !== except) + __defProp2(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod); +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; +function pathspec(...paths) { + const key2 = new String(paths); + cache.set(key2, paths); + return key2; +} +function isPathSpec(path) { + return path instanceof String && cache.has(path); +} +function toPaths(pathSpec) { + return cache.get(pathSpec) || []; +} +var cache; +var init_pathspec = __esm2({ + "src/lib/args/pathspec.ts"() { + cache = /* @__PURE__ */ new WeakMap; + } +}); +var GitError; +var init_git_error = __esm2({ + "src/lib/errors/git-error.ts"() { + GitError = class extends Error { + constructor(task, message) { + super(message); + this.task = task; + Object.setPrototypeOf(this, new.target.prototype); + } + }; + } +}); +var GitResponseError; +var init_git_response_error = __esm2({ + "src/lib/errors/git-response-error.ts"() { + init_git_error(); + GitResponseError = class extends GitError { + constructor(git, message) { + super(undefined, message || String(git)); + this.git = git; + } + }; + } +}); +var TaskConfigurationError; +var init_task_configuration_error = __esm2({ + "src/lib/errors/task-configuration-error.ts"() { + init_git_error(); + TaskConfigurationError = class extends GitError { + constructor(message) { + super(undefined, message); + } + }; + } +}); +function asFunction(source) { + return typeof source === "function" ? source : NOOP; +} +function isUserFunction(source) { + return typeof source === "function" && source !== NOOP; +} +function splitOn(input, char) { + const index = input.indexOf(char); + if (index <= 0) { + return [input, ""]; + } + return [input.substr(0, index), input.substr(index + 1)]; +} +function first(input, offset = 0) { + return isArrayLike(input) && input.length > offset ? input[offset] : undefined; +} +function last(input, offset = 0) { + if (isArrayLike(input) && input.length > offset) { + return input[input.length - 1 - offset]; + } +} +function isArrayLike(input) { + return !!(input && typeof input.length === "number"); +} +function toLinesWithContent(input = "", trimmed2 = true, separator = ` +`) { + return input.split(separator).reduce((output, line) => { + const lineContent = trimmed2 ? line.trim() : line; + if (lineContent) { + output.push(lineContent); + } + return output; + }, []); +} +function forEachLineWithContent(input, callback) { + return toLinesWithContent(input, true).map((line) => callback(line)); +} +function folderExists(path) { + return import_file_exists.exists(path, import_file_exists.FOLDER); +} +function append(target, item) { + if (Array.isArray(target)) { + if (!target.includes(item)) { + target.push(item); + } + } else { + target.add(item); + } + return item; +} +function including(target, item) { + if (Array.isArray(target) && !target.includes(item)) { + target.push(item); + } + return target; +} +function remove(target, item) { + if (Array.isArray(target)) { + const index = target.indexOf(item); + if (index >= 0) { + target.splice(index, 1); + } + } else { + target.delete(item); + } + return item; +} +function asArray(source) { + return Array.isArray(source) ? source : [source]; +} +function asCamelCase(str) { + return str.replace(/[\s-]+(.)/g, (_all, chr) => { + return chr.toUpperCase(); + }); +} +function asStringArray(source) { + return asArray(source).map(String); +} +function asNumber(source, onNaN = 0) { + if (source == null) { + return onNaN; + } + const num = parseInt(source, 10); + return isNaN(num) ? onNaN : num; +} +function prefixedArray(input, prefix) { + const output = []; + for (let i = 0, max = input.length;i < max; i++) { + output.push(prefix, input[i]); + } + return output; +} +function bufferToString(input) { + return (Array.isArray(input) ? Buffer.concat(input) : input).toString("utf-8"); +} +function pick(source, properties) { + return Object.assign({}, ...properties.map((property) => (property in source) ? { [property]: source[property] } : {})); +} +function delay(duration = 0) { + return new Promise((done) => setTimeout(done, duration)); +} +function orVoid(input) { + if (input === false) { + return; + } + return input; +} +var NULL; +var NOOP; +var objectToString; +var init_util = __esm2({ + "src/lib/utils/util.ts"() { + NULL = "\x00"; + NOOP = () => { + }; + objectToString = Object.prototype.toString.call.bind(Object.prototype.toString); + } +}); +function filterType(input, filter, def) { + if (filter(input)) { + return input; + } + return arguments.length > 2 ? def : undefined; +} +function filterPrimitives(input, omit) { + const type = isPathSpec(input) ? "string" : typeof input; + return /number|string|boolean/.test(type) && (!omit || !omit.includes(type)); +} +function filterPlainObject(input) { + return !!input && objectToString(input) === "[object Object]"; +} +function filterFunction(input) { + return typeof input === "function"; +} +var filterArray; +var filterString; +var filterStringArray; +var filterStringOrStringArray; +var filterHasLength; +var init_argument_filters = __esm2({ + "src/lib/utils/argument-filters.ts"() { + init_util(); + init_pathspec(); + filterArray = (input) => { + return Array.isArray(input); + }; + filterString = (input) => { + return typeof input === "string"; + }; + filterStringArray = (input) => { + return Array.isArray(input) && input.every(filterString); + }; + filterStringOrStringArray = (input) => { + return filterString(input) || Array.isArray(input) && input.every(filterString); + }; + filterHasLength = (input) => { + if (input == null || "number|boolean|function".includes(typeof input)) { + return false; + } + return Array.isArray(input) || typeof input === "string" || typeof input.length === "number"; + }; + } +}); +var ExitCodes; +var init_exit_codes = __esm2({ + "src/lib/utils/exit-codes.ts"() { + ExitCodes = /* @__PURE__ */ ((ExitCodes2) => { + ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS"; + ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR"; + ExitCodes2[ExitCodes2["NOT_FOUND"] = -2] = "NOT_FOUND"; + ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN"; + return ExitCodes2; + })(ExitCodes || {}); + } +}); +var GitOutputStreams; +var init_git_output_streams = __esm2({ + "src/lib/utils/git-output-streams.ts"() { + GitOutputStreams = class { + constructor(stdOut, stdErr) { + this.stdOut = stdOut; + this.stdErr = stdErr; + } + asStrings() { + return new GitOutputStreams(this.stdOut.toString("utf8"), this.stdErr.toString("utf8")); + } + }; + } +}); +var LineParser; +var RemoteLineParser; +var init_line_parser = __esm2({ + "src/lib/utils/line-parser.ts"() { + LineParser = class { + constructor(regExp, useMatches) { + this.matches = []; + this.parse = (line, target) => { + this.resetMatches(); + if (!this._regExp.every((reg, index) => this.addMatch(reg, index, line(index)))) { + return false; + } + return this.useMatches(target, this.prepareMatches()) !== false; + }; + this._regExp = Array.isArray(regExp) ? regExp : [regExp]; + if (useMatches) { + this.useMatches = useMatches; + } + } + useMatches(target, match) { + throw new Error(`LineParser:useMatches not implemented`); + } + resetMatches() { + this.matches.length = 0; + } + prepareMatches() { + return this.matches; + } + addMatch(reg, index, line) { + const matched = line && reg.exec(line); + if (matched) { + this.pushMatch(index, matched); + } + return !!matched; + } + pushMatch(_index, matched) { + this.matches.push(...matched.slice(1)); + } + }; + RemoteLineParser = class extends LineParser { + addMatch(reg, index, line) { + return /^remote:\s/.test(String(line)) && super.addMatch(reg, index, line); + } + pushMatch(index, matched) { + if (index > 0 || matched.length > 1) { + super.pushMatch(index, matched); + } + } + }; + } +}); +function createInstanceConfig(...options) { + const baseDir = process.cwd(); + const config = Object.assign(__spreadValues({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o)); + config.baseDir = config.baseDir || baseDir; + config.trimmed = config.trimmed === true; + return config; +} +var defaultOptions; +var init_simple_git_options = __esm2({ + "src/lib/utils/simple-git-options.ts"() { + defaultOptions = { + binary: "git", + maxConcurrentProcesses: 5, + config: [], + trimmed: false + }; + } +}); +function appendTaskOptions(options, commands = []) { + if (!filterPlainObject(options)) { + return commands; + } + return Object.keys(options).reduce((commands2, key2) => { + const value = options[key2]; + if (isPathSpec(value)) { + commands2.push(value); + } else if (filterPrimitives(value, ["boolean"])) { + commands2.push(key2 + "=" + value); + } else { + commands2.push(key2); + } + return commands2; + }, commands); +} +function getTrailingOptions(args, initialPrimitive = 0, objectOnly = false) { + const command = []; + for (let i = 0, max = initialPrimitive < 0 ? args.length : initialPrimitive;i < max; i++) { + if ("string|number".includes(typeof args[i])) { + command.push(String(args[i])); + } + } + appendTaskOptions(trailingOptionsArgument(args), command); + if (!objectOnly) { + command.push(...trailingArrayArgument(args)); + } + return command; +} +function trailingArrayArgument(args) { + const hasTrailingCallback = typeof last(args) === "function"; + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterArray, []); +} +function trailingOptionsArgument(args) { + const hasTrailingCallback = filterFunction(last(args)); + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterPlainObject); +} +function trailingFunctionArgument(args, includeNoop = true) { + const callback = asFunction(last(args)); + return includeNoop || isUserFunction(callback) ? callback : undefined; +} +var init_task_options = __esm2({ + "src/lib/utils/task-options.ts"() { + init_argument_filters(); + init_util(); + init_pathspec(); + } +}); +function callTaskParser(parser4, streams) { + return parser4(streams.stdOut, streams.stdErr); +} +function parseStringResponse(result, parsers12, texts, trim = true) { + asArray(texts).forEach((text) => { + for (let lines2 = toLinesWithContent(text, trim), i = 0, max = lines2.length;i < max; i++) { + const line = (offset = 0) => { + if (i + offset >= max) { + return; + } + return lines2[i + offset]; + }; + parsers12.some(({ parse }) => parse(line, result)); + } + }); + return result; +} +var init_task_parser = __esm2({ + "src/lib/utils/task-parser.ts"() { + init_util(); + } +}); +var utils_exports = {}; +__export2(utils_exports, { + ExitCodes: () => ExitCodes, + GitOutputStreams: () => GitOutputStreams, + LineParser: () => LineParser, + NOOP: () => NOOP, + NULL: () => NULL, + RemoteLineParser: () => RemoteLineParser, + append: () => append, + appendTaskOptions: () => appendTaskOptions, + asArray: () => asArray, + asCamelCase: () => asCamelCase, + asFunction: () => asFunction, + asNumber: () => asNumber, + asStringArray: () => asStringArray, + bufferToString: () => bufferToString, + callTaskParser: () => callTaskParser, + createInstanceConfig: () => createInstanceConfig, + delay: () => delay, + filterArray: () => filterArray, + filterFunction: () => filterFunction, + filterHasLength: () => filterHasLength, + filterPlainObject: () => filterPlainObject, + filterPrimitives: () => filterPrimitives, + filterString: () => filterString, + filterStringArray: () => filterStringArray, + filterStringOrStringArray: () => filterStringOrStringArray, + filterType: () => filterType, + first: () => first, + folderExists: () => folderExists, + forEachLineWithContent: () => forEachLineWithContent, + getTrailingOptions: () => getTrailingOptions, + including: () => including, + isUserFunction: () => isUserFunction, + last: () => last, + objectToString: () => objectToString, + orVoid: () => orVoid, + parseStringResponse: () => parseStringResponse, + pick: () => pick, + prefixedArray: () => prefixedArray, + remove: () => remove, + splitOn: () => splitOn, + toLinesWithContent: () => toLinesWithContent, + trailingFunctionArgument: () => trailingFunctionArgument, + trailingOptionsArgument: () => trailingOptionsArgument +}); +var init_utils2 = __esm2({ + "src/lib/utils/index.ts"() { + init_argument_filters(); + init_exit_codes(); + init_git_output_streams(); + init_line_parser(); + init_simple_git_options(); + init_task_options(); + init_task_parser(); + init_util(); + } +}); +var check_is_repo_exports = {}; +__export2(check_is_repo_exports, { + CheckRepoActions: () => CheckRepoActions, + checkIsBareRepoTask: () => checkIsBareRepoTask, + checkIsRepoRootTask: () => checkIsRepoRootTask, + checkIsRepoTask: () => checkIsRepoTask +}); +function checkIsRepoTask(action) { + switch (action) { + case "bare": + return checkIsBareRepoTask(); + case "root": + return checkIsRepoRootTask(); + } + const commands = ["rev-parse", "--is-inside-work-tree"]; + return { + commands, + format: "utf-8", + onError, + parser + }; +} +function checkIsRepoRootTask() { + const commands = ["rev-parse", "--git-dir"]; + return { + commands, + format: "utf-8", + onError, + parser(path) { + return /^\.(git)?$/.test(path.trim()); + } + }; +} +function checkIsBareRepoTask() { + const commands = ["rev-parse", "--is-bare-repository"]; + return { + commands, + format: "utf-8", + onError, + parser + }; +} +function isNotRepoMessage(error) { + return /(Not a git repository|Kein Git-Repository)/i.test(String(error)); +} +var CheckRepoActions; +var onError; +var parser; +var init_check_is_repo = __esm2({ + "src/lib/tasks/check-is-repo.ts"() { + init_utils2(); + CheckRepoActions = /* @__PURE__ */ ((CheckRepoActions2) => { + CheckRepoActions2["BARE"] = "bare"; + CheckRepoActions2["IN_TREE"] = "tree"; + CheckRepoActions2["IS_REPO_ROOT"] = "root"; + return CheckRepoActions2; + })(CheckRepoActions || {}); + onError = ({ exitCode }, error, done, fail) => { + if (exitCode === 128 && isNotRepoMessage(error)) { + return done(Buffer.from("false")); + } + fail(error); + }; + parser = (text) => { + return text.trim() === "true"; + }; + } +}); +function cleanSummaryParser(dryRun, text) { + const summary = new CleanResponse(dryRun); + const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp; + toLinesWithContent(text).forEach((line) => { + const removed = line.replace(regexp, ""); + summary.paths.push(removed); + (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed); + }); + return summary; +} +var CleanResponse; +var removalRegexp; +var dryRunRemovalRegexp; +var isFolderRegexp; +var init_CleanSummary = __esm2({ + "src/lib/responses/CleanSummary.ts"() { + init_utils2(); + CleanResponse = class { + constructor(dryRun) { + this.dryRun = dryRun; + this.paths = []; + this.files = []; + this.folders = []; + } + }; + removalRegexp = /^[a-z]+\s*/i; + dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i; + isFolderRegexp = /\/$/; + } +}); +var task_exports = {}; +__export2(task_exports, { + EMPTY_COMMANDS: () => EMPTY_COMMANDS, + adhocExecTask: () => adhocExecTask, + configurationErrorTask: () => configurationErrorTask, + isBufferTask: () => isBufferTask, + isEmptyTask: () => isEmptyTask, + straightThroughBufferTask: () => straightThroughBufferTask, + straightThroughStringTask: () => straightThroughStringTask +}); +function adhocExecTask(parser4) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser: parser4 + }; +} +function configurationErrorTask(error) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser() { + throw typeof error === "string" ? new TaskConfigurationError(error) : error; + } + }; +} +function straightThroughStringTask(commands, trimmed2 = false) { + return { + commands, + format: "utf-8", + parser(text) { + return trimmed2 ? String(text).trim() : text; + } + }; +} +function straightThroughBufferTask(commands) { + return { + commands, + format: "buffer", + parser(buffer) { + return buffer; + } + }; +} +function isBufferTask(task) { + return task.format === "buffer"; +} +function isEmptyTask(task) { + return task.format === "empty" || !task.commands.length; +} +var EMPTY_COMMANDS; +var init_task = __esm2({ + "src/lib/tasks/task.ts"() { + init_task_configuration_error(); + EMPTY_COMMANDS = []; + } +}); +var clean_exports = {}; +__export2(clean_exports, { + CONFIG_ERROR_INTERACTIVE_MODE: () => CONFIG_ERROR_INTERACTIVE_MODE, + CONFIG_ERROR_MODE_REQUIRED: () => CONFIG_ERROR_MODE_REQUIRED, + CONFIG_ERROR_UNKNOWN_OPTION: () => CONFIG_ERROR_UNKNOWN_OPTION, + CleanOptions: () => CleanOptions, + cleanTask: () => cleanTask, + cleanWithOptionsTask: () => cleanWithOptionsTask, + isCleanOptionsArray: () => isCleanOptionsArray +}); +function cleanWithOptionsTask(mode, customArgs) { + const { cleanMode, options, valid } = getCleanOptions(mode); + if (!cleanMode) { + return configurationErrorTask(CONFIG_ERROR_MODE_REQUIRED); + } + if (!valid.options) { + return configurationErrorTask(CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode)); + } + options.push(...customArgs); + if (options.some(isInteractiveMode)) { + return configurationErrorTask(CONFIG_ERROR_INTERACTIVE_MODE); + } + return cleanTask(cleanMode, options); +} +function cleanTask(mode, customArgs) { + const commands = ["clean", `-${mode}`, ...customArgs]; + return { + commands, + format: "utf-8", + parser(text) { + return cleanSummaryParser(mode === "n", text); + } + }; +} +function isCleanOptionsArray(input) { + return Array.isArray(input) && input.every((test) => CleanOptionValues.has(test)); +} +function getCleanOptions(input) { + let cleanMode; + let options = []; + let valid = { cleanMode: false, options: true }; + input.replace(/[^a-z]i/g, "").split("").forEach((char) => { + if (isCleanMode(char)) { + cleanMode = char; + valid.cleanMode = true; + } else { + valid.options = valid.options && isKnownOption(options[options.length] = `-${char}`); + } + }); + return { + cleanMode, + options, + valid + }; +} +function isCleanMode(cleanMode) { + return cleanMode === "f" || cleanMode === "n"; +} +function isKnownOption(option) { + return /^-[a-z]$/i.test(option) && CleanOptionValues.has(option.charAt(1)); +} +function isInteractiveMode(option) { + if (/^-[^\-]/.test(option)) { + return option.indexOf("i") > 0; + } + return option === "--interactive"; +} +var CONFIG_ERROR_INTERACTIVE_MODE; +var CONFIG_ERROR_MODE_REQUIRED; +var CONFIG_ERROR_UNKNOWN_OPTION; +var CleanOptions; +var CleanOptionValues; +var init_clean = __esm2({ + "src/lib/tasks/clean.ts"() { + init_CleanSummary(); + init_utils2(); + init_task(); + CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported"; + CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required'; + CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: "; + CleanOptions = /* @__PURE__ */ ((CleanOptions2) => { + CleanOptions2["DRY_RUN"] = "n"; + CleanOptions2["FORCE"] = "f"; + CleanOptions2["IGNORED_INCLUDED"] = "x"; + CleanOptions2["IGNORED_ONLY"] = "X"; + CleanOptions2["EXCLUDING"] = "e"; + CleanOptions2["QUIET"] = "q"; + CleanOptions2["RECURSIVE"] = "d"; + return CleanOptions2; + })(CleanOptions || {}); + CleanOptionValues = /* @__PURE__ */ new Set([ + "i", + ...asStringArray(Object.values(CleanOptions)) + ]); + } +}); +function configListParser(text) { + const config = new ConfigList; + for (const item of configParser(text)) { + config.addValue(item.file, String(item.key), item.value); + } + return config; +} +function configGetParser(text, key2) { + let value = null; + const values = []; + const scopes = /* @__PURE__ */ new Map; + for (const item of configParser(text, key2)) { + if (item.key !== key2) { + continue; + } + values.push(value = item.value); + if (!scopes.has(item.file)) { + scopes.set(item.file, []); + } + scopes.get(item.file).push(value); + } + return { + key: key2, + paths: Array.from(scopes.keys()), + scopes, + value, + values + }; +} +function configFilePath(filePath) { + return filePath.replace(/^(file):/, ""); +} +function* configParser(text, requestedKey = null) { + const lines2 = text.split("\x00"); + for (let i = 0, max = lines2.length - 1;i < max; ) { + const file = configFilePath(lines2[i++]); + let value = lines2[i++]; + let key2 = requestedKey; + if (value.includes(` +`)) { + const line = splitOn(value, ` +`); + key2 = line[0]; + value = line[1]; + } + yield { file, key: key2, value }; + } +} +var ConfigList; +var init_ConfigList = __esm2({ + "src/lib/responses/ConfigList.ts"() { + init_utils2(); + ConfigList = class { + constructor() { + this.files = []; + this.values = /* @__PURE__ */ Object.create(null); + } + get all() { + if (!this._all) { + this._all = this.files.reduce((all, file) => { + return Object.assign(all, this.values[file]); + }, {}); + } + return this._all; + } + addFile(file) { + if (!(file in this.values)) { + const latest = last(this.files); + this.values[file] = latest ? Object.create(this.values[latest]) : {}; + this.files.push(file); + } + return this.values[file]; + } + addValue(file, key2, value) { + const values = this.addFile(file); + if (!values.hasOwnProperty(key2)) { + values[key2] = value; + } else if (Array.isArray(values[key2])) { + values[key2].push(value); + } else { + values[key2] = [values[key2], value]; + } + this._all = undefined; + } + }; + } +}); +function asConfigScope(scope, fallback2) { + if (typeof scope === "string" && GitConfigScope.hasOwnProperty(scope)) { + return scope; + } + return fallback2; +} +function addConfigTask(key2, value, append2, scope) { + const commands = ["config", `--${scope}`]; + if (append2) { + commands.push("--add"); + } + commands.push(key2, value); + return { + commands, + format: "utf-8", + parser(text) { + return text; + } + }; +} +function getConfigTask(key2, scope) { + const commands = ["config", "--null", "--show-origin", "--get-all", key2]; + if (scope) { + commands.splice(1, 0, `--${scope}`); + } + return { + commands, + format: "utf-8", + parser(text) { + return configGetParser(text, key2); + } + }; +} +function listConfigTask(scope) { + const commands = ["config", "--list", "--show-origin", "--null"]; + if (scope) { + commands.push(`--${scope}`); + } + return { + commands, + format: "utf-8", + parser(text) { + return configListParser(text); + } + }; +} +function config_default() { + return { + addConfig(key2, value, ...rest) { + return this._runTask(addConfigTask(key2, value, rest[0] === true, asConfigScope(rest[1], "local")), trailingFunctionArgument(arguments)); + }, + getConfig(key2, scope) { + return this._runTask(getConfigTask(key2, asConfigScope(scope, undefined)), trailingFunctionArgument(arguments)); + }, + listConfig(...rest) { + return this._runTask(listConfigTask(asConfigScope(rest[0], undefined)), trailingFunctionArgument(arguments)); + } + }; +} +var GitConfigScope; +var init_config = __esm2({ + "src/lib/tasks/config.ts"() { + init_ConfigList(); + init_utils2(); + GitConfigScope = /* @__PURE__ */ ((GitConfigScope2) => { + GitConfigScope2["system"] = "system"; + GitConfigScope2["global"] = "global"; + GitConfigScope2["local"] = "local"; + GitConfigScope2["worktree"] = "worktree"; + return GitConfigScope2; + })(GitConfigScope || {}); + } +}); +function isDiffNameStatus(input) { + return diffNameStatus.has(input); +} +var DiffNameStatus; +var diffNameStatus; +var init_diff_name_status = __esm2({ + "src/lib/tasks/diff-name-status.ts"() { + DiffNameStatus = /* @__PURE__ */ ((DiffNameStatus2) => { + DiffNameStatus2["ADDED"] = "A"; + DiffNameStatus2["COPIED"] = "C"; + DiffNameStatus2["DELETED"] = "D"; + DiffNameStatus2["MODIFIED"] = "M"; + DiffNameStatus2["RENAMED"] = "R"; + DiffNameStatus2["CHANGED"] = "T"; + DiffNameStatus2["UNMERGED"] = "U"; + DiffNameStatus2["UNKNOWN"] = "X"; + DiffNameStatus2["BROKEN"] = "B"; + return DiffNameStatus2; + })(DiffNameStatus || {}); + diffNameStatus = new Set(Object.values(DiffNameStatus)); + } +}); +function grepQueryBuilder(...params) { + return new GrepQuery().param(...params); +} +function parseGrep(grep) { + const paths = /* @__PURE__ */ new Set; + const results = {}; + forEachLineWithContent(grep, (input) => { + const [path, line, preview] = input.split(NULL); + paths.add(path); + (results[path] = results[path] || []).push({ + line: asNumber(line), + path, + preview + }); + }); + return { + paths, + results + }; +} +function grep_default() { + return { + grep(searchTerm) { + const then = trailingFunctionArgument(arguments); + const options = getTrailingOptions(arguments); + for (const option of disallowedOptions) { + if (options.includes(option)) { + return this._runTask(configurationErrorTask(`git.grep: use of "${option}" is not supported.`), then); + } + } + if (typeof searchTerm === "string") { + searchTerm = grepQueryBuilder().param(searchTerm); + } + const commands = ["grep", "--null", "-n", "--full-name", ...options, ...searchTerm]; + return this._runTask({ + commands, + format: "utf-8", + parser(stdOut) { + return parseGrep(stdOut); + } + }, then); + } + }; +} +var disallowedOptions; +var Query; +var _a; +var GrepQuery; +var init_grep = __esm2({ + "src/lib/tasks/grep.ts"() { + init_utils2(); + init_task(); + disallowedOptions = ["-h"]; + Query = Symbol("grepQuery"); + GrepQuery = class { + constructor() { + this[_a] = []; + } + *[(_a = Query, Symbol.iterator)]() { + for (const query of this[Query]) { + yield query; + } + } + and(...and) { + and.length && this[Query].push("--and", "(", ...prefixedArray(and, "-e"), ")"); + return this; + } + param(...param) { + this[Query].push(...prefixedArray(param, "-e")); + return this; + } + }; + } +}); +var reset_exports = {}; +__export2(reset_exports, { + ResetMode: () => ResetMode, + getResetMode: () => getResetMode, + resetTask: () => resetTask +}); +function resetTask(mode, customArgs) { + const commands = ["reset"]; + if (isValidResetMode(mode)) { + commands.push(`--${mode}`); + } + commands.push(...customArgs); + return straightThroughStringTask(commands); +} +function getResetMode(mode) { + if (isValidResetMode(mode)) { + return mode; + } + switch (typeof mode) { + case "string": + case "undefined": + return "soft"; + } + return; +} +function isValidResetMode(mode) { + return ResetModes.includes(mode); +} +var ResetMode; +var ResetModes; +var init_reset = __esm2({ + "src/lib/tasks/reset.ts"() { + init_task(); + ResetMode = /* @__PURE__ */ ((ResetMode2) => { + ResetMode2["MIXED"] = "mixed"; + ResetMode2["SOFT"] = "soft"; + ResetMode2["HARD"] = "hard"; + ResetMode2["MERGE"] = "merge"; + ResetMode2["KEEP"] = "keep"; + return ResetMode2; + })(ResetMode || {}); + ResetModes = Array.from(Object.values(ResetMode)); + } +}); +function createLog() { + return import_debug.default("simple-git"); +} +function prefixedLogger(to, prefix, forward) { + if (!prefix || !String(prefix).replace(/\s*/, "")) { + return !forward ? to : (message, ...args) => { + to(message, ...args); + forward(message, ...args); + }; + } + return (message, ...args) => { + to(`%s ${message}`, prefix, ...args); + if (forward) { + forward(message, ...args); + } + }; +} +function childLoggerName(name, childDebugger, { namespace: parentNamespace }) { + if (typeof name === "string") { + return name; + } + const childNamespace = childDebugger && childDebugger.namespace || ""; + if (childNamespace.startsWith(parentNamespace)) { + return childNamespace.substr(parentNamespace.length + 1); + } + return childNamespace || parentNamespace; +} +function createLogger(label, verbose, initialStep, infoDebugger = createLog()) { + const labelPrefix = label && `[${label}]` || ""; + const spawned = []; + const debugDebugger = typeof verbose === "string" ? infoDebugger.extend(verbose) : verbose; + const key2 = childLoggerName(filterType(verbose, filterString), debugDebugger, infoDebugger); + return step(initialStep); + function sibling(name, initial) { + return append(spawned, createLogger(label, key2.replace(/^[^:]+/, name), initial, infoDebugger)); + } + function step(phase) { + const stepPrefix = phase && `[${phase}]` || ""; + const debug2 = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || NOOP; + const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug2); + return Object.assign(debugDebugger ? debug2 : info, { + label, + sibling, + info, + step + }); + } +} +var init_git_logger = __esm2({ + "src/lib/git-logger.ts"() { + init_utils2(); + import_debug.default.formatters.L = (value) => String(filterHasLength(value) ? value.length : "-"); + import_debug.default.formatters.B = (value) => { + if (Buffer.isBuffer(value)) { + return value.toString("utf8"); + } + return objectToString(value); + }; + } +}); +var _TasksPendingQueue; +var TasksPendingQueue; +var init_tasks_pending_queue = __esm2({ + "src/lib/runners/tasks-pending-queue.ts"() { + init_git_error(); + init_git_logger(); + _TasksPendingQueue = class { + constructor(logLabel = "GitExecutor") { + this.logLabel = logLabel; + this._queue = /* @__PURE__ */ new Map; + } + withProgress(task) { + return this._queue.get(task); + } + createProgress(task) { + const name = _TasksPendingQueue.getName(task.commands[0]); + const logger2 = createLogger(this.logLabel, name); + return { + task, + logger: logger2, + name + }; + } + push(task) { + const progress = this.createProgress(task); + progress.logger("Adding task to the queue, commands = %o", task.commands); + this._queue.set(task, progress); + return progress; + } + fatal(err) { + for (const [task, { logger: logger2 }] of Array.from(this._queue.entries())) { + if (task === err.task) { + logger2.info(`Failed %o`, err); + logger2(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`); + } else { + logger2.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`, err.message); + } + this.complete(task); + } + if (this._queue.size !== 0) { + throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`); + } + } + complete(task) { + const progress = this.withProgress(task); + if (progress) { + this._queue.delete(task); + } + } + attempt(task) { + const progress = this.withProgress(task); + if (!progress) { + throw new GitError(undefined, "TasksPendingQueue: attempt called for an unknown task"); + } + progress.logger("Starting task"); + return progress; + } + static getName(name = "empty") { + return `task:${name}:${++_TasksPendingQueue.counter}`; + } + }; + TasksPendingQueue = _TasksPendingQueue; + TasksPendingQueue.counter = 0; + } +}); +function pluginContext(task, commands) { + return { + method: first(task.commands) || "", + commands + }; +} +function onErrorReceived(target, logger2) { + return (err) => { + logger2(`[ERROR] child process exception %o`, err); + target.push(Buffer.from(String(err.stack), "ascii")); + }; +} +function onDataReceived(target, name, logger2, output) { + return (buffer) => { + logger2(`%s received %L bytes`, name, buffer); + output(`%B`, buffer); + target.push(buffer); + }; +} +var GitExecutorChain; +var init_git_executor_chain = __esm2({ + "src/lib/runners/git-executor-chain.ts"() { + init_git_error(); + init_task(); + init_utils2(); + init_tasks_pending_queue(); + GitExecutorChain = class { + constructor(_executor, _scheduler, _plugins) { + this._executor = _executor; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = Promise.resolve(); + this._queue = new TasksPendingQueue; + } + get cwd() { + return this._cwd || this._executor.cwd; + } + set cwd(cwd) { + this._cwd = cwd; + } + get env() { + return this._executor.env; + } + get outputHandler() { + return this._executor.outputHandler; + } + chain() { + return this; + } + push(task) { + this._queue.push(task); + return this._chain = this._chain.then(() => this.attemptTask(task)); + } + attemptTask(task) { + return __async(this, null, function* () { + const onScheduleComplete = yield this._scheduler.next(); + const onQueueComplete = () => this._queue.complete(task); + try { + const { logger: logger2 } = this._queue.attempt(task); + return yield isEmptyTask(task) ? this.attemptEmptyTask(task, logger2) : this.attemptRemoteTask(task, logger2); + } catch (e) { + throw this.onFatalException(task, e); + } finally { + onQueueComplete(); + onScheduleComplete(); + } + }); + } + onFatalException(task, e) { + const gitError = e instanceof GitError ? Object.assign(e, { task }) : new GitError(task, e && String(e)); + this._chain = Promise.resolve(); + this._queue.fatal(gitError); + return gitError; + } + attemptRemoteTask(task, logger2) { + return __async(this, null, function* () { + const binary = this._plugins.exec("spawn.binary", "", pluginContext(task, task.commands)); + const args = this._plugins.exec("spawn.args", [...task.commands], pluginContext(task, task.commands)); + const raw = yield this.gitResponse(task, binary, args, this.outputHandler, logger2.step("SPAWN")); + const outputStreams = yield this.handleTaskData(task, args, raw, logger2.step("HANDLE")); + logger2(`passing response to task's parser as a %s`, task.format); + if (isBufferTask(task)) { + return callTaskParser(task.parser, outputStreams); + } + return callTaskParser(task.parser, outputStreams.asStrings()); + }); + } + attemptEmptyTask(task, logger2) { + return __async(this, null, function* () { + logger2(`empty task bypassing child process to call to task's parser`); + return task.parser(this); + }); + } + handleTaskData(task, args, result, logger2) { + const { exitCode, rejection, stdOut, stdErr } = result; + return new Promise((done, fail) => { + logger2(`Preparing to handle process response exitCode=%d stdOut=`, exitCode); + const { error } = this._plugins.exec("task.error", { error: rejection }, __spreadValues(__spreadValues({}, pluginContext(task, args)), result)); + if (error && task.onError) { + logger2.info(`exitCode=%s handling with custom error handler`); + return task.onError(result, error, (newStdOut) => { + logger2.info(`custom error handler treated as success`); + logger2(`custom error returned a %s`, objectToString(newStdOut)); + done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer.concat(newStdOut) : newStdOut, Buffer.concat(stdErr))); + }, fail); + } + if (error) { + logger2.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`, exitCode, stdErr.length, rejection); + return fail(error); + } + logger2.info(`retrieving task output complete`); + done(new GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr))); + }); + } + gitResponse(task, command, args, outputHandler, logger2) { + return __async(this, null, function* () { + const outputLogger = logger2.sibling("output"); + const spawnOptions = this._plugins.exec("spawn.options", { + cwd: this.cwd, + env: this.env, + windowsHide: true + }, pluginContext(task, task.commands)); + return new Promise((done) => { + const stdOut = []; + const stdErr = []; + logger2.info(`%s %o`, command, args); + logger2("%O", spawnOptions); + let rejection = this._beforeSpawn(task, args); + if (rejection) { + return done({ + stdOut, + stdErr, + exitCode: 9901, + rejection + }); + } + this._plugins.exec("spawn.before", undefined, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + const spawned = spawn(command, args, spawnOptions); + spawned.stdout.on("data", onDataReceived(stdOut, "stdOut", logger2, outputLogger.step("stdOut"))); + spawned.stderr.on("data", onDataReceived(stdErr, "stdErr", logger2, outputLogger.step("stdErr"))); + spawned.on("error", onErrorReceived(stdErr, logger2)); + if (outputHandler) { + logger2(`Passing child process stdOut/stdErr to custom outputHandler`); + outputHandler(command, spawned.stdout, spawned.stderr, [...args]); + } + this._plugins.exec("spawn.after", undefined, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + spawned, + close(exitCode, reason) { + done({ + stdOut, + stdErr, + exitCode, + rejection: rejection || reason + }); + }, + kill(reason) { + if (spawned.killed) { + return; + } + rejection = reason; + spawned.kill("SIGINT"); + } + })); + }); + }); + } + _beforeSpawn(task, args) { + let rejection; + this._plugins.exec("spawn.before", undefined, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + return rejection; + } + }; + } +}); +var git_executor_exports = {}; +__export2(git_executor_exports, { + GitExecutor: () => GitExecutor +}); +var GitExecutor; +var init_git_executor = __esm2({ + "src/lib/runners/git-executor.ts"() { + init_git_executor_chain(); + GitExecutor = class { + constructor(cwd, _scheduler, _plugins) { + this.cwd = cwd; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = new GitExecutorChain(this, this._scheduler, this._plugins); + } + chain() { + return new GitExecutorChain(this, this._scheduler, this._plugins); + } + push(task) { + return this._chain.push(task); + } + }; + } +}); +function taskCallback(task, response, callback = NOOP) { + const onSuccess = (data) => { + callback(null, data); + }; + const onError2 = (err) => { + if ((err == null ? undefined : err.task) === task) { + callback(err instanceof GitResponseError ? addDeprecationNoticeToError(err) : err, undefined); + } + }; + response.then(onSuccess, onError2); +} +function addDeprecationNoticeToError(err) { + let log = (name) => { + console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`); + log = NOOP; + }; + return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {})); + function descriptorReducer(all, name) { + if (name in err) { + return all; + } + all[name] = { + enumerable: false, + configurable: false, + get() { + log(name); + return err.git[name]; + } + }; + return all; + } +} +var init_task_callback = __esm2({ + "src/lib/task-callback.ts"() { + init_git_response_error(); + init_utils2(); + } +}); +function changeWorkingDirectoryTask(directory, root) { + return adhocExecTask((instance) => { + if (!folderExists(directory)) { + throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`); + } + return (root || instance).cwd = directory; + }); +} +var init_change_working_directory = __esm2({ + "src/lib/tasks/change-working-directory.ts"() { + init_utils2(); + init_task(); + } +}); +function checkoutTask(args) { + const commands = ["checkout", ...args]; + if (commands[1] === "-b" && commands.includes("-B")) { + commands[1] = remove(commands, "-B"); + } + return straightThroughStringTask(commands); +} +function checkout_default() { + return { + checkout() { + return this._runTask(checkoutTask(getTrailingOptions(arguments, 1)), trailingFunctionArgument(arguments)); + }, + checkoutBranch(branchName, startPoint) { + return this._runTask(checkoutTask(["-b", branchName, startPoint, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + }, + checkoutLocalBranch(branchName) { + return this._runTask(checkoutTask(["-b", branchName, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + }; +} +var init_checkout = __esm2({ + "src/lib/tasks/checkout.ts"() { + init_utils2(); + init_task(); + } +}); +function countObjectsResponse() { + return { + count: 0, + garbage: 0, + inPack: 0, + packs: 0, + prunePackable: 0, + size: 0, + sizeGarbage: 0, + sizePack: 0 + }; +} +function count_objects_default() { + return { + countObjects() { + return this._runTask({ + commands: ["count-objects", "--verbose"], + format: "utf-8", + parser(stdOut) { + return parseStringResponse(countObjectsResponse(), [parser2], stdOut); + } + }); + } + }; +} +var parser2; +var init_count_objects = __esm2({ + "src/lib/tasks/count-objects.ts"() { + init_utils2(); + parser2 = new LineParser(/([a-z-]+): (\d+)$/, (result, [key2, value]) => { + const property = asCamelCase(key2); + if (result.hasOwnProperty(property)) { + result[property] = asNumber(value); + } + }); + } +}); +function parseCommitResult(stdOut) { + const result = { + author: null, + branch: "", + commit: "", + root: false, + summary: { + changes: 0, + insertions: 0, + deletions: 0 + } + }; + return parseStringResponse(result, parsers, stdOut); +} +var parsers; +var init_parse_commit = __esm2({ + "src/lib/parsers/parse-commit.ts"() { + init_utils2(); + parsers = [ + new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch, root, commit]) => { + result.branch = branch; + result.commit = commit; + result.root = !!root; + }), + new LineParser(/\s*Author:\s(.+)/i, (result, [author]) => { + const parts = author.split("<"); + const email = parts.pop(); + if (!email || !email.includes("@")) { + return; + } + result.author = { + email: email.substr(0, email.length - 1), + name: parts.join("<").trim() + }; + }), + new LineParser(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g, (result, [changes, insertions, deletions]) => { + result.summary.changes = parseInt(changes, 10) || 0; + result.summary.insertions = parseInt(insertions, 10) || 0; + result.summary.deletions = parseInt(deletions, 10) || 0; + }), + new LineParser(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/, (result, [changes, lines2, direction]) => { + result.summary.changes = parseInt(changes, 10) || 0; + const count = parseInt(lines2, 10) || 0; + if (direction === "-") { + result.summary.deletions = count; + } else if (direction === "+") { + result.summary.insertions = count; + } + }) + ]; + } +}); +function commitTask(message, files, customArgs) { + const commands = [ + "-c", + "core.abbrev=40", + "commit", + ...prefixedArray(message, "-m"), + ...files, + ...customArgs + ]; + return { + commands, + format: "utf-8", + parser: parseCommitResult + }; +} +function commit_default() { + return { + commit(message, ...rest) { + const next = trailingFunctionArgument(arguments); + const task = rejectDeprecatedSignatures(message) || commitTask(asArray(message), asArray(filterType(rest[0], filterStringOrStringArray, [])), [...filterType(rest[1], filterArray, []), ...getTrailingOptions(arguments, 0, true)]); + return this._runTask(task, next); + } + }; + function rejectDeprecatedSignatures(message) { + return !filterStringOrStringArray(message) && configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`); + } +} +var init_commit = __esm2({ + "src/lib/tasks/commit.ts"() { + init_parse_commit(); + init_utils2(); + init_task(); + } +}); +function first_commit_default() { + return { + firstCommit() { + return this._runTask(straightThroughStringTask(["rev-list", "--max-parents=0", "HEAD"], true), trailingFunctionArgument(arguments)); + } + }; +} +var init_first_commit = __esm2({ + "src/lib/tasks/first-commit.ts"() { + init_utils2(); + init_task(); + } +}); +function hashObjectTask(filePath, write) { + const commands = ["hash-object", filePath]; + if (write) { + commands.push("-w"); + } + return straightThroughStringTask(commands, true); +} +var init_hash_object = __esm2({ + "src/lib/tasks/hash-object.ts"() { + init_task(); + } +}); +function parseInit(bare, path, text) { + const response = String(text).trim(); + let result; + if (result = initResponseRegex.exec(response)) { + return new InitSummary(bare, path, false, result[1]); + } + if (result = reInitResponseRegex.exec(response)) { + return new InitSummary(bare, path, true, result[1]); + } + let gitDir = ""; + const tokens = response.split(" "); + while (tokens.length) { + const token = tokens.shift(); + if (token === "in") { + gitDir = tokens.join(" "); + break; + } + } + return new InitSummary(bare, path, /^re/i.test(response), gitDir); +} +var InitSummary; +var initResponseRegex; +var reInitResponseRegex; +var init_InitSummary = __esm2({ + "src/lib/responses/InitSummary.ts"() { + InitSummary = class { + constructor(bare, path, existing, gitDir) { + this.bare = bare; + this.path = path; + this.existing = existing; + this.gitDir = gitDir; + } + }; + initResponseRegex = /^Init.+ repository in (.+)$/; + reInitResponseRegex = /^Rein.+ in (.+)$/; + } +}); +function hasBareCommand(command) { + return command.includes(bareCommand); +} +function initTask(bare = false, path, customArgs) { + const commands = ["init", ...customArgs]; + if (bare && !hasBareCommand(commands)) { + commands.splice(1, 0, bareCommand); + } + return { + commands, + format: "utf-8", + parser(text) { + return parseInit(commands.includes("--bare"), path, text); + } + }; +} +var bareCommand; +var init_init = __esm2({ + "src/lib/tasks/init.ts"() { + init_InitSummary(); + bareCommand = "--bare"; + } +}); +function logFormatFromCommand(customArgs) { + for (let i = 0;i < customArgs.length; i++) { + const format = logFormatRegex.exec(customArgs[i]); + if (format) { + return `--${format[1]}`; + } + } + return ""; +} +function isLogFormat(customArg) { + return logFormatRegex.test(customArg); +} +var logFormatRegex; +var init_log_format = __esm2({ + "src/lib/args/log-format.ts"() { + logFormatRegex = /^--(stat|numstat|name-only|name-status)(=|$)/; + } +}); +var DiffSummary; +var init_DiffSummary = __esm2({ + "src/lib/responses/DiffSummary.ts"() { + DiffSummary = class { + constructor() { + this.changed = 0; + this.deletions = 0; + this.insertions = 0; + this.files = []; + } + }; + } +}); +function getDiffParser(format = "") { + const parser4 = diffSummaryParsers[format]; + return (stdOut) => parseStringResponse(new DiffSummary, parser4, stdOut, false); +} +var statParser; +var numStatParser; +var nameOnlyParser; +var nameStatusParser; +var diffSummaryParsers; +var init_parse_diff_summary = __esm2({ + "src/lib/parsers/parse-diff-summary.ts"() { + init_log_format(); + init_DiffSummary(); + init_diff_name_status(); + init_utils2(); + statParser = [ + new LineParser(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/, (result, [file, changes, alterations = ""]) => { + result.files.push({ + file: file.trim(), + changes: asNumber(changes), + insertions: alterations.replace(/[^+]/g, "").length, + deletions: alterations.replace(/[^-]/g, "").length, + binary: false + }); + }), + new LineParser(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/, (result, [file, before, after]) => { + result.files.push({ + file: file.trim(), + before: asNumber(before), + after: asNumber(after), + binary: true + }); + }), + new LineParser(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/, (result, [changed, summary]) => { + const inserted = /(\d+) i/.exec(summary); + const deleted = /(\d+) d/.exec(summary); + result.changed = asNumber(changed); + result.insertions = asNumber(inserted == null ? undefined : inserted[1]); + result.deletions = asNumber(deleted == null ? undefined : deleted[1]); + }) + ]; + numStatParser = [ + new LineParser(/(\d+)\t(\d+)\t(.+)$/, (result, [changesInsert, changesDelete, file]) => { + const insertions = asNumber(changesInsert); + const deletions = asNumber(changesDelete); + result.changed++; + result.insertions += insertions; + result.deletions += deletions; + result.files.push({ + file, + changes: insertions + deletions, + insertions, + deletions, + binary: false + }); + }), + new LineParser(/-\t-\t(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + after: 0, + before: 0, + binary: true + }); + }) + ]; + nameOnlyParser = [ + new LineParser(/(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + changes: 0, + insertions: 0, + deletions: 0, + binary: false + }); + }) + ]; + nameStatusParser = [ + new LineParser(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/, (result, [status, similarity, from, _to, to]) => { + result.changed++; + result.files.push({ + file: to != null ? to : from, + changes: 0, + insertions: 0, + deletions: 0, + binary: false, + status: orVoid(isDiffNameStatus(status) && status), + from: orVoid(!!to && from !== to && from), + similarity: asNumber(similarity) + }); + }) + ]; + diffSummaryParsers = { + [""]: statParser, + ["--stat"]: statParser, + ["--numstat"]: numStatParser, + ["--name-status"]: nameStatusParser, + ["--name-only"]: nameOnlyParser + }; + } +}); +function lineBuilder(tokens, fields) { + return fields.reduce((line, field, index) => { + line[field] = tokens[index] || ""; + return line; + }, /* @__PURE__ */ Object.create({ diff: null })); +} +function createListLogSummaryParser(splitter = SPLITTER, fields = defaultFieldNames, logFormat = "") { + const parseDiffResult = getDiffParser(logFormat); + return function(stdOut) { + const all = toLinesWithContent(stdOut.trim(), false, START_BOUNDARY).map(function(item) { + const lineDetail = item.split(COMMIT_BOUNDARY); + const listLogLine = lineBuilder(lineDetail[0].split(splitter), fields); + if (lineDetail.length > 1 && !!lineDetail[1].trim()) { + listLogLine.diff = parseDiffResult(lineDetail[1]); + } + return listLogLine; + }); + return { + all, + latest: all.length && all[0] || null, + total: all.length + }; + }; +} +var START_BOUNDARY; +var COMMIT_BOUNDARY; +var SPLITTER; +var defaultFieldNames; +var init_parse_list_log_summary = __esm2({ + "src/lib/parsers/parse-list-log-summary.ts"() { + init_utils2(); + init_parse_diff_summary(); + init_log_format(); + START_BOUNDARY = "Ć²Ć²Ć²Ć²Ć²Ć² "; + COMMIT_BOUNDARY = " Ć²Ć²"; + SPLITTER = " Ć² "; + defaultFieldNames = ["hash", "date", "message", "refs", "author_name", "author_email"]; + } +}); +var diff_exports = {}; +__export2(diff_exports, { + diffSummaryTask: () => diffSummaryTask, + validateLogFormatConfig: () => validateLogFormatConfig +}); +function diffSummaryTask(customArgs) { + let logFormat = logFormatFromCommand(customArgs); + const commands = ["diff"]; + if (logFormat === "") { + logFormat = "--stat"; + commands.push("--stat=4096"); + } + commands.push(...customArgs); + return validateLogFormatConfig(commands) || { + commands, + format: "utf-8", + parser: getDiffParser(logFormat) + }; +} +function validateLogFormatConfig(customArgs) { + const flags = customArgs.filter(isLogFormat); + if (flags.length > 1) { + return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${flags.join(",")}`); + } + if (flags.length && customArgs.includes("-z")) { + return configurationErrorTask(`Summary flag ${flags} parsing is not compatible with null termination option '-z'`); + } +} +var init_diff = __esm2({ + "src/lib/tasks/diff.ts"() { + init_log_format(); + init_parse_diff_summary(); + init_task(); + } +}); +function prettyFormat(format, splitter) { + const fields = []; + const formatStr = []; + Object.keys(format).forEach((field) => { + fields.push(field); + formatStr.push(String(format[field])); + }); + return [fields, formatStr.join(splitter)]; +} +function userOptions(input) { + return Object.keys(input).reduce((out, key2) => { + if (!(key2 in excludeOptions)) { + out[key2] = input[key2]; + } + return out; + }, {}); +} +function parseLogOptions(opt = {}, customArgs = []) { + const splitter = filterType(opt.splitter, filterString, SPLITTER); + const format = !filterPrimitives(opt.format) && opt.format ? opt.format : { + hash: "%H", + date: opt.strictDate === false ? "%ai" : "%aI", + message: "%s", + refs: "%D", + body: opt.multiLine ? "%B" : "%b", + author_name: opt.mailMap !== false ? "%aN" : "%an", + author_email: opt.mailMap !== false ? "%aE" : "%ae" + }; + const [fields, formatStr] = prettyFormat(format, splitter); + const suffix = []; + const command = [ + `--pretty=format:${START_BOUNDARY}${formatStr}${COMMIT_BOUNDARY}`, + ...customArgs + ]; + const maxCount = opt.n || opt["max-count"] || opt.maxCount; + if (maxCount) { + command.push(`--max-count=${maxCount}`); + } + if (opt.from || opt.to) { + const rangeOperator = opt.symmetric !== false ? "..." : ".."; + suffix.push(`${opt.from || ""}${rangeOperator}${opt.to || ""}`); + } + if (filterString(opt.file)) { + command.push("--follow", pathspec(opt.file)); + } + appendTaskOptions(userOptions(opt), command); + return { + fields, + splitter, + commands: [...command, ...suffix] + }; +} +function logTask(splitter, fields, customArgs) { + const parser4 = createListLogSummaryParser(splitter, fields, logFormatFromCommand(customArgs)); + return { + commands: ["log", ...customArgs], + format: "utf-8", + parser: parser4 + }; +} +function log_default() { + return { + log(...rest) { + const next = trailingFunctionArgument(arguments); + const options = parseLogOptions(trailingOptionsArgument(arguments), filterType(arguments[0], filterArray)); + const task = rejectDeprecatedSignatures(...rest) || validateLogFormatConfig(options.commands) || createLogTask(options); + return this._runTask(task, next); + } + }; + function createLogTask(options) { + return logTask(options.splitter, options.fields, options.commands); + } + function rejectDeprecatedSignatures(from, to) { + return filterString(from) && filterString(to) && configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`); + } +} +var excludeOptions; +var init_log = __esm2({ + "src/lib/tasks/log.ts"() { + init_log_format(); + init_pathspec(); + init_parse_list_log_summary(); + init_utils2(); + init_task(); + init_diff(); + excludeOptions = /* @__PURE__ */ ((excludeOptions2) => { + excludeOptions2[excludeOptions2["--pretty"] = 0] = "--pretty"; + excludeOptions2[excludeOptions2["max-count"] = 1] = "max-count"; + excludeOptions2[excludeOptions2["maxCount"] = 2] = "maxCount"; + excludeOptions2[excludeOptions2["n"] = 3] = "n"; + excludeOptions2[excludeOptions2["file"] = 4] = "file"; + excludeOptions2[excludeOptions2["format"] = 5] = "format"; + excludeOptions2[excludeOptions2["from"] = 6] = "from"; + excludeOptions2[excludeOptions2["to"] = 7] = "to"; + excludeOptions2[excludeOptions2["splitter"] = 8] = "splitter"; + excludeOptions2[excludeOptions2["symmetric"] = 9] = "symmetric"; + excludeOptions2[excludeOptions2["mailMap"] = 10] = "mailMap"; + excludeOptions2[excludeOptions2["multiLine"] = 11] = "multiLine"; + excludeOptions2[excludeOptions2["strictDate"] = 12] = "strictDate"; + return excludeOptions2; + })(excludeOptions || {}); + } +}); +var MergeSummaryConflict; +var MergeSummaryDetail; +var init_MergeSummary = __esm2({ + "src/lib/responses/MergeSummary.ts"() { + MergeSummaryConflict = class { + constructor(reason, file = null, meta) { + this.reason = reason; + this.file = file; + this.meta = meta; + } + toString() { + return `${this.file}:${this.reason}`; + } + }; + MergeSummaryDetail = class { + constructor() { + this.conflicts = []; + this.merges = []; + this.result = "success"; + } + get failed() { + return this.conflicts.length > 0; + } + get reason() { + return this.result; + } + toString() { + if (this.conflicts.length) { + return `CONFLICTS: ${this.conflicts.join(", ")}`; + } + return "OK"; + } + }; + } +}); +var PullSummary; +var PullFailedSummary; +var init_PullSummary = __esm2({ + "src/lib/responses/PullSummary.ts"() { + PullSummary = class { + constructor() { + this.remoteMessages = { + all: [] + }; + this.created = []; + this.deleted = []; + this.files = []; + this.deletions = {}; + this.insertions = {}; + this.summary = { + changes: 0, + deletions: 0, + insertions: 0 + }; + } + }; + PullFailedSummary = class { + constructor() { + this.remote = ""; + this.hash = { + local: "", + remote: "" + }; + this.branch = { + local: "", + remote: "" + }; + this.message = ""; + } + toString() { + return this.message; + } + }; + } +}); +function objectEnumerationResult(remoteMessages) { + return remoteMessages.objects = remoteMessages.objects || { + compressing: 0, + counting: 0, + enumerating: 0, + packReused: 0, + reused: { count: 0, delta: 0 }, + total: { count: 0, delta: 0 } + }; +} +function asObjectCount(source) { + const count = /^\s*(\d+)/.exec(source); + const delta = /delta (\d+)/i.exec(source); + return { + count: asNumber(count && count[1] || "0"), + delta: asNumber(delta && delta[1] || "0") + }; +} +var remoteMessagesObjectParsers; +var init_parse_remote_objects = __esm2({ + "src/lib/parsers/parse-remote-objects.ts"() { + init_utils2(); + remoteMessagesObjectParsers = [ + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i, (result, [total, reused, packReused]) => { + const objects = objectEnumerationResult(result.remoteMessages); + objects.total = asObjectCount(total); + objects.reused = asObjectCount(reused); + objects.packReused = asNumber(packReused); + }) + ]; + } +}); +function parseRemoteMessages(_stdOut, stdErr) { + return parseStringResponse({ remoteMessages: new RemoteMessageSummary }, parsers2, stdErr); +} +var parsers2; +var RemoteMessageSummary; +var init_parse_remote_messages = __esm2({ + "src/lib/parsers/parse-remote-messages.ts"() { + init_utils2(); + init_parse_remote_objects(); + parsers2 = [ + new RemoteLineParser(/^remote:\s*(.+)$/, (result, [text]) => { + result.remoteMessages.all.push(text.trim()); + return false; + }), + ...remoteMessagesObjectParsers, + new RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => { + result.remoteMessages.pullRequestUrl = pullRequestUrl; + }), + new RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => { + result.remoteMessages.vulnerabilities = { + count: asNumber(count), + summary, + url + }; + }) + ]; + RemoteMessageSummary = class { + constructor() { + this.all = []; + } + }; + } +}); +function parsePullErrorResult(stdOut, stdErr) { + const pullError = parseStringResponse(new PullFailedSummary, errorParsers, [stdOut, stdErr]); + return pullError.message && pullError; +} +var FILE_UPDATE_REGEX; +var SUMMARY_REGEX; +var ACTION_REGEX; +var parsers3; +var errorParsers; +var parsePullDetail; +var parsePullResult; +var init_parse_pull = __esm2({ + "src/lib/parsers/parse-pull.ts"() { + init_PullSummary(); + init_utils2(); + init_parse_remote_messages(); + FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/; + SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/; + ACTION_REGEX = /^(create|delete) mode \d+ (.+)/; + parsers3 = [ + new LineParser(FILE_UPDATE_REGEX, (result, [file, insertions, deletions]) => { + result.files.push(file); + if (insertions) { + result.insertions[file] = insertions.length; + } + if (deletions) { + result.deletions[file] = deletions.length; + } + }), + new LineParser(SUMMARY_REGEX, (result, [changes, , insertions, , deletions]) => { + if (insertions !== undefined || deletions !== undefined) { + result.summary.changes = +changes || 0; + result.summary.insertions = +insertions || 0; + result.summary.deletions = +deletions || 0; + return true; + } + return false; + }), + new LineParser(ACTION_REGEX, (result, [action, file]) => { + append(result.files, file); + append(action === "create" ? result.created : result.deleted, file); + }) + ]; + errorParsers = [ + new LineParser(/^from\s(.+)$/i, (result, [remote]) => void (result.remote = remote)), + new LineParser(/^fatal:\s(.+)$/, (result, [message]) => void (result.message = message)), + new LineParser(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/, (result, [hashLocal, hashRemote, branchLocal, branchRemote]) => { + result.branch.local = branchLocal; + result.hash.local = hashLocal; + result.branch.remote = branchRemote; + result.hash.remote = hashRemote; + }) + ]; + parsePullDetail = (stdOut, stdErr) => { + return parseStringResponse(new PullSummary, parsers3, [stdOut, stdErr]); + }; + parsePullResult = (stdOut, stdErr) => { + return Object.assign(new PullSummary, parsePullDetail(stdOut, stdErr), parseRemoteMessages(stdOut, stdErr)); + }; + } +}); +var parsers4; +var parseMergeResult; +var parseMergeDetail; +var init_parse_merge = __esm2({ + "src/lib/parsers/parse-merge.ts"() { + init_MergeSummary(); + init_utils2(); + init_parse_pull(); + parsers4 = [ + new LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => { + summary.merges.push(autoMerge); + }), + new LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file)); + }), + new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef })); + }), + new LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, null)); + }), + new LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => { + summary.result = result; + }) + ]; + parseMergeResult = (stdOut, stdErr) => { + return Object.assign(parseMergeDetail(stdOut, stdErr), parsePullResult(stdOut, stdErr)); + }; + parseMergeDetail = (stdOut) => { + return parseStringResponse(new MergeSummaryDetail, parsers4, stdOut); + }; + } +}); +function mergeTask(customArgs) { + if (!customArgs.length) { + return configurationErrorTask("Git.merge requires at least one option"); + } + return { + commands: ["merge", ...customArgs], + format: "utf-8", + parser(stdOut, stdErr) { + const merge = parseMergeResult(stdOut, stdErr); + if (merge.failed) { + throw new GitResponseError(merge); + } + return merge; + } + }; +} +var init_merge = __esm2({ + "src/lib/tasks/merge.ts"() { + init_git_response_error(); + init_parse_merge(); + init_task(); + } +}); +function pushResultPushedItem(local, remote, status) { + const deleted = status.includes("deleted"); + const tag = status.includes("tag") || /^refs\/tags/.test(local); + const alreadyUpdated = !status.includes("new"); + return { + deleted, + tag, + branch: !tag, + new: !alreadyUpdated, + alreadyUpdated, + local, + remote + }; +} +var parsers5; +var parsePushResult; +var parsePushDetail; +var init_parse_push = __esm2({ + "src/lib/parsers/parse-push.ts"() { + init_utils2(); + init_parse_remote_messages(); + parsers5 = [ + new LineParser(/^Pushing to (.+)$/, (result, [repo]) => { + result.repo = repo; + }), + new LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { + result.ref = __spreadProps(__spreadValues({}, result.ref || {}), { + local + }); + }), + new LineParser(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { + result.pushed.push(pushResultPushedItem(local, remote, type)); + }), + new LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { + result.branch = __spreadProps(__spreadValues({}, result.branch || {}), { + local, + remote, + remoteName + }); + }), + new LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => { + result.update = { + head: { + local, + remote + }, + hash: { + from, + to + } + }; + }) + ]; + parsePushResult = (stdOut, stdErr) => { + const pushDetail = parsePushDetail(stdOut, stdErr); + const responseDetail = parseRemoteMessages(stdOut, stdErr); + return __spreadValues(__spreadValues({}, pushDetail), responseDetail); + }; + parsePushDetail = (stdOut, stdErr) => { + return parseStringResponse({ pushed: [] }, parsers5, [stdOut, stdErr]); + }; + } +}); +var push_exports = {}; +__export2(push_exports, { + pushTagsTask: () => pushTagsTask, + pushTask: () => pushTask +}); +function pushTagsTask(ref = {}, customArgs) { + append(customArgs, "--tags"); + return pushTask(ref, customArgs); +} +function pushTask(ref = {}, customArgs) { + const commands = ["push", ...customArgs]; + if (ref.branch) { + commands.splice(1, 0, ref.branch); + } + if (ref.remote) { + commands.splice(1, 0, ref.remote); + } + remove(commands, "-v"); + append(commands, "--verbose"); + append(commands, "--porcelain"); + return { + commands, + format: "utf-8", + parser: parsePushResult + }; +} +var init_push = __esm2({ + "src/lib/tasks/push.ts"() { + init_parse_push(); + init_utils2(); + } +}); +function show_default() { + return { + showBuffer() { + const commands = ["show", ...getTrailingOptions(arguments, 1)]; + if (!commands.includes("--binary")) { + commands.splice(1, 0, "--binary"); + } + return this._runTask(straightThroughBufferTask(commands), trailingFunctionArgument(arguments)); + }, + show() { + const commands = ["show", ...getTrailingOptions(arguments, 1)]; + return this._runTask(straightThroughStringTask(commands), trailingFunctionArgument(arguments)); + } + }; +} +var init_show = __esm2({ + "src/lib/tasks/show.ts"() { + init_utils2(); + init_task(); + } +}); +var fromPathRegex; +var FileStatusSummary; +var init_FileStatusSummary = __esm2({ + "src/lib/responses/FileStatusSummary.ts"() { + fromPathRegex = /^(.+)\0(.+)$/; + FileStatusSummary = class { + constructor(path, index, working_dir) { + this.path = path; + this.index = index; + this.working_dir = working_dir; + if (index === "R" || working_dir === "R") { + const detail = fromPathRegex.exec(path) || [null, path, path]; + this.from = detail[2] || ""; + this.path = detail[1] || ""; + } + } + }; + } +}); +function renamedFile(line) { + const [to, from] = line.split(NULL); + return { + from: from || to, + to + }; +} +function parser3(indexX, indexY, handler) { + return [`${indexX}${indexY}`, handler]; +} +function conflicts(indexX, ...indexY) { + return indexY.map((y) => parser3(indexX, y, (result, file) => append(result.conflicted, file))); +} +function splitLine(result, lineStr) { + const trimmed2 = lineStr.trim(); + switch (" ") { + case trimmed2.charAt(2): + return data(trimmed2.charAt(0), trimmed2.charAt(1), trimmed2.substr(3)); + case trimmed2.charAt(1): + return data(" ", trimmed2.charAt(0), trimmed2.substr(2)); + default: + return; + } + function data(index, workingDir, path) { + const raw = `${index}${workingDir}`; + const handler = parsers6.get(raw); + if (handler) { + handler(result, path); + } + if (raw !== "##" && raw !== "!!") { + result.files.push(new FileStatusSummary(path, index, workingDir)); + } + } +} +var StatusSummary; +var parsers6; +var parseStatusSummary; +var init_StatusSummary = __esm2({ + "src/lib/responses/StatusSummary.ts"() { + init_utils2(); + init_FileStatusSummary(); + StatusSummary = class { + constructor() { + this.not_added = []; + this.conflicted = []; + this.created = []; + this.deleted = []; + this.ignored = undefined; + this.modified = []; + this.renamed = []; + this.files = []; + this.staged = []; + this.ahead = 0; + this.behind = 0; + this.current = null; + this.tracking = null; + this.detached = false; + this.isClean = () => { + return !this.files.length; + }; + } + }; + parsers6 = new Map([ + parser3(" ", "A", (result, file) => append(result.created, file)), + parser3(" ", "D", (result, file) => append(result.deleted, file)), + parser3(" ", "M", (result, file) => append(result.modified, file)), + parser3("A", " ", (result, file) => append(result.created, file) && append(result.staged, file)), + parser3("A", "M", (result, file) => append(result.created, file) && append(result.staged, file) && append(result.modified, file)), + parser3("D", " ", (result, file) => append(result.deleted, file) && append(result.staged, file)), + parser3("M", " ", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser3("M", "M", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser3("R", " ", (result, file) => { + append(result.renamed, renamedFile(file)); + }), + parser3("R", "M", (result, file) => { + const renamed = renamedFile(file); + append(result.renamed, renamed); + append(result.modified, renamed.to); + }), + parser3("!", "!", (_result, _file) => { + append(_result.ignored = _result.ignored || [], _file); + }), + parser3("?", "?", (result, file) => append(result.not_added, file)), + ...conflicts("A", "A", "U"), + ...conflicts("D", "D", "U"), + ...conflicts("U", "A", "D", "U"), + [ + "##", + (result, line) => { + const aheadReg = /ahead (\d+)/; + const behindReg = /behind (\d+)/; + const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; + const trackingReg = /\.{3}(\S*)/; + const onEmptyBranchReg = /\son\s([\S]+)$/; + let regexResult; + regexResult = aheadReg.exec(line); + result.ahead = regexResult && +regexResult[1] || 0; + regexResult = behindReg.exec(line); + result.behind = regexResult && +regexResult[1] || 0; + regexResult = currentReg.exec(line); + result.current = regexResult && regexResult[1]; + regexResult = trackingReg.exec(line); + result.tracking = regexResult && regexResult[1]; + regexResult = onEmptyBranchReg.exec(line); + result.current = regexResult && regexResult[1] || result.current; + result.detached = /\(no branch\)/.test(line); + } + ] + ]); + parseStatusSummary = function(text) { + const lines2 = text.split(NULL); + const status = new StatusSummary; + for (let i = 0, l = lines2.length;i < l; ) { + let line = lines2[i++].trim(); + if (!line) { + continue; + } + if (line.charAt(0) === "R") { + line += NULL + (lines2[i++] || ""); + } + splitLine(status, line); + } + return status; + }; + } +}); +function statusTask(customArgs) { + const commands = [ + "status", + "--porcelain", + "-b", + "-u", + "--null", + ...customArgs.filter((arg) => !ignoredOptions.includes(arg)) + ]; + return { + format: "utf-8", + commands, + parser(text) { + return parseStatusSummary(text); + } + }; +} +var ignoredOptions; +var init_status = __esm2({ + "src/lib/tasks/status.ts"() { + init_StatusSummary(); + ignoredOptions = ["--null", "-z"]; + } +}); +function versionResponse(major = 0, minor = 0, patch = 0, agent = "", installed = true) { + return Object.defineProperty({ + major, + minor, + patch, + agent, + installed + }, "toString", { + value() { + return `${this.major}.${this.minor}.${this.patch}`; + }, + configurable: false, + enumerable: false + }); +} +function notInstalledResponse() { + return versionResponse(0, 0, 0, "", false); +} +function version_default() { + return { + version() { + return this._runTask({ + commands: ["--version"], + format: "utf-8", + parser: versionParser, + onError(result, error, done, fail) { + if (result.exitCode === -2) { + return done(Buffer.from(NOT_INSTALLED)); + } + fail(error); + } + }); + } + }; +} +function versionParser(stdOut) { + if (stdOut === NOT_INSTALLED) { + return notInstalledResponse(); + } + return parseStringResponse(versionResponse(0, 0, 0, stdOut), parsers7, stdOut); +} +var NOT_INSTALLED; +var parsers7; +var init_version = __esm2({ + "src/lib/tasks/version.ts"() { + init_utils2(); + NOT_INSTALLED = "installed=false"; + parsers7 = [ + new LineParser(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), asNumber(patch), agent)); + }), + new LineParser(/version (\d+)\.(\d+)\.(\D+)(.+)?$/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), patch, agent)); + }) + ]; + } +}); +var simple_git_api_exports = {}; +__export2(simple_git_api_exports, { + SimpleGitApi: () => SimpleGitApi +}); +var SimpleGitApi; +var init_simple_git_api = __esm2({ + "src/lib/simple-git-api.ts"() { + init_task_callback(); + init_change_working_directory(); + init_checkout(); + init_count_objects(); + init_commit(); + init_config(); + init_first_commit(); + init_grep(); + init_hash_object(); + init_init(); + init_log(); + init_merge(); + init_push(); + init_show(); + init_status(); + init_task(); + init_version(); + init_utils2(); + SimpleGitApi = class { + constructor(_executor) { + this._executor = _executor; + } + _runTask(task, then) { + const chain = this._executor.chain(); + const promise = chain.push(task); + if (then) { + taskCallback(task, promise, then); + } + return Object.create(this, { + then: { value: promise.then.bind(promise) }, + catch: { value: promise.catch.bind(promise) }, + _executor: { value: chain } + }); + } + add(files) { + return this._runTask(straightThroughStringTask(["add", ...asArray(files)]), trailingFunctionArgument(arguments)); + } + cwd(directory) { + const next = trailingFunctionArgument(arguments); + if (typeof directory === "string") { + return this._runTask(changeWorkingDirectoryTask(directory, this._executor), next); + } + if (typeof (directory == null ? undefined : directory.path) === "string") { + return this._runTask(changeWorkingDirectoryTask(directory.path, directory.root && this._executor || undefined), next); + } + return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next); + } + hashObject(path, write) { + return this._runTask(hashObjectTask(path, write === true), trailingFunctionArgument(arguments)); + } + init(bare) { + return this._runTask(initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + merge() { + return this._runTask(mergeTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + mergeFromTo(remote, branch) { + if (!(filterString(remote) && filterString(branch))) { + return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`)); + } + return this._runTask(mergeTask([remote, branch, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false)); + } + outputHandler(handler) { + this._executor.outputHandler = handler; + return this; + } + push() { + const task = pushTask({ + remote: filterType(arguments[0], filterString), + branch: filterType(arguments[1], filterString) + }, getTrailingOptions(arguments)); + return this._runTask(task, trailingFunctionArgument(arguments)); + } + stash() { + return this._runTask(straightThroughStringTask(["stash", ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + status() { + return this._runTask(statusTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + }; + Object.assign(SimpleGitApi.prototype, checkout_default(), commit_default(), config_default(), count_objects_default(), first_commit_default(), grep_default(), log_default(), show_default(), version_default()); + } +}); +var scheduler_exports = {}; +__export2(scheduler_exports, { + Scheduler: () => Scheduler +}); +var createScheduledTask; +var Scheduler; +var init_scheduler = __esm2({ + "src/lib/runners/scheduler.ts"() { + init_utils2(); + init_git_logger(); + createScheduledTask = (() => { + let id = 0; + return () => { + id++; + const { promise, done } = import_promise_deferred.createDeferred(); + return { + promise, + done, + id + }; + }; + })(); + Scheduler = class { + constructor(concurrency = 2) { + this.concurrency = concurrency; + this.logger = createLogger("", "scheduler"); + this.pending = []; + this.running = []; + this.logger(`Constructed, concurrency=%s`, concurrency); + } + schedule() { + if (!this.pending.length || this.running.length >= this.concurrency) { + this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`, this.pending.length, this.running.length, this.concurrency); + return; + } + const task = append(this.running, this.pending.shift()); + this.logger(`Attempting id=%s`, task.id); + task.done(() => { + this.logger(`Completing id=`, task.id); + remove(this.running, task); + this.schedule(); + }); + } + next() { + const { promise, id } = append(this.pending, createScheduledTask()); + this.logger(`Scheduling id=%s`, id); + this.schedule(); + return promise; + } + }; + } +}); +var apply_patch_exports = {}; +__export2(apply_patch_exports, { + applyPatchTask: () => applyPatchTask +}); +function applyPatchTask(patches, customArgs) { + return straightThroughStringTask(["apply", ...customArgs, ...patches]); +} +var init_apply_patch = __esm2({ + "src/lib/tasks/apply-patch.ts"() { + init_task(); + } +}); +function branchDeletionSuccess(branch, hash) { + return { + branch, + hash, + success: true + }; +} +function branchDeletionFailure(branch) { + return { + branch, + hash: null, + success: false + }; +} +var BranchDeletionBatch; +var init_BranchDeleteSummary = __esm2({ + "src/lib/responses/BranchDeleteSummary.ts"() { + BranchDeletionBatch = class { + constructor() { + this.all = []; + this.branches = {}; + this.errors = []; + } + get success() { + return !this.errors.length; + } + }; + } +}); +function hasBranchDeletionError(data, processExitCode) { + return processExitCode === 1 && deleteErrorRegex.test(data); +} +var deleteSuccessRegex; +var deleteErrorRegex; +var parsers8; +var parseBranchDeletions; +var init_parse_branch_delete = __esm2({ + "src/lib/parsers/parse-branch-delete.ts"() { + init_BranchDeleteSummary(); + init_utils2(); + deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; + deleteErrorRegex = /^error[^']+'([^']+)'/m; + parsers8 = [ + new LineParser(deleteSuccessRegex, (result, [branch, hash]) => { + const deletion = branchDeletionSuccess(branch, hash); + result.all.push(deletion); + result.branches[branch] = deletion; + }), + new LineParser(deleteErrorRegex, (result, [branch]) => { + const deletion = branchDeletionFailure(branch); + result.errors.push(deletion); + result.all.push(deletion); + result.branches[branch] = deletion; + }) + ]; + parseBranchDeletions = (stdOut, stdErr) => { + return parseStringResponse(new BranchDeletionBatch, parsers8, [stdOut, stdErr]); + }; + } +}); +var BranchSummaryResult; +var init_BranchSummary = __esm2({ + "src/lib/responses/BranchSummary.ts"() { + BranchSummaryResult = class { + constructor() { + this.all = []; + this.branches = {}; + this.current = ""; + this.detached = false; + } + push(status, detached, name, commit, label) { + if (status === "*") { + this.detached = detached; + this.current = name; + } + this.all.push(name); + this.branches[name] = { + current: status === "*", + linkedWorkTree: status === "+", + name, + commit, + label + }; + } + }; + } +}); +function branchStatus(input) { + return input ? input.charAt(0) : ""; +} +function parseBranchSummary(stdOut) { + return parseStringResponse(new BranchSummaryResult, parsers9, stdOut); +} +var parsers9; +var init_parse_branch = __esm2({ + "src/lib/parsers/parse-branch.ts"() { + init_BranchSummary(); + init_utils2(); + parsers9 = [ + new LineParser(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit, label]) => { + result.push(branchStatus(current), true, name, commit, label); + }), + new LineParser(new RegExp("^([*+]\\s)?(\\S+)\\s+([a-z0-9]+)\\s?(.*)$", "s"), (result, [current, name, commit, label]) => { + result.push(branchStatus(current), false, name, commit, label); + }) + ]; + } +}); +var branch_exports = {}; +__export2(branch_exports, { + branchLocalTask: () => branchLocalTask, + branchTask: () => branchTask, + containsDeleteBranchCommand: () => containsDeleteBranchCommand, + deleteBranchTask: () => deleteBranchTask, + deleteBranchesTask: () => deleteBranchesTask +}); +function containsDeleteBranchCommand(commands) { + const deleteCommands = ["-d", "-D", "--delete"]; + return commands.some((command) => deleteCommands.includes(command)); +} +function branchTask(customArgs) { + const isDelete = containsDeleteBranchCommand(customArgs); + const commands = ["branch", ...customArgs]; + if (commands.length === 1) { + commands.push("-a"); + } + if (!commands.includes("-v")) { + commands.splice(1, 0, "-v"); + } + return { + format: "utf-8", + commands, + parser(stdOut, stdErr) { + if (isDelete) { + return parseBranchDeletions(stdOut, stdErr).all[0]; + } + return parseBranchSummary(stdOut); + } + }; +} +function branchLocalTask() { + const parser4 = parseBranchSummary; + return { + format: "utf-8", + commands: ["branch", "-v"], + parser: parser4 + }; +} +function deleteBranchesTask(branches, forceDelete = false) { + return { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", ...branches], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr); + }, + onError({ exitCode, stdOut }, error, done, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + done(stdOut); + } + }; +} +function deleteBranchTask(branch, forceDelete = false) { + const task = { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr).branches[branch]; + }, + onError({ exitCode, stdErr, stdOut }, error, _2, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + throw new GitResponseError(task.parser(bufferToString(stdOut), bufferToString(stdErr)), String(error)); + } + }; + return task; +} +var init_branch = __esm2({ + "src/lib/tasks/branch.ts"() { + init_git_response_error(); + init_parse_branch_delete(); + init_parse_branch(); + init_utils2(); + } +}); +var parseCheckIgnore; +var init_CheckIgnore = __esm2({ + "src/lib/responses/CheckIgnore.ts"() { + parseCheckIgnore = (text) => { + return text.split(/\n/g).map((line) => line.trim()).filter((file) => !!file); + }; + } +}); +var check_ignore_exports = {}; +__export2(check_ignore_exports, { + checkIgnoreTask: () => checkIgnoreTask +}); +function checkIgnoreTask(paths) { + return { + commands: ["check-ignore", ...paths], + format: "utf-8", + parser: parseCheckIgnore + }; +} +var init_check_ignore = __esm2({ + "src/lib/tasks/check-ignore.ts"() { + init_CheckIgnore(); + } +}); +var clone_exports = {}; +__export2(clone_exports, { + cloneMirrorTask: () => cloneMirrorTask, + cloneTask: () => cloneTask +}); +function disallowedCommand(command) { + return /^--upload-pack(=|$)/.test(command); +} +function cloneTask(repo, directory, customArgs) { + const commands = ["clone", ...customArgs]; + filterString(repo) && commands.push(repo); + filterString(directory) && commands.push(directory); + const banned = commands.find(disallowedCommand); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return straightThroughStringTask(commands); +} +function cloneMirrorTask(repo, directory, customArgs) { + append(customArgs, "--mirror"); + return cloneTask(repo, directory, customArgs); +} +var init_clone = __esm2({ + "src/lib/tasks/clone.ts"() { + init_task(); + init_utils2(); + } +}); +function parseFetchResult(stdOut, stdErr) { + const result = { + raw: stdOut, + remote: null, + branches: [], + tags: [], + updated: [], + deleted: [] + }; + return parseStringResponse(result, parsers10, [stdOut, stdErr]); +} +var parsers10; +var init_parse_fetch = __esm2({ + "src/lib/parsers/parse-fetch.ts"() { + init_utils2(); + parsers10 = [ + new LineParser(/From (.+)$/, (result, [remote]) => { + result.remote = remote; + }), + new LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.branches.push({ + name, + tracking + }); + }), + new LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.tags.push({ + name, + tracking + }); + }), + new LineParser(/- \[deleted]\s+\S+\s*-> (.+)$/, (result, [tracking]) => { + result.deleted.push({ + tracking + }); + }), + new LineParser(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/, (result, [from, to, name, tracking]) => { + result.updated.push({ + name, + tracking, + to, + from + }); + }) + ]; + } +}); +var fetch_exports = {}; +__export2(fetch_exports, { + fetchTask: () => fetchTask +}); +function disallowedCommand2(command) { + return /^--upload-pack(=|$)/.test(command); +} +function fetchTask(remote, branch, customArgs) { + const commands = ["fetch", ...customArgs]; + if (remote && branch) { + commands.push(remote, branch); + } + const banned = commands.find(disallowedCommand2); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return { + commands, + format: "utf-8", + parser: parseFetchResult + }; +} +var init_fetch = __esm2({ + "src/lib/tasks/fetch.ts"() { + init_parse_fetch(); + init_task(); + } +}); +function parseMoveResult(stdOut) { + return parseStringResponse({ moves: [] }, parsers11, stdOut); +} +var parsers11; +var init_parse_move = __esm2({ + "src/lib/parsers/parse-move.ts"() { + init_utils2(); + parsers11 = [ + new LineParser(/^Renaming (.+) to (.+)$/, (result, [from, to]) => { + result.moves.push({ from, to }); + }) + ]; + } +}); +var move_exports = {}; +__export2(move_exports, { + moveTask: () => moveTask +}); +function moveTask(from, to) { + return { + commands: ["mv", "-v", ...asArray(from), to], + format: "utf-8", + parser: parseMoveResult + }; +} +var init_move = __esm2({ + "src/lib/tasks/move.ts"() { + init_parse_move(); + init_utils2(); + } +}); +var pull_exports = {}; +__export2(pull_exports, { + pullTask: () => pullTask +}); +function pullTask(remote, branch, customArgs) { + const commands = ["pull", ...customArgs]; + if (remote && branch) { + commands.splice(1, 0, remote, branch); + } + return { + commands, + format: "utf-8", + parser(stdOut, stdErr) { + return parsePullResult(stdOut, stdErr); + }, + onError(result, _error, _done, fail) { + const pullError = parsePullErrorResult(bufferToString(result.stdOut), bufferToString(result.stdErr)); + if (pullError) { + return fail(new GitResponseError(pullError)); + } + fail(_error); + } + }; +} +var init_pull = __esm2({ + "src/lib/tasks/pull.ts"() { + init_git_response_error(); + init_parse_pull(); + init_utils2(); + } +}); +function parseGetRemotes(text) { + const remotes = {}; + forEach(text, ([name]) => remotes[name] = { name }); + return Object.values(remotes); +} +function parseGetRemotesVerbose(text) { + const remotes = {}; + forEach(text, ([name, url, purpose]) => { + if (!remotes.hasOwnProperty(name)) { + remotes[name] = { + name, + refs: { fetch: "", push: "" } + }; + } + if (purpose && url) { + remotes[name].refs[purpose.replace(/[^a-z]/g, "")] = url; + } + }); + return Object.values(remotes); +} +function forEach(text, handler) { + forEachLineWithContent(text, (line) => handler(line.split(/\s+/))); +} +var init_GetRemoteSummary = __esm2({ + "src/lib/responses/GetRemoteSummary.ts"() { + init_utils2(); + } +}); +var remote_exports = {}; +__export2(remote_exports, { + addRemoteTask: () => addRemoteTask, + getRemotesTask: () => getRemotesTask, + listRemotesTask: () => listRemotesTask, + remoteTask: () => remoteTask, + removeRemoteTask: () => removeRemoteTask +}); +function addRemoteTask(remoteName, remoteRepo, customArgs) { + return straightThroughStringTask(["remote", "add", ...customArgs, remoteName, remoteRepo]); +} +function getRemotesTask(verbose) { + const commands = ["remote"]; + if (verbose) { + commands.push("-v"); + } + return { + commands, + format: "utf-8", + parser: verbose ? parseGetRemotesVerbose : parseGetRemotes + }; +} +function listRemotesTask(customArgs) { + const commands = [...customArgs]; + if (commands[0] !== "ls-remote") { + commands.unshift("ls-remote"); + } + return straightThroughStringTask(commands); +} +function remoteTask(customArgs) { + const commands = [...customArgs]; + if (commands[0] !== "remote") { + commands.unshift("remote"); + } + return straightThroughStringTask(commands); +} +function removeRemoteTask(remoteName) { + return straightThroughStringTask(["remote", "remove", remoteName]); +} +var init_remote = __esm2({ + "src/lib/tasks/remote.ts"() { + init_GetRemoteSummary(); + init_task(); + } +}); +var stash_list_exports = {}; +__export2(stash_list_exports, { + stashListTask: () => stashListTask +}); +function stashListTask(opt = {}, customArgs) { + const options = parseLogOptions(opt); + const commands = ["stash", "list", ...options.commands, ...customArgs]; + const parser4 = createListLogSummaryParser(options.splitter, options.fields, logFormatFromCommand(commands)); + return validateLogFormatConfig(commands) || { + commands, + format: "utf-8", + parser: parser4 + }; +} +var init_stash_list = __esm2({ + "src/lib/tasks/stash-list.ts"() { + init_log_format(); + init_parse_list_log_summary(); + init_diff(); + init_log(); + } +}); +var sub_module_exports = {}; +__export2(sub_module_exports, { + addSubModuleTask: () => addSubModuleTask, + initSubModuleTask: () => initSubModuleTask, + subModuleTask: () => subModuleTask, + updateSubModuleTask: () => updateSubModuleTask +}); +function addSubModuleTask(repo, path) { + return subModuleTask(["add", repo, path]); +} +function initSubModuleTask(customArgs) { + return subModuleTask(["init", ...customArgs]); +} +function subModuleTask(customArgs) { + const commands = [...customArgs]; + if (commands[0] !== "submodule") { + commands.unshift("submodule"); + } + return straightThroughStringTask(commands); +} +function updateSubModuleTask(customArgs) { + return subModuleTask(["update", ...customArgs]); +} +var init_sub_module = __esm2({ + "src/lib/tasks/sub-module.ts"() { + init_task(); + } +}); +function singleSorted(a, b) { + const aIsNum = isNaN(a); + const bIsNum = isNaN(b); + if (aIsNum !== bIsNum) { + return aIsNum ? 1 : -1; + } + return aIsNum ? sorted(a, b) : 0; +} +function sorted(a, b) { + return a === b ? 0 : a > b ? 1 : -1; +} +function trimmed(input) { + return input.trim(); +} +function toNumber(input) { + if (typeof input === "string") { + return parseInt(input.replace(/^\D+/g, ""), 10) || 0; + } + return 0; +} +var TagList; +var parseTagList; +var init_TagList = __esm2({ + "src/lib/responses/TagList.ts"() { + TagList = class { + constructor(all, latest) { + this.all = all; + this.latest = latest; + } + }; + parseTagList = function(data, customSort = false) { + const tags = data.split(` +`).map(trimmed).filter(Boolean); + if (!customSort) { + tags.sort(function(tagA, tagB) { + const partsA = tagA.split("."); + const partsB = tagB.split("."); + if (partsA.length === 1 || partsB.length === 1) { + return singleSorted(toNumber(partsA[0]), toNumber(partsB[0])); + } + for (let i = 0, l = Math.max(partsA.length, partsB.length);i < l; i++) { + const diff = sorted(toNumber(partsA[i]), toNumber(partsB[i])); + if (diff) { + return diff; + } + } + return 0; + }); + } + const latest = customSort ? tags[0] : [...tags].reverse().find((tag) => tag.indexOf(".") >= 0); + return new TagList(tags, latest); + }; + } +}); +var tag_exports = {}; +__export2(tag_exports, { + addAnnotatedTagTask: () => addAnnotatedTagTask, + addTagTask: () => addTagTask, + tagListTask: () => tagListTask +}); +function tagListTask(customArgs = []) { + const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option)); + return { + format: "utf-8", + commands: ["tag", "-l", ...customArgs], + parser(text) { + return parseTagList(text, hasCustomSort); + } + }; +} +function addTagTask(name) { + return { + format: "utf-8", + commands: ["tag", name], + parser() { + return { name }; + } + }; +} +function addAnnotatedTagTask(name, tagMessage) { + return { + format: "utf-8", + commands: ["tag", "-a", "-m", tagMessage, name], + parser() { + return { name }; + } + }; +} +var init_tag = __esm2({ + "src/lib/tasks/tag.ts"() { + init_TagList(); + } +}); +var require_git = __commonJS2({ + "src/git.js"(exports, module) { + var { GitExecutor: GitExecutor2 } = (init_git_executor(), __toCommonJS(git_executor_exports)); + var { SimpleGitApi: SimpleGitApi2 } = (init_simple_git_api(), __toCommonJS(simple_git_api_exports)); + var { Scheduler: Scheduler2 } = (init_scheduler(), __toCommonJS(scheduler_exports)); + var { configurationErrorTask: configurationErrorTask2 } = (init_task(), __toCommonJS(task_exports)); + var { + asArray: asArray2, + filterArray: filterArray2, + filterPrimitives: filterPrimitives2, + filterString: filterString2, + filterStringOrStringArray: filterStringOrStringArray2, + filterType: filterType2, + getTrailingOptions: getTrailingOptions2, + trailingFunctionArgument: trailingFunctionArgument2, + trailingOptionsArgument: trailingOptionsArgument2 + } = (init_utils2(), __toCommonJS(utils_exports)); + var { applyPatchTask: applyPatchTask2 } = (init_apply_patch(), __toCommonJS(apply_patch_exports)); + var { + branchTask: branchTask2, + branchLocalTask: branchLocalTask2, + deleteBranchesTask: deleteBranchesTask2, + deleteBranchTask: deleteBranchTask2 + } = (init_branch(), __toCommonJS(branch_exports)); + var { checkIgnoreTask: checkIgnoreTask2 } = (init_check_ignore(), __toCommonJS(check_ignore_exports)); + var { checkIsRepoTask: checkIsRepoTask2 } = (init_check_is_repo(), __toCommonJS(check_is_repo_exports)); + var { cloneTask: cloneTask2, cloneMirrorTask: cloneMirrorTask2 } = (init_clone(), __toCommonJS(clone_exports)); + var { cleanWithOptionsTask: cleanWithOptionsTask2, isCleanOptionsArray: isCleanOptionsArray2 } = (init_clean(), __toCommonJS(clean_exports)); + var { diffSummaryTask: diffSummaryTask2 } = (init_diff(), __toCommonJS(diff_exports)); + var { fetchTask: fetchTask2 } = (init_fetch(), __toCommonJS(fetch_exports)); + var { moveTask: moveTask2 } = (init_move(), __toCommonJS(move_exports)); + var { pullTask: pullTask2 } = (init_pull(), __toCommonJS(pull_exports)); + var { pushTagsTask: pushTagsTask2 } = (init_push(), __toCommonJS(push_exports)); + var { + addRemoteTask: addRemoteTask2, + getRemotesTask: getRemotesTask2, + listRemotesTask: listRemotesTask2, + remoteTask: remoteTask2, + removeRemoteTask: removeRemoteTask2 + } = (init_remote(), __toCommonJS(remote_exports)); + var { getResetMode: getResetMode2, resetTask: resetTask2 } = (init_reset(), __toCommonJS(reset_exports)); + var { stashListTask: stashListTask2 } = (init_stash_list(), __toCommonJS(stash_list_exports)); + var { + addSubModuleTask: addSubModuleTask2, + initSubModuleTask: initSubModuleTask2, + subModuleTask: subModuleTask2, + updateSubModuleTask: updateSubModuleTask2 + } = (init_sub_module(), __toCommonJS(sub_module_exports)); + var { addAnnotatedTagTask: addAnnotatedTagTask2, addTagTask: addTagTask2, tagListTask: tagListTask2 } = (init_tag(), __toCommonJS(tag_exports)); + var { straightThroughBufferTask: straightThroughBufferTask2, straightThroughStringTask: straightThroughStringTask2 } = (init_task(), __toCommonJS(task_exports)); + function Git2(options, plugins) { + this._plugins = plugins; + this._executor = new GitExecutor2(options.baseDir, new Scheduler2(options.maxConcurrentProcesses), plugins); + this._trimmed = options.trimmed; + } + (Git2.prototype = Object.create(SimpleGitApi2.prototype)).constructor = Git2; + Git2.prototype.customBinary = function(command) { + this._plugins.reconfigure("binary", command); + return this; + }; + Git2.prototype.env = function(name, value) { + if (arguments.length === 1 && typeof name === "object") { + this._executor.env = name; + } else { + (this._executor.env = this._executor.env || {})[name] = value; + } + return this; + }; + Git2.prototype.stashList = function(options) { + return this._runTask(stashListTask2(trailingOptionsArgument2(arguments) || {}, filterArray2(options) && options || []), trailingFunctionArgument2(arguments)); + }; + function createCloneTask(api, task, repoPath, localPath) { + if (typeof repoPath !== "string") { + return configurationErrorTask2(`git.${api}() requires a string 'repoPath'`); + } + return task(repoPath, filterType2(localPath, filterString2), getTrailingOptions2(arguments)); + } + Git2.prototype.clone = function() { + return this._runTask(createCloneTask("clone", cloneTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mirror = function() { + return this._runTask(createCloneTask("mirror", cloneMirrorTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mv = function(from, to) { + return this._runTask(moveTask2(from, to), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutLatestTag = function(then) { + var git = this; + return this.pull(function() { + git.tags(function(err, tags) { + git.checkout(tags.latest, then); + }); + }); + }; + Git2.prototype.pull = function(remote, branch, options, then) { + return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.fetch = function(remote, branch) { + return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.silent = function(silence) { + console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"); + return this; + }; + Git2.prototype.tags = function(options, then) { + return this._runTask(tagListTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rebase = function() { + return this._runTask(straightThroughStringTask2(["rebase", ...getTrailingOptions2(arguments)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.reset = function(mode) { + return this._runTask(resetTask2(getResetMode2(mode), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revert = function(commit) { + const next = trailingFunctionArgument2(arguments); + if (typeof commit !== "string") { + return this._runTask(configurationErrorTask2("Commit must be a string"), next); + } + return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit]), next); + }; + Git2.prototype.addTag = function(name) { + const task = typeof name === "string" ? addTagTask2(name) : configurationErrorTask2("Git.addTag requires a tag name"); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addAnnotatedTag = function(tagName, tagMessage) { + return this._runTask(addAnnotatedTagTask2(tagName, tagMessage), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranch = function(branchName, forceDelete, then) { + return this._runTask(deleteBranchTask2(branchName, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranches = function(branchNames, forceDelete, then) { + return this._runTask(deleteBranchesTask2(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branch = function(options, then) { + return this._runTask(branchTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branchLocal = function(then) { + return this._runTask(branchLocalTask2(), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.raw = function(commands) { + const createRestCommands = !Array.isArray(commands); + const command = [].slice.call(createRestCommands ? arguments : commands, 0); + for (let i = 0;i < command.length && createRestCommands; i++) { + if (!filterPrimitives2(command[i])) { + command.splice(i, command.length - i); + break; + } + } + command.push(...getTrailingOptions2(arguments, 0, true)); + var next = trailingFunctionArgument2(arguments); + if (!command.length) { + return this._runTask(configurationErrorTask2("Raw: must supply one or more command to execute"), next); + } + return this._runTask(straightThroughStringTask2(command, this._trimmed), next); + }; + Git2.prototype.submoduleAdd = function(repo, path, then) { + return this._runTask(addSubModuleTask2(repo, path), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleUpdate = function(args, then) { + return this._runTask(updateSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleInit = function(args, then) { + return this._runTask(initSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.subModule = function(options, then) { + return this._runTask(subModuleTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.listRemote = function() { + return this._runTask(listRemotesTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addRemote = function(remoteName, remoteRepo, then) { + return this._runTask(addRemoteTask2(remoteName, remoteRepo, getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.removeRemote = function(remoteName, then) { + return this._runTask(removeRemoteTask2(remoteName), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.getRemotes = function(verbose, then) { + return this._runTask(getRemotesTask2(verbose === true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.remote = function(options, then) { + return this._runTask(remoteTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.tag = function(options, then) { + const command = getTrailingOptions2(arguments); + if (command[0] !== "tag") { + command.unshift("tag"); + } + return this._runTask(straightThroughStringTask2(command), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.updateServerInfo = function(then) { + return this._runTask(straightThroughStringTask2(["update-server-info"]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.pushTags = function(remote, then) { + const task = pushTagsTask2({ remote: filterType2(remote, filterString2) }, getTrailingOptions2(arguments)); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rm = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "-f", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rmKeepLocal = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "--cached", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.catFile = function(options, then) { + return this._catFile("utf-8", arguments); + }; + Git2.prototype.binaryCatFile = function() { + return this._catFile("buffer", arguments); + }; + Git2.prototype._catFile = function(format, args) { + var handler = trailingFunctionArgument2(args); + var command = ["cat-file"]; + var options = args[0]; + if (typeof options === "string") { + return this._runTask(configurationErrorTask2("Git.catFile: options must be supplied as an array of strings"), handler); + } + if (Array.isArray(options)) { + command.push.apply(command, options); + } + const task = format === "buffer" ? straightThroughBufferTask2(command) : straightThroughStringTask2(command); + return this._runTask(task, handler); + }; + Git2.prototype.diff = function(options, then) { + const task = filterString2(options) ? configurationErrorTask2("git.diff: supplying options as a single string is no longer supported, switch to an array of strings") : straightThroughStringTask2(["diff", ...getTrailingOptions2(arguments)]); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.diffSummary = function() { + return this._runTask(diffSummaryTask2(getTrailingOptions2(arguments, 1)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.applyPatch = function(patches) { + const task = !filterStringOrStringArray2(patches) ? configurationErrorTask2(`git.applyPatch requires one or more string patches as the first argument`) : applyPatchTask2(asArray2(patches), getTrailingOptions2([].slice.call(arguments, 1))); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revparse = function() { + const commands = ["rev-parse", ...getTrailingOptions2(arguments, true)]; + return this._runTask(straightThroughStringTask2(commands, true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.clean = function(mode, options, then) { + const usingCleanOptionsArray = isCleanOptionsArray2(mode); + const cleanMode = usingCleanOptionsArray && mode.join("") || filterType2(mode, filterString2) || ""; + const customArgs = getTrailingOptions2([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0)); + return this._runTask(cleanWithOptionsTask2(cleanMode, customArgs), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.exec = function(then) { + const task = { + commands: [], + format: "utf-8", + parser() { + if (typeof then === "function") { + then(); + } + } + }; + return this._runTask(task); + }; + Git2.prototype.clearQueue = function() { + return this; + }; + Git2.prototype.checkIgnore = function(pathnames, then) { + return this._runTask(checkIgnoreTask2(asArray2(filterType2(pathnames, filterStringOrStringArray2, []))), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkIsRepo = function(checkType, then) { + return this._runTask(checkIsRepoTask2(filterType2(checkType, filterString2)), trailingFunctionArgument2(arguments)); + }; + module.exports = Git2; + } +}); +init_pathspec(); +init_git_error(); +var GitConstructError = class extends GitError { + constructor(config, message) { + super(undefined, message); + this.config = config; + } +}; +init_git_error(); +init_git_error(); +var GitPluginError = class extends GitError { + constructor(task, plugin, message) { + super(task, message); + this.task = task; + this.plugin = plugin; + Object.setPrototypeOf(this, new.target.prototype); + } +}; +init_git_response_error(); +init_task_configuration_error(); +init_check_is_repo(); +init_clean(); +init_config(); +init_diff_name_status(); +init_grep(); +init_reset(); +function abortPlugin(signal) { + if (!signal) { + return; + } + const onSpawnAfter = { + type: "spawn.after", + action(_data, context) { + function kill() { + context.kill(new GitPluginError(undefined, "abort", "Abort signal received")); + } + signal.addEventListener("abort", kill); + context.spawned.on("close", () => signal.removeEventListener("abort", kill)); + } + }; + const onSpawnBefore = { + type: "spawn.before", + action(_data, context) { + if (signal.aborted) { + context.kill(new GitPluginError(undefined, "abort", "Abort already signaled")); + } + } + }; + return [onSpawnBefore, onSpawnAfter]; +} +function isConfigSwitch(arg) { + return typeof arg === "string" && arg.trim().toLowerCase() === "-c"; +} +function preventProtocolOverride(arg, next) { + if (!isConfigSwitch(arg)) { + return; + } + if (!/^\s*protocol(.[a-z]+)?.allow/.test(next)) { + return; + } + throw new GitPluginError(undefined, "unsafe", "Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol"); +} +function preventUploadPack(arg, method) { + if (/^\s*--(upload|receive)-pack/.test(arg)) { + throw new GitPluginError(undefined, "unsafe", `Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack`); + } + if (method === "clone" && /^\s*-u\b/.test(arg)) { + throw new GitPluginError(undefined, "unsafe", `Use of clone with option -u is not permitted without enabling allowUnsafePack`); + } + if (method === "push" && /^\s*--exec\b/.test(arg)) { + throw new GitPluginError(undefined, "unsafe", `Use of push with option --exec is not permitted without enabling allowUnsafePack`); + } +} +function blockUnsafeOperationsPlugin({ + allowUnsafeProtocolOverride = false, + allowUnsafePack = false +} = {}) { + return { + type: "spawn.args", + action(args, context) { + args.forEach((current, index) => { + const next = index < args.length ? args[index + 1] : ""; + allowUnsafeProtocolOverride || preventProtocolOverride(current, next); + allowUnsafePack || preventUploadPack(current, context.method); + }); + return args; + } + }; +} +init_utils2(); +function commandConfigPrefixingPlugin(configuration) { + const prefix = prefixedArray(configuration, "-c"); + return { + type: "spawn.args", + action(data) { + return [...prefix, ...data]; + } + }; +} +init_utils2(); +var never = import_promise_deferred2.deferred().promise; +function completionDetectionPlugin({ + onClose = true, + onExit: onExit2 = 50 +} = {}) { + function createEvents() { + let exitCode = -1; + const events = { + close: import_promise_deferred2.deferred(), + closeTimeout: import_promise_deferred2.deferred(), + exit: import_promise_deferred2.deferred(), + exitTimeout: import_promise_deferred2.deferred() + }; + const result = Promise.race([ + onClose === false ? never : events.closeTimeout.promise, + onExit2 === false ? never : events.exitTimeout.promise + ]); + configureTimeout(onClose, events.close, events.closeTimeout); + configureTimeout(onExit2, events.exit, events.exitTimeout); + return { + close(code) { + exitCode = code; + events.close.done(); + }, + exit(code) { + exitCode = code; + events.exit.done(); + }, + get exitCode() { + return exitCode; + }, + result + }; + } + function configureTimeout(flag, event, timeout) { + if (flag === false) { + return; + } + (flag === true ? event.promise : event.promise.then(() => delay(flag))).then(timeout.done); + } + return { + type: "spawn.after", + action(_0, _1) { + return __async(this, arguments, function* (_data, { spawned, close }) { + var _a3, _b; + const events = createEvents(); + let deferClose = true; + let quickClose = () => void (deferClose = false); + (_a3 = spawned.stdout) == null || _a3.on("data", quickClose); + (_b = spawned.stderr) == null || _b.on("data", quickClose); + spawned.on("error", quickClose); + spawned.on("close", (code) => events.close(code)); + spawned.on("exit", (code) => events.exit(code)); + try { + yield events.result; + if (deferClose) { + yield delay(50); + } + close(events.exitCode); + } catch (err) { + close(events.exitCode, err); + } + }); + } + }; +} +init_utils2(); +var WRONG_NUMBER_ERR = `Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings`; +var WRONG_CHARS_ERR = `Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option`; +function isBadArgument(arg) { + return !arg || !/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test(arg); +} +function toBinaryConfig(input, allowUnsafe) { + if (input.length < 1 || input.length > 2) { + throw new GitPluginError(undefined, "binary", WRONG_NUMBER_ERR); + } + const isBad = input.some(isBadArgument); + if (isBad) { + if (allowUnsafe) { + console.warn(WRONG_CHARS_ERR); + } else { + throw new GitPluginError(undefined, "binary", WRONG_CHARS_ERR); + } + } + const [binary, prefix] = input; + return { + binary, + prefix + }; +} +function customBinaryPlugin(plugins, input = ["git"], allowUnsafe = false) { + let config = toBinaryConfig(asArray(input), allowUnsafe); + plugins.on("binary", (input2) => { + config = toBinaryConfig(asArray(input2), allowUnsafe); + }); + plugins.append("spawn.binary", () => { + return config.binary; + }); + plugins.append("spawn.args", (data) => { + return config.prefix ? [config.prefix, ...data] : data; + }); +} +init_git_error(); +function isTaskError(result) { + return !!(result.exitCode && result.stdErr.length); +} +function getErrorMessage(result) { + return Buffer.concat([...result.stdOut, ...result.stdErr]); +} +function errorDetectionHandler(overwrite = false, isError = isTaskError, errorMessage = getErrorMessage) { + return (error, result) => { + if (!overwrite && error || !isError(result)) { + return error; + } + return errorMessage(result); + }; +} +function errorDetectionPlugin(config) { + return { + type: "task.error", + action(data, context) { + const error = config(data.error, { + stdErr: context.stdErr, + stdOut: context.stdOut, + exitCode: context.exitCode + }); + if (Buffer.isBuffer(error)) { + return { error: new GitError(undefined, error.toString("utf-8")) }; + } + return { + error + }; + } + }; +} +init_utils2(); +var PluginStore = class { + constructor() { + this.plugins = /* @__PURE__ */ new Set; + this.events = new EventEmitter; + } + on(type, listener) { + this.events.on(type, listener); + } + reconfigure(type, data) { + this.events.emit(type, data); + } + append(type, action) { + const plugin = append(this.plugins, { type, action }); + return () => this.plugins.delete(plugin); + } + add(plugin) { + const plugins = []; + asArray(plugin).forEach((plugin2) => plugin2 && this.plugins.add(append(plugins, plugin2))); + return () => { + plugins.forEach((plugin2) => this.plugins.delete(plugin2)); + }; + } + exec(type, data, context) { + let output = data; + const contextual = Object.freeze(Object.create(context)); + for (const plugin of this.plugins) { + if (plugin.type === type) { + output = plugin.action(output, contextual); + } + } + return output; + } +}; +init_utils2(); +function progressMonitorPlugin(progress) { + const progressCommand = "--progress"; + const progressMethods = ["checkout", "clone", "fetch", "pull", "push"]; + const onProgress = { + type: "spawn.after", + action(_data, context) { + var _a2; + if (!context.commands.includes(progressCommand)) { + return; + } + (_a2 = context.spawned.stderr) == null || _a2.on("data", (chunk) => { + const message = /^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(chunk.toString("utf8")); + if (!message) { + return; + } + progress({ + method: context.method, + stage: progressEventStage(message[1]), + progress: asNumber(message[2]), + processed: asNumber(message[3]), + total: asNumber(message[4]) + }); + }); + } + }; + const onArgs = { + type: "spawn.args", + action(args, context) { + if (!progressMethods.includes(context.method)) { + return args; + } + return including(args, progressCommand); + } + }; + return [onArgs, onProgress]; +} +function progressEventStage(input) { + return String(input.toLowerCase().split(" ", 1)) || "unknown"; +} +init_utils2(); +function spawnOptionsPlugin(spawnOptions) { + const options = pick(spawnOptions, ["uid", "gid"]); + return { + type: "spawn.options", + action(data) { + return __spreadValues(__spreadValues({}, options), data); + } + }; +} +function timeoutPlugin({ + block, + stdErr = true, + stdOut = true +}) { + if (block > 0) { + return { + type: "spawn.after", + action(_data, context) { + var _a2, _b; + let timeout; + function wait() { + timeout && clearTimeout(timeout); + timeout = setTimeout(kill, block); + } + function stop() { + var _a3, _b2; + (_a3 = context.spawned.stdout) == null || _a3.off("data", wait); + (_b2 = context.spawned.stderr) == null || _b2.off("data", wait); + context.spawned.off("exit", stop); + context.spawned.off("close", stop); + timeout && clearTimeout(timeout); + } + function kill() { + stop(); + context.kill(new GitPluginError(undefined, "timeout", `block timeout reached`)); + } + stdOut && ((_a2 = context.spawned.stdout) == null || _a2.on("data", wait)); + stdErr && ((_b = context.spawned.stderr) == null || _b.on("data", wait)); + context.spawned.on("exit", stop); + context.spawned.on("close", stop); + wait(); + } + }; + } +} +init_pathspec(); +function suffixPathsPlugin() { + return { + type: "spawn.args", + action(data) { + const prefix = []; + let suffix; + function append2(args) { + (suffix = suffix || []).push(...args); + } + for (let i = 0;i < data.length; i++) { + const param = data[i]; + if (isPathSpec(param)) { + append2(toPaths(param)); + continue; + } + if (param === "--") { + append2(data.slice(i + 1).flatMap((item) => isPathSpec(item) && toPaths(item) || item)); + break; + } + prefix.push(param); + } + return !suffix ? prefix : [...prefix, "--", ...suffix.map(String)]; + } + }; +} +init_utils2(); +var Git = require_git(); +function gitInstanceFactory(baseDir, options) { + var _a2; + const plugins = new PluginStore; + const config = createInstanceConfig(baseDir && (typeof baseDir === "string" ? { baseDir } : baseDir) || {}, options); + if (!folderExists(config.baseDir)) { + throw new GitConstructError(config, `Cannot use simple-git on a directory that does not exist`); + } + if (Array.isArray(config.config)) { + plugins.add(commandConfigPrefixingPlugin(config.config)); + } + plugins.add(blockUnsafeOperationsPlugin(config.unsafe)); + plugins.add(suffixPathsPlugin()); + plugins.add(completionDetectionPlugin(config.completion)); + config.abort && plugins.add(abortPlugin(config.abort)); + config.progress && plugins.add(progressMonitorPlugin(config.progress)); + config.timeout && plugins.add(timeoutPlugin(config.timeout)); + config.spawnOptions && plugins.add(spawnOptionsPlugin(config.spawnOptions)); + plugins.add(errorDetectionPlugin(errorDetectionHandler(true))); + config.errors && plugins.add(errorDetectionPlugin(config.errors)); + customBinaryPlugin(plugins, config.binary, (_a2 = config.unsafe) == null ? undefined : _a2.allowUnsafeCustomBinary); + return new Git(config, plugins); +} +init_git_response_error(); +var esm_default12 = gitInstanceFactory; + // node_modules/zod/lib/index.mjs var util; (function(util2) { @@ -55549,7 +57850,7 @@ var util; return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator); } util2.joinValues = joinValues; - util2.jsonStringifyReplacer = (_3, value) => { + util2.jsonStringifyReplacer = (_2, value) => { if (typeof value === "bigint") { return value.toString(); } @@ -55558,9 +57859,9 @@ var util; })(util || (util = {})); var objectUtil; (function(objectUtil2) { - objectUtil2.mergeShapes = (first, second) => { + objectUtil2.mergeShapes = (first2, second) => { return { - ...first, + ...first2, ...second }; }; @@ -55850,8 +58151,8 @@ function getErrorMap() { return overrideErrorMap; } var makeIssue = (params) => { - const { data, path: path4, errorMaps, issueData } = params; - const fullPath = [...path4, ...issueData.path || []]; + const { data, path, errorMaps, issueData } = params; + const fullPath = [...path, ...issueData.path || []]; const fullIssue = { ...issueData, path: fullPath @@ -55979,11 +58280,11 @@ var _ZodEnum_cache; var _ZodNativeEnum_cache; class ParseInputLazyPath { - constructor(parent, value, path4, key2) { + constructor(parent, value, path, key2) { this._cachedPath = []; this.parent = parent; this.data = value; - this._path = path4; + this._path = path; this._key = key2; } get path() { @@ -56026,13 +58327,13 @@ function processCreateParams(params) { if (errorMap2) return { errorMap: errorMap2, description }; const customMap = (iss, ctx) => { - var _a, _b; + var _a2, _b; const { message } = params; if (iss.code === "invalid_enum_value") { return { message: message !== null && message !== undefined ? message : ctx.defaultError }; } if (typeof ctx.data === "undefined") { - return { message: (_a = message !== null && message !== undefined ? message : required_error) !== null && _a !== undefined ? _a : ctx.defaultError }; + return { message: (_a2 = message !== null && message !== undefined ? message : required_error) !== null && _a2 !== undefined ? _a2 : ctx.defaultError }; } if (iss.code !== "invalid_type") return { message: ctx.defaultError }; @@ -56089,11 +58390,11 @@ class ZodType { throw result.error; } safeParse(data, params) { - var _a; + var _a2; const ctx = { common: { issues: [], - async: (_a = params === null || params === undefined ? undefined : params.async) !== null && _a !== undefined ? _a : false, + async: (_a2 = params === null || params === undefined ? undefined : params.async) !== null && _a2 !== undefined ? _a2 : false, contextualErrorMap: params === null || params === undefined ? undefined : params.errorMap }, path: (params === null || params === undefined ? undefined : params.path) || [], @@ -56106,7 +58407,7 @@ class ZodType { return handleResult(ctx, result); } "~validate"(data) { - var _a, _b; + var _a2, _b; const ctx = { common: { issues: [], @@ -56127,7 +58428,7 @@ class ZodType { issues: ctx.common.issues }; } catch (err) { - if ((_b = (_a = err === null || err === undefined ? undefined : err.message) === null || _a === undefined ? undefined : _a.toLowerCase()) === null || _b === undefined ? undefined : _b.includes("encountered")) { + if ((_b = (_a2 = err === null || err === undefined ? undefined : err.message) === null || _a2 === undefined ? undefined : _a2.toLowerCase()) === null || _b === undefined ? undefined : _b.includes("encountered")) { this["~standard"].async = true; } ctx.common = { @@ -56388,7 +58689,7 @@ function isValidJWT(jwt, alg) { if (alg && decoded.alg !== alg) return false; return true; - } catch (_a) { + } catch (_a2) { return false; } } @@ -56548,7 +58849,7 @@ class ZodString extends ZodType { } else if (check2.kind === "url") { try { new URL(input.data); - } catch (_a) { + } catch (_a2) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "url", @@ -56760,7 +59061,7 @@ class ZodString extends ZodType { return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) }); } datetime(options) { - var _a, _b; + var _a2, _b; if (typeof options === "string") { return this._addCheck({ kind: "datetime", @@ -56773,7 +59074,7 @@ class ZodString extends ZodType { return this._addCheck({ kind: "datetime", precision: typeof (options === null || options === undefined ? undefined : options.precision) === "undefined" ? null : options === null || options === undefined ? undefined : options.precision, - offset: (_a = options === null || options === undefined ? undefined : options.offset) !== null && _a !== undefined ? _a : false, + offset: (_a2 = options === null || options === undefined ? undefined : options.offset) !== null && _a2 !== undefined ? _a2 : false, local: (_b = options === null || options === undefined ? undefined : options.local) !== null && _b !== undefined ? _b : false, ...errorUtil.errToObj(options === null || options === undefined ? undefined : options.message) }); @@ -56939,11 +59240,11 @@ class ZodString extends ZodType { } } ZodString.create = (params) => { - var _a; + var _a2; return new ZodString({ checks: [], typeName: ZodFirstPartyTypeKind.ZodString, - coerce: (_a = params === null || params === undefined ? undefined : params.coerce) !== null && _a !== undefined ? _a : false, + coerce: (_a2 = params === null || params === undefined ? undefined : params.coerce) !== null && _a2 !== undefined ? _a2 : false, ...processCreateParams(params) }); }; @@ -57198,7 +59499,7 @@ class ZodBigInt extends ZodType { if (this._def.coerce) { try { input.data = BigInt(input.data); - } catch (_a) { + } catch (_a2) { return this._getInvalidInput(input); } } @@ -57353,11 +59654,11 @@ class ZodBigInt extends ZodType { } } ZodBigInt.create = (params) => { - var _a; + var _a2; return new ZodBigInt({ checks: [], typeName: ZodFirstPartyTypeKind.ZodBigInt, - coerce: (_a = params === null || params === undefined ? undefined : params.coerce) !== null && _a !== undefined ? _a : false, + coerce: (_a2 = params === null || params === undefined ? undefined : params.coerce) !== null && _a2 !== undefined ? _a2 : false, ...processCreateParams(params) }); }; @@ -57872,8 +60173,8 @@ class ZodObject extends ZodType { unknownKeys: "strict", ...message !== undefined ? { errorMap: (issue, ctx) => { - var _a, _b, _c, _d; - const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === undefined ? undefined : _b.call(_a, issue, ctx).message) !== null && _c !== undefined ? _c : ctx.defaultError; + var _a2, _b, _c, _d; + const defaultError = (_c = (_b = (_a2 = this._def).errorMap) === null || _b === undefined ? undefined : _b.call(_a2, issue, ctx).message) !== null && _c !== undefined ? _c : ctx.defaultError; if (issue.code === "unrecognized_keys") return { message: (_d = errorUtil.errToObj(message).message) !== null && _d !== undefined ? _d : defaultError @@ -58408,10 +60709,10 @@ class ZodRecord extends ZodType { get element() { return this._def.valueType; } - static create(first, second, third) { + static create(first2, second, third) { if (second instanceof ZodType) { return new ZodRecord({ - keyType: first, + keyType: first2, valueType: second, typeName: ZodFirstPartyTypeKind.ZodRecord, ...processCreateParams(third) @@ -58419,7 +60720,7 @@ class ZodRecord extends ZodType { } return new ZodRecord({ keyType: ZodString.create(), - valueType: first, + valueType: first2, typeName: ZodFirstPartyTypeKind.ZodRecord, ...processCreateParams(second) }); @@ -59267,10 +61568,10 @@ ZodReadonly.create = (type, params) => { function custom(check2, params = {}, fatal) { if (check2) return ZodAny.create().superRefine((data, ctx) => { - var _a, _b; + var _a2, _b; if (!check2(data)) { const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params; - const _fatal = (_b = (_a = p.fatal) !== null && _a !== undefined ? _a : fatal) !== null && _b !== undefined ? _b : true; + const _fatal = (_b = (_a2 = p.fatal) !== null && _a2 !== undefined ? _a2 : fatal) !== null && _b !== undefined ? _b : true; const p2 = typeof p === "string" ? { message: p } : p; ctx.addIssue({ code: "custom", ...p2, fatal: _fatal }); } @@ -59489,8 +61790,8 @@ var z = /* @__PURE__ */ Object.freeze({ // src/commands/components/commands/add/utils/handle-error.ts function handleError(error) { - logger.error(`Something went wrong. Please check the error below for more details.`); - logger.error(`If the problem persists, please open an issue on GitHub.`); + logger.error(`something went wrong. please check the error below for more details.`); + logger.error(`if the problem persists, please open an issue on github.`); logger.error(""); if (typeof error === "string") { logger.error(error); @@ -59498,7 +61799,7 @@ function handleError(error) { process.exit(1); } if (error instanceof z.ZodError) { - logger.error("Validation failed:"); + logger.error("validation failed:"); for (const [key2, value] of Object.entries(error.flatten().fieldErrors)) { logger.error(`- ${highlighter.info(key2)}: ${value}`); } @@ -59519,6 +61820,566 @@ var ERRORS = { BUILD_MISSING_REGISTRY_FILE: "3" }; +// src/commands/create/pipe/index.ts +process.removeAllListeners("warning"); +var PIPE_ADDITIONS = { + dependencies: { + "@screenpipe/js": "latest" + }, + devDependencies: { + "bun-types": "latest" + } +}; +async function downloadAndExtractSubdir(subdir, destPath) { + const tempDir = path.join(destPath, "_temp"); + await import_fs_extra.default.ensureDir(tempDir); + await esm_default12().clone("https://github.com/mediar-ai/screenpipe", tempDir); + const sourcePath = path.join(tempDir, subdir); + await import_fs_extra.default.copy(sourcePath, destPath); + await import_fs_extra.default.remove(tempDir); +} +var createPipeCommand = new Command().name("pipe").description("create a new pipe").action(async () => { + console.log(source_default.bold(` +welcome to screenpipe! \uD83D\uDE80 +`)); + logger.log(`let's create a new screenpipe pipe. +`); + logger.log("pipes are plugins that interact with captured screen and audio data."); + logger.log(`build powerful agents, monetize it, etc. +`); + const pipeName = await esm_default5({ + message: "what is your pipe name?", + default: "my-screenpipe", + validate: (input) => { + if (input.trim().length === 0) + return "pipe name is required"; + return true; + } + }); + const directory = await esm_default5({ + message: "where would you like to create your pipe?", + default: pipeName + }); + const spinner2 = ora("creating your pipe...").start(); + try { + await downloadAndExtractSubdir("pipes/obsidian", directory); + const pkgPath = path.join(process.cwd(), directory, "package.json"); + const pkg = await import_fs_extra.default.readJson(pkgPath); + pkg.name = pipeName; + pkg.dependencies = { + ...pkg.dependencies, + ...PIPE_ADDITIONS.dependencies + }; + pkg.devDependencies = { + ...pkg.devDependencies, + ...PIPE_ADDITIONS.devDependencies + }; + await import_fs_extra.default.writeJson(pkgPath, pkg, { spaces: 2 }); + spinner2.succeed(source_default.green("pipe created successfully! \uD83C\uDF89")); + console.log(` +to get started:`); + console.log(source_default.cyan(`cd ${directory}`)); + console.log(source_default.cyan("bun install # or use: npm install, pnpm install, yarn")); + console.log(source_default.cyan("bun dev # or use: npm run dev, pnpm dev, yarn dev")); + console.log(` +when you're ready, you can ship your pipe to the app by adding it to the pipe store using the UI and then send a PR to the main repo. +`); + } catch (error) { + spinner2.fail("failed to create pipe"); + handleError(error); + } +}); + +// src/commands/create/app/index.ts +init_esm13(); +init_esm14(); +var TEMPLATE_REPOS = { + electron: "https://github.com/neo773/screenpipe-electron", + tauri: "https://github.com/LorenzoBloedow/screenpipe-tauri-template-dev" +}; +var createAppCommand = new Command().name("app").description("create a new desktop app project").option("-a, --name ", "the name of your app (optional)").option("-t, --appType ", "the type of desktop app (electron or tauri)").action(async (options) => { + let { name, appType } = options; + if (!appType) { + let { appTypePrompt } = await esm_default13.prompt({ + name: "appTypePrompt", + type: "select", + message: "what type of desktop app would you like to create?", + choices: [ + { name: "electron", value: "electron" }, + { name: "tauri", value: "tauri" } + ], + default: "tauri" + }); + appType = appTypePrompt; + } + if (!name || name.length === 0) { + name = await esm_default5({ + message: "What is your project name?", + default: "my-desktop-app", + validate: (input) => { + if (input.trim().length === 0) + return "project name is required."; + return true; + } + }); + } + const loadingSpinner = spinner("creating your desktop app..."); + try { + loadingSpinner.start(); + await esm_default12().clone(TEMPLATE_REPOS[appType], name); + loadingSpinner.succeed("Project created successfully! \uD83C\uDF89"); + logger.info(` +credits to the template authors:`); + if (appType === "electron") { + logger.info("electron template by: Neo @ https://github.com/neo773"); + } else { + logger.info("tauri template by: Lorenzo @ https://github.com/LorenzoBloedow"); + } + logger.info(` +to get started:`); + logger.info(`cd ${name}`); + logger.info("npm install # or bun install, pnpm install, yarn"); + logger.info("npm run dev # or bun dev, pnpm dev, yarn dev"); + logger.info(` +when you're ready, you can deploy your app following the documentation for the respective framework. +`); + } catch (error) { + loadingSpinner.fail("failed to create project"); + handleError(error instanceof Error ? error.message : String(error)); + } +}); + +// src/commands/create/index.ts +var createCommands = new Command().name("create").description("commands to initiate projects that contribute to screenpipe"); +createCommands.addCommand(createPipeCommand); +createCommands.addCommand(createAppCommand); +// src/constants.ts +var API_BASE_URL = process.env.SC_API_BASE_URL || "https://screenpi.pe"; + +// src/utils/credentials.ts +import os2 from "os"; +import fs2 from "fs"; +import path2 from "path"; + +class Credentials { + static configDir = path2.join(os2.homedir(), ".screenpipe"); + static configFile = path2.join(this.configDir, "config-developer.json"); + static getApiKey() { + try { + if (!fs2.existsSync(this.configFile)) { + return null; + } + const config = JSON.parse(fs2.readFileSync(this.configFile, "utf-8")); + return config.apiKey || null; + } catch (error) { + return null; + } + } + static setApiKey(apiKey, developerId) { + if (!fs2.existsSync(this.configDir)) { + fs2.mkdirSync(this.configDir); + } + fs2.writeFileSync(this.configFile, JSON.stringify({ + apiKey, + developerId + }, null, 2)); + } + static clearCredentials() { + if (fs2.existsSync(this.configFile)) { + fs2.unlinkSync(this.configFile); + } + } +} + +// src/commands/login.ts +var loginCommand = new Command().name("login").description("login with an API key").requiredOption("--apiKey ", "API key to login with").action(async (opts) => { + try { + logger.info(` +${symbols.info} validating API key...`); + const response = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { + method: "GET", + headers: { + Authorization: `Bearer ${opts.apiKey}`, + "Content-Type": "application/json" + } + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(`Failed to validate API key ${error.error}`); + } + const data = await response.json(); + if (data.data.needs_name) { + const inquirer2 = (await Promise.resolve().then(() => (init_esm14(), exports_esm))).default; + const { developerName } = await inquirer2.prompt([ + { + type: "input", + name: "developerName", + message: "enter your developer name:", + validate: (input) => { + if (input.length < 2) { + return "developer name must be at least 2 characters"; + } + if (input.length > 50) { + return "developer name must be less than 50 characters"; + } + return true; + } + } + ]); + const updateResponse = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { + method: "POST", + headers: { + Authorization: `Bearer ${opts.apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ developer_name: developerName }) + }); + if (!updateResponse.ok) { + const error = await updateResponse.json(); + throw new Error(`failed to set developer name: ${error.error}`); + } + const updateData = await updateResponse.json(); + data.data.developer_name = updateData.data.developer_name; + } + logger.info(` +${symbols.success} successfully logged in!`); + console.log(colors8.listItem(`${colors8.label("developer id")} ${data.data.developer_id}`)); + console.log(colors8.listItem(`${colors8.label("developer name")} ${data.data.developer_name}`)); + Credentials.setApiKey(opts.apiKey, data.data.developer_id); + } catch (error) { + if (error instanceof Error) { + handleError(` +${symbols.error} login failed: ${error.message}`); + } else { + handleError(` +${symbols.error} login failed with unexpected error`); + } + process.exit(1); + } +}); +// src/commands/logout.ts +var logoutCommand = new Command().name("logout").description("end current session").action(async () => { + Credentials.clearCredentials(); + logger.success(` +${symbols.success} successfully logged out`); + logger.info(`${symbols.info} thanks for using screenpipe! come back soon.`); +}); +// src/commands/publish.ts +import fs3 from "fs"; +import path3 from "path"; +var import_archiver = __toESM(require_archiver(), 1); +var import_ignore = __toESM(require_ignore2(), 1); +import crypto from "crypto"; +var NEXTJS_FILES = { + required: ["package.json", ".next"], + optional: [ + "package-lock.json", + "bun.lockb", + "next.config.js", + "next.config.mjs" + ] +}; +var MAX_FILE_SIZE = 500 * 1024 * 1024; +async function archiveNextJsProject(archive) { + const { required, optional } = NEXTJS_FILES; + const missingFiles = required.filter((file) => !fs3.existsSync(file)); + if (missingFiles.length > 0) { + throw new Error(`Required files not found: ${missingFiles.join(", ")}. ` + "Make sure you're in the correct directory and the project is built."); + } + for (const file of required) { + if (file === ".next") { + archive.directory(".next", ".next", (entry) => { + return entry.name.startsWith(".next/cache/") ? false : entry; + }); + } else { + archive.file(file, { name: file }); + } + } + optional.filter((file) => fs3.existsSync(file)).forEach((file) => { + archive.file(file, { name: file }); + }); +} +function archiveStandardProject(archive, ig) { + archive.glob("**/*", { + ignore: [".git/**", "node_modules/**", ".next/cache/**"], + dot: true, + nodir: false, + mark: true + }); +} +var publishCommand = new Command().name("publish").description("publish or update a pipe to the store").requiredOption("--name ", "name of the pipe").option("--verbose", "enable verbose logging", false).action(async (opts) => { + try { + if (opts.verbose) { + logger.info(`${symbols.arrow} starting publish command...`); + } + const apiKey = Credentials.getApiKey(); + if (!apiKey) { + handleError(`${symbols.error} not logged in. please login first using ${colors8.highlight("screenpipe login")}`); + } + if (opts.verbose) { + logger.info(`${symbols.arrow} reading package.json...`); + } + let packageJson; + try { + packageJson = JSON.parse(fs3.readFileSync("package.json", "utf-8")); + } catch (error) { + handleError(`${symbols.error} failed to read package.json. make sure you're in the correct directory.`); + } + if (!packageJson || !packageJson.name || !packageJson.version) { + handleError(`${symbols.error} package name and version are required in package.json`); + return; + } + logger.info(` +${symbols.info} publishing ${colors8.highlight(packageJson.name)} v${packageJson.version}...`); + logger.info(colors8.dim(`${symbols.arrow} creating package archive...`)); + const zipPath = path3.join(process.cwd(), `${packageJson.name}-${packageJson.version}.zip`); + const output = fs3.createWriteStream(zipPath); + const archive = import_archiver.default("zip", { zlib: { level: 9 } }); + const ig = import_ignore.default(); + if (fs3.existsSync(".gitignore")) { + ig.add(fs3.readFileSync(".gitignore").toString()); + } + const isNextProject = fs3.existsSync("next.config.js") || fs3.existsSync("next.config.mjs") || fs3.existsSync("next.config.ts"); + archive.pipe(output); + if (isNextProject) { + await archiveNextJsProject(archive); + } else { + archiveStandardProject(archive, ig); + } + await new Promise((resolve, reject) => { + output.on("close", resolve); + archive.on("error", reject); + archive.finalize(); + }); + if (opts.verbose) { + logger.info(`${symbols.arrow} detected project type: ${isNextProject ? "nextjs" : "standard"}`); + logger.info(colors8.dim(`${symbols.arrow} starting archive creation...`)); + } + const fileBuffer = fs3.readFileSync(zipPath); + const hashSum = crypto.createHash("sha256"); + hashSum.update(fileBuffer); + const fileHash = hashSum.digest("hex"); + const fileSize = fs3.statSync(zipPath).size; + if (fileSize > MAX_FILE_SIZE) { + handleError(`${symbols.error} package size (${(fileSize / 1024 / 1024).toFixed(2)}MB) exceeds maximum allowed size (${MAX_FILE_SIZE / 1024 / 1024}MB)`); + fs3.unlinkSync(zipPath); + } + let description = null; + try { + const readmeContent = fs3.readFileSync("README.md", "utf-8"); + if (readmeContent) { + description = readmeContent; + } + } catch (error) { + logger.warn(`${symbols.arrow} no README.md found, required for description`); + } + if (!description) { + handleError(`${symbols.error} description is required`); + } + if (opts.verbose) { + logger.info(`${symbols.arrow} calculating file hash...`); + } + try { + logger.info(`${symbols.arrow} getting upload URL...`); + const urlResponse = await fetch(`${API_BASE_URL}/api/plugins/publish`, { + method: "POST", + headers: { + Authorization: `Bearer ${apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name, + version: packageJson.version, + fileSize, + fileHash, + description + }) + }); + if (!urlResponse.ok) { + throw new Error(`failed to get upload URL: ${await urlResponse.text()}`); + } + const { uploadUrl, path: path4 } = await urlResponse.json(); + logger.info(`${symbols.arrow} uploading to storage...`); + const uploadResponse = await fetch(uploadUrl, { + method: "PUT", + headers: { + "Content-Type": "application/zip" + }, + body: fileBuffer + }); + if (!uploadResponse.ok) { + const text = await uploadResponse.text(); + throw new Error(`failed to upload file to storage: ${text}`); + } + logger.info(`${symbols.arrow} finalizing upload...`); + const finalizeResponse = await fetch(`${API_BASE_URL}/api/plugins/publish/finalize`, { + method: "POST", + headers: { + Authorization: `Bearer ${apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name, + version: packageJson.version, + fileHash, + storagePath: path4, + description, + fileSize + }) + }); + if (!finalizeResponse.ok) { + const text = await finalizeResponse.text(); + throw new Error(`failed to finalize upload: ${text}`); + } + const data = await finalizeResponse.json(); + logger.success(` +${symbols.success} successfully published plugin!`); + console.log(colors8.listItem(`${colors8.label("name")} ${packageJson.name}`)); + console.log(colors8.listItem(`${colors8.label("version")} ${packageJson.version}`)); + console.log(colors8.listItem(`${colors8.label("size")} ${(fileSize / 1024).toFixed(2)} KB`)); + if (data.message) { + logger.info(` +${symbols.info} ${data.message}`); + } + fs3.unlinkSync(zipPath); + if (opts.verbose) { + logger.log(`${symbols.arrow} cleaned up temporary zip file`); + } + } catch (error) { + if (fs3.existsSync(zipPath)) { + fs3.unlinkSync(zipPath); + if (opts.verbose) { + logger.log(`${symbols.arrow} cleaned up temporary zip file`); + } + } + if (error instanceof Error) { + handleError(` +${symbols.error} publishing failed: ${error.message}`); + } + process.exit(1); + } + } catch (error) { + if (error instanceof Error) { + handleError(` +${symbols.error} publishing failed: ${error.message}`); + } else { + handleError(` +${symbols.error} publishing failed with unexpected error`); + } + } +}); +// src/commands/register.ts +import fs4 from "fs"; +var registerCommand = new Command().name("register").description("register a new pipe").requiredOption("--name ", "name of the pipe").option("--paid", "set this flag to create a paid pipe").option("--price ", "price in usd (required for paid pipes)", parseFloat).option("--source ", "source code url (e.g., github repository)").action(async (opts) => { + if (opts.paid && opts.price == null) { + handleError("error: price is required for paid pipes, i.e., --price "); + } + if (opts.paid && opts.price <= 0) { + handleError("error: price must be positive for paid pipes"); + } + try { + const apiKey = Credentials.getApiKey(); + if (!apiKey) { + handleError(symbols.error + " not logged in. please login first using" + colors8.highlight("screenpipe login")); + } + let packageJson; + try { + packageJson = JSON.parse(fs4.readFileSync("package.json", "utf-8")); + } catch (error) { + handleError(`${symbols.error} failed to read package.json. make sure you're in the correct directory.`); + } + const isPaid = opts.paid || false; + const price = opts.price; + let description = null; + try { + const readmeContent = fs4.readFileSync("README.md", "utf-8"); + if (readmeContent) { + description = readmeContent; + } + } catch (error) { + logger.warn(`${symbols.arrow} no README.md found, required for description`); + } + const response = await fetch(`${API_BASE_URL}/api/plugins/create`, { + method: "POST", + headers: { + Authorization: `Bearer ${apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name, + description, + is_paid: isPaid, + price: isPaid ? price : null, + source_url: opts.source || null + }) + }); + if (!response.ok) { + const errorData = await response.json(); + handleError(errorData.error || "failed to create plugin"); + } + const data = await response.json(); + logger.success(` +${symbols.success} successfully created pipe: ${colors8.highlight(opts.name)}`); + logger.info(` +${symbols.info} plugin details:`); + console.log(colors8.listItem(`${colors8.label("name")} ${opts.name}`)); + console.log(colors8.listItem(`${colors8.label("type")} ${isPaid ? `paid ($${price})` : "free"}`)); + if (opts.source) { + console.log(colors8.listItem(`${colors8.label("source")} ${opts.source}`)); + } + } catch (error) { + if (error instanceof Error) { + handleError(` +${symbols.error} creating failed: ${error.message}`); + } else { + handleError(` +${symbols.error} creating failed with unexpected error`); + } + } +}); +// src/commands/list-versions.ts +var listVersionsCommand = new Command().name("list-versions").description("List all versions of a pipe").requiredOption("--name ", "name of the pipe").action(async (opts) => { + try { + const response = await fetch(`${API_BASE_URL}/api/plugins/list-versions`, { + method: "POST", + headers: { + Authorization: `Bearer ${Credentials.getApiKey()}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name + }) + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(`failed to list versions ${error.error}`); + } + const data = await response.json(); + console.log(colors8.header(`plugin Information`)); + console.log(colors8.listItem(`${colors8.label("Name")} ${opts.name}`)); + console.log(colors8.listItem(`${colors8.label("ID")} ${data.plugin_id}`)); + console.log(colors8.header("version History")); + data.versions.forEach((version) => { + const status = version.status === "published" ? colors8.success(version.status) : colors8.warning(version.status); + console.log(colors8.primary(` + ${symbols.arrow} version ${colors8.bold(version.version)} ${colors8.dim(`(${status})`)}`)); + console.log(colors8.listItem(`${colors8.label("created")} ${new Date(version.created_at).toLocaleString()}`)); + console.log(colors8.listItem(`${colors8.label("size")} ${(version.file_size / 1024).toFixed(2)} KB`)); + console.log(colors8.listItem(`${colors8.label("hash")} ${colors8.dim(version.file_hash)}`)); + if (version.changelog) { + console.log(colors8.listItem(`${colors8.label("changelog")} ${version.changelog}`)); + } + }); + } catch (error) { + if (error instanceof Error) { + handleError(` +${symbols.error} list versions failed: ${error.message}`); + } else { + handleError(` +${symbols.error} list versions failed with unexpected error`); + } + } +}); // src/commands/components/commands/add/registry/schema.ts var registryComponentSchema = z.object({ name: z.string(), @@ -59703,7 +62564,7 @@ async function promptForRegistryComponents(all) { if (all) { return Object.values(registryIndex).map((entry) => entry.name); } - const { components } = await esm_default12.prompt([ + const { components } = await esm_default13.prompt([ { type: "checkbox", name: "components", @@ -59789,9 +62650,9 @@ import { ChildProcess } from "node:child_process"; // node_modules/execa/lib/utils/uint-array.js import { StringDecoder } from "node:string_decoder"; -var { toString: objectToString } = Object.prototype; -var isArrayBuffer = (value) => objectToString.call(value) === "[object ArrayBuffer]"; -var isUint8Array = (value) => objectToString.call(value) === "[object Uint8Array]"; +var { toString: objectToString2 } = Object.prototype; +var isArrayBuffer = (value) => objectToString2.call(value) === "[object ArrayBuffer]"; +var isUint8Array = (value) => objectToString2.call(value) === "[object Uint8Array]"; var bufferToUint8Array = (buffer) => new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); var textEncoder = new TextEncoder; var stringToUint8Array = (string) => textEncoder.encode(string); @@ -61275,7 +64136,7 @@ var disconnect = (anyProcess) => { }; // node_modules/execa/lib/utils/deferred.js -var createDeferred = () => { +var createDeferred2 = () => { const methods = {}; const promise = new Promise((resolve, reject) => { Object.assign(methods, { resolve, reject }); @@ -61380,7 +64241,7 @@ var incrementMaxListeners = (eventEmitter, maxListenersIncrement, signal) => { }; // node_modules/execa/lib/ipc/forward.js -import { EventEmitter } from "node:events"; +import { EventEmitter as EventEmitter2 } from "node:events"; // node_modules/execa/lib/ipc/incoming.js import { once as once2 } from "node:events"; @@ -61462,7 +64323,7 @@ var getIpcEmitter = (anyProcess, channel, isSubprocess) => { if (IPC_EMITTERS.has(anyProcess)) { return IPC_EMITTERS.get(anyProcess); } - const ipcEmitter = new EventEmitter; + const ipcEmitter = new EventEmitter2; ipcEmitter.connected = true; IPC_EMITTERS.set(anyProcess, ipcEmitter); forwardEvents({ @@ -61551,12 +64412,12 @@ var waitForStrictResponse = async (wrappedMessage, anyProcess, isSubprocess) => if (wrappedMessage?.type !== REQUEST_TYPE) { return; } - const deferred = createDeferred(); - STRICT_RESPONSES[wrappedMessage.id] = deferred; + const deferred2 = createDeferred2(); + STRICT_RESPONSES[wrappedMessage.id] = deferred2; const controller = new AbortController; try { const { isDeadlock, hasListeners } = await Promise.race([ - deferred, + deferred2, throwOnDisconnect(anyProcess, isSubprocess, controller) ]); if (isDeadlock) { @@ -61585,7 +64446,7 @@ var startSendMessage = (anyProcess, wrappedMessage, strict) => { OUTGOING_MESSAGES.set(anyProcess, new Set); } const outgoingMessages = OUTGOING_MESSAGES.get(anyProcess); - const onMessageSent = createDeferred(); + const onMessageSent = createDeferred2(); const id = strict ? wrappedMessage.id : undefined; const outgoingMessage = { onMessageSent, id }; outgoingMessages.add(outgoingMessage); @@ -62266,19 +65127,19 @@ var getChunkType = (chunk) => { if (globalThis.Buffer?.isBuffer(chunk)) { return "buffer"; } - const prototypeName = objectToString2.call(chunk); + const prototypeName = objectToString3.call(chunk); if (prototypeName === "[object ArrayBuffer]") { return "arrayBuffer"; } if (prototypeName === "[object DataView]") { return "dataView"; } - if (Number.isInteger(chunk.byteLength) && Number.isInteger(chunk.byteOffset) && objectToString2.call(chunk.buffer) === "[object ArrayBuffer]") { + if (Number.isInteger(chunk.byteLength) && Number.isInteger(chunk.byteOffset) && objectToString3.call(chunk.buffer) === "[object ArrayBuffer]") { return "typedArray"; } return "others"; }; -var { toString: objectToString2 } = Object.prototype; +var { toString: objectToString3 } = Object.prototype; class MaxBufferError extends Error { name = "MaxBufferError"; @@ -63643,7 +66504,7 @@ var addPropertiesSync = { output: { ...addProperties, fileUrl: ({ value }) => ({ path: value }), - filePath: ({ value: { file, append } }) => ({ path: file, append }), + filePath: ({ value: { file, append: append2 } }) => ({ path: file, append: append2 }), fileNumber: ({ value }) => ({ path: value }), iterable: forbiddenIfSync, string: forbiddenIfSync, @@ -64105,9 +66966,9 @@ var logOutputSync = ({ serializedResult, fdNumber, state, verboseInfo, encoding, } }; var writeToFiles = (serializedResult, stdioItems, outputFiles) => { - for (const { path: path10, append } of stdioItems.filter(({ type }) => FILE_TYPES.has(type))) { + for (const { path: path10, append: append2 } of stdioItems.filter(({ type }) => FILE_TYPES.has(type))) { const pathString = typeof path10 === "string" ? path10 : path10.toString(); - if (append || outputFiles.has(pathString)) { + if (append2 || outputFiles.has(pathString)) { appendFileSync(path10, serializedResult); } else { outputFiles.add(pathString); @@ -64327,7 +67188,7 @@ var getSyncResult = ({ error, exitCode, signal, timedOut, isMaxBuffer, stdio, al // node_modules/execa/lib/methods/main-async.js import { setMaxListeners } from "node:events"; -import { spawn } from "node:child_process"; +import { spawn as spawn2 } from "node:child_process"; // node_modules/execa/lib/ipc/methods.js import process16 from "node:process"; @@ -64595,7 +67456,7 @@ var addPropertiesAsync = { output: { ...addProperties2, fileUrl: ({ value }) => ({ stream: createWriteStream(value) }), - filePath: ({ value: { file, append } }) => ({ stream: createWriteStream(file, append ? { flags: "a" } : {}) }), + filePath: ({ value: { file, append: append2 } }) => ({ stream: createWriteStream(file, append2 ? { flags: "a" } : {}) }), webStream: ({ value }) => ({ stream: Writable2.fromWeb(value) }), iterable: forbiddenIfAsync, asyncIterable: forbiddenIfAsync, @@ -65659,7 +68520,7 @@ var addConcurrentStream = (concurrentStreams, stream, waitName) => { weakMap.set(stream, []); } const promises = weakMap.get(stream); - const promise = createDeferred(); + const promise = createDeferred2(); promises.push(promise); const resolve = promise.resolve.bind(promise); return { resolve, promises }; @@ -65751,7 +68612,7 @@ var getSubprocessStdout = (subprocess, from2, concurrentStreams) => { }; var getReadableOptions = ({ readableEncoding, readableObjectMode, readableHighWaterMark }, binary) => binary ? { readableEncoding, readableObjectMode, readableHighWaterMark } : { readableEncoding, readableObjectMode: true, readableHighWaterMark: DEFAULT_OBJECT_HIGH_WATER_MARK }; var getReadableMethods = ({ subprocessStdout, subprocess, binary, encoding, preserveNewlines }) => { - const onStdoutDataDone = createDeferred(); + const onStdoutDataDone = createDeferred2(); const onStdoutData = iterateOnSubprocessStream({ subprocessStdout, subprocess, @@ -66023,7 +68884,7 @@ var handleAsyncOptions = ({ timeout, signal, ...options }) => { var spawnSubprocessAsync = ({ file, commandArguments, options, startTime, verboseInfo, command, escapedCommand, fileDescriptors }) => { let subprocess; try { - subprocess = spawn(file, commandArguments, options); + subprocess = spawn2(file, commandArguments, options); } catch (error) { return handleEarlyError({ error, @@ -66041,7 +68902,7 @@ var spawnSubprocessAsync = ({ file, commandArguments, options, startTime, verbos pipeOutputAsync(subprocess, fileDescriptors, controller); cleanupOnExit(subprocess, options, controller); const context = {}; - const onInternalError = createDeferred(); + const onInternalError = createDeferred2(); subprocess.kill = subprocessKill.bind(undefined, { kill: subprocess.kill.bind(subprocess), options, @@ -66319,7 +69180,7 @@ async function updateFiles(componentLocations, options) { const existingFile = existsSync(location.target); if (existingFile && !options.overwrite) { filesCreatedSpinner.stop(); - const { overwrite } = await esm_default12.prompt([ + const { overwrite } = await esm_default13.prompt([ { type: "confirm", name: "overwrite", @@ -66457,7 +69318,7 @@ async function writeJsonToFile(filePath, data) { var registerComponentCommand = new Command().name("register").description("register a new component in screenpipe's component registry").option("-n, --name ", "name of the component").option("-s, --src", "github url for the component").option("-t, --target", "path where file should be created").action(async (opts) => { try { if (!opts.name) { - const { name } = await esm_default12.prompt([ + const { name } = await esm_default13.prompt([ { type: "input", name: "name", @@ -66467,7 +69328,7 @@ var registerComponentCommand = new Command().name("register").description("regis opts.name = name; } if (!opts.src) { - const { src } = await esm_default12.prompt([ + const { src } = await esm_default13.prompt([ { type: "input", name: "src", @@ -66481,7 +69342,7 @@ visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/c opts.src = src; } if (!opts.target) { - const { target } = await esm_default12.prompt([ + const { target } = await esm_default13.prompt([ { type: "input", name: "target", @@ -66495,7 +69356,7 @@ visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/c handleError("invalid component"); process.exit(1); } - const { deps } = await esm_default12.prompt([ + const { deps } = await esm_default13.prompt([ { type: "input", name: "deps", @@ -66503,7 +69364,7 @@ visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/c filter: (input) => input.split(",").map((item) => item.trim()).filter((item) => item !== "") } ]); - const { devDeps } = await esm_default12.prompt([ + const { devDeps } = await esm_default13.prompt([ { type: "input", name: "devDeps", @@ -66511,7 +69372,7 @@ visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/c filter: (input) => input.split(",").map((item) => item.trim()).filter((item) => item !== "") } ]); - const { registryDeps } = await esm_default12.prompt([ + const { registryDeps } = await esm_default13.prompt([ { type: "input", name: "registryDeps", @@ -66554,7 +69415,7 @@ async function main2() { program2.name("screenpipe-dev").description("screenpipe development CLI tool").version("0.0.1"); program2.addCommand(loginCommand); program2.addCommand(logoutCommand); - program2.addCommand(createCommand2); + program2.addCommand(createCommands); program2.addCommand(componentsCommands); program2.addCommand(registerCommand); program2.addCommand(publishCommand); From 05591964cfaa0080fb13958cfed512b3a92cc2ad Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:06:34 -0600 Subject: [PATCH 33/35] chore(cli): publish command to Commander --- screenpipe-js/cli/src/commands/publish.ts | 18 +++++++----------- screenpipe-vision/bin/ui_monitor | Bin 297920 -> 297920 bytes .../bin/ui_monitor-aarch64-apple-darwin | Bin 297920 -> 297920 bytes 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/screenpipe-js/cli/src/commands/publish.ts b/screenpipe-js/cli/src/commands/publish.ts index 739936e8a..80bf77236 100644 --- a/screenpipe-js/cli/src/commands/publish.ts +++ b/screenpipe-js/cli/src/commands/publish.ts @@ -1,12 +1,12 @@ import fs from "fs"; import path from "path"; -import { command, string, boolean } from "@drizzle-team/brocli"; import { Credentials } from "../utils/credentials"; import { API_BASE_URL } from "../constants"; import archiver from "archiver"; import crypto from "crypto"; import ignore from "ignore"; import { colors, symbols } from "../utils/colors"; +import { Command } from "commander"; interface ProjectFiles { required: string[]; @@ -96,14 +96,11 @@ async function retryFetch( throw new Error("Retry failed"); // Fallback error } -export const publishCommand = command({ - name: "publish", - desc: "publish or update a pipe to the store", - options: { - name: string().required().desc("name of the pipe"), - verbose: boolean().desc("enable verbose logging").default(false), - }, - handler: async (opts) => { +export const publishCommand = new Command('publish') + .description('publish or update a pipe to the store') + .requiredOption('-n, --name ', 'name of the pipe') + .option('-v, --verbose', 'enable verbose logging', false) + .action(async (opts) => { try { if (opts.verbose) { console.log(colors.dim(`${symbols.arrow} starting publish command...`)); @@ -380,5 +377,4 @@ export const publishCommand = command({ } process.exit(1); } - }, -}); + }) diff --git a/screenpipe-vision/bin/ui_monitor b/screenpipe-vision/bin/ui_monitor index 602bde8372925af6f6b0b7629b867c273082e4e2..c3419888e38550b21966655d1d2e763ab9c5721f 100755 GIT binary patch delta 930 zcmXZWe=L-790&04^W2jz+?^k{DWY3elxILD`MXmfwH!q6x^-F^P}e)oNSzMs86A0z2tBpvG4Y<9<| zVeVV4{FN=^k=63_x*Q=wh({lcJ_y;+k49%(I}CHz@>zveT#hwD-r9ECUD{ceFI{wD zU%(QzDt0n`o7jICEHte(aoR9KTVwZ^fe7EmTKnNQIA-0b{ydU_Puk?fi7_fpjQa~o zu^QKq(JI_gD|Xb8o@(5V`l7}U$eH0OJc*zRlju2&N9Po5E<#EbZr*6U8=?PR1G9P% za^oryPi^`42h(BZei>K*&I9{_o4_LQ7&sKn=tT{?{~;S`Xme%NX9v{IdzgY)bMAYrncMBZ^ZU!V<>Pu?Fg2zk;xS&R z7Jo>k_A3>O%p-55lgkrJEQLo&@3Y8XpQe7!tW1#7Tf|o$*0ou*FEFI*>~T)!QtB+{ z^2NYw5eb?3y8b5{i)_azN_v|R;k<#BK}GZRERPolZDv1C#hC66-8j~O6^H|ZYr4u7 zzAcl696C&2&W`d+t9ThYm)%p66{bvlI+*iHKiydz;JHxIUH+OhXoynYOkDM}kTV)3 zyA;>rePuskC=8<#Dv>UI=hghG^CvWvJeM$HBA30)#G^4oQ3VPw(W=`ipU2UX&elUx w(-su0!=!qjA!>fWMPn)+<@)nkJ|!pPH*90&04@4+G5T^^Ps&P{a5JQvf3(n2gkt>xx%mM&_Rn9k^qxg!txjbCf! zq59*d#hLVzl%v??p|s3%A%)T!6DgtNK7V}vczyQyzCWL@iZ)i!#>!O#zSQz=TBG|R zj~k9HMIY_D6s`y%o~AHOA!L9M-e_US#V{G=U{t}f;_N`kk!mxvre=)XHO)QjL@bGt zurFYV)I58gIB?`UHP3m8v8Y<^27&2#H$K`q*ojXWHcE#^Gw^nHesn0tM2F&Du2iT= zDXo^`T*}|XoW3o=Wz4V?cM|J4E3nhSS9lRk9O7PFwv}lP%8}sP2Q73Xv}GCCyhrO& z@KLZPYdV#+AgT68WiX%zehTJ-r@-c5y|>!;Jg_@>KR5;K46f3cZHka5cyKFV ztD$6E5{TeGba*SVo0$-j9RyuJPq@V6HBh~d<7+WKk6F91GZL*!|H*)f!y)) zE8_*CfRIkT?vM)GXD)o7>9FL=Qk49<|M{F%H$SBPNmo|wK7AJFL(EN=W@cPM#$dc& zokiTvGfeiXsZQX%Li%OcrirdzGb3x-R4M=Xlf`sYE;-5b@yL7sYeb-Sk}Qp+Pl`6D z78<@GIc=sZoLwwi7Q``8d89ASo4Yt#Azl^`v42@fqY0PNYdIm^7H2l^Uw0j|c^ven zgl^5(g!RQYEoBu?n>GKgwU3x7{2BRB8Ndj`yY8?q54x2%n9;2=vYIC^Fc1z|8ZD@1 z&sCGCsmkl+Lu5(b?U*n0Jpumx4sg>V^tl;9Xgfv x6Fz+AWa?UGPJ^dcEW=&_2V$PLvlxILD`MXmfwH!q6x^-F^P}e)oNSzMs86A0z2tBpvG4Y<9<| zVeVV4{FN=^k=63_x*Q=wh({lcJ_y;+k49%(I}CHz@>zveT#hwD-r9ECUD{ceFI{wD zU%(QzDt0n`o7jICEHte(aoR9KTVwZ^fe7EmTKnNQIA-0b{ydU_Puk?fi7_fpjQa~o zu^QKq(JI_gD|Xb8o@(5V`l7}U$eH0OJc*zRlju2&N9Po5E<#EbZr*6U8=?PR1G9P% za^oryPi^`42h(BZei>K*&I9{_o4_LQ7&sKn=tT{?{~;S`Xme%NX9v{IdzgY)bMAYrncMBZ^ZU!V<>Pu?Fg2zk;xS&R z7Jo>k_A3>O%p-55lgkrJEQLo&@3Y8XpQe7!tW1#7Tf|o$*0ou*FEFI*>~T)!QtB+{ z^2NYw5eb?3y8b5{i)_azN_v|R;k<#BK}GZRERPolZDv1C#hC66-8j~O6^H|ZYr4u7 zzAcl696C&2&W`d+t9ThYm)%p66{bvlI+*iHKiydz;JHxIUH+OhXoynYOkDM}kTV)3 zyA;>rePuskC=8<#Dv>UI=hghG^CvWvJeM$HBA30)#G^4oQ3VPw(W=`ipU2UX&elUx w(-su0!=!qjA!>fWMPn)+<@)nkJ|!pPH*90&04@4+G5T^^Ps&P{a5JQvf3(n2gkt>xx%mM&_Rn9k^qxg!txjbCf! zq59*d#hLVzl%v??p|s3%A%)T!6DgtNK7V}vczyQyzCWL@iZ)i!#>!O#zSQz=TBG|R zj~k9HMIY_D6s`y%o~AHOA!L9M-e_US#V{G=U{t}f;_N`kk!mxvre=)XHO)QjL@bGt zurFYV)I58gIB?`UHP3m8v8Y<^27&2#H$K`q*ojXWHcE#^Gw^nHesn0tM2F&Du2iT= zDXo^`T*}|XoW3o=Wz4V?cM|J4E3nhSS9lRk9O7PFwv}lP%8}sP2Q73Xv}GCCyhrO& z@KLZPYdV#+AgT68WiX%zehTJ-r@-c5y|>!;Jg_@>KR5;K46f3cZHka5cyKFV ztD$6E5{TeGba*SVo0$-j9RyuJPq@V6HBh~d<7+WKk6F91GZL*!|H*)f!y)) zE8_*CfRIkT?vM)GXD)o7>9FL=Qk49<|M{F%H$SBPNmo|wK7AJFL(EN=W@cPM#$dc& zokiTvGfeiXsZQX%Li%OcrirdzGb3x-R4M=Xlf`sYE;-5b@yL7sYeb-Sk}Qp+Pl`6D z78<@GIc=sZoLwwi7Q``8d89ASo4Yt#Azl^`v42@fqY0PNYdIm^7H2l^Uw0j|c^ven zgl^5(g!RQYEoBu?n>GKgwU3x7{2BRB8Ndj`yY8?q54x2%n9;2=vYIC^Fc1z|8ZD@1 z&sCGCsmkl+Lu5(b?U*n0Jpumx4sg>V^tl;9Xgfv x6Fz+AWa?UGPJ^dcEW=&_2V$PLv Date: Wed, 5 Feb 2025 16:18:09 -0600 Subject: [PATCH 34/35] refactor(cli): modify create command 1. `create pipe` back to `create` 2. `create app [name]` to `app create [name]` --- screenpipe-js/cli/dist/index.js | 122 +++++++++++------- .../{create/app/index.ts => app/create.ts} | 6 +- screenpipe-js/cli/src/commands/app/index.ts | 8 ++ .../cli/src/commands/create/index.ts | 105 ++++++++++++++- .../cli/src/commands/create/pipe/index.ts | 104 --------------- screenpipe-js/cli/src/commands/index.ts | 3 +- screenpipe-js/cli/src/index.ts | 6 +- 7 files changed, 187 insertions(+), 167 deletions(-) rename screenpipe-js/cli/src/commands/{create/app/index.ts => app/create.ts} (93%) create mode 100644 screenpipe-js/cli/src/commands/app/index.ts delete mode 100644 screenpipe-js/cli/src/commands/create/pipe/index.ts diff --git a/screenpipe-js/cli/dist/index.js b/screenpipe-js/cli/dist/index.js index dce2b26c2..b0611de9f 100755 --- a/screenpipe-js/cli/dist/index.js +++ b/screenpipe-js/cli/dist/index.js @@ -52633,7 +52633,7 @@ var { Help } = import__.default; -// src/commands/create/pipe/index.ts +// src/commands/create/index.ts var import_fs_extra = __toESM(require_lib(), 1); init_esm13(); import path from "path"; @@ -61820,7 +61820,7 @@ var ERRORS = { BUILD_MISSING_REGISTRY_FILE: "3" }; -// src/commands/create/pipe/index.ts +// src/commands/create/index.ts process.removeAllListeners("warning"); var PIPE_ADDITIONS = { dependencies: { @@ -61838,7 +61838,7 @@ async function downloadAndExtractSubdir(subdir, destPath) { await import_fs_extra.default.copy(sourcePath, destPath); await import_fs_extra.default.remove(tempDir); } -var createPipeCommand = new Command().name("pipe").description("create a new pipe").action(async () => { +var createPipeCommand = new Command().name("create").description("create a new pipe").action(async () => { console.log(source_default.bold(` welcome to screenpipe! \uD83D\uDE80 `)); @@ -61889,15 +61889,14 @@ when you're ready, you can ship your pipe to the app by adding it to the pipe st handleError(error); } }); - -// src/commands/create/app/index.ts +// src/commands/app/create.ts init_esm13(); init_esm14(); var TEMPLATE_REPOS = { electron: "https://github.com/neo773/screenpipe-electron", tauri: "https://github.com/LorenzoBloedow/screenpipe-tauri-template-dev" }; -var createAppCommand = new Command().name("app").description("create a new desktop app project").option("-a, --name ", "the name of your app (optional)").option("-t, --appType ", "the type of desktop app (electron or tauri)").action(async (options) => { +var createAppCommand = new Command().name("create").description("create a new desktop app project").option("-a, --name ", "the name of your app (optional)").option("-t, --appType ", "the type of desktop app (electron or tauri)").action(async (options) => { let { name, appType } = options; if (!appType) { let { appTypePrompt } = await esm_default13.prompt({ @@ -61949,10 +61948,9 @@ when you're ready, you can deploy your app following the documentation for the r } }); -// src/commands/create/index.ts -var createCommands = new Command().name("create").description("commands to initiate projects that contribute to screenpipe"); -createCommands.addCommand(createPipeCommand); -createCommands.addCommand(createAppCommand); +// src/commands/app/index.ts +var appCommands = new Command().name("app").description("create a new screenpipe application using default templates"); +appCommands.addCommand(createAppCommand); // src/constants.ts var API_BASE_URL = process.env.SC_API_BASE_URL || "https://screenpi.pe"; @@ -62107,31 +62105,51 @@ function archiveStandardProject(archive, ig) { mark: true }); } -var publishCommand = new Command().name("publish").description("publish or update a pipe to the store").requiredOption("--name ", "name of the pipe").option("--verbose", "enable verbose logging", false).action(async (opts) => { +async function retryFetch(url, options, maxRetries = 3, baseDelay = 1000) { + for (let attempt = 1;attempt <= maxRetries; attempt++) { + try { + const response = await fetch(url, options); + if (response.ok) + return response; + if (attempt === maxRetries) { + throw new Error(`Failed after ${maxRetries} attempts: ${await response.text()}`); + } + } catch (error) { + if (attempt === maxRetries) + throw error; + } + const delay2 = baseDelay * Math.pow(2, attempt - 1); + await new Promise((resolve) => setTimeout(resolve, delay2)); + } + throw new Error("Retry failed"); +} +var publishCommand = new Command("publish").description("publish or update a pipe to the store").requiredOption("-n, --name ", "name of the pipe").option("-v, --verbose", "enable verbose logging", false).action(async (opts) => { try { if (opts.verbose) { - logger.info(`${symbols.arrow} starting publish command...`); + console.log(colors8.dim(`${symbols.arrow} starting publish command...`)); } const apiKey = Credentials.getApiKey(); if (!apiKey) { - handleError(`${symbols.error} not logged in. please login first using ${colors8.highlight("screenpipe login")}`); + console.error(colors8.error(`${symbols.error} Not logged in. Please login first using ${colors8.highlight("screenpipe login")}`)); + process.exit(1); } if (opts.verbose) { - logger.info(`${symbols.arrow} reading package.json...`); + console.log(colors8.dim(`${symbols.arrow} reading package.json...`)); } let packageJson; try { packageJson = JSON.parse(fs3.readFileSync("package.json", "utf-8")); } catch (error) { - handleError(`${symbols.error} failed to read package.json. make sure you're in the correct directory.`); + console.error(colors8.error(`${symbols.error} Failed to read package.json. Make sure you're in the correct directory.`)); + process.exit(1); } - if (!packageJson || !packageJson.name || !packageJson.version) { - handleError(`${symbols.error} package name and version are required in package.json`); - return; + if (!packageJson.name || !packageJson.version) { + console.error(colors8.error(`${symbols.error} Package name and version are required in package.json`)); + process.exit(1); } - logger.info(` -${symbols.info} publishing ${colors8.highlight(packageJson.name)} v${packageJson.version}...`); - logger.info(colors8.dim(`${symbols.arrow} creating package archive...`)); + console.log(colors8.info(` +${symbols.info} Publishing ${colors8.highlight(packageJson.name)} v${packageJson.version}...`)); + console.log(colors8.dim(`${symbols.arrow} Creating package archive...`)); const zipPath = path3.join(process.cwd(), `${packageJson.name}-${packageJson.version}.zip`); const output = fs3.createWriteStream(zipPath); const archive = import_archiver.default("zip", { zlib: { level: 9 } }); @@ -62152,8 +62170,8 @@ ${symbols.info} publishing ${colors8.highlight(packageJson.name)} v${packageJson archive.finalize(); }); if (opts.verbose) { - logger.info(`${symbols.arrow} detected project type: ${isNextProject ? "nextjs" : "standard"}`); - logger.info(colors8.dim(`${symbols.arrow} starting archive creation...`)); + console.log(colors8.dim(`${symbols.arrow} detected project type: ${isNextProject ? "nextjs" : "standard"}`)); + console.log(colors8.dim(`${symbols.arrow} starting archive creation...`)); } const fileBuffer = fs3.readFileSync(zipPath); const hashSum = crypto.createHash("sha256"); @@ -62161,8 +62179,9 @@ ${symbols.info} publishing ${colors8.highlight(packageJson.name)} v${packageJson const fileHash = hashSum.digest("hex"); const fileSize = fs3.statSync(zipPath).size; if (fileSize > MAX_FILE_SIZE) { - handleError(`${symbols.error} package size (${(fileSize / 1024 / 1024).toFixed(2)}MB) exceeds maximum allowed size (${MAX_FILE_SIZE / 1024 / 1024}MB)`); + console.error(colors8.error(`${symbols.error} Package size (${(fileSize / 1024 / 1024).toFixed(2)}MB) exceeds maximum allowed size (${MAX_FILE_SIZE / 1024 / 1024}MB)`)); fs3.unlinkSync(zipPath); + process.exit(1); } let description = null; try { @@ -62171,16 +62190,17 @@ ${symbols.info} publishing ${colors8.highlight(packageJson.name)} v${packageJson description = readmeContent; } } catch (error) { - logger.warn(`${symbols.arrow} no README.md found, required for description`); + console.log(colors8.dim(`${symbols.arrow} No README.md found, required for description`)); } if (!description) { - handleError(`${symbols.error} description is required`); + console.error(colors8.error(`${symbols.error} Description is required`)); + process.exit(1); } if (opts.verbose) { - logger.info(`${symbols.arrow} calculating file hash...`); + console.log(colors8.dim(`${symbols.arrow} calculating file hash...`)); } try { - logger.info(`${symbols.arrow} getting upload URL...`); + console.log(colors8.dim(`${symbols.arrow} Getting upload URL...`)); const urlResponse = await fetch(`${API_BASE_URL}/api/plugins/publish`, { method: "POST", headers: { @@ -62196,11 +62216,11 @@ ${symbols.info} publishing ${colors8.highlight(packageJson.name)} v${packageJson }) }); if (!urlResponse.ok) { - throw new Error(`failed to get upload URL: ${await urlResponse.text()}`); + throw new Error(`Failed to get upload URL: ${await urlResponse.text()}`); } const { uploadUrl, path: path4 } = await urlResponse.json(); - logger.info(`${symbols.arrow} uploading to storage...`); - const uploadResponse = await fetch(uploadUrl, { + console.log(colors8.dim(`${symbols.arrow} Uploading to storage...`)); + const uploadResponse = await retryFetch(uploadUrl, { method: "PUT", headers: { "Content-Type": "application/zip" @@ -62209,9 +62229,9 @@ ${symbols.info} publishing ${colors8.highlight(packageJson.name)} v${packageJson }); if (!uploadResponse.ok) { const text = await uploadResponse.text(); - throw new Error(`failed to upload file to storage: ${text}`); + throw new Error(`Failed to upload file to storage: ${text}`); } - logger.info(`${symbols.arrow} finalizing upload...`); + console.log(colors8.dim(`${symbols.arrow} Finalizing upload...`)); const finalizeResponse = await fetch(`${API_BASE_URL}/api/plugins/publish/finalize`, { method: "POST", headers: { @@ -62229,43 +62249,44 @@ ${symbols.info} publishing ${colors8.highlight(packageJson.name)} v${packageJson }); if (!finalizeResponse.ok) { const text = await finalizeResponse.text(); - throw new Error(`failed to finalize upload: ${text}`); + throw new Error(`Failed to finalize upload: ${text}`); } const data = await finalizeResponse.json(); - logger.success(` -${symbols.success} successfully published plugin!`); - console.log(colors8.listItem(`${colors8.label("name")} ${packageJson.name}`)); - console.log(colors8.listItem(`${colors8.label("version")} ${packageJson.version}`)); - console.log(colors8.listItem(`${colors8.label("size")} ${(fileSize / 1024).toFixed(2)} KB`)); + console.log(colors8.success(` +${symbols.success} Successfully published plugin!`)); + console.log(colors8.listItem(`${colors8.label("Name")} ${packageJson.name}`)); + console.log(colors8.listItem(`${colors8.label("Version")} ${packageJson.version}`)); + console.log(colors8.listItem(`${colors8.label("Size")} ${(fileSize / 1024).toFixed(2)} KB`)); if (data.message) { - logger.info(` -${symbols.info} ${data.message}`); + console.log(colors8.info(` +${symbols.info} ${data.message}`)); } fs3.unlinkSync(zipPath); if (opts.verbose) { - logger.log(`${symbols.arrow} cleaned up temporary zip file`); + console.log(colors8.dim(`${symbols.arrow} cleaned up temporary zip file`)); } } catch (error) { if (fs3.existsSync(zipPath)) { fs3.unlinkSync(zipPath); if (opts.verbose) { - logger.log(`${symbols.arrow} cleaned up temporary zip file`); + console.log(colors8.dim(`${symbols.arrow} cleaned up temporary zip file`)); } } if (error instanceof Error) { - handleError(` -${symbols.error} publishing failed: ${error.message}`); + console.error(colors8.error(` +${symbols.error} Publishing failed: ${error.message}`)); } process.exit(1); } } catch (error) { if (error instanceof Error) { - handleError(` -${symbols.error} publishing failed: ${error.message}`); + console.error(colors8.error(` +${symbols.error} Publishing failed: ${error.message}`)); } else { - handleError(` -${symbols.error} publishing failed with unexpected error`); + console.error(colors8.error(` +${symbols.error} Publishing failed with unexpected error`)); } + process.exit(1); } }); // src/commands/register.ts @@ -69415,7 +69436,8 @@ async function main2() { program2.name("screenpipe-dev").description("screenpipe development CLI tool").version("0.0.1"); program2.addCommand(loginCommand); program2.addCommand(logoutCommand); - program2.addCommand(createCommands); + program2.addCommand(appCommands); + program2.addCommand(createPipeCommand); program2.addCommand(componentsCommands); program2.addCommand(registerCommand); program2.addCommand(publishCommand); diff --git a/screenpipe-js/cli/src/commands/create/app/index.ts b/screenpipe-js/cli/src/commands/app/create.ts similarity index 93% rename from screenpipe-js/cli/src/commands/create/app/index.ts rename to screenpipe-js/cli/src/commands/app/create.ts index 2a8da4d11..38ba3106c 100644 --- a/screenpipe-js/cli/src/commands/create/app/index.ts +++ b/screenpipe-js/cli/src/commands/app/create.ts @@ -2,9 +2,9 @@ import { input } from "@inquirer/prompts"; // Import select from inquirer prompts import { Command } from "commander"; import inquirer from "inquirer"; -import { logger, spinner } from "../../components/commands/add/utils/logger"; -import { handleError } from "../../components/commands/add/utils/handle-error"; import simpleGit from "simple-git"; +import { logger, spinner } from "../components/commands/add/utils/logger"; +import { handleError } from "../components/commands/add/utils/handle-error"; const TEMPLATE_REPOS = { electron: "https://github.com/neo773/screenpipe-electron", @@ -12,7 +12,7 @@ const TEMPLATE_REPOS = { }; export const createAppCommand = new Command() - .name("app") + .name("create") .description("create a new desktop app project") .option( "-a, --name ", diff --git a/screenpipe-js/cli/src/commands/app/index.ts b/screenpipe-js/cli/src/commands/app/index.ts new file mode 100644 index 000000000..045bbe99f --- /dev/null +++ b/screenpipe-js/cli/src/commands/app/index.ts @@ -0,0 +1,8 @@ +import { Command } from "commander"; +import { createAppCommand } from "./create"; + +export const appCommands = new Command() + .name("app") + .description("create a new screenpipe application using default templates") + +appCommands.addCommand(createAppCommand) \ No newline at end of file diff --git a/screenpipe-js/cli/src/commands/create/index.ts b/screenpipe-js/cli/src/commands/create/index.ts index 17491cc36..dc82fefc7 100644 --- a/screenpipe-js/cli/src/commands/create/index.ts +++ b/screenpipe-js/cli/src/commands/create/index.ts @@ -1,11 +1,102 @@ +#!/usr/bin/env node +// Add this at the very top to suppress the Buffer deprecation warning +process.removeAllListeners("warning"); + +import fs from "fs-extra"; +import path from "path"; +import { input } from "@inquirer/prompts"; +import chalk from "chalk"; +import ora from "ora"; import { Command } from "commander"; -import { createPipeCommand } from "./pipe"; -import { createAppCommand } from "./app"; +import { logger } from "../components/commands/add/utils/logger"; +import simpleGit from "simple-git"; +import { handleError } from "../components/commands/add/utils/handle-error"; + +const PIPE_ADDITIONS = { + dependencies: { + "@screenpipe/js": "latest", + }, + devDependencies: { + "bun-types": "latest", + }, +}; + +async function downloadAndExtractSubdir(subdir: string, destPath: string) { + const tempDir = path.join(destPath, "_temp"); + await fs.ensureDir(tempDir); + await simpleGit().clone("https://github.com/mediar-ai/screenpipe", tempDir); + const sourcePath = path.join(tempDir, subdir); + await fs.copy(sourcePath, destPath); + await fs.remove(tempDir); +} + +export const createPipeCommand = new Command() + .name('create') + .description('create a new pipe') + .action(async () => { + console.log(chalk.bold("\nwelcome to screenpipe! šŸš€\n")); + logger.log("let's create a new screenpipe pipe.\n"); + logger.log( + "pipes are plugins that interact with captured screen and audio data." + ); + logger.log("build powerful agents, monetize it, etc.\n"); + + const pipeName = await input({ + message: "what is your pipe name?", + default: "my-screenpipe", + validate: (input) => { + if (input.trim().length === 0) return "pipe name is required"; + return true; + }, + }); + + const directory = await input({ + message: "where would you like to create your pipe?", + default: pipeName, + }); + + const spinner = ora("creating your pipe...").start(); + + try { + // Download and extract the appropriate template + await downloadAndExtractSubdir( + "pipes/obsidian", + directory + ); + + // Update package.json with the pipe name + const pkgPath = path.join(process.cwd(), directory, "package.json"); + const pkg = await fs.readJson(pkgPath); + + pkg.name = pipeName; + pkg.dependencies = { + ...pkg.dependencies, + ...PIPE_ADDITIONS.dependencies, + }; + pkg.devDependencies = { + ...pkg.devDependencies, + ...PIPE_ADDITIONS.devDependencies, + }; + + await fs.writeJson(pkgPath, pkg, { spaces: 2 }); + + spinner.succeed(chalk.green("pipe created successfully! šŸŽ‰")); -export const createCommands = new Command() - .name("create") - .description("commands to initiate projects that contribute to screenpipe") + console.log("\nto get started:"); + console.log(chalk.cyan(`cd ${directory}`)); + console.log( + chalk.cyan("bun install # or use: npm install, pnpm install, yarn") + ); + console.log( + chalk.cyan("bun dev # or use: npm run dev, pnpm dev, yarn dev") + ); -createCommands.addCommand(createPipeCommand) + console.log( + "\nwhen you're ready, you can ship your pipe to the app by adding it to the pipe store using the UI and then send a PR to the main repo.\n" + ); + } catch (error) { + spinner.fail("failed to create pipe"); + handleError(error); + } + }) -createCommands.addCommand(createAppCommand) \ No newline at end of file diff --git a/screenpipe-js/cli/src/commands/create/pipe/index.ts b/screenpipe-js/cli/src/commands/create/pipe/index.ts deleted file mode 100644 index 9eee51f7b..000000000 --- a/screenpipe-js/cli/src/commands/create/pipe/index.ts +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env node -// Add this at the very top to suppress the Buffer deprecation warning -process.removeAllListeners("warning"); - -import fs from "fs-extra"; -import path from "path"; -import { input } from "@inquirer/prompts"; -import chalk from "chalk"; -import ora from "ora"; -import https from "https"; -import { Extract } from "unzip-stream"; -import { Command } from "commander"; -import { logger } from "../../components/commands/add/utils/logger"; -import simpleGit from "simple-git"; -import { handleError } from "../../components/commands/add/utils/handle-error"; - -const PIPE_ADDITIONS = { - dependencies: { - "@screenpipe/js": "latest", - }, - devDependencies: { - "bun-types": "latest", - }, -}; - -async function downloadAndExtractSubdir(subdir: string, destPath: string) { - const tempDir = path.join(destPath, "_temp"); - await fs.ensureDir(tempDir); - await simpleGit().clone("https://github.com/mediar-ai/screenpipe", tempDir); - const sourcePath = path.join(tempDir, subdir); - await fs.copy(sourcePath, destPath); - await fs.remove(tempDir); -} - -export const createPipeCommand = new Command() - .name('pipe') - .description('create a new pipe') - .action(async () => { - console.log(chalk.bold("\nwelcome to screenpipe! šŸš€\n")); - logger.log("let's create a new screenpipe pipe.\n"); - logger.log( - "pipes are plugins that interact with captured screen and audio data." - ); - logger.log("build powerful agents, monetize it, etc.\n"); - - const pipeName = await input({ - message: "what is your pipe name?", - default: "my-screenpipe", - validate: (input) => { - if (input.trim().length === 0) return "pipe name is required"; - return true; - }, - }); - - const directory = await input({ - message: "where would you like to create your pipe?", - default: pipeName, - }); - - const spinner = ora("creating your pipe...").start(); - - try { - // Download and extract the appropriate template - await downloadAndExtractSubdir( - "pipes/obsidian", - directory - ); - - // Update package.json with the pipe name - const pkgPath = path.join(process.cwd(), directory, "package.json"); - const pkg = await fs.readJson(pkgPath); - - pkg.name = pipeName; - pkg.dependencies = { - ...pkg.dependencies, - ...PIPE_ADDITIONS.dependencies, - }; - pkg.devDependencies = { - ...pkg.devDependencies, - ...PIPE_ADDITIONS.devDependencies, - }; - - await fs.writeJson(pkgPath, pkg, { spaces: 2 }); - - spinner.succeed(chalk.green("pipe created successfully! šŸŽ‰")); - - console.log("\nto get started:"); - console.log(chalk.cyan(`cd ${directory}`)); - console.log( - chalk.cyan("bun install # or use: npm install, pnpm install, yarn") - ); - console.log( - chalk.cyan("bun dev # or use: npm run dev, pnpm dev, yarn dev") - ); - - console.log( - "\nwhen you're ready, you can ship your pipe to the app by adding it to the pipe store using the UI and then send a PR to the main repo.\n" - ); - } catch (error) { - spinner.fail("failed to create pipe"); - handleError(error); - } - }) - diff --git a/screenpipe-js/cli/src/commands/index.ts b/screenpipe-js/cli/src/commands/index.ts index 074d9965f..070835b7e 100644 --- a/screenpipe-js/cli/src/commands/index.ts +++ b/screenpipe-js/cli/src/commands/index.ts @@ -1,4 +1,5 @@ -export { createCommands } from './create/index'; +export { createPipeCommand } from './create'; +export { appCommands } from './app'; export { loginCommand } from './login'; export { logoutCommand } from './logout'; export { publishCommand } from './publish'; diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index 416285458..056cb52ee 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -1,12 +1,13 @@ import { Command } from "commander"; import { + appCommands, loginCommand, componentsCommands, registerCommand, publishCommand, listVersionsCommand, logoutCommand, - createCommands + createPipeCommand } from "./commands"; process.on("SIGINT", () => process.exit(0)) @@ -22,7 +23,8 @@ async function main() { program.addCommand(loginCommand) program.addCommand(logoutCommand) - program.addCommand(createCommands) + program.addCommand(appCommands) + program.addCommand(createPipeCommand) program.addCommand(componentsCommands) program.addCommand(registerCommand) program.addCommand(publishCommand) From 327ff28d713dd2100ec408e3b134229ceeabc88a Mon Sep 17 00:00:00 2001 From: oliverqx <8559757+oliverqx@users.noreply.github.com> Date: Wed, 5 Feb 2025 21:28:31 -0600 Subject: [PATCH 35/35] feat(cli): refactor pipes components --- screenpipe-js/cli/dist/index.js | 64781 ++++++++-------- .../cli/src/commands/components/index.ts | 2 +- screenpipe-js/cli/src/commands/index.ts | 7 +- .../{create/index.ts => pipe/create.ts} | 0 screenpipe-js/cli/src/commands/pipe/index.ts | 14 + .../src/commands/{ => pipe}/list-versions.ts | 8 +- .../cli/src/commands/{ => pipe}/publish.ts | 6 +- .../cli/src/commands/{ => pipe}/register.ts | 10 +- screenpipe-js/cli/src/index.ts | 10 +- 9 files changed, 32425 insertions(+), 32413 deletions(-) rename screenpipe-js/cli/src/commands/{create/index.ts => pipe/create.ts} (100%) create mode 100644 screenpipe-js/cli/src/commands/pipe/index.ts rename screenpipe-js/cli/src/commands/{ => pipe}/list-versions.ts (91%) rename screenpipe-js/cli/src/commands/{ => pipe}/publish.ts (98%) rename screenpipe-js/cli/src/commands/{ => pipe}/register.ts (91%) diff --git a/screenpipe-js/cli/dist/index.js b/screenpipe-js/cli/dist/index.js index b0611de9f..a22686f12 100755 --- a/screenpipe-js/cli/dist/index.js +++ b/screenpipe-js/cli/dist/index.js @@ -1805,17688 +1805,14880 @@ var require_commander = __commonJS((exports, module) => { exports.InvalidOptionArgumentError = InvalidArgumentError; }); -// node_modules/universalify/index.js -var require_universalify = __commonJS((exports) => { - exports.fromCallback = function(fn) { - return Object.defineProperty(function(...args) { - if (typeof args[args.length - 1] === "function") - fn.apply(this, args); - else { - return new Promise((resolve, reject) => { - args.push((err, res) => err != null ? reject(err) : resolve(res)); - fn.apply(this, args); - }); - } - }, "name", { value: fn.name }); - }; - exports.fromPromise = function(fn) { - return Object.defineProperty(function(...args) { - const cb = args[args.length - 1]; - if (typeof cb !== "function") - return fn.apply(this, args); - else { - args.pop(); - fn.apply(this, args).then((r) => cb(null, r), cb); - } - }, "name", { value: fn.name }); - }; +// node_modules/signal-exit/dist/mjs/signals.js +var signals; +var init_signals = __esm(() => { + signals = []; + signals.push("SIGHUP", "SIGINT", "SIGTERM"); + if (process.platform !== "win32") { + signals.push("SIGALRM", "SIGABRT", "SIGVTALRM", "SIGXCPU", "SIGXFSZ", "SIGUSR2", "SIGTRAP", "SIGSYS", "SIGQUIT", "SIGIOT"); + } + if (process.platform === "linux") { + signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT"); + } }); -// node_modules/graceful-fs/polyfills.js -var require_polyfills = __commonJS((exports, module) => { - var constants = __require("constants"); - var origCwd = process.cwd; - var cwd = null; - var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform; - process.cwd = function() { - if (!cwd) - cwd = origCwd.call(process); - return cwd; +// node_modules/signal-exit/dist/mjs/index.js +class Emitter { + emitted = { + afterExit: false, + exit: false }; - try { - process.cwd(); - } catch (er) { + listeners = { + afterExit: [], + exit: [] + }; + count = 0; + id = Math.random(); + constructor() { + if (global2[kExitEmitter]) { + return global2[kExitEmitter]; + } + ObjectDefineProperty(global2, kExitEmitter, { + value: this, + writable: false, + enumerable: false, + configurable: false + }); } - if (typeof process.chdir === "function") { - chdir = process.chdir; - process.chdir = function(d) { - cwd = null; - chdir.call(process, d); - }; - if (Object.setPrototypeOf) - Object.setPrototypeOf(process.chdir, chdir); + on(ev, fn) { + this.listeners[ev].push(fn); } - var chdir; - module.exports = patch; - function patch(fs) { - if (constants.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { - patchLchmod(fs); - } - if (!fs.lutimes) { - patchLutimes(fs); - } - fs.chown = chownFix(fs.chown); - fs.fchown = chownFix(fs.fchown); - fs.lchown = chownFix(fs.lchown); - fs.chmod = chmodFix(fs.chmod); - fs.fchmod = chmodFix(fs.fchmod); - fs.lchmod = chmodFix(fs.lchmod); - fs.chownSync = chownFixSync(fs.chownSync); - fs.fchownSync = chownFixSync(fs.fchownSync); - fs.lchownSync = chownFixSync(fs.lchownSync); - fs.chmodSync = chmodFixSync(fs.chmodSync); - fs.fchmodSync = chmodFixSync(fs.fchmodSync); - fs.lchmodSync = chmodFixSync(fs.lchmodSync); - fs.stat = statFix(fs.stat); - fs.fstat = statFix(fs.fstat); - fs.lstat = statFix(fs.lstat); - fs.statSync = statFixSync(fs.statSync); - fs.fstatSync = statFixSync(fs.fstatSync); - fs.lstatSync = statFixSync(fs.lstatSync); - if (fs.chmod && !fs.lchmod) { - fs.lchmod = function(path, mode, cb) { - if (cb) - process.nextTick(cb); - }; - fs.lchmodSync = function() { - }; + removeListener(ev, fn) { + const list = this.listeners[ev]; + const i = list.indexOf(fn); + if (i === -1) { + return; } - if (fs.chown && !fs.lchown) { - fs.lchown = function(path, uid, gid, cb) { - if (cb) - process.nextTick(cb); - }; - fs.lchownSync = function() { - }; + if (i === 0 && list.length === 1) { + list.length = 0; + } else { + list.splice(i, 1); } - if (platform === "win32") { - fs.rename = typeof fs.rename !== "function" ? fs.rename : function(fs$rename) { - function rename(from, to, cb) { - var start = Date.now(); - var backoff = 0; - fs$rename(from, to, function CB(er) { - if (er && (er.code === "EACCES" || er.code === "EPERM" || er.code === "EBUSY") && Date.now() - start < 60000) { - setTimeout(function() { - fs.stat(to, function(stater, st) { - if (stater && stater.code === "ENOENT") - fs$rename(from, to, CB); - else - cb(er); - }); - }, backoff); - if (backoff < 100) - backoff += 10; - return; - } - if (cb) - cb(er); - }); - } - if (Object.setPrototypeOf) - Object.setPrototypeOf(rename, fs$rename); - return rename; - }(fs.rename); + } + emit(ev, code, signal) { + if (this.emitted[ev]) { + return false; } - fs.read = typeof fs.read !== "function" ? fs.read : function(fs$read) { - function read(fd, buffer, offset, length, position, callback_) { - var callback; - if (callback_ && typeof callback_ === "function") { - var eagCounter = 0; - callback = function(er, _2, __) { - if (er && er.code === "EAGAIN" && eagCounter < 10) { - eagCounter++; - return fs$read.call(fs, fd, buffer, offset, length, position, callback); - } - callback_.apply(this, arguments); - }; - } - return fs$read.call(fs, fd, buffer, offset, length, position, callback); - } - if (Object.setPrototypeOf) - Object.setPrototypeOf(read, fs$read); - return read; - }(fs.read); - fs.readSync = typeof fs.readSync !== "function" ? fs.readSync : function(fs$readSync) { - return function(fd, buffer, offset, length, position) { - var eagCounter = 0; - while (true) { - try { - return fs$readSync.call(fs, fd, buffer, offset, length, position); - } catch (er) { - if (er.code === "EAGAIN" && eagCounter < 10) { - eagCounter++; - continue; - } - throw er; - } - } - }; - }(fs.readSync); - function patchLchmod(fs2) { - fs2.lchmod = function(path, mode, callback) { - fs2.open(path, constants.O_WRONLY | constants.O_SYMLINK, mode, function(err, fd) { - if (err) { - if (callback) - callback(err); - return; - } - fs2.fchmod(fd, mode, function(err2) { - fs2.close(fd, function(err22) { - if (callback) - callback(err2 || err22); - }); - }); - }); - }; - fs2.lchmodSync = function(path, mode) { - var fd = fs2.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode); - var threw = true; - var ret; - try { - ret = fs2.fchmodSync(fd, mode); - threw = false; - } finally { - if (threw) { - try { - fs2.closeSync(fd); - } catch (er) { - } - } else { - fs2.closeSync(fd); - } - } - return ret; - }; + this.emitted[ev] = true; + let ret = false; + for (const fn of this.listeners[ev]) { + ret = fn(code, signal) === true || ret; } - function patchLutimes(fs2) { - if (constants.hasOwnProperty("O_SYMLINK") && fs2.futimes) { - fs2.lutimes = function(path, at, mt, cb) { - fs2.open(path, constants.O_SYMLINK, function(er, fd) { - if (er) { - if (cb) - cb(er); - return; - } - fs2.futimes(fd, at, mt, function(er2) { - fs2.close(fd, function(er22) { - if (cb) - cb(er2 || er22); - }); - }); - }); - }; - fs2.lutimesSync = function(path, at, mt) { - var fd = fs2.openSync(path, constants.O_SYMLINK); - var ret; - var threw = true; - try { - ret = fs2.futimesSync(fd, at, mt); - threw = false; - } finally { - if (threw) { - try { - fs2.closeSync(fd); - } catch (er) { - } - } else { - fs2.closeSync(fd); - } - } - return ret; - }; - } else if (fs2.futimes) { - fs2.lutimes = function(_a, _b, _c, cb) { - if (cb) - process.nextTick(cb); - }; - fs2.lutimesSync = function() { - }; - } + if (ev === "exit") { + ret = this.emit("afterExit", code, signal) || ret; } - function chmodFix(orig) { - if (!orig) - return orig; - return function(target, mode, cb) { - return orig.call(fs, target, mode, function(er) { - if (chownErOk(er)) - er = null; - if (cb) - cb.apply(this, arguments); - }); - }; + return ret; + } +} + +class SignalExitBase { +} +var processOk = (process3) => !!process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function", kExitEmitter, global2, ObjectDefineProperty, signalExitWrap = (handler) => { + return { + onExit(cb, opts) { + return handler.onExit(cb, opts); + }, + load() { + return handler.load(); + }, + unload() { + return handler.unload(); } - function chmodFixSync(orig) { - if (!orig) - return orig; - return function(target, mode) { - try { - return orig.call(fs, target, mode); - } catch (er) { - if (!chownErOk(er)) - throw er; - } + }; +}, SignalExitFallback, SignalExit, process3, onExit, load, unload; +var init_mjs = __esm(() => { + init_signals(); + kExitEmitter = Symbol.for("signal-exit emitter"); + global2 = globalThis; + ObjectDefineProperty = Object.defineProperty.bind(Object); + SignalExitFallback = class SignalExitFallback extends SignalExitBase { + onExit() { + return () => { }; } - function chownFix(orig) { - if (!orig) - return orig; - return function(target, uid, gid, cb) { - return orig.call(fs, target, uid, gid, function(er) { - if (chownErOk(er)) - er = null; - if (cb) - cb.apply(this, arguments); - }); - }; + load() { } - function chownFixSync(orig) { - if (!orig) - return orig; - return function(target, uid, gid) { - try { - return orig.call(fs, target, uid, gid); - } catch (er) { - if (!chownErOk(er)) - throw er; - } - }; + unload() { } - function statFix(orig) { - if (!orig) - return orig; - return function(target, options, cb) { - if (typeof options === "function") { - cb = options; - options = null; - } - function callback(er, stats) { - if (stats) { - if (stats.uid < 0) - stats.uid += 4294967296; - if (stats.gid < 0) - stats.gid += 4294967296; + }; + SignalExit = class SignalExit extends SignalExitBase { + #hupSig = process3.platform === "win32" ? "SIGINT" : "SIGHUP"; + #emitter = new Emitter; + #process; + #originalProcessEmit; + #originalProcessReallyExit; + #sigListeners = {}; + #loaded = false; + constructor(process3) { + super(); + this.#process = process3; + this.#sigListeners = {}; + for (const sig of signals) { + this.#sigListeners[sig] = () => { + const listeners = this.#process.listeners(sig); + let { count } = this.#emitter; + const p = process3; + if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") { + count += p.__signal_exit_emitter__.count; } - if (cb) - cb.apply(this, arguments); - } - return options ? orig.call(fs, target, options, callback) : orig.call(fs, target, callback); - }; + if (listeners.length === count) { + this.unload(); + const ret = this.#emitter.emit("exit", null, sig); + const s = sig === "SIGHUP" ? this.#hupSig : sig; + if (!ret) + process3.kill(process3.pid, s); + } + }; + } + this.#originalProcessReallyExit = process3.reallyExit; + this.#originalProcessEmit = process3.emit; } - function statFixSync(orig) { - if (!orig) - return orig; - return function(target, options) { - var stats = options ? orig.call(fs, target, options) : orig.call(fs, target); - if (stats) { - if (stats.uid < 0) - stats.uid += 4294967296; - if (stats.gid < 0) - stats.gid += 4294967296; + onExit(cb, opts) { + if (!processOk(this.#process)) { + return () => { + }; + } + if (this.#loaded === false) { + this.load(); + } + const ev = opts?.alwaysLast ? "afterExit" : "exit"; + this.#emitter.on(ev, cb); + return () => { + this.#emitter.removeListener(ev, cb); + if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) { + this.unload(); } - return stats; }; } - function chownErOk(er) { - if (!er) - return true; - if (er.code === "ENOSYS") - return true; - var nonroot = !process.getuid || process.getuid() !== 0; - if (nonroot) { - if (er.code === "EINVAL" || er.code === "EPERM") - return true; - } - return false; - } - } -}); - -// node_modules/graceful-fs/legacy-streams.js -var require_legacy_streams = __commonJS((exports, module) => { - var Stream = __require("stream").Stream; - module.exports = legacy; - function legacy(fs) { - return { - ReadStream, - WriteStream - }; - function ReadStream(path, options) { - if (!(this instanceof ReadStream)) - return new ReadStream(path, options); - Stream.call(this); - var self2 = this; - this.path = path; - this.fd = null; - this.readable = true; - this.paused = false; - this.flags = "r"; - this.mode = 438; - this.bufferSize = 64 * 1024; - options = options || {}; - var keys = Object.keys(options); - for (var index = 0, length = keys.length;index < length; index++) { - var key = keys[index]; - this[key] = options[key]; + load() { + if (this.#loaded) { + return; } - if (this.encoding) - this.setEncoding(this.encoding); - if (this.start !== undefined) { - if (typeof this.start !== "number") { - throw TypeError("start must be a Number"); - } - if (this.end === undefined) { - this.end = Infinity; - } else if (typeof this.end !== "number") { - throw TypeError("end must be a Number"); - } - if (this.start > this.end) { - throw new Error("start must be <= end"); + this.#loaded = true; + this.#emitter.count += 1; + for (const sig of signals) { + try { + const fn = this.#sigListeners[sig]; + if (fn) + this.#process.on(sig, fn); + } catch (_2) { } - this.pos = this.start; } - if (this.fd !== null) { - process.nextTick(function() { - self2._read(); - }); + this.#process.emit = (ev, ...a) => { + return this.#processEmit(ev, ...a); + }; + this.#process.reallyExit = (code) => { + return this.#processReallyExit(code); + }; + } + unload() { + if (!this.#loaded) { return; } - fs.open(this.path, this.flags, this.mode, function(err, fd) { - if (err) { - self2.emit("error", err); - self2.readable = false; - return; + this.#loaded = false; + signals.forEach((sig) => { + const listener = this.#sigListeners[sig]; + if (!listener) { + throw new Error("Listener not defined for signal: " + sig); + } + try { + this.#process.removeListener(sig, listener); + } catch (_2) { } - self2.fd = fd; - self2.emit("open", fd); - self2._read(); }); + this.#process.emit = this.#originalProcessEmit; + this.#process.reallyExit = this.#originalProcessReallyExit; + this.#emitter.count -= 1; } - function WriteStream(path, options) { - if (!(this instanceof WriteStream)) - return new WriteStream(path, options); - Stream.call(this); - this.path = path; - this.fd = null; - this.writable = true; - this.flags = "w"; - this.encoding = "binary"; - this.mode = 438; - this.bytesWritten = 0; - options = options || {}; - var keys = Object.keys(options); - for (var index = 0, length = keys.length;index < length; index++) { - var key = keys[index]; - this[key] = options[key]; + #processReallyExit(code) { + if (!processOk(this.#process)) { + return 0; } - if (this.start !== undefined) { - if (typeof this.start !== "number") { - throw TypeError("start must be a Number"); - } - if (this.start < 0) { - throw new Error("start must be >= zero"); + this.#process.exitCode = code || 0; + this.#emitter.emit("exit", this.#process.exitCode, null); + return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode); + } + #processEmit(ev, ...args) { + const og = this.#originalProcessEmit; + if (ev === "exit" && processOk(this.#process)) { + if (typeof args[0] === "number") { + this.#process.exitCode = args[0]; } - this.pos = this.start; - } - this.busy = false; - this._queue = []; - if (this.fd === null) { - this._open = fs.open; - this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); - this.flush(); + const ret = og.call(this.#process, ev, ...args); + this.#emitter.emit("exit", this.#process.exitCode, null); + return ret; + } else { + return og.call(this.#process, ev, ...args); } } - } -}); - -// node_modules/graceful-fs/clone.js -var require_clone = __commonJS((exports, module) => { - module.exports = clone; - var getPrototypeOf = Object.getPrototypeOf || function(obj) { - return obj.__proto__; }; - function clone(obj) { - if (obj === null || typeof obj !== "object") - return obj; - if (obj instanceof Object) - var copy = { __proto__: getPrototypeOf(obj) }; - else - var copy = Object.create(null); - Object.getOwnPropertyNames(obj).forEach(function(key) { - Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)); - }); - return copy; - } + process3 = globalThis.process; + ({ + onExit, + load, + unload + } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback)); }); -// node_modules/graceful-fs/graceful-fs.js -var require_graceful_fs = __commonJS((exports, module) => { - var fs = __require("fs"); - var polyfills = require_polyfills(); - var legacy = require_legacy_streams(); - var clone = require_clone(); - var util = __require("util"); - var gracefulQueue; - var previousSymbol; - if (typeof Symbol === "function" && typeof Symbol.for === "function") { - gracefulQueue = Symbol.for("graceful-fs.queue"); - previousSymbol = Symbol.for("graceful-fs.previous"); - } else { - gracefulQueue = "___graceful-fs.queue"; - previousSymbol = "___graceful-fs.previous"; - } - function noop() { - } - function publishQueue(context, queue2) { - Object.defineProperty(context, gracefulQueue, { - get: function() { - return queue2; - } - }); - } - var debug = noop; - if (util.debuglog) - debug = util.debuglog("gfs4"); - else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) - debug = function() { - var m = util.format.apply(util, arguments); - m = "GFS4: " + m.split(/\n/).join(` -GFS4: `); - console.error(m); - }; - if (!fs[gracefulQueue]) { - queue = global[gracefulQueue] || []; - publishQueue(fs, queue); - fs.close = function(fs$close) { - function close(fd, cb) { - return fs$close.call(fs, fd, function(err) { - if (!err) { - resetQueue(); - } - if (typeof cb === "function") - cb.apply(this, arguments); - }); - } - Object.defineProperty(close, previousSymbol, { - value: fs$close - }); - return close; - }(fs.close); - fs.closeSync = function(fs$closeSync) { - function closeSync(fd) { - fs$closeSync.apply(fs, arguments); - resetQueue(); - } - Object.defineProperty(closeSync, previousSymbol, { - value: fs$closeSync - }); - return closeSync; - }(fs.closeSync); - if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) { - process.on("exit", function() { - debug(fs[gracefulQueue]); - __require("assert").equal(fs[gracefulQueue].length, 0); - }); - } - } - var queue; - if (!global[gracefulQueue]) { - publishQueue(global, fs[gracefulQueue]); - } - module.exports = patch(clone(fs)); - if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { - module.exports = patch(fs); - fs.__patched = true; - } - function patch(fs2) { - polyfills(fs2); - fs2.gracefulify = patch; - fs2.createReadStream = createReadStream; - fs2.createWriteStream = createWriteStream; - var fs$readFile = fs2.readFile; - fs2.readFile = readFile; - function readFile(path, options, cb) { - if (typeof options === "function") - cb = options, options = null; - return go$readFile(path, options, cb); - function go$readFile(path2, options2, cb2, startTime) { - return fs$readFile(path2, options2, function(err) { - if (err && (err.code === "EMFILE" || err.code === "ENFILE")) - enqueue([go$readFile, [path2, options2, cb2], err, startTime || Date.now(), Date.now()]); - else { - if (typeof cb2 === "function") - cb2.apply(this, arguments); - } - }); - } - } - var fs$writeFile = fs2.writeFile; - fs2.writeFile = writeFile; - function writeFile(path, data, options, cb) { - if (typeof options === "function") - cb = options, options = null; - return go$writeFile(path, data, options, cb); - function go$writeFile(path2, data2, options2, cb2, startTime) { - return fs$writeFile(path2, data2, options2, function(err) { - if (err && (err.code === "EMFILE" || err.code === "ENFILE")) - enqueue([go$writeFile, [path2, data2, options2, cb2], err, startTime || Date.now(), Date.now()]); - else { - if (typeof cb2 === "function") - cb2.apply(this, arguments); - } - }); - } - } - var fs$appendFile = fs2.appendFile; - if (fs$appendFile) - fs2.appendFile = appendFile; - function appendFile(path, data, options, cb) { - if (typeof options === "function") - cb = options, options = null; - return go$appendFile(path, data, options, cb); - function go$appendFile(path2, data2, options2, cb2, startTime) { - return fs$appendFile(path2, data2, options2, function(err) { - if (err && (err.code === "EMFILE" || err.code === "ENFILE")) - enqueue([go$appendFile, [path2, data2, options2, cb2], err, startTime || Date.now(), Date.now()]); - else { - if (typeof cb2 === "function") - cb2.apply(this, arguments); - } - }); - } - } - var fs$copyFile = fs2.copyFile; - if (fs$copyFile) - fs2.copyFile = copyFile; - function copyFile(src, dest, flags, cb) { - if (typeof flags === "function") { - cb = flags; - flags = 0; - } - return go$copyFile(src, dest, flags, cb); - function go$copyFile(src2, dest2, flags2, cb2, startTime) { - return fs$copyFile(src2, dest2, flags2, function(err) { - if (err && (err.code === "EMFILE" || err.code === "ENFILE")) - enqueue([go$copyFile, [src2, dest2, flags2, cb2], err, startTime || Date.now(), Date.now()]); - else { - if (typeof cb2 === "function") - cb2.apply(this, arguments); - } - }); - } - } - var fs$readdir = fs2.readdir; - fs2.readdir = readdir; - var noReaddirOptionVersions = /^v[0-5]\./; - function readdir(path, options, cb) { - if (typeof options === "function") - cb = options, options = null; - var go$readdir = noReaddirOptionVersions.test(process.version) ? function go$readdir(path2, options2, cb2, startTime) { - return fs$readdir(path2, fs$readdirCallback(path2, options2, cb2, startTime)); - } : function go$readdir(path2, options2, cb2, startTime) { - return fs$readdir(path2, options2, fs$readdirCallback(path2, options2, cb2, startTime)); - }; - return go$readdir(path, options, cb); - function fs$readdirCallback(path2, options2, cb2, startTime) { - return function(err, files) { - if (err && (err.code === "EMFILE" || err.code === "ENFILE")) - enqueue([ - go$readdir, - [path2, options2, cb2], - err, - startTime || Date.now(), - Date.now() - ]); - else { - if (files && files.sort) - files.sort(); - if (typeof cb2 === "function") - cb2.call(this, err, files); - } - }; - } - } - if (process.version.substr(0, 4) === "v0.8") { - var legStreams = legacy(fs2); - ReadStream = legStreams.ReadStream; - WriteStream = legStreams.WriteStream; - } - var fs$ReadStream = fs2.ReadStream; - if (fs$ReadStream) { - ReadStream.prototype = Object.create(fs$ReadStream.prototype); - ReadStream.prototype.open = ReadStream$open; - } - var fs$WriteStream = fs2.WriteStream; - if (fs$WriteStream) { - WriteStream.prototype = Object.create(fs$WriteStream.prototype); - WriteStream.prototype.open = WriteStream$open; - } - Object.defineProperty(fs2, "ReadStream", { - get: function() { - return ReadStream; - }, - set: function(val) { - ReadStream = val; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(fs2, "WriteStream", { - get: function() { - return WriteStream; - }, - set: function(val) { - WriteStream = val; - }, - enumerable: true, - configurable: true - }); - var FileReadStream = ReadStream; - Object.defineProperty(fs2, "FileReadStream", { - get: function() { - return FileReadStream; - }, - set: function(val) { - FileReadStream = val; - }, - enumerable: true, - configurable: true - }); - var FileWriteStream = WriteStream; - Object.defineProperty(fs2, "FileWriteStream", { - get: function() { - return FileWriteStream; - }, - set: function(val) { - FileWriteStream = val; - }, - enumerable: true, - configurable: true - }); - function ReadStream(path, options) { - if (this instanceof ReadStream) - return fs$ReadStream.apply(this, arguments), this; - else - return ReadStream.apply(Object.create(ReadStream.prototype), arguments); - } - function ReadStream$open() { - var that = this; - open(that.path, that.flags, that.mode, function(err, fd) { - if (err) { - if (that.autoClose) - that.destroy(); - that.emit("error", err); - } else { - that.fd = fd; - that.emit("open", fd); - that.read(); - } - }); - } - function WriteStream(path, options) { - if (this instanceof WriteStream) - return fs$WriteStream.apply(this, arguments), this; - else - return WriteStream.apply(Object.create(WriteStream.prototype), arguments); - } - function WriteStream$open() { - var that = this; - open(that.path, that.flags, that.mode, function(err, fd) { - if (err) { - that.destroy(); - that.emit("error", err); - } else { - that.fd = fd; - that.emit("open", fd); - } - }); - } - function createReadStream(path, options) { - return new fs2.ReadStream(path, options); - } - function createWriteStream(path, options) { - return new fs2.WriteStream(path, options); - } - var fs$open = fs2.open; - fs2.open = open; - function open(path, flags, mode, cb) { - if (typeof mode === "function") - cb = mode, mode = null; - return go$open(path, flags, mode, cb); - function go$open(path2, flags2, mode2, cb2, startTime) { - return fs$open(path2, flags2, mode2, function(err, fd) { - if (err && (err.code === "EMFILE" || err.code === "ENFILE")) - enqueue([go$open, [path2, flags2, mode2, cb2], err, startTime || Date.now(), Date.now()]); - else { - if (typeof cb2 === "function") - cb2.apply(this, arguments); - } - }); - } - } - return fs2; - } - function enqueue(elem) { - debug("ENQUEUE", elem[0].name, elem[1]); - fs[gracefulQueue].push(elem); - retry(); - } - var retryTimer; - function resetQueue() { - var now = Date.now(); - for (var i = 0;i < fs[gracefulQueue].length; ++i) { - if (fs[gracefulQueue][i].length > 2) { - fs[gracefulQueue][i][3] = now; - fs[gracefulQueue][i][4] = now; - } - } - retry(); - } - function retry() { - clearTimeout(retryTimer); - retryTimer = undefined; - if (fs[gracefulQueue].length === 0) - return; - var elem = fs[gracefulQueue].shift(); - var fn = elem[0]; - var args = elem[1]; - var err = elem[2]; - var startTime = elem[3]; - var lastTime = elem[4]; - if (startTime === undefined) { - debug("RETRY", fn.name, args); - fn.apply(null, args); - } else if (Date.now() - startTime >= 60000) { - debug("TIMEOUT", fn.name, args); - var cb = args.pop(); - if (typeof cb === "function") - cb.call(null, err); - } else { - var sinceAttempt = Date.now() - lastTime; - var sinceStart = Math.max(lastTime - startTime, 1); - var desiredDelay = Math.min(sinceStart * 1.2, 100); - if (sinceAttempt >= desiredDelay) { - debug("RETRY", fn.name, args); - fn.apply(null, args.concat([startTime])); - } else { - fs[gracefulQueue].push(elem); - } - } - if (retryTimer === undefined) { - retryTimer = setTimeout(retry, 0); - } - } -}); - -// node_modules/fs-extra/lib/fs/index.js -var require_fs = __commonJS((exports) => { - var u = require_universalify().fromCallback; - var fs = require_graceful_fs(); - var api = [ - "access", - "appendFile", - "chmod", - "chown", - "close", - "copyFile", - "cp", - "fchmod", - "fchown", - "fdatasync", - "fstat", - "fsync", - "ftruncate", - "futimes", - "glob", - "lchmod", - "lchown", - "lutimes", - "link", - "lstat", - "mkdir", - "mkdtemp", - "open", - "opendir", - "readdir", - "readFile", - "readlink", - "realpath", - "rename", - "rm", - "rmdir", - "stat", - "statfs", - "symlink", - "truncate", - "unlink", - "utimes", - "writeFile" - ].filter((key) => { - return typeof fs[key] === "function"; - }); - Object.assign(exports, fs); - api.forEach((method) => { - exports[method] = u(fs[method]); - }); - exports.exists = function(filename, callback) { - if (typeof callback === "function") { - return fs.exists(filename, callback); - } - return new Promise((resolve) => { - return fs.exists(filename, resolve); - }); - }; - exports.read = function(fd, buffer, offset, length, position, callback) { - if (typeof callback === "function") { - return fs.read(fd, buffer, offset, length, position, callback); - } - return new Promise((resolve, reject) => { - fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer2) => { - if (err) - return reject(err); - resolve({ bytesRead, buffer: buffer2 }); - }); - }); - }; - exports.write = function(fd, buffer, ...args) { - if (typeof args[args.length - 1] === "function") { - return fs.write(fd, buffer, ...args); - } - return new Promise((resolve, reject) => { - fs.write(fd, buffer, ...args, (err, bytesWritten, buffer2) => { - if (err) - return reject(err); - resolve({ bytesWritten, buffer: buffer2 }); - }); - }); - }; - exports.readv = function(fd, buffers, ...args) { - if (typeof args[args.length - 1] === "function") { - return fs.readv(fd, buffers, ...args); - } - return new Promise((resolve, reject) => { - fs.readv(fd, buffers, ...args, (err, bytesRead, buffers2) => { - if (err) - return reject(err); - resolve({ bytesRead, buffers: buffers2 }); - }); - }); - }; - exports.writev = function(fd, buffers, ...args) { - if (typeof args[args.length - 1] === "function") { - return fs.writev(fd, buffers, ...args); - } - return new Promise((resolve, reject) => { - fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers2) => { - if (err) - return reject(err); - resolve({ bytesWritten, buffers: buffers2 }); - }); - }); - }; - if (typeof fs.realpath.native === "function") { - exports.realpath.native = u(fs.realpath.native); - } else { - process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?", "Warning", "fs-extra-WARN0003"); - } -}); - -// node_modules/fs-extra/lib/mkdirs/utils.js -var require_utils = __commonJS((exports, module) => { - var path = __require("path"); - exports.checkPath = function checkPath(pth) { - if (process.platform === "win32") { - const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, "")); - if (pathHasInvalidWinCharacters) { - const error = new Error(`Path contains invalid characters: ${pth}`); - error.code = "EINVAL"; - throw error; - } - } - }; -}); - -// node_modules/fs-extra/lib/mkdirs/make-dir.js -var require_make_dir = __commonJS((exports, module) => { - var fs = require_fs(); - var { checkPath } = require_utils(); - var getMode = (options) => { - const defaults = { mode: 511 }; - if (typeof options === "number") - return options; - return { ...defaults, ...options }.mode; - }; - exports.makeDir = async (dir, options) => { - checkPath(dir); - return fs.mkdir(dir, { - mode: getMode(options), - recursive: true - }); - }; - exports.makeDirSync = (dir, options) => { - checkPath(dir); - return fs.mkdirSync(dir, { - mode: getMode(options), - recursive: true - }); - }; -}); - -// node_modules/fs-extra/lib/mkdirs/index.js -var require_mkdirs = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - var { makeDir: _makeDir, makeDirSync } = require_make_dir(); - var makeDir = u(_makeDir); - module.exports = { - mkdirs: makeDir, - mkdirsSync: makeDirSync, - mkdirp: makeDir, - mkdirpSync: makeDirSync, - ensureDir: makeDir, - ensureDirSync: makeDirSync - }; -}); - -// node_modules/fs-extra/lib/path-exists/index.js -var require_path_exists = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - var fs = require_fs(); - function pathExists(path) { - return fs.access(path).then(() => true).catch(() => false); - } - module.exports = { - pathExists: u(pathExists), - pathExistsSync: fs.existsSync - }; -}); - -// node_modules/fs-extra/lib/util/utimes.js -var require_utimes = __commonJS((exports, module) => { - var fs = require_fs(); - var u = require_universalify().fromPromise; - async function utimesMillis(path, atime, mtime) { - const fd = await fs.open(path, "r+"); - let closeErr = null; - try { - await fs.futimes(fd, atime, mtime); - } finally { - try { - await fs.close(fd); - } catch (e) { - closeErr = e; - } - } - if (closeErr) { - throw closeErr; - } - } - function utimesMillisSync(path, atime, mtime) { - const fd = fs.openSync(path, "r+"); - fs.futimesSync(fd, atime, mtime); - return fs.closeSync(fd); - } +// node_modules/cli-spinners/spinners.json +var require_spinners = __commonJS((exports, module) => { module.exports = { - utimesMillis: u(utimesMillis), - utimesMillisSync - }; -}); - -// node_modules/fs-extra/lib/util/stat.js -var require_stat = __commonJS((exports, module) => { - var fs = require_fs(); - var path = __require("path"); - var u = require_universalify().fromPromise; - function getStats(src, dest, opts) { - const statFunc = opts.dereference ? (file) => fs.stat(file, { bigint: true }) : (file) => fs.lstat(file, { bigint: true }); - return Promise.all([ - statFunc(src), - statFunc(dest).catch((err) => { - if (err.code === "ENOENT") - return null; - throw err; - }) - ]).then(([srcStat, destStat]) => ({ srcStat, destStat })); - } - function getStatsSync(src, dest, opts) { - let destStat; - const statFunc = opts.dereference ? (file) => fs.statSync(file, { bigint: true }) : (file) => fs.lstatSync(file, { bigint: true }); - const srcStat = statFunc(src); - try { - destStat = statFunc(dest); - } catch (err) { - if (err.code === "ENOENT") - return { srcStat, destStat: null }; - throw err; - } - return { srcStat, destStat }; - } - async function checkPaths(src, dest, funcName, opts) { - const { srcStat, destStat } = await getStats(src, dest, opts); - if (destStat) { - if (areIdentical(srcStat, destStat)) { - const srcBaseName = path.basename(src); - const destBaseName = path.basename(dest); - if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) { - return { srcStat, destStat, isChangingCase: true }; - } - throw new Error("Source and destination must not be the same."); - } - if (srcStat.isDirectory() && !destStat.isDirectory()) { - throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`); - } - if (!srcStat.isDirectory() && destStat.isDirectory()) { - throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`); - } - } - if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { - throw new Error(errMsg(src, dest, funcName)); - } - return { srcStat, destStat }; - } - function checkPathsSync(src, dest, funcName, opts) { - const { srcStat, destStat } = getStatsSync(src, dest, opts); - if (destStat) { - if (areIdentical(srcStat, destStat)) { - const srcBaseName = path.basename(src); - const destBaseName = path.basename(dest); - if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) { - return { srcStat, destStat, isChangingCase: true }; - } - throw new Error("Source and destination must not be the same."); - } - if (srcStat.isDirectory() && !destStat.isDirectory()) { - throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`); - } - if (!srcStat.isDirectory() && destStat.isDirectory()) { - throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`); - } - } - if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { - throw new Error(errMsg(src, dest, funcName)); - } - return { srcStat, destStat }; - } - async function checkParentPaths(src, srcStat, dest, funcName) { - const srcParent = path.resolve(path.dirname(src)); - const destParent = path.resolve(path.dirname(dest)); - if (destParent === srcParent || destParent === path.parse(destParent).root) - return; - let destStat; - try { - destStat = await fs.stat(destParent, { bigint: true }); - } catch (err) { - if (err.code === "ENOENT") - return; - throw err; - } - if (areIdentical(srcStat, destStat)) { - throw new Error(errMsg(src, dest, funcName)); - } - return checkParentPaths(src, srcStat, destParent, funcName); - } - function checkParentPathsSync(src, srcStat, dest, funcName) { - const srcParent = path.resolve(path.dirname(src)); - const destParent = path.resolve(path.dirname(dest)); - if (destParent === srcParent || destParent === path.parse(destParent).root) - return; - let destStat; - try { - destStat = fs.statSync(destParent, { bigint: true }); - } catch (err) { - if (err.code === "ENOENT") - return; - throw err; - } - if (areIdentical(srcStat, destStat)) { - throw new Error(errMsg(src, dest, funcName)); - } - return checkParentPathsSync(src, srcStat, destParent, funcName); - } - function areIdentical(srcStat, destStat) { - return destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev; - } - function isSrcSubdir(src, dest) { - const srcArr = path.resolve(src).split(path.sep).filter((i) => i); - const destArr = path.resolve(dest).split(path.sep).filter((i) => i); - return srcArr.every((cur, i) => destArr[i] === cur); - } - function errMsg(src, dest, funcName) { - return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`; - } - module.exports = { - checkPaths: u(checkPaths), - checkPathsSync, - checkParentPaths: u(checkParentPaths), - checkParentPathsSync, - isSrcSubdir, - areIdentical - }; -}); - -// node_modules/fs-extra/lib/copy/copy.js -var require_copy = __commonJS((exports, module) => { - var fs = require_fs(); - var path = __require("path"); - var { mkdirs } = require_mkdirs(); - var { pathExists } = require_path_exists(); - var { utimesMillis } = require_utimes(); - var stat = require_stat(); - async function copy(src, dest, opts = {}) { - if (typeof opts === "function") { - opts = { filter: opts }; - } - opts.clobber = "clobber" in opts ? !!opts.clobber : true; - opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber; - if (opts.preserveTimestamps && process.arch === "ia32") { - process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; - -` + "\tsee https://github.com/jprichardson/node-fs-extra/issues/269", "Warning", "fs-extra-WARN0001"); - } - const { srcStat, destStat } = await stat.checkPaths(src, dest, "copy", opts); - await stat.checkParentPaths(src, srcStat, dest, "copy"); - const include = await runFilter(src, dest, opts); - if (!include) - return; - const destParent = path.dirname(dest); - const dirExists = await pathExists(destParent); - if (!dirExists) { - await mkdirs(destParent); - } - await getStatsAndPerformCopy(destStat, src, dest, opts); - } - async function runFilter(src, dest, opts) { - if (!opts.filter) - return true; - return opts.filter(src, dest); - } - async function getStatsAndPerformCopy(destStat, src, dest, opts) { - const statFn = opts.dereference ? fs.stat : fs.lstat; - const srcStat = await statFn(src); - if (srcStat.isDirectory()) - return onDir(srcStat, destStat, src, dest, opts); - if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) - return onFile(srcStat, destStat, src, dest, opts); - if (srcStat.isSymbolicLink()) - return onLink(destStat, src, dest, opts); - if (srcStat.isSocket()) - throw new Error(`Cannot copy a socket file: ${src}`); - if (srcStat.isFIFO()) - throw new Error(`Cannot copy a FIFO pipe: ${src}`); - throw new Error(`Unknown file: ${src}`); - } - async function onFile(srcStat, destStat, src, dest, opts) { - if (!destStat) - return copyFile(srcStat, src, dest, opts); - if (opts.overwrite) { - await fs.unlink(dest); - return copyFile(srcStat, src, dest, opts); - } - if (opts.errorOnExist) { - throw new Error(`'${dest}' already exists`); - } - } - async function copyFile(srcStat, src, dest, opts) { - await fs.copyFile(src, dest); - if (opts.preserveTimestamps) { - if (fileIsNotWritable(srcStat.mode)) { - await makeFileWritable(dest, srcStat.mode); - } - const updatedSrcStat = await fs.stat(src); - await utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime); - } - return fs.chmod(dest, srcStat.mode); - } - function fileIsNotWritable(srcMode) { - return (srcMode & 128) === 0; - } - function makeFileWritable(dest, srcMode) { - return fs.chmod(dest, srcMode | 128); - } - async function onDir(srcStat, destStat, src, dest, opts) { - if (!destStat) { - await fs.mkdir(dest); - } - const promises = []; - for await (const item of await fs.opendir(src)) { - const srcItem = path.join(src, item.name); - const destItem = path.join(dest, item.name); - promises.push(runFilter(srcItem, destItem, opts).then((include) => { - if (include) { - return stat.checkPaths(srcItem, destItem, "copy", opts).then(({ destStat: destStat2 }) => { - return getStatsAndPerformCopy(destStat2, srcItem, destItem, opts); - }); - } - })); - } - await Promise.all(promises); - if (!destStat) { - await fs.chmod(dest, srcStat.mode); - } - } - async function onLink(destStat, src, dest, opts) { - let resolvedSrc = await fs.readlink(src); - if (opts.dereference) { - resolvedSrc = path.resolve(process.cwd(), resolvedSrc); - } - if (!destStat) { - return fs.symlink(resolvedSrc, dest); - } - let resolvedDest = null; - try { - resolvedDest = await fs.readlink(dest); - } catch (e) { - if (e.code === "EINVAL" || e.code === "UNKNOWN") - return fs.symlink(resolvedSrc, dest); - throw e; - } - if (opts.dereference) { - resolvedDest = path.resolve(process.cwd(), resolvedDest); - } - if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { - throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`); - } - if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) { - throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`); - } - await fs.unlink(dest); - return fs.symlink(resolvedSrc, dest); - } - module.exports = copy; -}); - -// node_modules/fs-extra/lib/copy/copy-sync.js -var require_copy_sync = __commonJS((exports, module) => { - var fs = require_graceful_fs(); - var path = __require("path"); - var mkdirsSync = require_mkdirs().mkdirsSync; - var utimesMillisSync = require_utimes().utimesMillisSync; - var stat = require_stat(); - function copySync(src, dest, opts) { - if (typeof opts === "function") { - opts = { filter: opts }; - } - opts = opts || {}; - opts.clobber = "clobber" in opts ? !!opts.clobber : true; - opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber; - if (opts.preserveTimestamps && process.arch === "ia32") { - process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; - -` + "\tsee https://github.com/jprichardson/node-fs-extra/issues/269", "Warning", "fs-extra-WARN0002"); - } - const { srcStat, destStat } = stat.checkPathsSync(src, dest, "copy", opts); - stat.checkParentPathsSync(src, srcStat, dest, "copy"); - if (opts.filter && !opts.filter(src, dest)) - return; - const destParent = path.dirname(dest); - if (!fs.existsSync(destParent)) - mkdirsSync(destParent); - return getStats(destStat, src, dest, opts); - } - function getStats(destStat, src, dest, opts) { - const statSync = opts.dereference ? fs.statSync : fs.lstatSync; - const srcStat = statSync(src); - if (srcStat.isDirectory()) - return onDir(srcStat, destStat, src, dest, opts); - else if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) - return onFile(srcStat, destStat, src, dest, opts); - else if (srcStat.isSymbolicLink()) - return onLink(destStat, src, dest, opts); - else if (srcStat.isSocket()) - throw new Error(`Cannot copy a socket file: ${src}`); - else if (srcStat.isFIFO()) - throw new Error(`Cannot copy a FIFO pipe: ${src}`); - throw new Error(`Unknown file: ${src}`); - } - function onFile(srcStat, destStat, src, dest, opts) { - if (!destStat) - return copyFile(srcStat, src, dest, opts); - return mayCopyFile(srcStat, src, dest, opts); - } - function mayCopyFile(srcStat, src, dest, opts) { - if (opts.overwrite) { - fs.unlinkSync(dest); - return copyFile(srcStat, src, dest, opts); - } else if (opts.errorOnExist) { - throw new Error(`'${dest}' already exists`); - } - } - function copyFile(srcStat, src, dest, opts) { - fs.copyFileSync(src, dest); - if (opts.preserveTimestamps) - handleTimestamps(srcStat.mode, src, dest); - return setDestMode(dest, srcStat.mode); - } - function handleTimestamps(srcMode, src, dest) { - if (fileIsNotWritable(srcMode)) - makeFileWritable(dest, srcMode); - return setDestTimestamps(src, dest); - } - function fileIsNotWritable(srcMode) { - return (srcMode & 128) === 0; - } - function makeFileWritable(dest, srcMode) { - return setDestMode(dest, srcMode | 128); - } - function setDestMode(dest, srcMode) { - return fs.chmodSync(dest, srcMode); - } - function setDestTimestamps(src, dest) { - const updatedSrcStat = fs.statSync(src); - return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime); - } - function onDir(srcStat, destStat, src, dest, opts) { - if (!destStat) - return mkDirAndCopy(srcStat.mode, src, dest, opts); - return copyDir(src, dest, opts); - } - function mkDirAndCopy(srcMode, src, dest, opts) { - fs.mkdirSync(dest); - copyDir(src, dest, opts); - return setDestMode(dest, srcMode); - } - function copyDir(src, dest, opts) { - const dir = fs.opendirSync(src); - try { - let dirent; - while ((dirent = dir.readSync()) !== null) { - copyDirItem(dirent.name, src, dest, opts); - } - } finally { - dir.closeSync(); - } - } - function copyDirItem(item, src, dest, opts) { - const srcItem = path.join(src, item); - const destItem = path.join(dest, item); - if (opts.filter && !opts.filter(srcItem, destItem)) - return; - const { destStat } = stat.checkPathsSync(srcItem, destItem, "copy", opts); - return getStats(destStat, srcItem, destItem, opts); - } - function onLink(destStat, src, dest, opts) { - let resolvedSrc = fs.readlinkSync(src); - if (opts.dereference) { - resolvedSrc = path.resolve(process.cwd(), resolvedSrc); - } - if (!destStat) { - return fs.symlinkSync(resolvedSrc, dest); - } else { - let resolvedDest; - try { - resolvedDest = fs.readlinkSync(dest); - } catch (err) { - if (err.code === "EINVAL" || err.code === "UNKNOWN") - return fs.symlinkSync(resolvedSrc, dest); - throw err; - } - if (opts.dereference) { - resolvedDest = path.resolve(process.cwd(), resolvedDest); - } - if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { - throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`); - } - if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) { - throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`); - } - return copyLink(resolvedSrc, dest); - } - } - function copyLink(resolvedSrc, dest) { - fs.unlinkSync(dest); - return fs.symlinkSync(resolvedSrc, dest); - } - module.exports = copySync; -}); - -// node_modules/fs-extra/lib/copy/index.js -var require_copy2 = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - module.exports = { - copy: u(require_copy()), - copySync: require_copy_sync() - }; -}); - -// node_modules/fs-extra/lib/remove/index.js -var require_remove = __commonJS((exports, module) => { - var fs = require_graceful_fs(); - var u = require_universalify().fromCallback; - function remove(path, callback) { - fs.rm(path, { recursive: true, force: true }, callback); - } - function removeSync(path) { - fs.rmSync(path, { recursive: true, force: true }); - } - module.exports = { - remove: u(remove), - removeSync - }; -}); - -// node_modules/fs-extra/lib/empty/index.js -var require_empty = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - var fs = require_fs(); - var path = __require("path"); - var mkdir = require_mkdirs(); - var remove = require_remove(); - var emptyDir = u(async function emptyDir(dir) { - let items; - try { - items = await fs.readdir(dir); - } catch { - return mkdir.mkdirs(dir); - } - return Promise.all(items.map((item) => remove.remove(path.join(dir, item)))); - }); - function emptyDirSync(dir) { - let items; - try { - items = fs.readdirSync(dir); - } catch { - return mkdir.mkdirsSync(dir); - } - items.forEach((item) => { - item = path.join(dir, item); - remove.removeSync(item); - }); - } - module.exports = { - emptyDirSync, - emptydirSync: emptyDirSync, - emptyDir, - emptydir: emptyDir - }; -}); - -// node_modules/fs-extra/lib/ensure/file.js -var require_file = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - var path = __require("path"); - var fs = require_fs(); - var mkdir = require_mkdirs(); - async function createFile(file) { - let stats; - try { - stats = await fs.stat(file); - } catch { - } - if (stats && stats.isFile()) - return; - const dir = path.dirname(file); - let dirStats = null; - try { - dirStats = await fs.stat(dir); - } catch (err) { - if (err.code === "ENOENT") { - await mkdir.mkdirs(dir); - await fs.writeFile(file, ""); - return; - } else { - throw err; - } - } - if (dirStats.isDirectory()) { - await fs.writeFile(file, ""); - } else { - await fs.readdir(dir); - } - } - function createFileSync(file) { - let stats; - try { - stats = fs.statSync(file); - } catch { - } - if (stats && stats.isFile()) - return; - const dir = path.dirname(file); - try { - if (!fs.statSync(dir).isDirectory()) { - fs.readdirSync(dir); - } - } catch (err) { - if (err && err.code === "ENOENT") - mkdir.mkdirsSync(dir); - else - throw err; - } - fs.writeFileSync(file, ""); - } - module.exports = { - createFile: u(createFile), - createFileSync - }; -}); - -// node_modules/fs-extra/lib/ensure/link.js -var require_link = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - var path = __require("path"); - var fs = require_fs(); - var mkdir = require_mkdirs(); - var { pathExists } = require_path_exists(); - var { areIdentical } = require_stat(); - async function createLink(srcpath, dstpath) { - let dstStat; - try { - dstStat = await fs.lstat(dstpath); - } catch { - } - let srcStat; - try { - srcStat = await fs.lstat(srcpath); - } catch (err) { - err.message = err.message.replace("lstat", "ensureLink"); - throw err; - } - if (dstStat && areIdentical(srcStat, dstStat)) - return; - const dir = path.dirname(dstpath); - const dirExists = await pathExists(dir); - if (!dirExists) { - await mkdir.mkdirs(dir); - } - await fs.link(srcpath, dstpath); - } - function createLinkSync(srcpath, dstpath) { - let dstStat; - try { - dstStat = fs.lstatSync(dstpath); - } catch { - } - try { - const srcStat = fs.lstatSync(srcpath); - if (dstStat && areIdentical(srcStat, dstStat)) - return; - } catch (err) { - err.message = err.message.replace("lstat", "ensureLink"); - throw err; - } - const dir = path.dirname(dstpath); - const dirExists = fs.existsSync(dir); - if (dirExists) - return fs.linkSync(srcpath, dstpath); - mkdir.mkdirsSync(dir); - return fs.linkSync(srcpath, dstpath); - } - module.exports = { - createLink: u(createLink), - createLinkSync - }; -}); - -// node_modules/fs-extra/lib/ensure/symlink-paths.js -var require_symlink_paths = __commonJS((exports, module) => { - var path = __require("path"); - var fs = require_fs(); - var { pathExists } = require_path_exists(); - var u = require_universalify().fromPromise; - async function symlinkPaths(srcpath, dstpath) { - if (path.isAbsolute(srcpath)) { - try { - await fs.lstat(srcpath); - } catch (err) { - err.message = err.message.replace("lstat", "ensureSymlink"); - throw err; - } - return { - toCwd: srcpath, - toDst: srcpath - }; - } - const dstdir = path.dirname(dstpath); - const relativeToDst = path.join(dstdir, srcpath); - const exists = await pathExists(relativeToDst); - if (exists) { - return { - toCwd: relativeToDst, - toDst: srcpath - }; - } - try { - await fs.lstat(srcpath); - } catch (err) { - err.message = err.message.replace("lstat", "ensureSymlink"); - throw err; - } - return { - toCwd: srcpath, - toDst: path.relative(dstdir, srcpath) - }; - } - function symlinkPathsSync(srcpath, dstpath) { - if (path.isAbsolute(srcpath)) { - const exists2 = fs.existsSync(srcpath); - if (!exists2) - throw new Error("absolute srcpath does not exist"); - return { - toCwd: srcpath, - toDst: srcpath - }; - } - const dstdir = path.dirname(dstpath); - const relativeToDst = path.join(dstdir, srcpath); - const exists = fs.existsSync(relativeToDst); - if (exists) { - return { - toCwd: relativeToDst, - toDst: srcpath - }; - } - const srcExists = fs.existsSync(srcpath); - if (!srcExists) - throw new Error("relative srcpath does not exist"); - return { - toCwd: srcpath, - toDst: path.relative(dstdir, srcpath) - }; - } - module.exports = { - symlinkPaths: u(symlinkPaths), - symlinkPathsSync - }; -}); - -// node_modules/fs-extra/lib/ensure/symlink-type.js -var require_symlink_type = __commonJS((exports, module) => { - var fs = require_fs(); - var u = require_universalify().fromPromise; - async function symlinkType(srcpath, type) { - if (type) - return type; - let stats; - try { - stats = await fs.lstat(srcpath); - } catch { - return "file"; - } - return stats && stats.isDirectory() ? "dir" : "file"; - } - function symlinkTypeSync(srcpath, type) { - if (type) - return type; - let stats; - try { - stats = fs.lstatSync(srcpath); - } catch { - return "file"; - } - return stats && stats.isDirectory() ? "dir" : "file"; - } - module.exports = { - symlinkType: u(symlinkType), - symlinkTypeSync - }; -}); - -// node_modules/fs-extra/lib/ensure/symlink.js -var require_symlink = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - var path = __require("path"); - var fs = require_fs(); - var { mkdirs, mkdirsSync } = require_mkdirs(); - var { symlinkPaths, symlinkPathsSync } = require_symlink_paths(); - var { symlinkType, symlinkTypeSync } = require_symlink_type(); - var { pathExists } = require_path_exists(); - var { areIdentical } = require_stat(); - async function createSymlink(srcpath, dstpath, type) { - let stats; - try { - stats = await fs.lstat(dstpath); - } catch { - } - if (stats && stats.isSymbolicLink()) { - const [srcStat, dstStat] = await Promise.all([ - fs.stat(srcpath), - fs.stat(dstpath) - ]); - if (areIdentical(srcStat, dstStat)) - return; - } - const relative = await symlinkPaths(srcpath, dstpath); - srcpath = relative.toDst; - const toType = await symlinkType(relative.toCwd, type); - const dir = path.dirname(dstpath); - if (!await pathExists(dir)) { - await mkdirs(dir); - } - return fs.symlink(srcpath, dstpath, toType); - } - function createSymlinkSync(srcpath, dstpath, type) { - let stats; - try { - stats = fs.lstatSync(dstpath); - } catch { - } - if (stats && stats.isSymbolicLink()) { - const srcStat = fs.statSync(srcpath); - const dstStat = fs.statSync(dstpath); - if (areIdentical(srcStat, dstStat)) - return; - } - const relative = symlinkPathsSync(srcpath, dstpath); - srcpath = relative.toDst; - type = symlinkTypeSync(relative.toCwd, type); - const dir = path.dirname(dstpath); - const exists = fs.existsSync(dir); - if (exists) - return fs.symlinkSync(srcpath, dstpath, type); - mkdirsSync(dir); - return fs.symlinkSync(srcpath, dstpath, type); - } - module.exports = { - createSymlink: u(createSymlink), - createSymlinkSync - }; -}); - -// node_modules/fs-extra/lib/ensure/index.js -var require_ensure = __commonJS((exports, module) => { - var { createFile, createFileSync } = require_file(); - var { createLink, createLinkSync } = require_link(); - var { createSymlink, createSymlinkSync } = require_symlink(); - module.exports = { - createFile, - createFileSync, - ensureFile: createFile, - ensureFileSync: createFileSync, - createLink, - createLinkSync, - ensureLink: createLink, - ensureLinkSync: createLinkSync, - createSymlink, - createSymlinkSync, - ensureSymlink: createSymlink, - ensureSymlinkSync: createSymlinkSync - }; -}); - -// node_modules/jsonfile/utils.js -var require_utils2 = __commonJS((exports, module) => { - function stringify(obj, { EOL = ` -`, finalEOL = true, replacer = null, spaces } = {}) { - const EOF = finalEOL ? EOL : ""; - const str = JSON.stringify(obj, replacer, spaces); - return str.replace(/\n/g, EOL) + EOF; - } - function stripBom(content) { - if (Buffer.isBuffer(content)) - content = content.toString("utf8"); - return content.replace(/^\uFEFF/, ""); - } - module.exports = { stringify, stripBom }; -}); - -// node_modules/jsonfile/index.js -var require_jsonfile = __commonJS((exports, module) => { - var _fs; - try { - _fs = require_graceful_fs(); - } catch (_2) { - _fs = __require("fs"); - } - var universalify = require_universalify(); - var { stringify, stripBom } = require_utils2(); - async function _readFile(file, options = {}) { - if (typeof options === "string") { - options = { encoding: options }; - } - const fs = options.fs || _fs; - const shouldThrow = "throws" in options ? options.throws : true; - let data = await universalify.fromCallback(fs.readFile)(file, options); - data = stripBom(data); - let obj; - try { - obj = JSON.parse(data, options ? options.reviver : null); - } catch (err) { - if (shouldThrow) { - err.message = `${file}: ${err.message}`; - throw err; - } else { - return null; - } - } - return obj; - } - var readFile = universalify.fromPromise(_readFile); - function readFileSync(file, options = {}) { - if (typeof options === "string") { - options = { encoding: options }; - } - const fs = options.fs || _fs; - const shouldThrow = "throws" in options ? options.throws : true; - try { - let content = fs.readFileSync(file, options); - content = stripBom(content); - return JSON.parse(content, options.reviver); - } catch (err) { - if (shouldThrow) { - err.message = `${file}: ${err.message}`; - throw err; - } else { - return null; - } - } - } - async function _writeFile(file, obj, options = {}) { - const fs = options.fs || _fs; - const str = stringify(obj, options); - await universalify.fromCallback(fs.writeFile)(file, str, options); - } - var writeFile = universalify.fromPromise(_writeFile); - function writeFileSync(file, obj, options = {}) { - const fs = options.fs || _fs; - const str = stringify(obj, options); - return fs.writeFileSync(file, str, options); - } - var jsonfile = { - readFile, - readFileSync, - writeFile, - writeFileSync - }; - module.exports = jsonfile; -}); - -// node_modules/fs-extra/lib/json/jsonfile.js -var require_jsonfile2 = __commonJS((exports, module) => { - var jsonFile = require_jsonfile(); - module.exports = { - readJson: jsonFile.readFile, - readJsonSync: jsonFile.readFileSync, - writeJson: jsonFile.writeFile, - writeJsonSync: jsonFile.writeFileSync - }; -}); - -// node_modules/fs-extra/lib/output-file/index.js -var require_output_file = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - var fs = require_fs(); - var path = __require("path"); - var mkdir = require_mkdirs(); - var pathExists = require_path_exists().pathExists; - async function outputFile(file, data, encoding = "utf-8") { - const dir = path.dirname(file); - if (!await pathExists(dir)) { - await mkdir.mkdirs(dir); - } - return fs.writeFile(file, data, encoding); - } - function outputFileSync(file, ...args) { - const dir = path.dirname(file); - if (!fs.existsSync(dir)) { - mkdir.mkdirsSync(dir); - } - fs.writeFileSync(file, ...args); - } - module.exports = { - outputFile: u(outputFile), - outputFileSync - }; -}); - -// node_modules/fs-extra/lib/json/output-json.js -var require_output_json = __commonJS((exports, module) => { - var { stringify } = require_utils2(); - var { outputFile } = require_output_file(); - async function outputJson(file, data, options = {}) { - const str = stringify(data, options); - await outputFile(file, str, options); - } - module.exports = outputJson; -}); - -// node_modules/fs-extra/lib/json/output-json-sync.js -var require_output_json_sync = __commonJS((exports, module) => { - var { stringify } = require_utils2(); - var { outputFileSync } = require_output_file(); - function outputJsonSync(file, data, options) { - const str = stringify(data, options); - outputFileSync(file, str, options); - } - module.exports = outputJsonSync; -}); - -// node_modules/fs-extra/lib/json/index.js -var require_json = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - var jsonFile = require_jsonfile2(); - jsonFile.outputJson = u(require_output_json()); - jsonFile.outputJsonSync = require_output_json_sync(); - jsonFile.outputJSON = jsonFile.outputJson; - jsonFile.outputJSONSync = jsonFile.outputJsonSync; - jsonFile.writeJSON = jsonFile.writeJson; - jsonFile.writeJSONSync = jsonFile.writeJsonSync; - jsonFile.readJSON = jsonFile.readJson; - jsonFile.readJSONSync = jsonFile.readJsonSync; - module.exports = jsonFile; -}); - -// node_modules/fs-extra/lib/move/move.js -var require_move = __commonJS((exports, module) => { - var fs = require_fs(); - var path = __require("path"); - var { copy } = require_copy2(); - var { remove } = require_remove(); - var { mkdirp } = require_mkdirs(); - var { pathExists } = require_path_exists(); - var stat = require_stat(); - async function move(src, dest, opts = {}) { - const overwrite = opts.overwrite || opts.clobber || false; - const { srcStat, isChangingCase = false } = await stat.checkPaths(src, dest, "move", opts); - await stat.checkParentPaths(src, srcStat, dest, "move"); - const destParent = path.dirname(dest); - const parsedParentPath = path.parse(destParent); - if (parsedParentPath.root !== destParent) { - await mkdirp(destParent); - } - return doRename(src, dest, overwrite, isChangingCase); - } - async function doRename(src, dest, overwrite, isChangingCase) { - if (!isChangingCase) { - if (overwrite) { - await remove(dest); - } else if (await pathExists(dest)) { - throw new Error("dest already exists."); - } - } - try { - await fs.rename(src, dest); - } catch (err) { - if (err.code !== "EXDEV") { - throw err; - } - await moveAcrossDevice(src, dest, overwrite); - } - } - async function moveAcrossDevice(src, dest, overwrite) { - const opts = { - overwrite, - errorOnExist: true, - preserveTimestamps: true - }; - await copy(src, dest, opts); - return remove(src); - } - module.exports = move; -}); - -// node_modules/fs-extra/lib/move/move-sync.js -var require_move_sync = __commonJS((exports, module) => { - var fs = require_graceful_fs(); - var path = __require("path"); - var copySync = require_copy2().copySync; - var removeSync = require_remove().removeSync; - var mkdirpSync = require_mkdirs().mkdirpSync; - var stat = require_stat(); - function moveSync(src, dest, opts) { - opts = opts || {}; - const overwrite = opts.overwrite || opts.clobber || false; - const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, "move", opts); - stat.checkParentPathsSync(src, srcStat, dest, "move"); - if (!isParentRoot(dest)) - mkdirpSync(path.dirname(dest)); - return doRename(src, dest, overwrite, isChangingCase); - } - function isParentRoot(dest) { - const parent = path.dirname(dest); - const parsedPath = path.parse(parent); - return parsedPath.root === parent; - } - function doRename(src, dest, overwrite, isChangingCase) { - if (isChangingCase) - return rename(src, dest, overwrite); - if (overwrite) { - removeSync(dest); - return rename(src, dest, overwrite); - } - if (fs.existsSync(dest)) - throw new Error("dest already exists."); - return rename(src, dest, overwrite); - } - function rename(src, dest, overwrite) { - try { - fs.renameSync(src, dest); - } catch (err) { - if (err.code !== "EXDEV") - throw err; - return moveAcrossDevice(src, dest, overwrite); - } - } - function moveAcrossDevice(src, dest, overwrite) { - const opts = { - overwrite, - errorOnExist: true, - preserveTimestamps: true - }; - copySync(src, dest, opts); - return removeSync(src); - } - module.exports = moveSync; -}); - -// node_modules/fs-extra/lib/move/index.js -var require_move2 = __commonJS((exports, module) => { - var u = require_universalify().fromPromise; - module.exports = { - move: u(require_move()), - moveSync: require_move_sync() - }; -}); - -// node_modules/fs-extra/lib/index.js -var require_lib = __commonJS((exports, module) => { - module.exports = { - ...require_fs(), - ...require_copy2(), - ...require_empty(), - ...require_ensure(), - ...require_json(), - ...require_mkdirs(), - ...require_move2(), - ...require_output_file(), - ...require_path_exists(), - ...require_remove() - }; -}); - -// node_modules/@inquirer/core/dist/esm/lib/key.js -var isUpKey = (key) => key.name === "up" || key.name === "k" || key.ctrl && key.name === "p", isDownKey = (key) => key.name === "down" || key.name === "j" || key.ctrl && key.name === "n", isSpaceKey = (key) => key.name === "space", isBackspaceKey = (key) => key.name === "backspace", isNumberKey = (key) => "123456789".includes(key.name), isEnterKey = (key) => key.name === "enter" || key.name === "return"; - -// node_modules/@inquirer/core/dist/esm/lib/errors.js -var AbortPromptError, CancelPromptError, ExitPromptError, HookError, ValidationError; -var init_errors = __esm(() => { - AbortPromptError = class AbortPromptError extends Error { - name = "AbortPromptError"; - message = "Prompt was aborted"; - constructor(options) { - super(); - this.cause = options?.cause; - } - }; - CancelPromptError = class CancelPromptError extends Error { - name = "CancelPromptError"; - message = "Prompt was canceled"; - }; - ExitPromptError = class ExitPromptError extends Error { - name = "ExitPromptError"; - }; - HookError = class HookError extends Error { - name = "HookError"; - }; - ValidationError = class ValidationError extends Error { - name = "ValidationError"; - }; -}); - -// node_modules/@inquirer/core/dist/esm/lib/hook-engine.js -import { AsyncLocalStorage, AsyncResource } from "node:async_hooks"; -function createStore(rl) { - const store = { - rl, - hooks: [], - hooksCleanup: [], - hooksEffect: [], - index: 0, - handleChange() { - } - }; - return store; -} -function withHooks(rl, cb) { - const store = createStore(rl); - return hookStorage.run(store, () => { - function cycle(render) { - store.handleChange = () => { - store.index = 0; - render(); - }; - store.handleChange(); - } - return cb(cycle); - }); -} -function getStore() { - const store = hookStorage.getStore(); - if (!store) { - throw new HookError("[Inquirer] Hook functions can only be called from within a prompt"); - } - return store; -} -function readline() { - return getStore().rl; -} -function withUpdates(fn) { - const wrapped = (...args) => { - const store = getStore(); - let shouldUpdate = false; - const oldHandleChange = store.handleChange; - store.handleChange = () => { - shouldUpdate = true; - }; - const returnValue = fn(...args); - if (shouldUpdate) { - oldHandleChange(); - } - store.handleChange = oldHandleChange; - return returnValue; - }; - return AsyncResource.bind(wrapped); -} -function withPointer(cb) { - const store = getStore(); - const { index } = store; - const pointer = { - get() { - return store.hooks[index]; - }, - set(value) { - store.hooks[index] = value; - }, - initialized: index in store.hooks - }; - const returnValue = cb(pointer); - store.index++; - return returnValue; -} -function handleChange() { - getStore().handleChange(); -} -var hookStorage, effectScheduler; -var init_hook_engine = __esm(() => { - init_errors(); - hookStorage = new AsyncLocalStorage; - effectScheduler = { - queue(cb) { - const store = getStore(); - const { index } = store; - store.hooksEffect.push(() => { - store.hooksCleanup[index]?.(); - const cleanFn = cb(readline()); - if (cleanFn != null && typeof cleanFn !== "function") { - throw new ValidationError("useEffect return value must be a cleanup function or nothing."); - } - store.hooksCleanup[index] = cleanFn; - }); - }, - run() { - const store = getStore(); - withUpdates(() => { - store.hooksEffect.forEach((effect) => { - effect(); - }); - store.hooksEffect.length = 0; - })(); - }, - clearAll() { - const store = getStore(); - store.hooksCleanup.forEach((cleanFn) => { - cleanFn?.(); - }); - store.hooksEffect.length = 0; - store.hooksCleanup.length = 0; - } - }; -}); - -// node_modules/@inquirer/core/dist/esm/lib/use-state.js -function useState(defaultValue) { - return withPointer((pointer) => { - const setFn = (newValue) => { - if (pointer.get() !== newValue) { - pointer.set(newValue); - handleChange(); - } - }; - if (pointer.initialized) { - return [pointer.get(), setFn]; - } - const value = typeof defaultValue === "function" ? defaultValue() : defaultValue; - pointer.set(value); - return [value, setFn]; - }); -} -var init_use_state = __esm(() => { - init_hook_engine(); -}); - -// node_modules/@inquirer/core/dist/esm/lib/use-effect.js -function useEffect(cb, depArray) { - withPointer((pointer) => { - const oldDeps = pointer.get(); - const hasChanged = !Array.isArray(oldDeps) || depArray.some((dep, i) => !Object.is(dep, oldDeps[i])); - if (hasChanged) { - effectScheduler.queue(cb); - } - pointer.set(depArray); - }); -} -var init_use_effect = __esm(() => { - init_hook_engine(); -}); - -// node_modules/yoctocolors-cjs/index.js -var require_yoctocolors_cjs = __commonJS((exports, module) => { - var tty = __require("node:tty"); - var hasColors = tty?.WriteStream?.prototype?.hasColors?.() ?? false; - var format = (open, close) => { - if (!hasColors) { - return (input) => input; - } - const openCode = `\x1B[${open}m`; - const closeCode = `\x1B[${close}m`; - return (input) => { - const string = input + ""; - let index = string.indexOf(closeCode); - if (index === -1) { - return openCode + string + closeCode; - } - let result = openCode; - let lastIndex = 0; - while (index !== -1) { - result += string.slice(lastIndex, index) + openCode; - lastIndex = index + closeCode.length; - index = string.indexOf(closeCode, lastIndex); - } - result += string.slice(lastIndex) + closeCode; - return result; - }; - }; - var colors = {}; - colors.reset = format(0, 0); - colors.bold = format(1, 22); - colors.dim = format(2, 22); - colors.italic = format(3, 23); - colors.underline = format(4, 24); - colors.overline = format(53, 55); - colors.inverse = format(7, 27); - colors.hidden = format(8, 28); - colors.strikethrough = format(9, 29); - colors.black = format(30, 39); - colors.red = format(31, 39); - colors.green = format(32, 39); - colors.yellow = format(33, 39); - colors.blue = format(34, 39); - colors.magenta = format(35, 39); - colors.cyan = format(36, 39); - colors.white = format(37, 39); - colors.gray = format(90, 39); - colors.bgBlack = format(40, 49); - colors.bgRed = format(41, 49); - colors.bgGreen = format(42, 49); - colors.bgYellow = format(43, 49); - colors.bgBlue = format(44, 49); - colors.bgMagenta = format(45, 49); - colors.bgCyan = format(46, 49); - colors.bgWhite = format(47, 49); - colors.bgGray = format(100, 49); - colors.redBright = format(91, 39); - colors.greenBright = format(92, 39); - colors.yellowBright = format(93, 39); - colors.blueBright = format(94, 39); - colors.magentaBright = format(95, 39); - colors.cyanBright = format(96, 39); - colors.whiteBright = format(97, 39); - colors.bgRedBright = format(101, 49); - colors.bgGreenBright = format(102, 49); - colors.bgYellowBright = format(103, 49); - colors.bgBlueBright = format(104, 49); - colors.bgMagentaBright = format(105, 49); - colors.bgCyanBright = format(106, 49); - colors.bgWhiteBright = format(107, 49); - module.exports = colors; -}); - -// node_modules/@inquirer/figures/dist/esm/index.js -import process2 from "node:process"; -function isUnicodeSupported() { - if (process2.platform !== "win32") { - return process2.env["TERM"] !== "linux"; - } - return Boolean(process2.env["WT_SESSION"]) || Boolean(process2.env["TERMINUS_SUBLIME"]) || process2.env["ConEmuTask"] === "{cmd::Cmder}" || process2.env["TERM_PROGRAM"] === "Terminus-Sublime" || process2.env["TERM_PROGRAM"] === "vscode" || process2.env["TERM"] === "xterm-256color" || process2.env["TERM"] === "alacritty" || process2.env["TERMINAL_EMULATOR"] === "JetBrains-JediTerm"; -} -var common, specialMainSymbols, specialFallbackSymbols, mainSymbols, fallbackSymbols, shouldUseMain, figures, esm_default, replacements; -var init_esm = __esm(() => { - common = { - circleQuestionMark: "(?)", - questionMarkPrefix: "(?)", - square: "ā–ˆ", - squareDarkShade: "ā–“", - squareMediumShade: "ā–’", - squareLightShade: "ā–‘", - squareTop: "ā–€", - squareBottom: "ā–„", - squareLeft: "ā–Œ", - squareRight: "ā–", - squareCenter: "ā– ", - bullet: "ā—", - dot: "ā€¤", - ellipsis: "ā€¦", - pointerSmall: "ā€ŗ", - triangleUp: "ā–²", - triangleUpSmall: "ā–“", - triangleDown: "ā–¼", - triangleDownSmall: "ā–¾", - triangleLeftSmall: "ā—‚", - triangleRightSmall: "ā–ø", - home: "āŒ‚", - heart: "ā™„", - musicNote: "ā™Ŗ", - musicNoteBeamed: "ā™«", - arrowUp: "ā†‘", - arrowDown: "ā†“", - arrowLeft: "ā†", - arrowRight: "ā†’", - arrowLeftRight: "ā†”", - arrowUpDown: "ā†•", - almostEqual: "ā‰ˆ", - notEqual: "ā‰ ", - lessOrEqual: "ā‰¤", - greaterOrEqual: "ā‰„", - identical: "ā‰”", - infinity: "āˆž", - subscriptZero: "ā‚€", - subscriptOne: "ā‚", - subscriptTwo: "ā‚‚", - subscriptThree: "ā‚ƒ", - subscriptFour: "ā‚„", - subscriptFive: "ā‚…", - subscriptSix: "ā‚†", - subscriptSeven: "ā‚‡", - subscriptEight: "ā‚ˆ", - subscriptNine: "ā‚‰", - oneHalf: "Ā½", - oneThird: "ā…“", - oneQuarter: "Ā¼", - oneFifth: "ā…•", - oneSixth: "ā…™", - oneEighth: "ā…›", - twoThirds: "ā…”", - twoFifths: "ā…–", - threeQuarters: "Ā¾", - threeFifths: "ā…—", - threeEighths: "ā…œ", - fourFifths: "ā…˜", - fiveSixths: "ā…š", - fiveEighths: "ā…", - sevenEighths: "ā…ž", - line: "ā”€", - lineBold: "ā”", - lineDouble: "ā•", - lineDashed0: "ā”„", - lineDashed1: "ā”…", - lineDashed2: "ā”ˆ", - lineDashed3: "ā”‰", - lineDashed4: "ā•Œ", - lineDashed5: "ā•", - lineDashed6: "ā•“", - lineDashed7: "ā•¶", - lineDashed8: "ā•ø", - lineDashed9: "ā•ŗ", - lineDashed10: "ā•¼", - lineDashed11: "ā•¾", - lineDashed12: "āˆ’", - lineDashed13: "ā€“", - lineDashed14: "ā€", - lineDashed15: "āƒ", - lineVertical: "ā”‚", - lineVerticalBold: "ā”ƒ", - lineVerticalDouble: "ā•‘", - lineVerticalDashed0: "ā”†", - lineVerticalDashed1: "ā”‡", - lineVerticalDashed2: "ā”Š", - lineVerticalDashed3: "ā”‹", - lineVerticalDashed4: "ā•Ž", - lineVerticalDashed5: "ā•", - lineVerticalDashed6: "ā•µ", - lineVerticalDashed7: "ā•·", - lineVerticalDashed8: "ā•¹", - lineVerticalDashed9: "ā•»", - lineVerticalDashed10: "ā•½", - lineVerticalDashed11: "ā•æ", - lineDownLeft: "ā”", - lineDownLeftArc: "ā•®", - lineDownBoldLeftBold: "ā”“", - lineDownBoldLeft: "ā”’", - lineDownLeftBold: "ā”‘", - lineDownDoubleLeftDouble: "ā•—", - lineDownDoubleLeft: "ā•–", - lineDownLeftDouble: "ā••", - lineDownRight: "ā”Œ", - lineDownRightArc: "ā•­", - lineDownBoldRightBold: "ā”", - lineDownBoldRight: "ā”Ž", - lineDownRightBold: "ā”", - lineDownDoubleRightDouble: "ā•”", - lineDownDoubleRight: "ā•“", - lineDownRightDouble: "ā•’", - lineUpLeft: "ā”˜", - lineUpLeftArc: "ā•Æ", - lineUpBoldLeftBold: "ā”›", - lineUpBoldLeft: "ā”š", - lineUpLeftBold: "ā”™", - lineUpDoubleLeftDouble: "ā•", - lineUpDoubleLeft: "ā•œ", - lineUpLeftDouble: "ā•›", - lineUpRight: "ā””", - lineUpRightArc: "ā•°", - lineUpBoldRightBold: "ā”—", - lineUpBoldRight: "ā”–", - lineUpRightBold: "ā”•", - lineUpDoubleRightDouble: "ā•š", - lineUpDoubleRight: "ā•™", - lineUpRightDouble: "ā•˜", - lineUpDownLeft: "ā”¤", - lineUpBoldDownBoldLeftBold: "ā”«", - lineUpBoldDownBoldLeft: "ā”Ø", - lineUpDownLeftBold: "ā”„", - lineUpBoldDownLeftBold: "ā”©", - lineUpDownBoldLeftBold: "ā”Ŗ", - lineUpDownBoldLeft: "ā”§", - lineUpBoldDownLeft: "ā”¦", - lineUpDoubleDownDoubleLeftDouble: "ā•£", - lineUpDoubleDownDoubleLeft: "ā•¢", - lineUpDownLeftDouble: "ā•”", - lineUpDownRight: "ā”œ", - lineUpBoldDownBoldRightBold: "ā”£", - lineUpBoldDownBoldRight: "ā” ", - lineUpDownRightBold: "ā”", - lineUpBoldDownRightBold: "ā””", - lineUpDownBoldRightBold: "ā”¢", - lineUpDownBoldRight: "ā”Ÿ", - lineUpBoldDownRight: "ā”ž", - lineUpDoubleDownDoubleRightDouble: "ā• ", - lineUpDoubleDownDoubleRight: "ā•Ÿ", - lineUpDownRightDouble: "ā•ž", - lineDownLeftRight: "ā”¬", - lineDownBoldLeftBoldRightBold: "ā”³", - lineDownLeftBoldRightBold: "ā”Æ", - lineDownBoldLeftRight: "ā”°", - lineDownBoldLeftBoldRight: "ā”±", - lineDownBoldLeftRightBold: "ā”²", - lineDownLeftRightBold: "ā”®", - lineDownLeftBoldRight: "ā”­", - lineDownDoubleLeftDoubleRightDouble: "ā•¦", - lineDownDoubleLeftRight: "ā•„", - lineDownLeftDoubleRightDouble: "ā•¤", - lineUpLeftRight: "ā”“", - lineUpBoldLeftBoldRightBold: "ā”»", - lineUpLeftBoldRightBold: "ā”·", - lineUpBoldLeftRight: "ā”ø", - lineUpBoldLeftBoldRight: "ā”¹", - lineUpBoldLeftRightBold: "ā”ŗ", - lineUpLeftRightBold: "ā”¶", - lineUpLeftBoldRight: "ā”µ", - lineUpDoubleLeftDoubleRightDouble: "ā•©", - lineUpDoubleLeftRight: "ā•Ø", - lineUpLeftDoubleRightDouble: "ā•§", - lineUpDownLeftRight: "ā”¼", - lineUpBoldDownBoldLeftBoldRightBold: "ā•‹", - lineUpDownBoldLeftBoldRightBold: "ā•ˆ", - lineUpBoldDownLeftBoldRightBold: "ā•‡", - lineUpBoldDownBoldLeftRightBold: "ā•Š", - lineUpBoldDownBoldLeftBoldRight: "ā•‰", - lineUpBoldDownLeftRight: "ā•€", - lineUpDownBoldLeftRight: "ā•", - lineUpDownLeftBoldRight: "ā”½", - lineUpDownLeftRightBold: "ā”¾", - lineUpBoldDownBoldLeftRight: "ā•‚", - lineUpDownLeftBoldRightBold: "ā”æ", - lineUpBoldDownLeftBoldRight: "ā•ƒ", - lineUpBoldDownLeftRightBold: "ā•„", - lineUpDownBoldLeftBoldRight: "ā•…", - lineUpDownBoldLeftRightBold: "ā•†", - lineUpDoubleDownDoubleLeftDoubleRightDouble: "ā•¬", - lineUpDoubleDownDoubleLeftRight: "ā•«", - lineUpDownLeftDoubleRightDouble: "ā•Ŗ", - lineCross: "ā•³", - lineBackslash: "ā•²", - lineSlash: "ā•±" - }; - specialMainSymbols = { - tick: "āœ”", - info: "ā„¹", - warning: "āš ", - cross: "āœ˜", - squareSmall: "ā—»", - squareSmallFilled: "ā—¼", - circle: "ā—Æ", - circleFilled: "ā—‰", - circleDotted: "ā—Œ", - circleDouble: "ā—Ž", - circleCircle: "ā“ž", - circleCross: "ā“§", - circlePipe: "ā’¾", - radioOn: "ā—‰", - radioOff: "ā—Æ", - checkboxOn: "ā˜’", - checkboxOff: "ā˜", - checkboxCircleOn: "ā“§", - checkboxCircleOff: "ā’¾", - pointer: "āÆ", - triangleUpOutline: "ā–³", - triangleLeft: "ā—€", - triangleRight: "ā–¶", - lozenge: "ā—†", - lozengeOutline: "ā—‡", - hamburger: "ā˜°", - smiley: "ć‹”", - mustache: "ą·“", - star: "ā˜…", - play: "ā–¶", - nodejs: "ā¬¢", - oneSeventh: "ā…", - oneNinth: "ā…‘", - oneTenth: "ā…’" - }; - specialFallbackSymbols = { - tick: "āˆš", - info: "i", - warning: "ā€¼", - cross: "Ɨ", - squareSmall: "ā–”", - squareSmallFilled: "ā– ", - circle: "( )", - circleFilled: "(*)", - circleDotted: "( )", - circleDouble: "( )", - circleCircle: "(ā—‹)", - circleCross: "(Ɨ)", - circlePipe: "(ā”‚)", - radioOn: "(*)", - radioOff: "( )", - checkboxOn: "[Ɨ]", - checkboxOff: "[ ]", - checkboxCircleOn: "(Ɨ)", - checkboxCircleOff: "( )", - pointer: ">", - triangleUpOutline: "āˆ†", - triangleLeft: "ā—„", - triangleRight: "ā–ŗ", - lozenge: "ā™¦", - lozengeOutline: "ā—Š", - hamburger: "ā‰”", - smiley: "ā˜ŗ", - mustache: "ā”Œā”€ā”", - star: "āœ¶", - play: "ā–ŗ", - nodejs: "ā™¦", - oneSeventh: "1/7", - oneNinth: "1/9", - oneTenth: "1/10" - }; - mainSymbols = { ...common, ...specialMainSymbols }; - fallbackSymbols = { - ...common, - ...specialFallbackSymbols - }; - shouldUseMain = isUnicodeSupported(); - figures = shouldUseMain ? mainSymbols : fallbackSymbols; - esm_default = figures; - replacements = Object.entries(specialMainSymbols); -}); - -// node_modules/@inquirer/core/dist/esm/lib/theme.js -var import_yoctocolors_cjs, defaultTheme; -var init_theme = __esm(() => { - import_yoctocolors_cjs = __toESM(require_yoctocolors_cjs(), 1); - init_esm(); - defaultTheme = { - prefix: { - idle: import_yoctocolors_cjs.default.blue("?"), - done: import_yoctocolors_cjs.default.green(esm_default.tick) - }, - spinner: { - interval: 80, - frames: ["ā ‹", "ā ™", "ā ¹", "ā ø", "ā ¼", "ā “", "ā ¦", "ā §", "ā ‡", "ā "].map((frame) => import_yoctocolors_cjs.default.yellow(frame)) - }, - style: { - answer: import_yoctocolors_cjs.default.cyan, - message: import_yoctocolors_cjs.default.bold, - error: (text) => import_yoctocolors_cjs.default.red(`> ${text}`), - defaultAnswer: (text) => import_yoctocolors_cjs.default.dim(`(${text})`), - help: import_yoctocolors_cjs.default.dim, - highlight: import_yoctocolors_cjs.default.cyan, - key: (text) => import_yoctocolors_cjs.default.cyan(import_yoctocolors_cjs.default.bold(`<${text}>`)) - } - }; -}); - -// node_modules/@inquirer/core/dist/esm/lib/make-theme.js -function isPlainObject(value) { - if (typeof value !== "object" || value === null) - return false; - let proto = value; - while (Object.getPrototypeOf(proto) !== null) { - proto = Object.getPrototypeOf(proto); - } - return Object.getPrototypeOf(value) === proto; -} -function deepMerge(...objects) { - const output = {}; - for (const obj of objects) { - for (const [key, value] of Object.entries(obj)) { - const prevValue = output[key]; - output[key] = isPlainObject(prevValue) && isPlainObject(value) ? deepMerge(prevValue, value) : value; - } - } - return output; -} -function makeTheme(...themes) { - const themesToMerge = [ - defaultTheme, - ...themes.filter((theme) => theme != null) - ]; - return deepMerge(...themesToMerge); -} -var init_make_theme = __esm(() => { - init_theme(); -}); - -// node_modules/@inquirer/core/dist/esm/lib/use-prefix.js -import { AsyncResource as AsyncResource2 } from "node:async_hooks"; -function usePrefix({ status = "idle", theme }) { - const [showLoader, setShowLoader] = useState(false); - const [tick, setTick] = useState(0); - const { prefix, spinner } = makeTheme(theme); - useEffect(() => { - if (status === "loading") { - let tickInterval; - let inc = -1; - const delayTimeout = setTimeout(AsyncResource2.bind(() => { - setShowLoader(true); - tickInterval = setInterval(AsyncResource2.bind(() => { - inc = inc + 1; - setTick(inc % spinner.frames.length); - }), spinner.interval); - }), 300); - return () => { - clearTimeout(delayTimeout); - clearInterval(tickInterval); - }; - } else { - setShowLoader(false); - } - }, [status]); - if (showLoader) { - return spinner.frames[tick]; - } - const iconName = status === "loading" ? "idle" : status; - return typeof prefix === "string" ? prefix : prefix[iconName] ?? prefix["idle"]; -} -var init_use_prefix = __esm(() => { - init_use_state(); - init_use_effect(); - init_make_theme(); -}); - -// node_modules/@inquirer/core/dist/esm/lib/use-memo.js -function useMemo(fn, dependencies) { - return withPointer((pointer) => { - const prev = pointer.get(); - if (!prev || prev.dependencies.length !== dependencies.length || prev.dependencies.some((dep, i) => dep !== dependencies[i])) { - const value = fn(); - pointer.set({ value, dependencies }); - return value; - } - return prev.value; - }); -} -var init_use_memo = __esm(() => { - init_hook_engine(); -}); - -// node_modules/@inquirer/core/dist/esm/lib/use-ref.js -function useRef(val) { - return useState({ current: val })[0]; -} -var init_use_ref = __esm(() => { - init_use_state(); -}); - -// node_modules/@inquirer/core/dist/esm/lib/use-keypress.js -function useKeypress(userHandler) { - const signal = useRef(userHandler); - signal.current = userHandler; - useEffect((rl) => { - let ignore = false; - const handler = withUpdates((_input, event) => { - if (ignore) - return; - signal.current(event, rl); - }); - rl.input.on("keypress", handler); - return () => { - ignore = true; - rl.input.removeListener("keypress", handler); - }; - }, []); -} -var init_use_keypress = __esm(() => { - init_use_ref(); - init_use_effect(); - init_hook_engine(); -}); - -// node_modules/cli-width/index.js -var require_cli_width = __commonJS((exports, module) => { - module.exports = cliWidth; - function normalizeOpts(options) { - const defaultOpts = { - defaultWidth: 0, - output: process.stdout, - tty: __require("tty") - }; - if (!options) { - return defaultOpts; - } - Object.keys(defaultOpts).forEach(function(key) { - if (!options[key]) { - options[key] = defaultOpts[key]; - } - }); - return options; - } - function cliWidth(options) { - const opts = normalizeOpts(options); - if (opts.output.getWindowSize) { - return opts.output.getWindowSize()[0] || opts.defaultWidth; - } - if (opts.tty.getWindowSize) { - return opts.tty.getWindowSize()[1] || opts.defaultWidth; - } - if (opts.output.columns) { - return opts.output.columns; - } - if (process.env.CLI_WIDTH) { - const width = parseInt(process.env.CLI_WIDTH, 10); - if (!isNaN(width) && width !== 0) { - return width; - } - } - return opts.defaultWidth; - } -}); - -// node_modules/wrap-ansi/node_modules/strip-ansi/node_modules/ansi-regex/index.js -var require_ansi_regex = __commonJS((exports, module) => { - module.exports = ({ onlyFirst = false } = {}) => { - const pattern = [ - "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", - "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" - ].join("|"); - return new RegExp(pattern, onlyFirst ? undefined : "g"); - }; -}); - -// node_modules/wrap-ansi/node_modules/strip-ansi/index.js -var require_strip_ansi = __commonJS((exports, module) => { - var ansiRegex = require_ansi_regex(); - module.exports = (string) => typeof string === "string" ? string.replace(ansiRegex(), "") : string; -}); - -// node_modules/is-fullwidth-code-point/index.js -var require_is_fullwidth_code_point = __commonJS((exports, module) => { - var isFullwidthCodePoint = (codePoint) => { - if (Number.isNaN(codePoint)) { - return false; - } - if (codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || 12880 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65131 || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 262141)) { - return true; - } - return false; - }; - module.exports = isFullwidthCodePoint; - module.exports.default = isFullwidthCodePoint; -}); - -// node_modules/wrap-ansi/node_modules/string-width/node_modules/emoji-regex/index.js -var require_emoji_regex = __commonJS((exports, module) => { - module.exports = function() { - return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; - }; -}); - -// node_modules/wrap-ansi/node_modules/string-width/index.js -var require_string_width = __commonJS((exports, module) => { - var stripAnsi = require_strip_ansi(); - var isFullwidthCodePoint = require_is_fullwidth_code_point(); - var emojiRegex = require_emoji_regex(); - var stringWidth = (string) => { - if (typeof string !== "string" || string.length === 0) { - return 0; - } - string = stripAnsi(string); - if (string.length === 0) { - return 0; - } - string = string.replace(emojiRegex(), " "); - let width = 0; - for (let i = 0;i < string.length; i++) { - const code = string.codePointAt(i); - if (code <= 31 || code >= 127 && code <= 159) { - continue; - } - if (code >= 768 && code <= 879) { - continue; - } - if (code > 65535) { - i++; - } - width += isFullwidthCodePoint(code) ? 2 : 1; - } - return width; - }; - module.exports = stringWidth; - module.exports.default = stringWidth; -}); - -// node_modules/color-name/index.js -var require_color_name = __commonJS((exports, module) => { - module.exports = { - aliceblue: [240, 248, 255], - antiquewhite: [250, 235, 215], - aqua: [0, 255, 255], - aquamarine: [127, 255, 212], - azure: [240, 255, 255], - beige: [245, 245, 220], - bisque: [255, 228, 196], - black: [0, 0, 0], - blanchedalmond: [255, 235, 205], - blue: [0, 0, 255], - blueviolet: [138, 43, 226], - brown: [165, 42, 42], - burlywood: [222, 184, 135], - cadetblue: [95, 158, 160], - chartreuse: [127, 255, 0], - chocolate: [210, 105, 30], - coral: [255, 127, 80], - cornflowerblue: [100, 149, 237], - cornsilk: [255, 248, 220], - crimson: [220, 20, 60], - cyan: [0, 255, 255], - darkblue: [0, 0, 139], - darkcyan: [0, 139, 139], - darkgoldenrod: [184, 134, 11], - darkgray: [169, 169, 169], - darkgreen: [0, 100, 0], - darkgrey: [169, 169, 169], - darkkhaki: [189, 183, 107], - darkmagenta: [139, 0, 139], - darkolivegreen: [85, 107, 47], - darkorange: [255, 140, 0], - darkorchid: [153, 50, 204], - darkred: [139, 0, 0], - darksalmon: [233, 150, 122], - darkseagreen: [143, 188, 143], - darkslateblue: [72, 61, 139], - darkslategray: [47, 79, 79], - darkslategrey: [47, 79, 79], - darkturquoise: [0, 206, 209], - darkviolet: [148, 0, 211], - deeppink: [255, 20, 147], - deepskyblue: [0, 191, 255], - dimgray: [105, 105, 105], - dimgrey: [105, 105, 105], - dodgerblue: [30, 144, 255], - firebrick: [178, 34, 34], - floralwhite: [255, 250, 240], - forestgreen: [34, 139, 34], - fuchsia: [255, 0, 255], - gainsboro: [220, 220, 220], - ghostwhite: [248, 248, 255], - gold: [255, 215, 0], - goldenrod: [218, 165, 32], - gray: [128, 128, 128], - green: [0, 128, 0], - greenyellow: [173, 255, 47], - grey: [128, 128, 128], - honeydew: [240, 255, 240], - hotpink: [255, 105, 180], - indianred: [205, 92, 92], - indigo: [75, 0, 130], - ivory: [255, 255, 240], - khaki: [240, 230, 140], - lavender: [230, 230, 250], - lavenderblush: [255, 240, 245], - lawngreen: [124, 252, 0], - lemonchiffon: [255, 250, 205], - lightblue: [173, 216, 230], - lightcoral: [240, 128, 128], - lightcyan: [224, 255, 255], - lightgoldenrodyellow: [250, 250, 210], - lightgray: [211, 211, 211], - lightgreen: [144, 238, 144], - lightgrey: [211, 211, 211], - lightpink: [255, 182, 193], - lightsalmon: [255, 160, 122], - lightseagreen: [32, 178, 170], - lightskyblue: [135, 206, 250], - lightslategray: [119, 136, 153], - lightslategrey: [119, 136, 153], - lightsteelblue: [176, 196, 222], - lightyellow: [255, 255, 224], - lime: [0, 255, 0], - limegreen: [50, 205, 50], - linen: [250, 240, 230], - magenta: [255, 0, 255], - maroon: [128, 0, 0], - mediumaquamarine: [102, 205, 170], - mediumblue: [0, 0, 205], - mediumorchid: [186, 85, 211], - mediumpurple: [147, 112, 219], - mediumseagreen: [60, 179, 113], - mediumslateblue: [123, 104, 238], - mediumspringgreen: [0, 250, 154], - mediumturquoise: [72, 209, 204], - mediumvioletred: [199, 21, 133], - midnightblue: [25, 25, 112], - mintcream: [245, 255, 250], - mistyrose: [255, 228, 225], - moccasin: [255, 228, 181], - navajowhite: [255, 222, 173], - navy: [0, 0, 128], - oldlace: [253, 245, 230], - olive: [128, 128, 0], - olivedrab: [107, 142, 35], - orange: [255, 165, 0], - orangered: [255, 69, 0], - orchid: [218, 112, 214], - palegoldenrod: [238, 232, 170], - palegreen: [152, 251, 152], - paleturquoise: [175, 238, 238], - palevioletred: [219, 112, 147], - papayawhip: [255, 239, 213], - peachpuff: [255, 218, 185], - peru: [205, 133, 63], - pink: [255, 192, 203], - plum: [221, 160, 221], - powderblue: [176, 224, 230], - purple: [128, 0, 128], - rebeccapurple: [102, 51, 153], - red: [255, 0, 0], - rosybrown: [188, 143, 143], - royalblue: [65, 105, 225], - saddlebrown: [139, 69, 19], - salmon: [250, 128, 114], - sandybrown: [244, 164, 96], - seagreen: [46, 139, 87], - seashell: [255, 245, 238], - sienna: [160, 82, 45], - silver: [192, 192, 192], - skyblue: [135, 206, 235], - slateblue: [106, 90, 205], - slategray: [112, 128, 144], - slategrey: [112, 128, 144], - snow: [255, 250, 250], - springgreen: [0, 255, 127], - steelblue: [70, 130, 180], - tan: [210, 180, 140], - teal: [0, 128, 128], - thistle: [216, 191, 216], - tomato: [255, 99, 71], - turquoise: [64, 224, 208], - violet: [238, 130, 238], - wheat: [245, 222, 179], - white: [255, 255, 255], - whitesmoke: [245, 245, 245], - yellow: [255, 255, 0], - yellowgreen: [154, 205, 50] - }; -}); - -// node_modules/color-convert/conversions.js -var require_conversions = __commonJS((exports, module) => { - var cssKeywords = require_color_name(); - var reverseKeywords = {}; - for (const key of Object.keys(cssKeywords)) { - reverseKeywords[cssKeywords[key]] = key; - } - var convert = { - rgb: { channels: 3, labels: "rgb" }, - hsl: { channels: 3, labels: "hsl" }, - hsv: { channels: 3, labels: "hsv" }, - hwb: { channels: 3, labels: "hwb" }, - cmyk: { channels: 4, labels: "cmyk" }, - xyz: { channels: 3, labels: "xyz" }, - lab: { channels: 3, labels: "lab" }, - lch: { channels: 3, labels: "lch" }, - hex: { channels: 1, labels: ["hex"] }, - keyword: { channels: 1, labels: ["keyword"] }, - ansi16: { channels: 1, labels: ["ansi16"] }, - ansi256: { channels: 1, labels: ["ansi256"] }, - hcg: { channels: 3, labels: ["h", "c", "g"] }, - apple: { channels: 3, labels: ["r16", "g16", "b16"] }, - gray: { channels: 1, labels: ["gray"] } - }; - module.exports = convert; - for (const model of Object.keys(convert)) { - if (!("channels" in convert[model])) { - throw new Error("missing channels property: " + model); - } - if (!("labels" in convert[model])) { - throw new Error("missing channel labels property: " + model); - } - if (convert[model].labels.length !== convert[model].channels) { - throw new Error("channel and label counts mismatch: " + model); - } - const { channels, labels } = convert[model]; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], "channels", { value: channels }); - Object.defineProperty(convert[model], "labels", { value: labels }); - } - convert.rgb.hsl = function(rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const min = Math.min(r, g, b); - const max = Math.max(r, g, b); - const delta = max - min; - let h; - let s; - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } - h = Math.min(h * 60, 360); - if (h < 0) { - h += 360; - } - const l = (min + max) / 2; - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); - } - return [h, s * 100, l * 100]; - }; - convert.rgb.hsv = function(rgb) { - let rdif; - let gdif; - let bdif; - let h; - let s; - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const v = Math.max(r, g, b); - const diff = v - Math.min(r, g, b); - const diffc = function(c) { - return (v - c) / 6 / diff + 1 / 2; - }; - if (diff === 0) { - h = 0; - s = 0; - } else { - s = diff / v; - rdif = diffc(r); - gdif = diffc(g); - bdif = diffc(b); - if (r === v) { - h = bdif - gdif; - } else if (g === v) { - h = 1 / 3 + rdif - bdif; - } else if (b === v) { - h = 2 / 3 + gdif - rdif; - } - if (h < 0) { - h += 1; - } else if (h > 1) { - h -= 1; - } - } - return [ - h * 360, - s * 100, - v * 100 - ]; - }; - convert.rgb.hwb = function(rgb) { - const r = rgb[0]; - const g = rgb[1]; - let b = rgb[2]; - const h = convert.rgb.hsl(rgb)[0]; - const w = 1 / 255 * Math.min(r, Math.min(g, b)); - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); - return [h, w * 100, b * 100]; - }; - convert.rgb.cmyk = function(rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const k = Math.min(1 - r, 1 - g, 1 - b); - const c = (1 - r - k) / (1 - k) || 0; - const m = (1 - g - k) / (1 - k) || 0; - const y = (1 - b - k) / (1 - k) || 0; - return [c * 100, m * 100, y * 100, k * 100]; - }; - function comparativeDistance(x, y) { - return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2; - } - convert.rgb.keyword = function(rgb) { - const reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } - let currentClosestDistance = Infinity; - let currentClosestKeyword; - for (const keyword of Object.keys(cssKeywords)) { - const value = cssKeywords[keyword]; - const distance = comparativeDistance(rgb, value); - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } - return currentClosestKeyword; - }; - convert.keyword.rgb = function(keyword) { - return cssKeywords[keyword]; - }; - convert.rgb.xyz = function(rgb) { - let r = rgb[0] / 255; - let g = rgb[1] / 255; - let b = rgb[2] / 255; - r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92; - g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92; - b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92; - const x = r * 0.4124 + g * 0.3576 + b * 0.1805; - const y = r * 0.2126 + g * 0.7152 + b * 0.0722; - const z = r * 0.0193 + g * 0.1192 + b * 0.9505; - return [x * 100, y * 100, z * 100]; - }; - convert.rgb.lab = function(rgb) { - const xyz = convert.rgb.xyz(rgb); - let x = xyz[0]; - let y = xyz[1]; - let z = xyz[2]; - x /= 95.047; - y /= 100; - z /= 108.883; - x = x > 0.008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116; - y = y > 0.008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116; - z = z > 0.008856 ? z ** (1 / 3) : 7.787 * z + 16 / 116; - const l = 116 * y - 16; - const a = 500 * (x - y); - const b = 200 * (y - z); - return [l, a, b]; - }; - convert.hsl.rgb = function(hsl) { - const h = hsl[0] / 360; - const s = hsl[1] / 100; - const l = hsl[2] / 100; - let t2; - let t3; - let val; - if (s === 0) { - val = l * 255; - return [val, val, val]; - } - if (l < 0.5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } - const t1 = 2 * l - t2; - const rgb = [0, 0, 0]; - for (let i = 0;i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - if (t3 < 0) { - t3++; - } - if (t3 > 1) { - t3--; - } - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } - rgb[i] = val * 255; - } - return rgb; - }; - convert.hsl.hsv = function(hsl) { - const h = hsl[0]; - let s = hsl[1] / 100; - let l = hsl[2] / 100; - let smin = s; - const lmin = Math.max(l, 0.01); - l *= 2; - s *= l <= 1 ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - const v = (l + s) / 2; - const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); - return [h, sv * 100, v * 100]; - }; - convert.hsv.rgb = function(hsv) { - const h = hsv[0] / 60; - const s = hsv[1] / 100; - let v = hsv[2] / 100; - const hi = Math.floor(h) % 6; - const f = h - Math.floor(h); - const p = 255 * v * (1 - s); - const q = 255 * v * (1 - s * f); - const t = 255 * v * (1 - s * (1 - f)); - v *= 255; - switch (hi) { - case 0: - return [v, t, p]; - case 1: - return [q, v, p]; - case 2: - return [p, v, t]; - case 3: - return [p, q, v]; - case 4: - return [t, p, v]; - case 5: - return [v, p, q]; - } - }; - convert.hsv.hsl = function(hsv) { - const h = hsv[0]; - const s = hsv[1] / 100; - const v = hsv[2] / 100; - const vmin = Math.max(v, 0.01); - let sl; - let l; - l = (2 - s) * v; - const lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= lmin <= 1 ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; - return [h, sl * 100, l * 100]; - }; - convert.hwb.rgb = function(hwb) { - const h = hwb[0] / 360; - let wh = hwb[1] / 100; - let bl = hwb[2] / 100; - const ratio = wh + bl; - let f; - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } - const i = Math.floor(6 * h); - const v = 1 - bl; - f = 6 * h - i; - if ((i & 1) !== 0) { - f = 1 - f; - } - const n = wh + f * (v - wh); - let r; - let g; - let b; - switch (i) { - default: - case 6: - case 0: - r = v; - g = n; - b = wh; - break; - case 1: - r = n; - g = v; - b = wh; - break; - case 2: - r = wh; - g = v; - b = n; - break; - case 3: - r = wh; - g = n; - b = v; - break; - case 4: - r = n; - g = wh; - b = v; - break; - case 5: - r = v; - g = wh; - b = n; - break; - } - return [r * 255, g * 255, b * 255]; - }; - convert.cmyk.rgb = function(cmyk) { - const c = cmyk[0] / 100; - const m = cmyk[1] / 100; - const y = cmyk[2] / 100; - const k = cmyk[3] / 100; - const r = 1 - Math.min(1, c * (1 - k) + k); - const g = 1 - Math.min(1, m * (1 - k) + k); - const b = 1 - Math.min(1, y * (1 - k) + k); - return [r * 255, g * 255, b * 255]; - }; - convert.xyz.rgb = function(xyz) { - const x = xyz[0] / 100; - const y = xyz[1] / 100; - const z = xyz[2] / 100; - let r; - let g; - let b; - r = x * 3.2406 + y * -1.5372 + z * -0.4986; - g = x * -0.9689 + y * 1.8758 + z * 0.0415; - b = x * 0.0557 + y * -0.204 + z * 1.057; - r = r > 0.0031308 ? 1.055 * r ** (1 / 2.4) - 0.055 : r * 12.92; - g = g > 0.0031308 ? 1.055 * g ** (1 / 2.4) - 0.055 : g * 12.92; - b = b > 0.0031308 ? 1.055 * b ** (1 / 2.4) - 0.055 : b * 12.92; - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); - return [r * 255, g * 255, b * 255]; - }; - convert.xyz.lab = function(xyz) { - let x = xyz[0]; - let y = xyz[1]; - let z = xyz[2]; - x /= 95.047; - y /= 100; - z /= 108.883; - x = x > 0.008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116; - y = y > 0.008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116; - z = z > 0.008856 ? z ** (1 / 3) : 7.787 * z + 16 / 116; - const l = 116 * y - 16; - const a = 500 * (x - y); - const b = 200 * (y - z); - return [l, a, b]; - }; - convert.lab.xyz = function(lab) { - const l = lab[0]; - const a = lab[1]; - const b = lab[2]; - let x; - let y; - let z; - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; - const y2 = y ** 3; - const x2 = x ** 3; - const z2 = z ** 3; - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; - x *= 95.047; - y *= 100; - z *= 108.883; - return [x, y, z]; - }; - convert.lab.lch = function(lab) { - const l = lab[0]; - const a = lab[1]; - const b = lab[2]; - let h; - const hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; - if (h < 0) { - h += 360; - } - const c = Math.sqrt(a * a + b * b); - return [l, c, h]; - }; - convert.lch.lab = function(lch) { - const l = lch[0]; - const c = lch[1]; - const h = lch[2]; - const hr = h / 360 * 2 * Math.PI; - const a = c * Math.cos(hr); - const b = c * Math.sin(hr); - return [l, a, b]; - }; - convert.rgb.ansi16 = function(args, saturation = null) { - const [r, g, b] = args; - let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; - value = Math.round(value / 50); - if (value === 0) { - return 30; - } - let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); - if (value === 2) { - ansi += 60; - } - return ansi; - }; - convert.hsv.ansi16 = function(args) { - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); - }; - convert.rgb.ansi256 = function(args) { - const r = args[0]; - const g = args[1]; - const b = args[2]; - if (r === g && g === b) { - if (r < 8) { - return 16; - } - if (r > 248) { - return 231; - } - return Math.round((r - 8) / 247 * 24) + 232; - } - const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); - return ansi; - }; - convert.ansi16.rgb = function(args) { - let color = args % 10; - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } - color = color / 10.5 * 255; - return [color, color, color]; - } - const mult = (~~(args > 50) + 1) * 0.5; - const r = (color & 1) * mult * 255; - const g = (color >> 1 & 1) * mult * 255; - const b = (color >> 2 & 1) * mult * 255; - return [r, g, b]; - }; - convert.ansi256.rgb = function(args) { - if (args >= 232) { - const c = (args - 232) * 10 + 8; - return [c, c, c]; - } - args -= 16; - let rem; - const r = Math.floor(args / 36) / 5 * 255; - const g = Math.floor((rem = args % 36) / 6) / 5 * 255; - const b = rem % 6 / 5 * 255; - return [r, g, b]; - }; - convert.rgb.hex = function(args) { - const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); - const string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.hex.rgb = function(args) { - const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } - let colorString = match[0]; - if (match[0].length === 3) { - colorString = colorString.split("").map((char) => { - return char + char; - }).join(""); - } - const integer = parseInt(colorString, 16); - const r = integer >> 16 & 255; - const g = integer >> 8 & 255; - const b = integer & 255; - return [r, g, b]; - }; - convert.rgb.hcg = function(rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const max = Math.max(Math.max(r, g), b); - const min = Math.min(Math.min(r, g), b); - const chroma = max - min; - let grayscale; - let hue; - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } - if (chroma <= 0) { - hue = 0; - } else if (max === r) { - hue = (g - b) / chroma % 6; - } else if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma; - } - hue /= 6; - hue %= 1; - return [hue * 360, chroma * 100, grayscale * 100]; - }; - convert.hsl.hcg = function(hsl) { - const s = hsl[1] / 100; - const l = hsl[2] / 100; - const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l); - let f = 0; - if (c < 1) { - f = (l - 0.5 * c) / (1 - c); - } - return [hsl[0], c * 100, f * 100]; - }; - convert.hsv.hcg = function(hsv) { - const s = hsv[1] / 100; - const v = hsv[2] / 100; - const c = s * v; - let f = 0; - if (c < 1) { - f = (v - c) / (1 - c); - } - return [hsv[0], c * 100, f * 100]; - }; - convert.hcg.rgb = function(hcg) { - const h = hcg[0] / 360; - const c = hcg[1] / 100; - const g = hcg[2] / 100; - if (c === 0) { - return [g * 255, g * 255, g * 255]; - } - const pure = [0, 0, 0]; - const hi = h % 1 * 6; - const v = hi % 1; - const w = 1 - v; - let mg = 0; - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; - pure[1] = v; - pure[2] = 0; - break; - case 1: - pure[0] = w; - pure[1] = 1; - pure[2] = 0; - break; - case 2: - pure[0] = 0; - pure[1] = 1; - pure[2] = v; - break; - case 3: - pure[0] = 0; - pure[1] = w; - pure[2] = 1; - break; - case 4: - pure[0] = v; - pure[1] = 0; - pure[2] = 1; - break; - default: - pure[0] = 1; - pure[1] = 0; - pure[2] = w; - } - mg = (1 - c) * g; - return [ - (c * pure[0] + mg) * 255, - (c * pure[1] + mg) * 255, - (c * pure[2] + mg) * 255 - ]; - }; - convert.hcg.hsv = function(hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - const v = c + g * (1 - c); - let f = 0; - if (v > 0) { - f = c / v; - } - return [hcg[0], f * 100, v * 100]; - }; - convert.hcg.hsl = function(hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - const l = g * (1 - c) + 0.5 * c; - let s = 0; - if (l > 0 && l < 0.5) { - s = c / (2 * l); - } else if (l >= 0.5 && l < 1) { - s = c / (2 * (1 - l)); - } - return [hcg[0], s * 100, l * 100]; - }; - convert.hcg.hwb = function(hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - const v = c + g * (1 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; - }; - convert.hwb.hcg = function(hwb) { - const w = hwb[1] / 100; - const b = hwb[2] / 100; - const v = 1 - b; - const c = v - w; - let g = 0; - if (c < 1) { - g = (v - c) / (1 - c); - } - return [hwb[0], c * 100, g * 100]; - }; - convert.apple.rgb = function(apple) { - return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; - }; - convert.rgb.apple = function(rgb) { - return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; - }; - convert.gray.rgb = function(args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; - }; - convert.gray.hsl = function(args) { - return [0, 0, args[0]]; - }; - convert.gray.hsv = convert.gray.hsl; - convert.gray.hwb = function(gray) { - return [0, 100, gray[0]]; - }; - convert.gray.cmyk = function(gray) { - return [0, 0, 0, gray[0]]; - }; - convert.gray.lab = function(gray) { - return [gray[0], 0, 0]; - }; - convert.gray.hex = function(gray) { - const val = Math.round(gray[0] / 100 * 255) & 255; - const integer = (val << 16) + (val << 8) + val; - const string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.rgb.gray = function(rgb) { - const val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; - }; -}); - -// node_modules/color-convert/route.js -var require_route = __commonJS((exports, module) => { - var conversions = require_conversions(); - function buildGraph() { - const graph = {}; - const models = Object.keys(conversions); - for (let len = models.length, i = 0;i < len; i++) { - graph[models[i]] = { - distance: -1, - parent: null - }; - } - return graph; - } - function deriveBFS(fromModel) { - const graph = buildGraph(); - const queue = [fromModel]; - graph[fromModel].distance = 0; - while (queue.length) { - const current = queue.pop(); - const adjacents = Object.keys(conversions[current]); - for (let len = adjacents.length, i = 0;i < len; i++) { - const adjacent = adjacents[i]; - const node = graph[adjacent]; - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } - return graph; - } - function link(from, to) { - return function(args) { - return to(from(args)); - }; - } - function wrapConversion(toModel, graph) { - const path = [graph[toModel].parent, toModel]; - let fn = conversions[graph[toModel].parent][toModel]; - let cur = graph[toModel].parent; - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn = link(conversions[graph[cur].parent][cur], fn); - cur = graph[cur].parent; - } - fn.conversion = path; - return fn; - } - module.exports = function(fromModel) { - const graph = deriveBFS(fromModel); - const conversion = {}; - const models = Object.keys(graph); - for (let len = models.length, i = 0;i < len; i++) { - const toModel = models[i]; - const node = graph[toModel]; - if (node.parent === null) { - continue; - } - conversion[toModel] = wrapConversion(toModel, graph); - } - return conversion; - }; -}); - -// node_modules/color-convert/index.js -var require_color_convert = __commonJS((exports, module) => { - var conversions = require_conversions(); - var route = require_route(); - var convert = {}; - var models = Object.keys(conversions); - function wrapRaw(fn) { - const wrappedFn = function(...args) { - const arg0 = args[0]; - if (arg0 === undefined || arg0 === null) { - return arg0; - } - if (arg0.length > 1) { - args = arg0; - } - return fn(args); - }; - if ("conversion" in fn) { - wrappedFn.conversion = fn.conversion; - } - return wrappedFn; - } - function wrapRounded(fn) { - const wrappedFn = function(...args) { - const arg0 = args[0]; - if (arg0 === undefined || arg0 === null) { - return arg0; - } - if (arg0.length > 1) { - args = arg0; - } - const result = fn(args); - if (typeof result === "object") { - for (let len = result.length, i = 0;i < len; i++) { - result[i] = Math.round(result[i]); - } - } - return result; - }; - if ("conversion" in fn) { - wrappedFn.conversion = fn.conversion; - } - return wrappedFn; - } - models.forEach((fromModel) => { - convert[fromModel] = {}; - Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels }); - Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels }); - const routes = route(fromModel); - const routeModels = Object.keys(routes); - routeModels.forEach((toModel) => { - const fn = routes[toModel]; - convert[fromModel][toModel] = wrapRounded(fn); - convert[fromModel][toModel].raw = wrapRaw(fn); - }); - }); - module.exports = convert; -}); - -// node_modules/ansi-styles/index.js -var require_ansi_styles = __commonJS((exports, module) => { - var wrapAnsi16 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\x1B[${code + offset}m`; - }; - var wrapAnsi256 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\x1B[${38 + offset};5;${code}m`; - }; - var wrapAnsi16m = (fn, offset) => (...args) => { - const rgb = fn(...args); - return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; - }; - var ansi2ansi = (n) => n; - var rgb2rgb = (r, g, b) => [r, g, b]; - var setLazyProperty = (object, property, get) => { - Object.defineProperty(object, property, { - get: () => { - const value = get(); - Object.defineProperty(object, property, { - value, - enumerable: true, - configurable: true - }); - return value; - }, - enumerable: true, - configurable: true - }); - }; - var colorConvert; - var makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { - if (colorConvert === undefined) { - colorConvert = require_color_convert(); - } - const offset = isBackground ? 10 : 0; - const styles = {}; - for (const [sourceSpace, suite] of Object.entries(colorConvert)) { - const name = sourceSpace === "ansi16" ? "ansi" : sourceSpace; - if (sourceSpace === targetSpace) { - styles[name] = wrap(identity, offset); - } else if (typeof suite === "object") { - styles[name] = wrap(suite[targetSpace], offset); - } - } - return styles; - }; - function assembleStyles() { - const codes = new Map; - const styles = { - modifier: { - reset: [0, 0], - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29] - }, - color: { - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - blackBright: [90, 39], - redBright: [91, 39], - greenBright: [92, 39], - yellowBright: [93, 39], - blueBright: [94, 39], - magentaBright: [95, 39], - cyanBright: [96, 39], - whiteBright: [97, 39] - }, - bgColor: { - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49], - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; - styles.color.gray = styles.color.blackBright; - styles.bgColor.bgGray = styles.bgColor.bgBlackBright; - styles.color.grey = styles.color.blackBright; - styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; - for (const [groupName, group] of Object.entries(styles)) { - for (const [styleName, style] of Object.entries(group)) { - styles[styleName] = { - open: `\x1B[${style[0]}m`, - close: `\x1B[${style[1]}m` - }; - group[styleName] = styles[styleName]; - codes.set(style[0], style[1]); - } - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); - } - Object.defineProperty(styles, "codes", { - value: codes, - enumerable: false - }); - styles.color.close = "\x1B[39m"; - styles.bgColor.close = "\x1B[49m"; - setLazyProperty(styles.color, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, false)); - setLazyProperty(styles.color, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, false)); - setLazyProperty(styles.color, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, false)); - setLazyProperty(styles.bgColor, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, true)); - setLazyProperty(styles.bgColor, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, true)); - setLazyProperty(styles.bgColor, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, true)); - return styles; - } - Object.defineProperty(module, "exports", { - enumerable: true, - get: assembleStyles - }); -}); - -// node_modules/wrap-ansi/index.js -var require_wrap_ansi = __commonJS((exports, module) => { - var stringWidth = require_string_width(); - var stripAnsi = require_strip_ansi(); - var ansiStyles = require_ansi_styles(); - var ESCAPES = new Set([ - "\x1B", - "Ā›" - ]); - var END_CODE = 39; - var wrapAnsi = (code) => `${ESCAPES.values().next().value}[${code}m`; - var wordLengths = (string) => string.split(" ").map((character) => stringWidth(character)); - var wrapWord = (rows, word, columns) => { - const characters = [...word]; - let isInsideEscape = false; - let visible = stringWidth(stripAnsi(rows[rows.length - 1])); - for (const [index, character] of characters.entries()) { - const characterLength = stringWidth(character); - if (visible + characterLength <= columns) { - rows[rows.length - 1] += character; - } else { - rows.push(character); - visible = 0; - } - if (ESCAPES.has(character)) { - isInsideEscape = true; - } else if (isInsideEscape && character === "m") { - isInsideEscape = false; - continue; - } - if (isInsideEscape) { - continue; - } - visible += characterLength; - if (visible === columns && index < characters.length - 1) { - rows.push(""); - visible = 0; - } - } - if (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) { - rows[rows.length - 2] += rows.pop(); - } - }; - var stringVisibleTrimSpacesRight = (str) => { - const words = str.split(" "); - let last = words.length; - while (last > 0) { - if (stringWidth(words[last - 1]) > 0) { - break; - } - last--; - } - if (last === words.length) { - return str; - } - return words.slice(0, last).join(" ") + words.slice(last).join(""); - }; - var exec = (string, columns, options = {}) => { - if (options.trim !== false && string.trim() === "") { - return ""; - } - let pre = ""; - let ret = ""; - let escapeCode; - const lengths = wordLengths(string); - let rows = [""]; - for (const [index, word] of string.split(" ").entries()) { - if (options.trim !== false) { - rows[rows.length - 1] = rows[rows.length - 1].trimLeft(); - } - let rowLength = stringWidth(rows[rows.length - 1]); - if (index !== 0) { - if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) { - rows.push(""); - rowLength = 0; - } - if (rowLength > 0 || options.trim === false) { - rows[rows.length - 1] += " "; - rowLength++; - } - } - if (options.hard && lengths[index] > columns) { - const remainingColumns = columns - rowLength; - const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns); - const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns); - if (breaksStartingNextLine < breaksStartingThisLine) { - rows.push(""); - } - wrapWord(rows, word, columns); - continue; - } - if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) { - if (options.wordWrap === false && rowLength < columns) { - wrapWord(rows, word, columns); - continue; - } - rows.push(""); - } - if (rowLength + lengths[index] > columns && options.wordWrap === false) { - wrapWord(rows, word, columns); - continue; - } - rows[rows.length - 1] += word; - } - if (options.trim !== false) { - rows = rows.map(stringVisibleTrimSpacesRight); - } - pre = rows.join(` -`); - for (const [index, character] of [...pre].entries()) { - ret += character; - if (ESCAPES.has(character)) { - const code2 = parseFloat(/\d[^m]*/.exec(pre.slice(index, index + 4))); - escapeCode = code2 === END_CODE ? null : code2; - } - const code = ansiStyles.codes.get(Number(escapeCode)); - if (escapeCode && code) { - if (pre[index + 1] === ` -`) { - ret += wrapAnsi(code); - } else if (character === ` -`) { - ret += wrapAnsi(escapeCode); - } - } - } - return ret; - }; - module.exports = (string, columns, options) => { - return String(string).normalize().replace(/\r\n/g, ` -`).split(` -`).map((line) => exec(line, columns, options)).join(` -`); - }; -}); - -// node_modules/@inquirer/core/dist/esm/lib/utils.js -function breakLines(content, width) { - return content.split(` -`).flatMap((line) => import_wrap_ansi.default(line, width, { trim: false, hard: true }).split(` -`).map((str) => str.trimEnd())).join(` -`); -} -function readlineWidth() { - return import_cli_width.default({ defaultWidth: 80, output: readline().output }); -} -var import_cli_width, import_wrap_ansi; -var init_utils = __esm(() => { - import_cli_width = __toESM(require_cli_width(), 1); - import_wrap_ansi = __toESM(require_wrap_ansi(), 1); - init_hook_engine(); -}); - -// node_modules/@inquirer/core/dist/esm/lib/pagination/lines.js -function split(content, width) { - return breakLines(content, width).split(` -`); -} -function rotate(count, items) { - const max = items.length; - const offset = (count % max + max) % max; - return [...items.slice(offset), ...items.slice(0, offset)]; -} -function lines({ items, width, renderItem, active, position: requested, pageSize }) { - const layouts = items.map((item, index) => ({ - item, - index, - isActive: index === active - })); - const layoutsInPage = rotate(active - requested, layouts).slice(0, pageSize); - const renderItemAt = (index) => layoutsInPage[index] == null ? [] : split(renderItem(layoutsInPage[index]), width); - const pageBuffer = Array.from({ length: pageSize }); - const activeItem = renderItemAt(requested).slice(0, pageSize); - const position = requested + activeItem.length <= pageSize ? requested : pageSize - activeItem.length; - pageBuffer.splice(position, activeItem.length, ...activeItem); - let bufferPointer = position + activeItem.length; - let layoutPointer = requested + 1; - while (bufferPointer < pageSize && layoutPointer < layoutsInPage.length) { - for (const line of renderItemAt(layoutPointer)) { - pageBuffer[bufferPointer++] = line; - if (bufferPointer >= pageSize) - break; - } - layoutPointer++; - } - bufferPointer = position - 1; - layoutPointer = requested - 1; - while (bufferPointer >= 0 && layoutPointer >= 0) { - for (const line of renderItemAt(layoutPointer).reverse()) { - pageBuffer[bufferPointer--] = line; - if (bufferPointer < 0) - break; - } - layoutPointer--; - } - return pageBuffer.filter((line) => typeof line === "string"); -} -var init_lines = __esm(() => { - init_utils(); -}); - -// node_modules/@inquirer/core/dist/esm/lib/pagination/position.js -function finite({ active, pageSize, total }) { - const middle = Math.floor(pageSize / 2); - if (total <= pageSize || active < middle) - return active; - if (active >= total - middle) - return active + pageSize - total; - return middle; -} -function infinite({ active, lastActive, total, pageSize, pointer }) { - if (total <= pageSize) - return active; - if (lastActive < active && active - lastActive < pageSize) { - return Math.min(Math.floor(pageSize / 2), pointer + active - lastActive); - } - return pointer; -} - -// node_modules/@inquirer/core/dist/esm/lib/pagination/use-pagination.js -function usePagination({ items, active, renderItem, pageSize, loop = true }) { - const state = useRef({ position: 0, lastActive: 0 }); - const position = loop ? infinite({ - active, - lastActive: state.current.lastActive, - total: items.length, - pageSize, - pointer: state.current.position - }) : finite({ - active, - total: items.length, - pageSize - }); - state.current.position = position; - state.current.lastActive = active; - return lines({ - items, - width: readlineWidth(), - renderItem, - active, - position, - pageSize - }).join(` -`); -} -var init_use_pagination = __esm(() => { - init_use_ref(); - init_utils(); - init_lines(); -}); - -// node_modules/mute-stream/lib/index.js -var require_lib2 = __commonJS((exports, module) => { - var Stream = __require("stream"); - - class MuteStream extends Stream { - #isTTY = null; - constructor(opts = {}) { - super(opts); - this.writable = this.readable = true; - this.muted = false; - this.on("pipe", this._onpipe); - this.replace = opts.replace; - this._prompt = opts.prompt || null; - this._hadControl = false; - } - #destSrc(key, def) { - if (this._dest) { - return this._dest[key]; - } - if (this._src) { - return this._src[key]; - } - return def; - } - #proxy(method, ...args) { - if (typeof this._dest?.[method] === "function") { - this._dest[method](...args); - } - if (typeof this._src?.[method] === "function") { - this._src[method](...args); - } - } - get isTTY() { - if (this.#isTTY !== null) { - return this.#isTTY; - } - return this.#destSrc("isTTY", false); - } - set isTTY(val) { - this.#isTTY = val; - } - get rows() { - return this.#destSrc("rows"); - } - get columns() { - return this.#destSrc("columns"); - } - mute() { - this.muted = true; - } - unmute() { - this.muted = false; - } - _onpipe(src) { - this._src = src; - } - pipe(dest, options) { - this._dest = dest; - return super.pipe(dest, options); - } - pause() { - if (this._src) { - return this._src.pause(); - } - } - resume() { - if (this._src) { - return this._src.resume(); - } - } - write(c) { - if (this.muted) { - if (!this.replace) { - return true; - } - if (c.match(/^\u001b/)) { - if (c.indexOf(this._prompt) === 0) { - c = c.slice(this._prompt.length); - c = c.replace(/./g, this.replace); - c = this._prompt + c; - } - this._hadControl = true; - return this.emit("data", c); - } else { - if (this._prompt && this._hadControl && c.indexOf(this._prompt) === 0) { - this._hadControl = false; - this.emit("data", this._prompt); - c = c.slice(this._prompt.length); - } - c = c.toString().replace(/./g, this.replace); - } - } - this.emit("data", c); - } - end(c) { - if (this.muted) { - if (c && this.replace) { - c = c.toString().replace(/./g, this.replace); - } else { - c = null; - } - } - if (c) { - this.emit("data", c); - } - this.emit("end"); - } - destroy(...args) { - return this.#proxy("destroy", ...args); - } - destroySoon(...args) { - return this.#proxy("destroySoon", ...args); - } - close(...args) { - return this.#proxy("close", ...args); - } - } - module.exports = MuteStream; -}); - -// node_modules/signal-exit/dist/mjs/signals.js -var signals; -var init_signals = __esm(() => { - signals = []; - signals.push("SIGHUP", "SIGINT", "SIGTERM"); - if (process.platform !== "win32") { - signals.push("SIGALRM", "SIGABRT", "SIGVTALRM", "SIGXCPU", "SIGXFSZ", "SIGUSR2", "SIGTRAP", "SIGSYS", "SIGQUIT", "SIGIOT"); - } - if (process.platform === "linux") { - signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT"); - } -}); - -// node_modules/signal-exit/dist/mjs/index.js -class Emitter { - emitted = { - afterExit: false, - exit: false - }; - listeners = { - afterExit: [], - exit: [] - }; - count = 0; - id = Math.random(); - constructor() { - if (global2[kExitEmitter]) { - return global2[kExitEmitter]; - } - ObjectDefineProperty(global2, kExitEmitter, { - value: this, - writable: false, - enumerable: false, - configurable: false - }); - } - on(ev, fn) { - this.listeners[ev].push(fn); - } - removeListener(ev, fn) { - const list = this.listeners[ev]; - const i = list.indexOf(fn); - if (i === -1) { - return; - } - if (i === 0 && list.length === 1) { - list.length = 0; - } else { - list.splice(i, 1); - } - } - emit(ev, code, signal) { - if (this.emitted[ev]) { - return false; - } - this.emitted[ev] = true; - let ret = false; - for (const fn of this.listeners[ev]) { - ret = fn(code, signal) === true || ret; - } - if (ev === "exit") { - ret = this.emit("afterExit", code, signal) || ret; - } - return ret; - } -} - -class SignalExitBase { -} -var processOk = (process3) => !!process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function", kExitEmitter, global2, ObjectDefineProperty, signalExitWrap = (handler) => { - return { - onExit(cb, opts) { - return handler.onExit(cb, opts); - }, - load() { - return handler.load(); - }, - unload() { - return handler.unload(); - } - }; -}, SignalExitFallback, SignalExit, process3, onExit, load, unload; -var init_mjs = __esm(() => { - init_signals(); - kExitEmitter = Symbol.for("signal-exit emitter"); - global2 = globalThis; - ObjectDefineProperty = Object.defineProperty.bind(Object); - SignalExitFallback = class SignalExitFallback extends SignalExitBase { - onExit() { - return () => { - }; - } - load() { - } - unload() { - } - }; - SignalExit = class SignalExit extends SignalExitBase { - #hupSig = process3.platform === "win32" ? "SIGINT" : "SIGHUP"; - #emitter = new Emitter; - #process; - #originalProcessEmit; - #originalProcessReallyExit; - #sigListeners = {}; - #loaded = false; - constructor(process3) { - super(); - this.#process = process3; - this.#sigListeners = {}; - for (const sig of signals) { - this.#sigListeners[sig] = () => { - const listeners = this.#process.listeners(sig); - let { count } = this.#emitter; - const p = process3; - if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") { - count += p.__signal_exit_emitter__.count; - } - if (listeners.length === count) { - this.unload(); - const ret = this.#emitter.emit("exit", null, sig); - const s = sig === "SIGHUP" ? this.#hupSig : sig; - if (!ret) - process3.kill(process3.pid, s); - } - }; - } - this.#originalProcessReallyExit = process3.reallyExit; - this.#originalProcessEmit = process3.emit; - } - onExit(cb, opts) { - if (!processOk(this.#process)) { - return () => { - }; - } - if (this.#loaded === false) { - this.load(); - } - const ev = opts?.alwaysLast ? "afterExit" : "exit"; - this.#emitter.on(ev, cb); - return () => { - this.#emitter.removeListener(ev, cb); - if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) { - this.unload(); - } - }; - } - load() { - if (this.#loaded) { - return; - } - this.#loaded = true; - this.#emitter.count += 1; - for (const sig of signals) { - try { - const fn = this.#sigListeners[sig]; - if (fn) - this.#process.on(sig, fn); - } catch (_2) { - } - } - this.#process.emit = (ev, ...a) => { - return this.#processEmit(ev, ...a); - }; - this.#process.reallyExit = (code) => { - return this.#processReallyExit(code); - }; - } - unload() { - if (!this.#loaded) { - return; - } - this.#loaded = false; - signals.forEach((sig) => { - const listener = this.#sigListeners[sig]; - if (!listener) { - throw new Error("Listener not defined for signal: " + sig); - } - try { - this.#process.removeListener(sig, listener); - } catch (_2) { - } - }); - this.#process.emit = this.#originalProcessEmit; - this.#process.reallyExit = this.#originalProcessReallyExit; - this.#emitter.count -= 1; - } - #processReallyExit(code) { - if (!processOk(this.#process)) { - return 0; - } - this.#process.exitCode = code || 0; - this.#emitter.emit("exit", this.#process.exitCode, null); - return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode); - } - #processEmit(ev, ...args) { - const og = this.#originalProcessEmit; - if (ev === "exit" && processOk(this.#process)) { - if (typeof args[0] === "number") { - this.#process.exitCode = args[0]; - } - const ret = og.call(this.#process, ev, ...args); - this.#emitter.emit("exit", this.#process.exitCode, null); - return ret; - } else { - return og.call(this.#process, ev, ...args); - } - } - }; - process3 = globalThis.process; - ({ - onExit, - load, - unload - } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback)); -}); - -// node_modules/@inquirer/core/node_modules/strip-ansi/node_modules/ansi-regex/index.js -var require_ansi_regex2 = __commonJS((exports, module) => { - module.exports = ({ onlyFirst = false } = {}) => { - const pattern = [ - "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", - "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" - ].join("|"); - return new RegExp(pattern, onlyFirst ? undefined : "g"); - }; -}); - -// node_modules/@inquirer/core/node_modules/strip-ansi/index.js -var require_strip_ansi2 = __commonJS((exports, module) => { - var ansiRegex = require_ansi_regex2(); - module.exports = (string) => typeof string === "string" ? string.replace(ansiRegex(), "") : string; -}); - -// node_modules/ansi-escapes/index.js -var require_ansi_escapes = __commonJS((exports, module) => { - var ansiEscapes = exports; - exports.default = ansiEscapes; - var ESC = "\x1B["; - var OSC = "\x1B]"; - var BEL = "\x07"; - var SEP = ";"; - var isTerminalApp = process.env.TERM_PROGRAM === "Apple_Terminal"; - ansiEscapes.cursorTo = (x, y) => { - if (typeof x !== "number") { - throw new TypeError("The `x` argument is required"); - } - if (typeof y !== "number") { - return ESC + (x + 1) + "G"; - } - return ESC + (y + 1) + ";" + (x + 1) + "H"; - }; - ansiEscapes.cursorMove = (x, y) => { - if (typeof x !== "number") { - throw new TypeError("The `x` argument is required"); - } - let ret = ""; - if (x < 0) { - ret += ESC + -x + "D"; - } else if (x > 0) { - ret += ESC + x + "C"; - } - if (y < 0) { - ret += ESC + -y + "A"; - } else if (y > 0) { - ret += ESC + y + "B"; - } - return ret; - }; - ansiEscapes.cursorUp = (count = 1) => ESC + count + "A"; - ansiEscapes.cursorDown = (count = 1) => ESC + count + "B"; - ansiEscapes.cursorForward = (count = 1) => ESC + count + "C"; - ansiEscapes.cursorBackward = (count = 1) => ESC + count + "D"; - ansiEscapes.cursorLeft = ESC + "G"; - ansiEscapes.cursorSavePosition = isTerminalApp ? "\x1B7" : ESC + "s"; - ansiEscapes.cursorRestorePosition = isTerminalApp ? "\x1B8" : ESC + "u"; - ansiEscapes.cursorGetPosition = ESC + "6n"; - ansiEscapes.cursorNextLine = ESC + "E"; - ansiEscapes.cursorPrevLine = ESC + "F"; - ansiEscapes.cursorHide = ESC + "?25l"; - ansiEscapes.cursorShow = ESC + "?25h"; - ansiEscapes.eraseLines = (count) => { - let clear = ""; - for (let i = 0;i < count; i++) { - clear += ansiEscapes.eraseLine + (i < count - 1 ? ansiEscapes.cursorUp() : ""); - } - if (count) { - clear += ansiEscapes.cursorLeft; - } - return clear; - }; - ansiEscapes.eraseEndLine = ESC + "K"; - ansiEscapes.eraseStartLine = ESC + "1K"; - ansiEscapes.eraseLine = ESC + "2K"; - ansiEscapes.eraseDown = ESC + "J"; - ansiEscapes.eraseUp = ESC + "1J"; - ansiEscapes.eraseScreen = ESC + "2J"; - ansiEscapes.scrollUp = ESC + "S"; - ansiEscapes.scrollDown = ESC + "T"; - ansiEscapes.clearScreen = "\x1Bc"; - ansiEscapes.clearTerminal = process.platform === "win32" ? `${ansiEscapes.eraseScreen}${ESC}0f` : `${ansiEscapes.eraseScreen}${ESC}3J${ESC}H`; - ansiEscapes.beep = BEL; - ansiEscapes.link = (text, url) => { - return [ - OSC, - "8", - SEP, - SEP, - url, - BEL, - text, - OSC, - "8", - SEP, - SEP, - BEL - ].join(""); - }; - ansiEscapes.image = (buffer, options = {}) => { - let ret = `${OSC}1337;File=inline=1`; - if (options.width) { - ret += `;width=${options.width}`; - } - if (options.height) { - ret += `;height=${options.height}`; - } - if (options.preserveAspectRatio === false) { - ret += ";preserveAspectRatio=0"; - } - return ret + ":" + buffer.toString("base64") + BEL; - }; - ansiEscapes.iTerm = { - setCwd: (cwd = process.cwd()) => `${OSC}50;CurrentDir=${cwd}${BEL}`, - annotation: (message, options = {}) => { - let ret = `${OSC}1337;`; - const hasX = typeof options.x !== "undefined"; - const hasY = typeof options.y !== "undefined"; - if ((hasX || hasY) && !(hasX && hasY && typeof options.length !== "undefined")) { - throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined"); - } - message = message.replace(/\|/g, ""); - ret += options.isHidden ? "AddHiddenAnnotation=" : "AddAnnotation="; - if (options.length > 0) { - ret += (hasX ? [message, options.length, options.x, options.y] : [options.length, message]).join("|"); - } else { - ret += message; - } - return ret + BEL; - } - }; -}); - -// node_modules/@inquirer/core/dist/esm/lib/screen-manager.js -function cursorDown(n) { - return n > 0 ? import_ansi_escapes.default.cursorDown(n) : ""; -} - -class ScreenManager { - rl; - height = 0; - extraLinesUnderPrompt = 0; - cursorPos; - constructor(rl) { - this.rl = rl; - this.rl = rl; - this.cursorPos = rl.getCursorPos(); - } - write(content) { - this.rl.output.unmute(); - this.rl.output.write(content); - this.rl.output.mute(); - } - render(content, bottomContent = "") { - const promptLine = lastLine(content); - const rawPromptLine = import_strip_ansi.default(promptLine); - let prompt = rawPromptLine; - if (this.rl.line.length > 0) { - prompt = prompt.slice(0, -this.rl.line.length); - } - this.rl.setPrompt(prompt); - this.cursorPos = this.rl.getCursorPos(); - const width = readlineWidth(); - content = breakLines(content, width); - bottomContent = breakLines(bottomContent, width); - if (rawPromptLine.length % width === 0) { - content += ` -`; - } - let output = content + (bottomContent ? ` -` + bottomContent : ""); - const promptLineUpDiff = Math.floor(rawPromptLine.length / width) - this.cursorPos.rows; - const bottomContentHeight = promptLineUpDiff + (bottomContent ? height(bottomContent) : 0); - if (bottomContentHeight > 0) - output += import_ansi_escapes.default.cursorUp(bottomContentHeight); - output += import_ansi_escapes.default.cursorTo(this.cursorPos.cols); - this.write(cursorDown(this.extraLinesUnderPrompt) + import_ansi_escapes.default.eraseLines(this.height) + output); - this.extraLinesUnderPrompt = bottomContentHeight; - this.height = height(output); - } - checkCursorPos() { - const cursorPos = this.rl.getCursorPos(); - if (cursorPos.cols !== this.cursorPos.cols) { - this.write(import_ansi_escapes.default.cursorTo(cursorPos.cols)); - this.cursorPos = cursorPos; - } - } - done({ clearContent }) { - this.rl.setPrompt(""); - let output = cursorDown(this.extraLinesUnderPrompt); - output += clearContent ? import_ansi_escapes.default.eraseLines(this.height) : ` -`; - output += import_ansi_escapes.default.cursorShow; - this.write(output); - this.rl.close(); - } -} -var import_strip_ansi, import_ansi_escapes, height = (content) => content.split(` -`).length, lastLine = (content) => content.split(` -`).pop() ?? ""; -var init_screen_manager = __esm(() => { - import_strip_ansi = __toESM(require_strip_ansi2(), 1); - import_ansi_escapes = __toESM(require_ansi_escapes(), 1); - init_utils(); -}); - -// node_modules/@inquirer/core/dist/esm/lib/promise-polyfill.js -var PromisePolyfill; -var init_promise_polyfill = __esm(() => { - PromisePolyfill = class PromisePolyfill extends Promise { - static withResolver() { - let resolve; - let reject; - const promise = new Promise((res, rej) => { - resolve = res; - reject = rej; - }); - return { promise, resolve, reject }; - } - }; -}); - -// node_modules/@inquirer/core/dist/esm/lib/create-prompt.js -import * as readline2 from "node:readline"; -import { AsyncResource as AsyncResource3 } from "node:async_hooks"; -function getCallSites() { - const _prepareStackTrace = Error.prepareStackTrace; - try { - let result = []; - Error.prepareStackTrace = (_2, callSites) => { - const callSitesWithoutCurrent = callSites.slice(1); - result = callSitesWithoutCurrent; - return callSitesWithoutCurrent; - }; - new Error().stack; - return result; - } finally { - Error.prepareStackTrace = _prepareStackTrace; - } -} -function createPrompt(view) { - const callSites = getCallSites(); - const callerFilename = callSites[1]?.getFileName?.(); - const prompt = (config, context = {}) => { - const { input = process.stdin, signal } = context; - const cleanups = new Set; - const output = new import_mute_stream.default; - output.pipe(context.output ?? process.stdout); - const rl = readline2.createInterface({ - terminal: true, - input, - output - }); - const screen = new ScreenManager(rl); - const { promise, resolve, reject } = PromisePolyfill.withResolver(); - const cancel = () => reject(new CancelPromptError); - if (signal) { - const abort = () => reject(new AbortPromptError({ cause: signal.reason })); - if (signal.aborted) { - abort(); - return Object.assign(promise, { cancel }); - } - signal.addEventListener("abort", abort); - cleanups.add(() => signal.removeEventListener("abort", abort)); - } - cleanups.add(onExit((code, signal2) => { - reject(new ExitPromptError(`User force closed the prompt with ${code} ${signal2}`)); - })); - const checkCursorPos = () => screen.checkCursorPos(); - rl.input.on("keypress", checkCursorPos); - cleanups.add(() => rl.input.removeListener("keypress", checkCursorPos)); - return withHooks(rl, (cycle) => { - const hooksCleanup = AsyncResource3.bind(() => effectScheduler.clearAll()); - rl.on("close", hooksCleanup); - cleanups.add(() => rl.removeListener("close", hooksCleanup)); - cycle(() => { - try { - const nextView = view(config, (value) => { - setImmediate(() => resolve(value)); - }); - if (nextView === undefined) { - throw new Error(`Prompt functions must return a string. - at ${callerFilename}`); - } - const [content, bottomContent] = typeof nextView === "string" ? [nextView] : nextView; - screen.render(content, bottomContent); - effectScheduler.run(); - } catch (error) { - reject(error); - } - }); - return Object.assign(promise.then((answer) => { - effectScheduler.clearAll(); - return answer; - }, (error) => { - effectScheduler.clearAll(); - throw error; - }).finally(() => { - cleanups.forEach((cleanup) => cleanup()); - screen.done({ clearContent: Boolean(context.clearPromptOnDone) }); - output.end(); - }).then(() => promise), { cancel }); - }); - }; - return prompt; -} -var import_mute_stream; -var init_create_prompt = __esm(() => { - import_mute_stream = __toESM(require_lib2(), 1); - init_mjs(); - init_screen_manager(); - init_promise_polyfill(); - init_hook_engine(); - init_errors(); -}); - -// node_modules/@inquirer/core/dist/esm/lib/Separator.js -class Separator { - separator = import_yoctocolors_cjs2.default.dim(Array.from({ length: 15 }).join(esm_default.line)); - type = "separator"; - constructor(separator) { - if (separator) { - this.separator = separator; - } - } - static isSeparator(choice) { - return Boolean(choice && typeof choice === "object" && "type" in choice && choice.type === "separator"); - } -} -var import_yoctocolors_cjs2; -var init_Separator = __esm(() => { - import_yoctocolors_cjs2 = __toESM(require_yoctocolors_cjs(), 1); - init_esm(); -}); - -// node_modules/@inquirer/core/dist/esm/index.js -var init_esm2 = __esm(() => { - init_errors(); - init_use_prefix(); - init_use_state(); - init_use_effect(); - init_use_memo(); - init_use_ref(); - init_use_keypress(); - init_make_theme(); - init_use_pagination(); - init_create_prompt(); - init_Separator(); -}); - -// node_modules/@inquirer/checkbox/dist/esm/index.js -function isSelectable(item) { - return !Separator.isSeparator(item) && !item.disabled; -} -function isChecked(item) { - return isSelectable(item) && Boolean(item.checked); -} -function toggle(item) { - return isSelectable(item) ? { ...item, checked: !item.checked } : item; -} -function check(checked) { - return function(item) { - return isSelectable(item) ? { ...item, checked } : item; - }; -} -function normalizeChoices(choices) { - return choices.map((choice) => { - if (Separator.isSeparator(choice)) - return choice; - if (typeof choice === "string") { - return { - value: choice, - name: choice, - short: choice, - disabled: false, - checked: false - }; - } - const name = choice.name ?? String(choice.value); - return { - value: choice.value, - name, - short: choice.short ?? name, - description: choice.description, - disabled: choice.disabled ?? false, - checked: choice.checked ?? false - }; - }); -} -var import_yoctocolors_cjs3, import_ansi_escapes2, checkboxTheme, esm_default2; -var init_esm3 = __esm(() => { - init_esm2(); - import_yoctocolors_cjs3 = __toESM(require_yoctocolors_cjs(), 1); - init_esm(); - import_ansi_escapes2 = __toESM(require_ansi_escapes(), 1); - init_esm2(); - checkboxTheme = { - icon: { - checked: import_yoctocolors_cjs3.default.green(esm_default.circleFilled), - unchecked: esm_default.circle, - cursor: esm_default.pointer - }, - style: { - disabledChoice: (text) => import_yoctocolors_cjs3.default.dim(`- ${text}`), - renderSelectedChoices: (selectedChoices) => selectedChoices.map((choice) => choice.short).join(", "), - description: (text) => import_yoctocolors_cjs3.default.cyan(text) - }, - helpMode: "auto" - }; - esm_default2 = createPrompt((config, done) => { - const { instructions, pageSize = 7, loop = true, required, validate = () => true } = config; - const theme = makeTheme(checkboxTheme, config.theme); - const firstRender = useRef(true); - const [status, setStatus] = useState("idle"); - const prefix = usePrefix({ status, theme }); - const [items, setItems] = useState(normalizeChoices(config.choices)); - const bounds = useMemo(() => { - const first = items.findIndex(isSelectable); - const last = items.findLastIndex(isSelectable); - if (first === -1) { - throw new ValidationError("[checkbox prompt] No selectable choices. All choices are disabled."); - } - return { first, last }; - }, [items]); - const [active, setActive] = useState(bounds.first); - const [showHelpTip, setShowHelpTip] = useState(true); - const [errorMsg, setError] = useState(); - useKeypress(async (key2) => { - if (isEnterKey(key2)) { - const selection = items.filter(isChecked); - const isValid = await validate([...selection]); - if (required && !items.some(isChecked)) { - setError("At least one choice must be selected"); - } else if (isValid === true) { - setStatus("done"); - done(selection.map((choice) => choice.value)); - } else { - setError(isValid || "You must select a valid value"); - } - } else if (isUpKey(key2) || isDownKey(key2)) { - if (loop || isUpKey(key2) && active !== bounds.first || isDownKey(key2) && active !== bounds.last) { - const offset = isUpKey(key2) ? -1 : 1; - let next = active; - do { - next = (next + offset + items.length) % items.length; - } while (!isSelectable(items[next])); - setActive(next); - } - } else if (isSpaceKey(key2)) { - setError(undefined); - setShowHelpTip(false); - setItems(items.map((choice, i) => i === active ? toggle(choice) : choice)); - } else if (key2.name === "a") { - const selectAll = items.some((choice) => isSelectable(choice) && !choice.checked); - setItems(items.map(check(selectAll))); - } else if (key2.name === "i") { - setItems(items.map(toggle)); - } else if (isNumberKey(key2)) { - const position = Number(key2.name) - 1; - const item = items[position]; - if (item != null && isSelectable(item)) { - setActive(position); - setItems(items.map((choice, i) => i === position ? toggle(choice) : choice)); - } - } - }); - const message = theme.style.message(config.message, status); - let description; - const page = usePagination({ - items, - active, - renderItem({ item, isActive }) { - if (Separator.isSeparator(item)) { - return ` ${item.separator}`; - } - if (item.disabled) { - const disabledLabel = typeof item.disabled === "string" ? item.disabled : "(disabled)"; - return theme.style.disabledChoice(`${item.name} ${disabledLabel}`); - } - if (isActive) { - description = item.description; - } - const checkbox = item.checked ? theme.icon.checked : theme.icon.unchecked; - const color = isActive ? theme.style.highlight : (x) => x; - const cursor = isActive ? theme.icon.cursor : " "; - return color(`${cursor}${checkbox} ${item.name}`); - }, - pageSize, - loop - }); - if (status === "done") { - const selection = items.filter(isChecked); - const answer = theme.style.answer(theme.style.renderSelectedChoices(selection, items)); - return `${prefix} ${message} ${answer}`; - } - let helpTipTop = ""; - let helpTipBottom = ""; - if (theme.helpMode === "always" || theme.helpMode === "auto" && showHelpTip && (instructions === undefined || instructions)) { - if (typeof instructions === "string") { - helpTipTop = instructions; - } else { - const keys = [ - `${theme.style.key("space")} to select`, - `${theme.style.key("a")} to toggle all`, - `${theme.style.key("i")} to invert selection`, - `and ${theme.style.key("enter")} to proceed` - ]; - helpTipTop = ` (Press ${keys.join(", ")})`; - } - if (items.length > pageSize && (theme.helpMode === "always" || theme.helpMode === "auto" && firstRender.current)) { - helpTipBottom = ` -${theme.style.help("(Use arrow keys to reveal more choices)")}`; - firstRender.current = false; - } - } - const choiceDescription = description ? ` -${theme.style.description(description)}` : ``; - let error = ""; - if (errorMsg) { - error = ` -${theme.style.error(errorMsg)}`; - } - return `${prefix} ${message}${helpTipTop} -${page}${helpTipBottom}${choiceDescription}${error}${import_ansi_escapes2.default.cursorHide}`; - }); -}); - -// node_modules/chardet/match.js -var require_match = __commonJS((exports, module) => { - module.exports = function(det, rec, confidence, name, lang) { - this.confidence = confidence; - this.name = name || rec.name(det); - this.lang = lang; - }; -}); - -// node_modules/chardet/encoding/utf8.js -var require_utf8 = __commonJS((exports, module) => { - var Match = require_match(); - module.exports = function() { - this.name = function() { - return "UTF-8"; - }; - this.match = function(det) { - var hasBOM = false, numValid = 0, numInvalid = 0, input = det.fRawInput, trailBytes = 0, confidence; - if (det.fRawLength >= 3 && (input[0] & 255) == 239 && (input[1] & 255) == 187 && (input[2] & 255) == 191) { - hasBOM = true; - } - for (var i = 0;i < det.fRawLength; i++) { - var b = input[i]; - if ((b & 128) == 0) - continue; - if ((b & 224) == 192) { - trailBytes = 1; - } else if ((b & 240) == 224) { - trailBytes = 2; - } else if ((b & 248) == 240) { - trailBytes = 3; - } else { - numInvalid++; - if (numInvalid > 5) - break; - trailBytes = 0; - } - for (;; ) { - i++; - if (i >= det.fRawLength) - break; - if ((input[i] & 192) != 128) { - numInvalid++; - break; - } - if (--trailBytes == 0) { - numValid++; - break; - } - } - } - confidence = 0; - if (hasBOM && numInvalid == 0) - confidence = 100; - else if (hasBOM && numValid > numInvalid * 10) - confidence = 80; - else if (numValid > 3 && numInvalid == 0) - confidence = 100; - else if (numValid > 0 && numInvalid == 0) - confidence = 80; - else if (numValid == 0 && numInvalid == 0) - confidence = 10; - else if (numValid > numInvalid * 10) - confidence = 25; - else - return null; - return new Match(det, this, confidence); - }; - }; -}); - -// node_modules/chardet/encoding/unicode.js -var require_unicode = __commonJS((exports, module) => { - var util = __require("util"); - var Match = require_match(); - exports.UTF_16BE = function() { - this.name = function() { - return "UTF-16BE"; - }; - this.match = function(det) { - var input = det.fRawInput; - if (input.length >= 2 && ((input[0] & 255) == 254 && (input[1] & 255) == 255)) { - return new Match(det, this, 100); - } - return null; - }; - }; - exports.UTF_16LE = function() { - this.name = function() { - return "UTF-16LE"; - }; - this.match = function(det) { - var input = det.fRawInput; - if (input.length >= 2 && ((input[0] & 255) == 255 && (input[1] & 255) == 254)) { - if (input.length >= 4 && input[2] == 0 && input[3] == 0) { - return null; - } - return new Match(det, this, 100); - } - return null; - }; - }; - function UTF_32() { - } - UTF_32.prototype.match = function(det) { - var input = det.fRawInput, limit = det.fRawLength / 4 * 4, numValid = 0, numInvalid = 0, hasBOM = false, confidence = 0; - if (limit == 0) { - return null; - } - if (this.getChar(input, 0) == 65279) { - hasBOM = true; - } - for (var i = 0;i < limit; i += 4) { - var ch = this.getChar(input, i); - if (ch < 0 || ch >= 1114111 || ch >= 55296 && ch <= 57343) { - numInvalid += 1; - } else { - numValid += 1; - } - } - if (hasBOM && numInvalid == 0) { - confidence = 100; - } else if (hasBOM && numValid > numInvalid * 10) { - confidence = 80; - } else if (numValid > 3 && numInvalid == 0) { - confidence = 100; - } else if (numValid > 0 && numInvalid == 0) { - confidence = 80; - } else if (numValid > numInvalid * 10) { - confidence = 25; - } - return confidence == 0 ? null : new Match(det, this, confidence); - }; - exports.UTF_32BE = function() { - this.name = function() { - return "UTF-32BE"; - }; - this.getChar = function(input, index) { - return (input[index + 0] & 255) << 24 | (input[index + 1] & 255) << 16 | (input[index + 2] & 255) << 8 | input[index + 3] & 255; - }; - }; - util.inherits(exports.UTF_32BE, UTF_32); - exports.UTF_32LE = function() { - this.name = function() { - return "UTF-32LE"; - }; - this.getChar = function(input, index) { - return (input[index + 3] & 255) << 24 | (input[index + 2] & 255) << 16 | (input[index + 1] & 255) << 8 | input[index + 0] & 255; - }; - }; - util.inherits(exports.UTF_32LE, UTF_32); -}); - -// node_modules/chardet/encoding/mbcs.js -var require_mbcs = __commonJS((exports, module) => { - var util = __require("util"); - var Match = require_match(); - function binarySearch(arr, searchValue) { - function find(arr2, searchValue2, left, right) { - if (right < left) - return -1; - var mid = Math.floor(left + right >>> 1); - if (searchValue2 > arr2[mid]) - return find(arr2, searchValue2, mid + 1, right); - if (searchValue2 < arr2[mid]) - return find(arr2, searchValue2, left, mid - 1); - return mid; - } - return find(arr, searchValue, 0, arr.length - 1); - } - function IteratedChar() { - this.charValue = 0; - this.index = 0; - this.nextIndex = 0; - this.error = false; - this.done = false; - this.reset = function() { - this.charValue = 0; - this.index = -1; - this.nextIndex = 0; - this.error = false; - this.done = false; - }; - this.nextByte = function(det) { - if (this.nextIndex >= det.fRawLength) { - this.done = true; - return -1; - } - var byteValue = det.fRawInput[this.nextIndex++] & 255; - return byteValue; - }; - } - function mbcs() { - } - mbcs.prototype.match = function(det) { - var singleByteCharCount = 0, doubleByteCharCount = 0, commonCharCount = 0, badCharCount = 0, totalCharCount = 0, confidence = 0; - var iter = new IteratedChar; - detectBlock: { - for (iter.reset();this.nextChar(iter, det); ) { - totalCharCount++; - if (iter.error) { - badCharCount++; - } else { - var cv = iter.charValue & 4294967295; - if (cv <= 255) { - singleByteCharCount++; - } else { - doubleByteCharCount++; - if (this.commonChars != null) { - if (binarySearch(this.commonChars, cv) >= 0) { - commonCharCount++; - } - } - } - } - if (badCharCount >= 2 && badCharCount * 5 >= doubleByteCharCount) { - break detectBlock; - } - } - if (doubleByteCharCount <= 10 && badCharCount == 0) { - if (doubleByteCharCount == 0 && totalCharCount < 10) { - confidence = 0; - } else { - confidence = 10; - } - break detectBlock; - } - if (doubleByteCharCount < 20 * badCharCount) { - confidence = 0; - break detectBlock; - } - if (this.commonChars == null) { - confidence = 30 + doubleByteCharCount - 20 * badCharCount; - if (confidence > 100) { - confidence = 100; - } - } else { - var maxVal = Math.log(parseFloat(doubleByteCharCount) / 4); - var scaleFactor = 90 / maxVal; - confidence = Math.floor(Math.log(commonCharCount + 1) * scaleFactor + 10); - confidence = Math.min(confidence, 100); - } - } - return confidence == 0 ? null : new Match(det, this, confidence); - }; - mbcs.prototype.nextChar = function(iter, det) { - }; - exports.sjis = function() { - this.name = function() { - return "Shift-JIS"; - }; - this.language = function() { - return "ja"; - }; - this.commonChars = [ - 33088, - 33089, - 33090, - 33093, - 33115, - 33129, - 33130, - 33141, - 33142, - 33440, - 33442, - 33444, - 33449, - 33450, - 33451, - 33453, - 33455, - 33457, - 33459, - 33461, - 33463, - 33469, - 33470, - 33473, - 33476, - 33477, - 33478, - 33480, - 33481, - 33484, - 33485, - 33500, - 33504, - 33511, - 33512, - 33513, - 33514, - 33520, - 33521, - 33601, - 33603, - 33614, - 33615, - 33624, - 33630, - 33634, - 33639, - 33653, - 33654, - 33673, - 33674, - 33675, - 33677, - 33683, - 36502, - 37882, - 38314 - ]; - this.nextChar = function(iter, det) { - iter.index = iter.nextIndex; - iter.error = false; - var firstByte; - firstByte = iter.charValue = iter.nextByte(det); - if (firstByte < 0) - return false; - if (firstByte <= 127 || firstByte > 160 && firstByte <= 223) - return true; - var secondByte = iter.nextByte(det); - if (secondByte < 0) - return false; - iter.charValue = firstByte << 8 | secondByte; - if (!(secondByte >= 64 && secondByte <= 127 || secondByte >= 128 && secondByte <= 255)) { - iter.error = true; - } - return true; - }; - }; - util.inherits(exports.sjis, mbcs); - exports.big5 = function() { - this.name = function() { - return "Big5"; - }; - this.language = function() { - return "zh"; - }; - this.commonChars = [ - 41280, - 41281, - 41282, - 41283, - 41287, - 41289, - 41333, - 41334, - 42048, - 42054, - 42055, - 42056, - 42065, - 42068, - 42071, - 42084, - 42090, - 42092, - 42103, - 42147, - 42148, - 42151, - 42177, - 42190, - 42193, - 42207, - 42216, - 42237, - 42304, - 42312, - 42328, - 42345, - 42445, - 42471, - 42583, - 42593, - 42594, - 42600, - 42608, - 42664, - 42675, - 42681, - 42707, - 42715, - 42726, - 42738, - 42816, - 42833, - 42841, - 42970, - 43171, - 43173, - 43181, - 43217, - 43219, - 43236, - 43260, - 43456, - 43474, - 43507, - 43627, - 43706, - 43710, - 43724, - 43772, - 44103, - 44111, - 44208, - 44242, - 44377, - 44745, - 45024, - 45290, - 45423, - 45747, - 45764, - 45935, - 46156, - 46158, - 46412, - 46501, - 46525, - 46544, - 46552, - 46705, - 47085, - 47207, - 47428, - 47832, - 47940, - 48033, - 48593, - 49860, - 50105, - 50240, - 50271 - ]; - this.nextChar = function(iter, det) { - iter.index = iter.nextIndex; - iter.error = false; - var firstByte = iter.charValue = iter.nextByte(det); - if (firstByte < 0) - return false; - if (firstByte <= 127 || firstByte == 255) - return true; - var secondByte = iter.nextByte(det); - if (secondByte < 0) - return false; - iter.charValue = iter.charValue << 8 | secondByte; - if (secondByte < 64 || secondByte == 127 || secondByte == 255) - iter.error = true; - return true; - }; - }; - util.inherits(exports.big5, mbcs); - function eucNextChar(iter, det) { - iter.index = iter.nextIndex; - iter.error = false; - var firstByte = 0; - var secondByte = 0; - var thirdByte = 0; - buildChar: { - firstByte = iter.charValue = iter.nextByte(det); - if (firstByte < 0) { - iter.done = true; - break buildChar; - } - if (firstByte <= 141) { - break buildChar; - } - secondByte = iter.nextByte(det); - iter.charValue = iter.charValue << 8 | secondByte; - if (firstByte >= 161 && firstByte <= 254) { - if (secondByte < 161) { - iter.error = true; - } - break buildChar; - } - if (firstByte == 142) { - if (secondByte < 161) { - iter.error = true; - } - break buildChar; - } - if (firstByte == 143) { - thirdByte = iter.nextByte(det); - iter.charValue = iter.charValue << 8 | thirdByte; - if (thirdByte < 161) { - iter.error = true; - } - } - } - return iter.done == false; - } - exports.euc_jp = function() { - this.name = function() { - return "EUC-JP"; - }; - this.language = function() { - return "ja"; - }; - this.commonChars = [ - 41377, - 41378, - 41379, - 41382, - 41404, - 41418, - 41419, - 41430, - 41431, - 42146, - 42148, - 42150, - 42152, - 42154, - 42155, - 42156, - 42157, - 42159, - 42161, - 42163, - 42165, - 42167, - 42169, - 42171, - 42173, - 42175, - 42176, - 42177, - 42179, - 42180, - 42182, - 42183, - 42184, - 42185, - 42186, - 42187, - 42190, - 42191, - 42192, - 42206, - 42207, - 42209, - 42210, - 42212, - 42216, - 42217, - 42218, - 42219, - 42220, - 42223, - 42226, - 42227, - 42402, - 42403, - 42404, - 42406, - 42407, - 42410, - 42413, - 42415, - 42416, - 42419, - 42421, - 42423, - 42424, - 42425, - 42431, - 42435, - 42438, - 42439, - 42440, - 42441, - 42443, - 42448, - 42453, - 42454, - 42455, - 42462, - 42464, - 42465, - 42469, - 42473, - 42474, - 42475, - 42476, - 42477, - 42483, - 47273, - 47572, - 47854, - 48072, - 48880, - 49079, - 50410, - 50940, - 51133, - 51896, - 51955, - 52188, - 52689 - ]; - this.nextChar = eucNextChar; - }; - util.inherits(exports.euc_jp, mbcs); - exports.euc_kr = function() { - this.name = function() { - return "EUC-KR"; - }; - this.language = function() { - return "ko"; - }; - this.commonChars = [ - 45217, - 45235, - 45253, - 45261, - 45268, - 45286, - 45293, - 45304, - 45306, - 45308, - 45496, - 45497, - 45511, - 45527, - 45538, - 45994, - 46011, - 46274, - 46287, - 46297, - 46315, - 46501, - 46517, - 46527, - 46535, - 46569, - 46835, - 47023, - 47042, - 47054, - 47270, - 47278, - 47286, - 47288, - 47291, - 47337, - 47531, - 47534, - 47564, - 47566, - 47613, - 47800, - 47822, - 47824, - 47857, - 48103, - 48115, - 48125, - 48301, - 48314, - 48338, - 48374, - 48570, - 48576, - 48579, - 48581, - 48838, - 48840, - 48863, - 48878, - 48888, - 48890, - 49057, - 49065, - 49088, - 49124, - 49131, - 49132, - 49144, - 49319, - 49327, - 49336, - 49338, - 49339, - 49341, - 49351, - 49356, - 49358, - 49359, - 49366, - 49370, - 49381, - 49403, - 49404, - 49572, - 49574, - 49590, - 49622, - 49631, - 49654, - 49656, - 50337, - 50637, - 50862, - 51151, - 51153, - 51154, - 51160, - 51173, - 51373 - ]; - this.nextChar = eucNextChar; - }; - util.inherits(exports.euc_kr, mbcs); - exports.gb_18030 = function() { - this.name = function() { - return "GB18030"; - }; - this.language = function() { - return "zh"; - }; - this.nextChar = function(iter, det) { - iter.index = iter.nextIndex; - iter.error = false; - var firstByte = 0; - var secondByte = 0; - var thirdByte = 0; - var fourthByte = 0; - buildChar: { - firstByte = iter.charValue = iter.nextByte(det); - if (firstByte < 0) { - iter.done = true; - break buildChar; - } - if (firstByte <= 128) { - break buildChar; - } - secondByte = iter.nextByte(det); - iter.charValue = iter.charValue << 8 | secondByte; - if (firstByte >= 129 && firstByte <= 254) { - if (secondByte >= 64 && secondByte <= 126 || secondByte >= 80 && secondByte <= 254) { - break buildChar; - } - if (secondByte >= 48 && secondByte <= 57) { - thirdByte = iter.nextByte(det); - if (thirdByte >= 129 && thirdByte <= 254) { - fourthByte = iter.nextByte(det); - if (fourthByte >= 48 && fourthByte <= 57) { - iter.charValue = iter.charValue << 16 | thirdByte << 8 | fourthByte; - break buildChar; - } - } - } - iter.error = true; - break buildChar; - } - } - return iter.done == false; - }; - this.commonChars = [ - 41377, - 41378, - 41379, - 41380, - 41392, - 41393, - 41457, - 41459, - 41889, - 41900, - 41914, - 45480, - 45496, - 45502, - 45755, - 46025, - 46070, - 46323, - 46525, - 46532, - 46563, - 46767, - 46804, - 46816, - 47010, - 47016, - 47037, - 47062, - 47069, - 47284, - 47327, - 47350, - 47531, - 47561, - 47576, - 47610, - 47613, - 47821, - 48039, - 48086, - 48097, - 48122, - 48316, - 48347, - 48382, - 48588, - 48845, - 48861, - 49076, - 49094, - 49097, - 49332, - 49389, - 49611, - 49883, - 50119, - 50396, - 50410, - 50636, - 50935, - 51192, - 51371, - 51403, - 51413, - 51431, - 51663, - 51706, - 51889, - 51893, - 51911, - 51920, - 51926, - 51957, - 51965, - 52460, - 52728, - 52906, - 52932, - 52946, - 52965, - 53173, - 53186, - 53206, - 53442, - 53445, - 53456, - 53460, - 53671, - 53930, - 53938, - 53941, - 53947, - 53972, - 54211, - 54224, - 54269, - 54466, - 54490, - 54754, - 54992 - ]; - }; - util.inherits(exports.gb_18030, mbcs); -}); - -// node_modules/chardet/encoding/sbcs.js -var require_sbcs = __commonJS((exports, module) => { - var util = __require("util"); - var Match = require_match(); - function NGramParser(theNgramList, theByteMap) { - var N_GRAM_MASK = 16777215; - this.byteIndex = 0; - this.ngram = 0; - this.ngramList = theNgramList; - this.byteMap = theByteMap; - this.ngramCount = 0; - this.hitCount = 0; - this.spaceChar; - this.search = function(table, value) { - var index = 0; - if (table[index + 32] <= value) - index += 32; - if (table[index + 16] <= value) - index += 16; - if (table[index + 8] <= value) - index += 8; - if (table[index + 4] <= value) - index += 4; - if (table[index + 2] <= value) - index += 2; - if (table[index + 1] <= value) - index += 1; - if (table[index] > value) - index -= 1; - if (index < 0 || table[index] != value) - return -1; - return index; - }; - this.lookup = function(thisNgram) { - this.ngramCount += 1; - if (this.search(this.ngramList, thisNgram) >= 0) { - this.hitCount += 1; - } - }; - this.addByte = function(b) { - this.ngram = (this.ngram << 8) + (b & 255) & N_GRAM_MASK; - this.lookup(this.ngram); - }; - this.nextByte = function(det) { - if (this.byteIndex >= det.fInputLen) - return -1; - return det.fInputBytes[this.byteIndex++] & 255; - }; - this.parse = function(det, spaceCh) { - var b, ignoreSpace = false; - this.spaceChar = spaceCh; - while ((b = this.nextByte(det)) >= 0) { - var mb = this.byteMap[b]; - if (mb != 0) { - if (!(mb == this.spaceChar && ignoreSpace)) { - this.addByte(mb); - } - ignoreSpace = mb == this.spaceChar; - } - } - this.addByte(this.spaceChar); - var rawPercent = this.hitCount / this.ngramCount; - if (rawPercent > 0.33) - return 98; - return Math.floor(rawPercent * 300); - }; - } - function NGramsPlusLang(la, ng) { - this.fLang = la; - this.fNGrams = ng; - } - function sbcs() { - } - sbcs.prototype.spaceChar = 32; - sbcs.prototype.ngrams = function() { - }; - sbcs.prototype.byteMap = function() { - }; - sbcs.prototype.match = function(det) { - var ngrams = this.ngrams(); - var multiple = Array.isArray(ngrams) && ngrams[0] instanceof NGramsPlusLang; - if (!multiple) { - var parser = new NGramParser(ngrams, this.byteMap()); - var confidence = parser.parse(det, this.spaceChar); - return confidence <= 0 ? null : new Match(det, this, confidence); - } - var bestConfidenceSoFar = -1; - var lang = null; - for (var i = ngrams.length - 1;i >= 0; i--) { - var ngl = ngrams[i]; - var parser = new NGramParser(ngl.fNGrams, this.byteMap()); - var confidence = parser.parse(det, this.spaceChar); - if (confidence > bestConfidenceSoFar) { - bestConfidenceSoFar = confidence; - lang = ngl.fLang; - } - } - var name = this.name(det); - return bestConfidenceSoFar <= 0 ? null : new Match(det, this, bestConfidenceSoFar, name, lang); - }; - exports.ISO_8859_1 = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 170, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 181, - 32, - 32, - 32, - 32, - 186, - 32, - 32, - 32, - 32, - 32, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 32, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 32, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255 - ]; - }; - this.ngrams = function() { - return [ - new NGramsPlusLang("da", [ - 2122086, - 2122100, - 2122853, - 2123118, - 2123122, - 2123375, - 2123873, - 2124064, - 2125157, - 2125671, - 2126053, - 2126697, - 2126708, - 2126953, - 2127465, - 6383136, - 6385184, - 6385252, - 6386208, - 6386720, - 6579488, - 6579566, - 6579570, - 6579572, - 6627443, - 6644768, - 6644837, - 6647328, - 6647396, - 6648352, - 6648421, - 6648608, - 6648864, - 6713202, - 6776096, - 6776174, - 6776178, - 6907749, - 6908960, - 6909543, - 7038240, - 7039845, - 7103858, - 7104871, - 7105637, - 7169380, - 7234661, - 7234848, - 7235360, - 7235429, - 7300896, - 7302432, - 7303712, - 7398688, - 7479396, - 7479397, - 7479411, - 7496992, - 7566437, - 7610483, - 7628064, - 7628146, - 7629164, - 7759218 - ]), - new NGramsPlusLang("de", [ - 2122094, - 2122101, - 2122341, - 2122849, - 2122853, - 2122857, - 2123113, - 2123621, - 2123873, - 2124142, - 2125161, - 2126691, - 2126693, - 2127214, - 2127461, - 2127471, - 2127717, - 2128501, - 6448498, - 6514720, - 6514789, - 6514804, - 6578547, - 6579566, - 6579570, - 6580581, - 6627428, - 6627443, - 6646126, - 6646132, - 6647328, - 6648352, - 6648608, - 6776174, - 6841710, - 6845472, - 6906728, - 6907168, - 6909472, - 6909541, - 6911008, - 7104867, - 7105637, - 7217249, - 7217252, - 7217267, - 7234592, - 7234661, - 7234848, - 7235360, - 7235429, - 7238757, - 7479396, - 7496805, - 7497065, - 7562088, - 7566437, - 7610468, - 7628064, - 7628142, - 7628146, - 7695972, - 7695975, - 7759218 - ]), - new NGramsPlusLang("en", [ - 2122016, - 2122094, - 2122341, - 2122607, - 2123375, - 2123873, - 2123877, - 2124142, - 2125153, - 2125670, - 2125938, - 2126437, - 2126689, - 2126708, - 2126952, - 2126959, - 2127720, - 6383972, - 6384672, - 6385184, - 6385252, - 6386464, - 6386720, - 6386789, - 6386793, - 6561889, - 6561908, - 6627425, - 6627443, - 6627444, - 6644768, - 6647412, - 6648352, - 6648608, - 6713202, - 6840692, - 6841632, - 6841714, - 6906912, - 6909472, - 6909543, - 6909806, - 6910752, - 7217249, - 7217268, - 7234592, - 7235360, - 7238688, - 7300640, - 7302688, - 7303712, - 7496992, - 7500576, - 7544929, - 7544948, - 7561577, - 7566368, - 7610484, - 7628146, - 7628897, - 7628901, - 7629167, - 7630624, - 7631648 - ]), - new NGramsPlusLang("es", [ - 2122016, - 2122593, - 2122607, - 2122853, - 2123116, - 2123118, - 2123123, - 2124142, - 2124897, - 2124911, - 2125921, - 2125935, - 2125938, - 2126197, - 2126437, - 2126693, - 2127214, - 2128160, - 6365283, - 6365284, - 6365285, - 6365292, - 6365296, - 6382441, - 6382703, - 6384672, - 6386208, - 6386464, - 6515187, - 6516590, - 6579488, - 6579564, - 6582048, - 6627428, - 6627429, - 6627436, - 6646816, - 6647328, - 6647412, - 6648608, - 6648692, - 6907246, - 6943598, - 7102752, - 7106419, - 7217253, - 7238757, - 7282788, - 7282789, - 7302688, - 7303712, - 7303968, - 7364978, - 7435621, - 7495968, - 7497075, - 7544932, - 7544933, - 7544944, - 7562528, - 7628064, - 7630624, - 7693600, - 15953440 - ]), - new NGramsPlusLang("fr", [ - 2122101, - 2122607, - 2122849, - 2122853, - 2122869, - 2123118, - 2123124, - 2124897, - 2124901, - 2125921, - 2125935, - 2125938, - 2126197, - 2126693, - 2126703, - 2127214, - 2154528, - 6385268, - 6386793, - 6513952, - 6516590, - 6579488, - 6579571, - 6583584, - 6627425, - 6627427, - 6627428, - 6627429, - 6627436, - 6627440, - 6627443, - 6647328, - 6647412, - 6648352, - 6648608, - 6648864, - 6649202, - 6909806, - 6910752, - 6911008, - 7102752, - 7103776, - 7103859, - 7169390, - 7217252, - 7234848, - 7238432, - 7238688, - 7302688, - 7302772, - 7304562, - 7435621, - 7479404, - 7496992, - 7544929, - 7544932, - 7544933, - 7544940, - 7544944, - 7610468, - 7628064, - 7629167, - 7693600, - 7696928 - ]), - new NGramsPlusLang("it", [ - 2122092, - 2122600, - 2122607, - 2122853, - 2122857, - 2123040, - 2124140, - 2124142, - 2124897, - 2125925, - 2125938, - 2127214, - 6365283, - 6365284, - 6365296, - 6365299, - 6386799, - 6514789, - 6516590, - 6579564, - 6580512, - 6627425, - 6627427, - 6627428, - 6627433, - 6627436, - 6627440, - 6627443, - 6646816, - 6646892, - 6647412, - 6648352, - 6841632, - 6889569, - 6889571, - 6889572, - 6889587, - 6906144, - 6908960, - 6909472, - 6909806, - 7102752, - 7103776, - 7104800, - 7105633, - 7234848, - 7235872, - 7237408, - 7238757, - 7282785, - 7282788, - 7282793, - 7282803, - 7302688, - 7302757, - 7366002, - 7495968, - 7496992, - 7563552, - 7627040, - 7628064, - 7629088, - 7630624, - 8022383 - ]), - new NGramsPlusLang("nl", [ - 2122092, - 2122341, - 2122849, - 2122853, - 2122857, - 2123109, - 2123118, - 2123621, - 2123877, - 2124142, - 2125153, - 2125157, - 2125680, - 2126949, - 2127457, - 2127461, - 2127471, - 2127717, - 2128489, - 6381934, - 6381938, - 6385184, - 6385252, - 6386208, - 6386720, - 6514804, - 6579488, - 6579566, - 6579570, - 6627426, - 6627446, - 6645102, - 6645106, - 6647328, - 6648352, - 6648435, - 6648864, - 6776174, - 6841716, - 6907168, - 6909472, - 6909543, - 6910752, - 7217250, - 7217252, - 7217253, - 7217256, - 7217263, - 7217270, - 7234661, - 7235360, - 7302756, - 7303026, - 7303200, - 7303712, - 7562088, - 7566437, - 7610468, - 7628064, - 7628142, - 7628146, - 7758190, - 7759218, - 7761775 - ]), - new NGramsPlusLang("no", [ - 2122100, - 2122102, - 2122853, - 2123118, - 2123122, - 2123375, - 2123873, - 2124064, - 2125157, - 2125671, - 2126053, - 2126693, - 2126699, - 2126703, - 2126708, - 2126953, - 2127465, - 2155808, - 6385252, - 6386208, - 6386720, - 6579488, - 6579566, - 6579572, - 6627443, - 6644768, - 6647328, - 6647397, - 6648352, - 6648421, - 6648864, - 6648948, - 6713202, - 6776174, - 6908779, - 6908960, - 6909543, - 7038240, - 7039845, - 7103776, - 7105637, - 7169380, - 7169390, - 7217267, - 7234848, - 7235360, - 7235429, - 7237221, - 7300896, - 7302432, - 7303712, - 7398688, - 7479411, - 7496992, - 7565165, - 7566437, - 7610483, - 7628064, - 7628142, - 7628146, - 7629164, - 7631904, - 7631973, - 7759218 - ]), - new NGramsPlusLang("pt", [ - 2122016, - 2122607, - 2122849, - 2122853, - 2122863, - 2123040, - 2123123, - 2125153, - 2125423, - 2125600, - 2125921, - 2125935, - 2125938, - 2126197, - 2126437, - 2126693, - 2127213, - 6365281, - 6365283, - 6365284, - 6365296, - 6382693, - 6382703, - 6384672, - 6386208, - 6386273, - 6386464, - 6516589, - 6516590, - 6578464, - 6579488, - 6582048, - 6582131, - 6627425, - 6627428, - 6647072, - 6647412, - 6648608, - 6648692, - 6906144, - 6906721, - 7169390, - 7238757, - 7238767, - 7282785, - 7282787, - 7282788, - 7282789, - 7282800, - 7303968, - 7364978, - 7435621, - 7495968, - 7497075, - 7544929, - 7544932, - 7544933, - 7544944, - 7566433, - 7628064, - 7630624, - 7693600, - 14905120, - 15197039 - ]), - new NGramsPlusLang("sv", [ - 2122100, - 2122102, - 2122853, - 2123118, - 2123510, - 2123873, - 2124064, - 2124142, - 2124655, - 2125157, - 2125667, - 2126053, - 2126699, - 2126703, - 2126708, - 2126953, - 2127457, - 2127465, - 2155634, - 6382693, - 6385184, - 6385252, - 6386208, - 6386804, - 6514720, - 6579488, - 6579566, - 6579570, - 6579572, - 6644768, - 6647328, - 6648352, - 6648864, - 6747762, - 6776174, - 6909036, - 6909543, - 7037216, - 7105568, - 7169380, - 7217267, - 7233824, - 7234661, - 7235360, - 7235429, - 7235950, - 7299944, - 7302432, - 7302688, - 7398688, - 7479393, - 7479411, - 7495968, - 7564129, - 7565165, - 7610483, - 7627040, - 7628064, - 7628146, - 7629164, - 7631904, - 7758194, - 14971424, - 16151072 - ]) - ]; - }; - this.name = function(det) { - return det && det.fC1Bytes ? "windows-1252" : "ISO-8859-1"; - }; - }; - util.inherits(exports.ISO_8859_1, sbcs); - exports.ISO_8859_2 = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 177, - 32, - 179, - 32, - 181, - 182, - 32, - 32, - 185, - 186, - 187, - 188, - 32, - 190, - 191, - 32, - 177, - 32, - 179, - 32, - 181, - 182, - 183, - 32, - 185, - 186, - 187, - 188, - 32, - 190, - 191, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 32, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 32, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 32 - ]; - }; - this.ngrams = function() { - return [ - new NGramsPlusLang("cs", [ - 2122016, - 2122361, - 2122863, - 2124389, - 2125409, - 2125413, - 2125600, - 2125668, - 2125935, - 2125938, - 2126072, - 2126447, - 2126693, - 2126703, - 2126708, - 2126959, - 2127392, - 2127481, - 2128481, - 6365296, - 6513952, - 6514720, - 6627440, - 6627443, - 6627446, - 6647072, - 6647533, - 6844192, - 6844260, - 6910836, - 6972704, - 7042149, - 7103776, - 7104800, - 7233824, - 7268640, - 7269408, - 7269664, - 7282800, - 7300206, - 7301737, - 7304052, - 7304480, - 7304801, - 7368548, - 7368554, - 7369327, - 7403621, - 7562528, - 7565173, - 7566433, - 7566441, - 7566446, - 7628146, - 7630573, - 7630624, - 7676016, - 12477728, - 14773997, - 15296623, - 15540336, - 15540339, - 15559968, - 16278884 - ]), - new NGramsPlusLang("hu", [ - 2122016, - 2122106, - 2122341, - 2123111, - 2123116, - 2123365, - 2123873, - 2123887, - 2124147, - 2124645, - 2124649, - 2124790, - 2124901, - 2125153, - 2125157, - 2125161, - 2125413, - 2126714, - 2126949, - 2156915, - 6365281, - 6365291, - 6365293, - 6365299, - 6384416, - 6385184, - 6388256, - 6447470, - 6448494, - 6645625, - 6646560, - 6646816, - 6646885, - 6647072, - 6647328, - 6648421, - 6648864, - 6648933, - 6648948, - 6781216, - 6844263, - 6909556, - 6910752, - 7020641, - 7075450, - 7169383, - 7170414, - 7217249, - 7233899, - 7234923, - 7234925, - 7238688, - 7300985, - 7544929, - 7567973, - 7567988, - 7568097, - 7596391, - 7610465, - 7631904, - 7659891, - 8021362, - 14773792, - 15299360 - ]), - new NGramsPlusLang("pl", [ - 2122618, - 2122863, - 2124064, - 2124389, - 2124655, - 2125153, - 2125161, - 2125409, - 2125417, - 2125668, - 2125935, - 2125938, - 2126697, - 2127648, - 2127721, - 2127737, - 2128416, - 2128481, - 6365296, - 6365303, - 6385257, - 6514720, - 6519397, - 6519417, - 6582048, - 6584937, - 6627440, - 6627443, - 6627447, - 6627450, - 6645615, - 6646304, - 6647072, - 6647401, - 6778656, - 6906144, - 6907168, - 6907242, - 7037216, - 7039264, - 7039333, - 7170405, - 7233824, - 7235937, - 7235941, - 7282800, - 7305057, - 7305065, - 7368556, - 7369313, - 7369327, - 7369338, - 7502437, - 7502457, - 7563754, - 7564137, - 7566433, - 7825765, - 7955304, - 7957792, - 8021280, - 8022373, - 8026400, - 15955744 - ]), - new NGramsPlusLang("ro", [ - 2122016, - 2122083, - 2122593, - 2122597, - 2122607, - 2122613, - 2122853, - 2122857, - 2124897, - 2125153, - 2125925, - 2125938, - 2126693, - 2126819, - 2127214, - 2144873, - 2158190, - 6365283, - 6365284, - 6386277, - 6386720, - 6386789, - 6386976, - 6513010, - 6516590, - 6518048, - 6546208, - 6579488, - 6627425, - 6627427, - 6627428, - 6627440, - 6627443, - 6644000, - 6646048, - 6646885, - 6647412, - 6648692, - 6889569, - 6889571, - 6889572, - 6889584, - 6907168, - 6908192, - 6909472, - 7102752, - 7103776, - 7106418, - 7107945, - 7234848, - 7238770, - 7303712, - 7365998, - 7496992, - 7497057, - 7501088, - 7594784, - 7628064, - 7631477, - 7660320, - 7694624, - 7695392, - 12216608, - 15625760 - ]) - ]; - }; - this.name = function(det) { - return det && det.fC1Bytes ? "windows-1250" : "ISO-8859-2"; - }; - }; - util.inherits(exports.ISO_8859_2, sbcs); - exports.ISO_8859_5 = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 32, - 254, - 255, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 32, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 32, - 254, - 255 - ]; - }; - this.ngrams = function() { - return [ - 2150944, - 2151134, - 2151646, - 2152400, - 2152480, - 2153168, - 2153182, - 2153936, - 2153941, - 2154193, - 2154462, - 2154464, - 2154704, - 2154974, - 2154978, - 2155230, - 2156514, - 2158050, - 13688280, - 13689580, - 13884960, - 14015468, - 14015960, - 14016994, - 14017056, - 14164191, - 14210336, - 14211104, - 14216992, - 14407133, - 14407712, - 14413021, - 14536736, - 14538016, - 14538965, - 14538991, - 14540320, - 14540498, - 14557394, - 14557407, - 14557409, - 14602784, - 14602960, - 14603230, - 14604576, - 14605292, - 14605344, - 14606818, - 14671579, - 14672085, - 14672088, - 14672094, - 14733522, - 14734804, - 14803664, - 14803666, - 14803672, - 14806816, - 14865883, - 14868000, - 14868192, - 14871584, - 15196894, - 15459616 - ]; - }; - this.name = function(det) { - return "ISO-8859-5"; - }; - this.language = function() { - return "ru"; - }; - }; - util.inherits(exports.ISO_8859_5, sbcs); - exports.ISO_8859_6 = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 32, - 32, - 32, - 32, - 32, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32 - ]; - }; - this.ngrams = function() { - return [ - 2148324, - 2148326, - 2148551, - 2152932, - 2154986, - 2155748, - 2156006, - 2156743, - 13050055, - 13091104, - 13093408, - 13095200, - 13100064, - 13100227, - 13100231, - 13100232, - 13100234, - 13100236, - 13100237, - 13100239, - 13100243, - 13100249, - 13100258, - 13100261, - 13100264, - 13100266, - 13100320, - 13100576, - 13100746, - 13115591, - 13181127, - 13181153, - 13181156, - 13181157, - 13181160, - 13246663, - 13574343, - 13617440, - 13705415, - 13748512, - 13836487, - 14229703, - 14279913, - 14805536, - 14950599, - 14993696, - 15001888, - 15002144, - 15016135, - 15058720, - 15059232, - 15066656, - 15081671, - 15147207, - 15189792, - 15255524, - 15263264, - 15278279, - 15343815, - 15343845, - 15343848, - 15386912, - 15388960, - 15394336 - ]; - }; - this.name = function(det) { - return "ISO-8859-6"; - }; - this.language = function() { - return "ar"; - }; - }; - util.inherits(exports.ISO_8859_6, sbcs); - exports.ISO_8859_7 = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 161, - 162, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 220, - 32, - 221, - 222, - 223, - 32, - 252, - 32, - 253, - 254, - 192, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 32, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 32 - ]; - }; - this.ngrams = function() { - return [ - 2154989, - 2154992, - 2155497, - 2155753, - 2156016, - 2156320, - 2157281, - 2157797, - 2158049, - 2158368, - 2158817, - 2158831, - 2158833, - 2159604, - 2159605, - 2159847, - 2159855, - 14672160, - 14754017, - 14754036, - 14805280, - 14806304, - 14807292, - 14807584, - 14936545, - 15067424, - 15069728, - 15147252, - 15199520, - 15200800, - 15278324, - 15327520, - 15330014, - 15331872, - 15393257, - 15393268, - 15525152, - 15540449, - 15540453, - 15540464, - 15589664, - 15725088, - 15725856, - 15790069, - 15790575, - 15793184, - 15868129, - 15868133, - 15868138, - 15868144, - 15868148, - 15983904, - 15984416, - 15987951, - 16048416, - 16048617, - 16050157, - 16050162, - 16050666, - 16052000, - 16052213, - 16054765, - 16379168, - 16706848 - ]; - }; - this.name = function(det) { - return det && det.fC1Bytes ? "windows-1253" : "ISO-8859-7"; - }; - this.language = function() { - return "el"; - }; - }; - util.inherits(exports.ISO_8859_7, sbcs); - exports.ISO_8859_8 = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 181, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 32, - 32, - 32, - 32, - 32 - ]; - }; - this.ngrams = function() { - return [ - new NGramsPlusLang("he", [ - 2154725, - 2154727, - 2154729, - 2154746, - 2154985, - 2154990, - 2155744, - 2155749, - 2155753, - 2155758, - 2155762, - 2155769, - 2155770, - 2157792, - 2157796, - 2158304, - 2159340, - 2161132, - 14744096, - 14950624, - 14950625, - 14950628, - 14950636, - 14950638, - 14950649, - 15001056, - 15065120, - 15068448, - 15068960, - 15071264, - 15071776, - 15278308, - 15328288, - 15328762, - 15329773, - 15330592, - 15331104, - 15333408, - 15333920, - 15474912, - 15474916, - 15523872, - 15524896, - 15540448, - 15540449, - 15540452, - 15540460, - 15540462, - 15540473, - 15655968, - 15671524, - 15787040, - 15788320, - 15788525, - 15920160, - 16261348, - 16312813, - 16378912, - 16392416, - 16392417, - 16392420, - 16392428, - 16392430, - 16392441 - ]), - new NGramsPlusLang("he", [ - 2154725, - 2154732, - 2155753, - 2155756, - 2155758, - 2155760, - 2157040, - 2157810, - 2157817, - 2158053, - 2158057, - 2158565, - 2158569, - 2160869, - 2160873, - 2161376, - 2161381, - 2161385, - 14688484, - 14688492, - 14688493, - 14688506, - 14738464, - 14738916, - 14740512, - 14741024, - 14754020, - 14754029, - 14754042, - 14950628, - 14950633, - 14950636, - 14950637, - 14950639, - 14950648, - 14950650, - 15002656, - 15065120, - 15066144, - 15196192, - 15327264, - 15327520, - 15328288, - 15474916, - 15474925, - 15474938, - 15528480, - 15530272, - 15591913, - 15591920, - 15591928, - 15605988, - 15605997, - 15606010, - 15655200, - 15655968, - 15918112, - 16326884, - 16326893, - 16326906, - 16376864, - 16441376, - 16442400, - 16442857 - ]) - ]; - }; - this.name = function(det) { - return det && det.fC1Bytes ? "windows-1255" : "ISO-8859-8"; - }; - this.language = function() { - return "he"; - }; - }; - util.inherits(exports.ISO_8859_8, sbcs); - exports.ISO_8859_9 = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 170, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 181, - 32, - 32, - 32, - 32, - 186, - 32, - 32, - 32, - 32, - 32, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 32, - 248, - 249, - 250, - 251, - 252, - 105, - 254, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 32, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255 - ]; - }; - this.ngrams = function() { - return [ - 2122337, - 2122345, - 2122357, - 2122849, - 2122853, - 2123621, - 2123873, - 2124140, - 2124641, - 2124655, - 2125153, - 2125676, - 2126689, - 2126945, - 2127461, - 2128225, - 6365282, - 6384416, - 6384737, - 6384993, - 6385184, - 6385405, - 6386208, - 6386273, - 6386429, - 6386685, - 6388065, - 6449522, - 6578464, - 6579488, - 6580512, - 6627426, - 6627435, - 6644841, - 6647328, - 6648352, - 6648425, - 6648681, - 6909029, - 6909472, - 6909545, - 6910496, - 7102830, - 7102834, - 7103776, - 7103858, - 7217249, - 7217250, - 7217259, - 7234657, - 7234661, - 7234848, - 7235872, - 7235950, - 7273760, - 7498094, - 7535982, - 7759136, - 7954720, - 7958386, - 16608800, - 16608868, - 16609021, - 16642301 - ]; - }; - this.name = function(det) { - return det && det.fC1Bytes ? "windows-1254" : "ISO-8859-9"; - }; - this.language = function() { - return "tr"; - }; - }; - util.inherits(exports.ISO_8859_9, sbcs); - exports.windows_1251 = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 144, - 131, - 32, - 131, - 32, - 32, - 32, - 32, - 32, - 32, - 154, - 32, - 156, - 157, - 158, - 159, - 144, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 154, - 32, - 156, - 157, - 158, - 159, - 32, - 162, - 162, - 188, - 32, - 180, - 32, - 32, - 184, - 32, - 186, - 32, - 32, - 32, - 32, - 191, - 32, - 32, - 179, - 179, - 180, - 181, - 32, - 32, - 184, - 32, - 186, - 32, - 188, - 190, - 190, - 191, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255 - ]; - }; - this.ngrams = function() { - return [ - 2155040, - 2155246, - 2155758, - 2156512, - 2156576, - 2157280, - 2157294, - 2158048, - 2158053, - 2158305, - 2158574, - 2158576, - 2158816, - 2159086, - 2159090, - 2159342, - 2160626, - 2162162, - 14740968, - 14742268, - 14937632, - 15068156, - 15068648, - 15069682, - 15069728, - 15212783, - 15263008, - 15263776, - 15269664, - 15459821, - 15460384, - 15465709, - 15589408, - 15590688, - 15591653, - 15591679, - 15592992, - 15593186, - 15605986, - 15605999, - 15606001, - 15655456, - 15655648, - 15655918, - 15657248, - 15657980, - 15658016, - 15659506, - 15724267, - 15724773, - 15724776, - 15724782, - 15786210, - 15787492, - 15856352, - 15856354, - 15856360, - 15859488, - 15918571, - 15920672, - 15920880, - 15924256, - 16249582, - 16512288 - ]; - }; - this.name = function(det) { - return "windows-1251"; - }; - this.language = function() { - return "ru"; - }; - }; - util.inherits(exports.windows_1251, sbcs); - exports.windows_1256 = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 129, - 32, - 131, - 32, - 32, - 32, - 32, - 136, - 32, - 138, - 32, - 156, - 141, - 142, - 143, - 144, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 152, - 32, - 154, - 32, - 156, - 32, - 32, - 159, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 170, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 181, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 32, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 32, - 32, - 32, - 32, - 244, - 32, - 32, - 32, - 32, - 249, - 32, - 251, - 252, - 32, - 32, - 255 - ]; - }; - this.ngrams = function() { - return [ - 2148321, - 2148324, - 2148551, - 2153185, - 2153965, - 2154977, - 2155492, - 2156231, - 13050055, - 13091104, - 13093408, - 13095200, - 13099296, - 13099459, - 13099463, - 13099464, - 13099466, - 13099468, - 13099469, - 13099471, - 13099475, - 13099482, - 13099486, - 13099491, - 13099494, - 13099501, - 13099808, - 13100064, - 13100234, - 13115591, - 13181127, - 13181149, - 13181153, - 13181155, - 13181158, - 13246663, - 13574343, - 13617440, - 13705415, - 13748512, - 13836487, - 14295239, - 14344684, - 14544160, - 14753991, - 14797088, - 14806048, - 14806304, - 14885063, - 14927648, - 14928160, - 14935072, - 14950599, - 15016135, - 15058720, - 15124449, - 15131680, - 15474887, - 15540423, - 15540451, - 15540454, - 15583520, - 15585568, - 15590432 - ]; - }; - this.name = function(det) { - return "windows-1256"; - }; - this.language = function() { - return "ar"; - }; - }; - util.inherits(exports.windows_1256, sbcs); - exports.KOI8_R = function() { - this.byteMap = function() { - return [ - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 0, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 163, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 163, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223 - ]; - }; - this.ngrams = function() { - return [ - 2147535, - 2148640, - 2149313, - 2149327, - 2150081, - 2150085, - 2150338, - 2150607, - 2150610, - 2151105, - 2151375, - 2151380, - 2151631, - 2152224, - 2152399, - 2153153, - 2153684, - 2154196, - 12701385, - 12702936, - 12963032, - 12963529, - 12964820, - 12964896, - 13094688, - 13181136, - 13223200, - 13224224, - 13226272, - 13419982, - 13420832, - 13424846, - 13549856, - 13550880, - 13552069, - 13552081, - 13553440, - 13553623, - 13574352, - 13574355, - 13574359, - 13617103, - 13617696, - 13618392, - 13618464, - 13620180, - 13621024, - 13621185, - 13684684, - 13685445, - 13685449, - 13685455, - 13812183, - 13813188, - 13881632, - 13882561, - 13882569, - 13882583, - 13944268, - 13946656, - 13946834, - 13948960, - 14272544, - 14603471 - ]; - }; - this.name = function(det) { - return "KOI8-R"; - }; - this.language = function() { - return "ru"; - }; - }; - util.inherits(exports.KOI8_R, sbcs); -}); - -// node_modules/chardet/encoding/iso2022.js -var require_iso2022 = __commonJS((exports, module) => { - var util = __require("util"); - var Match = require_match(); - function ISO_2022() { - } - ISO_2022.prototype.match = function(det) { - var i, j; - var escN; - var hits = 0; - var misses = 0; - var shifts = 0; - var quality; - var text = det.fInputBytes; - var textLen = det.fInputLen; - scanInput: - for (i = 0;i < textLen; i++) { - if (text[i] == 27) { - checkEscapes: - for (escN = 0;escN < this.escapeSequences.length; escN++) { - var seq = this.escapeSequences[escN]; - if (textLen - i < seq.length) - continue checkEscapes; - for (j = 1;j < seq.length; j++) - if (seq[j] != text[i + j]) - continue checkEscapes; - hits++; - i += seq.length - 1; - continue scanInput; - } - misses++; - } - if (text[i] == 14 || text[i] == 15) - shifts++; - } - if (hits == 0) - return null; - quality = (100 * hits - 100 * misses) / (hits + misses); - if (hits + shifts < 5) - quality -= (5 - (hits + shifts)) * 10; - return quality <= 0 ? null : new Match(det, this, quality); - }; - exports.ISO_2022_JP = function() { - this.name = function() { - return "ISO-2022-JP"; - }; - this.escapeSequences = [ - [27, 36, 40, 67], - [27, 36, 40, 68], - [27, 36, 64], - [27, 36, 65], - [27, 36, 66], - [27, 38, 64], - [27, 40, 66], - [27, 40, 72], - [27, 40, 73], - [27, 40, 74], - [27, 46, 65], - [27, 46, 70] - ]; - }; - util.inherits(exports.ISO_2022_JP, ISO_2022); - exports.ISO_2022_KR = function() { - this.name = function() { - return "ISO-2022-KR"; - }; - this.escapeSequences = [ - [27, 36, 41, 67] - ]; - }; - util.inherits(exports.ISO_2022_KR, ISO_2022); - exports.ISO_2022_CN = function() { - this.name = function() { - return "ISO-2022-CN"; - }; - this.escapeSequences = [ - [27, 36, 41, 65], - [27, 36, 41, 71], - [27, 36, 42, 72], - [27, 36, 41, 69], - [27, 36, 43, 73], - [27, 36, 43, 74], - [27, 36, 43, 75], - [27, 36, 43, 76], - [27, 36, 43, 77], - [27, 78], - [27, 79] - ]; - }; - util.inherits(exports.ISO_2022_CN, ISO_2022); -}); - -// node_modules/chardet/index.js -var require_chardet = __commonJS((exports, module) => { - var fs = __require("fs"); - var utf8 = require_utf8(); - var unicode = require_unicode(); - var mbcs = require_mbcs(); - var sbcs = require_sbcs(); - var iso2022 = require_iso2022(); - var self2 = exports; - var recognisers = [ - new utf8, - new unicode.UTF_16BE, - new unicode.UTF_16LE, - new unicode.UTF_32BE, - new unicode.UTF_32LE, - new mbcs.sjis, - new mbcs.big5, - new mbcs.euc_jp, - new mbcs.euc_kr, - new mbcs.gb_18030, - new iso2022.ISO_2022_JP, - new iso2022.ISO_2022_KR, - new iso2022.ISO_2022_CN, - new sbcs.ISO_8859_1, - new sbcs.ISO_8859_2, - new sbcs.ISO_8859_5, - new sbcs.ISO_8859_6, - new sbcs.ISO_8859_7, - new sbcs.ISO_8859_8, - new sbcs.ISO_8859_9, - new sbcs.windows_1251, - new sbcs.windows_1256, - new sbcs.KOI8_R - ]; - module.exports.detect = function(buffer, opts) { - var fByteStats = []; - for (var i = 0;i < 256; i++) - fByteStats[i] = 0; - for (var i = buffer.length - 1;i >= 0; i--) - fByteStats[buffer[i] & 255]++; - var fC1Bytes = false; - for (var i = 128;i <= 159; i += 1) { - if (fByteStats[i] != 0) { - fC1Bytes = true; - break; - } - } - var context = { - fByteStats, - fC1Bytes, - fRawInput: buffer, - fRawLength: buffer.length, - fInputBytes: buffer, - fInputLen: buffer.length - }; - var matches = recognisers.map(function(rec) { - return rec.match(context); - }).filter(function(match) { - return !!match; - }).sort(function(a, b) { - return b.confidence - a.confidence; - }); - if (opts && opts.returnAllMatches === true) { - return matches; - } else { - return matches.length > 0 ? matches[0].name : null; - } - }; - module.exports.detectFile = function(filepath, opts, cb) { - if (typeof opts === "function") { - cb = opts; - opts = undefined; - } - var fd; - var handler = function(err, buffer) { - if (fd) { - fs.closeSync(fd); - } - if (err) - return cb(err, null); - cb(null, self2.detect(buffer, opts)); - }; - if (opts && opts.sampleSize) { - fd = fs.openSync(filepath, "r"), sample = Buffer.allocUnsafe(opts.sampleSize); - fs.read(fd, sample, 0, opts.sampleSize, null, function(err) { - handler(err, sample); - }); - return; - } - fs.readFile(filepath, handler); - }; - module.exports.detectFileSync = function(filepath, opts) { - if (opts && opts.sampleSize) { - var fd = fs.openSync(filepath, "r"), sample2 = Buffer.allocUnsafe(opts.sampleSize); - fs.readSync(fd, sample2, 0, opts.sampleSize); - fs.closeSync(fd); - return self2.detect(sample2, opts); - } - return self2.detect(fs.readFileSync(filepath), opts); - }; - module.exports.detectAll = function(buffer, opts) { - if (typeof opts !== "object") { - opts = {}; - } - opts.returnAllMatches = true; - return self2.detect(buffer, opts); - }; - module.exports.detectFileAll = function(filepath, opts, cb) { - if (typeof opts === "function") { - cb = opts; - opts = undefined; - } - if (typeof opts !== "object") { - opts = {}; - } - opts.returnAllMatches = true; - self2.detectFile(filepath, opts, cb); - }; - module.exports.detectFileAllSync = function(filepath, opts) { - if (typeof opts !== "object") { - opts = {}; - } - opts.returnAllMatches = true; - return self2.detectFileSync(filepath, opts); - }; -}); - -// node_modules/safer-buffer/safer.js -var require_safer = __commonJS((exports, module) => { - var buffer = __require("buffer"); - var Buffer2 = buffer.Buffer; - var safer = {}; - var key2; - for (key2 in buffer) { - if (!buffer.hasOwnProperty(key2)) - continue; - if (key2 === "SlowBuffer" || key2 === "Buffer") - continue; - safer[key2] = buffer[key2]; - } - var Safer = safer.Buffer = {}; - for (key2 in Buffer2) { - if (!Buffer2.hasOwnProperty(key2)) - continue; - if (key2 === "allocUnsafe" || key2 === "allocUnsafeSlow") - continue; - Safer[key2] = Buffer2[key2]; - } - safer.Buffer.prototype = Buffer2.prototype; - if (!Safer.from || Safer.from === Uint8Array.from) { - Safer.from = function(value, encodingOrOffset, length) { - if (typeof value === "number") { - throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value); - } - if (value && typeof value.length === "undefined") { - throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); - } - return Buffer2(value, encodingOrOffset, length); - }; - } - if (!Safer.alloc) { - Safer.alloc = function(size, fill, encoding) { - if (typeof size !== "number") { - throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size); - } - if (size < 0 || size >= 2 * (1 << 30)) { - throw new RangeError('The value "' + size + '" is invalid for option "size"'); - } - var buf = Buffer2(size); - if (!fill || fill.length === 0) { - buf.fill(0); - } else if (typeof encoding === "string") { - buf.fill(fill, encoding); - } else { - buf.fill(fill); - } - return buf; - }; - } - if (!safer.kStringMaxLength) { - try { - safer.kStringMaxLength = process.binding("buffer").kStringMaxLength; - } catch (e) { - } - } - if (!safer.constants) { - safer.constants = { - MAX_LENGTH: safer.kMaxLength - }; - if (safer.kStringMaxLength) { - safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength; - } - } - module.exports = safer; -}); - -// node_modules/iconv-lite/lib/bom-handling.js -var require_bom_handling = __commonJS((exports) => { - var BOMChar = "\uFEFF"; - exports.PrependBOM = PrependBOMWrapper; - function PrependBOMWrapper(encoder, options) { - this.encoder = encoder; - this.addBOM = true; - } - PrependBOMWrapper.prototype.write = function(str) { - if (this.addBOM) { - str = BOMChar + str; - this.addBOM = false; - } - return this.encoder.write(str); - }; - PrependBOMWrapper.prototype.end = function() { - return this.encoder.end(); - }; - exports.StripBOM = StripBOMWrapper; - function StripBOMWrapper(decoder, options) { - this.decoder = decoder; - this.pass = false; - this.options = options || {}; - } - StripBOMWrapper.prototype.write = function(buf) { - var res = this.decoder.write(buf); - if (this.pass || !res) - return res; - if (res[0] === BOMChar) { - res = res.slice(1); - if (typeof this.options.stripBOM === "function") - this.options.stripBOM(); - } - this.pass = true; - return res; - }; - StripBOMWrapper.prototype.end = function() { - return this.decoder.end(); - }; -}); - -// node_modules/iconv-lite/encodings/internal.js -var require_internal = __commonJS((exports, module) => { - var Buffer2 = require_safer().Buffer; - module.exports = { - utf8: { type: "_internal", bomAware: true }, - cesu8: { type: "_internal", bomAware: true }, - unicode11utf8: "utf8", - ucs2: { type: "_internal", bomAware: true }, - utf16le: "ucs2", - binary: { type: "_internal" }, - base64: { type: "_internal" }, - hex: { type: "_internal" }, - _internal: InternalCodec - }; - function InternalCodec(codecOptions, iconv) { - this.enc = codecOptions.encodingName; - this.bomAware = codecOptions.bomAware; - if (this.enc === "base64") - this.encoder = InternalEncoderBase64; - else if (this.enc === "cesu8") { - this.enc = "utf8"; - this.encoder = InternalEncoderCesu8; - if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\uD83D\uDCA9") { - this.decoder = InternalDecoderCesu8; - this.defaultCharUnicode = iconv.defaultCharUnicode; - } - } - } - InternalCodec.prototype.encoder = InternalEncoder; - InternalCodec.prototype.decoder = InternalDecoder; - var StringDecoder = __require("string_decoder").StringDecoder; - if (!StringDecoder.prototype.end) - StringDecoder.prototype.end = function() { - }; - function InternalDecoder(options, codec) { - StringDecoder.call(this, codec.enc); - } - InternalDecoder.prototype = StringDecoder.prototype; - function InternalEncoder(options, codec) { - this.enc = codec.enc; - } - InternalEncoder.prototype.write = function(str) { - return Buffer2.from(str, this.enc); - }; - InternalEncoder.prototype.end = function() { - }; - function InternalEncoderBase64(options, codec) { - this.prevStr = ""; - } - InternalEncoderBase64.prototype.write = function(str) { - str = this.prevStr + str; - var completeQuads = str.length - str.length % 4; - this.prevStr = str.slice(completeQuads); - str = str.slice(0, completeQuads); - return Buffer2.from(str, "base64"); - }; - InternalEncoderBase64.prototype.end = function() { - return Buffer2.from(this.prevStr, "base64"); - }; - function InternalEncoderCesu8(options, codec) { - } - InternalEncoderCesu8.prototype.write = function(str) { - var buf = Buffer2.alloc(str.length * 3), bufIdx = 0; - for (var i = 0;i < str.length; i++) { - var charCode = str.charCodeAt(i); - if (charCode < 128) - buf[bufIdx++] = charCode; - else if (charCode < 2048) { - buf[bufIdx++] = 192 + (charCode >>> 6); - buf[bufIdx++] = 128 + (charCode & 63); - } else { - buf[bufIdx++] = 224 + (charCode >>> 12); - buf[bufIdx++] = 128 + (charCode >>> 6 & 63); - buf[bufIdx++] = 128 + (charCode & 63); - } - } - return buf.slice(0, bufIdx); - }; - InternalEncoderCesu8.prototype.end = function() { - }; - function InternalDecoderCesu8(options, codec) { - this.acc = 0; - this.contBytes = 0; - this.accBytes = 0; - this.defaultCharUnicode = codec.defaultCharUnicode; - } - InternalDecoderCesu8.prototype.write = function(buf) { - var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, res = ""; - for (var i = 0;i < buf.length; i++) { - var curByte = buf[i]; - if ((curByte & 192) !== 128) { - if (contBytes > 0) { - res += this.defaultCharUnicode; - contBytes = 0; - } - if (curByte < 128) { - res += String.fromCharCode(curByte); - } else if (curByte < 224) { - acc = curByte & 31; - contBytes = 1; - accBytes = 1; - } else if (curByte < 240) { - acc = curByte & 15; - contBytes = 2; - accBytes = 1; - } else { - res += this.defaultCharUnicode; - } - } else { - if (contBytes > 0) { - acc = acc << 6 | curByte & 63; - contBytes--; - accBytes++; - if (contBytes === 0) { - if (accBytes === 2 && acc < 128 && acc > 0) - res += this.defaultCharUnicode; - else if (accBytes === 3 && acc < 2048) - res += this.defaultCharUnicode; - else - res += String.fromCharCode(acc); - } - } else { - res += this.defaultCharUnicode; - } - } - } - this.acc = acc; - this.contBytes = contBytes; - this.accBytes = accBytes; - return res; - }; - InternalDecoderCesu8.prototype.end = function() { - var res = 0; - if (this.contBytes > 0) - res += this.defaultCharUnicode; - return res; - }; -}); - -// node_modules/iconv-lite/encodings/utf16.js -var require_utf16 = __commonJS((exports) => { - var Buffer2 = require_safer().Buffer; - exports.utf16be = Utf16BECodec; - function Utf16BECodec() { - } - Utf16BECodec.prototype.encoder = Utf16BEEncoder; - Utf16BECodec.prototype.decoder = Utf16BEDecoder; - Utf16BECodec.prototype.bomAware = true; - function Utf16BEEncoder() { - } - Utf16BEEncoder.prototype.write = function(str) { - var buf = Buffer2.from(str, "ucs2"); - for (var i = 0;i < buf.length; i += 2) { - var tmp = buf[i]; - buf[i] = buf[i + 1]; - buf[i + 1] = tmp; - } - return buf; - }; - Utf16BEEncoder.prototype.end = function() { - }; - function Utf16BEDecoder() { - this.overflowByte = -1; - } - Utf16BEDecoder.prototype.write = function(buf) { - if (buf.length == 0) - return ""; - var buf2 = Buffer2.alloc(buf.length + 1), i = 0, j = 0; - if (this.overflowByte !== -1) { - buf2[0] = buf[0]; - buf2[1] = this.overflowByte; - i = 1; - j = 2; - } - for (;i < buf.length - 1; i += 2, j += 2) { - buf2[j] = buf[i + 1]; - buf2[j + 1] = buf[i]; - } - this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1; - return buf2.slice(0, j).toString("ucs2"); - }; - Utf16BEDecoder.prototype.end = function() { - }; - exports.utf16 = Utf16Codec; - function Utf16Codec(codecOptions, iconv) { - this.iconv = iconv; - } - Utf16Codec.prototype.encoder = Utf16Encoder; - Utf16Codec.prototype.decoder = Utf16Decoder; - function Utf16Encoder(options, codec) { - options = options || {}; - if (options.addBOM === undefined) - options.addBOM = true; - this.encoder = codec.iconv.getEncoder("utf-16le", options); - } - Utf16Encoder.prototype.write = function(str) { - return this.encoder.write(str); - }; - Utf16Encoder.prototype.end = function() { - return this.encoder.end(); - }; - function Utf16Decoder(options, codec) { - this.decoder = null; - this.initialBytes = []; - this.initialBytesLen = 0; - this.options = options || {}; - this.iconv = codec.iconv; - } - Utf16Decoder.prototype.write = function(buf) { - if (!this.decoder) { - this.initialBytes.push(buf); - this.initialBytesLen += buf.length; - if (this.initialBytesLen < 16) - return ""; - var buf = Buffer2.concat(this.initialBytes), encoding = detectEncoding(buf, this.options.defaultEncoding); - this.decoder = this.iconv.getDecoder(encoding, this.options); - this.initialBytes.length = this.initialBytesLen = 0; - } - return this.decoder.write(buf); - }; - Utf16Decoder.prototype.end = function() { - if (!this.decoder) { - var buf = Buffer2.concat(this.initialBytes), encoding = detectEncoding(buf, this.options.defaultEncoding); - this.decoder = this.iconv.getDecoder(encoding, this.options); - var res = this.decoder.write(buf), trail = this.decoder.end(); - return trail ? res + trail : res; - } - return this.decoder.end(); - }; - function detectEncoding(buf, defaultEncoding) { - var enc = defaultEncoding || "utf-16le"; - if (buf.length >= 2) { - if (buf[0] == 254 && buf[1] == 255) - enc = "utf-16be"; - else if (buf[0] == 255 && buf[1] == 254) - enc = "utf-16le"; - else { - var asciiCharsLE = 0, asciiCharsBE = 0, _len = Math.min(buf.length - buf.length % 2, 64); - for (var i = 0;i < _len; i += 2) { - if (buf[i] === 0 && buf[i + 1] !== 0) - asciiCharsBE++; - if (buf[i] !== 0 && buf[i + 1] === 0) - asciiCharsLE++; - } - if (asciiCharsBE > asciiCharsLE) - enc = "utf-16be"; - else if (asciiCharsBE < asciiCharsLE) - enc = "utf-16le"; - } - } - return enc; - } -}); - -// node_modules/iconv-lite/encodings/utf7.js -var require_utf7 = __commonJS((exports) => { - var Buffer2 = require_safer().Buffer; - exports.utf7 = Utf7Codec; - exports.unicode11utf7 = "utf7"; - function Utf7Codec(codecOptions, iconv) { - this.iconv = iconv; - } - Utf7Codec.prototype.encoder = Utf7Encoder; - Utf7Codec.prototype.decoder = Utf7Decoder; - Utf7Codec.prototype.bomAware = true; - var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g; - function Utf7Encoder(options, codec) { - this.iconv = codec.iconv; - } - Utf7Encoder.prototype.write = function(str) { - return Buffer2.from(str.replace(nonDirectChars, function(chunk) { - return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-"; - }.bind(this))); - }; - Utf7Encoder.prototype.end = function() { - }; - function Utf7Decoder(options, codec) { - this.iconv = codec.iconv; - this.inBase64 = false; - this.base64Accum = ""; - } - var base64Regex = /[A-Za-z0-9\/+]/; - var base64Chars = []; - for (i = 0;i < 256; i++) - base64Chars[i] = base64Regex.test(String.fromCharCode(i)); - var i; - var plusChar = 43; - var minusChar = 45; - var andChar = 38; - Utf7Decoder.prototype.write = function(buf) { - var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum; - for (var i2 = 0;i2 < buf.length; i2++) { - if (!inBase64) { - if (buf[i2] == plusChar) { - res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); - lastI = i2 + 1; - inBase64 = true; - } - } else { - if (!base64Chars[buf[i2]]) { - if (i2 == lastI && buf[i2] == minusChar) { - res += "+"; - } else { - var b64str = base64Accum + buf.slice(lastI, i2).toString(); - res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); - } - if (buf[i2] != minusChar) - i2--; - lastI = i2 + 1; - inBase64 = false; - base64Accum = ""; - } - } - } - if (!inBase64) { - res += this.iconv.decode(buf.slice(lastI), "ascii"); - } else { - var b64str = base64Accum + buf.slice(lastI).toString(); - var canBeDecoded = b64str.length - b64str.length % 8; - base64Accum = b64str.slice(canBeDecoded); - b64str = b64str.slice(0, canBeDecoded); - res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); - } - this.inBase64 = inBase64; - this.base64Accum = base64Accum; - return res; - }; - Utf7Decoder.prototype.end = function() { - var res = ""; - if (this.inBase64 && this.base64Accum.length > 0) - res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); - this.inBase64 = false; - this.base64Accum = ""; - return res; - }; - exports.utf7imap = Utf7IMAPCodec; - function Utf7IMAPCodec(codecOptions, iconv) { - this.iconv = iconv; - } - Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder; - Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder; - Utf7IMAPCodec.prototype.bomAware = true; - function Utf7IMAPEncoder(options, codec) { - this.iconv = codec.iconv; - this.inBase64 = false; - this.base64Accum = Buffer2.alloc(6); - this.base64AccumIdx = 0; - } - Utf7IMAPEncoder.prototype.write = function(str) { - var inBase64 = this.inBase64, base64Accum = this.base64Accum, base64AccumIdx = this.base64AccumIdx, buf = Buffer2.alloc(str.length * 5 + 10), bufIdx = 0; - for (var i2 = 0;i2 < str.length; i2++) { - var uChar = str.charCodeAt(i2); - if (32 <= uChar && uChar <= 126) { - if (inBase64) { - if (base64AccumIdx > 0) { - bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); - base64AccumIdx = 0; - } - buf[bufIdx++] = minusChar; - inBase64 = false; - } - if (!inBase64) { - buf[bufIdx++] = uChar; - if (uChar === andChar) - buf[bufIdx++] = minusChar; - } - } else { - if (!inBase64) { - buf[bufIdx++] = andChar; - inBase64 = true; - } - if (inBase64) { - base64Accum[base64AccumIdx++] = uChar >> 8; - base64Accum[base64AccumIdx++] = uChar & 255; - if (base64AccumIdx == base64Accum.length) { - bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx); - base64AccumIdx = 0; - } - } - } - } - this.inBase64 = inBase64; - this.base64AccumIdx = base64AccumIdx; - return buf.slice(0, bufIdx); - }; - Utf7IMAPEncoder.prototype.end = function() { - var buf = Buffer2.alloc(10), bufIdx = 0; - if (this.inBase64) { - if (this.base64AccumIdx > 0) { - bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); - this.base64AccumIdx = 0; - } - buf[bufIdx++] = minusChar; - this.inBase64 = false; - } - return buf.slice(0, bufIdx); - }; - function Utf7IMAPDecoder(options, codec) { - this.iconv = codec.iconv; - this.inBase64 = false; - this.base64Accum = ""; - } - var base64IMAPChars = base64Chars.slice(); - base64IMAPChars[44] = true; - Utf7IMAPDecoder.prototype.write = function(buf) { - var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum; - for (var i2 = 0;i2 < buf.length; i2++) { - if (!inBase64) { - if (buf[i2] == andChar) { - res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); - lastI = i2 + 1; - inBase64 = true; - } - } else { - if (!base64IMAPChars[buf[i2]]) { - if (i2 == lastI && buf[i2] == minusChar) { - res += "&"; - } else { - var b64str = base64Accum + buf.slice(lastI, i2).toString().replace(/,/g, "/"); - res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); - } - if (buf[i2] != minusChar) - i2--; - lastI = i2 + 1; - inBase64 = false; - base64Accum = ""; - } - } - } - if (!inBase64) { - res += this.iconv.decode(buf.slice(lastI), "ascii"); - } else { - var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, "/"); - var canBeDecoded = b64str.length - b64str.length % 8; - base64Accum = b64str.slice(canBeDecoded); - b64str = b64str.slice(0, canBeDecoded); - res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); - } - this.inBase64 = inBase64; - this.base64Accum = base64Accum; - return res; - }; - Utf7IMAPDecoder.prototype.end = function() { - var res = ""; - if (this.inBase64 && this.base64Accum.length > 0) - res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); - this.inBase64 = false; - this.base64Accum = ""; - return res; - }; -}); - -// node_modules/iconv-lite/encodings/sbcs-codec.js -var require_sbcs_codec = __commonJS((exports) => { - var Buffer2 = require_safer().Buffer; - exports._sbcs = SBCSCodec; - function SBCSCodec(codecOptions, iconv) { - if (!codecOptions) - throw new Error("SBCS codec is called without the data."); - if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256) - throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)"); - if (codecOptions.chars.length === 128) { - var asciiString = ""; - for (var i = 0;i < 128; i++) - asciiString += String.fromCharCode(i); - codecOptions.chars = asciiString + codecOptions.chars; - } - this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2"); - var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0)); - for (var i = 0;i < codecOptions.chars.length; i++) - encodeBuf[codecOptions.chars.charCodeAt(i)] = i; - this.encodeBuf = encodeBuf; - } - SBCSCodec.prototype.encoder = SBCSEncoder; - SBCSCodec.prototype.decoder = SBCSDecoder; - function SBCSEncoder(options, codec) { - this.encodeBuf = codec.encodeBuf; - } - SBCSEncoder.prototype.write = function(str) { - var buf = Buffer2.alloc(str.length); - for (var i = 0;i < str.length; i++) - buf[i] = this.encodeBuf[str.charCodeAt(i)]; - return buf; - }; - SBCSEncoder.prototype.end = function() { - }; - function SBCSDecoder(options, codec) { - this.decodeBuf = codec.decodeBuf; - } - SBCSDecoder.prototype.write = function(buf) { - var decodeBuf = this.decodeBuf; - var newBuf = Buffer2.alloc(buf.length * 2); - var idx1 = 0, idx2 = 0; - for (var i = 0;i < buf.length; i++) { - idx1 = buf[i] * 2; - idx2 = i * 2; - newBuf[idx2] = decodeBuf[idx1]; - newBuf[idx2 + 1] = decodeBuf[idx1 + 1]; - } - return newBuf.toString("ucs2"); - }; - SBCSDecoder.prototype.end = function() { - }; -}); - -// node_modules/iconv-lite/encodings/sbcs-data.js -var require_sbcs_data = __commonJS((exports, module) => { - module.exports = { - "10029": "maccenteuro", - maccenteuro: { - type: "_sbcs", - chars: "Ć„Ä€ÄĆ‰Ä„Ć–ĆœĆ”Ä…ÄŒĆ¤ÄÄ†Ä‡Ć©Å¹ÅŗÄŽĆ­ÄÄ’Ä“Ä–Ć³Ä—Ć“Ć¶ĆµĆŗÄšÄ›Ć¼ā€ Ā°Ä˜Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ä™ĀØā‰ Ä£Ä®ÄÆÄŖā‰¤ā‰„īĶāˆ‚āˆ‘łĻļĽľĹÄŗŅņŃĀ¬āˆšÅ„Ňāˆ†Ā«Ā»ā€¦Ā ÅˆÅĆ•Å‘ÅŒā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠÅÅ”ŕŘā€¹ā€ŗřŖŗŠā€šā€žÅ”ÅšÅ›ĆÅ¤Å„ĆÅ½Å¾ÅŖĆ“Ć”Å«Å®ĆšÅÆÅ°Å±Å²Å³ĆĆ½Ä·Å»ÅÅ¼Ä¢Ė‡" - }, - "808": "cp808", - ibm808: "cp808", - cp808: { - type: "_sbcs", - chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ń€ŃŃ‚ŃƒŃ„Ń…Ń†Ń‡ŃˆŃ‰ŃŠŃ‹ŃŒŃŃŽŃŠŃ‘Š„Ń”Š‡Ń—ŠŽŃžĀ°āˆ™Ā·āˆšā„–ā‚¬ā– Ā " - }, - mik: { - type: "_sbcs", - chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюяā””ā”“ā”¬ā”œā”€ā”¼ā•£ā•‘ā•šā•”ā•©ā•¦ā• ā•ā•¬ā”ā–‘ā–’ā–“ā”‚ā”¤ā„–Ā§ā•—ā•ā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " - }, - ascii8bit: "ascii", - usascii: "ascii", - ansix34: "ascii", - ansix341968: "ascii", - ansix341986: "ascii", - csascii: "ascii", - cp367: "ascii", - ibm367: "ascii", - isoir6: "ascii", - iso646us: "ascii", - iso646irv: "ascii", - us: "ascii", - latin1: "iso88591", - latin2: "iso88592", - latin3: "iso88593", - latin4: "iso88594", - latin5: "iso88599", - latin6: "iso885910", - latin7: "iso885913", - latin8: "iso885914", - latin9: "iso885915", - latin10: "iso885916", - csisolatin1: "iso88591", - csisolatin2: "iso88592", - csisolatin3: "iso88593", - csisolatin4: "iso88594", - csisolatincyrillic: "iso88595", - csisolatinarabic: "iso88596", - csisolatingreek: "iso88597", - csisolatinhebrew: "iso88598", - csisolatin5: "iso88599", - csisolatin6: "iso885910", - l1: "iso88591", - l2: "iso88592", - l3: "iso88593", - l4: "iso88594", - l5: "iso88599", - l6: "iso885910", - l7: "iso885913", - l8: "iso885914", - l9: "iso885915", - l10: "iso885916", - isoir14: "iso646jp", - isoir57: "iso646cn", - isoir100: "iso88591", - isoir101: "iso88592", - isoir109: "iso88593", - isoir110: "iso88594", - isoir144: "iso88595", - isoir127: "iso88596", - isoir126: "iso88597", - isoir138: "iso88598", - isoir148: "iso88599", - isoir157: "iso885910", - isoir166: "tis620", - isoir179: "iso885913", - isoir199: "iso885914", - isoir203: "iso885915", - isoir226: "iso885916", - cp819: "iso88591", - ibm819: "iso88591", - cyrillic: "iso88595", - arabic: "iso88596", - arabic8: "iso88596", - ecma114: "iso88596", - asmo708: "iso88596", - greek: "iso88597", - greek8: "iso88597", - ecma118: "iso88597", - elot928: "iso88597", - hebrew: "iso88598", - hebrew8: "iso88598", - turkish: "iso88599", - turkish8: "iso88599", - thai: "iso885911", - thai8: "iso885911", - celtic: "iso885914", - celtic8: "iso885914", - isoceltic: "iso885914", - tis6200: "tis620", - tis62025291: "tis620", - tis62025330: "tis620", - "10000": "macroman", - "10006": "macgreek", - "10007": "maccyrillic", - "10079": "maciceland", - "10081": "macturkish", - cspc8codepage437: "cp437", - cspc775baltic: "cp775", - cspc850multilingual: "cp850", - cspcp852: "cp852", - cspc862latinhebrew: "cp862", - cpgr: "cp869", - msee: "cp1250", - mscyrl: "cp1251", - msansi: "cp1252", - msgreek: "cp1253", - msturk: "cp1254", - mshebr: "cp1255", - msarab: "cp1256", - winbaltrim: "cp1257", - cp20866: "koi8r", - "20866": "koi8r", - ibm878: "koi8r", - cskoi8r: "koi8r", - cp21866: "koi8u", - "21866": "koi8u", - ibm1168: "koi8u", - strk10482002: "rk1048", - tcvn5712: "tcvn", - tcvn57121: "tcvn", - gb198880: "iso646cn", - cn: "iso646cn", - csiso14jisc6220ro: "iso646jp", - jisc62201969ro: "iso646jp", - jp: "iso646jp", - cshproman8: "hproman8", - r8: "hproman8", - roman8: "hproman8", - xroman8: "hproman8", - ibm1051: "hproman8", - mac: "macintosh", - csmacintosh: "macintosh" - }; -}); - -// node_modules/iconv-lite/encodings/sbcs-data-generated.js -var require_sbcs_data_generated = __commonJS((exports, module) => { - module.exports = { - "437": "cp437", - "737": "cp737", - "775": "cp775", - "850": "cp850", - "852": "cp852", - "855": "cp855", - "856": "cp856", - "857": "cp857", - "858": "cp858", - "860": "cp860", - "861": "cp861", - "862": "cp862", - "863": "cp863", - "864": "cp864", - "865": "cp865", - "866": "cp866", - "869": "cp869", - "874": "windows874", - "922": "cp922", - "1046": "cp1046", - "1124": "cp1124", - "1125": "cp1125", - "1129": "cp1129", - "1133": "cp1133", - "1161": "cp1161", - "1162": "cp1162", - "1163": "cp1163", - "1250": "windows1250", - "1251": "windows1251", - "1252": "windows1252", - "1253": "windows1253", - "1254": "windows1254", - "1255": "windows1255", - "1256": "windows1256", - "1257": "windows1257", - "1258": "windows1258", - "28591": "iso88591", - "28592": "iso88592", - "28593": "iso88593", - "28594": "iso88594", - "28595": "iso88595", - "28596": "iso88596", - "28597": "iso88597", - "28598": "iso88598", - "28599": "iso88599", - "28600": "iso885910", - "28601": "iso885911", - "28603": "iso885913", - "28604": "iso885914", - "28605": "iso885915", - "28606": "iso885916", - windows874: { - type: "_sbcs", - chars: "ā‚¬ļæ½ļæ½ļæ½ļæ½ā€¦ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ā ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½" - }, - win874: "windows874", - cp874: "windows874", - windows1250: { - type: "_sbcs", - chars: "ā‚¬ļæ½ā€šļæ½ā€žā€¦ā€ ā€”ļæ½ā€°Å ā€¹ÅšÅ¤Å½Å¹ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢Å”ā€ŗśńžÅŗĀ Ė‡Ė˜ÅĀ¤Ä„Ā¦Ā§ĀØĀ©ÅžĀ«Ā¬Ā­Ā®Å»Ā°Ā±Ė›Å‚Ā“ĀµĀ¶Ā·ĀøąşĀ»Ä½ĖÄ¾Å¼Å”ĆĆ‚Ä‚Ć„Ä¹Ä†Ć‡ÄŒĆ‰Ä˜Ć‹ÄšĆĆŽÄŽÄÅƒÅ‡Ć“Ć”ÅĆ–Ć—Å˜Å®ĆšÅ°ĆœĆÅ¢ĆŸÅ•Ć”Ć¢ÄƒĆ¤ÄŗÄ‡Ć§ÄĆ©Ä™Ć«Ä›Ć­Ć®ÄÄ‘Å„ÅˆĆ³Ć“Å‘Ć¶Ć·Å™ÅÆĆŗÅ±Ć¼Ć½Å£Ė™" - }, - win1250: "windows1250", - cp1250: "windows1250", - windows1251: { - type: "_sbcs", - chars: "Š‚Šƒā€šŃ“ā€žā€¦ā€ ā€”ā‚¬ā€°Š‰ā€¹ŠŠŠŒŠ‹ŠŃ’ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢Ń™ā€ŗњќћџĀ ŠŽŃžŠˆĀ¤ŅĀ¦Ā§ŠĀ©Š„Ā«Ā¬Ā­Ā®Š‡Ā°Ā±Š†Ń–Ņ‘ĀµĀ¶Ā·Ń‘ā„–Ń”Ā»Ń˜Š…Ń•Ń—ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюя" - }, - win1251: "windows1251", - cp1251: "windows1251", - windows1252: { - type: "_sbcs", - chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ļæ½Å½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœļæ½Å¾ÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆĆĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆĆžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" - }, - win1252: "windows1252", - cp1252: "windows1252", - windows1253: { - type: "_sbcs", - chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”ļæ½ā€°ļæ½ā€¹ļæ½ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢ļæ½ā€ŗļæ½ļæ½ļæ½ļæ½Ā Ī…Ī†Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ļæ½Ā«Ā¬Ā­Ā®ā€•Ā°Ā±Ā²Ā³Ī„ĀµĀ¶Ā·ĪˆĪ‰ĪŠĀ»ĪŒĀ½ĪŽĪĪĪ‘Ī’Ī“Ī”Ī•Ī–Ī—Ī˜Ī™ĪšĪ›ĪœĪĪžĪŸĪ Ī”ļæ½Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©ĪŖĪ«Ī¬Ī­Ī®ĪÆĪ°Ī±Ī²Ī³Ī“ĪµĪ¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻ‚ĻƒĻ„Ļ…Ļ†Ļ‡ĻˆĻ‰ĻŠĻ‹ĻŒĻĻŽļæ½" - }, - win1253: "windows1253", - cp1253: "windows1253", - windows1254: { - type: "_sbcs", - chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœļæ½ļæ½ÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÄžĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœÄ°ÅžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÄŸĆ±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ä±ÅŸĆæ" - }, - win1254: "windows1254", - cp1254: "windows1254", - windows1255: { - type: "_sbcs", - chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°ļæ½ā€¹ļæ½ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢ļæ½ā€ŗļæ½ļæ½ļæ½ļæ½Ā Ā”Ā¢Ā£ā‚ŖĀ„Ā¦Ā§ĀØĀ©Ć—Ā«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹Ć·Ā»Ā¼Ā½Ā¾ĀæÖ°Ö±Ö²Ö³Ö“ÖµÖ¶Ö·ÖøÖ¹ÖŗÖ»Ö¼Ö½Ö¾Öæ׀ׁׂ׃װױײ׳דļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½××‘גדהוזחטיךכלםמןנהעףפׄצק×Øש×Ŗļæ½ļæ½ā€Žā€ļæ½" - }, - win1255: "windows1255", - cp1255: "windows1255", - windows1256: { - type: "_sbcs", - chars: "ā‚¬Ł¾ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Ł¹ā€¹Å’Ś†Ś˜ŚˆŚÆā€˜ā€™ā€œā€ā€¢ā€“ā€”Ś©ā„¢Ś‘ā€ŗœā€Œā€ŚŗĀ ŲŒĀ¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©Ś¾Ā«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹Ų›Ā»Ā¼Ā½Ā¾ŲŸŪŲ”Ų¢Ų£Ų¤Ų„Ų¦Ų§ŲØŲ©ŲŖŲ«Ų¬Ų­Ų®ŲÆŲ°Ų±Ų²Ų³Ų“ŲµŲ¶Ć—Ų·ŲøŲ¹ŲŗŁ€ŁŁ‚ŁƒĆ Ł„Ć¢Ł…Ł†Ł‡ŁˆĆ§ĆØĆ©ĆŖĆ«Ł‰ŁŠĆ®ĆÆŁ‹ŁŒŁŁŽĆ“ŁŁĆ·Ł‘Ć¹Ł’Ć»Ć¼ā€Žā€Ū’" - }, - win1256: "windows1256", - cp1256: "windows1256", - windows1257: { - type: "_sbcs", - chars: "ā‚¬ļæ½ā€šļæ½ā€žā€¦ā€ ā€”ļæ½ā€°ļæ½ā€¹ļæ½ĀØĖ‡Āøļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢ļæ½ā€ŗļæ½ĀÆĖ›ļæ½Ā ļæ½Ā¢Ā£Ā¤ļæ½Ā¦Ā§Ć˜Ā©Å–Ā«Ā¬Ā­Ā®Ć†Ā°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĆøĀ¹Å—Ā»Ā¼Ā½Ā¾Ć¦Ä„Ä®Ä€Ä†Ć„Ć…Ä˜Ä’ÄŒĆ‰Å¹Ä–Ä¢Ä¶ÄŖÄ»Å ÅƒÅ…Ć“ÅŒĆ•Ć–Ć—Å²ÅÅšÅŖĆœÅ»Å½ĆŸÄ…ÄÆÄÄ‡Ć¤Ć„Ä™Ä“ÄĆ©ÅŗÄ—Ä£Ä·Ä«Ä¼Å”Å„Å†Ć³ÅĆµĆ¶Ć·Å³Å‚Å›Å«Ć¼Å¼Å¾Ė™" - }, - win1257: "windows1257", - cp1257: "windows1257", - windows1258: { - type: "_sbcs", - chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°ļæ½ā€¹Å’ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢ļæ½ā€ŗœļæ½ļæ½ÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæƀƁƂĂƄƅƆƇƈƉƊƋĢ€ĆĆŽĆÄĆ‘Ģ‰Ć“Ć”Ę Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĘÆĢƒĆŸĆ Ć”Ć¢ÄƒĆ¤Ć„Ć¦Ć§ĆØĆ©ĆŖĆ«ĢĆ­Ć®ĆÆđƱĢ£Ć³Ć“ʔƶƷĆøĆ¹ĆŗĆ»Ć¼Ę°ā‚«Ćæ" - }, - win1258: "windows1258", - cp1258: "windows1258", - iso88591: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆĆĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆĆžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" - }, - cp28591: "iso88591", - iso88592: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„Ė˜ÅĀ¤Ä½ÅšĀ§ĀØŠŞŤŹĀ­Å½Å»Ā°Ä…Ė›Å‚Ā“ľśĖ‡ĀøŔşńÅŗĖÅ¾Å¼Å”ĆĆ‚Ä‚Ć„Ä¹Ä†Ć‡ÄŒĆ‰Ä˜Ć‹ÄšĆĆŽÄŽÄÅƒÅ‡Ć“Ć”ÅĆ–Ć—Å˜Å®ĆšÅ°ĆœĆÅ¢ĆŸÅ•Ć”Ć¢ÄƒĆ¤ÄŗÄ‡Ć§ÄĆ©Ä™Ć«Ä›Ć­Ć®ÄÄ‘Å„ÅˆĆ³Ć“Å‘Ć¶Ć·Å™ÅÆĆŗÅ±Ć¼Ć½Å£Ė™" - }, - cp28592: "iso88592", - iso88593: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä¦Ė˜Ā£Ā¤ļæ½Ä¤Ā§ĀØİŞĞēĀ­ļæ½Å»Ā°Ä§Ā²Ā³Ā“ĀµÄ„Ā·ĀøışğĵĀ½ļæ½Å¼Ć€ĆĆ‚ļæ½Ć„ÄŠÄˆĆ‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆļæ½Ć‘Ć’Ć“Ć”Ä Ć–Ć—ÄœĆ™ĆšĆ›ĆœÅ¬ÅœĆŸĆ Ć”Ć¢ļæ½Ć¤Ä‹Ä‰Ć§ĆØĆ©ĆŖƫƬƭƮĆÆļæ½Ć±Ć²Ć³Ć“Ä”Ć¶Ć·ÄĆ¹ĆŗĆ»Ć¼Å­ÅĖ™" - }, - cp28593: "iso88593", - iso88594: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„ÄøŖĀ¤ÄØÄ»Ā§ĀØŠĒĢŦĀ­Å½ĀÆĀ°Ä…Ė›Å—Ā“ĩļĖ‡ĀøÅ”Ä“Ä£Å§ÅŠÅ¾Å‹Ä€ĆĆ‚ĆƒĆ„Ć…Ć†Ä®ÄŒĆ‰Ä˜Ć‹Ä–ĆĆŽÄŖÄÅ…ÅŒÄ¶Ć”Ć•Ć–Ć—Ć˜Å²ĆšĆ›ĆœÅØÅŖĆŸÄĆ”Ć¢Ć£Ć¤Ć„Ć¦ÄÆÄĆ©Ä™Ć«Ä—Ć­Ć®Ä«Ä‘Å†ÅÄ·Ć“ĆµĆ¶Ć·ĆøųĆŗĆ»Ć¼Å©Å«Ė™" - }, - cp28594: "iso88594", - iso88595: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ŠŠ‚ŠƒŠ„Š…Š†Š‡ŠˆŠ‰ŠŠŠ‹ŠŒĀ­ŠŽŠŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюяā„–Ń‘Ń’Ń“Ń”Ń•Ń–Ń—Ń˜Ń™ŃšŃ›ŃœĀ§ŃžŃŸ" - }, - cp28595: "iso88595", - iso88596: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ļæ½ļæ½ļæ½Ā¤ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ŲŒĀ­ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ų›ļæ½ļæ½ļæ½ŲŸļæ½Ų”Ų¢Ų£Ų¤Ų„Ų¦Ų§ŲØŲ©ŲŖŲ«Ų¬Ų­Ų®ŲÆŲ°Ų±Ų²Ų³Ų“ŲµŲ¶Ų·ŲøŲ¹Ųŗļæ½ļæ½ļæ½ļæ½ļæ½Ł€ŁŁ‚ŁƒŁ„Ł…Ł†Ł‡ŁˆŁ‰ŁŠŁ‹ŁŒŁŁŽŁŁŁ‘Ł’ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½" - }, - cp28596: "iso88596", - iso88597: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ā€˜ā€™Ā£ā‚¬ā‚ÆĀ¦Ā§ĀØĀ©ĶŗĀ«Ā¬Ā­ļæ½ā€•Ā°Ā±Ā²Ā³Ī„Ī…Ī†Ā·ĪˆĪ‰ĪŠĀ»ĪŒĀ½ĪŽĪĪĪ‘Ī’Ī“Ī”Ī•Ī–Ī—Ī˜Ī™ĪšĪ›ĪœĪĪžĪŸĪ Ī”ļæ½Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©ĪŖĪ«Ī¬Ī­Ī®ĪÆĪ°Ī±Ī²Ī³Ī“ĪµĪ¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻ‚ĻƒĻ„Ļ…Ļ†Ļ‡ĻˆĻ‰ĻŠĻ‹ĻŒĻĻŽļæ½" - }, - cp28597: "iso88597", - iso88598: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ļæ½Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©Ć—Ā«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹Ć·Ā»Ā¼Ā½Ā¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ā€—אבגדהוזחטיךכלםמןנהעףפׄצק×Øש×Ŗļæ½ļæ½ā€Žā€ļæ½" - }, - cp28598: "iso88598", - iso88599: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÄžĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœÄ°ÅžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÄŸĆ±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ä±ÅŸĆæ" - }, - cp28599: "iso88599", - iso885910: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„Ä’Ä¢ÄŖÄØĶĀ§Ä»ÄÅ Å¦Å½Ā­ÅŖŊĀ°Ä…ēģīĩķĀ·Ä¼Ä‘Å”ŧžā€•Å«Å‹Ä€ĆĆ‚ĆƒĆ„Ć…Ć†Ä®ÄŒĆ‰Ä˜Ć‹Ä–ĆĆŽĆĆÅ…ÅŒĆ“Ć”Ć•Ć–ÅØĆ˜Å²ĆšĆ›ĆœĆĆžĆŸÄĆ”Ć¢Ć£Ć¤Ć„Ć¦ÄÆÄĆ©Ä™Ć«Ä—Ć­Ć®ĆÆĆ°Å†ÅĆ³Ć“ĆµĆ¶Å©ĆøųĆŗĆ»Ć¼Ć½Ć¾Äø" - }, - cp28600: "iso885910", - iso885911: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½" - }, - cp28601: "iso885911", - iso885913: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ā€Ā¢Ā£Ā¤ā€žĀ¦Ā§Ć˜Ā©Å–Ā«Ā¬Ā­Ā®Ć†Ā°Ā±Ā²Ā³ā€œĀµĀ¶Ā·ĆøĀ¹Å—Ā»Ā¼Ā½Ā¾Ć¦Ä„Ä®Ä€Ä†Ć„Ć…Ä˜Ä’ÄŒĆ‰Å¹Ä–Ä¢Ä¶ÄŖÄ»Å ÅƒÅ…Ć“ÅŒĆ•Ć–Ć—Å²ÅÅšÅŖĆœÅ»Å½ĆŸÄ…ÄÆÄÄ‡Ć¤Ć„Ä™Ä“ÄĆ©ÅŗÄ—Ä£Ä·Ä«Ä¼Å”Å„Å†Ć³ÅĆµĆ¶Ć·Å³Å‚Å›Å«Ć¼Å¼Å¾ā€™" - }, - cp28603: "iso885913", - iso885914: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ įø‚įøƒĀ£ÄŠÄ‹įøŠĀ§įŗ€Ā©įŗ‚įø‹į»²Ā­Ā®ÅøįøžįøŸÄ Ä”į¹€į¹Ā¶į¹–įŗį¹—įŗƒį¹ į»³įŗ„įŗ…į¹”Ć€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÅ“Ć‘Ć’Ć“Ć”Ć•Ć–į¹ŖĆ˜Ć™ĆšĆ›ĆœĆÅ¶ĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÅµĆ±Ć²Ć³Ć“ĆµĆ¶į¹«ĆøĆ¹ĆŗĆ»Ć¼Ć½Å·Ćæ" - }, - cp28604: "iso885914", - iso885915: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£ā‚¬Ā„Å Ā§Å”Ā©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Å½ĀµĀ¶Ā·Å¾Ā¹ĀŗĀ»Å’Å“ÅøĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆĆĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆĆžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" - }, - cp28605: "iso885915", - iso885916: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„ąŁā‚¬ā€žÅ Ā§Å”Ā©Č˜Ā«Å¹Ā­ÅŗÅ»Ā°Ā±ÄŒÅ‚Žā€Ā¶Ā·Å¾ÄČ™Ā»Å’Å“ÅøÅ¼Ć€ĆĆ‚Ä‚Ć„Ä†Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÄÅƒĆ’Ć“Ć”ÅĆ–ÅšÅ°Ć™ĆšĆ›ĆœÄ˜ČšĆŸĆ Ć”Ć¢ÄƒĆ¤Ä‡Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÄ‘Å„Ć²Ć³Ć“Å‘Ć¶Å›Å±Ć¹ĆŗĆ»Ć¼Ä™Č›Ćæ" - }, - cp28606: "iso885916", - cp437: { - type: "_sbcs", - chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĀ¢Ā£Ā„ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " - }, - ibm437: "cp437", - csibm437: "cp437", - cp737: { - type: "_sbcs", - chars: "Ī‘Ī’Ī“Ī”Ī•Ī–Ī—Ī˜Ī™ĪšĪ›ĪœĪĪžĪŸĪ Ī”Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©Ī±Ī²Ī³Ī“ĪµĪ¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻƒĻ‚Ļ„Ļ…Ļ†Ļ‡Ļˆā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ļ‰Ī¬Ī­Ī®ĻŠĪÆĻŒĻĻ‹ĻŽĪ†ĪˆĪ‰ĪŠĪŒĪŽĪĀ±ā‰„ā‰¤ĪŖĪ«Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " - }, - ibm737: "cp737", - csibm737: "cp737", - cp775: { - type: "_sbcs", - chars: "Ä†Ć¼Ć©ÄĆ¤Ä£Ć„Ä‡Å‚Ä“Å–Å—Ä«Å¹Ć„Ć…Ć‰Ć¦Ć†ÅĆ¶Ä¢Ā¢ÅšÅ›Ć–ĆœĆøĀ£Ć˜Ć—Ā¤Ä€ÄŖĆ³Å»Å¼Åŗā€Ā¦Ā©Ā®Ā¬Ā½Ā¼ÅĀ«Ā»ā–‘ā–’ā–“ā”‚ā”¤Ä„ČĘĖā•£ā•‘ā•—ā•Ä®Å ā”ā””ā”“ā”¬ā”œā”€ā”¼Å²ÅŖā•šā•”ā•©ā•¦ā• ā•ā•¬Å½Ä…čęėÄÆŔųūžā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ć“ĆŸÅŒÅƒĆµĆ•ĀµÅ„ĶķĻļņĒŅā€™Ā­Ā±ā€œĀ¾Ā¶Ā§Ć·ā€žĀ°āˆ™Ā·Ā¹Ā³Ā²ā– Ā " - }, - ibm775: "cp775", - csibm775: "cp775", - cp850: { - type: "_sbcs", - chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĆøĀ£Ć˜Ć—Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæĀ®Ā¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚Ć€Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼Ć£Ćƒā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Ć°ĆĆŠĆ‹ĆˆÄ±ĆĆŽĆā”˜ā”Œā–ˆā–„Ā¦ĆŒā–€Ć“ĆŸĆ”Ć’ĆµĆ•ĀµĆ¾ĆžĆšĆ›Ć™Ć½ĆĀÆĀ“Ā­Ā±ā€—Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā " - }, - ibm850: "cp850", - csibm850: "cp850", - cp852: { - type: "_sbcs", - chars: "Ć‡Ć¼Ć©Ć¢Ć¤ÅÆÄ‡Ć§Å‚Ć«ÅÅ‘Ć®Å¹Ć„Ä†Ć‰Ä¹ÄŗĆ“Ć¶Ä½Ä¾ÅšÅ›Ć–ĆœÅ¤Å„ÅĆ—ÄĆ”Ć­Ć³ĆŗĄąŽžĘęĀ¬ÅŗČşĀ«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚ĚŞā•£ā•‘ā•—ā•Å»Å¼ā”ā””ā”“ā”¬ā”œā”€ā”¼Ä‚ăā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Ä‘ÄÄŽĆ‹ÄÅ‡ĆĆŽÄ›ā”˜ā”Œā–ˆā–„ŢŮā–€Ć“ĆŸĆ”ÅƒÅ„ÅˆÅ Å”Å”ĆšÅ•Å°Ć½ĆÅ£Ā“Ā­ĖĖ›Ė‡Ė˜Ā§Ć·ĀøĀ°ĀØĖ™Å±Å˜Å™ā– Ā " - }, - ibm852: "cp852", - csibm852: "cp852", - cp855: { - type: "_sbcs", - chars: "ђŠ‚Ń“ŠƒŃ‘ŠŃ”Š„Ń•Š…Ń–Š†Ń—Š‡Ń˜ŠˆŃ™Š‰ŃšŠŠŃ›Š‹ŃœŠŒŃžŠŽŃŸŠŃŽŠ®ŃŠŠŖŠ°ŠŠ±Š‘цŠ¦Š“Š”ŠµŠ•Ń„Š¤Š³Š“Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤Ń…Š„ŠøŠ˜ā•£ā•‘ā•—ā•Š¹Š™ā”ā””ā”“ā”¬ā”œā”€ā”¼ŠŗŠšā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Š»Š›Š¼ŠœŠ½ŠŠ¾ŠžŠæā”˜ā”Œā–ˆā–„ŠŸŃā–€ŠÆрŠ ŃŠ”тŠ¢ŃƒŠ£Š¶Š–Š²Š’ŃŒŠ¬ā„–Ā­Ń‹Š«Š·Š—ŃˆŠØэŠ­Ń‰Š©Ń‡Š§Ā§ā– Ā " - }, - ibm855: "cp855", - csibm855: "cp855", - cp856: { - type: "_sbcs", - chars: "אבגדהוזחטיךכלםמןנהעףפׄצק×Øש×Ŗļæ½Ā£ļæ½Ć—ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ā®Ā¬Ā½Ā¼ļæ½Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ļæ½ļæ½ļæ½Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼ļæ½ļæ½ā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ā”˜ā”Œā–ˆā–„Ā¦ļæ½ā–€ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Āµļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ĀÆĀ“Ā­Ā±ā€—Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā " - }, - ibm856: "cp856", - csibm856: "cp856", - cp857: { - type: "_sbcs", - chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ä±Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹Ä°Ć–ĆœĆøĀ£Ć˜ÅžÅŸĆ”Ć­Ć³ĆŗĆ±Ć‘ÄžÄŸĀæĀ®Ā¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚Ć€Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼Ć£Ćƒā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤ĀŗĀŖƊƋƈļæ½ĆĆŽĆā”˜ā”Œā–ˆā–„Ā¦ĆŒā–€Ć“ĆŸĆ”Ć’ĆµĆ•Āµļæ½Ć—ƚƛƙƬĆæĀÆĀ“Ā­Ā±ļæ½Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā " - }, - ibm857: "cp857", - csibm857: "cp857", - cp858: { - type: "_sbcs", - chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĆøĀ£Ć˜Ć—Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæĀ®Ā¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚Ć€Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼Ć£Ćƒā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Ć°ĆĆŠĆ‹Ćˆā‚¬ĆĆŽĆā”˜ā”Œā–ˆā–„Ā¦ĆŒā–€Ć“ĆŸĆ”Ć’ĆµĆ•ĀµĆ¾ĆžĆšĆ›Ć™Ć½ĆĀÆĀ“Ā­Ā±ā€—Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā " - }, - ibm858: "cp858", - csibm858: "cp858", - cp860: { - type: "_sbcs", - chars: "Ć‡Ć¼Ć©Ć¢Ć£Ć ĆĆ§ĆŖƊĆØĆĆ”Ć¬ĆƒĆ‚Ć‰Ć€ĆˆĆ“ĆµĆ²ĆšĆ¹ĆŒĆ•ĆœĀ¢Ā£Ć™ā‚§Ć“Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæƒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " - }, - ibm860: "cp860", - csibm860: "cp860", - cp861: { - type: "_sbcs", - chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆĆ°ĆžĆ„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć¾Ć»ĆĆ½Ć–ĆœĆøĀ£Ć˜ā‚§Ę’Ć”Ć­Ć³ĆŗƁƍƓƚĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " - }, - ibm861: "cp861", - csibm861: "cp861", - cp862: { - type: "_sbcs", - chars: "אבגדהוזחטיךכלםמןנהעףפׄצק×Øש×ŖĀ¢Ā£Ā„ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " - }, - ibm862: "cp862", - csibm862: "cp862", - cp863: { - type: "_sbcs", - chars: "Ć‡Ć¼Ć©Ć¢Ć‚Ć Ā¶Ć§ĆŖĆ«ĆØĆÆĆ®ā€—Ć€Ā§Ć‰ĆˆĆŠĆ“Ć‹ĆĆ»Ć¹Ā¤Ć”ĆœĀ¢Ā£Ć™Ć›Ę’Ā¦Ā“Ć³ĆŗĀØĀøĀ³ĀÆƎāŒĀ¬Ā½Ā¼Ā¾Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " - }, - ibm863: "cp863", - csibm863: "cp863", - cp864: { - type: "_sbcs", - chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b -\v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#$ŁŖ&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~Ā°Ā·āˆ™āˆšā–’ā”€ā”‚ā”¼ā”¤ā”¬ā”œā”“ā”ā”Œā””ā”˜Ī²āˆžĻ†Ā±Ā½Ā¼ā‰ˆĀ«Ā»ļ»·ļ»øļæ½ļæ½ļ»»ļ»¼ļæ½Ā Ā­ļŗ‚Ā£Ā¤ļŗ„ļæ½ļæ½ļŗŽļŗļŗ•ļŗ™ŲŒļŗļŗ”ļŗ„Ł Ł”Ł¢Ł£Ł¤Ł„Ł¦Ł§ŁØŁ©ļ»‘Ų›ļŗ±ļŗµļŗ¹ŲŸĀ¢ļŗ€ļŗļŗƒļŗ…ļ»Šļŗ‹ļŗļŗ‘ļŗ“ļŗ—ļŗ›ļŗŸļŗ£ļŗ§ļŗ©ļŗ«ļŗ­ļŗÆļŗ³ļŗ·ļŗ»ļŗæļ»ļ»…ļ»‹ļ»Ā¦Ā¬Ć·Ć—ļ»‰Ł€ļ»“ļ»—ļ»›ļ»Ÿļ»£ļ»§ļ»«ļ»­ļ»Æļ»³ļŗ½ļ»Œļ»Žļ»ļ»”ļ¹½Ł‘ļ»„ļ»©ļ»¬ļ»°ļ»²ļ»ļ»•ļ»µļ»¶ļ»ļ»™ļ»±ā– ļæ½` - }, - ibm864: "cp864", - csibm864: "cp864", - cp865: { - type: "_sbcs", - chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĆøĀ£Ć˜ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā¤ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " - }, - ibm865: "cp865", - csibm865: "cp865", - cp866: { - type: "_sbcs", - chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ń€ŃŃ‚ŃƒŃ„Ń…Ń†Ń‡ŃˆŃ‰ŃŠŃ‹ŃŒŃŃŽŃŠŃ‘Š„Ń”Š‡Ń—ŠŽŃžĀ°āˆ™Ā·āˆšā„–Ā¤ā– Ā " - }, - ibm866: "cp866", - csibm866: "cp866", - cp869: { - type: "_sbcs", - chars: "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ī†ļæ½Ā·Ā¬Ā¦ā€˜ā€™Īˆā€•Ī‰ĪŠĪŖĪŒļæ½ļæ½ĪŽĪ«Ā©ĪĀ²Ā³Ī¬Ā£Ī­Ī®ĪÆĻŠĪĻŒĻĪ‘Ī’Ī“Ī”Ī•Ī–Ī—Ā½Ī˜Ī™Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĪšĪ›ĪœĪā•£ā•‘ā•—ā•ĪžĪŸā”ā””ā”“ā”¬ā”œā”€ā”¼Ī Ī”ā•šā•”ā•©ā•¦ā• ā•ā•¬Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©Ī±Ī²Ī³ā”˜ā”Œā–ˆā–„Ī“Īµā–€Ī¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻƒĻ‚Ļ„Ī„Ā­Ā±Ļ…Ļ†Ļ‡Ā§ĻˆĪ…Ā°ĀØĻ‰Ļ‹Ī°ĻŽā– Ā " - }, - ibm869: "cp869", - csibm869: "cp869", - cp922: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ā€¾Ā°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÅ Ć‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆÅ½ĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÅ”Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Å¾Ćæ" - }, - ibm922: "cp922", - csibm922: "cp922", - cp1046: { - type: "_sbcs", - chars: "ļŗˆĆ—Ć·ļ£¶ļ£µļ£“ļ£·ļ¹±Āˆā– ā”‚ā”€ā”ā”Œā””ā”˜ļ¹¹ļ¹»ļ¹½ļ¹æļ¹·ļŗŠļ»°ļ»³ļ»²ļ»Žļ»ļ»ļ»¶ļ»øļ»ŗļ»¼Ā ļ£ŗļ£¹ļ£øĀ¤ļ£»ļŗ‹ļŗ‘ļŗ—ļŗ›ļŗŸļŗ£ŲŒĀ­ļŗ§ļŗ³Ł Ł”Ł¢Ł£Ł¤Ł„Ł¦Ł§ŁØŁ©ļŗ·Ų›ļŗ»ļŗæļ»ŠŲŸļ»‹Ų”Ų¢Ų£Ų¤Ų„Ų¦Ų§ŲØŲ©ŲŖŲ«Ų¬Ų­Ų®ŲÆŲ°Ų±Ų²Ų³Ų“ŲµŲ¶Ų·ļ»‡Ų¹Ųŗļ»Œļŗ‚ļŗ„ļŗŽļ»“Ł€ŁŁ‚ŁƒŁ„Ł…Ł†Ł‡ŁˆŁ‰ŁŠŁ‹ŁŒŁŁŽŁŁŁ‘Ł’ļ»—ļ»›ļ»Ÿļ£¼ļ»µļ»·ļ»¹ļ»»ļ»£ļ»§ļ»¬ļ»©ļæ½" - }, - ibm1046: "cp1046", - csibm1046: "cp1046", - cp1124: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ŠŠ‚ŅŠ„Š…Š†Š‡ŠˆŠ‰ŠŠŠ‹ŠŒĀ­ŠŽŠŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюяā„–Ń‘Ń’Ņ‘Ń”Ń•Ń–Ń—Ń˜Ń™ŃšŃ›ŃœĀ§ŃžŃŸ" - }, - ibm1124: "cp1124", - csibm1124: "cp1124", - cp1125: { - type: "_sbcs", - chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ń€ŃŃ‚ŃƒŃ„Ń…Ń†Ń‡ŃˆŃ‰ŃŠŃ‹ŃŒŃŃŽŃŠŃ‘ŅŅ‘Š„Ń”Š†Ń–Š‡Ń—Ā·āˆšā„–Ā¤ā– Ā " - }, - ibm1125: "cp1125", - csibm1125: "cp1125", - cp1129: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§Å“Ā©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³ÅøĀµĀ¶Ā·Å’Ā¹ĀŗĀ»Ā¼Ā½Ā¾ĀæƀƁƂĂƄƅƆƇƈƉƊƋĢ€ĆĆŽĆÄĆ‘Ģ‰Ć“Ć”Ę Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĘÆĢƒĆŸĆ Ć”Ć¢ÄƒĆ¤Ć„Ć¦Ć§ĆØĆ©ĆŖĆ«ĢĆ­Ć®ĆÆđƱĢ£Ć³Ć“ʔƶƷĆøĆ¹ĆŗĆ»Ć¼Ę°ā‚«Ćæ" - }, - ibm1129: "cp1129", - csibm1129: "cp1129", - cp1133: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŖąŗŠąŗąŗ”ąŗ•ąŗ–ąŗ—ąŗ™ąŗšąŗ›ąŗœąŗąŗžąŗŸąŗ”ąŗ¢ąŗ£ąŗ„ąŗ§ąŗ«ąŗ­ąŗ®ļæ½ļæ½ļæ½ąŗÆąŗ°ąŗ²ąŗ³ąŗ“ąŗµąŗ¶ąŗ·ąŗøąŗ¹ąŗ¼ąŗ±ąŗ»ąŗ½ļæ½ļæ½ļæ½ą»€ą»ą»‚ą»ƒą»„ą»ˆą»‰ą»Šą»‹ą»Œą»ą»†ļæ½ą»œą»ā‚­ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ą»ą»‘ą»’ą»“ą»”ą»•ą»–ą»—ą»˜ą»™ļæ½ļæ½Ā¢Ā¬Ā¦ļæ½" - }, - ibm1133: "cp1133", - csibm1133: "cp1133", - cp1161: { - type: "_sbcs", - chars: "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ą¹ˆąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗą¹‰ą¹Šą¹‹ā‚¬ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›Ā¢Ā¬Ā¦Ā " - }, - ibm1161: "cp1161", - csibm1161: "cp1161", - cp1162: { - type: "_sbcs", - chars: "ā‚¬ĀĀ‚ĀƒĀ„ā€¦Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀā€˜ā€™ā€œā€ā€¢ā€“ā€”Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½" - }, - ibm1162: "cp1162", - csibm1162: "cp1162", - cp1163: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£ā‚¬Ā„Ā¦Ā§Å“Ā©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³ÅøĀµĀ¶Ā·Å’Ā¹ĀŗĀ»Ā¼Ā½Ā¾ĀæƀƁƂĂƄƅƆƇƈƉƊƋĢ€ĆĆŽĆÄĆ‘Ģ‰Ć“Ć”Ę Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĘÆĢƒĆŸĆ Ć”Ć¢ÄƒĆ¤Ć„Ć¦Ć§ĆØĆ©ĆŖĆ«ĢĆ­Ć®ĆÆđƱĢ£Ć³Ć“ʔƶƷĆøĆ¹ĆŗĆ»Ć¼Ę°ā‚«Ćæ" - }, - ibm1163: "cp1163", - csibm1163: "cp1163", - maccroatian: { - type: "_sbcs", - chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Å ā„¢Ā“ĀØā‰ Å½Ć˜āˆžĀ±ā‰¤ā‰„āˆ†Āµāˆ‚āˆ‘āˆÅ”āˆ«ĀŖĀŗā„¦Å¾ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆÄ†Ā«ÄŒā€¦Ā Ć€ĆƒĆ•Å’œĐā€”ā€œā€ā€˜ā€™Ć·ā—Šļæ½Ā©ā„Ā¤ā€¹ā€ŗƆĀ»ā€“Ā·ā€šā€žā€°Ć‚Ä‡ĆÄĆˆĆĆŽĆĆŒĆ“Ć”Ä‘Ć’ĆšĆ›Ć™Ä±Ė†ĖœĀÆĻ€Ć‹ĖšĀøƊƦĖ‡" - }, - maccyrillic: { - type: "_sbcs", - chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶Š†Ā®Ā©ā„¢Š‚Ń’ā‰ ŠƒŃ“āˆžĀ±ā‰¤ā‰„іĀµāˆ‚ŠˆŠ„Ń”Š‡Ń—Š‰Ń™ŠŠŃšŃ˜Š…Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Š‹Ń›ŠŒŃœŃ•ā€“ā€”ā€œā€ā€˜ā€™Ć·ā€žŠŽŃžŠŃŸā„–ŠŃ‘яŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæрстуфхцчшщъыьэюĀ¤" - }, - macgreek: { - type: "_sbcs", - chars: "ƄĀ¹Ā²Ć‰Ā³Ć–ĆœĪ…Ć Ć¢Ć¤Ī„ĀØƧƩĆØĆŖĆ«Ā£ā„¢Ć®ĆÆā€¢Ā½ā€°Ć“ƶĀ¦Ā­Ć¹Ć»Ć¼ā€ Ī“Ī”Ī˜Ī›ĪžĪ ĆŸĀ®Ā©Ī£ĪŖĀ§ā‰ Ā°Ī‡Ī‘Ā±ā‰¤ā‰„Ā„Ī’Ī•Ī–Ī—Ī™ĪšĪœĪ¦Ī«ĪØĪ©Ī¬ĪĀ¬ĪŸĪ”ā‰ˆĪ¤Ā«Ā»ā€¦Ā Ī„Ī§Ī†ĪˆÅ“ā€“ā€•ā€œā€ā€˜ā€™Ć·Ī‰ĪŠĪŒĪŽĪ­Ī®ĪÆĻŒĪĻĪ±Ī²ĻˆĪ“ĪµĻ†Ī³Ī·Ī¹Ī¾ĪŗĪ»Ī¼Ī½ĪæĻ€ĻŽĻĻƒĻ„ĪøĻ‰Ļ‚Ļ‡Ļ…Ī¶ĻŠĻ‹ĪĪ°ļæ½" - }, - maciceland: { - type: "_sbcs", - chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ĆĀ°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ĆĆ°ĆžĆ¾Ć½Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" - }, - macroman: { - type: "_sbcs", - chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ā€¹ā€ŗļ¬ļ¬‚ā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" - }, - macromania: { - type: "_sbcs", - chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ä‚ÅžāˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦ÄƒÅŸĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ā€¹ā€ŗŢţā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" - }, - macthai: { - type: "_sbcs", - chars: "Ā«Ā»ā€¦ļ¢Œļ¢ļ¢’ļ¢•ļ¢˜ļ¢‹ļ¢Žļ¢‘ļ¢”ļ¢—ā€œā€ļ¢™ļæ½ā€¢ļ¢„ļ¢‰ļ¢…ļ¢†ļ¢‡ļ¢ˆļ¢Šļ¢ļ¢ļ¢“ļ¢–ā€˜ā€™ļæ½Ā ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗ\uFEFFā€‹ā€“ā€”ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ā„¢ą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™Ā®Ā©ļæ½ļæ½ļæ½ļæ½" - }, - macturkish: { - type: "_sbcs", - chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøĞğİıŞşā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙļæ½Ė†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" - }, - macukraine: { - type: "_sbcs", - chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆā€ Ā°ŅĀ£Ā§ā€¢Ā¶Š†Ā®Ā©ā„¢Š‚Ń’ā‰ ŠƒŃ“āˆžĀ±ā‰¤ā‰„іĀµŅ‘ŠˆŠ„Ń”Š‡Ń—Š‰Ń™ŠŠŃšŃ˜Š…Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Š‹Ń›ŠŒŃœŃ•ā€“ā€”ā€œā€ā€˜ā€™Ć·ā€žŠŽŃžŠŃŸā„–ŠŃ‘яŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæрстуфхцчшщъыьэюĀ¤" - }, - koi8r: { - type: "_sbcs", - chars: "ā”€ā”‚ā”Œā”ā””ā”˜ā”œā”¤ā”¬ā”“ā”¼ā–€ā–„ā–ˆā–Œā–ā–‘ā–’ā–“āŒ ā– āˆ™āˆšā‰ˆā‰¤ā‰„Ā āŒ”Ā°Ā²Ā·Ć·ā•ā•‘ā•’Ń‘ā•“ā•”ā••ā•–ā•—ā•˜ā•™ā•šā•›ā•œā•ā•žā•Ÿā• ā•”Šā•¢ā•£ā•¤ā•„ā•¦ā•§ā•Øā•©ā•Ŗā•«ā•¬Ā©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ" - }, - koi8u: { - type: "_sbcs", - chars: "ā”€ā”‚ā”Œā”ā””ā”˜ā”œā”¤ā”¬ā”“ā”¼ā–€ā–„ā–ˆā–Œā–ā–‘ā–’ā–“āŒ ā– āˆ™āˆšā‰ˆā‰¤ā‰„Ā āŒ”Ā°Ā²Ā·Ć·ā•ā•‘ā•’Ń‘Ń”ā•”Ń–Ń—ā•—ā•˜ā•™ā•šā•›Ņ‘ā•ā•žā•Ÿā• ā•”ŠŠ„ā•£Š†Š‡ā•¦ā•§ā•Øā•©ā•ŖŅā•¬Ā©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ" - }, - koi8ru: { - type: "_sbcs", - chars: "ā”€ā”‚ā”Œā”ā””ā”˜ā”œā”¤ā”¬ā”“ā”¼ā–€ā–„ā–ˆā–Œā–ā–‘ā–’ā–“āŒ ā– āˆ™āˆšā‰ˆā‰¤ā‰„Ā āŒ”Ā°Ā²Ā·Ć·ā•ā•‘ā•’Ń‘Ń”ā•”Ń–Ń—ā•—ā•˜ā•™ā•šā•›Ņ‘Ńžā•žā•Ÿā• ā•”ŠŠ„ā•£Š†Š‡ā•¦ā•§ā•Øā•©ā•ŖŅŠŽĀ©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ" - }, - koi8t: { - type: "_sbcs", - chars: "Ņ›Ņ“ā€šŅ’ā€žā€¦ā€ ā€”ļæ½ā€°Ņ³ā€¹Ņ²Ņ·Ņ¶ļæ½Ņšā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢ļæ½ā€ŗļæ½ļæ½ļæ½ļæ½ļæ½ÓÆӮёĀ¤Ó£Ā¦Ā§ļæ½ļæ½ļæ½Ā«Ā¬Ā­Ā®ļæ½Ā°Ā±Ā²Šļæ½Ó¢Ā¶Ā·ļæ½ā„–ļæ½Ā»ļæ½ļæ½ļæ½Ā©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ" - }, - armscii8: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ļæ½Ö‡Ö‰)(Ā»Ā«ā€”.՝,-֊ā€¦ÕœÕ›ÕžŌ±Õ”Ō²Õ¢Ō³Õ£Ō“Õ¤ŌµÕ„Ō¶Õ¦Ō·Õ§ŌøÕØŌ¹Õ©ŌŗÕŖŌ»Õ«Ō¼Õ¬Ō½Õ­Ō¾Õ®ŌæÕÆՀհՁձՂղՃճՄՓՅյՆնՇշՈÕøՉչՊÕŗՋջՌռՍսՎվՏÕæՐրՑցՒւՓփՔքՕօՖֆ՚ļæ½" - }, - rk1048: { - type: "_sbcs", - chars: "Š‚Šƒā€šŃ“ā€žā€¦ā€ ā€”ā‚¬ā€°Š‰ā€¹ŠŠŅšŅŗŠŃ’ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢Ń™ā€ŗњŅ›Ņ»ŃŸĀ Ņ°Ņ±Ó˜Ā¤ÓØĀ¦Ā§ŠĀ©Ņ’Ā«Ā¬Ā­Ā®Ņ®Ā°Ā±Š†Ń–Ó©ĀµĀ¶Ā·Ń‘ā„–Ņ“Ā»Ó™Ņ¢Ņ£ŅÆŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюя" - }, - tcvn: { - type: "_sbcs", - chars: `\x00ƚį»¤\x03į»Ŗį»¬į»®\x07\b -\v\f\r\x0E\x0F\x10į»Øį»°į»²į»¶į»øƝį»“\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~ƀįŗ¢ĆƒĆįŗ įŗ¶įŗ¬Ćˆįŗŗįŗ¼Ć‰įŗøį»†ĆŒį»ˆÄØƍį»ŠĆ’į»ŽĆ•Ć“į»Œį»˜į»œį»žį» į»šį»¢Ć™į»¦ÅØĀ Ä‚ƂƊƔʠĘÆÄÄƒĆ¢ĆŖƓʔʰđįŗ°Ģ€Ģ‰ĢƒĢĢ£Ć įŗ£Ć£Ć”įŗ”įŗ²įŗ±įŗ³įŗµįŗÆįŗ“įŗ®įŗ¦įŗØįŗŖįŗ¤į»€įŗ·įŗ§įŗ©įŗ«įŗ„įŗ­ĆØį»‚įŗ»įŗ½Ć©įŗ¹į»į»ƒį»…įŗæį»‡Ć¬į»‰į»„įŗ¾į»’Ä©Ć­į»‹Ć²į»”į»ĆµĆ³į»į»“į»•į»—į»‘į»™į»į»Ÿį»”į»›į»£Ć¹į»–į»§Å©Ćŗį»„į»«į»­į»Æį»©į»±į»³į»·į»¹Ć½į»µį»` - }, - georgianacademy: { - type: "_sbcs", - chars: "Ā€Āā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ĀĀŽĀĀā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœĀĀžÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾Āæįƒįƒ‘įƒ’įƒ“įƒ”įƒ•įƒ–įƒ—įƒ˜įƒ™įƒšįƒ›įƒœįƒįƒžįƒŸįƒ įƒ”įƒ¢įƒ£įƒ¤įƒ„įƒ¦įƒ§įƒØįƒ©įƒŖįƒ«įƒ¬įƒ­įƒ®įƒÆįƒ°įƒ±įƒ²įƒ³įƒ“įƒµįƒ¶Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" - }, - georgianps: { - type: "_sbcs", - chars: "Ā€Āā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ĀĀŽĀĀā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœĀĀžÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾Āæįƒįƒ‘įƒ’įƒ“įƒ”įƒ•įƒ–įƒ±įƒ—įƒ˜įƒ™įƒšįƒ›įƒœįƒ²įƒįƒžįƒŸįƒ įƒ”įƒ¢įƒ³įƒ£įƒ¤įƒ„įƒ¦įƒ§įƒØįƒ©įƒŖįƒ«įƒ¬įƒ­įƒ®įƒ“įƒÆįƒ°įƒµĆ¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" - }, - pt154: { - type: "_sbcs", - chars: "Ņ–Ņ’Ó®Ņ“ā€žā€¦Ņ¶Ņ®Ņ²ŅÆŅ Ó¢Ņ¢ŅšŅŗŅøŅ—ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ņ³Ņ·Ņ”Ó£Ņ£Ņ›Ņ»Ņ¹Ā ŠŽŃžŠˆÓØŅ˜Ņ°Ā§ŠĀ©Ó˜Ā«Ā¬ÓÆĀ®ŅœĀ°Ņ±Š†Ń–Ņ™Ó©Ā¶Ā·Ń‘ā„–Ó™Ā»Ń˜ŅŖŅ«ŅŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюя" - }, - viscii: { - type: "_sbcs", - chars: `\x00\x01įŗ²\x03\x04įŗ“įŗŖ\x07\b -\v\f\r\x0E\x0F\x10\x11\x12\x13į»¶\x15\x16\x17\x18į»ø\x1A\x1B\x1C\x1Dį»“\x1F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~įŗ įŗ®įŗ°įŗ¶įŗ¤įŗ¦įŗØįŗ¬įŗ¼įŗøįŗ¾į»€į»‚į»„į»†į»į»’į»”į»–į»˜į»¢į»šį»œį»žį»Šį»Žį»Œį»ˆį»¦ÅØį»¤į»²Ć•įŗÆįŗ±įŗ·įŗ„įŗ§įŗ©įŗ­įŗ½įŗ¹įŗæį»į»ƒį»…į»‡į»‘į»“į»•į»—į» Ę į»™į»į»Ÿį»‹į»°į»Øį»Ŗį»¬Ę”į»›ĘÆƀƁƂƃįŗ¢Ä‚įŗ³įŗµĆˆĆ‰ĆŠįŗŗƌƍÄØį»³Äį»©Ć’Ć“Ć”įŗ”į»·į»«į»­Ć™Ćšį»¹į»µĆį»”Ę°Ć Ć”Ć¢Ć£įŗ£Äƒį»Æįŗ«ĆØĆ©ĆŖįŗ»Ć¬Ć­Ä©į»‰Ä‘į»±Ć²Ć³Ć“Ƶį»į»į»„Ć¹ĆŗÅ©į»§Ć½į»£į»®` - }, - iso646cn: { - type: "_sbcs", - chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b -\v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#Ā„%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}ā€¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½` - }, - iso646jp: { - type: "_sbcs", - chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b -\v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Ā„]^_\`abcdefghijklmnopqrstuvwxyz{|}ā€¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½` - }, - hproman8: { - type: "_sbcs", - chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ć€Ć‚ĆˆĆŠĆ‹ĆŽĆĀ“Ė‹Ė†ĀØĖœĆ™Ć›ā‚¤ĀÆĆĆ½Ā°Ć‡Ć§Ć‘ƱĀ”ĀæĀ¤Ā£Ā„Ā§Ę’Ā¢Ć¢ĆŖĆ“Ć»Ć”Ć©Ć³ĆŗĆ ĆØĆ²Ć¹Ć¤Ć«Ć¶Ć¼Ć…Ć®Ć˜Ć†Ć„Ć­ĆøĆ¦Ć„Ć¬Ć–ĆœĆ‰ĆÆĆŸĆ”ĆĆƒĆ£ĆĆ°ĆĆŒĆ“Ć’Ć•ĆµÅ Å”ĆšÅøĆæĆžĆ¾Ā·ĀµĀ¶Ā¾ā€”Ā¼Ā½ĀŖĀŗĀ«ā– Ā»Ā±ļæ½" - }, - macintosh: { - type: "_sbcs", - chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ā€¹ā€ŗļ¬ļ¬‚ā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" - }, - ascii: { - type: "_sbcs", - chars: "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½" - }, - tis620: { - type: "_sbcs", - chars: "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½" - } - }; -}); - -// node_modules/iconv-lite/encodings/dbcs-codec.js -var require_dbcs_codec = __commonJS((exports) => { - var Buffer2 = require_safer().Buffer; - exports._dbcs = DBCSCodec; - var UNASSIGNED = -1; - var GB18030_CODE = -2; - var SEQ_START = -10; - var NODE_START = -1000; - var UNASSIGNED_NODE = new Array(256); - var DEF_CHAR = -1; - for (i = 0;i < 256; i++) - UNASSIGNED_NODE[i] = UNASSIGNED; - var i; - function DBCSCodec(codecOptions, iconv) { - this.encodingName = codecOptions.encodingName; - if (!codecOptions) - throw new Error("DBCS codec is called without the data."); - if (!codecOptions.table) - throw new Error("Encoding '" + this.encodingName + "' has no data."); - var mappingTable = codecOptions.table(); - this.decodeTables = []; - this.decodeTables[0] = UNASSIGNED_NODE.slice(0); - this.decodeTableSeq = []; - for (var i2 = 0;i2 < mappingTable.length; i2++) - this._addDecodeChunk(mappingTable[i2]); - this.defaultCharUnicode = iconv.defaultCharUnicode; - this.encodeTable = []; - this.encodeTableSeq = []; - var skipEncodeChars = {}; - if (codecOptions.encodeSkipVals) - for (var i2 = 0;i2 < codecOptions.encodeSkipVals.length; i2++) { - var val = codecOptions.encodeSkipVals[i2]; - if (typeof val === "number") - skipEncodeChars[val] = true; - else - for (var j = val.from;j <= val.to; j++) - skipEncodeChars[j] = true; - } - this._fillEncodeTable(0, 0, skipEncodeChars); - if (codecOptions.encodeAdd) { - for (var uChar in codecOptions.encodeAdd) - if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) - this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]); - } - this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]; - if (this.defCharSB === UNASSIGNED) - this.defCharSB = this.encodeTable[0]["?"]; - if (this.defCharSB === UNASSIGNED) - this.defCharSB = 63; - if (typeof codecOptions.gb18030 === "function") { - this.gb18030 = codecOptions.gb18030(); - var thirdByteNodeIdx = this.decodeTables.length; - var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0); - var fourthByteNodeIdx = this.decodeTables.length; - var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0); - for (var i2 = 129;i2 <= 254; i2++) { - var secondByteNodeIdx = NODE_START - this.decodeTables[0][i2]; - var secondByteNode = this.decodeTables[secondByteNodeIdx]; - for (var j = 48;j <= 57; j++) - secondByteNode[j] = NODE_START - thirdByteNodeIdx; - } - for (var i2 = 129;i2 <= 254; i2++) - thirdByteNode[i2] = NODE_START - fourthByteNodeIdx; - for (var i2 = 48;i2 <= 57; i2++) - fourthByteNode[i2] = GB18030_CODE; - } - } - DBCSCodec.prototype.encoder = DBCSEncoder; - DBCSCodec.prototype.decoder = DBCSDecoder; - DBCSCodec.prototype._getDecodeTrieNode = function(addr) { - var bytes = []; - for (;addr > 0; addr >>= 8) - bytes.push(addr & 255); - if (bytes.length == 0) - bytes.push(0); - var node = this.decodeTables[0]; - for (var i2 = bytes.length - 1;i2 > 0; i2--) { - var val = node[bytes[i2]]; - if (val == UNASSIGNED) { - node[bytes[i2]] = NODE_START - this.decodeTables.length; - this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); - } else if (val <= NODE_START) { - node = this.decodeTables[NODE_START - val]; - } else - throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16)); - } - return node; - }; - DBCSCodec.prototype._addDecodeChunk = function(chunk) { - var curAddr = parseInt(chunk[0], 16); - var writeTable = this._getDecodeTrieNode(curAddr); - curAddr = curAddr & 255; - for (var k = 1;k < chunk.length; k++) { - var part = chunk[k]; - if (typeof part === "string") { - for (var l = 0;l < part.length; ) { - var code = part.charCodeAt(l++); - if (55296 <= code && code < 56320) { - var codeTrail = part.charCodeAt(l++); - if (56320 <= codeTrail && codeTrail < 57344) - writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320); - else - throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]); - } else if (4080 < code && code <= 4095) { - var len = 4095 - code + 2; - var seq = []; - for (var m = 0;m < len; m++) - seq.push(part.charCodeAt(l++)); - writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length; - this.decodeTableSeq.push(seq); - } else - writeTable[curAddr++] = code; - } - } else if (typeof part === "number") { - var charCode = writeTable[curAddr - 1] + 1; - for (var l = 0;l < part; l++) - writeTable[curAddr++] = charCode++; - } else - throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]); - } - if (curAddr > 255) - throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr); - }; - DBCSCodec.prototype._getEncodeBucket = function(uCode) { - var high = uCode >> 8; - if (this.encodeTable[high] === undefined) - this.encodeTable[high] = UNASSIGNED_NODE.slice(0); - return this.encodeTable[high]; - }; - DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) { - var bucket = this._getEncodeBucket(uCode); - var low = uCode & 255; - if (bucket[low] <= SEQ_START) - this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode; - else if (bucket[low] == UNASSIGNED) - bucket[low] = dbcsCode; - }; - DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) { - var uCode = seq[0]; - var bucket = this._getEncodeBucket(uCode); - var low = uCode & 255; - var node; - if (bucket[low] <= SEQ_START) { - node = this.encodeTableSeq[SEQ_START - bucket[low]]; - } else { - node = {}; - if (bucket[low] !== UNASSIGNED) - node[DEF_CHAR] = bucket[low]; - bucket[low] = SEQ_START - this.encodeTableSeq.length; - this.encodeTableSeq.push(node); - } - for (var j = 1;j < seq.length - 1; j++) { - var oldVal = node[uCode]; - if (typeof oldVal === "object") - node = oldVal; - else { - node = node[uCode] = {}; - if (oldVal !== undefined) - node[DEF_CHAR] = oldVal; - } - } - uCode = seq[seq.length - 1]; - node[uCode] = dbcsCode; - }; - DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) { - var node = this.decodeTables[nodeIdx]; - for (var i2 = 0;i2 < 256; i2++) { - var uCode = node[i2]; - var mbCode = prefix + i2; - if (skipEncodeChars[mbCode]) - continue; - if (uCode >= 0) - this._setEncodeChar(uCode, mbCode); - else if (uCode <= NODE_START) - this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars); - else if (uCode <= SEQ_START) - this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode); - } - }; - function DBCSEncoder(options, codec) { - this.leadSurrogate = -1; - this.seqObj = undefined; - this.encodeTable = codec.encodeTable; - this.encodeTableSeq = codec.encodeTableSeq; - this.defaultCharSingleByte = codec.defCharSB; - this.gb18030 = codec.gb18030; - } - DBCSEncoder.prototype.write = function(str) { - var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3)), leadSurrogate = this.leadSurrogate, seqObj = this.seqObj, nextChar = -1, i2 = 0, j = 0; - while (true) { - if (nextChar === -1) { - if (i2 == str.length) - break; - var uCode = str.charCodeAt(i2++); - } else { - var uCode = nextChar; - nextChar = -1; - } - if (55296 <= uCode && uCode < 57344) { - if (uCode < 56320) { - if (leadSurrogate === -1) { - leadSurrogate = uCode; - continue; - } else { - leadSurrogate = uCode; - uCode = UNASSIGNED; - } - } else { - if (leadSurrogate !== -1) { - uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320); - leadSurrogate = -1; - } else { - uCode = UNASSIGNED; - } - } - } else if (leadSurrogate !== -1) { - nextChar = uCode; - uCode = UNASSIGNED; - leadSurrogate = -1; - } - var dbcsCode = UNASSIGNED; - if (seqObj !== undefined && uCode != UNASSIGNED) { - var resCode = seqObj[uCode]; - if (typeof resCode === "object") { - seqObj = resCode; - continue; - } else if (typeof resCode == "number") { - dbcsCode = resCode; - } else if (resCode == undefined) { - resCode = seqObj[DEF_CHAR]; - if (resCode !== undefined) { - dbcsCode = resCode; - nextChar = uCode; - } else { - } - } - seqObj = undefined; - } else if (uCode >= 0) { - var subtable = this.encodeTable[uCode >> 8]; - if (subtable !== undefined) - dbcsCode = subtable[uCode & 255]; - if (dbcsCode <= SEQ_START) { - seqObj = this.encodeTableSeq[SEQ_START - dbcsCode]; - continue; - } - if (dbcsCode == UNASSIGNED && this.gb18030) { - var idx = findIdx(this.gb18030.uChars, uCode); - if (idx != -1) { - var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]); - newBuf[j++] = 129 + Math.floor(dbcsCode / 12600); - dbcsCode = dbcsCode % 12600; - newBuf[j++] = 48 + Math.floor(dbcsCode / 1260); - dbcsCode = dbcsCode % 1260; - newBuf[j++] = 129 + Math.floor(dbcsCode / 10); - dbcsCode = dbcsCode % 10; - newBuf[j++] = 48 + dbcsCode; - continue; - } - } - } - if (dbcsCode === UNASSIGNED) - dbcsCode = this.defaultCharSingleByte; - if (dbcsCode < 256) { - newBuf[j++] = dbcsCode; - } else if (dbcsCode < 65536) { - newBuf[j++] = dbcsCode >> 8; - newBuf[j++] = dbcsCode & 255; - } else { - newBuf[j++] = dbcsCode >> 16; - newBuf[j++] = dbcsCode >> 8 & 255; - newBuf[j++] = dbcsCode & 255; - } - } - this.seqObj = seqObj; - this.leadSurrogate = leadSurrogate; - return newBuf.slice(0, j); - }; - DBCSEncoder.prototype.end = function() { - if (this.leadSurrogate === -1 && this.seqObj === undefined) - return; - var newBuf = Buffer2.alloc(10), j = 0; - if (this.seqObj) { - var dbcsCode = this.seqObj[DEF_CHAR]; - if (dbcsCode !== undefined) { - if (dbcsCode < 256) { - newBuf[j++] = dbcsCode; - } else { - newBuf[j++] = dbcsCode >> 8; - newBuf[j++] = dbcsCode & 255; - } - } else { - } - this.seqObj = undefined; - } - if (this.leadSurrogate !== -1) { - newBuf[j++] = this.defaultCharSingleByte; - this.leadSurrogate = -1; - } - return newBuf.slice(0, j); - }; - DBCSEncoder.prototype.findIdx = findIdx; - function DBCSDecoder(options, codec) { - this.nodeIdx = 0; - this.prevBuf = Buffer2.alloc(0); - this.decodeTables = codec.decodeTables; - this.decodeTableSeq = codec.decodeTableSeq; - this.defaultCharUnicode = codec.defaultCharUnicode; - this.gb18030 = codec.gb18030; - } - DBCSDecoder.prototype.write = function(buf) { - var newBuf = Buffer2.alloc(buf.length * 2), nodeIdx = this.nodeIdx, prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length, seqStart = -this.prevBuf.length, uCode; - if (prevBufOffset > 0) - prevBuf = Buffer2.concat([prevBuf, buf.slice(0, 10)]); - for (var i2 = 0, j = 0;i2 < buf.length; i2++) { - var curByte = i2 >= 0 ? buf[i2] : prevBuf[i2 + prevBufOffset]; - var uCode = this.decodeTables[nodeIdx][curByte]; - if (uCode >= 0) { - } else if (uCode === UNASSIGNED) { - i2 = seqStart; - uCode = this.defaultCharUnicode.charCodeAt(0); - } else if (uCode === GB18030_CODE) { - var curSeq = seqStart >= 0 ? buf.slice(seqStart, i2 + 1) : prevBuf.slice(seqStart + prevBufOffset, i2 + 1 + prevBufOffset); - var ptr = (curSeq[0] - 129) * 12600 + (curSeq[1] - 48) * 1260 + (curSeq[2] - 129) * 10 + (curSeq[3] - 48); - var idx = findIdx(this.gb18030.gbChars, ptr); - uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]; - } else if (uCode <= NODE_START) { - nodeIdx = NODE_START - uCode; - continue; - } else if (uCode <= SEQ_START) { - var seq = this.decodeTableSeq[SEQ_START - uCode]; - for (var k = 0;k < seq.length - 1; k++) { - uCode = seq[k]; - newBuf[j++] = uCode & 255; - newBuf[j++] = uCode >> 8; - } - uCode = seq[seq.length - 1]; - } else - throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte); - if (uCode > 65535) { - uCode -= 65536; - var uCodeLead = 55296 + Math.floor(uCode / 1024); - newBuf[j++] = uCodeLead & 255; - newBuf[j++] = uCodeLead >> 8; - uCode = 56320 + uCode % 1024; - } - newBuf[j++] = uCode & 255; - newBuf[j++] = uCode >> 8; - nodeIdx = 0; - seqStart = i2 + 1; - } - this.nodeIdx = nodeIdx; - this.prevBuf = seqStart >= 0 ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset); - return newBuf.slice(0, j).toString("ucs2"); - }; - DBCSDecoder.prototype.end = function() { - var ret = ""; - while (this.prevBuf.length > 0) { - ret += this.defaultCharUnicode; - var buf = this.prevBuf.slice(1); - this.prevBuf = Buffer2.alloc(0); - this.nodeIdx = 0; - if (buf.length > 0) - ret += this.write(buf); - } - this.nodeIdx = 0; - return ret; - }; - function findIdx(table, val) { - if (table[0] > val) - return -1; - var l = 0, r = table.length; - while (l < r - 1) { - var mid = l + Math.floor((r - l + 1) / 2); - if (table[mid] <= val) - l = mid; - else - r = mid; - } - return l; - } -}); - -// node_modules/iconv-lite/encodings/tables/shiftjis.json -var require_shiftjis = __commonJS((exports, module) => { - module.exports = [ - ["0", "\x00", 128], - ["a1", "ļ½”", 62], - ["8140", "怀态怂ļ¼Œļ¼Žćƒ»ļ¼šļ¼›ļ¼Ÿļ¼ć‚›ć‚œĀ“ļ½€ĀØļ¼¾ļæ£ļ¼æćƒ½ćƒ¾ć‚ć‚žć€ƒä»ć€…ć€†ć€‡ćƒ¼ā€•ā€ļ¼ļ¼¼ļ½žāˆ„ļ½œā€¦ā€„ā€˜ā€™ā€œā€ļ¼ˆļ¼‰ć€”怕ļ¼»ļ¼½ļ½›ļ½ć€ˆ", 9, "ļ¼‹ļ¼Ā±Ć—"], - ["8180", "Ć·ļ¼ā‰ ļ¼œļ¼žā‰¦ā‰§āˆžāˆ“ā™‚ā™€Ā°ā€²ā€³ā„ƒļæ„ļ¼„ļæ ļæ”ļ¼…ļ¼ƒļ¼†ļ¼Šļ¼ Ā§ā˜†ā˜…ā—‹ā—ā—Žā—‡ā—†ā–”ā– ā–³ā–²ā–½ā–¼ā€»ć€’ā†’ā†ā†‘ā†“怓"], - ["81b8", "āˆˆāˆ‹āŠ†āŠ‡āŠ‚āŠƒāˆŖāˆ©"], - ["81c8", "āˆ§āˆØļæ¢ā‡’ā‡”āˆ€āˆƒ"], - ["81da", "āˆ āŠ„āŒ’āˆ‚āˆ‡ā‰”ā‰’ā‰Ŗā‰«āˆšāˆ½āˆāˆµāˆ«āˆ¬"], - ["81f0", "ā„«ā€°ā™Æā™­ā™Ŗā€ ā€”Ā¶"], - ["81fc", "ā—Æ"], - ["824f", "ļ¼", 9], - ["8260", "ļ¼”", 25], - ["8281", "ļ½", 25], - ["829f", "恁", 82], - ["8340", "ć‚”", 62], - ["8380", "惠", 22], - ["839f", "Ī‘", 16, "Ī£", 6], - ["83bf", "Ī±", 16, "Ļƒ", 6], - ["8440", "Š", 5, "ŠŠ–", 25], - ["8470", "Š°", 5, "ёŠ¶", 7], - ["8480", "Š¾", 17], - ["849f", "ā”€ā”‚ā”Œā”ā”˜ā””ā”œā”¬ā”¤ā”“ā”¼ā”ā”ƒā”ā”“ā”›ā”—ā”£ā”³ā”«ā”»ā•‹ā” ā”Æā”Øā”·ā”æā”ā”°ā”„ā”øā•‚"], - ["8740", "ā‘ ", 19, "ā… ", 9], - ["875f", "ć‰ćŒ”ćŒ¢ććŒ˜ćŒ§ćŒƒćŒ¶ć‘ć—ćŒćŒ¦ćŒ£ćŒ«ćŠćŒ»ćŽœćŽćŽžćŽŽćŽć„ćŽ”"], - ["877e", "ć»"], - ["8780", "思怟ā„–揍ā„”护", 4, "ćˆ±ćˆ²ćˆ¹ć¾ć½ć¼ā‰’ā‰”āˆ«āˆ®āˆ‘āˆšāŠ„āˆ āˆŸāŠæāˆµāˆ©āˆŖ"], - ["889f", "äŗœå”–å؃é˜æå“€ę„›ęŒØå§¶é€¢č‘µčŒœē©ę‚Ŗę”ęø„ꗭ葦芦éÆµę¢“åœ§ę–”ę‰±å®›å§č™»é£“ēµ¢ē¶¾é®Žęˆ–ē²Ÿč¢·å®‰åŗµęŒ‰ęš—ę”ˆé—‡éžęä»„伊位依偉囲夷委åØå°‰ęƒŸę„ę…°ę˜“ę¤…ē‚ŗē•ē•°ē§»ē¶­ē·ÆčƒƒčŽč”£č¬‚é•éŗ医äŗ•äŗ„åŸŸč‚²éƒē£Æäø€å£±ęŗ¢é€øēزčŒØ芋é°Æå…å°å’½å“”å› å§»å¼•é£²ę·«čƒ¤č”­"], - ["8940", "院陰隠韻吋右宇ēƒē¾½čæ‚é›ØåÆ鵜ēŖŗäø‘ē¢“č‡¼ęø¦å˜˜å”„ę¬č”šé°»å§„åŽ©ęµ¦ē“œé–å™‚äŗ‘é‹é›²čé¤Œå”å–¶å¬°å½±ę˜ ę›³ę „ę°øę³³ę“©ē‘›ē›ˆē©Žé “č‹±č”›č© é‹­ę¶²ē–«ē›Šé§…ę‚¦č¬č¶Šé–²ę¦ŽåŽ­å††"], - ["8980", "園堰億宓延ę€ØęŽ©ę“ę²æę¼”ē‚Žē„”ē…™ē‡•ēŒæēøč‰¶č‹‘č–—é é‰›é“›å”©ę–¼ę±šē”„凹央億往åæœęŠ¼ę—ŗęØŖ꬧ꮓēŽ‹ēæč„–é“¬é“Žé»„å²”ę²–č»å„„å±‹ę†¶č‡†ę”¶ē‰”乙äæŗåøꁩęø©ē©éŸ³äø‹åŒ–仮何伽侔佳加åÆ嘉夏嫁家åÆ”ē§‘ęš‡ęžœęž¶ę­Œę²³ē«ē‚ē¦ē¦¾ēؼē®‡čŠ±č‹›čŒ„č·čÆč“č¦čŖ²å˜©č²Øčæ¦éŽéœžčšŠäæ„å³Øꈑē‰™ē”»č‡„čŠ½č›¾č³€é›…é¤“é§•ä»‹ä¼šč§£å›žå”Šå£Šå»»åæ«ę€Ŗę‚”ę¢ę‡ęˆ’ę‹ę”¹"], - ["8a40", "é­ę™¦ę¢°ęµ·ē°ē•Œēš†ēµµčŠ„čŸ¹é–‹éšŽč²å‡±åŠ¾å¤–å’³å®³å“–ę…Øꦂę¶Æē¢č“‹č”—č©²éŽ§éŖø구é¦Øč›™åž£ęŸæč›ŽéˆŽåŠƒåš‡å„å»“ę‹”ę’¹ę ¼ę øę®»ē²ē¢ŗē©«č¦šč§’čµ«č¼ƒéƒ­é–£éš”é©å­¦å²³ę„½é”é”ŽęŽ›ē¬ ęØ«"], - ["8a80", "ę©æę¢¶é°ę½Ÿå‰²å–ę°ę‹¬ę“»ęø‡ę»‘č‘›č¤č½„äø”é°¹å¶ę¤›ęØŗ鞄ę Ŗ兜ē«ƒč’²é‡œéŽŒå™›é“Øę ¢čŒ…č±ē²„åˆˆč‹…ē“¦ä¹¾ä¾ƒå† åƒ刊勘勧巻喚å Ŗ姦完官åÆ›å¹²å¹¹ę‚£ę„Ÿę…£ę†¾ę›ę•¢ęŸ‘ę”“ę£ŗę¬¾ę­“ę±—ę¼¢ę¾—ę½…ē’°ē”˜ē›£ēœ‹ē«æē®”ē°”ē·©ē¼¶ēæ°č‚č‰¦čŽžč¦³č«Œč²«é‚„鑑間閑関附韓é¤Ø舘äøø含å²ø巌ēŽ©ē™Œēœ¼å²©ēæ«č“‹é›é ‘锔锘企伎危喜å™ØåŸŗ儇嬉åƄ岐åøŒå¹¾åæŒę®ęœŗę——ę—¢ęœŸę£‹ę£„"], - ["8b40", "ę©Ÿåø°ęÆ…ę°—ę±½ē•æē„ˆå­£ē؀ē“€å¾½č¦čØ˜č²“čµ·č»Œč¼é£¢é؎鬼äŗ€å½å„€å¦“宜ęˆÆꊀꓬę¬ŗēŠ ē–‘ē„‡ē¾©čŸ»čŖ¼č­°ęŽ¬čŠéž å‰åƒå–«ę””ę©˜č©°ē §ęµé»å“å®¢č„šč™é€†äø˜ä¹…仇休及åøå®®å¼“ę€„ę•‘"], - ["8b80", "ęœ½ę±‚ę±²ę³£ēøēƒē©¶ēŖ®ē¬ˆē“šē³¾ēµ¦ę—§ē‰›åŽ»å±…å·Øꋒꋠꌙęø č™ščØ±č·é‹øę¼ē¦¦é­šäŗØäŗ«äŗ¬ä¾›ä¾ åƒ‘å…‡ē«¶å…±å‡¶å”匔åæ叫喬境峔強彊ę€Æęę­ęŒŸę•™ę©‹ę³ē‹‚ē‹­ēŸÆčƒøč„…čˆˆč•Žéƒ·é”éŸæé„—é©šä»°å‡å°­ęšę„­å±€ę›²ę„µēŽ‰ę”ē²åƒ…å‹¤å‡å·¾éŒ¦ę–¤ę¬£ę¬½ē“ē¦ē¦½ē­‹ē·ŠčŠ¹čŒč”æč„Ÿč¬¹čæ‘金吟銀九倶叄åŒŗē‹—ēŽ–ēŸ©č‹¦čŗÆé§†é§ˆé§’å…·ę„šč™žå–°ē©ŗ偶åƓ遇隅äø²ę«›é‡§å±‘屈"], - ["8c40", "ꎘēŖŸę²“é“č½”ēŖŖē†Šéšˆē²‚ę —ē¹°ę”‘é¬å‹²å›č–«čؓē¾¤č»éƒ”å¦č¢ˆē„äæ‚傾刑兄啓圭ēŖåž‹å„‘å½¢å¾„ęµę…¶ę…§ę†©ęŽ²ęŗꕬę™Æꔂęø“ē•¦ēؽē³»ēµŒē¶™ē¹‹ē½«čŒŽčŠč›čØˆč©£č­¦č»½é šé¶čŠøčæŽéÆØ"], - ["8c80", "åŠ‡ęˆŸę’ƒęæ€éš™ę”å‚‘ꬠę±ŗę½”ē©“ēµč”€čØ£ęœˆä»¶å€¹å€¦å„å…¼åˆø剣喧圏堅嫌å»ŗę†²ę‡øę‹³ę²ę¤œęØ©ē‰½ēŠ¬ēŒ®ē ”ē”Æēµ¹ēœŒč‚©č¦‹č¬™č³¢č»’遣鍵é™ŗ锕éؓé¹ø元原厳幻弦ęø›ęŗēŽ„ē¾ēµƒčˆ·č؀č«ŗ限乎個古呼å›ŗ姑孤己åŗ«å¼§ęˆøꕅęžÆę¹–ē‹ē³Šč¢“č‚”čƒ”č°č™ŽčŖ‡č·Ø鈷雇锧鼓äŗ”äŗ’伍午呉吾åØÆå¾Œå¾”ę‚Ÿę¢§ęŖŽē‘šē¢čŖžčŖ¤č­·é†ä¹žéƉäŗ¤ä½¼ä¾Æ候倖光公功効勾厚口向"], - ["8d40", "后喉坑垢儽孔孝宏巄巧巷å¹øåŗƒåŗšåŗ·å¼˜ę’ę…ŒęŠ—ę‹˜ęŽ§ę”»ę˜‚ę™ƒę›“ę­ę ”ę¢—ę§‹ę±Ÿę“Ŗ굩ęøÆęŗē”²ēš‡ē”¬ēØæē³ ē“…ē“˜ēµžē¶±č€•č€ƒč‚Æč‚±č…”č†čˆŖč’č”Œč””č¬›č²¢č³¼éƒŠé…µé‰±ē æ鋼閤降"], - ["8d80", "é …é¦™é«˜é“»å‰›åŠ«å·åˆå£•ę‹·ęæ č±Ŗč½Ÿéŗ¹å…‹åˆ»å‘Šå›½ē©€é…·éµ é»’ē„ę¼‰č…°ē”‘åæ½ęƒšéŖØē‹›č¾¼ę­¤é ƒä»Šå›°å¤å¢¾å©šęØę‡‡ę˜ę˜†ę ¹ę¢±ę··ē—•ē“ŗ艮魂äŗ›ä½å‰å”†åµÆå·¦å·®ęŸ»ę²™ē‘³ē ‚č©éŽ–č£Ÿååŗ§ęŒ«å‚µå‚¬å†ęœ€å“‰å”žå¦»å®°å½©ę‰ęŽ”ę ½ę­³ęøˆē½é‡‡ēŠ€ē •ē ¦ē„­ę–Žē“°čœč£č¼‰éš›å‰¤åœØꝐē½Ŗč²”å†“å‚é˜Ŗå ŗę¦Šč‚“å’²å“ŽåŸ¼ē¢•é·ŗä½œå‰Šå’‹ę¾ę˜Øęœ”ęŸµēŖ„ē­–ē“¢éŒÆę”œé®­ē¬¹åŒ™å†Šåˆ·"], - ["8e40", "åÆŸę‹¶ę’®ę“¦ęœ­ę®ŗ薩雑ēšéÆ–ęŒéŒ†é®«ēšæꙒäø‰å‚˜å‚å±±ęƒØę’’ę•£ę”Ÿē‡¦ēŠē”£ē®—ēŗ‚čš•č®ƒč³›é…ø餐ꖬꚫꮋ仕仔ä¼ŗä½æåˆŗåø史嗣四士始姉å§æ子屍åø‚åø«åæ—ę€ęŒ‡ę”Æ孜ę–Æę–½ę—Øęžę­¢"], - ["8e80", "ę­»ę°ē…ē„‰ē§ē³øē“™ē“«č‚¢č„‚č‡³č¦–č©žč©©č©¦čŖŒč«®č³‡č³œé›Œé£¼ę­Æäŗ‹ä¼¼ä¾å…å­—åÆŗę…ˆęŒę™‚ę¬”ę»‹ę²»ēˆ¾ē’½ē—”ē£ē¤ŗč€Œč€³č‡Ŗč’”č¾žę±é¹æå¼č­˜é“«ē«ŗč»ø宍雫äøƒå±åŸ·å¤±å«‰å®¤ę‚‰ę¹æę¼†ē–¾č³Ŗå®Ÿč”€ēÆ å²ęŸ“čŠå±”č•ŠēøžčˆŽå†™å°„ęØčµ¦ę–œē…®ē¤¾ē“—č€…č¬č»Šé®č›‡é‚Ŗ借å‹ŗå°ŗꝓē¼ēˆµé…Œé‡ˆéŒ«č‹„åÆ‚å¼±ęƒ¹äø»å–å®ˆę‰‹ęœ±ę®Šē‹©ē ēØ®č…«č¶£é…’é¦–å„’å—å‘ŖåÆæꎈęعē¶¬éœ€å›šåŽå‘Ø"], - ["8f40", "宗就州äæ®ę„ę‹¾ę“²ē§€ē§‹ēµ‚ē¹ēæ’č‡­čˆŸč’č”†č„²č®č¹“č¼Æé€±é…‹é…¬é›†é†œä»€ä½å……åå¾“ęˆŽęŸ”ę±ęø‹ē£ēø¦é‡éŠƒå”夙å®æę·‘ē„ēø®ē²›å”¾ē†Ÿå‡ŗ蔓čæ°äæŠå³»ę˜„ēž¬ē«£čˆœé§æ准å¾Ŗę—¬ę„Æę®‰ę·³"], - ["8f80", "ęŗ–ę½¤ē›¾ē“”å·”éµé†‡é †å‡¦åˆę‰€ęš‘ę›™ęøšåŗ¶ē·’ē½²ę›øč–Æč—·č«ø助叙儳åŗå¾ę•é‹¤é™¤å‚·å„Ÿå‹åŒ å‡å¬å“Ø商唱嘗å„Ø妾åؼ宵将小少尚åŗ„åŗŠå» å½°ę‰æęŠ„ę‹›ęŽŒę·ę˜‡ę˜Œę˜­ę™¶ę¾ę¢¢ę؟ęØµę²¼ę¶ˆęø‰ę¹˜ē„¼ē„¦ē…§ē—‡ēœē”ē¤ē„„ē§°ē« ē¬‘ē²§ē“¹č‚–č–č’‹č•‰č”č£³č؟čØ¼č©”č©³č±”č³žé†¤é‰¦é¾é˜éšœéž˜äøŠäøˆäøžä¹—冗剰城堓壌嬢åøøęƒ…ę“¾ę”ę–ęµ„ēŠ¶ē•³ē©£č’øč­²é†ø錠嘱埓飾"], - ["9040", "ę‹­ę¤ę®–ē‡­ē¹”č·č‰²č§¦é£Ÿč•č¾±å°»ä¼øäæ”侵唇åØ åƝåÆ©åæƒę…ŽęŒÆę–°ę™‹ę£®ę¦›ęµøę·±ē”³ē–¹ēœŸē„žē§¦ē“³č‡£čŠÆč–Ŗč¦ŖčØŗčŗ«č¾›é€²é‡éœ‡äŗŗ仁刃唵壬尋ē”šå°½č…Žč؊čæ…陣靭ē¬„č«é ˆé…¢å›³åŽØ"], - ["9080", "逗吹垂åø„ęŽØę°“ē‚Šē”ē²‹ēæ č”°é‚酔錐錘随ē‘žé«„å“‡åµ©ę•°ęž¢č¶Øé››ę®ę‰ę¤™č…é —é›€č£¾ę¾„ę‘ŗåÆøäø–ē€¬ē•ę˜Æå‡„åˆ¶å‹¢å§“å¾ę€§ęˆę”æę•“ę˜Ÿę™“ę£²ę –ę­£ęø…ē‰²ē”Ÿē››ē²¾č–å£°č£½č„æčŖ čŖ“č«‹é€é†’é’é™ę–‰ēØŽč„†éš»åø­ęƒœęˆšę–„ꘔꞐēŸ³ē©ē±ēø¾č„Šč²¬čµ¤č·”č¹Ÿē¢©åˆ‡ę‹™ęŽ„ꑂꊘčØ­ēŖƒēƀčŖ¬é›Ŗēµ¶čˆŒč‰ä»™å…ˆåƒå å®£å°‚å°–å·ęˆ¦ę‰‡ę’°ę “ę “ę³‰ęµ…ę“—ęŸ“ę½œē…Žē…½ę—‹ē©æē®­ē·š"], - ["9140", "ē¹Šē¾Øč…ŗčˆ›čˆ¹č–¦č©®č³Žč·µéø遷銭銑閃鮮前善ę¼øē„¶å…Øē¦…ē¹•č†³ē³Žå™Œå”‘å²ØęŽŖę›¾ę›½ę„šē‹™ē–ē–Žē¤Žē„–ē§Ÿē²—ē“ ēµ„č˜‡čؓ阻達鼠僧創双叢倉å–Ŗ壮儏ēˆ½å®‹å±¤åŒęƒ£ęƒ³ęœęŽƒęŒæꎻ"], - ["9180", "ę“ę—©ę›¹å·£ę§ę§½ę¼•ē‡„äŗ‰ē—©ē›øēŖ“ē³Ÿē·ē¶œč”č‰č˜č‘¬č’¼č—»č£…čµ°é€é­éŽ—éœœéØ’åƒå¢—ę†Žč‡“č”µč“ˆé€ äæƒå“則即ęÆꍉꝟęø¬č¶³é€Ÿäæ—å±žč³Šę—ē¶šå’č¢–å…¶ęƒå­˜å­«å°Šęę‘éœä»–å¤šå¤Ŗę±°č©‘å”¾å •å¦„ęƒ°ę‰“ęŸčˆµę„•é™€é§„éØØ体堆åÆ¾č€å²±åøÆå¾…ę€ ę…‹ęˆ“ę›æę³°ę»žčƒŽč…æč‹”č¢‹č²ø退逮隊黛éƛ代台大ē¬¬é†é”Œé·¹ę»ē€§å“å•„å®…ę‰˜ęŠžę‹“ę²¢ęæÆē¢čؗéøęæč«¾čŒø凧č›øåŖ"], - ["9240", "å©ä½†é”č¾°å„Ŗč„±å·½ē«Ŗč¾æę£šč°·ē‹ø鱈ęؽčŖ°äø¹å˜å˜†å¦ę‹…ęŽ¢ę—¦ę­Žę·”ę¹›ē‚­ēŸ­ē«Æē®Ŗē¶»č€½čƒ†č›‹čŖ•é›å›£å£‡å¼¾ę–­ęš–ęŖ€ę®µē”·č«‡å€¤ēŸ„åœ°å¼›ę„ę™ŗę± ē—“ēؚē½®č‡“čœ˜é…é¦³ēƉē•œē«¹ē­‘č“„"], - ["9280", "逐ē§©ēŖ’čŒ¶å«”ē€äø­ä»²å®™åæ ęŠ½ę˜¼ęŸ±ę³Ø虫蔷čػ酎鋳駐ęؗē€¦ēŒŖ苧著č²Æäøå…†å‡‹å–‹åƵåø–åø³åŗå¼”å¼µå½«å¾“ę‡²ęŒ‘ęš¢ęœę½®ē‰’ē”ŗēœŗč“č„¹č…øč¶čŖæč«œč¶…č·³éŠšé•·é ‚é³„å‹…ę—ē›“ęœ•ę²ˆēč³ƒéŽ®é™³ę“„å¢œę¤Žę§Œčæ½éŽšē—›é€šå”šę ‚ęŽ“ę§»ä½ƒę¼¬ęŸ˜č¾»č”¦ē¶“鍔ę¤æę½°åŖ壷嬬ē“¬ēˆŖ吊釣鶓äŗ­ä½Žåœåµå‰ƒč²žå‘ˆå ¤å®šåøåŗ•åŗ­å»·å¼Ÿę‚ŒęŠµęŒŗꏐę¢Æę±€ē¢‡ē¦Žē؋ē· č‰‡čØ‚č«¦č¹„é€“"], - ["9340", "é‚øé„­é‡˜é¼Žę³„ę‘˜ę“¢ę•µę»“ēš„ē¬›é©é‘ęŗŗå“²å¾¹ę’¤č½čæ­é‰„å…ø唫天展åŗ—ę·»ēŗē”œč²¼č»¢é”›ē‚¹ä¼ę®æę¾±ē”°é›»å…Žåå µå”—å¦¬å± å¾’ę–—ęœęø”ē™»čŸč³­é€”都鍍ē „ē ŗåŠŖåŗ¦åœŸå„“ę€’å€’å…šå†¬"], - ["9380", "å‡åˆ€å”å””å”˜å„—å®•å³¶å¶‹ę‚¼ęŠ•ę­ę±ę”ƒę¢¼ę£Ÿē›—ę·˜ę¹Æ궛ēÆē‡ˆå½“ē—˜ē„·ē­‰ē­”ē­’ē³–ēµ±åˆ°č‘£č•©č—¤čØŽč¬„č±†čøé€ƒé€é™é™¶é ­éØ°é—˜åƒå‹•åŒå ‚å°Žę†§ę’žę“žēž³ē«„čƒ“č„é“éŠ…å³ é“‡åŒæå¾—å¾³ę¶œē‰¹ē£ē¦æēƤęƒē‹¬čŖ­ę ƒę©”å‡øēŖę¤“å±Šé³¶č‹«åƅ酉ē€žå™øå±Æęƒ‡ę•¦ę²Œč±šéé “å‘‘ę›‡éˆå„ˆé‚£å†…ä¹å‡Ŗ薙謎ē˜ęŗé‹ę„¢é¦“ēø„ē•·å—ę„ č»Ÿé›£ę±äŗŒå°¼å¼čæ©åŒ‚č³‘č‚‰č™¹å»æę—„ä¹³å…„"], - ["9440", "如å°æ韮任妊åæčŖęæ”ē¦°ē„¢åÆ§č‘±ēŒ«ē†±å¹“åæµę»ę’šē‡ƒē²˜ä¹ƒå»¼ä¹‹åŸœåš¢ę‚©ęæƒē“čƒ½č„³č†æč¾²č¦—čš¤å·“ęŠŠę’­č¦‡ę·ę³¢ę“¾ē¶ē “婆ē½µčŠ­é¦¬äæ³å»ƒę‹ęŽ’ę•—ęÆē›ƒē‰ŒčƒŒč‚ŗč¼©é…å€åŸ¹åŖ’ę¢…"], - ["9480", "ę„³ē…¤ē‹½č²·å£²č³ é™Ŗ這čæē§¤ēŸ§č©ä¼Æå‰„åšę‹ęŸę³Šē™½ē®”ē²•čˆ¶č–„čæ«ę›ę¼ ēˆ†ēø›čŽ«é§éŗ¦å‡½ē®±ē”²ē®ø肇ē­ˆę«Øå¹”č‚Œē•‘ē• å…«é‰¢ęŗŒē™ŗ醗é«Ŗ伐ē½°ęŠœē­é–„鳩å™ŗå”™č›¤éš¼ä¼“åˆ¤åŠåå›åø†ę¬ę–‘ęæę°¾ę±Žē‰ˆēŠÆē­ē•”ē¹čˆ¬č—©č²©ēƄ釆ē…©é ’é£ÆęŒ½ę™©ē•Ŗē›¤ē£č•ƒč›®åŒŖ卑否妃åŗ‡å½¼ę‚²ę‰‰ę‰¹ęŠ«ę–ęÆ”ę³Œē–²ēš®ē¢‘ē§˜ē·‹ē½·č‚„č¢«čŖ¹č²»éæ非飛ę؋ē°øå‚™å°¾å¾®ęž‡ęƘēµēœ‰ē¾Ž"], - ["9540", "é¼»ęŸŠēؗ匹ē–‹é«­å½¦č†č±č‚˜å¼¼åæ…ē•¢ē­†é€¼ę”§å§«åŖ›ē“ē™¾č¬¬äæµå½ŖęØ™ę°·ę¼‚ē“¢ē„Øč”Øč©•č±¹å»Ÿęē—…ē§’č‹—éŒØé‹²č’œč›­é°­å“å½¬ę–Œęµœē€•č²§č³“é »ę•ē“¶äøä»˜åŸ å¤«å©¦åƌå†Øåøƒåŗœę€–ꉶꕷ"], - ["9580", "ꖧꙮ굮ēˆ¶ē¬¦č…č†ščŠ™č­œč² č³¦čµ“é˜œé™„ä¾®ę’«ę­¦čˆžč‘”č•ŖéƒØå°ę„“é¢Øč‘ŗč•—ä¼å‰Æå¾©å¹…ęœē¦č…¹č¤‡č¦†ę·µå¼—ꉕę²ø仏ē‰©é®’åˆ†å»å™“å¢³ę†¤ę‰®ē„šå„®ē²‰ē³žē“›é›°ę–‡čžäø™ä½µå…µå”€å¹£å¹³å¼ŠęŸ„äø¦č”½é–‰é™›ē±³é åƒ»å£ē™–ē¢§åˆ„ēž„蔑ē®†åå¤‰ē‰‡ēƇē·Øč¾ŗčæ”遍ä¾æ勉åة弁鞭äæčˆ—é‹Ŗåœƒę•ę­©ē”«č£œč¼”ē©‚å‹Ÿå¢“ę…•ęˆŠęš®ęƍē°æč©å€£äæø包呆報儉宝峰å³Æå“©åŗ–ęŠ±ę§ę”¾ę–¹ęœ‹"], - ["9640", "ę³•ę³”ēƒ¹ē ²ēø«čƒžčŠ³čŒč“¬čœ‚褒čØŖč±Šé‚¦é‹’é£½é³³éµ¬ä¹äŗ”傍剖坊å¦Øåø½åæ˜åæ™ęˆæęš“ęœ›ęŸę£’å†’ē“”č‚Ŗč†Øč¬€č²Œč²æ鉾防吠頬北僕卜å¢Øę’²ęœ“ē‰§ē¦ē©†é‡¦å‹ƒę²”ę®†å €å¹Œå„”ęœ¬ēæ»å‡”ē›†"], - ["9680", "ę‘©ē£Ø魔éŗ»åŸ‹å¦¹ę˜§ęžšęÆŽå“©ę§™å¹•č†œęž•é®ŖęŸ¾é±’ę”äŗ¦äæ£åˆęŠ¹ęœ«ę²«čæ„ä¾­ē¹­éŗæäø‡ę…¢ęŗ€ę¼«č”“味ęœŖ魅巳ē®•å²¬åÆ†čœœę¹Šč“‘ēØ”č„ˆå¦™ē²ę°‘ēœ å‹™å¤¢ē„”ē‰ŸēŸ›éœ§éµ”ꤋå©æåØ˜å†„åå‘½ę˜Žē›Ÿčæ·éŠ˜é³“å§Ŗē‰ę»…å…ę£‰ē¶æē·¬é¢éŗŗę‘øęØ”čŒ‚å¦„å­ŸęƛēŒ›ē›²ē¶²č€—č’™å„²ęœØ黙ē›®ę¢å‹æé¤…å°¤ęˆ»ē±¾č²°å•ę‚¶ē“‹é–€åŒä¹Ÿå†¶å¤œēˆŗč€¶é‡Žå¼„ēŸ¢åŽ„å½¹ē“„č–¬čسčŗé–ęŸ³č–®é‘“ę„‰ę„ˆę²¹ē™’"], - ["9740", "č«­č¼øå”Æ佑å„Ŗå‹‡å‹å®„å¹½ę‚ ę†‚ę–ęœ‰ęŸšę¹§ę¶ŒēŒ¶ēŒ·ē”±ē„č£•čŖ˜éŠé‚‘éƒµé›„čžå¤•äŗˆä½™äøŽčŖ‰č¼æ預傭幼妖容åŗøꏚęŗę“ę›œę„Šę§˜ę“‹ęŗ¶ē†”ē”ØēŖÆē¾Šč€€č‘‰č“‰č¦č¬”čøŠé„é™½é¤Šę…¾ęŠ‘ę¬²"], - ["9780", "ę²ƒęµ“ēæŒēæ¼ę·€ē¾…čžŗč£øę„čŽ±é ¼é›·ę“›ēµ”č½é…Ŗä¹±åµåµę¬„ęæ«č—č˜­č¦§åˆ©åå±„Ꝏę¢Øē†ē’ƒē—¢č£č£”里離é™ø律ēŽ‡ē«‹č‘ŽęŽ ē•„åŠ‰ęµęŗœē‰ē•™ē”«ē²’隆ē«œé¾ä¾¶ę…®ę—…č™œäŗ†äŗ®åƒšäø”凌åÆ®ę–™ę¢ę¶¼ēŒŸē™‚ēž­ē؜ē³§č‰Æč«’é¼é‡é™µé ˜åŠ›ē·‘å€«åŽ˜ęž—ę·‹ē‡ē³č‡Øč¼Ŗ隣鱗éŗŸē‘ å”ę¶™ē“Æ锞令伶例冷励å¶ŗꀜēŽ²ē¤¼č‹“鈓隷零霊éŗ—é½¢ęš¦ę­“列劣ēƒˆč£‚å»‰ę‹ę†ę¼£ē…‰ē°¾ē·“čÆ"], - ["9840", "č“®é€£éŒ¬å‘‚é­Æę«“ē‚‰č³‚č·Æéœ²åŠ“å©å»Šå¼„ęœ—ę„¼ę¦”ęµŖę¼ē‰¢ē‹¼ēÆ­č€č¾č‹éƒŽå…­éŗ“ē¦„č‚‹éŒ²č«–å€­å’Œč©±ę­Ŗč³„č„‡ęƒ‘ęž é·²äŗ™äŗ˜é°č©«č—č•Øę¤€ę¹¾ē¢—č…•"], - ["989f", "弌äøäø•äøŖäø±äø¶äø¼äøæ乂乖乘äŗ‚äŗ…豫äŗŠčˆ’弍äŗŽäŗžäŗŸäŗ äŗ¢äŗ°äŗ³äŗ¶ä»Žä»ä»„仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑ä½Æ來侖儘äæ”äæŸäæŽäæ˜äæ›äæ‘äæšäæäæ¤äæ„倚å€Ø倔å€Ŗ倄倅伜äæ¶å€”倩倬äæ¾äæÆå€‘å€†åƒå‡ęœƒå•ååˆåšå–å¬åø傀傚傅傓傲"], - ["9940", "僉僊傳僂僖僞僄僭僣僮價僵儉儁儂儖儕儔儚儔å„ŗ儷儼儻å„æ兀兒兌兔兢ē«ø兩å…Ŗ兮冀冂囘册冉冏冑冓冕冖冤冦冢冩å†Ŗå†«å†³å†±å†²å†°å†µå†½å‡…å‡‰å‡›å‡ č™•å‡©å‡­"], - ["9980", "凰凵凾刄刋刔刎刧åˆŖ刮刳刹剏剄剋剌剞剔å‰Ŗ剓剩剳å‰æ剽劍劔劒剱劈劑č¾Øč¾§åŠ¬åŠ­åŠ¼åŠµå‹å‹å‹—å‹žå‹£å‹¦é£­å‹ å‹³å‹µå‹ø勹匆匈ē”ø匍匐匏匕匚匣åŒÆ匱匳åŒø區卆卅äø—卉卍凖卞卩卮夘卻卷厂厖厠厦厄厮厰厶參ē°’é›™åŸę›¼ē‡®å®åØ叭åŗ吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢å’ø咄咬哄哈å’Ø"], - ["9a40", "咫哂咤咾咼哘哄哦唏唔哽哮哭å“ŗ哢唹啀啣啌售啜啅啖啗å”ø唳啝喙喀å’Æ喊喟啻啾喘喞單啼喃喩喇å–Ø嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐ē‡Ÿå˜“嘶嘲å˜ø"], - ["9a80", "噫噤å˜Æ噬å™Ŗ嚆嚀嚊嚠嚔嚏嚄嚮嚶嚓囂嚼囁囃囀囈囎囑囓囗囮囹圀å›æ圄圉圈國圍圓團圖嗇圜圦圷åœø坎圻址坏坩埀垈坔åæ垉垓垠垳垤åžŖ垰埃埆埔埒埓堊埖埣堋堙堝唲堔唢唋唰ęƀ唒堽唹墅墹墟墫å¢ŗ壞墻å¢ø墮壅壓壑壗壙壘壄壜壤壟å£Æå£ŗå£¹å£»å£¼å£½å¤‚å¤Šå¤å¤›ę¢¦å¤„å¤¬å¤­å¤²å¤ø夾ē«’儕儐儎儚儘儢儠儧儬儩"], - ["9b40", "å„ø妁妝佞侫妣妲姆å§Ø姜妍姙姚åØ„å؟åؑå؜å؉åؚ婀婬婉åصåض婢å©ŖåŖšåŖ¼åŖ¾å«‹å«‚åŖ½å«£å«—嫦嫩嫖å«ŗ嫻嬌嬋嬖嬲嫐å¬Ŗ嬶嬾孃孅孀孑孕孚孛孄孩孰孳孵å­øꖈå­ŗ宀"], - ["9b80", "它宦å®øåƃåƇåƉåƔåƐåƤåƦåÆ¢åƞåÆ„åÆ«åÆ°åƶåƳ尅將專對尓尠尢å°Øå°ø尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽å³ŗ峭嶌å³Ŗ哋哕哗嵜哟哛哑哔哢哚哙哘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵åø‹åøšåø™åø‘åø›åø¶åø·å¹„幃幀幎幗幔幟幢幤幇幵并å¹ŗéŗ¼å¹æåŗ å»å»‚廈廐廏"], - ["9c40", "廖廣廝廚廛廢廔å»Ø廩廬廱廳廰廓å»ø廾弃弉彝彜弋弑弖弩弭å¼ø彁彈彌彎å¼Æ彑彖彗彙彔彭彳彷徃徂å½æ徊很徑徇從徙徘徠å¾Øå¾­å¾¼åæ–åæ»åæ¤åæøåæ±åæę‚³åææꀔꁠ"], - ["9c80", "ę€™ę€ę€©ę€Žę€±ę€›ę€•ę€«ę€¦ę€ę€ŗꁚꁁęŖę·ęŸęŠę†ęę£ęƒę¤ę‚ę¬ę«ę™ę‚ę‚ęƒ§ę‚ƒę‚šę‚„ę‚›ę‚–ę‚—ę‚’ę‚§ę‚‹ęƒ”ę‚øęƒ ęƒ“ę‚“åæ°ę‚½ęƒ†ę‚µęƒ˜ę…ę„•ę„†ęƒ¶ęƒ·ę„€ęƒ“ęƒŗę„ƒę„”ęƒ»ęƒ±ę„ę„Žę…‡ę„¾ę„Øꄧꅊę„æę„¼ę„¬ę„“ę„½ę…‚ę…„ę…³ę…·ę…˜ę…™ę…šę…«ę…“ę…Æę…„ę…±ę…Ÿę…ę…“ę…µę†™ę†–ę†‡ę†¬ę†”ę†šę†Šę†‘ę†«ę†®ę‡Œę‡Šę‡‰ę‡·ę‡ˆę‡ƒę‡†ę†ŗꇋē½¹ę‡ę‡¦ę‡£ę‡¶ę‡ŗꇓę‡æę‡½ę‡¼ę‡¾ęˆ€ęˆˆęˆ‰ęˆęˆŒęˆ”ęˆ›"], - ["9d40", "ęˆžęˆ”ęˆŖęˆ®ęˆ°ęˆ²ęˆ³ę‰ę‰Žę‰žę‰£ę‰›ę‰ ę‰Øę‰¼ęŠ‚ęŠ‰ę‰¾ęŠ’ęŠ“ęŠ–ę‹”ęŠƒęŠ”ę‹—ę‹‘ęŠ»ę‹ę‹æę‹†ę“”ę‹ˆę‹œę‹Œę‹Šę‹‚ę‹‡ęŠ›ę‹‰ęŒŒę‹®ę‹±ęŒ§ęŒ‚ęŒˆę‹Æę‹µęęŒ¾ęęœęęŽ–ęŽŽęŽ€ęŽ«ę¶ęŽ£ęŽęŽ‰ęŽŸęŽµę«"], - ["9d80", "ę©ęŽ¾ę©ę€ę†ę£ę‰ę’ę¶ę„ę–ę“ę†ę“ę¦ę¶ę”ę—ęØꐏꑧę‘Æꑶꑎę”Ŗę’•ę’“ę’„ę’©ę’ˆę’¼ę“šę“’ę“…ę“‡ę’»ę“˜ę“‚ę“±ę“§čˆ‰ę“ ę“”ęŠ¬ę“£ę“Æę”¬ę“¶ę““ę“²ę“ŗę”€ę“½ę”˜ę”œę”…ę”¤ę”£ę”«ę”“ę”µę”·ę”¶ę”øē•‹ę•ˆę•–ę••ę•ę•˜ę•žę•ę•²ę•øę–‚ę–ƒč®Šę–›ę–Ÿę–«ę–·ę—ƒę—†ę—ę—„ę—Œę—’ę—›ę—™ę— ę—”ę—±ę²ę˜Šę˜ƒę—»ę³ę˜µę˜¶ę˜“ę˜œę™ę™„ę™‰ę™ę™žę™ę™¤ę™§ę™Øę™Ÿę™¢ę™°ęšƒęšˆęšŽęš‰ęš„ęš˜ęšę›ęš¹ę›‰ęš¾ęš¼"], - ["9e40", "ꛄęšøꛖꛚꛠę˜æę›¦ę›©ę›°ę›µę›·ęœęœ–ęœžęœ¦ęœ§éœøęœ®ęœæęœ¶ęęœøęœ·ę†ęžę ę™ę£ę¤ęž‰ę°ęž©ę¼ęŖęžŒęž‹ęž¦ęž”ęž…ęž·ęŸÆęž“ęŸ¬ęž³ęŸ©ęžøęŸ¤ęŸžęŸęŸ¢ęŸ®ęž¹ęŸŽęŸ†ęŸ§ęŖœę žę”†ę ©ę”€ę”ę ²ę”Ž"], - ["9e80", "ę¢³ę «ę”™ę”£ę”·ę”æę¢Ÿę¢ę¢­ę¢”ę¢ę¢›ę¢ƒęŖ®ę¢¹ę”“ę¢µę¢ ę¢ŗę¤ę¢ę”¾ę¤ę£Šę¤ˆę£˜ę¤¢ę¤¦ę£”ę¤Œę£ę£”ę£§ę£•ę¤¶ę¤’ę¤„ę£—ę££ę¤„ę£¹ę£ ę£Æę¤Øę¤Ŗę¤šę¤£ę¤”ę£†ę„¹ę„·ę„œę„øę„«ę„”ę„¾ę„®ę¤¹ę„“ę¤½ę„™ę¤°ę„”ę„žę„ę¦ę„Ŗę¦²ę¦®ę§ę¦æę§ę§“ę¦¾ę§ŽåÆØę§Šę§ę¦»ę§ƒę¦§ęØ®ę¦‘ę¦ ę¦œę¦•ę¦“ę§žę§Øę؂ę؛ę§æę¬Šę§¹ę§²ę§§ęØ…ę¦±ęØžę§­ęØ”ę§«ę؊ęØ’ę«ęØ£ęØ“ę©„ęØŒę©²ęضę©øę©‡ę©¢ę©™ę©¦ę©ˆęØøęØ¢ęŖęŖęŖ ęŖ„ęŖ¢ęŖ£"], - ["9f40", "ęŖ—č˜—ęŖ»ę«ƒę«‚ęŖøęŖ³ęŖ¬ę«žę«‘ę«ŸęŖŖę«šę«Ŗę«»ę¬…č˜–ę«ŗę¬’ę¬–é¬±ę¬Ÿę¬øꬷē›œę¬¹é£®ę­‡ę­ƒę­‰ę­ę­™ę­”ę­›ę­Ÿę­”ę­øę­¹ę­æę®€ę®„ę®ƒę®ę®˜ę®•ę®žę®¤ę®Ŗꮫę®Æę®²ę®±ę®³ę®·ę®¼ęƆęƋęƓęƟęƬęÆ«ęƳęÆÆ"], - ["9f80", "éŗ¾ę°ˆę°“ę°”ę°›ę°¤ę°£ę±žę±•ę±¢ę±Ŗę²‚ę²ę²šę²ę²›ę±¾ę±Øę±³ę²’ę²ę³„ę³±ę³“ę²½ę³—ę³…ę³ę²®ę²±ę²¾ę²ŗę³›ę³Æę³™ę³Ŗę“Ÿč”ę“¶ę“«ę“½ę“øę“™ę“µę“³ę“’ę“Œęµ£ę¶“ęµ¤ęµšęµ¹ęµ™ę¶Žę¶•ęæ¤ę¶…ę·¹ęø•ęøŠę¶µę·‡ę·¦ę¶øę·†ę·¬ę·žę·Œę·Øę·’ę·…ę·ŗ귙귤귕ę·Ŗę·®ęø­ę¹®ęø®ęø™ę¹²ę¹Ÿęø¾ęø£ę¹«ęø«ę¹¶ę¹ęøŸę¹ƒęøŗę¹Žęø¤ę»æęøęøøęŗ‚ęŗŖęŗ˜ę»‰ęŗ·ę»“ęŗ½ęŗÆ껄ęŗ²ę»”껕ęŗęŗ„껂ęŗŸę½ę¼‘ēŒę»¬ę»øę»¾ę¼æę»²ę¼±ę»Æę¼²ę»Œ"], - ["e040", "ę¼¾ę¼“ę»·ę¾†ę½ŗę½øę¾ę¾€ę½Æę½›ęæ³ę½­ę¾‚ę½¼ę½˜ę¾Žę¾‘ęæ‚ę½¦ę¾³ę¾£ę¾”ę¾¤ę¾¹ęæ†ę¾ŖęæŸęæ•ęæ¬ęæ”ęæ˜ęæ±ęæ®ęæ›ē€‰ē€‹ęæŗē€‘ē€ē€ęæ¾ē€›ē€šę½“ē€ē€˜ē€Ÿē€°ē€¾ē€²ē‘ē£ē‚™ē‚’ē‚Æēƒ±ē‚¬ē‚øē‚³ē‚®ēƒŸēƒ‹ēƒ"], - ["e080", "ēƒ™ē„‰ēƒ½ē„œē„™ē…„ē…•ē†ˆē…¦ē…¢ē…Œē…–ē…¬ē†ē‡»ē†„ē†•ē†Øē†¬ē‡—ē†¹ē†¾ē‡’ē‡‰ē‡”ē‡Žē‡ ē‡¬ē‡§ē‡µē‡¼ē‡¹ē‡æēˆēˆēˆ›ēˆØēˆ­ēˆ¬ēˆ°ēˆ²ēˆ»ēˆ¼ēˆæē‰€ē‰†ē‰‹ē‰˜ē‰“ē‰¾ēŠ‚ēŠēŠ‡ēŠ’ēŠ–ēŠ¢ēŠ§ēŠ¹ēŠ²ē‹ƒē‹†ē‹„ē‹Žē‹’ē‹¢ē‹ ē‹”ē‹¹ē‹·å€ēŒ—ēŒŠēŒœēŒ–ēŒēŒ“ēŒÆēŒ©ēŒ„ēŒ¾ēŽēé»˜ē—ēŖēØē°ēøēµē»ēŗēˆēŽ³ēŽēŽ»ē€ē„ē®ēžē’¢ē…ē‘Æē„ēøē²ēŗē‘•ēæē‘Ÿē‘™ē‘ē‘œē‘©ē‘°ē‘£ē‘Ŗē‘¶ē‘¾ē’‹ē’žē’§ē“Šē“ē“”ē±"], - ["e140", "ē“ ē“£ē“§ē“©ē“®ē“²ē“°ē“±ē“øē“·ē”„ē”ƒē”…ē”Œē”Žē”ē”•ē”“ē”žē”¦ē”¬ē”¼ē•„ē•ē•Šē•‰ē•›ē•†ē•šē•©ē•¤ē•§ē•«ē•­ē•øē•¶ē–†ē–‡ē•“ē–Šē–‰ē–‚ē–”ē–šē–ē–„ē–£ē—‚ē–³ē—ƒē–µē–½ē–øē–¼ē–±ē—ē—Šē—’ē—™ē—£ē—žē—¾ē—æ"], - ["e180", "ē—¼ē˜ē—°ē—ŗē—²ē—³ē˜‹ē˜ē˜‰ē˜Ÿē˜§ē˜ ē˜”ē˜¢ē˜¤ē˜“ē˜°ē˜»ē™‡ē™ˆē™†ē™œē™˜ē™”ē™¢ē™Øē™©ē™Ŗē™§ē™¬ē™°ē™²ē™¶ē™øē™¼ēš€ēšƒēšˆēš‹ēšŽēš–ēš“ēš™ēššēš°ēš“ēšøēš¹ēšŗē›‚ē›ē›–ē›’ē›žē›”ē›„ē›§ē›Ŗč˜Æē›»ēœˆēœ‡ēœ„ēœ©ēœ¤ēœžēœ„ēœ¦ēœ›ēœ·ēœøē‡ēšēØē«ē›ē„ēæē¾ē¹ēžŽēž‹ēž‘ēž ēžžēž°ēž¶ēž¹ēžæēž¼ēž½ēž»ēŸ‡ēŸēŸ—ēŸšēŸœēŸ£ēŸ®ēŸ¼ē Œē ’ē¤¦ē  ē¤Ŗē”…ē¢Žē”“ē¢†ē”¼ē¢šē¢Œē¢£ē¢µē¢Ŗē¢Æē£‘ē£†ē£‹ē£”ē¢¾ē¢¼ē£…ē£Šē£¬"], - ["e240", "ē£§ē£šē£½ē£“ē¤‡ē¤’ē¤‘ē¤™ē¤¬ē¤«ē„€ē„ ē„—ē„Ÿē„šē„•ē„“ē„ŗē„æē¦Šē¦ē¦§é½‹ē¦Ŗē¦®ē¦³ē¦¹ē¦ŗē§‰ē§•ē§§ē§¬ē§”ē§£ē؈ē؍ēؘēؙēØ ē؟ē¦€ēرēØ»ēؾēØ·ē©ƒē©—ē©‰ē©”ē©¢ē©©é¾ē©°ē©¹ē©½ēŖˆēŖ—ēŖ•ēŖ˜ēŖ–ēŖ©ē«ˆēŖ°"], - ["e280", "ēŖ¶ē«…ē«„ēŖæ邃ē«‡ē«Šē«ē«ē«•ē«“ē«™ē«šē«ē«”ē«¢ē«¦ē«­ē«°ē¬‚ē¬ē¬Šē¬†ē¬³ē¬˜ē¬™ē¬žē¬µē¬Øē¬¶ē­ē­ŗē¬„ē­ē¬‹ē­Œē­…ē­µē­„ē­“ē­§ē­°ē­±ē­¬ē­®ē®ē®˜ē®Ÿē®ē®œē®šē®‹ē®’ē®ē­ē®™ēƋēƁēƌēƏē®“ēƆēƝēÆ©ē°‘ē°”ēƦēÆ„ē± ē°€ē°‡ē°“ēƳēÆ·ē°—ē°ēƶē°£ē°§ē°Ŗē°Ÿē°·ē°«ē°½ē±Œē±ƒē±”ē±ē±€ē±ē±˜ē±Ÿē±¤ē±–ē±„ē±¬ē±µē²ƒē²ē²¤ē²­ē²¢ē²«ē²”ē²Øē²³ē²²ē²±ē²®ē²¹ē²½ē³€ē³…ē³‚ē³˜ē³’ē³œē³¢é¬»ē³Æē³²ē³“ē³¶ē³ŗē“†"], - ["e340", "ē“‚ē“œē“•ē“Šēµ…ēµ‹ē“®ē“²ē“æē“µēµ†ēµ³ēµ–ēµŽēµ²ēµØēµ®ēµēµ£ē¶“ē¶‰ēµ›ē¶ēµ½ē¶›ē¶ŗē¶®ē¶£ē¶µē·‡ē¶½ē¶«ēø½ē¶¢ē¶Æē·œē¶øē¶Ÿē¶°ē·˜ē·ē·¤ē·žē·»ē·²ē·”ēø…ēøŠēø£ēø”ēø’ēø±ēøŸēø‰ēø‹ēø¢ē¹†ē¹¦ēø»ēøµēø¹ē¹ƒēø·"], - ["e380", "ēø²ēøŗē¹§ē¹ē¹–ē¹žē¹™ē¹šē¹¹ē¹Ŗē¹©ē¹¼ē¹»ēŗƒē·•ē¹½č¾®ē¹æēŗˆēŗ‰ēŗŒēŗ’ēŗēŗ“ēŗ”ēŗ–ēŗŽēŗ›ēŗœē¼øē¼ŗē½…ē½Œē½ē½Žē½ē½‘ē½•ē½”ē½˜ē½Ÿē½ ē½Øē½©ē½§ē½øē¾‚ē¾†ē¾ƒē¾ˆē¾‡ē¾Œē¾”ē¾žē¾ē¾šē¾£ē¾Æē¾²ē¾¹ē¾®ē¾¶ē¾øč­±ēæ…ēæ†ēæŠēæ•ēæ”ēæ”ēæ¦ēæ©ēæ³ēæ¹é£œč€†č€„č€‹č€’č€˜č€™č€œč€”č€Øč€æč€»čŠč†č’č˜čščŸč¢čØč³č²č°č¶č¹č½čæč‚„č‚†č‚…č‚›č‚“č‚šč‚­å†č‚¬čƒ›čƒ„čƒ™čƒčƒ„čƒščƒ–č„‰čƒÆčƒ±č„›č„©č„£č„Æ腋"], - ["e440", "éš‹č…†č„¾č…“č…‘čƒ¼č…±č…®č…„č…¦č…“č†ƒč†ˆč†Šč†€č†‚č† č†•č†¤č†£č…Ÿč†“č†©č†°č†µč†¾č†øč†½č‡€č‡‚č†ŗ臉臍臑臙臘臈臚臟臠臧č‡ŗč‡»č‡¾čˆčˆ‚čˆ…čˆ‡čˆŠčˆčˆčˆ–čˆ©čˆ«čˆøčˆ³č‰€č‰™č‰˜č‰č‰šč‰Ÿč‰¤"], - ["e480", "č‰¢č‰Øč‰Ŗč‰«čˆ®č‰±č‰·č‰øč‰¾čŠčŠ’čŠ«čŠŸčŠ»čŠ¬č‹”č‹£č‹Ÿč‹’č‹“č‹³č‹ŗčŽ“čŒƒč‹»č‹¹č‹žčŒ†č‹œčŒ‰č‹™čŒµčŒ“čŒ–čŒ²čŒ±č€čŒ¹čč…čŒÆčŒ«čŒ—čŒ˜čŽ…čŽščŽŖčŽŸčŽ¢čŽ–čŒ£čŽŽčŽ‡čŽŠč¼čŽµč³čµčŽ čŽ‰čŽØč“č“č«čŽč½čƒč˜č‹čč·č‡č č²čč¢č čŽ½čøč”†č»č‘­čŖč¼č•šč’„č‘·č‘«č’­č‘®č’‚č‘©č‘†č¬č‘Æč‘¹čµč“Šč‘¢č’¹č’æč’Ÿč“™č“č’»č“šč“č“č“†č“–č’”č””č“æč““č”—č”˜č”¬č”Ÿč”•č””č“¼č•€č•£č•˜č•ˆ"], - ["e540", "蕁蘂蕋蕕薀薤薈薑薊č–Ø蕭薔薛č—Ŗč–‡č–œč•·č•¾č–č—‰č–ŗč—č–¹č—č—•č—č—„č—œč—¹č˜Šč˜“č˜‹č—¾č—ŗč˜†č˜¢č˜šč˜°č˜æč™ä¹•č™”č™Ÿč™§č™±čš“čš£čš©čšŖčš‹čšŒčš¶čšÆč›„č›†čš°č›‰č £čš«č›”č›žč›©č›¬"], - ["e580", "蛟蛛č›Æčœ’čœ†čœˆčœ€čœƒč›»čœ‘čœ‰čœč›¹čœŠčœ“čœæčœ·čœ»čœ„čœ©čœšč čŸčøčŒčŽč“č—čØč®č™č“č£čŖč …čž¢čžŸčž‚čžÆčŸ‹čž½čŸ€čŸé›–čž«čŸ„čž³čŸ‡čŸ†čž»čŸÆčŸ²čŸ č č čŸ¾čŸ¶čŸ·č ŽčŸ’č ‘č –č •č ¢č ”č ±č ¶č ¹č §č »č”„č”‚č”’č”™č”žč”¢č”«č¢č”¾č¢žč”µč”½č¢µč”²č¢‚č¢—č¢’č¢®č¢™č¢¢č¢č¢¤č¢°č¢æč¢±č£ƒč£„č£”č£˜č£™č£č£¹č¤‚č£¼č£“č£Øč£²č¤„č¤Œč¤Šč¤“č„ƒč¤žč¤„č¤Ŗ褫脁脄褻褶č¤øč„Œč¤č„ č„ž"], - ["e640", "脦脤脭č„Ŗč„Æč„“č„·č„¾č¦ƒč¦ˆč¦Šč¦“č¦˜č¦”č¦©č¦¦č¦¬č¦Æč¦²č¦ŗč¦½č¦æč§€č§šč§œč§č§§č§“č§øč؃čؖčؐč،č؛č؝čØ„čØ¶č©č©›č©’č©†č©ˆč©¼č©­č©¬č©¢čŖ…čŖ‚čŖ„čŖØčŖ”čŖ‘čŖ„čŖ¦čŖščŖ£č«„č«č«‚č«šč««č«³č«§"], - ["e680", "č«¤č«±č¬”č« č«¢č«·č«žč«›č¬Œč¬‡č¬šč«”č¬–č¬č¬—č¬ č¬³éž«č¬¦č¬«č¬¾č¬Øč­č­Œč­č­Žč­‰č­–č­›č­šč­«č­Ÿč­¬č­Æč­“č­½č®€č®Œč®Žč®’č®“č®–č®™č®šč°ŗ豁č°æč±ˆč±Œč±Žč±č±•č±¢č±¬č±øč±ŗč²‚č²‰č²…č²Šč²č²Žč²”č±¼č²˜ęˆč²­č²Ŗč²½č²²č²³č²®č²¶č³ˆč³č³¤č³£č³šč³½č³ŗč³»č“„č“…č“Šč“‡č“č“č“é½Žč““č³č“”č“–čµ§čµ­čµ±čµ³č¶č¶™č·‚č¶¾č¶ŗč·č·šč·–č·Œč·›č·‹č·Ŗč·«č·Ÿč·£č·¼čøˆčø‰č·æčøčøžčøčøŸč¹‚čøµčø°čø“č¹Š"], - ["e740", "č¹‡č¹‰č¹Œč¹č¹ˆč¹™č¹¤č¹ čøŖč¹£č¹•č¹¶č¹²č¹¼čŗčŗ‡čŗ…čŗ„čŗ‹čŗŠčŗ“čŗ‘čŗ”čŗ™čŗŖčŗ”čŗ¬čŗ°č»†čŗ±čŗ¾č»…č»ˆč»‹č»›č»£č»¼č»»č»«č»¾č¼Šč¼…č¼•č¼’č¼™č¼“č¼œč¼Ÿč¼›č¼Œč¼¦č¼³č¼»č¼¹č½…č½‚č¼¾č½Œč½‰č½†č½Žč½—č½œ"], - ["e780", "č½¢č½£č½¤č¾œč¾Ÿč¾£č¾­č¾Æč¾·čæščæ„čæ¢čæŖčæÆ邇čæ“逅čæ¹čæŗ逑逕途逍逞逖逋逧逶逵逹čæø遏遐遑遒逎遉逾遖遘遞éØéÆ遶éšØ遲邂遽邁邀邊邉邏é‚Øé‚Æé‚±é‚µéƒ¢éƒ¤ę‰ˆéƒ›é„‚é„’é„™é„²é„°é…Šé…–é…˜é…£é…„é…©é…³é…²é†‹é†‰é†‚é†¢é†«é†Æé†Ŗ醵醓é†ŗ釀釁釉釋釐釖釟釔釛釼釵釶鈞é‡æ鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕éˆæ鉋鉐銜銖銓銛鉚鋏銹銷鋩錏é‹ŗ鍄錮"], - ["e840", "錙錢錚錣éŒŗ錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗éØ鏄鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐔éŗ鑁鑒鑄鑛鑠鑢鑞é‘Ŗ鈩鑰鑵鑷鑽鑚鑼鑾钁é‘æ閂閇閊閔閖閘閙"], - ["e880", "閠é–Ø閧閭閼閻閹閾闊ęæ¶é—ƒé—é—Œé—•é—”闖關闔闄闢阔é˜Ø阮é˜Æ陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗éšŖ隧隱隲隰隓隶éšøéš¹é›Žé›‹é›‰é›č„é›œéœé›•é›¹éœ„éœ†éœˆéœ“éœŽéœ‘éœéœ–éœ™éœ¤éœŖ霰霹霽霾靄靆靈靂靉靜靠靤靦éØ勒靫靱靹鞅靼鞁éŗ鞆鞋鞏鞐鞜éžØ鞦鞣鞳鞓韃韆韈韋韜韭齏韲ē«ŸéŸ¶éŸµé é Œé ø頤頔頷頽锆锏锋锫é”Æé”°"], - ["e940", "锱锓锳é¢Ŗé¢Æ颱颶飄飃飆飩飫餃餉餒餔餘餔餝餞餤餠餬餮餽餾鄂鄉鄅鄐鄋鄑鄒鄌鄕馗馘馄馭馮馼駟駛駝駘駑駭駮駱駲駻é§øé؁é؏é؅駢éؙéØ«éط驅驂驀驃"], - ["e980", "éؾ驕驍驛驗驟驢驄驤驩驫é©ŖéŖ­éŖ°éŖ¼é«€é«é«‘髓體髞髟髢髣髦é«Æ髫髮髓髱髷髻鬆鬘鬚鬟鬢鬣鬄鬧é¬Ø鬩é¬Ŗ鬮é¬Æ鬲魄魃魏魍魎魑魘魓鮓鮃鮑鮖鮗鮟鮠é®Ø鮓éƀéƊ鮹éƆéƏéƑéƒéÆ£éÆ¢éƤéƔéÆ”é°ŗéƲéƱéư鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰄鰤鰔鰰鱇鰲鱆鰾鱚鱠鱧鱶é±ø鳧鳬鳰铉铈鳫铃铆é“Ŗ铦é¶Æ铣铟鵄铕铒鵁é“æ链鵆鵈"], - ["ea40", "鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫éµÆéµŗ鶚鶤鶩鶲鷄鷁鶻é¶øé¶ŗ鷆鷏鷂鷙鷓é·ø鷦鷭é·Æé·½éøšéø›éøžé¹µé¹¹é¹½éŗéŗˆéŗ‹éŗŒéŗ’éŗ•éŗ‘éŗéŗ„éŗ©éŗøéŗŖéŗ­é”黌黎黏黐黔黜點黝黠黄é»Øé»Æ"], - ["ea80", "黓黶黷黹黻黼黽鼇鼈ēš·é¼•é¼”鼬鼾齊齒齔齣齟齠齔齦齧齬é½Ŗ齷齲齶龕龜龠å Æ꧇遙ē‘¤å‡œē†™"], - ["ed40", "ēŗŠč¤œéˆéŠˆč“œäæ‰ē‚»ę˜±ę£ˆé‹¹ę›»å½…äøØ仔仼伀伃伹佖侒侊侚侔äæå€å€¢äææ倞偆偰偂傔僓僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝ļ؎咜咊咩å“æ喆坙坄垬埈埇ļ؏"], - ["ed80", "ļؐ增墲夋儓儛儝儣妤å¦ŗ孖åƀē”ÆåƘåƬ尞岦å²ŗ峵哧嵓ļؑ嵂嵭å¶ø嶹巐弔弓彧德åæžęę‚…ę‚Šęƒžęƒ•ę„ ęƒ²ę„‘ę„·ę„°ę†˜ęˆ“ęŠ¦ęµę‘ ę’ę“Žę•Žę˜€ę˜•ę˜»ę˜‰ę˜®ę˜žę˜¤ę™„ꙗꙙļØ’ę™³ęš™ęš ęš²ęšæę›ŗ꜎ļ¤©ę¦ęž»ę”’ęŸ€ę ę”„ę£ļؓę„ØļØ”ę¦˜ę§¢ęØ°ę©«ę©†ę©³ę©¾ę«¢ę«¤ęƖę°æę±œę²†ę±Æę³šę“„ę¶‡ęµÆę¶–ę¶¬ę·ę·øę·²ę·¼ęø¹ę¹œęø§ęø¼ęŗæę¾ˆę¾µęæµē€…ē€‡ē€Øē‚…ē‚«ē„ē„„ē…œē…†ē…‡ļؕē‡ē‡¾ēŠ±"], - ["ee40", "ēŠ¾ēŒ¤ļؖē·ēŽ½ē‰ē–ē£ē’ē‡ēµē¦ēŖē©ē®ē‘¢ē’‰ē’Ÿē”ē•Æēš‚ēšœēšžēš›ēš¦ļؗē†åŠÆē ”ē”Žē”¤ē”ŗē¤°ļؘļؙļؚē¦”ļ؛ē¦›ē«‘ē«§ļ؜ē««ē®žļ؝ēµˆēµœē¶·ē¶ ē·–ē¹’ē½‡ē¾”ļØžčŒč¢čæč‡č¶č‘ˆč’“č•“č•™"], - ["ee80", "č•«ļØŸč–°ļØ ļØ”č ‡č£µčؒčØ·č©¹čŖ§čŖ¾č«ŸļØ¢č«¶č­“č­æč³°č³“č“’čµ¶ļØ£č»ļؤļ؄遧郞ļئ鄕鄧釚釗釞釭釮釤釄鈆鈐鈊éˆŗ鉀鈼鉎鉙鉑鈹鉧銧鉷é‰ø鋧鋗鋙鋐ļا鋕鋠鋓錄錔鋻ļØØ錞é‹æ錝錂鍰鍗鎤鏆鏞éø鐱鑅鑈閒ļ§œļة隝éšÆ霳霻靃靍靏靑靕锗锄ļØŖļث餧ļج馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫ļØ­éø™é»‘"], - ["eeef", "ā…°", 9, "ļæ¢ļæ¤ļ¼‡ļ¼‚"], - ["f040", "ī€€", 62], - ["f080", "ī€æ", 124], - ["f140", "ī‚¼", 62], - ["f180", "īƒ»", 124], - ["f240", "ī…ø", 62], - ["f280", "ī†·", 124], - ["f340", "īˆ“", 62], - ["f380", "ī‰³", 124], - ["f440", "ī‹°", 62], - ["f480", "īŒÆ", 124], - ["f540", "īŽ¬", 62], - ["f580", "ī«", 124], - ["f640", "ī‘Ø", 62], - ["f680", "ī’§", 124], - ["f740", "ī”¤", 62], - ["f780", "ī•£", 124], - ["f840", "ī— ", 62], - ["f880", "ī˜Ÿ", 124], - ["f940", "īšœ"], - ["fa40", "ā…°", 9, "ā… ", 9, "ļæ¢ļæ¤ļ¼‡ļ¼‚ćˆ±ā„–ā„”āˆµēŗŠč¤œéˆéŠˆč“œäæ‰ē‚»ę˜±ę£ˆé‹¹ę›»å½…äøØ仔仼伀伃伹佖侒侊侚侔äæå€å€¢äææ倞偆偰偂傔僓僘兊"], - ["fa80", "兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝ļ؎咜咊咩å“æ喆坙坄垬埈埇ļ؏ļؐ增墲夋儓儛儝儣妤å¦ŗ孖åƀē”ÆåƘåƬ尞岦å²ŗ峵哧嵓ļؑ嵂嵭å¶ø嶹巐弔弓彧德åæžęę‚…ę‚Šęƒžęƒ•ę„ ęƒ²ę„‘ę„·ę„°ę†˜ęˆ“ęŠ¦ęµę‘ ę’ę“Žę•Žę˜€ę˜•ę˜»ę˜‰ę˜®ę˜žę˜¤ę™„ꙗꙙļØ’ę™³ęš™ęš ęš²ęšæę›ŗ꜎ļ¤©ę¦ęž»ę”’ęŸ€ę ę”„ę£ļؓę„ØļØ”ę¦˜ę§¢ęØ°ę©«ę©†ę©³ę©¾ę«¢ę«¤ęƖę°æę±œę²†ę±Æę³šę“„ę¶‡ęµÆ"], - ["fb40", "ę¶–ę¶¬ę·ę·øę·²ę·¼ęø¹ę¹œęø§ęø¼ęŗæę¾ˆę¾µęæµē€…ē€‡ē€Øē‚…ē‚«ē„ē„„ē…œē…†ē…‡ļؕē‡ē‡¾ēŠ±ēŠ¾ēŒ¤ļؖē·ēŽ½ē‰ē–ē£ē’ē‡ēµē¦ēŖē©ē®ē‘¢ē’‰ē’Ÿē”ē•Æēš‚ēšœēšžēš›ēš¦ļؗē†åŠÆē ”ē”Žē”¤ē”ŗē¤°ļؘļؙ"], - ["fb80", "ļؚē¦”ļ؛ē¦›ē«‘ē«§ļ؜ē««ē®žļ؝ēµˆēµœē¶·ē¶ ē·–ē¹’ē½‡ē¾”ļØžčŒč¢čæč‡č¶č‘ˆč’“č•“č•™č•«ļØŸč–°ļØ ļØ”č ‡č£µčؒčØ·č©¹čŖ§čŖ¾č«ŸļØ¢č«¶č­“č­æč³°č³“č“’čµ¶ļØ£č»ļؤļ؄遧郞ļئ鄕鄧釚釗釞釭釮釤釄鈆鈐鈊éˆŗ鉀鈼鉎鉙鉑鈹鉧銧鉷é‰ø鋧鋗鋙鋐ļا鋕鋠鋓錄錔鋻ļØØ錞é‹æ錝錂鍰鍗鎤鏆鏞éø鐱鑅鑈閒ļ§œļة隝éšÆ霳霻靃靍靏靑靕锗锄ļØŖļث餧ļج馞驎髙"], - ["fc40", "髜魵魲鮏鮱鮻鰀鵰鵫ļØ­éø™é»‘"] - ]; -}); - -// node_modules/iconv-lite/encodings/tables/eucjp.json -var require_eucjp = __commonJS((exports, module) => { - module.exports = [ - ["0", "\x00", 127], - ["8ea1", "ļ½”", 62], - ["a1a1", "怀态怂ļ¼Œļ¼Žćƒ»ļ¼šļ¼›ļ¼Ÿļ¼ć‚›ć‚œĀ“ļ½€ĀØļ¼¾ļæ£ļ¼æćƒ½ćƒ¾ć‚ć‚žć€ƒä»ć€…ć€†ć€‡ćƒ¼ā€•ā€ļ¼ļ¼¼ļ½žāˆ„ļ½œā€¦ā€„ā€˜ā€™ā€œā€ļ¼ˆļ¼‰ć€”怕ļ¼»ļ¼½ļ½›ļ½ć€ˆ", 9, "ļ¼‹ļ¼Ā±Ć—Ć·ļ¼ā‰ ļ¼œļ¼žā‰¦ā‰§āˆžāˆ“ā™‚ā™€Ā°ā€²ā€³ā„ƒļæ„ļ¼„ļæ ļæ”ļ¼…ļ¼ƒļ¼†ļ¼Šļ¼ Ā§ā˜†ā˜…ā—‹ā—ā—Žā—‡"], - ["a2a1", "ā—†ā–”ā– ā–³ā–²ā–½ā–¼ā€»ć€’ā†’ā†ā†‘ā†“怓"], - ["a2ba", "āˆˆāˆ‹āŠ†āŠ‡āŠ‚āŠƒāˆŖāˆ©"], - ["a2ca", "āˆ§āˆØļæ¢ā‡’ā‡”āˆ€āˆƒ"], - ["a2dc", "āˆ āŠ„āŒ’āˆ‚āˆ‡ā‰”ā‰’ā‰Ŗā‰«āˆšāˆ½āˆāˆµāˆ«āˆ¬"], - ["a2f2", "ā„«ā€°ā™Æā™­ā™Ŗā€ ā€”Ā¶"], - ["a2fe", "ā—Æ"], - ["a3b0", "ļ¼", 9], - ["a3c1", "ļ¼”", 25], - ["a3e1", "ļ½", 25], - ["a4a1", "恁", 82], - ["a5a1", "ć‚”", 85], - ["a6a1", "Ī‘", 16, "Ī£", 6], - ["a6c1", "Ī±", 16, "Ļƒ", 6], - ["a7a1", "Š", 5, "ŠŠ–", 25], - ["a7d1", "Š°", 5, "ёŠ¶", 25], - ["a8a1", "ā”€ā”‚ā”Œā”ā”˜ā””ā”œā”¬ā”¤ā”“ā”¼ā”ā”ƒā”ā”“ā”›ā”—ā”£ā”³ā”«ā”»ā•‹ā” ā”Æā”Øā”·ā”æā”ā”°ā”„ā”øā•‚"], - ["ada1", "ā‘ ", 19, "ā… ", 9], - ["adc0", "ć‰ćŒ”ćŒ¢ććŒ˜ćŒ§ćŒƒćŒ¶ć‘ć—ćŒćŒ¦ćŒ£ćŒ«ćŠćŒ»ćŽœćŽćŽžćŽŽćŽć„ćŽ”"], - ["addf", "ć»ć€ć€Ÿā„–揍ā„”护", 4, "ćˆ±ćˆ²ćˆ¹ć¾ć½ć¼ā‰’ā‰”āˆ«āˆ®āˆ‘āˆšāŠ„āˆ āˆŸāŠæāˆµāˆ©āˆŖ"], - ["b0a1", "äŗœå”–å؃é˜æå“€ę„›ęŒØå§¶é€¢č‘µčŒœē©ę‚Ŗę”ęø„ꗭ葦芦éÆµę¢“åœ§ę–”ę‰±å®›å§č™»é£“ēµ¢ē¶¾é®Žęˆ–ē²Ÿč¢·å®‰åŗµęŒ‰ęš—ę”ˆé—‡éžęä»„伊位依偉囲夷委åØå°‰ęƒŸę„ę…°ę˜“ę¤…ē‚ŗē•ē•°ē§»ē¶­ē·ÆčƒƒčŽč”£č¬‚é•éŗ医äŗ•äŗ„åŸŸč‚²éƒē£Æäø€å£±ęŗ¢é€øēزčŒØ芋é°Æå…å°å’½å“”å› å§»å¼•é£²ę·«čƒ¤č”­"], - ["b1a1", "院陰隠韻吋右宇ēƒē¾½čæ‚é›ØåÆ鵜ēŖŗäø‘ē¢“č‡¼ęø¦å˜˜å”„ę¬č”šé°»å§„åŽ©ęµ¦ē“œé–å™‚äŗ‘é‹é›²čé¤Œå”å–¶å¬°å½±ę˜ ę›³ę „ę°øę³³ę“©ē‘›ē›ˆē©Žé “č‹±č”›č© é‹­ę¶²ē–«ē›Šé§…ę‚¦č¬č¶Šé–²ę¦ŽåŽ­å††åœ’å °å„„å®“延ę€ØęŽ©ę“ę²æę¼”ē‚Žē„”ē…™ē‡•ēŒæēøč‰¶č‹‘č–—é é‰›é“›å”©ę–¼ę±šē”„凹央億往åæœ"], - ["b2a1", "ęŠ¼ę—ŗęØŖ꬧ꮓēŽ‹ēæč„–é“¬é“Žé»„å²”ę²–č»å„„å±‹ę†¶č‡†ę”¶ē‰”乙äæŗåøꁩęø©ē©éŸ³äø‹åŒ–仮何伽侔佳加åÆ嘉夏嫁家åÆ”ē§‘ęš‡ęžœęž¶ę­Œę²³ē«ē‚ē¦ē¦¾ēؼē®‡čŠ±č‹›čŒ„č·čÆč“č¦čŖ²å˜©č²Øčæ¦éŽéœžčšŠäæ„å³Øꈑē‰™ē”»č‡„čŠ½č›¾č³€é›…é¤“é§•ä»‹ä¼šč§£å›žå”Šå£Šå»»åæ«ę€Ŗę‚”ę¢ę‡ęˆ’ę‹ę”¹"], - ["b3a1", "é­ę™¦ę¢°ęµ·ē°ē•Œēš†ēµµčŠ„čŸ¹é–‹éšŽč²å‡±åŠ¾å¤–å’³å®³å“–ę…Øꦂę¶Æē¢č“‹č”—č©²éŽ§éŖø구é¦Øč›™åž£ęŸæč›ŽéˆŽåŠƒåš‡å„å»“ę‹”ę’¹ę ¼ę øę®»ē²ē¢ŗē©«č¦šč§’čµ«č¼ƒéƒ­é–£éš”é©å­¦å²³ę„½é”é”ŽęŽ›ē¬ ęØ«ę©æę¢¶é°ę½Ÿå‰²å–ę°ę‹¬ę“»ęø‡ę»‘č‘›č¤č½„äø”é°¹å¶ę¤›ęØŗ鞄ę Ŗ兜ē«ƒč’²é‡œéŽŒå™›é“Øę ¢čŒ…č±"], - ["b4a1", "ē²„åˆˆč‹…ē“¦ä¹¾ä¾ƒå† åƒ刊勘勧巻喚å Ŗ姦完官åÆ›å¹²å¹¹ę‚£ę„Ÿę…£ę†¾ę›ę•¢ęŸ‘ę”“ę£ŗę¬¾ę­“ę±—ę¼¢ę¾—ę½…ē’°ē”˜ē›£ēœ‹ē«æē®”ē°”ē·©ē¼¶ēæ°č‚č‰¦čŽžč¦³č«Œč²«é‚„鑑間閑関附韓é¤Ø舘äøø含å²ø巌ēŽ©ē™Œēœ¼å²©ēæ«č“‹é›é ‘锔锘企伎危喜å™ØåŸŗ儇嬉åƄ岐åøŒå¹¾åæŒę®ęœŗę——ę—¢ęœŸę£‹ę£„"], - ["b5a1", "ę©Ÿåø°ęÆ…ę°—ę±½ē•æē„ˆå­£ē؀ē“€å¾½č¦čØ˜č²“čµ·č»Œč¼é£¢é؎鬼äŗ€å½å„€å¦“宜ęˆÆꊀꓬę¬ŗēŠ ē–‘ē„‡ē¾©čŸ»čŖ¼č­°ęŽ¬čŠéž å‰åƒå–«ę””ę©˜č©°ē §ęµé»å“å®¢č„šč™é€†äø˜ä¹…仇休及åøå®®å¼“ę€„ę•‘ęœ½ę±‚ę±²ę³£ēøēƒē©¶ēŖ®ē¬ˆē“šē³¾ēµ¦ę—§ē‰›åŽ»å±…å·Øꋒꋠꌙęø č™ščØ±č·é‹øę¼ē¦¦é­šäŗØäŗ«äŗ¬"], - ["b6a1", "供侠僑兇ē«¶å…±å‡¶å”匔åæ叫喬境峔強彊ę€Æęę­ęŒŸę•™ę©‹ę³ē‹‚ē‹­ēŸÆčƒøč„…čˆˆč•Žéƒ·é”éŸæé„—é©šä»°å‡å°­ęšę„­å±€ę›²ę„µēŽ‰ę”ē²åƒ…å‹¤å‡å·¾éŒ¦ę–¤ę¬£ę¬½ē“ē¦ē¦½ē­‹ē·ŠčŠ¹čŒč”æč„Ÿč¬¹čæ‘金吟銀九倶叄åŒŗē‹—ēŽ–ēŸ©č‹¦čŗÆé§†é§ˆé§’å…·ę„šč™žå–°ē©ŗ偶åƓ遇隅äø²ę«›é‡§å±‘屈"], - ["b7a1", "ꎘēŖŸę²“é“č½”ēŖŖē†Šéšˆē²‚ę —ē¹°ę”‘é¬å‹²å›č–«čؓē¾¤č»éƒ”å¦č¢ˆē„äæ‚傾刑兄啓圭ēŖåž‹å„‘å½¢å¾„ęµę…¶ę…§ę†©ęŽ²ęŗꕬę™Æꔂęø“ē•¦ēؽē³»ēµŒē¶™ē¹‹ē½«čŒŽčŠč›čØˆč©£č­¦č»½é šé¶čŠøčæŽéÆØåŠ‡ęˆŸę’ƒęæ€éš™ę”å‚‘ꬠę±ŗę½”ē©“ēµč”€čØ£ęœˆä»¶å€¹å€¦å„å…¼åˆø剣喧圏堅嫌å»ŗę†²ę‡øę‹³ę²"], - ["b8a1", "ꤜęØ©ē‰½ēŠ¬ēŒ®ē ”ē”Æēµ¹ēœŒč‚©č¦‹č¬™č³¢č»’遣鍵é™ŗ锕éؓé¹ø元原厳幻弦ęø›ęŗēŽ„ē¾ēµƒčˆ·č؀č«ŗ限乎個古呼å›ŗ姑孤己åŗ«å¼§ęˆøꕅęžÆę¹–ē‹ē³Šč¢“č‚”čƒ”č°č™ŽčŖ‡č·Ø鈷雇锧鼓äŗ”äŗ’伍午呉吾åØÆå¾Œå¾”ę‚Ÿę¢§ęŖŽē‘šē¢čŖžčŖ¤č­·é†ä¹žéƉäŗ¤ä½¼ä¾Æ候倖光公功効勾厚口向"], - ["b9a1", "后喉坑垢儽孔孝宏巄巧巷å¹øåŗƒåŗšåŗ·å¼˜ę’ę…ŒęŠ—ę‹˜ęŽ§ę”»ę˜‚ę™ƒę›“ę­ę ”ę¢—ę§‹ę±Ÿę“Ŗ굩ęøÆęŗē”²ēš‡ē”¬ēØæē³ ē“…ē“˜ēµžē¶±č€•č€ƒč‚Æč‚±č…”č†čˆŖč’č”Œč””č¬›č²¢č³¼éƒŠé…µé‰±ē æé‹¼é–¤é™é …é¦™é«˜é“»å‰›åŠ«å·åˆå£•ę‹·ęæ č±Ŗč½Ÿéŗ¹å…‹åˆ»å‘Šå›½ē©€é…·éµ é»’ē„ę¼‰č…°ē”‘åæ½ęƒšéŖØē‹›č¾¼"], - ["baa1", "ę­¤é ƒä»Šå›°å¤å¢¾å©šęØę‡‡ę˜ę˜†ę ¹ę¢±ę··ē—•ē“ŗ艮魂äŗ›ä½å‰å”†åµÆå·¦å·®ęŸ»ę²™ē‘³ē ‚č©éŽ–č£Ÿååŗ§ęŒ«å‚µå‚¬å†ęœ€å“‰å”žå¦»å®°å½©ę‰ęŽ”ę ½ę­³ęøˆē½é‡‡ēŠ€ē •ē ¦ē„­ę–Žē“°čœč£č¼‰éš›å‰¤åœØꝐē½Ŗč²”å†“å‚é˜Ŗå ŗę¦Šč‚“å’²å“ŽåŸ¼ē¢•é·ŗä½œå‰Šå’‹ę¾ę˜Øęœ”ęŸµēŖ„ē­–ē“¢éŒÆę”œé®­ē¬¹åŒ™å†Šåˆ·"], - ["bba1", "åÆŸę‹¶ę’®ę“¦ęœ­ę®ŗ薩雑ēšéÆ–ęŒéŒ†é®«ēšæꙒäø‰å‚˜å‚å±±ęƒØę’’ę•£ę”Ÿē‡¦ēŠē”£ē®—ēŗ‚čš•č®ƒč³›é…ø餐ꖬꚫꮋ仕仔ä¼ŗä½æåˆŗåø史嗣四士始姉å§æ子屍åø‚åø«åæ—ę€ęŒ‡ę”Æ孜ę–Æę–½ę—Øęžę­¢ę­»ę°ē…ē„‰ē§ē³øē“™ē“«č‚¢č„‚č‡³č¦–č©žč©©č©¦čŖŒč«®č³‡č³œé›Œé£¼ę­Æäŗ‹ä¼¼ä¾å…å­—åÆŗꅈꌁꙂ"], - ["bca1", "ę¬”ę»‹ę²»ēˆ¾ē’½ē—”ē£ē¤ŗč€Œč€³č‡Ŗč’”č¾žę±é¹æå¼č­˜é“«ē«ŗč»ø宍雫äøƒå±åŸ·å¤±å«‰å®¤ę‚‰ę¹æę¼†ē–¾č³Ŗå®Ÿč”€ēÆ å²ęŸ“čŠå±”č•ŠēøžčˆŽå†™å°„ęØčµ¦ę–œē…®ē¤¾ē“—č€…č¬č»Šé®č›‡é‚Ŗ借å‹ŗå°ŗꝓē¼ēˆµé…Œé‡ˆéŒ«č‹„åÆ‚å¼±ęƒ¹äø»å–å®ˆę‰‹ęœ±ę®Šē‹©ē ēØ®č…«č¶£é…’é¦–å„’å—å‘ŖåÆæꎈęعē¶¬éœ€å›šåŽå‘Ø"], - ["bda1", "宗就州äæ®ę„ę‹¾ę“²ē§€ē§‹ēµ‚ē¹ēæ’č‡­čˆŸč’č”†č„²č®č¹“č¼Æé€±é…‹é…¬é›†é†œä»€ä½å……åå¾“ęˆŽęŸ”ę±ęø‹ē£ēø¦é‡éŠƒå”夙å®æę·‘ē„ēø®ē²›å”¾ē†Ÿå‡ŗ蔓čæ°äæŠå³»ę˜„ēž¬ē«£čˆœé§æ准å¾Ŗę—¬ę„Æę®‰ę·³ęŗ–ę½¤ē›¾ē“”å·”éµé†‡é †å‡¦åˆę‰€ęš‘ę›™ęøšåŗ¶ē·’ē½²ę›øč–Æč—·č«ø助叙儳åŗå¾ę•é‹¤é™¤å‚·å„Ÿ"], - ["bea1", "勝匠升召å“Ø商唱嘗å„Ø妾åؼ宵将小少尚åŗ„åŗŠå» å½°ę‰æęŠ„ę‹›ęŽŒę·ę˜‡ę˜Œę˜­ę™¶ę¾ę¢¢ę؟ęØµę²¼ę¶ˆęø‰ę¹˜ē„¼ē„¦ē…§ē—‡ēœē”ē¤ē„„ē§°ē« ē¬‘ē²§ē“¹č‚–č–č’‹č•‰č”č£³č؟čØ¼č©”č©³č±”č³žé†¤é‰¦é¾é˜éšœéž˜äøŠäøˆäøžä¹—冗剰城堓壌嬢åøøęƒ…ę“¾ę”ę–ęµ„ēŠ¶ē•³ē©£č’øč­²é†ø錠嘱埓飾"], - ["bfa1", "ę‹­ę¤ę®–ē‡­ē¹”č·č‰²č§¦é£Ÿč•č¾±å°»ä¼øäæ”侵唇åØ åƝåÆ©åæƒę…ŽęŒÆę–°ę™‹ę£®ę¦›ęµøę·±ē”³ē–¹ēœŸē„žē§¦ē“³č‡£čŠÆč–Ŗč¦ŖčØŗčŗ«č¾›é€²é‡éœ‡äŗŗ仁刃唵壬尋ē”šå°½č…Žč؊čæ…陣靭ē¬„č«é ˆé…¢å›³åŽØ逗吹垂åø„ęŽØę°“ē‚Šē”ē²‹ēæ č”°é‚酔錐錘随ē‘žé«„å“‡åµ©ę•°ęž¢č¶Øé››ę®ę‰ę¤™č…é —é›€č£¾"], - ["c0a1", "ę¾„ę‘ŗåÆøäø–ē€¬ē•ę˜Æå‡„åˆ¶å‹¢å§“å¾ę€§ęˆę”æę•“ę˜Ÿę™“ę£²ę –ę­£ęø…ē‰²ē”Ÿē››ē²¾č–å£°č£½č„æčŖ čŖ“č«‹é€é†’é’é™ę–‰ēØŽč„†éš»åø­ęƒœęˆšę–„ꘔꞐēŸ³ē©ē±ēø¾č„Šč²¬čµ¤č·”č¹Ÿē¢©åˆ‡ę‹™ęŽ„ꑂꊘčØ­ēŖƒēƀčŖ¬é›Ŗēµ¶čˆŒč‰ä»™å…ˆåƒå å®£å°‚å°–å·ęˆ¦ę‰‡ę’°ę “ę “ę³‰ęµ…ę“—ęŸ“ę½œē…Žē…½ę—‹ē©æē®­ē·š"], - ["c1a1", "ē¹Šē¾Øč…ŗčˆ›čˆ¹č–¦č©®č³Žč·µéø遷銭銑閃鮮前善ę¼øē„¶å…Øē¦…ē¹•č†³ē³Žå™Œå”‘å²ØęŽŖę›¾ę›½ę„šē‹™ē–ē–Žē¤Žē„–ē§Ÿē²—ē“ ēµ„č˜‡čؓ阻達鼠僧創双叢倉å–Ŗ壮儏ēˆ½å®‹å±¤åŒęƒ£ęƒ³ęœęŽƒęŒæęŽ»ę“ę—©ę›¹å·£ę§ę§½ę¼•ē‡„äŗ‰ē—©ē›øēŖ“ē³Ÿē·ē¶œč”č‰č˜č‘¬č’¼č—»č£…čµ°é€é­éŽ—éœœéØ’åƒå¢—ę†Ž"], - ["c2a1", "č‡“č”µč“ˆé€ äæƒå“則即ęÆꍉꝟęø¬č¶³é€Ÿäæ—å±žč³Šę—ē¶šå’č¢–å…¶ęƒå­˜å­«å°Šęę‘éœä»–å¤šå¤Ŗę±°č©‘å”¾å •å¦„ęƒ°ę‰“ęŸčˆµę„•é™€é§„éØØ体堆åÆ¾č€å²±åøÆå¾…ę€ ę…‹ęˆ“ę›æę³°ę»žčƒŽč…æč‹”č¢‹č²ø退逮隊黛éƛ代台大ē¬¬é†é”Œé·¹ę»ē€§å“å•„å®…ę‰˜ęŠžę‹“ę²¢ęæÆē¢čؗéøęæč«¾čŒø凧č›øåŖ"], - ["c3a1", "å©ä½†é”č¾°å„Ŗč„±å·½ē«Ŗč¾æę£šč°·ē‹ø鱈ęؽčŖ°äø¹å˜å˜†å¦ę‹…ęŽ¢ę—¦ę­Žę·”ę¹›ē‚­ēŸ­ē«Æē®Ŗē¶»č€½čƒ†č›‹čŖ•é›å›£å£‡å¼¾ę–­ęš–ęŖ€ę®µē”·č«‡å€¤ēŸ„åœ°å¼›ę„ę™ŗę± ē—“ēؚē½®č‡“čœ˜é…é¦³ēƉē•œē«¹ē­‘蓄逐ē§©ēŖ’čŒ¶å«”ē€äø­ä»²å®™åæ ęŠ½ę˜¼ęŸ±ę³Ø虫蔷čػ酎鋳駐ęؗē€¦ēŒŖ苧著č²Æäøå…†å‡‹å–‹åƵ"], - ["c4a1", "åø–åø³åŗå¼”å¼µå½«å¾“ę‡²ęŒ‘ęš¢ęœę½®ē‰’ē”ŗēœŗč“č„¹č…øč¶čŖæč«œč¶…č·³éŠšé•·é ‚é³„å‹…ę—ē›“ęœ•ę²ˆēč³ƒéŽ®é™³ę“„å¢œę¤Žę§Œčæ½éŽšē—›é€šå”šę ‚ęŽ“ę§»ä½ƒę¼¬ęŸ˜č¾»č”¦ē¶“鍔ę¤æę½°åŖ壷嬬ē“¬ēˆŖ吊釣鶓äŗ­ä½Žåœåµå‰ƒč²žå‘ˆå ¤å®šåøåŗ•åŗ­å»·å¼Ÿę‚ŒęŠµęŒŗꏐę¢Æę±€ē¢‡ē¦Žē؋ē· č‰‡čØ‚č«¦č¹„é€“"], - ["c5a1", "é‚øé„­é‡˜é¼Žę³„ę‘˜ę“¢ę•µę»“ēš„ē¬›é©é‘ęŗŗå“²å¾¹ę’¤č½čæ­é‰„å…ø唫天展åŗ—ę·»ēŗē”œč²¼č»¢é”›ē‚¹ä¼ę®æę¾±ē”°é›»å…Žåå µå”—å¦¬å± å¾’ę–—ęœęø”ē™»čŸč³­é€”都鍍ē „ē ŗåŠŖåŗ¦åœŸå„“ę€’å€’å…šå†¬å‡åˆ€å”å””å”˜å„—å®•å³¶å¶‹ę‚¼ęŠ•ę­ę±ę”ƒę¢¼ę£Ÿē›—ę·˜ę¹Æ궛ēÆē‡ˆå½“ē—˜ē„·ē­‰ē­”ē­’ē³–ēµ±åˆ°"], - ["c6a1", "č‘£č•©č—¤čØŽč¬„č±†čøé€ƒé€é™é™¶é ­éØ°é—˜åƒå‹•åŒå ‚å°Žę†§ę’žę“žēž³ē«„čƒ“č„é“éŠ…å³ é“‡åŒæå¾—å¾³ę¶œē‰¹ē£ē¦æēƤęƒē‹¬čŖ­ę ƒę©”å‡øēŖę¤“å±Šé³¶č‹«åƅ酉ē€žå™øå±Æęƒ‡ę•¦ę²Œč±šéé “å‘‘ę›‡éˆå„ˆé‚£å†…ä¹å‡Ŗ薙謎ē˜ęŗé‹ę„¢é¦“ēø„ē•·å—ę„ č»Ÿé›£ę±äŗŒå°¼å¼čæ©åŒ‚č³‘č‚‰č™¹å»æę—„ä¹³å…„"], - ["c7a1", "如å°æ韮任妊åæčŖęæ”ē¦°ē„¢åÆ§č‘±ēŒ«ē†±å¹“åæµę»ę’šē‡ƒē²˜ä¹ƒå»¼ä¹‹åŸœåš¢ę‚©ęæƒē“čƒ½č„³č†æč¾²č¦—čš¤å·“ęŠŠę’­č¦‡ę·ę³¢ę“¾ē¶ē “婆ē½µčŠ­é¦¬äæ³å»ƒę‹ęŽ’ę•—ęÆē›ƒē‰ŒčƒŒč‚ŗč¼©é…å€åŸ¹åŖ’ę¢…ę„³ē…¤ē‹½č²·å£²č³ é™Ŗ這čæē§¤ēŸ§č©ä¼Æå‰„åšę‹ęŸę³Šē™½ē®”ē²•čˆ¶č–„čæ«ę›ę¼ ēˆ†ēø›čŽ«é§éŗ¦"], - ["c8a1", "函ē®±ē”²ē®ø肇ē­ˆę«Øå¹”č‚Œē•‘ē• å…«é‰¢ęŗŒē™ŗ醗é«Ŗ伐ē½°ęŠœē­é–„鳩å™ŗå”™č›¤éš¼ä¼“åˆ¤åŠåå›åø†ę¬ę–‘ęæę°¾ę±Žē‰ˆēŠÆē­ē•”ē¹čˆ¬č—©č²©ēƄ釆ē…©é ’é£ÆęŒ½ę™©ē•Ŗē›¤ē£č•ƒč›®åŒŖ卑否妃åŗ‡å½¼ę‚²ę‰‰ę‰¹ęŠ«ę–ęÆ”ę³Œē–²ēš®ē¢‘ē§˜ē·‹ē½·č‚„č¢«čŖ¹č²»éæ非飛ę؋ē°øå‚™å°¾å¾®ęž‡ęƘēµēœ‰ē¾Ž"], - ["c9a1", "é¼»ęŸŠēؗ匹ē–‹é«­å½¦č†č±č‚˜å¼¼åæ…ē•¢ē­†é€¼ę”§å§«åŖ›ē“ē™¾č¬¬äæµå½ŖęØ™ę°·ę¼‚ē“¢ē„Øč”Øč©•č±¹å»Ÿęē—…ē§’č‹—éŒØé‹²č’œč›­é°­å“å½¬ę–Œęµœē€•č²§č³“é »ę•ē“¶äøä»˜åŸ å¤«å©¦åƌå†Øåøƒåŗœę€–ꉶꕷꖧꙮ굮ēˆ¶ē¬¦č…č†ščŠ™č­œč² č³¦čµ“é˜œé™„ä¾®ę’«ę­¦čˆžč‘”č•ŖéƒØå°ę„“é¢Øč‘ŗč•—ä¼å‰Æå¾©å¹…ęœ"], - ["caa1", "ē¦č…¹č¤‡č¦†ę·µå¼—ꉕę²ø仏ē‰©é®’åˆ†å»å™“å¢³ę†¤ę‰®ē„šå„®ē²‰ē³žē“›é›°ę–‡čžäø™ä½µå…µå”€å¹£å¹³å¼ŠęŸ„äø¦č”½é–‰é™›ē±³é åƒ»å£ē™–ē¢§åˆ„ēž„蔑ē®†åå¤‰ē‰‡ēƇē·Øč¾ŗčæ”遍ä¾æ勉åة弁鞭äæčˆ—é‹Ŗåœƒę•ę­©ē”«č£œč¼”ē©‚å‹Ÿå¢“ę…•ęˆŠęš®ęƍē°æč©å€£äæø包呆報儉宝峰å³Æå“©åŗ–ęŠ±ę§ę”¾ę–¹ęœ‹"], - ["cba1", "ę³•ę³”ēƒ¹ē ²ēø«čƒžčŠ³čŒč“¬čœ‚褒čØŖč±Šé‚¦é‹’é£½é³³éµ¬ä¹äŗ”傍剖坊å¦Øåø½åæ˜åæ™ęˆæęš“ęœ›ęŸę£’å†’ē“”č‚Ŗč†Øč¬€č²Œč²æ鉾防吠頬北僕卜å¢Øę’²ęœ“ē‰§ē¦ē©†é‡¦å‹ƒę²”ę®†å €å¹Œå„”ęœ¬ēæ»å‡”ē›†ę‘©ē£Ø魔éŗ»åŸ‹å¦¹ę˜§ęžšęÆŽå“©ę§™å¹•č†œęž•é®ŖęŸ¾é±’ę”äŗ¦äæ£åˆęŠ¹ęœ«ę²«čæ„ä¾­ē¹­éŗæäø‡ę…¢ęŗ€"], - ["cca1", "ę¼«č”“å‘³ęœŖ魅巳ē®•å²¬åÆ†čœœę¹Šč“‘ēØ”č„ˆå¦™ē²ę°‘ēœ å‹™å¤¢ē„”ē‰ŸēŸ›éœ§éµ”ꤋå©æåØ˜å†„åå‘½ę˜Žē›Ÿčæ·éŠ˜é³“å§Ŗē‰ę»…å…ę£‰ē¶æē·¬é¢éŗŗę‘øęØ”čŒ‚å¦„å­ŸęƛēŒ›ē›²ē¶²č€—č’™å„²ęœØ黙ē›®ę¢å‹æé¤…å°¤ęˆ»ē±¾č²°å•ę‚¶ē“‹é–€åŒä¹Ÿå†¶å¤œēˆŗč€¶é‡Žå¼„ēŸ¢åŽ„å½¹ē“„č–¬čسčŗé–ęŸ³č–®é‘“ę„‰ę„ˆę²¹ē™’"], - ["cda1", "č«­č¼øå”Æ佑å„Ŗå‹‡å‹å®„å¹½ę‚ ę†‚ę–ęœ‰ęŸšę¹§ę¶ŒēŒ¶ēŒ·ē”±ē„č£•čŖ˜éŠé‚‘éƒµé›„čžå¤•äŗˆä½™äøŽčŖ‰č¼æ預傭幼妖容åŗøꏚęŗę“ę›œę„Šę§˜ę“‹ęŗ¶ē†”ē”ØēŖÆē¾Šč€€č‘‰č“‰č¦č¬”čøŠé„é™½é¤Šę…¾ęŠ‘ę¬²ę²ƒęµ“ēæŒēæ¼ę·€ē¾…čžŗč£øę„čŽ±é ¼é›·ę“›ēµ”č½é…Ŗä¹±åµåµę¬„ęæ«č—č˜­č¦§åˆ©åå±„Ꝏę¢Øē†ē’ƒ"], - ["cea1", "ē—¢č£č£”里離é™ø律ēŽ‡ē«‹č‘ŽęŽ ē•„åŠ‰ęµęŗœē‰ē•™ē”«ē²’隆ē«œé¾ä¾¶ę…®ę—…č™œäŗ†äŗ®åƒšäø”凌åÆ®ę–™ę¢ę¶¼ēŒŸē™‚ēž­ē؜ē³§č‰Æč«’é¼é‡é™µé ˜åŠ›ē·‘å€«åŽ˜ęž—ę·‹ē‡ē³č‡Øč¼Ŗ隣鱗éŗŸē‘ å”ę¶™ē“Æ锞令伶例冷励å¶ŗꀜēŽ²ē¤¼č‹“鈓隷零霊éŗ—é½¢ęš¦ę­“列劣ēƒˆč£‚å»‰ę‹ę†ę¼£ē…‰ē°¾ē·“čÆ"], - ["cfa1", "č“®é€£éŒ¬å‘‚é­Æę«“ē‚‰č³‚č·Æéœ²åŠ“å©å»Šå¼„ęœ—ę„¼ę¦”ęµŖę¼ē‰¢ē‹¼ēÆ­č€č¾č‹éƒŽå…­éŗ“ē¦„č‚‹éŒ²č«–å€­å’Œč©±ę­Ŗč³„č„‡ęƒ‘ęž é·²äŗ™äŗ˜é°č©«č—č•Øę¤€ę¹¾ē¢—č…•"], - ["d0a1", "弌äøäø•äøŖäø±äø¶äø¼äøæ乂乖乘äŗ‚äŗ…豫äŗŠčˆ’弍äŗŽäŗžäŗŸäŗ äŗ¢äŗ°äŗ³äŗ¶ä»Žä»ä»„仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑ä½Æ來侖儘äæ”äæŸäæŽäæ˜äæ›äæ‘äæšäæäæ¤äæ„倚å€Ø倔å€Ŗ倄倅伜äæ¶å€”倩倬äæ¾äæÆå€‘å€†åƒå‡ęœƒå•ååˆåšå–å¬åø傀傚傅傓傲"], - ["d1a1", "僉僊傳僂僖僞僄僭僣僮價僵儉儁儂儖儕儔儚儔å„ŗ儷儼儻å„æ兀兒兌兔兢ē«ø兩å…Ŗ兮冀冂囘册冉冏冑冓冕冖冤冦冢冩å†Ŗå†«å†³å†±å†²å†°å†µå†½å‡…å‡‰å‡›å‡ č™•å‡©å‡­å‡°å‡µå‡¾åˆ„åˆ‹åˆ”åˆŽåˆ§åˆŖ刮刳刹剏剄剋剌剞剔å‰Ŗ剓剩剳å‰æ剽劍劔劒剱劈劑č¾Ø"], - ["d2a1", "č¾§åŠ¬åŠ­åŠ¼åŠµå‹å‹å‹—å‹žå‹£å‹¦é£­å‹ å‹³å‹µå‹ø勹匆匈ē”ø匍匐匏匕匚匣åŒÆ匱匳åŒø區卆卅äø—卉卍凖卞卩卮夘卻卷厂厖厠厦厄厮厰厶參ē°’é›™åŸę›¼ē‡®å®åØ叭åŗ吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢å’ø咄咬哄哈å’Ø"], - ["d3a1", "咫哂咤咾咼哘哄哦唏唔哽哮哭å“ŗ哢唹啀啣啌售啜啅啖啗å”ø唳啝喙喀å’Æ喊喟啻啾喘喞單啼喃喩喇å–Ø嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐ē‡Ÿå˜“嘶嘲å˜ø噫噤å˜Æ噬å™Ŗ嚆嚀嚊嚠嚔嚏嚄嚮嚶嚓囂嚼囁囃囀囈囎囑囓囗囮囹圀å›æ圄圉"], - ["d4a1", "圈國圍圓團圖嗇圜圦圷åœø坎圻址坏坩埀垈坔åæ垉垓垠垳垤åžŖ垰埃埆埔埒埓堊埖埣堋堙堝唲堔唢唋唰ęƀ唒堽唹墅墹墟墫å¢ŗ壞墻å¢ø墮壅壓壑壗壙壘壄壜壤壟å£Æå£ŗå£¹å£»å£¼å£½å¤‚å¤Šå¤å¤›ę¢¦å¤„å¤¬å¤­å¤²å¤ø夾ē«’儕儐儎儚儘儢儠儧儬儩"], - ["d5a1", "å„ø妁妝佞侫妣妲姆å§Ø姜妍姙姚åØ„å؟åؑå؜å؉åؚ婀婬婉åصåض婢å©ŖåŖšåŖ¼åŖ¾å«‹å«‚åŖ½å«£å«—嫦嫩嫖å«ŗ嫻嬌嬋嬖嬲嫐å¬Ŗ嬶嬾孃孅孀孑孕孚孛孄孩孰孳孵å­øꖈå­ŗ宀它宦å®øåƃåƇåƉåƔåƐåƤåƦåÆ¢åƞåÆ„åÆ«åÆ°åƶåƳ尅將專對尓尠尢å°Øå°ø尹屁屆屎屓"], - ["d6a1", "屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽å³ŗ峭嶌å³Ŗ哋哕哗嵜哟哛哑哔哢哚哙哘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵åø‹åøšåø™åø‘åø›åø¶åø·å¹„幃幀幎幗幔幟幢幤幇幵并å¹ŗéŗ¼å¹æåŗ å»å»‚廈廐廏"], - ["d7a1", "廖廣廝廚廛廢廔å»Ø廩廬廱廳廰廓å»ø廾弃弉彝彜弋弑弖弩弭å¼ø彁彈彌彎å¼Æ彑彖彗彙彔彭彳彷徃徂å½æ徊很徑徇從徙徘徠å¾Øå¾­å¾¼åæ–åæ»åæ¤åæøåæ±åæę‚³åææę€”ę ę€™ę€ę€©ę€Žę€±ę€›ę€•ę€«ę€¦ę€ę€ŗꁚꁁęŖę·ęŸęŠę†ęę£ęƒę¤ę‚ę¬ę«ę™ę‚ę‚ęƒ§ę‚ƒę‚š"], - ["d8a1", "ę‚„ę‚›ę‚–ę‚—ę‚’ę‚§ę‚‹ęƒ”ę‚øęƒ ęƒ“ę‚“åæ°ę‚½ęƒ†ę‚µęƒ˜ę…ę„•ę„†ęƒ¶ęƒ·ę„€ęƒ“ęƒŗę„ƒę„”ęƒ»ęƒ±ę„ę„Žę…‡ę„¾ę„Øꄧꅊę„æę„¼ę„¬ę„“ę„½ę…‚ę…„ę…³ę…·ę…˜ę…™ę…šę…«ę…“ę…Æę…„ę…±ę…Ÿę…ę…“ę…µę†™ę†–ę†‡ę†¬ę†”ę†šę†Šę†‘ę†«ę†®ę‡Œę‡Šę‡‰ę‡·ę‡ˆę‡ƒę‡†ę†ŗꇋē½¹ę‡ę‡¦ę‡£ę‡¶ę‡ŗꇓę‡æę‡½ę‡¼ę‡¾ęˆ€ęˆˆęˆ‰ęˆęˆŒęˆ”ęˆ›"], - ["d9a1", "ęˆžęˆ”ęˆŖęˆ®ęˆ°ęˆ²ęˆ³ę‰ę‰Žę‰žę‰£ę‰›ę‰ ę‰Øę‰¼ęŠ‚ęŠ‰ę‰¾ęŠ’ęŠ“ęŠ–ę‹”ęŠƒęŠ”ę‹—ę‹‘ęŠ»ę‹ę‹æę‹†ę“”ę‹ˆę‹œę‹Œę‹Šę‹‚ę‹‡ęŠ›ę‹‰ęŒŒę‹®ę‹±ęŒ§ęŒ‚ęŒˆę‹Æę‹µęęŒ¾ęęœęęŽ–ęŽŽęŽ€ęŽ«ę¶ęŽ£ęŽęŽ‰ęŽŸęŽµę«ę©ęŽ¾ę©ę€ę†ę£ę‰ę’ę¶ę„ę–ę“ę†ę“ę¦ę¶ę”ę—ęØꐏꑧę‘Æꑶꑎę”Ŗę’•ę’“ę’„ę’©ę’ˆę’¼"], - ["daa1", "ę“šę“’ę“…ę“‡ę’»ę“˜ę“‚ę“±ę“§čˆ‰ę“ ę“”ęŠ¬ę“£ę“Æę”¬ę“¶ę““ę“²ę“ŗę”€ę“½ę”˜ę”œę”…ę”¤ę”£ę”«ę”“ę”µę”·ę”¶ę”øē•‹ę•ˆę•–ę••ę•ę•˜ę•žę•ę•²ę•øę–‚ę–ƒč®Šę–›ę–Ÿę–«ę–·ę—ƒę—†ę—ę—„ę—Œę—’ę—›ę—™ę— ę—”ę—±ę²ę˜Šę˜ƒę—»ę³ę˜µę˜¶ę˜“ę˜œę™ę™„ę™‰ę™ę™žę™ę™¤ę™§ę™Øę™Ÿę™¢ę™°ęšƒęšˆęšŽęš‰ęš„ęš˜ęšę›ęš¹ę›‰ęš¾ęš¼"], - ["dba1", "ꛄęšøꛖꛚꛠę˜æę›¦ę›©ę›°ę›µę›·ęœęœ–ęœžęœ¦ęœ§éœøęœ®ęœæęœ¶ęęœøęœ·ę†ęžę ę™ę£ę¤ęž‰ę°ęž©ę¼ęŖęžŒęž‹ęž¦ęž”ęž…ęž·ęŸÆęž“ęŸ¬ęž³ęŸ©ęžøęŸ¤ęŸžęŸęŸ¢ęŸ®ęž¹ęŸŽęŸ†ęŸ§ęŖœę žę”†ę ©ę”€ę”ę ²ę”Žę¢³ę «ę”™ę”£ę”·ę”æę¢Ÿę¢ę¢­ę¢”ę¢ę¢›ę¢ƒęŖ®ę¢¹ę”“ę¢µę¢ ę¢ŗę¤ę¢ę”¾ę¤ę£Šę¤ˆę£˜ę¤¢ę¤¦ę£”ę¤Œę£"], - ["dca1", "ę£”ę£§ę£•ę¤¶ę¤’ę¤„ę£—ę££ę¤„ę£¹ę£ ę£Æę¤Øę¤Ŗę¤šę¤£ę¤”ę£†ę„¹ę„·ę„œę„øę„«ę„”ę„¾ę„®ę¤¹ę„“ę¤½ę„™ę¤°ę„”ę„žę„ę¦ę„Ŗę¦²ę¦®ę§ę¦æę§ę§“ę¦¾ę§ŽåÆØę§Šę§ę¦»ę§ƒę¦§ęØ®ę¦‘ę¦ ę¦œę¦•ę¦“ę§žę§Øę؂ę؛ę§æę¬Šę§¹ę§²ę§§ęØ…ę¦±ęØžę§­ęØ”ę§«ę؊ęØ’ę«ęØ£ęØ“ę©„ęØŒę©²ęضę©øę©‡ę©¢ę©™ę©¦ę©ˆęØøęØ¢ęŖęŖęŖ ęŖ„ęŖ¢ęŖ£"], - ["dda1", "ęŖ—č˜—ęŖ»ę«ƒę«‚ęŖøęŖ³ęŖ¬ę«žę«‘ę«ŸęŖŖę«šę«Ŗę«»ę¬…č˜–ę«ŗę¬’ę¬–é¬±ę¬Ÿę¬øꬷē›œę¬¹é£®ę­‡ę­ƒę­‰ę­ę­™ę­”ę­›ę­Ÿę­”ę­øę­¹ę­æę®€ę®„ę®ƒę®ę®˜ę®•ę®žę®¤ę®Ŗꮫę®Æę®²ę®±ę®³ę®·ę®¼ęƆęƋęƓęƟęƬęÆ«ęƳęÆÆéŗ¾ę°ˆę°“ę°”ę°›ę°¤ę°£ę±žę±•ę±¢ę±Ŗę²‚ę²ę²šę²ę²›ę±¾ę±Øę±³ę²’ę²ę³„ę³±ę³“ę²½ę³—ę³…ę³ę²®ę²±ę²¾"], - ["dea1", "ę²ŗę³›ę³Æę³™ę³Ŗę“Ÿč”ę“¶ę“«ę“½ę“øę“™ę“µę“³ę“’ę“Œęµ£ę¶“ęµ¤ęµšęµ¹ęµ™ę¶Žę¶•ęæ¤ę¶…ę·¹ęø•ęøŠę¶µę·‡ę·¦ę¶øę·†ę·¬ę·žę·Œę·Øę·’ę·…ę·ŗ귙귤귕ę·Ŗę·®ęø­ę¹®ęø®ęø™ę¹²ę¹Ÿęø¾ęø£ę¹«ęø«ę¹¶ę¹ęøŸę¹ƒęøŗę¹Žęø¤ę»æęøęøøęŗ‚ęŗŖęŗ˜ę»‰ęŗ·ę»“ęŗ½ęŗÆ껄ęŗ²ę»”껕ęŗęŗ„껂ęŗŸę½ę¼‘ēŒę»¬ę»øę»¾ę¼æę»²ę¼±ę»Æę¼²ę»Œ"], - ["dfa1", "ę¼¾ę¼“ę»·ę¾†ę½ŗę½øę¾ę¾€ę½Æę½›ęæ³ę½­ę¾‚ę½¼ę½˜ę¾Žę¾‘ęæ‚ę½¦ę¾³ę¾£ę¾”ę¾¤ę¾¹ęæ†ę¾ŖęæŸęæ•ęæ¬ęæ”ęæ˜ęæ±ęæ®ęæ›ē€‰ē€‹ęæŗē€‘ē€ē€ęæ¾ē€›ē€šę½“ē€ē€˜ē€Ÿē€°ē€¾ē€²ē‘ē£ē‚™ē‚’ē‚Æēƒ±ē‚¬ē‚øē‚³ē‚®ēƒŸēƒ‹ēƒēƒ™ē„‰ēƒ½ē„œē„™ē…„ē…•ē†ˆē…¦ē…¢ē…Œē…–ē…¬ē†ē‡»ē†„ē†•ē†Øē†¬ē‡—ē†¹ē†¾ē‡’ē‡‰ē‡”ē‡Žē‡ ē‡¬ē‡§ē‡µē‡¼"], - ["e0a1", "ē‡¹ē‡æēˆēˆēˆ›ēˆØēˆ­ēˆ¬ēˆ°ēˆ²ēˆ»ēˆ¼ēˆæē‰€ē‰†ē‰‹ē‰˜ē‰“ē‰¾ēŠ‚ēŠēŠ‡ēŠ’ēŠ–ēŠ¢ēŠ§ēŠ¹ēŠ²ē‹ƒē‹†ē‹„ē‹Žē‹’ē‹¢ē‹ ē‹”ē‹¹ē‹·å€ēŒ—ēŒŠēŒœēŒ–ēŒēŒ“ēŒÆēŒ©ēŒ„ēŒ¾ēŽēé»˜ē—ēŖēØē°ēøēµē»ēŗēˆēŽ³ēŽēŽ»ē€ē„ē®ēžē’¢ē…ē‘Æē„ēøē²ēŗē‘•ēæē‘Ÿē‘™ē‘ē‘œē‘©ē‘°ē‘£ē‘Ŗē‘¶ē‘¾ē’‹ē’žē’§ē“Šē“ē“”ē±"], - ["e1a1", "ē“ ē“£ē“§ē“©ē“®ē“²ē“°ē“±ē“øē“·ē”„ē”ƒē”…ē”Œē”Žē”ē”•ē”“ē”žē”¦ē”¬ē”¼ē•„ē•ē•Šē•‰ē•›ē•†ē•šē•©ē•¤ē•§ē•«ē•­ē•øē•¶ē–†ē–‡ē•“ē–Šē–‰ē–‚ē–”ē–šē–ē–„ē–£ē—‚ē–³ē—ƒē–µē–½ē–øē–¼ē–±ē—ē—Šē—’ē—™ē—£ē—žē—¾ē—æē—¼ē˜ē—°ē—ŗē—²ē—³ē˜‹ē˜ē˜‰ē˜Ÿē˜§ē˜ ē˜”ē˜¢ē˜¤ē˜“ē˜°ē˜»ē™‡ē™ˆē™†ē™œē™˜ē™”ē™¢ē™Øē™©ē™Ŗē™§ē™¬ē™°"], - ["e2a1", "ē™²ē™¶ē™øē™¼ēš€ēšƒēšˆēš‹ēšŽēš–ēš“ēš™ēššēš°ēš“ēšøēš¹ēšŗē›‚ē›ē›–ē›’ē›žē›”ē›„ē›§ē›Ŗč˜Æē›»ēœˆēœ‡ēœ„ēœ©ēœ¤ēœžēœ„ēœ¦ēœ›ēœ·ēœøē‡ēšēØē«ē›ē„ēæē¾ē¹ēžŽēž‹ēž‘ēž ēžžēž°ēž¶ēž¹ēžæēž¼ēž½ēž»ēŸ‡ēŸēŸ—ēŸšēŸœēŸ£ēŸ®ēŸ¼ē Œē ’ē¤¦ē  ē¤Ŗē”…ē¢Žē”“ē¢†ē”¼ē¢šē¢Œē¢£ē¢µē¢Ŗē¢Æē£‘ē£†ē£‹ē£”ē¢¾ē¢¼ē£…ē£Šē£¬"], - ["e3a1", "ē£§ē£šē£½ē£“ē¤‡ē¤’ē¤‘ē¤™ē¤¬ē¤«ē„€ē„ ē„—ē„Ÿē„šē„•ē„“ē„ŗē„æē¦Šē¦ē¦§é½‹ē¦Ŗē¦®ē¦³ē¦¹ē¦ŗē§‰ē§•ē§§ē§¬ē§”ē§£ē؈ē؍ēؘēؙēØ ē؟ē¦€ēرēØ»ēؾēØ·ē©ƒē©—ē©‰ē©”ē©¢ē©©é¾ē©°ē©¹ē©½ēŖˆēŖ—ēŖ•ēŖ˜ēŖ–ēŖ©ē«ˆēŖ°ēŖ¶ē«…ē«„ēŖæ邃ē«‡ē«Šē«ē«ē«•ē«“ē«™ē«šē«ē«”ē«¢ē«¦ē«­ē«°ē¬‚ē¬ē¬Šē¬†ē¬³ē¬˜ē¬™ē¬žē¬µē¬Øē¬¶ē­"], - ["e4a1", "ē­ŗē¬„ē­ē¬‹ē­Œē­…ē­µē­„ē­“ē­§ē­°ē­±ē­¬ē­®ē®ē®˜ē®Ÿē®ē®œē®šē®‹ē®’ē®ē­ē®™ēƋēƁēƌēƏē®“ēƆēƝēÆ©ē°‘ē°”ēƦēÆ„ē± ē°€ē°‡ē°“ēƳēÆ·ē°—ē°ēƶē°£ē°§ē°Ŗē°Ÿē°·ē°«ē°½ē±Œē±ƒē±”ē±ē±€ē±ē±˜ē±Ÿē±¤ē±–ē±„ē±¬ē±µē²ƒē²ē²¤ē²­ē²¢ē²«ē²”ē²Øē²³ē²²ē²±ē²®ē²¹ē²½ē³€ē³…ē³‚ē³˜ē³’ē³œē³¢é¬»ē³Æē³²ē³“ē³¶ē³ŗē“†"], - ["e5a1", "ē“‚ē“œē“•ē“Šēµ…ēµ‹ē“®ē“²ē“æē“µēµ†ēµ³ēµ–ēµŽēµ²ēµØēµ®ēµēµ£ē¶“ē¶‰ēµ›ē¶ēµ½ē¶›ē¶ŗē¶®ē¶£ē¶µē·‡ē¶½ē¶«ēø½ē¶¢ē¶Æē·œē¶øē¶Ÿē¶°ē·˜ē·ē·¤ē·žē·»ē·²ē·”ēø…ēøŠēø£ēø”ēø’ēø±ēøŸēø‰ēø‹ēø¢ē¹†ē¹¦ēø»ēøµēø¹ē¹ƒēø·ēø²ēøŗē¹§ē¹ē¹–ē¹žē¹™ē¹šē¹¹ē¹Ŗē¹©ē¹¼ē¹»ēŗƒē·•ē¹½č¾®ē¹æēŗˆēŗ‰ēŗŒēŗ’ēŗēŗ“ēŗ”ēŗ–ēŗŽēŗ›ēŗœē¼øē¼ŗ"], - ["e6a1", "ē½…ē½Œē½ē½Žē½ē½‘ē½•ē½”ē½˜ē½Ÿē½ ē½Øē½©ē½§ē½øē¾‚ē¾†ē¾ƒē¾ˆē¾‡ē¾Œē¾”ē¾žē¾ē¾šē¾£ē¾Æē¾²ē¾¹ē¾®ē¾¶ē¾øč­±ēæ…ēæ†ēæŠēæ•ēæ”ēæ”ēæ¦ēæ©ēæ³ēæ¹é£œč€†č€„č€‹č€’č€˜č€™č€œč€”č€Øč€æč€»čŠč†č’č˜čščŸč¢čØč³č²č°č¶č¹č½čæč‚„č‚†č‚…č‚›č‚“č‚šč‚­å†č‚¬čƒ›čƒ„čƒ™čƒčƒ„čƒščƒ–č„‰čƒÆčƒ±č„›č„©č„£č„Æ腋"], - ["e7a1", "éš‹č…†č„¾č…“č…‘čƒ¼č…±č…®č…„č…¦č…“č†ƒč†ˆč†Šč†€č†‚č† č†•č†¤č†£č…Ÿč†“č†©č†°č†µč†¾č†øč†½č‡€č‡‚č†ŗ臉臍臑臙臘臈臚臟臠臧č‡ŗč‡»č‡¾čˆčˆ‚čˆ…čˆ‡čˆŠčˆčˆčˆ–čˆ©čˆ«čˆøčˆ³č‰€č‰™č‰˜č‰č‰šč‰Ÿč‰¤č‰¢č‰Øč‰Ŗč‰«čˆ®č‰±č‰·č‰øč‰¾čŠčŠ’čŠ«čŠŸčŠ»čŠ¬č‹”č‹£č‹Ÿč‹’č‹“č‹³č‹ŗčŽ“čŒƒč‹»č‹¹č‹žčŒ†č‹œčŒ‰č‹™"], - ["e8a1", "čŒµčŒ“čŒ–čŒ²čŒ±č€čŒ¹čč…čŒÆčŒ«čŒ—čŒ˜čŽ…čŽščŽŖčŽŸčŽ¢čŽ–čŒ£čŽŽčŽ‡čŽŠč¼čŽµč³čµčŽ čŽ‰čŽØč“č“č«čŽč½čƒč˜č‹čč·č‡č č²čč¢č čŽ½čøč”†č»č‘­čŖč¼č•šč’„č‘·č‘«č’­č‘®č’‚č‘©č‘†č¬č‘Æč‘¹čµč“Šč‘¢č’¹č’æč’Ÿč“™č“č’»č“šč“č“č“†č“–č’”č””č“æč““č”—č”˜č”¬č”Ÿč”•č””č“¼č•€č•£č•˜č•ˆ"], - ["e9a1", "蕁蘂蕋蕕薀薤薈薑薊č–Ø蕭薔薛č—Ŗč–‡č–œč•·č•¾č–č—‰č–ŗč—č–¹č—č—•č—č—„č—œč—¹č˜Šč˜“č˜‹č—¾č—ŗč˜†č˜¢č˜šč˜°č˜æč™ä¹•č™”č™Ÿč™§č™±čš“čš£čš©čšŖčš‹čšŒčš¶čšÆč›„č›†čš°č›‰č £čš«č›”č›žč›©č›¬č›Ÿč››č›Æčœ’čœ†čœˆčœ€čœƒč›»čœ‘čœ‰čœč›¹čœŠčœ“čœæčœ·čœ»čœ„čœ©čœšč čŸčøčŒčŽč“č—čØč®č™"], - ["eaa1", "č“č£čŖč …čž¢čžŸčž‚čžÆčŸ‹čž½čŸ€čŸé›–čž«čŸ„čž³čŸ‡čŸ†čž»čŸÆčŸ²čŸ č č čŸ¾čŸ¶čŸ·č ŽčŸ’č ‘č –č •č ¢č ”č ±č ¶č ¹č §č »č”„č”‚č”’č”™č”žč”¢č”«č¢č”¾č¢žč”µč”½č¢µč”²č¢‚č¢—č¢’č¢®č¢™č¢¢č¢č¢¤č¢°č¢æč¢±č£ƒč£„č£”č£˜č£™č£č£¹č¤‚č£¼č£“č£Øč£²č¤„č¤Œč¤Šč¤“č„ƒč¤žč¤„č¤Ŗ褫脁脄褻褶č¤øč„Œč¤č„ č„ž"], - ["eba1", "脦脤脭č„Ŗč„Æč„“č„·č„¾č¦ƒč¦ˆč¦Šč¦“č¦˜č¦”č¦©č¦¦č¦¬č¦Æč¦²č¦ŗč¦½č¦æč§€č§šč§œč§č§§č§“č§øč؃čؖčؐč،č؛č؝čØ„čØ¶č©č©›č©’č©†č©ˆč©¼č©­č©¬č©¢čŖ…čŖ‚čŖ„čŖØčŖ”čŖ‘čŖ„čŖ¦čŖščŖ£č«„č«č«‚č«šč««č«³č«§č«¤č«±č¬”č« č«¢č«·č«žč«›č¬Œč¬‡č¬šč«”č¬–č¬č¬—č¬ č¬³éž«č¬¦č¬«č¬¾č¬Øč­č­Œč­č­Žč­‰č­–č­›č­šč­«"], - ["eca1", "č­Ÿč­¬č­Æč­“č­½č®€č®Œč®Žč®’č®“č®–č®™č®šč°ŗ豁č°æč±ˆč±Œč±Žč±č±•č±¢č±¬č±øč±ŗč²‚č²‰č²…č²Šč²č²Žč²”č±¼č²˜ęˆč²­č²Ŗč²½č²²č²³č²®č²¶č³ˆč³č³¤č³£č³šč³½č³ŗč³»č“„č“…č“Šč“‡č“č“č“é½Žč““č³č“”č“–čµ§čµ­čµ±čµ³č¶č¶™č·‚č¶¾č¶ŗč·č·šč·–č·Œč·›č·‹č·Ŗč·«č·Ÿč·£č·¼čøˆčø‰č·æčøčøžčøčøŸč¹‚čøµčø°čø“č¹Š"], - ["eda1", "č¹‡č¹‰č¹Œč¹č¹ˆč¹™č¹¤č¹ čøŖč¹£č¹•č¹¶č¹²č¹¼čŗčŗ‡čŗ…čŗ„čŗ‹čŗŠčŗ“čŗ‘čŗ”čŗ™čŗŖčŗ”čŗ¬čŗ°č»†čŗ±čŗ¾č»…č»ˆč»‹č»›č»£č»¼č»»č»«č»¾č¼Šč¼…č¼•č¼’č¼™č¼“č¼œč¼Ÿč¼›č¼Œč¼¦č¼³č¼»č¼¹č½…č½‚č¼¾č½Œč½‰č½†č½Žč½—č½œč½¢č½£č½¤č¾œč¾Ÿč¾£č¾­č¾Æč¾·čæščæ„čæ¢čæŖčæÆ邇čæ“逅čæ¹čæŗ逑逕途逍逞逖逋逧逶逵逹čæø"], - ["eea1", "遏遐遑遒逎遉逾遖遘遞éØéÆ遶éšØ遲邂遽邁邀邊邉邏é‚Øé‚Æé‚±é‚µéƒ¢éƒ¤ę‰ˆéƒ›é„‚é„’é„™é„²é„°é…Šé…–é…˜é…£é…„é…©é…³é…²é†‹é†‰é†‚é†¢é†«é†Æé†Ŗ醵醓é†ŗ釀釁釉釋釐釖釟釔釛釼釵釶鈞é‡æ鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕éˆæ鉋鉐銜銖銓銛鉚鋏銹銷鋩錏é‹ŗ鍄錮"], - ["efa1", "錙錢錚錣éŒŗ錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗éØ鏄鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐔éŗ鑁鑒鑄鑛鑠鑢鑞é‘Ŗ鈩鑰鑵鑷鑽鑚鑼鑾钁é‘æ閂閇閊閔閖閘閙閠é–Ø閧閭閼閻閹閾闊ęæ¶é—ƒé—é—Œé—•é—”闖關闔闄闢阔é˜Ø阮é˜Æ陂陌陏陋陷陜陞"], - ["f0a1", "陝陟陦陲陬隍隘隕隗éšŖ隧隱隲隰隓隶éšøéš¹é›Žé›‹é›‰é›č„é›œéœé›•é›¹éœ„éœ†éœˆéœ“éœŽéœ‘éœéœ–éœ™éœ¤éœŖ霰霹霽霾靄靆靈靂靉靜靠靤靦éØ勒靫靱靹鞅靼鞁éŗ鞆鞋鞏鞐鞜éžØ鞦鞣鞳鞓韃韆韈韋韜韭齏韲ē«ŸéŸ¶éŸµé é Œé ø頤頔頷頽锆锏锋锫é”Æé”°"], - ["f1a1", "锱锓锳é¢Ŗé¢Æ颱颶飄飃飆飩飫餃餉餒餔餘餔餝餞餤餠餬餮餽餾鄂鄉鄅鄐鄋鄑鄒鄌鄕馗馘馄馭馮馼駟駛駝駘駑駭駮駱駲駻é§øé؁é؏é؅駢éؙéØ«éط驅驂驀驃éؾ驕驍驛驗驟驢驄驤驩驫é©ŖéŖ­éŖ°éŖ¼é«€é«é«‘髓體髞髟髢髣髦é«Æ髫髮髓髱髷"], - ["f2a1", "髻鬆鬘鬚鬟鬢鬣鬄鬧é¬Ø鬩é¬Ŗ鬮é¬Æ鬲魄魃魏魍魎魑魘魓鮓鮃鮑鮖鮗鮟鮠é®Ø鮓éƀéƊ鮹éƆéƏéƑéƒéÆ£éÆ¢éƤéƔéÆ”é°ŗéƲéƱéư鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰄鰤鰔鰰鱇鰲鱆鰾鱚鱠鱧鱶é±ø鳧鳬鳰铉铈鳫铃铆é“Ŗ铦é¶Æ铣铟鵄铕铒鵁é“æ链鵆鵈"], - ["f3a1", "鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫éµÆéµŗ鶚鶤鶩鶲鷄鷁鶻é¶øé¶ŗ鷆鷏鷂鷙鷓é·ø鷦鷭é·Æé·½éøšéø›éøžé¹µé¹¹é¹½éŗéŗˆéŗ‹éŗŒéŗ’éŗ•éŗ‘éŗéŗ„éŗ©éŗøéŗŖéŗ­é”黌黎黏黐黔黜點黝黠黄é»Øé»Æ黓黶黷黹黻黼黽鼇鼈ēš·é¼•é¼”鼬鼾齊齒齔齣齟齠齔齦齧齬é½Ŗ齷齲齶龕龜龠"], - ["f4a1", "å Æ꧇遙ē‘¤å‡œē†™"], - ["f9a1", "ēŗŠč¤œéˆéŠˆč“œäæ‰ē‚»ę˜±ę£ˆé‹¹ę›»å½…äøØ仔仼伀伃伹佖侒侊侚侔äæå€å€¢äææ倞偆偰偂傔僓僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝ļ؎咜咊咩å“æ喆坙坄垬埈埇ļ؏ļؐ增墲夋儓儛儝儣妤å¦ŗ孖åƀē”ÆåƘåƬ尞岦å²ŗ峵哧嵓ļؑ嵂嵭å¶ø嶹巐弔弓彧德"], - ["faa1", "åæžęę‚…ę‚Šęƒžęƒ•ę„ ęƒ²ę„‘ę„·ę„°ę†˜ęˆ“ęŠ¦ęµę‘ ę’ę“Žę•Žę˜€ę˜•ę˜»ę˜‰ę˜®ę˜žę˜¤ę™„ꙗꙙļØ’ę™³ęš™ęš ęš²ęšæę›ŗ꜎ļ¤©ę¦ęž»ę”’ęŸ€ę ę”„ę£ļؓę„ØļØ”ę¦˜ę§¢ęØ°ę©«ę©†ę©³ę©¾ę«¢ę«¤ęƖę°æę±œę²†ę±Æę³šę“„ę¶‡ęµÆę¶–ę¶¬ę·ę·øę·²ę·¼ęø¹ę¹œęø§ęø¼ęŗæę¾ˆę¾µęæµē€…ē€‡ē€Øē‚…ē‚«ē„ē„„ē…œē…†ē…‡ļؕē‡ē‡¾ēŠ±"], - ["fba1", "ēŠ¾ēŒ¤ļؖē·ēŽ½ē‰ē–ē£ē’ē‡ēµē¦ēŖē©ē®ē‘¢ē’‰ē’Ÿē”ē•Æēš‚ēšœēšžēš›ēš¦ļؗē†åŠÆē ”ē”Žē”¤ē”ŗē¤°ļؘļؙļؚē¦”ļ؛ē¦›ē«‘ē«§ļ؜ē««ē®žļ؝ēµˆēµœē¶·ē¶ ē·–ē¹’ē½‡ē¾”ļØžčŒč¢čæč‡č¶č‘ˆč’“č•“č•™č•«ļØŸč–°ļØ ļØ”č ‡č£µčؒčØ·č©¹čŖ§čŖ¾č«ŸļØ¢č«¶č­“č­æč³°č³“č“’čµ¶ļØ£č»ļؤļ؄遧郞ļئ鄕鄧釚"], - ["fca1", "釗釞釭釮釤釄鈆鈐鈊éˆŗ鉀鈼鉎鉙鉑鈹鉧銧鉷é‰ø鋧鋗鋙鋐ļا鋕鋠鋓錄錔鋻ļØØ錞é‹æ錝錂鍰鍗鎤鏆鏞éø鐱鑅鑈閒ļ§œļة隝éšÆ霳霻靃靍靏靑靕锗锄ļØŖļث餧ļج馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫ļØ­éø™é»‘"], - ["fcf1", "ā…°", 9, "ļæ¢ļæ¤ļ¼‡ļ¼‚"], - ["8fa2af", "Ė˜Ė‡ĀøĖ™ĖĀÆĖ›Ėšļ½žĪ„Ī…"], - ["8fa2c2", "Ā”Ā¦Āæ"], - ["8fa2eb", "ĀŗĀŖĀ©Ā®ā„¢Ā¤ā„–"], - ["8fa6e1", "Ī†ĪˆĪ‰ĪŠĪŖ"], - ["8fa6e7", "ĪŒ"], - ["8fa6e9", "ĪŽĪ«"], - ["8fa6ec", "Ī"], - ["8fa6f1", "Ī¬Ī­Ī®ĪÆĻŠĪĻŒĻ‚ĻĻ‹Ī°ĻŽ"], - ["8fa7c2", "Š‚", 10, "ŠŽŠ"], - ["8fa7f2", "ђ", 10, "ўџ"], - ["8fa9a1", "ƆĐ"], - ["8fa9a4", "Ħ"], - ["8fa9a6", "IJ"], - ["8fa9a8", "ŁÄæ"], - ["8fa9ab", "ÅŠĆ˜Å’"], - ["8fa9af", "Å¦Ćž"], - ["8fa9c1", "Ć¦Ä‘Ć°Ä§Ä±Ä³ÄøłŀʼnŋĆøÅ“ĆŸÅ§Ć¾"], - ["8faaa1", "ƁƀƄƂĂĒÄ€Ä„Ć…ĆƒÄ†ÄˆÄŒĆ‡ÄŠÄŽĆ‰ĆˆĆ‹ĆŠÄšÄ–Ä’Ä˜"], - ["8faaba", "ÄœÄžÄ¢Ä Ä¤ĆĆŒĆĆŽĒÄ°ÄŖÄ®ÄØÄ“Ä¶Ä¹Ä½Ä»ÅƒÅ‡Å…Ć‘Ć“Ć’Ć–Ć”Ē‘ÅÅŒĆ•Å”Å˜Å–ÅšÅœÅ ÅžÅ¤Å¢ĆšĆ™ĆœĆ›Å¬Ē“Å°ÅŖŲŮÅØĒ—Ē›Ē™Ē•Å“ƝÅøŶŹŽŻ"], - ["8faba1", "Ć”Ć Ć¤Ć¢ÄƒĒŽÄÄ…Ć„Ć£Ä‡Ä‰ÄĆ§Ä‹ÄĆ©ĆØĆ«ĆŖěėēęĒµÄÄŸ"], - ["8fabbd", "ĔĄƭƬĆÆĆ®Ē"], - ["8fabc5", "Ä«ÄÆĩĵķÄŗÄ¾Ä¼Å„ÅˆÅ†Ć±Ć³Ć²Ć¶Ć“Ē’Å‘ÅĆµÅ•Å™Å—Å›ÅÅ”ÅŸÅ„Å£ĆŗĆ¹Ć¼Ć»Å­Ē”űūųÅÆÅ©Ē˜ĒœĒšĒ–ÅµĆ½ĆæÅ·Åŗžż"], - ["8fb0a1", "äø‚äø„äø…äøŒäø’äøŸäø£äø¤äøØäø«äø®äøÆäø°äøµä¹€ä¹ä¹„乇乑乚乜乣ä¹Ø乩乓乵乹ä¹æäŗäŗ–äŗ—äŗäŗÆäŗ¹ä»ƒä»ä»šä»›ä» ä»”仢ä»Øä»Æ仱仳仵份仾ä»æ伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣ä½Ŗ佬佮佱佷ä½øä½¹ä½ŗ佽佾侁侂侄"], - ["8fb1a1", "侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾äæ€äæäæ…äæ†äæˆäæ‰äæ‹äæŒäæäæäæ’äæœäæ äæ¢äæ°äæ²äæ¼äæ½äææ倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧åŖ偭偰偱倻傁傃傄傆傊傎傏傐"], - ["8fb2a1", "傒傓傔傖傛傜傞", 4, "å‚Ŗå‚Æ傰傹å‚ŗ傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦åƒØ僩åƒÆ僱僶åƒŗ僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧å„Ø儬儭å„Æ儱儳儓儵å„ø儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冔冣冭å†øå†ŗ冼冾å†æ凂"], - ["8fb3a1", "凈减凑凒凓凕凘凞凢凄凮凲凳凓凷刁刂刅划刓刕刖刘刢åˆØ刱刲刵刼剅剉剕剗剘剚剜剟剠剔剦剮剷å‰ø剹劀劂劅劊劌劓劕劖劗劘劚劜劤劄劦劧åŠÆ劰劶劷åŠøåŠŗ劻劽勀勄勆勈勌勏勑勔勖勛勜勔勄å‹Ø勩å‹Ŗ勬勰勱勓勶勷匀匃匊匋"], - ["8fb4a1", "匌匑匓匘匛匜匞匟匄匧åŒØ匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛協卣卄卬卭卲卹卾厃厇厈厎厓厔厙厝厔厤åŽŖ厫åŽÆ厲厓厵厷åŽøåŽŗ厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吔吧åØåŖåÆ吱吓吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呓å‘æ"], - ["8fb5a1", "咁咃咅咈咉咍咑咕咖咜咟咔咦咧咩å’Ŗ咭咮咱咷咹å’ŗ咻å’æ哆哊响哎哠å“Ŗ哬å“Æ哶哼哾å“æ唀唁唅唈唉唌唍唎唕å”Ŗ唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啔啤啦å•æ喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲å–æ嗁嗃嗆嗉嗋嗌嗎嗑嗒"], - ["8fb6a1", "嗓嗗嗘嗛嗞嗢嗩嗶å—æ嘅嘈嘊嘍", 5, "嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽å˜æ噀噁噃噄噆噉噋噍噏噔噞噠噔噢噣噦噩噭å™Æ噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧åšØ嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囔囤", 4, "囱囫园"], - ["8fb7a1", "囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圄圩åœŖ圬圮åœÆ圳圓圽圾åœæ坅坆坌坍坒坢坄坧åØ坫坭", 4, "坳坓坵坷坹åŗ坻坼坾垁垃垌垔垗垙垚垜垝垞垟垔垕垧åžØ垩垬åžø垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶åŸø埽埾åŸæ堃堄堈堉埔"], - ["8fb8a1", "堌堍堛堞堟堠堦堧堭堲堹å æ唉唌唍唏唐唕唟唔唤唧å”Øå”ø唼å”æå¢€å¢å¢‡å¢ˆå¢‰å¢Šå¢Œå¢å¢å¢å¢”å¢–å¢å¢ å¢”å¢¢å¢¦å¢©å¢±å¢²å£„å¢¼å£‚å£ˆå£å£Žå£å£’å£”å£–å£šå£å£”å£¢å£©å£³å¤…å¤†å¤‹å¤Œå¤’å¤“å¤”č™å¤å¤”å¤£å¤¤å¤Øå¤Æ夰夳夵夶å¤æ儃儆儒儓儙儛儝儞償儔儣儫儭"], - ["8fb9a1", "å„Æ儲儵儶儹儻儼妋妌妎妒妕妗妟妤妧妭妮å¦Æ妰妳妷å¦ŗ妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮å§Æ姱姲姓姷å؀å؄å،å؍å؎åؒåؓå؞åØ£åؤåاåØØåØŖåØ­åذ婄婅婇婈婌婐婕婞婣婄婧婭婷å©ŗ婻婾åŖ‹åŖåŖ“åŖ–åŖ™åŖœåŖžåŖŸåŖ åŖ¢åŖ§åŖ¬åŖ±åŖ²åŖ³åŖµåŖøåŖŗåŖ»åŖæ"], - ["8fbaa1", "嫄嫆嫈嫏嫚嫜嫠嫄å«Ŗ嫮嫵嫶嫽嬀嬁嬈嬗嬓嬙嬛嬝嬔嬄嬭å¬ø孁孋孌孒孖孞å­Øå­®å­Æ孼孽孾å­æ宁宄宆宊宎宐宑宓宔宖å®Ø宩宬宭å®Æ宱宲宷å®ŗ宼åƀåƁåƍåƏåƖ", 4, "åÆ åÆÆåƱåÆ“åƽ尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧å±Ø屩"], - ["8fbba1", "屭屰屓屵å±ŗ屻屼屽岇岈岊岏岒岝岟岠岢岣岦å²Ŗ岲岓岵å²ŗ峉峋峒峝峗峮峱峲峓品哆响哒哫哣哤哦哧哱哓哹哽å“æ嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵔嵢嵤åµŖåµ­åµ°åµ¹åµŗåµ¾åµæ嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶓å¶ø嶹巃巇巋巐巎巘巙巠巤"], - ["8fbca1", "å·©å·øå·¹åø€åø‡åøåø’åø”åø•åø˜åøŸåø åø®åøØåø²åøµåø¾å¹‹å¹å¹‰å¹‘幖幘幛幜幞å¹Øå¹Ŗ", 4, "å¹°åŗ€åŗ‹åŗŽåŗ¢åŗ¤åŗ„åŗØåŗŖåŗ¬åŗ±åŗ³åŗ½åŗ¾åŗæ廆廌廋廎廑廒廔廕廜廞廄廫异弆弇弈弎弙弜弝弔弢弣弤å¼Ø弫弬弮弰弓弶弻弽å¼æ彀彄彅彇彍彐彔彘彛彠彣彤彧"], - ["8fbda1", "å½Æ彲当彵å½øå½ŗ彽彾徉徍徏徖徜徝徢徧徫徤徬å¾Æå¾°å¾±å¾øåæ„åæ‡åæˆåæ‰åæ‹åæ", 4, "åæžåæ”åæ¢åæØåæ©åæŖåæ¬åæ­åæ®åæÆåæ²åæ³åæ¶åæŗåæ¼ę€‡ę€Šę€ę€“ę€”ę€—ę€˜ę€šę€Ÿę€¤ę€­ę€³ę€µę€ę‡ęˆę‰ęŒę‘ę”ę–ę—ęę”ę§ę±ę¾ęæę‚‚ę‚†ę‚ˆę‚Šę‚Žę‚‘ę‚“ę‚•ę‚˜ę‚ę‚žę‚¢ę‚¤ę‚„ę‚Øꂰꂱꂷ"], - ["8fbea1", "ę‚»ę‚¾ęƒ‚ęƒ„ęƒˆęƒ‰ęƒŠęƒ‹ęƒŽęƒęƒ”ęƒ•ęƒ™ęƒ›ęƒęƒžęƒ¢ęƒ„ęƒ²ęƒµęƒøęƒ¼ęƒ½ę„‚ę„‡ę„Šę„Œę„", 4, "ę„–ę„—ę„™ę„œę„žę„¢ę„Ŗę„«ę„°ę„±ę„µę„¶ę„·ę„¹ę…ę……ę…†ę…‰ę…žę… ę…¬ę…²ę…øę…»ę…¼ę…æę†€ę†ę†ƒę†„ę†‹ę†ę†’ę†“ę†—ę†˜ę†œę†ę†Ÿę† ę†„ę†Øę†Ŗꆭę†øę†¹ę†¼ę‡€ę‡ę‡‚ę‡Žę‡ę‡•ę‡œę‡ę‡žę‡Ÿę‡”ę‡¢ę‡§ę‡©ę‡„"], - ["8fbfa1", "ꇬꇭę‡Æęˆęˆƒęˆ„ęˆ‡ęˆ“ęˆ•ęˆœęˆ ęˆ¢ęˆ£ęˆ§ęˆ©ęˆ«ęˆ¹ęˆ½ę‰‚ę‰ƒę‰„ę‰†ę‰Œę‰ę‰‘ę‰’ę‰”ę‰–ę‰šę‰œę‰¤ę‰­ę‰Æę‰³ę‰ŗę‰½ęŠęŠŽęŠęŠęŠ¦ęŠØęŠ³ęŠ¶ęŠ·ęŠŗęŠ¾ęŠæꋄꋎꋕꋖꋚę‹Ŗę‹²ę‹“ę‹¼ę‹½ęŒƒęŒ„ęŒŠęŒ‹ęŒęŒęŒ“ęŒ–ęŒ˜ęŒ©ęŒŖęŒ­ęŒµęŒ¶ęŒ¹ęŒ¼ęę‚ęƒę„ę†ęŠę‹ęŽę’ę“ę”ę˜ę›ę„ę¦ę¬ę­ę±ę“ęµ"], - ["8fc0a1", "ęøę¼ę½ęæꎂꎄꎇꎊꎐꎔꎕꎙꎚꎞꎤꎦꎭꎮęŽÆęŽ½ęę…ęˆęŽę‘ę“ę”ę•ęœę ę„ęŖę¬ę²ę³ęµęøę¹ę‰ęŠęę’ę”ę˜ęžę ę¢ę¤ę„ę©ęŖęÆę°ęµę½ęæę‘‹ę‘ę‘‘ę‘’ę‘“ę‘”ę‘šę‘›ę‘œę‘ę‘Ÿę‘ ę‘”ę‘£ę‘­ę‘³ę‘“ę‘»ę‘½ę’…ę’‡ę’ę’ę’‘ę’˜ę’™ę’›ę’ę’Ÿę’”ę’£ę’¦ę’Øę’¬ę’³ę’½ę’¾ę’æ"], - ["8fc1a1", "ę“„ę“‰ę“Šę“‹ę“Œę“Žę“ę“‘ę“•ę“—ę“¤ę“„ę“©ę“Ŗꓭꓰꓵꓷꓻę“æę”ę”„ę”ˆę”‰ę”Šę”ę”“ę””ę”–ę”™ę”›ę”žę”Ÿę”¢ę”¦ę”©ę”®ę”±ę”ŗę”¼ę”½ę•ƒę•‡ę•‰ę•ę•’ę•”ę•Ÿę• ę•§ę•«ę•ŗę•½ę–ę–…ę–Šę–’ę–•ę–˜ę–ę– ę–£ę–¦ę–®ę–²ę–³ę–“ę–æę—‚ę—ˆę—‰ę—Žę—ę—”ę—–ę—˜ę—Ÿę—°ę—²ę—“ę—µę—¹ę—¾ę—æꘀꘄꘈꘉ꘍ꘑꘒꘕꘖꘝ"], - ["8fc2a1", "ę˜žę˜”ę˜¢ę˜£ę˜¤ę˜¦ę˜©ę˜Ŗę˜«ę˜¬ę˜®ę˜°ę˜±ę˜³ę˜¹ę˜·ę™€ę™…ę™†ę™Šę™Œę™‘ę™Žę™—ę™˜ę™™ę™›ę™œę™ ę™”ę›»ę™Ŗę™«ę™¬ę™¾ę™³ę™µę™æę™·ę™øę™¹ę™»ęš€ę™¼ęš‹ęšŒęšęšęš’ęš™ęššęš›ęšœęšŸęš ęš¤ęš­ęš±ęš²ęšµęš»ęšæꛀꛂꛃꛈꛌꛎꛏꛔꛛꛟę›Øꛫꛬꛮę›ŗęœ…ęœ‡ęœŽęœ“ęœ™ęœœęœ ęœ¢ęœ³ęœ¾ę…ę‡ęˆęŒę”ę•ę"], - ["8fc3a1", "ę¦ę¬ę®ę“ę¶ę»ęžęž„ęžŽęžęž‘ęž“ęž–ęž˜ęž™ęž›ęž°ęž±ęž²ęžµęž»ęž¼ęž½ęŸ¹ęŸ€ęŸ‚ęŸƒęŸ…ęŸˆęŸ‰ęŸ’ęŸ—ęŸ™ęŸœęŸ”ęŸ¦ęŸ°ęŸ²ęŸ¶ęŸ·ę”’ę ”ę ™ę ę Ÿę Øꠧ꠬꠭ę Æę °ę ±ę ³ę »ę æę”„ę”…ę”Šę”Œę”•ę”—ę”˜ę”›ę”«ę”®", 4, "ę”µę”¹ę”ŗę”»ę”¼ę¢‚ę¢„ę¢†ę¢ˆę¢–ę¢˜ę¢šę¢œę¢”ę¢£ę¢„ę¢©ę¢Ŗę¢®ę¢²ę¢»ę£…ę£ˆę£Œę£"], - ["8fc4a1", "ę£ę£‘ę£“ę£–ę£™ę£œę£ę£„ę£Øę£Ŗę£«ę£¬ę£­ę£°ę£±ę£µę£¶ę£»ę£¼ę£½ę¤†ę¤‰ę¤Šę¤ę¤‘ę¤“ę¤–ę¤—ę¤±ę¤³ę¤µę¤øę¤»ę„‚ę„…ę„‰ę„Žę„—ę„›ę„£ę„¤ę„„ę„¦ę„Øę„©ę„¬ę„°ę„±ę„²ę„ŗę„»ę„æę¦€ę¦ę¦’ę¦–ę¦˜ę¦”ę¦„ę¦¦ę¦Øꦫꦭę¦Æꦷę¦øę¦ŗę¦¼ę§…ę§ˆę§‘ę§–ę§—ę§¢ę§„ę§®ę§Æę§±ę§³ę§µę§¾ę؀ę؁ę؃ę؏ęؑęؕęؚę؝ęØ ęؤęØØęØ°ęز"], - ["8fc5a1", "ęØ“ęØ·ęØ»ęؾęØæꩅꩆꩉꩊ꩎꩐꩑꩒꩕꩖꩛ꩤꩧę©Ŗę©±ę©³ę©¾ęŖęŖƒęŖ†ęŖ‡ęŖ‰ęŖ‹ęŖ‘ęŖ›ęŖęŖžęŖŸęŖ„ęŖ«ęŖÆęŖ°ęŖ±ęŖ“ęŖ½ęŖ¾ęŖæę«†ę«‰ę«ˆę«Œę«ę«”ę«•ę«–ę«œę«ę«¤ę«§ę«¬ę«°ę«±ę«²ę«¼ę«½ę¬‚ę¬ƒę¬†ę¬‡ę¬‰ę¬ę¬ę¬‘ę¬—ę¬›ę¬žę¬¤ę¬Øꬫꬬę¬Æꬵꬶꬻę¬æę­†ę­Šę­ę­’ę­–ę­˜ę­ę­ ę­§ę­«ę­®ę­°ę­µę­½"], - ["8fc6a1", "ę­¾ę®‚ę®…ę®—ę®›ę®Ÿę® ę®¢ę®£ę®Øꮩꮬꮭꮮꮰę®øę®¹ę®½ę®¾ęƃęƄęƉęƌęƖęƚęÆ”ęÆ£ęƦęƧęÆ®ęƱęÆ·ęƹęÆæę°‚ę°„ę°…ę°‰ę°ę°Žę°ę°’ę°™ę°Ÿę°¦ę°§ę°Øę°¬ę°®ę°³ę°µę°¶ę°ŗę°»ę°æę±Šę±‹ę±ę±ę±’ę±”ę±™ę±›ę±œę±«ę±­ę±Æ걓걶ę±øę±¹ę±»ę²…ę²†ę²‡ę²‰ę²”ę²•ę²—ę²˜ę²œę²Ÿę²°ę²²ę²“ę³‚ę³†ę³ę³ę³ę³‘ę³’ę³”ę³–"], - ["8fc7a1", "ę³šę³œę³ ę³§ę³©ę³«ę³¬ę³®ę³²ę³“ę“„ę“‡ę“Šę“Žę“ę“‘ę““ę“šę“¦ę“§ę“Ø걧ꓮę“Æę“±ę“¹ę“¼ę“æęµ—ęµžęµŸęµ”ęµ„ęµ§ęµÆęµ°ęµ¼ę¶‚ę¶‡ę¶‘ę¶’ę¶”ę¶–ę¶—ę¶˜ę¶Ŗę¶¬ę¶“ę¶·ę¶¹ę¶½ę¶æę·„ę·ˆę·Šę·Žę·ę·–ę·›ę·ę·Ÿę· ę·¢ę·„ę·©ę·Æę·°ę·“ę·¶ę·¼ęø€ęø„ęøžęø¢ęø§ęø²ęø¶ęø¹ęø»ęø¼ę¹„ę¹…ę¹ˆę¹‰ę¹‹ę¹ę¹‘ę¹’ę¹“ę¹”ę¹—ę¹œę¹ę¹ž"], - ["8fc8a1", "ę¹¢ę¹£ę¹Øę¹³ę¹»ę¹½ęŗęŗ“ęŗ™ęŗ ęŗ§ęŗ­ęŗ®ęŗ±ęŗ³ęŗ»ęŗæę»€ę»ę»ƒę»‡ę»ˆę»Šę»ę»Žę»ę»«ę»­ę»®ę»¹ę»»ę»½ę¼„ę¼ˆę¼Šę¼Œę¼ę¼–ę¼˜ę¼šę¼›ę¼¦ę¼©ę¼Ŗę¼Æę¼°ę¼³ę¼¶ę¼»ę¼¼ę¼­ę½ę½‘ę½’ę½“ę½—ę½™ę½šę½ę½žę½”ę½¢ę½Øę½¬ę½½ę½¾ę¾ƒę¾‡ę¾ˆę¾‹ę¾Œę¾ę¾ę¾’ę¾“ę¾”ę¾–ę¾šę¾Ÿę¾ ę¾„ę¾¦ę¾§ę¾Øę¾®ę¾Æę¾°ę¾µę¾¶ę¾¼ęæ…ęæ‡ęæˆęæŠ"], - ["8fc9a1", "ęæšęæžęæØęæ©ęæ°ęæµęæ¹ęæ¼ęæ½ē€€ē€…ē€†ē€‡ē€ē€—ē€ ē€£ē€Æē€“ē€·ē€¹ē€¼ēƒē„ēˆē‰ēŠē‹ē”ē•ēēžēŽē¤ē„ē¬ē®ēµē¶ē¾ē‚ē‚…ē‚†ē‚”", 4, "ē‚›ē‚¤ē‚«ē‚°ē‚±ē‚“ē‚·ēƒŠēƒ‘ēƒ“ēƒ”ēƒ•ēƒ–ēƒ˜ēƒœēƒ¤ēƒŗē„ƒ", 4, "ē„‹ē„Œē„ē„žē„ ē„«ē„­ē„Æē„°ē„±ē„øē…ē……ē…†ē…‡ē…Šē…‹ē…ē…’ē…—ē…šē…œē…žē… "], - ["8fcaa1", "ē…Øē…¹ē†€ē†…ē†‡ē†Œē†’ē†šē†›ē† ē†¢ē†Æē†°ē†²ē†³ē†ŗē†æē‡€ē‡ē‡„ē‡‹ē‡Œē‡“ē‡–ē‡™ē‡šē‡œē‡øē‡¾ēˆ€ēˆ‡ēˆˆēˆ‰ēˆ“ēˆ—ēˆšēˆēˆŸēˆ¤ēˆ«ēˆÆēˆ“ēˆøēˆ¹ē‰ē‰‚ē‰ƒē‰…ē‰Žē‰ē‰ē‰“ē‰•ē‰–ē‰šē‰œē‰žē‰ ē‰£ē‰Øē‰«ē‰®ē‰Æē‰±ē‰·ē‰øē‰»ē‰¼ē‰æēŠ„ēŠ‰ēŠēŠŽēŠ“ēŠ›ēŠØēŠ­ēŠ®ēŠ±ēŠ“ēŠ¾ē‹ē‹‡ē‹‰ē‹Œē‹•ē‹–ē‹˜ē‹Ÿē‹„ē‹³ē‹“ē‹ŗē‹»"], - ["8fcba1", "ē‹¾ēŒ‚ēŒ„ēŒ…ēŒ‡ēŒ‹ēŒēŒ’ēŒ“ēŒ˜ēŒ™ēŒžēŒ¢ēŒ¤ēŒ§ēŒØēŒ¬ēŒ±ēŒ²ēŒµēŒŗēŒ»ēŒ½ēƒēēē’ē–ē˜ēēžēŸē ē¦ē§ē©ē«ē¬ē®ēÆē±ē·ē¹ē¼ēŽ€ēŽēŽƒēŽ…ēŽ†ēŽŽēŽēŽ“ēŽ•ēŽ—ēŽ˜ēŽœēŽžēŽŸēŽ ēŽ¢ēŽ„ēŽ¦ēŽŖēŽ«ēŽ­ēŽµēŽ·ēŽ¹ēŽ¼ēŽ½ēŽæē…ē†ē‰ē‹ēŒēē’ē“ē–ē™ēē”ē£ē¦ē§ē©ē“ēµē·ē¹ēŗē»ē½"], - ["8fcca1", "ēæē€ēē„ē‡ēŠē‘ēšē›ē¤ē¦ēØ", 9, "ē¹ē‘€ē‘ƒē‘„ē‘†ē‘‡ē‘‹ē‘ē‘‘ē‘’ē‘—ē‘ē‘¢ē‘¦ē‘§ē‘Øē‘«ē‘­ē‘®ē‘±ē‘²ē’€ē’ē’…ē’†ē’‡ē’‰ē’ē’ē’‘ē’’ē’˜ē’™ē’šē’œē’Ÿē’ ē’”ē’£ē’¦ē’Øē’©ē’Ŗē’«ē’®ē’Æē’±ē’²ē’µē’¹ē’»ē’æē“ˆē“‰ē“Œē“ē““ē“˜ē“šē“›ē“žē“Ÿē“¤ē“Øē“Ŗē“«ē“Æē““ē“ŗē“»ē“¼ē“æē”†"], - ["8fcda1", "ē”’ē”–ē”—ē” ē””ē”¤ē”§ē”©ē”Ŗē”Æē”¶ē”¹ē”½ē”¾ē”æē•€ē•ƒē•‡ē•ˆē•Žē•ē•’ē•—ē•žē•Ÿē•”ē•Æē•±ē•¹", 5, "ē–ē–…ē–ē–’ē–“ē–•ē–™ē–œē–¢ē–¤ē–“ē–ŗē–æē—€ē—ē—„ē—†ē—Œē—Žē—ē——ē—œē—Ÿē— ē—”ē—¤ē—§ē—¬ē—®ē—Æē—±ē—¹ē˜€ē˜‚ē˜ƒē˜„ē˜‡ē˜ˆē˜Šē˜Œē˜ē˜’ē˜“ē˜•ē˜–ē˜™ē˜›ē˜œē˜ē˜žē˜£ē˜„ē˜¦ē˜©ē˜­ē˜²ē˜³ē˜µē˜øē˜¹"], - ["8fcea1", "ē˜ŗē˜¼ē™Šē™€ē™ē™ƒē™„ē™…ē™‰ē™‹ē™•ē™™ē™Ÿē™¤ē™„ē™­ē™®ē™Æē™±ē™“ēšēš…ēšŒēšēš•ēš›ēšœēšēšŸēš ēš¢", 6, "ēšŖēš­ēš½ē›ē›…ē›‰ē›‹ē›Œē›Žē›”ē›™ē› ē›¦ē›Øē›¬ē›°ē›±ē›¶ē›¹ē›¼ēœ€ēœ†ēœŠēœŽēœ’ēœ”ēœ•ēœ—ēœ™ēœšēœœēœ¢ēœØēœ­ēœ®ēœÆēœ“ēœµēœ¶ēœ¹ēœ½ēœ¾ē‚ē…ē†ēŠēēŽēē’ē–ē—ēœēžēŸē ē¢"], - ["8fcfa1", "ē¤ē§ēŖē¬ē°ē²ē³ē“ēŗē½ēž€ēž„ēžŒēžēž”ēž•ēž–ēžšēžŸēž¢ēž§ēžŖēž®ēžÆēž±ēžµēž¾ēŸƒēŸ‰ēŸ‘ēŸ’ēŸ•ēŸ™ēŸžēŸŸēŸ ēŸ¤ēŸ¦ēŸŖēŸ¬ēŸ°ēŸ±ēŸ“ēŸøēŸ»ē …ē †ē ‰ē ē Žē ‘ē ē ”ē ¢ē £ē ­ē ®ē °ē µē ·ē”ƒē”„ē”‡ē”ˆē”Œē”Žē”’ē”œē”žē” ē””ē”£ē”¤ē”Øē”Ŗē”®ē”ŗē”¾ē¢Šē¢ē¢”ē¢˜ē¢”ē¢ē¢žē¢Ÿē¢¤ē¢Øē¢¬ē¢­ē¢°ē¢±ē¢²ē¢³"], - ["8fd0a1", "ē¢»ē¢½ē¢æē£‡ē£ˆē£‰ē£Œē£Žē£’ē£“ē£•ē£–ē£¤ē£›ē£Ÿē£ ē£”ē£¦ē£Ŗē£²ē£³ē¤€ē£¶ē£·ē£ŗē£»ē£æē¤†ē¤Œē¤ē¤šē¤œē¤žē¤Ÿē¤ ē¤„ē¤§ē¤©ē¤­ē¤±ē¤“ē¤µē¤»ē¤½ē¤æē„„ē„…ē„†ē„Šē„‹ē„ē„‘ē„”ē„˜ē„›ē„œē„§ē„©ē„«ē„²ē„¹ē„»ē„¼ē„¾ē¦‹ē¦Œē¦‘ē¦“ē¦”ē¦•ē¦–ē¦˜ē¦›ē¦œē¦”ē¦Øē¦©ē¦«ē¦Æē¦±ē¦“ē¦øē¦»ē§‚ē§„ē§‡ē§ˆē§Šē§ē§”ē§–ē§šē§ē§ž"], - ["8fd1a1", "ē§ ē§¢ē§„ē§Ŗē§«ē§­ē§±ē§øē§¼ē؂ē؃ē؇ē؉ē؊ē،ēؑēؕē؛ē؞ēØ”ēاēØ«ēØ­ēØÆēØ°ēØ“ēصēØøēعēØŗē©„ē©…ē©‡ē©ˆē©Œē©•ē©–ē©™ē©œē©ē©Ÿē© ē©„ē©§ē©Ŗē©­ē©µē©øē©¾ēŖ€ēŖ‚ēŖ…ēŖ†ēŖŠēŖ‹ēŖēŖ‘ēŖ”ēŖžēŖ ēŖ£ēŖ¬ēŖ³ēŖµēŖ¹ēŖ»ēŖ¼ē«†ē«‰ē«Œē«Žē«‘ē«›ē«Øē«©ē««ē«¬ē«±ē«“ē«»ē«½ē«¾ē¬‡ē¬”ē¬Ÿē¬£ē¬§ē¬©ē¬Ŗē¬«ē¬­ē¬®ē¬Æē¬°"], - ["8fd2a1", "ē¬±ē¬“ē¬½ē¬æē­€ē­ē­‡ē­Žē­•ē­ ē­¤ē­¦ē­©ē­Ŗē­­ē­Æē­²ē­³ē­·ē®„ē®‰ē®Žē®ē®‘ē®–ē®›ē®žē® ē®„ē®¬ē®Æē®°ē®²ē®µē®¶ē®ŗē®»ē®¼ē®½ēƂēƅēƈēƊēƔēƖēƗēƙēƚēƛēÆØēÆŖēƲēÆ“ēƵēÆøēƹēÆŗēƼēƾē°ē°‚ē°ƒē°„ē°†ē°‰ē°‹ē°Œē°Žē°ē°™ē°›ē° ē°„ē°¦ē°Øē°¬ē°±ē°³ē°“ē°¶ē°¹ē°ŗē±†ē±Šē±•ē±‘ē±’ē±“ē±™", 5], - ["8fd3a1", "ē±”ē±£ē±§ē±©ē±­ē±®ē±°ē±²ē±¹ē±¼ē±½ē²†ē²‡ē²ē²”ē²žē² ē²¦ē²°ē²¶ē²·ē²ŗē²»ē²¼ē²æē³„ē³‡ē³ˆē³‰ē³ē³ē³“ē³”ē³•ē³—ē³™ē³šē³ē³¦ē³©ē³«ē³µē“ƒē“‡ē“ˆē“‰ē“ē“‘ē“’ē““ē“–ē“ē“žē“£ē“¦ē“Ŗē“­ē“±ē“¼ē“½ē“¾ēµ€ēµēµ‡ēµˆēµēµ‘ēµ“ēµ—ēµ™ēµšēµœēµēµ„ēµ§ēµŖēµ°ēµøēµŗēµ»ēµæē¶ē¶‚ē¶ƒē¶…ē¶†ē¶ˆē¶‹ē¶Œē¶ē¶‘ē¶–ē¶—ē¶"], - ["8fd4a1", "ē¶žē¶¦ē¶§ē¶Ŗē¶³ē¶¶ē¶·ē¶¹ē·‚", 4, "ē·Œē·ē·Žē·—ē·™ēø€ē·¢ē·„ē·¦ē·Ŗē·«ē·­ē·±ē·µē·¶ē·¹ē·ŗēøˆēøēø‘ēø•ēø—ēøœēøēø ēø§ēøØēø¬ēø­ēøÆēø³ēø¶ēøæē¹„ē¹…ē¹‡ē¹Žē¹ē¹’ē¹˜ē¹Ÿē¹”ē¹¢ē¹„ē¹«ē¹®ē¹Æē¹³ē¹øē¹¾ēŗēŗ†ēŗ‡ēŗŠēŗēŗ‘ēŗ•ēŗ˜ēŗšēŗēŗžē¼¼ē¼»ē¼½ē¼¾ē¼æē½ƒē½„ē½‡ē½ē½’ē½“ē½›ē½œē½ē½”ē½£ē½¤ē½„ē½¦ē½­"], - ["8fd5a1", "ē½±ē½½ē½¾ē½æē¾€ē¾‹ē¾ē¾ē¾ē¾‘ē¾–ē¾—ē¾œē¾”ē¾¢ē¾¦ē¾Ŗē¾­ē¾“ē¾¼ē¾æēæ€ēæƒēæˆēæŽēæēæ›ēæŸēæ£ēæ„ēæØēæ¬ēæ®ēæÆēæ²ēæŗēæ½ēæ¾ēææč€‡č€ˆč€Šč€č€Žč€č€‘č€“č€”č€–č€č€žč€Ÿč€ č€¤č€¦č€¬č€®č€°č€“č€µč€·č€¹č€ŗč€¼č€¾č€č„č č¤č¦č­č±čµč‚č‚ˆč‚Žč‚œč‚žč‚¦č‚§č‚«č‚øč‚¹čƒˆčƒčƒčƒ’čƒ”čƒ•čƒ—čƒ˜čƒ čƒ­čƒ®"], - ["8fd6a1", "čƒ°čƒ²čƒ³čƒ¶čƒ¹čƒŗčƒ¾č„ƒč„‹č„–č„—č„˜č„œč„žč„ č„¤č„§č„¬č„°č„µč„ŗč„¼č……č…‡č…Šč…Œč…’č…—č… č…”č…§č…Øč…©č…­č…Æč…·č†č†č†„č†…č††č†‹č†Žč†–č†˜č†›č†žč†¢č†®č†²č†“č†»č‡‹č‡ƒč‡…č‡Šč‡Žč‡č‡•č‡—č‡›č‡č‡žč‡”č‡¤č‡«č‡¬č‡°č‡±č‡²č‡µč‡¶č‡øč‡¹č‡½č‡æčˆ€čˆƒčˆčˆ“čˆ”čˆ™čˆščˆčˆ”čˆ¢čˆØčˆ²čˆ“čˆŗ艃艄艅艆"], - ["8fd7a1", "č‰‹č‰Žč‰č‰‘č‰–č‰œč‰ č‰£č‰§č‰­č‰“č‰»č‰½č‰æčŠ€čŠčŠƒčŠ„čŠ‡čŠ‰čŠŠčŠŽčŠ‘čŠ”čŠ–čŠ˜čŠščŠ›čŠ čŠ”čŠ£čŠ¤čŠ§čŠØ芩čŠŖčŠ®čŠ°čŠ²čŠ“čŠ·čŠŗčŠ¼čŠ¾čŠæč‹†č‹č‹•č‹šč‹ č‹¢č‹¤č‹Øč‹Ŗ苭č‹Æč‹¶č‹·č‹½č‹¾čŒ€čŒčŒ‡čŒˆčŒŠčŒ‹č”čŒ›čŒčŒžčŒŸčŒ”čŒ¢čŒ¬čŒ­čŒ®čŒ°čŒ³čŒ·čŒŗčŒ¼čŒ½č‚čƒč„č‡ččŽč‘č•č–č—č°čø"], - ["8fd8a1", "č½čæčŽ€čŽ‚čŽ„čŽ†čŽčŽ’čŽ”čŽ•čŽ˜čŽ™čŽ›čŽœčŽčŽ¦čŽ§čŽ©čŽ¬čŽ¾čŽæ菀菇菉菏菐菑菔菝荓čØčŖč¶čøč¹č¼čč†čŠčč‘č•č™čŽ­čÆč¹č‘…č‘‡č‘ˆč‘Šč‘č‘č‘‘č‘’č‘–č‘˜č‘™č‘šč‘œč‘ č‘¤č‘„č‘§č‘Ŗč‘°č‘³č‘“č‘¶č‘øč‘¼č‘½č’č’…č’’č’“č’•č’žč’¦č’Øč’©č’Ŗč’Æ蒱蒓č’ŗč’½č’¾č“€č“‚č“‡č“ˆč“Œč“č““"], - ["8fd9a1", "蓜蓧č“Ŗč“Æč“°č“±č“²č“·č”²č“ŗč“»č“½č”‚č”ƒč”‡č”Œč”Žč”č”œč”žč”¢č”£č”¤č”„č”§č”Ŗ蔫č”Æč”³č”“č”¶č”æ蕆蕏", 4, "蕖蕙蕜", 6, "蕤蕫č•Æč•¹č•ŗč•»č•½č•æč–č–…č–†č–‰č–‹č–Œč–č–“č–˜č–č–Ÿč– č–¢č–„č–§č–“č–¶č–·č–øč–¼č–½č–¾č–æč—‚č—‡č—Šč—‹č—Žč–­č—˜č—šč—Ÿč— č—¦č—Øč—­č—³č—¶č—¼"], - ["8fdaa1", "č—æč˜€č˜„č˜…č˜č˜Žč˜č˜‘č˜’č˜˜č˜™č˜›č˜žč˜”č˜§č˜©č˜¶č˜øč˜ŗč˜¼č˜½č™€č™‚č™†č™’č™“č™–č™—č™˜č™™č™č™ ", 4, "虩虬č™Æ虵虶虷č™ŗčščš‘čš–čš˜čšščšœčš”čš¦čš§čšØčš­čš±čš³čš“čšµčš·čšøčš¹čšæč›€č›č›ƒč›…č›‘č›’č›•č›—č›šč›œč› č›£č›„č›§čšˆč›ŗč›¼č›½čœ„čœ…čœ‡čœ‹čœŽčœčœčœ“čœ”čœ™čœžčœŸčœ”čœ£"], - ["8fdba1", "čœØčœ®čœÆčœ±čœ²čœ¹čœŗčœ¼čœ½čœ¾č€čƒč…čč˜čč”č¤č„čÆč±č²č»čžƒ", 6, "čž‹čžŒčžčž“čž•čž—čž˜čž™čžžčž čž£čž§čž¬čž­čž®čž±čžµčž¾čžæčŸčŸˆčŸ‰čŸŠčŸŽčŸ•čŸ–čŸ™čŸščŸœčŸŸčŸ¢čŸ£čŸ¤čŸŖčŸ«čŸ­čŸ±čŸ³čŸøčŸŗčŸæ蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟č Øč ­č ®č °č ²č µ"], - ["8fdca1", "č ŗč ¼č”č”ƒč”…č”ˆč”‰č”Šč”‹č”Žč”‘č”•č”–č”˜č”šč”œč”Ÿč” č”¤č”©č”±č”¹č”»č¢€č¢˜č¢šč¢›č¢œč¢Ÿč¢ č¢Øč¢Ŗč¢ŗč¢½č¢¾č£€č£Š", 4, "č£‘č£’č£“č£›č£žč£§č£Æč£°č£±č£µč£·č¤č¤†č¤č¤Žč¤č¤•č¤–č¤˜č¤™č¤šč¤œč¤ č¤¦č¤§č¤Øč¤°č¤±č¤²č¤µč¤¹č¤ŗč¤¾č„€č„‚č„…č„†č„‰č„č„’č„—č„šč„›č„œč„”č„¢č„£č„«č„®č„°č„³č„µč„ŗ"], - ["8fdda1", "č„»č„¼č„½č¦‰č¦č¦č¦”č¦•č¦›č¦œč¦Ÿč¦ č¦„č¦°č¦“č¦µč¦¶č¦·č¦¼č§”", 4, "č§„č§©č§«č§­č§±č§³č§¶č§¹č§½č§æč؄č؅č؇č؏čؑčؒčؔčؕč؞čØ čØ¢čؤčئčØ«čجčØÆčصčØ·čؽčØ¾č©€č©ƒč©…č©‡č©‰č©č©Žč©“č©–č©—č©˜č©œč©č©”č©„č©§č©µč©¶č©·č©¹č©ŗč©»č©¾č©æčŖ€čŖƒčŖ†čŖ‹čŖčŖčŖ’čŖ–čŖ—čŖ™čŖŸčŖ§čŖ©čŖ®čŖÆčŖ³"], - ["8fdea1", "čŖ¶čŖ·čŖ»čŖ¾č«ƒč«†č«ˆč«‰č«Šč«‘č«“č«”č«•č«—č«č«Ÿč«¬č«°č«“č«µč«¶č«¼č«æč¬…č¬†č¬‹č¬‘č¬œč¬žč¬Ÿč¬Šč¬­č¬°č¬·č¬¼č­‚", 4, "č­ˆč­’č­“č­”č­™č­č­žč­£č­­č­¶č­øč­¹č­¼č­¾č®č®„č®…č®‹č®č®č®”č®•č®œč®žč®Ÿč°øč°¹č°½č°¾č±…č±‡č±‰č±‹č±č±‘č±“č±”č±—č±˜č±›č±č±™č±£č±¤č±¦č±Øč±©č±­č±³č±µč±¶č±»č±¾č²†"], - ["8fdfa1", "č²‡č²‹č²č²’č²“č²™č²›č²œč²¤č²¹č²ŗč³…č³†č³‰č³‹č³č³–č³•č³™č³č³”č³Øč³¬č³Æč³°č³²č³µč³·č³øč³¾č³æč“č“ƒč“‰č“’č“—č“›čµ„čµ©čµ¬čµ®čµæč¶‚č¶„č¶ˆč¶č¶č¶‘č¶•č¶žč¶Ÿč¶ č¶¦č¶«č¶¬č¶Æč¶²č¶µč¶·č¶¹č¶»č·€č·…č·†č·‡č·ˆč·Šč·Žč·‘č·”č·•č·—č·™č·¤č·„č·§č·¬č·°č¶¼č·±č·²č·“č·½čøčø„čø…čø†čø‹čø‘čø”čø–čø čø”čø¢"], - ["8fe0a1", "čø£čø¦čø§čø±čø³čø¶čø·čøøčø¹čø½č¹€č¹č¹‹č¹č¹Žč¹č¹”č¹›č¹œč¹č¹žč¹”č¹¢č¹©č¹¬č¹­č¹Æč¹°č¹±č¹¹č¹ŗč¹»čŗ‚čŗƒčŗ‰čŗčŗ’čŗ•čŗščŗ›čŗčŗžčŗ¢čŗ§čŗ©čŗ­čŗ®čŗ³čŗµčŗŗčŗ»č»€č»č»ƒč»„č»‡č»č»‘č»”č»œč»Øč»®č»°č»±č»·č»¹č»ŗč»­č¼€č¼‚č¼‡č¼ˆč¼č¼č¼–č¼—č¼˜č¼žč¼ č¼”č¼£č¼„č¼§č¼Øč¼¬č¼­č¼®č¼“č¼µč¼¶č¼·č¼ŗč½€č½"], - ["8fe1a1", "č½ƒč½‡č½č½‘", 4, "č½˜č½č½žč½„č¾č¾ č¾”č¾¤č¾„č¾¦č¾µč¾¶č¾øč¾¾čæ€čæčæ†čæŠčæ‹čæčæčæ’čæ“čæ•čæ čæ£čæ¤čæØčæ®čæ±čæµčæ¶čæ»čæ¾é€‚逄逈逌逘逛é€Ø逩é€Æé€Ŗ逬逭逳逓逷é€æ遃遄遌遛遝遢遦遧遬遰道遹邅邈邋邌邎邐邕邗邘邙邛邠邔邢還邰邲邳邓邶邽郌邾郃"], - ["8fe2a1", "郄郅郇郈郕郗郘郙郜郝郟郄郒郶郫éƒÆ郰郓郾éƒæ鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄄鄢鄣鄧鄩鄮é„Æ鄱鄓鄶鄷鄹é„ŗ鄼鄽酃酇酈酏酓酗酙酚酛酔酤酧酭酓酹é…ŗ酻醁醃醅醆醊醎醑醓醔醕醘醞醔醦é†Ø醬醭醮醰醱醲醳醶醻醼醽é†æ"], - ["8fe3a1", "釂釃釅釓釔釗釙釚釞釤釄釩é‡Ŗ釬", 5, "釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈄鈦éˆØ鈮éˆÆ鈰鈳鈵鈶éˆø鈹éˆŗ鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉔鉄鉧é‰Ø鉩鉮é‰Æ鉰鉵", 4, "鉻鉼鉽é‰æ銈銉銊銍銎銒銗"], - ["8fe4a1", "銙銟銠銤銄銧éŠØ銫éŠÆ銲銶éŠøéŠŗ銻銼銽éŠæ", 4, "鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋔鋣鋄鋧é‹Ø鋬鋮鋰鋹鋻é‹æ錀錂錈錍錑錔錕錜錝錞錟錔錤錄錧錩éŒŖ錳錓錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍄鍧鍩éŖ鍭éÆ鍰鍱鍳鍓鍶"], - ["8fe5a1", "éŗ鍽éæ鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎔鎣鎤鎦éŽØ鎫鎓鎵鎶éŽŗ鎩鏁鏄鏅鏆鏇鏉", 4, "鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷éøéŗ鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮éÆ鐱鐲鐳鐓鐻éæ鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑔鑣é‘Ø鑫鑭鑮é‘Æ鑱鑲钄钃é•ø镹"], - ["8fe6a1", "镾閄閈閌閍閎閝閞閟閔閦閩閫閬間閶é–ŗ閽é–æ闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阄阦阬阱阳阷é˜ø阹é˜ŗ阼阽陁陒陔陖陗陘陔陮陓陻陼陾é™æ隁隂隃隄隉隑隖隚隝隟隤隄隦隩隮éšÆ隳éšŗ雊雒嶲雘雚雝雞雟雩é›Æ雱é›ŗ霂"], - ["8fe7a1", "霃霅霉霚霛霝霔霢霣éœØ霱霳靁靃靊靎靏靕靗靘靚靛靣靧éŖ靮靳靶靷éø靻靽éæ鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶éžø鞹éžŗ鞼鞾éžæ韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韔韤éŸÆ韱韓韷éŸøéŸŗ頇頊頙頍頎頔頖頜頞頠頣頦"], - ["8fe8a1", "é «é ®é Æ頰頲頳頵頄頾锄锇锊锑锒锓锖锗错锚锢锣锄锦é”Ŗ锬颫颭颮颰颓颷é¢øé¢ŗ颻é¢æ飂飅飈飌飔飣飄飦飧é£Ŗ飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱", 4, "餹é¤ŗ餻餼鄀鄁鄆鄇鄈鄍鄎鄔鄘鄙鄛鄜鄞鄟鄠馛馝馟馦馰馱馲馵"], - ["8fe9a1", "馹é¦ŗ馽é¦æ駃駉駓駔駙駚駜駞駧é§Ŗ駫駬駰駓駵駹駽駾é؂é؃é؄é؋é،éؐéؑéؖé؞éØ éØ¢éØ£éؤéاéØ­éØ®éسéصéضéØø驇驁驄驊驋驌驎驑驔驖驝éŖŖéŖ¬éŖ®éŖÆéŖ²éŖ“éŖµéŖ¶éŖ¹éŖ»éŖ¾éŖæ髁髃髆髈髎髐髒髕髖髗髛髜髠髤髄髧髩髬髲髳髵髹é«ŗ髽é«æ", 4], - ["8feaa1", "鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬓鬵鬷鬹é¬ŗ鬽魈魋魌魕魖魗魛魞魔魣魄魦é­Øé­Ŗ", 4, "魳魵魷é­øé­¹é­æ鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷é®ø鮻鮼鮾é®æéƁéƇéƈéƎéƐéƗéƘéƝéƟéÆ„éƧéÆŖéÆ«éÆÆéƳéÆ·éÆø"], - ["8feba1", "éƹéÆŗéƽéÆæ鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦", 4, "鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩é±Ŗ鱜鱫é±Ø鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹铋铂铑铗铘铜铝铞é“Æ铰铲铳铓é“ŗ铼鵅铽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵄鵩éµŖ鵫鵰鵶鵷鵻"], - ["8feca1", "鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶔é¶Ŗ鶬鶮鶱鶵鶹鶼é¶æ鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷄鷧鷩鷫鷮鷰鷳鷓鷾éøŠéø‚éø‡éøŽéøéø‘éø’éø•éø–éø™éøœéøé¹ŗ鹻鹼éŗ€éŗ‚éŗƒéŗ„éŗ…éŗ‡éŗŽéŗéŗ–éŗ˜éŗ›éŗžéŗ¤éŗØéŗ¬éŗ®éŗÆéŗ°éŗ³éŗ“éŗµé»†é»ˆé»‹é»•é»Ÿé»¤é»§é»¬é»­é»®é»°é»±é»²é»µ"], - ["8feda1", "é»øé»æ鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦é¼Ŗ鼫é¼Æ鼱鼲鼓鼷鼹é¼ŗ鼼鼽é¼æ齁齃", 4, "齓齕齖齗齘齚齝齞é½Ø齩齭", 4, "齳齵é½ŗ齽龏龐龑龒龔龖龗龞龔龢龣龄"] - ]; -}); - -// node_modules/iconv-lite/encodings/tables/cp936.json -var require_cp936 = __commonJS((exports, module) => { - module.exports = [ - ["0", "\x00", 127, "ā‚¬"], - ["8140", "äø‚äø„äø…äø†äøäø’äø—äøŸäø äø”äø£äø¦äø©äø®äøÆäø±äø³äøµäø·äø¼ä¹€ä¹ä¹‚乄乆乊乑乕乗乚乛乢乣乤乄乧ä¹Øä¹Ŗ", 5, "乲乓", 9, "ä¹æ", 6, "äŗ‡äŗŠ"], - ["8180", "äŗäŗ–äŗ—äŗ™äŗœäŗäŗžäŗ£äŗŖäŗÆäŗ°äŗ±äŗ“äŗ¶äŗ·äŗøäŗ¹äŗ¼äŗ½äŗ¾ä»ˆä»Œä»ä»ä»’仚仛仜仠仢仦仧仩仭仮ä»Æ仱仓ä»ø仹ä»ŗ仼仾伀伂", 6, "伋伌伒", 4, "伜伝伔伣ä¼Ø伩伬伭伮伱伳伵伷伹伻伾", 4, "佄佅佇", 5, "佒佔佖佔佢佦ä½Øä½Ŗ佫佭佮佱佲併佷ä½øä½¹ä½ŗ佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟侔侢"], - ["8240", "侤侫侭侰", 4, "侶", 8, "äæ€äæäæ‚äæ†äæ‡äæˆäæ‰äæ‹äæŒäæäæ’", 4, "äæ™äæ›äæ äæ¢äæ¤äæ„äæ§äæ«äæ¬äæ°äæ²äæ“äæµäæ¶äæ·äæ¹äæ»äæ¼äæ½äææ", 11], - ["8280", "個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫å€Æ", 10, "倻倽å€æ偀偁偂偄偅偆偉偊偋偍偐", 4, "偖偗偘偙偛偝", 7, "偦", 5, "偭", 8, "åø偹åŗ偼偽傁傂傃傄傆傇傉傊傋傌傎", 20, "傤傦å‚Ŗ傫傭", 4, "傳", 6, "傼"], - ["8340", "傽", 17, "僐", 5, "僗僘僙僛", 10, "åƒØ僩åƒŖ僫åƒÆ僰僱僲僓僶", 4, "僼", 9, "儈"], - ["8380", "儉儊儌", 5, "儓", 13, "儢", 28, "兂兇兊兌兎兏児兒兓兗兘兙兛兝", 4, "兣兤兦內兩å…Ŗå…Æ兲å…ŗ兾å…æ冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冔冣冦", 4, "冭冮冓å†ø冹å†ŗ冾å†æ凁凂凃凅凈凊凍凎凐凒", 5], - ["8440", "凘凙凚凜凞凟凢凣凄", 5, "凬凮凱凲凓凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刔刢刣刄刦刧åˆŖ刬åˆÆ刱刲刓刵刼刾剄", 5, "剋剎剏剒剓剕剗剘"], - ["8480", "剙剚剛剝剟剠剢剣剤剦å‰Ø剫剬剭剮剰剱剳", 9, "剾劀劃", 4, "劉", 6, "劑劒劔", 6, "劜劤劄劦劧劮åŠÆ劰劓", 9, "勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務", 5, "勠勔勢勣勄", 10, "勱", 7, "勻勼勽匁匂匃匄匇匉匊匋匌匎"], - ["8540", "匑匒匓匔匘匛匜匞匟匢匤匄匧åŒØ匩匫匬匭åŒÆ", 9, "匼匽區卂卄卆卋卌卍卐協単卙卛卝卄åØåŖ卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"], - ["8580", "厐", 4, "厖厗厙厛厜厞厠厔厤厧åŽŖ厫厬厭åŽÆ", 6, "厷åŽø厹åŽŗ厼厽厾叀參", 4, "収叏叐叒叓叕叚叜叝叞叔叢叧叓åŗ叾åæ吀吂吅吇吋吔吘吙吚吜吢吤各åŖ吰吳吶吷åŗ吽åæ呁呂呄呅呇呉呌呍呎呏呑呚呝", 4, "呣呄呧呩", 7, "呓呹å‘ŗ呾å‘æ咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咔"], - ["8640", "咢咄咮咰咲咵咶咷咹å’ŗ咼咾哃哅哊哋哖哘哛哠", 4, "哫哬å“Æ哰哱哓", 5, "哻哾唀唂唃唄唅唈唊", 4, "唒唓唕", 5, "唜唝唞唟唔唄唦"], - ["8680", "å”Ø唩唫唭唲唓唵唶å”ø唹å”ŗ唻唽啀啂啅啇啈啋", 4, "啑啒啓啔啗", 4, "啝啞啟啠啢啣å•Ø啩啫å•Æ", 5, "啹å•ŗ啽å•æ喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠", 6, "å–Ø", 8, "喲喓営å–øå–ŗ喼å–æ", 4, "嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗", 4, "嗞嗠嗢嗧嗩嗭嗮嗰嗱嗓嗶å—ø", 4, "å—æ嘂嘃嘄嘅"], - ["8740", "嘆嘇嘊嘋嘍嘐", 7, "嘙嘚嘜嘝嘠嘔嘢嘄嘦å˜Ø嘩å˜Ŗ嘫嘮å˜Æ嘰嘳嘵嘷å˜øå˜ŗ嘼嘽嘾噀", 11, "噏", 4, "噕噖噚噛噝", 4], - ["8780", "噣噄噦噧噭噮å™Æ噰噲噳噓噵噷å™ø噹å™ŗ噽", 7, "嚇", 6, "嚐嚑嚒嚔", 14, "嚤", 10, "嚰", 6, "åšø嚹åšŗ嚻嚽", 12, "囋", 8, "囕囖囘囙囜団囄", 5, "囬囮å›Æ囲図囶囷å›ø囻囼圀圁圂圅圇國", 6], - ["8840", "園", 9, "圝圞圠圔圢圤圄圦圧圫圱圲圓", 4, "圼圽åœæ坁坃坄坅坆坈坉坋坒", 4, "坘坙坢坣坄坧坬坮坰坱坲坓坵åø坹åŗ坽坾åæ垀"], - ["8880", "垁垇垈垉垊垍", 4, "垔", 6, "垜垝垞垟垄åžØåžŖ垬åžÆ垰垱垳垵垶垷垹", 8, "埄", 6, "埌埍埐埑埓埖埗埛埜埞埔埢埣埄", 7, "埮埰埱埲埳埵埶執埻埼埾åŸæ堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堄", 4, "å «", 4, "報堲堳堓堶", 7], - ["8940", "å ¾", 5, "å”…", 6, "唎唏唐唒唓唕唖唗唙", 4, "唟", 5, "唦", 4, "å”­", 16, "å”æ墂墄墆墇墈墊墋墌"], - ["8980", "墍", 4, "墔", 4, "墛墜墝墠", 7, "å¢Ŗ", 17, "墽墾å¢æ壀壂壃壄壆", 10, "壒壓壔壖", 13, "壄", 5, "壭å£Æ壱売壓壵壷å£øå£ŗ", 7, "夃夅夆夈", 4, "夎夐夑夒夓夗夘夛夝夞夠夔夢夣夦å¤Ø夬夰夲夳夵夶夻"], - ["8a40", "夽夾å¤æ儀儃儅儆儊儌儍儐儒儓儙儛", 4, "儔儣儤儦", 12, "儵儷å„ŗ儻儼儾å„æ妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妔妢妦"], - ["8a80", "妧妬妭妰妱妳", 5, "å¦ŗ妼妽å¦æ", 6, "姇姈姉姌姍姎姏姕姖姙姛姞", 4, "姤姦姧姩å§Ŗ姫姭", 11, "å§ŗ姼姽姾å؀å؂å؊å؋å؍å؎å؏åؐåؒåؔåؕåؖåؗåؙåؚå؛å؝å؞åØ”åØ¢åؤåئåاåØØåØŖ", 6, "åسåصåØ·", 4, "åؽåؾåØæ婁", 4, "婇婈婋", 9, "婖婗婘婙婛", 5], - ["8b40", "婔婣婤婄婦å©Øå©©å©«", 8, "å©ø婹婻婼婽婾åŖ€", 17, "åŖ“", 6, "åŖœ", 13, "åŖ«åŖ¬"], - ["8b80", "åŖ­", 4, "åŖ“åŖ¶åŖ·åŖ¹", 4, "åŖæ嫀嫃", 5, "嫊嫋嫍", 4, "嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫄嫧å«Øå«Ŗ嫬", 4, "嫲", 22, "嬊", 11, "嬘", 25, "嬳嬵嬶å¬ø", 7, "孁", 6], - ["8c40", "孈", 7, "孒孖孞孠孔孧å­Øå­«å­­å­®å­Æ孲孓孶孷å­ø孹孻孼孾å­æ宂宆宊宍宎宐宑宒宔宖実宧å®Ø宩宬宭宮å®Æ宱宲宷å®ŗ宻宼åƀåƁåƃåƈåƉåƊåƋåƍåƎåƏ"], - ["8c80", "åƑåƔ", 8, "åÆ åÆ¢åÆ£åƦåƧåÆ©", 4, "åÆÆåƱ", 6, "åƽåƾ尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尔尣尦å°Øå°©å°Ŗå°«å°­å°®å°Æ尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧", 6, "å±°å±²", 6, "屻屼屽屾岀岃", 4, "岉岊岋岎岏岒岓岕岝", 4, "岤", 4], - ["8d40", "å²Ŗå²®å²Æ岰岲岓岶岹å²ŗ岻岼岾峀峂峃峅", 5, "峌", 5, "峓", 5, "峚", 6, "峢峣峧峩峫峬峮å³Æå³±", 9, "å³¼", 4], - ["8d80", "品哄哅哈", 5, "哏", 4, "哕哗哘哙哚哜哝哟", 4, "å“„å“Øå“Ŗ哫哬å“Æ", 4, "哵", 7, "å“æ", 7, "嵈嵉嵍", 10, "嵙嵚嵜嵞", 10, "åµŖ嵭嵮嵰嵱嵲嵳嵵", 12, "嶃", 21, "嶚嶛嶜嶞嶟嶠"], - ["8e40", "嶔", 21, "å¶ø", 12, "巆", 6, "巎", 12, "巜巟巠巣巤å·Ŗ巬巭"], - ["8e80", "巰巵巶å·ø", 4, "å·æåø€åø„åø‡åø‰åøŠåø‹åøåøŽåø’åø“åø—åøž", 7, "åøØ", 4, "åøÆåø°åø²", 4, "åø¹åøŗåø¾åøæ幀幁幃幆", 5, "幍", 6, "幖", 4, "幜幝幟幠幣", 14, "幵幷幹幾åŗåŗ‚åŗƒåŗ…åŗˆåŗ‰åŗŒåŗåŗŽåŗ’åŗ˜åŗ›åŗåŗ”åŗ¢åŗ£åŗ¤åŗØ", 4, "åŗ®", 4, "åŗ“åŗŗåŗ»åŗ¼åŗ½åŗæ", 6], - ["8f40", "廆廇廈廋", 5, "廔廕廗廘廙廚廜", 11, "廩廫", 8, "廵å»ø廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弔弢弣弤"], - ["8f80", "å¼Ø弫弬弮弰弲", 6, "弻弽弾å¼æ彁", 14, "彑彔彙彚彛彜彞彟彠彣彄彧å½Ø彫彮å½Æ彲当彵彶å½øå½ŗ彽彾å½æ徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢", 5, "復徫徬å¾Æ", 5, "徶å¾øå¾¹å¾ŗ徻徾", 4, "åæ‡åæˆåæŠåæ‹åæŽåæ“åæ”åæ•åæšåæ›åæœåæžåæŸåæ¢åæ£åæ„åæ¦åæØåæ©åæ¬åæÆåæ°åæ²åæ³åæ“åæ¶åæ·åæ¹åæŗåæ¼ę€‡"], - ["9040", "ę€ˆę€‰ę€‹ę€Œę€ę€‘ę€“ę€—ę€˜ę€šę€žę€Ÿę€¢ę€£ę€¤ę€¬ę€­ę€®ę€°", 4, "ꀶ", 4, "ę€½ę€¾ę€ę„", 6, "ęŒęŽęę‘ę“ę”ę–ę—ę˜ę›ęœęžęŸę ę”ę„ę¦ę®ę±ę²ę“ęµę·ę¾ę‚€"], - ["9080", "ę‚ę‚‚ę‚…ę‚†ę‚‡ę‚ˆę‚Šę‚‹ę‚Žę‚ę‚ę‚‘ę‚“ę‚•ę‚—ę‚˜ę‚™ę‚œę‚žę‚”ę‚¢ę‚¤ę‚„ę‚§ę‚©ę‚Ŗę‚®ę‚°ę‚³ę‚µę‚¶ę‚·ę‚¹ę‚ŗę‚½", 7, "ꃇꃈꃉꃌ", 4, "ęƒ’ęƒ“ęƒ”ęƒ–ęƒ—ęƒ™ęƒ›ęƒžęƒ”", 4, "ęƒŖęƒ±ęƒ²ęƒµęƒ·ęƒøꃻ", 4, "ꄂꄃꄄꄅꄇꄊꄋꄌꄐ", 4, "ę„–ę„—ę„˜ę„™ę„›ę„œę„ę„žę„”ę„¢ę„„ę„Øę„©ę„Ŗꄬ", 18, "ꅀ", 6], - ["9140", "ꅇꅉꅋꅍꅏꅐꅒꅓꅔꅖ", 6, "ę…žę…Ÿę… ę…”ę…£ę…¤ę…„ę…¦ę…©", 6, "ę…±ę…²ę…³ę…“ę…¶ę…ø", 18, "ꆌꆍꆏ", 4, "ꆕ"], - ["9180", "ꆖ", 6, "ꆞ", 8, "ę†Ŗꆫꆭ", 9, "ę†ø", 5, "ę†æꇀꇁꇃ", 4, "ꇉꇌ", 4, "ꇓꇕ", 16, "ꇧ", 13, "ꇶ", 8, "ꈀ", 5, "ęˆ‡ęˆ‰ęˆ“ęˆ”ęˆ™ęˆœęˆęˆžęˆ ęˆ£ęˆ¦ęˆ§ęˆØꈩꈫꈭęˆÆęˆ°ęˆ±ęˆ²ęˆµęˆ¶ęˆø", 4, "ꉂꉄꉅꉆꉊ"], - ["9240", "ꉏꉐꉕꉖꉗꉙꉚꉜ", 6, "ꉤꉄę‰Øę‰±ę‰²ę‰“ę‰µę‰·ę‰øę‰ŗę‰»ę‰½ęŠęŠ‚ęŠƒęŠ…ęŠ†ęŠ‡ęŠˆęŠ‹", 5, "ęŠ”ęŠ™ęŠœęŠęŠžęŠ£ęŠ¦ęŠ§ęŠ©ęŠŖꊭꊮęŠÆęŠ°ęŠ²ęŠ³ęŠ“ęŠ¶ęŠ·ęŠøęŠŗęŠ¾ę‹€ę‹"], - ["9280", "ę‹ƒę‹‹ę‹ę‹‘ę‹•ę‹ę‹žę‹ ę‹”ę‹¤ę‹Ŗę‹«ę‹°ę‹²ę‹µę‹øę‹¹ę‹ŗę‹»ęŒ€ęŒƒęŒ„ęŒ…ęŒ†ęŒŠęŒ‹ęŒŒęŒęŒęŒęŒ’ęŒ“ęŒ”ęŒ•ęŒ—ęŒ˜ęŒ™ęŒœęŒ¦ęŒ§ęŒ©ęŒ¬ęŒ­ęŒ®ęŒ°ęŒ±ęŒ³", 5, "ęŒ»ęŒ¼ęŒ¾ęŒæꍀꍁꍄꍇꍈꍊꍑꍒꍓꍔꍖ", 7, "ę ę¤ę„ę¦ęØęŖę«ę¬ęÆę°ę²ę³ę“ęµęøę¹ę¼ę½ę¾ęæꎁꎃꎄꎅꎆꎋꎍꎑꎓꎔꎕꎗꎙ", 6, "ꎔꎤꎦꎫęŽÆęŽ±ęŽ²ęŽµęŽ¶ęŽ¹ęŽ»ęŽ½ęŽæꏀ"], - ["9340", "ꏁꏂꏃꏅꏇꏈꏊꏋꏌꏑꏓꏔꏕꏗ", 6, "ęŸę¢ę¤", 4, "ę«ę¬ę®ęÆę°ę±ę³ęµę·ę¹ęŗę»ę¼ę¾ęƒę„ę†", 4, "ꐍꐎꐑꐒꐕ", 5, "ęęŸę¢ę£ę¤"], - ["9380", "ꐄꐧęØꐩꐫꐮ", 5, "ꐵ", 4, "ę»ę¼ę¾ę‘€ę‘‚ę‘ƒę‘‰ę‘‹", 6, "ꑓꑕꑖꑗꑙ", 4, "ꑟ", 7, "ę‘Øę‘Ŗꑫꑬꑮ", 9, "ę‘»", 6, "ꒃꒆꒈ", 8, "꒓꒔꒗꒘꒚꒛꒜꒝꒟", 4, "ꒄ꒦꒧ę’Øę’Ŗę’«ę’Æę’±ę’²ę’³ę’“ę’¶ę’¹ę’»ę’½ę’¾ę’æ꓁꓃꓄꓆", 6, "꓏ꓑꓓꓔꓕꓖꓙꓚ"], - ["9440", "ę“›ę“œę“ę“Ÿę“ ę“”ę“£ę“„ę“§", 24, "ꔁ", 7, "ꔊ", 7, "ꔓ", 4, "ꔙ", 8], - ["9480", "ę”¢ę”£ę”¤ę”¦", 4, "ę”¬ę”­ę”°ę”±ę”²ę”³ę”·ę”ŗę”¼ę”½ę•€", 4, "ę•†ę•‡ę•Šę•‹ę•ę•Žę•ę•’ę•“ę•”ę•—ę•˜ę•šę•œę•Ÿę• ę•”ę•¤ę•„ę•§ę•Øę•©ę•Ŗę•­ę•®ę•Æę•±ę•³ę•µę•¶ę•ø", 14, "ę–ˆę–‰ę–Šę–ę–Žę–ę–’ę–”ę–•ę––ę–˜ę–šę–ę–žę– ę–¢ę–£ę–¦ę–Øę–Ŗꖬꖮꖱ", 7, "ę–ŗę–»ę–¾ę–æꗀꗂꗇꗈꗉꗊꗍꗐꗑꗓꗔꗕꗘ", 7, "ę—”ę—£ę—¤ę—Ŗę—«"], - ["9540", "ę—²ę—³ę—“ę—µę—øę—¹ę—»", 4, "ę˜ę˜„ę˜…ę˜‡ę˜ˆę˜‰ę˜‹ę˜ę˜ę˜‘ę˜’ę˜–ę˜—ę˜˜ę˜šę˜›ę˜œę˜žę˜”ę˜¢ę˜£ę˜¤ę˜¦ę˜©ę˜Ŗę˜«ę˜¬ę˜®ę˜°ę˜²ę˜³ę˜·", 4, "ę˜½ę˜æꙀꙂꙄ", 6, "ꙍꙎꙐꙑꙘ"], - ["9580", "ę™™ę™›ę™œę™ę™žę™ ę™¢ę™£ę™„ę™§ę™©", 4, "ę™±ę™²ę™³ę™µę™øę™¹ę™»ę™¼ę™½ę™æꚀꚁꚃꚅꚆꚈꚉꚊꚋꚍꚎꚏꚐꚒꚓꚔꚕꚘ", 4, "ꚞ", 8, "ęš©", 4, "ęšÆ", 4, "ꚵꚶꚷęšøęšŗęš»ęš¼ęš½ęšæ", 25, "ꛚꛞ", 7, "ꛧę›Øę›Ŗ", 5, "꛱꛵꛶ę›øę›ŗę›»ę›½ęœęœ‚ęœƒ"], - ["9640", "꜄꜅꜆꜇꜌꜎꜏꜑꜒꜓꜖ꜘꜙꜚꜜꜞ꜠", 5, "ęœ§ęœ©ęœ®ęœ°ęœ²ęœ³ęœ¶ęœ·ęœøęœ¹ęœ»ęœ¼ęœ¾ęœæꝁꝄꝅꝇꝊꝋꝍꝒꝔꝕꝗ", 4, "ęę¢ę£ę¤ę¦ę§ę«ę¬ę®ę±ę“ę¶"], - ["9680", "ęøę¹ęŗę»ę½ęž€ęž‚ęžƒęž…ęž†ęžˆęžŠęžŒęžęžŽęžęž‘ęž’ęž“ęž”ęž–ęž™ęž›ęžŸęž ęž”ęž¤ęž¦ęž©ęž¬ęž®ęž±ęž²ęž“ęž¹", 7, "ꟂꟅ", 9, "ęŸ•ęŸ–ęŸ—ęŸ›ęŸŸęŸ”ęŸ£ęŸ¤ęŸ¦ęŸ§ęŸØęŸŖęŸ«ęŸ­ęŸ®ęŸ²ęŸµ", 7, "ęŸ¾ę ę ‚ę ƒę „ę †ę ę ę ’ę ”ę •ę ˜", 4, "ę žę Ÿę  ę ¢", 6, "ę «", 6, "ꠓ꠵꠶ę ŗę »ę æę”‡ę”‹ę”ę”ę”’ę”–", 5], - ["9740", "ę”œę”ę”žę”Ÿę”Ŗꔬ", 7, "ꔵę”ø", 8, "ę¢‚ę¢„ę¢‡", 7, "ę¢ę¢‘ę¢’ę¢”ę¢•ę¢–ę¢˜", 9, "ę¢£ę¢¤ę¢„ę¢©ę¢Ŗę¢«ę¢¬ę¢®ę¢±ę¢²ę¢“ę¢¶ę¢·ę¢ø"], - ["9780", "ę¢¹", 6, "ę£ę£ƒ", 5, "ę£Šę£Œę£Žę£ę£ę£‘ę£“ę£”ę£–ę£—ę£™ę£›", 4, "ę£”ę£¢ę£¤", 9, "ę£Æę£²ę£³ę£“ę£¶ę£·ę£øę£»ę£½ę£¾ę£æ꤀꤂꤃꤄꤆", 4, "ꤌꤏꤑꤓ", 11, "ę¤”ę¤¢ę¤£ę¤„", 7, "꤮ę¤Æę¤±ę¤²ę¤³ę¤µę¤¶ę¤·ę¤øę¤ŗę¤»ę¤¼ę¤¾ę„€ę„ę„ƒ", 16, "ę„•ę„–ę„˜ę„™ę„›ę„œę„Ÿ"], - ["9840", "ę„”ę„¢ę„¤ę„„ę„§ę„Øę„©ę„Ŗꄬꄭę„Æę„°ę„²", 4, "ę„ŗę„»ę„½ę„¾ę„æę¦ę¦ƒę¦…ę¦Šę¦‹ę¦Œę¦Ž", 5, "ę¦–ę¦—ę¦™ę¦šę¦", 9, "ꦩę¦Ŗꦬꦮę¦Æę¦°ę¦²ę¦³ę¦µę¦¶ę¦øę¦¹ę¦ŗę¦¼ę¦½"], - ["9880", "ę¦¾ę¦æ꧀꧂", 7, "꧋꧍ꧏ꧑꧒꧓꧕", 5, "ę§œę§ę§žę§”", 11, "ꧮę§Æę§°ę§±ę§³", 9, "ę§¾ę؀", 9, "ę؋", 11, "ęؙ", 5, "ęØ ęØ¢", 5, "ęØ©ęØ«ęجęØ­ęØ®ęØ°ęزęسęØ“ęض", 6, "ęØæ", 4, "ę©…ę©†ę©ˆ", 7, "ę©‘", 6, "ę©š"], - ["9940", "ę©œ", 4, "ę©¢ę©£ę©¤ę©¦", 10, "ę©²", 6, "ę©ŗę©»ę©½ę©¾ę©æęŖęŖ‚ęŖƒęŖ…", 8, "ęŖęŖ’", 4, "ęŖ˜", 7, "ęŖ”", 5], - ["9980", "ęŖ§ęŖØęŖŖęŖ­", 114, "ꬄꬦę¬Ø", 6], - ["9a40", "ę¬Æę¬°ę¬±ę¬³ę¬“ę¬µę¬¶ę¬øę¬»ę¬¼ę¬½ę¬æꭀꭁꭂꭄꭅꭈꭊꭋꭍ", 11, "ꭚ", 7, "ę­Øę­©ę­«", 13, "ę­ŗę­½ę­¾ę­æę®€ę®…ę®ˆ"], - ["9a80", "ę®Œę®Žę®ę®ę®‘ę®”ę®•ę®—ę®˜ę®™ę®œ", 4, "ę®¢", 7, "ꮫ", 7, "ꮶę®ø", 6, "ęƀęƃęƄęƆ", 4, "ęƌęƎęƐęƑęƘęƚęƜ", 4, "ęÆ¢", 7, "ęƬęÆ­ęÆ®ęÆ°ęƱęƲęÆ“ęƶęÆ·ęÆøęÆŗęÆ»ęƼęƾ", 6, "갈", 4, "ę°Žę°’ę°—ę°œę°ę°žę° ę°£ę°„ę°«ę°¬ę°­ę°±ę°³ę°¶ę°·ę°¹ę°ŗę°»ę°¼ę°¾ę°æę±ƒę±„ę±…ę±ˆę±‹", 4, "ę±‘ę±’ę±“ę±–ę±˜"], - ["9b40", "ę±™ę±šę±¢ę±£ę±„ę±¦ę±§ę±«", 4, "ę±±ę±³ę±µę±·ę±øę±ŗę±»ę±¼ę±æę²€ę²„ę²‡ę²Šę²‹ę²ę²Žę²‘ę²’ę²•ę²–ę²—ę²˜ę²šę²œę²ę²žę² ę²¢ę²Øę²¬ę²Æę²°ę²“ę²µę²¶ę²·ę²ŗę³€ę³ę³‚ę³ƒę³†ę³‡ę³ˆę³‹ę³ę³Žę³ę³‘ę³’ę³˜"], - ["9b80", "ę³™ę³šę³œę³ę³Ÿę³¤ę³¦ę³§ę³©ę³¬ę³­ę³²ę³“ę³¹ę³æę“€ę“‚ę“ƒę“…ę“†ę“ˆę“‰ę“Šę“ę“ę“ę“‘ę““ę“”ę“•ę“–ę“˜ę“œę“ę“Ÿ", 5, "ꓦę“Øꓩꓬꓭę“Æꓰꓓꓶꓷę“øę“ŗę“æęµ€ęµ‚ęµ„ęµ‰ęµŒęµęµ•ęµ–ęµ—ęµ˜ęµ›ęµęµŸęµ”ęµ¢ęµ¤ęµ„ęµ§ęµØęµ«ęµ¬ęµ­ęµ°ęµ±ęµ²ęµ³ęµµęµ¶ęµ¹ęµŗęµ»ęµ½", 4, "ę¶ƒę¶„ę¶†ę¶‡ę¶Šę¶‹ę¶ę¶ę¶ę¶’ę¶–", 4, "ę¶œę¶¢ę¶„ę¶¬ę¶­ę¶°ę¶±ę¶³ę¶“ę¶¶ę¶·ę¶¹", 5, "ę·ę·‚ę·ƒę·ˆę·‰ę·Š"], - ["9c40", "ę·ę·Žę·ę·ę·’ę·“ę·”ę·•ę·—ę·šę·›ę·œę·Ÿę·¢ę·£ę·„ę·§ę·Øę·©ę·Ŗę·­ę·Æę·°ę·²ę·“ę·µę·¶ę·øę·ŗę·½", 7, "ęø†ęø‡ęøˆęø‰ęø‹ęøęø’ęø“ęø•ęø˜ęø™ęø›ęøœęøžęøŸęø¢ęø¦ęø§ęøØęøŖęø¬ęø®ęø°ęø±ęø³ęøµ"], - ["9c80", "ęø¶ęø·ęø¹ęø»", 7, "ę¹…", 7, "ę¹ę¹ę¹‘ę¹’ę¹•ę¹—ę¹™ę¹šę¹œę¹ę¹žę¹ ", 10, "ę¹¬ę¹­ę¹Æ", 14, "ęŗ€ęŗęŗ‚ęŗ„ęŗ‡ęŗˆęŗŠ", 4, "ęŗ‘", 6, "ęŗ™ęŗšęŗ›ęŗęŗžęŗ ęŗ”ęŗ£ęŗ¤ęŗ¦ęŗØęŗ©ęŗ«ęŗ¬ęŗ­ęŗ®ęŗ°ęŗ³ęŗµęŗøęŗ¹ęŗ¼ęŗ¾ęŗæę»€ę»ƒę»„ę»…ę»†ę»ˆę»‰ę»Šę»Œę»ę»Žę»ę»’ę»–ę»˜ę»™ę»›ę»œę»ę»£ę»§ę»Ŗ", 5], - ["9d40", "ę»°ę»±ę»²ę»³ę»µę»¶ę»·ę»øę»ŗ", 7, "ę¼ƒę¼„ę¼…ę¼‡ę¼ˆę¼Š", 4, "ę¼ę¼‘ę¼’ę¼–", 9, "ę¼”ę¼¢ę¼£ę¼„ę¼¦ę¼§ę¼Øę¼¬ę¼®ę¼°ę¼²ę¼“ę¼µę¼·", 6, "ę¼æę½€ę½ę½‚"], - ["9d80", "ę½ƒę½„ę½…ę½ˆę½‰ę½Šę½Œę½Ž", 9, "ę½™ę½šę½›ę½ę½Ÿę½ ę½”ę½£ę½¤ę½„ę½§", 5, "ę½Æę½°ę½±ę½³ę½µę½¶ę½·ę½¹ę½»ę½½", 6, "ę¾…ę¾†ę¾‡ę¾Šę¾‹ę¾", 12, "ę¾ę¾žę¾Ÿę¾ ę¾¢", 4, "ę¾Ø", 10, "ę¾“ę¾µę¾·ę¾øę¾ŗ", 5, "ęæęæƒ", 5, "ęæŠ", 6, "ęæ“", 10, "ęæŸęæ¢ęæ£ęæ¤ęæ„"], - ["9e40", "ęæ¦", 7, "ęæ°", 32, "ē€’", 7, "ē€œ", 6, "ē€¤", 6], - ["9e80", "ē€«", 9, "ē€¶ē€·ē€øē€ŗ", 17, "ēēŽē", 13, "ēŸ", 11, "ē®ē±ē²ē³ē“ē·ē¹ēŗē»ē½ē‚ē‚‚ē‚ƒē‚„ē‚†ē‚‡ē‚ˆē‚‹ē‚Œē‚ē‚ē‚ē‚‘ē‚“ē‚—ē‚˜ē‚šē‚›ē‚ž", 12, "ē‚°ē‚²ē‚“ē‚µē‚¶ē‚ŗē‚¾ē‚æēƒ„ēƒ…ēƒ†ēƒ‡ēƒ‰ēƒ‹", 12, "ēƒš"], - ["9f40", "ēƒœēƒēƒžēƒ ēƒ”ēƒ¢ēƒ£ēƒ„ēƒŖēƒ®ēƒ°", 6, "ēƒøēƒŗēƒ»ēƒ¼ēƒ¾", 10, "ē„‹", 4, "ē„‘ē„’ē„”ē„—ē„›", 10, "ē„§", 7, "ē„²ē„³ē„“"], - ["9f80", "ē„µē„·", 13, "ē…†ē…‡ē…ˆē…‰ē…‹ē…ē…", 12, "ē…ē…Ÿ", 4, "ē…„ē…©", 4, "ē…Æē…°ē…±ē…“ē…µē…¶ē…·ē…¹ē…»ē…¼ē…¾", 5, "ē†…", 4, "ē†‹ē†Œē†ē†Žē†ē†‘ē†’ē†“ē†•ē†–ē†—ē†š", 4, "ē†”", 6, "ē†©ē†Ŗē†«ē†­", 5, "ē†“ē†¶ē†·ē†øē†ŗ", 8, "ē‡„", 9, "ē‡", 4], - ["a040", "ē‡–", 9, "ē‡”ē‡¢ē‡£ē‡¤ē‡¦ē‡Ø", 5, "ē‡Æ", 9, "ē‡ŗ", 11, "ēˆ‡", 19], - ["a080", "ēˆ›ēˆœēˆž", 9, "ēˆ©ēˆ«ēˆ­ēˆ®ēˆÆēˆ²ēˆ³ēˆ“ēˆŗēˆ¼ēˆ¾ē‰€", 6, "ē‰‰ē‰Šē‰‹ē‰Žē‰ē‰ē‰‘ē‰“ē‰”ē‰•ē‰—ē‰˜ē‰šē‰œē‰žē‰ ē‰£ē‰¤ē‰„ē‰Øē‰Ŗē‰«ē‰¬ē‰­ē‰°ē‰±ē‰³ē‰“ē‰¶ē‰·ē‰øē‰»ē‰¼ē‰½ēŠ‚ēŠƒēŠ…", 4, "ēŠŒēŠŽēŠēŠ‘ēŠ“", 11, "ēŠ ", 11, "ēŠ®ēŠ±ēŠ²ēŠ³ēŠµēŠŗ", 6, "ē‹…ē‹†ē‹‡ē‹‰ē‹Šē‹‹ē‹Œē‹ē‹‘ē‹“ē‹”ē‹•ē‹–ē‹˜ē‹šē‹›"], - ["a1a1", "怀态怂Ā·Ė‰Ė‡ĀØ怃怅ā€”ļ½žā€–ā€¦ā€˜ā€™ā€œā€ć€”ć€•ć€ˆ", 7, "怖怗怐怑Ā±Ć—Ć·āˆ¶āˆ§āˆØāˆ‘āˆāˆŖāˆ©āˆˆāˆ·āˆšāŠ„āˆ„āˆ āŒ’āŠ™āˆ«āˆ®ā‰”ā‰Œā‰ˆāˆ½āˆā‰ ā‰®ā‰Æā‰¤ā‰„āˆžāˆµāˆ“ā™‚ā™€Ā°ā€²ā€³ā„ƒļ¼„Ā¤ļæ ļæ”ā€°Ā§ā„–ā˜†ā˜…ā—‹ā—ā—Žā—‡ā—†ā–”ā– ā–³ā–²ā€»ā†’ā†ā†‘ā†“怓"], - ["a2a1", "ā…°", 9], - ["a2b1", "ā’ˆ", 19, "ā‘“", 19, "ā‘ ", 9], - ["a2e5", "戠", 9], - ["a2f1", "ā… ", 11], - ["a3a1", "ļ¼ļ¼‚ļ¼ƒļæ„ļ¼…", 88, "ļæ£"], - ["a4a1", "恁", 82], - ["a5a1", "ć‚”", 85], - ["a6a1", "Ī‘", 16, "Ī£", 6], - ["a6c1", "Ī±", 16, "Ļƒ", 6], - ["a6e0", "ļøµļø¶ļø¹ļøŗļøæļ¹€ļø½ļø¾ļ¹ļ¹‚ļ¹ƒļ¹„"], - ["a6ee", "ļø»ļø¼ļø·ļøøļø±"], - ["a6f4", "ļø³ļø“"], - ["a7a1", "Š", 5, "ŠŠ–", 25], - ["a7d1", "Š°", 5, "ёŠ¶", 25], - ["a840", "ĖŠĖ‹Ė™ā€“ā€•ā€„ā€µā„…ā„‰ā†–ā†—ā†˜ā†™āˆ•āˆŸāˆ£ā‰’ā‰¦ā‰§āŠæā•", 35, "ā–", 6], - ["a880", "ā–ˆ", 7, "ā–“ā–”ā–•ā–¼ā–½ā—¢ā—£ā—¤ā—„ā˜‰āŠ•ć€’ć€ć€ž"], - ["a8a1", "āƔĒŽĆ Ä“Ć©Ä›ĆØÄ«Ć­ĒĆ¬ÅĆ³Ē’Ć²Å«ĆŗĒ”Ć¹Ē–Ē˜ĒšĒœĆ¼ĆŖɑ"], - ["a8bd", "ńň"], - ["a8c0", "É”"], - ["a8c5", "愅", 36], - ["a940", "怔", 8, "ćŠ£ćŽŽćŽćŽœćŽćŽžćŽ”ć„ćŽć‘ć’ć•ļø°ļæ¢ļæ¤"], - ["a959", "ā„”戱"], - ["a95c", "ā€"], - ["a960", "ćƒ¼ć‚›ć‚œćƒ½ćƒ¾ć€†ć‚ć‚žļ¹‰", 9, "ļ¹”ļ¹•ļ¹–ļ¹—ļ¹™", 8], - ["a980", "ļ¹¢", 4, "ļ¹Øļ¹©ļ¹Ŗļ¹«"], - ["a996", "怇"], - ["a9a4", "ā”€", 75], - ["aa40", "ē‹œē‹ē‹Ÿē‹¢", 5, "ē‹Ŗē‹«ē‹µē‹¶ē‹¹ē‹½ē‹¾ē‹æēŒ€ēŒ‚ēŒ„", 5, "ēŒ‹ēŒŒēŒēŒēŒēŒ‘ēŒ’ēŒ”ēŒ˜ēŒ™ēŒšēŒŸēŒ ēŒ£ēŒ¤ēŒ¦ēŒ§ēŒØēŒ­ēŒÆēŒ°ēŒ²ēŒ³ēŒµēŒ¶ēŒŗēŒ»ēŒ¼ēŒ½ē€", 8], - ["aa80", "ē‰ēŠē‹ēŒēŽēē‘ē“ē”ē•ē–ē˜", 7, "ē”", 10, "ē®ē°ē±"], - ["ab40", "ē²", 11, "ēæ", 4, "ēŽ…ēŽ†ēŽˆēŽŠēŽŒēŽēŽēŽēŽ’ēŽ“ēŽ”ēŽ•ēŽ—ēŽ˜ēŽ™ēŽšēŽœēŽēŽžēŽ ēŽ”ēŽ£", 5, "ēŽŖēŽ¬ēŽ­ēŽ±ēŽ“ēŽµēŽ¶ēŽøēŽ¹ēŽ¼ēŽ½ēŽ¾ēŽæēēƒ", 4], - ["ab80", "ē‹ēŒēŽē’", 6, "ēšē›ēœēēŸē”ē¢ē£ē¤ē¦ēØēŖē«ē¬ē®ēÆē°ē±ē³", 4], - ["ac40", "ēø", 10, "ē„ē‡ēˆē‹ēŒēēŽē‘", 8, "ēœ", 5, "ē£ē¤ē§ē©ē«ē­ēÆē±ē²ē·", 4, "ē½ē¾ēæē‘€ē‘‚", 11], - ["ac80", "ē‘Ž", 6, "ē‘–ē‘˜ē‘ē‘ ", 12, "ē‘®ē‘Æē‘±", 4, "ē‘øē‘¹ē‘ŗ"], - ["ad40", "ē‘»ē‘¼ē‘½ē‘æē’‚ē’„ē’…ē’†ē’ˆē’‰ē’Šē’Œē’ē’ē’‘", 10, "ē’ē’Ÿ", 7, "ē’Ŗ", 15, "ē’»", 12], - ["ad80", "ē“ˆ", 9, "ē““", 8, "ē“ē“Ÿē“”ē“„ē“§", 6, "ē“°ē“±ē“²"], - ["ae40", "ē“³ē“µē“ø", 6, "ē”€ē”ē”‚ē”ƒē”…", 7, "ē”Žē”ē”’ē””ē”•ē”–ē”—ē”›ē”ē”žē” ", 4, "ē”¦ē”§ē”Ŗē”®ē”“ē”¶ē”¹ē”¼ē”½ē”æē•ē•‚ē•ƒē•„ē•†ē•‡ē•‰ē•Šē•ē•ē•‘ē•’ē•“ē••ē•–ē•—ē•˜"], - ["ae80", "ē•", 7, "ē•§ē•Øē•©ē•«", 6, "ē•³ē•µē•¶ē•·ē•ŗ", 4, "ē–€ē–ē–‚ē–„ē–…ē–‡"], - ["af40", "ē–ˆē–‰ē–Šē–Œē–ē–Žē–ē–“ē–•ē–˜ē–›ē–œē–žē–¢ē–¦", 4, "ē–­ē–¶ē–·ē–ŗē–»ē–æē—€ē—ē—†ē—‹ē—Œē—Žē—ē—ē—‘ē—“ē——ē—™ē—šē—œē—ē—Ÿē— ē—”ē—„ē—©ē—¬ē—­ē—®ē—Æē—²ē—³ē—µē—¶ē—·ē—øē—ŗē—»ē—½ē—¾ē˜‚ē˜„ē˜†ē˜‡"], - ["af80", "ē˜ˆē˜‰ē˜‹ē˜ē˜Žē˜ē˜‘ē˜’ē˜“ē˜”ē˜–ē˜šē˜œē˜ē˜žē˜”ē˜£ē˜§ē˜Øē˜¬ē˜®ē˜Æē˜±ē˜²ē˜¶ē˜·ē˜¹ē˜ŗē˜»ē˜½ē™ē™‚ē™„"], - ["b040", "ē™…", 6, "ē™Ž", 5, "ē™•ē™—", 4, "ē™ē™Ÿē™ ē™”ē™¢ē™¤", 6, "ē™¬ē™­ē™®ē™°", 7, "ē™¹ē™ŗē™¼ē™æēš€ēšēšƒēš…ēš‰ēšŠēšŒēšēšēšēš’ēš”ēš•ēš—ēš˜ēššēš›"], - ["b080", "ēšœ", 7, "ēš„", 8, "ēšÆēš°ēš³ēšµ", 9, "ē›€ē›ē›ƒå•Šé˜æ埃ęŒØ哎唉哀ēš‘ē™Œč”¼ēŸ®č‰¾ē¢ēˆ±éš˜éžę°Ø安äæŗꌉꚗå²øčƒŗę”ˆč‚®ę˜‚ē›Žå‡¹ę•–ē†¬ēæ±č¢„å‚²å„„ę‡Šę¾³čŠ­ęŒę‰’å­å§ē¬†å…«ē–¤å·“ę‹”č·‹é¶ęŠŠč€™åéœøē½¢ēˆøē™½ęŸē™¾ę‘†ä½°č“„ꋜēØ—ę–‘ē­ę¬ę‰³čˆ¬é¢ęæē‰ˆę‰®ę‹Œä¼“ē“£åŠåŠžē»Šé‚¦åø®ę¢†ę¦œč†€ē»‘ę£’ē£…čšŒé•‘å‚č°¤č‹žčƒžåŒ…č¤’å‰„"], - ["b140", "ē›„ē›‡ē›‰ē›‹ē›Œē›“ē›•ē›™ē›šē›œē›ē›žē› ", 4, "ē›¦", 7, "ē›°ē›³ē›µē›¶ē›·ē›ŗē›»ē›½ē›æēœ€ēœ‚ēœƒēœ…ēœ†ēœŠēœŒēœŽ", 10, "ēœ›ēœœēœēœžēœ”ēœ£ēœ¤ēœ„ēœ§ēœŖēœ«"], - ["b180", "ēœ¬ēœ®ēœ°", 4, "ēœ¹ēœ»ēœ½ēœ¾ēœæē‚ē„ē…ē†ēˆ", 7, "ē’", 7, "ēœč–„雹äæå ”é„±å®ęŠ±ęŠ„ęš“č±¹é²ēˆ†ęÆē¢‘ę‚²å‘åŒ—č¾ˆčƒŒč“é’”倍ē‹ˆå¤‡ęƒ«ē„™č¢«å„”č‹Æęœ¬ē¬Øå“©ē»·ē”­ę³µč¹¦čæø逼鼻ęƔ鄙ē¬”å½¼ē¢§č“–č”½ęƕęƙęƖåøåŗ‡ē—¹é—­ę•å¼Šåæ…č¾Ÿå£č‡‚éæé™›éž­č¾¹ē¼–蓬ꉁä¾æ变卞č¾Øč¾©č¾«éę ‡å½Ŗ膘č”Øé³–ę†‹åˆ«ē˜Ŗå½¬ę–Œęæ’ę»Øå®¾ę‘ˆå…µå†°ęŸ„äø™ē§‰é„¼ē‚³"], - ["b240", "ēēžēŸē ē¤ē§ē©ēŖē­", 11, "ēŗē»ē¼ēžēž‚ēžƒēž†", 5, "ēžēžēž“", 11, "ēž”ēž£ēž¤ēž¦ēžØēž«ēž­ēž®ēžÆēž±ēž²ēž“ēž¶", 4], - ["b280", "ēž¼ēž¾ēŸ€", 12, "ēŸŽ", 8, "ēŸ˜ēŸ™ēŸšēŸ", 4, "ēŸ¤ē—…并ēŽ»č ę’­ę‹Øé’µę³¢åšå‹ƒęé“‚ē®”ä¼Æåø›čˆ¶č„–膊ęø¤ę³Šé©³ę•åœå“ŗč”„åŸ äøåøƒę­„ē°æéƒØꀖꓦēŒœč£ęę‰č“¢ē¬čø©é‡‡å½©čœč””é¤å‚čš•ę®‹ęƒ­ęƒØēæč‹čˆ±ä»“ę²§č—ę“ē³™ę§½ę›¹č‰åŽ•ē­–ä¾§å†Œęµ‹å±‚č¹­ę’å‰čŒ¬čŒ¶ęŸ„ē¢“ę½åƟ岔差čÆ§ę‹†ęŸ“č±ŗꐀęŽŗč‰é¦‹č°—ē¼ é“²äŗ§é˜é¢¤ę˜ŒēŒ–"], - ["b340", "ēŸ¦ēŸØēŸŖēŸÆēŸ°ēŸ±ēŸ²ēŸ“ēŸµēŸ·ēŸ¹ēŸŗēŸ»ēŸ¼ē ƒ", 5, "ē Šē ‹ē Žē ē ē “ē •ē ™ē ›ē žē  ē ”ē ¢ē ¤ē Øē Ŗē «ē ®ē Æē ±ē ²ē ³ē µē ¶ē ½ē æē”ē”‚ē”ƒē”„ē”†ē”ˆē”‰ē”Šē”‹ē”ē”ē”‘ē”“ē””ē”˜ē”™ē”š"], - ["b380", "ē”›ē”œē”ž", 11, "ē”Æ", 7, "ē”øē”¹ē”ŗē”»ē”½", 6, "åœŗ尝åøøé•æåæč‚ åŽ‚ę•žē•…å”±å€”č¶…ęŠ„é’žęœå˜²ę½®å·¢åµē‚’č½¦ę‰Æę’¤ęŽ£å½»ę¾ˆéƒ“č‡£č¾°å°˜ę™Øåæ±ę²‰é™ˆč¶č”¬ę’‘ē§°åŸŽę©™ęˆå‘ˆä¹˜ēØ‹ęƒ©ę¾„čƚę‰æ逞éŖ‹ē§¤åƒē—“ęŒåŒ™ę± čæŸå¼›é©°č€»é½æ侈å°ŗ赤ēæ…ę–„ē‚½å……å†²č™«å“‡å® ęŠ½é…¬ē•“čøŒēØ ę„ē­¹ä»‡ē»øēž…äø‘č‡­åˆå‡ŗꩱåŽØčŗ‡é”„é›ę»é™¤ę„š"], - ["b440", "ē¢„ē¢…ē¢†ē¢ˆē¢Šē¢‹ē¢ē¢ē¢’ē¢”ē¢•ē¢–ē¢™ē¢ē¢žē¢ ē¢¢ē¢¤ē¢¦ē¢Ø", 7, "ē¢µē¢¶ē¢·ē¢øē¢ŗē¢»ē¢¼ē¢½ē¢æē£€ē£‚ē£ƒē£„ē£†ē£‡ē£ˆē£Œē£ē£Žē£ē£‘ē£’ē£“ē£–ē£—ē£˜ē£š", 9], - ["b480", "ē£¤ē£„ē£¦ē£§ē£©ē£Ŗē£«ē£­", 4, "ē£³ē£µē£¶ē£øē£¹ē£»", 5, "ē¤‚ē¤ƒē¤„ē¤†", 6, "ē”€å‚ØēŸ—ęč§¦å¤„ę£å·ē©æę¤½ä¼ čˆ¹å–˜äø²ē–®ēŖ—å¹¢åŗŠé—Æ创吹ē‚Šę¶é”¤åž‚ę˜„ę¤æé†‡å”‡ę·³ēŗÆč ¢ęˆ³ē»°ē–µčŒØē£é›Œč¾žę…ˆē“·čÆę­¤åˆŗ赐ꬔčŖč‘±å›±åŒ†ä»Žäø›å‡‘ē²—醋ē°‡äæƒč¹æēÆ”ēŖœę‘§å“”å‚¬č„†ē˜ē²¹ę·¬ēæ ę‘å­˜åÆøē£‹ę’®ę“ęŽŖęŒ«é”™ę­č¾¾ē­”ē˜©ę‰“å¤§å‘†ę­¹å‚£ęˆ“åø¦ę®†ä»£č“·č¢‹å¾…逮"], - ["b540", "ē¤", 5, "ē¤”", 9, "ē¤Ÿ", 4, "ē¤„", 14, "ē¤µ", 4, "ē¤½ē¤æē„‚ē„ƒē„„ē„…ē„‡ē„Š", 8, "ē„”ē„•ē„˜ē„™ē„”ē„£"], - ["b580", "ē„¤ē„¦ē„©ē„Ŗē„«ē„¬ē„®ē„°", 6, "ē„¹ē„»", 4, "ē¦‚ē¦ƒē¦†ē¦‡ē¦ˆē¦‰ē¦‹ē¦Œē¦ē¦Žē¦ē¦‘ē¦’ę€ č€½ę‹…äø¹å•éƒøęŽøčƒ†ę—¦ę°®ä½†ęƒ®ę·”čÆžå¼¹č›‹å½“ęŒ”å…šč”ę”£åˆ€ę£č¹ˆå€’å²›ē„·åƼ到ēØ»ę‚¼é“ē›—å¾·å¾—ēš„č¹¬ēÆē™»ē­‰ēžŖå‡³é‚“å ¤ä½Žę»“čæŖꕌē¬›ē‹„궤ēæŸå«”ꊵåŗ•åœ°č’‚ē¬¬åøå¼Ÿé€’ē¼”é¢ ęŽ‚ę»‡ē¢˜ē‚¹å…ø靛垫ē”µä½ƒē”øåŗ—ęƒ¦å„ ę·€ę®æē¢‰å¼é›•å‡‹åˆęŽ‰åŠé’“č°ƒč·Œēˆ¹ē¢Ÿč¶čæ­č°å "], - ["b640", "ē¦“", 6, "ē¦›", 11, "ē¦Ø", 10, "ē¦“", 4, "ē¦¼ē¦æē§‚ē§„ē§…ē§‡ē§ˆē§Šē§Œē§Žē§ē§ē§“ē§”ē§–ē§—ē§™", 5, "ē§ ē§”ē§¢ē§„ē§Øē§Ŗ"], - ["b680", "ē§¬ē§®ē§±", 6, "ē§¹ē§ŗē§¼ē§¾ē§æē؁ē؄ē؅ē؇ē؈ē؉ē؊ē،ē؏", 4, "ēؕēؖēؘēؙē؛ē؜äøē›Æå®é’‰é”¶é¼Žé”­å®šč®¢äø¢äøœå†¬č‘£ę‡‚åŠØę ‹ä¾—ę«å†»ę“žå…œęŠ–ę–—é™”č±†é€—ē—˜éƒ½ē£ęƒēŠŠē‹¬čƻ堵ē¹čµŒęœé•€č‚šåŗ¦ęø”妒ē«ÆēŸ­é”»ę®µę–­ē¼Žå †å…‘队åƹ墩åØč¹²ę•¦é”æ囤钝ē›¾éęŽ‡å“†å¤šå¤ŗ垛čŗ²ęœµč·ŗčˆµå‰ęƒ°å •č›¾å³Ø鹅äæ„é¢č®¹åØ„ę¶åŽ„ę‰¼éé„‚é„æę©č€Œå„æč€³å°”é„µę“±äŗŒ"], - ["b740", "ē؝ē؟ēØ”ēØ¢ēؤ", 14, "ēØ“ēصēضēØøēØŗēؾē©€", 5, "ē©‡", 9, "ē©’", 4, "ē©˜", 16], - ["b780", "ē©©", 6, "ē©±ē©²ē©³ē©µē©»ē©¼ē©½ē©¾ēŖ‚ēŖ…ēŖ‡ēŖ‰ēŖŠēŖ‹ēŖŒēŖŽēŖēŖēŖ“ēŖ”ēŖ™ēŖšēŖ›ēŖžēŖ”ēŖ¢č“°å‘ē½šē­ä¼ä¹é˜€ę³•ēč—©åø†ē•Ŗēæ»ę؊ēŸ¾é’’ē¹å‡”ēƒ¦åčæ”čŒƒč“©ēŠÆé„­ę³›åŠčŠ³ę–¹č‚Ŗęˆæ防å¦Øä»æč®æēŗŗę”¾č²éžå•”é£žč‚„åŒŖčƽ吠č‚ŗåŗŸę²øč“¹čŠ¬é…šå©ę°›åˆ†ēŗ·åŸē„šę±¾ē²‰å„‹ä»½åææꄤē²Ŗäø°å°ęž«čœ‚峰锋风ē–Æēƒ½é€¢å†Æē¼č®½å„‰å‡¤ä½›å¦å¤«ę•·č‚¤å­µę‰¶ę‹‚č¾å¹…ę°Ÿē¬¦ä¼äæ˜ęœ"], - ["b840", "ēŖ£ēŖ¤ēŖ§ēŖ©ēŖŖēŖ«ēŖ®", 4, "ēŖ“", 10, "ē«€", 10, "ē«Œ", 9, "ē«—ē«˜ē«šē«›ē«œē«ē«”ē«¢ē«¤ē«§", 5, "ē«®ē«°ē«±ē«²ē«³"], - ["b880", "ē«“", 4, "ē«»ē«¼ē«¾ē¬€ē¬ē¬‚ē¬…ē¬‡ē¬‰ē¬Œē¬ē¬Žē¬ē¬’ē¬“ē¬–ē¬—ē¬˜ē¬šē¬œē¬ē¬Ÿē¬”ē¬¢ē¬£ē¬§ē¬©ē¬­ęµ®ę¶Ŗē¦č¢±å¼—ē”«ęŠšč¾…äæÆ釜ꖧč„Æ腑åŗœč…čµ“å‰Æč¦†čµ‹å¤å‚…ä»˜é˜œēˆ¶č…¹č“ŸåÆŒč®£é™„å¦‡ē¼šå’å™¶å˜ŽčÆ„ę”¹ę¦‚é’™ē›–ęŗ‰å¹²ē”˜ę†ęŸ‘ē«æč‚čµ¶ę„Ÿē§†ę•¢čµ£å†ˆåˆšé’¢ē¼ø肛ēŗ²å²—ęøÆꝠēƙēš‹é«˜č†ē¾”ē³•ęžé•ēØæå‘Šå“„ę­Œęęˆˆéø½čƒ³ē–™å‰²é©č‘›ę ¼č›¤é˜éš”铬äøŖ各ē»™ę ¹č·Ÿč€•ę›“åŗšē¾¹"], - ["b940", "ē¬Æē¬°ē¬²ē¬“ē¬µē¬¶ē¬·ē¬¹ē¬»ē¬½ē¬æ", 5, "ē­†ē­ˆē­Šē­ē­Žē­“ē­•ē­—ē­™ē­œē­žē­Ÿē­”ē­£", 10, "ē­Æē­°ē­³ē­“ē­¶ē­øē­ŗē­¼ē­½ē­æē®ē®‚ē®ƒē®„ē®†", 6, "ē®Žē®"], - ["b980", "ē®‘ē®’ē®“ē®–ē®˜ē®™ē®šē®›ē®žē®Ÿē® ē®£ē®¤ē®„ē®®ē®Æē®°ē®²ē®³ē®µē®¶ē®·ē®¹", 7, "ēƂēƃēƄ埂č€æę¢—å·„ę”»åŠŸę­é¾šä¾›čŗ¬å…¬å®«å¼“å·©ę±žę‹±č“”å…±é’©å‹¾ę²Ÿč‹Ÿē‹—åž¢ęž„č“­å¤Ÿč¾œč‡å’•ē®ä¼°ę²½å­¤å§‘é¼“å¤č›ŠéŖØč°·č‚”ę•…é”¾å›ŗ雇刮ē“œå‰åÆ”ęŒ‚č¤‚ä¹–ę‹ę€Ŗę£ŗå…³å®˜å† č§‚ē®”馆ē½ęƒÆēŒč“Æ光å¹æ逛ē‘°č§„圭ē”…归龟é—ŗč½Ø鬼čÆ”ē™øę”‚ęŸœč·Ŗč“µåˆ½č¾Šę»šę£é”…éƒ­å›½ęžœč£¹čæ‡å“ˆ"], - ["ba40", "ēƅēƈēƉēƊēƋēƍēƎēƏēƐēƒēƔ", 4, "ēƛēƜēƞēƟēÆ ēÆ¢ēÆ£ēƤēƧēÆØēÆ©ēÆ«ēƬēÆ­ēÆÆēÆ°ēƲ", 4, "ēÆøēƹēÆŗēÆ»ēƽēÆæ", 7, "ē°ˆē°‰ē°Šē°ē°Žē°", 5, "ē°—ē°˜ē°™"], - ["ba80", "ē°š", 4, "ē° ", 5, "ē°Øē°©ē°«", 12, "ē°¹", 5, "ē±‚éŖøå­©ęµ·ę°¦äŗ„害éŖ‡é…£ę†Øé‚ÆéŸ©å«ę¶µåƒ函喊ē½•ēæ°ę’¼ęę—±ę†¾ę‚ē„Šę±—걉å¤ÆꝭčˆŖ壕嚎č±ŖęÆ«éƒå„½č€—å·ęµ©å‘µå–č·čę øē¦¾å’Œä½•åˆē›’č²‰é˜‚ę²³ę¶øčµ«č¤é¹¤č“ŗå˜æ黑ē—•å¾ˆē‹ ęØ哼äŗØęØŖč””ę’č½°å“„ēƒ˜č™¹éøæę“Ŗ宏弘ēŗ¢å–‰ä¾ÆēŒ“吼厚候后呼乎åæ½ē‘šå£¶č‘«čƒ”č“ē‹ē³Šę¹–"], - ["bb40", "ē±ƒ", 9, "ē±Ž", 36, "ē±µ", 5, "ē±¾", 9], - ["bb80", "ē²ˆē²Š", 6, "ē²“ē²”ē²–ē²™ē²šē²›ē² ē²”ē²£ē²¦ē²§ē²Øē²©ē²«ē²¬ē²­ē²Æē²°ē²“", 4, "ē²ŗē²»å¼§č™Žå”¬ęŠ¤äŗ’ę²Ŗęˆ·čŠ±å“—åŽēŒ¾ę»‘ē”»åˆ’化čÆę§å¾Šę€€ę·®åę¬¢ēŽÆꔓčæ˜ē¼“ę¢ę‚£å”¤ē—Ŗč±¢ē„•ę¶£å®¦å¹»č’ę…Œé»„ē£ŗ蝗ē°§ēš‡å‡°ęƒ¶ē…Œę™ƒå¹Œęč°Žē°ęŒ„č¾‰å¾½ę¢č›”å›žęÆę‚”ę…§å‰ęƒ ę™¦č“æē§½ä¼šēƒ©ę±‡č®³čƲē»˜č¤ę˜å©šé­‚ęµ‘ę··č±ę“»ä¼™ē«čŽ·ęˆ–ęƒ‘éœč“§ē„ø击圾åŸŗęœŗē•øēؽē§Æē®•"], - ["bc40", "ē²æē³€ē³‚ē³ƒē³„ē³†ē³‰ē³‹ē³Ž", 6, "ē³˜ē³šē³›ē³ē³žē³”", 6, "ē³©", 5, "ē³°", 7, "ē³¹ē³ŗē³¼", 13, "ē“‹", 5], - ["bc80", "ē“‘", 14, "ē“”ē“£ē“¤ē“„ē“¦ē“Øē“©ē“Ŗē“¬ē“­ē“®ē“°", 6, "č‚Œé„„čæ¹ęæ€č®„éø”姬ē»©ē¼‰å‰ęžę£˜č¾‘ē±é›†åŠę€„ē–¾ę±²å³å«‰ēŗ§ęŒ¤å‡ č„Šå·±č“ŸęŠ€å†€å­£ä¼Žē„­å‰‚ę‚ø굎åƄåÆ‚č®”č®°ę—¢åæŒé™…妓ē»§ēŗŖå˜‰ęž·å¤¹ä½³å®¶åŠ čšé¢Šč“¾ē”²é’¾å‡ēØ¼ä»·ęž¶é©¾å«ę­¼ē›‘坚尖ē¬ŗé—“ē…Žå…¼č‚©č‰°å„øē¼„čŒ§ę£€ęŸ¬ē¢±ē”·ę‹£ę”ē®€äæ­å‰Ŗå‡čę§›é‰“č·µč“±č§é”®ē®­ä»¶"], - ["bd40", "ē“·", 54, "ēµÆ", 7], - ["bd80", "ēµø", 32, "å„čˆ°å‰‘é„Æęøęŗ…궧å»ŗåƒµå§œå°†ęµ†ę±Ÿē–†č’‹ę”Øå„–č®²åŒ é…±é™č•‰ę¤’ē¤ē„¦čƒ¶äŗ¤éƒŠęµ‡éŖ„åØ‡åš¼ę…é“°ēŸ«ä¾„脚ē‹”角é„ŗē¼“ē»žå‰æꕙ酵č½æč¾ƒå«ēŖ–ę­ęŽ„ēš†ē§øč”—é˜¶ęˆŖåŠ«čŠ‚ę””ę°ę·ē«ē«­ę“ē»“č§£å§ęˆ’č—‰čŠ„ē•Œå€Ÿä»‹ē–„čƫ届巾ē­‹ę–¤é‡‘ä»Šę“„č„Ÿē“§é”¦ä»…č°Øčæ›é³ę™‹ē¦čæ‘ēƒ¬ęµø"], - ["be40", "ē¶™", 12, "ē¶§", 6, "ē¶Æ", 42], - ["be80", "ē·š", 32, "å°½åŠ²č†å…¢čŒŽē›ę™¶é²øäŗ¬ęƒŠē²¾ē²³ē»äŗ•č­¦ę™Æé¢ˆé™å¢ƒę•¬é•œå¾„ē—‰é–ē«Ÿē«žå‡€ē‚ÆēŖ˜ęŖē©¶ēŗ ēŽ–韭久ēøä¹é…’åŽ©ę•‘ę—§č‡¼čˆ…å’Žå°±ē–šéž ę‹˜ē‹™ē–½å±…é©¹čŠå±€å’€ēŸ©äø¾ę²®čšę‹’ę®å·Øå…·č·čøžé”Æäæ±å„ꃧē‚¬å‰§ęé¹ƒå؟倦ēœ·å·ē»¢ę’…ę”«ęŠ‰ęŽ˜å€”ēˆµč§‰å†³čƀē»å‡čŒé’§å†›å›å³»"], - ["bf40", "ē·»", 62], - ["bf80", "ēøŗēø¼", 4, "ē¹‚", 4, "ē¹ˆ", 21, "äæŠē«£ęµšéƒ”éŖå–€å’–協å’Æå¼€ę©ę„·å‡Æę…Ø刊å Ŗ勘坎ē ēœ‹åŗ·ę…·ē³ ę‰›ęŠ—äŗ¢ē‚•č€ƒę‹·ēƒ¤é å·č‹›ęŸÆę£µē£•é¢—ē§‘壳咳åÆęø“克刻客čƾč‚Æå•ƒåž¦ę³å‘å­ē©ŗęå­”ęŽ§ęŠ å£ę‰£åƇęžÆ哭ēŖŸč‹¦é…·åŗ“č£¤å¤øåž®ęŒŽč·ØčƒÆ块ē­·ä¾©åæ«å®½ę¬¾åŒ”ē­ē‹‚ꔆēŸæēœ¶ę—·å†µäŗē›”å²æēŖ„č‘µå„Žé­å‚€"], - ["c040", "ē¹ž", 35, "ēŗƒ", 23, "ēŗœēŗēŗž"], - ["c080", "ēŗ®ēŗ“ēŗ»ēŗ¼ē»–ē»¤ē»¬ē»¹ē¼Šē¼ē¼žē¼·ē¼¹ē¼»", 6, "ē½ƒē½†", 9, "ē½’ē½“é¦ˆę„§ęŗƒå¤ę˜†ę†å›°ę‹¬ę‰©å»“é˜”åžƒę‹‰å–‡čœ”č…Šč¾£å•¦čŽ±ę„čµ–č“å©Ŗę ę‹¦ēÆ®é˜‘å…°ę¾œč°°ę½č§ˆę‡’ē¼†ēƒ‚껄ē…ꦔē‹¼å»ŠéƒŽęœ—ęµŖęžåŠ³ē‰¢č€ä½¬å§„é…Ŗēƒ™ę¶å‹’ä¹é›·é•­č•¾ē£Šē“Æå„”åž’ę“‚č‚‹ē±»ę³Ŗę£±ę„žå†·åŽ˜ę¢ØēŠé»ŽēƱē‹øē¦»ę¼“ē†ęŽé‡Œé²¤ē¤¼čŽ‰č”åę —äø½åŽ‰åŠ±ē ¾åŽ†åˆ©å‚ˆä¾‹äæ"], - ["c140", "ē½–ē½™ē½›ē½œē½ē½žē½ ē½£", 4, "ē½«ē½¬ē½­ē½Æē½°ē½³ē½µē½¶ē½·ē½øē½ŗē½»ē½¼ē½½ē½æē¾€ē¾‚", 7, "ē¾‹ē¾ē¾", 4, "ē¾•", 4, "ē¾›ē¾œē¾ ē¾¢ē¾£ē¾„ē¾¦ē¾Ø", 6, "ē¾±"], - ["c180", "ē¾³", 4, "ē¾ŗē¾»ē¾¾ēæ€ēæ‚ēæƒēæ„ēæ†ēæ‡ēæˆēæ‰ēæ‹ēæēæ", 4, "ēæ–ēæ—ēæ™", 5, "ēæ¢ēæ£ē—¢ē«‹ē²’ę²„隶力ē’ƒå“©äæ©č”čŽ²čæžé•°å»‰ę€œę¶Ÿåø˜ę•›č„øé“¾ę‹ē‚¼ē»ƒē²®å‡‰ę¢ē²±č‰Æäø¤č¾†é‡ę™¾äŗ®č°…ę’©čŠåƒšē–—ē‡ŽåÆ„č¾½ę½¦äŗ†ę’‚é•£å»–ę–™åˆ—č£‚ēƒˆåŠ£ēŒŽē³ęž—ē£·éœ–äø“é‚»é³žę·‹å‡›čµåę‹ŽēŽ²č±é›¶é¾„铃伶ē¾šå‡Œēµé™µå²­é¢†å¦ä»¤ęŗœē‰ę¦“ē”«é¦ē•™åˆ˜ē˜¤ęµęŸ³å…­é¾™č‹å’™ē¬¼ēŖæ"], - ["c240", "ēæ¤ēæ§ēæØēæŖēæ«ēæ¬ēæ­ēæÆēæ²ēæ“", 6, "ēæ½ēæ¾ēææč€‚č€‡č€ˆč€‰č€Šč€Žč€č€‘č€“č€šč€›č€č€žč€Ÿč€”č€£č€¤č€«", 5, "č€²č€“č€¹č€ŗč€¼č€¾č€čč„č…č‡čˆč‰čŽččč‘č“č•č–č—"], - ["c280", "聙聛", 13, "聫", 5, "č²", 11, "éš†åž„ę‹¢é™‡ę„¼åØ„ę‚ēÆ“ę¼é™‹čŠ¦å¢é¢…åŗē‚‰ęŽ³å¤č™é²éŗ“ē¢Œéœ²č·Æ赂é¹æę½žē¦„å½•é™†ęˆ®é©“å•é“ä¾£ę—…å±„å±”ē¼•č™‘ę°Æ律ēŽ‡ę»¤ē»æå³¦ęŒ›å­Ŗę»¦åµä¹±ęŽ ē•„ęŠ”č½®ä¼¦ä»‘ę²¦ēŗ¶č®ŗ萝čžŗē½—逻锣ē®©éŖ”č£øč½ę“›éŖ†ē»œå¦ˆéŗ»ēŽ›ē čš‚马éŖ‚嘛吗埋买éŗ¦å–čæˆč„‰ēž’é¦’č›®ę»”č”“ę›¼ę…¢ę¼«"], - ["c340", "č¾č‚č‚‚č‚…č‚ˆč‚Šč‚", 5, "č‚”č‚•č‚—č‚™č‚žč‚£č‚¦č‚§č‚Øč‚¬č‚°č‚³č‚µč‚¶č‚øč‚¹č‚»čƒ…čƒ‡", 4, "胏", 6, "čƒ˜čƒŸčƒ čƒ¢čƒ£čƒ¦čƒ®čƒµčƒ·čƒ¹čƒ»čƒ¾čƒæ脀脁脃脄脅脇脈脋"], - ["c380", "脌脕脗脙脛脜脝脟", 12, "č„­č„®č„°č„³č„“č„µč„·č„¹", 4, "č„æč°©čŠ’čŒ«ē›²ę°“åæ™čŽ½ēŒ«čŒ…锚ęƛēŸ›é“†åÆčŒ‚å†’åø½č²Œč“ø么ēŽ«ęžšę¢…酶霉ē…¤ę²”ēœ‰åŖ’镁ęƏē¾Žę˜§åƐ妹åŖšé—Øé—·ä»¬čŒč’™ęŖ¬ē›Ÿé”°ēŒ›ę¢¦å­ŸēœÆ醚靔ē³œčæ·č°œå¼„ē±³ē§˜č§…ę³ŒčœœåÆ†å¹‚ę£‰ēœ ē»µå†•å…å‹‰åØ©ē¼…é¢č‹—ęēž„藐ē§’ęøŗåŗ™å¦™č”‘ē­ę°‘ęŠæēšæꕏę‚Æé—½ę˜ŽčžŸéø£é“­åå‘½č°¬ę‘ø"], - ["c440", "腀", 5, "腇腉腍腎腏腒腖腗腘腛", 4, "č…”č…¢č…£č…¤č…¦č…Øč…Ŗč…«č…¬č…Æč…²č…³č…µč…¶č…·č…ø膁膃", 4, "膉膋膌膍膎膐膒", 5, "膙膚膞", 4, "膤膄"], - ["c480", "膧膩膫", 7, "膓", 5, "č†¼č†½č†¾č†æ臄臅臇臈臉臋臍", 6, "ę‘¹č˜‘ęØ”č†œē£Øę‘©é­”ęŠ¹ęœ«čŽ«å¢Øé»˜ę²«ę¼ åÆžé™Œč°‹ē‰ŸęŸę‹‡ē‰”äŗ©å§†ęÆå¢“ęš®å¹•å‹Ÿę…•ęœØē›®ē¦ē‰§ē©†ę‹æå“Ŗ呐钠那å؜ēŗ³ę°–ä¹ƒå„¶č€å„ˆå—ē”·éš¾å›ŠęŒ č„‘ę¼é—¹ę·–å‘¢é¦å†…å«©čƒ½å¦®éœ“å€Ŗę³„å°¼ę‹Ÿä½ åŒæ腻逆ęŗŗč”«ę‹ˆå¹“ē¢¾ę’µę»åæµåؘé…æéøŸå°æęč‚å­½å•®é•Šé•ę¶…ę‚Ø꟠ē‹žå‡å®"], - ["c540", "臔", 14, "臤臄臦č‡Ø臩臫臮", 4, "臵", 5, "č‡½č‡æ舃與", 4, "舎舏舑舓舕", 5, "čˆčˆ čˆ¤čˆ„čˆ¦čˆ§čˆ©čˆ®čˆ²čˆŗčˆ¼čˆ½čˆæ"], - ["c580", "艀艁艂艃艅艆艈艊艌艍艎艐", 7, "艙艛艜艝艞艠", 7, "č‰©ę‹§ę³žē‰›ę‰­é’®ēŗ½č„“ęµ“å†œå¼„å„“åŠŖę€’å„³ęš–č™ē–ŸęŒŖꇦē³ÆčÆŗå“¦ę¬§éø„ę®“č—•å‘•å¶ę²¤å•Ŗ趓ēˆ¬åø•ę€•ē¶ę‹ęŽ’ē‰Œå¾˜ę¹ƒę“¾ę”€ę½˜ē›˜ē£ē›¼ē•”判叛乓åŗžę—č€Ŗčƒ–ęŠ›å’†åˆØē‚®č¢č·‘ę³”å‘øčƒšåŸ¹č£“čµ”é™Ŗé…ä½©ę²›å–·ē›†ē °ęŠØēƒ¹ę¾Žå½­č“¬ę£šē”¼ēÆ·č†Øęœ‹é¹ę§ē¢°åÆē ’éœ¹ę‰¹ęŠ«åŠˆēµęƗ"], - ["c640", "č‰Ŗ艫艬艭艱艵艶艷č‰øč‰»č‰¼čŠ€čŠčŠƒčŠ…čŠ†čŠ‡čŠ‰čŠŒčŠčŠ“čŠ”čŠ•čŠ–čŠščŠ›čŠžčŠ čŠ¢čŠ£čŠ§čŠ²čŠµčŠ¶čŠŗčŠ»čŠ¼čŠæč‹€č‹‚č‹ƒč‹…č‹†č‹‰č‹č‹–č‹™č‹šč‹č‹¢č‹§č‹Øč‹©č‹Ŗč‹¬č‹­č‹®č‹°č‹²č‹³č‹µč‹¶č‹ø"], - ["c680", "č‹ŗč‹¼", 4, "茊茋茍茐茒茓茖茘茙茝", 9, "čŒ©čŒŖčŒ®čŒ°čŒ²čŒ·čŒ»čŒ½å•¤č„¾ē–²ēš®åŒ¹ē—žåƒ»å±č­¬ēƇ偏ē‰‡éŖ—é£˜ę¼‚ē“¢ē„Øꒇēž„ę‹¼é¢‘č“«å“č˜ä¹’åŖč‹¹čå¹³å‡­ē“¶čÆ„å±å”ę³¼é¢‡å©†ē “魄čæ«ē²•å‰–ꉑé“ŗä»†čŽ†č‘”č©č’²åŸ”ęœ“åœƒę™®ęµ¦č°±ę›ē€‘ęœŸę¬ŗę –ęˆšå¦»äøƒå‡„ę¼†ęŸ’ę²å…¶ę£‹å„‡ę­§ē•¦å“Žč„é½ę——ē„ˆē„éŖ‘čµ·å²‚ä¹žä¼åÆå„‘ē Œå™Ø갔čæ„å¼ƒę±½ę³£č®«ęŽ"], - ["c740", "čŒ¾čŒæ荁荂荄荅荈荊", 4, "荓荕", 4, "čč¢č°", 6, "č¹čŗč¾", 6, "čŽ‡čŽˆčŽŠčŽ‹čŽŒčŽčŽčŽčŽ‘čŽ”čŽ•čŽ–čŽ—čŽ™čŽščŽčŽŸčŽ”", 6, "莬莭莮"], - ["c780", "čŽÆčŽµčŽ»čŽ¾čŽæč‚čƒč„č†čˆč‰č‹ččŽčč‘č’č“č•č—č™čšč›čžč¢č£č¤č¦č§čØč«č¬č­ę°ę“½ē‰µę‰¦é’Žé“…千čæē­¾ä»Ÿč°¦ä¹¾é»”é’±é’³å‰ę½œé£ęµ…č°“å ‘åµŒę¬ ę­‰ęžŖå‘›č…”ē¾Œå¢™č”·å¼ŗęŠ¢ę©‡é”¹ę•²ę‚„ę”„ēž§ä¹”ä¾Øå·§éž˜ę’¬ēæ˜å³­äæēŖåˆ‡čŒ„äø”ę€ÆēŖƒé’¦ä¾µäŗ²ē§¦ē“å‹¤čŠ¹ę“’ē¦½åÆę²é’č½»ę°¢å€¾åæęø…ę“Žę™“ę°°ęƒ…é”·čÆ·åŗ†ē¼ē©·ē§‹äø˜é‚±ēƒę±‚å›šé…‹ę³…č¶‹åŒŗč›†ę›²čŗÆ屈驱ęø "], - ["c840", "č®čÆč³", 4, "čŗč»č¼č¾čæ萀萂萅萇萈萉萊萐萒", 5, "萙萚萛萞", 5, "萩", 7, "č²", 5, "č¹čŗč»č¾", 7, "葇葈葉"], - ["c880", "葊", 6, "葒", 4, "č‘˜č‘č‘žč‘Ÿč‘ č‘¢č‘¤", 4, "č‘Ŗč‘®č‘Æč‘°č‘²č‘“č‘·č‘¹č‘»č‘¼å–åØ¶é¾‹č¶£åŽ»åœˆé¢§ęƒé†›ę³‰å…Øē—Šę‹³ēŠ¬åˆø劝ē¼ŗē‚”ē˜øå“é¹Šę¦·ē”®é›€č£™ē¾¤ē„¶ē‡ƒå†‰ęŸ“ē“¤å£¤ę”˜åš·č®©é„¶ę‰°ē»•ęƒ¹ēƒ­å£¬ä»äŗŗåæéŸ§ä»»č®¤åˆƒå¦Šēŗ«ę‰”ä»ę—„ꈎčŒøč“‰č£čžē†”ęŗ¶å®¹ē»’å†—ę‰ęŸ”č‚‰čŒ¹č •å„’å­ŗå¦‚č¾±ä¹³ę±å…„č¤„č½Æé˜®č•Šē‘žé”é—°ę¶¦č‹„å¼±ę’’ę“’čØč…®é³ƒå”žčµ›äø‰å"], - ["c940", "č‘½", 4, "蒃蒄蒅蒆蒊蒍蒏", 7, "č’˜č’šč’›č’č’žč’Ÿč’ č’¢", 12, "č’°č’±č’³č’µč’¶č’·č’»č’¼č’¾č“€č“‚č“ƒč“…č“†č“‡č“ˆč“‹č“Œč“Žč“č“’č“”č“•č“—"], - ["c980", "蓘", 4, "č“žč“”č“¢č“¤č“§", 4, "č“­č“®č“Æ蓱", 10, "č“½č“¾č”€č”č”‚ä¼žę•£ę”‘å—“äø§ę”éŖšę‰«å«‚ē‘Ÿč‰²ę¶©ę£®åƒ§čŽŽē ‚ę€åˆ¹ę²™ēŗ±å‚»å•„ē…žē­›ę™’ēŠč‹«ę‰å±±åˆ ē…½č”«é—Ŗé™•ę“…čµ”č†³å–„ę±•ę‰‡ē¼®å¢’ä¼¤å•†čµę™ŒäøŠå°šč£³ę¢¢ęŽē؍ēƒ§čŠå‹ŗ韶少å“Ø邵ē»å„¢čµŠč›‡čˆŒčˆčµ¦ę‘„å°„ę…‘ę¶‰ē¤¾č®¾ē ·ē”³å‘»ä¼øčŗ«ę·±åØ ē»…ē„žę²ˆå®”婶ē”šč‚¾ę…Žęø—声ē”Ÿē”„ē‰²å‡ē»³"], - ["ca40", "蔃", 8, "č”č”Žč”č”č”’č””č”•č”–č”˜č”™č”›č”œč”č”žč” č”¢", 8, "蔭", 9, "č”¾", 4, "蕄蕅蕆蕇蕋", 10], - ["ca80", "蕗蕘蕚蕛蕜蕝蕟", 4, "蕄蕦蕧蕩", 8, "č•³č•µč•¶č•·č•øč•¼č•½č•æ薀薁ēœē››å‰©čƒœåœ£åøˆå¤±ē‹®ę–½ę¹æčƗå°øč™±åēŸ³ę‹¾ę—¶ä»€é£Ÿčš€å®žčƆ史ēŸ¢ä½æ屎驶始式ē¤ŗ士äø–ęŸæäŗ‹ę‹­čŖ“逝åŠæę˜Æå—œå™¬é€‚ä»•ä¾é‡Šé„°ę°åø‚ęƒå®¤č§†čÆ•ę”¶ę‰‹é¦–å®ˆåÆæęŽˆå”®å—ē˜¦å…½č”¬ęž¢ę¢³ę®ŠęŠ’č¾“å”čˆ’ę·‘ē–ä¹¦čµŽå­°ē†Ÿč–Æꚑꛙē½²čœ€é»é¼ å±žęœÆčæ°ę ‘ęŸęˆē«–墅åŗ¶ę•°ę¼±"], - ["cb40", "薂薃薆薈", 6, "薐", 10, "薝", 6, "薄薦薧薩薫薬薭薱", 5, "č–øč–ŗ", 6, "藂", 6, "藊", 4, "藑藒"], - ["cb80", "藔藖", 5, "藝", 6, "藄藦藧č—Øč—Ŗ", 14, "ę•åˆ·č€ę‘”č”°ē”©åø…ę “ę‹“霜双ēˆ½č°ę°“ē”ē؎吮ēž¬é”ŗ舜čÆ“ē”•ęœ”ēƒę–Æę’•å˜¶ę€ē§åøäøę­»č‚†åÆŗ嗣四ä¼ŗä¼¼é„²å·³ę¾č€øę€‚é¢‚é€å®‹č®¼čÆµęœč‰˜ę“žå—½č‹é…„äæ—ē“ é€Ÿē²Ÿåƒ³å”‘ęŗÆå®æčÆ‰č‚ƒé…ø蒜ē®—č™½éš‹éšē»„髓ē¢Žå²ē©—遂隧ē„Ÿå­™ęŸē¬‹č“‘ę¢­å”†ē¼©ēē“¢é”ę‰€å”Œä»–它儹唔"], - ["cc40", "č—¹č—ŗč—¼č—½č—¾č˜€", 4, "蘆", 10, "蘒蘓蘔蘕蘗", 15, "č˜Øč˜Ŗ", 13, "č˜¹č˜ŗč˜»č˜½č˜¾č˜æ虀"], - ["cc80", "虁", 11, "虒虓處", 4, "č™›č™œč™č™Ÿč™ č™”č™£", 7, "ē­ęŒžč¹‹čøčƒŽč‹”ęŠ¬å°ę³°é…žå¤Ŗę€ę±°åę‘Šč“Ŗē˜«ę»©å›ęŖ€ē—°ę½­č°­č°ˆå¦ęÆÆč¢’ē¢³ęŽ¢å¹ē‚­ę±¤å”˜ęŖå ‚ę£ č†›å”ē³–倘čŗŗę·Œč¶Ÿēƒ«ęŽę¶›ę»”ē»¦č„ę”ƒé€ƒę·˜é™¶č®Øå„—ē‰¹č—¤č…¾ē–¼čŖŠę¢Æ剔čø¢é”‘ęé¢˜č¹„å•¼ä½“ę›æåšęƒ•ę¶•å‰ƒå±‰å¤©ę·»å”«ē”°ē”œę¬čˆ”č…†ęŒ‘ę”čæ¢ēœŗč·³č““é“åø–厅听ēƒƒ"], - ["cd40", "虭č™Æč™°č™²", 6, "蚃", 6, "蚎", 4, "蚔蚖", 5, "蚞", 4, "čš„čš¦čš«čš­čš®čš²čš³čš·čšøčš¹čš»", 4, "蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"], - ["cd80", "č›č› č›”č›¢č›£č›„č›¦č›§č›Øč›Ŗ蛫蛬č›Æ蛵蛶蛷č›ŗč›»č›¼č›½č›æčœčœ„čœ…čœ†čœ‹čœŒčœŽčœčœčœ‘čœ”čœ–ę±€å»·åœäŗ­åŗ­ęŒŗ艇通ꔐ酮ēž³åŒé“œå½¤ē«„ę”¶ę…ē­’ē»Ÿē—›å·ęŠ•å¤“透å‡øē§ƒēŖå›¾å¾’é€”ę¶‚å± åœŸåå…”ę¹å›¢ęŽØ颓č…æ蜕č¤Ŗ退吞å±Æč‡€ę‹–ę‰˜č„±éøµé™€é©®é©¼ę¤­å¦„ę‹“å”¾ęŒ–å“‡č›™ę“¼å؃ē“¦č¢œę­Ŗå¤–č±Œå¼Æę¹¾ēŽ©é”½äøøēƒ·å®Œē¢—ęŒ½ę™šēš–ęƒ‹å®›å©‰äø‡č…•ę±ŖēŽ‹äŗ”꞉ē½‘å¾€ę—ŗꜛåæ˜å¦„å؁"], - ["ce40", "čœ™čœ›čœčœŸčœ čœ¤čœ¦čœ§čœØčœŖčœ«čœ¬čœ­čœÆčœ°čœ²čœ³čœµčœ¶čœøčœ¹čœŗčœ¼čœ½č€", 6, "蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚", 5, "č”č¢č¦", 7, "čÆč±č²č³čµ"], - ["ce80", "č·čøč¹čŗčæ螀螁螄螆螇螉螊螌螎", 4, "螔螕螖螘", 6, "螠", 4, "巍微危韦čæę”…囓å”Æꃟäøŗę½ē»“č‹‡čŽå§”ä¼Ÿä¼Ŗå°¾ēŗ¬ęœŖč”šå‘³ē•čƒƒå–‚魏位ęø­č°“å°‰ę…°å«ē˜Ÿęø©čšŠę–‡é—»ēŗ¹å»ēسē“Šé—®å—”ēæē“®ęŒčœ—궔ēŖęˆ‘ę–”å§ę”ę²ƒå·«å‘œé’Øä¹Œę±”čÆ¬å±‹ę— čŠœę¢§å¾å“ęÆ‹ę­¦äŗ”ę‚åˆčˆžä¼ä¾®åžęˆŠé›¾ę™¤ē‰©å‹æåŠ”ę‚ŸčÆÆꘔē†™ęžč„æē”’ēŸ½ę™°å˜»åøé””ē‰ŗ"], - ["cf40", "螄螦螧螩čžŖčž®čž°čž±čž²čž“čž¶čž·čžøčž¹čž»čž¼čž¾čžæ蟁", 4, "蟇蟈蟉蟌", 4, "蟔", 6, "čŸœčŸčŸžčŸŸčŸ”čŸ¢čŸ£čŸ¤čŸ¦čŸ§čŸØčŸ©čŸ«čŸ¬čŸ­čŸÆ", 9], - ["cf80", "čŸŗčŸ»čŸ¼čŸ½čŸæ蠀蠁蠂蠄", 5, "蠋", 7, "蠔蠗蠘蠙蠚蠜", 4, "č £ē؀ęÆåøŒę‚‰č†å¤•ęƒœē†„ēƒÆęŗŖ걐ēŠ€ęŖ„č¢­åø­ä¹ åŖ³å–œé“£ę“—ē³»éš™ęˆē»†ēžŽč™¾åŒ£éœžč¾–ęš‡å³”ä¾ ē‹­äø‹åŽ¦å¤å“ꎀé”Ø先仙鲜ēŗ¤å’øč“¤č””čˆ·é—²ę¶Žå¼¦å«Œę˜¾é™©ēŽ°ēŒ®åŽæč…ŗ馅ē¾”å®Ŗ陷限ēŗæē›ø厢镶香ē®±č„„ę¹˜ä¹”ēæ”ē„„čÆ¦ęƒ³å“äŗ«é”¹å··ę©”åƒå‘č±”č§ē”éœ„å‰Šå“®åš£é”€ę¶ˆå®µę·†ę™“"], - ["d040", "č ¤", 13, "č ³", 5, "č ŗč »č ½č ¾č æč”č”‚č”ƒč”†", 5, "蔎", 5, "č”•č”–č”˜č”š", 6, "蔦蔧č”Ŗč”­č”Æč”±č”³č”“č”µč”¶č”øč”¹č”ŗ"], - ["d080", "č”»č”¼č¢€č¢ƒč¢†č¢‡č¢‰č¢Šč¢Œč¢Žč¢č¢č¢‘č¢“č¢”č¢•č¢—", 4, "č¢", 4, "č¢£č¢„", 5, "å°å­ę ”č‚–å•øē¬‘ę•ˆę„”äŗ›ę­‡čŽéž‹åęŒŸęŗé‚Ŗę–œčƒč°å†™ę¢°åøčŸ¹ę‡ˆę³„ę³»č°¢å±‘č–ŖčŠÆé”Œę¬£č¾›ę–°åæ»åæƒäæ”č”…ę˜Ÿč…„ēŒ©ęƒŗå…“åˆ‘åž‹å½¢é‚¢č”Œé†’å¹øęę€§å§“å…„å‡¶čƒøåŒˆę±¹é›„ē†Šä¼‘äæ®ē¾žęœ½å—…锈ē§€č¢–ē»£å¢ŸęˆŒéœ€č™šå˜˜é”»å¾č®øč“„é…—å™ę—­åŗē•œę¤ēµ®å©æē»Ŗē»­č½©å–§å®£ę‚¬ę—‹ēŽ„"], - ["d140", "č¢¬č¢®č¢Æč¢°č¢²", 4, "č¢øč¢¹č¢ŗč¢»č¢½č¢¾č¢æč£€č£ƒč£„č£‡č£ˆč£Šč£‹č£Œč£č£č£č£‘č£“č£–č£—č£š", 4, "č£ č£”č£¦č£§č£©", 6, "č£²č£µč£¶č£·č£ŗč£»č£½č£æ褀褁褃", 5], - ["d180", "褉褋", 4, "褑褔", 4, "褜", 4, "č¤¢č¤£č¤¤č¤¦č¤§č¤Ø褩褬褭褮č¤Æč¤±č¤²č¤³č¤µč¤·é€‰ē™£ēœ©ē»šé“č–›å­¦ē©“é›Ŗč”€å‹‹ē†å¾Ŗę—¬čÆ¢åÆ»é©Æå·”ę®‰ę±›č®­č®Æ逊čæ…åŽ‹ęŠ¼éø¦éø­å‘€äø«čŠ½ē‰™čšœå“–č”™ę¶Æ雅哑äŗšč®¶ē„‰å’½é˜‰ēƒŸę·¹ē›äø„ē ”čœ’å²©å»¶č؀颜阎ē‚Žę²æå„„ęŽ©ēœ¼č”ę¼”č‰³å °ē‡•åŽŒē šé›å”å½¦ē„°å®“谚éŖŒę®ƒå¤®éøÆē§§ęØꉬä½Æē–”ē¾Šę“‹é˜³ę°§ä»°ē—’å…»ę ·ę¼¾é‚€č…°å¦–ē‘¶"], - ["d240", "č¤ø", 8, "č„‚č„ƒč„…", 24, "č„ ", 5, "脧", 19, "č„¼"], - ["d280", "č„½č„¾č¦€č¦‚č¦„č¦…č¦‡", 26, "ę‘‡å°§é„ēŖ‘č°£å§šå’¬čˆ€čÆč¦č€€ę¤°å™Žč€¶ēˆ·é‡Žå†¶ä¹Ÿé”µęŽ–äøšå¶ę›³č…‹å¤œę¶²äø€å£¹åŒ»ę–é“±ä¾ä¼Šč”£é¢å¤·é—ē§»ä»Ŗ胰ē–‘ę²‚å®œå§Øå½ę¤…čšå€šå·²ä¹™ēŸ£ä»„č‰ŗęŠ‘ę˜“é‚‘å±¹äŗæå½¹č‡†é€ø肄ē–«äŗ¦č£”ę„ęƅåæ†ä¹‰ē›Šęŗ¢čÆ£č®®č°ŠčƑ异ēæ¼ēæŒē»ŽčŒµč«å› ę®·éŸ³é˜“å§»åŸé“¶ę·«åƅ鄮尹引隐"], - ["d340", "č¦¢", 30, "č§ƒč§č§“č§”č§•č§—č§˜č§™č§›č§č§Ÿč§ č§”č§¢č§¤č§§č§Ø觩č§Ŗč§¬č§­č§®č§°č§±č§²č§“", 6], - ["d380", "觻", 4, "č؁", 5, "č؈", 21, "å°č‹±ęر婓鹰åŗ”ē¼ØčŽ¹č¤č„č§č‡čæŽčµ¢ē›ˆå½±é¢–ē”¬ę˜ å“Ÿę‹„ä½£č‡ƒē—ˆåŗø雍čøŠč›¹å’ę³³ę¶Œę°øęæ勇ē”Øå¹½ä¼˜ę‚ åæ§å°¤ē”±é‚®é“€ēŠ¹ę²¹ęøøé…‰ęœ‰å‹å³ä½‘é‡‰čƱ又幼čæ‚ę·¤äŗŽē›‚ę¦†č™žę„ščˆ†ä½™äæžé€¾é±¼ę„‰ęøęø”éš…äŗˆåرé›ØäøŽå±æē¦¹å®‡čÆ­ē¾½ēŽ‰åŸŸčŠ‹éƒåé‡å–»å³Ŗå¾”ę„ˆę¬²ē‹±č‚²čŖ‰"], - ["d440", "č؞", 31, "čØæ", 8, "詉", 21], - ["d480", "č©Ÿ", 25, "č©ŗ", 6, "굓åÆ“č£•é¢„č±«é©­éø³ęøŠå†¤å…ƒåž£č¢åŽŸę“č¾•å›­å‘˜åœ†ēŒæęŗē¼˜čæœč‹‘ę„æę€Øé™¢ę›°ēŗ¦č¶Šč·ƒé’„å²³ē²¤ęœˆę‚¦é˜…č€˜äŗ‘郧匀é™Ø允čæč•“é…ę™•éŸµå­•åŒē øę‚ę ½å“‰ē¾å®°č½½å†åœØå’±ę”’ęš‚čµžčµƒč„č‘¬é­ē³Ÿå‡æč—»ęž£ę—©ę¾”čš¤čŗå™Ŗ造ēš‚ē¶ē‡„č“£ę‹©åˆ™ę³½č“¼ę€Žå¢žę†Žę›¾čµ ę‰Žå–³ęø£ęœ­č½§"], - ["d540", "čŖ", 7, "čŖ‹", 7, "čŖ”", 46], - ["d580", "諃", 32, "é“”é—øēœØꠅę¦Ø咋乍ē‚øčÆˆę‘˜ę–‹å®…ēŖ„å€ŗåÆØēž»ęÆ”č©¹ē²˜ę²¾ē›ę–©č¾—哭展č˜øę ˆå ęˆ˜ē«™ę¹›ē»½ę؟ē« å½°ę¼³å¼ ęŽŒę¶ØꝖäøˆåøč“¦ä»—čƒ€ē˜“éšœę‹›ę˜­ę‰¾ę²¼čµµē…§ē½©å…†č‚‡å¬é®ęŠ˜å“²č›°č¾™č€…é”—č”—čæ™ęµ™ēę–ŸēœŸē”„ē §č‡»č“žé’ˆä¾¦ęž•ē–¹čƊ震ęŒÆ镇阵č’øęŒ£ēå¾ē‹°äŗ‰ę€”ę•“ę‹Æę­£ę”æ"], - ["d640", "諤", 34, "謈", 27], - ["d680", "謤謄謧", 30, "åø§ē—‡éƒ‘čÆčŠęžę”Æå±čœ˜ēŸ„č‚¢č„‚ę±ä¹‹ē»‡čŒē›“ę¤ę®–ę‰§å€¼ä¾„å€ęŒ‡ę­¢č¶¾åŖę—Øēŗøåæ—ęŒšęŽ·č‡³č‡“ē½®åøœå³™åˆ¶ę™ŗē§©ēؚč“Øē‚™ē—”ę»žę²»ēŖ’äø­ē›…åæ é’Ÿč”·ē»ˆē§č‚æé‡ä»²ä¼—čˆŸå‘Øå·žę“²čƌē²„č½“č‚˜åøšå’’ēš±å®™ę˜¼éŖ¤ē ę Ŗč››ęœ±ēŒŖčÆøčƛ逐ē«¹ēƒ›ē…®ę‹„ēž©å˜±äø»č‘—ęŸ±åŠ©č›€č“®é“øē­‘"], - ["d740", "譆", 31, "č­§", 4, "č­­", 25], - ["d780", "讇", 24, "讬讱讻čƇčƐčÆŖč°‰č°žä½ę³Øē„é©»ęŠ“ēˆŖę‹½äø“ē –č½¬ę’°čµšēÆ†ę”©åŗ„č£…å¦†ę’žå£®ēŠ¶ę¤Žé”„čæ½čµ˜å ē¼€č°†å‡†ę‰ę‹™å“ę”Œē¢čŒé…Œå•„ē€ē¼ęµŠå…¹å’Ø资å§æę»‹ę·„å­œē“«ä»”ē±½ę»“子č‡Ŗęøå­—é¬ƒę£•čøŖ宗ē»¼ę€»ēŗµé‚¹čµ°å„ęē§Ÿč¶³å’ę—ē„–čƅ阻ē»„é’»ēŗ‚嘓醉꜀ē½Ŗ尊遵ę˜Øå·¦ä½ęŸžåšä½œååŗ§"], - ["d840", "č°ø", 8, "č±‚č±ƒč±„č±…č±ˆč±Šč±‹č±", 7, "č±–č±—č±˜č±™č±›", 5, "č±£", 6, "豬", 6, "豓豵豶豷豻", 6, "č²ƒč²„č²†č²‡"], - ["d880", "č²ˆč²‹č²", 6, "č²•č²–č²—č²™", 20, "äŗäøŒå…€äøå»æ卅äø•äŗ˜äøžé¬²å­¬å™©äøØē¦ŗäøæ匕乇夭ēˆ»å®ę°å›Ÿčƒ¤é¦—ęƓē¾é¼—äø¶äŗŸé¼ä¹œä¹©äŗ“čŠˆå­›å•¬å˜ä»„åŽåŽåŽ£åŽ„åŽ®é„čµåŒšåµåŒ¦åŒ®åŒ¾čµœå¦å£åˆ‚åˆˆåˆŽåˆ­åˆ³åˆæ剀剌剞剔剜č’Æ剽劂劁劐劓冂ē½”äŗ»ä»ƒä»‰ä»‚ä»Ø仔仫仞伛仳伢佤仵伄伧伉伫佞佧ę”ø佚佝"], - ["d940", "č²®", 62], - ["d980", "č³­", 32, "佟佗伲伽佶体侑侉侃侏佾佻ä¾Ŗ佼侬侔äæ¦äæØäæŖäæ…äæšäæ£äæœäæ‘äæŸäæø倩偌äæ³å€¬å€å€®å€­äæ¾å€œå€Œå€„å€Ø偾偃偕偈偎偬偻傄傧傩å‚ŗåƒ–å„†åƒ­åƒ¬åƒ¦åƒ®å„‡å„‹ä»ę°½ä½˜ä½„äæŽé¾ ę±†ē±“兮巽黉馘冁夔勹匍č؇匐凫夙兕äŗ å…–äŗ³č”®č¢¤äŗµč„”č£’ē¦€å¬“蠃ē¾ø冫冱冽冼"], - ["da40", "č“Ž", 14, "č“ čµ‘čµ’čµ—čµŸčµ„čµØ赩čµŖ赬赮čµÆčµ±čµ²čµø", 8, "č¶‚č¶ƒč¶†č¶‡č¶ˆč¶‰č¶Œ", 4, "趒趓趕", 9, "趠趔"], - ["da80", "č¶¢č¶¤", 12, "č¶²č¶¶č¶·č¶¹č¶»č¶½č·€č·č·‚č·…č·‡č·ˆč·‰č·Šč·č·č·’č·“č·”å‡‡å†–å†¢å†„č® č®¦č®§č®Ŗ讓讵讷čƂčƃčƋčƏčƎčƒčƓčƔčƖčƘčƙčƜčƟčÆ čƤčÆØčÆ©čÆ®čÆ°čƳčƶčƹčƼčÆæč°€č°‚č°„č°‡č°Œč°č°‘č°’č°”č°•č°–č°™č°›č°˜č°č°Ÿč° č°”č°„č°§č°Ŗč°«č°®č°Æč°²č°³č°µč°¶å©åŗ阝阢阔阱é˜Ŗ阽阼陂陉陔陟陧陬陲陓隈隍隗隰邗邛邝邙邬邔邓邳邶é‚ŗ"], - ["db40", "č·•č·˜č·™č·œč· č·”č·¢č·„č·¦č·§č·©č·­č·®č·°č·±č·²č·“č·¶č·¼č·¾", 6, "čø†čø‡čøˆčø‹čøčøŽčøčø‘čø’čø“čø•", 7, "čø čø”čø¤", 4, "čø«čø­čø°čø²čø³čø“čø¶čø·čøøčø»čø¼čø¾"], - ["db80", "čøæč¹ƒč¹…č¹†č¹Œ", 4, "č¹“", 5, "č¹š", 11, "č¹§č¹Øč¹Ŗč¹«č¹®č¹±é‚ø邰郏郅邾郐郄郇郓郦郢郜郗郛郫éƒÆ郾鄄鄢鄞鄣鄱é„Æ鄹酃酆刍儂劢劬劭劾å“æ勐勖勰叟ē‡®ēŸå»“凵凼é¬Æ厶弁ē•šå·Æ坌垩垔唾墼壅壑圩圬åœŖ圳圹圮åœÆ坜圻坂坩垅坫垆坼坻åØ坭坶坳垭垤垌垲埏垧垓垓垠埕埘埚埙埒åžø埓åŸÆåŸø埤埝"], - ["dc40", "č¹³č¹µč¹·", 4, "č¹½č¹¾čŗ€čŗ‚čŗƒčŗ„čŗ†čŗˆ", 6, "čŗ‘čŗ’čŗ“čŗ•", 6, "čŗčŗŸ", 11, "čŗ­čŗ®čŗ°čŗ±čŗ³", 6, "čŗ»", 7], - ["dc80", "軃", 10, "č»", 21, "堋堍埽埭堀堞堙唄堠唄唬墁墉墚墀é¦Ø鼙ę‡æč‰¹č‰½č‰æ芏芊čŠØ芄芎芑芗芙芫čŠøčŠ¾čŠ°č‹ˆč‹Šč‹£čŠ˜čŠ·čŠ®č‹‹č‹Œč‹čŠ©čŠ“čŠ”čŠŖčŠŸč‹„č‹ŽčŠ¤č‹”čŒ‰č‹·č‹¤čŒčŒ‡č‹œč‹“č‹’č‹˜čŒŒč‹»č‹“čŒ‘čŒščŒ†čŒ”čŒ•č‹ č‹•čŒœč‘č›čœčŒˆčŽ’čŒ¼čŒ“čŒ±čŽ›čžčŒÆ荏荇荃荟荀茗荠茭čŒŗčŒ³č¦č„"], - ["dd40", "軄", 62], - ["dd80", "č¼¤", 32, "čØčŒ›č©č¬čŖč­č®čŽ°čøčŽ³čŽ“čŽ čŽŖčŽ“čŽœčŽ…č¼čŽ¶čŽ©č½čŽøč»čŽ˜čŽžčŽØčŽŗčŽ¼ččč„č˜å ‡č˜č‹čč½č–čœčø萑萆菔菟萏萃čøč¹čŖč…č€č¦č°č”č‘œč‘‘č‘šč‘™č‘³č’‡č’ˆč‘ŗ蒉č‘øč¼č‘†č‘©č‘¶č’Œč’Žč±č‘­č“č“č“č“¦č’½č““č“Šč’æč’ŗč“ č’”č’¹č’“č’—č“„č“£č”Œē”č”øč“°č”¹č”Ÿč”ŗ"], - ["de40", "č½…", 32, "č½Ŗč¾€č¾Œč¾’č¾č¾ č¾”č¾¢č¾¤č¾„č¾¦č¾§č¾Ŗč¾¬č¾­č¾®č¾Æč¾²č¾³č¾“č¾µč¾·č¾øč¾ŗč¾»č¾¼č¾æčæ€čæƒčæ†"], - ["de80", "čæ‰", 4, "čæčæ’čæ–čæ—čæščæ čæ”čæ£čæ§čæ¬čæÆčæ±čæ²čæ“čæµčæ¶čæŗčæ»čæ¼čæ¾čææé€‡é€ˆé€Œé€Žé€“é€•é€˜č•–č”»č“æč“¼č•™č•ˆč•Ø蕤蕞č•ŗēž¢č•ƒč•²č•»č–¤č–Øč–‡č–č•¹č–®č–œč–…č–¹č–·č–°č—“č—č—œč—æč˜§č˜…č˜©č˜–č˜¼å»¾å¼ˆå¤¼å„č€·å„•å„šå„˜åŒå°¢å°„å°¬å°“ę‰Œę‰ŖęŠŸęŠ»ę‹Šę‹šę‹—ę‹®ęŒ¢ę‹¶ęŒ¹ę‹ęƒęŽ­ę¶ę±ęŗęŽŽęŽ“ę­ęŽ¬ęŽŠę©ęŽ®ęŽ¼ę²ęøꏠęæę„ęžęŽę‘’ę†ęŽ¾ę‘…ę‘ę‹ę›ę ęŒę¦ę”ę‘žę’„ę‘­ę’–"], - ["df40", "這逜連逤逄逧", 5, "逰", 4, "逷逹é€ŗ逽é€æ遀遃遅遆遈", 4, "過達違遖遙遚遜", 5, "遤遦遧適éŖ遫遬éÆ", 4, "遶", 6, "遾邁"], - ["df80", "還邅邆邇邉邊邌", 4, "邒邔邖邘邚邜邞邟邠邤還邧é‚Ø邩邫邭邲邷邼邽é‚æ郀ę‘ŗę’·ę’ø꒙ę’ŗę“€ę“ę“—ę“¤ę“¢ę”‰ę”„ę”®å¼‹åæ’ē”™å¼‘卟叱叽叩åØ叻吒吖吆呋呒呓呔呖呃吔呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咓哒咧咦哓哔呲咣哕咻å’æ哌哙哚哜咩å’Ŗ咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧å”Ŗ啧喏喵啉啭啁啕å”æ啐唼"], - ["e040", "郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郄郩éƒŖ郬郮郰郱郲郳郵郶郷郹éƒŗ郻郼éƒæ鄀鄁鄃鄅", 19, "鄚鄛鄜"], - ["e080", "鄝鄟鄠鄔鄤", 10, "鄰鄲", 6, "é„ŗ", 8, "酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙å—Ŗ嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄å—Æ嗄嗲嗳嗌嗍å—Øå—µå—¤č¾”å˜žå˜ˆå˜Œå˜å˜¤å˜£å—¾å˜€å˜§å˜­å™˜å˜¹å™—å˜¬å™å™¢å™™å™œå™Œå™”åš†å™¤å™±å™«å™»å™¼åš…åš“åšÆ囔囗囝囔囵囫囹å›æ圄圊圉圜åøåø™åø”åø‘åø±åø»åø¼"], - ["e140", "酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧é…Ø酫酭酳é…ŗ酻酼醀", 4, "醆醈醊醎醏醓", 6, "醜", 5, "醤", 5, "醫醬醰醱醲醳醶醷é†ø醹醻"], - ["e180", "醼", 10, "釈釋釐釒", 9, "針", 8, "åø·å¹„幔幛幞幔岌å±ŗ岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峄哂哃哧哦哮哤哞哆哛嵘哾哓哽嵬嵛åµÆåµåµ«åµ‹åµŠåµ©åµ“å¶‚å¶™å¶č±³å¶·å·…å½³å½·å¾‚å¾‡å¾‰å¾Œå¾•å¾™å¾œå¾Øå¾­å¾µå¾¼č”¢å½”ēŠ­ēŠ°ēŠ“ēŠ·ēŠøē‹ƒē‹ē‹Žē‹ē‹’ē‹Øē‹Æē‹©ē‹²ē‹“ē‹·ēŒē‹³ēŒƒē‹ŗ"], - ["e240", "釦", 62], - ["e280", "鈄", 32, "ē‹»ēŒ—ēŒ“ēŒ”ēŒŠēŒžēŒēŒ•ēŒ¢ēŒ¹ēŒ„ēŒ¬ēŒøēŒ±ēēē—ē ē¬ēÆē¾čˆ›å¤„飧夤夂鄣鄧", 5, "鄓鄷鄽馀馄馇馊馍馐馑馓馔馕åŗ€åŗ‘åŗ‹åŗ–åŗ„åŗ åŗ¹åŗµåŗ¾åŗ³čµ“廒廑廛å»Øå»Ŗč†ŗåæ„åæ‰åæ–åæę€ƒåæ®ę€„åæ”åæ¤åæ¾ę€…ꀆåæŖåæ­åæøę€™ę€µę€¦ę€›ę€ę€ę€©ę€«ę€Šę€æꀔęøę¹ę»ęŗꁂ"], - ["e340", "鉆", 45, "鉵", 16], - ["e380", "銆", 7, "銏", 24, "ęŖę½ę‚–ę‚šę‚­ę‚ę‚ƒę‚’ę‚Œę‚›ęƒ¬ę‚»ę‚±ęƒęƒ˜ęƒ†ęƒšę‚“ę„ ę„¦ę„•ę„£ęƒ“ę„€ę„Žę„«ę…Šę…µę†¬ę†”ę†§ę†·ę‡”ę‡µåæéš³é—©é—«é—±é—³é—µé—¶é—¼é—¾é˜ƒé˜„阆阈阊阋阌阍阏阒阕阖阗阙阚äø¬ēˆæęˆ•ę°µę±”ę±œę±Šę²£ę²…ę²ę²”ę²Œę±Øę±©ę±“ę±¶ę²†ę²©ę³ę³”ę²­ę³·ę³øę³±ę³—ę²²ę³ ę³–ę³ŗę³«ę³®ę²±ę³“ę³Æę³¾"], - ["e440", "éŠØ", 5, "éŠÆ", 24, "鋉", 31], - ["e480", "鋩", 32, "ę“¹ę“§ę“Œęµƒęµˆę“‡ę“„ę“™ę“Žę“«ęµę“®ę“µę“šęµęµ’ęµ”ę“³ę¶‘ęµÆę¶žę¶ ęµžę¶“ę¶”ęµœęµ ęµ¼ęµ£ęøšę·‡ę·…ę·žęøŽę¶æę· ęø‘ę·¦ę·ę·™ęø–궫ęøŒę¶®ęø«ę¹®ę¹Žę¹«ęŗ²ę¹Ÿęŗ†ę¹“ę¹”ęø²ęø„ę¹„ę»Ÿęŗ±ęŗ˜ę» ę¼­ę»¢ęŗ„ęŗ§ęŗ½ęŗ»ęŗ·ę»—ęŗ“ę»ęŗę»‚ęŗŸę½¢ę½†ę½‡ę¼¤ę¼•ę»¹ę¼Æę¼¶ę½‹ę½“ę¼Ŗę¼‰ę¼©ę¾‰ę¾ę¾Œę½øę½²ę½¼ę½ŗęæ‘"], - ["e540", "錊", 51, "éŒæ", 10], - ["e580", "鍊", 31, "鍫ęæ‰ę¾§ę¾¹ę¾¶ęæ‚ęæ”ęæ®ęæžęæ ęæÆē€šē€£ē€›ē€¹ē€µēēžå®€å®„宕宓宄å®øē”ÆéŖžę“åƤåÆ®č¤°åÆ°č¹‡č¬‡č¾¶čæ“čæ•čæ„čæ®čæ¤čæ©čæ¦čæ³čæØ逅逄逋逦逑逍逖途逵逶逭é€Æ遄遑遒遐éØé˜é¢é›ęš¹é“é½é‚‚é‚ˆé‚ƒé‚‹å½å½—å½–å½˜å°»å’«å±å±™å­±å±£å±¦ē¾¼å¼Ŗå¼©å¼­č‰“å¼¼é¬»å±®å¦å¦ƒå¦å¦©å¦Ŗ妣"], - ["e640", "鍬", 34, "鎐", 27], - ["e680", "鎬", 29, "鏋鏌鏍妗姊妫妞妤姒妲å¦Æ姗妾å؅å؆姝å؈姣姘姹å،å؉åزåØ“åؑåØ£åؓ婀婧婊婕åØ¼å©¢å©µčƒ¬åŖŖåŖ›å©·å©ŗåŖ¾å««åŖ²å«’å«”åŖø嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孄孳孑孓孢驵驷é©øé©ŗé©æ驽éŖ€éŖéŖ…éŖˆéŖŠéŖéŖ’éŖ“éŖ–éŖ˜éŖ›éŖœéŖéŖŸéŖ éŖ¢éŖ£éŖ„éŖ§ēŗŸēŗ”ēŗ£ēŗ„ēŗØēŗ©"], - ["e740", "鏎", 7, "鏗", 54], - ["e780", "鐎", 32, "ēŗ­ēŗ°ēŗ¾ē»€ē»ē»‚ē»‰ē»‹ē»Œē»ē»”ē»—ē»›ē» ē»”ē»Øē»«ē»®ē»Æē»±ē»²ē¼ē»¶ē»ŗē»»ē»¾ē¼ē¼‚ē¼ƒē¼‡ē¼ˆē¼‹ē¼Œē¼ē¼‘ē¼’ē¼—ē¼™ē¼œē¼›ē¼Ÿē¼”", 6, "ē¼Ŗē¼«ē¼¬ē¼­ē¼Æ", 4, "ē¼µå¹ŗē•æ巛ē”¾é‚•ēŽŽēŽ‘ēŽ®ēŽ¢ēŽŸēē‚ē‘ēŽ·ēŽ³ē€ē‰ēˆē„ē™é”¼ēŠē©ē§ēžēŽŗē²ēēŖē‘›ē¦ē„ēØē°ē®ē¬"], - ["e840", "éÆ", 14, "éæ", 43, "鑬鑭鑮é‘Æ"], - ["e880", "鑰", 20, "钑钖钘铇铏铓铔铚铦铻锜锠ē›ēšē‘ē‘œē‘—ē‘•ē‘™ē‘·ē‘­ē‘¾ē’œē’Žē’€ē’ē’‡ē’‹ē’žē’Øē’©ē’ē’§ē“’ē’ŗéŸŖéŸ«éŸ¬ęŒę“ęžęˆę©ęž„ęž‡ęŖę³ęž˜ęž§ęµęžØęžžęž­ęž‹ę·ę¼ęŸ°ę ‰ęŸ˜ę ŠęŸ©ęž°ę ŒęŸ™ęžµęŸšęž³ęŸę €ęŸƒęžøęŸ¢ę ŽęŸęŸ½ę ²ę ³ę” ę””ę”Žę”¢ę”„ę”¤ę¢ƒę ę”•ę”¦ę”ę”§ę”€ę ¾ę”Šę”‰ę ©ę¢µę¢ę”“ę”·ę¢“ę”«ę£‚ę„®ę£¼ę¤Ÿę¤ ę£¹"], - ["e940", "锧锳锽镃镈镋镕镚镠镮镓镵長", 7, "門", 42], - ["e980", "閫", 32, "ę¤¤ę£°ę¤‹ę¤ę„—ę££ę¤ę„±ę¤¹ę„ ę„‚ę„ę¦„ę„«ę¦€ę¦˜ę„øę¤“ę§Œę¦‡ę¦ˆę§Žę¦‰ę„¦ę„£ę„¹ę¦›ę¦§ę¦»ę¦«ę¦­ę§”ę¦±ę§ę§Šę§Ÿę¦•ę§ ę¦ę§æęØÆꧭęؗęØ˜ę©„ę§²ę©„ęؾęŖ ę©ę©›ęصęŖŽę©¹ęؽęØØę©˜ę©¼ęŖ‘ęŖęŖ©ęŖ—ęŖ«ēŒ·ē’ę®ę®‚ę®‡ę®„ę®’ę®“ę®ę®šę®›ę®”ę®Ŗč½«č½­č½±č½²č½³č½µč½¶č½øč½·č½¹č½ŗč½¼č½¾č¾č¾‚č¾„č¾‡č¾‹"], - ["ea40", "闌", 27, "闬é—æ阇阓阘阛阞阠阣", 6, "阫阬阭é˜Æ阰阷é˜ø阹é˜ŗ阾陁陃陊陎陏陑陒陓陖陗"], - ["ea80", "陘陙陚陜陝陞陠陣附陦陫陭", 4, "陳é™ø", 12, "éš‡éš‰éšŠč¾č¾Žč¾č¾˜č¾šč»Žęˆ‹ęˆ—ęˆ›ęˆŸęˆ¢ęˆ”ęˆ„ęˆ¤ęˆ¬č‡§ē“Æē““ē“æē”ē”‘ē”“ꔓꗮę—Æę—°ę˜Šę˜™ę²ę˜ƒę˜•ę˜€ē‚…ę›·ę˜ę˜“ę˜±ę˜¶ę˜µč€†ę™Ÿę™”ę™ę™ę™–ę™”ę™—ę™·ęš„ęšŒęš§ęšęš¾ę››ę›œę›¦ę›©č“²č“³č“¶č“»č“½čµ€čµ…čµ†čµˆčµ‰čµ‡čµčµ•čµ™č§‡č§Šč§‹č§Œč§Žč§č§č§‘ē‰®ēŠŸē‰ē‰¦ē‰Æē‰¾ē‰æēŠ„ēŠ‹ēŠēŠēŠ’ęŒˆęŒ²ęŽ°"], - ["eb40", "隌階隑隒隓隕隖隚際隝", 9, "éšØ", 7, "隱隲隓隵隷éšøéšŗ隻éšæ雂雃雈雊雋雐雑雓雔雖", 9, "é›”", 6, "雫"], - ["eb80", "雬雭雮雰雱雲雓雵é›øé›ŗ電雼雽é›æ霂霃霅霊霋霌霐霑霒霔霕霗", 4, "霝霟霠ęæꓘ耄ęÆŖęƳęƽęƵęÆ¹ę°…ę°‡ę°†ę°ę°•ę°˜ę°™ę°šę°”ę°©ę°¤ę°Ŗę°²ę”µę••ę•«ē‰ē‰’ē‰–ēˆ°č™¢åˆ–č‚Ÿč‚œč‚“č‚¼ęœŠč‚½č‚±č‚«č‚­č‚“č‚·čƒ§čƒØ胩čƒŖčƒ›čƒ‚čƒ„čƒ™čƒčƒ—ęœčƒčƒ«čƒ±čƒ“čƒ­č„č„Žčƒ²čƒ¼ęœ•č„’č±šč„¶č„žč„¬č„˜č„²č…ˆč…Œč…“č…“č…™č…šč…±č… č…©č…¼č…½č…­č…§å”åŖµč†ˆč†‚č†‘ę»•č†£č†Ŗč‡Œęœ¦č‡Šč†»"], - ["ec40", "霔", 8, "霫霬霮éœÆ霱霳", 4, "éœŗ霻霼霽éœæ", 18, "靔靕靗靘靚靜靝靟靣靤靦靧éØéŖ", 7], - ["ec80", "靲靵靷", 4, "靽", 7, "鞆", 4, "鞌鞎鞏鞐鞓鞕鞖鞗鞙", 4, "č‡č†¦ę¬¤ę¬·ę¬¹ę­ƒę­†ę­™é£‘é£’é£“é£•é£™é£šę®³å½€ęÆ‚č§³ę–é½‘ę–“ę–¼ę—†ę—„ę—ƒę—Œę—Žę—’ę—–ē‚€ē‚œē‚–ē‚ē‚»ēƒ€ē‚·ē‚«ē‚±ēƒØēƒŠē„ē„“ē„–ē„Æē„±ē…³ē…œē…Øē……ē…²ē…Šē…øē…ŗē†˜ē†³ē†µē†Øē† ē‡ ē‡”ē‡§ē‡¹ēˆēˆØē¬ē„˜ē…¦ē†¹ęˆ¾ęˆ½ę‰ƒę‰ˆę‰‰ē¤»ē„€ē„†ē„‰ē„›ē„œē„“ē„šē„¢ē„—ē„ ē„Æē„§ē„ŗē¦…ē¦Šē¦šē¦§ē¦³åæ‘åæ"], - ["ed40", "鞞鞟鞔鞢鞤", 6, "鞬鞮鞰鞱鞳鞵", 46], - ["ed80", "韤韄éŸØ韮", 4, "韓韷", 23, "ę€¼ęęšę§ęę™ę£ę‚«ę„†ę„ę…ę†©ę†ę‡‹ę‡‘ęˆ†č‚€čæę²“ę³¶ę·¼ēŸ¶ēŸøē €ē ‰ē —ē ˜ē ‘ę–«ē ­ē œē ē ¹ē ŗē »ē Ÿē ¼ē „ē ¬ē £ē ©ē”Žē”­ē”–ē”—ē ¦ē”ē”‡ē”Œē”Ŗē¢›ē¢“ē¢šē¢‡ē¢œē¢”ē¢£ē¢²ē¢¹ē¢„ē£”ē£™ē£‰ē£¬ē£²ē¤…ē£“ē¤“ē¤¤ē¤žē¤“龛黹黻黼ē›±ēœ„ēœē›¹ēœ‡ēœˆēœšēœ¢ēœ™ēœ­ēœ¦ēœµēœøēē‘ē‡ēƒēšēØ"], - ["ee40", "頏", 62], - ["ee80", "锎", 32, "ē¢ē„ēæēžē½ēž€ēžŒēž‘ēžŸēž ēž°ēžµēž½ē”ŗē•€ē•Žē•‹ē•ˆē•›ē•²ē•¹ē–ƒē½˜ē½”ē½Ÿč©ˆē½Øē½“ē½±ē½¹ē¾ē½¾ē›ē›„č ²é’…é’†é’‡é’‹é’Šé’Œé’é’é’é’”é’—é’•é’šé’›é’œé’£é’¤é’«é’Ŗ钭钬é’Æ钰钲钓钶", 4, "钼钽é’æ铄铈", 6, "铐铑铒铕铖铗铙铘铛铞铟铠铢铤铄铧é“Øé“Ŗ"], - ["ef40", "é”Æ", 5, "颋颎颒颕颙颣é¢Ø", 37, "飏飐飔飖飗飛飜飝飠", 4], - ["ef80", "飄飦飩", 30, "铩铫铮é“Æ铳铓铵铷铹铼铽é“æ锃锂锆锇锉锊锍锎锏锒", 4, "锘锛锝锞锟锢é”Ŗ锫锩锬锱锲锓锶锷é”ø锼锾é”æ镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镔镢镤", 8, "é•Æ镱镲镳é”ŗēŸ§ēŸ¬é›‰ē§•ē§­ē§£ē§«ē؆嵇ē؃ē؂ē؞ēؔ"], - ["f040", "餈", 4, "餎餏餑", 28, "é¤Æ", 26], - ["f080", "é„Š", 9, "é„–", 12, "鄤鄦鄳é„ø鄹鄻鄾馂馃馉ēعēØ·ē©‘黏馄ē©°ēšˆēšŽēš“ēš™ēš¤ē“žē“ ē”¬éø éø¢éøØ", 4, "éø²éø±éø¶éøøéø·éø¹éøŗéø¾é¹é¹‚鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦", 6, "鹱鹭鹳ē–’ē–”ē––ē– ē–ē–¬ē–£ē–³ē–“ē–øē—„ē–±ē–°ē—ƒē—‚ē—–ē—ē—£ē—Øē—¦ē—¤ē—«ē—§ē˜ƒē—±ē—¼ē—æē˜ē˜€ē˜…ē˜Œē˜—ē˜Šē˜„ē˜˜ē˜•ē˜™"], - ["f140", "馌馎馚", 10, "馦馧馩", 47], - ["f180", "駙", 32, "ē˜›ē˜¼ē˜¢ē˜ ē™€ē˜­ē˜°ē˜æē˜µē™ƒē˜¾ē˜³ē™ē™žē™”ē™œē™–ē™«ē™ÆēæŠē«¦ē©øē©¹ēŖ€ēŖ†ēŖˆēŖ•ēŖ¦ēŖ ēŖ¬ēŖØēŖ­ēŖ³č”¤č”©č”²č”½č”æč¢‚č¢¢č£†č¢·č¢¼č£‰č£¢č£Žč££č£„č£±č¤šč£¼č£Øč£¾č£°č¤”č¤™č¤“č¤›č¤Šč¤“č¤«č¤¶č„č„¦č„»ē–‹čƒ„ēš²ēš“ēŸœč€’č€”č€–č€œč€ č€¢č€„耦耧耩č€Øč€±č€‹č€µčƒč†čč’č©č±č¦ƒé”ø颀颃"], - ["f240", "é§ŗ", 62], - ["f280", "éع", 32, "é¢‰é¢Œé¢é¢é¢”é¢šé¢›é¢žé¢Ÿé¢”é¢¢é¢„é¢¦č™č™”č™¬č™®č™æč™ŗč™¼č™»čšØčščš‹čš¬čščš§čš£čšŖ蚓蚩蚶蛄蚵蛎蚰čšŗčš±čšÆč›‰č›čš“č›©č›±č›²č›­č›³č›čœ“č›žč›“č›Ÿč›˜č›‘čœƒčœ‡č›øčœˆčœŠčœčœ‰čœ£čœ»čœžčœ„čœ®čœščœ¾čˆčœ“čœ±čœ©čœ·čœæčž‚čœ¢č½č¾č»č č°čŒč®čž‹č“č£č¼č¤č™č„čž“čžÆčžØ蟒"], - ["f340", "驚", 17, "驲éŖƒéŖ‰éŖéŖŽéŖ”éŖ•éŖ™éŖ¦éŖ©", 6, "éŖ²éŖ³éŖ“éŖµéŖ¹éŖ»éŖ½éŖ¾éŖæ髃髄髆", 4, "髍髎髏髐髒體髕髖髗髙髚髛髜"], - ["f380", "髝髞髠髢髣髤髄髧é«Øé«©é«Ŗ髬髮髰", 8, "é«ŗ髼", 6, "é¬„é¬…é¬†čŸ†čžˆčž…čž­čž—čžƒčž«čŸ„čž¬čžµčž³čŸ‹čŸ“čž½čŸ‘čŸ€čŸŠčŸ›čŸŖčŸ čŸ®č –č “čŸ¾č Šč ›č ”č ¹č ¼ē¼¶ē½‚ē½„ē½…čˆē«ŗē«½ē¬ˆē¬ƒē¬„ē¬•ē¬Šē¬«ē¬ē­‡ē¬øē¬Ŗē¬™ē¬®ē¬±ē¬ ē¬„ē¬¤ē¬³ē¬¾ē¬žē­˜ē­šē­…ē­µē­Œē­ē­ ē­®ē­»ē­¢ē­²ē­±ē®ē®¦ē®§ē®øē®¬ē®ē®Øē®…ē®Ŗē®œē®¢ē®«ē®“ēƑēƁēƌēƝēƚēÆ„ēƦēÆŖē°ŒēƾēƼē°ē°–ē°‹"], - ["f440", "鬇鬉", 5, "鬐鬑鬒鬔", 10, "鬠鬔鬢鬤", 10, "鬰鬱鬳", 7, "鬽鬾é¬æ魀魆魊魋魌魎魐魒魓魕", 5], - ["f480", "魛", 32, "ē°Ÿē°Ŗē°¦ē°øē±ē±€č‡¾čˆčˆ‚čˆ„č‡¬č”„čˆ”čˆ¢čˆ£čˆ­čˆÆčˆØ舫čˆøčˆ»čˆ³čˆ“čˆ¾č‰„č‰‰č‰‹č‰č‰šč‰Ÿč‰Øč”¾č¢…č¢ˆč£˜č£Ÿč„žē¾ē¾Ÿē¾§ē¾Æē¾°ē¾²ē±¼ę•‰ē²‘ē²ē²œē²žē²¢ē²²ē²¼ē²½ē³ē³‡ē³Œē³ē³ˆē³…ē³—ē³Ø艮ęšØē¾æēæŽēæ•ēæ„ēæ”ēæ¦ēæ©ēæ®ēæ³ē³øēµ·ē¶¦ē¶®ē¹‡ēŗ›éŗøéŗ“čµ³č¶„č¶”č¶‘č¶±čµ§čµ­č±‡č±‰é…Šé…é…Žé…é…¤"], - ["f540", "é­¼", 62], - ["f580", "é®»", 32, "酢酔酰酩é…Æ酽酾酲酓酹醌醅醐醍醑醢醣é†Ŗ醭醮é†Æ醵醓é†ŗč±•é¹¾č¶øč·«čø…č¹™č¹©č¶µč¶æč¶¼č¶ŗč·„č·–č·—č·šč·žč·Žč·č·›č·†č·¬č··č·øč·£č·¹č·»č·¤čø‰č·½čø”čøčøŸčø¬čø®čø£čøÆčøŗč¹€čø¹čøµčø½čø±č¹‰č¹č¹‚č¹‘č¹’č¹Šč¹°č¹¶č¹¼č¹Æč¹“čŗ…čŗčŗ”čŗčŗœčŗžč±øč²‚č²Šč²…č²˜č²”ę–›č§–č§žč§šč§œ"], - ["f640", "éƜ", 62], - ["f680", "鰛", 32, "规觫č§ÆčØ¾č¬¦é“é›©é›³é›Æ霆霁霈霏霎éœŖ霭霰霾龀龃龅", 5, "龌黾鼋鼍隹隼隽雎雒ēžæ雠銎銮鋈錾éŖ鏊鎏鐾鑫é±æ鲂鲅鲆鲇鲈ēأ鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞", 5, "鲄", 4, "鲫鲭鲮鲰", 7, "é²ŗ鲻鲼鲽鳄鳅鳆鳇鳊鳋"], - ["f740", "é°¼", 62], - ["f780", "鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝é²Ŗ鲬é²Æ鲹鲾", 4, "鳈鳉鳑鳒鳚鳛鳠鳔鳌", 4, "鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔éžÆ鞫鞣鞲鞓éŖ±éŖ°éŖ·é¹˜éŖ¶éŖŗéŖ¼é«é«€é«…髂髋髌髑魅魃魇魉魈魍魑é£Ø餍餮鄕鄔髟體髦é«Æ髫髻髭髹鬈鬏鬓鬟鬣éŗ½éŗ¾ēø»éŗ‚éŗ‡éŗˆéŗ‹éŗ’鏖éŗéŗŸé»›é»œé»é» é»Ÿé»¢é»©é»§é»„é»Ŗé»Æ鼢鼬é¼Æ鼹鼷鼽鼾齄"], - ["f840", "é³£", 62], - ["f880", "é“¢", 32], - ["f940", "鵃", 62], - ["f980", "鶂", 32], - ["fa40", "鶣", 62], - ["fa80", "é·¢", 32], - ["fb40", "éøƒ", 27, "éø¤éø§éø®éø°éø“éø»éø¼é¹€é¹é¹é¹’鹓鹔鹖鹙鹝鹟鹠鹔鹢鹄鹮é¹Æ鹲鹓", 9, "éŗ€"], - ["fb80", "éŗéŗƒéŗ„éŗ…éŗ†éŗ‰éŗŠéŗŒ", 5, "éŗ”", 8, "éŗžéŗ ", 5, "éŗ§éŗØéŗ©éŗŖ"], - ["fc40", "éŗ«", 8, "éŗµéŗ¶éŗ·éŗ¹éŗŗéŗ¼éŗæ", 4, "黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黔黣黤黦é»Ø黫黬黭黮黰", 8, "é»ŗ黽é»æ", 6], - ["fc80", "鼆", 4, "鼌鼏鼑鼒鼔鼕鼖鼘鼚", 5, "鼔鼣", 8, "鼭鼮鼰鼱"], - ["fd40", "é¼²", 4, "é¼øé¼ŗé¼¼é¼æ", 4, "齅", 10, "齒", 38], - ["fd80", "é½¹", 5, "龁龂龍", 11, "龜龝龞龔", 4, "ļ¤¬ļ„¹ļ¦•ļ§§ļ§±"], - ["fe40", "ļ،ļ؍ļ؎ļ؏ļؑļؓļؔļؘļ؟ļØ ļØ”ļØ£ļؤļاļØØļØ©"] - ]; -}); - -// node_modules/iconv-lite/encodings/tables/gbk-added.json -var require_gbk_added = __commonJS((exports, module) => { - module.exports = [ - ["a140", "ī“†", 62], - ["a180", "ī”…", 32], - ["a240", "ī”¦", 62], - ["a280", "ī•„", 32], - ["a2ab", "ī¦", 5], - ["a2e3", "ā‚¬ī­"], - ["a2ef", "ī®īÆ"], - ["a2fd", "ī°ī±"], - ["a340", "ī–†", 62], - ["a380", "ī—…", 31, "怀"], - ["a440", "ī—¦", 62], - ["a480", "ī˜„", 32], - ["a4f4", "ī²", 10], - ["a540", "ī™†", 62], - ["a580", "īš…", 32], - ["a5f7", "ī½", 7], - ["a640", "īš¦", 62], - ["a680", "ī›„", 32], - ["a6b9", "īž…", 7], - ["a6d9", "īž", 6], - ["a6ec", "īž”īž•"], - ["a6f3", "īž–"], - ["a6f6", "īž—", 8], - ["a740", "īœ†", 62], - ["a780", "ī…", 32], - ["a7c2", "īž ", 14], - ["a7f2", "īžÆ", 12], - ["a896", "īž¼", 10], - ["a8bc", "īŸ‡"], - ["a8bf", "Ē¹"], - ["a8c1", "īŸ‰īŸŠīŸ‹īŸŒ"], - ["a8ea", "īŸ", 20], - ["a958", "īŸ¢"], - ["a95b", "īŸ£"], - ["a95d", "īŸ¤īŸ„īŸ¦"], - ["a989", "ć€¾āæ°", 11], - ["a997", "īŸ“", 12], - ["a9f0", "ī ", 14], - ["aaa1", "ī€€", 93], - ["aba1", "īž", 93], - ["aca1", "ī‚¼", 93], - ["ada1", "ī„š", 93], - ["aea1", "ī…ø", 93], - ["afa1", "ī‡–", 93], - ["d7fa", "ī ", 4], - ["f8a1", "īˆ“", 93], - ["f9a1", "īŠ’", 93], - ["faa1", "ī‹°", 93], - ["fba1", "īŽ", 93], - ["fca1", "īŽ¬", 93], - ["fda1", "īŠ", 93], - ["fe50", "āŗī –ī —ī ˜āŗ„ć‘³ć‘‡āŗˆāŗ‹ī žć–žć˜šć˜ŽāŗŒāŗ—ć„®ć¤˜ī ¦ć§ć§Ÿć©³ć§ī «ī ¬ć­Žć±®ć³ āŗ§ī ±ī ²āŗŖ䁖䅟āŗ®äŒ·āŗ³āŗ¶āŗ·ī »äŽ±äŽ¬āŗ»ää“–ä™”䙌ī”ƒ"], - ["fe80", "䜣䜩䝼䞍ā»Šä„‡ä„ŗ䄽䦂䦃䦅䦆䦟䦛䦷䦶ī””ī”•ä²£ä²Ÿä² ä²”䱷䲢䓓", 6, "䶮ī”¤ī‘Ø", 93] - ]; -}); - -// node_modules/iconv-lite/encodings/tables/gb18030-ranges.json -var require_gb18030_ranges = __commonJS((exports, module) => { - module.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189000] }; -}); - -// node_modules/iconv-lite/encodings/tables/cp949.json -var require_cp949 = __commonJS((exports, module) => { - module.exports = [ - ["0", "\x00", 127], - ["8141", "ź°‚ź°ƒź°…ź°†ź°‹", 4, "ź°˜ź°žź°Ÿź°”ź°¢ź°£ź°„", 6, "ź°®ź°²ź°³ź°“"], - ["8161", "ź°µź°¶ź°·ź°ŗź°»ź°½ź°¾ź°æź±", 9, "ź±Œź±Ž", 5, "ź±•"], - ["8181", "ź±–ź±—ź±™ź±šź±›ź±", 18, "ź±²ź±³ź±µź±¶ź±¹ź±»", 4, "ź²‚ź²‡ź²ˆź²ź²Žź²ź²‘ź²’ź²“ź²•", 6, "ź²žź²¢", 5, "ź²«ź²­ź²®ź²±", 6, "ź²ŗź²¾ź²æź³€ź³‚ź³ƒź³…ź³†ź³‡ź³‰ź³Šź³‹ź³", 7, "ź³–ź³˜", 7, "ź³¢ź³£ź³„ź³¦ź³©ź³«ź³­ź³®ź³²ź³“ź³·", 4, "ź³¾ź³æź“ź“‚ź“ƒź“…ź“‡", 4, "ź“Žź“ź“’ź““"], - ["8241", "ź“”ź“•ź“–ź“—ź“™ź“šź“›ź“ź“žź“Ÿź“”", 7, "ź“Ŗź“«ź“®", 5], - ["8261", "ź“¶ź“·ź“¹ź“ŗź“»ź“½", 6, "źµ†źµˆźµŠ", 5, "źµ‘źµ’źµ“źµ•źµ–źµ—"], - ["8281", "źµ™", 7, "źµ¢źµ¤", 7, "źµ®źµÆźµ±źµ²źµ·źµøźµ¹źµŗźµ¾ź¶€ź¶ƒ", 4, "ź¶Šź¶‹ź¶ź¶Žź¶ź¶‘", 10, "ź¶ž", 5, "ź¶„", 17, "ź¶ø", 7, "ź·‚ź·ƒź·…ź·†ź·‡ź·‰", 6, "ź·’ź·”", 7, "ź·ź·žź·Ÿź·”ź·¢ź·£ź·„", 18], - ["8341", "ź·ŗź·»ź·½ź·¾źø‚", 5, "źøŠźøŒźøŽ", 5, "źø•", 7], - ["8361", "źø", 18, "źø²źø³źøµźø¶źø¹źø»źø¼"], - ["8381", "źø½źø¾źøæź¹‚ź¹„ź¹‡ź¹ˆź¹‰ź¹‹ź¹ź¹‘ź¹’ź¹“ź¹•ź¹—", 4, "ź¹žź¹¢ź¹£ź¹¤ź¹¦ź¹§ź¹Ŗź¹«ź¹­ź¹®ź¹Æź¹±", 6, "ź¹ŗź¹¾", 5, "źŗ†", 5, "źŗ", 46, "źŗæź»ź»‚ź»ƒź»…", 6, "ź»Žź»’", 5, "ź»šź»›ź»", 8], - ["8441", "ź»¦ź»§ź»©ź»Ŗź»¬ź»®", 5, "ź»µź»¶ź»·ź»¹ź»ŗź»»ź»½", 8], - ["8461", "ź¼†ź¼‰ź¼Šź¼‹ź¼Œź¼Žź¼ź¼‘", 18], - ["8481", "ź¼¤", 7, "ź¼®ź¼Æź¼±ź¼³ź¼µ", 6, "ź¼¾ź½€ź½„ź½…ź½†ź½‡ź½Š", 5, "ź½‘", 10, "ź½ž", 5, "ź½¦", 18, "ź½ŗ", 5, "ź¾ź¾‚ź¾ƒź¾…ź¾†ź¾‡ź¾‰", 6, "ź¾’ź¾“ź¾”ź¾–", 5, "ź¾", 26, "ź¾ŗź¾»ź¾½ź¾¾"], - ["8541", "ź¾æźæ", 5, "źæŠźæŒźæ", 4, "źæ•", 6, "źæ", 4], - ["8561", "źæ¢", 5, "źæŖ", 5, "źæ²źæ³źæµźæ¶źæ·źæ¹", 6, "ė€‚ė€ƒ"], - ["8581", "ė€…", 6, "ė€ė€Žė€ė€‘ė€’ė€“ė€•", 6, "ė€ž", 9, "ė€©", 26, "ė†ė‡ė‰ė‹ėėėė‘ė’ė–ė˜ėšė›ėœėž", 29, "ė¾ėæė‚ė‚‚ė‚ƒė‚…", 6, "ė‚Žė‚ė‚’", 5, "ė‚›ė‚ė‚žė‚£ė‚¤"], - ["8641", "ė‚„ė‚¦ė‚§ė‚Ŗė‚°ė‚²ė‚¶ė‚·ė‚¹ė‚ŗė‚»ė‚½", 6, "ėƒ†ėƒŠ", 5, "ėƒ’"], - ["8661", "ėƒ“ėƒ•ėƒ–ėƒ—ėƒ™", 6, "ėƒ”ėƒ¢ėƒ£ėƒ¤ėƒ¦", 10], - ["8681", "ėƒ±", 22, "ė„Šė„ė„Žė„ė„‘ė„”ė„•ė„–ė„—ė„šė„ž", 4, "ė„¦ė„§ė„©ė„Ŗė„«ė„­", 6, "ė„¶ė„ŗ", 5, "ė…‚ė…ƒė……ė…†ė…‡ė…‰", 6, "ė…’ė…“ė…–ė…—ė…™ė…šė…›ė…ė…žė…Ÿė…”", 22, "ė…ŗė…»ė…½ė…¾ė…æė†ė†ƒ", 4, "ė†Šė†Œė†Žė†ė†ė†‘ė†•ė†–ė†—ė†™ė†šė†›ė†"], - ["8741", "ė†ž", 9, "ė†©", 15], - ["8761", "ė†¹", 18, "ė‡ė‡Žė‡ė‡‘ė‡’ė‡“ė‡•"], - ["8781", "ė‡–", 5, "ė‡žė‡ ", 7, "ė‡Ŗė‡«ė‡­ė‡®ė‡Æė‡±", 7, "ė‡ŗė‡¼ė‡¾", 5, "ėˆ†ėˆ‡ėˆ‰ėˆŠėˆ", 6, "ėˆ–ėˆ˜ėˆš", 5, "ėˆ”", 18, "ėˆµ", 6, "ėˆ½", 26, "ė‰™ė‰šė‰›ė‰ė‰žė‰Ÿė‰”", 6, "ė‰Ŗ", 4], - ["8841", "ė‰Æ", 4, "ė‰¶", 5, "ė‰½", 6, "ėŠ†ėŠ‡ėŠˆėŠŠ", 4], - ["8861", "ėŠėŠ’ėŠ“ėŠ•ėŠ–ėŠ—ėŠ›", 4, "ėŠ¢ėŠ¤ėŠ§ėŠØėŠ©ėŠ«ėŠ­ėŠ®ėŠÆėŠ±ėŠ²ėŠ³ėŠµėŠ¶ėŠ·"], - ["8881", "ėŠø", 15, "ė‹Šė‹‹ė‹ė‹Žė‹ė‹‘ė‹“", 4, "ė‹šė‹œė‹žė‹Ÿė‹ ė‹”ė‹£ė‹§ė‹©ė‹Ŗė‹°ė‹±ė‹²ė‹¶ė‹¼ė‹½ė‹¾ėŒ‚ėŒƒėŒ…ėŒ†ėŒ‡ėŒ‰", 6, "ėŒ’ėŒ–", 5, "ėŒ", 54, "ė—ė™ėšėė ė”ė¢ė£"], - ["8941", "ė¦ėØėŖė¬ė­ėÆė²ė³ėµė¶ė·ė¹", 6, "ėŽ‚ėŽ†", 5, "ėŽ"], - ["8961", "ėŽŽėŽėŽ‘ėŽ’ėŽ“ėŽ•", 10, "ėŽ¢", 5, "ėŽ©ėŽŖėŽ«ėŽ­"], - ["8981", "ėŽ®", 21, "ė†ė‡ė‰ėŠėėė‘ė’ė“ė–ė˜ėšėœėžėŸė”ė¢ė£ė„ė¦ė§ė©", 18, "ė½", 18, "ė‘", 6, "ė™ėšė›ėėžėŸė”", 6, "ėŖė¬", 7, "ėµ", 15], - ["8a41", "ė‘…", 10, "ė‘’ė‘“ė‘•ė‘–ė‘—ė‘™", 6, "ė‘¢ė‘¤ė‘¦"], - ["8a61", "ė‘§", 4, "ė‘­", 18, "ė’ė’‚"], - ["8a81", "ė’ƒ", 4, "ė’‰", 19, "ė’ž", 5, "ė’„ė’¦ė’§ė’©ė’Ŗė’«ė’­", 7, "ė’¶ė’øė’ŗ", 5, "ė“ė“‚ė“ƒė“…ė“†ė“‡ė“‰", 6, "ė“‘ė“’ė““ė“”ė“–", 5, "ė“žė“Ÿė“”ė“¢ė“„ė“§", 4, "ė“®ė“°ė“²", 5, "ė“¹", 26, "ė”–ė”—ė”™ė”šė”"], - ["8b41", "ė”ž", 5, "ė”¦ė”«", 4, "ė”²ė”³ė”µė”¶ė”·ė”¹", 6, "ė•‚ė•†"], - ["8b61", "ė•‡ė•ˆė•‰ė•Šė•Žė•ė•‘ė•’ė•“ė••", 6, "ė•žė•¢", 8], - ["8b81", "ė•«", 52, "ė–¢ė–£ė–„ė–¦ė–§ė–©ė–¬ė–­ė–®ė–Æė–²ė–¶", 4, "ė–¾ė–æė—ė—‚ė—ƒė—…", 6, "ė—Žė—’", 5, "ė—™", 18, "ė—­", 18], - ["8c41", "ė˜€", 15, "ė˜’ė˜“ė˜•ė˜–ė˜—ė˜™", 4], - ["8c61", "ė˜ž", 6, "ė˜¦", 5, "ė˜­", 6, "ė˜µ", 5], - ["8c81", "ė˜»", 12, "ė™‰", 26, "ė™„ė™¦ė™§ė™©", 50, "ėšžėšŸėš”ėš¢ėš£ėš„", 5, "ėš­ėš®ėšÆėš°ėš²", 16], - ["8d41", "ė›ƒ", 16, "ė›•", 8], - ["8d61", "ė›ž", 17, "ė›±ė›²ė›³ė›µė›¶ė›·ė›¹ė›ŗ"], - ["8d81", "ė›»", 4, "ėœ‚ėœƒėœ„ėœ†", 33, "ėœŖėœ«ėœ­ėœ®ėœ±", 6, "ėœŗėœ¼", 7, "ė…ė†ė‡ė‰ėŠė‹ė", 6, "ė–", 9, "ė”ė¢ė£ė„ė¦ė§ė©", 6, "ė²ė“ė¶", 5, "ė¾ėæėžėž‚ėžƒėž…", 6, "ėžŽėž“ėž”ėž•ėžšėž›ėžėžž"], - ["8e41", "ėžŸėž”", 6, "ėžŖėž®", 5, "ėž¶ėž·ėž¹", 8], - ["8e61", "ėŸ‚", 4, "ėŸˆėŸŠ", 19], - ["8e81", "ėŸž", 13, "ėŸ®ėŸÆėŸ±ėŸ²ėŸ³ėŸµ", 6, "ėŸ¾ė ‚", 4, "ė Šė ‹ė ė Žė ė ‘", 6, "ė šė œė ž", 5, "ė ¦ė §ė ©ė Ŗė «ė ­", 6, "ė ¶ė ŗ", 5, "ė”ė”‚ė”ƒė”…", 11, "ė”’ė””", 7, "ė”žė”Ÿė””ė”¢ė”£ė”„", 6, "ė”®ė”°ė”²", 5, "ė”¹ė”ŗė”»ė”½", 7], - ["8f41", "ė¢…", 7, "ė¢Ž", 17], - ["8f61", "ė¢ ", 7, "ė¢©", 6, "ė¢±ė¢²ė¢³ė¢µė¢¶ė¢·ė¢¹", 4], - ["8f81", "ė¢¾ė¢æė£‚ė£„ė£†", 5, "ė£ė£Žė£ė£‘ė£’ė£“ė£•", 7, "ė£žė£ ė£¢", 5, "ė£Ŗė£«ė£­ė£®ė£Æė£±", 6, "ė£ŗė£¼ė£¾", 5, "ė¤…", 18, "ė¤™", 6, "ė¤”", 26, "ė¤¾ė¤æė„ė„‚ė„ƒė„…", 6, "ė„ė„Žė„ė„’", 5], - ["9041", "ė„šė„›ė„ė„žė„Ÿė„”", 6, "ė„Ŗė„¬ė„®", 5, "ė„¶ė„·ė„¹ė„ŗė„»ė„½"], - ["9061", "ė„¾", 5, "ė¦†ė¦ˆė¦‹ė¦Œė¦", 15], - ["9081", "ė¦Ÿ", 12, "ė¦®ė¦Æė¦±ė¦²ė¦³ė¦µ", 6, "ė¦¾ė§€ė§‚", 5, "ė§Šė§‹ė§ė§“", 4, "ė§šė§œė§Ÿė§ ė§¢ė§¦ė§§ė§©ė§Ŗė§«ė§­", 6, "ė§¶ė§»", 4, "ė؂", 5, "ė؉", 11, "ėؖ", 33, "ėØŗėØ»ėؽėؾėØæė©ė©ƒė©„ė©…ė©†"], - ["9141", "ė©‡ė©Šė©Œė©ė©ė©‘ė©’ė©–ė©—ė©™ė©šė©›ė©", 6, "ė©¦ė©Ŗ", 5], - ["9161", "ė©²ė©³ė©µė©¶ė©·ė©¹", 9, "ėŖ†ėŖˆėŖ‰ėŖŠėŖ‹ėŖ", 5], - ["9181", "ėŖ“", 20, "ėŖŖėŖ­ėŖ®ėŖÆėŖ±ėŖ³", 4, "ėŖŗėŖ¼ėŖ¾", 5, "ė«…ė«†ė«‡ė«‰", 14, "ė«š", 33, "ė«½ė«¾ė«æė¬ė¬‚ė¬ƒė¬…", 7, "ė¬Žė¬ė¬’", 5, "ė¬™ė¬šė¬›ė¬ė¬žė¬Ÿė¬”", 6], - ["9241", "ė¬Øė¬Ŗė¬¬", 7, "ė¬·ė¬¹ė¬ŗė¬æ", 4, "ė­†ė­ˆė­Šė­‹ė­Œė­Žė­‘ė­’"], - ["9261", "ė­“ė­•ė­–ė­—ė­™", 7, "ė­¢ė­¤", 7, "ė­­", 4], - ["9281", "ė­²", 21, "ė®‰ė®Šė®‹ė®ė®Žė®ė®‘", 18, "ė®„ė®¦ė®§ė®©ė®Ŗė®«ė®­", 6, "ė®µė®¶ė®ø", 7, "ėƁėƂėƃėƅėƆėƇėƉ", 6, "ėƑėƒėƔ", 35, "ėÆŗėÆ»ėƽėƾė°"], - ["9341", "ė°ƒ", 4, "ė°Šė°Žė°ė°’ė°“ė°™ė°šė° ė°”ė°¢ė°£ė°¦ė°Øė°Ŗė°«ė°¬ė°®ė°Æė°²ė°³ė°µ"], - ["9361", "ė°¶ė°·ė°¹", 6, "ė±‚ė±†ė±‡ė±ˆė±Šė±‹ė±Žė±ė±‘", 8], - ["9381", "ė±šė±›ė±œė±ž", 37, "ė²†ė²‡ė²‰ė²Šė²ė²", 4, "ė²–ė²˜ė²›", 4, "ė²¢ė²£ė²„ė²¦ė²©", 6, "ė²²ė²¶", 5, "ė²¾ė²æė³ė³‚ė³ƒė³…", 7, "ė³Žė³’ė³“ė³”ė³–ė³—ė³™ė³šė³›ė³", 22, "ė³·ė³¹ė³ŗė³»ė³½"], - ["9441", "ė³¾", 5, "ė“†ė“ˆė“Š", 5, "ė“‘ė“’ė““ė“•", 8], - ["9461", "ė“ž", 5, "ė“„", 6, "ė“­", 12], - ["9481", "ė“ŗ", 5, "ėµ", 6, "ėµŠėµ‹ėµėµŽėµėµ‘", 6, "ėµš", 9, "ėµ„ėµ¦ėµ§ėµ©", 22, "ė¶‚ė¶ƒė¶…ė¶†ė¶‹", 4, "ė¶’ė¶”ė¶–ė¶—ė¶˜ė¶›ė¶", 6, "ė¶„", 10, "ė¶±", 6, "ė¶¹", 24], - ["9541", "ė·’ė·“ė·–ė·—ė·™ė·šė·›ė·", 11, "ė·Ŗ", 5, "ė·±"], - ["9561", "ė·²ė·³ė·µė·¶ė··ė·¹", 6, "ėøėø‚ėø„ėø†", 5, "ėøŽėøėø‘ėø’ėø“"], - ["9581", "ėø•", 6, "ėøžėø ", 35, "ė¹†ė¹‡ė¹‰ė¹Šė¹‹ė¹ė¹", 4, "ė¹–ė¹˜ė¹œė¹ė¹žė¹Ÿė¹¢ė¹£ė¹„ė¹¦ė¹§ė¹©ė¹«", 4, "ė¹²ė¹¶", 4, "ė¹¾ė¹æėŗėŗ‚ėŗƒėŗ…", 6, "ėŗŽėŗ’", 5, "ėŗš", 13, "ėŗ©", 14], - ["9641", "ėŗø", 23, "ė»’ė»“"], - ["9661", "ė»•ė»–ė»™", 6, "ė»”ė»¢ė»¦", 5, "ė»­", 8], - ["9681", "ė»¶", 10, "ė¼‚", 5, "ė¼Š", 13, "ė¼šė¼ž", 33, "ė½‚ė½ƒė½…ė½†ė½‡ė½‰", 6, "ė½’ė½“ė½”ė½–", 44], - ["9741", "ė¾ƒ", 16, "ė¾•", 8], - ["9761", "ė¾ž", 17, "ė¾±", 7], - ["9781", "ė¾¹", 11, "ėæ†", 5, "ėæŽėæėæ‘ėæ’ėæ“ėæ•", 6, "ėæėæžėæ ėæ¢", 89, "ģ€½ģ€¾ģ€æ"], - ["9841", "ģ€", 16, "ģ’", 5, "ģ™ģšģ›"], - ["9861", "ģģžģŸģ”", 6, "ģŖ", 15], - ["9881", "ģŗ", 21, "ģ‚’ģ‚“ģ‚•ģ‚–ģ‚—ģ‚™", 6, "ģ‚¢ģ‚¤ģ‚¦", 5, "ģ‚®ģ‚±ģ‚²ģ‚·", 4, "ģ‚¾ģƒ‚ģƒƒģƒ„ģƒ†ģƒ‡ģƒŠģƒ‹ģƒģƒŽģƒģƒ‘", 6, "ģƒšģƒž", 5, "ģƒ¦ģƒ§ģƒ©ģƒŖģƒ«ģƒ­", 6, "ģƒ¶ģƒøģƒŗ", 5, "ģ„ģ„‚ģ„ƒģ„…ģ„†ģ„‡ģ„‰", 6, "ģ„‘ģ„’ģ„“ģ„”ģ„–", 5, "ģ„”ģ„¢ģ„„ģ„Øģ„©ģ„Ŗģ„«ģ„®"], - ["9941", "ģ„²ģ„³ģ„“ģ„µģ„·ģ„ŗģ„»ģ„½ģ„¾ģ„æģ…", 6, "ģ…Šģ…Ž", 5, "ģ…–ģ…—"], - ["9961", "ģ…™ģ…šģ…›ģ…", 6, "ģ…¦ģ…Ŗ", 5, "ģ…±ģ…²ģ…³ģ…µģ…¶ģ…·ģ…¹ģ…ŗģ…»"], - ["9981", "ģ…¼", 8, "ģ††", 5, "ģ†ģ†‘ģ†’ģ†“ģ†•ģ†—", 4, "ģ†žģ† ģ†¢ģ†£ģ†¤ģ†¦ģ†§ģ†Ŗģ†«ģ†­ģ†®ģ†Æģ†±", 11, "ģ†¾", 5, "ģ‡…ģ‡†ģ‡‡ģ‡‰ģ‡Šģ‡‹ģ‡", 6, "ģ‡•ģ‡–ģ‡™", 6, "ģ‡”ģ‡¢ģ‡£ģ‡„ģ‡¦ģ‡§ģ‡©", 6, "ģ‡²ģ‡“", 7, "ģ‡¾ģ‡æģˆģˆ‚ģˆƒģˆ…", 6, "ģˆŽģˆģˆ’", 5, "ģˆšģˆ›ģˆģˆžģˆ”ģˆ¢ģˆ£"], - ["9a41", "ģˆ¤ģˆ„ģˆ¦ģˆ§ģˆŖģˆ¬ģˆ®ģˆ°ģˆ³ģˆµ", 16], - ["9a61", "ģ‰†ģ‰‡ģ‰‰", 6, "ģ‰’ģ‰“ģ‰•ģ‰–ģ‰—ģ‰™", 6, "ģ‰”ģ‰¢ģ‰£ģ‰¤ģ‰¦"], - ["9a81", "ģ‰§", 4, "ģ‰®ģ‰Æģ‰±ģ‰²ģ‰³ģ‰µ", 6, "ģ‰¾ģŠ€ģŠ‚", 5, "ģŠŠ", 5, "ģŠ‘", 6, "ģŠ™ģŠšģŠœģŠž", 5, "ģŠ¦ģŠ§ģŠ©ģŠŖģŠ«ģŠ®", 5, "ģŠ¶ģŠøģŠŗ", 33, "ģ‹žģ‹Ÿģ‹”ģ‹¢ģ‹„", 5, "ģ‹®ģ‹°ģ‹²ģ‹³ģ‹“ģ‹µģ‹·ģ‹ŗģ‹½ģ‹¾ģ‹æģŒ", 6, "ģŒŠģŒ‹ģŒŽģŒ"], - ["9b41", "ģŒģŒ‘ģŒ’ģŒ–ģŒ—ģŒ™ģŒšģŒ›ģŒ", 6, "ģŒ¦ģŒ§ģŒŖ", 8], - ["9b61", "ģŒ³", 17, "ģ†", 7], - ["9b81", "ģŽ", 25, "ģŖģ«ģ­ģ®ģÆģ±ģ³", 4, "ģŗģ»ģ¾", 5, "ģŽ…ģŽ†ģŽ‡ģŽ‰ģŽŠģŽ‹ģŽ", 50, "ģ", 22, "ģš"], - ["9c41", "ģ›ģģžģ”ģ£", 4, "ģŖģ«ģ¬ģ®", 5, "ģ¶ģ·ģ¹", 5], - ["9c61", "ģæ", 8, "ģ‰", 6, "ģ‘", 9], - ["9c81", "ģ›", 8, "ģ„", 6, "ģ­ģ®ģÆģ±ģ²ģ³ģµ", 6, "ģ¾", 9, "ģ‘‰", 26, "ģ‘¦ģ‘§ģ‘©ģ‘Ŗģ‘«ģ‘­", 6, "ģ‘¶ģ‘·ģ‘øģ‘ŗ", 5, "ģ’", 18, "ģ’•", 6, "ģ’", 12], - ["9d41", "ģ’Ŗ", 13, "ģ’¹ģ’ŗģ’»ģ’½", 8], - ["9d61", "ģ“†", 25], - ["9d81", "ģ“ ", 8, "ģ“Ŗ", 5, "ģ“²ģ“³ģ“µģ“¶ģ“·ģ“¹ģ“»ģ“¼ģ“½ģ“¾ģ”‚", 9, "ģ”ģ”Žģ”ģ”‘ģ”’ģ”“ģ”•", 6, "ģ”", 10, "ģ”Ŗģ”«ģ”­ģ”®ģ”Æģ”±", 6, "ģ”ŗģ”¼ģ”¾", 5, "ģ•†ģ•‡ģ•‹ģ•ģ•ģ•‘ģ•’ģ•–ģ•šģ•›ģ•œģ•Ÿģ•¢ģ•£ģ•„ģ•¦ģ•§ģ•©", 6, "ģ•²ģ•¶", 5, "ģ•¾ģ•æģ–ģ–‚ģ–ƒģ–…ģ–†ģ–ˆģ–‰ģ–Šģ–‹ģ–Žģ–ģ–’ģ–“ģ–”"], - ["9e41", "ģ––ģ–™ģ–šģ–›ģ–ģ–žģ–Ÿģ–”", 7, "ģ–Ŗ", 9, "ģ–¶"], - ["9e61", "ģ–·ģ–ŗģ–æ", 4, "ģ—‹ģ—ģ—ģ—’ģ—“ģ—•ģ—–ģ——ģ—™", 6, "ģ—¢ģ—¤ģ—¦ģ—§"], - ["9e81", "ģ—Øģ—©ģ—Ŗģ—«ģ—Æģ—±ģ—²ģ—³ģ—µģ—øģ—¹ģ—ŗģ—»ģ˜‚ģ˜ƒģ˜„ģ˜‰ģ˜Šģ˜‹ģ˜ģ˜Žģ˜ģ˜‘", 6, "ģ˜šģ˜", 6, "ģ˜¦ģ˜§ģ˜©ģ˜Ŗģ˜«ģ˜Æģ˜±ģ˜²ģ˜¶ģ˜øģ˜ŗģ˜¼ģ˜½ģ˜¾ģ˜æģ™‚ģ™ƒģ™…ģ™†ģ™‡ģ™‰", 6, "ģ™’ģ™–", 5, "ģ™žģ™Ÿģ™”", 10, "ģ™­ģ™®ģ™°ģ™²", 5, "ģ™ŗģ™»ģ™½ģ™¾ģ™æģš", 6, "ģšŠģšŒģšŽ", 5, "ģš–ģš—ģš™ģššģš›ģš", 6, "ģš¦"], - ["9f41", "ģšØģšŖ", 5, "ģš²ģš³ģšµģš¶ģš·ģš»", 4, "ģ›‚ģ›„ģ›†", 5, "ģ›Ž"], - ["9f61", "ģ›ģ›‘ģ›’ģ›“ģ›•", 6, "ģ›žģ›Ÿģ›¢", 5, "ģ›Ŗģ›«ģ›­ģ›®ģ›Æģ›±ģ›²"], - ["9f81", "ģ›³", 4, "ģ›ŗģ›»ģ›¼ģ›¾", 5, "ģœ†ģœ‡ģœ‰ģœŠģœ‹ģœ", 6, "ģœ–ģœ˜ģœš", 5, "ģœ¢ģœ£ģœ„ģœ¦ģœ§ģœ©", 6, "ģœ²ģœ“ģœ¶ģœøģœ¹ģœŗģœ»ģœ¾ģœæģģ‚ģƒģ…", 4, "ģ‹ģŽģģ™ģšģ›ģģžģŸģ”", 6, "ģ©ģŖģ¬", 7, "ģ¶ģ·ģ¹ģŗģ»ģæģž€ģžģž‚ģž†ģž‹ģžŒģžģžģž’ģž“ģž•ģž™ģž›", 4, "ģž¢ģž§", 4, "ģž®ģžÆģž±ģž²ģž³ģžµģž¶ģž·"], - ["a041", "ģžøģž¹ģžŗģž»ģž¾ģŸ‚", 5, "ģŸŠģŸ‹ģŸģŸģŸ‘", 6, "ģŸ™ģŸšģŸ›ģŸœ"], - ["a061", "ģŸž", 5, "ģŸ„ģŸ¦ģŸ§ģŸ©ģŸŖģŸ«ģŸ­", 13], - ["a081", "ģŸ»", 4, "ģ ‚ģ ƒģ …ģ †ģ ‡ģ ‰ģ ‹", 4, "ģ ’ģ ”ģ —", 4, "ģ žģ Ÿģ ”ģ ¢ģ £ģ „", 6, "ģ ®ģ °ģ ²", 5, "ģ ¹ģ ŗģ »ģ ½ģ ¾ģ æģ”", 6, "ģ”Šģ”‹ģ”Ž", 5, "ģ”•", 26, "ģ”²ģ”³ģ”µģ”¶ģ”·ģ”¹ģ”»", 4, "ģ¢‚ģ¢„ģ¢ˆģ¢‰ģ¢Šģ¢Ž", 5, "ģ¢•", 7, "ģ¢žģ¢ ģ¢¢ģ¢£ģ¢¤"], - ["a141", "ģ¢„ģ¢¦ģ¢§ģ¢©", 18, "ģ¢¾ģ¢æģ£€ģ£"], - ["a161", "ģ£‚ģ£ƒģ£…ģ£†ģ£‡ģ£‰ģ£Šģ£‹ģ£", 6, "ģ£–ģ£˜ģ£š", 5, "ģ£¢ģ££ģ£„"], - ["a181", "ģ£¦", 14, "ģ£¶", 5, "ģ£¾ģ£æģ¤ģ¤‚ģ¤ƒģ¤‡", 4, "ģ¤Žć€€ć€ć€‚Ā·ā€„ā€¦ĀØ怃Ā­ā€•āˆ„ļ¼¼āˆ¼ā€˜ā€™ā€œā€ć€”ć€•ć€ˆ", 9, "Ā±Ć—Ć·ā‰ ā‰¤ā‰„āˆžāˆ“Ā°ā€²ā€³ā„ƒā„«ļæ ļæ”ļæ„ā™‚ā™€āˆ āŠ„āŒ’āˆ‚āˆ‡ā‰”ā‰’Ā§ā€»ā˜†ā˜…ā—‹ā—ā—Žā—‡ā—†ā–”ā– ā–³ā–²ā–½ā–¼ā†’ā†ā†‘ā†“ā†”怓ā‰Ŗā‰«āˆšāˆ½āˆāˆµāˆ«āˆ¬āˆˆāˆ‹āŠ†āŠ‡āŠ‚āŠƒāˆŖāˆ©āˆ§āˆØļæ¢"], - ["a241", "ģ¤ģ¤’", 5, "ģ¤™", 18], - ["a261", "ģ¤­", 6, "ģ¤µ", 18], - ["a281", "ģ„ˆ", 7, "ģ„’ģ„“ģ„•ģ„–ģ„—ģ„™", 6, "ģ„¢ģ„¤", 7, "ģ„­ģ„®ģ„Æā‡’ā‡”āˆ€āˆƒĀ“ļ½žĖ‡Ė˜ĖĖšĖ™ĀøĖ›Ā”ĀæĖāˆ®āˆ‘āˆĀ¤ā„‰ā€°ā—ā—€ā–·ā–¶ā™¤ā™ ā™”ā™„ā™§ā™£āŠ™ā—ˆā–£ā—ā—‘ā–’ā–¤ā–„ā–Øā–§ā–¦ā–©ā™Øā˜ā˜Žā˜œā˜žĀ¶ā€ ā€”ā†•ā†—ā†™ā†–ā†˜ā™­ā™©ā™Ŗā™¬ć‰æ戜ā„–ć‡ā„¢ć‚ć˜ā„”ā‚¬Ā®"], - ["a341", "ģ„±ģ„²ģ„³ģ„µ", 6, "ģ„½", 10, "ģ¦Šģ¦‹ģ¦ģ¦Žģ¦"], - ["a361", "ģ¦‘", 6, "ģ¦šģ¦œģ¦ž", 16], - ["a381", "ģ¦Æ", 16, "ģ§‚ģ§ƒģ§…ģ§†ģ§‰ģ§‹", 4, "ģ§’ģ§”ģ§—ģ§˜ģ§›ļ¼", 58, "ļæ¦ļ¼½", 32, "ļæ£"], - ["a441", "ģ§žģ§Ÿģ§”ģ§£ģ§„ģ§¦ģ§Øģ§©ģ§Ŗģ§«ģ§®ģ§²", 5, "ģ§ŗģ§»ģ§½ģ§¾ģ§æģ؁ģ؂ģ؃ģ؄"], - ["a461", "ģ؅ģ؆ģ؇ģ؊ģ؎", 5, "ģؕģؖģؗģؙ", 12], - ["a481", "ģئģاģØØģØŖ", 28, "愱", 93], - ["a541", "ģ©‡", 4, "ģ©Žģ©ģ©‘ģ©’ģ©“ģ©•", 6, "ģ©žģ©¢", 5, "ģ©©ģ©Ŗ"], - ["a561", "ģ©«", 17, "ģ©¾", 5, "ģŖ…ģŖ†"], - ["a581", "ģŖ‡", 16, "ģŖ™", 14, "ā…°", 9], - ["a5b0", "ā… ", 9], - ["a5c1", "Ī‘", 16, "Ī£", 6], - ["a5e1", "Ī±", 16, "Ļƒ", 6], - ["a641", "ģŖØ", 19, "ģŖ¾ģŖæģ«ģ«‚ģ«ƒģ«…"], - ["a661", "ģ«†", 5, "ģ«Žģ«ģ«’ģ«”ģ«•ģ«–ģ«—ģ«š", 5, "ģ«”", 6], - ["a681", "ģ«Øģ«©ģ«Ŗģ««ģ«­", 6, "ģ«µ", 18, "ģ¬‰ģ¬Šā”€ā”‚ā”Œā”ā”˜ā””ā”œā”¬ā”¤ā”“ā”¼ā”ā”ƒā”ā”“ā”›ā”—ā”£ā”³ā”«ā”»ā•‹ā” ā”Æā”Øā”·ā”æā”ā”°ā”„ā”øā•‚ā”’ā”‘ā”šā”™ā”–ā”•ā”Žā”ā”žā”Ÿā””ā”¢ā”¦ā”§ā”©ā”Ŗā”­ā”®ā”±ā”²ā”µā”¶ā”¹ā”ŗā”½ā”¾ā•€ā•ā•ƒ", 7], - ["a741", "ģ¬‹", 4, "ģ¬‘ģ¬’ģ¬“ģ¬•ģ¬–ģ¬—ģ¬™", 6, "ģ¬¢", 7], - ["a761", "ģ¬Ŗ", 22, "ģ­‚ģ­ƒģ­„"], - ["a781", "ģ­…ģ­†ģ­‡ģ­Šģ­‹ģ­ģ­Žģ­ģ­‘", 6, "ģ­šģ­›ģ­œģ­ž", 5, "ģ­„", 7, "掕掖掗ā„“ćŽ˜ć„ćŽ£ćŽ¤ćŽ„掦掙", 9, "揊掍掎掏描授掉揈控ćŽØ掰", 9, "掀", 4, "ćŽŗ", 5, "掐", 4, "ā„¦ć€ććŽŠćŽ‹ćŽŒć–ć…ćŽ­ćŽ®ćŽÆć›ćŽ©ćŽŖćŽ«ćŽ¬ććć“ćƒć‰ćœć†"], - ["a841", "ģ­­", 10, "ģ­ŗ", 14], - ["a861", "ģ®‰", 18, "ģ®", 6], - ["a881", "ģ®¤", 19, "ģ®¹", 11, "ƆƐĀŖĦ"], - ["a8a6", "IJ"], - ["a8a8", "ÄæÅĆ˜Å’ĀŗĆžÅ¦ÅŠ"], - ["a8b1", "扠", 27, "ā“", 25, "ā‘ ", 14, "Ā½ā…“ā…”Ā¼Ā¾ā…›ā…œā…ā…ž"], - ["a941", "ģƅ", 14, "ģƕ", 10], - ["a961", "ģÆ ģÆ”ģÆ¢ģÆ£ģÆ„ģƦģÆØģÆŖ", 18], - ["a981", "ģƽ", 14, "ģ°Žģ°ģ°‘ģ°’ģ°“ģ°•", 6, "ģ°žģ°Ÿģ° ģ°£ģ°¤Ć¦Ä‘Ć°Ä§Ä±Ä³ÄøŀłĆøÅ“ĆŸĆ¾Å§Å‹Å‰ćˆ€", 27, "ā’œ", 25, "ā‘“", 14, "Ā¹Ā²Ā³ā“āæā‚ā‚‚ā‚ƒā‚„"], - ["aa41", "ģ°„ģ°¦ģ°Ŗģ°«ģ°­ģ°Æģ°±", 6, "ģ°ŗģ°æ", 4, "ģ±†ģ±‡ģ±‰ģ±Šģ±‹ģ±ģ±Ž"], - ["aa61", "ģ±", 4, "ģ±–ģ±š", 5, "ģ±”ģ±¢ģ±£ģ±„ģ±§ģ±©", 6, "ģ±±ģ±²"], - ["aa81", "ģ±³ģ±“ģ±¶", 29, "恁", 82], - ["ab41", "ģ²”ģ²•ģ²–ģ²—ģ²šģ²›ģ²ģ²žģ²Ÿģ²”", 6, "ģ²Ŗģ²®", 5, "ģ²¶ģ²·ģ²¹"], - ["ab61", "ģ²ŗģ²»ģ²½", 6, "ģ³†ģ³ˆģ³Š", 5, "ģ³‘ģ³’ģ³“ģ³•", 5], - ["ab81", "ģ³›", 8, "ģ³„", 6, "ģ³­ģ³®ģ³Æģ³±", 12, "ć‚”", 85], - ["ac41", "ģ³¾ģ³æģ“€ģ“‚", 5, "ģ“Šģ“‹ģ“ģ“Žģ“ģ“‘", 6, "ģ“šģ“œģ“žģ“Ÿģ“ "], - ["ac61", "ģ“”ģ“¢ģ“£ģ“„ģ“¦ģ“§ģ“©ģ“Ŗģ“«ģ“­", 11, "ģ“ŗ", 4], - ["ac81", "ģ“æ", 28, "ģµģµžģµŸŠ", 5, "ŠŠ–", 25], - ["acd1", "Š°", 5, "ёŠ¶", 25], - ["ad41", "ģµ”ģµ¢ģµ£ģµ„", 6, "ģµ®ģµ°ģµ²", 5, "ģµ¹", 7], - ["ad61", "ģ¶", 6, "ģ¶‰", 10, "ģ¶–ģ¶—ģ¶™ģ¶šģ¶›ģ¶ģ¶žģ¶Ÿ"], - ["ad81", "ģ¶ ģ¶”ģ¶¢ģ¶£ģ¶¦ģ¶Øģ¶Ŗ", 5, "ģ¶±", 18, "ģ·…"], - ["ae41", "ģ·†", 5, "ģ·ģ·Žģ·ģ·‘", 16], - ["ae61", "ģ·¢", 5, "ģ·©ģ·Ŗģ·«ģ·­ģ·®ģ·Æģ·±", 6, "ģ·ŗģ·¼ģ·¾", 4], - ["ae81", "ģøƒģø…ģø†ģø‡ģø‰ģøŠģø‹ģø", 6, "ģø•ģø–ģø—ģø˜ģøš", 5, "ģø¢ģø£ģø„ģø¦ģø§ģø©ģøŖģø«"], - ["af41", "ģø¬ģø­ģø®ģøÆģø²ģø“ģø¶", 19], - ["af61", "ģ¹Š", 13, "ģ¹šģ¹›ģ¹ģ¹žģ¹¢", 5, "ģ¹Ŗģ¹¬"], - ["af81", "ģ¹®", 5, "ģ¹¶ģ¹·ģ¹¹ģ¹ŗģ¹»ģ¹½", 6, "ģŗ†ģŗˆģŗŠ", 5, "ģŗ’ģŗ“ģŗ•ģŗ–ģŗ—ģŗ™"], - ["b041", "ģŗš", 5, "ģŗ¢ģŗ¦", 5, "ģŗ®", 12], - ["b061", "ģŗ»", 5, "ģ»‚", 19], - ["b081", "ģ»–", 13, "ģ»¦ģ»§ģ»©ģ»Ŗģ»­", 6, "ģ»¶ģ»ŗ", 5, "ź°€ź°ź°„ź°‡ź°ˆź°‰ź°Šź°", 7, "ź°™", 4, "ź° ź°¤ź°¬ź°­ź°Æź°°ź°±ź°øź°¹ź°¼ź±€ź±‹ź±ź±”ź±˜ź±œź±°ź±±ź±“ź±·ź±øź±ŗź²€ź²ź²ƒź²„ź²…ź²†ź²‰ź²Šź²‹ź²Œź²ź²”ź²œź²ź²Ÿź² ź²”ź²Øź²©ź²Ŗź²¬ź²Æź²°ź²øź²¹ź²»ź²¼ź²½ź³ź³„ź³ˆź³Œź³•ź³—ź³ ź³”ź³¤ź³§ź³Øź³Ŗź³¬ź³Æź³°ź³±ź³³ź³µź³¶ź³¼ź³½ź“€ź“„ź“†"], - ["b141", "ģ¼‚ģ¼ƒģ¼…ģ¼†ģ¼‡ģ¼‰", 6, "ģ¼’ģ¼”ģ¼–", 5, "ģ¼ģ¼žģ¼Ÿģ¼”ģ¼¢ģ¼£"], - ["b161", "ģ¼„", 6, "ģ¼®ģ¼²", 5, "ģ¼¹", 11], - ["b181", "ģ½…", 14, "ģ½–ģ½—ģ½™ģ½šģ½›ģ½", 6, "ģ½¦ģ½Øģ½Ŗģ½«ģ½¬ź“Œź“ź“ź“‘ź“˜ź“œź“ ź“©ź“¬ź“­ź““ź“µź“øź“¼źµ„źµ…źµ‡źµ‰źµźµ”źµ˜źµ”źµ£źµ¬źµ­źµ°źµ³źµ“źµµźµ¶źµ»źµ¼źµ½źµæź¶ź¶‚ź¶ˆź¶‰ź¶Œź¶ź¶œź¶ź¶¤ź¶·ź·€ź·ź·„ź·ˆź·ź·‘ź·“ź·œź· ź·¤ź·øź·¹ź·¼ź·æźø€źøźøˆźø‰źø‹źøźø”źø°źø±źø“źø·źøøźøŗź¹€ź¹ź¹ƒź¹…ź¹†ź¹Šź¹Œź¹ź¹Žź¹ź¹”ź¹–ź¹œź¹ź¹Ÿź¹ ź¹”ź¹„ź¹Øź¹©ź¹¬ź¹°ź¹ø"], - ["b241", "ģ½­ģ½®ģ½Æģ½²ģ½³ģ½µģ½¶ģ½·ģ½¹", 6, "ģ¾ģ¾‚ģ¾ƒģ¾„ģ¾†", 5, "ģ¾"], - ["b261", "ģ¾Ž", 18, "ģ¾¢", 5, "ģ¾©"], - ["b281", "ģ¾Ŗ", 5, "ģ¾±", 18, "ģæ…", 6, "ź¹¹ź¹»ź¹¼ź¹½źŗ„źŗ…źŗŒźŗ¼źŗ½źŗ¾ź»€ź»„ź»Œź»ź»ź»ź»‘ź»˜ź»™ź»œź»Øź»«ź»­ź»“ź»øź»¼ź¼‡ź¼ˆź¼ź¼ź¼¬ź¼­ź¼°ź¼²ź¼“ź¼¼ź¼½ź¼æź½ź½‚ź½ƒź½ˆź½‰ź½ź½œź½ź½¤ź½„ź½¹ź¾€ź¾„ź¾ˆź¾ź¾‘ź¾•ź¾œź¾øź¾¹ź¾¼źæ€źæ‡źæˆźæ‰źæ‹źæźæŽźæ”źæœźæØźæ©źæ°źæ±źæ“źæøė€€ė€ė€„ė€Œė€ė€”ė€œė€ė€Øė„ė…ėˆėŠėŒėŽė“ė”ė•ė—ė™"], - ["b341", "ģæŒ", 19, "ģæ¢ģæ£ģæ„ģæ¦ģæ§ģæ©"], - ["b361", "ģæŖ", 5, "ģæ²ģæ“ģæ¶", 5, "ģæ½ģæ¾ģææķ€ķ€‚ķ€ƒķ€…", 5], - ["b381", "ķ€‹", 5, "ķ€’", 5, "ķ€™", 19, "ėė¼ė½ė‚€ė‚„ė‚Œė‚ė‚ė‚‘ė‚˜ė‚™ė‚šė‚œė‚Ÿė‚ ė‚”ė‚¢ė‚Øė‚©ė‚«", 4, "ė‚±ė‚³ė‚“ė‚µė‚øė‚¼ėƒ„ėƒ…ėƒ‡ėƒˆėƒ‰ėƒėƒ‘ėƒ”ėƒ˜ėƒ ėƒ„ė„ˆė„‰ė„‹ė„Œė„ė„’ė„“ė„˜ė„™ė„›ė„œė„ė„£ė„¤ė„„ė„Øė„¬ė„“ė„µė„·ė„øė„¹ė…€ė…ė…„ė…ˆė…ė…‘ė…”ė…•ė…˜ė…œė… ė…øė…¹ė…¼ė†€ė†‚ė†ˆė†‰ė†‹ė†ė†’ė†“ė†”ė†˜ė†œė†Øė‡Œė‡ė‡”ė‡œė‡"], - ["b441", "ķ€®", 5, "ķ€¶ķ€·ķ€¹ķ€ŗķ€»ķ€½", 6, "ķ†ķˆķŠ", 5], - ["b461", "ķ‘ķ’ķ“ķ•ķ–ķ—ķ™", 6, "ķ”", 10, "ķ®ķÆ"], - ["b481", "ķ±ķ²ķ³ķµ", 6, "ķ¾ķæķ‚€ķ‚‚", 18, "ė‡Ÿė‡Øė‡©ė‡¬ė‡°ė‡¹ė‡»ė‡½ėˆ„ėˆ…ėˆˆėˆ‹ėˆŒėˆ”ėˆ•ėˆ—ėˆ™ėˆ ėˆ“ėˆ¼ė‰˜ė‰œė‰ ė‰Øė‰©ė‰“ė‰µė‰¼ėŠ„ėŠ…ėŠ‰ėŠėŠ‘ėŠ”ėŠ˜ėŠ™ėŠšėŠ ėŠ”ėŠ£ėŠ„ėŠ¦ėŠŖėŠ¬ėŠ°ėŠ“ė‹ˆė‹‰ė‹Œė‹ė‹’ė‹˜ė‹™ė‹›ė‹ė‹¢ė‹¤ė‹„ė‹¦ė‹Øė‹«", 4, "ė‹³ė‹“ė‹µė‹·", 4, "ė‹æėŒ€ėŒėŒ„ėŒˆėŒėŒ‘ėŒ“ėŒ”ėŒ•ėŒœė”ė•ė–ė˜ė›ėœėžėŸė¤ė„"], - ["b541", "ķ‚•", 14, "ķ‚¦ķ‚§ķ‚©ķ‚Ŗķ‚«ķ‚­", 5], - ["b561", "ķ‚³ķ‚¶ķ‚øķ‚ŗ", 5, "ķƒ‚ķƒƒķƒ…ķƒ†ķƒ‡ķƒŠ", 5, "ķƒ’ķƒ–", 4], - ["b581", "ķƒ›ķƒžķƒŸķƒ”ķƒ¢ķƒ£ķƒ„", 6, "ķƒ®ķƒ²", 5, "ķƒ¹", 11, "ė§ė©ė«ė®ė°ė±ė“ėøėŽ€ėŽėŽƒėŽ„ėŽ…ėŽŒėŽėŽ”ėŽ ėŽ”ėŽØėŽ¬ė„ė…ėˆė‹ėŒėŽėė”ė•ė—ė™ė›ėė ė¤ėØė¼ėė˜ėœė ėØė©ė«ė“ė‘ė‘‘ė‘”ė‘˜ė‘ ė‘”ė‘£ė‘„ė‘¬ė’€ė’ˆė’ė’¤ė’Øė’¬ė’µė’·ė’¹ė“€ė“„ė“ˆė“ė“•ė“œė“ė“ ė“£ė“¤ė“¦ė“¬ė“­ė“Æė“±ė“øė””ė”•ė”˜ė”›ė”œė”¤ė”„ė”§ė”Øė”©ė”Ŗė”°ė”±ė”“ė”ø"], - ["b641", "ķ„…", 7, "ķ„Ž", 17], - ["b661", "ķ„ ", 15, "ķ„²ķ„³ķ„µķ„¶ķ„·ķ„¹ķ„»ķ„¼ķ„½ķ„¾"], - ["b681", "ķ„æķ…‚ķ…†", 5, "ķ…Žķ…ķ…‘ķ…’ķ…“ķ…•", 6, "ķ…žķ… ķ…¢", 5, "ķ…©ķ…Ŗķ…«ķ…­ė•€ė•ė•ƒė•„ė•…ė•‹ė•Œė•ė•ė•”ė•œė•ė•Ÿė• ė•”ė– ė–”ė–¤ė–Øė–Ŗė–«ė–°ė–±ė–³ė–“ė–µė–»ė–¼ė–½ė—€ė—„ė—Œė—ė—ė—ė—‘ė—˜ė—¬ė˜ė˜‘ė˜”ė˜˜ė˜„ė˜¬ė˜“ė™ˆė™¤ė™Øėšœėšėš ėš¤ėš«ėš¬ėš±ė›”ė›°ė›“ė›øėœ€ėœėœ…ėœØėœ©ėœ¬ėœÆėœ°ėœøėœ¹ėœ»ė„ėˆėŒė”ė•ė ė¤ėØė°ė±ė³ėµė¼ė½ėž€ėž„ėžŒėžėžėžėž‘ėž’ėž–ėž—"], - ["b741", "ķ…®", 13, "ķ…½", 6, "ķ†…ķ††ķ†‡ķ†‰ķ†Š"], - ["b761", "ķ†‹", 20, "ķ†¢ķ†£ķ†„ķ†¦ķ†§"], - ["b781", "ķ†©", 6, "ķ†²ķ†“ķ†¶ķ†·ķ†øķ†¹ķ†»ķ†½ķ†¾ķ†æķ‡", 14, "ėž˜ėž™ėžœėž ėžØėž©ėž«ėž¬ėž­ėž“ėžµėžøėŸ‡ėŸ‰ėŸ¬ėŸ­ėŸ°ėŸ“ėŸ¼ėŸ½ėŸæė €ė ė ‡ė ˆė ‰ė Œė ė ˜ė ™ė ›ė ė ¤ė „ė Øė ¬ė “ė µė ·ė øė ¹ė”€ė”„ė”‘ė”“ė”œė”ė” ė”¤ė”¬ė”­ė”Æė”±ė”øė”¼ė¢ė¢Øė¢°ė¢“ė¢øė£€ė£ė£ƒė£…ė£Œė£ė£”ė£ė£Ÿė£”ė£Øė£©ė£¬ė£°ė£øė£¹ė£»ė£½ė¤„ė¤˜ė¤ ė¤¼ė¤½ė„€ė„„ė„Œė„ė„‘ė„˜ė„™ė„œė„ ė„Øė„©"], - ["b841", "ķ‡", 7, "ķ‡™", 17], - ["b861", "ķ‡«", 8, "ķ‡µķ‡¶ķ‡·ķ‡¹", 13], - ["b881", "ķˆˆķˆŠ", 5, "ķˆ‘", 24, "ė„«ė„­ė„“ė„µė„øė„¼ė¦„ė¦…ė¦‡ė¦‰ė¦Šė¦ė¦Žė¦¬ė¦­ė¦°ė¦“ė¦¼ė¦½ė¦æė§ė§ˆė§‰ė§Œė§Ž", 4, "ė§˜ė§™ė§›ė§ė§žė§”ė§£ė§¤ė§„ė§Øė§¬ė§“ė§µė§·ė§øė§¹ė§ŗė؀ė؁ė؈ėؕėØøėعėؼė©€ė©‚ė©ˆė©‰ė©‹ė©ė©Žė©“ė©”ė©•ė©˜ė©œė©¤ė©„ė©§ė©Øė©©ė©°ė©±ė©“ė©øėŖƒėŖ„ėŖ…ėŖ‡ėŖŒėŖØėŖ©ėŖ«ėŖ¬ėŖ°ėŖ²ėŖøėŖ¹ėŖ»ėŖ½ė«„ė«ˆė«˜ė«™ė«¼"], - ["b941", "ķˆŖķˆ«ķˆ®ķˆÆķˆ±ķˆ²ķˆ³ķˆµ", 6, "ķˆ¾ķ‰€ķ‰‚", 5, "ķ‰‰ķ‰Šķ‰‹ķ‰Œ"], - ["b961", "ķ‰", 14, "ķ‰", 6, "ķ‰„ķ‰¦ķ‰§ķ‰Ø"], - ["b981", "ķ‰©", 22, "ķŠ‚ķŠƒķŠ…ķŠ†ķŠ‡ķŠ‰ķŠŠķŠ‹ķŠŒė¬€ė¬„ė¬ė¬ė¬‘ė¬˜ė¬œė¬ ė¬©ė¬«ė¬“ė¬µė¬¶ė¬øė¬»ė¬¼ė¬½ė¬¾ė­„ė­…ė­‡ė­‰ė­ė­ė­ė­”ė­˜ė­”ė­£ė­¬ė®ˆė®Œė®ė®¤ė®Øė®¬ė®“ė®·ėƀėƄėƈėƐėƓėÆøėƹėƼėÆæė°€ė°‚ė°ˆė°‰ė°‹ė°Œė°ė°ė°‘ė°”", 4, "ė°›", 4, "ė°¤ė°„ė°§ė°©ė°­ė°°ė°±ė°“ė°øė±€ė±ė±ƒė±„ė±…ė±‰ė±Œė±ė±ė±ė²„ė²…ė²ˆė²‹ė²Œė²Žė²”ė²•ė²—"], - ["ba41", "ķŠķŠŽķŠķŠ’ķŠ“ķŠ”ķŠ–", 5, "ķŠķŠžķŠŸķŠ”ķŠ¢ķŠ£ķŠ„", 6, "ķŠ­"], - ["ba61", "ķŠ®ķŠÆķŠ°ķŠ²", 5, "ķŠŗķŠ»ķŠ½ķŠ¾ķ‹ķ‹ƒ", 4, "ķ‹Šķ‹Œ", 5], - ["ba81", "ķ‹’ķ‹“ķ‹•ķ‹–ķ‹—ķ‹™ķ‹šķ‹›ķ‹", 6, "ķ‹¦", 9, "ķ‹²ķ‹³ķ‹µķ‹¶ķ‹·ķ‹¹ķ‹ŗė²™ė²šė² ė²”ė²¤ė²§ė²Øė²°ė²±ė²³ė²“ė²µė²¼ė²½ė³€ė³„ė³ė³ė³ė³‘ė³•ė³˜ė³œė³“ė³µė³¶ė³øė³¼ė“„ė“…ė“‡ė“‰ė“ė“”ė“¤ė“¬ėµ€ėµˆėµ‰ėµŒėµėµ˜ėµ™ėµ¤ėµØė¶€ė¶ė¶„ė¶‡ė¶ˆė¶‰ė¶Šė¶ė¶‘ė¶“ė¶•ė¶™ė¶šė¶œė¶¤ė¶°ė¶øė·”ė·•ė·˜ė·œė·©ė·°ė·“ė·øėø€ėøƒėø…ėøŒėøėøėø”ėøœėøėøŸė¹„ė¹…ė¹ˆė¹Œė¹Žė¹”ė¹•ė¹—ė¹™ė¹šė¹›ė¹ ė¹”ė¹¤"], - ["bb41", "ķ‹»", 4, "ķŒ‚ķŒ„ķŒ†", 5, "ķŒķŒ‘ķŒ’ķŒ“ķŒ•ķŒ—", 4, "ķŒžķŒ¢ķŒ£"], - ["bb61", "ķŒ¤ķŒ¦ķŒ§ķŒŖķŒ«ķŒ­ķŒ®ķŒÆķŒ±", 6, "ķŒŗķŒ¾", 5, "ķ†ķ‡ķˆķ‰"], - ["bb81", "ķŠ", 31, "ė¹Øė¹Ŗė¹°ė¹±ė¹³ė¹“ė¹µė¹»ė¹¼ė¹½ėŗ€ėŗ„ėŗŒėŗėŗėŗėŗ‘ėŗ˜ėŗ™ėŗØė»ė»‘ė»”ė»—ė»˜ė» ė»£ė»¤ė»„ė»¬ė¼ė¼ˆė¼‰ė¼˜ė¼™ė¼›ė¼œė¼ė½€ė½ė½„ė½ˆė½ė½‘ė½•ė¾”ė¾°ėæ…ėæŒėæėæėæ”ėæœėæŸėæ”ģ€¼ģ‘ģ˜ģœģ ģØģ©ģ‚ģ‚‘ģ‚”ģ‚˜ģ‚ ģ‚”ģ‚£ģ‚„ģ‚¬ģ‚­ģ‚Æģ‚°ģ‚³ģ‚“ģ‚µģ‚¶ģ‚¼ģ‚½ģ‚æģƒ€ģƒģƒ…ģƒˆģƒ‰ģƒŒģƒģƒ˜ģƒ™ģƒ›ģƒœģƒģƒ¤"], - ["bc41", "ķŖ", 17, "ķ¾ķæķŽķŽ‚ķŽƒķŽ…ķŽ†ķŽ‡"], - ["bc61", "ķŽˆķŽ‰ķŽŠķŽ‹ķŽŽķŽ’", 5, "ķŽšķŽ›ķŽķŽžķŽŸķŽ”", 6, "ķŽŖķŽ¬ķŽ®"], - ["bc81", "ķŽÆ", 4, "ķŽµķŽ¶ķŽ·ķŽ¹ķŽŗķŽ»ķŽ½", 6, "ķ†ķ‡ķŠ", 5, "ķ‘", 5, "ģƒ„ģƒØģƒ¬ģƒ“ģƒµģƒ·ģƒ¹ģ„€ģ„„ģ„ˆģ„ģ„•ģ„œ", 4, "ģ„£ģ„¤ģ„¦ģ„§ģ„¬ģ„­ģ„Æģ„°ģ„±ģ„¶ģ„øģ„¹ģ„¼ģ…€ģ…ˆģ…‰ģ…‹ģ…Œģ…ģ…”ģ…•ģ…˜ģ…œģ…¤ģ…„ģ…§ģ…Øģ…©ģ…°ģ…“ģ…øģ†…ģ†Œģ†ģ†Žģ†ģ†”ģ†–ģ†œģ†ģ†Ÿģ†”ģ†„ģ†Øģ†©ģ†¬ģ†°ģ†½ģ‡„ģ‡ˆģ‡Œģ‡”ģ‡—ģ‡˜ģ‡ ģ‡¤ģ‡Øģ‡°ģ‡±ģ‡³ģ‡¼ģ‡½ģˆ€ģˆ„ģˆŒģˆģˆģˆ‘ģˆ˜ģˆ™ģˆœģˆŸģˆ ģˆØģˆ©ģˆ«ģˆ­"], - ["bd41", "ķ—ķ™", 7, "ķ¢ķ¤", 7, "ķ®ķÆķ±ķ²ķ³ķµķ¶ķ·"], - ["bd61", "ķøķ¹ķŗķ»ķ¾ķ€ķ‚", 5, "ķ‰", 13], - ["bd81", "ķ—", 5, "ķž", 25, "ģˆÆģˆ±ģˆ²ģˆ“ģ‰ˆģ‰ģ‰‘ģ‰”ģ‰˜ģ‰ ģ‰„ģ‰¬ģ‰­ģ‰°ģ‰“ģ‰¼ģ‰½ģ‰æģŠģŠˆģŠ‰ģŠģŠ˜ģŠ›ģŠģŠ¤ģŠ„ģŠØģŠ¬ģŠ­ģŠ“ģŠµģŠ·ģŠ¹ģ‹œģ‹ģ‹ ģ‹£ģ‹¤ģ‹«ģ‹¬ģ‹­ģ‹Æģ‹±ģ‹¶ģ‹øģ‹¹ģ‹»ģ‹¼ģŒ€ģŒˆģŒ‰ģŒŒģŒģŒ“ģŒ”ģŒ•ģŒ˜ģŒœģŒ¤ģŒ„ģŒØģŒ©ģ…ģØģ©ģ¬ģ°ģ²ģøģ¹ģ¼ģ½ģŽ„ģŽˆģŽŒģ€ģ˜ģ™ģœģŸģ ģ¢ģØģ©ģ­ģ“ģµģøģˆģģ¤ģ¬ģ°"], - ["be41", "ķø", 7, "ķ‘ķ‘‚ķ‘ƒķ‘…", 14], - ["be61", "ķ‘”", 7, "ķ‘ķ‘žķ‘Ÿķ‘”ķ‘¢ķ‘£ķ‘„", 7, "ķ‘®ķ‘°ķ‘±ķ‘²"], - ["be81", "ķ‘³", 4, "ķ‘ŗķ‘»ķ‘½ķ‘¾ķ’ķ’ƒ", 4, "ķ’Šķ’Œķ’Ž", 5, "ķ’•", 8, "ģ“ģ¼ģ½ģ‘ˆģ‘¤ģ‘„ģ‘Øģ‘¬ģ‘“ģ‘µģ‘¹ģ’€ģ’”ģ’œģ’øģ’¼ģ“©ģ“°ģ“±ģ““ģ“øģ“ŗģ“æģ”€ģ”ģ”Œģ”ģ””ģ”œģ”Øģ”©ģ”¬ģ”°ģ”øģ”¹ģ”»ģ”½ģ•„ģ•…ģ•ˆģ•‰ģ•Šģ•Œģ•ģ•Žģ•“ģ•”ģ••ģ•—ģ•˜ģ•™ģ•ģ•žģ• ģ•”ģ•¤ģ•Øģ•°ģ•±ģ•³ģ•“ģ•µģ•¼ģ•½ģ–€ģ–„ģ–‡ģ–Œģ–ģ–ģ–‘ģ–•ģ–—ģ–˜ģ–œģ– ģ–©ģ–“ģ–µģ–øģ–¹ģ–»ģ–¼ģ–½ģ–¾ģ—„", 6, "ģ—Œģ—Ž"], - ["bf41", "ķ’ž", 10, "ķ’Ŗ", 14], - ["bf61", "ķ’¹", 18, "ķ“ķ“Žķ“ķ“‘ķ“’ķ““ķ“•"], - ["bf81", "ķ“–", 5, "ķ“ķ“žķ“ ", 7, "ķ“©ķ“Ŗķ“«ķ“­ķ“®ķ“Æķ“±", 6, "ķ“¹ķ“ŗķ“¼ģ—ģ—‘ģ—”ģ—˜ģ— ģ—”ģ—£ģ—„ģ—¬ģ—­ģ—®ģ—°ģ—“ģ—¶ģ—·ģ—¼", 5, "ģ˜…ģ˜†ģ˜‡ģ˜ˆģ˜Œģ˜ģ˜˜ģ˜™ģ˜›ģ˜œģ˜¤ģ˜„ģ˜Øģ˜¬ģ˜­ģ˜®ģ˜°ģ˜³ģ˜“ģ˜µģ˜·ģ˜¹ģ˜»ģ™€ģ™ģ™„ģ™ˆģ™ģ™‘ģ™“ģ™”ģ™•ģ™œģ™ģ™ ģ™¬ģ™Æģ™±ģ™øģ™¹ģ™¼ģš€ģšˆģš‰ģš‹ģšģš”ģš•ģš˜ģšœģš¤ģš„ģš§ģš©ģš°ģš±ģš“ģšøģš¹ģšŗģ›€ģ›ģ›ƒģ›…ģ›Œģ›ģ›ģ›”ģ›œģ›ģ› ģ›”ģ›Ø"], - ["c041", "ķ“¾", 5, "ķ”…ķ”†ķ”‡ķ”‰ķ”Šķ”‹ķ”", 6, "ķ”–ķ”˜", 5], - ["c061", "ķ”ž", 25], - ["c081", "ķ”øķ”¹ķ”ŗķ”»ķ”¾ķ”æķ•ķ•‚ķ•ƒķ•…", 6, "ķ•Žķ•ķ•’", 5, "ķ•šķ•›ķ•ķ•žķ•Ÿķ•”ķ•¢ķ•£ģ›©ģ›¬ģ›°ģ›øģ›¹ģ›½ģœ„ģœ…ģœˆģœŒģœ”ģœ•ģœ—ģœ™ģœ ģœ”ģœ¤ģœØģœ°ģœ±ģœ³ģœµģœ·ģœ¼ģœ½ģ€ģ„ģŠģŒģģģ‘", 7, "ģœģ ģØģ«ģ“ģµģøģ¼ģ½ģ¾ģžƒģž„ģž…ģž‡ģžˆģž‰ģžŠģžŽģžģž‘ģž”ģž–ģž—ģž˜ģžšģž ģž”ģž£ģž¤ģž„ģž¦ģž¬ģž­ģž°ģž“ģž¼ģž½ģžæģŸ€ģŸģŸˆģŸ‰ģŸŒģŸŽģŸģŸ˜ģŸģŸ¤ģŸØģŸ¬ģ €ģ ģ „ģ ˆģ Š"], - ["c141", "ķ•¤ķ•¦ķ•§ķ•Ŗķ•¬ķ•®", 5, "ķ•¶ķ•·ķ•¹ķ•ŗķ•»ķ•½", 6, "ķ–†ķ–Šķ–‹"], - ["c161", "ķ–Œķ–ķ–Žķ–ķ–‘", 19, "ķ–¦ķ–§"], - ["c181", "ķ–Ø", 31, "ģ ģ ‘ģ “ģ •ģ –ģ œģ ģ  ģ ¤ģ ¬ģ ­ģ Æģ ±ģ øģ ¼ģ”€ģ”ˆģ”‰ģ”Œģ”ģ””ģ”°ģ”±ģ”“ģ”øģ”ŗģ¢€ģ¢ģ¢ƒģ¢…ģ¢†ģ¢‡ģ¢‹ģ¢Œģ¢ģ¢”ģ¢ģ¢Ÿģ¢”ģ¢Øģ¢¼ģ¢½ģ£„ģ£ˆģ£Œģ£”ģ£•ģ£—ģ£™ģ£ ģ£”ģ£¤ģ£µģ£¼ģ£½ģ¤€ģ¤„ģ¤…ģ¤†ģ¤Œģ¤ģ¤ģ¤‘ģ¤˜ģ¤¬ģ¤“ģ„ģ„‘ģ„”ģ„˜ģ„ ģ„”ģ„£ģ„¬ģ„°ģ„“ģ„¼ģ¦ˆģ¦‰ģ¦Œģ¦ģ¦˜ģ¦™ģ¦›ģ¦ģ§€ģ§ģ§„ģ§‡ģ§ˆģ§Šģ§ģ§‘ģ§“"], - ["c241", "ķ—Šķ—‹ķ—ķ—Žķ—ķ—‘ķ—“", 4, "ķ—šķ—œķ—ž", 5, "ķ—¦ķ—§ķ—©ķ—Ŗķ—«ķ—­ķ—®"], - ["c261", "ķ—Æ", 4, "ķ—¶ķ—øķ—ŗ", 5, "ķ˜‚ķ˜ƒķ˜…ķ˜†ķ˜‡ķ˜‰", 6, "ķ˜’"], - ["c281", "ķ˜–", 5, "ķ˜ķ˜žķ˜Ÿķ˜”ķ˜¢ķ˜£ķ˜„", 7, "ķ˜®", 9, "ķ˜ŗķ˜»ģ§•ģ§–ģ§™ģ§šģ§œģ§ģ§ ģ§¢ģ§¤ģ§§ģ§¬ģ§­ģ§Æģ§°ģ§±ģ§øģ§¹ģ§¼ģ؀ģ؈ģ؉ģ؋ģ،ģ؍ģؔģؘģØ©ģ©Œģ©ģ©ģ©”ģ©œģ©ģ©Ÿģ© ģ©”ģ©Øģ©½ģŖ„ģŖ˜ģŖ¼ģŖ½ģ«€ģ«„ģ«Œģ«ģ«ģ«‘ģ«“ģ«˜ģ«™ģ« ģ«¬ģ«“ģ¬ˆģ¬ģ¬”ģ¬˜ģ¬ ģ¬”ģ­ģ­ˆģ­‰ģ­Œģ­ģ­˜ģ­™ģ­ģ­¤ģ­øģ­¹ģ®œģ®øģƔģƤģƧģÆ©ģ°Œģ°ģ°ģ°”ģ°œģ°ģ°”ģ°¢ģ°§ģ°Øģ°©ģ°¬ģ°®ģ°°ģ°øģ°¹ģ°»"], - ["c341", "ķ˜½ķ˜¾ķ˜æķ™ķ™‚ķ™ƒķ™„ķ™†ķ™‡ķ™Šķ™Œķ™Žķ™ķ™ķ™’ķ™“ķ™–ķ™—ķ™™ķ™šķ™›ķ™", 4], - ["c361", "ķ™¢", 4, "ķ™Øķ™Ŗ", 5, "ķ™²ķ™³ķ™µ", 11], - ["c381", "ķšķš‚ķš„ķš†", 5, "ķšŽķšķš‘ķš’ķš“ķš•", 7, "ķšžķš ķš¢", 5, "ķš©ķšŖģ°¼ģ°½ģ°¾ģ±„ģ±…ģ±ˆģ±Œģ±”ģ±•ģ±—ģ±˜ģ±™ģ± ģ±¤ģ±¦ģ±Øģ±°ģ±µģ²˜ģ²™ģ²œģ² ģ²Øģ²©ģ²«ģ²¬ģ²­ģ²“ģ²µģ²øģ²¼ģ³„ģ³…ģ³‡ģ³‰ģ³ģ³”ģ³¤ģ³¬ģ³°ģ“ģ“ˆģ“‰ģ“Œģ“ģ“˜ģ“™ģ“›ģ“ģ“¤ģ“Øģ“¬ģ“¹ģµœģµ ģµ¤ģµ¬ģµ­ģµÆģµ±ģµøģ¶ˆģ¶”ģ¶•ģ¶˜ģ¶œģ¶¤ģ¶„ģ¶§ģ¶©ģ¶°ģ·„ģ·Œģ·ģ·Øģ·¬ģ·°ģ·øģ·¹ģ·»ģ·½ģø„ģøˆģøŒģø”ģø™ģø ģø”ģø¤ģøØģø°ģø±ģø³ģøµ"], - ["c441", "ķš«ķš­ķš®ķšÆķš±", 7, "ķšŗķš¼", 7, "ķ›†ķ›‡ķ›‰ķ›Šķ›‹"], - ["c461", "ķ›ķ›Žķ›ķ›ķ›’ķ›“ķ›•ķ›–ķ›˜ķ›š", 5, "ķ›”ķ›¢ķ›£ķ›„ķ›¦ķ›§ķ›©", 4], - ["c481", "ķ›®ķ›Æķ›±ķ›²ķ›³ķ›“ķ›¶", 5, "ķ›¾ķ›æķœķœ‚ķœƒķœ…", 11, "ķœ’ķœ“ķœ”ģ¹˜ģ¹™ģ¹œģ¹Ÿģ¹ ģ¹”ģ¹Øģ¹©ģ¹«ģ¹­ģ¹“ģ¹µģ¹øģ¹¼ģŗ„ģŗ…ģŗ‡ģŗ‰ģŗģŗ‘ģŗ”ģŗ˜ģŗ ģŗ”ģŗ£ģŗ¤ģŗ„ģŗ¬ģŗ­ģ»ģ»¤ģ»„ģ»Øģ»«ģ»¬ģ»“ģ»µģ»·ģ»øģ»¹ģ¼€ģ¼ģ¼„ģ¼ˆģ¼ģ¼‘ģ¼“ģ¼•ģ¼œģ¼ ģ¼¤ģ¼¬ģ¼­ģ¼Æģ¼°ģ¼±ģ¼øģ½”ģ½•ģ½˜ģ½œģ½¤ģ½„ģ½§ģ½©ģ½°ģ½±ģ½“ģ½øģ¾€ģ¾…ģ¾Œģ¾”ģ¾Øģ¾°ģæ„ģæ ģæ”ģæ¤ģæØģæ°ģæ±ģæ³ģæµģæ¼ķ€€ķ€„ķ€‘ķ€˜ķ€­ķ€“ķ€µķ€øķ€¼"], - ["c541", "ķœ•ķœ–ķœ—ķœšķœ›ķœķœžķœŸķœ”", 6, "ķœŖķœ¬ķœ®", 5, "ķœ¶ķœ·ķœ¹"], - ["c561", "ķœŗķœ»ķœ½", 6, "ķ…ķ†ķˆķŠ", 5, "ķ’ķ“ķ•ķš", 4], - ["c581", "ķŸķ¢ķ¤ķ¦ķ§ķØķŖķ«ķ­ķ®ķÆķ±ķ²ķ³ķµ", 6, "ķ¾ķæķž€ķž‚", 5, "ķžŠķž‹ķ„ķ…ķ‡ķ‰ķķ”ķ˜ķ ķ¬ķ­ķ°ķ“ķ¼ķ½ķ‚ķ‚¤ķ‚„ķ‚Øķ‚¬ķ‚“ķ‚µķ‚·ķ‚¹ķƒ€ķƒķƒ„ķƒˆķƒ‰ķƒķƒ‘ķƒ“ķƒ”ķƒ•ķƒœķƒķƒ ķƒ¤ķƒ¬ķƒ­ķƒÆķƒ°ķƒ±ķƒøķ„ķ„°ķ„±ķ„“ķ„øķ„ŗķ…€ķ…ķ…ƒķ…„ķ……ķ…Œķ…ķ…ķ…”ķ…œķ…ķ…Ÿķ…”ķ…Øķ…¬ķ…¼ķ†„ķ†ˆķ† ķ†”ķ†¤ķ†Øķ†°ķ†±ķ†³ķ†µķ†ŗķ†¼ķ‡€ķ‡˜ķ‡“ķ‡øķˆ‡ķˆ‰ķˆķˆ¬ķˆ­ķˆ°ķˆ“ķˆ¼ķˆ½ķˆæķ‰ķ‰ˆķ‰œ"], - ["c641", "ķžķžŽķžķž‘", 6, "ķžšķžœķžž", 5], - ["c6a1", "ķ‰¤ķŠ€ķŠķŠ„ķŠˆķŠķŠ‘ķŠ•ķŠœķŠ ķŠ¤ķŠ¬ķŠ±ķŠøķŠ¹ķŠ¼ķŠæķ‹€ķ‹‚ķ‹ˆķ‹‰ķ‹‹ķ‹”ķ‹˜ķ‹œķ‹¤ķ‹„ķ‹°ķ‹±ķ‹“ķ‹øķŒ€ķŒķŒƒķŒ…ķŒŒķŒķŒŽķŒķŒ”ķŒ–ķŒœķŒķŒŸķŒ ķŒ”ķŒ„ķŒØķŒ©ķŒ¬ķŒ°ķŒøķŒ¹ķŒ»ķŒ¼ķŒ½ķ„ķ…ķ¼ķ½ķŽ€ķŽ„ķŽŒķŽķŽķŽķŽ‘ķŽ˜ķŽ™ķŽœķŽ ķŽØķŽ©ķŽ«ķŽ­ķŽ“ķŽøķŽ¼ķ„ķ…ķˆķ‰ķķ˜ķ”ķ£ķ¬ķ­ķ°ķ“ķ¼ķ½ķæķ"], - ["c7a1", "ķˆķķ‘€ķ‘„ķ‘œķ‘ ķ‘¤ķ‘­ķ‘Æķ‘øķ‘¹ķ‘¼ķ‘æķ’€ķ’‚ķ’ˆķ’‰ķ’‹ķ’ķ’”ķ’©ķ“Œķ“ķ“”ķ“œķ“Ÿķ“Øķ“¬ķ“°ķ“øķ“»ķ“½ķ”„ķ”ˆķ”Œķ””ķ”•ķ”—ķ”¼ķ”½ķ•€ķ•„ķ•Œķ•ķ•ķ•‘ķ•˜ķ•™ķ•œķ• ķ•„ķ•Øķ•©ķ•«ķ•­ķ•“ķ•µķ•øķ•¼ķ–„ķ–…ķ–‡ķ–ˆķ–‰ķ–ķ–„ķ—ˆķ—‰ķ—Œķ—ķ—’ķ—˜ķ—™ķ—›ķ—ķ—¤ķ—„ķ—Øķ—¬ķ—“ķ—µķ—·ķ—¹ķ˜€ķ˜ķ˜„ķ˜ˆķ˜ķ˜‘ķ˜“ķ˜”ķ˜•ķ˜œķ˜ "], - ["c8a1", "ķ˜¤ķ˜­ķ˜øķ˜¹ķ˜¼ķ™€ķ™…ķ™ˆķ™‰ķ™‹ķ™ķ™‘ķ™”ķ™•ķ™˜ķ™œķ™§ķ™©ķ™°ķ™±ķ™“ķšƒķš…ķšŒķšķšķš”ķšķšŸķš”ķšØķš¬ķš°ķš¹ķš»ķ›„ķ›…ķ›ˆķ›Œķ›‘ķ›”ķ›—ķ›™ķ› ķ›¤ķ›Øķ›°ķ›µķ›¼ķ›½ķœ€ķœ„ķœ‘ķœ˜ķœ™ķœœķœ ķœØķœ©ķœ«ķœ­ķœ“ķœµķœøķœ¼ķ„ķ‡ķ‰ķķ‘ķ”ķ–ķ—ķ˜ķ™ķ ķ”ķ£ķ„ķ©ķ¬ķ°ķ“ķ¼ķ½ķžķžˆķž‰ķžŒķžķž˜ķž™ķž›ķž"], - ["caa1", "伽佳假價加åÆå‘µå“„å˜‰å«å®¶ęš‡ęž¶ęž·ęŸÆꭌē‚ē—‚ēØ¼č‹›čŒ„č”—č¢ˆčØ¶č³ˆč·č»»čæ¦é§•åˆ»å“各ęŖę…¤ę®¼ēč„šč¦ŗč§’é–£ä¾ƒåˆŠå¢¾å„øå§¦å¹²å¹¹ę‡‡ę€ę†ęŸ¬ę”æę¾—ē™Žēœ‹ē£µē؈ē«æē°”č‚č‰®č‰±č««é–“ä¹«å–ę›·ęø“ē¢£ē«­č‘›č¤čŽéžØ勘坎å ŖåµŒę„Ÿę†¾ęˆ”ę•¢ęŸ‘ę©„ęø›ē”˜ē–³ē›£ēž°ē“ŗé‚Æ鑑鑒龕"], - ["cba1", "匣岬ē”²čƒ›é‰€é–˜å‰›å ˆå§œå²”å“—åŗ·å¼ŗå½Šę…·ę±Ÿē•ŗē–†ē³ ēµ³ē¶±ē¾Œč…”čˆ”č–‘č„č¬›é‹¼é™é±‡ä»‹ä»·å€‹å‡±å”ę„·ę„¾ę…Øę”¹ę§Ŗę¼‘ē–„ēš†ē›–ē®‡čŠ„蓋ļ¤€éŽ§é–‹å–€å®¢å‘ļ¤ē²³ē¾¹é†µå€Ø去居å·Øę‹’ę®ę“šę“§ęø ē‚¬ē„›č·čøžļ¤‚遽鉅é‹ø乾件偄巾å»ŗę„†ę„—č…±č™”č¹‡éµéØ«ä¹žå‚‘ę°ę”€å„‰åŠåŠ’ęŖ¢"], - ["cca1", "ēž¼éˆé»”劫ę€Æčæ²åˆę†©ę­ę“Šę ¼ęŖ„ęæ€č†ˆč¦”隔堅ē‰½ēŠ¬ē”„ēµ¹ē¹­č‚©č¦‹č­“é£éµ‘ęŠ‰ę±ŗę½”ēµē¼ŗčØ£å…¼ę…Šē®č¬™é‰—鎌äŗ¬äæ“倞傾儆勁勍åæ坰境åŗšå¾‘ꅶꆬ꓎ꕬę™Æęš»ę›“ę¢—ę¶‡ē‚…ēƒ±ē’Ÿē’„ē“Šē—™ē”¬ē£¬ē«Ÿē«¶ēµ…ē¶“耕č€æč„›čŽ–č­¦č¼•é€•é”é ƒé ø驚éÆØäæ‚å•“å ŗ儑季屆ę‚øęˆ’ę”‚ę¢°"], - ["cda1", "ę£ØęŗŖē•Œē™øē£Žēؽē³»ē¹«ē¹¼č؈čŖ”č°æ階鷄古叩告呱å›ŗ姑孤尻åŗ«ę‹·ę”·ę•…ę•²ęš ęžÆę§ę²½ē—¼ēšē¾ēØæē¾”č€ƒč‚”č†č‹¦č‹½č°č—č ±č¢“čŖ„ļ¤ƒč¾œéŒ®é›‡é”§é«˜é¼“å“­ę–›ę›²ę¢ē©€č°·éµ å›°å¤å“‘ę˜†ę¢±ę£ę»¾ēØč¢žéƤę±Øļ¤„éŖØä¾›å…¬å…±åŠŸå­”å·„ęę­ę‹±ęŽ§ę”»ē™ē©ŗčš£č²¢éžäø²åÆ”ęˆˆęžœē“œ"], - ["cea1", "ē§‘č“čŖ‡čŖ²č·Ø過鍋锆廓ę§Øč—æ郭ļ¤…冠官åÆ¬ę…£ę£ŗę¬¾ēŒēÆē“˜ē®”ē½č…č§€č²«é—œé¤Øåˆ®ęę‹¬é€‚ä¾Šå…‰åŒ”å£™å»£ę› ę“øē‚šē‹‚ē–ē­čƒ±é‘›å¦ęŽ›ē½«ä¹–傀唊壞ę€Ŗę„§ę‹ę§é­å®ē“˜č‚±č½Ÿäŗ¤åƒ‘咬喬嬌嶠巧ę”Ŗꕎꠔꩋē‹”ēšŽēŸÆēµžēæ¹č† č•Žč›Ÿč¼ƒč½ŽéƒŠé¤ƒé©•é®«äø˜ä¹…九仇äæ±å…·å‹¾"], - ["cfa1", "區口叄咎嘔坵垢åÆ‡å¶‡å»ę‡¼ę‹˜ę•‘ęžøęŸ©ę§‹ę­ęƆęÆ¬ę±‚ęŗēøē‹—ēŽ–ēƒēžæēŸ©ē©¶ēµæč€‰č‡¼čˆ…čˆŠč‹Ÿč”¢č¬³č³¼č»€é€‘é‚±é‰¤éŠ¶é§’é©…é³©é·—é¾œåœ‹å±€čŠéž éž«éŗ“君ēŖ˜ē¾¤č£™č»éƒ”å €å±ˆęŽ˜ēŖŸå®®å¼“ē©¹ēŖ®čŠŽčŗ¬å€¦åˆøå‹øå·åœˆę‹³ę²ę¬Šę·ƒēœ·åŽ„ē—č•Øč¹¶é—•ęœŗę«ƒę½°č©­č»Œé„‹ļ¤†ę™·ę­øč²“"], - ["d0a1", "鬼ļ¤‡å«åœ­å„Žę†ę§»ēŖē”…ēŖŗē«…ē³¾č‘µč¦čµ³é€µé–Ø勻均ē•‡ē­ čŒéˆžļ¤ˆę©˜å…‹å‰‹åŠ‡ęˆŸę£˜ę„µéš™åƒ…åŠ¤å‹¤ę‡ƒę–¤ę ¹ę§æē‘¾ē­‹čŠ¹č«č¦²č¬¹čæ‘鄉ļ¤‰ä»Šå¦—ę“’ę˜‘ęŖŽē“ē¦ē¦½čŠ©č”¾č”æč„Ÿļ¤ŠéŒ¦ä¼‹åŠę€„ę‰±ę±²ē“šēµ¦äŗ˜å…¢ēŸœč‚Æ企伎其冀嗜å™Ø圻åŸŗ埼夔儇妓åƄ岐哎己幾åæŒęŠ€ę——ę—£"], - ["d1a1", "ęœžęœŸęžę£‹ę£„ę©Ÿę¬ŗę°£ę±½ę²‚ę·‡ēŽ˜ē¦ēŖē’‚ē’£ē•øē•æē¢ē£Æē„ē„‡ē„ˆē„ŗē®•ē“€ē¶ŗē¾ˆč€†č€­č‚ŒčØ˜č­č±ˆčµ·éŒ”éŒ¤é£¢é„‘é؎é؏驄éŗ’ē·Šä½¶å‰ę‹®ę””金喫å„ŗļ¤‹ļ¤ŒåØœę‡¦ļ¤ę‹ę‹æļ¤Ž", 5, "那ļ¤”", 4, "č«¾ļ¤™ļ¤šļ¤›ļ¤œęš–ļ¤ē…–ļ¤žļ¤Ÿé›£ļ¤ ęęŗ南ļ¤”ęžę„ ę¹³ļ¤¢ē”·ļ¤£ļ¤¤ļ¤„"], - ["d2a1", "ē“ļ¤¦ļ¤§č”²å›Šåؘļ¤Ø", 4, "乃ļ¤­å…§å„ˆęŸ°č€ļ¤®å„³å¹“꒚ē§Šåæµę¬ę‹ˆę»åƧåƗåŠŖļ¤Æå„“å¼©ę€’ļ¤°ļ¤±ļ¤²ē‘™ļ¤³", 5, "駑ļ¤¹", 10, "ęæƒļ„„ļ„…č†æč¾²ęƒ±ļ„†ļ„‡č…¦ļ„ˆļ„‰å°æļ„Š", 7, "å«©čØ„ę»ē“ļ„’", 5, "čƒ½ļ„˜ļ„™å°¼ę³„åŒæęŗŗå¤ščŒ¶"], - ["d3a1", "äø¹äŗ¶ä½†å–®åœ˜å£‡å½–ę–·ę—¦ęŖ€ę®µę¹ēŸ­ē«Æē°žē·žč›‹č¢’é„²é›ę’»ę¾¾ēŗē–ø達啖坍ę†ŗę“”ę›‡ę·”ę¹›ę½­ę¾¹ē—°čƒč†½č•č¦ƒč«‡č­šéŒŸę²“ē•“ē­”čøéå”å ‚å”˜å¹¢ęˆ‡ę’žę£ ē•¶ē³–čž³é»Ø代垈坮大對岱åø¶å¾…ęˆ“ę“”ēŽ³č‡ŗč¢‹č²øéšŠé»›å®…å¾·ę‚³å€’åˆ€åˆ°åœ–å µå”—å°Žå± å³¶å¶‹åŗ¦å¾’ę‚¼ęŒ‘ęŽ‰ę—ę”ƒ"], - ["d4a1", "ę£¹ę«‚ę·˜ęø”ę»”ęæ¤ē‡¾ē›œē¹ē¦±ēØ»č„č¦©č³­č·³č¹ˆé€ƒé€”é“éƒ½éé™¶éŸœęƒē€†ē‰˜ēŠ¢ēØē£ē¦æēƤēŗ›č®€å¢©ęƒ‡ę•¦ę—½ęš¾ę²Œē„žē‡‰č±šé “ä¹­ēŖä»å†¬å‡å‹•åŒę†§ę±ę”ę£Ÿę“žę½¼ē–¼ēž³ē«„čƒ“č‘£éŠ…å…œę–—ęœęž“ē—˜ē«‡č³ļ„šč±†é€—é ­å±Æ臀芚遁éÆéˆå¾—å¶ę©™ē‡ˆē™»ē­‰č—¤č¬„鄧éØ°å–‡ę‡¶ļ„›ē™©ē¾…"], - ["d5a1", "č˜æčžŗč£ø邏ļ„œę“›ēƒ™ēžēµ”č½ļ„é…Ŗ駱ļ„žäŗ‚åµę¬„ę¬’ē€¾ēˆ›č˜­éøžå‰Œč¾£åµę“„ꔬꬖęæ«ē±ƒēŗœč—č„¤č¦½ę‹‰č‡˜č Ÿå»Šęœ—ęµŖē‹¼ē…ē‘Æčž‚éƒžä¾†å“å¾ čŠå†·ęŽ ē•„äŗ®å€†å…©å‡‰ę¢ęؑē²®ē²±ē³§č‰Æč«’č¼›é‡ä¾¶å„·å‹µå‘‚å»¬ę…®ęˆ¾ę—…ę«šęæ¾ē¤Ŗč—œč £é–­é©¢é©Ŗéŗ—é»ŽåŠ›ę›†ę­·ē€ē¤«č½¢é‚ę†ęˆ€ę”£ę¼£"], - ["d6a1", "ē…‰ē’‰ē·“čÆč“®č¼¦é€£éŠå†½åˆ—åŠ£ę“Œēƒˆč£‚å»‰ę–‚ę®®ęæ‚ē°¾ēµä»¤ä¼¶å›¹ļ„Ÿå²ŗå¶ŗꀜēŽ²ē¬­ē¾šēæŽč†é€žéˆ“é›¶éˆé ˜é½”ä¾‹ę¾§ē¦®é†“隷勞ļ„ ę’ˆę“„ę«“ę½žē€˜ēˆē›§č€č˜†č™œč·Æč¼…éœ²é­Æé·ŗé¹µē¢Œē„æē¶ č‰éŒ„é¹æéŗ“č«–å£Ÿå¼„ęœ§ē€§ē“ē± č¾å„”ē€Øē‰¢ē£Šč³‚č³šč³“雷äŗ†åƒšåÆ®å»–ę–™ē‡Žē™‚ēž­čŠč“¼"], - ["d7a1", "遼鬧龍壘婁屢ęØ“ę·šę¼ē˜»ē“Æēø·č”žč¤øé¤é™‹åŠ‰ę—’ęŸ³ę¦“ęµęŗœē€ē‰ē‘ ē•™ē˜¤ē”«č¬¬é”žå…­ęˆ®é™ø侖倫哙ę·Ŗē¶øč¼Ŗå¾‹ę…„ę —ļ„”éš†å‹’č‚‹å‡œå‡Œę„žē؜ē¶¾č±é™µäæšåˆ©åŽ˜åå”Žå±„ꂧꝎę¢Ø구ēŠē‹øē†ē’ƒļ„¢ē—¢ē±¬ē½¹ē¾øčŽ‰č£č£”é‡Œé‡é›¢éÆ‰åę½¾ē‡ē’˜č—ŗčŗŖ隣鱗éŗŸęž—ę·‹ē³č‡Ø霖ē ¬"], - ["d8a1", "ē«‹ē¬ ē²’ę‘©ē‘Ŗē—²ē¢¼ē£Ø馬魔éŗ»åÆžå¹•ę¼ č†œčŽ«é‚ˆäø‡ååØ©å·’å½Žę…¢ęŒ½ę™©ę›¼ę»æę¼«ē£ēžžč¬č”“č »č¼“é„…é°»å”œęŠ¹ęœ«ę²«čŒ‰č„Ŗéŗäŗ”妄åæ˜åæ™ęœ›ē¶²ē½”čŠ’čŒ«čŽ½č¼žé‚™åŸ‹å¦¹åŖ’åÆę˜§ęžšę¢…ęƏē…¤ē½µč²·č³£é‚é­…č„ˆč²Šé™Œé©€éŗ„å­Ÿę°“ēŒ›ē›²ē›ŸčŒå†Ŗč¦“å…å†•å‹‰ę£‰ę²”ēœ„ēœ ē¶æē·¬é¢éŗµę»…"], - ["d9a1", "č”‘å†„åå‘½ę˜Žęšę¤§ęŗŸēšæēž‘čŒ—č“‚čžŸé…©éŠ˜é³“č¢‚ä¾®å†’å‹Ÿå§†åø½ę…•ę‘øę‘¹ęš®ęŸęØ”ęƍęƛē‰Ÿē‰”ē‘ēœøēŸ›č€—čŠ¼čŒ…č¬€č¬Øč²ŒęœØę²ē‰§ē›®ē¦ē©†é¶©ę­æę²’å¤¢ęœ¦č’™åÆå¢“å¦™å»Ÿęę˜“ę³ęøŗēŒ«ē«—č‹—éŒØå‹™å·«ę†®ę‡‹ęˆŠę‹‡ę’«ę— ę„™ę­¦ęƋē„”ē·ē•ē¹†čˆžčŒ‚č•ŖčŖ£č²æ霧鵔å¢Øé»˜å€‘åˆŽå»å•ę–‡"], - ["daa1", "걶ē“Šē“‹čžčšŠé–€é›Æå‹æę²•ē‰©å‘³åŖšå°¾åµ‹å½Œå¾®ęœŖę¢¶ę„£ęø¼ę¹„ēœ‰ē±³ē¾Žč–‡č¬Žčæ·é”é»“å²·ę‚¶ę„ę†«ę•ę—»ę—¼ę°‘ę³ÆēŽŸē‰ē·”閔åÆ†čœœč¬å‰åšę‹ęę’²ęœ“ęØøę³Šē€ē’žē®”ē²•ēø›č†Ščˆ¶č–„čæ«é›¹é§ä¼“åŠåå›ę‹Œę¬ę”€ę–‘ę§ƒę³®ę½˜ē­ē•”ē˜¢ē›¤ē›¼ē£ē£»ē¤¬ēµ†čˆ¬čŸ čæ”é ’é£Æå‹ƒę‹”ę’„ęø¤ę½‘"], - ["dba1", "ē™¼č·‹é†±é‰¢é«®é­ƒå€£å‚åŠå¦Øå°Ø幇彷ęˆæę”¾ę–¹ę—ę˜‰ęž‹ę¦œę»‚ē£…ē“”č‚Ŗč†€čˆ«čŠ³č’”čšŒčØŖč¬—é‚¦é˜²é¾å€äæ³ļ„£åŸ¹å¾˜ę‹œęŽ’ęÆę¹ƒē„™ē›ƒčƒŒčƒšč£“č£µč¤™č³ č¼©é…é™Ŗä¼Æä½°åø›ęŸę ¢ē™½ē™¾é­„å¹”ę؊ē…©ē‡”ē•Ŗļ„¤ē¹č•ƒč—©é£œä¼ē­ē½°é–„凔åø†ę¢µę°¾ę±Žę³›ēŠÆēÆ„čŒƒę³•ēŗåƒ»åŠˆå£ę“˜ęŖ—ē’§ē™–"], - ["dca1", "ē¢§č˜—闢霹ļ„„åžå¼č®Šč¾Øč¾Æ邊刄ēž„鱉鼈äø™å€‚å…µå±›å¹·ę˜žę˜ŗęŸ„ę£…ē‚³ē”ē—…ē§‰ē«č¼§é¤ é؈äæå ”å ±åÆ¶ę™®ę­„ę“‘ę¹ŗę½½ē¤ē”«č©č£œč¤“č­œč¼”ä¼åƒ•åŒåœå®“å¾©ęœē¦č…¹čŒÆč””č¤‡č¦†č¼¹č¼»é¦„é°’ęœ¬ä¹¶äæø儉封å³Æå³°ę§ę£’ēƒ½ē†¢ē«ēø«č“¬čœ‚逢鋒鳳äøä»˜äæÆ傅剖å‰Æ否咐埠夫婦"], - ["dda1", "孚孵åƌåŗœļ„¦ę‰¶ę•·ę–§ęµ®ęŗ„ēˆ¶ē¬¦ē°æē¼¶č…č…‘膚艀芙莩čØƒč² č³¦č³»čµ“č¶ŗéƒØ釜阜附駙鳧北分吩噓墳儔儮åææę†¤ę‰®ę˜ę±¾ē„šē›†ē²‰ē³žē“›čŠ¬č³é›°ļ„§ä½›å¼—å½æę‹‚å“©ęœ‹ę£šē”¼ē¹ƒéµ¬äø•å‚™åŒ•åŒŖ卑妃婢åŗ‡ę‚²ę†Šę‰‰ę‰¹ę–ęž‡ę¦§ęƔęƖęƗęƘę²øļ„Øēµē—ŗē ’ē¢‘ē§•ē§˜ē²ƒē·‹ēæ”č‚„"], - ["dea1", "č„¾č‡‚č²čœšč£ØčŖ¹č­¬č²»é„™éžé£›é¼»åš¬å¬Ŗå½¬ę–ŒęŖ³ę®Æęµœęæ±ē€•ē‰ēŽ­č²§č³“é »ę†‘ę°·č˜é؁乍äŗ‹äŗ›ä»•ä¼ŗä¼¼ä½æäæŸåƒæ史åø唆嗣四士儢åؑåÆ«åÆŗ射巳åø«å¾™ę€ęØꖜę–ÆęŸ¶ęŸ»ę¢­ę­»ę²™ę³—ęø£ē€‰ē…ē ‚ē¤¾ē„€ē„ ē§ēÆ©ē“—ēµ²č‚†čˆčŽŽč“‘č›‡č£Ÿč©č©žč¬č³œčµ¦č¾­é‚Ŗ飼駟éŗå‰Šļ„©ęœ”ļ„Ŗ"], - ["dfa1", "傘åˆŖå±±ę•£ę±•ēŠē”£ē–ē®—č’œé…øéœ°ä¹·ę’’ę®ŗē…žč–©äø‰ļ„«ę‰ę£®ęø—čŠŸč”˜č”«ę·ę¾éˆ’é¢ÆäøŠå‚·åƒå„Ÿå•†å–Ŗ嘗孀尙峠åøøåŗŠåŗ å»‚ęƒ³ę”‘ę©”ę¹˜ēˆ½ē‰€ē‹€ē›øē„„ē®±ēæ”č£³č§“č©³č±”č³žéœœå”žē’½č³½å—‡ļ„¬ē©”ē“¢č‰²ē‰²ē”Ÿē”„ļ„­ē¬™å¢…壻嶼åŗåŗ¶å¾ę•ęŠ’ęæꕍꚑꛙę›øę –ę£²ēŠ€ē‘žē­®ēµ®ē·–ē½²"], - ["e0a1", "čƒ„čˆ’č–Æč„æčŖ“逝鋤黍鼠夕儭åø­ęƒœę˜”ę™³ęžę±ę·…ę½ŸēŸ³ē¢©č“†é‡‹éŒ«ä»™åƒŠå…ˆå–„å¬‹å®£ę‰‡ę•¾ę—‹ęø²ē…½ēē‘„ē’‡ē’æē™¬ē¦Ŗē·šē¹•ē¾Øč…ŗč†³čˆ¹č˜ščŸ¬č©µč·£éø銑鐄鄍鮮åØå±‘ę„”ę³„ę“©ęø«čˆŒč–›č¤»čØ­čŖŖé›Ŗé½§å‰”ęš¹ę®²ēŗ–čŸ¾č“é–ƒé™ę”ę¶‰ē‡®ļ„®åŸŽå§“å®¬ę€§ęƒŗꈐꘟꙟēŒ©ē¹ē››ēœē­¬"], - ["e1a1", "č–č²č…„čŖ é†’äø–å‹¢ę­²ę“—ē؅ē¬¹ē“°ļ„Æč²°å¬å˜Æå”‘å®µå°å°‘å·¢ę‰€ęŽƒę”ę˜­ę¢³ę²¼ę¶ˆęŗÆē€Ÿē‚¤ē‡’ē”¦ē–ē–Žē˜™ē¬‘ēÆ ē°«ē“ ē“¹č”¬č•­č˜‡čؓ逍達邵銷韶éØ·äæ—å±¬ęŸę¶‘ē²ŸēŗŒč¬–č“–é€Ÿå­«å·½ęč“€éœé£”ēŽ‡å®‹ę‚šę¾ę·žč؟čŖ¦é€é Œåˆ·ļ„°ē‘ē¢ŽéŽ–蔰釗äæ®å—嗽囚垂壽嫂守岫峀åø„ꄁ"], - ["e2a1", "ęˆę‰‹ęŽˆęœę”¶ę•øęØ¹ę®Šę°“ę“™ę¼±ē‡§ē‹©ēøē‡ē’²ē˜¦ē”ē§€ē©—ē«Ŗē²¹ē¶ē¶¬ē¹”ē¾žč„©čŒ±č’č“šč—Ŗč¢–čŖ°č®č¼ø遂邃酬銖銹隋隧éšØ雖需須首髓鬚叔唾夙孰å®æę·‘ę½šē†Ÿē”ē’¹č‚…č½å·”徇å¾Ŗꁂꗬꠒę„Æę©“ę®‰ę“µę·³ē£ē›¾ēž¬ē­ē“”č„£čˆœč€č““č•£č©¢č«„é†‡éŒžé †é¦“ęˆŒč”“čæ°é‰„哇哧"], - ["e3a1", "嵩ē‘Ÿč†čØęæ•ę‹¾ēæ’č¤¶č„²äøžä¹˜åƒ§å‹å‡ę‰æꘇē¹©č …陞侍匙嘶始åŖ¤å°ø屎屍åø‚å¼‘ęƒę–½ę˜Æę™‚ęž¾ęŸ“ēŒœēŸ¢ē¤ŗēæ…č’”č“č¦–č©¦č©©č«”豕č±ŗ埓åƔ式ęÆę‹­ę¤ę®–ę¹œē†„ēÆ’č•č­˜č»¾é£Ÿé£¾ä¼ø侁äæ”呻åØ å®øę„¼ę–°ę™Øē‡¼ē”³ē„žē“³č…Žč‡£čŽ˜č–Ŗ藎蜃č؊čŗ«č¾›ļ„±čæ…失室åÆ¦ę‚‰åƩ尋åæƒę²"], - ["e4a1", "ļ„²ę·±ē€‹ē”ščŠÆč«¶ä»€åļ„³é›™ę°äŗžäæ„å…’å•žåØ„å³Øꈑē‰™čŠ½čŽŖč›¾č”™č؝é˜æé›…é¤“é“‰éµå Šå²³å¶½å¹„ęƒ”ę„•ę”ę؂ęø„鄂鍔锎鰐齷安å²øęŒ‰ę™ę”ˆēœ¼é›éžé””é®Ÿę–”č¬č»‹é–¼å”µå²©å·–åŗµęš—ē™Œč“é—‡å£“ęŠ¼ē‹Žé“Øä»°å¤®ę€ę˜»ę®ƒē§§é“¦åŽ“å“€åŸƒå“–ę„›ę›–ę¶Æē¢č‰¾éš˜é„åŽ„ę‰¼ęŽ–ę¶²ēøŠč…‹é”"], - ["e5a1", "ę«»ē½Œé¶Æéøšä¹Ÿå€»å†¶å¤œęƒ¹ę¶ę¤°ēˆŗ耶ļ„“野弱ļ„µļ„¶ē“„č‹„č‘Æ蒻藄čŗļ„·ä½Æļ„øļ„¹å£¤å­ƒę™ęšę”˜ę•­ęš˜ļ„ŗę„ŠęØ£ę“‹ē€ē…¬ē—’ē˜ē¦³ē©°ļ„»ē¾Šļ„¼č„„ļ„½č®“釀陽ļ„¾é¤Šåœ„å¾”ę–¼ę¼ē˜€ē¦¦čŖžé¦­é­šé½¬å„„ꆶꊑęŖč‡†åƒå °å½¦ē„‰č؀č«ŗå­¼č˜–äæŗå„¼åš“å„„ęŽ©ę·¹å¶Ŗę„­å††äŗˆä½™ļ„æļ¦€ļ¦å¦‚ļ¦‚"], - ["e6a1", "ļ¦ƒę­Ÿę±ļ¦„ē’µē¤–ļ¦…čˆ‡č‰…čŒ¹č¼æč½ļ¦†é¤˜ļ¦‡ļ¦ˆļ¦‰äŗ¦ļ¦ŠåŸŸå½¹ę˜“ļ¦‹ļ¦Œē–«ē¹¹č­Æļ¦é€†é©›åš„å §å§øå؟宓ļ¦Žå»¶ļ¦ļ¦ęęŒ»ļ¦‘ę¤½ę²‡ę²æę¶Žę¶“ę·µę¼”ļ¦’ēƒŸē„¶ē…™ļ¦“ē‡ƒē‡•ļ¦”ē”ē”Æļ¦•ē­µē·£ļ¦–ēøÆļ¦—č”č»Ÿļ¦˜ļ¦™ļ¦šé‰›ļ¦›é³¶ļ¦œļ¦ļ¦žę‚…궅ļ¦Ÿē†±ļ¦ ļ¦”閱厭ļ¦¢ļ¦£ļ¦¤ęŸ“ļ¦„ē‚Žē„°ē°č‰¶č‹’"], - ["e7a1", "ļ¦¦é–»é«„é¹½ę›„ļ¦§ē‡č‘‰ļ¦Øļ¦©å”‹ļ¦Ŗļ¦«å¶øå½±ļ¦¬ę˜ ęšŽę„¹ę¦®ę°øę³³ęø¶ę½ęæšē€›ē€Æē…ē‡Ÿē°ļ¦­ē‘›ļ¦®ē“”ē›ˆē©Žēŗ“ļ¦Æļ¦°č‹±č© čæŽļ¦±éˆļ¦²éœ™ļ¦³ļ¦“乂å€Ŗļ¦µåˆˆå”ę›³ę±­ęæŠēŒŠēæē©¢čŠ®č—č˜‚ļ¦¶č£”č©£č­½č±«ļ¦·éŠ³ļ¦ø霓預äŗ”伍äæ‰å‚²åˆå¾å³å—šå”¢å¢ŗ儧å؛åÆ¤ę‚Ÿļ¦¹ę‡Šę•–ę—æę™¤ę¢§ę±šę¾³"], - ["e8a1", "ēƒē†¬ē’ē­½čœˆčŖ¤é°²é¼‡å±‹ę²ƒē„ēŽ‰éˆŗęŗ«ē‘„ē˜Ÿē©©ēø•č˜Šå…€å£…꓁ē“®ē”•ē™°ēæé‚•é›é„”ęø¦ē“¦ēŖ©ēŖŖ臄蛙čøčØ›å©‰å®Œå®›ę¢”ę¤€ęµ£ēŽ©ē“ē¬ē¢—ē·©ēæ«č„˜č…•čŽžč±Œé˜®é ‘ę›°å¾€ę—ŗ꞉ę±ŖēŽ‹å€­å؃ę­ŖēŸ®å¤–嵬巍ēŒ„ē•ļ¦ŗļ¦»åƒ„凹å Æ夭妖姚åÆ„ļ¦¼ļ¦½å¶¢ę‹—ę–ę’“ę“¾ļ¦¾ę›œļ¦æꩈļ§€ē‡æē‘¤ļ§"], - ["e9a1", "ēŖˆēŖÆē¹‡ē¹žč€€č…°ļ§‚čŸÆ要謠遙ļ§ƒé‚€é„’ę…¾ę¬²ęµ“ēøŸč¤„č¾±äæ‘傭冗勇埇墉容åŗøę…‚ę¦•ę¶Œę¹§ęŗ¶ē†”ē‘¢ē”Øē”¬č³čŒø蓉čøŠéŽ”鏞ļ§„äŗŽä½‘偶å„Ŗ又友右宇åÆ“å°¤ę„šę†‚ę—“ē‰›ēŽ—ē‘€ē›‚ē„ē¦‘ē¦¹ē“†ē¾½čŠ‹č—•č™žčæ‚遇郵é‡Ŗ隅é›Øé›©å‹–å½§ę—­ę˜±ę Æē…œēض郁頊äŗ‘ļ§…ę©’ę®žę¾ē†‰č€˜čŠø蕓"], - ["eaa1", "é‹éš•é›²éŸ»č”šé¬±äŗē†Šé›„元原哔圓園垣åŖ›å«„åƃę€Øę„æę“ę²…ę“¹ę¹²ęŗēˆ°ēŒæē‘—č‹‘č¢č½…é ļ§†é™¢é”˜é“›ęœˆč¶Šé‰žä½å‰åƒžå±åœå§”åØå°‰ę…°ęšęø­ēˆ²ē‘‹ē·ÆčƒƒčŽč‘¦č”æčŸč”›č¤˜č¬‚é•éŸ‹é­ä¹³ä¾‘å„’å…Ŗļ§‡å”Æ喩å­ŗ宄幼幽åŗ¾ę‚ ęƒŸę„ˆę„‰ę„ę”ø꜉ļ§ˆęŸ”ęŸšļ§‰ę„”ę„¢ę²¹ę“§ļ§Šęøøļ§‹"], - ["eba1", "ęæ”ēŒ¶ēŒ·ļ§Œē‘œē”±ļ§ē™’ļ§Žļ§ē¶­č‡¾čøč£•čŖ˜č«›č«­čø°č¹‚遊逾éŗ酉釉鍮ļ§ļ§‘å ‰ļ§’ęÆ“č‚‰č‚²ļ§“ļ§”允儫尹ļ§•ļ§–ę½¤ēŽ§čƒ¤č“‡ļ§—鈗閏ļ§˜ļ§™ļ§šļ§›čæꈎē€œēµØ融ļ§œåž ę©ę…‡ę®·čŖ¾éŠ€éš±ä¹™åŸę·«č”­é™°éŸ³é£®ę–ę³£é‚‘å‡ę‡‰č†ŗé·¹ä¾å€šå„€å®œę„ę‡æꓬ꤅ęƅē–‘ēŸ£ē¾©č‰¤č–čŸ»č”£čŖ¼"], - ["eca1", "議醫äŗŒä»„伊ļ§ļ§žå¤·å§Øļ§Ÿå·²å¼›å½›ę€”ļ§ ļ§”ļ§¢ļ§£ēˆ¾ē„ļ§¤ē•°ē—ļ§„ē§»ļ§¦č€Œč€³č‚„č‹”荑ļ§§ļ§Øč²½č²³é‚‡ļ§©ļ§Ŗ飓餌ļ§«ļ§¬ē€·ē›ŠēæŠēæŒēæ¼č¬šäŗŗ仁刃印ļ§­å’½å› å§»åƅ引åæę¹®ļ§®ļ§ÆēµŖčŒµļ§°čš“čŖļ§±é­é·ļ§²ļ§³äø€ä½šä½¾å£¹ę—„ęŗ¢é€øéŽ°é¦¹ä»»å£¬å¦Šå§™ęļ§“ļ§µēؔļ§¶čč³ƒå…„卄"], - ["eda1", "ļ§·ļ§øļ§¹ä»å‰©å­•čŠæ仔åˆŗå’Ø姉å§æå­å­—å­œę£ę…ˆę»‹ē‚™ē…®ēŽ†ē“·ē–µē£ē“«č€…č‡ŖčŒØč”—č—‰č«®č³‡é›Œä½œå‹ŗåš¼ę–«ę˜Øē¼ē‚øēˆµē¶½čŠé…Œé›€éµ²å­±ę£§ę®˜ę½ŗē›žå²‘ęš«ę½›ē®“ē°Ŗč ¶é›œäøˆä»—匠堓墻å£Æ儬將åø³åŗ„å¼µęŽŒęš²ę–ę؟ęŖ£ę¬Œę¼æē‰†ļ§ŗēē’‹ē« ē²§č…øč‡Ÿč‡§čŽŠč‘¬č”£č–”č—č£č““é†¬é•·"], - ["eea1", "障再哉åœØå®°ę‰ęę ½ę¢“ęø½ę»“ē½ēø”č£č²”č¼‰é½‹é½Žēˆ­ē®č«éŒšä½‡ä½Žå„²å’€å§åŗ•ęŠµęµę„®ęØ—ę²®ęøšē‹™ēŒŖē–½ē®øē“µč‹§č¹č‘—č—·č©›č²Æčŗ‡é€™é‚ø雎齟勣吊嫔åÆ‚ę‘˜ę•µę»“ē‹„ļ§»ēš„ē©ē¬›ē±ēø¾ēæŸč»č¬«č³Ščµ¤č·”č¹ŸčæŖčæ¹é©é‘佃ä½ŗ傳å…Øå…ø前å‰Ŗå””å”¼å„ å°ˆå±•å»›ę‚›ęˆ°ę “ę®æę°ˆę¾±"], - ["efa1", "ē…Žē ē”°ē”øē•‘ē™²ē­Œē®‹ē®­ēƆēŗč©®č¼¾č½‰éˆæ銓錢鐫電锚锫餞切ęˆŖęŠ˜ęµ™ē™¤ē«Šēƀēµ¶å å²¾åŗ—ę¼øē‚¹ē²˜éœ‘鮎點ꎄę‘ŗč¶äøäŗ•äŗ­åœåµå‘ˆå§ƒå®šå¹€åŗ­å»·å¾ęƒ…ęŒŗę”æę•“ę—Œę™¶ę™øęŸ¾ę„ØęŖ‰ę­£ę±€ę·€ę·ØęøŸę¹žē€žē‚”ēŽŽē½ē”ŗē›ē¢‡ē¦Žē؋ē©½ē²¾ē¶Žč‰‡č؂č«Ŗč²žé„­é…Šé‡˜é‰¦é‹ŒéŒ éœ†é–"], - ["f0a1", "靜頂鼎制劑啼堤åøå¼Ÿę‚Œęę¢ÆęæŸē„­ē¬¬č‡č–ŗč£½č«øč¹„é†é™¤éš›éœ½é”Œé½ŠäæŽå…†å‡‹åŠ©å˜²å¼”彫ęŽŖę“ę—©ę™ę›ŗę›¹ęœę¢ę£—ę§½ę¼•ę½®ē…§ē‡„ēˆŖē’Ŗēœŗē„–ē„šē§ŸēØ ēŖ•ē²—ē³Ÿēµ„ē¹°č‚‡č—»čš¤č©”čŖæ趙čŗé€ é­é‡£é˜»é›•é³„ꗏē°‡č¶³éƒå­˜å°Šå’ę‹™ēŒå€§å®—å¾žę‚°ę…«ę£•ę·™ē®ēØ®ēµ‚ē¶œēø±č…«"], - ["f1a1", "čøŖčøµé¾é˜ä½åå·¦åŗ§ęŒ«ē½Ŗäø»ä½ä¾åšå§čƒ„å‘Ŗå‘Øå—¾å„å®™å·žå»šę™ęœ±ęŸ±ę Ŗę³Øę“²ę¹Šę¾ē‚·ē ē–‡ē±Œē“‚ē“¬ē¶¢čˆŸč››čØ»čŖ…čµ°čŗŠč¼³é€±é…Žé…’鑄駐ē«¹ē²„äæŠå„å‡†åŸˆåÆÆå³»ę™™ęØ½ęµšęŗ–ęæ¬ē„Œē•Æē«£č ¢é€”遵雋é§æ茁äø­ä»²č”†é‡å½ę«›ę„«ę±č‘ŗå¢žę†Žę›¾ę‹Æēƒē”‘ē—‡ē¹’č’øč­‰č“ˆä¹‹åŖ"], - ["f2a1", "咫地址åæ—ęŒęŒ‡ę‘Æę”Æę—Øę™ŗęžęž³ę­¢ę± ę²šę¼¬ēŸ„ē „ē„‰ē„—ē“™č‚¢č„‚č‡³čŠčŠ·čœ˜čŖŒļ§¼č“„č¶¾é²ē›“ēؙēØ·ē¹”č·å”‡å—”å”µęŒÆę¢ę™‰ę™‹ę”­ę¦›ę®„ę“„ęŗ±ēē‘Øē’”ē•›ē–¹ē›”ēœžēž‹ē§¦ēø‰ēøč‡»č”Æč¢—čØŗč³‘č»«č¾°é€²éŽ­é™£é™³éœ‡ä¾„å±å§Ŗ嫉åø™ę”Žē“†ē–¾ē§©ēŖ’č†£č›­č³Ŗč·Œčæ­ę–Ÿęœ•ļ§½åŸ·ę½—ē·č¼Æ"], - ["f3a1", "é¶é›†å¾µę‡²ę¾„äø”侘借叉嗟åµÆå·®ę¬”ę­¤ē£‹ē®šļ§¾č¹‰č»Šé®ę‰ę¾ē€ēŖ„éŒÆé‘æé½Ŗ꒰ę¾Æē‡¦ē’Øē“šē«„ē°’ēŗ‚ē²²ēŗ˜č®šč“Šé‘½é¤é„Œåˆ¹åÆŸę“¦ęœ­ē“®åƒ­åƒå”¹ę…˜ę…™ę‡ŗę–¬ē«™č®’č®–å€‰å€”創唱åØ¼å» å½°ę„“ę•žę˜Œę˜¶ęš¢ę§ę»„ę¼²ēŒ–ē˜”ēŖ“č„¹č‰™č–č’¼å‚µåŸ°åƀåÆØå½©ęŽ”ē ¦ē¶µčœč””é‡‡é‡µå†ŠęŸµē­–"], - ["f4a1", "č²¬å‡„å¦»ę‚½č™•å€œļ§æ剔å°ŗę…½ęˆšę‹“ę“²ę–„ę»Œē˜ č„Šč¹ é™Ÿéš»ä»Ÿåƒå–˜å¤©å·ę“…ę³‰ę·ŗēŽ”ē©æčˆ›č–¦č³¤čøé·é‡§é—”阔韆å‡øå“²å–†å¾¹ę’¤ę¾ˆē¶“č¼Ÿč½éµåƒ‰å°–ę²¾ę·»ē”›ēž»ē°½ē±¤č©¹č«‚堞妾åø–ę·ē‰’ē–Šē«č«œč²¼č¼’å»³ę™“ę·øč½čč«‹é‘éƖļ؀剃ę›æ궕ę»Æē· č«¦é€®éžé«”初å‰æå“Øę†”ęŠ„ę‹›ę¢¢"], - ["f5a1", "ꤒꄚęصē‚’ē„¦ē”ē¤ē¤Žē§’ēØč‚–č‰øč‹•č‰č•‰č²‚č¶…é…¢é†‹é†®äæƒå›‘ē‡­ēŸ—čœ€č§øåÆøåæ–ę‘é‚Ø叢唚åÆµę‚¤ę†ę‘ ēø½č°č”„éŠƒę’®å‚¬å“”ęœ€å¢œęŠ½ęŽØꤎę„øęØžę¹«ēšŗē§‹čŠ»č©č«č¶Øčæ½é„’酋醜錐錘鎚雛éض鰍äø‘ē•œē„ē«ŗē­‘ēƉēø®č“„č¹™č¹“č»øé€ę˜„ę¤æē‘ƒå‡ŗęœ®é»œå……åæ ę²–čŸ²č”č”·ę‚“č†µčƒ"], - ["f6a1", "č“…å–å¹å˜“åض就ē‚Šēæ čšč„†č‡­č¶£é†‰é©Ÿé·²å“ä»„åŽ ęƒ»ęø¬å±¤ä¾ˆå€¤å—¤å³™å¹Ÿę„ę¢”ę²»ę·„ē†¾ē—”ē—“ē™”ēؚē©‰ē·‡ē·»ē½®č‡“čš©č¼œé›‰é¦³é½’å‰‡å‹…é£­č¦ŖäøƒęŸ’ę¼†ä¾µåÆ¢ęž•ę²ˆęµøē›ē §é‡é¼čŸ„ē§¤ēرåæ«ä»–å’¤å”¾å¢®å¦„ęƒ°ę‰“ę‹–ęœ¶ę„•čˆµé™€é¦±é§å€¬å“å•„å¼ļØę‰˜ļØ‚ę“¢ę™«ęŸęæęæÆē¢ēøčؗ"], - ["f7a1", "éøå‘‘å˜†å¦å½ˆę†šę­Žē˜ē‚­ē¶»čŖ•å„Ŗč„«ęŽ¢ēœˆč€½č²Ŗå””ę­ę¦»å®•åø‘ę¹ÆļØƒč•©å…Œå°å¤Ŗę€ ę…‹ę®†ę±°ę³°ē¬žčƒŽč‹”č·†é‚°é¢±ļØ„ę“‡ę¾¤ę’‘ę”„å…ŽååœŸčØŽę…Ÿę”¶ļ؅ē—›ē­’ēµ±é€šå †ę§Œč…æč¤Ŗ退頹åøå„—å¦¬ęŠ•é€é¬Ŗꅝē‰¹é—–å”å©†å·“ęŠŠę’­ę“ŗę·ę³¢ę“¾ēˆ¬ē¶ē “ē½·čŠ­č·›é —判坂ęæē‰ˆē“£č²©č¾¦éˆ‘"], - ["f8a1", "é˜Ŗå…«å­ęŒä½©å”„ę‚–ę•—ę²›ęµæē‰Œē‹½ēØ—č¦‡č²å½­ę¾Žēƒ¹č†Øꄎä¾æåę‰ē‰‡ēƇē·Øēæ©ééž­éØ™č²¶åŖå¹³ęž°čč©•å å¬–å¹£å»¢å¼Šę–ƒč‚ŗč”½é–‰é™›ä½ˆåŒ…åŒåŒå’†å“ŗ圃åøƒę€–ęŠ›ęŠ±ę•ļØ†ę³”ęµ¦ē–±ē ²čƒžč„Æč‹žč‘”č’²č¢č¤’é€‹é‹Ŗé£½é®‘å¹…ęš“ę›ē€‘ēˆ†ļ؇äæµå‰½å½ŖꅓꝓęØ™ę¼‚ē“¢ē„Øč”Øč±¹é£‡é£„é©ƒ"], - ["f9a1", "品ēØŸę„“č«·č±Šé¢Øé¦®å½¼ęŠ«ē–²ēš®č¢«éæ陂匹弼åæ…ę³ŒēŒē•¢ē–‹ē­†č‹¾é¦ä¹é€¼äø‹ä½•åŽ¦å¤å»ˆę˜°ę²³ē‘•č·č¦č³€ééœžé°•å£‘å­ø虐謔鶓åƒęØę‚ę—±ę±—ę¼¢ę¾£ē€šē½•ēæ°é–‘é–’é™éŸ“å‰²č½„å‡½å«å’ø啣喊ęŖ»ę¶µē·˜č‰¦éŠœé™·é¹¹åˆå“ˆē›’č›¤é–¤é—”é™œäŗ¢ä¼‰å§®å«¦å··ę’ęŠ—ę­ę”ę²†ęøÆē¼ø肛čˆŖ"], - ["faa1", "ļ؈ļ؉項äŗ„å•å’³åž“å„šå­©å®³ę‡ˆę„·ęµ·ē€£čŸ¹č§£č©²č«§é‚‚駭éŖø劾ę ø倖å¹øęč‡č”Œäŗ«å‘åš®ē¦é„•éŸæé¤‰é„—é¦™å™“å¢Ÿč™›čØ±ę†²ę«¶ē»č»’ę­‡éšŖé©—å„•ēˆ€čµ«é©äæ”峓弦ę‡øę™›ę³«ē‚«ēŽ„ēŽ¹ē¾ēœ©ēēµƒēµ¢ēø£čˆ·č”’ļØŠč³¢é‰‰é”Æ孑ē©“č”€é å«Œäæ å”å¤¾å³½ęŒ¾ęµ¹ē‹¹č„…č„‡čŽ¢é‹é °äŗØ兄刑型"], - ["fba1", "å½¢ę³‚ę»Žē€…ēē‚Æē†’ē©ē‘©čŠčž¢č””逈邢鎣é¦Øå…®å½—ęƒ ę…§ęš³č•™č¹Šé†Æ鞋乎äŗ’呼壕å£ŗå„½å²µå¼§ęˆ¶ę‰ˆę˜Šę™§ęÆ«ęµ©ę·ę¹–ę»øę¾”ęæ ęæ©ēē‹ē„ē‘šē“ ēš“ē„œē³Šēøžčƒ”芦葫č’æč™Žč™Ÿč“č­·č±ŖéŽ¬é €é”„ęƒ‘ęˆ–é…·å©šę˜ę··ęø¾ēæ魂åæ½ęƒšē¬å“„å¼˜ę±žę³“ę“Ŗēƒ˜ē“…č™¹č،铻化和嬅ęØŗē«ē•µ"], - ["fca1", "ē¦ē¦¾čŠ±čÆ話譁č²Ø靓ļØ‹ę““ę”«ē¢ŗē¢»ē©«äøøå–šå„å®¦å¹»ę‚£ę›ę­”ę™„ę”“ęø™ē…„ē’°ē“ˆé‚„é©©é°„ꓻ껑ēŒ¾č±é—Šå‡°å¹Œå¾Øęęƒ¶ę„°ę…Œę™ƒę™„ę¦„ę³ę¹Ÿę»‰ę½¢ē…Œē’œēš‡ēƁē°§č’č—é‘éšé»ƒåŒÆå›žå»»å¾Šę¢ę‚”ę‡·ę™¦ęœƒęŖœę·®ę¾®ē°ēŖē¹Ŗč†¾čŒ“č›”čŖØč³„åŠƒē²å®–ę©«é„å“®åš†å­ę•ˆę–…ę›‰ę¢Ÿę¶ę·†"], - ["fda1", "ēˆ»č‚“酵驍ä¾Æ候厚后吼喉嗅åøæå¾Œęœ½ē…¦ēé€…勛勳唤壎ē„„ē†ē‡»č–°čØ“ęšˆč–Øå–§ęš„ē…Šč±å‰å–™ęÆå½™å¾½ę®ęš‰ē…‡č«±č¼éŗ¾ä¼‘ęŗēƒ‹ē•¦č™§ę¤č­Žé·øå…‡å‡¶åŒˆę“¶čƒøé»‘ę˜•ę¬£ē‚˜ē—•åƒå±¹ē“‡čØ–ę¬ ę¬½ę­†åøę°ę“½ēæ•čˆˆåƒ–凞喜噫囍姬嬉åøŒę†™ę†˜ęˆ±ę™žę›¦ē†™ē†¹ē†ŗēŠ§ē¦§ē؀ē¾²č©°"] - ]; -}); - -// node_modules/iconv-lite/encodings/tables/cp950.json -var require_cp950 = __commonJS((exports, module) => { - module.exports = [ - ["0", "\x00", 127], - ["a140", "怀ļ¼Œć€ć€‚ļ¼Žā€§ļ¼›ļ¼šļ¼Ÿļ¼ļø°ā€¦ā€„ļ¹ļ¹‘ļ¹’Ā·ļ¹”ļ¹•ļ¹–ļ¹—ļ½œā€“ļø±ā€”ļø³ā•“ļø“ļ¹ļ¼ˆļ¼‰ļøµļø¶ļ½›ļ½ļø·ļøø怔怕ļø¹ļøŗ怐怑ļø»ļø¼ć€Šć€‹ļø½ļø¾ć€ˆć€‰ļøæļ¹€ć€Œć€ļ¹ļ¹‚ć€Žć€ļ¹ƒļ¹„ļ¹™ļ¹š"], - ["a1a1", "ļ¹›ļ¹œļ¹ļ¹žā€˜ā€™ā€œā€ć€ć€žā€µā€²ļ¼ƒļ¼†ļ¼Šā€»Ā§ć€ƒā—‹ā—ā–³ā–²ā—Žā˜†ā˜…ā—‡ā—†ā–”ā– ā–½ā–¼ćŠ£ā„…ĀÆļæ£ļ¼æĖļ¹‰ļ¹Šļ¹ļ¹Žļ¹‹ļ¹Œļ¹Ÿļ¹ ļ¹”ļ¼‹ļ¼Ć—Ć·Ā±āˆšļ¼œļ¼žļ¼ā‰¦ā‰§ā‰ āˆžā‰’ā‰”ļ¹¢", 4, "ļ½žāˆ©āˆŖāŠ„āˆ āˆŸāŠæ插揑āˆ«āˆ®āˆµāˆ“ā™€ā™‚āŠ•āŠ™ā†‘ā†“ā†ā†’ā†–ā†—ā†™ā†˜āˆ„āˆ£ļ¼"], - ["a240", "ļ¼¼āˆ•ļ¹Øļ¼„ļæ„怒ļæ ļæ”ļ¼…ļ¼ ā„ƒā„‰ļ¹©ļ¹Ŗļ¹«ć•ćŽœćŽćŽžćŽćŽ”掎掏揄Ā°å…™å…›å…žå…å…”兣嗧ē“©ē³Žā–", 7, "ā–ā–Žā–ā–Œā–‹ā–Šā–‰ā”¼ā”“ā”¬ā”¤ā”œā–”ā”€ā”‚ā–•ā”Œā”ā””ā”˜ā•­"], - ["a2a1", "ā•®ā•°ā•Æā•ā•žā•Ŗā•”ā—¢ā—£ā—„ā—¤ā•±ā•²ā•³ļ¼", 9, "ā… ", 9, "怔", 8, "十卄卅ļ¼”", 25, "ļ½", 21], - ["a340", "ļ½—ļ½˜ļ½™ļ½šĪ‘", 16, "Ī£", 6, "Ī±", 16, "Ļƒ", 6, "愅", 10], - ["a3a1", "愐", 25, "Ė™Ė‰ĖŠĖ‡Ė‹"], - ["a3e1", "ā‚¬"], - ["a440", "äø€ä¹™äøäøƒä¹ƒä¹äŗ†äŗŒäŗŗå„æ兄八几刀刁力匕十卜又äø‰äø‹äøˆäøŠäø«äøø凔久么也乞äŗŽäŗ”兀刃å‹ŗ千叉口土士夕大儳子孑孓åÆø小尢å°øå±±å·å·„å·±å·²å·³å·¾å¹²å»¾å¼‹å¼“ę‰"], - ["a4a1", "äø‘äøäøäø­äø°äø¹ä¹‹å°¹äŗˆäŗ‘äŗ•äŗ’äŗ”äŗ¢ä»ä»€ä»ƒä»†ä»‡ä»ä»Šä»‹ä»„元允內六兮公冗凶分切刈勻勾å‹æ化匹午升卅卞厄友及反壬天夫å¤Ŗ夭孔少尤å°ŗå±Æå·“å¹»å»æ弔引åæƒęˆˆęˆ¶ę‰‹ę‰Žę”Æę–‡ę–—ę–¤ę–¹ę—„ę›°ęœˆęœØę¬ ę­¢ę­¹ęƋęƔęÆ›ę°ę°“ē«ēˆŖēˆ¶ēˆ»ē‰‡ē‰™ē‰›ēŠ¬ēŽ‹äø™"], - ["a540", "äø–äø•äø”äø˜äø»ä¹ä¹ä¹Žä»„付仔仕他仗代令仙仞充兄冉冊冬凹å‡ŗå‡ø刊加功包匆北匝仟半卉協占åÆ卮去åÆ古右召叮叩åØ叼åø叵叫另åŖ史叱台叄叭叻四囚外"], - ["a5a1", "央失儓儶孕它尼å·Ø巧左åø‚åøƒå¹³å¹¼å¼å¼˜å¼—åæ…ęˆŠę‰“ę‰”ę‰’ę‰‘ę–„ę—¦ęœ®ęœ¬ęœŖęœ«ęœ­ę­£ęÆę°‘ę°ę°øę±ę±€ę°¾ēŠÆēŽ„ēŽ‰ē“œē“¦ē”˜ē”Ÿē”Øē”©ē”°ē”±ē”²ē”³ē–‹ē™½ēš®ēšæē›®ēŸ›ēŸ¢ēŸ³ē¤ŗē¦¾ē©“ē«‹äøžäøŸä¹’乓乩äŗ™äŗ¤äŗ¦äŗ„ä»æ伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先å…Ø"], - ["a640", "共再冰列刑划刎刖劣匈匔匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地åœØ圭圬åœÆ圩夙多夷å¤ø妄å„ø妃儽儹如妁字存宇守宅安åÆŗ尖屹州åø†å¹¶å¹“"], - ["a6a1", "式弛åæ™åæ–ęˆŽęˆŒęˆęˆę‰£ę‰›ę‰˜ę”¶ę—©ę—Øę—¬ę—­ę›²ę›³ęœ‰ęœ½ęœ“ęœ±ęœµę¬”ę­¤ę­»ę°–ę±ę±—ę±™ę±Ÿę± ę±ę±•ę±”ę±›ę±ę±Žē°ē‰Ÿē‰ē™¾ē«¹ē±³ē³øē¼¶ē¾Šē¾½č€č€ƒč€Œč€’č€³čæč‚‰č‚‹č‚Œč‡£č‡Ŗč‡³č‡¼čˆŒčˆ›čˆŸč‰®č‰²č‰¾č™«č”€č”Œč”£č„æ阔äø²äŗØ位住佇佗佞伓佛何估佐佑伽ä¼ŗä¼ø佃佔似但佣"], - ["a740", "作你ä¼Æ低伶余佝佈佚兌克免兵冶冷刄判利åˆŖåˆØ劫助åŠŖ劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻åø吮吵吶吠吼呀吱含吟听å›Ŗ困囤囫坊坑址坍"], - ["a7a1", "均坎圾坐坏圻å£Æ夾妝妒å¦Ø妞妣妙妖妍妤妓妊妄孝孜孚孛完宋宏尬局屁å°æ尾岐岑岔岌巫åøŒåŗåŗ‡åŗŠå»·å¼„弟彤形彷役åæ˜åæŒåæ—åæåæ±åæ«åæøåæŖęˆ’ęˆ‘ęŠ„ęŠ—ęŠ–ęŠ€ę‰¶ęŠ‰ę‰­ęŠŠę‰¼ę‰¾ę‰¹ę‰³ęŠ’ę‰ÆęŠ˜ę‰®ęŠ•ęŠ“ęŠ‘ęŠ†ę”¹ę”»ę”øę—±ę›“ęŸęŽęęę‘ęœę–ęžę‰ę†ę "], - ["a840", "ę“ę—ę­„ęÆę±‚ę±žę²™ę²ę²ˆę²‰ę²…ę²›ę±Ŗę±ŗę²ę±°ę²Œę±Øę²–ę²’ę±½ę²ƒę±²ę±¾ę±“ę²†ę±¶ę²ę²”ę²˜ę²‚ē¶ē¼ē½ēøē‰¢ē‰”ē‰ ē‹„ē‹‚ēŽ–ē”¬ē”«ē”·ē”øēš‚ē›ÆēŸ£ē§ē§€ē¦æē©¶ē³»ē½•č‚–č‚“č‚č‚˜č‚›č‚šč‚²č‰Æ芒"], - ["a8a1", "čŠ‹čŠč¦‹č§’čØ€č°·č±†č±•č²čµ¤čµ°č¶³čŗ«č»Šč¾›č¾°čæ‚čæ†čæ…čæ„å·”邑邢é‚Ŗ邦那酉釆里防阮阱é˜Ŗ阬äø¦ä¹–ä¹³äŗ‹äŗ›äŗžäŗ«äŗ¬ä½Æ依侍佳ä½æ佬供例來侃佰併侈佩佻侖佾侏侑ä½ŗ兔兒兕兩具其å…ø冽函刻åˆø刷åˆŗ到刮制剁劾劻卒協卓卑卦卷åø卹取叔受味呵"], - ["a940", "咖å‘ø咕咀呻呷咄咒咆呼咐呱呶和咚呢å‘Ø咋命咎å›ŗ垃坷åŖ坩坔坦坤坼夜儉儇儈億儔妾妻委妹妮姑姆姐姍始姓姊å¦Æ妳姒姅孟孤季宗定官宜宙宛尚屈居"], - ["a9a1", "屆岷岔å²ø岩岫岱岳åø˜åøšåø–åø•åø›åø‘å¹øåŗšåŗ—åŗœåŗ•åŗ–延弦弧弩往征å½æå½¼åæåæ åæ½åæµåææꀏꀔę€Æꀵꀖę€Ŗę€•ę€”ę€§ę€©ę€«ę€›ęˆ–ęˆ•ęˆæęˆ¾ę‰€ę‰æꋉꋌꋄęŠæę‹‚ęŠ¹ę‹’ę‹›ęŠ«ę‹“ę‹”ę‹‹ę‹ˆęŠØęŠ½ęŠ¼ę‹ę‹™ę‹‡ę‹ęŠµę‹šęŠ±ę‹˜ę‹–ę‹—ę‹†ęŠ¬ę‹Žę”¾ę–§ę–¼ę—ŗꘔꘓꘌꘆꘂ꘎ꘀ꘏ꘕꘊ"], - ["aa40", "ę˜‡ęœęœ‹ę­ęž‹ęž•ę±ęžœę³ę·ęž‡ęžęž—ęÆꝰęæęž‰ę¾ęžęµęžšęž“ę¼ęŖę²ę¬£ę­¦ę­§ę­æę°“ę°›ę³£ę³Øę³³ę²±ę³Œę³„ę²³ę²½ę²¾ę²¼ę³¢ę²«ę³•ę³“ę²øę³„ę²¹ę³ę²®ę³—ę³…ę³±ę²æę²»ę³”ę³›ę³Šę²¬ę³Æę³œę³–ę³ "], - ["aaa1", "ē‚•ē‚Žē‚’ē‚Šē‚™ēˆ¬ēˆ­ēˆøē‰ˆē‰§ē‰©ē‹€ē‹Žē‹™ē‹—ē‹ēŽ©ēŽØēŽŸēŽ«ēŽ„ē”½ē–ē–™ē–šēš„ē›‚ē›²ē›“ēŸ„ēŸ½ē¤¾ē„€ē„ē§‰ē§ˆē©ŗē©¹ē«ŗē³¾ē½”ē¾Œē¾‹č€…č‚ŗč‚„č‚¢č‚±č‚”č‚«č‚©č‚“č‚Ŗč‚Æč‡„č‡¾čˆčŠ³čŠčŠ™čŠ­čŠ½čŠŸčŠ¹čŠ±čŠ¬čŠ„čŠÆčŠøčŠ£čŠ°čŠ¾čŠ·č™Žč™±åˆč”Ø軋čæŽčæ”čæ‘邵é‚ø邱邶采金長門阜陀é˜æ阻附"], - ["ab40", "陂隹é›Ø青非äŗŸäŗ­äŗ®äæ”ä¾µä¾Æä¾æäæ äæ‘äæäæäæƒä¾¶äæ˜äæŸäæŠäæ—ä¾®äæäæ„äæ‚äæšäæŽäæžä¾·å…—冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀å’Ø哎哉å’ø咦咳哇哂咽å’Ŗ品"], - ["aba1", "哄哈å’Æ咫咱咻咩咧å’æå›æ垂型垠垣垢城垮垓儕儑儏儎儐姜姘å§æ姣å§Øå؃姄å§Ŗ姚姦å؁姻孩宣宦室客宄封屎屏屍屋峙峒巷åøåø„åøŸå¹½åŗ åŗ¦å»ŗå¼ˆå¼­å½„å¾ˆå¾…å¾Šå¾‹å¾‡å¾Œå¾‰ę€’ę€ę€ ę€„ę€Žę€ØꁍꁰęØę¢ę†ęƒę¬ę«ęŖę¤ę‰ę‹œęŒ–ęŒ‰ę‹¼ę‹­ęŒę‹®ę‹½ęŒ‡ę‹±ę‹·"], - ["ac40", "ę‹Æę‹¬ę‹¾ę‹“ęŒ‘ęŒ‚ę”æę•…ę–«ę–½ę—¢ę˜„ę˜­ę˜ ę˜§ę˜Æꘟę˜Øę˜±ę˜¤ę›·ęŸæęŸ“ęŸ±ęŸ”ęŸęŸ¬ęž¶ęžÆęŸµęŸ©ęŸÆęŸ„ęŸ‘ęž“ęŸšęŸ„ęžøęŸęŸžęŸ³ęž°ęŸ™ęŸ¢ęŸęŸ’ę­Ŗę®ƒę®†ę®µęƒęÆ—ę°Ÿę³‰ę“‹ę“²ę“Ŗęµę“„ę“Œę“±ę“žę“—"], - ["aca1", "ę“»ę“½ę“¾ę“¶ę“›ę³µę“¹ę“§ę“øꓩꓮꓵ꓎ꓫē‚«ē‚ŗē‚³ē‚¬ē‚Æē‚­ē‚øē‚®ē‚¤ēˆ°ē‰²ē‰Æē‰“ē‹©ē‹ ē‹”ēŽ·ēŠēŽ»ēŽ²ēē€ēŽ³ē”šē”­ē•ē•Œē•Žē•‹ē–«ē–¤ē–„ē–¢ē–£ē™øēš†ēš‡ēšˆē›ˆē›†ē›ƒē›…ēœē›¹ē›øēœ‰ēœ‹ē›¾ē›¼ēœ‡ēŸœē ‚ē ”ē Œē ē„†ē„‰ē„ˆē„‡ē¦¹ē¦ŗē§‘ē§’ē§‹ē©æēŖē«æē«½ē±½ē“‚ē“…ē“€ē“‰ē“‡ē“„ē“†ē¼øē¾Žē¾æ耄"], - ["ad40", "č€č€č€‘č€¶čƒ–čƒ„čƒščƒƒčƒ„čƒŒčƒ”čƒ›čƒŽčƒžčƒ¤čƒč‡“čˆ¢č‹§čŒƒčŒ…č‹£č‹›č‹¦čŒ„č‹„čŒ‚čŒ‰č‹’č‹—č‹±čŒč‹œč‹”č‹‘č‹žč‹“č‹Ÿč‹ÆčŒ†č™č™¹č™»č™ŗč”č”«č¦č§”č؈č؂čØƒč²žč² čµ“čµ³č¶“č»č»Œčæ°čæ¦čæ¢čæŖčæ„"], - ["ada1", "čæ­čæ«čæ¤čæØ郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁é¢Ø飛食首香乘äŗ³å€Œå€å€£äæÆ倦倄äæø倩倖倆值借倚倒們äæŗ倀倔å€Øäæ±å€”個候倘äæ³äæ®å€­å€Ŗäæ¾å€«å€‰å…¼å†¤å†„冢凍凌准凋剖剜剔剛剝åŒŖåæ原厝叟å“Ø唐唁唷哼哄哲唆å“ŗ唔哩哭哔唉哮å“Ŗ"], - ["ae40", "哦唧唇哽唏圃圄埂埔埋埃堉夏儗儘儚åؑåؘå؜å؟å؛åؓ姬åØ åØ£åØ©åØ„å،å؉孫屘宰害家宓宮宵容å®ø射屑展屐峭峽峻å³Ŗå³Ø峰島品峓差åø­åø«åŗ«åŗ­åŗ§å¼±å¾’å¾‘å¾ę™"], - ["aea1", "ę£ę„ęę•ę­ę©ęÆę‚„ę‚Ÿę‚šę‚ę‚”ę‚Œę‚…ę‚–ę‰‡ę‹³ęŒˆę‹æęŽęŒ¾ęŒÆꍕꍂꍆꍏꍉęŒŗęęŒ½ęŒŖęŒ«ęŒØꍍꍌꕈꕉꖙꗁꗅꙂꙉꙏꙃꙒꙌꙅꙁę›øęœ”ęœ•ęœ—ę ”ę øę”ˆę”†ę”“ę ¹ę”‚ę””ę ©ę¢³ę —ę”Œę”‘ę ½ęŸ“ę”ę”€ę ¼ę”ƒę Ŗę”…ę “ę ˜ę”ę®Šę®‰ę®·ę°£ę°§ę°Øę°¦ę°¤ę³°ęµŖę¶•ę¶ˆę¶‡ęµ¦ęµø굷굙궓"], - ["af40", "ęµ¬ę¶‰ęµ®ęµšęµ“ęµ©ę¶Œę¶Šęµ¹ę¶…ęµ„ę¶”ēƒŠēƒ˜ēƒ¤ēƒ™ēƒˆēƒēˆ¹ē‰¹ē‹¼ē‹¹ē‹½ē‹øē‹·ēŽ†ē­ē‰ē®ē ēŖēžē•”ē•ē•œē•šē•™ē–¾ē—…ē—‡ē–²ē–³ē–½ē–¼ē–¹ē—‚ē–øēš‹ēš°ē›Šē›ē›Žēœ©ēœŸēœ ēœØēŸ©ē °ē §ē øē ē “ē ·"], - ["afa1", "ē „ē ­ē  ē Ÿē ²ē„•ē„ē„ ē„Ÿē„–ē„žē„ē„—ē„šē§¤ē§£ē§§ē§Ÿē§¦ē§©ē§˜ēŖ„ēŖˆē«™ē¬†ē¬‘ē²‰ē“”ē“—ē“‹ē“Šē“ ē“¢ē“”ē“ē“•ē“šē“œē“ē“™ē“›ē¼ŗē½Ÿē¾”ēæ…ēæč€†č€˜č€•č€™č€—č€½č€æčƒ±č„‚čƒ°č„…čƒ­čƒ“č„†čƒøčƒ³č„ˆčƒ½č„Ščƒ¼čƒÆč‡­č‡¬čˆ€čˆčˆŖ舫čˆØčˆ¬čŠ»čŒ«č’č”čŠčŒøčč‰čŒµčŒ“ččŒ²čŒ¹čŒ¶čŒ—č€čŒ±čŒØ荃"], - ["b040", "虔蚊čšŖčš“čš¤čš©čšŒčš£čšœč”°č”·č¢č¢‚č”½č”¹čؘčؐč؎č،čؕč؊čؗčؓčؖč؏čØ‘č±ˆč±ŗč±¹č²”č²¢čµ·čŗ¬č»’č»”č»č¾±é€é€†čæ·é€€čæŗčæ“逃čæ½é€…čæø邕郔郝郢酒配酌釘針釗釜釙閃院陣陔"], - ["b0a1", "陛陝除陘陞隻飢馬éŖØ高鬄鬲鬼乾åŗ偽停假偃偌做偉偄偶偎偕偵偓偷偏倏åÆ偭兜冕凰å‰Ŗå‰Æ勒務勘動匐匏匙åŒæå€åŒ¾åƒę›¼å•†å•Ŗ啦啄啞啔啃啊唱啖問啕å”Æ啤å”ø售啜唬啣唳啁啗圈國圉域堅堊堆埠埤åŸŗ堂堵執培夠儢åض婁婉婦å©Ŗ婀"], - ["b140", "åؼ婢婚婆婊孰åƇåƅåƄåƂå®æåƆ尉專將屠屜屝哇哆哎哛哖哢哑哩哔哙哤哧哗巢åøøåø¶åø³åø·åŗ·åŗøåŗ¶åŗµåŗ¾å¼µå¼·å½—彬彩彫得徙從徘徔徠徜ęæę‚£ę‚‰ę‚ ę‚Øęƒ‹ę‚“ęƒ¦ę‚½"], - ["b1a1", "ęƒ…ę‚»ę‚µęƒœę‚¼ęƒ˜ęƒ•ęƒ†ęƒŸę‚øęƒšęƒ‡ęˆšęˆ›ę‰ˆęŽ ęŽ§ę²ęŽ–ęŽ¢ęŽ„ę·ę§ęŽ˜ęŽŖę±ęŽ©ęŽ‰ęŽƒęŽ›ę«ęŽØęŽ„ęŽˆęŽ™ęŽ”ęŽ¬ęŽ’ęŽęŽ€ę»ę©ęØęŗę•ę•–ę•‘ę•™ę•—å•Ÿę•ę•˜ę••ę•”ę–œę–›ę–¬ę—ę—‹ę—Œę—Žę™ę™šę™¤ę™Øę™¦ę™žę›¹å‹—ęœ›ę¢ę¢Æę¢¢ę¢“ę¢µę”æę”¶ę¢±ę¢§ę¢—ę¢°ę¢ƒę£„ę¢­ę¢†ę¢…ę¢”ę¢ę¢Øę¢Ÿę¢”ę¢‚ę¬²ę®ŗ"], - ["b240", "ęÆ«ęÆ¬ę°«ę¶Žę¶¼ę·³ę·™ę¶²ę·”ę·Œę·¤ę·»ę·ŗęø…귇귋ę¶Æę·‘ę¶®ę·žę·¹ę¶ø귷귵귅귒ęøšę¶µę·šę·«ę·˜ę·Ŗ귱귮ę·Ø귆귄ę¶Ŗę·¬ę¶æę·¦ēƒ¹ē„‰ē„Šēƒ½ēƒÆēˆ½ē‰½ēŠēŒœēŒ›ēŒ–ēŒ“ēŒ™ēŽ‡ē…ēŠēƒē†ē¾ēē“ ē“¶"], - ["b2a1", "ē“·ē”œē”¢ē•„ē•¦ē•¢ē•°ē–ē—”ē—•ē–µē—Šē—ēšŽē›”ē›’ē››ēœ·ēœ¾ēœ¼ēœ¶ēœøēœŗē”«ē”ƒē”Žē„„ē„Øē„­ē§»ēŖ’ēŖ•ē¬ ē¬Øē¬›ē¬¬ē¬¦ē¬™ē¬žē¬®ē²’ē²—ē²•ēµ†ēµƒēµ±ē“®ē“¹ē“¼ēµ€ē“°ē“³ēµ„ē“Æēµ‚ē“²ē“±ē¼½ē¾žē¾šēæŒēæŽēæ’č€œčŠč†č„Æč„–č„£č„«č„©č„°č„¤čˆ‚čˆµčˆ·čˆ¶čˆ¹čŽŽčŽžčŽ˜čøčŽ¢čŽ–čŽ½čŽ«čŽ’čŽŠčŽ“čŽ‰čŽ č·č»č¼"], - ["b340", "莆莧處å½Ŗ蛇蛀蚶蛄蚵蛆蛋蚱čšÆč›‰č”“č¢žč¢ˆč¢«č¢’č¢–č¢č¢‹č¦“č¦čØŖč؝čØ£čØ„čرčØ­č؟č؛čØ¢č±‰č±šč²©č²¬č²«č²Øč²Ŗč²§čµ§čµ¦č¶¾č¶ŗč»›č»Ÿé€™é€é€šé€—é€£é€Ÿé€é€é€•é€žé€ é€é€¢é€–é€›é€”"], - ["b3a1", "éƒØ郭都酗野釵釦釣釧釭釩閉é™Ŗ陵陳é™ø陰陓陶陷陬雀é›Ŗ雩ē« ē«Ÿé ‚頃魚鳄鹵é¹æéŗ„éŗ»å‚¢å‚å‚…å‚™å‚‘å‚€å‚–å‚˜å‚šęœ€å‡±å‰²å‰“創剩勞勝勛博厄啻喀喧啼喊喝喘喂喜å–Ŗ喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍å Æå Ŗ堓堤堰報堔堝堠壹å£ŗå„ "], - ["b440", "å©·åŖšå©æåŖ’åŖ›åŖ§å­³å­±åƒåƌåƓåƐ尊尋就嵌嵐哓嵇巽幅åø½å¹€å¹ƒå¹¾å»Šå»å»‚廄弼彭復å¾Ŗå¾Øęƒ‘ęƒ”ę‚²ę‚¶ęƒ ę„œę„£ęƒŗę„•ęƒ°ęƒ»ęƒ“ę…Øęƒ±ę„Žęƒ¶ę„‰ę„€ę„’ęˆŸę‰‰ęŽ£ęŽŒęę€ę©ę‰ę†ę"], - ["b4a1", "ę’ę£ęę”ę–ę­ę®ę¶ę“ęŖę›ę‘’ęšę¹ę•žę•¦ę•¢ę•£ę–‘ę–ę–Æꙮ꙰ꙓꙶę™Æꚑę™ŗę™¾ę™·ę›¾ę›æꜟꜝę£ŗę£•ę£ ę£˜ę£—ę¤…ę£Ÿę£µę£®ę£§ę£¹ę£’ę£²ę££ę£‹ę£ę¤ę¤’ę¤Žę£‰ę£šę„®ę£»ę¬¾ę¬ŗę¬½ę®˜ę®–ę®¼ęÆÆę°®ę°Æę°¬ęøÆęøøę¹”ęø”ęø²ę¹§ę¹Šęø ęø„ęø£ęø›ę¹›ę¹˜ęø¤ę¹–ę¹®ęø­ęø¦ę¹Æęø“ę¹ęøŗęø¬ę¹ƒęøęø¾ę»‹"], - ["b540", "ęŗ‰ęø™ę¹Žę¹£ę¹„ę¹²ę¹©ę¹Ÿē„™ē„šē„¦ē„°ē„”ē„¶ē…®ē„œē‰ŒēŠ„ēŠ€ēŒ¶ēŒ„ēŒ“ēŒ©ēŗēŖē³ē¢ē„ēµē¶ē“ēÆē›ē¦ēØē”„ē”¦ē•«ē•Ŗē—¢ē—›ē—£ē—™ē—˜ē—žē— ē™»ē™¼ēš–ēš“ēš“ē›œēēŸ­ē”ē”¬ē”Æē؍ē؈ē؋ē؅ē؀ēŖ˜"], - ["b5a1", "ēŖ—ēŖ–ē«„ē«£ē­‰ē­–ē­†ē­ē­’ē­”ē­ē­‹ē­ē­‘ē²Ÿē²„ēµžēµēµØēµ•ē“«ēµ®ēµ²ēµ”ēµ¦ēµ¢ēµ°ēµ³å–„ēæ”ēæ•č€‹č’č‚…č…•č…”č…‹č…‘č…Žč„¹č…†č„¾č…Œč…“č…“čˆ’čˆœč©čƒčø萍菠菅萋菁čÆč±č“č‘—čŠč°čŒčŒč½č²čŠčøčŽč„čœč‡č”čŸč™›č›Ÿč›™č›­č›”č››č›¤č›č›žč”—č£č£‚č¢±č¦ƒč¦–čØ»č© č©•č©žčØ¼č©"], - ["b640", "詔詛詐詆čØ“čØŗčØ¶č©–č±”č²‚č²Æč²¼č²³č²½č³č²»č³€č²“č²·č²¶č²æč²øč¶Šč¶…č¶č·Žč·č·‹č·šč·‘č·Œč·›č·†č»»č»øč»¼č¾œé€®é€µé€±é€ø進逶鄂郵鄉郾酣酄量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"], - ["b6a1", "間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇é›Æ雲韌項順須飧é£Ŗé£Æ飩飲飭馮馭黃黍黑äŗ‚傭債傲傳僅傾催傷傻å‚Æ僇å‰æ剷剽募勦勤勢勣åŒÆ嗟å—Ø嗓嗦嗎嗜嗇嗑嗣嗤å—Æ嗚嗔嗅嗆嗄嗉園圓唞唑唘唗唚唔唫唌唭唊唢唒唋儧嫁嫉嫌åŖ¾åŖ½åŖ¼"], - ["b740", "åŖ³å«‚åŖ²åµ©åµÆå¹Œå¹¹å»‰å»ˆå¼’å½™å¾¬å¾®ę„šę„ę…ˆę„Ÿęƒ³ę„›ęƒ¹ę„ę„ˆę…Žę…Œę…„ę…ę„¾ę„“ę„§ę„ę„†ę„·ęˆ”ęˆ¢ę“ę¾ęžęŖę­ę½ę¬ęęœę”ęę¶ę–ę—ę†ę•¬ę–Ÿę–°ęš—ęš‰ęš‡ęšˆęš–ęš„ęš˜ęšęœƒę¦”ę„­"], - ["b7a1", "ꄚꄷꄠꄔꄵꤰꦂꄊę„Øę„«ę„žę„“ę„¹ę¦†ę„ę„£ę„›ę­‡ę­²ęƀę®æęƓęƽęŗ¢ęŗÆ껓ęŗ¶ę»‚ęŗęŗę»‡ę»…ęŗ„ęŗ˜ęŗ¼ęŗŗęŗ«ę»‘ęŗ–ęŗœę»„ę»”ęŗŖęŗ§ęŗ“ē…Žē…™ē…©ē…¤ē…‰ē…§ē…œē…¬ē…¦ē…Œē…„ē…žē…†ē…Øē…–ēˆŗē‰’ēŒ·ē…ēŒæēŒ¾ē‘Æē‘šē‘•ē‘Ÿē‘žē‘ēæē‘™ē‘›ē‘œē•¶ē•øē˜€ē—°ē˜ē—²ē—±ē—ŗē—æē—“ē—³ē›žē›Ÿē›ē«ē¦ēžē£"], - ["b840", "ē¹ēŖē¬ēœē„ēØē¢ēŸ®ē¢Žē¢°ē¢—ē¢˜ē¢Œē¢‰ē”¼ē¢‘ē¢“ē”æē„ŗē„æē¦č¬ē¦½ē؜ēؚēØ ēؔē؟ē؞ēŖŸēŖ ē­·ēƀē­ ē­®ē­§ē²±ē²³ē²µē¶“ēµ¹ē¶‘ē¶ē¶ēµ›ē½®ē½©ē½Ŗē½²ē¾©ē¾Øē¾¤č–č˜č‚†č‚„č…±č…°č…øč…„č…®č…³č…«"], - ["b8a1", "č…¹č…ŗč…¦čˆ…č‰‡č’‚č‘·č½č±č‘µč‘¦č‘«č‘‰č‘¬č‘›č¼čµč‘”č‘£č‘©č‘­č‘†č™žč™œč™Ÿč›¹čœ“čœˆčœ‡čœ€č›¾č›»čœ‚čœƒčœ†čœŠč”™č£Ÿč£”č£™č£œč£˜č£č£”č£Šč£•č£’č¦œč§£č©«č©²č©³č©¦č©©č©°čŖ‡č©¼č©£čŖ č©±čŖ…č©­č©¢č©®č©¬č©¹č©»čؾč©Øč±¢č²Šč²‰č³Šč³‡č³ˆč³„č²²č³ƒč³‚č³…č·”č·Ÿč·Øč·Æč·³č·ŗč·Ŗ跤跦čŗ²č¼ƒč¼‰č»¾č¼Š"], - ["b940", "č¾Ÿč¾²é‹éŠé“é‚é”é€¼é•éé‡ééŽéé‘é€¾éé„’é„—é…¬é…Ŗ酩釉鈷鉗éˆø鈽鉀鈾鉛鉋鉤鉑鈓鉉鉍鉅鈹éˆæ鉚閘隘隔隕雍雋雉雊雷電雹零靖靓靶預頑頓頊頒頌飼飓"], - ["b9a1", "飽飾馳馱馓體鳩éŗ‚鼎鼓鼠僧僮僄僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖唵唾境墓墊唹墅唽壽处夢夤å„Ŗ儩嫔嫦嫩嫗嫖嫘嫣孵åƞåƧåÆ”åÆ„åƦåÆØåÆ¢åƤåÆŸå°å±¢å¶„å¶‡å¹›å¹£å¹•å¹—å¹”å»“å»–å¼Šå½†å½°å¾¹ę…‡"], - ["ba40", "ę„æę…‹ę…·ę…¢ę…£ę…Ÿę…šę…˜ę…µęˆŖꒇꑘꑔ꒤ę‘øꑟę‘ŗę‘‘ę‘§ę“ę‘­ę‘»ę•²ę–”ę——ę—–ęš¢ęšØęšę¦œę¦Øę¦•ę§ę¦®ę§“ę§‹ę¦›ę¦·ę¦»ę¦«ę¦“ę§ę§ę¦­ę§Œę¦¦ę§ƒę¦£ę­‰ę­Œę°³ę¼³ę¼”ę»¾ę¼“ę»“ę¼©ę¼¾ę¼ ę¼¬ę¼ę¼‚ę¼¢"], - ["baa1", "ę»æę»Æę¼†ę¼±ę¼øę¼²ę¼£ę¼•ę¼«ę¼Æę¾ˆę¼Ŗę»¬ę¼ę»²ę»Œę»·ē†”ē†™ē…½ē†Šē†„ē†’ēˆ¾ēŠ’ēŠ–ē„ēē‘¤ē‘£ē‘Ŗē‘°ē‘­ē”„ē–‘ē˜§ē˜ē˜‹ē˜‰ē˜“ē›”ē›£ēž„ē½ēæē”ē£ē¢Ÿē¢§ē¢³ē¢©ē¢£ē¦Žē¦ē¦ēØ®ēرēŖŖēŖ©ē«­ē«Æē®”ē®•ē®‹ē­µē®—ē®ē®”ē®ē®øē®‡ē®„ē²¹ē²½ē²¾ē¶»ē¶°ē¶œē¶½ē¶¾ē¶ ē·Šē¶“ē¶²ē¶±ē¶ŗē¶¢ē¶æē¶µē¶øē¶­ē·’ē·‡ē¶¬"], - ["bb40", "ē½°ēæ ēæ”ēæŸčžčšč‚‡č…č†€č†č†ˆč†Šč…æ膂臧č‡ŗ與舔舞艋蓉č’æč“†č“„č’™č’žč’²č’œč“‹č’øč“€č““č’č’¼č“‘č“Ščœæčœœčœ»čœ¢čœ„čœ“čœ˜č•čœ·čœ©č£³č¤‚č£“č£¹č£øč£½č£Ø褚č£ÆčŖ¦čŖŒčŖžčŖ£čŖčŖ”čŖ“čŖ¤"], - ["bba1", "čŖŖčŖ„čŖØčŖ˜čŖ‘čŖščŖ§č±Ŗč²č²Œč³“č³‘č³’čµ«č¶™č¶•č·¼č¼”č¼’č¼•č¼“č¾£é é˜éœé£é™éžé¢éé›é„™é„˜é„žé…µé…øé…·é…“é‰ø銀銅銘銖鉻銓銜éŠØ鉼銑閔é–Ø閩閣閄閤隙障際雌雒需靼鞅韶頗領é¢Æ颱餃餅餌餉駁éŖÆéŖ°é«¦é­é­‚鳓鳶鳳éŗ¼é¼»é½Šå„„儀僻僵價儂儈儉儅凜"], - ["bc40", "劇劈劉劍劊勰厲嘮嘻嘹嘲å˜æ嘓嘩噓噎噗噓嘶å˜Æ嘰墀墟增墳墜墮墩墦儭嬉嫻嬋嫵嬌嬈åÆ®åƬåÆ©åÆ«å±¤å±„å¶å¶”å¹¢å¹Ÿå¹”å»¢å»šå»Ÿå»å»£å» å½ˆå½±å¾·å¾µę…¶ę…§ę…®ę…ę…•ę†‚"], - ["bca1", "ę…¼ę…°ę…«ę…¾ę†§ę†ę†«ę†Žę†¬ę†šę†¤ę†”ę†®ęˆ®ę‘©ę‘Æę‘¹ę’žę’²ę’ˆę’ę’°ę’„ę’“ę’•ę’©ę’’ę’®ę’­ę’«ę’šę’¬ę’™ę’¢ę’³ę•µę•·ę•øꚮꚫꚓꚱęØ£ę؟ę§Øę؁ę؞ęØ™ę§½ęØ”ęؓęØŠę§³ę؂ęØ…ę§­ęØ‘ę­ę­Žę®¤ęƅęƆę¼æę½¼ę¾„ę½‘ę½¦ę½”ę¾†ę½­ę½›ę½øę½®ę¾Žę½ŗę½°ę½¤ę¾—ę½˜ę»•ę½Æę½ ę½Ÿē†Ÿē†¬ē†±ē†Øē‰–ēŠ›ēŽē—ē‘©ē’‹ē’ƒ"], - ["bd40", "ē‘¾ē’€ē•æē˜ ē˜©ē˜Ÿē˜¤ē˜¦ē˜”ē˜¢ēššēšŗē›¤ēžŽēž‡ēžŒēž‘ēž‹ē£‹ē£…ē¢ŗē£Šē¢¾ē£•ē¢¼ē£ēØæēؼē©€ēؽēØ·ēØ»ēŖÆēŖ®ē®­ē®±ēƄē®“ēƆēƇēƁē® ēƌē³Šē· ē·“ē·Æē·»ē·˜ē·¬ē·ē·Øē·£ē·šē·žē·©ē¶žē·™ē·²ē·¹ē½µē½·ē¾Æ"], - ["bda1", "ēæ©č€¦č†›č†œč†č† č†šč†˜č”—č”½č”šč“®č”¬č”­č”“č”‘č”£č””蔔蓬蔄č“æč”†čž‚č“č¶č č¦čøčØč™č—čŒč“č”›č”č¤č¤‡č¤’č¤“č¤•č¤ŠčŖ¼č«’談諄čŖ•č«‹č«øčŖ²č«‰č«‚čŖæčŖ°č«–č«čŖ¶čŖ¹č«›č±Œč±Žč±¬č³ č³žč³¦č³¤č³¬č³­č³¢č³£č³œč³Ŗč³”čµ­č¶Ÿč¶£čø«čøčøčø¢čøčø©čøŸčø”čøžčŗŗč¼č¼›č¼Ÿč¼©č¼¦č¼Ŗč¼œč¼ž"], - ["be40", "č¼„é©é®éØ遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷é‹Ŗ銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頔頫頜颳養餓餒餘駝駐駟駛駑駕駒駙éŖ·é«®é«Æ鬧魅魄魷é­Æ铆铉"], - ["bea1", "铃éŗ©éŗ¾é»Žå¢Ø齒儒儘儔儐儕冀å†Ŗ凝劑劓勳噙噫噹噩噤å™øå™Ŗå™Ø噄噱å™Æ噬噢噶壁墾壇壅儮嬝嬓å­øåÆ°å°Žå½Šę†²ę†‘ę†©ę†Šę‡ę†¶ę†¾ę‡Šę‡ˆęˆ°ę“…ę“ę“‹ę’»ę’¼ę“šę“„ę“‡ę“‚ę“ę’æę“’ę“”ę’¾ę•“ę›†ę›‰ęš¹ę›„ę›‡ęšøęؽęØøęØŗę©™ę©«ę©˜ęØ¹ę©„ę©¢ę©”ę©‹ę©‡ęØµę©Ÿę©ˆę­™ę­·ę°…ęæ‚ę¾±ę¾”"], - ["bf40", "ęæƒę¾¤ęæę¾§ę¾³ęæ€ę¾¹ę¾¶ę¾¦ę¾ ę¾“ē†¾ē‡‰ē‡ē‡’ē‡ˆē‡•ē†¹ē‡Žē‡™ē‡œē‡ƒē‡„ēØē’œē’£ē’˜ē’Ÿē’žē“¢ē”Œē”ē˜“ē˜øē˜ŗē›§ē›„ēž ēžžēžŸēž„ē£Øē£šē£¬ē£§ē¦¦ē©ē©Žē©†ē©Œē©‹ēŖŗēƙē°‘ēƉēƤēƛēÆ”ēÆ©ēƦē³•ē³–ēøŠ"], - ["bfa1", "ēø‘ēøˆēø›ēø£ēøžēøēø‰ēøē½¹ē¾²ēæ°ēæ±ēæ®č€Øč†³č†©č†Øč‡»čˆˆč‰˜č‰™č•Šč•™č•ˆč•Øč•©č•ƒč•‰č•­č•Ŗč•žčžƒčžŸčžžčž¢čžč””č¤Ŗč¤²č¤„č¤«č¤”č¦Ŗ覦諦č«ŗč««č«±č¬€č«œč«§č«®č«¾č¬č¬‚č«·č«­č«³č«¶č«¼č±«č±­č²“č³“č¹„čø±čø“č¹‚čø¹čøµč¼»č¼Æč¼øč¼³č¾Øč¾¦éµé“éø遲遼éŗ鄓醒錠錶é‹ø錳éŒÆ錢鋼錫錄錚"], - ["c040", "錐錦錔錕錮錙閻隧éšØéšŖ雕霎霑霖霍霓霏靛靜靦鞘頰é ø頻頷頭頹頤餐é¤Ø餞餛餔餚駭駢駱éŖøéŖ¼é«»é«­é¬Ø鮑铕铣铦é“Ø铒铛默黔龍龜å„Ŗ償儔儲勵嚎嚀嚐嚅嚇"], - ["c0a1", "嚏壕壓壑壎嬰å¬Ŗ嬤å­ŗå°·å±Ø嶼å¶ŗ嶽å¶øå¹«å½Œå¾½ę‡‰ę‡‚ę‡‡ę‡¦ę‡‹ęˆ²ęˆ“ę“Žę“Šę“˜ę“ ę“°ę“¦ę“¬ę“±ę“¢ę“­ę–‚ę–ƒę›™ę›–ęŖ€ęŖ”ęŖ„ęŖ¢ęŖœę«›ęŖ£ę©¾ęŖ—ęŖęŖ ę­œę®®ęÆšę°ˆęæ˜ęæ±ęæŸęæ ęæ›ęæ¤ęæ«ęæÆę¾€ęæ¬ęæ”ęæ©ęæ•ęæ®ęæ°ē‡§ē‡Ÿē‡®ē‡¦ē‡„ē‡­ē‡¬ē‡“ē‡ ēˆµē‰†ē°ē²ē’©ē’°ē’¦ē’Øē™†ē™‚ē™Œē›Ŗēž³ēžŖēž°ēž¬"], - ["c140", "ēž§ēž­ēŸÆē£·ē£ŗē£“ē£Æē¤ē¦§ē¦Ŗē©—ēŖæē°‡ē°ēƾēÆ·ē°ŒēÆ ē³ ē³œē³žē³¢ē³Ÿē³™ē³ēø®ēø¾ē¹†ēø·ēø²ē¹ƒēø«ēø½ēø±ē¹…ē¹ēø“ēø¹ē¹ˆēøµēøæēøÆē½„ēæ³ēæ¼č±č²č°čÆč³č‡†č‡ƒč†ŗ臂臀č†æč†½č‡‰č†¾č‡Øčˆ‰č‰±č–Ŗ"], - ["c1a1", "č–„č•¾č–œč–‘č–”č–Æ薛薇č–Øč–Šč™§čŸ€čŸ‘čž³čŸ’čŸ†čž«čž»čžŗčŸˆčŸ‹č¤»č¤¶č„„č¤øč¤½č¦¬č¬Žč¬—č¬™č¬›č¬Šč¬ č¬č¬„č¬č±č°æč±³č³ŗč³½č³¼č³øč³»č¶Øč¹‰č¹‹č¹ˆč¹Šč½„č¼¾č½‚č½…č¼æéæ遽還邁邂邀鄹醣醞醜鍍鎂éŒØ鍵鍊鍄鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱éšø雖霜霞鞠韓锆颶餵é؁"], - ["c240", "é§æ鮮鮫é®Ŗé®­é“»é“æéŗ‹é»é»žé»œé»é»›é¼¾é½‹å¢åš•åš®å£™å£˜å¬øå½ę‡£ęˆ³ę““ę“²ę“¾ę”†ę“ŗę“»ę“·ę–·ę›œęœ¦ęŖ³ęŖ¬ę«ƒęŖ»ęŖøę«‚ęŖ®ęŖÆꭟę­øę®Æē€‰ē€‹ęæ¾ē€†ęæŗē€‘ē€ē‡»ē‡¼ē‡¾ē‡øē·ēµē’§ē’æē”•ē™–ē™˜"], - ["c2a1", "ē™’ēž½ēžæēž»ēž¼ē¤Žē¦®ē©”ē©¢ē© ē«„ē«…ē°«ē°§ē°Ŗē°žē°£ē°”ē³§ē¹”ē¹•ē¹žē¹šē¹”ē¹’ē¹™ē½ˆēæ¹ēæ»č·č¶č‡č‡čˆŠč—č–©č—č—č—‰č–°č–ŗč–¹č–¦čŸÆčŸ¬čŸ²čŸ č¦†č¦²č§“č¬Øč¬¹č¬¬č¬«č±č“…č¹™č¹£č¹¦č¹¤č¹Ÿč¹•č»€č½‰č½é‚‡é‚ƒé‚ˆé†«é†¬é‡éŽ”éŽŠéŽ–éŽ¢éŽ³éŽ®éŽ¬éŽ°éŽ˜éŽšéŽ—é—”é—–é—é—•é›¢é›œé›™é››é›žéœ¤éž£éž¦"], - ["c340", "鞭韹锍锏锌锎锓é¢ŗ餾é¤æ餽餮馄é؎髁鬃鬆魏魎魍éƊéƉéƽéƈéƀ鵑鵝鵠黠鼕鼬儳嚄壞壟壢åÆµé¾å»¬ę‡²ę‡·ę‡¶ę‡µę”€ę”ę› ę›ę«„ę«ę«šę«“ē€›ē€Ÿē€Øē€šē€ē€•ē€˜ēˆ†ēˆē‰˜ēŠ¢ēø"], - ["c3a1", "ēŗē’½ē“Šē“£ē–‡ē–†ē™Ÿē™”ēŸ‡ē¤™ē¦±ē©«ē©©ē°¾ē°æē°øē°½ē°·ē±€ē¹«ē¹­ē¹¹ē¹©ē¹Ŗē¾…ē¹³ē¾¶ē¾¹ē¾øč‡˜č—©č—č—Ŗč—•č—¤č—„č—·čŸ»č …č čŸ¹čŸ¾č„ č„Ÿč„–č„žč­č­œč­˜č­‰č­šč­Žč­č­†č­™č“ˆč“Šč¹¼č¹²čŗ‡č¹¶č¹¬č¹ŗč¹“č½”č½Žč¾­é‚Šé‚‹é†±é†®é”é‘éŸéƒéˆéœéé–é¢éé˜é¤é—éØ關隓難éœŖ霧靔韜韻锞"], - ["c440", "锘锛颼鄅鄉éؖéؙ鬍éÆØéƧéƖéƛ鶉鵔鵲éµŖ鵬éŗ’éŗ—éŗ“éŗ“å‹øåšØ嚷嚶嚓嚼壤孀孃孽åƶ巉ę‡øę‡ŗę”˜ę””ę”™ę›¦ęœ§ę«¬ē€¾ē€°ē€²ēˆē»ē“ē™¢ē™„ē¤¦ē¤Ŗē¤¬ē¤«ē«‡ē«¶ē±Œē±ƒē±ē³Æē³°č¾®ē¹½ē¹¼"], - ["c4a1", "ēŗ‚ē½Œč€€č‡šč‰¦č—»č—¹č˜‘č—ŗč˜†č˜‹č˜‡č˜Šč ”č •č„¤č¦ŗč§ø議譬警č­Æč­Ÿč­«č“č“čŗ‰čŗčŗ…čŗ‚醓釋鐘鐃鏽闔霰飄鄒鄑é¦ØéØ«éØ°éØ·éص鰓鰍鹹éŗµé»Øé¼Æ齟齣齔儷å„øå›å›€å›‚å¤”å±¬å·ę‡¼ę‡¾ę”ę”œę–•ę›©ę«»ę¬„ę«ŗę®²ēŒēˆ›ēŠ§ē“–ē“”ē™©ēŸ“ē±ēŗēŗŒē¾¼č˜—č˜­č˜šč £č ¢č ”蠟č„Ŗč„¬č¦½č­“"], - ["c540", "č­·č­½č““čŗŠčŗčŗ‹č½Ÿč¾Æé†ŗ鐮鐳鐵éŗéø鐲鐫闢éœø霹露éŸæ锧锄鄗驅驃驀éؾ髏魔魑鰭鰄é¶Æ鶓鷂é¶øéŗé»Æ鼙齜齦齧儼儻囈囊囉å­æ巔巒彎ę‡æꔤꬊꭔē‘ē˜ēŽ€ē“¤ē–Šē™®ē™¬"], - ["c5a1", "ē¦³ē± ē±Ÿč¾č½č‡Ÿč„²č„Æč§¼č®€č“–č“—čŗ‘čŗ“č½”酈鑄鑑鑒霽霾韃韁锫鄕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼓齬é½Ŗé¾”å›Œå·–ęˆ€ę”£ę”«ę”Ŗꛬ꬐ē“šē«Šē±¤ē±£ē±„ēŗ“ēŗ–ēŗ”č‡¢č˜øč˜æč ±č®Šé‚é‚é‘£é‘ é‘¤éØé”Æ鄜驚驛驗髓體髑鱔鱗鱖鷄éŗŸé»“å›‘å£©ę”¬ēžē™±ē™²ēŸ—ē½ē¾ˆč ¶č ¹č”¢č®“č®’"], - ["c640", "讖艷蓛釀é‘Ŗ靂靈靄韆锰驟鬢魘鱟鷹é·ŗé¹¼é¹½é¼‡é½·é½²å»³ę¬–ē£ē±¬ē±®č »č§€čŗ”釁鑲鑰锱鄞髖鬣黌ē¤ēŸšč®šé‘·éŸ‰é©¢é©„ēŗœč®œčŗŖ釅鑽鑾鑼鱷é±øé»·č±”é‘æéøšēˆØé©Ŗ鬱éø›éøžē±²"], - ["c940", "乂乜凵匚厂äø‡äøŒä¹‡äŗå›—ļ،屮彳äøå†‡äøŽäø®äŗ“仂仉仈冘勼卬厹圠夃夬尐å·æę—”ę®³ęÆŒę°”ēˆæäø±äø¼ä»Ø仜仩仔仝仚刌匜卌圢圣夗å¤Æ宁宄尒尻屓屳åø„åŗ€åŗ‚åæ‰ęˆ‰ę‰ę°•"], - ["c9a1", "갶걃ę°æę°»ēŠ®ēŠ°ēŽŠē¦øč‚Šé˜žä¼Žä¼˜ä¼¬ä»µä¼”ä»±ä¼€ä»·ä¼ˆä¼ä¼‚ä¼…ä¼¢ä¼“ä¼„ä»“ä¼’å†±åˆ“åˆ‰åˆåŠ¦åŒ¢åŒŸååŽŠå‡å›”å›Ÿåœ®åœŖ圓夼妀儼妅儻儾儷å„æå­–å°•å°„å±¼å±ŗ屻屾巟幵åŗ„异弚当åæ•åæ”åæę‰œę‰žę‰¤ę‰”ę‰¦ę‰¢ę‰™ę‰ ę‰šę‰„ę—Æę—®ęœ¾ęœ¹ęœøęœ»ęœŗęœæęœ¼ęœ³ę°˜ę±†ę±’ę±œę±ę±Šę±”ę±‹"], - ["ca40", "ę±Œē±ē‰žēŠ“ēŠµēŽŽē”Ŗē™æē©µē½‘č‰øč‰¼čŠ€č‰½č‰æč™č„¾é‚™é‚—é‚˜é‚›é‚”é˜¢é˜¤é˜ é˜£ä½–ä¼»ä½¢ä½‰ä½“ä½¤ä¼¾ä½§ä½’ä½Ÿä½ä½˜ä¼­ä¼³ä¼æ佔冏冹刜刞刔劭劮匉卣卲厎厏吰吷åŖ呔呅吙吜各吘"], - ["caa1", "吽呏呁åØ吤呇囮囧囄坁坅坌坉坋坒夆儀妦妘妠妗妎妢妐妏妧妔宎宒å°Øå°Ŗ岍岏岈岋岉岒岊岆岓岕巠åøŠåøŽåŗ‹åŗ‰åŗŒåŗˆåŗå¼…弝å½ø彶åæ’åæ‘åæåæ­åæØåæ®åæ³åæ”åæ¤åæ£åæŗåæÆåæ·åæ»ę€€åæ“ęˆŗęŠƒęŠŒęŠŽęŠęŠ”ęŠ‡ę‰±ę‰»ę‰ŗę‰°ęŠęŠˆę‰·ę‰½ę‰²ę‰“ę”·ę—°ę—“ę—³ę—²ę—µę…ę‡"], - ["cb40", "ꝙꝕꝌꝈꝝꝍꝚꝋęÆę°™ę°šę±øę±§ę±«ę²„ę²‹ę²ę±±ę±Æę±©ę²šę±­ę²‡ę²•ę²œę±¦ę±³ę±„ę±»ę²Žē“ēŗē‰£ēŠæēŠ½ē‹ƒē‹†ē‹ēŠŗē‹…ēŽ•ēŽ—ēŽ“ēŽ”ēŽ’ē”ŗē”¹ē–”ē–•ēšē¤½č€“肕肙肐肒肜芐芏芅芎芑芓"], - ["cba1", "芊芃芄č±øčæ‰č¾æ邟邔還邞邧邠阰é˜Øé˜Æ阭äø³ä¾˜ä½¼ä¾…佽侀侇佶体侉侄佷佌侗ä½Ŗ侚佹侁ä½ø侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇å‘æ咁咑咂咈呫å‘ŗ呾呄呬呓呦咍å‘Æ呔呠咘呣呧呤囷囹åÆ坲坭坫坱坰坶垀坵坻坳坓坢"], - ["cc40", "åØ坽夌儅妵å¦ŗ姏姎妲姌姁妶妼姃姖妱妽姀姈妓姇孢孄宓宕屄屇岮岤岠岵å²Æå²Ø岬岟岣岭岢å²Ŗ岧岝岄岶岰岦åø—åø”åø™å¼Ø弢弣弤彔徂彾彽åæžåæ„ę€­ę€¦ę€™ę€²ę€‹"], - ["cca1", "ę€“ę€Šę€—ę€³ę€šę€žę€¬ę€¢ę€ę€ę€®ę€“ę€‘ę€Œę€‰ę€œęˆ”ęˆ½ęŠ­ęŠ“ę‹‘ęŠ¾ęŠŖęŠ¶ę‹ŠęŠ®ęŠ³ęŠÆꊻꊩꊰęŠøę”½ę–Øę–»ę˜‰ę—¼ę˜„ę˜’ę˜ˆę—»ę˜ƒę˜‹ę˜ę˜…ę—½ę˜‘ę˜ę›¶ęœŠęž…ę¬ęžŽęž’ę¶ę»ęž˜ęž†ęž„ę“ęžęžŒęŗęžŸęž‘ęž™ęžƒę½ęžęøę¹ęž”ę¬„ę®€ę­¾ęÆžę°ę²“ę³¬ę³«ę³®ę³™ę²¶ę³”ę²­ę³§ę²·ę³ę³‚ę²ŗę³ƒę³†ę³­ę³²"], - ["cd40", "ę³’ę³ę²“ę²Šę²ę²€ę³žę³€ę“°ę³ę³‡ę²°ę³¹ę³ę³©ę³‘ē‚”ē‚˜ē‚…ē‚“ē‚†ē‚„ē‚‘ē‚–ē‚‚ē‚šē‚ƒē‰Ŗē‹–ē‹‹ē‹˜ē‹‰ē‹œē‹’ē‹”ē‹šē‹Œē‹‘ēŽ¤ēŽ”ēŽ­ēŽ¦ēŽ¢ēŽ ēŽ¬ēŽē“ē“Øē”æē•€ē”¾ē–Œē–˜ēšÆē›³ē›±ē›°ē›µēŸøēŸ¼ēŸ¹ēŸ»ēŸŗ"], - ["cda1", "ēŸ·ē„‚ē¤æē§…ē©øē©»ē«»ē±µē³½č€µč‚č‚®č‚£č‚øč‚µč‚­čˆ čŠ č‹€čŠ«čŠščŠ˜čŠ›čŠµčŠ§čŠ®čŠ¼čŠžčŠŗ芓čŠØčŠ”čŠ©č‹‚čŠ¤č‹ƒčŠ¶čŠ¢č™°č™Æ虭虮豖čæ’čæ‹čæ“čæčæ–čæ•čæ—邲邓é‚Æ邳邰阹阽阼é˜ŗ陃äæäæ…äæ“ä¾²äæ‰äæ‹äæäæ”äæœäæ™ä¾»ä¾³äæ›äæ‡äæ–ä¾ŗäæ€ä¾¹äæ¬å‰„剉勀勂匽卼厗厖厙厘å’ŗ咔咭咄哏"], - ["ce40", "å“ƒčŒå’·å’®å“–å’¶å“…å“†å’ å‘°å’¼å’¢å’¾å‘²å“žå’°åžµåžžåžŸåž¤åžŒåž—åžåž›åž”åž˜åžåž™åž„åžšåž•å£“å¤å„“å§”å§žå§®å؀姱姝å§ŗ姽姼姶姤姲姷姛姩姳姵姠姾姓姭å®Ø屌峐峘峌峗峋峛"], - ["cea1", "峞峚峉峇峊峖峓峔峏峈峆峎峟å³øå·¹åø”åø¢åø£åø åø¤åŗ°åŗ¤åŗ¢åŗ›åŗ£åŗ„å¼‡å¼®å½–å¾†ę€·ę€¹ę”ę²ęžę…ę“ę‡ę‰ę›ęŒę€ę‚ęŸę€¤ę„ę˜ę¦ę®ę‰‚ę‰ƒę‹ęŒęŒ‹ę‹µęŒŽęŒƒę‹«ę‹¹ęŒęŒŒę‹øę‹¶ęŒ€ęŒ“ęŒ”ę‹ŗęŒ•ę‹»ę‹°ę•ę•ƒę–Ŗę–æę˜¶ę˜”ę˜²ę˜µę˜œę˜¦ę˜¢ę˜³ę˜«ę˜ŗę˜ę˜“ę˜¹ę˜®ęœęœęŸęŸ²ęŸˆęžŗ"], - ["cf40", "ęŸœęž»ęŸøęŸ˜ęŸ€ęž·ęŸ…ęŸ«ęŸ¤ęŸŸęžµęŸęž³ęŸ·ęŸ¶ęŸ®ęŸ£ęŸ‚ęž¹ęŸŽęŸ§ęŸ°ęž²ęŸ¼ęŸ†ęŸ­ęŸŒęž®ęŸ¦ęŸ›ęŸŗꟉꟊꟃęŸŖꟋę¬ØꮂꮄꮶęƖęƘęÆ ę° ę°”ę“Øę““ę“­ę“Ÿę“¼ę“æę“’ę“Šę³šę“³ę“„ę“™ę“ŗę“šę“‘ę“€ę“ęµ‚"], - ["cfa1", "ę“ę“˜ę“·ę“ƒę“ęµ€ę“‡ę“ ę“¬ę“ˆę“¢ę“‰ę“ē‚·ē‚Ÿē‚¾ē‚±ē‚°ē‚”ē‚“ē‚µē‚©ē‰ē‰‰ē‰Šē‰¬ē‰°ē‰³ē‰®ē‹Šē‹¤ē‹Øē‹«ē‹Ÿē‹Ŗē‹¦ē‹£ēŽ…ēŒē‚ēˆē…ēŽ¹ēŽ¶ēŽµēŽ“ē«ēŽæē‡ēŽ¾ēƒē†ēŽøē‹ē“¬ē“®ē”®ē•‡ē•ˆē–§ē–Ŗē™¹ē›„ēœˆēœƒēœ„ēœ…ēœŠē›·ē›»ē›ŗēŸ§ēŸØē †ē ‘ē ’ē …ē ē ē Žē ‰ē ƒē “ē„Šē„Œē„‹ē„…ē„„ē§•ē§ē§ē§–ē§ŽēŖ€"], - ["d040", "ē©¾ē«‘ē¬€ē¬ē±ŗē±øē±¹ē±æē²€ē²ē“ƒē“ˆē“ē½˜ē¾‘ē¾ē¾¾č€‡č€Žč€č€”č€·čƒ˜čƒ‡čƒ čƒ‘čƒˆčƒ‚čƒčƒ…čƒ£čƒ™čƒœčƒŠčƒ•čƒ‰čƒčƒ—čƒ¦čƒč‡æčˆ”čŠ”č‹™č‹¾č‹¹čŒ‡č‹Ø茀苕čŒŗč‹«č‹–č‹“č‹¬č‹”č‹²č‹µčŒŒč‹»č‹¶č‹°č‹Ŗ"], - ["d0a1", "苤苠č‹ŗč‹³č‹­č™·č™“č™¼č™³č”č”Žč”§č”Ŗ蔩觓č؄čØ‡čµ²čæ£čæ”čæ®čæ éƒ±é‚½é‚æ郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛äæµäæ“倳倷倬äæ¶äæ·å€—倜倠倧倵å€Æ倱倎党冔冓凊凄凅凈凎剔剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚å“æ唄唈哫唑唅哱"], - ["d140", "唊哻哷å“ø哠唎唃唋圁圂埌堲埕埒åžŗ埆垽垼åžø垶åžæ埇埐垹埁夎儊åؙåؖåØ­åØ®åؕå؏åؗå؊å؞åس孬宧宭宬尃屖屔峬å³æ峮峱峷哀峹åø©åøØåŗØåŗ®åŗŖåŗ¬å¼³å¼°å½§ęęšę§"], - ["d1a1", "ęę‚¢ę‚ˆę‚€ę‚’ę‚ę‚ę‚ƒę‚•ę‚›ę‚—ę‚‡ę‚œę‚Žęˆ™ę‰†ę‹²ęŒę–ęŒ¬ę„ę…ęŒ¶ęƒę¤ęŒ¹ę‹ęŠęŒ¼ęŒ©ęęŒ“ę˜ę”ę™ęŒ­ę‡ęŒ³ęšę‘ęŒøę—ę€ęˆę•Šę•†ę—†ę—ƒę—„ę—‚ę™Šę™Ÿę™‡ę™‘ęœ’ęœ“ę Ÿę šę”‰ę ²ę ³ę »ę”‹ę”ę –ę ±ę œę µę «ę ­ę Æę”Žę”„ę “ę ę ’ę ”ę ¦ę Øę ®ę”ę ŗꠄꠠꬬę¬Æę¬­ę¬±ę¬“ę­­č‚‚ę®ˆęƦęƤ"], - ["d240", "ęÆØęÆ£ęÆ¢ęÆ§ę°„ęµŗęµ£ęµ¤ęµ¶ę“ęµ”ę¶’ęµ˜ęµ¢ęµ­ęµÆę¶‘ę¶ę·Æęµæę¶†ęµžęµ§ęµ ę¶—ęµ°ęµ¼ęµŸę¶‚ę¶˜ę“ÆęµØę¶‹ęµ¾ę¶€ę¶„ę“–ę¶ƒęµ»ęµ½ęµµę¶ēƒœēƒ“ēƒ‘ēƒēƒ‹ē¼¹ēƒ¢ēƒ—ēƒ’ēƒžēƒ ēƒ”ēƒēƒ…ēƒ†ēƒ‡ēƒšēƒŽēƒ”ē‰‚ē‰ø"], - ["d2a1", "ē‰·ē‰¶ēŒ€ē‹ŗē‹“ē‹¾ē‹¶ē‹³ē‹»ēŒē“ē™ē„ē–ēŽ¼ē§ē£ē©ēœē’ē›ē”ēēšē—ē˜ēØē“žē“Ÿē““ē“µē””ē•›ē•Ÿē–°ē—ē–»ē—„ē—€ē–æē–¶ē–ŗēšŠē›‰ēœēœ›ēœēœ“ēœ’ēœ£ēœ‘ēœ•ēœ™ēœšēœ¢ēœ§ē £ē ¬ē ¢ē µē Æē Øē ®ē «ē ”ē ©ē ³ē Ŗē ±ē„”ē„›ē„ē„œē„“ē„’ē„‘ē§«ē§¬ē§ ē§®ē§­ē§Ŗē§œē§žē§ēŖ†ēŖ‰ēŖ…ēŖ‹ēŖŒēŖŠēŖ‡ē«˜ē¬"], - ["d340", "ē¬„ē¬“ē¬…ē¬ē¬ˆē¬Šē¬Žē¬‰ē¬’ē²„ē²‘ē²Šē²Œē²ˆē²ē²…ē“žē“ē“‘ē“Žē“˜ē“–ē““ē“Ÿē“’ē“ē“Œē½œē½”ē½žē½ ē½ē½›ē¾–ē¾’ēæƒēæ‚ēæ€č€–č€¾č€¹čƒŗčƒ²čƒ¹čƒµč„čƒ»č„€čˆčˆÆčˆ„čŒ³čŒ­č„čŒ™č‘čŒ„č–čŒæččŒ¦čŒœčŒ¢"], - ["d3a1", "荂荎茛čŒŖčŒˆčŒ¼ččŒ–čŒ¤čŒ čŒ·čŒÆčŒ©č‡č…čŒč“čŒžčŒ¬č‹čŒ§čˆč™“č™’čš¢čšØčš–čščš‘čšžčš‡čš—čš†čš‹čšščš…čš„čš™čš”čš§čš•čš˜čšŽčščščš”č”ƒč”„č”­č”µč”¶č”²č¢€č”±č”æč”Æč¢ƒč”¾č”“č”¼čØ’č±‡č±—č±»č²¤č²£čµ¶čµø趵趷趶軑軓čæ¾čæµé€‚čææčæ»é€„čæ¼čæ¶éƒ–郠郙郚郣郟郄郘郛郗郜郤酐"], - ["d440", "酎酏釕釢釚陜陟隼飣髟é¬Æä¹æ偰åŖ偔偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唓å”Ŗ啑啢唶唵唰啒啅"], - ["d4a1", "唌唲啄啎唹啈唭唻啀啋圊圇埻堔埢埶埜埓堀埭埽堈åŸø堋埳埏堇埮埣埲埄埬埔堎埼堐埧堁堌埱埩埰堍堄儜婠婘婕婧婞åØøåص婭婐婟婄婬婓婤婗婃婝婒婄婛婈åŖŽåؾ婍åع婌婰婩婇婑婖婂婜孲孮åƁåƀ屙哞哋哝哚哠哌å“Ø响哦哄哏"], - ["d540", "哰哒哣哟哮åø¾åø“åŗ±åŗ“åŗ¹åŗ²åŗ³å¼¶å¼øå¾›å¾–å¾Ÿę‚Šę‚ę‚†ę‚¾ę‚°ę‚ŗęƒ“ęƒ”ęƒęƒ¤ęƒ™ęƒęƒˆę‚±ęƒ›ę‚·ęƒŠę‚æęƒƒęƒęƒ€ęŒ²ę„ęŽŠęŽ‚ę½ęŽ½ęŽžęŽ­ęŽęŽ—ęŽ«ęŽŽęÆęŽ‡ęŽę®ęŽÆęµęŽœę­ęŽ®ę¼ęŽ¤ęŒ»ęŽŸ"], - ["d5a1", "ęøęŽ…ęŽęŽ‘ęŽę°ę•“ę—ę™„ę™”ę™›ę™™ę™œę™¢ęœ˜ę”¹ę¢‡ę¢ę¢œę”­ę”®ę¢®ę¢«ę„–ę”Æę¢£ę¢¬ę¢©ę”µę”“ę¢²ę¢ę”·ę¢’ę”¼ę”«ę”²ę¢Ŗę¢€ę”±ę”¾ę¢›ę¢–ę¢‹ę¢ ę¢‰ę¢¤ę”øę”»ę¢‘ę¢Œę¢Šę”½ę¬¶ę¬³ę¬·ę¬øę®‘ę®ę®ę®Žę®Œę°Ŗę·€ę¶«ę¶“ę¶³ę¹“ę¶¬ę·©ę·¢ę¶·ę·¶ę·”ęø€ę·ˆę· ę·Ÿę·–ę¶¾ę·„ę·œę·ę·›ę·“ę·Šę¶½ę·­ę·°ę¶ŗę·•ę·‚ę·ę·‰"], - ["d640", "ę·ę·²ę·“ę·½ę·—ę·ę·£ę¶»ēƒŗē„ēƒ·ē„—ēƒ“ē„Œēƒ°ē„„ēƒ³ē„ēƒ¼ēƒæē„†ē„“ē„€ēƒøēƒ¶ē„‹ē„‚ē„Žē‰¾ē‰»ē‰¼ē‰æēŒēŒ—ēŒ‡ēŒ‘ēŒ˜ēŒŠēŒˆē‹æēŒēŒžēŽˆē¶ēøēµē„ēē½ē‡ē€ēŗē¼ēæēŒē‹ē“ēˆē•¤ē•£ē—Žē—’ē—"], - ["d6a1", "ē—‹ē—Œē—‘ē—ēšēš‰ē›“ēœ¹ēœÆēœ­ēœ±ēœ²ēœ“ēœ³ēœ½ēœ„ēœ»ēœµē”ˆē”’ē”‰ē”ē”Šē”Œē ¦ē”…ē”ē„¤ē„§ē„©ē„Ŗē„£ē„«ē„”ē¦»ē§ŗē§øē§¶ē§·ēŖēŖ”ēŖē¬µē­‡ē¬“ē¬„ē¬°ē¬¢ē¬¤ē¬³ē¬˜ē¬Ŗē¬ē¬±ē¬«ē¬­ē¬Æē¬²ē¬øē¬šē¬£ē²”ē²˜ē²–ē²£ē“µē“½ē“øē“¶ē“ŗēµ…ē“¬ē“©ēµēµ‡ē“¾ē“æēµŠē“»ē“Øē½£ē¾•ē¾œē¾ē¾›ēæŠēæ‹ēæēæēæ‘ēæ‡ēæēæ‰č€Ÿ"], - ["d740", "č€žč€›č‡čƒčˆč„˜č„„č„™č„›č„­č„Ÿč„¬č„žč„”č„•č„§č„č„¢čˆ‘čˆøčˆ³čˆŗčˆ“čˆ²č‰“čŽčŽ£čŽØ莍čŗč³čŽ¤č“čŽčŽčŽ•čŽ™čµčŽ”čŽ©č½čŽƒčŽŒčŽčŽ›čŽŖčŽ‹č¾čŽ„čŽÆ莈莗莰čæčŽ¦čŽ‡čŽ®č¶čŽšč™™č™–čšæčš·"], - ["d7a1", "蛂蛁蛅čšŗčš°č›ˆčš¹čš³čšøč›Œčš“čš»čš¼č›ƒčš½čš¾č”’č¢‰č¢•č¢Øč¢¢č¢Ŗč¢šč¢‘č¢”č¢Ÿč¢˜č¢§č¢™č¢›č¢—č¢¤č¢¬č¢Œč¢“č¢Žč¦‚č§–č§™č§•čØ°čاčجčØžč°¹č°»č±œč±č±½č²„čµ½čµ»čµ¹č¶¼č·‚č¶¹č¶æč·č»˜č»žč»č»œč»—č» č»”é€¤é€‹é€‘é€œé€Œé€”éƒÆéƒŖ郰郓郲郳郔郫郬郩酖酘酚酓酕釬釓釱釳é‡ø釤釹é‡Ŗ"], - ["d840", "釫釷é‡Ø釮é•ŗ閆閈陼陭陫陱é™ÆéšæéŖ頄飄馗傛傕傔傞傋傣傃傌傎傝åØ傜傒傂傇兟凔匒匑厤厧喑å–Ø善喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦å•æ喕喔喎圌堩堷"], - ["d8a1", "堙堞堧堣å Ø埵唈堄堜堛堳å æ堶堮堹å ø堭堬堻儔åŖÆåŖ”åŖŸå©ŗåŖ¢åŖžå©øåŖ¦å©¼åŖ„åŖ¬åŖ•åŖ®åØ·åŖ„åŖŠåŖ—åŖƒåŖ‹åŖ©å©»å©½åŖŒåŖœåŖåŖ“åŖåÆŖåƍåƋåƔåƑåƊåƎ尌尰哷嵃嵫嵁嵋å“æ哵嵑嵎嵕哳å“ŗ嵒哽哱嵙嵂哹嵉å“øå“¼å“²å“¶åµ€åµ…å¹„å¹å½˜å¾¦å¾„å¾«ęƒ‰ę‚¹ęƒŒęƒ¢ęƒŽęƒ„ę„”"], - ["d940", "ęƒ²ę„Šę„–ę„…ęƒµę„“ęƒøęƒ¼ęƒ¾ęƒę„ƒę„˜ę„ę„ęƒæę„„ę„‹ę‰ŠęŽ”ęŽ±ęŽ°ęŽę„ęØęÆęƒę’ę³ęŠę ę¶ę•ę²ęµę‘”ęŸęŽ¾ęęœę„ę˜ę“ę‚ę‡ęŒę‹ęˆę°ę—ę™ę”²ę•§ę•Ŗꕤꕜę•Øę•„ę–Œę–ę–žę–®ę—ę—’"], - ["d9a1", "ę™¼ę™¬ę™»ęš€ę™±ę™¹ę™Ŗę™²ęœę¤Œę£“ę¤„ę£œę¤Ŗę£¬ę£Ŗę£±ę¤ę£–ę£·ę£«ę£¤ę£¶ę¤“ę¤ę£³ę£”ę¤‡ę£Œę¤ˆę„°ę¢“ę¤‘ę£Æę£†ę¤”ę£øę£ę£½ę£¼ę£Øę¤‹ę¤Šę¤—ę£Žę£ˆę£ę£žę£¦ę£“ę£‘ę¤†ę£”ę£©ę¤•ę¤„ę£‡ę¬¹ę¬»ę¬æę¬¼ę®”ę®—ę®™ę®•ę®½ęÆ°ęƲęÆ³ę°°ę·¼ę¹†ę¹‡ęøŸę¹‰ęŗˆęø¼ęø½ę¹…ę¹¢ęø«ęøæę¹ę¹ę¹³ęøœęø³ę¹‹ę¹€ę¹‘ęø»ęøƒęø®ę¹ž"], - ["da40", "ę¹Øę¹œę¹”ęø±ęøØę¹ ę¹±ę¹«ęø¹ęø¢ęø°ę¹“ę¹„ęø§ę¹øę¹¤ę¹·ę¹•ę¹¹ę¹’ę¹¦ęøµęø¶ę¹šē„ ē„žē„Æēƒ»ē„®ē„±ē„£ē„„ē„¢ē„²ē„Ÿē„Øē„ŗē„›ē‰‹ē‰šēŠˆēŠ‰ēŠ†ēŠ…ēŠ‹ēŒ’ēŒ‹ēŒ°ēŒ¢ēŒ±ēŒ³ēŒ§ēŒ²ēŒ­ēŒ¦ēŒ£ēŒµēŒŒē®ē¬ē°ē«ē–"], - ["daa1", "ēšē”ē­ē±ē¤ē£ēē©ē ē²ē“»ē”Æē•Æē•¬ē—§ē—šē—”ē—¦ē—ē—Ÿē—¤ē——ēš•ēš’ē›šē†ē‡ē„ēē…ēŠēŽē‹ēŒēŸžēŸ¬ē” ē”¤ē”„ē”œē”­ē”±ē”Ŗē”®ē”°ē”©ē”Øē”žē”¢ē„“ē„³ē„²ē„°ē؂ē؊ē؃ē،ē؄ēŖ™ē«¦ē«¤ē­Šē¬»ē­„ē­ˆē­Œē­Žē­€ē­˜ē­…ē²¢ē²žē²Øē²”ēµ˜ēµÆēµ£ēµ“ēµ–ēµ§ēµŖēµēµ­ēµœēµ«ēµ’ēµ”ēµ©ēµ‘ēµŸēµŽē¼¾ē¼æē½„"], - ["db40", "ē½¦ē¾¢ē¾ ē¾”ēæ—č‘čččƒ¾čƒ”č…ƒč…Šč…’č…č…‡č„½č…č„ŗ臦臮臷č‡øč‡¹čˆ„čˆ¼čˆ½čˆæč‰µčŒ»čč¹č£č€čØč’č§č¤č¼č¶čč†čˆč«č£čŽæččč„č˜čæč”č‹čŽč–čµč‰č‰ččžč‘č†č‚č³"], - ["dba1", "菕čŗ菇菑čŖč“čƒč¬č®č„č»č—č¢č›č›č¾č›˜č›¢č›¦č›“č›£č›šč›Ŗč›č›«č›œč›¬č›©č›—č›Øč›‘č”ˆč”–č”•č¢ŗč£—č¢¹č¢øč£€č¢¾č¢¶č¢¼č¢·č¢½č¢²č¤č£‰č¦•č¦˜č¦—č§č§šč§›č©Žč©čØ¹č©™č©€č©—č©˜č©„č©…č©’č©ˆč©‘č©Šč©Œč©č±Ÿč²č²€č²ŗč²¾č²°č²¹č²µč¶„č¶€č¶‰č·˜č·“č·č·‡č·–č·œč·č·•č·™č·ˆč·—č·…č»Æč»·č»ŗ"], - ["dc40", "č»¹č»¦č»®č»„č»µč»§č»Ø軶軫軱軬軓軩逭逓é€Æ鄆鄬鄄éƒæ郼鄈郹郻鄁鄀鄇鄅鄃酔酤酟酢酠鈁鈊鈄鈃鈚鈦鈏鈌鈀鈒é‡æ釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"], - ["dca1", "隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹äŗƒäŗ„äŗ¶å‚½å‚æ僆傮僄僊傓僈僂傰僁å‚ŗ傱僋僉傶å‚ø凗å‰ŗå‰ø剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩å–æ嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔唓å”Ø唤唏唍唉å”Æ唕唎唝唙唄唛堽唣唱壼嫇嫄嫋åŖŗåŖøåŖ±åŖµåŖ°åŖæ嫈åŖ»å«†"], - ["dd40", "åŖ·å«€å«ŠåŖ“åŖ¶å«åŖ¹åŖåƖåƘåƙ尟尳嵱嵣嵊嵄嵲嵬嵞åµØ嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀å¾Æå¾­ęƒ·ę…‰ę…Šę„«ę……ę„¶ę„²ę„®ę…†ę„Æę…ę„©ę…€ęˆ é…Øęˆ£ęˆ„ęˆ¤ę…ę±ę«ęę’ę‰ę ę¤"], - ["dda1", "ę³ę‘ƒęŸę•ę˜ę¹ę·ę¢ę£ęŒę¦ę°ęØꑁꐵęÆęŠęšę‘€ę„ę§ę‹ę§ę›ę®ę”ęŽę•ÆꖒꗓꚆꚌꚕꚐꚋꚊꚙꚔę™øęœ ę„¦ę„Ÿę¤øę„Žę„¢ę„±ę¤æę„…ę„Ŗę¤¹ę„‚ę„—ę„™ę„ŗę„ˆę„‰ę¤µę„¬ę¤³ę¤½ę„„ę£°ę„øꤓꄩꄀę„Æę„„ę„¶ę„˜ę„ę„“ę„Œę¤»ę„‹ę¤·ę„œę„ę„‘ę¤²ę„’ę¤Æę„»ę¤¼ę­†ę­…ę­ƒę­‚ę­ˆę­ę®›ļ؍ęÆ»ęƼ"], - ["de40", "ęƹęÆ·ęÆøęŗ›ę»–ę»ˆęŗę»€ęŗŸęŗ“ęŗ”ęŗ ęŗ±ęŗ¹ę»†ę»’ęŗ½ę»ęŗžę»‰ęŗ·ęŗ°ę»ęŗ¦ę»ęŗ²ęŗ¾ę»ƒę»œę»˜ęŗ™ęŗ’ęŗŽęŗęŗ¤ęŗ”ęŗæęŗ³ę»ę»Šęŗ—ęŗ®ęŗ£ē…‡ē…”ē…’ē…£ē… ē…ē…ē…¢ē…²ē…øē…Ŗē…”ē…‚ē…˜ē…ƒē…‹ē…°ē…Ÿē…ē…“"], - ["dea1", "ē…„ē…ē…šē‰ēŠēŠŒēŠ‘ēŠēŠŽēŒ¼ē‚ēŒ»ēŒŗē€ēŠē‰ē‘„ē‘Šē‘‹ē‘’ē‘‘ē‘—ē‘€ē‘ē‘ē‘Žē‘‚ē‘†ē‘ē‘”ē“”ē“æē“¾ē“½ē”ē•¹ē•·ę¦ƒē—Æē˜ē˜ƒē—·ē—¾ē—¼ē—¹ē—øē˜ē—»ē—¶ē—­ē—µē—½ēš™ēšµē›ē•ēŸē ē’ē–ēšē©ē§ē”ē™ē­ēŸ ē¢‡ē¢šē¢”ē¢ē¢„ē¢•ē¢…ē¢†ē¢”ē¢ƒē”¹ē¢™ē¢€ē¢–ē”»ē„¼ē¦‚ē„½ē„¹ēؑēؘēؙēؒēؗēؕēØ¢ēؓ"], - ["df40", "ē؛ēؐēŖ£ēŖ¢ēŖžē««ē­¦ē­¤ē­­ē­“ē­©ē­²ē­„ē­³ē­±ē­°ē­”ē­øē­¶ē­£ē²²ē²“ē²Æē¶ˆē¶†ē¶€ē¶ēµæē¶…ēµŗē¶Žēµ»ē¶ƒēµ¼ē¶Œē¶”ē¶„ēµ½ē¶’ē½­ē½«ē½§ē½Øē½¬ē¾¦ē¾„ē¾§ēæ›ēæœč€”č…¤č… č…·č…œč…©č…›č…¢č…²ęœ”č…žč…¶č…§č…Æ"], - ["dfa1", "č…„č…”čˆč‰‰č‰„č‰€č‰‚č‰…č“±čæč‘–č‘¶č‘¹č’č’č‘„č‘‘č‘€č’†č‘§č°č‘č‘½č‘šč‘™č‘“č‘³č‘č”‡č‘žč·čŗ萓č‘ŗ葃č‘øč²č‘…č©č™č‘‹čÆč‘‚č­č‘Ÿč‘°č¹č‘Žč‘Œč‘’č‘Æč“…č’Žč»č‘‡č¶č³č‘Øč‘¾č‘„č«č‘ č‘”č‘®č‘čœ‹čœ„č›·čœŒč›ŗč›–č›µčč›øčœŽčœ‰čœč›¶čœčœ…č£–č£‹č£č£Žč£žč£›č£šč£Œč£č¦…č¦›č§Ÿč§„č§¤"], - ["e040", "č§”č§ č§¢č§œč§¦č©¶čŖ†č©æč©”čØæč©·čŖ‚čŖ„詵čŖƒčŖč©“č©ŗč°¼č±‹č±Šč±„č±¤č±¦č²†č²„č²…č³ŒčµØčµ©č¶‘č¶Œč¶Žč¶č¶č¶“č¶”č¶č¶’č·°č· č·¬č·±č·®č·č·©č·£č·¢č·§č·²č·«č·“č¼†č»æč¼č¼€č¼…č¼‡č¼ˆč¼‚č¼‹é’é€æ"], - ["e0a1", "遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮é…Æ鉈鉒鈰éˆŗ鉦鈳鉄鉞銃鈮鉊鉆鉭鉬鉏鉠鉧é‰Æ鈶鉔鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎é›ŗ雽é›ø雵靳靷éø靲頏頍頎颬飶飹é¦Æ馲馰馵éŖ­éŖ«é­›é³Ŗ鳭鳧éŗ€é»½åƒ¦åƒ”僗åƒØ僳僛åƒŖ僝僤僓僬僰åƒÆ僣僠"], - ["e140", "凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂å—ŗ嘝嘄å—æ嗹墉唼墐墘墆墁å”æ唓墋å”ŗ墇墑墎唶墂墈唻墔墏壾儫嫜嫮嫄嫕å«Ŗ嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙å«Ø嫟孷åÆ "], - ["e1a1", "åƣ屣嶂嶀嵽嶆åµŗ嶁嵷嶊嶉嶈嵾嵼嶍嵹åµæ幘幙幓廘廑廗廎廜廕廙廒廔彄彃å½Æå¾¶ę„¬ę„Øę…ę…žę…±ę…³ę…’ę…“ę…²ę…¬ę†€ę…“ę…”ę…ŗꅛꅄꄻę…Ŗę…”ę…–ęˆ©ęˆ§ęˆ«ę«ę‘ę‘›ę‘ę‘“ę‘¶ę‘²ę‘³ę‘½ę‘µę‘¦ę’¦ę‘Žę’‚ę‘žę‘œę‘‹ę‘“ę‘ ę‘ę‘æęæę‘¬ę‘«ę‘™ę‘„ę‘·ę•³ę– ęš”ęš ęšŸęœ…ęœ„ęœ¢ę¦±ę¦¶ę§‰"], - ["e240", "ę¦ ę§Žę¦–ę¦°ę¦¬ę¦¼ę¦‘ę¦™ę¦Žę¦§ę¦ę¦©ę¦¾ę¦Æę¦æę§„ę¦½ę¦¤ę§”ę¦¹ę§Šę¦šę§ę¦³ę¦“ę¦Ŗę¦”ę¦žę§™ę¦—ę¦ę§‚ę¦µę¦„ę§†ę­Šę­ę­‹ę®žę®Ÿę® ęƃęƄęÆ¾ę»Žę»µę»±ę¼ƒę¼„ę»øę¼·ę»»ę¼®ę¼‰ę½Žę¼™ę¼šę¼§ę¼˜ę¼»ę¼’ę»­ę¼Š"], - ["e2a1", "ę¼¶ę½³ę»¹ę»®ę¼­ę½€ę¼°ę¼¼ę¼µę»«ę¼‡ę¼Žę½ƒę¼…ę»½ę»¶ę¼¹ę¼œę»¼ę¼ŗę¼Ÿę¼ę¼žę¼ˆę¼”ē†‡ē†ē†‰ē†€ē†…ē†‚ē†ē…»ē††ē†ē†—ē‰„ē‰“ēŠ—ēŠ•ēŠ“ēƒēē‘ēŒē‘¢ē‘³ē‘±ē‘µē‘²ē‘§ē‘®ē”€ē”‚ē”ƒē•½ē–ē˜–ē˜ˆē˜Œē˜•ē˜‘ē˜Šē˜”ēšøēžē¼ēž…ēž‚ē®ēž€ēÆē¾ēžƒē¢²ē¢Ŗē¢“ē¢­ē¢Øē”¾ē¢«ē¢žē¢„ē¢ ē¢¬ē¢¢ē¢¤ē¦˜ē¦Šē¦‹ē¦–ē¦•ē¦”ē¦“"], - ["e340", "ē¦—ē¦ˆē¦’ē¦ēØ«ē©ŠēØ°ēØÆēØØēئēŖØēŖ«ēŖ¬ē«®ē®ˆē®œē®Šē®‘ē®ē®–ē®ē®Œē®›ē®Žē®…ē®˜åŠ„ē®™ē®¤ē®‚ē²»ē²æē²¼ē²ŗē¶§ē¶·ē·‚ē¶£ē¶Ŗē·ē·€ē·…ē¶ē·Žē·„ē·†ē·‹ē·Œē¶Æē¶¹ē¶–ē¶¼ē¶Ÿē¶¦ē¶®ē¶©ē¶”ē·‰ē½³ēæ¢ēæ£ēæ„ēæž"], - ["e3a1", "č€¤ččœč†‰č††č†ƒč†‡č†č†Œč†‹čˆ•č’—č’¤č’”č’Ÿč’ŗč“Žč“‚č’¬č’®č’«č’¹č’“č“č“č’Ŗč’šč’±č“č’č’§č’»č’¢č’”č“‡č“Œč’›č’©č’Æč’Øč“–č’˜č’¶č“č’ č“—č“”č“’č“›č’°č’‘č™”čœ³čœ£čœØč«č€čœ®čœžčœ”čœ™čœ›čƒčœ¬ččœ¾č†čœ čœ²čœŖčœ­čœ¼čœ’čœŗčœ±čœµč‚čœ¦čœ§čœøčœ¤čœščœ°čœ‘č£·č£§č£±č£²č£ŗč£¾č£®č£¼č£¶č£»"], - ["e440", "č£°č£¬č£«č¦č¦”č¦Ÿč¦žč§©č§«č§ØčŖ«čŖ™čŖ‹čŖ’čŖčŖ–č°½č±Øč±©č³•č³č³—č¶–čø‰čø‚č·æčøč·½čøŠčøƒčø‡čø†čø…č·¾čø€čø„č¼č¼‘č¼Žč¼é„£é„œé„ é„¢é„Ÿé„é„šé„¤é„”鄛é…ŗ酲酹酳銄銤鉶銛é‰ŗ銠銔éŠŖ銍"], - ["e4a1", "銦銚銫鉹銗é‰æ銣鋮銎銂銕銢鉽銈銔銊銆銌銙銧鉾銇銩銝銋鈭隞隔é›æ靘靽éŗ靾鞃鞀鞂靻鞄鞁éæ韎韍頖颭颮餂餀餇馝馜駃馹馻é¦ŗ駂馽駇éŖ±é«£é«§é¬¾é¬æ魠魔魟鳱鳲鳵éŗ§åƒæ儃儰åƒø儆儇僶僾儋儌僽儊劋劌勱å‹Æ噈噂噌嘵噁噊噉噆噘"], - ["e540", "噚噀嘳嘽嘬嘾å˜øå˜Ŗå˜ŗ圚墫墝墱墠墣å¢Æ墬墄墔å£æå«æ嫓嫽嫷嫶嬃å«ø嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶔嶚嶞幩幝幠幜ē·³å»›å»žå»”å½‰å¾²ę†‹ę†ƒę…¹ę†±ę†°ę†¢ę†‰"], - ["e5a1", "ꆛꆓę†Æꆭꆟꆒę†Ŗę†”ę†ę…¦ę†³ęˆ­ę‘®ę‘°ę’–ę’ ę’…ę’—ę’œę’ę’‹ę’Šę’Œę’£ę’Ÿę‘Øę’±ę’˜ę•¶ę•ŗę•¹ę•»ę–²ę–³ęšµęš°ęš©ęš²ęš·ęšŖęšÆę؀ę؆ęØ—ę§„ę§øęØ•ę§±ę§¤ęØ ę§æę§¬ę§¢ę؛ęØę§¾ęØ§ę§²ę§®ęØ”ę§·ę§§ę©€ęØˆę§¦ę§»ęØę§¼ę§«ę؉ę؄ęؘęØ„ęØę§¶ęئęØ‡ę§“ęØ–ę­‘ę®„ę®£ę®¢ę®¦ę°ę°€ęÆæę°‚ę½ę¼¦ę½¾ę¾‡ęæ†ę¾’"], - ["e640", "ę¾ę¾‰ę¾Œę½¢ę½ę¾…ę½šę¾–ę½¶ę½¬ę¾‚ę½•ę½²ę½’ę½ę½—ę¾”ę¾“ę½ę¼€ę½”ę½«ę½½ę½§ę¾ę½“ę¾‹ę½©ę½æę¾•ę½£ę½·ę½Ŗę½»ē†²ē†Æē†›ē†°ē† ē†šē†©ē†µē†ē†„ē†žē†¤ē†”ē†Ŗē†œē†§ē†³ēŠ˜ēŠšē˜ē’ēžēŸē ēē›ē”ēšē™"], - ["e6a1", "ē¢ē’‡ē’‰ē’Šē’†ē’ē‘½ē’…ē’ˆē‘¼ē‘¹ē”ˆē”‡ē•¾ē˜„ē˜žē˜™ē˜ē˜œē˜£ē˜šē˜Øē˜›ēšœēšēšžēš›ēžēžēž‰ēžˆē£ē¢»ē£ē£Œē£‘ē£Žē£”ē£ˆē£ƒē£„ē£‰ē¦šē¦”ē¦ ē¦œē¦¢ē¦›ę­¶ēعēŖ²ēŖ“ēŖ³ē®·ēƋē®¾ē®¬ēƎē®Æē®¹ēƊē®µē³…ē³ˆē³Œē³‹ē··ē·›ē·Ŗē·§ē·—ē·”ēøƒē·ŗē·¦ē·¶ē·±ē·°ē·®ē·Ÿē½¶ē¾¬ē¾°ē¾­ēæ­ēæ«ēæŖēæ¬ēæ¦ēæØč¤č§č†£č†Ÿ"], - ["e740", "č†žč†•č†¢č†™č†—čˆ–č‰č‰“č‰’č‰č‰Žč‰‘č”¤č”»č”č”€č”©č”Žč”‰č”č”Ÿč”Šč”§č”œč“»č”«č“ŗč”ˆč”Œč““č”Ŗč“²č”•č“·č“«č“³č“¼č”’č“Ŗč“©č”–č“¾č”Øč”č”®č”‚č“½č”žč“¶č”±č”¦č“§č“Ø蓰č“Æč“¹č”˜č” č”°č”‹č”™č”Æč™¢"], - ["e7a1", "č–č£č¤č·čŸ”č³č˜č”č›č’č”čšč‘čžč­čŖ蝐蝎蝟蝝čÆč¬čŗč®čœč„čč»čµč¢č§č©č”šč¤…č¤Œč¤”č¤‹č¤—č¤˜č¤™č¤†č¤–č¤‘č¤Žč¤‰č¦¢č¦¤č¦£č§­č§°č§¬č«č«†čŖø諓諑諔諕čŖ»č«—čŖ¾č«€č«…č«˜č«ƒčŖŗčŖ½č«™č°¾č±č²č³„č³Ÿč³™č³Øč³šč³č³§č¶ č¶œč¶”č¶›čø čø£čø„čø¤čø®čø•čø›čø–čø‘čø™čø¦čø§"], - ["e840", "čø”čø’čø˜čø“čøœčø—čøšč¼¬č¼¤č¼˜č¼šč¼ č¼£č¼–č¼—é³é°éÆ遧遫é„Æ鄫鄩é„Ŗ鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌é‹Æ鋂é‹Ø鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"], - ["e8a1", "銵鋔鋆銓镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩é Ø頠頛頧颲餈é£ŗ餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌éŖ³é«¬é««é«³é«²é«±é­†é­ƒé­§é­“魱魦魶魵魰é­Ø魤魬鳼é³ŗé³½é³æ鳷铇铀鳹鳻铈铅铄éŗƒé»“鼏鼐儜儓儗儚儑凞匓叔噰噠噮"], - ["e940", "噳噦噣噭噲噞噷圜圛壈墽壉å¢æå¢ŗ壂墼壆嬗嬙嬛嬔嬔嬓嬐嬖å¬Ø嬚嬠嬞åÆÆ嶬嶱嶩嶧嶵嶰嶮å¶Ŗå¶Ø嶲嶭å¶Æ嶓幧å¹Ø幦å¹Æ廩廧廦å»Øå»„å½‹å¾¼ę†ę†Øę†–ę‡…ę†“ę‡†ę‡ę‡Œę†ŗ"], - ["e9a1", "ę†æę†øę†Œę“—ę“–ę“ę“ę“‰ę’½ę’‰ę“ƒę“›ę“³ę“™ę”³ę•æę•¼ę–¢ę›ˆęš¾ę›€ę›Šę›‹ę›ęš½ęš»ęšŗę›Œęœ£ęØ“ę©¦ę©‰ę©§ęزę©ØęØ¾ę©ę©­ę©¶ę©›ę©‘ęØØę©šęØ»ęØæꩁę©Ŗę©¤ę©ę©ę©”ę©Æę©©ę© ęØ¼ę©žę©–ę©•ę©ę©Žę©†ę­•ę­”ę­–ę®§ę®ŖꮫęƈęÆ‡ę°„ę°ƒę°†ę¾­ęæ‹ę¾£ęæ‡ę¾¼ęæŽęæˆę½žęæ„ę¾½ę¾žęæŠę¾Øē€„ę¾„ę¾®ę¾ŗę¾¬ę¾Ŗęæę¾æę¾ø"], - ["ea40", "ę¾¢ęæ‰ę¾«ęæę¾Æę¾²ę¾°ē‡…ē‡‚ē†æē†øē‡–ē‡€ē‡ē‡‹ē‡”ē‡Šē‡‡ē‡ē†½ē‡˜ē†¼ē‡†ē‡šē‡›ēŠēŠžē©ē¦ē§ē¬ē„ē«ēŖē‘æē’šē’ ē’”ē’’ē’•ē’”ē”‹ē–€ē˜Æē˜­ē˜±ē˜½ē˜³ē˜¼ē˜µē˜²ē˜°ēš»ē›¦ēžšēžēž”ēžœēž›ēž¢ēž£ēž•ēž™"], - ["eaa1", "ēž—ē£ē£©ē£„ē£Ŗē£žē££ē£›ē£”ē£¢ē£­ē£Ÿē£ ē¦¤ē©„ē©ˆē©‡ēŖ¶ēŖøēŖµēŖ±ēŖ·ēƞēÆ£ēƧēƝēƕēÆ„ēƚēÆØēƹēƔēÆŖēÆ¢ēƜēÆ«ēƘēƟē³’ē³”ē³—ē³ē³‘ēø’ēø”ēø—ēøŒēøŸēø ēø“ēøŽēøœēø•ēøšēø¢ēø‹ēøēø–ēøēø”ēø„ēø¤ē½ƒē½»ē½¼ē½ŗē¾±ēæÆč€Ŗč€©č¬č†±č†¦č†®č†¹č†µč†«č†°č†¬č†“č†²č†·č†§č‡²č‰•č‰–č‰—č•–č•…č•«č•č•“č•”č•˜"], - ["eb40", "č•€č•†č•¤č•č•¢č•„č•‘č•‡č•£č”¾č•›č•±č•Žč•®č•µč••č•§č• č–Œč•¦č•č•”č•„č•¬č™£č™„č™¤čž›čžčž—čž“čž’čžˆčžčž–čž˜č¹čž‡čž£čž…čžčž‘čžčž„čž”čžœčžščž‰č¤žč¤¦č¤°č¤­č¤®č¤§č¤±č¤¢č¤©č¤£č¤Æč¤¬č¤Ÿč§±č« "], - ["eba1", "č«¢č«²č«“č«µč«č¬”č«¤č«Ÿč«°č«ˆč«žč«”č«Øč«æč«Æč«»č²‘č²’č²č³µč³®č³±č³°č³³čµ¬čµ®č¶„č¶§čø³čø¾čøøč¹€č¹…čø¶čø¼čø½č¹čø°čøæčŗ½č¼¶č¼®č¼µč¼²č¼¹č¼·č¼“遶遹遻邆éƒŗ鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏éŗéŒø錼錛錣錒錁鍆錭錎錍鋋錝é‹ŗ錄錓鋹鋷錓錂錤é‹æ錩錹錵éŒŖ錔錌"], - ["ec40", "錋鋾錉錀鋻錖閼闍閾閹é–ŗ閶é–æ閵閽隩雔霋霒霐鞙鞗鞔韰éŸøé µé Æ頲餤餟餧餩馞駮駬駄駤駰駣é§Ŗ駩駧éŖ¹éŖæéŖ“éŖ»é«¶é«ŗ髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐é­ŗ鮕"], - ["eca1", "魽鮈铄铗铠铞铔铩铝铘铢铐铙铟éŗˆéŗ†éŗ‡éŗ®éŗ­é»•é»–é»ŗ鼒鼽儦億儢儤儠儩勓嚓嚌嚍嚆嚄嚃噾嚂å™æ嚁壖壔壏壒嬭嬄嬲嬣嬬嬧嬦å¬Æ嬮孻åƱåƲ嶷幬å¹Ŗå¾¾å¾»ę‡ƒę†µę†¼ę‡§ę‡ ę‡„ę‡¤ę‡Øꇞę“Æę“©ę“£ę“«ę“¤ę“ØꖁꖀꖶꗚꛒęŖęŖ–ęŖęŖ„ęŖ‰ęŖŸęŖ›ęŖ”ęŖžęŖ‡ęŖ“ęŖŽ"], - ["ed40", "ęŖ•ęŖƒęŖØęŖ¤ęŖ‘ę©æęŖ¦ęŖšęŖ…ęŖŒęŖ’꭛ꮭ갉ęæŒę¾©ęæ“ęæ”ęæ£ęæœęæ­ęæ§ęæ¦ęæžęæ²ęæęæ¢ęæØē‡”ē‡±ē‡Øē‡²ē‡¤ē‡°ē‡¢ē³ē®ēÆē’—ē’²ē’«ē’ē’Ŗē’­ē’±ē’„ē’Æē”ē”‘ē”’ē”ē–„ē™ƒē™ˆē™‰ē™‡ēš¤ē›©ēžµēž«ēž²ēž·ēž¶"], - ["eda1", "ēž“ēž±ēžØēŸ°ē£³ē£½ē¤‚ē£»ē£¼ē£²ē¤…ē£¹ē£¾ē¤„ē¦«ē¦Øē©œē©›ē©–ē©˜ē©”ē©šēŖ¾ē«€ē«ē°…ē°ēƲē°€ēÆæēÆ»ē°ŽēÆ“ē°‹ēƳē°‚ē°‰ē°ƒē°ēÆøēƽē°†ēÆ°ēƱē°ē°Šē³Øēø­ēø¼ē¹‚ēø³é”ˆēøøēøŖē¹‰ē¹€ē¹‡ēø©ē¹Œēø°ēø»ēø¶ē¹„ēøŗē½…ē½æē½¾ē½½ēæ“ēæ²č€¬č†»č‡„č‡Œč‡Šč‡…č‡‡č†¼č‡©č‰›č‰šč‰œč–ƒč–€č–č–§č–•č– č–‹č–£č•»č–¤č–šč–ž"], - ["ee40", "č•·č•¼č–‰č–”č•ŗč•øč•—č–Žč––č–†č–č–™č–č–č–¢č–‚č–ˆč–…č•¹č•¶č–˜č–č–Ÿč™Øčž¾čžŖčž­čŸ…čž°čž¬čž¹čžµčž¼čž®čŸ‰čŸƒčŸ‚čŸŒčž·čžÆčŸ„čŸŠčž“čž¶čžæčžøčž½čŸžčž²č¤µč¤³č¤¼č¤¾č„č„’č¤·č„‚č¦­č¦Æč¦®č§²č§³č¬ž"], - ["eea1", "č¬˜č¬–č¬‘č¬…č¬‹č¬¢č¬č¬’č¬•č¬‡č¬č¬ˆč¬†č¬œč¬“č¬šč±č±°č±²č±±č±Æč²•č²”č³¹čµÆč¹Žč¹č¹“č¹č¹Œč¹‡č½ƒč½€é‚…é¾é„ø醚醢醛醙醟醔醝醠鎔鎃éŽÆ鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌éŖ鍹鍗鍕鍒鍏鍱鍷鍻鍔鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞔鞜"], - ["ef40", "鞞鞝韕韔韱锁锄锊锉锅锃餄餫餬é¤Ŗ餳餲é¤Æ餭餱餰馘馣馔é؂é§ŗ駓駷駹é§ø駶駻駽駾駼é؃éŖ¾é«¾é«½é¬é«¼é­ˆé®šé®Ø鮞鮛鮦鮔鮄鮤鮆鮢鮠é®Æ铳鵁鵧银铮é“Æ铱é“øé“°"], - ["efa1", "鵅鵂鵃链铷鵀铽ēæµé“­éŗŠéŗ‰éŗéŗ°é»ˆé»šé»»é»æ鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙儰嬼屩å±Ŗå·€å¹­å¹®ę‡˜ę‡Ÿę‡­ę‡®ę‡±ę‡Ŗꇰꇫꇖꇩę“æę”„ę“½ę“øę”ę”ƒę“¼ę–”ę—›ę›šę››ę›˜ę«…ęŖ¹ęŖ½ę«”꫆ęŖŗęŖ¶ęŖ·ę«‡ęŖ“ęŖ­ę­žęÆ‰ę°‹ē€‡ē€Œē€ē€ē€…ē€”ē€Žęææē€€ęæ»ē€¦ęæ¼ęæ·ē€Šēˆē‡æē‡¹ēˆƒē‡½ē¶"], - ["f040", "ē’øē“€ē’µē“ē’¾ē’¶ē’»ē“‚ē””ē”“ē™œē™¤ē™™ē™ē™“ē™—ē™šēš¦ēš½ē›¬ēŸ‚ēžŗē£æē¤Œē¤“ē¤”ē¤‰ē¤ē¤’ē¤‘ē¦­ē¦¬ē©Ÿē°œē°©ē°™ē° ē°Ÿē°­ē°ē°¦ē°Øē°¢ē°„ē°°ē¹œē¹ē¹–ē¹£ē¹˜ē¹¢ē¹Ÿē¹‘ē¹ ē¹—ē¹“ē¾µē¾³ēæ·ēæø聵臑臒"], - ["f0a1", "č‡č‰Ÿč‰žč–“č—†č—€č—ƒč—‚č–³č–µč–½č—‡č—„č–æč—‹č—Žč—ˆč—…č–±č–¶č—’č˜¤č–øč–·č–¾č™©čŸ§čŸ¦čŸ¢čŸ›čŸ«čŸŖčŸ„čŸŸčŸ³čŸ¤čŸ”čŸœčŸ“čŸ­čŸ˜čŸ£čž¤čŸ—čŸ™č čŸ“čŸØčŸč„“č„‹č„č„Œč„†č„č„‘č„‰č¬Ŗč¬§č¬£č¬³č¬°č¬µč­‡č¬Æč¬¼č¬¾č¬±č¬„č¬·č¬¦č¬¶č¬®č¬¤č¬»č¬½č¬ŗč±‚č±µč²™č²˜č²—č³¾č“„č“‚č“€č¹œč¹¢č¹ č¹—č¹–č¹žč¹„č¹§"], - ["f140", "č¹›č¹šč¹”č¹č¹©č¹”č½†č½‡č½ˆč½‹é„Øé„ŗ鄻鄾é†Ø醄醧é†Æé†Ŗ鎵鎌鎒鎷鎛鎝鎉鎧鎎éŽŖ鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤éŽØ鎓鎣鎄闒闓闑隳雗雚巂雟雘雝霣霢霄鞬鞮éžØ鞫鞤éžŖ"], - ["f1a1", "鞢鞄韗韙韖韘éŸŗ锐锑锒é¢ø鄁餼é¤ŗé؏é؋é؉é؍é؄éؑé؊é؅é؇é؆髀髜鬈鬄鬅鬩鬵魊魌魋éƇéƆéƃé®æéƁ鮵é®øéƓ鮶éƄ鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚éŗŽéŗŒé»Ÿé¼é¼€é¼–鼄鼫é¼Ŗ鼩é¼Ø齌齕儓儵劖勷厓嚫嚭嚦嚧åšŖ嚬壚壝壛夒嬽嬾å¬æ巃幰"], - ["f240", "å¾æę‡»ę”‡ę”ę”ę”‰ę”Œę”Žę–„ę—žę—ę›žę«§ę« ę«Œę«‘ę«™ę«‹ę«Ÿę«œę«ę««ę«ę«ę«žę­ ę®°ę°Œē€™ē€§ē€ ē€–ē€«ē€”ē€¢ē€£ē€©ē€—ē€¤ē€œē€ŖēˆŒēˆŠēˆ‡ēˆ‚ēˆ…ēŠ„ēŠ¦ēŠ¤ēŠ£ēŠ”ē“‹ē“…ē’·ē“ƒē”–ē™ ēŸ‰ēŸŠēŸ„ēŸ±ē¤ē¤›"], - ["f2a1", "ē¤”ē¤œē¤—ē¤žē¦°ē©§ē©Øē°³ē°¼ē°¹ē°¬ē°»ē³¬ē³Ŗē¹¶ē¹µē¹øē¹°ē¹·ē¹Æē¹ŗē¹²ē¹“ē¹Øē½‹ē½Šē¾ƒē¾†ē¾·ēæ½ēæ¾čøč‡—č‡•č‰¤č‰”č‰£č—«č—±č—­č—™č—”č—Øč—šč——č—¬č—²č—øč—˜č—Ÿč—£č—œč—‘č—°č—¦č—Æč—žč—¢č €čŸŗč ƒčŸ¶čŸ·č ‰č Œč ‹č †čŸ¼č ˆčŸæč Šč ‚č„¢č„šč„›č„—č„”č„œč„˜č„č„™č¦ˆč¦·č¦¶č§¶č­č­ˆč­Šč­€č­“č­–č­”č­‹č­•"], - ["f340", "č­‘č­‚č­’č­—č±ƒč±·č±¶č²šč“†č“‡č“‰č¶¬č¶Ŗč¶­č¶«č¹­č¹øč¹³č¹Ŗč¹Æč¹»č»‚č½’č½‘č½č½č½“č¾“é…€é„æ醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雔霩霫霬éœØ霦"], - ["f3a1", "鞳鞷鞶韝韞韟锜错锝锗é¢æ颽颻颾鄈鄇鄃馦馧éؚéؕéØ„é؝éؤé؛éØ¢éØ éاéØ£é؞é؜éؔ髂鬋鬊鬎鬌鬷éÆŖéÆ«éÆ éƞéƤéƦéÆ¢éÆ°éƔéƗéƬéƜéƙéÆ„éƕéÆ”éƚ鵷鶁鶊鶄鶈鵱鶀éµø鶆鶋鶌鵽鵫鵓鵵鵰鵩鶅鵳鵻鶂éµÆéµ¹éµæ鶇éµØéŗ”éŗ‘黀黼鼭齀齁齍齖齗齘匷嚲"], - ["f440", "嚵嚳壣孅巆巇廮å»Æåæ€åæę‡¹ę”—ę”–ę”•ę”“ę—Ÿę›Øę›£ę›¤ę«³ę«°ę«Ŗę«Øę«¹ę«±ę«®ę«Æē€¼ē€µē€Æē€·ē€“ē€±ē‚ē€øē€æē€ŗē€¹ē€ē€»ē€³ēēˆ“ēˆ”ēŠØē½ē¼ē’ŗēš«ēšŖēš¾ē›­ēŸŒēŸŽēŸēŸēŸ²ē¤„ē¤£ē¤§ē¤Øē¤¤ē¤©"], - ["f4a1", "ē¦²ē©®ē©¬ē©­ē«·ē±‰ē±ˆē±Šē±‡ē±…ē³®ē¹»ē¹¾ēŗēŗ€ē¾ŗēææč¹č‡›č‡™čˆ‹č‰Øč‰©č˜¢č—æč˜č—¾č˜›č˜€č—¶č˜„č˜‰č˜…č˜Œč—½č ™č č ‘č —č “č –č„£č„¦č¦¹č§·č­ č­Ŗ譝č­Øč­£č­„č­§č­­č¶®čŗ†čŗˆčŗ„č½™č½–č½—č½•č½˜č½šé‚é…ƒé…é†·é†µé†²é†³é‹é“é»é éé”é¾é•ééØ鐙鐍鏵鐀鏷鐇鐎鐖鐒éŗ鐉éø鐊éæ"], - ["f540", "鏼鐌鏶鐑鐆闞闠闟霮éœÆ鞹鞻韽韾锠锢锣锟飁飂鄐鄎鄙鄌鄋鄓éزéØ“éرéجéØŖéضéØ©éØ®éØøéح髇髊髆鬐鬒鬑鰋鰈éƷ鰅鰒éÆø鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"], - ["f5a1", "鶠鶔鶜é¶Ŗ鶗鶔鶚鶢é¶Ø鶞鶣é¶æ鶩鶖鶦鶧éŗ™éŗ›éŗšé»„黤黧黦鼰鼮齛齠齞齝齙龑å„ŗå„¹åŠ˜åŠ—å›ƒåš½åš¾å­ˆå­‡å·‹å·å»±ę‡½ę”›ę¬‚ę«¼ę¬ƒę«ø꬀ēƒē„ēŠēˆē‰ē…ē†ēˆēˆšēˆ™ē¾ē”—ē™ŖēŸē¤­ē¤±ē¤Æē±”ē±“ē³²ēŗŠēŗ‡ēŗˆēŗ‹ēŗ†ēŗē½ē¾»č€°č‡č˜˜č˜Ŗč˜¦č˜Ÿč˜£č˜œč˜™č˜§č˜®č˜”č˜ č˜©č˜žč˜„"], - ["f640", "č ©č č ›č  č ¤č œč «č”Šč„­č„©č„®č„«č§ŗč­¹č­ø譅č­ŗ譻蓐蓔č¶ÆčŗŽčŗŒč½žč½›č½é…†é…„酅醹éæ鐻鐶鐩鐽鐼鐰鐹éŖ鐷鐬鑀鐱闄闤闣霵éœŗéžæ韔锤飉飆飀鄘鄖éعéؽ驆驄驂驁éØŗ"], - ["f6a1", "éØæ髍鬕鬗鬘鬖é¬ŗ魒鰫鰝鰜鰬鰣é°Ø鰩鰤鰔鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹é¶ŗ鶬鷈鶱鶭鷌鶳鷍鶲é¹ŗéŗœé»«é»®é»­é¼›é¼˜é¼šé¼±é½Žé½„齤龒äŗ¹å›†å›…å›‹å„±å­‹å­Œå·•å·‘å»²ę””ę” ę”¦ę”¢ę¬‹ę¬ˆę¬‰ę°ē•ē–ē—ē’ēˆžēˆŸēŠ©ēæē“˜ē“•ē“™ē“—ē™­ēš­ē¤µē¦“ē©°ē©±ē±—ē±œē±™ē±›ē±š"], - ["f740", "ē³“ē³±ēŗ‘ē½ē¾‡č‡žč‰«č˜“č˜µč˜³č˜¬č˜²č˜¶č ¬č Øč ¦č Ŗ蠄脱č¦æč¦¾č§»č­¾č®„č®‚č®†č®…č­æč“•čŗ•čŗ”čŗščŗ’čŗčŗ–čŗ—č½ č½¢é…‡é‘Œé‘é‘Šé‘‹é‘é‘‡é‘…é‘ˆé‘‰é‘†éœæ韣é”Ŗ锩飋鄔鄛驎驓驔驌驏驈驊"], - ["f7a1", "驉驒驐髐鬙鬫鬻魖魕鱆鱈é°æ鱄鰹鰳鱁鰼鰷鰓鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝éŗ¶é»°é¼µé¼³é¼²é½‚齫龕龢儽劙å£Ø壧儲孍巘č Æå½ęˆęˆƒęˆ„ę”©ę”„ę––ę›«ę¬‘ę¬’ę¬ęƊē›ēšēˆ¢ēŽ‚ēŽēŽƒē™°ēŸ”ē±§ē±¦ēŗ•č‰¬č˜ŗč™€č˜¹č˜¼č˜±č˜»č˜¾č °č ²č ®č ³č„¶č„“č„³č§¾"], - ["f840", "č®Œč®Žč®‹č®ˆč±…č“™čŗ˜č½¤č½£é†¼é‘¢é‘•é‘é‘—鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷é·Æ鷣鷫é·ø鷤鷶鷔鷮鷦鷲鷰鷢鷬鷓鷳é·Ø鷭黂黐黲黳鼆鼜é¼ø鼷鼶齃齏"], - ["f8a1", "齱齰齮é½Æå›“å›å­Žå±­ę”­ę›­ę›®ę¬“ēŸē”ēē ēˆ£ē“›ē“„ēŸ•ē¤øē¦·ē¦¶ē±Ŗēŗ—ē¾‰č‰­č™ƒč ø蠷蠵蔋讔讕čŗžčŗŸčŗ čŗé†¾é†½é‡‚é‘«é‘Ø鑩雄靆靃靇韇韄驞髕魙鱣鱧鱦鱢鱞鱠éø‚é·¾éø‡éøƒéø†éø…éø€éøéø‰é·æé·½éø„éŗ é¼žé½†é½“é½µé½¶å›”ę”®ę–øę¬˜ę¬™ę¬—ę¬šē¢ēˆ¦ēŠŖēŸ˜ēŸ™ē¤¹ē±©ē±«ē³¶ēŗš"], - ["f940", "ēŗ˜ēŗ›ēŗ™č‡ č‡”č™†č™‡č™ˆč„¹č„ŗč„¼č„»č§æč®˜č®™čŗ„čŗ¤čŗ£é‘®é‘­é‘Æ鑱鑳靉锲鄟é±Ø鱮鱭éø‹éøéøéøéø’éø‘éŗ”黵鼉齇é½øé½»é½ŗ齹圞ē¦ē±Æč ¼č¶²čŗ¦é‡ƒé‘“é‘ø鑶鑵驠鱓鱳鱱鱵éø”éø“黶鼊"], - ["f9a1", "龤ēØē„ē³·č™Ŗč ¾č ½č æč®žč²œčŗ©č»‰é‹é”³é”“飌鄔馫驤驦驧鬤éø•éø—é½ˆęˆ‡ę¬žēˆ§č™ŒčŗØ钂钀钁驩é©Ø鬮éø™ēˆ©č™‹č®Ÿé’ƒé±¹éŗ·ē™µé©«é±ŗéøē©ēŖéŗ¤é½¾é½‰é¾˜ē¢éŠ¹č£å¢»ę’ē²§å«ŗā•”ā•¦ā•—ā• ā•¬ā•£ā•šā•©ā•ā•’ā•¤ā••ā•žā•Ŗā•”ā•˜ā•§ā•›ā•“ā•„ā•–ā•Ÿā•«ā•¢ā•™ā•Øā•œā•‘ā•ā•­ā•®ā•°ā•Æā–“"] - ]; -}); - -// node_modules/iconv-lite/encodings/tables/big5-added.json -var require_big5_added = __commonJS((exports, module) => { - module.exports = [ - ["8740", "䏰䰲䘃䖦ä•ø\uD85C\uDE67䵷䖳\uD85F\uDCB1ä³¢\uD85F\uDCC5ć®•äœ¶ä„ä±‡ä±€\uD850\uDEBF\uD84D\uDE17\uD85C\uDF52\uD85B\uDE8B\uD85C\uDCD2䱗\uD868\uDF51䝏䗚䲅\uD85F\uDC6C䓇äŖ¤äš”\uD85A\uDF23ēˆ„\uD856\uDE54\uD846\uDE63\uD84F\uDE06\uD84F\uDF61ę™å›»"], - ["8767", "ē¶•å¤\uD862\uDFB9ć·“éœ“\uD85E\uDFEFåƛ\uD847\uDD5EåŖ¤ć˜„\uD867\uDEB0å«‘å®·å³¼ę®č–“\uD866\uDD45ē‘”ē’ć”µ\uD847\uDD53\uD84D\uDE9E\uD858\uDC21滬"], - ["87a1", "\uD856\uDCDE櫵ē«¼é¾—\uD850\uDD61\uD862\uDD0D\uD84C\uDDEA\uD842\uDE8A\uD84C\uDE5EäŒŠč’„é¾–éÆä¤°č˜“å¢–éŠéˆ˜ē§ēØ²ę™ ęØ©č¢ē‘ŒēÆ…ęž‚ēØ¬å‰é†ć“¦ē„\uD857\uDDB9ē“†éæ‡åž³ä¤Æ呌䄱\uD84D\uDE8E堘ē©²\uD85E\uDF65č®äš®\uD85B\uDE88䆁\uD857\uDD99ē®®\uD849\uDCBCéæˆ\uD849\uDCC1\uD849\uDCC9\uD849\uDCCCéæ‰č”„\uD84D\uDDBBä‚“éæŠä“”\uD86B\uDDFFꋁē®éæ‹"], - ["8840", "懀", 4, "\uD840\uDD0C懅\uD840\uDCD1\uD840\uDCCD懆懇\uD840\uDCCB\uD847\uDFE8懈\uD840\uDCCA應懊懋懌\uD840\uDD0E懍懎ĀƁĒĆ€Ä’Ć‰ÄšĆˆÅŒĆ“Ē‘Ć’ąææƊĢ„įŗ¾ąææƊĢŒį»€ĆŠÄĆ”ĒŽĆ É‘Ä“Ć©Ä›ĆØÄ«Ć­ĒĆ¬ÅĆ³Ē’Ć²Å«ĆŗĒ”Ć¹Ē–Ē˜Ēš"], - ["88a1", "ĒœĆ¼ąææĆŖĢ„įŗæąææĆŖĢŒį»ĆŖÉ”āšā›"], - ["8940", "\uD868\uDFA9\uD844\uDD45"], - ["8943", "ꔊ"], - ["8946", "äø½ę»éµŽé‡Ÿ"], - ["894c", "\uD85D\uDF35ę’‘ä¼šä¼Øä¾Ø兖兓农凤劔åŠØ医华发变团声处备夲夓学实実岚åŗ†ę€»ę–‰ęŸ¾ę „ꔄ굎ē‚¼ē”µēŗ¤ēŗ¬ēŗŗē»‡ē»ē»Ÿē¼†ē¼·č‰ŗ苏čÆč§†č®¾čÆ¢č½¦č½§č½®"], - ["89a1", "ē‘ē³¼ē·ę„†ē«‰åˆ§"], - ["89ab", "醌ē¢øé…žč‚¼"], - ["89b0", "č“‹čƒ¶\uD842\uDDE7"], - ["89b5", "č‚Ÿé»‡ä³é·‰éøŒä°¾\uD867\uDDF6\uD85C\uDC0EéøŠ\uD868\uDD33旁"], - ["89c1", "ęŗščˆ¾ē”™"], - ["89c5", "䤑马éŖé¾™ē¦‡\uD861\uDC6C\uD847\uDDCA\uD841\uDDD0\uD84A\uDEE6äø¤äŗäŗ€äŗ‡äŗæä»«ä¼·ć‘Œä¾½ć¹ˆå€ƒå‚ˆć‘½ć’“ć’„å††å¤…å‡›å‡¼åˆ…äŗ‰å‰¹åŠåŒ§ć—‡åŽ©ć•‘åŽ°ć•“å‚å£ć•­ć•²ćšå’“å’£å’“咹哐å“Æ唘唣å”Ø斘å”æć–„ć–æå——ć—…"], - ["8a40", "\uD85F\uDD84唄"], - ["8a43", "\uD843\uDC42\uD843\uDD15\uD854\uDD2B喐\uD84B\uDCC6槬\uD840\uDF41č¹†\uD853\uDDB8\uD865\uDCE5䁓\uD860\uDCBEēŗ\uD84B\uDC38ćؓ䟕\uD860\uDD5D\uD85A\uDDF2\uD853\uDDEAꓝ\uD843\uDD7C\uD843\uDFB4\uD843\uDCD5\uD844\uDCF4ę’č¹¾\uD843\uDE96\uD843\uDC0B\uD843\uDF64\uD84B\uDCA9\uD860\uDE56\uD851\uDCD3"], - ["8a64", "\uD843\uDD46\uD866\uDE4D\uD860\uDCE9䟓\uD853\uDEA7\uD84B\uDCC2éŖ²ć©§\uD865\uDDF4ćæ­ć”†\uD854\uDEC7\uD865\uDFD4\uD85E\uDCC8\uD84B\uDD44鵮頕"], - ["8a76", "䏙\uD858\uDCA5ę’“å“£\uD84B\uDD4C\uD84A\uDFCA\uD844\uDC77槻\uD844\uDC6F"], - ["8aa1", "\uD859\uDEDA\uD859\uDF16\uD85E\uDDA0ę“Ŗ\uD854\uDC52\uD843\uDC43č¹Ø\uD848\uDDA1\uD862\uDF4C\uD841\uDF31"], - ["8aac", "䠋\uD840\uDDA9ćæŗ唳\uD84B\uDD8D"], - ["8ab2", "\uD851\uDDC8\uD841\uDCFC\uD858\uDC97\uD843\uDF4C\uD843\uDD96啹䂻äŽŗ"], - ["8abb", "äŖ“\uD84A\uDE66\uD844\uDC9Dč†Ŗ飵\uD843\uDD9Cę¹ć§¾\uD849\uDF75č·€åš”ę‘¼ć¹ƒ"], - ["8ac9", "\uD869\uDE01\uD843\uDE09\uD84A\uDECF\uD84B\uDCC9"], - ["8ace", "\uD844\uDCC8\uD84E\uDDC2榒ć؆\uD860\uDE9Bć•ø\uD857\uDE49\uD848\uDCC7噒\uD843\uDF31\uD84B\uDCB2\uD865\uDF20ć’¼ę°½\uD853\uDE3B"], - ["8adf", "\uD85D\uDD74\uD84B\uDE8B\uD848\uDE08\uD869\uDE5B\uD863\uDCCD\uD843\uDE7A\uD843\uDC34\uD85A\uDC1Cē¾“\uD844\uDCCF\uD84A\uDC03\uD84A\uDD39ć—»\uD854\uDDE3\uD843\uDE8C\uD843\uDF8D\uD843\uDEAAć¾“\uD843\uDF30\uD843\uDD47\uD844\uDD4F\uD843\uDE4C"], - ["8af6", "\uD843\uDEAB\uD842\uDFA9\uD843\uDD48\uD844\uDCC0\uD844\uDD3Dćæ¹\uD849\uDE96ę²\uD843\uDFAD"], - ["8b40", "\uD84C\uDFF4\uD85D\uDE39\uD84A\uDFCE\uD843\uDD7E\uD843\uDD7F\uD84B\uDC51\uD84B\uDC55ćؘ\uD843\uDE98\uD844\uDCC7\uD843\uDF2E\uD869\uDE32\uD85A\uDF50\uD863\uDCD2\uD863\uDD99\uD863\uDCCAé–Ŗå“Œč‹„å–¹"], - ["8b55", "\uD867\uDEC3é°¦éŖ¶\uD85D\uDF5E\uD84B\uDDEEē…€č…­čƒ¬å°œ\uD859\uDD72č„“ćž—åŸ\uD860\uDCBD醶\uD843\uDEFA\uD843\uDE0F\uD843\uDE77\uD843\uDEFB旝\uD853\uDDEB昉\uD843\uDCD6åšÆ\uD849\uDFB5\uD844\uDCC9\uD843\uDE10\uD843\uDE78\uD844\uDC78\uD844\uDD48\uD860\uDE07\uD845\uDC55\uD843\uDE79\uD853\uDE50\uD84B\uDDA4婔\uD844\uDC1D\uD844\uDC1E\uD844\uDCF5\uD844\uDCF6垜\uD843\uDE11"], - ["8ba1", "\uD85D\uDE94\uD860\uDECD\uD843\uDFB5\uD843\uDE7B\uD854\uDD7E會\uD843\uDFB6\uD844\uDD80\uD854\uDED8\uD868\uDEBD\uD852\uDDDA\uD846\uDC3A\uD850\uDD77\uD860\uDE7C墙å‰Ø昚\uD855\uDF3Dē®²å­Ø䠀䬬鼧䧧鰟鮍\uD856\uDF74\uD84C\uDD3Då—»ć—²åš‰äøØ夂\uD846\uDFC1\uD87E\uDC78靑\uD840\uDC86乛äŗ»ć”¾å°£å½‘åæ„ć£ŗę‰Œę”µę­ŗę°µę°ŗē¬ēˆ«äø¬ēŠ­\uD852\uDCE9ē½’ē¤»ē³¹ē½“\uD858\uDE6A擁"], - ["8bde", "\uD858\uDF4B耂肀\uD859\uDE12\uD85A\uDD51åč”¤č§\uD85E\uDCB2č® č“é’…é•øé•æé—Ø\uD863\uDE0F韦锵风飞鄣\uD866\uDC10é±¼éøŸé»„ę­Æļ¤‡äø·\uD840\uDC87é˜ęˆ·é’¢"], - ["8c40", "å€»ę·¾\uD867\uDC73é¾¦ć·‰č¢\uD850\uDD4Eē·å³µä¬ \uD854\uDDCD教\uD857\uDD30ę„¢\uD862\uDE32č¾§é‡¶ē†‘ęœ™ēŽŗ\uD84C\uDE81\uD868\uDD07ć²‹\uD846\uDD80䬐ē£¤ē‚冮\uD861\uDF0Fä€‰ę©£\uD868\uDEBAäˆ£č˜\uD842\uDE6FēØŖ\uD866\uDD47\uD862\uDEEA靕ēåŒ¤\uD848\uDC7E鏓ē›™\uD862\uDDE3龧ēŸäŗ£äæ°å‚¼äøÆ众é¾Ø吓ē¶‹å¢’壐\uD847\uDDB6åŗ’åŗ™åæ‚\uD849\uDF12ꖋ"], - ["8ca1", "\uD84C\uDFF9ę¤™ę©ƒ\uD84F\uDC63ę³æ"], - ["8ca7", "ēˆ€\uD851\uDD05ēŽŒć»›\uD852\uDE13嬕ē’¹č®ƒ\uD857\uDCA4\uD855\uDE95ēŖ“ēƬē³ƒē¹¬č‹øč–—é¾©č¢é¾Ŗčŗ¹é¾«čæč•Ÿé§ éˆ”龬\uD863\uDDB9\uD845\uDC3F䁱䊢åؚ"], - ["8cc9", "é”Øę«ä‰¶åœ½"], - ["8cce", "藖\uD852\uDD7BčŠæ\uD85C\uDD0D䲁\uD85B\uDD74åµ»\uD85A\uDF15\uD85B\uDFBE龭龮宖é¾Æꛧē¹›ę¹—ē§Šć¶ˆä“ƒ\uD84C\uDE56\uD849\uDF96䎚䔶"], - ["8ce6", "峕\uD84E\uDF1Ač«¹å±øć“’\uD84D\uDD51åµøé¾²ē…—䕘\uD850\uDCEC\uD847\uDE23ä±·ć„ø摊\uD840\uDDA4\uD85B\uDC41č«Œä¾“\uD840\uDE39å¦æ腬锖\uD866\uDCFAå¼»"], - ["8d40", "\uD842\uDF9F"], - ["8d42", "\uD848\uDDC1\uD862\uDD6D䄂䚻\uD864\uDC79ć¼‡é¾³\uD868\uDDB5äƒøćŸ–ä›·\uD85B\uDC46䅼\uD861\uDEB2\uD85C\uDFFFä•­ć£”\uD855\uDC9A䕔䔛䶉䱻䵶ä—Ŗćæˆ\uD852\uDF0Fć™”ä“žä’½ä‡­å“¾åµˆåµ–ć·¼ć å¶¤å¶¹ć  ć ø幂åŗ½å¼„å¾ƒć¤ˆć¤”ć¤æć„ęƒ—ę„½å³„ć¦‰ę†·ę†¹ę‡ć¦øęˆ¬ęŠę‹„ęŒ˜ć§ø嚱"], - ["8da1", "ćØƒę¢ę»ę‡ę‘šć©‹ę“€å“•å˜”é¾ŸćŖ—ę–†ćŖ½ę—æę™“ć«²ęš’ć¬¢ęœ–ć­‚ęž¤ę €ć­˜ę”Šę¢„ć­²ć­±ć­»ę¤‰ę„ƒē‰œę„¤ę¦Ÿę¦…ć®¼ę§–ćÆę©„ę©“ę©±ęŖ‚ćƬęŖ™ćƲęŖ«ęŖµę«”꫶ꮁęƁęÆŖę±µę²Ŗć³‹ę“‚ę“†ę“¦ę¶ć³Æ궤궱ęø•ęø˜ęø©ęŗ†\uD862\uDDC0ęŗ»ę»¢ę»šé½æę»Øę»©ę¼¤ę¼“ćµ†\uD84F\uDF41ę¾ę¾¾ćµŖćµµē†·å²™ć¶Šē€¬ć¶‘ēē”ēÆēæē‚‰\uD840\uDF25äć—±\uD843\uDED8"], - ["8e40", "\uD84F\uDED7垾\uD85B\uDED3ē„¾\uD855\uDFE0ć™Žę¦¢\uD862\uDFE9å­“ē©‰\uD856\uDCE1\uD865\uDCD9ē©„ē©½\uD856\uDDACēŖ»ēŖ°ē«‚ē«ƒē‡‘\uD859\uDC8D䇊ē«šē«ē«Ŗä‡Æ咲\uD857\uDC01ē¬‹ē­•ē¬©\uD854\uDF0E\uD857\uDCFEē®¢ē­Æ莜\uD856\uDFB4\uD85B\uDC7FēÆč”ē®’ē®ø\uD857\uDD20涭\uD857\uDC65蒒ēÆŗē°†ē°µ\uD857\uDCC1ē±„ē²ƒ\uD852\uDC82ē²¦ę™½\uD851\uDD78ē³‰ē³‡ē³¦ē±“ē³³ē³µē³Ž"], - ["8ea1", "ē¹§ä”\uD85B\uDE44ēµ\uD85B\uDED6ē’ē¶‰ē¶«ē„µē¶³ē·’\uD850\uDC57\uD858\uDC29ē·¤ć““ē·µ\uD845\uDFF9ē·„\uD860\uDF6Dēø\uD858\uDD21\uD858\uDD5Aē¹®ēŗ’䌫鑬ēø§ē½€ē½ē½‡ē¤¶\uD858\uDED0駔ē¾—\uD858\uDF51ē¾£\uD845\uDE61\uD840\uDC68䕜\uD84D\uDF66䔃\uD860\uDF3Aēæŗ\uD859\uDC89者耈耝č€Øč€Æ\uD868\uDC87\uD85B\uDCC3č€»č€¼č”\uD849\uDF14䦉\uD859\uDE26\uD84F\uDDE3\uD859\uDEE8ęœ„č‚§\uD862\uDE48č„‡č„šå¢°\uD849\uDEF6ę±æ\uD859\uDC98\uD853\uDFB8ꓧ\uD845\uDC8A舘\uD846\uDC5Eę©“\uD852\uDE65\uD852\uDE95ä‘ŗ舩\uD842\uDF0D\uD85A\uDE52\uD84F\uDD7Eäæ¹\uD845\uDCFDč“¢č¢\uD85A\uDF0A\uD852\uDDA7\uD84D\uDD30\uD845\uDF73\uD84F\uDDF8čŠŖꤛ\uD87E\uDD94䇛"], - ["8f40", "蕋苐茚\uD843\uDE16\uD845\uDFB4曁\uD84C\uDD7D\uD84D\uDD5Ač‰»č‹¢čŒ˜\uD84F\uDE8B\uD85B\uDDA3\uD85A\uDF05\uD85A\uDF97\uD84D\uDDCEć¶æčŒå—¬čŽ…ä”‹\uD85B\uDDA5čŽ¬čč“ć‘¾\uD85B\uDED4ę©—č•šć’–\uD85B\uDE42\uD84B\uDEEF葘\uD856\uDFE4葱淓䓤ęŖ§č‘Š\uD84F\uDCB5ē„˜č’Ø\uD85A\uDF96\uD85B\uDE77\uD85B\uDE43蓞萏莑䒠蒓蓤\uD857\uDC91䉀\uD857\uDCC0ä•ƒč”“å«²\uD85B\uDE99ä”§č•³ä”–ęžæ蘖"], - ["8fa1", "\uD861\uDE25\uD861\uDE3B藁\uD85C\uDC88蘂\uD845\uDD82\uD85C\uDCCD\uD87E\uDDB2ä•Ŗč˜Ø晈\uD846\uDCA2号\uD85C\uDF9Ač™¾č±\uD868\uDCF8čŸ®\uD84B\uDC27čž±čŸšč å™”č™¬ę”–ä˜č”…č”†\uD85D\uDDE0\uD84F\uDDB9\uD85D\uDDE4č”žč¢œä™›č¢“č¢µęč£…ē·\uD85D\uDF0Fč¦‡č¦Šč¦¦č¦©č¦§č¦¼\uD862\uDE25觧\uD85E\uDD24\uD85E\uDEBDčŖœēž“釾čŖ\uD85E\uDE59ē«©\uD85E\uDF3A\uD84F\uDF8F䜓\uD85E\uDF38ē…¼č¬Œč¬Ÿ\uD855\uDC30\uD855\uDD65č¬æ譌譍čŖ©\uD852\uDE7A讐讛čŖÆ\uD845\uDEDFä˜•č”č²›\uD85F\uDD54\uD85F\uDD8F\uD87E\uDDD4ćœ„\uD85F\uDD53č³–\uD85F\uDD98\uD85F\uDDBDč“’č“ƒ\uD846\uDD10č³›ēœč“‘\uD853\uDCC9滐起"], - ["9040", "趩\uD860\uDC02\uD844\uDC14\uD852\uDD8Ać­¼\uD860\uDDBC\uD85C\uDD0Cē«§čŗ­čŗ¶č»ƒé‹”č¼™č¼­\uD860\uDF65\uD861\uDC12č¾„éŒƒ\uD868\uDE9F\uD842\uDE50č¾³ä¤Ŗ\uD862\uDDDE\uD861\uDD3D\uD84F\uDDBBå»ø\uD84C\uDE62čæ¹\uD868\uDC14\uD861\uDEBC\uD861\uDD01\uD848\uDF25榀\uD85B\uDED7逷\uD861\uDD3C\uD85E\uDEBE達\uD861\uDD6C\uD861\uDE0Bé‚Ø\uD861\uDF13郄\uD861\uDEE6é‚®éƒ½é…§ć«°é†©é‡„ē²¬\uD862\uDD33\uD847\uDE89éˆŽę²Ÿé‰é‰¢\uD855\uDDB9銹\uD862\uDEC6\uD84F\uDC9B\uD862\uDF0C\uD855\uDDDB"], - ["90a1", "\uD843\uDD31錬鍫\uD862\uDEE1\uD862\uDFEBē‚å«ƒ\uD862\uDEE2\uD862\uDEE5䄄鉄\uD862\uDFEC\uD863\uDC39\uD862\uDFFF鍳鑛čŗ¼é–…閦鐦閠ęæ¶äŠ¹\uD849\uDE7A\uD861\uDED8\uD844\uDE7C\uD84F\uDE2Eä§Ÿę°œé™»éš–ä…¬éš£\uD85B\uDED5ꇚ隶ē£µ\uD862\uDEE0隽双䦔\uD85B\uDCB8\uD840\uDE74\uD859\uDC10\uD864\uDCAF\uD864\uDCE5\uD852\uDED1\uD846\uDD15\uD84C\uDF0Aéœ±č™‚éœ¶ä؏䔽䖅\uD852\uDEE9ēµå­éœ›éœ\uD864\uDDD5靗孊\uD864\uDDEB靟鐄僐\uD84C\uDCB7\uD84C\uDCBC鞉鞟鞱鞾韀韒韠\uD855\uDC6C韮ēœ\uD865\uDC33éŸæ韵\uD865\uDC1D\uD85E\uDD7Aä«‘é “é ³é”‹é”¦ć¬Ž\uD85C\uDD75浑\uD841\uDE30\uD850\uDD5C"], - ["9140", "\uD855\uDF06飊颷飈飇ä«æ\uD85B\uDD27\uD845\uDED3喰飔飦飬éø餹\uD852\uDE29ä­²\uD866\uDC57\uD866\uDD05駵é،éØ»éؐ驘\uD855\uDF25曄\uD864\uDCB1\uD866\uDFD5é« é«¢\uD866\uDF05髓䰎鬔鬭\uD861\uDE00倓鬓\uD85A\uDDA8ć£ƒ\uD84C\uDC7D魐魀\uD867\uDD3E婅\uD846\uDC63鮎\uD850\uDE4B鰂éÆæ鰌\uD867\uDE68鷔\uD867\uDFB7\uD868\uDD92\uD868\uDDAB\uD868\uDCE1\uD868\uDD23\uD868\uDDDF鵾鶃\uD868\uDD34éøŽę¢ˆ"], - ["91a1", "鷄\uD848\uDD5B\uD868\uDD93\uD868\uDE20\uD846\uDD3B\uD868\uDE33铹\uD868\uDCB9\uD868\uDEB4éŗéŗ•éŗžéŗ¢ä““éŗŖéŗÆ\uD850\uDF64é»ć­ ć§„ć“ä¼²ćž¾\uD863\uDC2B鼂鼈䮖鐤\uD85B\uDDA2鼗鼖鼹嚟嚊齅é¦ø\uD864\uDC8B韲č‘æ齢齩ē«œé¾Žēˆ–䮾\uD852\uDD75\uD852\uDDBBē…·\uD852\uDDF8\uD850\uDF48\uD852\uDE51ēŽž\uD862\uDFDA\uD846\uDCFAē¦Ÿ\uD862\uDD7E\uD863\uDE36鍩鏳\uD862\uDE44鋬鎁鏋\uD862\uDD6C\uD851\uDCB9ēˆ—滫ē²ē©ƒēƒ\uD851\uDC73\uD850\uDFF8ē…¾\uD845\uDFEFē‚£\uD846\uDCBE\uD84D\uDD99滇\uD846\uDC85\uD855\uDC2F\uD845\uDFF8ćœ¢\uD845\uDEFB\uD846\uDC39ć›”\uD845\uDF74\uD846\uDCD1\uD857\uDF4Bćœ£\uD845\uDEC0坛\uD852\uDE25\uD844\uDFFE\uD844\uDEA8"], - ["9240", "\uD844\uDFC6\uD845\uDCB6蔃\uD84D\uDEA6蔃葕\uD852\uDD94\uD85C\uDD65\uD84F\uDE31\uD855\uDD5C\uD84F\uDEFB\uD85C\uDC52ä““\uD84D\uDEEE\uD866\uDD9D\uD85B\uDF26ęŸ¹ćœ³ć°•ć·§å”¬\uD846\uDD22ꠐ䁗\uD84D\uDF3F\uD850\uDCE1\uD850\uDC8B\uD850\uDD0F\uD85B\uDC21哋嚞\uD859\uDEB1嚒\uD843\uDFDF\uD842\uDFA8\uD843\uDE0D鏆\uD862\uDF13鎜ä»øå„«ć ™\uD851\uDC36äŗ¼\uD841\uDC65\uD840\uDF7F佋侊\uD855\uDE51å©Ø\uD840\uDDAB\uD840\uDFCB榙\uD840\uDF0A\uD841\uDC14ćµä¼©\uD840\uDEC0\uD863\uDEB3\uD840\uDE75č«š\uD840\uDE0Cäŗ˜"], - ["92a1", "働儍侢伃\uD852\uDE0E\uD84F\uDE8A佂倮偬傁äæŒäæ„å˜åƒ¼å…™å…›å…å…žę¹¶\uD84D\uDD95\uD84F\uDE39\uD84F\uDEBFęµ²\uD846\uDC84\uD84F\uDE89å†Ø凃\uD841\uDDE0䓝\uD841\uDCA3\uD841\uDC92\uD841\uDC91čµŗ\uD862\uDE9C\uD841\uDF0E剙劤\uD842\uDC73勔鍮ä™ŗē†Œ\uD850\uDF8C\uD843\uDC20\uD852\uDDAC\uD844\uDCE4꧑\uD843\uDE1Dē‘¹ć»žē’™ē”ē‘–ēŽ˜ä®Ž\uD852\uDEBC\uD850\uDC8Dåć–„ēˆ\uD850\uDCC9å–“\uD840\uDF45响\uD842\uDFC6圝鉝雓鍦埝垍åæć˜¾å£‹åŖ™\uD862\uDE46\uD845\uDEFA\uD845\uDF6F\uD845\uDF10åجå¦ø銏婾嫏åؒ\uD856\uDD46\uD846\uDDF3\uD846\uDC61\uD850\uDE95曵꓅ē‘ƒåØ”\uD857\uDE83"], - ["9340", "åŖ\uD862\uDFD7\uD841\uDC13鏠ē’Œ\uD844\uDF03ē„…䄲鐈\uD862\uDDFBéŽ½ćž å°žå²žå¹žå¹ˆ\uD846\uDD96\uD846\uDD7C\uD84E\uDEEE廍孏\uD846\uDD03\uD846\uDD04朁\uD846\uDCA0曝\uD845\uDEFE曓č„Ŗ\uD862\uDE47\uD847\uDDBA\uD84D\uDC72\uD862\uDDA8弌弎\uD846\uDD27\uD845\uDFABå©«\uD845\uDF3Bå­„č˜”\uD85D\uDDFDč” ę¾\uD84A\uDC60\uD849\uDE2Båæ›ćŗø\uD849\uDDAF\uD849\uDDBE\uD864\uDC88\uD85B\uDF73ꇀ\uD840\uDC3E\uD840\uDC46\uD849\uDE1Bę†™ę†˜ęµ\uD84B\uDC9B\uD84B\uDD07\uD851\uDED4\uD864\uDD4D"], - ["93a1", "ꑱ\uD851\uDE65\uD84A\uDF6AćØ©\uD84A\uDF22\uD84D\uDC50\uD866\uDCEA\uD84B\uDE78ęŒ·\uD869\uDC5Bę’¶ęŒ±ę‘\uD852\uDDE3\uD84B\uDD67ꊤ\uD84B\uDCA1ę»ę•«ę„²ćÆ“\uD84C\uDC8E\uD84C\uDEAD\uD852\uDD89\uD84C\uDEAB唍\uD84C\uDEE0\uD846\uDCD9\uD865\uDC3Fꛎ\uD84C\uDE89\uD84C\uDDB3櫠䆐\uD855\uDD84\uD862\uDF22\uD855\uDD8F\uD845\uDEFC\uD855\uDD5B\uD855\uDC25ē£®\uD84C\uDD03\uD846\uDC2A\uD84C\uDE34摤\uD84C\uDE0F\uD84C\uDD82\uD850\uDEC9Ꚏ\uD85B\uDD24ę™«ä®“ę˜°\uD85E\uDC70\uD847\uDDEBę™£\uD84C\uDED2\uD84C\uDEE1ꘞ\uD856\uDC72ć£‘\uD84E\uDC3A\uD84D\uDFBCć®™\uD84D\uDFA2\uD84C\uDFFEē“ć®–꾏\uD851\uDE2Aę¢¶ę žćƄęŖ¾ć”£\uD84D\uDFD5\uD851\uDC87ęØ³ę©’ę«‰ę¬…\uD846\uDD12ę”‘ę¢˜ę©ŒćƗę©ŗꭗ\uD84F\uDFC0\uD84F\uDC9A鎠鋲\uD862\uDFEA\uD862\uDECB"], - ["9440", "銉\uD860\uDC1E\uD862\uDDDCé‘§ę¶„ę¼‹\uD852\uDDEC굧\uD84F\uDF7Fć¶ęø„\uD850\uDC3CåؽęøŠå”‡ę“¤ē”‚ē„»\uD850\uDF1A\uD850\uDE76ēƒ±ē‰ēŠ‡ēŠ”\uD851\uDF8F\uD851\uDF25兹\uD852\uDEA4\uD841\uDDEBē‘ŗ\uD84F\uDEF8\uD84D\uDE5F\uD852\uDE4A\uD852\uDD17\uD857\uDFE1ć¼†ćŗ±\uD852\uDEDF\uD863\uDC23\uD84F\uDF35ę‚§ć»³ē“Œē¼éŽ‡ē·ä’Ÿ\uD85B\uDDEA䕑ē–ƒć½£\uD853\uDCD9\uD853\uDD06ć½˜ē••ē™³\uD869\uDDC6欙ē‘Ø\uD862\uDECC\uD852\uDDAB\uD852\uDD8Eć«»"], - ["94a1", "ć·\uD852\uDE4Eć»æ\uD852\uDDC5\uD852\uDCF3é‡ŗ圲鍂\uD862\uDEE3\uD846\uDC64僟\uD854\uDE21\uD854\uDDE7ēø\uD84C\uDE32ēœŽēœē»\uD851\uDE97\uD84D\uDF81ć©ž\uD852\uDCF0ēøē’›ćŗæ\uD852\uDEBA\uD852\uDEC7䃈\uD852\uDE96\uD858\uDDAE錇\uD855\uDD81ē žē¢ē¢ˆē£’ēē„™\uD85D\uDF41\uD855\uDEE3䄎ē¦›č’–ē¦„ęØ­\uD84F\uDEFAēØŗē§“䅮\uD845\uDEE6䄲鈵ē§±\uD843\uDD4C\uD852\uDD8C\uD840\uDE99\uD84F\uDDBA\uD845\uDF6Eć–—å•«ć•°ćšŖ\uD840\uDDD4\uD843\uDC0Dē«¢å©™\uD849\uDEF5\uD856\uDEAF\uD856\uDE9Cå؍\uD840\uDE5Bē£°åØŖ\uD856\uDFC6ē«¾ä‡¹ē±ē±­äˆ‘\uD856\uDFB3\uD857\uDEBC\uD857\uDEA6ē³\uD852\uDDF9\uD845\uDFB0ē²Žē±¼ē²®ęŖ²ē·œēø‡ē·“ē½Ž\uD858\uDE61"], - ["9540", "\uD858\uDD5C\uD85E\uDF48ē¶—\uD857\uDE82ä‰Ŗ\uD85A\uDF75\uD842\uDD16Ꟗ\uD840\uDC4E\uD84D\uDDCF埄\uD859\uDC12\uD858\uDFF8\uD852\uDD62ēæē¬§\uD842\uDC2C\uD856\uDEE9\uD857\uDD43ē¬Œ\uD857\uDE0Eé§¦č™…é©£ę؜\uD84D\uDC3Fć§¢\uD852\uDDF7\uD859\uDDADé؟\uD859\uDDA0蒀\uD85C\uDD27\uD85B\uDCD1ä“Ŗč„·ä‚čƒ†č„‰č…‚\uD859\uDFB4飃\uD85A\uDE42č‰¢č‰„\uD85A\uDE51葓\uD85B\uDDA7蘐\uD85C\uDE1BåŖ†ä…æ\uD846\uDC40嬫\uD846\uDCA1嫤\uD846\uDCD8蚠\uD87E\uDDBC\uD84F\uDD8Fč ­\uD85D\uDC22å؂"], - ["95a1", "č”®ä½…č¢‡č¢æč£¦č„„č„\uD855\uDE83č„”\uD85D\uDF85\uD85D\uDF84\uD862\uDFF5\uD862\uDFD9\uD862\uDF9C\uD862\uDDF9ćŗ­č’£ä›µä›ćŸ²čؽč؜\uD865\uDC48彍鈫\uD850\uDE84ꗔē„©ēƒ„\uD846\uDC45éµ­č²Ÿč³©\uD85F\uDDDC妚ēŸƒå§°ä®ć›”čøŖčŗ§\uD853\uDC09č¼°č½Šä‹“ę±˜ę¾»\uD848\uDF21ä¢›ę½¹ęŗ‹\uD845\uDFDAéÆ©ćšµ\uD852\uDD2F邻邗啱䤆醻鐄\uD862\uDE4B䁢\uD862\uDEFC鐧\uD863\uDC1D\uD863\uDC3Bč“„čث閙閧閗閖\uD863\uDD34ē‘…滂\uD852\uDCFF\uD852\uDE42\uD850\uDFEA滧\uD84C\uDE25随\uD863\uDEE7\uD863\uDE66\uD863\uDE65ć»Œ\uD852\uDDED\uD852\uDE78\uD84F\uDFEEē’ē‘«ć»¼é\uD864\uDCB0"], - ["9640", "ꔇä؝\uD864\uDC93\uD855\uDFDF靝éØ\uD862\uDD89\uD863\uDC26\uD862\uDF2F\uD858\uDFBEéŠŗå¬‘č­©ä¤¼ē¹\uD850\uDE1B鞛靱é¤ø\uD843\uDF26巁\uD862\uDFC5\uD852\uDEB2頟\uD865\uDCDA鋶\uD865\uDDD7釄䓀\uD862\uDF50\uD852\uDE67\uD862\uDF64飜\uD862\uDE45ć¼€éˆŖä¤„č”é¤»é„\uD85E\uDF06ć·½é¦›ä­Æé¦Ŗ驜\uD862\uDF65\uD856\uDCC8ęŖéؔ嫾éØÆ\uD866\uDCF1䮐\uD866\uDD48馼䮽䮗鍽唲\uD844\uDF02å ¢\uD852\uDDB8"], - ["96a1", "\uD845\uDCE8ē”„\uD849\uDF1F\uD84F\uDDB8ę£…ćµ½é‘˜ć¤§ę…\uD849\uDF81\uD84A\uDD6Bę„‡é±é±“é±»é°µé°é­æéƏ\uD867\uDE2D鮟\uD868\uDDF5\uD868\uDCFE铔䲮\uD850\uDD04éø˜ä²°é“Œ\uD868\uDDB4\uD868\uDCED\uD868\uDCF3\uD866\uDD2Fé¶„č’½\uD85B\uDE12\uD85B\uDFDF\uD85A\uDF82č—¼ä”³\uD85B\uDDA4\uD85B\uDE84\uD85B\uDDF0萠藮\uD85B\uDE00\uD84D\uDFD7\uD858\uDC64ē§¢\uD84D\uDD9C\uD84D\uDE40䤭\uD852\uDDDEćµ¢é›éŠ¾éˆ\uD840\uDEBFē¢¹é‰·é‘äæ¤ć‘€é¤\uD855\uDD5Dē ½ē””ē¢¶ē”‹\uD845\uDF57\uD84C\uDDC9\uD852\uDD41ćššä½²ęæšęæ™ē€žē€žå”\uD850\uDDB5垻壳垊铖埗ē„“ć’Æ\uD850\uDDACē‡«\uD85B\uDC40\uD853\uDF97å¬Ø\uD845\uDFB5\uD862\uDE49"], - ["9740", "ę„Œå«Žå؋䊼\uD851\uDC88ćœ¬ä­»\uD862\uDDFC鎻éŽø\uD846\uDCD6\uD843\uDF1Dč‘²\uD85B\uDCC0\uD845\uDC13\uD850\uDEFA\uD84B\uDC26\uD850\uDFC1妔\uD84F\uDDB7\uD859\uDF41ē¶Ø\uD858\uDD5B\uD858\uDCA4\uD852\uDDB9\uD852\uDD8B\uD862\uDDFAé‹„ē¢ć»©ē’“\uD862\uDF63\uD846\uDC9Fć»”\uD852\uDEB3꫘ē³ē»ć»–\uD852\uDE3E\uD852\uDE94\uD845\uDFD9\uD852\uDE66\uD840\uDFA7\uD845\uDC24\uD852\uDDE5ē‘ˆ\uD852\uDD16ē‚„\uD852\uDD76銄ē¦éŸ\uD841\uDCFE錱\uD862\uDECE\uD862\uDE16鎆\uD862\uDFE7\uD855\uDDD5䤵\uD862\uDE82ē…«"], - ["97a1", "\uD852\uDD43\uD843\uDCFF嚤\uD841\uDE1A\uD842\uDFEB\uD843\uDCB8唂ē§„\uD845\uDFFAē·¾\uD845\uDEC2\uD852\uDE50\uD846\uDC52ä”®éćœŠ\uD862\uDEC0\uD852\uDDAD妰\uD846\uDCBF\uD846\uDC83\uD85D\uDC84åŖ”ć›¢\uD84F\uDD5Bćš°é‰Ÿå©¹\uD862\uDE81\uD846\uDC62é“ć³\uD842\uDEB4äŖ–ć¦Šåƒ“ćµ©ćµŒ\uD844\uDF9Cē…µä‹»\uD860\uDE18ęø\uD864\uDCE4ä“«ęµ—\uD85F\uDE4Fē§ę²Æć³–\uD84F\uDFED\uD84F\uDE2Dęø‚ę¼ŒćµÆ\uD840\uDFF5ē•‘ćš¼ć“ˆäš€ć»šä”±å§„é‰®ä¤¾č½\uD863\uDC1C\uD85A\uDFC0å ’åŸˆć›–\uD845\uDC52ēƒ¾\uD850\uDF62\uD852\uDE71\uD84B\uDFE3\uD844\uDEB0\uD848\uDFBDę¢¹ę„§\uD844\uDF98\uD84D\uDCE5\uD85E\uDFF4\uD84D\uDEDF\uD862\uDE83\uD84D\uDFD6\uD84C\uDFFA\uD853\uDC9Fęؚ\uD84D\uDEAD\uD85B\uDCB7č¾ä“Ÿä“Ž"], - ["9840", "\uD85B\uDD26\uD85B\uDD51\uD85B\uDC82\uD85B\uDFDEę¼—\uD85C\uDD09čŒ½\uD845\uDF3A菭\uD85B\uDC80\uD85C\uDC53\uD845\uDFDB妉åŖ‚\uD845\uDFB3婔婱\uD846\uDD05\uD850\uDDFC札å§Æ\uD845\uDF3C曇ē†ŽéŽęšš\uD850\uDEA5å©®åØ«\uD850\uDE93ęØ«\uD84F\uDEF9\uD85D\uDF36\uD851\uDC5B\uD850\uDECAē„\uD850\uDE59\uD862\uDDE1ä¾°\uD85B\uDD28峂\uD851\uDCCE\uD85F\uDE4D\uD850\uDFBDę،\uD850\uDE56\uD844\uDF04ē‚¦ē„³\uD850\uDFE9ć¶„ę³Ÿ\uD87E\uDC25\uD852\uDE4Fē¹„姫å“Æć·³å½œ\uD852\uDE5D\uD845\uDFDFē¶¤č¦"], - ["98a1", "咅\uD84E\uDEFA\uD84C\uDF00\uD840\uDE14坾\uD842\uDCD5\uD841\uDE19ćæ„\uD847\uDF9E\uD868\uDEB6ē€ƒ\uD864\uDD5Båµ°ēŽē³“\uD862\uDE59\uD865\uDC20äæˆēæ§ē‹ēŒ\uD85E\uDEF4ēŒøēŒ¹\uD855\uDEF6ēēˆćŗ©\uD85E\uDF18遬ē‡µ\uD852\uDCF2ē”臶滊ēœŒć»‘ę²¢å›½ē™ēžēŸć»¢ć»°ć»“ć»ŗē““ć¼Žć½“ē•‚ē•­ē•²ē–ć½¼ē—ˆē—œćæ€ē™ćæ—ē™“ćæœē™ŗ\uD853\uDF5Cē†ˆå˜£č¦€å”©ä€ēƒä€¹ę”䁅旛ēž˜äŖäÆ属ēž¾ēŸ‹å£²ē ˜ē‚¹ē œä‚Øē ¹ē”‡ē”‘ē”¦č‘ˆ\uD855\uDD35ē¤³ę ƒē¤²ä„ƒ"], - ["9940", "䄉ē¦‘ē¦™č¾»ēØ†č¾¼ä…§ēŖ‘䆲ēŖ¼č‰¹ä‡„ē«ē«›ä‡äø”ē­¢ē­¬ē­»ē°’ē°›ä‰ ä‰ŗē±»ē²œäŠŒē²ø䊔ē³­č¾“ēƒ€\uD843\uDCCFē·ē·”ē·ē·½ē¾®ē¾“ēŠŸäŽ—耠耄ē¬¹č€®č€±č”ć·Œåž“ē‚ č‚·čƒ©ä­č„ŒēŒŖ脎脒ē• č„”äć¬¹č…–č…™č…š"], - ["99a1", "䐓å ŗč…¼č†„ä„č†“ä­č†„åŸÆč‡č‡¤č‰”ä’čŠ¦č‰¶č‹Šč‹˜č‹æä’°č—é™©ę¦Šč…ēƒµč‘¤ęƒ£č’ˆä”„č’¾č“”č“ø蔐č”øč•’ä”»č•Æč•°č— ä•·č™²čš’čš²č›Æé™…čž‹ä˜†ä˜—č¢®č£æ褤脇覑\uD85E\uDD67čØ©čØøčŖ”čŖ“č±‘č³”č³²č“œäž˜å”Ÿč·ƒäŸ­ä»®čøŗå—˜å”č¹±å—µčŗ°ä ·č»Žč»¢č»¤č»­č»²č¾·čæčæŠčæŒé€³é§„䢭飠鈓䤞éˆØ鉘鉫銱銮éŠæ"], - ["9a40", "鋣鋫鋳鋓鋽鍃鎄鎭䄅䄑éŗæ鐗匁鐝鐭鐾ä„Ŗé‘”é‘¹é”­é–¢ä¦§é—“é˜³ä§„ęž äؤ靀äص鞲韂噔䫤ęƒØ颹䬙飱唄餎餙冓餜餷鄂鄝鄢䭰駅䮝éؼ鬏ēŖƒé­©é®éƝéƱéÆ“ä±­é° ćÆ\uD846\uDFC2鵉é°ŗ"], - ["9aa1", "é»¾å™é¶“é¶½é·€é·¼é“¶č¾¶é¹»éŗ¬éŗ±éŗ½é»†é“œé»¢é»±é»øē«ˆé½„\uD840\uDC94\uD840\uDEB7\uD840\uDFA0ę¤šé“ƒå¦¬\uD841\uDCD7å”€é“ćž¹\uD841\uDDD5\uD841\uDE15\uD841\uDE76\uD845\uDEBA块ē…³\uD842\uDEC2\uD842\uDECD\uD842\uDFBFå‘Ŗ\uD87E\uDC3B\uD842\uDFCB咞\uD842\uDFFB\uD843\uDC3B\uD843\uDC53\uD843\uDC65\uD843\uDC7Cꃧ\uD843\uDC8Då™ŗ\uD843\uDCB5\uD843\uDCDD\uD843\uDCED\uD843\uDD6F\uD843\uDDB2\uD843\uDDC8ę„•é°Æčž„\uD843\uDE04\uD843\uDE0E\uD843\uDED7\uD843\uDF90\uD843\uDF2D\uD843\uDE73å° \uD843\uDFBCåø‹\uD844\uDC5C\uD844\uDC4F\uD844\uDC76ꜞ\uD844\uDC7B\uD844\uDC88\uD844\uDC96晇\uD844\uDCBF\uD844\uDCD3\uD844\uDD2F\uD844\uDD3Bå¤č’­\uD844\uDEE3\uD844\uDF75\uD844\uDF36讁\uD845\uDD77\uD845\uDE19\uD845\uDFC3\uD845\uDFC7ä¹øē‚»\uD846\uDC2D\uD846\uDD6A"], - ["9b40", "\uD846\uDE2D\uD846\uDE45\uD847\uDC2A\uD847\uDC70\uD847\uDCAC\uD847\uDEC8ꋃ\uD847\uDED5\uD847\uDF15ē†˜ę”•\uD848\uDC45ę§©ć›ˆ\uD848\uDE7C\uD848\uDFD7\uD848\uDFFA\uD849\uDF2A\uD84A\uDC71\uD84A\uDD4Fč‹½\uD84A\uDD67\uD84A\uDD93\uD84A\uDED5覄\uD84A\uDEE8č¾ \uD84A\uDF0Eéžø\uD84A\uDF3F锇éŖ½\uD84B\uDC4C"], - ["9b62", "\uD84B\uDC88\uD84B\uDCB7\uD856\uDFE8\uD84B\uDD08\uD84B\uDD12\uD84B\uDDB7\uD84B\uDD95\uD84B\uDE42\uD84B\uDF74\uD84B\uDFCC\uD84C\uDC33\uD84C\uDC66\uD84C\uDF1F\uD84C\uDFDEå¾±ę™ˆęšæ\uD85E\uDE79\uD84D\uDD67\uD84D\uDDF3ēˆ\uD852\uDDBAēŸ—\uD84D\uDE1A\uD84D\uDF16ēŗ‡\uD840\uDF46å¢µęœŽ"], - ["9ba1", "ꤘ\uD84E\uDEA7\uD85D\uDE57\uD857\uDFE2\uD84F\uDE11\uD84F\uDEB9\uD85D\uDDFE\uD848\uDC9A䣐äŖø\uD850\uDD19\uD862\uDE9A\uD850\uDEEE\uD850\uDF0D\uD850\uDC3B\uD850\uDF34\uD850\uDF96\uD852\uDE45\uD841\uDDCA凒\uD841\uDE11妟\uD847\uDEA8ć®¾\uD84F\uDCFF\uD851\uDC04\uD851\uDCD6垈\uD851\uDE74榛\uD851\uDF2F\uD861\uDDE8\uD866\uDDC9ć¢\uD848\uDDC3譞\uD862\uDF4E駖\uD852\uDC12\uD852\uDCFB\uD852\uDE15ēˆ‰\uD852\uDEC0\uD843\uDC78å„„\uD853\uDEA5\uD853\uDF86\uD841\uDF79軚\uD854\uDC2C劏åœæē…±\uD854\uDE99\uD855\uDC19\uD84F\uDF4A\uD852\uDEA7喼\uD855\uDC46\uD855\uDC6E\uD85A\uDF52é‡”ć‘³\uD855\uDD3F\uD85D\uDE32\uD855\uDD5E䜘\uD855\uDD62\uD855\uDD66\uD855\uDFC7\uD852\uDD3F\uD856\uDC5Då¦ć“»\uD84C\uDFCCꃞ\uD856\uDD03䝼\uD862\uDD48\uD856\uDEAE\uD856\uDF89\uD857\uDC06\uD847\uDD90垔ē…‘ę¾¶\uD858\uDD02\uD85F\uDC12遖\uD858\uDDB2\uD853\uDF9Ač­¢\uD859\uDC02\uD859\uDC4A"], - ["9c40", "嵛\uD85A\uDFF7č¼¶\uD859\uDC84\uD846\uDD1Cč«Ŗ\uD852\uDDF6\uD859\uDC88\uD84F\uDFEF\uD859\uDD12äƀ\uD859\uDDBF\uD859\uDEB5\uD849\uDF1Bé‘„\uD855\uDFE1ꆕåا\uD87E\uDCCD侻嚹\uD851\uDD21\uD859\uDEFCä¹Ŗ\uD852\uDD34é™–ę¶\uD85B\uDCBD昘脷\uD859\uDF99\uD85A\uDC6E\uD859\uDC11\uD85A\uDC5Eē‡Ÿ\uD85A\uDCC7ē­‚\uD864\uDCC0\uD842\uDE11\uD85A\uDD26鄄\uD85A\uDD39ē©…é·°\uD85A\uDDFAéئ\uD85A\uDE2D晟\uD859\uDC69\uD840\uDC21ē¦ƒ\uD85A\uDE34\uD85A\uDF5B哬\uD84D\uDD19菏\uD85A\uDF9D䛐\uD85B\uDCA4ē”»č”„\uD85B\uDDAE墶"], - ["9ca1", "朜\uD849\uDD8D\uD85C\uDC4B\uD85C\uDDCDć±”\uD85C\uDE80\uD85C\uDE85銁\uD848\uDD7A\uD85C\uDE8B錰\uD85C\uDEE6\uD852\uDDD0ę°¹é’Ÿ\uD85D\uDC50\uD843\uDEF8č §č£µ\uD84A\uDD26\uD861\uDC73\uD845\uDFB1ęŗø\uD852\uDE2A\uD846\uDC20ć¦¤ćš¹å°ē§£ä”æꚶ\uD867\uDCAD\uD866\uDCA4脃\uD85D\uDFCC\uD85E\uDC58囖䃟\uD845\uDE0A榔\uD84D\uDF2F\uD860\uDCE8\uD844\uDFC5ē†­č¦\uD85E\uDDDD\uD864\uDDA8婧䲷\uD85C\uDCAF\uD862\uDDAB\uD85E\uDDFD\uD85E\uDE0A\uD85E\uDF0B\uD85F\uDD66\uD850\uDD7Aē­ƒē„¾\uD860\uDC09ę¾µ\uD868\uDEDFę؃\uD860\uDF18厢\uD85B\uDE07éŽæę ¶é\uD860\uDD6F\uD860\uDC23\uD85A\uDDB5\uD844\uDFED\uD84C\uDE2F\uD860\uDC48嶅\uD863\uDC30\uD860\uDC83圕頣\uD862\uDD49嶫\uD852\uDD88ę–¾ę§•å’\uD852\uDEA5\uD84F\uDF81ć°‘ęœ¶\uD860\uDC90\uD860\uDCF4\uD860\uDD2E\uD847\uDFA1\uD860\uDD4F"], - ["9d40", "\uD860\uDD89\uD860\uDDAF\uD860\uDE1A\uD860\uDF06\uD860\uDF2F\uD860\uDF8A旊\uD861\uDC68\uD861\uDEAAä£ŗę¦\uD862\uDD56ē ˆé‰•\uD862\uDDB8䏲\uD862\uDDE7䏟\uD862\uDDE8\uD862\uDF46\uD862\uDFD4å§ø\uD863\uDC09č¼‹\uD863\uDFC5\uD864\uDCECē­‘\uD864\uDD10\uD864\uDD3Cć··\uD864\uDD5E\uD852\uDECAčæēŠåš‹\uD865\uDCE7\uD865\uDDE9\uD865\uDDB0\uD865\uDDB8\uD865\uDF32\uD866\uDCD1\uD866\uDD49\uD866\uDD6A\uD866\uDDC3\uD866\uDE28\uD866\uDF0E\uD867\uDD5A\uD867\uDD9BēŗŸ\uD867\uDEF8\uD867\uDF23䲤镇\uD868\uDE93ē†¢\uD868\uDEFF䶑递\uD869\uDDCB䶜\uD843\uDC9Cč¾¾å—"], - ["9da1", "č¾ŗ\uD849\uDCB0č¾¹\uD852\uDE93䔉ē¹æę½–ęŖ±ä»Ŗ擤\uD862\uDF2C\uD85E\uDC9Dćœŗčŗ€\uD845\uDFF5\uD860\uDC24\uD862\uDF6C\uD862\uDF99\uD85E\uDE3E\uD859\uDEAFć·«\uD85D\uDE55\uD84F\uDCB7\uD855\uDE35\uD856\uDD56äŗš\uD857\uDE81\uD858\uDE58åšæ\uD843\uDE6DčøŽå­­\uD84F\uDE88\uD853\uDC9Eꏞꋐ\uD845\uDFF6\uD846\uDC7Bę”°å˜­\uD857\uDC4A吚\uD854\uDF11ć·†\uD867\uDD98䱽嘢嘞ē½‰\uD857\uDED8儵\uD84F\uDD40蝰äøœ\uD843\uDFEA\uD843\uDD49\uD84D\uDEBAč„—éµžč“˜ē˜»é±…ē™Žēž¹é…å²č…ˆč‹·å˜„č„²č˜č‚½å—Ŗē„¢å™ƒå–\uD843\uDE9Dć—Žå˜…å—±ę›±\uD860\uDEE2昭ē”“嗰å–ŗ咗啲\uD843\uDC41\uD843\uDC96廐\uD854\uDD48\uD843\uDE76\uD84B\uDC62"], - ["9e40", "\uD843\uDEA2éŗ«ēµšå—ž\uD844\uDC75ęŠé­å’”č³ē‡¶é…¶ę¼ęŽ¹ę¾å•©\uD84A\uDF43é±²\uD84B\uDEB3å†šć“Ÿ\uD843\uDDA7冧呍唞唓ē™¦čø­\uD85A\uDC8Aē–±č‚¶č „čž†č£‡č†¶čœ\uD844\uDCC1䓬ēŒ„\uD851\uDF06å®čŒ‹\uD85A\uDC93噻\uD849\uDEF4\uD85F\uDD2F\uD850\uDDA3\uD85F\uDD73\uD85B\uDED0\uD85C\uDEB6酰\uD844\uDDD9鈈\uD84F\uDCFC\uD869\uDEA9\uD843\uDEAC\uD843\uDEF9ē‰¦\uD847\uDCA2䝎\uD853\uDFC2\uD85F\uDFF9\uD843\uDFEBäƒŗ"], - ["9ea1", "é±ę”Ÿ\uD84B\uDDA0䣳\uD851\uDFE0\uD867\uDD7C\uD843\uDFEC\uD843\uDE0Aę¢\uD85D\uDDA3\uD843\uDFED"], - ["9ead", "\uD858\uDC48\uD844\uDD87ē†£ēŗŽéµäøšäø„ć•·å¬ę²²å§ćš¬ć§œå½ćš„\uD851\uDE18墚\uD852\uDF6Ečˆ­å‘‹åžŖ\uD856\uDE95\uD842\uDD79"], - ["9ec5", "ć©’\uD849\uDC65ē“\uD867\uDEAC䓉éÆ­\uD84F\uDCFE\uD867\uDF30䱛\uD853\uDFA9\uD865\uDD9E\uD867\uDFDE葜\uD84F\uDDB6\uD85C\uDEB2\uD859\uDFB3\uD84D\uDF20ęŒ®ē“„\uD84F\uDEF7\uD84F\uDE2CćØŖé€ˆå‹Œć¹“ć™ŗ䗩\uD841\uDC8Eē™€å«°\uD843\uDEB6ē”ŗ\uD85F\uDF2E墧ä‚æ噼鮋嵓ē™”\uD869\uDC34éŗ…ä³”ē—¹ćŸ»ę„™\uD84C\uDCDA\uD850\uDFF2"], - ["9ef5", "噝\uD844\uDEA9垧\uD852\uDD63\uD867\uDE06刓\uD85C\uDCAEć–­ę±Šéµ¼"], - ["9f40", "ē±–鬹埞\uD845\uDF6Cå±“ę““\uD865\uDCD0\uD858\uDF35\uD85C\uDD64蚭\uD843\uDD28\uD85B\uDD22\uD852\uDEE2\uD843\uDD71"], - ["9f4f", "凾\uD847\uDF0F嶎霃\uD847\uDDD1éŗéŒē¬Ÿé¬‚峑ē®£ę‰ØęŒµé«æēƏé¬Ŗē±¾é¬®ē±‚ē²†é°•ēƼ鬉鼗鰛\uD852\uDD3E齚啳åƃäæ½éŗ˜äæ²å‰ ćø†å‹‘坧偖妷åø’éŸˆé¶«č½œå‘©éž“é„€éžŗåŒ¬ę„°"], - ["9fa1", "ę¤¬åšé°Šé“‚ä°»é™ę¦€å‚¦ē•†\uD845\uDF6D駚剳"], - ["9fae", "酙隁酜"], - ["9fb2", "酑\uD863\uDE97ęæ\uD85B\uDD23ę«Šå˜‘é†Žē•ŗꊅ\uD840\uDFFCēē±°\uD857\uDC21\uD84F\uDCFD"], - ["9fc1", "\uD852\uDD19ē›–鮝äøŖ\uD843\uDCD4čŽ¾č”‚"], - ["9fc9", "å±Šę§€åƒ­åŗåˆŸå·µä»Žę°±\uD840\uDDF2ä¼¹å’œå“šåŠšč¶‚ć—¾å¼Œć—³"], - ["9fdb", "ę­’é…¼é¾„é®—é ®é¢“éŖŗéŗØéŗ„ē…ŗē¬”"], - ["9fe7", "ęÆŗ蠘ē½ø"], - ["9feb", "嘠\uD869\uDE4Ač¹·é½“"], - ["9ff0", "č·”č¹éøœčøęŠ‚\uD860\uDF7DčøØč¹µē«“\uD852\uDE77ēؾē£˜ę³Ŗ詧ē˜‡"], - ["a040", "\uD862\uDE5Aé¼¦ę³ŽčŸ–ē—ƒ\uD868\uDEB2ē”“\uD87E\uDC40č“Œē‹¢ē±č¬­ēŒ‚ē“±č³«\uD852\uDEBBč˜Æå¾ŗč¢ ä’·"], - ["a055", "\uD846\uDC3B\uD85B\uDE05"], - ["a058", "č©¾\uD849\uDD1B"], - ["a05b", "ęƒ½ē™§é«—éµ„é®é®čŸµ"], - ["a063", "č č³·ēŒ¬éœ”é®°ć—–ēŠ²ä°‡ē±‘é„Š\uD858\uDD59ꅙ䰄éŗ–ę…½"], - ["a073", "坟ę…ÆęŠ¦ęˆ¹ę‹Žć©œę‡¢åŽŖ\uD84C\uDFF5ꍤꠂ旒"], - ["a0a1", "嵗\uD862\uDFC2čæš\uD863\uDE39"], - ["a0a6", "僙\uD847\uDD46ē¤†åŒ²é˜ø\uD843\uDF3B䁄"], - ["a0ae", "ēŸ¾"], - ["a0b0", "ē³‚\uD857\uDF1Aē³šēØ­č¦č£ēµē”…ē“²č¦”čˆšęœŒč¢\uD85D\uDC86聛ē“°č„ƒēœ¤č¦‰\uD859\uDFCCē•“\uD85B\uDED1čž©čŸŽč‡ˆčžŒč©‰č²­č­ƒēœ«ē“øč“šć˜µę¦²č¶¦"], - ["a0d4", "覩ē‘Øę¶¹čŸ\uD850\uDC11ē“§ć·›ē…¶ę‚¤ę†œć³‘ē…¢ę·"], - ["a0e2", "ē½±\uD862\uDF2Dē‰ęƒ©ä­¾åˆ ć°˜\uD84F\uDCC7\uD857\uDED7\uD85D\uDE56\uD855\uDD31\uD846\uDD44\uD844\uDEFE\uD866\uDD03\uD85B\uDDDC\uD85C\uDCAD峁\uD858\uDDAD\uD862\uDE0F\uD84D\uDE77\uD840\uDCEE\uD85A\uDC46\uD853\uDF0E䕢嬟\uD858\uDF4C齐éŗ¦\uD858\uDE6B"], - ["a3c0", "ā€", 31, "ā”"], - ["c6a1", "ā‘ ", 9, "ā‘“", 9, "ā…°", 9, "äø¶äøæäŗ…äŗ å†‚冖冫勹åŒø卩厶夊宀巛ā¼³å¹æå»“å½å½”ę”“ę— ē–’ē™¶č¾µéš¶ĀØĖ†ćƒ½ćƒ¾ć‚ć‚žć€ƒä»ć€…ć€†ć€‡ćƒ¼ļ¼»ļ¼½āœ½ć", 23], - ["c740", "恙", 58, "ć‚”ć‚¢ć‚£ć‚¤"], - ["c7a1", "ć‚„", 81, "Š", 5, "ŠŠ–", 4], - ["c840", "Š›", 26, "ёŠ¶", 25, "ā‡§ā†øā†¹ć‡\uD840\uDCCC乚\uD840\uDC8A刂䒑"], - ["c8a1", "龰冈龱\uD85D\uDE07"], - ["c8cd", "ļæ¢ļæ¤ļ¼‡ļ¼‚ćˆ±ā„–ā„”悛悜āŗ€āŗ„āŗ†āŗ‡āŗˆāŗŠāŗŒāŗāŗ•āŗœāŗāŗ„āŗ§āŗŖāŗ¬āŗ®āŗ¶āŗ¼āŗ¾ā»†ā»Šā»Œā»ā»ā»–ā»—ā»žā»£"], - ["c8f5", "ŹƒÉÉ›É”ɵœĆøŋŹŠÉŖ"], - ["f9fe", "ļæ­"], - ["fa40", "\uD841\uDD47鋛\uD841\uDDDF\uD84F\uDFC5č•ŒäŠµēÆå†µć™‰\uD852\uDD42\uD862\uDDE4鍄\uD846\uDDDBč‹®\uD84F\uDCC8ē ¼ę„ę‹Ÿ\uD852\uDD33\uD862\uDDAA\uD840\uDEA0\uD85A\uDFB3\uD844\uDF05侫\uD849\uDCED倈\uD85B\uDD29\uD85E\uDE84\uD84D\uDE00\uD852\uDEB1\uD849\uDD13倩\uD840\uDF7E徤\uD840\uDF80\uD840\uDF47ę»›\uD841\uDC1F偽儁ć‘ŗå„Žé”¬ćƒč–\uD852\uDDA4\uD841\uDC87兠\uD84C\uDFB4å…Ŗ\uD842\uDFFF\uD848\uDCFC\uD840\uDEE5\uD849\uDD30\uD841\uDD8E\uD84C\uDE33\uD846\uDD83å®‚č½\uD841\uDDB3\uD84F\uDC99冲å†ø"], - ["faa1", "é““å‡‰å‡å‡‘ć³œå‡“\uD852\uDEA6å†³å‡¢å‚å‡­čę¤¾\uD84D\uDF2D彻刋刦刼劵剗劔効勅ē°•č•‚å‹ č˜\uD85A\uDF13包\uD862\uDEDEå•‰ę»™\uD84F\uDF80\uD842\uDD54\uD84F\uDFEC匳卄\uD842\uDFE2ę³‹\uD845\uDF26ꠛē•ęŠćŗŖć£Œ\uD845\uDEE8ē‡ä’¢å­å“\uD861\uDEAB卾åæ\uD845\uDD96\uD845\uDE13ēŸ¦åŽ“\uD862\uDE9B厠厫厮ēŽ§\uD855\uDF72ć½™ēŽœåå…ę±‰ä¹‰åŸ¾å™ćŖ«\uD842\uDF8F叠\uD84F\uDFEB\uD84B\uDDA3叶\uD843\uDC77吓ē¹å”«ę™—ęµ›å‘­\uD85A\uDF53\uD843\uDD74啝咏咤䞦\uD845\uDF0D\uD843\uDEDD涓\uD843\uDD4D"], - ["fb40", "\uD862\uDDBC\uD849\uDE98啇䳭åÆē—喆喩嘅\uD846\uDCD7\uD850\uDC3A䕒\uD851\uDC35ęš³\uD844\uDCB4å˜·ę›\uD84C\uDE8Aęš¤ęš­å™å™ē£±å›±éž‡å¾åœ€å›Æ园\uD862\uDF66ć˜£\uD844\uDE4F坆\uD850\uDDA5ę±®ē‚‹å‚ćš±\uD85B\uDC7E埦\uD845\uDC16堃\uD845\uDC54\uD850\uDF63å ¦\uD852\uDFF5唜å¢Ŗć•”å£ å£œ\uD844\uDE3C壻åÆæ坃\uD868\uDD50\uD850\uDE78é“ć–”å¤Ÿę¢¦ć›ƒę¹™"], - ["fba1", "\uD845\uDE3Eåؤ啓\uD845\uDE92č”…å§‰\uD843\uDD4E\uD85B\uDC81\uD85B\uDD2A\uD845\uDFDC姙\uD845\uDFFB\uD845\uDFB2\uD85B\uDDA6ęµ±\uD846\uDC28\uD845\uDED5姹\uD85B\uDE45åŖ«å©£ć›¦\uD852\uDDA9å©·ćœˆåŖ–ē‘„嫓\uD85B\uDFA1\uD849\uDD54涅\uD846\uDD11ćœ²\uD845\uDEB8åŗƒå‹å­¶ę–ˆå­¼\uD85E\uDE0E䀄䔝\uD840\uDE04åÆ•ę… \uD846\uDE34\uD856\uDDCC\uD841\uDDA5åƳ宝䓐尅\uD846\uDF44尓ēŽå°”\uD847\uDCA5\uD85A\uDF28屉䣝岅峩å³Æ嶋\uD847\uDDF9\uD847\uDE37哐哘嵆\uD847\uDEA4å²ŗå·—č‹¼ć ­\uD852\uDD01\uD848\uDC49\uD848\uDD73芇栶ćƂåø®ęŖŠå¹µå¹ŗ\uD851\uDCBC\uD843\uDCD3厦äŗ·å»åŽØ\uD845\uDF71åø‰å»“\uD861\uDC82"], - ["fc40", "å»¹å»»ć¢ å»¼ę ¾é›å¼\uD840\uDDC1\uD87E\uDC94ć«žä¢®\uD844\uDF3Aå¼ŗ\uD85A\uDC88\uD848\uDFD0彘\uD849\uDC71彣鞽\uD85B\uDE6E彲鍀\uD862\uDE36å¾§å¶¶ćµŸ\uD854\uDE50\uD847\uDF6A\uD85C\uDCF8\uD849\uDE68釖\uD840\uDE9E\uD862\uDE29ꀱꚅ\uD846\uDC77ć„£ć·‡ć˜¹åž\uD849\uDFB4ē„±ć¹€ę‚žę‚¤ę‚³\uD852\uDD82\uD852\uDD8F\uD85E\uDE53ē’¤åƒ”åŖ ę…¤č¤ę…‚\uD87E\uDCA6\uD85B\uDED2ę†å‡“\uD841\uDE56ꆇå®Ŗ\uD84F\uDFB7"], - ["fca1", "\uD84A\uDC5Fꇓ\uD862\uDF9D\uD866\uDD5Dę‡ć¤²\uD84A\uDD80\uD84A\uDCC1ę€£ę…œę”žęŽ‹\uD840\uDD18ꋅ\uD845\uDF70ꋕ\uD84B\uDE0Dę¬\uD852\uDDDFćؗęøęø\uD844\uDF8E\uD845\uDFFCę’ę¾Š\uD84B\uDE36頔\uD850\uDC8C\uD855\uDF1Dꓔ꓄鑻橦ęŗć©—ę•ę¼–\uD852\uDE28\uD852\uDE23ꖅꕭꕟ\uD84C\uDC7Eę–µ\uD852\uDD40ä¬·ę—‘äƒ˜\uD846\uDC29ę— ę—£åæŸ\uD84D\uDC00ꘘ\uD84C\uDDF7\uD84C\uDDF8Ꙅ\uD84C\uDDA4\uD84C\uDDA5ꙋ\uD843\uDE75ꙧ\uD854\uDDE6ę™³ę™“\uD847\uDE3D\uD84C\uDE31\uD861\uDDF4\uD84C\uDDC8\uD854\uDF13ēŸ…\uD84A\uDCF7é¦¤ęœ‚\uD850\uDF9C\uD852\uDE21欫ę§ŗ\uD84D\uDFC2ęžę§ę¢\uD850\uDDCD\uD864\uDCEDęŸ—ä“©ę ¢ę¹éˆ¼ę \uD84C\uDFE6\uD85B\uDDA0ę”"], - ["fd40", "\uD84D\uDC6F꧔ę؋\uD862\uDEDFę„³ę£ƒ\uD84D\uDDCDę¤ę¤€ć“²ć؁\uD84D\uDE3C殀Ɡꄔ\uD862\uDE4Aä‹¼ę¤¶ę¦˜ć®”\uD840\uDFC9č£å‚ę§¹\uD84D\uDE59\uD848\uDD2Aę©…\uD84D\uDF03ęŖćÆ³ęž±ę«ˆ\uD864\uDD9Cć°ę¬\uD842\uDD23ęƒžę¬µę­“\uD849\uDFCDęŗµ\uD84E\uDEDB\uD840\uDFB5\uD846\uDD58ć€å”\uD84E\uDF5AęÆ”\uD84F\uDEFCęÆœę°·\uD849\uDC8B\uD852\uDCF1\uD85A\uDF51ę±ščˆ¦ę±¹\uD84F\uDDBC䓅\uD84F\uDDBD\uD850\uDDA4\uD852\uDD0C\uD852\uDD00"], - ["fda1", "\uD84F\uDCC9ć›„ć³«\uD843\uDD32鮃\uD84C\uDDF9\uD849\uDC91ē¾ę ·\uD85B\uDD25\uD85B\uDDA1\uD85B\uDDEBę¶–ęµœę¹¼ę¼„\uD852\uDD7F\uD850\uDC85\uD85B\uDE72č”³\uD85B\uDF74å‡‡ę²œęøč®\uD862\uDF21ęøÆ\uD84F\uDE2Fē‘“\uD84F\uDF82ē§Œę¹åŖ‘\uD84C\uDC4Bęæøćœę¾\uD84F\uDE30ę»ŗ\uD845\uDC97\uD850\uDC3Dä••é°ę½„ę½œćµŽę½“\uD864\uDD70ć“»ę¾Ÿ\uD850\uDD44ęæ“\uD850\uDC91\uD850\uDD55\uD850\uDC39\uD84F\uDFF0\uD84F\uDFB4\uD850\uDD3F凟\uD850\uDD56\uD850\uDD57\uD850\uDD40\uD858\uDDDDē‹ē¾ē‚§ē‚ēƒŒēƒ•ēƒ–ēƒŸä„„ć·Øē†“ē†–\uD850\uDE77ē„«ē……åŖˆē…Šē…®å²œ\uD850\uDF65ē…é¢\uD850\uDEC1ē„¬\uD851\uDC5A\uD852\uDE27\uD852\uDE22ē†ŗ\uD862\uDFE8ē‚½ēˆŽ"], - ["fe40", "鑂ēˆ•å¤‘鑃ēˆ¤é\uD855\uDE05ēˆ®ē‰€\uD852\uDD74ę¢½ē‰•ē‰—ć¹•\uD84C\uDC44ę ę¼½ēŠ‚ēŒŖēŒ«\uD852\uDC23\uD862\uDC2B䣭\uD862\uDC04ēŒØēŒ®ēēŽŖ\uD843\uDC3A\uD85A\uDE2Eē‰ē‘‰\uD850\uDDE2\uD845\uDEE7\uD852\uDE24ę˜£ć›…\uD852\uDDB7\uD852\uDD8D\uD852\uDDFBē·ē•ę¤ƒ\uD852\uDE26ē¹\uD841\uDDC3ć»—ē‘œ\uD84A\uDCADē‘ \uD863\uDEB2ē‘‡ē¤ē‘¶čŽ¹ē‘¬ćœ°ē‘“鏱ęجē’‚ä„“\uD852\uDE8C"], - ["fea1", "\uD850\uDD5F\uD852\uDE79\uD862\uDF8F孆\uD863\uDC03\uD846\uDC9Eē“ˆ\uD846\uDD88ē”Žē“©ē”ž\uD863\uDED9\uD846\uDE4BåƗ\uD863\uDEAC鎅ē•ē•Šē•§ē•®\uD853\uDF82ć¼„\uD853\uDD13ē–Žē‘ē–žē–“ē˜‚ē˜¬ē™‘ē™ē™Æē™¶\uD858\uDFF5ēšč‡ÆćŸø\uD85A\uDD11\uD85A\uDD0Eēš”ēš„ēš·ē›Œ\uD85B\uDF9Fč‘¢\uD854\uDC9D\uD854\uDD7D\uD847\uDE1Cēœžēœ¦ē€ę’Æ\uD854\uDE20ē˜\uD84C\uDEACēžÆ\uD862\uDD64\uD862\uDD68\uD845\uDEC1ēŸ“ē ‰\uD844\uDF76\uD852\uDE12ę£Šē¢Æē£‡ē£“éš„ē¤®\uD855\uDDE0ē£—ē¤“ē¢±\uD85D\uDE0Cč¾øč¢„\uD862\uDF2B\uD858\uDC83\uD849\uDE1Cē¦†č¤€ę¤‚ē¦€\uD856\uDC57ē¦\uD85E\uDF39ē¤¼ē¦©ęøŖ\uD85C\uDD26ćŗØē§†\uD864\uDD0Dē§”"] - ]; -}); - -// node_modules/iconv-lite/encodings/dbcs-data.js -var require_dbcs_data = __commonJS((exports, module) => { - module.exports = { - shiftjis: { - type: "_dbcs", - table: function() { - return require_shiftjis(); - }, - encodeAdd: { "Ā„": 92, "ā€¾": 126 }, - encodeSkipVals: [{ from: 60736, to: 63808 }] - }, - csshiftjis: "shiftjis", - mskanji: "shiftjis", - sjis: "shiftjis", - windows31j: "shiftjis", - ms31j: "shiftjis", - xsjis: "shiftjis", - windows932: "shiftjis", - ms932: "shiftjis", - "932": "shiftjis", - cp932: "shiftjis", - eucjp: { - type: "_dbcs", - table: function() { - return require_eucjp(); - }, - encodeAdd: { "Ā„": 92, "ā€¾": 126 } - }, - gb2312: "cp936", - gb231280: "cp936", - gb23121980: "cp936", - csgb2312: "cp936", - csiso58gb231280: "cp936", - euccn: "cp936", - windows936: "cp936", - ms936: "cp936", - "936": "cp936", - cp936: { - type: "_dbcs", - table: function() { - return require_cp936(); - } - }, - gbk: { - type: "_dbcs", - table: function() { - return require_cp936().concat(require_gbk_added()); - } - }, - xgbk: "gbk", - isoir58: "gbk", - gb18030: { - type: "_dbcs", - table: function() { - return require_cp936().concat(require_gbk_added()); - }, - gb18030: function() { - return require_gb18030_ranges(); - }, - encodeSkipVals: [128], - encodeAdd: { "ā‚¬": 41699 } - }, - chinese: "gb18030", - windows949: "cp949", - ms949: "cp949", - "949": "cp949", - cp949: { - type: "_dbcs", - table: function() { - return require_cp949(); - } - }, - cseuckr: "cp949", - csksc56011987: "cp949", - euckr: "cp949", - isoir149: "cp949", - korean: "cp949", - ksc56011987: "cp949", - ksc56011989: "cp949", - ksc5601: "cp949", - windows950: "cp950", - ms950: "cp950", - "950": "cp950", - cp950: { - type: "_dbcs", - table: function() { - return require_cp950(); - } - }, - big5: "big5hkscs", - big5hkscs: { - type: "_dbcs", - table: function() { - return require_cp950().concat(require_big5_added()); - }, - encodeSkipVals: [41676] - }, - cnbig5: "big5hkscs", - csbig5: "big5hkscs", - xxbig5: "big5hkscs" - }; -}); - -// node_modules/iconv-lite/encodings/index.js -var require_encodings = __commonJS((exports, module) => { - var modules = [ - require_internal(), - require_utf16(), - require_utf7(), - require_sbcs_codec(), - require_sbcs_data(), - require_sbcs_data_generated(), - require_dbcs_codec(), - require_dbcs_data() - ]; - for (i = 0;i < modules.length; i++) { - module = modules[i]; - for (enc in module) - if (Object.prototype.hasOwnProperty.call(module, enc)) - exports[enc] = module[enc]; - } - var module; - var enc; - var i; -}); - -// node_modules/iconv-lite/lib/streams.js -var require_streams = __commonJS((exports, module) => { - var Buffer2 = __require("buffer").Buffer; - var Transform = __require("stream").Transform; - module.exports = function(iconv) { - iconv.encodeStream = function encodeStream(encoding, options) { - return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options); - }; - iconv.decodeStream = function decodeStream(encoding, options) { - return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options); - }; - iconv.supportsStreams = true; - iconv.IconvLiteEncoderStream = IconvLiteEncoderStream; - iconv.IconvLiteDecoderStream = IconvLiteDecoderStream; - iconv._collect = IconvLiteDecoderStream.prototype.collect; - }; - function IconvLiteEncoderStream(conv, options) { - this.conv = conv; - options = options || {}; - options.decodeStrings = false; - Transform.call(this, options); - } - IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, { - constructor: { value: IconvLiteEncoderStream } - }); - IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) { - if (typeof chunk != "string") - return done(new Error("Iconv encoding stream needs strings as its input.")); - try { - var res = this.conv.write(chunk); - if (res && res.length) - this.push(res); - done(); - } catch (e) { - done(e); - } - }; - IconvLiteEncoderStream.prototype._flush = function(done) { - try { - var res = this.conv.end(); - if (res && res.length) - this.push(res); - done(); - } catch (e) { - done(e); - } - }; - IconvLiteEncoderStream.prototype.collect = function(cb) { - var chunks = []; - this.on("error", cb); - this.on("data", function(chunk) { - chunks.push(chunk); - }); - this.on("end", function() { - cb(null, Buffer2.concat(chunks)); - }); - return this; - }; - function IconvLiteDecoderStream(conv, options) { - this.conv = conv; - options = options || {}; - options.encoding = this.encoding = "utf8"; - Transform.call(this, options); - } - IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, { - constructor: { value: IconvLiteDecoderStream } - }); - IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) { - if (!Buffer2.isBuffer(chunk)) - return done(new Error("Iconv decoding stream needs buffers as its input.")); - try { - var res = this.conv.write(chunk); - if (res && res.length) - this.push(res, this.encoding); - done(); - } catch (e) { - done(e); - } - }; - IconvLiteDecoderStream.prototype._flush = function(done) { - try { - var res = this.conv.end(); - if (res && res.length) - this.push(res, this.encoding); - done(); - } catch (e) { - done(e); - } - }; - IconvLiteDecoderStream.prototype.collect = function(cb) { - var res = ""; - this.on("error", cb); - this.on("data", function(chunk) { - res += chunk; - }); - this.on("end", function() { - cb(null, res); - }); - return this; - }; -}); - -// node_modules/iconv-lite/lib/extend-node.js -var require_extend_node = __commonJS((exports, module) => { - var Buffer2 = __require("buffer").Buffer; - module.exports = function(iconv) { - var original = undefined; - iconv.supportsNodeEncodingsExtension = !(Buffer2.from || new Buffer2(0) instanceof Uint8Array); - iconv.extendNodeEncodings = function extendNodeEncodings() { - if (original) - return; - original = {}; - if (!iconv.supportsNodeEncodingsExtension) { - console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"); - console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility"); - return; - } - var nodeNativeEncodings = { - hex: true, - utf8: true, - "utf-8": true, - ascii: true, - binary: true, - base64: true, - ucs2: true, - "ucs-2": true, - utf16le: true, - "utf-16le": true - }; - Buffer2.isNativeEncoding = function(enc) { - return enc && nodeNativeEncodings[enc.toLowerCase()]; - }; - var SlowBuffer = __require("buffer").SlowBuffer; - original.SlowBufferToString = SlowBuffer.prototype.toString; - SlowBuffer.prototype.toString = function(encoding, start, end) { - encoding = String(encoding || "utf8").toLowerCase(); - if (Buffer2.isNativeEncoding(encoding)) - return original.SlowBufferToString.call(this, encoding, start, end); - if (typeof start == "undefined") - start = 0; - if (typeof end == "undefined") - end = this.length; - return iconv.decode(this.slice(start, end), encoding); - }; - original.SlowBufferWrite = SlowBuffer.prototype.write; - SlowBuffer.prototype.write = function(string, offset, length, encoding) { - if (isFinite(offset)) { - if (!isFinite(length)) { - encoding = length; - length = undefined; - } - } else { - var swap = encoding; - encoding = offset; - offset = length; - length = swap; - } - offset = +offset || 0; - var remaining = this.length - offset; - if (!length) { - length = remaining; - } else { - length = +length; - if (length > remaining) { - length = remaining; - } - } - encoding = String(encoding || "utf8").toLowerCase(); - if (Buffer2.isNativeEncoding(encoding)) - return original.SlowBufferWrite.call(this, string, offset, length, encoding); - if (string.length > 0 && (length < 0 || offset < 0)) - throw new RangeError("attempt to write beyond buffer bounds"); - var buf = iconv.encode(string, encoding); - if (buf.length < length) - length = buf.length; - buf.copy(this, offset, 0, length); - return length; - }; - original.BufferIsEncoding = Buffer2.isEncoding; - Buffer2.isEncoding = function(encoding) { - return Buffer2.isNativeEncoding(encoding) || iconv.encodingExists(encoding); - }; - original.BufferByteLength = Buffer2.byteLength; - Buffer2.byteLength = SlowBuffer.byteLength = function(str, encoding) { - encoding = String(encoding || "utf8").toLowerCase(); - if (Buffer2.isNativeEncoding(encoding)) - return original.BufferByteLength.call(this, str, encoding); - return iconv.encode(str, encoding).length; - }; - original.BufferToString = Buffer2.prototype.toString; - Buffer2.prototype.toString = function(encoding, start, end) { - encoding = String(encoding || "utf8").toLowerCase(); - if (Buffer2.isNativeEncoding(encoding)) - return original.BufferToString.call(this, encoding, start, end); - if (typeof start == "undefined") - start = 0; - if (typeof end == "undefined") - end = this.length; - return iconv.decode(this.slice(start, end), encoding); - }; - original.BufferWrite = Buffer2.prototype.write; - Buffer2.prototype.write = function(string, offset, length, encoding) { - var _offset = offset, _length = length, _encoding = encoding; - if (isFinite(offset)) { - if (!isFinite(length)) { - encoding = length; - length = undefined; - } - } else { - var swap = encoding; - encoding = offset; - offset = length; - length = swap; - } - encoding = String(encoding || "utf8").toLowerCase(); - if (Buffer2.isNativeEncoding(encoding)) - return original.BufferWrite.call(this, string, _offset, _length, _encoding); - offset = +offset || 0; - var remaining = this.length - offset; - if (!length) { - length = remaining; - } else { - length = +length; - if (length > remaining) { - length = remaining; - } - } - if (string.length > 0 && (length < 0 || offset < 0)) - throw new RangeError("attempt to write beyond buffer bounds"); - var buf = iconv.encode(string, encoding); - if (buf.length < length) - length = buf.length; - buf.copy(this, offset, 0, length); - return length; - }; - if (iconv.supportsStreams) { - var Readable = __require("stream").Readable; - original.ReadableSetEncoding = Readable.prototype.setEncoding; - Readable.prototype.setEncoding = function setEncoding(enc, options) { - this._readableState.decoder = iconv.getDecoder(enc, options); - this._readableState.encoding = enc; - }; - Readable.prototype.collect = iconv._collect; - } - }; - iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() { - if (!iconv.supportsNodeEncodingsExtension) - return; - if (!original) - throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called."); - delete Buffer2.isNativeEncoding; - var SlowBuffer = __require("buffer").SlowBuffer; - SlowBuffer.prototype.toString = original.SlowBufferToString; - SlowBuffer.prototype.write = original.SlowBufferWrite; - Buffer2.isEncoding = original.BufferIsEncoding; - Buffer2.byteLength = original.BufferByteLength; - Buffer2.prototype.toString = original.BufferToString; - Buffer2.prototype.write = original.BufferWrite; - if (iconv.supportsStreams) { - var Readable = __require("stream").Readable; - Readable.prototype.setEncoding = original.ReadableSetEncoding; - delete Readable.prototype.collect; - } - original = undefined; - }; - }; -}); - -// node_modules/iconv-lite/lib/index.js -var require_lib3 = __commonJS((exports, module) => { - var Buffer2 = require_safer().Buffer; - var bomHandling = require_bom_handling(); - var iconv = exports; - iconv.encodings = null; - iconv.defaultCharUnicode = "ļæ½"; - iconv.defaultCharSingleByte = "?"; - iconv.encode = function encode(str, encoding, options) { - str = "" + (str || ""); - var encoder = iconv.getEncoder(encoding, options); - var res = encoder.write(str); - var trail = encoder.end(); - return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res; - }; - iconv.decode = function decode(buf, encoding, options) { - if (typeof buf === "string") { - if (!iconv.skipDecodeWarning) { - console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"); - iconv.skipDecodeWarning = true; - } - buf = Buffer2.from("" + (buf || ""), "binary"); - } - var decoder = iconv.getDecoder(encoding, options); - var res = decoder.write(buf); - var trail = decoder.end(); - return trail ? res + trail : res; - }; - iconv.encodingExists = function encodingExists(enc) { - try { - iconv.getCodec(enc); - return true; - } catch (e) { - return false; - } - }; - iconv.toEncoding = iconv.encode; - iconv.fromEncoding = iconv.decode; - iconv._codecDataCache = {}; - iconv.getCodec = function getCodec(encoding) { - if (!iconv.encodings) - iconv.encodings = require_encodings(); - var enc = iconv._canonicalizeEncoding(encoding); - var codecOptions = {}; - while (true) { - var codec = iconv._codecDataCache[enc]; - if (codec) - return codec; - var codecDef = iconv.encodings[enc]; - switch (typeof codecDef) { - case "string": - enc = codecDef; - break; - case "object": - for (var key2 in codecDef) - codecOptions[key2] = codecDef[key2]; - if (!codecOptions.encodingName) - codecOptions.encodingName = enc; - enc = codecDef.type; - break; - case "function": - if (!codecOptions.encodingName) - codecOptions.encodingName = enc; - codec = new codecDef(codecOptions, iconv); - iconv._codecDataCache[codecOptions.encodingName] = codec; - return codec; - default: - throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); - } - } - }; - iconv._canonicalizeEncoding = function(encoding) { - return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); - }; - iconv.getEncoder = function getEncoder(encoding, options) { - var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec); - if (codec.bomAware && options && options.addBOM) - encoder = new bomHandling.PrependBOM(encoder, options); - return encoder; - }; - iconv.getDecoder = function getDecoder(encoding, options) { - var codec = iconv.getCodec(encoding), decoder = new codec.decoder(options, codec); - if (codec.bomAware && !(options && options.stripBOM === false)) - decoder = new bomHandling.StripBOM(decoder, options); - return decoder; - }; - var nodeVer = typeof process !== "undefined" && process.versions && process.versions.node; - if (nodeVer) { - nodeVerArr = nodeVer.split(".").map(Number); - if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) { - require_streams()(iconv); - } - require_extend_node()(iconv); - } - var nodeVerArr; - if (false) { - } -}); - -// node_modules/os-tmpdir/index.js -var require_os_tmpdir = __commonJS((exports, module) => { - var isWindows = process.platform === "win32"; - var trailingSlashRe = isWindows ? /[^:]\\$/ : /.\/$/; - module.exports = function() { - var path; - if (isWindows) { - path = process.env.TEMP || process.env.TMP || (process.env.SystemRoot || process.env.windir) + "\\temp"; - } else { - path = process.env.TMPDIR || process.env.TMP || process.env.TEMP || "/tmp"; - } - if (trailingSlashRe.test(path)) { - path = path.slice(0, -1); - } - return path; - }; -}); - -// node_modules/tmp/lib/tmp.js -var require_tmp = __commonJS((exports, module) => { - /*! - * Tmp - * - * Copyright (c) 2011-2017 KARASZI Istvan - * - * MIT Licensed - */ - var fs = __require("fs"); - var path = __require("path"); - var crypto = __require("crypto"); - var osTmpDir = require_os_tmpdir(); - var _c = process.binding("constants"); - var tmpDir = osTmpDir(); - var RANDOM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - var TEMPLATE_PATTERN = /XXXXXX/; - var DEFAULT_TRIES = 3; - var CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR); - var EBADF = _c.EBADF || _c.os.errno.EBADF; - var ENOENT = _c.ENOENT || _c.os.errno.ENOENT; - var DIR_MODE = 448; - var FILE_MODE = 384; - var _removeObjects = []; - var _gracefulCleanup = false; - var _uncaughtException = false; - function _randomChars(howMany) { - var value = [], rnd = null; - try { - rnd = crypto.randomBytes(howMany); - } catch (e) { - rnd = crypto.pseudoRandomBytes(howMany); - } - for (var i = 0;i < howMany; i++) { - value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]); - } - return value.join(""); - } - function _isUndefined(obj) { - return typeof obj === "undefined"; - } - function _parseArguments(options, callback) { - if (typeof options == "function") { - return [callback || {}, options]; - } - if (_isUndefined(options)) { - return [{}, callback]; - } - return [options, callback]; - } - function _generateTmpName(opts) { - if (opts.name) { - return path.join(opts.dir || tmpDir, opts.name); - } - if (opts.template) { - return opts.template.replace(TEMPLATE_PATTERN, _randomChars(6)); - } - const name = [ - opts.prefix || "tmp-", - process.pid, - _randomChars(12), - opts.postfix || "" - ].join(""); - return path.join(opts.dir || tmpDir, name); - } - function tmpName(options, callback) { - var args = _parseArguments(options, callback), opts = args[0], cb = args[1], tries = opts.name ? 1 : opts.tries || DEFAULT_TRIES; - if (isNaN(tries) || tries < 0) - return cb(new Error("Invalid tries")); - if (opts.template && !opts.template.match(TEMPLATE_PATTERN)) - return cb(new Error("Invalid template provided")); - (function _getUniqueName() { - const name = _generateTmpName(opts); - fs.stat(name, function(err) { - if (!err) { - if (tries-- > 0) - return _getUniqueName(); - return cb(new Error("Could not get a unique tmp filename, max tries reached " + name)); - } - cb(null, name); - }); - })(); - } - function tmpNameSync(options) { - var args = _parseArguments(options), opts = args[0], tries = opts.name ? 1 : opts.tries || DEFAULT_TRIES; - if (isNaN(tries) || tries < 0) - throw new Error("Invalid tries"); - if (opts.template && !opts.template.match(TEMPLATE_PATTERN)) - throw new Error("Invalid template provided"); - do { - const name = _generateTmpName(opts); - try { - fs.statSync(name); - } catch (e) { - return name; - } - } while (tries-- > 0); - throw new Error("Could not get a unique tmp filename, max tries reached"); - } - function file(options, callback) { - var args = _parseArguments(options, callback), opts = args[0], cb = args[1]; - opts.postfix = _isUndefined(opts.postfix) ? ".tmp" : opts.postfix; - tmpName(opts, function _tmpNameCreated(err, name) { - if (err) - return cb(err); - fs.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err2, fd) { - if (err2) - return cb(err2); - if (opts.discardDescriptor) { - return fs.close(fd, function _discardCallback(err3) { - if (err3) { - try { - fs.unlinkSync(name); - } catch (e) { - if (!isENOENT(e)) { - err3 = e; - } - } - return cb(err3); - } - cb(null, name, undefined, _prepareTmpFileRemoveCallback(name, -1, opts)); - }); - } - if (opts.detachDescriptor) { - return cb(null, name, fd, _prepareTmpFileRemoveCallback(name, -1, opts)); - } - cb(null, name, fd, _prepareTmpFileRemoveCallback(name, fd, opts)); - }); - }); - } - function fileSync(options) { - var args = _parseArguments(options), opts = args[0]; - opts.postfix = opts.postfix || ".tmp"; - const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor; - const name = tmpNameSync(opts); - var fd = fs.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE); - if (opts.discardDescriptor) { - fs.closeSync(fd); - fd = undefined; - } - return { - name, - fd, - removeCallback: _prepareTmpFileRemoveCallback(name, discardOrDetachDescriptor ? -1 : fd, opts) - }; - } - function _rmdirRecursiveSync(root) { - const dirs = [root]; - do { - var dir2 = dirs.pop(), deferred = false, files = fs.readdirSync(dir2); - for (var i = 0, length = files.length;i < length; i++) { - var file2 = path.join(dir2, files[i]), stat = fs.lstatSync(file2); - if (stat.isDirectory()) { - if (!deferred) { - deferred = true; - dirs.push(dir2); - } - dirs.push(file2); - } else { - fs.unlinkSync(file2); - } - } - if (!deferred) { - fs.rmdirSync(dir2); - } - } while (dirs.length !== 0); - } - function dir(options, callback) { - var args = _parseArguments(options, callback), opts = args[0], cb = args[1]; - tmpName(opts, function _tmpNameCreated(err, name) { - if (err) - return cb(err); - fs.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err2) { - if (err2) - return cb(err2); - cb(null, name, _prepareTmpDirRemoveCallback(name, opts)); - }); - }); - } - function dirSync(options) { - var args = _parseArguments(options), opts = args[0]; - const name = tmpNameSync(opts); - fs.mkdirSync(name, opts.mode || DIR_MODE); - return { - name, - removeCallback: _prepareTmpDirRemoveCallback(name, opts) - }; - } - function _prepareTmpFileRemoveCallback(name, fd, opts) { - const removeCallback = _prepareRemoveCallback(function _removeCallback(fdPath) { - try { - if (0 <= fdPath[0]) { - fs.closeSync(fdPath[0]); - } - } catch (e) { - if (!isEBADF(e) && !isENOENT(e)) { - throw e; - } - } - try { - fs.unlinkSync(fdPath[1]); - } catch (e) { - if (!isENOENT(e)) { - throw e; - } - } - }, [fd, name]); - if (!opts.keep) { - _removeObjects.unshift(removeCallback); - } - return removeCallback; - } - function _prepareTmpDirRemoveCallback(name, opts) { - const removeFunction = opts.unsafeCleanup ? _rmdirRecursiveSync : fs.rmdirSync.bind(fs); - const removeCallback = _prepareRemoveCallback(removeFunction, name); - if (!opts.keep) { - _removeObjects.unshift(removeCallback); - } - return removeCallback; - } - function _prepareRemoveCallback(removeFunction, arg) { - var called = false; - return function _cleanupCallback(next) { - if (!called) { - const index = _removeObjects.indexOf(_cleanupCallback); - if (index >= 0) { - _removeObjects.splice(index, 1); - } - called = true; - removeFunction(arg); - } - if (next) - next(null); - }; - } - function _garbageCollector() { - if (_uncaughtException && !_gracefulCleanup) { - return; - } - while (_removeObjects.length) { - try { - _removeObjects[0].call(null); - } catch (e) { - } - } - } - function isEBADF(error) { - return isExpectedError(error, -EBADF, "EBADF"); - } - function isENOENT(error) { - return isExpectedError(error, -ENOENT, "ENOENT"); - } - function isExpectedError(error, code, errno) { - return error.code == code || error.code == errno; - } - function setGracefulCleanup() { - _gracefulCleanup = true; - } - var version = process.versions.node.split(".").map(function(value) { - return parseInt(value, 10); - }); - if (version[0] === 0 && (version[1] < 9 || version[1] === 9 && version[2] < 5)) { - process.addListener("uncaughtException", function _uncaughtExceptionThrown(err) { - _uncaughtException = true; - _garbageCollector(); - throw err; - }); - } - process.addListener("exit", function _exit(code) { - if (code) - _uncaughtException = true; - _garbageCollector(); - }); - exports.tmpdir = tmpDir; - exports.dir = dir; - exports.dirSync = dirSync; - exports.file = file; - exports.fileSync = fileSync; - exports.tmpName = tmpName; - exports.tmpNameSync = tmpNameSync; - exports.setGracefulCleanup = setGracefulCleanup; -}); - -// node_modules/external-editor/main/errors/CreateFileError.js -var require_CreateFileError = __commonJS((exports) => { - var __extends = exports && exports.__extends || function() { - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { - d2.__proto__ = b2; - } || function(d2, b2) { - for (var p in b2) - if (b2.hasOwnProperty(p)) - d2[p] = b2[p]; - }; - return extendStatics(d, b); - }; - return function(d, b) { - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); - }; - }(); - Object.defineProperty(exports, "__esModule", { value: true }); - var CreateFileError = function(_super) { - __extends(CreateFileError2, _super); - function CreateFileError2(originalError) { - var _newTarget = this.constructor; - var _this = _super.call(this, "Failed to create temporary file for editor") || this; - _this.originalError = originalError; - var proto = _newTarget.prototype; - if (Object.setPrototypeOf) { - Object.setPrototypeOf(_this, proto); - } else { - _this.__proto__ = _newTarget.prototype; - } - return _this; - } - return CreateFileError2; - }(Error); - exports.CreateFileError = CreateFileError; -}); - -// node_modules/external-editor/main/errors/LaunchEditorError.js -var require_LaunchEditorError = __commonJS((exports) => { - var __extends = exports && exports.__extends || function() { - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { - d2.__proto__ = b2; - } || function(d2, b2) { - for (var p in b2) - if (b2.hasOwnProperty(p)) - d2[p] = b2[p]; - }; - return extendStatics(d, b); - }; - return function(d, b) { - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); - }; - }(); - Object.defineProperty(exports, "__esModule", { value: true }); - var LaunchEditorError = function(_super) { - __extends(LaunchEditorError2, _super); - function LaunchEditorError2(originalError) { - var _newTarget = this.constructor; - var _this = _super.call(this, "Failed launch editor") || this; - _this.originalError = originalError; - var proto = _newTarget.prototype; - if (Object.setPrototypeOf) { - Object.setPrototypeOf(_this, proto); - } else { - _this.__proto__ = _newTarget.prototype; - } - return _this; - } - return LaunchEditorError2; - }(Error); - exports.LaunchEditorError = LaunchEditorError; -}); - -// node_modules/external-editor/main/errors/ReadFileError.js -var require_ReadFileError = __commonJS((exports) => { - var __extends = exports && exports.__extends || function() { - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { - d2.__proto__ = b2; - } || function(d2, b2) { - for (var p in b2) - if (b2.hasOwnProperty(p)) - d2[p] = b2[p]; - }; - return extendStatics(d, b); - }; - return function(d, b) { - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); - }; - }(); - Object.defineProperty(exports, "__esModule", { value: true }); - var ReadFileError = function(_super) { - __extends(ReadFileError2, _super); - function ReadFileError2(originalError) { - var _newTarget = this.constructor; - var _this = _super.call(this, "Failed to read temporary file") || this; - _this.originalError = originalError; - var proto = _newTarget.prototype; - if (Object.setPrototypeOf) { - Object.setPrototypeOf(_this, proto); - } else { - _this.__proto__ = _newTarget.prototype; - } - return _this; - } - return ReadFileError2; - }(Error); - exports.ReadFileError = ReadFileError; -}); - -// node_modules/external-editor/main/errors/RemoveFileError.js -var require_RemoveFileError = __commonJS((exports) => { - var __extends = exports && exports.__extends || function() { - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { - d2.__proto__ = b2; - } || function(d2, b2) { - for (var p in b2) - if (b2.hasOwnProperty(p)) - d2[p] = b2[p]; - }; - return extendStatics(d, b); - }; - return function(d, b) { - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); - }; - }(); - Object.defineProperty(exports, "__esModule", { value: true }); - var RemoveFileError = function(_super) { - __extends(RemoveFileError2, _super); - function RemoveFileError2(originalError) { - var _newTarget = this.constructor; - var _this = _super.call(this, "Failed to cleanup temporary file") || this; - _this.originalError = originalError; - var proto = _newTarget.prototype; - if (Object.setPrototypeOf) { - Object.setPrototypeOf(_this, proto); - } else { - _this.__proto__ = _newTarget.prototype; - } - return _this; - } - return RemoveFileError2; - }(Error); - exports.RemoveFileError = RemoveFileError; -}); - -// node_modules/external-editor/main/index.js -var require_main = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - var chardet_1 = require_chardet(); - var child_process_1 = __require("child_process"); - var fs_1 = __require("fs"); - var iconv_lite_1 = require_lib3(); - var tmp_1 = require_tmp(); - var CreateFileError_1 = require_CreateFileError(); - exports.CreateFileError = CreateFileError_1.CreateFileError; - var LaunchEditorError_1 = require_LaunchEditorError(); - exports.LaunchEditorError = LaunchEditorError_1.LaunchEditorError; - var ReadFileError_1 = require_ReadFileError(); - exports.ReadFileError = ReadFileError_1.ReadFileError; - var RemoveFileError_1 = require_RemoveFileError(); - exports.RemoveFileError = RemoveFileError_1.RemoveFileError; - function edit(text, fileOptions) { - if (text === undefined) { - text = ""; - } - var editor = new ExternalEditor(text, fileOptions); - editor.run(); - editor.cleanup(); - return editor.text; - } - exports.edit = edit; - function editAsync(text, callback, fileOptions) { - if (text === undefined) { - text = ""; - } - var editor = new ExternalEditor(text, fileOptions); - editor.runAsync(function(err, result) { - if (err) { - setImmediate(callback, err, null); - } else { - try { - editor.cleanup(); - setImmediate(callback, null, result); - } catch (cleanupError) { - setImmediate(callback, cleanupError, null); - } - } - }); - } - exports.editAsync = editAsync; - var ExternalEditor = function() { - function ExternalEditor2(text, fileOptions) { - if (text === undefined) { - text = ""; - } - this.text = ""; - this.fileOptions = {}; - this.text = text; - if (fileOptions) { - this.fileOptions = fileOptions; - } - this.determineEditor(); - this.createTemporaryFile(); - } - ExternalEditor2.splitStringBySpace = function(str) { - var pieces = []; - var currentString = ""; - for (var strIndex = 0;strIndex < str.length; strIndex++) { - var currentLetter = str[strIndex]; - if (strIndex > 0 && currentLetter === " " && str[strIndex - 1] !== "\\" && currentString.length > 0) { - pieces.push(currentString); - currentString = ""; - } else { - currentString += currentLetter; - } - } - if (currentString.length > 0) { - pieces.push(currentString); - } - return pieces; - }; - Object.defineProperty(ExternalEditor2.prototype, "temp_file", { - get: function() { - console.log("DEPRECATED: temp_file. Use tempFile moving forward."); - return this.tempFile; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ExternalEditor2.prototype, "last_exit_status", { - get: function() { - console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward."); - return this.lastExitStatus; - }, - enumerable: true, - configurable: true - }); - ExternalEditor2.prototype.run = function() { - this.launchEditor(); - this.readTemporaryFile(); - return this.text; - }; - ExternalEditor2.prototype.runAsync = function(callback) { - var _this = this; - try { - this.launchEditorAsync(function() { - try { - _this.readTemporaryFile(); - setImmediate(callback, null, _this.text); - } catch (readError) { - setImmediate(callback, readError, null); - } - }); - } catch (launchError) { - setImmediate(callback, launchError, null); - } - }; - ExternalEditor2.prototype.cleanup = function() { - this.removeTemporaryFile(); - }; - ExternalEditor2.prototype.determineEditor = function() { - var editor = process.env.VISUAL ? process.env.VISUAL : process.env.EDITOR ? process.env.EDITOR : /^win/.test(process.platform) ? "notepad" : "vim"; - var editorOpts = ExternalEditor2.splitStringBySpace(editor).map(function(piece) { - return piece.replace("\\ ", " "); - }); - var bin = editorOpts.shift(); - this.editor = { args: editorOpts, bin }; - }; - ExternalEditor2.prototype.createTemporaryFile = function() { - try { - this.tempFile = tmp_1.tmpNameSync(this.fileOptions); - var opt = { encoding: "utf8" }; - if (this.fileOptions.hasOwnProperty("mode")) { - opt.mode = this.fileOptions.mode; - } - fs_1.writeFileSync(this.tempFile, this.text, opt); - } catch (createFileError) { - throw new CreateFileError_1.CreateFileError(createFileError); - } - }; - ExternalEditor2.prototype.readTemporaryFile = function() { - try { - var tempFileBuffer = fs_1.readFileSync(this.tempFile); - if (tempFileBuffer.length === 0) { - this.text = ""; - } else { - var encoding = chardet_1.detect(tempFileBuffer).toString(); - if (!iconv_lite_1.encodingExists(encoding)) { - encoding = "utf8"; - } - this.text = iconv_lite_1.decode(tempFileBuffer, encoding); - } - } catch (readFileError) { - throw new ReadFileError_1.ReadFileError(readFileError); - } - }; - ExternalEditor2.prototype.removeTemporaryFile = function() { - try { - fs_1.unlinkSync(this.tempFile); - } catch (removeFileError) { - throw new RemoveFileError_1.RemoveFileError(removeFileError); - } - }; - ExternalEditor2.prototype.launchEditor = function() { - try { - var editorProcess = child_process_1.spawnSync(this.editor.bin, this.editor.args.concat([this.tempFile]), { stdio: "inherit" }); - this.lastExitStatus = editorProcess.status; - } catch (launchError) { - throw new LaunchEditorError_1.LaunchEditorError(launchError); - } - }; - ExternalEditor2.prototype.launchEditorAsync = function(callback) { - var _this = this; - try { - var editorProcess = child_process_1.spawn(this.editor.bin, this.editor.args.concat([this.tempFile]), { stdio: "inherit" }); - editorProcess.on("exit", function(code) { - _this.lastExitStatus = code; - setImmediate(callback); - }); - } catch (launchError) { - throw new LaunchEditorError_1.LaunchEditorError(launchError); - } - }; - return ExternalEditor2; - }(); - exports.ExternalEditor = ExternalEditor; -}); - -// node_modules/@inquirer/editor/dist/esm/index.js -import { AsyncResource as AsyncResource4 } from "node:async_hooks"; -var import_external_editor, editorTheme, esm_default3; -var init_esm4 = __esm(() => { - import_external_editor = __toESM(require_main(), 1); - init_esm2(); - editorTheme = { - validationFailureMode: "keep" - }; - esm_default3 = createPrompt((config, done) => { - const { waitForUseInput = true, file: { postfix = config.postfix ?? ".txt", ...fileProps } = {}, validate = () => true } = config; - const theme = makeTheme(editorTheme, config.theme); - const [status, setStatus] = useState("idle"); - const [value = "", setValue] = useState(config.default); - const [errorMsg, setError] = useState(); - const prefix = usePrefix({ status, theme }); - function startEditor(rl) { - rl.pause(); - const editCallback = AsyncResource4.bind(async (error2, answer) => { - rl.resume(); - if (error2) { - setError(error2.toString()); - } else { - setStatus("loading"); - const isValid = await validate(answer); - if (isValid === true) { - setError(undefined); - setStatus("done"); - done(answer); - } else { - if (theme.validationFailureMode === "clear") { - setValue(config.default); - } else { - setValue(answer); - } - setError(isValid || "You must provide a valid value"); - setStatus("idle"); - } - } - }); - import_external_editor.editAsync(value, (error2, answer) => void editCallback(error2, answer), { - postfix, - ...fileProps - }); - } - useEffect((rl) => { - if (!waitForUseInput) { - startEditor(rl); - } - }, []); - useKeypress((key2, rl) => { - if (status !== "idle") { - return; - } - if (isEnterKey(key2)) { - startEditor(rl); - } - }); - const message = theme.style.message(config.message, status); - let helpTip = ""; - if (status === "loading") { - helpTip = theme.style.help("Received"); - } else if (status === "idle") { - const enterKey = theme.style.key("enter"); - helpTip = theme.style.help(`Press ${enterKey} to launch your preferred editor.`); - } - let error = ""; - if (errorMsg) { - error = theme.style.error(errorMsg); - } - return [[prefix, message, helpTip].filter(Boolean).join(" "), error]; - }); -}); - -// node_modules/@inquirer/confirm/dist/esm/index.js -function getBooleanValue(value, defaultValue) { - let answer = defaultValue !== false; - if (/^(y|yes)/i.test(value)) - answer = true; - else if (/^(n|no)/i.test(value)) - answer = false; - return answer; -} -function boolToString(value) { - return value ? "Yes" : "No"; -} -var esm_default4; -var init_esm5 = __esm(() => { - init_esm2(); - esm_default4 = createPrompt((config, done) => { - const { transformer = boolToString } = config; - const [status, setStatus] = useState("idle"); - const [value, setValue] = useState(""); - const theme = makeTheme(config.theme); - const prefix = usePrefix({ status, theme }); - useKeypress((key2, rl) => { - if (isEnterKey(key2)) { - const answer = getBooleanValue(value, config.default); - setValue(transformer(answer)); - setStatus("done"); - done(answer); - } else if (key2.name === "tab") { - const answer = boolToString(!getBooleanValue(value, config.default)); - rl.clearLine(0); - rl.write(answer); - setValue(answer); - } else { - setValue(rl.line); - } - }); - let formattedValue = value; - let defaultValue = ""; - if (status === "done") { - formattedValue = theme.style.answer(value); - } else { - defaultValue = ` ${theme.style.defaultAnswer(config.default === false ? "y/N" : "Y/n")}`; - } - const message = theme.style.message(config.message, status); - return `${prefix} ${message}${defaultValue} ${formattedValue}`; - }); -}); - -// node_modules/@inquirer/input/dist/esm/index.js -var inputTheme, esm_default5; -var init_esm6 = __esm(() => { - init_esm2(); - inputTheme = { - validationFailureMode: "keep" - }; - esm_default5 = createPrompt((config, done) => { - const { required, validate = () => true } = config; - const theme = makeTheme(inputTheme, config.theme); - const [status, setStatus] = useState("idle"); - const [defaultValue = "", setDefaultValue] = useState(config.default); - const [errorMsg, setError] = useState(); - const [value, setValue] = useState(""); - const prefix = usePrefix({ status, theme }); - useKeypress(async (key2, rl) => { - if (status !== "idle") { - return; - } - if (isEnterKey(key2)) { - const answer = value || defaultValue; - setStatus("loading"); - const isValid = required && !answer ? "You must provide a value" : await validate(answer); - if (isValid === true) { - setValue(answer); - setStatus("done"); - done(answer); - } else { - if (theme.validationFailureMode === "clear") { - setValue(""); - } else { - rl.write(value); - } - setError(isValid || "You must provide a valid value"); - setStatus("idle"); - } - } else if (isBackspaceKey(key2) && !value) { - setDefaultValue(undefined); - } else if (key2.name === "tab" && !value) { - setDefaultValue(undefined); - rl.clearLine(0); - rl.write(defaultValue); - setValue(defaultValue); - } else { - setValue(rl.line); - setError(undefined); - } - }); - const message = theme.style.message(config.message, status); - let formattedValue = value; - if (typeof config.transformer === "function") { - formattedValue = config.transformer(value, { isFinal: status === "done" }); - } else if (status === "done") { - formattedValue = theme.style.answer(value); - } - let defaultStr; - if (defaultValue && status !== "done" && !value) { - defaultStr = theme.style.defaultAnswer(defaultValue); - } - let error = ""; - if (errorMsg) { - error = theme.style.error(errorMsg); - } - return [ - [prefix, message, defaultStr, formattedValue].filter((v) => v !== undefined).join(" "), - error - ]; - }); -}); - -// node_modules/@inquirer/number/dist/esm/index.js -function isStepOf(value, step, min) { - const valuePow = value * Math.pow(10, 6); - const stepPow = step * Math.pow(10, 6); - const minPow = min * Math.pow(10, 6); - return (valuePow - (Number.isFinite(min) ? minPow : 0)) % stepPow === 0; -} -function validateNumber(value, { min, max, step }) { - if (value == null || Number.isNaN(value)) { - return false; - } else if (value < min || value > max) { - return `Value must be between ${min} and ${max}`; - } else if (step !== "any" && !isStepOf(value, step, min)) { - return `Value must be a multiple of ${step}${Number.isFinite(min) ? ` starting from ${min}` : ""}`; - } - return true; -} -var esm_default6; -var init_esm7 = __esm(() => { - init_esm2(); - esm_default6 = createPrompt((config, done) => { - const { validate = () => true, min = -Infinity, max = Infinity, step = 1, required = false } = config; - const theme = makeTheme(config.theme); - const [status, setStatus] = useState("idle"); - const [value, setValue] = useState(""); - const validDefault = validateNumber(config.default, { min, max, step }) === true ? config.default?.toString() : undefined; - const [defaultValue = "", setDefaultValue] = useState(validDefault); - const [errorMsg, setError] = useState(); - const prefix = usePrefix({ status, theme }); - useKeypress(async (key2, rl) => { - if (status !== "idle") { - return; - } - if (isEnterKey(key2)) { - const input = value || defaultValue; - const answer = input === "" ? undefined : Number(input); - setStatus("loading"); - let isValid = true; - if (required || answer != null) { - isValid = validateNumber(answer, { min, max, step }); - } - if (isValid === true) { - isValid = await validate(answer); - } - if (isValid === true) { - setValue(String(answer ?? "")); - setStatus("done"); - done(answer); - } else { - rl.write(value); - setError(isValid || "You must provide a valid numeric value"); - setStatus("idle"); - } - } else if (isBackspaceKey(key2) && !value) { - setDefaultValue(undefined); - } else if (key2.name === "tab" && !value) { - setDefaultValue(undefined); - rl.clearLine(0); - rl.write(defaultValue); - setValue(defaultValue); - } else { - setValue(rl.line); - setError(undefined); - } - }); - const message = theme.style.message(config.message, status); - let formattedValue = value; - if (status === "done") { - formattedValue = theme.style.answer(value); - } - let defaultStr; - if (defaultValue && status !== "done" && !value) { - defaultStr = theme.style.defaultAnswer(defaultValue); - } - let error = ""; - if (errorMsg) { - error = theme.style.error(errorMsg); - } - return [ - [prefix, message, defaultStr, formattedValue].filter((v) => v !== undefined).join(" "), - error - ]; - }); -}); - -// node_modules/@inquirer/expand/dist/esm/index.js -function normalizeChoices2(choices) { - return choices.map((choice) => { - if (Separator.isSeparator(choice)) { - return choice; - } - const name = "name" in choice ? choice.name : String(choice.value); - const value = "value" in choice ? choice.value : name; - return { - value, - name, - key: choice.key.toLowerCase() - }; - }); -} -var import_yoctocolors_cjs4, helpChoice, esm_default7; -var init_esm8 = __esm(() => { - init_esm2(); - import_yoctocolors_cjs4 = __toESM(require_yoctocolors_cjs(), 1); - helpChoice = { - key: "h", - name: "Help, list all options", - value: undefined - }; - esm_default7 = createPrompt((config, done) => { - const { default: defaultKey = "h" } = config; - const choices = useMemo(() => normalizeChoices2(config.choices), [config.choices]); - const [status, setStatus] = useState("idle"); - const [value, setValue] = useState(""); - const [expanded, setExpanded] = useState(config.expanded ?? false); - const [errorMsg, setError] = useState(); - const theme = makeTheme(config.theme); - const prefix = usePrefix({ theme, status }); - useKeypress((event, rl) => { - if (isEnterKey(event)) { - const answer = (value || defaultKey).toLowerCase(); - if (answer === "h" && !expanded) { - setExpanded(true); - } else { - const selectedChoice = choices.find((choice) => !Separator.isSeparator(choice) && choice.key === answer); - if (selectedChoice) { - setStatus("done"); - setValue(answer); - done(selectedChoice.value); - } else if (value === "") { - setError("Please input a value"); - } else { - setError(`"${import_yoctocolors_cjs4.default.red(value)}" isn't an available option`); - } - } - } else { - setValue(rl.line); - setError(undefined); - } - }); - const message = theme.style.message(config.message, status); - if (status === "done") { - const selectedChoice = choices.find((choice) => !Separator.isSeparator(choice) && choice.key === value.toLowerCase()); - return `${prefix} ${message} ${theme.style.answer(selectedChoice.name)}`; - } - const allChoices = expanded ? choices : [...choices, helpChoice]; - let longChoices = ""; - let shortChoices = allChoices.map((choice) => { - if (Separator.isSeparator(choice)) - return ""; - if (choice.key === defaultKey) { - return choice.key.toUpperCase(); - } - return choice.key; - }).join(""); - shortChoices = ` ${theme.style.defaultAnswer(shortChoices)}`; - if (expanded) { - shortChoices = ""; - longChoices = allChoices.map((choice) => { - if (Separator.isSeparator(choice)) { - return ` ${choice.separator}`; - } - const line = ` ${choice.key}) ${choice.name}`; - if (choice.key === value.toLowerCase()) { - return theme.style.highlight(line); - } - return line; - }).join(` -`); - } - let helpTip = ""; - const currentOption = choices.find((choice) => !Separator.isSeparator(choice) && choice.key === value.toLowerCase()); - if (currentOption) { - helpTip = `${import_yoctocolors_cjs4.default.cyan(">>")} ${currentOption.name}`; - } - let error = ""; - if (errorMsg) { - error = theme.style.error(errorMsg); - } - return [ - `${prefix} ${message}${shortChoices} ${value}`, - [longChoices, helpTip, error].filter(Boolean).join(` -`) - ]; - }); -}); - -// node_modules/@inquirer/rawlist/dist/esm/index.js -function isSelectableChoice(choice) { - return choice != null && !Separator.isSeparator(choice); -} -function normalizeChoices3(choices) { - let index = 0; - return choices.map((choice) => { - if (Separator.isSeparator(choice)) - return choice; - index += 1; - if (typeof choice === "string") { - return { - value: choice, - name: choice, - short: choice, - key: String(index) - }; - } - const name = choice.name ?? String(choice.value); - return { - value: choice.value, - name, - short: choice.short ?? name, - key: choice.key ?? String(index) - }; - }); -} -var import_yoctocolors_cjs5, numberRegex, esm_default8; -var init_esm9 = __esm(() => { - init_esm2(); - import_yoctocolors_cjs5 = __toESM(require_yoctocolors_cjs(), 1); - numberRegex = /\d+/; - esm_default8 = createPrompt((config, done) => { - const choices = useMemo(() => normalizeChoices3(config.choices), [config.choices]); - const [status, setStatus] = useState("idle"); - const [value, setValue] = useState(""); - const [errorMsg, setError] = useState(); - const theme = makeTheme(config.theme); - const prefix = usePrefix({ status, theme }); - useKeypress((key2, rl) => { - if (isEnterKey(key2)) { - let selectedChoice; - if (numberRegex.test(value)) { - const answer = Number.parseInt(value, 10) - 1; - selectedChoice = choices.filter(isSelectableChoice)[answer]; - } else { - selectedChoice = choices.find((choice) => isSelectableChoice(choice) && choice.key === value); - } - if (isSelectableChoice(selectedChoice)) { - setValue(selectedChoice.short); - setStatus("done"); - done(selectedChoice.value); - } else if (value === "") { - setError("Please input a value"); - } else { - setError(`"${import_yoctocolors_cjs5.default.red(value)}" isn't an available option`); - } - } else { - setValue(rl.line); - setError(undefined); - } - }); - const message = theme.style.message(config.message, status); - if (status === "done") { - return `${prefix} ${message} ${theme.style.answer(value)}`; - } - const choicesStr = choices.map((choice) => { - if (Separator.isSeparator(choice)) { - return ` ${choice.separator}`; - } - const line = ` ${choice.key}) ${choice.name}`; - if (choice.key === value.toLowerCase()) { - return theme.style.highlight(line); - } - return line; - }).join(` -`); - let error = ""; - if (errorMsg) { - error = theme.style.error(errorMsg); - } - return [ - `${prefix} ${message} ${value}`, - [choicesStr, error].filter(Boolean).join(` -`) - ]; - }); -}); - -// node_modules/@inquirer/password/dist/esm/index.js -var import_ansi_escapes3, esm_default9; -var init_esm10 = __esm(() => { - init_esm2(); - import_ansi_escapes3 = __toESM(require_ansi_escapes(), 1); - esm_default9 = createPrompt((config, done) => { - const { validate = () => true } = config; - const theme = makeTheme(config.theme); - const [status, setStatus] = useState("idle"); - const [errorMsg, setError] = useState(); - const [value, setValue] = useState(""); - const prefix = usePrefix({ status, theme }); - useKeypress(async (key2, rl) => { - if (status !== "idle") { - return; - } - if (isEnterKey(key2)) { - const answer = value; - setStatus("loading"); - const isValid = await validate(answer); - if (isValid === true) { - setValue(answer); - setStatus("done"); - done(answer); - } else { - rl.write(value); - setError(isValid || "You must provide a valid value"); - setStatus("idle"); - } - } else { - setValue(rl.line); - setError(undefined); - } - }); - const message = theme.style.message(config.message, status); - let formattedValue = ""; - let helpTip; - if (config.mask) { - const maskChar = typeof config.mask === "string" ? config.mask : "*"; - formattedValue = maskChar.repeat(value.length); - } else if (status !== "done") { - helpTip = `${theme.style.help("[input is masked]")}${import_ansi_escapes3.default.cursorHide}`; - } - if (status === "done") { - formattedValue = theme.style.answer(formattedValue); - } - let error = ""; - if (errorMsg) { - error = theme.style.error(errorMsg); - } - return [[prefix, message, config.mask ? formattedValue : helpTip].join(" "), error]; - }); -}); - -// node_modules/@inquirer/search/dist/esm/index.js -function isSelectable2(item) { - return !Separator.isSeparator(item) && !item.disabled; -} -function normalizeChoices4(choices) { - return choices.map((choice) => { - if (Separator.isSeparator(choice)) - return choice; - if (typeof choice === "string") { - return { - value: choice, - name: choice, - short: choice, - disabled: false - }; - } - const name = choice.name ?? String(choice.value); - return { - value: choice.value, - name, - description: choice.description, - short: choice.short ?? name, - disabled: choice.disabled ?? false - }; - }); -} -var import_yoctocolors_cjs6, searchTheme, esm_default10; -var init_esm11 = __esm(() => { - init_esm2(); - import_yoctocolors_cjs6 = __toESM(require_yoctocolors_cjs(), 1); - init_esm(); - searchTheme = { - icon: { cursor: esm_default.pointer }, - style: { - disabled: (text) => import_yoctocolors_cjs6.default.dim(`- ${text}`), - searchTerm: (text) => import_yoctocolors_cjs6.default.cyan(text), - description: (text) => import_yoctocolors_cjs6.default.cyan(text) + dots: { + interval: 80, + frames: [ + "ā ‹", + "ā ™", + "ā ¹", + "ā ø", + "ā ¼", + "ā “", + "ā ¦", + "ā §", + "ā ‡", + "ā " + ] + }, + dots2: { + interval: 80, + frames: [ + "ā£¾", + "ā£½", + "ā£»", + "ā¢æ", + "ā”æ", + "ā£Ÿ", + "ā£Æ", + "ā£·" + ] + }, + dots3: { + interval: 80, + frames: [ + "ā ‹", + "ā ™", + "ā š", + "ā ž", + "ā –", + "ā ¦", + "ā “", + "ā ²", + "ā ³", + "ā “" + ] + }, + dots4: { + interval: 80, + frames: [ + "ā „", + "ā †", + "ā ‡", + "ā ‹", + "ā ™", + "ā ø", + "ā °", + "ā  ", + "ā °", + "ā ø", + "ā ™", + "ā ‹", + "ā ‡", + "ā †" + ] + }, + dots5: { + interval: 80, + frames: [ + "ā ‹", + "ā ™", + "ā š", + "ā ’", + "ā ‚", + "ā ‚", + "ā ’", + "ā ²", + "ā “", + "ā ¦", + "ā –", + "ā ’", + "ā ", + "ā ", + "ā ’", + "ā “", + "ā ‹" + ] + }, + dots6: { + interval: 80, + frames: [ + "ā ", + "ā ‰", + "ā ™", + "ā š", + "ā ’", + "ā ‚", + "ā ‚", + "ā ’", + "ā ²", + "ā “", + "ā ¤", + "ā „", + "ā „", + "ā ¤", + "ā “", + "ā ²", + "ā ’", + "ā ‚", + "ā ‚", + "ā ’", + "ā š", + "ā ™", + "ā ‰", + "ā " + ] + }, + dots7: { + interval: 80, + frames: [ + "ā ˆ", + "ā ‰", + "ā ‹", + "ā “", + "ā ’", + "ā ", + "ā ", + "ā ’", + "ā –", + "ā ¦", + "ā ¤", + "ā  ", + "ā  ", + "ā ¤", + "ā ¦", + "ā –", + "ā ’", + "ā ", + "ā ", + "ā ’", + "ā “", + "ā ‹", + "ā ‰", + "ā ˆ" + ] + }, + dots8: { + interval: 80, + frames: [ + "ā ", + "ā ", + "ā ‰", + "ā ™", + "ā š", + "ā ’", + "ā ‚", + "ā ‚", + "ā ’", + "ā ²", + "ā “", + "ā ¤", + "ā „", + "ā „", + "ā ¤", + "ā  ", + "ā  ", + "ā ¤", + "ā ¦", + "ā –", + "ā ’", + "ā ", + "ā ", + "ā ’", + "ā “", + "ā ‹", + "ā ‰", + "ā ˆ", + "ā ˆ" + ] + }, + dots9: { + interval: 80, + frames: [ + "ā¢¹", + "ā¢ŗ", + "ā¢¼", + "ā£ø", + "ā£‡", + "ā”§", + "ā”—", + "ā”" + ] + }, + dots10: { + interval: 80, + frames: [ + "ā¢„", + "ā¢‚", + "ā¢", + "ā”", + "ā”ˆ", + "ā”", + "ā” " + ] + }, + dots11: { + interval: 100, + frames: [ + "ā ", + "ā ‚", + "ā „", + "ā”€", + "ā¢€", + "ā  ", + "ā ", + "ā ˆ" + ] + }, + dots12: { + interval: 80, + frames: [ + "ā¢€ā €", + "ā”€ā €", + "ā „ā €", + "ā¢‚ā €", + "ā”‚ā €", + "ā …ā €", + "ā¢ƒā €", + "ā”ƒā €", + "ā ā €", + "ā¢‹ā €", + "ā”‹ā €", + "ā ā ", + "ā¢‹ā ", + "ā”‹ā ", + "ā ā ‰", + "ā ‹ā ‰", + "ā ‹ā ‰", + "ā ‰ā ™", + "ā ‰ā ™", + "ā ‰ā ©", + "ā ˆā¢™", + "ā ˆā”™", + "ā¢ˆā ©", + "ā”€ā¢™", + "ā „ā”™", + "ā¢‚ā ©", + "ā”‚ā¢˜", + "ā …ā”˜", + "ā¢ƒā Ø", + "ā”ƒā¢", + "ā ā”", + "ā¢‹ā  ", + "ā”‹ā¢€", + "ā ā”", + "ā¢‹ā ", + "ā”‹ā ", + "ā ā ‰", + "ā ‹ā ‰", + "ā ‹ā ‰", + "ā ‰ā ™", + "ā ‰ā ™", + "ā ‰ā ©", + "ā ˆā¢™", + "ā ˆā”™", + "ā ˆā ©", + "ā €ā¢™", + "ā €ā”™", + "ā €ā ©", + "ā €ā¢˜", + "ā €ā”˜", + "ā €ā Ø", + "ā €ā¢", + "ā €ā”", + "ā €ā  ", + "ā €ā¢€", + "ā €ā”€" + ] + }, + dots13: { + interval: 80, + frames: [ + "ā£¼", + "ā£¹", + "ā¢»", + "ā æ", + "ā”Ÿ", + "ā£", + "ā£§", + "ā£¶" + ] + }, + dots8Bit: { + interval: 80, + frames: [ + "ā €", + "ā ", + "ā ‚", + "ā ƒ", + "ā „", + "ā …", + "ā †", + "ā ‡", + "ā”€", + "ā”", + "ā”‚", + "ā”ƒ", + "ā”„", + "ā”…", + "ā”†", + "ā”‡", + "ā ˆ", + "ā ‰", + "ā Š", + "ā ‹", + "ā Œ", + "ā ", + "ā Ž", + "ā ", + "ā”ˆ", + "ā”‰", + "ā”Š", + "ā”‹", + "ā”Œ", + "ā”", + "ā”Ž", + "ā”", + "ā ", + "ā ‘", + "ā ’", + "ā “", + "ā ”", + "ā •", + "ā –", + "ā —", + "ā”", + "ā”‘", + "ā”’", + "ā”“", + "ā””", + "ā”•", + "ā”–", + "ā”—", + "ā ˜", + "ā ™", + "ā š", + "ā ›", + "ā œ", + "ā ", + "ā ž", + "ā Ÿ", + "ā”˜", + "ā”™", + "ā”š", + "ā”›", + "ā”œ", + "ā”", + "ā”ž", + "ā”Ÿ", + "ā  ", + "ā ”", + "ā ¢", + "ā £", + "ā ¤", + "ā „", + "ā ¦", + "ā §", + "ā” ", + "ā””", + "ā”¢", + "ā”£", + "ā”¤", + "ā”„", + "ā”¦", + "ā”§", + "ā Ø", + "ā ©", + "ā Ŗ", + "ā «", + "ā ¬", + "ā ­", + "ā ®", + "ā Æ", + "ā”Ø", + "ā”©", + "ā”Ŗ", + "ā”«", + "ā”¬", + "ā”­", + "ā”®", + "ā”Æ", + "ā °", + "ā ±", + "ā ²", + "ā ³", + "ā “", + "ā µ", + "ā ¶", + "ā ·", + "ā”°", + "ā”±", + "ā”²", + "ā”³", + "ā”“", + "ā”µ", + "ā”¶", + "ā”·", + "ā ø", + "ā ¹", + "ā ŗ", + "ā »", + "ā ¼", + "ā ½", + "ā ¾", + "ā æ", + "ā”ø", + "ā”¹", + "ā”ŗ", + "ā”»", + "ā”¼", + "ā”½", + "ā”¾", + "ā”æ", + "ā¢€", + "ā¢", + "ā¢‚", + "ā¢ƒ", + "ā¢„", + "ā¢…", + "ā¢†", + "ā¢‡", + "ā£€", + "ā£", + "ā£‚", + "ā£ƒ", + "ā£„", + "ā£…", + "ā£†", + "ā£‡", + "ā¢ˆ", + "ā¢‰", + "ā¢Š", + "ā¢‹", + "ā¢Œ", + "ā¢", + "ā¢Ž", + "ā¢", + "ā£ˆ", + "ā£‰", + "ā£Š", + "ā£‹", + "ā£Œ", + "ā£", + "ā£Ž", + "ā£", + "ā¢", + "ā¢‘", + "ā¢’", + "ā¢“", + "ā¢”", + "ā¢•", + "ā¢–", + "ā¢—", + "ā£", + "ā£‘", + "ā£’", + "ā£“", + "ā£”", + "ā£•", + "ā£–", + "ā£—", + "ā¢˜", + "ā¢™", + "ā¢š", + "ā¢›", + "ā¢œ", + "ā¢", + "ā¢ž", + "ā¢Ÿ", + "ā£˜", + "ā£™", + "ā£š", + "ā£›", + "ā£œ", + "ā£", + "ā£ž", + "ā£Ÿ", + "ā¢ ", + "ā¢”", + "ā¢¢", + "ā¢£", + "ā¢¤", + "ā¢„", + "ā¢¦", + "ā¢§", + "ā£ ", + "ā£”", + "ā£¢", + "ā££", + "ā£¤", + "ā£„", + "ā£¦", + "ā£§", + "ā¢Ø", + "ā¢©", + "ā¢Ŗ", + "ā¢«", + "ā¢¬", + "ā¢­", + "ā¢®", + "ā¢Æ", + "ā£Ø", + "ā£©", + "ā£Ŗ", + "ā£«", + "ā£¬", + "ā£­", + "ā£®", + "ā£Æ", + "ā¢°", + "ā¢±", + "ā¢²", + "ā¢³", + "ā¢“", + "ā¢µ", + "ā¢¶", + "ā¢·", + "ā£°", + "ā£±", + "ā£²", + "ā£³", + "ā£“", + "ā£µ", + "ā£¶", + "ā£·", + "ā¢ø", + "ā¢¹", + "ā¢ŗ", + "ā¢»", + "ā¢¼", + "ā¢½", + "ā¢¾", + "ā¢æ", + "ā£ø", + "ā£¹", + "ā£ŗ", + "ā£»", + "ā£¼", + "ā£½", + "ā£¾", + "ā£æ" + ] + }, + sand: { + interval: 80, + frames: [ + "ā ", + "ā ‚", + "ā „", + "ā”€", + "ā”ˆ", + "ā”", + "ā” ", + "ā£€", + "ā£", + "ā£‚", + "ā£„", + "ā£Œ", + "ā£”", + "ā£¤", + "ā£„", + "ā£¦", + "ā£®", + "ā£¶", + "ā£·", + "ā£æ", + "ā”æ", + "ā æ", + "ā¢Ÿ", + "ā Ÿ", + "ā”›", + "ā ›", + "ā «", + "ā¢‹", + "ā ‹", + "ā ", + "ā”‰", + "ā ‰", + "ā ‘", + "ā ”", + "ā¢" + ] + }, + line: { + interval: 130, + frames: [ + "-", + "\\", + "|", + "/" + ] + }, + line2: { + interval: 100, + frames: [ + "ā ‚", + "-", + "ā€“", + "ā€”", + "ā€“", + "-" + ] + }, + pipe: { + interval: 100, + frames: [ + "ā”¤", + "ā”˜", + "ā”“", + "ā””", + "ā”œ", + "ā”Œ", + "ā”¬", + "ā”" + ] + }, + simpleDots: { + interval: 400, + frames: [ + ". ", + ".. ", + "...", + " " + ] + }, + simpleDotsScrolling: { + interval: 200, + frames: [ + ". ", + ".. ", + "...", + " ..", + " .", + " " + ] + }, + star: { + interval: 70, + frames: [ + "āœ¶", + "āœø", + "āœ¹", + "āœŗ", + "āœ¹", + "āœ·" + ] + }, + star2: { + interval: 80, + frames: [ + "+", + "x", + "*" + ] + }, + flip: { + interval: 70, + frames: [ + "_", + "_", + "_", + "-", + "`", + "`", + "'", + "Ā“", + "-", + "_", + "_", + "_" + ] + }, + hamburger: { + interval: 100, + frames: [ + "ā˜±", + "ā˜²", + "ā˜“" + ] + }, + growVertical: { + interval: 120, + frames: [ + "ā–", + "ā–ƒ", + "ā–„", + "ā–…", + "ā–†", + "ā–‡", + "ā–†", + "ā–…", + "ā–„", + "ā–ƒ" + ] + }, + growHorizontal: { + interval: 120, + frames: [ + "ā–", + "ā–Ž", + "ā–", + "ā–Œ", + "ā–‹", + "ā–Š", + "ā–‰", + "ā–Š", + "ā–‹", + "ā–Œ", + "ā–", + "ā–Ž" + ] + }, + balloon: { + interval: 140, + frames: [ + " ", + ".", + "o", + "O", + "@", + "*", + " " + ] + }, + balloon2: { + interval: 120, + frames: [ + ".", + "o", + "O", + "Ā°", + "O", + "o", + "." + ] + }, + noise: { + interval: 100, + frames: [ + "ā–“", + "ā–’", + "ā–‘" + ] + }, + bounce: { + interval: 120, + frames: [ + "ā ", + "ā ‚", + "ā „", + "ā ‚" + ] + }, + boxBounce: { + interval: 120, + frames: [ + "ā––", + "ā–˜", + "ā–", + "ā–—" + ] + }, + boxBounce2: { + interval: 100, + frames: [ + "ā–Œ", + "ā–€", + "ā–", + "ā–„" + ] + }, + triangle: { + interval: 50, + frames: [ + "ā—¢", + "ā—£", + "ā—¤", + "ā—„" + ] + }, + binary: { + interval: 80, + frames: [ + "010010", + "001100", + "100101", + "111010", + "111101", + "010111", + "101011", + "111000", + "110011", + "110101" + ] + }, + arc: { + interval: 100, + frames: [ + "ā—œ", + "ā— ", + "ā—", + "ā—ž", + "ā—”", + "ā—Ÿ" + ] + }, + circle: { + interval: 120, + frames: [ + "ā—”", + "āŠ™", + "ā— " + ] }, - helpMode: "auto" - }; - esm_default10 = createPrompt((config, done) => { - const { pageSize = 7, validate = () => true } = config; - const theme = makeTheme(searchTheme, config.theme); - const firstRender = useRef(true); - const [status, setStatus] = useState("loading"); - const [searchTerm, setSearchTerm] = useState(""); - const [searchResults, setSearchResults] = useState([]); - const [searchError, setSearchError] = useState(); - const prefix = usePrefix({ status, theme }); - const bounds = useMemo(() => { - const first = searchResults.findIndex(isSelectable2); - const last = searchResults.findLastIndex(isSelectable2); - return { first, last }; - }, [searchResults]); - const [active = bounds.first, setActive] = useState(); - useEffect(() => { - const controller = new AbortController; - setStatus("loading"); - setSearchError(undefined); - const fetchResults = async () => { - try { - const results = await config.source(searchTerm || undefined, { - signal: controller.signal - }); - if (!controller.signal.aborted) { - setActive(undefined); - setSearchError(undefined); - setSearchResults(normalizeChoices4(results)); - setStatus("idle"); - } - } catch (error2) { - if (!controller.signal.aborted && error2 instanceof Error) { - setSearchError(error2.message); - } - } - }; - fetchResults(); - return () => { - controller.abort(); - }; - }, [searchTerm]); - const selectedChoice = searchResults[active]; - useKeypress(async (key2, rl) => { - if (isEnterKey(key2)) { - if (selectedChoice) { - setStatus("loading"); - const isValid = await validate(selectedChoice.value); - setStatus("idle"); - if (isValid === true) { - setStatus("done"); - done(selectedChoice.value); - } else if (selectedChoice.name === searchTerm) { - setSearchError(isValid || "You must provide a valid value"); - } else { - rl.write(selectedChoice.name); - setSearchTerm(selectedChoice.name); - } - } else { - rl.write(searchTerm); - } - } else if (key2.name === "tab" && selectedChoice) { - rl.clearLine(0); - rl.write(selectedChoice.name); - setSearchTerm(selectedChoice.name); - } else if (status !== "loading" && (key2.name === "up" || key2.name === "down")) { - rl.clearLine(0); - if (key2.name === "up" && active !== bounds.first || key2.name === "down" && active !== bounds.last) { - const offset = key2.name === "up" ? -1 : 1; - let next = active; - do { - next = (next + offset + searchResults.length) % searchResults.length; - } while (!isSelectable2(searchResults[next])); - setActive(next); - } - } else { - setSearchTerm(rl.line); - } - }); - const message = theme.style.message(config.message, status); - if (active > 0) { - firstRender.current = false; - } - let helpTip = ""; - if (searchResults.length > 1 && (theme.helpMode === "always" || theme.helpMode === "auto" && firstRender.current)) { - helpTip = searchResults.length > pageSize ? ` -${theme.style.help("(Use arrow keys to reveal more choices)")}` : ` -${theme.style.help("(Use arrow keys)")}`; - } - const page = usePagination({ - items: searchResults, - active, - renderItem({ item, isActive }) { - if (Separator.isSeparator(item)) { - return ` ${item.separator}`; - } - if (item.disabled) { - const disabledLabel = typeof item.disabled === "string" ? item.disabled : "(disabled)"; - return theme.style.disabled(`${item.name} ${disabledLabel}`); - } - const color = isActive ? theme.style.highlight : (x) => x; - const cursor = isActive ? theme.icon.cursor : ` `; - return color(`${cursor} ${item.name}`); - }, - pageSize, - loop: false - }); - let error; - if (searchError) { - error = theme.style.error(searchError); - } else if (searchResults.length === 0 && searchTerm !== "" && status === "idle") { - error = theme.style.error("No results found"); - } - let searchStr; - if (status === "done" && selectedChoice) { - const answer = selectedChoice.short; - return `${prefix} ${message} ${theme.style.answer(answer)}`; - } else { - searchStr = theme.style.searchTerm(searchTerm); - } - const choiceDescription = selectedChoice?.description ? ` -${theme.style.description(selectedChoice.description)}` : ``; - return [ - [prefix, message, searchStr].filter(Boolean).join(" "), - `${error ?? page}${helpTip}${choiceDescription}` - ]; - }); -}); - -// node_modules/@inquirer/select/dist/esm/index.js -function isSelectable3(item) { - return !Separator.isSeparator(item) && !item.disabled; -} -function normalizeChoices5(choices) { - return choices.map((choice) => { - if (Separator.isSeparator(choice)) - return choice; - if (typeof choice === "string") { - return { - value: choice, - name: choice, - short: choice, - disabled: false - }; - } - const name = choice.name ?? String(choice.value); - return { - value: choice.value, - name, - description: choice.description, - short: choice.short ?? name, - disabled: choice.disabled ?? false - }; - }); -} -var import_yoctocolors_cjs7, import_ansi_escapes4, selectTheme, esm_default11; -var init_esm12 = __esm(() => { - init_esm2(); - import_yoctocolors_cjs7 = __toESM(require_yoctocolors_cjs(), 1); - init_esm(); - import_ansi_escapes4 = __toESM(require_ansi_escapes(), 1); - selectTheme = { - icon: { cursor: esm_default.pointer }, - style: { - disabled: (text) => import_yoctocolors_cjs7.default.dim(`- ${text}`), - description: (text) => import_yoctocolors_cjs7.default.cyan(text) + squareCorners: { + interval: 180, + frames: [ + "ā—°", + "ā—³", + "ā—²", + "ā—±" + ] + }, + circleQuarters: { + interval: 120, + frames: [ + "ā—“", + "ā—·", + "ā—¶", + "ā—µ" + ] + }, + circleHalves: { + interval: 50, + frames: [ + "ā—", + "ā—“", + "ā—‘", + "ā—’" + ] + }, + squish: { + interval: 100, + frames: [ + "ā•«", + "ā•Ŗ" + ] + }, + toggle: { + interval: 250, + frames: [ + "āŠ¶", + "āŠ·" + ] + }, + toggle2: { + interval: 80, + frames: [ + "ā–«", + "ā–Ŗ" + ] + }, + toggle3: { + interval: 120, + frames: [ + "ā–”", + "ā– " + ] + }, + toggle4: { + interval: 100, + frames: [ + "ā– ", + "ā–”", + "ā–Ŗ", + "ā–«" + ] + }, + toggle5: { + interval: 100, + frames: [ + "ā–®", + "ā–Æ" + ] + }, + toggle6: { + interval: 300, + frames: [ + "į€", + "į€" + ] + }, + toggle7: { + interval: 80, + frames: [ + "ā¦¾", + "ā¦æ" + ] + }, + toggle8: { + interval: 100, + frames: [ + "ā—", + "ā—Œ" + ] + }, + toggle9: { + interval: 100, + frames: [ + "ā—‰", + "ā—Ž" + ] + }, + toggle10: { + interval: 100, + frames: [ + "抂", + "技", + "抁" + ] + }, + toggle11: { + interval: 50, + frames: [ + "ā§‡", + "ā§†" + ] + }, + toggle12: { + interval: 120, + frames: [ + "ā˜—", + "ā˜–" + ] + }, + toggle13: { + interval: 80, + frames: [ + "=", + "*", + "-" + ] + }, + arrow: { + interval: 100, + frames: [ + "ā†", + "ā†–", + "ā†‘", + "ā†—", + "ā†’", + "ā†˜", + "ā†“", + "ā†™" + ] + }, + arrow2: { + interval: 80, + frames: [ + "ā¬†ļø ", + "ā†—ļø ", + "āž”ļø ", + "ā†˜ļø ", + "ā¬‡ļø ", + "ā†™ļø ", + "ā¬…ļø ", + "ā†–ļø " + ] + }, + arrow3: { + interval: 120, + frames: [ + "ā–¹ā–¹ā–¹ā–¹ā–¹", + "ā–øā–¹ā–¹ā–¹ā–¹", + "ā–¹ā–øā–¹ā–¹ā–¹", + "ā–¹ā–¹ā–øā–¹ā–¹", + "ā–¹ā–¹ā–¹ā–øā–¹", + "ā–¹ā–¹ā–¹ā–¹ā–ø" + ] + }, + bouncingBar: { + interval: 80, + frames: [ + "[ ]", + "[= ]", + "[== ]", + "[=== ]", + "[====]", + "[ ===]", + "[ ==]", + "[ =]", + "[ ]", + "[ =]", + "[ ==]", + "[ ===]", + "[====]", + "[=== ]", + "[== ]", + "[= ]" + ] + }, + bouncingBall: { + interval: 80, + frames: [ + "( ā— )", + "( ā— )", + "( ā— )", + "( ā— )", + "( ā—)", + "( ā— )", + "( ā— )", + "( ā— )", + "( ā— )", + "(ā— )" + ] + }, + smiley: { + interval: 200, + frames: [ + "\uD83D\uDE04 ", + "\uD83D\uDE1D " + ] + }, + monkey: { + interval: 300, + frames: [ + "\uD83D\uDE48 ", + "\uD83D\uDE48 ", + "\uD83D\uDE49 ", + "\uD83D\uDE4A " + ] + }, + hearts: { + interval: 100, + frames: [ + "\uD83D\uDC9B ", + "\uD83D\uDC99 ", + "\uD83D\uDC9C ", + "\uD83D\uDC9A ", + "ā¤ļø " + ] + }, + clock: { + interval: 100, + frames: [ + "\uD83D\uDD5B ", + "\uD83D\uDD50 ", + "\uD83D\uDD51 ", + "\uD83D\uDD52 ", + "\uD83D\uDD53 ", + "\uD83D\uDD54 ", + "\uD83D\uDD55 ", + "\uD83D\uDD56 ", + "\uD83D\uDD57 ", + "\uD83D\uDD58 ", + "\uD83D\uDD59 ", + "\uD83D\uDD5A " + ] + }, + earth: { + interval: 180, + frames: [ + "\uD83C\uDF0D ", + "\uD83C\uDF0E ", + "\uD83C\uDF0F " + ] + }, + material: { + interval: 17, + frames: [ + "ā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–", + "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", + "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", + "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", + "ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–", + "ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", + "ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", + "ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–", + "ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–", + "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", + "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", + "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", + "ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆ", + "ā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", + "ā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", + "ā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", + "ā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆ", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–", + "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–", + "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", + "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", + "ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–", + "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", + "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", + "ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", + "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–" + ] }, - helpMode: "auto" - }; - esm_default11 = createPrompt((config, done) => { - const { loop = true, pageSize = 7 } = config; - const firstRender = useRef(true); - const theme = makeTheme(selectTheme, config.theme); - const [status, setStatus] = useState("idle"); - const prefix = usePrefix({ status, theme }); - const searchTimeoutRef = useRef(); - const items = useMemo(() => normalizeChoices5(config.choices), [config.choices]); - const bounds = useMemo(() => { - const first = items.findIndex(isSelectable3); - const last = items.findLastIndex(isSelectable3); - if (first === -1) { - throw new ValidationError("[select prompt] No selectable choices. All choices are disabled."); - } - return { first, last }; - }, [items]); - const defaultItemIndex = useMemo(() => { - if (!("default" in config)) - return -1; - return items.findIndex((item) => isSelectable3(item) && item.value === config.default); - }, [config.default, items]); - const [active, setActive] = useState(defaultItemIndex === -1 ? bounds.first : defaultItemIndex); - const selectedChoice = items[active]; - useKeypress((key2, rl) => { - clearTimeout(searchTimeoutRef.current); - if (isEnterKey(key2)) { - setStatus("done"); - done(selectedChoice.value); - } else if (isUpKey(key2) || isDownKey(key2)) { - rl.clearLine(0); - if (loop || isUpKey(key2) && active !== bounds.first || isDownKey(key2) && active !== bounds.last) { - const offset = isUpKey(key2) ? -1 : 1; - let next = active; - do { - next = (next + offset + items.length) % items.length; - } while (!isSelectable3(items[next])); - setActive(next); - } - } else if (isNumberKey(key2)) { - rl.clearLine(0); - const position = Number(key2.name) - 1; - const item = items[position]; - if (item != null && isSelectable3(item)) { - setActive(position); - } - } else if (isBackspaceKey(key2)) { - rl.clearLine(0); - } else { - const searchTerm = rl.line.toLowerCase(); - const matchIndex = items.findIndex((item) => { - if (Separator.isSeparator(item) || !isSelectable3(item)) - return false; - return item.name.toLowerCase().startsWith(searchTerm); - }); - if (matchIndex !== -1) { - setActive(matchIndex); - } - searchTimeoutRef.current = setTimeout(() => { - rl.clearLine(0); - }, 700); - } - }); - useEffect(() => () => { - clearTimeout(searchTimeoutRef.current); - }, []); - const message = theme.style.message(config.message, status); - let helpTipTop = ""; - let helpTipBottom = ""; - if (theme.helpMode === "always" || theme.helpMode === "auto" && firstRender.current) { - firstRender.current = false; - if (items.length > pageSize) { - helpTipBottom = ` -${theme.style.help("(Use arrow keys to reveal more choices)")}`; - } else { - helpTipTop = theme.style.help("(Use arrow keys)"); - } - } - const page = usePagination({ - items, - active, - renderItem({ item, isActive }) { - if (Separator.isSeparator(item)) { - return ` ${item.separator}`; - } - if (item.disabled) { - const disabledLabel = typeof item.disabled === "string" ? item.disabled : "(disabled)"; - return theme.style.disabled(`${item.name} ${disabledLabel}`); - } - const color = isActive ? theme.style.highlight : (x) => x; - const cursor = isActive ? theme.icon.cursor : ` `; - return color(`${cursor} ${item.name}`); - }, - pageSize, - loop - }); - if (status === "done") { - return `${prefix} ${message} ${theme.style.answer(selectedChoice.short)}`; - } - const choiceDescription = selectedChoice.description ? ` -${theme.style.description(selectedChoice.description)}` : ``; - return `${[prefix, message, helpTipTop].filter(Boolean).join(" ")} -${page}${helpTipBottom}${choiceDescription}${import_ansi_escapes4.default.cursorHide}`; - }); -}); - -// node_modules/@inquirer/prompts/dist/esm/index.js -var init_esm13 = __esm(() => { - init_esm3(); - init_esm4(); - init_esm5(); - init_esm6(); - init_esm7(); - init_esm8(); - init_esm9(); - init_esm10(); - init_esm11(); - init_esm12(); -}); - -// node_modules/cli-spinners/spinners.json -var require_spinners = __commonJS((exports, module) => { - module.exports = { - dots: { + moon: { interval: 80, frames: [ - "ā ‹", - "ā ™", - "ā ¹", - "ā ø", - "ā ¼", - "ā “", - "ā ¦", - "ā §", - "ā ‡", - "ā " + "\uD83C\uDF11 ", + "\uD83C\uDF12 ", + "\uD83C\uDF13 ", + "\uD83C\uDF14 ", + "\uD83C\uDF15 ", + "\uD83C\uDF16 ", + "\uD83C\uDF17 ", + "\uD83C\uDF18 " ] }, - dots2: { - interval: 80, + runner: { + interval: 140, frames: [ - "ā£¾", - "ā£½", - "ā£»", - "ā¢æ", - "ā”æ", - "ā£Ÿ", - "ā£Æ", - "ā£·" + "\uD83D\uDEB6 ", + "\uD83C\uDFC3 " ] }, - dots3: { + pong: { interval: 80, frames: [ - "ā ‹", - "ā ™", - "ā š", - "ā ž", - "ā –", - "ā ¦", - "ā “", - "ā ²", - "ā ³", - "ā “" + "ā–ā ‚ ā–Œ", + "ā–ā ˆ ā–Œ", + "ā– ā ‚ ā–Œ", + "ā– ā   ā–Œ", + "ā– ā”€ ā–Œ", + "ā– ā   ā–Œ", + "ā– ā ‚ ā–Œ", + "ā– ā ˆ ā–Œ", + "ā– ā ‚ ā–Œ", + "ā– ā   ā–Œ", + "ā– ā”€ ā–Œ", + "ā– ā   ā–Œ", + "ā– ā ‚ ā–Œ", + "ā– ā ˆ ā–Œ", + "ā– ā ‚ā–Œ", + "ā– ā  ā–Œ", + "ā– ā”€ā–Œ", + "ā– ā   ā–Œ", + "ā– ā ‚ ā–Œ", + "ā– ā ˆ ā–Œ", + "ā– ā ‚ ā–Œ", + "ā– ā   ā–Œ", + "ā– ā”€ ā–Œ", + "ā– ā   ā–Œ", + "ā– ā ‚ ā–Œ", + "ā– ā ˆ ā–Œ", + "ā– ā ‚ ā–Œ", + "ā– ā   ā–Œ", + "ā– ā”€ ā–Œ", + "ā–ā   ā–Œ" ] }, - dots4: { - interval: 80, + shark: { + interval: 120, frames: [ - "ā „", - "ā †", - "ā ‡", - "ā ‹", - "ā ™", - "ā ø", - "ā °", - "ā  ", - "ā °", - "ā ø", - "ā ™", - "ā ‹", - "ā ‡", - "ā †" + "ā–|\\____________ā–Œ", + "ā–_|\\___________ā–Œ", + "ā–__|\\__________ā–Œ", + "ā–___|\\_________ā–Œ", + "ā–____|\\________ā–Œ", + "ā–_____|\\_______ā–Œ", + "ā–______|\\______ā–Œ", + "ā–_______|\\_____ā–Œ", + "ā–________|\\____ā–Œ", + "ā–_________|\\___ā–Œ", + "ā–__________|\\__ā–Œ", + "ā–___________|\\_ā–Œ", + "ā–____________|\\ā–Œ", + "ā–____________/|ā–Œ", + "ā–___________/|_ā–Œ", + "ā–__________/|__ā–Œ", + "ā–_________/|___ā–Œ", + "ā–________/|____ā–Œ", + "ā–_______/|_____ā–Œ", + "ā–______/|______ā–Œ", + "ā–_____/|_______ā–Œ", + "ā–____/|________ā–Œ", + "ā–___/|_________ā–Œ", + "ā–__/|__________ā–Œ", + "ā–_/|___________ā–Œ", + "ā–/|____________ā–Œ" ] }, - dots5: { - interval: 80, + dqpb: { + interval: 100, frames: [ - "ā ‹", - "ā ™", - "ā š", - "ā ’", - "ā ‚", - "ā ‚", - "ā ’", - "ā ²", - "ā “", - "ā ¦", - "ā –", - "ā ’", - "ā ", - "ā ", - "ā ’", - "ā “", - "ā ‹" + "d", + "q", + "p", + "b" ] }, - dots6: { - interval: 80, + weather: { + interval: 100, frames: [ - "ā ", - "ā ‰", - "ā ™", - "ā š", - "ā ’", - "ā ‚", - "ā ‚", - "ā ’", - "ā ²", - "ā “", - "ā ¤", - "ā „", - "ā „", - "ā ¤", - "ā “", - "ā ²", - "ā ’", - "ā ‚", - "ā ‚", - "ā ’", - "ā š", - "ā ™", - "ā ‰", - "ā " + "ā˜€ļø ", + "ā˜€ļø ", + "ā˜€ļø ", + "\uD83C\uDF24 ", + "ā›…ļø ", + "\uD83C\uDF25 ", + "ā˜ļø ", + "\uD83C\uDF27 ", + "\uD83C\uDF28 ", + "\uD83C\uDF27 ", + "\uD83C\uDF28 ", + "\uD83C\uDF27 ", + "\uD83C\uDF28 ", + "ā›ˆ ", + "\uD83C\uDF28 ", + "\uD83C\uDF27 ", + "\uD83C\uDF28 ", + "ā˜ļø ", + "\uD83C\uDF25 ", + "ā›…ļø ", + "\uD83C\uDF24 ", + "ā˜€ļø ", + "ā˜€ļø " ] }, - dots7: { + christmas: { + interval: 400, + frames: [ + "\uD83C\uDF32", + "\uD83C\uDF84" + ] + }, + grenade: { interval: 80, frames: [ - "ā ˆ", - "ā ‰", - "ā ‹", - "ā “", - "ā ’", - "ā ", - "ā ", - "ā ’", - "ā –", - "ā ¦", - "ā ¤", - "ā  ", - "ā  ", - "ā ¤", - "ā ¦", - "ā –", - "ā ’", - "ā ", - "ā ", - "ā ’", - "ā “", - "ā ‹", - "ā ‰", - "ā ˆ" + "ŲŒ ", + "ā€² ", + " Ā“ ", + " ā€¾ ", + " āøŒ", + " āøŠ", + " |", + " āŽ", + " ā•", + " ą·“ ", + " ā“", + " ", + " ", + " " ] }, - dots8: { + point: { + interval: 125, + frames: [ + "āˆ™āˆ™āˆ™", + "ā—āˆ™āˆ™", + "āˆ™ā—āˆ™", + "āˆ™āˆ™ā—", + "āˆ™āˆ™āˆ™" + ] + }, + layer: { + interval: 150, + frames: [ + "-", + "=", + "ā‰”" + ] + }, + betaWave: { interval: 80, frames: [ - "ā ", - "ā ", - "ā ‰", - "ā ™", - "ā š", - "ā ’", - "ā ‚", - "ā ‚", - "ā ’", - "ā ²", - "ā “", - "ā ¤", - "ā „", - "ā „", - "ā ¤", - "ā  ", - "ā  ", - "ā ¤", - "ā ¦", - "ā –", - "ā ’", - "ā ", - "ā ", - "ā ’", - "ā “", - "ā ‹", - "ā ‰", - "ā ˆ", - "ā ˆ" + "ĻĪ²Ī²Ī²Ī²Ī²Ī²", + "Ī²ĻĪ²Ī²Ī²Ī²Ī²", + "Ī²Ī²ĻĪ²Ī²Ī²Ī²", + "Ī²Ī²Ī²ĻĪ²Ī²Ī²", + "Ī²Ī²Ī²Ī²ĻĪ²Ī²", + "Ī²Ī²Ī²Ī²Ī²ĻĪ²", + "Ī²Ī²Ī²Ī²Ī²Ī²Ļ" ] }, - dots9: { + fingerDance: { + interval: 160, + frames: [ + "\uD83E\uDD18 ", + "\uD83E\uDD1F ", + "\uD83D\uDD96 ", + "āœ‹ ", + "\uD83E\uDD1A ", + "\uD83D\uDC46 " + ] + }, + fistBump: { interval: 80, frames: [ - "ā¢¹", - "ā¢ŗ", - "ā¢¼", - "ā£ø", - "ā£‡", - "ā”§", - "ā”—", - "ā”" + "\uD83E\uDD1C怀怀怀怀\uD83E\uDD1B ", + "\uD83E\uDD1C怀怀怀怀\uD83E\uDD1B ", + "\uD83E\uDD1C怀怀怀怀\uD83E\uDD1B ", + "怀\uD83E\uDD1C怀怀\uD83E\uDD1B怀 ", + "怀怀\uD83E\uDD1C\uD83E\uDD1B怀怀 ", + "怀\uD83E\uDD1CāœØ\uD83E\uDD1B怀怀 ", + "\uD83E\uDD1C怀āœØ怀\uD83E\uDD1B怀 " ] }, - dots10: { + soccerHeader: { interval: 80, frames: [ - "ā¢„", - "ā¢‚", - "ā¢", - "ā”", - "ā”ˆ", - "ā”", - "ā” " + " \uD83E\uDDD1āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø\uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", + "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 " + ] + }, + mindblown: { + interval: 160, + frames: [ + "\uD83D\uDE10 ", + "\uD83D\uDE10 ", + "\uD83D\uDE2E ", + "\uD83D\uDE2E ", + "\uD83D\uDE26 ", + "\uD83D\uDE26 ", + "\uD83D\uDE27 ", + "\uD83D\uDE27 ", + "\uD83E\uDD2F ", + "\uD83D\uDCA5 ", + "āœØ ", + "怀 ", + "怀 ", + "怀 " + ] + }, + speaker: { + interval: 160, + frames: [ + "\uD83D\uDD08 ", + "\uD83D\uDD09 ", + "\uD83D\uDD0A ", + "\uD83D\uDD09 " + ] + }, + orangePulse: { + interval: 100, + frames: [ + "\uD83D\uDD38 ", + "\uD83D\uDD36 ", + "\uD83D\uDFE0 ", + "\uD83D\uDFE0 ", + "\uD83D\uDD36 " ] }, - dots11: { + bluePulse: { interval: 100, frames: [ - "ā ", - "ā ‚", - "ā „", - "ā”€", - "ā¢€", - "ā  ", - "ā ", - "ā ˆ" + "\uD83D\uDD39 ", + "\uD83D\uDD37 ", + "\uD83D\uDD35 ", + "\uD83D\uDD35 ", + "\uD83D\uDD37 " ] }, - dots12: { - interval: 80, + orangeBluePulse: { + interval: 100, frames: [ - "ā¢€ā €", - "ā”€ā €", - "ā „ā €", - "ā¢‚ā €", - "ā”‚ā €", - "ā …ā €", - "ā¢ƒā €", - "ā”ƒā €", - "ā ā €", - "ā¢‹ā €", - "ā”‹ā €", - "ā ā ", - "ā¢‹ā ", - "ā”‹ā ", - "ā ā ‰", - "ā ‹ā ‰", - "ā ‹ā ‰", - "ā ‰ā ™", - "ā ‰ā ™", - "ā ‰ā ©", - "ā ˆā¢™", - "ā ˆā”™", - "ā¢ˆā ©", - "ā”€ā¢™", - "ā „ā”™", - "ā¢‚ā ©", - "ā”‚ā¢˜", - "ā …ā”˜", - "ā¢ƒā Ø", - "ā”ƒā¢", - "ā ā”", - "ā¢‹ā  ", - "ā”‹ā¢€", - "ā ā”", - "ā¢‹ā ", - "ā”‹ā ", - "ā ā ‰", - "ā ‹ā ‰", - "ā ‹ā ‰", - "ā ‰ā ™", - "ā ‰ā ™", - "ā ‰ā ©", - "ā ˆā¢™", - "ā ˆā”™", - "ā ˆā ©", - "ā €ā¢™", - "ā €ā”™", - "ā €ā ©", - "ā €ā¢˜", - "ā €ā”˜", - "ā €ā Ø", - "ā €ā¢", - "ā €ā”", - "ā €ā  ", - "ā €ā¢€", - "ā €ā”€" + "\uD83D\uDD38 ", + "\uD83D\uDD36 ", + "\uD83D\uDFE0 ", + "\uD83D\uDFE0 ", + "\uD83D\uDD36 ", + "\uD83D\uDD39 ", + "\uD83D\uDD37 ", + "\uD83D\uDD35 ", + "\uD83D\uDD35 ", + "\uD83D\uDD37 " ] }, - dots13: { + timeTravel: { + interval: 100, + frames: [ + "\uD83D\uDD5B ", + "\uD83D\uDD5A ", + "\uD83D\uDD59 ", + "\uD83D\uDD58 ", + "\uD83D\uDD57 ", + "\uD83D\uDD56 ", + "\uD83D\uDD55 ", + "\uD83D\uDD54 ", + "\uD83D\uDD53 ", + "\uD83D\uDD52 ", + "\uD83D\uDD51 ", + "\uD83D\uDD50 " + ] + }, + aesthetic: { interval: 80, frames: [ - "ā£¼", - "ā£¹", - "ā¢»", - "ā æ", - "ā”Ÿ", - "ā£", - "ā£§", - "ā£¶" + "ā–°ā–±ā–±ā–±ā–±ā–±ā–±", + "ā–°ā–°ā–±ā–±ā–±ā–±ā–±", + "ā–°ā–°ā–°ā–±ā–±ā–±ā–±", + "ā–°ā–°ā–°ā–°ā–±ā–±ā–±", + "ā–°ā–°ā–°ā–°ā–°ā–±ā–±", + "ā–°ā–°ā–°ā–°ā–°ā–°ā–±", + "ā–°ā–°ā–°ā–°ā–°ā–°ā–°", + "ā–°ā–±ā–±ā–±ā–±ā–±ā–±" ] }, - dots8Bit: { + dwarfFortress: { interval: 80, frames: [ - "ā €", - "ā ", - "ā ‚", - "ā ƒ", - "ā „", - "ā …", - "ā †", - "ā ‡", - "ā”€", - "ā”", - "ā”‚", - "ā”ƒ", - "ā”„", - "ā”…", - "ā”†", - "ā”‡", - "ā ˆ", - "ā ‰", - "ā Š", - "ā ‹", - "ā Œ", - "ā ", - "ā Ž", - "ā ", - "ā”ˆ", - "ā”‰", - "ā”Š", - "ā”‹", - "ā”Œ", - "ā”", - "ā”Ž", - "ā”", - "ā ", - "ā ‘", - "ā ’", - "ā “", - "ā ”", - "ā •", - "ā –", - "ā —", - "ā”", - "ā”‘", - "ā”’", - "ā”“", - "ā””", - "ā”•", - "ā”–", - "ā”—", - "ā ˜", - "ā ™", - "ā š", - "ā ›", - "ā œ", - "ā ", - "ā ž", - "ā Ÿ", - "ā”˜", - "ā”™", - "ā”š", - "ā”›", - "ā”œ", - "ā”", - "ā”ž", - "ā”Ÿ", - "ā  ", - "ā ”", - "ā ¢", - "ā £", - "ā ¤", - "ā „", - "ā ¦", - "ā §", - "ā” ", - "ā””", - "ā”¢", - "ā”£", - "ā”¤", - "ā”„", - "ā”¦", - "ā”§", - "ā Ø", - "ā ©", - "ā Ŗ", - "ā «", - "ā ¬", - "ā ­", - "ā ®", - "ā Æ", - "ā”Ø", - "ā”©", - "ā”Ŗ", - "ā”«", - "ā”¬", - "ā”­", - "ā”®", - "ā”Æ", - "ā °", - "ā ±", - "ā ²", - "ā ³", - "ā “", - "ā µ", - "ā ¶", - "ā ·", - "ā”°", - "ā”±", - "ā”²", - "ā”³", - "ā”“", - "ā”µ", - "ā”¶", - "ā”·", - "ā ø", - "ā ¹", - "ā ŗ", - "ā »", - "ā ¼", - "ā ½", - "ā ¾", - "ā æ", - "ā”ø", - "ā”¹", - "ā”ŗ", - "ā”»", - "ā”¼", - "ā”½", - "ā”¾", - "ā”æ", - "ā¢€", - "ā¢", - "ā¢‚", - "ā¢ƒ", - "ā¢„", - "ā¢…", - "ā¢†", - "ā¢‡", - "ā£€", - "ā£", - "ā£‚", - "ā£ƒ", - "ā£„", - "ā£…", - "ā£†", - "ā£‡", - "ā¢ˆ", - "ā¢‰", - "ā¢Š", - "ā¢‹", - "ā¢Œ", - "ā¢", - "ā¢Ž", - "ā¢", - "ā£ˆ", - "ā£‰", - "ā£Š", - "ā£‹", - "ā£Œ", - "ā£", - "ā£Ž", - "ā£", - "ā¢", - "ā¢‘", - "ā¢’", - "ā¢“", - "ā¢”", - "ā¢•", - "ā¢–", - "ā¢—", - "ā£", - "ā£‘", - "ā£’", - "ā£“", - "ā£”", - "ā£•", - "ā£–", - "ā£—", - "ā¢˜", - "ā¢™", - "ā¢š", - "ā¢›", - "ā¢œ", - "ā¢", - "ā¢ž", - "ā¢Ÿ", - "ā£˜", - "ā£™", - "ā£š", - "ā£›", - "ā£œ", - "ā£", - "ā£ž", - "ā£Ÿ", - "ā¢ ", - "ā¢”", - "ā¢¢", - "ā¢£", - "ā¢¤", - "ā¢„", - "ā¢¦", - "ā¢§", - "ā£ ", - "ā£”", - "ā£¢", - "ā££", - "ā£¤", - "ā£„", - "ā£¦", - "ā£§", - "ā¢Ø", - "ā¢©", - "ā¢Ŗ", - "ā¢«", - "ā¢¬", - "ā¢­", - "ā¢®", - "ā¢Æ", - "ā£Ø", - "ā£©", - "ā£Ŗ", - "ā£«", - "ā£¬", - "ā£­", - "ā£®", - "ā£Æ", - "ā¢°", - "ā¢±", - "ā¢²", - "ā¢³", - "ā¢“", - "ā¢µ", - "ā¢¶", - "ā¢·", - "ā£°", - "ā£±", - "ā£²", - "ā£³", - "ā£“", - "ā£µ", - "ā£¶", - "ā£·", - "ā¢ø", - "ā¢¹", - "ā¢ŗ", - "ā¢»", - "ā¢¼", - "ā¢½", - "ā¢¾", - "ā¢æ", - "ā£ø", - "ā£¹", - "ā£ŗ", - "ā£»", - "ā£¼", - "ā£½", - "ā£¾", - "ā£æ" + " ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + "ā˜ŗā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + "ā˜ŗā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + "ā˜ŗā–“ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + "ā˜ŗā–“ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + "ā˜ŗā–’ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + "ā˜ŗā–’ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + "ā˜ŗā–‘ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + "ā˜ŗā–‘ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + "ā˜ŗ ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–“ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–“ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–’ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–’ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–‘ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–‘ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗ ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–“ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–“ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–’ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–’ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–‘ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–‘ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗ ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–“ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–“ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–’ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–’ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–‘ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–‘ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗ ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–“ā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–“ā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–’ā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–’ā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–‘ā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–‘ā–ˆĀ£Ā£Ā£ ", + " ā˜ŗ ā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–ˆĀ£Ā£Ā£ ", + " ā˜ŗā–“Ā£Ā£Ā£ ", + " ā˜ŗā–“Ā£Ā£Ā£ ", + " ā˜ŗā–’Ā£Ā£Ā£ ", + " ā˜ŗā–’Ā£Ā£Ā£ ", + " ā˜ŗā–‘Ā£Ā£Ā£ ", + " ā˜ŗā–‘Ā£Ā£Ā£ ", + " ā˜ŗ Ā£Ā£Ā£ ", + " ā˜ŗĀ£Ā£Ā£ ", + " ā˜ŗĀ£Ā£Ā£ ", + " ā˜ŗā–“Ā£Ā£ ", + " ā˜ŗā–“Ā£Ā£ ", + " ā˜ŗā–’Ā£Ā£ ", + " ā˜ŗā–’Ā£Ā£ ", + " ā˜ŗā–‘Ā£Ā£ ", + " ā˜ŗā–‘Ā£Ā£ ", + " ā˜ŗ Ā£Ā£ ", + " ā˜ŗĀ£Ā£ ", + " ā˜ŗĀ£Ā£ ", + " ā˜ŗā–“Ā£ ", + " ā˜ŗā–“Ā£ ", + " ā˜ŗā–’Ā£ ", + " ā˜ŗā–’Ā£ ", + " ā˜ŗā–‘Ā£ ", + " ā˜ŗā–‘Ā£ ", + " ā˜ŗ Ā£ ", + " ā˜ŗĀ£ ", + " ā˜ŗĀ£ ", + " ā˜ŗā–“ ", + " ā˜ŗā–“ ", + " ā˜ŗā–’ ", + " ā˜ŗā–’ ", + " ā˜ŗā–‘ ", + " ā˜ŗā–‘ ", + " ā˜ŗ ", + " ā˜ŗ &", + " ā˜ŗ ā˜¼&", + " ā˜ŗ ā˜¼ &", + " ā˜ŗā˜¼ &", + " ā˜ŗā˜¼ & ", + " ā€¼ & ", + " ā˜ŗ & ", + " ā€¼ & ", + " ā˜ŗ & ", + " ā€¼ & ", + " ā˜ŗ & ", + "ā€¼ & ", + " & ", + " & ", + " & ā–‘ ", + " & ā–’ ", + " & ā–“ ", + " & Ā£ ", + " & ā–‘Ā£ ", + " & ā–’Ā£ ", + " & ā–“Ā£ ", + " & Ā£Ā£ ", + " & ā–‘Ā£Ā£ ", + " & ā–’Ā£Ā£ ", + "& ā–“Ā£Ā£ ", + "& Ā£Ā£Ā£ ", + " ā–‘Ā£Ā£Ā£ ", + " ā–’Ā£Ā£Ā£ ", + " ā–“Ā£Ā£Ā£ ", + " ā–ˆĀ£Ā£Ā£ ", + " ā–‘ā–ˆĀ£Ā£Ā£ ", + " ā–’ā–ˆĀ£Ā£Ā£ ", + " ā–“ā–ˆĀ£Ā£Ā£ ", + " ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–‘ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–’ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–“ā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–‘ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–’ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–“ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–‘ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–’ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–“ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–‘ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–’ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–“ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", + " ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ " ] + } + }; +}); + +// node_modules/cli-spinners/index.js +var require_cli_spinners = __commonJS((exports, module) => { + var spinners = Object.assign({}, require_spinners()); + var spinnersList = Object.keys(spinners); + Object.defineProperty(spinners, "random", { + get() { + const randomIndex = Math.floor(Math.random() * spinnersList.length); + const spinnerName = spinnersList[randomIndex]; + return spinners[spinnerName]; + } + }); + module.exports = spinners; +}); + +// node_modules/emoji-regex/index.js +var require_emoji_regex = __commonJS((exports, module) => { + module.exports = () => { + return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; + }; +}); + +// node_modules/@inquirer/core/dist/esm/lib/key.js +var isUpKey = (key) => key.name === "up" || key.name === "k" || key.ctrl && key.name === "p", isDownKey = (key) => key.name === "down" || key.name === "j" || key.ctrl && key.name === "n", isSpaceKey = (key) => key.name === "space", isBackspaceKey = (key) => key.name === "backspace", isNumberKey = (key) => "123456789".includes(key.name), isEnterKey = (key) => key.name === "enter" || key.name === "return"; + +// node_modules/@inquirer/core/dist/esm/lib/errors.js +var AbortPromptError, CancelPromptError, ExitPromptError, HookError, ValidationError; +var init_errors = __esm(() => { + AbortPromptError = class AbortPromptError extends Error { + name = "AbortPromptError"; + message = "Prompt was aborted"; + constructor(options) { + super(); + this.cause = options?.cause; + } + }; + CancelPromptError = class CancelPromptError extends Error { + name = "CancelPromptError"; + message = "Prompt was canceled"; + }; + ExitPromptError = class ExitPromptError extends Error { + name = "ExitPromptError"; + }; + HookError = class HookError extends Error { + name = "HookError"; + }; + ValidationError = class ValidationError extends Error { + name = "ValidationError"; + }; +}); + +// node_modules/@inquirer/core/dist/esm/lib/hook-engine.js +import { AsyncLocalStorage, AsyncResource } from "node:async_hooks"; +function createStore(rl) { + const store = { + rl, + hooks: [], + hooksCleanup: [], + hooksEffect: [], + index: 0, + handleChange() { + } + }; + return store; +} +function withHooks(rl, cb) { + const store = createStore(rl); + return hookStorage.run(store, () => { + function cycle(render) { + store.handleChange = () => { + store.index = 0; + render(); + }; + store.handleChange(); + } + return cb(cycle); + }); +} +function getStore() { + const store = hookStorage.getStore(); + if (!store) { + throw new HookError("[Inquirer] Hook functions can only be called from within a prompt"); + } + return store; +} +function readline() { + return getStore().rl; +} +function withUpdates(fn) { + const wrapped = (...args) => { + const store = getStore(); + let shouldUpdate = false; + const oldHandleChange = store.handleChange; + store.handleChange = () => { + shouldUpdate = true; + }; + const returnValue = fn(...args); + if (shouldUpdate) { + oldHandleChange(); + } + store.handleChange = oldHandleChange; + return returnValue; + }; + return AsyncResource.bind(wrapped); +} +function withPointer(cb) { + const store = getStore(); + const { index } = store; + const pointer = { + get() { + return store.hooks[index]; + }, + set(value) { + store.hooks[index] = value; + }, + initialized: index in store.hooks + }; + const returnValue = cb(pointer); + store.index++; + return returnValue; +} +function handleChange() { + getStore().handleChange(); +} +var hookStorage, effectScheduler; +var init_hook_engine = __esm(() => { + init_errors(); + hookStorage = new AsyncLocalStorage; + effectScheduler = { + queue(cb) { + const store = getStore(); + const { index } = store; + store.hooksEffect.push(() => { + store.hooksCleanup[index]?.(); + const cleanFn = cb(readline()); + if (cleanFn != null && typeof cleanFn !== "function") { + throw new ValidationError("useEffect return value must be a cleanup function or nothing."); + } + store.hooksCleanup[index] = cleanFn; + }); + }, + run() { + const store = getStore(); + withUpdates(() => { + store.hooksEffect.forEach((effect) => { + effect(); + }); + store.hooksEffect.length = 0; + })(); + }, + clearAll() { + const store = getStore(); + store.hooksCleanup.forEach((cleanFn) => { + cleanFn?.(); + }); + store.hooksEffect.length = 0; + store.hooksCleanup.length = 0; + } + }; +}); + +// node_modules/@inquirer/core/dist/esm/lib/use-state.js +function useState(defaultValue) { + return withPointer((pointer) => { + const setFn = (newValue) => { + if (pointer.get() !== newValue) { + pointer.set(newValue); + handleChange(); + } + }; + if (pointer.initialized) { + return [pointer.get(), setFn]; + } + const value = typeof defaultValue === "function" ? defaultValue() : defaultValue; + pointer.set(value); + return [value, setFn]; + }); +} +var init_use_state = __esm(() => { + init_hook_engine(); +}); + +// node_modules/@inquirer/core/dist/esm/lib/use-effect.js +function useEffect(cb, depArray) { + withPointer((pointer) => { + const oldDeps = pointer.get(); + const hasChanged = !Array.isArray(oldDeps) || depArray.some((dep, i) => !Object.is(dep, oldDeps[i])); + if (hasChanged) { + effectScheduler.queue(cb); + } + pointer.set(depArray); + }); +} +var init_use_effect = __esm(() => { + init_hook_engine(); +}); + +// node_modules/yoctocolors-cjs/index.js +var require_yoctocolors_cjs = __commonJS((exports, module) => { + var tty2 = __require("node:tty"); + var hasColors = tty2?.WriteStream?.prototype?.hasColors?.() ?? false; + var format = (open, close) => { + if (!hasColors) { + return (input) => input; + } + const openCode = `\x1B[${open}m`; + const closeCode = `\x1B[${close}m`; + return (input) => { + const string = input + ""; + let index = string.indexOf(closeCode); + if (index === -1) { + return openCode + string + closeCode; + } + let result = openCode; + let lastIndex = 0; + while (index !== -1) { + result += string.slice(lastIndex, index) + openCode; + lastIndex = index + closeCode.length; + index = string.indexOf(closeCode, lastIndex); + } + result += string.slice(lastIndex) + closeCode; + return result; + }; + }; + var colors2 = {}; + colors2.reset = format(0, 0); + colors2.bold = format(1, 22); + colors2.dim = format(2, 22); + colors2.italic = format(3, 23); + colors2.underline = format(4, 24); + colors2.overline = format(53, 55); + colors2.inverse = format(7, 27); + colors2.hidden = format(8, 28); + colors2.strikethrough = format(9, 29); + colors2.black = format(30, 39); + colors2.red = format(31, 39); + colors2.green = format(32, 39); + colors2.yellow = format(33, 39); + colors2.blue = format(34, 39); + colors2.magenta = format(35, 39); + colors2.cyan = format(36, 39); + colors2.white = format(37, 39); + colors2.gray = format(90, 39); + colors2.bgBlack = format(40, 49); + colors2.bgRed = format(41, 49); + colors2.bgGreen = format(42, 49); + colors2.bgYellow = format(43, 49); + colors2.bgBlue = format(44, 49); + colors2.bgMagenta = format(45, 49); + colors2.bgCyan = format(46, 49); + colors2.bgWhite = format(47, 49); + colors2.bgGray = format(100, 49); + colors2.redBright = format(91, 39); + colors2.greenBright = format(92, 39); + colors2.yellowBright = format(93, 39); + colors2.blueBright = format(94, 39); + colors2.magentaBright = format(95, 39); + colors2.cyanBright = format(96, 39); + colors2.whiteBright = format(97, 39); + colors2.bgRedBright = format(101, 49); + colors2.bgGreenBright = format(102, 49); + colors2.bgYellowBright = format(103, 49); + colors2.bgBlueBright = format(104, 49); + colors2.bgMagentaBright = format(105, 49); + colors2.bgCyanBright = format(106, 49); + colors2.bgWhiteBright = format(107, 49); + module.exports = colors2; +}); + +// node_modules/@inquirer/figures/dist/esm/index.js +import process10 from "node:process"; +function isUnicodeSupported3() { + if (process10.platform !== "win32") { + return process10.env["TERM"] !== "linux"; + } + return Boolean(process10.env["WT_SESSION"]) || Boolean(process10.env["TERMINUS_SUBLIME"]) || process10.env["ConEmuTask"] === "{cmd::Cmder}" || process10.env["TERM_PROGRAM"] === "Terminus-Sublime" || process10.env["TERM_PROGRAM"] === "vscode" || process10.env["TERM"] === "xterm-256color" || process10.env["TERM"] === "alacritty" || process10.env["TERMINAL_EMULATOR"] === "JetBrains-JediTerm"; +} +var common, specialMainSymbols, specialFallbackSymbols, mainSymbols, fallbackSymbols, shouldUseMain, figures, esm_default, replacements; +var init_esm = __esm(() => { + common = { + circleQuestionMark: "(?)", + questionMarkPrefix: "(?)", + square: "ā–ˆ", + squareDarkShade: "ā–“", + squareMediumShade: "ā–’", + squareLightShade: "ā–‘", + squareTop: "ā–€", + squareBottom: "ā–„", + squareLeft: "ā–Œ", + squareRight: "ā–", + squareCenter: "ā– ", + bullet: "ā—", + dot: "ā€¤", + ellipsis: "ā€¦", + pointerSmall: "ā€ŗ", + triangleUp: "ā–²", + triangleUpSmall: "ā–“", + triangleDown: "ā–¼", + triangleDownSmall: "ā–¾", + triangleLeftSmall: "ā—‚", + triangleRightSmall: "ā–ø", + home: "āŒ‚", + heart: "ā™„", + musicNote: "ā™Ŗ", + musicNoteBeamed: "ā™«", + arrowUp: "ā†‘", + arrowDown: "ā†“", + arrowLeft: "ā†", + arrowRight: "ā†’", + arrowLeftRight: "ā†”", + arrowUpDown: "ā†•", + almostEqual: "ā‰ˆ", + notEqual: "ā‰ ", + lessOrEqual: "ā‰¤", + greaterOrEqual: "ā‰„", + identical: "ā‰”", + infinity: "āˆž", + subscriptZero: "ā‚€", + subscriptOne: "ā‚", + subscriptTwo: "ā‚‚", + subscriptThree: "ā‚ƒ", + subscriptFour: "ā‚„", + subscriptFive: "ā‚…", + subscriptSix: "ā‚†", + subscriptSeven: "ā‚‡", + subscriptEight: "ā‚ˆ", + subscriptNine: "ā‚‰", + oneHalf: "Ā½", + oneThird: "ā…“", + oneQuarter: "Ā¼", + oneFifth: "ā…•", + oneSixth: "ā…™", + oneEighth: "ā…›", + twoThirds: "ā…”", + twoFifths: "ā…–", + threeQuarters: "Ā¾", + threeFifths: "ā…—", + threeEighths: "ā…œ", + fourFifths: "ā…˜", + fiveSixths: "ā…š", + fiveEighths: "ā…", + sevenEighths: "ā…ž", + line: "ā”€", + lineBold: "ā”", + lineDouble: "ā•", + lineDashed0: "ā”„", + lineDashed1: "ā”…", + lineDashed2: "ā”ˆ", + lineDashed3: "ā”‰", + lineDashed4: "ā•Œ", + lineDashed5: "ā•", + lineDashed6: "ā•“", + lineDashed7: "ā•¶", + lineDashed8: "ā•ø", + lineDashed9: "ā•ŗ", + lineDashed10: "ā•¼", + lineDashed11: "ā•¾", + lineDashed12: "āˆ’", + lineDashed13: "ā€“", + lineDashed14: "ā€", + lineDashed15: "āƒ", + lineVertical: "ā”‚", + lineVerticalBold: "ā”ƒ", + lineVerticalDouble: "ā•‘", + lineVerticalDashed0: "ā”†", + lineVerticalDashed1: "ā”‡", + lineVerticalDashed2: "ā”Š", + lineVerticalDashed3: "ā”‹", + lineVerticalDashed4: "ā•Ž", + lineVerticalDashed5: "ā•", + lineVerticalDashed6: "ā•µ", + lineVerticalDashed7: "ā•·", + lineVerticalDashed8: "ā•¹", + lineVerticalDashed9: "ā•»", + lineVerticalDashed10: "ā•½", + lineVerticalDashed11: "ā•æ", + lineDownLeft: "ā”", + lineDownLeftArc: "ā•®", + lineDownBoldLeftBold: "ā”“", + lineDownBoldLeft: "ā”’", + lineDownLeftBold: "ā”‘", + lineDownDoubleLeftDouble: "ā•—", + lineDownDoubleLeft: "ā•–", + lineDownLeftDouble: "ā••", + lineDownRight: "ā”Œ", + lineDownRightArc: "ā•­", + lineDownBoldRightBold: "ā”", + lineDownBoldRight: "ā”Ž", + lineDownRightBold: "ā”", + lineDownDoubleRightDouble: "ā•”", + lineDownDoubleRight: "ā•“", + lineDownRightDouble: "ā•’", + lineUpLeft: "ā”˜", + lineUpLeftArc: "ā•Æ", + lineUpBoldLeftBold: "ā”›", + lineUpBoldLeft: "ā”š", + lineUpLeftBold: "ā”™", + lineUpDoubleLeftDouble: "ā•", + lineUpDoubleLeft: "ā•œ", + lineUpLeftDouble: "ā•›", + lineUpRight: "ā””", + lineUpRightArc: "ā•°", + lineUpBoldRightBold: "ā”—", + lineUpBoldRight: "ā”–", + lineUpRightBold: "ā”•", + lineUpDoubleRightDouble: "ā•š", + lineUpDoubleRight: "ā•™", + lineUpRightDouble: "ā•˜", + lineUpDownLeft: "ā”¤", + lineUpBoldDownBoldLeftBold: "ā”«", + lineUpBoldDownBoldLeft: "ā”Ø", + lineUpDownLeftBold: "ā”„", + lineUpBoldDownLeftBold: "ā”©", + lineUpDownBoldLeftBold: "ā”Ŗ", + lineUpDownBoldLeft: "ā”§", + lineUpBoldDownLeft: "ā”¦", + lineUpDoubleDownDoubleLeftDouble: "ā•£", + lineUpDoubleDownDoubleLeft: "ā•¢", + lineUpDownLeftDouble: "ā•”", + lineUpDownRight: "ā”œ", + lineUpBoldDownBoldRightBold: "ā”£", + lineUpBoldDownBoldRight: "ā” ", + lineUpDownRightBold: "ā”", + lineUpBoldDownRightBold: "ā””", + lineUpDownBoldRightBold: "ā”¢", + lineUpDownBoldRight: "ā”Ÿ", + lineUpBoldDownRight: "ā”ž", + lineUpDoubleDownDoubleRightDouble: "ā• ", + lineUpDoubleDownDoubleRight: "ā•Ÿ", + lineUpDownRightDouble: "ā•ž", + lineDownLeftRight: "ā”¬", + lineDownBoldLeftBoldRightBold: "ā”³", + lineDownLeftBoldRightBold: "ā”Æ", + lineDownBoldLeftRight: "ā”°", + lineDownBoldLeftBoldRight: "ā”±", + lineDownBoldLeftRightBold: "ā”²", + lineDownLeftRightBold: "ā”®", + lineDownLeftBoldRight: "ā”­", + lineDownDoubleLeftDoubleRightDouble: "ā•¦", + lineDownDoubleLeftRight: "ā•„", + lineDownLeftDoubleRightDouble: "ā•¤", + lineUpLeftRight: "ā”“", + lineUpBoldLeftBoldRightBold: "ā”»", + lineUpLeftBoldRightBold: "ā”·", + lineUpBoldLeftRight: "ā”ø", + lineUpBoldLeftBoldRight: "ā”¹", + lineUpBoldLeftRightBold: "ā”ŗ", + lineUpLeftRightBold: "ā”¶", + lineUpLeftBoldRight: "ā”µ", + lineUpDoubleLeftDoubleRightDouble: "ā•©", + lineUpDoubleLeftRight: "ā•Ø", + lineUpLeftDoubleRightDouble: "ā•§", + lineUpDownLeftRight: "ā”¼", + lineUpBoldDownBoldLeftBoldRightBold: "ā•‹", + lineUpDownBoldLeftBoldRightBold: "ā•ˆ", + lineUpBoldDownLeftBoldRightBold: "ā•‡", + lineUpBoldDownBoldLeftRightBold: "ā•Š", + lineUpBoldDownBoldLeftBoldRight: "ā•‰", + lineUpBoldDownLeftRight: "ā•€", + lineUpDownBoldLeftRight: "ā•", + lineUpDownLeftBoldRight: "ā”½", + lineUpDownLeftRightBold: "ā”¾", + lineUpBoldDownBoldLeftRight: "ā•‚", + lineUpDownLeftBoldRightBold: "ā”æ", + lineUpBoldDownLeftBoldRight: "ā•ƒ", + lineUpBoldDownLeftRightBold: "ā•„", + lineUpDownBoldLeftBoldRight: "ā•…", + lineUpDownBoldLeftRightBold: "ā•†", + lineUpDoubleDownDoubleLeftDoubleRightDouble: "ā•¬", + lineUpDoubleDownDoubleLeftRight: "ā•«", + lineUpDownLeftDoubleRightDouble: "ā•Ŗ", + lineCross: "ā•³", + lineBackslash: "ā•²", + lineSlash: "ā•±" + }; + specialMainSymbols = { + tick: "āœ”", + info: "ā„¹", + warning: "āš ", + cross: "āœ˜", + squareSmall: "ā—»", + squareSmallFilled: "ā—¼", + circle: "ā—Æ", + circleFilled: "ā—‰", + circleDotted: "ā—Œ", + circleDouble: "ā—Ž", + circleCircle: "ā“ž", + circleCross: "ā“§", + circlePipe: "ā’¾", + radioOn: "ā—‰", + radioOff: "ā—Æ", + checkboxOn: "ā˜’", + checkboxOff: "ā˜", + checkboxCircleOn: "ā“§", + checkboxCircleOff: "ā’¾", + pointer: "āÆ", + triangleUpOutline: "ā–³", + triangleLeft: "ā—€", + triangleRight: "ā–¶", + lozenge: "ā—†", + lozengeOutline: "ā—‡", + hamburger: "ā˜°", + smiley: "ć‹”", + mustache: "ą·“", + star: "ā˜…", + play: "ā–¶", + nodejs: "ā¬¢", + oneSeventh: "ā…", + oneNinth: "ā…‘", + oneTenth: "ā…’" + }; + specialFallbackSymbols = { + tick: "āˆš", + info: "i", + warning: "ā€¼", + cross: "Ɨ", + squareSmall: "ā–”", + squareSmallFilled: "ā– ", + circle: "( )", + circleFilled: "(*)", + circleDotted: "( )", + circleDouble: "( )", + circleCircle: "(ā—‹)", + circleCross: "(Ɨ)", + circlePipe: "(ā”‚)", + radioOn: "(*)", + radioOff: "( )", + checkboxOn: "[Ɨ]", + checkboxOff: "[ ]", + checkboxCircleOn: "(Ɨ)", + checkboxCircleOff: "( )", + pointer: ">", + triangleUpOutline: "āˆ†", + triangleLeft: "ā—„", + triangleRight: "ā–ŗ", + lozenge: "ā™¦", + lozengeOutline: "ā—Š", + hamburger: "ā‰”", + smiley: "ā˜ŗ", + mustache: "ā”Œā”€ā”", + star: "āœ¶", + play: "ā–ŗ", + nodejs: "ā™¦", + oneSeventh: "1/7", + oneNinth: "1/9", + oneTenth: "1/10" + }; + mainSymbols = { ...common, ...specialMainSymbols }; + fallbackSymbols = { + ...common, + ...specialFallbackSymbols + }; + shouldUseMain = isUnicodeSupported3(); + figures = shouldUseMain ? mainSymbols : fallbackSymbols; + esm_default = figures; + replacements = Object.entries(specialMainSymbols); +}); + +// node_modules/@inquirer/core/dist/esm/lib/theme.js +var import_yoctocolors_cjs, defaultTheme; +var init_theme = __esm(() => { + import_yoctocolors_cjs = __toESM(require_yoctocolors_cjs(), 1); + init_esm(); + defaultTheme = { + prefix: { + idle: import_yoctocolors_cjs.default.blue("?"), + done: import_yoctocolors_cjs.default.green(esm_default.tick) }, - sand: { + spinner: { interval: 80, - frames: [ - "ā ", - "ā ‚", - "ā „", - "ā”€", - "ā”ˆ", - "ā”", - "ā” ", - "ā£€", - "ā£", - "ā£‚", - "ā£„", - "ā£Œ", - "ā£”", - "ā£¤", - "ā£„", - "ā£¦", - "ā£®", - "ā£¶", - "ā£·", - "ā£æ", - "ā”æ", - "ā æ", - "ā¢Ÿ", - "ā Ÿ", - "ā”›", - "ā ›", - "ā «", - "ā¢‹", - "ā ‹", - "ā ", - "ā”‰", - "ā ‰", - "ā ‘", - "ā ”", - "ā¢" - ] + frames: ["ā ‹", "ā ™", "ā ¹", "ā ø", "ā ¼", "ā “", "ā ¦", "ā §", "ā ‡", "ā "].map((frame) => import_yoctocolors_cjs.default.yellow(frame)) + }, + style: { + answer: import_yoctocolors_cjs.default.cyan, + message: import_yoctocolors_cjs.default.bold, + error: (text) => import_yoctocolors_cjs.default.red(`> ${text}`), + defaultAnswer: (text) => import_yoctocolors_cjs.default.dim(`(${text})`), + help: import_yoctocolors_cjs.default.dim, + highlight: import_yoctocolors_cjs.default.cyan, + key: (text) => import_yoctocolors_cjs.default.cyan(import_yoctocolors_cjs.default.bold(`<${text}>`)) + } + }; +}); + +// node_modules/@inquirer/core/dist/esm/lib/make-theme.js +function isPlainObject(value) { + if (typeof value !== "object" || value === null) + return false; + let proto2 = value; + while (Object.getPrototypeOf(proto2) !== null) { + proto2 = Object.getPrototypeOf(proto2); + } + return Object.getPrototypeOf(value) === proto2; +} +function deepMerge(...objects) { + const output = {}; + for (const obj of objects) { + for (const [key, value] of Object.entries(obj)) { + const prevValue = output[key]; + output[key] = isPlainObject(prevValue) && isPlainObject(value) ? deepMerge(prevValue, value) : value; + } + } + return output; +} +function makeTheme(...themes) { + const themesToMerge = [ + defaultTheme, + ...themes.filter((theme) => theme != null) + ]; + return deepMerge(...themesToMerge); +} +var init_make_theme = __esm(() => { + init_theme(); +}); + +// node_modules/@inquirer/core/dist/esm/lib/use-prefix.js +import { AsyncResource as AsyncResource2 } from "node:async_hooks"; +function usePrefix({ status = "idle", theme }) { + const [showLoader, setShowLoader] = useState(false); + const [tick, setTick] = useState(0); + const { prefix, spinner: spinner2 } = makeTheme(theme); + useEffect(() => { + if (status === "loading") { + let tickInterval; + let inc = -1; + const delayTimeout = setTimeout(AsyncResource2.bind(() => { + setShowLoader(true); + tickInterval = setInterval(AsyncResource2.bind(() => { + inc = inc + 1; + setTick(inc % spinner2.frames.length); + }), spinner2.interval); + }), 300); + return () => { + clearTimeout(delayTimeout); + clearInterval(tickInterval); + }; + } else { + setShowLoader(false); + } + }, [status]); + if (showLoader) { + return spinner2.frames[tick]; + } + const iconName = status === "loading" ? "idle" : status; + return typeof prefix === "string" ? prefix : prefix[iconName] ?? prefix["idle"]; +} +var init_use_prefix = __esm(() => { + init_use_state(); + init_use_effect(); + init_make_theme(); +}); + +// node_modules/@inquirer/core/dist/esm/lib/use-memo.js +function useMemo(fn, dependencies) { + return withPointer((pointer) => { + const prev = pointer.get(); + if (!prev || prev.dependencies.length !== dependencies.length || prev.dependencies.some((dep, i) => dep !== dependencies[i])) { + const value = fn(); + pointer.set({ value, dependencies }); + return value; + } + return prev.value; + }); +} +var init_use_memo = __esm(() => { + init_hook_engine(); +}); + +// node_modules/@inquirer/core/dist/esm/lib/use-ref.js +function useRef(val) { + return useState({ current: val })[0]; +} +var init_use_ref = __esm(() => { + init_use_state(); +}); + +// node_modules/@inquirer/core/dist/esm/lib/use-keypress.js +function useKeypress(userHandler) { + const signal = useRef(userHandler); + signal.current = userHandler; + useEffect((rl) => { + let ignore = false; + const handler = withUpdates((_input, event) => { + if (ignore) + return; + signal.current(event, rl); + }); + rl.input.on("keypress", handler); + return () => { + ignore = true; + rl.input.removeListener("keypress", handler); + }; + }, []); +} +var init_use_keypress = __esm(() => { + init_use_ref(); + init_use_effect(); + init_hook_engine(); +}); + +// node_modules/cli-width/index.js +var require_cli_width = __commonJS((exports, module) => { + module.exports = cliWidth; + function normalizeOpts(options) { + const defaultOpts = { + defaultWidth: 0, + output: process.stdout, + tty: __require("tty") + }; + if (!options) { + return defaultOpts; + } + Object.keys(defaultOpts).forEach(function(key) { + if (!options[key]) { + options[key] = defaultOpts[key]; + } + }); + return options; + } + function cliWidth(options) { + const opts = normalizeOpts(options); + if (opts.output.getWindowSize) { + return opts.output.getWindowSize()[0] || opts.defaultWidth; + } + if (opts.tty.getWindowSize) { + return opts.tty.getWindowSize()[1] || opts.defaultWidth; + } + if (opts.output.columns) { + return opts.output.columns; + } + if (process.env.CLI_WIDTH) { + const width = parseInt(process.env.CLI_WIDTH, 10); + if (!isNaN(width) && width !== 0) { + return width; + } + } + return opts.defaultWidth; + } +}); + +// node_modules/wrap-ansi/node_modules/strip-ansi/node_modules/ansi-regex/index.js +var require_ansi_regex = __commonJS((exports, module) => { + module.exports = ({ onlyFirst = false } = {}) => { + const pattern = [ + "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", + "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" + ].join("|"); + return new RegExp(pattern, onlyFirst ? undefined : "g"); + }; +}); + +// node_modules/wrap-ansi/node_modules/strip-ansi/index.js +var require_strip_ansi = __commonJS((exports, module) => { + var ansiRegex2 = require_ansi_regex(); + module.exports = (string) => typeof string === "string" ? string.replace(ansiRegex2(), "") : string; +}); + +// node_modules/is-fullwidth-code-point/index.js +var require_is_fullwidth_code_point = __commonJS((exports, module) => { + var isFullwidthCodePoint = (codePoint) => { + if (Number.isNaN(codePoint)) { + return false; + } + if (codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || 12880 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65131 || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 262141)) { + return true; + } + return false; + }; + module.exports = isFullwidthCodePoint; + module.exports.default = isFullwidthCodePoint; +}); + +// node_modules/wrap-ansi/node_modules/string-width/node_modules/emoji-regex/index.js +var require_emoji_regex2 = __commonJS((exports, module) => { + module.exports = function() { + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; + }; +}); + +// node_modules/wrap-ansi/node_modules/string-width/index.js +var require_string_width = __commonJS((exports, module) => { + var stripAnsi2 = require_strip_ansi(); + var isFullwidthCodePoint = require_is_fullwidth_code_point(); + var emojiRegex3 = require_emoji_regex2(); + var stringWidth2 = (string) => { + if (typeof string !== "string" || string.length === 0) { + return 0; + } + string = stripAnsi2(string); + if (string.length === 0) { + return 0; + } + string = string.replace(emojiRegex3(), " "); + let width = 0; + for (let i = 0;i < string.length; i++) { + const code = string.codePointAt(i); + if (code <= 31 || code >= 127 && code <= 159) { + continue; + } + if (code >= 768 && code <= 879) { + continue; + } + if (code > 65535) { + i++; + } + width += isFullwidthCodePoint(code) ? 2 : 1; + } + return width; + }; + module.exports = stringWidth2; + module.exports.default = stringWidth2; +}); + +// node_modules/color-name/index.js +var require_color_name = __commonJS((exports, module) => { + module.exports = { + aliceblue: [240, 248, 255], + antiquewhite: [250, 235, 215], + aqua: [0, 255, 255], + aquamarine: [127, 255, 212], + azure: [240, 255, 255], + beige: [245, 245, 220], + bisque: [255, 228, 196], + black: [0, 0, 0], + blanchedalmond: [255, 235, 205], + blue: [0, 0, 255], + blueviolet: [138, 43, 226], + brown: [165, 42, 42], + burlywood: [222, 184, 135], + cadetblue: [95, 158, 160], + chartreuse: [127, 255, 0], + chocolate: [210, 105, 30], + coral: [255, 127, 80], + cornflowerblue: [100, 149, 237], + cornsilk: [255, 248, 220], + crimson: [220, 20, 60], + cyan: [0, 255, 255], + darkblue: [0, 0, 139], + darkcyan: [0, 139, 139], + darkgoldenrod: [184, 134, 11], + darkgray: [169, 169, 169], + darkgreen: [0, 100, 0], + darkgrey: [169, 169, 169], + darkkhaki: [189, 183, 107], + darkmagenta: [139, 0, 139], + darkolivegreen: [85, 107, 47], + darkorange: [255, 140, 0], + darkorchid: [153, 50, 204], + darkred: [139, 0, 0], + darksalmon: [233, 150, 122], + darkseagreen: [143, 188, 143], + darkslateblue: [72, 61, 139], + darkslategray: [47, 79, 79], + darkslategrey: [47, 79, 79], + darkturquoise: [0, 206, 209], + darkviolet: [148, 0, 211], + deeppink: [255, 20, 147], + deepskyblue: [0, 191, 255], + dimgray: [105, 105, 105], + dimgrey: [105, 105, 105], + dodgerblue: [30, 144, 255], + firebrick: [178, 34, 34], + floralwhite: [255, 250, 240], + forestgreen: [34, 139, 34], + fuchsia: [255, 0, 255], + gainsboro: [220, 220, 220], + ghostwhite: [248, 248, 255], + gold: [255, 215, 0], + goldenrod: [218, 165, 32], + gray: [128, 128, 128], + green: [0, 128, 0], + greenyellow: [173, 255, 47], + grey: [128, 128, 128], + honeydew: [240, 255, 240], + hotpink: [255, 105, 180], + indianred: [205, 92, 92], + indigo: [75, 0, 130], + ivory: [255, 255, 240], + khaki: [240, 230, 140], + lavender: [230, 230, 250], + lavenderblush: [255, 240, 245], + lawngreen: [124, 252, 0], + lemonchiffon: [255, 250, 205], + lightblue: [173, 216, 230], + lightcoral: [240, 128, 128], + lightcyan: [224, 255, 255], + lightgoldenrodyellow: [250, 250, 210], + lightgray: [211, 211, 211], + lightgreen: [144, 238, 144], + lightgrey: [211, 211, 211], + lightpink: [255, 182, 193], + lightsalmon: [255, 160, 122], + lightseagreen: [32, 178, 170], + lightskyblue: [135, 206, 250], + lightslategray: [119, 136, 153], + lightslategrey: [119, 136, 153], + lightsteelblue: [176, 196, 222], + lightyellow: [255, 255, 224], + lime: [0, 255, 0], + limegreen: [50, 205, 50], + linen: [250, 240, 230], + magenta: [255, 0, 255], + maroon: [128, 0, 0], + mediumaquamarine: [102, 205, 170], + mediumblue: [0, 0, 205], + mediumorchid: [186, 85, 211], + mediumpurple: [147, 112, 219], + mediumseagreen: [60, 179, 113], + mediumslateblue: [123, 104, 238], + mediumspringgreen: [0, 250, 154], + mediumturquoise: [72, 209, 204], + mediumvioletred: [199, 21, 133], + midnightblue: [25, 25, 112], + mintcream: [245, 255, 250], + mistyrose: [255, 228, 225], + moccasin: [255, 228, 181], + navajowhite: [255, 222, 173], + navy: [0, 0, 128], + oldlace: [253, 245, 230], + olive: [128, 128, 0], + olivedrab: [107, 142, 35], + orange: [255, 165, 0], + orangered: [255, 69, 0], + orchid: [218, 112, 214], + palegoldenrod: [238, 232, 170], + palegreen: [152, 251, 152], + paleturquoise: [175, 238, 238], + palevioletred: [219, 112, 147], + papayawhip: [255, 239, 213], + peachpuff: [255, 218, 185], + peru: [205, 133, 63], + pink: [255, 192, 203], + plum: [221, 160, 221], + powderblue: [176, 224, 230], + purple: [128, 0, 128], + rebeccapurple: [102, 51, 153], + red: [255, 0, 0], + rosybrown: [188, 143, 143], + royalblue: [65, 105, 225], + saddlebrown: [139, 69, 19], + salmon: [250, 128, 114], + sandybrown: [244, 164, 96], + seagreen: [46, 139, 87], + seashell: [255, 245, 238], + sienna: [160, 82, 45], + silver: [192, 192, 192], + skyblue: [135, 206, 235], + slateblue: [106, 90, 205], + slategray: [112, 128, 144], + slategrey: [112, 128, 144], + snow: [255, 250, 250], + springgreen: [0, 255, 127], + steelblue: [70, 130, 180], + tan: [210, 180, 140], + teal: [0, 128, 128], + thistle: [216, 191, 216], + tomato: [255, 99, 71], + turquoise: [64, 224, 208], + violet: [238, 130, 238], + wheat: [245, 222, 179], + white: [255, 255, 255], + whitesmoke: [245, 245, 245], + yellow: [255, 255, 0], + yellowgreen: [154, 205, 50] + }; +}); + +// node_modules/color-convert/conversions.js +var require_conversions = __commonJS((exports, module) => { + var cssKeywords = require_color_name(); + var reverseKeywords = {}; + for (const key of Object.keys(cssKeywords)) { + reverseKeywords[cssKeywords[key]] = key; + } + var convert = { + rgb: { channels: 3, labels: "rgb" }, + hsl: { channels: 3, labels: "hsl" }, + hsv: { channels: 3, labels: "hsv" }, + hwb: { channels: 3, labels: "hwb" }, + cmyk: { channels: 4, labels: "cmyk" }, + xyz: { channels: 3, labels: "xyz" }, + lab: { channels: 3, labels: "lab" }, + lch: { channels: 3, labels: "lch" }, + hex: { channels: 1, labels: ["hex"] }, + keyword: { channels: 1, labels: ["keyword"] }, + ansi16: { channels: 1, labels: ["ansi16"] }, + ansi256: { channels: 1, labels: ["ansi256"] }, + hcg: { channels: 3, labels: ["h", "c", "g"] }, + apple: { channels: 3, labels: ["r16", "g16", "b16"] }, + gray: { channels: 1, labels: ["gray"] } + }; + module.exports = convert; + for (const model of Object.keys(convert)) { + if (!("channels" in convert[model])) { + throw new Error("missing channels property: " + model); + } + if (!("labels" in convert[model])) { + throw new Error("missing channel labels property: " + model); + } + if (convert[model].labels.length !== convert[model].channels) { + throw new Error("channel and label counts mismatch: " + model); + } + const { channels, labels } = convert[model]; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], "channels", { value: channels }); + Object.defineProperty(convert[model], "labels", { value: labels }); + } + convert.rgb.hsl = function(rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const min = Math.min(r, g, b); + const max = Math.max(r, g, b); + const delta = max - min; + let h; + let s; + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + h = Math.min(h * 60, 360); + if (h < 0) { + h += 360; + } + const l = (min + max) / 2; + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + return [h, s * 100, l * 100]; + }; + convert.rgb.hsv = function(rgb) { + let rdif; + let gdif; + let bdif; + let h; + let s; + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const v = Math.max(r, g, b); + const diff = v - Math.min(r, g, b); + const diffc = function(c) { + return (v - c) / 6 / diff + 1 / 2; + }; + if (diff === 0) { + h = 0; + s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = 1 / 3 + rdif - bdif; + } else if (b === v) { + h = 2 / 3 + gdif - rdif; + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + return [ + h * 360, + s * 100, + v * 100 + ]; + }; + convert.rgb.hwb = function(rgb) { + const r = rgb[0]; + const g = rgb[1]; + let b = rgb[2]; + const h = convert.rgb.hsl(rgb)[0]; + const w = 1 / 255 * Math.min(r, Math.min(g, b)); + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + return [h, w * 100, b * 100]; + }; + convert.rgb.cmyk = function(rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const k = Math.min(1 - r, 1 - g, 1 - b); + const c = (1 - r - k) / (1 - k) || 0; + const m = (1 - g - k) / (1 - k) || 0; + const y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; + }; + function comparativeDistance(x, y) { + return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2; + } + convert.rgb.keyword = function(rgb) { + const reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + let currentClosestDistance = Infinity; + let currentClosestKeyword; + for (const keyword of Object.keys(cssKeywords)) { + const value = cssKeywords[keyword]; + const distance = comparativeDistance(rgb, value); + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + return currentClosestKeyword; + }; + convert.keyword.rgb = function(keyword) { + return cssKeywords[keyword]; + }; + convert.rgb.xyz = function(rgb) { + let r = rgb[0] / 255; + let g = rgb[1] / 255; + let b = rgb[2] / 255; + r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92; + g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92; + b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92; + const x = r * 0.4124 + g * 0.3576 + b * 0.1805; + const y = r * 0.2126 + g * 0.7152 + b * 0.0722; + const z2 = r * 0.0193 + g * 0.1192 + b * 0.9505; + return [x * 100, y * 100, z2 * 100]; + }; + convert.rgb.lab = function(rgb) { + const xyz = convert.rgb.xyz(rgb); + let x = xyz[0]; + let y = xyz[1]; + let z2 = xyz[2]; + x /= 95.047; + y /= 100; + z2 /= 108.883; + x = x > 0.008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116; + z2 = z2 > 0.008856 ? z2 ** (1 / 3) : 7.787 * z2 + 16 / 116; + const l = 116 * y - 16; + const a = 500 * (x - y); + const b = 200 * (y - z2); + return [l, a, b]; + }; + convert.hsl.rgb = function(hsl) { + const h = hsl[0] / 360; + const s = hsl[1] / 100; + const l = hsl[2] / 100; + let t2; + let t3; + let val; + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + const t1 = 2 * l - t2; + const rgb = [0, 0, 0]; + for (let i = 0;i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + rgb[i] = val * 255; + } + return rgb; + }; + convert.hsl.hsv = function(hsl) { + const h = hsl[0]; + let s = hsl[1] / 100; + let l = hsl[2] / 100; + let smin = s; + const lmin = Math.max(l, 0.01); + l *= 2; + s *= l <= 1 ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + const v = (l + s) / 2; + const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); + return [h, sv * 100, v * 100]; + }; + convert.hsv.rgb = function(hsv) { + const h = hsv[0] / 60; + const s = hsv[1] / 100; + let v = hsv[2] / 100; + const hi = Math.floor(h) % 6; + const f = h - Math.floor(h); + const p = 255 * v * (1 - s); + const q = 255 * v * (1 - s * f); + const t = 255 * v * (1 - s * (1 - f)); + v *= 255; + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } + }; + convert.hsv.hsl = function(hsv) { + const h = hsv[0]; + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const vmin = Math.max(v, 0.01); + let sl; + let l; + l = (2 - s) * v; + const lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= lmin <= 1 ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; + }; + convert.hwb.rgb = function(hwb) { + const h = hwb[0] / 360; + let wh = hwb[1] / 100; + let bl = hwb[2] / 100; + const ratio = wh + bl; + let f; + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + const i = Math.floor(6 * h); + const v = 1 - bl; + f = 6 * h - i; + if ((i & 1) !== 0) { + f = 1 - f; + } + const n = wh + f * (v - wh); + let r; + let g; + let b; + switch (i) { + default: + case 6: + case 0: + r = v; + g = n; + b = wh; + break; + case 1: + r = n; + g = v; + b = wh; + break; + case 2: + r = wh; + g = v; + b = n; + break; + case 3: + r = wh; + g = n; + b = v; + break; + case 4: + r = n; + g = wh; + b = v; + break; + case 5: + r = v; + g = wh; + b = n; + break; + } + return [r * 255, g * 255, b * 255]; + }; + convert.cmyk.rgb = function(cmyk) { + const c = cmyk[0] / 100; + const m = cmyk[1] / 100; + const y = cmyk[2] / 100; + const k = cmyk[3] / 100; + const r = 1 - Math.min(1, c * (1 - k) + k); + const g = 1 - Math.min(1, m * (1 - k) + k); + const b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; + }; + convert.xyz.rgb = function(xyz) { + const x = xyz[0] / 100; + const y = xyz[1] / 100; + const z2 = xyz[2] / 100; + let r; + let g; + let b; + r = x * 3.2406 + y * -1.5372 + z2 * -0.4986; + g = x * -0.9689 + y * 1.8758 + z2 * 0.0415; + b = x * 0.0557 + y * -0.204 + z2 * 1.057; + r = r > 0.0031308 ? 1.055 * r ** (1 / 2.4) - 0.055 : r * 12.92; + g = g > 0.0031308 ? 1.055 * g ** (1 / 2.4) - 0.055 : g * 12.92; + b = b > 0.0031308 ? 1.055 * b ** (1 / 2.4) - 0.055 : b * 12.92; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + return [r * 255, g * 255, b * 255]; + }; + convert.xyz.lab = function(xyz) { + let x = xyz[0]; + let y = xyz[1]; + let z2 = xyz[2]; + x /= 95.047; + y /= 100; + z2 /= 108.883; + x = x > 0.008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116; + z2 = z2 > 0.008856 ? z2 ** (1 / 3) : 7.787 * z2 + 16 / 116; + const l = 116 * y - 16; + const a = 500 * (x - y); + const b = 200 * (y - z2); + return [l, a, b]; + }; + convert.lab.xyz = function(lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let x; + let y; + let z2; + y = (l + 16) / 116; + x = a / 500 + y; + z2 = y - b / 200; + const y2 = y ** 3; + const x2 = x ** 3; + const z22 = z2 ** 3; + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z2 = z22 > 0.008856 ? z22 : (z2 - 16 / 116) / 7.787; + x *= 95.047; + y *= 100; + z2 *= 108.883; + return [x, y, z2]; + }; + convert.lab.lch = function(lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let h; + const hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + if (h < 0) { + h += 360; + } + const c = Math.sqrt(a * a + b * b); + return [l, c, h]; + }; + convert.lch.lab = function(lch) { + const l = lch[0]; + const c = lch[1]; + const h = lch[2]; + const hr = h / 360 * 2 * Math.PI; + const a = c * Math.cos(hr); + const b = c * Math.sin(hr); + return [l, a, b]; + }; + convert.rgb.ansi16 = function(args, saturation = null) { + const [r, g, b] = args; + let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; + value = Math.round(value / 50); + if (value === 0) { + return 30; + } + let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); + if (value === 2) { + ansi += 60; + } + return ansi; + }; + convert.hsv.ansi16 = function(args) { + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); + }; + convert.rgb.ansi256 = function(args) { + const r = args[0]; + const g = args[1]; + const b = args[2]; + if (r === g && g === b) { + if (r < 8) { + return 16; + } + if (r > 248) { + return 231; + } + return Math.round((r - 8) / 247 * 24) + 232; + } + const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); + return ansi; + }; + convert.ansi16.rgb = function(args) { + let color = args % 10; + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + color = color / 10.5 * 255; + return [color, color, color]; + } + const mult = (~~(args > 50) + 1) * 0.5; + const r = (color & 1) * mult * 255; + const g = (color >> 1 & 1) * mult * 255; + const b = (color >> 2 & 1) * mult * 255; + return [r, g, b]; + }; + convert.ansi256.rgb = function(args) { + if (args >= 232) { + const c = (args - 232) * 10 + 8; + return [c, c, c]; + } + args -= 16; + let rem; + const r = Math.floor(args / 36) / 5 * 255; + const g = Math.floor((rem = args % 36) / 6) / 5 * 255; + const b = rem % 6 / 5 * 255; + return [r, g, b]; + }; + convert.rgb.hex = function(args) { + const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); + const string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; + }; + convert.hex.rgb = function(args) { + const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } + let colorString = match[0]; + if (match[0].length === 3) { + colorString = colorString.split("").map((char) => { + return char + char; + }).join(""); + } + const integer = parseInt(colorString, 16); + const r = integer >> 16 & 255; + const g = integer >> 8 & 255; + const b = integer & 255; + return [r, g, b]; + }; + convert.rgb.hcg = function(rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const max = Math.max(Math.max(r, g), b); + const min = Math.min(Math.min(r, g), b); + const chroma = max - min; + let grayscale; + let hue; + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } + if (chroma <= 0) { + hue = 0; + } else if (max === r) { + hue = (g - b) / chroma % 6; + } else if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma; + } + hue /= 6; + hue %= 1; + return [hue * 360, chroma * 100, grayscale * 100]; + }; + convert.hsl.hcg = function(hsl) { + const s = hsl[1] / 100; + const l = hsl[2] / 100; + const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l); + let f = 0; + if (c < 1) { + f = (l - 0.5 * c) / (1 - c); + } + return [hsl[0], c * 100, f * 100]; + }; + convert.hsv.hcg = function(hsv) { + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const c = s * v; + let f = 0; + if (c < 1) { + f = (v - c) / (1 - c); + } + return [hsv[0], c * 100, f * 100]; + }; + convert.hcg.rgb = function(hcg) { + const h = hcg[0] / 360; + const c = hcg[1] / 100; + const g = hcg[2] / 100; + if (c === 0) { + return [g * 255, g * 255, g * 255]; + } + const pure = [0, 0, 0]; + const hi = h % 1 * 6; + const v = hi % 1; + const w = 1 - v; + let mg = 0; + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; + pure[1] = v; + pure[2] = 0; + break; + case 1: + pure[0] = w; + pure[1] = 1; + pure[2] = 0; + break; + case 2: + pure[0] = 0; + pure[1] = 1; + pure[2] = v; + break; + case 3: + pure[0] = 0; + pure[1] = w; + pure[2] = 1; + break; + case 4: + pure[0] = v; + pure[1] = 0; + pure[2] = 1; + break; + default: + pure[0] = 1; + pure[1] = 0; + pure[2] = w; + } + mg = (1 - c) * g; + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; + }; + convert.hcg.hsv = function(hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1 - c); + let f = 0; + if (v > 0) { + f = c / v; + } + return [hcg[0], f * 100, v * 100]; + }; + convert.hcg.hsl = function(hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const l = g * (1 - c) + 0.5 * c; + let s = 0; + if (l > 0 && l < 0.5) { + s = c / (2 * l); + } else if (l >= 0.5 && l < 1) { + s = c / (2 * (1 - l)); + } + return [hcg[0], s * 100, l * 100]; + }; + convert.hcg.hwb = function(hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; + }; + convert.hwb.hcg = function(hwb) { + const w = hwb[1] / 100; + const b = hwb[2] / 100; + const v = 1 - b; + const c = v - w; + let g = 0; + if (c < 1) { + g = (v - c) / (1 - c); + } + return [hwb[0], c * 100, g * 100]; + }; + convert.apple.rgb = function(apple) { + return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; + }; + convert.rgb.apple = function(rgb) { + return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; + }; + convert.gray.rgb = function(args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; + }; + convert.gray.hsl = function(args) { + return [0, 0, args[0]]; + }; + convert.gray.hsv = convert.gray.hsl; + convert.gray.hwb = function(gray) { + return [0, 100, gray[0]]; + }; + convert.gray.cmyk = function(gray) { + return [0, 0, 0, gray[0]]; + }; + convert.gray.lab = function(gray) { + return [gray[0], 0, 0]; + }; + convert.gray.hex = function(gray) { + const val = Math.round(gray[0] / 100 * 255) & 255; + const integer = (val << 16) + (val << 8) + val; + const string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; + }; + convert.rgb.gray = function(rgb) { + const val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; + }; +}); + +// node_modules/color-convert/route.js +var require_route = __commonJS((exports, module) => { + var conversions = require_conversions(); + function buildGraph() { + const graph = {}; + const models = Object.keys(conversions); + for (let len = models.length, i = 0;i < len; i++) { + graph[models[i]] = { + distance: -1, + parent: null + }; + } + return graph; + } + function deriveBFS(fromModel) { + const graph = buildGraph(); + const queue = [fromModel]; + graph[fromModel].distance = 0; + while (queue.length) { + const current = queue.pop(); + const adjacents = Object.keys(conversions[current]); + for (let len = adjacents.length, i = 0;i < len; i++) { + const adjacent = adjacents[i]; + const node = graph[adjacent]; + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + return graph; + } + function link(from, to) { + return function(args) { + return to(from(args)); + }; + } + function wrapConversion(toModel, graph) { + const path2 = [graph[toModel].parent, toModel]; + let fn = conversions[graph[toModel].parent][toModel]; + let cur = graph[toModel].parent; + while (graph[cur].parent) { + path2.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + fn.conversion = path2; + return fn; + } + module.exports = function(fromModel) { + const graph = deriveBFS(fromModel); + const conversion = {}; + const models = Object.keys(graph); + for (let len = models.length, i = 0;i < len; i++) { + const toModel = models[i]; + const node = graph[toModel]; + if (node.parent === null) { + continue; + } + conversion[toModel] = wrapConversion(toModel, graph); + } + return conversion; + }; +}); + +// node_modules/color-convert/index.js +var require_color_convert = __commonJS((exports, module) => { + var conversions = require_conversions(); + var route = require_route(); + var convert = {}; + var models = Object.keys(conversions); + function wrapRaw(fn) { + const wrappedFn = function(...args) { + const arg0 = args[0]; + if (arg0 === undefined || arg0 === null) { + return arg0; + } + if (arg0.length > 1) { + args = arg0; + } + return fn(args); + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; + } + function wrapRounded(fn) { + const wrappedFn = function(...args) { + const arg0 = args[0]; + if (arg0 === undefined || arg0 === null) { + return arg0; + } + if (arg0.length > 1) { + args = arg0; + } + const result = fn(args); + if (typeof result === "object") { + for (let len = result.length, i = 0;i < len; i++) { + result[i] = Math.round(result[i]); + } + } + return result; + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; + } + models.forEach((fromModel) => { + convert[fromModel] = {}; + Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels }); + Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels }); + const routes = route(fromModel); + const routeModels = Object.keys(routes); + routeModels.forEach((toModel) => { + const fn = routes[toModel]; + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); + }); + module.exports = convert; +}); + +// node_modules/ansi-styles/index.js +var require_ansi_styles = __commonJS((exports, module) => { + var wrapAnsi162 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\x1B[${code + offset}m`; + }; + var wrapAnsi2562 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\x1B[${38 + offset};5;${code}m`; + }; + var wrapAnsi16m2 = (fn, offset) => (...args) => { + const rgb = fn(...args); + return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; + }; + var ansi2ansi = (n) => n; + var rgb2rgb = (r, g, b) => [r, g, b]; + var setLazyProperty = (object, property, get) => { + Object.defineProperty(object, property, { + get: () => { + const value = get(); + Object.defineProperty(object, property, { + value, + enumerable: true, + configurable: true + }); + return value; + }, + enumerable: true, + configurable: true + }); + }; + var colorConvert; + var makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { + if (colorConvert === undefined) { + colorConvert = require_color_convert(); + } + const offset = isBackground ? 10 : 0; + const styles3 = {}; + for (const [sourceSpace, suite] of Object.entries(colorConvert)) { + const name = sourceSpace === "ansi16" ? "ansi" : sourceSpace; + if (sourceSpace === targetSpace) { + styles3[name] = wrap(identity, offset); + } else if (typeof suite === "object") { + styles3[name] = wrap(suite[targetSpace], offset); + } + } + return styles3; + }; + function assembleStyles2() { + const codes = new Map; + const styles3 = { + modifier: { + reset: [0, 0], + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + blackBright: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + styles3.color.gray = styles3.color.blackBright; + styles3.bgColor.bgGray = styles3.bgColor.bgBlackBright; + styles3.color.grey = styles3.color.blackBright; + styles3.bgColor.bgGrey = styles3.bgColor.bgBlackBright; + for (const [groupName, group] of Object.entries(styles3)) { + for (const [styleName, style] of Object.entries(group)) { + styles3[styleName] = { + open: `\x1B[${style[0]}m`, + close: `\x1B[${style[1]}m` + }; + group[styleName] = styles3[styleName]; + codes.set(style[0], style[1]); + } + Object.defineProperty(styles3, groupName, { + value: group, + enumerable: false + }); + } + Object.defineProperty(styles3, "codes", { + value: codes, + enumerable: false + }); + styles3.color.close = "\x1B[39m"; + styles3.bgColor.close = "\x1B[49m"; + setLazyProperty(styles3.color, "ansi", () => makeDynamicStyles(wrapAnsi162, "ansi16", ansi2ansi, false)); + setLazyProperty(styles3.color, "ansi256", () => makeDynamicStyles(wrapAnsi2562, "ansi256", ansi2ansi, false)); + setLazyProperty(styles3.color, "ansi16m", () => makeDynamicStyles(wrapAnsi16m2, "rgb", rgb2rgb, false)); + setLazyProperty(styles3.bgColor, "ansi", () => makeDynamicStyles(wrapAnsi162, "ansi16", ansi2ansi, true)); + setLazyProperty(styles3.bgColor, "ansi256", () => makeDynamicStyles(wrapAnsi2562, "ansi256", ansi2ansi, true)); + setLazyProperty(styles3.bgColor, "ansi16m", () => makeDynamicStyles(wrapAnsi16m2, "rgb", rgb2rgb, true)); + return styles3; + } + Object.defineProperty(module, "exports", { + enumerable: true, + get: assembleStyles2 + }); +}); + +// node_modules/wrap-ansi/index.js +var require_wrap_ansi = __commonJS((exports, module) => { + var stringWidth2 = require_string_width(); + var stripAnsi2 = require_strip_ansi(); + var ansiStyles2 = require_ansi_styles(); + var ESCAPES = new Set([ + "\x1B", + "Ā›" + ]); + var END_CODE = 39; + var wrapAnsi = (code) => `${ESCAPES.values().next().value}[${code}m`; + var wordLengths = (string) => string.split(" ").map((character) => stringWidth2(character)); + var wrapWord = (rows, word, columns) => { + const characters = [...word]; + let isInsideEscape = false; + let visible = stringWidth2(stripAnsi2(rows[rows.length - 1])); + for (const [index, character] of characters.entries()) { + const characterLength = stringWidth2(character); + if (visible + characterLength <= columns) { + rows[rows.length - 1] += character; + } else { + rows.push(character); + visible = 0; + } + if (ESCAPES.has(character)) { + isInsideEscape = true; + } else if (isInsideEscape && character === "m") { + isInsideEscape = false; + continue; + } + if (isInsideEscape) { + continue; + } + visible += characterLength; + if (visible === columns && index < characters.length - 1) { + rows.push(""); + visible = 0; + } + } + if (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) { + rows[rows.length - 2] += rows.pop(); + } + }; + var stringVisibleTrimSpacesRight = (str) => { + const words = str.split(" "); + let last = words.length; + while (last > 0) { + if (stringWidth2(words[last - 1]) > 0) { + break; + } + last--; + } + if (last === words.length) { + return str; + } + return words.slice(0, last).join(" ") + words.slice(last).join(""); + }; + var exec = (string, columns, options = {}) => { + if (options.trim !== false && string.trim() === "") { + return ""; + } + let pre = ""; + let ret = ""; + let escapeCode; + const lengths = wordLengths(string); + let rows = [""]; + for (const [index, word] of string.split(" ").entries()) { + if (options.trim !== false) { + rows[rows.length - 1] = rows[rows.length - 1].trimLeft(); + } + let rowLength = stringWidth2(rows[rows.length - 1]); + if (index !== 0) { + if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) { + rows.push(""); + rowLength = 0; + } + if (rowLength > 0 || options.trim === false) { + rows[rows.length - 1] += " "; + rowLength++; + } + } + if (options.hard && lengths[index] > columns) { + const remainingColumns = columns - rowLength; + const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns); + const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns); + if (breaksStartingNextLine < breaksStartingThisLine) { + rows.push(""); + } + wrapWord(rows, word, columns); + continue; + } + if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) { + if (options.wordWrap === false && rowLength < columns) { + wrapWord(rows, word, columns); + continue; + } + rows.push(""); + } + if (rowLength + lengths[index] > columns && options.wordWrap === false) { + wrapWord(rows, word, columns); + continue; + } + rows[rows.length - 1] += word; + } + if (options.trim !== false) { + rows = rows.map(stringVisibleTrimSpacesRight); + } + pre = rows.join(` +`); + for (const [index, character] of [...pre].entries()) { + ret += character; + if (ESCAPES.has(character)) { + const code2 = parseFloat(/\d[^m]*/.exec(pre.slice(index, index + 4))); + escapeCode = code2 === END_CODE ? null : code2; + } + const code = ansiStyles2.codes.get(Number(escapeCode)); + if (escapeCode && code) { + if (pre[index + 1] === ` +`) { + ret += wrapAnsi(code); + } else if (character === ` +`) { + ret += wrapAnsi(escapeCode); + } + } + } + return ret; + }; + module.exports = (string, columns, options) => { + return String(string).normalize().replace(/\r\n/g, ` +`).split(` +`).map((line) => exec(line, columns, options)).join(` +`); + }; +}); + +// node_modules/@inquirer/core/dist/esm/lib/utils.js +function breakLines(content, width) { + return content.split(` +`).flatMap((line) => import_wrap_ansi.default(line, width, { trim: false, hard: true }).split(` +`).map((str) => str.trimEnd())).join(` +`); +} +function readlineWidth() { + return import_cli_width.default({ defaultWidth: 80, output: readline().output }); +} +var import_cli_width, import_wrap_ansi; +var init_utils = __esm(() => { + import_cli_width = __toESM(require_cli_width(), 1); + import_wrap_ansi = __toESM(require_wrap_ansi(), 1); + init_hook_engine(); +}); + +// node_modules/@inquirer/core/dist/esm/lib/pagination/lines.js +function split(content, width) { + return breakLines(content, width).split(` +`); +} +function rotate(count, items) { + const max = items.length; + const offset = (count % max + max) % max; + return [...items.slice(offset), ...items.slice(0, offset)]; +} +function lines({ items, width, renderItem, active, position: requested, pageSize }) { + const layouts = items.map((item, index) => ({ + item, + index, + isActive: index === active + })); + const layoutsInPage = rotate(active - requested, layouts).slice(0, pageSize); + const renderItemAt = (index) => layoutsInPage[index] == null ? [] : split(renderItem(layoutsInPage[index]), width); + const pageBuffer = Array.from({ length: pageSize }); + const activeItem = renderItemAt(requested).slice(0, pageSize); + const position = requested + activeItem.length <= pageSize ? requested : pageSize - activeItem.length; + pageBuffer.splice(position, activeItem.length, ...activeItem); + let bufferPointer = position + activeItem.length; + let layoutPointer = requested + 1; + while (bufferPointer < pageSize && layoutPointer < layoutsInPage.length) { + for (const line of renderItemAt(layoutPointer)) { + pageBuffer[bufferPointer++] = line; + if (bufferPointer >= pageSize) + break; + } + layoutPointer++; + } + bufferPointer = position - 1; + layoutPointer = requested - 1; + while (bufferPointer >= 0 && layoutPointer >= 0) { + for (const line of renderItemAt(layoutPointer).reverse()) { + pageBuffer[bufferPointer--] = line; + if (bufferPointer < 0) + break; + } + layoutPointer--; + } + return pageBuffer.filter((line) => typeof line === "string"); +} +var init_lines = __esm(() => { + init_utils(); +}); + +// node_modules/@inquirer/core/dist/esm/lib/pagination/position.js +function finite({ active, pageSize, total }) { + const middle = Math.floor(pageSize / 2); + if (total <= pageSize || active < middle) + return active; + if (active >= total - middle) + return active + pageSize - total; + return middle; +} +function infinite({ active, lastActive, total, pageSize, pointer }) { + if (total <= pageSize) + return active; + if (lastActive < active && active - lastActive < pageSize) { + return Math.min(Math.floor(pageSize / 2), pointer + active - lastActive); + } + return pointer; +} + +// node_modules/@inquirer/core/dist/esm/lib/pagination/use-pagination.js +function usePagination({ items, active, renderItem, pageSize, loop = true }) { + const state = useRef({ position: 0, lastActive: 0 }); + const position = loop ? infinite({ + active, + lastActive: state.current.lastActive, + total: items.length, + pageSize, + pointer: state.current.position + }) : finite({ + active, + total: items.length, + pageSize + }); + state.current.position = position; + state.current.lastActive = active; + return lines({ + items, + width: readlineWidth(), + renderItem, + active, + position, + pageSize + }).join(` +`); +} +var init_use_pagination = __esm(() => { + init_use_ref(); + init_utils(); + init_lines(); +}); + +// node_modules/mute-stream/lib/index.js +var require_lib = __commonJS((exports, module) => { + var Stream = __require("stream"); + + class MuteStream extends Stream { + #isTTY = null; + constructor(opts = {}) { + super(opts); + this.writable = this.readable = true; + this.muted = false; + this.on("pipe", this._onpipe); + this.replace = opts.replace; + this._prompt = opts.prompt || null; + this._hadControl = false; + } + #destSrc(key, def) { + if (this._dest) { + return this._dest[key]; + } + if (this._src) { + return this._src[key]; + } + return def; + } + #proxy(method, ...args) { + if (typeof this._dest?.[method] === "function") { + this._dest[method](...args); + } + if (typeof this._src?.[method] === "function") { + this._src[method](...args); + } + } + get isTTY() { + if (this.#isTTY !== null) { + return this.#isTTY; + } + return this.#destSrc("isTTY", false); + } + set isTTY(val) { + this.#isTTY = val; + } + get rows() { + return this.#destSrc("rows"); + } + get columns() { + return this.#destSrc("columns"); + } + mute() { + this.muted = true; + } + unmute() { + this.muted = false; + } + _onpipe(src) { + this._src = src; + } + pipe(dest, options) { + this._dest = dest; + return super.pipe(dest, options); + } + pause() { + if (this._src) { + return this._src.pause(); + } + } + resume() { + if (this._src) { + return this._src.resume(); + } + } + write(c) { + if (this.muted) { + if (!this.replace) { + return true; + } + if (c.match(/^\u001b/)) { + if (c.indexOf(this._prompt) === 0) { + c = c.slice(this._prompt.length); + c = c.replace(/./g, this.replace); + c = this._prompt + c; + } + this._hadControl = true; + return this.emit("data", c); + } else { + if (this._prompt && this._hadControl && c.indexOf(this._prompt) === 0) { + this._hadControl = false; + this.emit("data", this._prompt); + c = c.slice(this._prompt.length); + } + c = c.toString().replace(/./g, this.replace); + } + } + this.emit("data", c); + } + end(c) { + if (this.muted) { + if (c && this.replace) { + c = c.toString().replace(/./g, this.replace); + } else { + c = null; + } + } + if (c) { + this.emit("data", c); + } + this.emit("end"); + } + destroy(...args) { + return this.#proxy("destroy", ...args); + } + destroySoon(...args) { + return this.#proxy("destroySoon", ...args); + } + close(...args) { + return this.#proxy("close", ...args); + } + } + module.exports = MuteStream; +}); + +// node_modules/@inquirer/core/node_modules/strip-ansi/node_modules/ansi-regex/index.js +var require_ansi_regex2 = __commonJS((exports, module) => { + module.exports = ({ onlyFirst = false } = {}) => { + const pattern = [ + "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", + "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" + ].join("|"); + return new RegExp(pattern, onlyFirst ? undefined : "g"); + }; +}); + +// node_modules/@inquirer/core/node_modules/strip-ansi/index.js +var require_strip_ansi2 = __commonJS((exports, module) => { + var ansiRegex2 = require_ansi_regex2(); + module.exports = (string) => typeof string === "string" ? string.replace(ansiRegex2(), "") : string; +}); + +// node_modules/ansi-escapes/index.js +var require_ansi_escapes = __commonJS((exports, module) => { + var ansiEscapes = exports; + exports.default = ansiEscapes; + var ESC = "\x1B["; + var OSC = "\x1B]"; + var BEL = "\x07"; + var SEP = ";"; + var isTerminalApp = process.env.TERM_PROGRAM === "Apple_Terminal"; + ansiEscapes.cursorTo = (x, y) => { + if (typeof x !== "number") { + throw new TypeError("The `x` argument is required"); + } + if (typeof y !== "number") { + return ESC + (x + 1) + "G"; + } + return ESC + (y + 1) + ";" + (x + 1) + "H"; + }; + ansiEscapes.cursorMove = (x, y) => { + if (typeof x !== "number") { + throw new TypeError("The `x` argument is required"); + } + let ret = ""; + if (x < 0) { + ret += ESC + -x + "D"; + } else if (x > 0) { + ret += ESC + x + "C"; + } + if (y < 0) { + ret += ESC + -y + "A"; + } else if (y > 0) { + ret += ESC + y + "B"; + } + return ret; + }; + ansiEscapes.cursorUp = (count = 1) => ESC + count + "A"; + ansiEscapes.cursorDown = (count = 1) => ESC + count + "B"; + ansiEscapes.cursorForward = (count = 1) => ESC + count + "C"; + ansiEscapes.cursorBackward = (count = 1) => ESC + count + "D"; + ansiEscapes.cursorLeft = ESC + "G"; + ansiEscapes.cursorSavePosition = isTerminalApp ? "\x1B7" : ESC + "s"; + ansiEscapes.cursorRestorePosition = isTerminalApp ? "\x1B8" : ESC + "u"; + ansiEscapes.cursorGetPosition = ESC + "6n"; + ansiEscapes.cursorNextLine = ESC + "E"; + ansiEscapes.cursorPrevLine = ESC + "F"; + ansiEscapes.cursorHide = ESC + "?25l"; + ansiEscapes.cursorShow = ESC + "?25h"; + ansiEscapes.eraseLines = (count) => { + let clear = ""; + for (let i = 0;i < count; i++) { + clear += ansiEscapes.eraseLine + (i < count - 1 ? ansiEscapes.cursorUp() : ""); + } + if (count) { + clear += ansiEscapes.cursorLeft; + } + return clear; + }; + ansiEscapes.eraseEndLine = ESC + "K"; + ansiEscapes.eraseStartLine = ESC + "1K"; + ansiEscapes.eraseLine = ESC + "2K"; + ansiEscapes.eraseDown = ESC + "J"; + ansiEscapes.eraseUp = ESC + "1J"; + ansiEscapes.eraseScreen = ESC + "2J"; + ansiEscapes.scrollUp = ESC + "S"; + ansiEscapes.scrollDown = ESC + "T"; + ansiEscapes.clearScreen = "\x1Bc"; + ansiEscapes.clearTerminal = process.platform === "win32" ? `${ansiEscapes.eraseScreen}${ESC}0f` : `${ansiEscapes.eraseScreen}${ESC}3J${ESC}H`; + ansiEscapes.beep = BEL; + ansiEscapes.link = (text, url) => { + return [ + OSC, + "8", + SEP, + SEP, + url, + BEL, + text, + OSC, + "8", + SEP, + SEP, + BEL + ].join(""); + }; + ansiEscapes.image = (buffer, options = {}) => { + let ret = `${OSC}1337;File=inline=1`; + if (options.width) { + ret += `;width=${options.width}`; + } + if (options.height) { + ret += `;height=${options.height}`; + } + if (options.preserveAspectRatio === false) { + ret += ";preserveAspectRatio=0"; + } + return ret + ":" + buffer.toString("base64") + BEL; + }; + ansiEscapes.iTerm = { + setCwd: (cwd = process.cwd()) => `${OSC}50;CurrentDir=${cwd}${BEL}`, + annotation: (message, options = {}) => { + let ret = `${OSC}1337;`; + const hasX = typeof options.x !== "undefined"; + const hasY = typeof options.y !== "undefined"; + if ((hasX || hasY) && !(hasX && hasY && typeof options.length !== "undefined")) { + throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined"); + } + message = message.replace(/\|/g, ""); + ret += options.isHidden ? "AddHiddenAnnotation=" : "AddAnnotation="; + if (options.length > 0) { + ret += (hasX ? [message, options.length, options.x, options.y] : [options.length, message]).join("|"); + } else { + ret += message; + } + return ret + BEL; + } + }; +}); + +// node_modules/@inquirer/core/dist/esm/lib/screen-manager.js +function cursorDown(n) { + return n > 0 ? import_ansi_escapes.default.cursorDown(n) : ""; +} + +class ScreenManager { + rl; + height = 0; + extraLinesUnderPrompt = 0; + cursorPos; + constructor(rl) { + this.rl = rl; + this.rl = rl; + this.cursorPos = rl.getCursorPos(); + } + write(content) { + this.rl.output.unmute(); + this.rl.output.write(content); + this.rl.output.mute(); + } + render(content, bottomContent = "") { + const promptLine = lastLine(content); + const rawPromptLine = import_strip_ansi3.default(promptLine); + let prompt = rawPromptLine; + if (this.rl.line.length > 0) { + prompt = prompt.slice(0, -this.rl.line.length); + } + this.rl.setPrompt(prompt); + this.cursorPos = this.rl.getCursorPos(); + const width = readlineWidth(); + content = breakLines(content, width); + bottomContent = breakLines(bottomContent, width); + if (rawPromptLine.length % width === 0) { + content += ` +`; + } + let output = content + (bottomContent ? ` +` + bottomContent : ""); + const promptLineUpDiff = Math.floor(rawPromptLine.length / width) - this.cursorPos.rows; + const bottomContentHeight = promptLineUpDiff + (bottomContent ? height(bottomContent) : 0); + if (bottomContentHeight > 0) + output += import_ansi_escapes.default.cursorUp(bottomContentHeight); + output += import_ansi_escapes.default.cursorTo(this.cursorPos.cols); + this.write(cursorDown(this.extraLinesUnderPrompt) + import_ansi_escapes.default.eraseLines(this.height) + output); + this.extraLinesUnderPrompt = bottomContentHeight; + this.height = height(output); + } + checkCursorPos() { + const cursorPos = this.rl.getCursorPos(); + if (cursorPos.cols !== this.cursorPos.cols) { + this.write(import_ansi_escapes.default.cursorTo(cursorPos.cols)); + this.cursorPos = cursorPos; + } + } + done({ clearContent }) { + this.rl.setPrompt(""); + let output = cursorDown(this.extraLinesUnderPrompt); + output += clearContent ? import_ansi_escapes.default.eraseLines(this.height) : ` +`; + output += import_ansi_escapes.default.cursorShow; + this.write(output); + this.rl.close(); + } +} +var import_strip_ansi3, import_ansi_escapes, height = (content) => content.split(` +`).length, lastLine = (content) => content.split(` +`).pop() ?? ""; +var init_screen_manager = __esm(() => { + import_strip_ansi3 = __toESM(require_strip_ansi2(), 1); + import_ansi_escapes = __toESM(require_ansi_escapes(), 1); + init_utils(); +}); + +// node_modules/@inquirer/core/dist/esm/lib/promise-polyfill.js +var PromisePolyfill; +var init_promise_polyfill = __esm(() => { + PromisePolyfill = class PromisePolyfill extends Promise { + static withResolver() { + let resolve; + let reject; + const promise = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + return { promise, resolve, reject }; + } + }; +}); + +// node_modules/@inquirer/core/dist/esm/lib/create-prompt.js +import * as readline2 from "node:readline"; +import { AsyncResource as AsyncResource3 } from "node:async_hooks"; +function getCallSites() { + const _prepareStackTrace = Error.prepareStackTrace; + try { + let result = []; + Error.prepareStackTrace = (_2, callSites) => { + const callSitesWithoutCurrent = callSites.slice(1); + result = callSitesWithoutCurrent; + return callSitesWithoutCurrent; + }; + new Error().stack; + return result; + } finally { + Error.prepareStackTrace = _prepareStackTrace; + } +} +function createPrompt(view) { + const callSites = getCallSites(); + const callerFilename = callSites[1]?.getFileName?.(); + const prompt = (config, context = {}) => { + const { input = process.stdin, signal } = context; + const cleanups = new Set; + const output = new import_mute_stream.default; + output.pipe(context.output ?? process.stdout); + const rl = readline2.createInterface({ + terminal: true, + input, + output + }); + const screen = new ScreenManager(rl); + const { promise, resolve, reject } = PromisePolyfill.withResolver(); + const cancel = () => reject(new CancelPromptError); + if (signal) { + const abort = () => reject(new AbortPromptError({ cause: signal.reason })); + if (signal.aborted) { + abort(); + return Object.assign(promise, { cancel }); + } + signal.addEventListener("abort", abort); + cleanups.add(() => signal.removeEventListener("abort", abort)); + } + cleanups.add(onExit((code, signal2) => { + reject(new ExitPromptError(`User force closed the prompt with ${code} ${signal2}`)); + })); + const checkCursorPos = () => screen.checkCursorPos(); + rl.input.on("keypress", checkCursorPos); + cleanups.add(() => rl.input.removeListener("keypress", checkCursorPos)); + return withHooks(rl, (cycle) => { + const hooksCleanup = AsyncResource3.bind(() => effectScheduler.clearAll()); + rl.on("close", hooksCleanup); + cleanups.add(() => rl.removeListener("close", hooksCleanup)); + cycle(() => { + try { + const nextView = view(config, (value) => { + setImmediate(() => resolve(value)); + }); + if (nextView === undefined) { + throw new Error(`Prompt functions must return a string. + at ${callerFilename}`); + } + const [content, bottomContent] = typeof nextView === "string" ? [nextView] : nextView; + screen.render(content, bottomContent); + effectScheduler.run(); + } catch (error) { + reject(error); + } + }); + return Object.assign(promise.then((answer) => { + effectScheduler.clearAll(); + return answer; + }, (error) => { + effectScheduler.clearAll(); + throw error; + }).finally(() => { + cleanups.forEach((cleanup) => cleanup()); + screen.done({ clearContent: Boolean(context.clearPromptOnDone) }); + output.end(); + }).then(() => promise), { cancel }); + }); + }; + return prompt; +} +var import_mute_stream; +var init_create_prompt = __esm(() => { + import_mute_stream = __toESM(require_lib(), 1); + init_mjs(); + init_screen_manager(); + init_promise_polyfill(); + init_hook_engine(); + init_errors(); +}); + +// node_modules/@inquirer/core/dist/esm/lib/Separator.js +class Separator { + separator = import_yoctocolors_cjs2.default.dim(Array.from({ length: 15 }).join(esm_default.line)); + type = "separator"; + constructor(separator) { + if (separator) { + this.separator = separator; + } + } + static isSeparator(choice) { + return Boolean(choice && typeof choice === "object" && "type" in choice && choice.type === "separator"); + } +} +var import_yoctocolors_cjs2; +var init_Separator = __esm(() => { + import_yoctocolors_cjs2 = __toESM(require_yoctocolors_cjs(), 1); + init_esm(); +}); + +// node_modules/@inquirer/core/dist/esm/index.js +var init_esm2 = __esm(() => { + init_errors(); + init_use_prefix(); + init_use_state(); + init_use_effect(); + init_use_memo(); + init_use_ref(); + init_use_keypress(); + init_make_theme(); + init_use_pagination(); + init_create_prompt(); + init_Separator(); +}); + +// node_modules/@inquirer/checkbox/dist/esm/index.js +function isSelectable(item) { + return !Separator.isSeparator(item) && !item.disabled; +} +function isChecked(item) { + return isSelectable(item) && Boolean(item.checked); +} +function toggle(item) { + return isSelectable(item) ? { ...item, checked: !item.checked } : item; +} +function check(checked) { + return function(item) { + return isSelectable(item) ? { ...item, checked } : item; + }; +} +function normalizeChoices(choices) { + return choices.map((choice) => { + if (Separator.isSeparator(choice)) + return choice; + if (typeof choice === "string") { + return { + value: choice, + name: choice, + short: choice, + disabled: false, + checked: false + }; + } + const name = choice.name ?? String(choice.value); + return { + value: choice.value, + name, + short: choice.short ?? name, + description: choice.description, + disabled: choice.disabled ?? false, + checked: choice.checked ?? false + }; + }); +} +var import_yoctocolors_cjs3, import_ansi_escapes2, checkboxTheme, esm_default2; +var init_esm3 = __esm(() => { + init_esm2(); + import_yoctocolors_cjs3 = __toESM(require_yoctocolors_cjs(), 1); + init_esm(); + import_ansi_escapes2 = __toESM(require_ansi_escapes(), 1); + init_esm2(); + checkboxTheme = { + icon: { + checked: import_yoctocolors_cjs3.default.green(esm_default.circleFilled), + unchecked: esm_default.circle, + cursor: esm_default.pointer + }, + style: { + disabledChoice: (text) => import_yoctocolors_cjs3.default.dim(`- ${text}`), + renderSelectedChoices: (selectedChoices) => selectedChoices.map((choice) => choice.short).join(", "), + description: (text) => import_yoctocolors_cjs3.default.cyan(text) + }, + helpMode: "auto" + }; + esm_default2 = createPrompt((config, done) => { + const { instructions, pageSize = 7, loop = true, required, validate: validate2 = () => true } = config; + const theme = makeTheme(checkboxTheme, config.theme); + const firstRender = useRef(true); + const [status, setStatus] = useState("idle"); + const prefix = usePrefix({ status, theme }); + const [items, setItems] = useState(normalizeChoices(config.choices)); + const bounds = useMemo(() => { + const first = items.findIndex(isSelectable); + const last = items.findLastIndex(isSelectable); + if (first === -1) { + throw new ValidationError("[checkbox prompt] No selectable choices. All choices are disabled."); + } + return { first, last }; + }, [items]); + const [active, setActive] = useState(bounds.first); + const [showHelpTip, setShowHelpTip] = useState(true); + const [errorMsg, setError] = useState(); + useKeypress(async (key2) => { + if (isEnterKey(key2)) { + const selection = items.filter(isChecked); + const isValid2 = await validate2([...selection]); + if (required && !items.some(isChecked)) { + setError("At least one choice must be selected"); + } else if (isValid2 === true) { + setStatus("done"); + done(selection.map((choice) => choice.value)); + } else { + setError(isValid2 || "You must select a valid value"); + } + } else if (isUpKey(key2) || isDownKey(key2)) { + if (loop || isUpKey(key2) && active !== bounds.first || isDownKey(key2) && active !== bounds.last) { + const offset = isUpKey(key2) ? -1 : 1; + let next = active; + do { + next = (next + offset + items.length) % items.length; + } while (!isSelectable(items[next])); + setActive(next); + } + } else if (isSpaceKey(key2)) { + setError(undefined); + setShowHelpTip(false); + setItems(items.map((choice, i) => i === active ? toggle(choice) : choice)); + } else if (key2.name === "a") { + const selectAll = items.some((choice) => isSelectable(choice) && !choice.checked); + setItems(items.map(check(selectAll))); + } else if (key2.name === "i") { + setItems(items.map(toggle)); + } else if (isNumberKey(key2)) { + const position = Number(key2.name) - 1; + const item = items[position]; + if (item != null && isSelectable(item)) { + setActive(position); + setItems(items.map((choice, i) => i === position ? toggle(choice) : choice)); + } + } + }); + const message = theme.style.message(config.message, status); + let description; + const page = usePagination({ + items, + active, + renderItem({ item, isActive }) { + if (Separator.isSeparator(item)) { + return ` ${item.separator}`; + } + if (item.disabled) { + const disabledLabel = typeof item.disabled === "string" ? item.disabled : "(disabled)"; + return theme.style.disabledChoice(`${item.name} ${disabledLabel}`); + } + if (isActive) { + description = item.description; + } + const checkbox = item.checked ? theme.icon.checked : theme.icon.unchecked; + const color = isActive ? theme.style.highlight : (x) => x; + const cursor = isActive ? theme.icon.cursor : " "; + return color(`${cursor}${checkbox} ${item.name}`); + }, + pageSize, + loop + }); + if (status === "done") { + const selection = items.filter(isChecked); + const answer = theme.style.answer(theme.style.renderSelectedChoices(selection, items)); + return `${prefix} ${message} ${answer}`; + } + let helpTipTop = ""; + let helpTipBottom = ""; + if (theme.helpMode === "always" || theme.helpMode === "auto" && showHelpTip && (instructions === undefined || instructions)) { + if (typeof instructions === "string") { + helpTipTop = instructions; + } else { + const keys = [ + `${theme.style.key("space")} to select`, + `${theme.style.key("a")} to toggle all`, + `${theme.style.key("i")} to invert selection`, + `and ${theme.style.key("enter")} to proceed` + ]; + helpTipTop = ` (Press ${keys.join(", ")})`; + } + if (items.length > pageSize && (theme.helpMode === "always" || theme.helpMode === "auto" && firstRender.current)) { + helpTipBottom = ` +${theme.style.help("(Use arrow keys to reveal more choices)")}`; + firstRender.current = false; + } + } + const choiceDescription = description ? ` +${theme.style.description(description)}` : ``; + let error = ""; + if (errorMsg) { + error = ` +${theme.style.error(errorMsg)}`; + } + return `${prefix} ${message}${helpTipTop} +${page}${helpTipBottom}${choiceDescription}${error}${import_ansi_escapes2.default.cursorHide}`; + }); +}); + +// node_modules/chardet/match.js +var require_match = __commonJS((exports, module) => { + module.exports = function(det, rec, confidence, name, lang) { + this.confidence = confidence; + this.name = name || rec.name(det); + this.lang = lang; + }; +}); + +// node_modules/chardet/encoding/utf8.js +var require_utf8 = __commonJS((exports, module) => { + var Match = require_match(); + module.exports = function() { + this.name = function() { + return "UTF-8"; + }; + this.match = function(det) { + var hasBOM = false, numValid = 0, numInvalid = 0, input = det.fRawInput, trailBytes = 0, confidence; + if (det.fRawLength >= 3 && (input[0] & 255) == 239 && (input[1] & 255) == 187 && (input[2] & 255) == 191) { + hasBOM = true; + } + for (var i = 0;i < det.fRawLength; i++) { + var b = input[i]; + if ((b & 128) == 0) + continue; + if ((b & 224) == 192) { + trailBytes = 1; + } else if ((b & 240) == 224) { + trailBytes = 2; + } else if ((b & 248) == 240) { + trailBytes = 3; + } else { + numInvalid++; + if (numInvalid > 5) + break; + trailBytes = 0; + } + for (;; ) { + i++; + if (i >= det.fRawLength) + break; + if ((input[i] & 192) != 128) { + numInvalid++; + break; + } + if (--trailBytes == 0) { + numValid++; + break; + } + } + } + confidence = 0; + if (hasBOM && numInvalid == 0) + confidence = 100; + else if (hasBOM && numValid > numInvalid * 10) + confidence = 80; + else if (numValid > 3 && numInvalid == 0) + confidence = 100; + else if (numValid > 0 && numInvalid == 0) + confidence = 80; + else if (numValid == 0 && numInvalid == 0) + confidence = 10; + else if (numValid > numInvalid * 10) + confidence = 25; + else + return null; + return new Match(det, this, confidence); + }; + }; +}); + +// node_modules/chardet/encoding/unicode.js +var require_unicode = __commonJS((exports, module) => { + var util2 = __require("util"); + var Match = require_match(); + exports.UTF_16BE = function() { + this.name = function() { + return "UTF-16BE"; + }; + this.match = function(det) { + var input = det.fRawInput; + if (input.length >= 2 && ((input[0] & 255) == 254 && (input[1] & 255) == 255)) { + return new Match(det, this, 100); + } + return null; + }; + }; + exports.UTF_16LE = function() { + this.name = function() { + return "UTF-16LE"; + }; + this.match = function(det) { + var input = det.fRawInput; + if (input.length >= 2 && ((input[0] & 255) == 255 && (input[1] & 255) == 254)) { + if (input.length >= 4 && input[2] == 0 && input[3] == 0) { + return null; + } + return new Match(det, this, 100); + } + return null; + }; + }; + function UTF_32() { + } + UTF_32.prototype.match = function(det) { + var input = det.fRawInput, limit = det.fRawLength / 4 * 4, numValid = 0, numInvalid = 0, hasBOM = false, confidence = 0; + if (limit == 0) { + return null; + } + if (this.getChar(input, 0) == 65279) { + hasBOM = true; + } + for (var i = 0;i < limit; i += 4) { + var ch = this.getChar(input, i); + if (ch < 0 || ch >= 1114111 || ch >= 55296 && ch <= 57343) { + numInvalid += 1; + } else { + numValid += 1; + } + } + if (hasBOM && numInvalid == 0) { + confidence = 100; + } else if (hasBOM && numValid > numInvalid * 10) { + confidence = 80; + } else if (numValid > 3 && numInvalid == 0) { + confidence = 100; + } else if (numValid > 0 && numInvalid == 0) { + confidence = 80; + } else if (numValid > numInvalid * 10) { + confidence = 25; + } + return confidence == 0 ? null : new Match(det, this, confidence); + }; + exports.UTF_32BE = function() { + this.name = function() { + return "UTF-32BE"; + }; + this.getChar = function(input, index) { + return (input[index + 0] & 255) << 24 | (input[index + 1] & 255) << 16 | (input[index + 2] & 255) << 8 | input[index + 3] & 255; + }; + }; + util2.inherits(exports.UTF_32BE, UTF_32); + exports.UTF_32LE = function() { + this.name = function() { + return "UTF-32LE"; + }; + this.getChar = function(input, index) { + return (input[index + 3] & 255) << 24 | (input[index + 2] & 255) << 16 | (input[index + 1] & 255) << 8 | input[index + 0] & 255; + }; + }; + util2.inherits(exports.UTF_32LE, UTF_32); +}); + +// node_modules/chardet/encoding/mbcs.js +var require_mbcs = __commonJS((exports, module) => { + var util2 = __require("util"); + var Match = require_match(); + function binarySearch(arr, searchValue) { + function find(arr2, searchValue2, left, right) { + if (right < left) + return -1; + var mid = Math.floor(left + right >>> 1); + if (searchValue2 > arr2[mid]) + return find(arr2, searchValue2, mid + 1, right); + if (searchValue2 < arr2[mid]) + return find(arr2, searchValue2, left, mid - 1); + return mid; + } + return find(arr, searchValue, 0, arr.length - 1); + } + function IteratedChar() { + this.charValue = 0; + this.index = 0; + this.nextIndex = 0; + this.error = false; + this.done = false; + this.reset = function() { + this.charValue = 0; + this.index = -1; + this.nextIndex = 0; + this.error = false; + this.done = false; + }; + this.nextByte = function(det) { + if (this.nextIndex >= det.fRawLength) { + this.done = true; + return -1; + } + var byteValue = det.fRawInput[this.nextIndex++] & 255; + return byteValue; + }; + } + function mbcs() { + } + mbcs.prototype.match = function(det) { + var singleByteCharCount = 0, doubleByteCharCount = 0, commonCharCount = 0, badCharCount = 0, totalCharCount = 0, confidence = 0; + var iter = new IteratedChar; + detectBlock: { + for (iter.reset();this.nextChar(iter, det); ) { + totalCharCount++; + if (iter.error) { + badCharCount++; + } else { + var cv = iter.charValue & 4294967295; + if (cv <= 255) { + singleByteCharCount++; + } else { + doubleByteCharCount++; + if (this.commonChars != null) { + if (binarySearch(this.commonChars, cv) >= 0) { + commonCharCount++; + } + } + } + } + if (badCharCount >= 2 && badCharCount * 5 >= doubleByteCharCount) { + break detectBlock; + } + } + if (doubleByteCharCount <= 10 && badCharCount == 0) { + if (doubleByteCharCount == 0 && totalCharCount < 10) { + confidence = 0; + } else { + confidence = 10; + } + break detectBlock; + } + if (doubleByteCharCount < 20 * badCharCount) { + confidence = 0; + break detectBlock; + } + if (this.commonChars == null) { + confidence = 30 + doubleByteCharCount - 20 * badCharCount; + if (confidence > 100) { + confidence = 100; + } + } else { + var maxVal = Math.log(parseFloat(doubleByteCharCount) / 4); + var scaleFactor = 90 / maxVal; + confidence = Math.floor(Math.log(commonCharCount + 1) * scaleFactor + 10); + confidence = Math.min(confidence, 100); + } + } + return confidence == 0 ? null : new Match(det, this, confidence); + }; + mbcs.prototype.nextChar = function(iter, det) { + }; + exports.sjis = function() { + this.name = function() { + return "Shift-JIS"; + }; + this.language = function() { + return "ja"; + }; + this.commonChars = [ + 33088, + 33089, + 33090, + 33093, + 33115, + 33129, + 33130, + 33141, + 33142, + 33440, + 33442, + 33444, + 33449, + 33450, + 33451, + 33453, + 33455, + 33457, + 33459, + 33461, + 33463, + 33469, + 33470, + 33473, + 33476, + 33477, + 33478, + 33480, + 33481, + 33484, + 33485, + 33500, + 33504, + 33511, + 33512, + 33513, + 33514, + 33520, + 33521, + 33601, + 33603, + 33614, + 33615, + 33624, + 33630, + 33634, + 33639, + 33653, + 33654, + 33673, + 33674, + 33675, + 33677, + 33683, + 36502, + 37882, + 38314 + ]; + this.nextChar = function(iter, det) { + iter.index = iter.nextIndex; + iter.error = false; + var firstByte; + firstByte = iter.charValue = iter.nextByte(det); + if (firstByte < 0) + return false; + if (firstByte <= 127 || firstByte > 160 && firstByte <= 223) + return true; + var secondByte = iter.nextByte(det); + if (secondByte < 0) + return false; + iter.charValue = firstByte << 8 | secondByte; + if (!(secondByte >= 64 && secondByte <= 127 || secondByte >= 128 && secondByte <= 255)) { + iter.error = true; + } + return true; + }; + }; + util2.inherits(exports.sjis, mbcs); + exports.big5 = function() { + this.name = function() { + return "Big5"; + }; + this.language = function() { + return "zh"; + }; + this.commonChars = [ + 41280, + 41281, + 41282, + 41283, + 41287, + 41289, + 41333, + 41334, + 42048, + 42054, + 42055, + 42056, + 42065, + 42068, + 42071, + 42084, + 42090, + 42092, + 42103, + 42147, + 42148, + 42151, + 42177, + 42190, + 42193, + 42207, + 42216, + 42237, + 42304, + 42312, + 42328, + 42345, + 42445, + 42471, + 42583, + 42593, + 42594, + 42600, + 42608, + 42664, + 42675, + 42681, + 42707, + 42715, + 42726, + 42738, + 42816, + 42833, + 42841, + 42970, + 43171, + 43173, + 43181, + 43217, + 43219, + 43236, + 43260, + 43456, + 43474, + 43507, + 43627, + 43706, + 43710, + 43724, + 43772, + 44103, + 44111, + 44208, + 44242, + 44377, + 44745, + 45024, + 45290, + 45423, + 45747, + 45764, + 45935, + 46156, + 46158, + 46412, + 46501, + 46525, + 46544, + 46552, + 46705, + 47085, + 47207, + 47428, + 47832, + 47940, + 48033, + 48593, + 49860, + 50105, + 50240, + 50271 + ]; + this.nextChar = function(iter, det) { + iter.index = iter.nextIndex; + iter.error = false; + var firstByte = iter.charValue = iter.nextByte(det); + if (firstByte < 0) + return false; + if (firstByte <= 127 || firstByte == 255) + return true; + var secondByte = iter.nextByte(det); + if (secondByte < 0) + return false; + iter.charValue = iter.charValue << 8 | secondByte; + if (secondByte < 64 || secondByte == 127 || secondByte == 255) + iter.error = true; + return true; + }; + }; + util2.inherits(exports.big5, mbcs); + function eucNextChar(iter, det) { + iter.index = iter.nextIndex; + iter.error = false; + var firstByte = 0; + var secondByte = 0; + var thirdByte = 0; + buildChar: { + firstByte = iter.charValue = iter.nextByte(det); + if (firstByte < 0) { + iter.done = true; + break buildChar; + } + if (firstByte <= 141) { + break buildChar; + } + secondByte = iter.nextByte(det); + iter.charValue = iter.charValue << 8 | secondByte; + if (firstByte >= 161 && firstByte <= 254) { + if (secondByte < 161) { + iter.error = true; + } + break buildChar; + } + if (firstByte == 142) { + if (secondByte < 161) { + iter.error = true; + } + break buildChar; + } + if (firstByte == 143) { + thirdByte = iter.nextByte(det); + iter.charValue = iter.charValue << 8 | thirdByte; + if (thirdByte < 161) { + iter.error = true; + } + } + } + return iter.done == false; + } + exports.euc_jp = function() { + this.name = function() { + return "EUC-JP"; + }; + this.language = function() { + return "ja"; + }; + this.commonChars = [ + 41377, + 41378, + 41379, + 41382, + 41404, + 41418, + 41419, + 41430, + 41431, + 42146, + 42148, + 42150, + 42152, + 42154, + 42155, + 42156, + 42157, + 42159, + 42161, + 42163, + 42165, + 42167, + 42169, + 42171, + 42173, + 42175, + 42176, + 42177, + 42179, + 42180, + 42182, + 42183, + 42184, + 42185, + 42186, + 42187, + 42190, + 42191, + 42192, + 42206, + 42207, + 42209, + 42210, + 42212, + 42216, + 42217, + 42218, + 42219, + 42220, + 42223, + 42226, + 42227, + 42402, + 42403, + 42404, + 42406, + 42407, + 42410, + 42413, + 42415, + 42416, + 42419, + 42421, + 42423, + 42424, + 42425, + 42431, + 42435, + 42438, + 42439, + 42440, + 42441, + 42443, + 42448, + 42453, + 42454, + 42455, + 42462, + 42464, + 42465, + 42469, + 42473, + 42474, + 42475, + 42476, + 42477, + 42483, + 47273, + 47572, + 47854, + 48072, + 48880, + 49079, + 50410, + 50940, + 51133, + 51896, + 51955, + 52188, + 52689 + ]; + this.nextChar = eucNextChar; + }; + util2.inherits(exports.euc_jp, mbcs); + exports.euc_kr = function() { + this.name = function() { + return "EUC-KR"; + }; + this.language = function() { + return "ko"; + }; + this.commonChars = [ + 45217, + 45235, + 45253, + 45261, + 45268, + 45286, + 45293, + 45304, + 45306, + 45308, + 45496, + 45497, + 45511, + 45527, + 45538, + 45994, + 46011, + 46274, + 46287, + 46297, + 46315, + 46501, + 46517, + 46527, + 46535, + 46569, + 46835, + 47023, + 47042, + 47054, + 47270, + 47278, + 47286, + 47288, + 47291, + 47337, + 47531, + 47534, + 47564, + 47566, + 47613, + 47800, + 47822, + 47824, + 47857, + 48103, + 48115, + 48125, + 48301, + 48314, + 48338, + 48374, + 48570, + 48576, + 48579, + 48581, + 48838, + 48840, + 48863, + 48878, + 48888, + 48890, + 49057, + 49065, + 49088, + 49124, + 49131, + 49132, + 49144, + 49319, + 49327, + 49336, + 49338, + 49339, + 49341, + 49351, + 49356, + 49358, + 49359, + 49366, + 49370, + 49381, + 49403, + 49404, + 49572, + 49574, + 49590, + 49622, + 49631, + 49654, + 49656, + 50337, + 50637, + 50862, + 51151, + 51153, + 51154, + 51160, + 51173, + 51373 + ]; + this.nextChar = eucNextChar; + }; + util2.inherits(exports.euc_kr, mbcs); + exports.gb_18030 = function() { + this.name = function() { + return "GB18030"; + }; + this.language = function() { + return "zh"; + }; + this.nextChar = function(iter, det) { + iter.index = iter.nextIndex; + iter.error = false; + var firstByte = 0; + var secondByte = 0; + var thirdByte = 0; + var fourthByte = 0; + buildChar: { + firstByte = iter.charValue = iter.nextByte(det); + if (firstByte < 0) { + iter.done = true; + break buildChar; + } + if (firstByte <= 128) { + break buildChar; + } + secondByte = iter.nextByte(det); + iter.charValue = iter.charValue << 8 | secondByte; + if (firstByte >= 129 && firstByte <= 254) { + if (secondByte >= 64 && secondByte <= 126 || secondByte >= 80 && secondByte <= 254) { + break buildChar; + } + if (secondByte >= 48 && secondByte <= 57) { + thirdByte = iter.nextByte(det); + if (thirdByte >= 129 && thirdByte <= 254) { + fourthByte = iter.nextByte(det); + if (fourthByte >= 48 && fourthByte <= 57) { + iter.charValue = iter.charValue << 16 | thirdByte << 8 | fourthByte; + break buildChar; + } + } + } + iter.error = true; + break buildChar; + } + } + return iter.done == false; + }; + this.commonChars = [ + 41377, + 41378, + 41379, + 41380, + 41392, + 41393, + 41457, + 41459, + 41889, + 41900, + 41914, + 45480, + 45496, + 45502, + 45755, + 46025, + 46070, + 46323, + 46525, + 46532, + 46563, + 46767, + 46804, + 46816, + 47010, + 47016, + 47037, + 47062, + 47069, + 47284, + 47327, + 47350, + 47531, + 47561, + 47576, + 47610, + 47613, + 47821, + 48039, + 48086, + 48097, + 48122, + 48316, + 48347, + 48382, + 48588, + 48845, + 48861, + 49076, + 49094, + 49097, + 49332, + 49389, + 49611, + 49883, + 50119, + 50396, + 50410, + 50636, + 50935, + 51192, + 51371, + 51403, + 51413, + 51431, + 51663, + 51706, + 51889, + 51893, + 51911, + 51920, + 51926, + 51957, + 51965, + 52460, + 52728, + 52906, + 52932, + 52946, + 52965, + 53173, + 53186, + 53206, + 53442, + 53445, + 53456, + 53460, + 53671, + 53930, + 53938, + 53941, + 53947, + 53972, + 54211, + 54224, + 54269, + 54466, + 54490, + 54754, + 54992 + ]; + }; + util2.inherits(exports.gb_18030, mbcs); +}); + +// node_modules/chardet/encoding/sbcs.js +var require_sbcs = __commonJS((exports, module) => { + var util2 = __require("util"); + var Match = require_match(); + function NGramParser(theNgramList, theByteMap) { + var N_GRAM_MASK = 16777215; + this.byteIndex = 0; + this.ngram = 0; + this.ngramList = theNgramList; + this.byteMap = theByteMap; + this.ngramCount = 0; + this.hitCount = 0; + this.spaceChar; + this.search = function(table, value) { + var index = 0; + if (table[index + 32] <= value) + index += 32; + if (table[index + 16] <= value) + index += 16; + if (table[index + 8] <= value) + index += 8; + if (table[index + 4] <= value) + index += 4; + if (table[index + 2] <= value) + index += 2; + if (table[index + 1] <= value) + index += 1; + if (table[index] > value) + index -= 1; + if (index < 0 || table[index] != value) + return -1; + return index; + }; + this.lookup = function(thisNgram) { + this.ngramCount += 1; + if (this.search(this.ngramList, thisNgram) >= 0) { + this.hitCount += 1; + } + }; + this.addByte = function(b) { + this.ngram = (this.ngram << 8) + (b & 255) & N_GRAM_MASK; + this.lookup(this.ngram); + }; + this.nextByte = function(det) { + if (this.byteIndex >= det.fInputLen) + return -1; + return det.fInputBytes[this.byteIndex++] & 255; + }; + this.parse = function(det, spaceCh) { + var b, ignoreSpace = false; + this.spaceChar = spaceCh; + while ((b = this.nextByte(det)) >= 0) { + var mb = this.byteMap[b]; + if (mb != 0) { + if (!(mb == this.spaceChar && ignoreSpace)) { + this.addByte(mb); + } + ignoreSpace = mb == this.spaceChar; + } + } + this.addByte(this.spaceChar); + var rawPercent = this.hitCount / this.ngramCount; + if (rawPercent > 0.33) + return 98; + return Math.floor(rawPercent * 300); + }; + } + function NGramsPlusLang(la, ng) { + this.fLang = la; + this.fNGrams = ng; + } + function sbcs() { + } + sbcs.prototype.spaceChar = 32; + sbcs.prototype.ngrams = function() { + }; + sbcs.prototype.byteMap = function() { + }; + sbcs.prototype.match = function(det) { + var ngrams = this.ngrams(); + var multiple = Array.isArray(ngrams) && ngrams[0] instanceof NGramsPlusLang; + if (!multiple) { + var parser = new NGramParser(ngrams, this.byteMap()); + var confidence = parser.parse(det, this.spaceChar); + return confidence <= 0 ? null : new Match(det, this, confidence); + } + var bestConfidenceSoFar = -1; + var lang = null; + for (var i = ngrams.length - 1;i >= 0; i--) { + var ngl = ngrams[i]; + var parser = new NGramParser(ngl.fNGrams, this.byteMap()); + var confidence = parser.parse(det, this.spaceChar); + if (confidence > bestConfidenceSoFar) { + bestConfidenceSoFar = confidence; + lang = ngl.fLang; + } + } + var name = this.name(det); + return bestConfidenceSoFar <= 0 ? null : new Match(det, this, bestConfidenceSoFar, name, lang); + }; + exports.ISO_8859_1 = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 170, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 181, + 32, + 32, + 32, + 32, + 186, + 32, + 32, + 32, + 32, + 32, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 32, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 32, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255 + ]; + }; + this.ngrams = function() { + return [ + new NGramsPlusLang("da", [ + 2122086, + 2122100, + 2122853, + 2123118, + 2123122, + 2123375, + 2123873, + 2124064, + 2125157, + 2125671, + 2126053, + 2126697, + 2126708, + 2126953, + 2127465, + 6383136, + 6385184, + 6385252, + 6386208, + 6386720, + 6579488, + 6579566, + 6579570, + 6579572, + 6627443, + 6644768, + 6644837, + 6647328, + 6647396, + 6648352, + 6648421, + 6648608, + 6648864, + 6713202, + 6776096, + 6776174, + 6776178, + 6907749, + 6908960, + 6909543, + 7038240, + 7039845, + 7103858, + 7104871, + 7105637, + 7169380, + 7234661, + 7234848, + 7235360, + 7235429, + 7300896, + 7302432, + 7303712, + 7398688, + 7479396, + 7479397, + 7479411, + 7496992, + 7566437, + 7610483, + 7628064, + 7628146, + 7629164, + 7759218 + ]), + new NGramsPlusLang("de", [ + 2122094, + 2122101, + 2122341, + 2122849, + 2122853, + 2122857, + 2123113, + 2123621, + 2123873, + 2124142, + 2125161, + 2126691, + 2126693, + 2127214, + 2127461, + 2127471, + 2127717, + 2128501, + 6448498, + 6514720, + 6514789, + 6514804, + 6578547, + 6579566, + 6579570, + 6580581, + 6627428, + 6627443, + 6646126, + 6646132, + 6647328, + 6648352, + 6648608, + 6776174, + 6841710, + 6845472, + 6906728, + 6907168, + 6909472, + 6909541, + 6911008, + 7104867, + 7105637, + 7217249, + 7217252, + 7217267, + 7234592, + 7234661, + 7234848, + 7235360, + 7235429, + 7238757, + 7479396, + 7496805, + 7497065, + 7562088, + 7566437, + 7610468, + 7628064, + 7628142, + 7628146, + 7695972, + 7695975, + 7759218 + ]), + new NGramsPlusLang("en", [ + 2122016, + 2122094, + 2122341, + 2122607, + 2123375, + 2123873, + 2123877, + 2124142, + 2125153, + 2125670, + 2125938, + 2126437, + 2126689, + 2126708, + 2126952, + 2126959, + 2127720, + 6383972, + 6384672, + 6385184, + 6385252, + 6386464, + 6386720, + 6386789, + 6386793, + 6561889, + 6561908, + 6627425, + 6627443, + 6627444, + 6644768, + 6647412, + 6648352, + 6648608, + 6713202, + 6840692, + 6841632, + 6841714, + 6906912, + 6909472, + 6909543, + 6909806, + 6910752, + 7217249, + 7217268, + 7234592, + 7235360, + 7238688, + 7300640, + 7302688, + 7303712, + 7496992, + 7500576, + 7544929, + 7544948, + 7561577, + 7566368, + 7610484, + 7628146, + 7628897, + 7628901, + 7629167, + 7630624, + 7631648 + ]), + new NGramsPlusLang("es", [ + 2122016, + 2122593, + 2122607, + 2122853, + 2123116, + 2123118, + 2123123, + 2124142, + 2124897, + 2124911, + 2125921, + 2125935, + 2125938, + 2126197, + 2126437, + 2126693, + 2127214, + 2128160, + 6365283, + 6365284, + 6365285, + 6365292, + 6365296, + 6382441, + 6382703, + 6384672, + 6386208, + 6386464, + 6515187, + 6516590, + 6579488, + 6579564, + 6582048, + 6627428, + 6627429, + 6627436, + 6646816, + 6647328, + 6647412, + 6648608, + 6648692, + 6907246, + 6943598, + 7102752, + 7106419, + 7217253, + 7238757, + 7282788, + 7282789, + 7302688, + 7303712, + 7303968, + 7364978, + 7435621, + 7495968, + 7497075, + 7544932, + 7544933, + 7544944, + 7562528, + 7628064, + 7630624, + 7693600, + 15953440 + ]), + new NGramsPlusLang("fr", [ + 2122101, + 2122607, + 2122849, + 2122853, + 2122869, + 2123118, + 2123124, + 2124897, + 2124901, + 2125921, + 2125935, + 2125938, + 2126197, + 2126693, + 2126703, + 2127214, + 2154528, + 6385268, + 6386793, + 6513952, + 6516590, + 6579488, + 6579571, + 6583584, + 6627425, + 6627427, + 6627428, + 6627429, + 6627436, + 6627440, + 6627443, + 6647328, + 6647412, + 6648352, + 6648608, + 6648864, + 6649202, + 6909806, + 6910752, + 6911008, + 7102752, + 7103776, + 7103859, + 7169390, + 7217252, + 7234848, + 7238432, + 7238688, + 7302688, + 7302772, + 7304562, + 7435621, + 7479404, + 7496992, + 7544929, + 7544932, + 7544933, + 7544940, + 7544944, + 7610468, + 7628064, + 7629167, + 7693600, + 7696928 + ]), + new NGramsPlusLang("it", [ + 2122092, + 2122600, + 2122607, + 2122853, + 2122857, + 2123040, + 2124140, + 2124142, + 2124897, + 2125925, + 2125938, + 2127214, + 6365283, + 6365284, + 6365296, + 6365299, + 6386799, + 6514789, + 6516590, + 6579564, + 6580512, + 6627425, + 6627427, + 6627428, + 6627433, + 6627436, + 6627440, + 6627443, + 6646816, + 6646892, + 6647412, + 6648352, + 6841632, + 6889569, + 6889571, + 6889572, + 6889587, + 6906144, + 6908960, + 6909472, + 6909806, + 7102752, + 7103776, + 7104800, + 7105633, + 7234848, + 7235872, + 7237408, + 7238757, + 7282785, + 7282788, + 7282793, + 7282803, + 7302688, + 7302757, + 7366002, + 7495968, + 7496992, + 7563552, + 7627040, + 7628064, + 7629088, + 7630624, + 8022383 + ]), + new NGramsPlusLang("nl", [ + 2122092, + 2122341, + 2122849, + 2122853, + 2122857, + 2123109, + 2123118, + 2123621, + 2123877, + 2124142, + 2125153, + 2125157, + 2125680, + 2126949, + 2127457, + 2127461, + 2127471, + 2127717, + 2128489, + 6381934, + 6381938, + 6385184, + 6385252, + 6386208, + 6386720, + 6514804, + 6579488, + 6579566, + 6579570, + 6627426, + 6627446, + 6645102, + 6645106, + 6647328, + 6648352, + 6648435, + 6648864, + 6776174, + 6841716, + 6907168, + 6909472, + 6909543, + 6910752, + 7217250, + 7217252, + 7217253, + 7217256, + 7217263, + 7217270, + 7234661, + 7235360, + 7302756, + 7303026, + 7303200, + 7303712, + 7562088, + 7566437, + 7610468, + 7628064, + 7628142, + 7628146, + 7758190, + 7759218, + 7761775 + ]), + new NGramsPlusLang("no", [ + 2122100, + 2122102, + 2122853, + 2123118, + 2123122, + 2123375, + 2123873, + 2124064, + 2125157, + 2125671, + 2126053, + 2126693, + 2126699, + 2126703, + 2126708, + 2126953, + 2127465, + 2155808, + 6385252, + 6386208, + 6386720, + 6579488, + 6579566, + 6579572, + 6627443, + 6644768, + 6647328, + 6647397, + 6648352, + 6648421, + 6648864, + 6648948, + 6713202, + 6776174, + 6908779, + 6908960, + 6909543, + 7038240, + 7039845, + 7103776, + 7105637, + 7169380, + 7169390, + 7217267, + 7234848, + 7235360, + 7235429, + 7237221, + 7300896, + 7302432, + 7303712, + 7398688, + 7479411, + 7496992, + 7565165, + 7566437, + 7610483, + 7628064, + 7628142, + 7628146, + 7629164, + 7631904, + 7631973, + 7759218 + ]), + new NGramsPlusLang("pt", [ + 2122016, + 2122607, + 2122849, + 2122853, + 2122863, + 2123040, + 2123123, + 2125153, + 2125423, + 2125600, + 2125921, + 2125935, + 2125938, + 2126197, + 2126437, + 2126693, + 2127213, + 6365281, + 6365283, + 6365284, + 6365296, + 6382693, + 6382703, + 6384672, + 6386208, + 6386273, + 6386464, + 6516589, + 6516590, + 6578464, + 6579488, + 6582048, + 6582131, + 6627425, + 6627428, + 6647072, + 6647412, + 6648608, + 6648692, + 6906144, + 6906721, + 7169390, + 7238757, + 7238767, + 7282785, + 7282787, + 7282788, + 7282789, + 7282800, + 7303968, + 7364978, + 7435621, + 7495968, + 7497075, + 7544929, + 7544932, + 7544933, + 7544944, + 7566433, + 7628064, + 7630624, + 7693600, + 14905120, + 15197039 + ]), + new NGramsPlusLang("sv", [ + 2122100, + 2122102, + 2122853, + 2123118, + 2123510, + 2123873, + 2124064, + 2124142, + 2124655, + 2125157, + 2125667, + 2126053, + 2126699, + 2126703, + 2126708, + 2126953, + 2127457, + 2127465, + 2155634, + 6382693, + 6385184, + 6385252, + 6386208, + 6386804, + 6514720, + 6579488, + 6579566, + 6579570, + 6579572, + 6644768, + 6647328, + 6648352, + 6648864, + 6747762, + 6776174, + 6909036, + 6909543, + 7037216, + 7105568, + 7169380, + 7217267, + 7233824, + 7234661, + 7235360, + 7235429, + 7235950, + 7299944, + 7302432, + 7302688, + 7398688, + 7479393, + 7479411, + 7495968, + 7564129, + 7565165, + 7610483, + 7627040, + 7628064, + 7628146, + 7629164, + 7631904, + 7758194, + 14971424, + 16151072 + ]) + ]; + }; + this.name = function(det) { + return det && det.fC1Bytes ? "windows-1252" : "ISO-8859-1"; + }; + }; + util2.inherits(exports.ISO_8859_1, sbcs); + exports.ISO_8859_2 = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 177, + 32, + 179, + 32, + 181, + 182, + 32, + 32, + 185, + 186, + 187, + 188, + 32, + 190, + 191, + 32, + 177, + 32, + 179, + 32, + 181, + 182, + 183, + 32, + 185, + 186, + 187, + 188, + 32, + 190, + 191, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 32, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 32, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 32 + ]; + }; + this.ngrams = function() { + return [ + new NGramsPlusLang("cs", [ + 2122016, + 2122361, + 2122863, + 2124389, + 2125409, + 2125413, + 2125600, + 2125668, + 2125935, + 2125938, + 2126072, + 2126447, + 2126693, + 2126703, + 2126708, + 2126959, + 2127392, + 2127481, + 2128481, + 6365296, + 6513952, + 6514720, + 6627440, + 6627443, + 6627446, + 6647072, + 6647533, + 6844192, + 6844260, + 6910836, + 6972704, + 7042149, + 7103776, + 7104800, + 7233824, + 7268640, + 7269408, + 7269664, + 7282800, + 7300206, + 7301737, + 7304052, + 7304480, + 7304801, + 7368548, + 7368554, + 7369327, + 7403621, + 7562528, + 7565173, + 7566433, + 7566441, + 7566446, + 7628146, + 7630573, + 7630624, + 7676016, + 12477728, + 14773997, + 15296623, + 15540336, + 15540339, + 15559968, + 16278884 + ]), + new NGramsPlusLang("hu", [ + 2122016, + 2122106, + 2122341, + 2123111, + 2123116, + 2123365, + 2123873, + 2123887, + 2124147, + 2124645, + 2124649, + 2124790, + 2124901, + 2125153, + 2125157, + 2125161, + 2125413, + 2126714, + 2126949, + 2156915, + 6365281, + 6365291, + 6365293, + 6365299, + 6384416, + 6385184, + 6388256, + 6447470, + 6448494, + 6645625, + 6646560, + 6646816, + 6646885, + 6647072, + 6647328, + 6648421, + 6648864, + 6648933, + 6648948, + 6781216, + 6844263, + 6909556, + 6910752, + 7020641, + 7075450, + 7169383, + 7170414, + 7217249, + 7233899, + 7234923, + 7234925, + 7238688, + 7300985, + 7544929, + 7567973, + 7567988, + 7568097, + 7596391, + 7610465, + 7631904, + 7659891, + 8021362, + 14773792, + 15299360 + ]), + new NGramsPlusLang("pl", [ + 2122618, + 2122863, + 2124064, + 2124389, + 2124655, + 2125153, + 2125161, + 2125409, + 2125417, + 2125668, + 2125935, + 2125938, + 2126697, + 2127648, + 2127721, + 2127737, + 2128416, + 2128481, + 6365296, + 6365303, + 6385257, + 6514720, + 6519397, + 6519417, + 6582048, + 6584937, + 6627440, + 6627443, + 6627447, + 6627450, + 6645615, + 6646304, + 6647072, + 6647401, + 6778656, + 6906144, + 6907168, + 6907242, + 7037216, + 7039264, + 7039333, + 7170405, + 7233824, + 7235937, + 7235941, + 7282800, + 7305057, + 7305065, + 7368556, + 7369313, + 7369327, + 7369338, + 7502437, + 7502457, + 7563754, + 7564137, + 7566433, + 7825765, + 7955304, + 7957792, + 8021280, + 8022373, + 8026400, + 15955744 + ]), + new NGramsPlusLang("ro", [ + 2122016, + 2122083, + 2122593, + 2122597, + 2122607, + 2122613, + 2122853, + 2122857, + 2124897, + 2125153, + 2125925, + 2125938, + 2126693, + 2126819, + 2127214, + 2144873, + 2158190, + 6365283, + 6365284, + 6386277, + 6386720, + 6386789, + 6386976, + 6513010, + 6516590, + 6518048, + 6546208, + 6579488, + 6627425, + 6627427, + 6627428, + 6627440, + 6627443, + 6644000, + 6646048, + 6646885, + 6647412, + 6648692, + 6889569, + 6889571, + 6889572, + 6889584, + 6907168, + 6908192, + 6909472, + 7102752, + 7103776, + 7106418, + 7107945, + 7234848, + 7238770, + 7303712, + 7365998, + 7496992, + 7497057, + 7501088, + 7594784, + 7628064, + 7631477, + 7660320, + 7694624, + 7695392, + 12216608, + 15625760 + ]) + ]; + }; + this.name = function(det) { + return det && det.fC1Bytes ? "windows-1250" : "ISO-8859-2"; + }; + }; + util2.inherits(exports.ISO_8859_2, sbcs); + exports.ISO_8859_5 = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 32, + 254, + 255, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 32, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 32, + 254, + 255 + ]; + }; + this.ngrams = function() { + return [ + 2150944, + 2151134, + 2151646, + 2152400, + 2152480, + 2153168, + 2153182, + 2153936, + 2153941, + 2154193, + 2154462, + 2154464, + 2154704, + 2154974, + 2154978, + 2155230, + 2156514, + 2158050, + 13688280, + 13689580, + 13884960, + 14015468, + 14015960, + 14016994, + 14017056, + 14164191, + 14210336, + 14211104, + 14216992, + 14407133, + 14407712, + 14413021, + 14536736, + 14538016, + 14538965, + 14538991, + 14540320, + 14540498, + 14557394, + 14557407, + 14557409, + 14602784, + 14602960, + 14603230, + 14604576, + 14605292, + 14605344, + 14606818, + 14671579, + 14672085, + 14672088, + 14672094, + 14733522, + 14734804, + 14803664, + 14803666, + 14803672, + 14806816, + 14865883, + 14868000, + 14868192, + 14871584, + 15196894, + 15459616 + ]; + }; + this.name = function(det) { + return "ISO-8859-5"; + }; + this.language = function() { + return "ru"; + }; + }; + util2.inherits(exports.ISO_8859_5, sbcs); + exports.ISO_8859_6 = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 32, + 32, + 32, + 32, + 32, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32 + ]; + }; + this.ngrams = function() { + return [ + 2148324, + 2148326, + 2148551, + 2152932, + 2154986, + 2155748, + 2156006, + 2156743, + 13050055, + 13091104, + 13093408, + 13095200, + 13100064, + 13100227, + 13100231, + 13100232, + 13100234, + 13100236, + 13100237, + 13100239, + 13100243, + 13100249, + 13100258, + 13100261, + 13100264, + 13100266, + 13100320, + 13100576, + 13100746, + 13115591, + 13181127, + 13181153, + 13181156, + 13181157, + 13181160, + 13246663, + 13574343, + 13617440, + 13705415, + 13748512, + 13836487, + 14229703, + 14279913, + 14805536, + 14950599, + 14993696, + 15001888, + 15002144, + 15016135, + 15058720, + 15059232, + 15066656, + 15081671, + 15147207, + 15189792, + 15255524, + 15263264, + 15278279, + 15343815, + 15343845, + 15343848, + 15386912, + 15388960, + 15394336 + ]; + }; + this.name = function(det) { + return "ISO-8859-6"; + }; + this.language = function() { + return "ar"; + }; + }; + util2.inherits(exports.ISO_8859_6, sbcs); + exports.ISO_8859_7 = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 161, + 162, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 220, + 32, + 221, + 222, + 223, + 32, + 252, + 32, + 253, + 254, + 192, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 32, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 32 + ]; + }; + this.ngrams = function() { + return [ + 2154989, + 2154992, + 2155497, + 2155753, + 2156016, + 2156320, + 2157281, + 2157797, + 2158049, + 2158368, + 2158817, + 2158831, + 2158833, + 2159604, + 2159605, + 2159847, + 2159855, + 14672160, + 14754017, + 14754036, + 14805280, + 14806304, + 14807292, + 14807584, + 14936545, + 15067424, + 15069728, + 15147252, + 15199520, + 15200800, + 15278324, + 15327520, + 15330014, + 15331872, + 15393257, + 15393268, + 15525152, + 15540449, + 15540453, + 15540464, + 15589664, + 15725088, + 15725856, + 15790069, + 15790575, + 15793184, + 15868129, + 15868133, + 15868138, + 15868144, + 15868148, + 15983904, + 15984416, + 15987951, + 16048416, + 16048617, + 16050157, + 16050162, + 16050666, + 16052000, + 16052213, + 16054765, + 16379168, + 16706848 + ]; + }; + this.name = function(det) { + return det && det.fC1Bytes ? "windows-1253" : "ISO-8859-7"; + }; + this.language = function() { + return "el"; + }; + }; + util2.inherits(exports.ISO_8859_7, sbcs); + exports.ISO_8859_8 = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 181, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 32, + 32, + 32, + 32, + 32 + ]; + }; + this.ngrams = function() { + return [ + new NGramsPlusLang("he", [ + 2154725, + 2154727, + 2154729, + 2154746, + 2154985, + 2154990, + 2155744, + 2155749, + 2155753, + 2155758, + 2155762, + 2155769, + 2155770, + 2157792, + 2157796, + 2158304, + 2159340, + 2161132, + 14744096, + 14950624, + 14950625, + 14950628, + 14950636, + 14950638, + 14950649, + 15001056, + 15065120, + 15068448, + 15068960, + 15071264, + 15071776, + 15278308, + 15328288, + 15328762, + 15329773, + 15330592, + 15331104, + 15333408, + 15333920, + 15474912, + 15474916, + 15523872, + 15524896, + 15540448, + 15540449, + 15540452, + 15540460, + 15540462, + 15540473, + 15655968, + 15671524, + 15787040, + 15788320, + 15788525, + 15920160, + 16261348, + 16312813, + 16378912, + 16392416, + 16392417, + 16392420, + 16392428, + 16392430, + 16392441 + ]), + new NGramsPlusLang("he", [ + 2154725, + 2154732, + 2155753, + 2155756, + 2155758, + 2155760, + 2157040, + 2157810, + 2157817, + 2158053, + 2158057, + 2158565, + 2158569, + 2160869, + 2160873, + 2161376, + 2161381, + 2161385, + 14688484, + 14688492, + 14688493, + 14688506, + 14738464, + 14738916, + 14740512, + 14741024, + 14754020, + 14754029, + 14754042, + 14950628, + 14950633, + 14950636, + 14950637, + 14950639, + 14950648, + 14950650, + 15002656, + 15065120, + 15066144, + 15196192, + 15327264, + 15327520, + 15328288, + 15474916, + 15474925, + 15474938, + 15528480, + 15530272, + 15591913, + 15591920, + 15591928, + 15605988, + 15605997, + 15606010, + 15655200, + 15655968, + 15918112, + 16326884, + 16326893, + 16326906, + 16376864, + 16441376, + 16442400, + 16442857 + ]) + ]; + }; + this.name = function(det) { + return det && det.fC1Bytes ? "windows-1255" : "ISO-8859-8"; + }; + this.language = function() { + return "he"; + }; + }; + util2.inherits(exports.ISO_8859_8, sbcs); + exports.ISO_8859_9 = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 170, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 181, + 32, + 32, + 32, + 32, + 186, + 32, + 32, + 32, + 32, + 32, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 32, + 248, + 249, + 250, + 251, + 252, + 105, + 254, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 32, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255 + ]; + }; + this.ngrams = function() { + return [ + 2122337, + 2122345, + 2122357, + 2122849, + 2122853, + 2123621, + 2123873, + 2124140, + 2124641, + 2124655, + 2125153, + 2125676, + 2126689, + 2126945, + 2127461, + 2128225, + 6365282, + 6384416, + 6384737, + 6384993, + 6385184, + 6385405, + 6386208, + 6386273, + 6386429, + 6386685, + 6388065, + 6449522, + 6578464, + 6579488, + 6580512, + 6627426, + 6627435, + 6644841, + 6647328, + 6648352, + 6648425, + 6648681, + 6909029, + 6909472, + 6909545, + 6910496, + 7102830, + 7102834, + 7103776, + 7103858, + 7217249, + 7217250, + 7217259, + 7234657, + 7234661, + 7234848, + 7235872, + 7235950, + 7273760, + 7498094, + 7535982, + 7759136, + 7954720, + 7958386, + 16608800, + 16608868, + 16609021, + 16642301 + ]; + }; + this.name = function(det) { + return det && det.fC1Bytes ? "windows-1254" : "ISO-8859-9"; + }; + this.language = function() { + return "tr"; + }; + }; + util2.inherits(exports.ISO_8859_9, sbcs); + exports.windows_1251 = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 144, + 131, + 32, + 131, + 32, + 32, + 32, + 32, + 32, + 32, + 154, + 32, + 156, + 157, + 158, + 159, + 144, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 154, + 32, + 156, + 157, + 158, + 159, + 32, + 162, + 162, + 188, + 32, + 180, + 32, + 32, + 184, + 32, + 186, + 32, + 32, + 32, + 32, + 191, + 32, + 32, + 179, + 179, + 180, + 181, + 32, + 32, + 184, + 32, + 186, + 32, + 188, + 190, + 190, + 191, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255 + ]; + }; + this.ngrams = function() { + return [ + 2155040, + 2155246, + 2155758, + 2156512, + 2156576, + 2157280, + 2157294, + 2158048, + 2158053, + 2158305, + 2158574, + 2158576, + 2158816, + 2159086, + 2159090, + 2159342, + 2160626, + 2162162, + 14740968, + 14742268, + 14937632, + 15068156, + 15068648, + 15069682, + 15069728, + 15212783, + 15263008, + 15263776, + 15269664, + 15459821, + 15460384, + 15465709, + 15589408, + 15590688, + 15591653, + 15591679, + 15592992, + 15593186, + 15605986, + 15605999, + 15606001, + 15655456, + 15655648, + 15655918, + 15657248, + 15657980, + 15658016, + 15659506, + 15724267, + 15724773, + 15724776, + 15724782, + 15786210, + 15787492, + 15856352, + 15856354, + 15856360, + 15859488, + 15918571, + 15920672, + 15920880, + 15924256, + 16249582, + 16512288 + ]; + }; + this.name = function(det) { + return "windows-1251"; + }; + this.language = function() { + return "ru"; + }; + }; + util2.inherits(exports.windows_1251, sbcs); + exports.windows_1256 = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 129, + 32, + 131, + 32, + 32, + 32, + 32, + 136, + 32, + 138, + 32, + 156, + 141, + 142, + 143, + 144, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 152, + 32, + 154, + 32, + 156, + 32, + 32, + 159, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 170, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 181, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 32, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 32, + 32, + 32, + 32, + 244, + 32, + 32, + 32, + 32, + 249, + 32, + 251, + 252, + 32, + 32, + 255 + ]; + }; + this.ngrams = function() { + return [ + 2148321, + 2148324, + 2148551, + 2153185, + 2153965, + 2154977, + 2155492, + 2156231, + 13050055, + 13091104, + 13093408, + 13095200, + 13099296, + 13099459, + 13099463, + 13099464, + 13099466, + 13099468, + 13099469, + 13099471, + 13099475, + 13099482, + 13099486, + 13099491, + 13099494, + 13099501, + 13099808, + 13100064, + 13100234, + 13115591, + 13181127, + 13181149, + 13181153, + 13181155, + 13181158, + 13246663, + 13574343, + 13617440, + 13705415, + 13748512, + 13836487, + 14295239, + 14344684, + 14544160, + 14753991, + 14797088, + 14806048, + 14806304, + 14885063, + 14927648, + 14928160, + 14935072, + 14950599, + 15016135, + 15058720, + 15124449, + 15131680, + 15474887, + 15540423, + 15540451, + 15540454, + 15583520, + 15585568, + 15590432 + ]; + }; + this.name = function(det) { + return "windows-1256"; + }; + this.language = function() { + return "ar"; + }; + }; + util2.inherits(exports.windows_1256, sbcs); + exports.KOI8_R = function() { + this.byteMap = function() { + return [ + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 0, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 163, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 163, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223 + ]; + }; + this.ngrams = function() { + return [ + 2147535, + 2148640, + 2149313, + 2149327, + 2150081, + 2150085, + 2150338, + 2150607, + 2150610, + 2151105, + 2151375, + 2151380, + 2151631, + 2152224, + 2152399, + 2153153, + 2153684, + 2154196, + 12701385, + 12702936, + 12963032, + 12963529, + 12964820, + 12964896, + 13094688, + 13181136, + 13223200, + 13224224, + 13226272, + 13419982, + 13420832, + 13424846, + 13549856, + 13550880, + 13552069, + 13552081, + 13553440, + 13553623, + 13574352, + 13574355, + 13574359, + 13617103, + 13617696, + 13618392, + 13618464, + 13620180, + 13621024, + 13621185, + 13684684, + 13685445, + 13685449, + 13685455, + 13812183, + 13813188, + 13881632, + 13882561, + 13882569, + 13882583, + 13944268, + 13946656, + 13946834, + 13948960, + 14272544, + 14603471 + ]; + }; + this.name = function(det) { + return "KOI8-R"; + }; + this.language = function() { + return "ru"; + }; + }; + util2.inherits(exports.KOI8_R, sbcs); +}); + +// node_modules/chardet/encoding/iso2022.js +var require_iso2022 = __commonJS((exports, module) => { + var util2 = __require("util"); + var Match = require_match(); + function ISO_2022() { + } + ISO_2022.prototype.match = function(det) { + var i, j; + var escN; + var hits = 0; + var misses = 0; + var shifts = 0; + var quality; + var text = det.fInputBytes; + var textLen = det.fInputLen; + scanInput: + for (i = 0;i < textLen; i++) { + if (text[i] == 27) { + checkEscapes: + for (escN = 0;escN < this.escapeSequences.length; escN++) { + var seq = this.escapeSequences[escN]; + if (textLen - i < seq.length) + continue checkEscapes; + for (j = 1;j < seq.length; j++) + if (seq[j] != text[i + j]) + continue checkEscapes; + hits++; + i += seq.length - 1; + continue scanInput; + } + misses++; + } + if (text[i] == 14 || text[i] == 15) + shifts++; + } + if (hits == 0) + return null; + quality = (100 * hits - 100 * misses) / (hits + misses); + if (hits + shifts < 5) + quality -= (5 - (hits + shifts)) * 10; + return quality <= 0 ? null : new Match(det, this, quality); + }; + exports.ISO_2022_JP = function() { + this.name = function() { + return "ISO-2022-JP"; + }; + this.escapeSequences = [ + [27, 36, 40, 67], + [27, 36, 40, 68], + [27, 36, 64], + [27, 36, 65], + [27, 36, 66], + [27, 38, 64], + [27, 40, 66], + [27, 40, 72], + [27, 40, 73], + [27, 40, 74], + [27, 46, 65], + [27, 46, 70] + ]; + }; + util2.inherits(exports.ISO_2022_JP, ISO_2022); + exports.ISO_2022_KR = function() { + this.name = function() { + return "ISO-2022-KR"; + }; + this.escapeSequences = [ + [27, 36, 41, 67] + ]; + }; + util2.inherits(exports.ISO_2022_KR, ISO_2022); + exports.ISO_2022_CN = function() { + this.name = function() { + return "ISO-2022-CN"; + }; + this.escapeSequences = [ + [27, 36, 41, 65], + [27, 36, 41, 71], + [27, 36, 42, 72], + [27, 36, 41, 69], + [27, 36, 43, 73], + [27, 36, 43, 74], + [27, 36, 43, 75], + [27, 36, 43, 76], + [27, 36, 43, 77], + [27, 78], + [27, 79] + ]; + }; + util2.inherits(exports.ISO_2022_CN, ISO_2022); +}); + +// node_modules/chardet/index.js +var require_chardet = __commonJS((exports, module) => { + var fs2 = __require("fs"); + var utf8 = require_utf8(); + var unicode = require_unicode(); + var mbcs = require_mbcs(); + var sbcs = require_sbcs(); + var iso2022 = require_iso2022(); + var self2 = exports; + var recognisers = [ + new utf8, + new unicode.UTF_16BE, + new unicode.UTF_16LE, + new unicode.UTF_32BE, + new unicode.UTF_32LE, + new mbcs.sjis, + new mbcs.big5, + new mbcs.euc_jp, + new mbcs.euc_kr, + new mbcs.gb_18030, + new iso2022.ISO_2022_JP, + new iso2022.ISO_2022_KR, + new iso2022.ISO_2022_CN, + new sbcs.ISO_8859_1, + new sbcs.ISO_8859_2, + new sbcs.ISO_8859_5, + new sbcs.ISO_8859_6, + new sbcs.ISO_8859_7, + new sbcs.ISO_8859_8, + new sbcs.ISO_8859_9, + new sbcs.windows_1251, + new sbcs.windows_1256, + new sbcs.KOI8_R + ]; + module.exports.detect = function(buffer, opts) { + var fByteStats = []; + for (var i = 0;i < 256; i++) + fByteStats[i] = 0; + for (var i = buffer.length - 1;i >= 0; i--) + fByteStats[buffer[i] & 255]++; + var fC1Bytes = false; + for (var i = 128;i <= 159; i += 1) { + if (fByteStats[i] != 0) { + fC1Bytes = true; + break; + } + } + var context = { + fByteStats, + fC1Bytes, + fRawInput: buffer, + fRawLength: buffer.length, + fInputBytes: buffer, + fInputLen: buffer.length + }; + var matches = recognisers.map(function(rec) { + return rec.match(context); + }).filter(function(match) { + return !!match; + }).sort(function(a, b) { + return b.confidence - a.confidence; + }); + if (opts && opts.returnAllMatches === true) { + return matches; + } else { + return matches.length > 0 ? matches[0].name : null; + } + }; + module.exports.detectFile = function(filepath, opts, cb) { + if (typeof opts === "function") { + cb = opts; + opts = undefined; + } + var fd; + var handler = function(err, buffer) { + if (fd) { + fs2.closeSync(fd); + } + if (err) + return cb(err, null); + cb(null, self2.detect(buffer, opts)); + }; + if (opts && opts.sampleSize) { + fd = fs2.openSync(filepath, "r"), sample = Buffer.allocUnsafe(opts.sampleSize); + fs2.read(fd, sample, 0, opts.sampleSize, null, function(err) { + handler(err, sample); + }); + return; + } + fs2.readFile(filepath, handler); + }; + module.exports.detectFileSync = function(filepath, opts) { + if (opts && opts.sampleSize) { + var fd = fs2.openSync(filepath, "r"), sample2 = Buffer.allocUnsafe(opts.sampleSize); + fs2.readSync(fd, sample2, 0, opts.sampleSize); + fs2.closeSync(fd); + return self2.detect(sample2, opts); + } + return self2.detect(fs2.readFileSync(filepath), opts); + }; + module.exports.detectAll = function(buffer, opts) { + if (typeof opts !== "object") { + opts = {}; + } + opts.returnAllMatches = true; + return self2.detect(buffer, opts); + }; + module.exports.detectFileAll = function(filepath, opts, cb) { + if (typeof opts === "function") { + cb = opts; + opts = undefined; + } + if (typeof opts !== "object") { + opts = {}; + } + opts.returnAllMatches = true; + self2.detectFile(filepath, opts, cb); + }; + module.exports.detectFileAllSync = function(filepath, opts) { + if (typeof opts !== "object") { + opts = {}; + } + opts.returnAllMatches = true; + return self2.detectFileSync(filepath, opts); + }; +}); + +// node_modules/safer-buffer/safer.js +var require_safer = __commonJS((exports, module) => { + var buffer = __require("buffer"); + var Buffer2 = buffer.Buffer; + var safer = {}; + var key2; + for (key2 in buffer) { + if (!buffer.hasOwnProperty(key2)) + continue; + if (key2 === "SlowBuffer" || key2 === "Buffer") + continue; + safer[key2] = buffer[key2]; + } + var Safer = safer.Buffer = {}; + for (key2 in Buffer2) { + if (!Buffer2.hasOwnProperty(key2)) + continue; + if (key2 === "allocUnsafe" || key2 === "allocUnsafeSlow") + continue; + Safer[key2] = Buffer2[key2]; + } + safer.Buffer.prototype = Buffer2.prototype; + if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function(value, encodingOrOffset, length) { + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value); + } + if (value && typeof value.length === "undefined") { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + return Buffer2(value, encodingOrOffset, length); + }; + } + if (!Safer.alloc) { + Safer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size); + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + var buf = Buffer2(size); + if (!fill || fill.length === 0) { + buf.fill(0); + } else if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + return buf; + }; + } + if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process.binding("buffer").kStringMaxLength; + } catch (e) { + } + } + if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + }; + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength; + } + } + module.exports = safer; +}); + +// node_modules/iconv-lite/lib/bom-handling.js +var require_bom_handling = __commonJS((exports) => { + var BOMChar = "\uFEFF"; + exports.PrependBOM = PrependBOMWrapper; + function PrependBOMWrapper(encoder, options) { + this.encoder = encoder; + this.addBOM = true; + } + PrependBOMWrapper.prototype.write = function(str) { + if (this.addBOM) { + str = BOMChar + str; + this.addBOM = false; + } + return this.encoder.write(str); + }; + PrependBOMWrapper.prototype.end = function() { + return this.encoder.end(); + }; + exports.StripBOM = StripBOMWrapper; + function StripBOMWrapper(decoder, options) { + this.decoder = decoder; + this.pass = false; + this.options = options || {}; + } + StripBOMWrapper.prototype.write = function(buf) { + var res = this.decoder.write(buf); + if (this.pass || !res) + return res; + if (res[0] === BOMChar) { + res = res.slice(1); + if (typeof this.options.stripBOM === "function") + this.options.stripBOM(); + } + this.pass = true; + return res; + }; + StripBOMWrapper.prototype.end = function() { + return this.decoder.end(); + }; +}); + +// node_modules/iconv-lite/encodings/internal.js +var require_internal = __commonJS((exports, module) => { + var Buffer2 = require_safer().Buffer; + module.exports = { + utf8: { type: "_internal", bomAware: true }, + cesu8: { type: "_internal", bomAware: true }, + unicode11utf8: "utf8", + ucs2: { type: "_internal", bomAware: true }, + utf16le: "ucs2", + binary: { type: "_internal" }, + base64: { type: "_internal" }, + hex: { type: "_internal" }, + _internal: InternalCodec + }; + function InternalCodec(codecOptions, iconv) { + this.enc = codecOptions.encodingName; + this.bomAware = codecOptions.bomAware; + if (this.enc === "base64") + this.encoder = InternalEncoderBase64; + else if (this.enc === "cesu8") { + this.enc = "utf8"; + this.encoder = InternalEncoderCesu8; + if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\uD83D\uDCA9") { + this.decoder = InternalDecoderCesu8; + this.defaultCharUnicode = iconv.defaultCharUnicode; + } + } + } + InternalCodec.prototype.encoder = InternalEncoder; + InternalCodec.prototype.decoder = InternalDecoder; + var StringDecoder = __require("string_decoder").StringDecoder; + if (!StringDecoder.prototype.end) + StringDecoder.prototype.end = function() { + }; + function InternalDecoder(options, codec) { + StringDecoder.call(this, codec.enc); + } + InternalDecoder.prototype = StringDecoder.prototype; + function InternalEncoder(options, codec) { + this.enc = codec.enc; + } + InternalEncoder.prototype.write = function(str) { + return Buffer2.from(str, this.enc); + }; + InternalEncoder.prototype.end = function() { + }; + function InternalEncoderBase64(options, codec) { + this.prevStr = ""; + } + InternalEncoderBase64.prototype.write = function(str) { + str = this.prevStr + str; + var completeQuads = str.length - str.length % 4; + this.prevStr = str.slice(completeQuads); + str = str.slice(0, completeQuads); + return Buffer2.from(str, "base64"); + }; + InternalEncoderBase64.prototype.end = function() { + return Buffer2.from(this.prevStr, "base64"); + }; + function InternalEncoderCesu8(options, codec) { + } + InternalEncoderCesu8.prototype.write = function(str) { + var buf = Buffer2.alloc(str.length * 3), bufIdx = 0; + for (var i = 0;i < str.length; i++) { + var charCode = str.charCodeAt(i); + if (charCode < 128) + buf[bufIdx++] = charCode; + else if (charCode < 2048) { + buf[bufIdx++] = 192 + (charCode >>> 6); + buf[bufIdx++] = 128 + (charCode & 63); + } else { + buf[bufIdx++] = 224 + (charCode >>> 12); + buf[bufIdx++] = 128 + (charCode >>> 6 & 63); + buf[bufIdx++] = 128 + (charCode & 63); + } + } + return buf.slice(0, bufIdx); + }; + InternalEncoderCesu8.prototype.end = function() { + }; + function InternalDecoderCesu8(options, codec) { + this.acc = 0; + this.contBytes = 0; + this.accBytes = 0; + this.defaultCharUnicode = codec.defaultCharUnicode; + } + InternalDecoderCesu8.prototype.write = function(buf) { + var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, res = ""; + for (var i = 0;i < buf.length; i++) { + var curByte = buf[i]; + if ((curByte & 192) !== 128) { + if (contBytes > 0) { + res += this.defaultCharUnicode; + contBytes = 0; + } + if (curByte < 128) { + res += String.fromCharCode(curByte); + } else if (curByte < 224) { + acc = curByte & 31; + contBytes = 1; + accBytes = 1; + } else if (curByte < 240) { + acc = curByte & 15; + contBytes = 2; + accBytes = 1; + } else { + res += this.defaultCharUnicode; + } + } else { + if (contBytes > 0) { + acc = acc << 6 | curByte & 63; + contBytes--; + accBytes++; + if (contBytes === 0) { + if (accBytes === 2 && acc < 128 && acc > 0) + res += this.defaultCharUnicode; + else if (accBytes === 3 && acc < 2048) + res += this.defaultCharUnicode; + else + res += String.fromCharCode(acc); + } + } else { + res += this.defaultCharUnicode; + } + } + } + this.acc = acc; + this.contBytes = contBytes; + this.accBytes = accBytes; + return res; + }; + InternalDecoderCesu8.prototype.end = function() { + var res = 0; + if (this.contBytes > 0) + res += this.defaultCharUnicode; + return res; + }; +}); + +// node_modules/iconv-lite/encodings/utf16.js +var require_utf16 = __commonJS((exports) => { + var Buffer2 = require_safer().Buffer; + exports.utf16be = Utf16BECodec; + function Utf16BECodec() { + } + Utf16BECodec.prototype.encoder = Utf16BEEncoder; + Utf16BECodec.prototype.decoder = Utf16BEDecoder; + Utf16BECodec.prototype.bomAware = true; + function Utf16BEEncoder() { + } + Utf16BEEncoder.prototype.write = function(str) { + var buf = Buffer2.from(str, "ucs2"); + for (var i = 0;i < buf.length; i += 2) { + var tmp = buf[i]; + buf[i] = buf[i + 1]; + buf[i + 1] = tmp; + } + return buf; + }; + Utf16BEEncoder.prototype.end = function() { + }; + function Utf16BEDecoder() { + this.overflowByte = -1; + } + Utf16BEDecoder.prototype.write = function(buf) { + if (buf.length == 0) + return ""; + var buf2 = Buffer2.alloc(buf.length + 1), i = 0, j = 0; + if (this.overflowByte !== -1) { + buf2[0] = buf[0]; + buf2[1] = this.overflowByte; + i = 1; + j = 2; + } + for (;i < buf.length - 1; i += 2, j += 2) { + buf2[j] = buf[i + 1]; + buf2[j + 1] = buf[i]; + } + this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1; + return buf2.slice(0, j).toString("ucs2"); + }; + Utf16BEDecoder.prototype.end = function() { + }; + exports.utf16 = Utf16Codec; + function Utf16Codec(codecOptions, iconv) { + this.iconv = iconv; + } + Utf16Codec.prototype.encoder = Utf16Encoder; + Utf16Codec.prototype.decoder = Utf16Decoder; + function Utf16Encoder(options, codec) { + options = options || {}; + if (options.addBOM === undefined) + options.addBOM = true; + this.encoder = codec.iconv.getEncoder("utf-16le", options); + } + Utf16Encoder.prototype.write = function(str) { + return this.encoder.write(str); + }; + Utf16Encoder.prototype.end = function() { + return this.encoder.end(); + }; + function Utf16Decoder(options, codec) { + this.decoder = null; + this.initialBytes = []; + this.initialBytesLen = 0; + this.options = options || {}; + this.iconv = codec.iconv; + } + Utf16Decoder.prototype.write = function(buf) { + if (!this.decoder) { + this.initialBytes.push(buf); + this.initialBytesLen += buf.length; + if (this.initialBytesLen < 16) + return ""; + var buf = Buffer2.concat(this.initialBytes), encoding = detectEncoding(buf, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + this.initialBytes.length = this.initialBytesLen = 0; + } + return this.decoder.write(buf); + }; + Utf16Decoder.prototype.end = function() { + if (!this.decoder) { + var buf = Buffer2.concat(this.initialBytes), encoding = detectEncoding(buf, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var res = this.decoder.write(buf), trail = this.decoder.end(); + return trail ? res + trail : res; + } + return this.decoder.end(); + }; + function detectEncoding(buf, defaultEncoding) { + var enc = defaultEncoding || "utf-16le"; + if (buf.length >= 2) { + if (buf[0] == 254 && buf[1] == 255) + enc = "utf-16be"; + else if (buf[0] == 255 && buf[1] == 254) + enc = "utf-16le"; + else { + var asciiCharsLE = 0, asciiCharsBE = 0, _len = Math.min(buf.length - buf.length % 2, 64); + for (var i = 0;i < _len; i += 2) { + if (buf[i] === 0 && buf[i + 1] !== 0) + asciiCharsBE++; + if (buf[i] !== 0 && buf[i + 1] === 0) + asciiCharsLE++; + } + if (asciiCharsBE > asciiCharsLE) + enc = "utf-16be"; + else if (asciiCharsBE < asciiCharsLE) + enc = "utf-16le"; + } + } + return enc; + } +}); + +// node_modules/iconv-lite/encodings/utf7.js +var require_utf7 = __commonJS((exports) => { + var Buffer2 = require_safer().Buffer; + exports.utf7 = Utf7Codec; + exports.unicode11utf7 = "utf7"; + function Utf7Codec(codecOptions, iconv) { + this.iconv = iconv; + } + Utf7Codec.prototype.encoder = Utf7Encoder; + Utf7Codec.prototype.decoder = Utf7Decoder; + Utf7Codec.prototype.bomAware = true; + var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g; + function Utf7Encoder(options, codec) { + this.iconv = codec.iconv; + } + Utf7Encoder.prototype.write = function(str) { + return Buffer2.from(str.replace(nonDirectChars, function(chunk) { + return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-"; + }.bind(this))); + }; + Utf7Encoder.prototype.end = function() { + }; + function Utf7Decoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ""; + } + var base64Regex2 = /[A-Za-z0-9\/+]/; + var base64Chars = []; + for (i = 0;i < 256; i++) + base64Chars[i] = base64Regex2.test(String.fromCharCode(i)); + var i; + var plusChar = 43; + var minusChar = 45; + var andChar = 38; + Utf7Decoder.prototype.write = function(buf) { + var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum; + for (var i2 = 0;i2 < buf.length; i2++) { + if (!inBase64) { + if (buf[i2] == plusChar) { + res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); + lastI = i2 + 1; + inBase64 = true; + } + } else { + if (!base64Chars[buf[i2]]) { + if (i2 == lastI && buf[i2] == minusChar) { + res += "+"; + } else { + var b64str = base64Accum + buf.slice(lastI, i2).toString(); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + if (buf[i2] != minusChar) + i2--; + lastI = i2 + 1; + inBase64 = false; + base64Accum = ""; + } + } + } + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); + } else { + var b64str = base64Accum + buf.slice(lastI).toString(); + var canBeDecoded = b64str.length - b64str.length % 8; + base64Accum = b64str.slice(canBeDecoded); + b64str = b64str.slice(0, canBeDecoded); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + return res; + }; + Utf7Decoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) + res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); + this.inBase64 = false; + this.base64Accum = ""; + return res; + }; + exports.utf7imap = Utf7IMAPCodec; + function Utf7IMAPCodec(codecOptions, iconv) { + this.iconv = iconv; + } + Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder; + Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder; + Utf7IMAPCodec.prototype.bomAware = true; + function Utf7IMAPEncoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = Buffer2.alloc(6); + this.base64AccumIdx = 0; + } + Utf7IMAPEncoder.prototype.write = function(str) { + var inBase64 = this.inBase64, base64Accum = this.base64Accum, base64AccumIdx = this.base64AccumIdx, buf = Buffer2.alloc(str.length * 5 + 10), bufIdx = 0; + for (var i2 = 0;i2 < str.length; i2++) { + var uChar = str.charCodeAt(i2); + if (32 <= uChar && uChar <= 126) { + if (inBase64) { + if (base64AccumIdx > 0) { + bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); + base64AccumIdx = 0; + } + buf[bufIdx++] = minusChar; + inBase64 = false; + } + if (!inBase64) { + buf[bufIdx++] = uChar; + if (uChar === andChar) + buf[bufIdx++] = minusChar; + } + } else { + if (!inBase64) { + buf[bufIdx++] = andChar; + inBase64 = true; + } + if (inBase64) { + base64Accum[base64AccumIdx++] = uChar >> 8; + base64Accum[base64AccumIdx++] = uChar & 255; + if (base64AccumIdx == base64Accum.length) { + bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx); + base64AccumIdx = 0; + } + } + } + } + this.inBase64 = inBase64; + this.base64AccumIdx = base64AccumIdx; + return buf.slice(0, bufIdx); + }; + Utf7IMAPEncoder.prototype.end = function() { + var buf = Buffer2.alloc(10), bufIdx = 0; + if (this.inBase64) { + if (this.base64AccumIdx > 0) { + bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); + this.base64AccumIdx = 0; + } + buf[bufIdx++] = minusChar; + this.inBase64 = false; + } + return buf.slice(0, bufIdx); + }; + function Utf7IMAPDecoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ""; + } + var base64IMAPChars = base64Chars.slice(); + base64IMAPChars[44] = true; + Utf7IMAPDecoder.prototype.write = function(buf) { + var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum; + for (var i2 = 0;i2 < buf.length; i2++) { + if (!inBase64) { + if (buf[i2] == andChar) { + res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); + lastI = i2 + 1; + inBase64 = true; + } + } else { + if (!base64IMAPChars[buf[i2]]) { + if (i2 == lastI && buf[i2] == minusChar) { + res += "&"; + } else { + var b64str = base64Accum + buf.slice(lastI, i2).toString().replace(/,/g, "/"); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + if (buf[i2] != minusChar) + i2--; + lastI = i2 + 1; + inBase64 = false; + base64Accum = ""; + } + } + } + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); + } else { + var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, "/"); + var canBeDecoded = b64str.length - b64str.length % 8; + base64Accum = b64str.slice(canBeDecoded); + b64str = b64str.slice(0, canBeDecoded); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + return res; + }; + Utf7IMAPDecoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) + res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); + this.inBase64 = false; + this.base64Accum = ""; + return res; + }; +}); + +// node_modules/iconv-lite/encodings/sbcs-codec.js +var require_sbcs_codec = __commonJS((exports) => { + var Buffer2 = require_safer().Buffer; + exports._sbcs = SBCSCodec; + function SBCSCodec(codecOptions, iconv) { + if (!codecOptions) + throw new Error("SBCS codec is called without the data."); + if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256) + throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)"); + if (codecOptions.chars.length === 128) { + var asciiString = ""; + for (var i = 0;i < 128; i++) + asciiString += String.fromCharCode(i); + codecOptions.chars = asciiString + codecOptions.chars; + } + this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2"); + var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0)); + for (var i = 0;i < codecOptions.chars.length; i++) + encodeBuf[codecOptions.chars.charCodeAt(i)] = i; + this.encodeBuf = encodeBuf; + } + SBCSCodec.prototype.encoder = SBCSEncoder; + SBCSCodec.prototype.decoder = SBCSDecoder; + function SBCSEncoder(options, codec) { + this.encodeBuf = codec.encodeBuf; + } + SBCSEncoder.prototype.write = function(str) { + var buf = Buffer2.alloc(str.length); + for (var i = 0;i < str.length; i++) + buf[i] = this.encodeBuf[str.charCodeAt(i)]; + return buf; + }; + SBCSEncoder.prototype.end = function() { + }; + function SBCSDecoder(options, codec) { + this.decodeBuf = codec.decodeBuf; + } + SBCSDecoder.prototype.write = function(buf) { + var decodeBuf = this.decodeBuf; + var newBuf = Buffer2.alloc(buf.length * 2); + var idx1 = 0, idx2 = 0; + for (var i = 0;i < buf.length; i++) { + idx1 = buf[i] * 2; + idx2 = i * 2; + newBuf[idx2] = decodeBuf[idx1]; + newBuf[idx2 + 1] = decodeBuf[idx1 + 1]; + } + return newBuf.toString("ucs2"); + }; + SBCSDecoder.prototype.end = function() { + }; +}); + +// node_modules/iconv-lite/encodings/sbcs-data.js +var require_sbcs_data = __commonJS((exports, module) => { + module.exports = { + "10029": "maccenteuro", + maccenteuro: { + type: "_sbcs", + chars: "Ć„Ä€ÄĆ‰Ä„Ć–ĆœĆ”Ä…ÄŒĆ¤ÄÄ†Ä‡Ć©Å¹ÅŗÄŽĆ­ÄÄ’Ä“Ä–Ć³Ä—Ć“Ć¶ĆµĆŗÄšÄ›Ć¼ā€ Ā°Ä˜Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ä™ĀØā‰ Ä£Ä®ÄÆÄŖā‰¤ā‰„īĶāˆ‚āˆ‘łĻļĽľĹÄŗŅņŃĀ¬āˆšÅ„Ňāˆ†Ā«Ā»ā€¦Ā ÅˆÅĆ•Å‘ÅŒā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠÅÅ”ŕŘā€¹ā€ŗřŖŗŠā€šā€žÅ”ÅšÅ›ĆÅ¤Å„ĆÅ½Å¾ÅŖĆ“Ć”Å«Å®ĆšÅÆÅ°Å±Å²Å³ĆĆ½Ä·Å»ÅÅ¼Ä¢Ė‡" }, - line: { - interval: 130, - frames: [ - "-", - "\\", - "|", - "/" - ] + "808": "cp808", + ibm808: "cp808", + cp808: { + type: "_sbcs", + chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ń€ŃŃ‚ŃƒŃ„Ń…Ń†Ń‡ŃˆŃ‰ŃŠŃ‹ŃŒŃŃŽŃŠŃ‘Š„Ń”Š‡Ń—ŠŽŃžĀ°āˆ™Ā·āˆšā„–ā‚¬ā– Ā " }, - line2: { - interval: 100, - frames: [ - "ā ‚", - "-", - "ā€“", - "ā€”", - "ā€“", - "-" - ] + mik: { + type: "_sbcs", + chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюяā””ā”“ā”¬ā”œā”€ā”¼ā•£ā•‘ā•šā•”ā•©ā•¦ā• ā•ā•¬ā”ā–‘ā–’ā–“ā”‚ā”¤ā„–Ā§ā•—ā•ā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " }, - pipe: { - interval: 100, - frames: [ - "ā”¤", - "ā”˜", - "ā”“", - "ā””", - "ā”œ", - "ā”Œ", - "ā”¬", - "ā”" - ] + ascii8bit: "ascii", + usascii: "ascii", + ansix34: "ascii", + ansix341968: "ascii", + ansix341986: "ascii", + csascii: "ascii", + cp367: "ascii", + ibm367: "ascii", + isoir6: "ascii", + iso646us: "ascii", + iso646irv: "ascii", + us: "ascii", + latin1: "iso88591", + latin2: "iso88592", + latin3: "iso88593", + latin4: "iso88594", + latin5: "iso88599", + latin6: "iso885910", + latin7: "iso885913", + latin8: "iso885914", + latin9: "iso885915", + latin10: "iso885916", + csisolatin1: "iso88591", + csisolatin2: "iso88592", + csisolatin3: "iso88593", + csisolatin4: "iso88594", + csisolatincyrillic: "iso88595", + csisolatinarabic: "iso88596", + csisolatingreek: "iso88597", + csisolatinhebrew: "iso88598", + csisolatin5: "iso88599", + csisolatin6: "iso885910", + l1: "iso88591", + l2: "iso88592", + l3: "iso88593", + l4: "iso88594", + l5: "iso88599", + l6: "iso885910", + l7: "iso885913", + l8: "iso885914", + l9: "iso885915", + l10: "iso885916", + isoir14: "iso646jp", + isoir57: "iso646cn", + isoir100: "iso88591", + isoir101: "iso88592", + isoir109: "iso88593", + isoir110: "iso88594", + isoir144: "iso88595", + isoir127: "iso88596", + isoir126: "iso88597", + isoir138: "iso88598", + isoir148: "iso88599", + isoir157: "iso885910", + isoir166: "tis620", + isoir179: "iso885913", + isoir199: "iso885914", + isoir203: "iso885915", + isoir226: "iso885916", + cp819: "iso88591", + ibm819: "iso88591", + cyrillic: "iso88595", + arabic: "iso88596", + arabic8: "iso88596", + ecma114: "iso88596", + asmo708: "iso88596", + greek: "iso88597", + greek8: "iso88597", + ecma118: "iso88597", + elot928: "iso88597", + hebrew: "iso88598", + hebrew8: "iso88598", + turkish: "iso88599", + turkish8: "iso88599", + thai: "iso885911", + thai8: "iso885911", + celtic: "iso885914", + celtic8: "iso885914", + isoceltic: "iso885914", + tis6200: "tis620", + tis62025291: "tis620", + tis62025330: "tis620", + "10000": "macroman", + "10006": "macgreek", + "10007": "maccyrillic", + "10079": "maciceland", + "10081": "macturkish", + cspc8codepage437: "cp437", + cspc775baltic: "cp775", + cspc850multilingual: "cp850", + cspcp852: "cp852", + cspc862latinhebrew: "cp862", + cpgr: "cp869", + msee: "cp1250", + mscyrl: "cp1251", + msansi: "cp1252", + msgreek: "cp1253", + msturk: "cp1254", + mshebr: "cp1255", + msarab: "cp1256", + winbaltrim: "cp1257", + cp20866: "koi8r", + "20866": "koi8r", + ibm878: "koi8r", + cskoi8r: "koi8r", + cp21866: "koi8u", + "21866": "koi8u", + ibm1168: "koi8u", + strk10482002: "rk1048", + tcvn5712: "tcvn", + tcvn57121: "tcvn", + gb198880: "iso646cn", + cn: "iso646cn", + csiso14jisc6220ro: "iso646jp", + jisc62201969ro: "iso646jp", + jp: "iso646jp", + cshproman8: "hproman8", + r8: "hproman8", + roman8: "hproman8", + xroman8: "hproman8", + ibm1051: "hproman8", + mac: "macintosh", + csmacintosh: "macintosh" + }; +}); + +// node_modules/iconv-lite/encodings/sbcs-data-generated.js +var require_sbcs_data_generated = __commonJS((exports, module) => { + module.exports = { + "437": "cp437", + "737": "cp737", + "775": "cp775", + "850": "cp850", + "852": "cp852", + "855": "cp855", + "856": "cp856", + "857": "cp857", + "858": "cp858", + "860": "cp860", + "861": "cp861", + "862": "cp862", + "863": "cp863", + "864": "cp864", + "865": "cp865", + "866": "cp866", + "869": "cp869", + "874": "windows874", + "922": "cp922", + "1046": "cp1046", + "1124": "cp1124", + "1125": "cp1125", + "1129": "cp1129", + "1133": "cp1133", + "1161": "cp1161", + "1162": "cp1162", + "1163": "cp1163", + "1250": "windows1250", + "1251": "windows1251", + "1252": "windows1252", + "1253": "windows1253", + "1254": "windows1254", + "1255": "windows1255", + "1256": "windows1256", + "1257": "windows1257", + "1258": "windows1258", + "28591": "iso88591", + "28592": "iso88592", + "28593": "iso88593", + "28594": "iso88594", + "28595": "iso88595", + "28596": "iso88596", + "28597": "iso88597", + "28598": "iso88598", + "28599": "iso88599", + "28600": "iso885910", + "28601": "iso885911", + "28603": "iso885913", + "28604": "iso885914", + "28605": "iso885915", + "28606": "iso885916", + windows874: { + type: "_sbcs", + chars: "ā‚¬ļæ½ļæ½ļæ½ļæ½ā€¦ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ā ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½" }, - simpleDots: { - interval: 400, - frames: [ - ". ", - ".. ", - "...", - " " - ] + win874: "windows874", + cp874: "windows874", + windows1250: { + type: "_sbcs", + chars: "ā‚¬ļæ½ā€šļæ½ā€žā€¦ā€ ā€”ļæ½ā€°Å ā€¹ÅšÅ¤Å½Å¹ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢Å”ā€ŗśńžÅŗĀ Ė‡Ė˜ÅĀ¤Ä„Ā¦Ā§ĀØĀ©ÅžĀ«Ā¬Ā­Ā®Å»Ā°Ā±Ė›Å‚Ā“ĀµĀ¶Ā·ĀøąşĀ»Ä½ĖÄ¾Å¼Å”ĆĆ‚Ä‚Ć„Ä¹Ä†Ć‡ÄŒĆ‰Ä˜Ć‹ÄšĆĆŽÄŽÄÅƒÅ‡Ć“Ć”ÅĆ–Ć—Å˜Å®ĆšÅ°ĆœĆÅ¢ĆŸÅ•Ć”Ć¢ÄƒĆ¤ÄŗÄ‡Ć§ÄĆ©Ä™Ć«Ä›Ć­Ć®ÄÄ‘Å„ÅˆĆ³Ć“Å‘Ć¶Ć·Å™ÅÆĆŗÅ±Ć¼Ć½Å£Ė™" }, - simpleDotsScrolling: { - interval: 200, - frames: [ - ". ", - ".. ", - "...", - " ..", - " .", - " " - ] + win1250: "windows1250", + cp1250: "windows1250", + windows1251: { + type: "_sbcs", + chars: "Š‚Šƒā€šŃ“ā€žā€¦ā€ ā€”ā‚¬ā€°Š‰ā€¹ŠŠŠŒŠ‹ŠŃ’ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢Ń™ā€ŗњќћџĀ ŠŽŃžŠˆĀ¤ŅĀ¦Ā§ŠĀ©Š„Ā«Ā¬Ā­Ā®Š‡Ā°Ā±Š†Ń–Ņ‘ĀµĀ¶Ā·Ń‘ā„–Ń”Ā»Ń˜Š…Ń•Ń—ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюя" }, - star: { - interval: 70, - frames: [ - "āœ¶", - "āœø", - "āœ¹", - "āœŗ", - "āœ¹", - "āœ·" - ] + win1251: "windows1251", + cp1251: "windows1251", + windows1252: { + type: "_sbcs", + chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ļæ½Å½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœļæ½Å¾ÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆĆĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆĆžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" }, - star2: { - interval: 80, - frames: [ - "+", - "x", - "*" - ] + win1252: "windows1252", + cp1252: "windows1252", + windows1253: { + type: "_sbcs", + chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”ļæ½ā€°ļæ½ā€¹ļæ½ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢ļæ½ā€ŗļæ½ļæ½ļæ½ļæ½Ā Ī…Ī†Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ļæ½Ā«Ā¬Ā­Ā®ā€•Ā°Ā±Ā²Ā³Ī„ĀµĀ¶Ā·ĪˆĪ‰ĪŠĀ»ĪŒĀ½ĪŽĪĪĪ‘Ī’Ī“Ī”Ī•Ī–Ī—Ī˜Ī™ĪšĪ›ĪœĪĪžĪŸĪ Ī”ļæ½Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©ĪŖĪ«Ī¬Ī­Ī®ĪÆĪ°Ī±Ī²Ī³Ī“ĪµĪ¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻ‚ĻƒĻ„Ļ…Ļ†Ļ‡ĻˆĻ‰ĻŠĻ‹ĻŒĻĻŽļæ½" }, - flip: { - interval: 70, - frames: [ - "_", - "_", - "_", - "-", - "`", - "`", - "'", - "Ā“", - "-", - "_", - "_", - "_" - ] + win1253: "windows1253", + cp1253: "windows1253", + windows1254: { + type: "_sbcs", + chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœļæ½ļæ½ÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÄžĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœÄ°ÅžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÄŸĆ±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ä±ÅŸĆæ" }, - hamburger: { - interval: 100, - frames: [ - "ā˜±", - "ā˜²", - "ā˜“" - ] + win1254: "windows1254", + cp1254: "windows1254", + windows1255: { + type: "_sbcs", + chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°ļæ½ā€¹ļæ½ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢ļæ½ā€ŗļæ½ļæ½ļæ½ļæ½Ā Ā”Ā¢Ā£ā‚ŖĀ„Ā¦Ā§ĀØĀ©Ć—Ā«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹Ć·Ā»Ā¼Ā½Ā¾ĀæÖ°Ö±Ö²Ö³Ö“ÖµÖ¶Ö·ÖøÖ¹ÖŗÖ»Ö¼Ö½Ö¾Öæ׀ׁׂ׃װױײ׳דļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½××‘גדהוזחטיךכלםמןנהעףפׄצק×Øש×Ŗļæ½ļæ½ā€Žā€ļæ½" }, - growVertical: { - interval: 120, - frames: [ - "ā–", - "ā–ƒ", - "ā–„", - "ā–…", - "ā–†", - "ā–‡", - "ā–†", - "ā–…", - "ā–„", - "ā–ƒ" - ] + win1255: "windows1255", + cp1255: "windows1255", + windows1256: { + type: "_sbcs", + chars: "ā‚¬Ł¾ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Ł¹ā€¹Å’Ś†Ś˜ŚˆŚÆā€˜ā€™ā€œā€ā€¢ā€“ā€”Ś©ā„¢Ś‘ā€ŗœā€Œā€ŚŗĀ ŲŒĀ¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©Ś¾Ā«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹Ų›Ā»Ā¼Ā½Ā¾ŲŸŪŲ”Ų¢Ų£Ų¤Ų„Ų¦Ų§ŲØŲ©ŲŖŲ«Ų¬Ų­Ų®ŲÆŲ°Ų±Ų²Ų³Ų“ŲµŲ¶Ć—Ų·ŲøŲ¹ŲŗŁ€ŁŁ‚ŁƒĆ Ł„Ć¢Ł…Ł†Ł‡ŁˆĆ§ĆØĆ©ĆŖĆ«Ł‰ŁŠĆ®ĆÆŁ‹ŁŒŁŁŽĆ“ŁŁĆ·Ł‘Ć¹Ł’Ć»Ć¼ā€Žā€Ū’" }, - growHorizontal: { - interval: 120, - frames: [ - "ā–", - "ā–Ž", - "ā–", - "ā–Œ", - "ā–‹", - "ā–Š", - "ā–‰", - "ā–Š", - "ā–‹", - "ā–Œ", - "ā–", - "ā–Ž" - ] + win1256: "windows1256", + cp1256: "windows1256", + windows1257: { + type: "_sbcs", + chars: "ā‚¬ļæ½ā€šļæ½ā€žā€¦ā€ ā€”ļæ½ā€°ļæ½ā€¹ļæ½ĀØĖ‡Āøļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢ļæ½ā€ŗļæ½ĀÆĖ›ļæ½Ā ļæ½Ā¢Ā£Ā¤ļæ½Ā¦Ā§Ć˜Ā©Å–Ā«Ā¬Ā­Ā®Ć†Ā°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĆøĀ¹Å—Ā»Ā¼Ā½Ā¾Ć¦Ä„Ä®Ä€Ä†Ć„Ć…Ä˜Ä’ÄŒĆ‰Å¹Ä–Ä¢Ä¶ÄŖÄ»Å ÅƒÅ…Ć“ÅŒĆ•Ć–Ć—Å²ÅÅšÅŖĆœÅ»Å½ĆŸÄ…ÄÆÄÄ‡Ć¤Ć„Ä™Ä“ÄĆ©ÅŗÄ—Ä£Ä·Ä«Ä¼Å”Å„Å†Ć³ÅĆµĆ¶Ć·Å³Å‚Å›Å«Ć¼Å¼Å¾Ė™" }, - balloon: { - interval: 140, - frames: [ - " ", - ".", - "o", - "O", - "@", - "*", - " " - ] + win1257: "windows1257", + cp1257: "windows1257", + windows1258: { + type: "_sbcs", + chars: "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°ļæ½ā€¹Å’ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢ļæ½ā€ŗœļæ½ļæ½ÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæƀƁƂĂƄƅƆƇƈƉƊƋĢ€ĆĆŽĆÄĆ‘Ģ‰Ć“Ć”Ę Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĘÆĢƒĆŸĆ Ć”Ć¢ÄƒĆ¤Ć„Ć¦Ć§ĆØĆ©ĆŖĆ«ĢĆ­Ć®ĆÆđƱĢ£Ć³Ć“ʔƶƷĆøĆ¹ĆŗĆ»Ć¼Ę°ā‚«Ćæ" }, - balloon2: { - interval: 120, - frames: [ - ".", - "o", - "O", - "Ā°", - "O", - "o", - "." - ] + win1258: "windows1258", + cp1258: "windows1258", + iso88591: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆĆĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆĆžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" }, - noise: { - interval: 100, - frames: [ - "ā–“", - "ā–’", - "ā–‘" - ] + cp28591: "iso88591", + iso88592: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„Ė˜ÅĀ¤Ä½ÅšĀ§ĀØŠŞŤŹĀ­Å½Å»Ā°Ä…Ė›Å‚Ā“ľśĖ‡ĀøŔşńÅŗĖÅ¾Å¼Å”ĆĆ‚Ä‚Ć„Ä¹Ä†Ć‡ÄŒĆ‰Ä˜Ć‹ÄšĆĆŽÄŽÄÅƒÅ‡Ć“Ć”ÅĆ–Ć—Å˜Å®ĆšÅ°ĆœĆÅ¢ĆŸÅ•Ć”Ć¢ÄƒĆ¤ÄŗÄ‡Ć§ÄĆ©Ä™Ć«Ä›Ć­Ć®ÄÄ‘Å„ÅˆĆ³Ć“Å‘Ć¶Ć·Å™ÅÆĆŗÅ±Ć¼Ć½Å£Ė™" }, - bounce: { - interval: 120, - frames: [ - "ā ", - "ā ‚", - "ā „", - "ā ‚" - ] + cp28592: "iso88592", + iso88593: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä¦Ė˜Ā£Ā¤ļæ½Ä¤Ā§ĀØİŞĞēĀ­ļæ½Å»Ā°Ä§Ā²Ā³Ā“ĀµÄ„Ā·ĀøışğĵĀ½ļæ½Å¼Ć€ĆĆ‚ļæ½Ć„ÄŠÄˆĆ‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆļæ½Ć‘Ć’Ć“Ć”Ä Ć–Ć—ÄœĆ™ĆšĆ›ĆœÅ¬ÅœĆŸĆ Ć”Ć¢ļæ½Ć¤Ä‹Ä‰Ć§ĆØĆ©ĆŖƫƬƭƮĆÆļæ½Ć±Ć²Ć³Ć“Ä”Ć¶Ć·ÄĆ¹ĆŗĆ»Ć¼Å­ÅĖ™" }, - boxBounce: { - interval: 120, - frames: [ - "ā––", - "ā–˜", - "ā–", - "ā–—" - ] + cp28593: "iso88593", + iso88594: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„ÄøŖĀ¤ÄØÄ»Ā§ĀØŠĒĢŦĀ­Å½ĀÆĀ°Ä…Ė›Å—Ā“ĩļĖ‡ĀøÅ”Ä“Ä£Å§ÅŠÅ¾Å‹Ä€ĆĆ‚ĆƒĆ„Ć…Ć†Ä®ÄŒĆ‰Ä˜Ć‹Ä–ĆĆŽÄŖÄÅ…ÅŒÄ¶Ć”Ć•Ć–Ć—Ć˜Å²ĆšĆ›ĆœÅØÅŖĆŸÄĆ”Ć¢Ć£Ć¤Ć„Ć¦ÄÆÄĆ©Ä™Ć«Ä—Ć­Ć®Ä«Ä‘Å†ÅÄ·Ć“ĆµĆ¶Ć·ĆøųĆŗĆ»Ć¼Å©Å«Ė™" }, - boxBounce2: { - interval: 100, - frames: [ - "ā–Œ", - "ā–€", - "ā–", - "ā–„" - ] + cp28594: "iso88594", + iso88595: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ŠŠ‚ŠƒŠ„Š…Š†Š‡ŠˆŠ‰ŠŠŠ‹ŠŒĀ­ŠŽŠŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюяā„–Ń‘Ń’Ń“Ń”Ń•Ń–Ń—Ń˜Ń™ŃšŃ›ŃœĀ§ŃžŃŸ" }, - triangle: { - interval: 50, - frames: [ - "ā—¢", - "ā—£", - "ā—¤", - "ā—„" - ] + cp28595: "iso88595", + iso88596: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ļæ½ļæ½ļæ½Ā¤ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ŲŒĀ­ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ų›ļæ½ļæ½ļæ½ŲŸļæ½Ų”Ų¢Ų£Ų¤Ų„Ų¦Ų§ŲØŲ©ŲŖŲ«Ų¬Ų­Ų®ŲÆŲ°Ų±Ų²Ų³Ų“ŲµŲ¶Ų·ŲøŲ¹Ųŗļæ½ļæ½ļæ½ļæ½ļæ½Ł€ŁŁ‚ŁƒŁ„Ł…Ł†Ł‡ŁˆŁ‰ŁŠŁ‹ŁŒŁŁŽŁŁŁ‘Ł’ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½" }, - binary: { - interval: 80, - frames: [ - "010010", - "001100", - "100101", - "111010", - "111101", - "010111", - "101011", - "111000", - "110011", - "110101" - ] + cp28596: "iso88596", + iso88597: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ā€˜ā€™Ā£ā‚¬ā‚ÆĀ¦Ā§ĀØĀ©ĶŗĀ«Ā¬Ā­ļæ½ā€•Ā°Ā±Ā²Ā³Ī„Ī…Ī†Ā·ĪˆĪ‰ĪŠĀ»ĪŒĀ½ĪŽĪĪĪ‘Ī’Ī“Ī”Ī•Ī–Ī—Ī˜Ī™ĪšĪ›ĪœĪĪžĪŸĪ Ī”ļæ½Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©ĪŖĪ«Ī¬Ī­Ī®ĪÆĪ°Ī±Ī²Ī³Ī“ĪµĪ¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻ‚ĻƒĻ„Ļ…Ļ†Ļ‡ĻˆĻ‰ĻŠĻ‹ĻŒĻĻŽļæ½" }, - arc: { - interval: 100, - frames: [ - "ā—œ", - "ā— ", - "ā—", - "ā—ž", - "ā—”", - "ā—Ÿ" - ] + cp28597: "iso88597", + iso88598: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ļæ½Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©Ć—Ā«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹Ć·Ā»Ā¼Ā½Ā¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ā€—אבגדהוזחטיךכלםמןנהעףפׄצק×Øש×Ŗļæ½ļæ½ā€Žā€ļæ½" }, - circle: { - interval: 120, - frames: [ - "ā—”", - "āŠ™", - "ā— " - ] + cp28598: "iso88598", + iso88599: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÄžĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœÄ°ÅžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÄŸĆ±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ä±ÅŸĆæ" }, - squareCorners: { - interval: 180, - frames: [ - "ā—°", - "ā—³", - "ā—²", - "ā—±" - ] + cp28599: "iso88599", + iso885910: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„Ä’Ä¢ÄŖÄØĶĀ§Ä»ÄÅ Å¦Å½Ā­ÅŖŊĀ°Ä…ēģīĩķĀ·Ä¼Ä‘Å”ŧžā€•Å«Å‹Ä€ĆĆ‚ĆƒĆ„Ć…Ć†Ä®ÄŒĆ‰Ä˜Ć‹Ä–ĆĆŽĆĆÅ…ÅŒĆ“Ć”Ć•Ć–ÅØĆ˜Å²ĆšĆ›ĆœĆĆžĆŸÄĆ”Ć¢Ć£Ć¤Ć„Ć¦ÄÆÄĆ©Ä™Ć«Ä—Ć­Ć®ĆÆĆ°Å†ÅĆ³Ć“ĆµĆ¶Å©ĆøųĆŗĆ»Ć¼Ć½Ć¾Äø" }, - circleQuarters: { - interval: 120, - frames: [ - "ā—“", - "ā—·", - "ā—¶", - "ā—µ" - ] + cp28600: "iso885910", + iso885911: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½" }, - circleHalves: { - interval: 50, - frames: [ - "ā—", - "ā—“", - "ā—‘", - "ā—’" - ] + cp28601: "iso885911", + iso885913: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ā€Ā¢Ā£Ā¤ā€žĀ¦Ā§Ć˜Ā©Å–Ā«Ā¬Ā­Ā®Ć†Ā°Ā±Ā²Ā³ā€œĀµĀ¶Ā·ĆøĀ¹Å—Ā»Ā¼Ā½Ā¾Ć¦Ä„Ä®Ä€Ä†Ć„Ć…Ä˜Ä’ÄŒĆ‰Å¹Ä–Ä¢Ä¶ÄŖÄ»Å ÅƒÅ…Ć“ÅŒĆ•Ć–Ć—Å²ÅÅšÅŖĆœÅ»Å½ĆŸÄ…ÄÆÄÄ‡Ć¤Ć„Ä™Ä“ÄĆ©ÅŗÄ—Ä£Ä·Ä«Ä¼Å”Å„Å†Ć³ÅĆµĆ¶Ć·Å³Å‚Å›Å«Ć¼Å¼Å¾ā€™" }, - squish: { - interval: 100, - frames: [ - "ā•«", - "ā•Ŗ" - ] + cp28603: "iso885913", + iso885914: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ įø‚įøƒĀ£ÄŠÄ‹įøŠĀ§įŗ€Ā©įŗ‚įø‹į»²Ā­Ā®ÅøįøžįøŸÄ Ä”į¹€į¹Ā¶į¹–įŗį¹—įŗƒį¹ į»³įŗ„įŗ…į¹”Ć€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÅ“Ć‘Ć’Ć“Ć”Ć•Ć–į¹ŖĆ˜Ć™ĆšĆ›ĆœĆÅ¶ĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÅµĆ±Ć²Ć³Ć“ĆµĆ¶į¹«ĆøĆ¹ĆŗĆ»Ć¼Ć½Å·Ćæ" }, - toggle: { - interval: 250, - frames: [ - "āŠ¶", - "āŠ·" - ] + cp28604: "iso885914", + iso885915: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£ā‚¬Ā„Å Ā§Å”Ā©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Å½ĀµĀ¶Ā·Å¾Ā¹ĀŗĀ»Å’Å“ÅøĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆĆĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆĆžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" }, - toggle2: { - interval: 80, - frames: [ - "ā–«", - "ā–Ŗ" - ] + cp28605: "iso885915", + iso885916: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„ąŁā‚¬ā€žÅ Ā§Å”Ā©Č˜Ā«Å¹Ā­ÅŗÅ»Ā°Ā±ÄŒÅ‚Žā€Ā¶Ā·Å¾ÄČ™Ā»Å’Å“ÅøÅ¼Ć€ĆĆ‚Ä‚Ć„Ä†Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÄÅƒĆ’Ć“Ć”ÅĆ–ÅšÅ°Ć™ĆšĆ›ĆœÄ˜ČšĆŸĆ Ć”Ć¢ÄƒĆ¤Ä‡Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÄ‘Å„Ć²Ć³Ć“Å‘Ć¶Å›Å±Ć¹ĆŗĆ»Ć¼Ä™Č›Ćæ" }, - toggle3: { - interval: 120, - frames: [ - "ā–”", - "ā– " - ] + cp28606: "iso885916", + cp437: { + type: "_sbcs", + chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĀ¢Ā£Ā„ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " }, - toggle4: { - interval: 100, - frames: [ - "ā– ", - "ā–”", - "ā–Ŗ", - "ā–«" - ] + ibm437: "cp437", + csibm437: "cp437", + cp737: { + type: "_sbcs", + chars: "Ī‘Ī’Ī“Ī”Ī•Ī–Ī—Ī˜Ī™ĪšĪ›ĪœĪĪžĪŸĪ Ī”Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©Ī±Ī²Ī³Ī“ĪµĪ¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻƒĻ‚Ļ„Ļ…Ļ†Ļ‡Ļˆā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ļ‰Ī¬Ī­Ī®ĻŠĪÆĻŒĻĻ‹ĻŽĪ†ĪˆĪ‰ĪŠĪŒĪŽĪĀ±ā‰„ā‰¤ĪŖĪ«Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " }, - toggle5: { - interval: 100, - frames: [ - "ā–®", - "ā–Æ" - ] + ibm737: "cp737", + csibm737: "cp737", + cp775: { + type: "_sbcs", + chars: "Ä†Ć¼Ć©ÄĆ¤Ä£Ć„Ä‡Å‚Ä“Å–Å—Ä«Å¹Ć„Ć…Ć‰Ć¦Ć†ÅĆ¶Ä¢Ā¢ÅšÅ›Ć–ĆœĆøĀ£Ć˜Ć—Ā¤Ä€ÄŖĆ³Å»Å¼Åŗā€Ā¦Ā©Ā®Ā¬Ā½Ā¼ÅĀ«Ā»ā–‘ā–’ā–“ā”‚ā”¤Ä„ČĘĖā•£ā•‘ā•—ā•Ä®Å ā”ā””ā”“ā”¬ā”œā”€ā”¼Å²ÅŖā•šā•”ā•©ā•¦ā• ā•ā•¬Å½Ä…čęėÄÆŔųūžā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ć“ĆŸÅŒÅƒĆµĆ•ĀµÅ„ĶķĻļņĒŅā€™Ā­Ā±ā€œĀ¾Ā¶Ā§Ć·ā€žĀ°āˆ™Ā·Ā¹Ā³Ā²ā– Ā " }, - toggle6: { - interval: 300, - frames: [ - "į€", - "į€" - ] + ibm775: "cp775", + csibm775: "cp775", + cp850: { + type: "_sbcs", + chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĆøĀ£Ć˜Ć—Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæĀ®Ā¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚Ć€Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼Ć£Ćƒā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Ć°ĆĆŠĆ‹ĆˆÄ±ĆĆŽĆā”˜ā”Œā–ˆā–„Ā¦ĆŒā–€Ć“ĆŸĆ”Ć’ĆµĆ•ĀµĆ¾ĆžĆšĆ›Ć™Ć½ĆĀÆĀ“Ā­Ā±ā€—Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā " }, - toggle7: { - interval: 80, - frames: [ - "ā¦¾", - "ā¦æ" - ] + ibm850: "cp850", + csibm850: "cp850", + cp852: { + type: "_sbcs", + chars: "Ć‡Ć¼Ć©Ć¢Ć¤ÅÆÄ‡Ć§Å‚Ć«ÅÅ‘Ć®Å¹Ć„Ä†Ć‰Ä¹ÄŗĆ“Ć¶Ä½Ä¾ÅšÅ›Ć–ĆœÅ¤Å„ÅĆ—ÄĆ”Ć­Ć³ĆŗĄąŽžĘęĀ¬ÅŗČşĀ«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚ĚŞā•£ā•‘ā•—ā•Å»Å¼ā”ā””ā”“ā”¬ā”œā”€ā”¼Ä‚ăā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Ä‘ÄÄŽĆ‹ÄÅ‡ĆĆŽÄ›ā”˜ā”Œā–ˆā–„ŢŮā–€Ć“ĆŸĆ”ÅƒÅ„ÅˆÅ Å”Å”ĆšÅ•Å°Ć½ĆÅ£Ā“Ā­ĖĖ›Ė‡Ė˜Ā§Ć·ĀøĀ°ĀØĖ™Å±Å˜Å™ā– Ā " }, - toggle8: { - interval: 100, - frames: [ - "ā—", - "ā—Œ" - ] + ibm852: "cp852", + csibm852: "cp852", + cp855: { + type: "_sbcs", + chars: "ђŠ‚Ń“ŠƒŃ‘ŠŃ”Š„Ń•Š…Ń–Š†Ń—Š‡Ń˜ŠˆŃ™Š‰ŃšŠŠŃ›Š‹ŃœŠŒŃžŠŽŃŸŠŃŽŠ®ŃŠŠŖŠ°ŠŠ±Š‘цŠ¦Š“Š”ŠµŠ•Ń„Š¤Š³Š“Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤Ń…Š„ŠøŠ˜ā•£ā•‘ā•—ā•Š¹Š™ā”ā””ā”“ā”¬ā”œā”€ā”¼ŠŗŠšā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Š»Š›Š¼ŠœŠ½ŠŠ¾ŠžŠæā”˜ā”Œā–ˆā–„ŠŸŃā–€ŠÆрŠ ŃŠ”тŠ¢ŃƒŠ£Š¶Š–Š²Š’ŃŒŠ¬ā„–Ā­Ń‹Š«Š·Š—ŃˆŠØэŠ­Ń‰Š©Ń‡Š§Ā§ā– Ā " }, - toggle9: { - interval: 100, - frames: [ - "ā—‰", - "ā—Ž" - ] + ibm855: "cp855", + csibm855: "cp855", + cp856: { + type: "_sbcs", + chars: "אבגדהוזחטיךכלםמןנהעףפׄצק×Øש×Ŗļæ½Ā£ļæ½Ć—ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ā®Ā¬Ā½Ā¼ļæ½Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ļæ½ļæ½ļæ½Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼ļæ½ļæ½ā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ā”˜ā”Œā–ˆā–„Ā¦ļæ½ā–€ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Āµļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ĀÆĀ“Ā­Ā±ā€—Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā " }, - toggle10: { - interval: 100, - frames: [ - "抂", - "技", - "抁" - ] + ibm856: "cp856", + csibm856: "cp856", + cp857: { + type: "_sbcs", + chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ä±Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹Ä°Ć–ĆœĆøĀ£Ć˜ÅžÅŸĆ”Ć­Ć³ĆŗĆ±Ć‘ÄžÄŸĀæĀ®Ā¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚Ć€Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼Ć£Ćƒā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤ĀŗĀŖƊƋƈļæ½ĆĆŽĆā”˜ā”Œā–ˆā–„Ā¦ĆŒā–€Ć“ĆŸĆ”Ć’ĆµĆ•Āµļæ½Ć—ƚƛƙƬĆæĀÆĀ“Ā­Ā±ļæ½Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā " }, - toggle11: { - interval: 50, - frames: [ - "ā§‡", - "ā§†" - ] + ibm857: "cp857", + csibm857: "cp857", + cp858: { + type: "_sbcs", + chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĆøĀ£Ć˜Ć—Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæĀ®Ā¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚Ć€Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼Ć£Ćƒā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Ć°ĆĆŠĆ‹Ćˆā‚¬ĆĆŽĆā”˜ā”Œā–ˆā–„Ā¦ĆŒā–€Ć“ĆŸĆ”Ć’ĆµĆ•ĀµĆ¾ĆžĆšĆ›Ć™Ć½ĆĀÆĀ“Ā­Ā±ā€—Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā " }, - toggle12: { - interval: 120, - frames: [ - "ā˜—", - "ā˜–" - ] + ibm858: "cp858", + csibm858: "cp858", + cp860: { + type: "_sbcs", + chars: "Ć‡Ć¼Ć©Ć¢Ć£Ć ĆĆ§ĆŖƊĆØĆĆ”Ć¬ĆƒĆ‚Ć‰Ć€ĆˆĆ“ĆµĆ²ĆšĆ¹ĆŒĆ•ĆœĀ¢Ā£Ć™ā‚§Ć“Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæƒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " }, - toggle13: { - interval: 80, - frames: [ - "=", - "*", - "-" - ] + ibm860: "cp860", + csibm860: "cp860", + cp861: { + type: "_sbcs", + chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆĆ°ĆžĆ„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć¾Ć»ĆĆ½Ć–ĆœĆøĀ£Ć˜ā‚§Ę’Ć”Ć­Ć³ĆŗƁƍƓƚĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " }, - arrow: { - interval: 100, - frames: [ - "ā†", - "ā†–", - "ā†‘", - "ā†—", - "ā†’", - "ā†˜", - "ā†“", - "ā†™" - ] + ibm861: "cp861", + csibm861: "cp861", + cp862: { + type: "_sbcs", + chars: "אבגדהוזחטיךכלםמןנהעףפׄצק×Øש×ŖĀ¢Ā£Ā„ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " }, - arrow2: { - interval: 80, - frames: [ - "ā¬†ļø ", - "ā†—ļø ", - "āž”ļø ", - "ā†˜ļø ", - "ā¬‡ļø ", - "ā†™ļø ", - "ā¬…ļø ", - "ā†–ļø " - ] + ibm862: "cp862", + csibm862: "cp862", + cp863: { + type: "_sbcs", + chars: "Ć‡Ć¼Ć©Ć¢Ć‚Ć Ā¶Ć§ĆŖĆ«ĆØĆÆĆ®ā€—Ć€Ā§Ć‰ĆˆĆŠĆ“Ć‹ĆĆ»Ć¹Ā¤Ć”ĆœĀ¢Ā£Ć™Ć›Ę’Ā¦Ā“Ć³ĆŗĀØĀøĀ³ĀÆƎāŒĀ¬Ā½Ā¼Ā¾Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " }, - arrow3: { - interval: 120, - frames: [ - "ā–¹ā–¹ā–¹ā–¹ā–¹", - "ā–øā–¹ā–¹ā–¹ā–¹", - "ā–¹ā–øā–¹ā–¹ā–¹", - "ā–¹ā–¹ā–øā–¹ā–¹", - "ā–¹ā–¹ā–¹ā–øā–¹", - "ā–¹ā–¹ā–¹ā–¹ā–ø" - ] + ibm863: "cp863", + csibm863: "cp863", + cp864: { + type: "_sbcs", + chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b +\v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#$ŁŖ&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~Ā°Ā·āˆ™āˆšā–’ā”€ā”‚ā”¼ā”¤ā”¬ā”œā”“ā”ā”Œā””ā”˜Ī²āˆžĻ†Ā±Ā½Ā¼ā‰ˆĀ«Ā»ļ»·ļ»øļæ½ļæ½ļ»»ļ»¼ļæ½Ā Ā­ļŗ‚Ā£Ā¤ļŗ„ļæ½ļæ½ļŗŽļŗļŗ•ļŗ™ŲŒļŗļŗ”ļŗ„Ł Ł”Ł¢Ł£Ł¤Ł„Ł¦Ł§ŁØŁ©ļ»‘Ų›ļŗ±ļŗµļŗ¹ŲŸĀ¢ļŗ€ļŗļŗƒļŗ…ļ»Šļŗ‹ļŗļŗ‘ļŗ“ļŗ—ļŗ›ļŗŸļŗ£ļŗ§ļŗ©ļŗ«ļŗ­ļŗÆļŗ³ļŗ·ļŗ»ļŗæļ»ļ»…ļ»‹ļ»Ā¦Ā¬Ć·Ć—ļ»‰Ł€ļ»“ļ»—ļ»›ļ»Ÿļ»£ļ»§ļ»«ļ»­ļ»Æļ»³ļŗ½ļ»Œļ»Žļ»ļ»”ļ¹½Ł‘ļ»„ļ»©ļ»¬ļ»°ļ»²ļ»ļ»•ļ»µļ»¶ļ»ļ»™ļ»±ā– ļæ½` }, - bouncingBar: { - interval: 80, - frames: [ - "[ ]", - "[= ]", - "[== ]", - "[=== ]", - "[====]", - "[ ===]", - "[ ==]", - "[ =]", - "[ ]", - "[ =]", - "[ ==]", - "[ ===]", - "[====]", - "[=== ]", - "[== ]", - "[= ]" - ] + ibm864: "cp864", + csibm864: "cp864", + cp865: { + type: "_sbcs", + chars: "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĆøĀ£Ć˜ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā¤ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā " }, - bouncingBall: { - interval: 80, - frames: [ - "( ā— )", - "( ā— )", - "( ā— )", - "( ā— )", - "( ā—)", - "( ā— )", - "( ā— )", - "( ā— )", - "( ā— )", - "(ā— )" - ] + ibm865: "cp865", + csibm865: "cp865", + cp866: { + type: "_sbcs", + chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ń€ŃŃ‚ŃƒŃ„Ń…Ń†Ń‡ŃˆŃ‰ŃŠŃ‹ŃŒŃŃŽŃŠŃ‘Š„Ń”Š‡Ń—ŠŽŃžĀ°āˆ™Ā·āˆšā„–Ā¤ā– Ā " }, - smiley: { - interval: 200, - frames: [ - "\uD83D\uDE04 ", - "\uD83D\uDE1D " - ] + ibm866: "cp866", + csibm866: "cp866", + cp869: { + type: "_sbcs", + chars: "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ī†ļæ½Ā·Ā¬Ā¦ā€˜ā€™Īˆā€•Ī‰ĪŠĪŖĪŒļæ½ļæ½ĪŽĪ«Ā©ĪĀ²Ā³Ī¬Ā£Ī­Ī®ĪÆĻŠĪĻŒĻĪ‘Ī’Ī“Ī”Ī•Ī–Ī—Ā½Ī˜Ī™Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĪšĪ›ĪœĪā•£ā•‘ā•—ā•ĪžĪŸā”ā””ā”“ā”¬ā”œā”€ā”¼Ī Ī”ā•šā•”ā•©ā•¦ā• ā•ā•¬Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©Ī±Ī²Ī³ā”˜ā”Œā–ˆā–„Ī“Īµā–€Ī¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻƒĻ‚Ļ„Ī„Ā­Ā±Ļ…Ļ†Ļ‡Ā§ĻˆĪ…Ā°ĀØĻ‰Ļ‹Ī°ĻŽā– Ā " }, - monkey: { - interval: 300, - frames: [ - "\uD83D\uDE48 ", - "\uD83D\uDE48 ", - "\uD83D\uDE49 ", - "\uD83D\uDE4A " - ] + ibm869: "cp869", + csibm869: "cp869", + cp922: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ā€¾Ā°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÅ Ć‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆÅ½ĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÅ”Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Å¾Ćæ" }, - hearts: { - interval: 100, - frames: [ - "\uD83D\uDC9B ", - "\uD83D\uDC99 ", - "\uD83D\uDC9C ", - "\uD83D\uDC9A ", - "ā¤ļø " - ] + ibm922: "cp922", + csibm922: "cp922", + cp1046: { + type: "_sbcs", + chars: "ļŗˆĆ—Ć·ļ£¶ļ£µļ£“ļ£·ļ¹±Āˆā– ā”‚ā”€ā”ā”Œā””ā”˜ļ¹¹ļ¹»ļ¹½ļ¹æļ¹·ļŗŠļ»°ļ»³ļ»²ļ»Žļ»ļ»ļ»¶ļ»øļ»ŗļ»¼Ā ļ£ŗļ£¹ļ£øĀ¤ļ£»ļŗ‹ļŗ‘ļŗ—ļŗ›ļŗŸļŗ£ŲŒĀ­ļŗ§ļŗ³Ł Ł”Ł¢Ł£Ł¤Ł„Ł¦Ł§ŁØŁ©ļŗ·Ų›ļŗ»ļŗæļ»ŠŲŸļ»‹Ų”Ų¢Ų£Ų¤Ų„Ų¦Ų§ŲØŲ©ŲŖŲ«Ų¬Ų­Ų®ŲÆŲ°Ų±Ų²Ų³Ų“ŲµŲ¶Ų·ļ»‡Ų¹Ųŗļ»Œļŗ‚ļŗ„ļŗŽļ»“Ł€ŁŁ‚ŁƒŁ„Ł…Ł†Ł‡ŁˆŁ‰ŁŠŁ‹ŁŒŁŁŽŁŁŁ‘Ł’ļ»—ļ»›ļ»Ÿļ£¼ļ»µļ»·ļ»¹ļ»»ļ»£ļ»§ļ»¬ļ»©ļæ½" }, - clock: { - interval: 100, - frames: [ - "\uD83D\uDD5B ", - "\uD83D\uDD50 ", - "\uD83D\uDD51 ", - "\uD83D\uDD52 ", - "\uD83D\uDD53 ", - "\uD83D\uDD54 ", - "\uD83D\uDD55 ", - "\uD83D\uDD56 ", - "\uD83D\uDD57 ", - "\uD83D\uDD58 ", - "\uD83D\uDD59 ", - "\uD83D\uDD5A " - ] + ibm1046: "cp1046", + csibm1046: "cp1046", + cp1124: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ŠŠ‚ŅŠ„Š…Š†Š‡ŠˆŠ‰ŠŠŠ‹ŠŒĀ­ŠŽŠŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюяā„–Ń‘Ń’Ņ‘Ń”Ń•Ń–Ń—Ń˜Ń™ŃšŃ›ŃœĀ§ŃžŃŸ" }, - earth: { - interval: 180, - frames: [ - "\uD83C\uDF0D ", - "\uD83C\uDF0E ", - "\uD83C\uDF0F " - ] + ibm1124: "cp1124", + csibm1124: "cp1124", + cp1125: { + type: "_sbcs", + chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ń€ŃŃ‚ŃƒŃ„Ń…Ń†Ń‡ŃˆŃ‰ŃŠŃ‹ŃŒŃŃŽŃŠŃ‘ŅŅ‘Š„Ń”Š†Ń–Š‡Ń—Ā·āˆšā„–Ā¤ā– Ā " }, - material: { - interval: 17, - frames: [ - "ā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–", - "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", - "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", - "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", - "ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–", - "ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", - "ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", - "ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–", - "ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–", - "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", - "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", - "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", - "ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆ", - "ā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", - "ā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", - "ā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", - "ā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆ", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–", - "ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–ā–", - "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", - "ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–ā–", - "ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–ā–", - "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", - "ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", - "ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–ā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆ", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–", - "ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–" - ] + ibm1125: "cp1125", + csibm1125: "cp1125", + cp1129: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§Å“Ā©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³ÅøĀµĀ¶Ā·Å’Ā¹ĀŗĀ»Ā¼Ā½Ā¾ĀæƀƁƂĂƄƅƆƇƈƉƊƋĢ€ĆĆŽĆÄĆ‘Ģ‰Ć“Ć”Ę Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĘÆĢƒĆŸĆ Ć”Ć¢ÄƒĆ¤Ć„Ć¦Ć§ĆØĆ©ĆŖĆ«ĢĆ­Ć®ĆÆđƱĢ£Ć³Ć“ʔƶƷĆøĆ¹ĆŗĆ»Ć¼Ę°ā‚«Ćæ" }, - moon: { - interval: 80, - frames: [ - "\uD83C\uDF11 ", - "\uD83C\uDF12 ", - "\uD83C\uDF13 ", - "\uD83C\uDF14 ", - "\uD83C\uDF15 ", - "\uD83C\uDF16 ", - "\uD83C\uDF17 ", - "\uD83C\uDF18 " - ] + ibm1129: "cp1129", + csibm1129: "cp1129", + cp1133: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŖąŗŠąŗąŗ”ąŗ•ąŗ–ąŗ—ąŗ™ąŗšąŗ›ąŗœąŗąŗžąŗŸąŗ”ąŗ¢ąŗ£ąŗ„ąŗ§ąŗ«ąŗ­ąŗ®ļæ½ļæ½ļæ½ąŗÆąŗ°ąŗ²ąŗ³ąŗ“ąŗµąŗ¶ąŗ·ąŗøąŗ¹ąŗ¼ąŗ±ąŗ»ąŗ½ļæ½ļæ½ļæ½ą»€ą»ą»‚ą»ƒą»„ą»ˆą»‰ą»Šą»‹ą»Œą»ą»†ļæ½ą»œą»ā‚­ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ą»ą»‘ą»’ą»“ą»”ą»•ą»–ą»—ą»˜ą»™ļæ½ļæ½Ā¢Ā¬Ā¦ļæ½" }, - runner: { - interval: 140, - frames: [ - "\uD83D\uDEB6 ", - "\uD83C\uDFC3 " - ] + ibm1133: "cp1133", + csibm1133: "cp1133", + cp1161: { + type: "_sbcs", + chars: "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ą¹ˆąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗą¹‰ą¹Šą¹‹ā‚¬ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›Ā¢Ā¬Ā¦Ā " }, - pong: { - interval: 80, - frames: [ - "ā–ā ‚ ā–Œ", - "ā–ā ˆ ā–Œ", - "ā– ā ‚ ā–Œ", - "ā– ā   ā–Œ", - "ā– ā”€ ā–Œ", - "ā– ā   ā–Œ", - "ā– ā ‚ ā–Œ", - "ā– ā ˆ ā–Œ", - "ā– ā ‚ ā–Œ", - "ā– ā   ā–Œ", - "ā– ā”€ ā–Œ", - "ā– ā   ā–Œ", - "ā– ā ‚ ā–Œ", - "ā– ā ˆ ā–Œ", - "ā– ā ‚ā–Œ", - "ā– ā  ā–Œ", - "ā– ā”€ā–Œ", - "ā– ā   ā–Œ", - "ā– ā ‚ ā–Œ", - "ā– ā ˆ ā–Œ", - "ā– ā ‚ ā–Œ", - "ā– ā   ā–Œ", - "ā– ā”€ ā–Œ", - "ā– ā   ā–Œ", - "ā– ā ‚ ā–Œ", - "ā– ā ˆ ā–Œ", - "ā– ā ‚ ā–Œ", - "ā– ā   ā–Œ", - "ā– ā”€ ā–Œ", - "ā–ā   ā–Œ" - ] + ibm1161: "cp1161", + csibm1161: "cp1161", + cp1162: { + type: "_sbcs", + chars: "ā‚¬ĀĀ‚ĀƒĀ„ā€¦Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀā€˜ā€™ā€œā€ā€¢ā€“ā€”Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½" + }, + ibm1162: "cp1162", + csibm1162: "cp1162", + cp1163: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£ā‚¬Ā„Ā¦Ā§Å“Ā©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³ÅøĀµĀ¶Ā·Å’Ā¹ĀŗĀ»Ā¼Ā½Ā¾ĀæƀƁƂĂƄƅƆƇƈƉƊƋĢ€ĆĆŽĆÄĆ‘Ģ‰Ć“Ć”Ę Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĘÆĢƒĆŸĆ Ć”Ć¢ÄƒĆ¤Ć„Ć¦Ć§ĆØĆ©ĆŖĆ«ĢĆ­Ć®ĆÆđƱĢ£Ć³Ć“ʔƶƷĆøĆ¹ĆŗĆ»Ć¼Ę°ā‚«Ćæ" + }, + ibm1163: "cp1163", + csibm1163: "cp1163", + maccroatian: { + type: "_sbcs", + chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Å ā„¢Ā“ĀØā‰ Å½Ć˜āˆžĀ±ā‰¤ā‰„āˆ†Āµāˆ‚āˆ‘āˆÅ”āˆ«ĀŖĀŗā„¦Å¾ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆÄ†Ā«ÄŒā€¦Ā Ć€ĆƒĆ•Å’œĐā€”ā€œā€ā€˜ā€™Ć·ā—Šļæ½Ā©ā„Ā¤ā€¹ā€ŗƆĀ»ā€“Ā·ā€šā€žā€°Ć‚Ä‡ĆÄĆˆĆĆŽĆĆŒĆ“Ć”Ä‘Ć’ĆšĆ›Ć™Ä±Ė†ĖœĀÆĻ€Ć‹ĖšĀøƊƦĖ‡" }, - shark: { - interval: 120, - frames: [ - "ā–|\\____________ā–Œ", - "ā–_|\\___________ā–Œ", - "ā–__|\\__________ā–Œ", - "ā–___|\\_________ā–Œ", - "ā–____|\\________ā–Œ", - "ā–_____|\\_______ā–Œ", - "ā–______|\\______ā–Œ", - "ā–_______|\\_____ā–Œ", - "ā–________|\\____ā–Œ", - "ā–_________|\\___ā–Œ", - "ā–__________|\\__ā–Œ", - "ā–___________|\\_ā–Œ", - "ā–____________|\\ā–Œ", - "ā–____________/|ā–Œ", - "ā–___________/|_ā–Œ", - "ā–__________/|__ā–Œ", - "ā–_________/|___ā–Œ", - "ā–________/|____ā–Œ", - "ā–_______/|_____ā–Œ", - "ā–______/|______ā–Œ", - "ā–_____/|_______ā–Œ", - "ā–____/|________ā–Œ", - "ā–___/|_________ā–Œ", - "ā–__/|__________ā–Œ", - "ā–_/|___________ā–Œ", - "ā–/|____________ā–Œ" - ] + maccyrillic: { + type: "_sbcs", + chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶Š†Ā®Ā©ā„¢Š‚Ń’ā‰ ŠƒŃ“āˆžĀ±ā‰¤ā‰„іĀµāˆ‚ŠˆŠ„Ń”Š‡Ń—Š‰Ń™ŠŠŃšŃ˜Š…Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Š‹Ń›ŠŒŃœŃ•ā€“ā€”ā€œā€ā€˜ā€™Ć·ā€žŠŽŃžŠŃŸā„–ŠŃ‘яŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæрстуфхцчшщъыьэюĀ¤" }, - dqpb: { - interval: 100, - frames: [ - "d", - "q", - "p", - "b" - ] + macgreek: { + type: "_sbcs", + chars: "ƄĀ¹Ā²Ć‰Ā³Ć–ĆœĪ…Ć Ć¢Ć¤Ī„ĀØƧƩĆØĆŖĆ«Ā£ā„¢Ć®ĆÆā€¢Ā½ā€°Ć“ƶĀ¦Ā­Ć¹Ć»Ć¼ā€ Ī“Ī”Ī˜Ī›ĪžĪ ĆŸĀ®Ā©Ī£ĪŖĀ§ā‰ Ā°Ī‡Ī‘Ā±ā‰¤ā‰„Ā„Ī’Ī•Ī–Ī—Ī™ĪšĪœĪ¦Ī«ĪØĪ©Ī¬ĪĀ¬ĪŸĪ”ā‰ˆĪ¤Ā«Ā»ā€¦Ā Ī„Ī§Ī†ĪˆÅ“ā€“ā€•ā€œā€ā€˜ā€™Ć·Ī‰ĪŠĪŒĪŽĪ­Ī®ĪÆĻŒĪĻĪ±Ī²ĻˆĪ“ĪµĻ†Ī³Ī·Ī¹Ī¾ĪŗĪ»Ī¼Ī½ĪæĻ€ĻŽĻĻƒĻ„ĪøĻ‰Ļ‚Ļ‡Ļ…Ī¶ĻŠĻ‹ĪĪ°ļæ½" }, - weather: { - interval: 100, - frames: [ - "ā˜€ļø ", - "ā˜€ļø ", - "ā˜€ļø ", - "\uD83C\uDF24 ", - "ā›…ļø ", - "\uD83C\uDF25 ", - "ā˜ļø ", - "\uD83C\uDF27 ", - "\uD83C\uDF28 ", - "\uD83C\uDF27 ", - "\uD83C\uDF28 ", - "\uD83C\uDF27 ", - "\uD83C\uDF28 ", - "ā›ˆ ", - "\uD83C\uDF28 ", - "\uD83C\uDF27 ", - "\uD83C\uDF28 ", - "ā˜ļø ", - "\uD83C\uDF25 ", - "ā›…ļø ", - "\uD83C\uDF24 ", - "ā˜€ļø ", - "ā˜€ļø " - ] + maciceland: { + type: "_sbcs", + chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ĆĀ°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ĆĆ°ĆžĆ¾Ć½Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" }, - christmas: { - interval: 400, - frames: [ - "\uD83C\uDF32", - "\uD83C\uDF84" - ] + macroman: { + type: "_sbcs", + chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ā€¹ā€ŗļ¬ļ¬‚ā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" }, - grenade: { - interval: 80, - frames: [ - "ŲŒ ", - "ā€² ", - " Ā“ ", - " ā€¾ ", - " āøŒ", - " āøŠ", - " |", - " āŽ", - " ā•", - " ą·“ ", - " ā“", - " ", - " ", - " " - ] + macromania: { + type: "_sbcs", + chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ä‚ÅžāˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦ÄƒÅŸĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ā€¹ā€ŗŢţā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" }, - point: { - interval: 125, - frames: [ - "āˆ™āˆ™āˆ™", - "ā—āˆ™āˆ™", - "āˆ™ā—āˆ™", - "āˆ™āˆ™ā—", - "āˆ™āˆ™āˆ™" - ] + macthai: { + type: "_sbcs", + chars: "Ā«Ā»ā€¦ļ¢Œļ¢ļ¢’ļ¢•ļ¢˜ļ¢‹ļ¢Žļ¢‘ļ¢”ļ¢—ā€œā€ļ¢™ļæ½ā€¢ļ¢„ļ¢‰ļ¢…ļ¢†ļ¢‡ļ¢ˆļ¢Šļ¢ļ¢ļ¢“ļ¢–ā€˜ā€™ļæ½Ā ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗ\uFEFFā€‹ā€“ā€”ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ā„¢ą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™Ā®Ā©ļæ½ļæ½ļæ½ļæ½" }, - layer: { - interval: 150, - frames: [ - "-", - "=", - "ā‰”" - ] + macturkish: { + type: "_sbcs", + chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøĞğİıŞşā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙļæ½Ė†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" }, - betaWave: { - interval: 80, - frames: [ - "ĻĪ²Ī²Ī²Ī²Ī²Ī²", - "Ī²ĻĪ²Ī²Ī²Ī²Ī²", - "Ī²Ī²ĻĪ²Ī²Ī²Ī²", - "Ī²Ī²Ī²ĻĪ²Ī²Ī²", - "Ī²Ī²Ī²Ī²ĻĪ²Ī²", - "Ī²Ī²Ī²Ī²Ī²ĻĪ²", - "Ī²Ī²Ī²Ī²Ī²Ī²Ļ" - ] + macukraine: { + type: "_sbcs", + chars: "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆā€ Ā°ŅĀ£Ā§ā€¢Ā¶Š†Ā®Ā©ā„¢Š‚Ń’ā‰ ŠƒŃ“āˆžĀ±ā‰¤ā‰„іĀµŅ‘ŠˆŠ„Ń”Š‡Ń—Š‰Ń™ŠŠŃšŃ˜Š…Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Š‹Ń›ŠŒŃœŃ•ā€“ā€”ā€œā€ā€˜ā€™Ć·ā€žŠŽŃžŠŃŸā„–ŠŃ‘яŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæрстуфхцчшщъыьэюĀ¤" }, - fingerDance: { - interval: 160, - frames: [ - "\uD83E\uDD18 ", - "\uD83E\uDD1F ", - "\uD83D\uDD96 ", - "āœ‹ ", - "\uD83E\uDD1A ", - "\uD83D\uDC46 " - ] + koi8r: { + type: "_sbcs", + chars: "ā”€ā”‚ā”Œā”ā””ā”˜ā”œā”¤ā”¬ā”“ā”¼ā–€ā–„ā–ˆā–Œā–ā–‘ā–’ā–“āŒ ā– āˆ™āˆšā‰ˆā‰¤ā‰„Ā āŒ”Ā°Ā²Ā·Ć·ā•ā•‘ā•’Ń‘ā•“ā•”ā••ā•–ā•—ā•˜ā•™ā•šā•›ā•œā•ā•žā•Ÿā• ā•”Šā•¢ā•£ā•¤ā•„ā•¦ā•§ā•Øā•©ā•Ŗā•«ā•¬Ā©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ" }, - fistBump: { - interval: 80, - frames: [ - "\uD83E\uDD1C怀怀怀怀\uD83E\uDD1B ", - "\uD83E\uDD1C怀怀怀怀\uD83E\uDD1B ", - "\uD83E\uDD1C怀怀怀怀\uD83E\uDD1B ", - "怀\uD83E\uDD1C怀怀\uD83E\uDD1B怀 ", - "怀怀\uD83E\uDD1C\uD83E\uDD1B怀怀 ", - "怀\uD83E\uDD1CāœØ\uD83E\uDD1B怀怀 ", - "\uD83E\uDD1C怀āœØ怀\uD83E\uDD1B怀 " - ] + koi8u: { + type: "_sbcs", + chars: "ā”€ā”‚ā”Œā”ā””ā”˜ā”œā”¤ā”¬ā”“ā”¼ā–€ā–„ā–ˆā–Œā–ā–‘ā–’ā–“āŒ ā– āˆ™āˆšā‰ˆā‰¤ā‰„Ā āŒ”Ā°Ā²Ā·Ć·ā•ā•‘ā•’Ń‘Ń”ā•”Ń–Ń—ā•—ā•˜ā•™ā•šā•›Ņ‘ā•ā•žā•Ÿā• ā•”ŠŠ„ā•£Š†Š‡ā•¦ā•§ā•Øā•©ā•ŖŅā•¬Ā©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ" }, - soccerHeader: { - interval: 80, - frames: [ - " \uD83E\uDDD1āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø\uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 ", - "\uD83E\uDDD1 āš½ļø \uD83E\uDDD1 " - ] + koi8ru: { + type: "_sbcs", + chars: "ā”€ā”‚ā”Œā”ā””ā”˜ā”œā”¤ā”¬ā”“ā”¼ā–€ā–„ā–ˆā–Œā–ā–‘ā–’ā–“āŒ ā– āˆ™āˆšā‰ˆā‰¤ā‰„Ā āŒ”Ā°Ā²Ā·Ć·ā•ā•‘ā•’Ń‘Ń”ā•”Ń–Ń—ā•—ā•˜ā•™ā•šā•›Ņ‘Ńžā•žā•Ÿā• ā•”ŠŠ„ā•£Š†Š‡ā•¦ā•§ā•Øā•©ā•ŖŅŠŽĀ©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ" }, - mindblown: { - interval: 160, - frames: [ - "\uD83D\uDE10 ", - "\uD83D\uDE10 ", - "\uD83D\uDE2E ", - "\uD83D\uDE2E ", - "\uD83D\uDE26 ", - "\uD83D\uDE26 ", - "\uD83D\uDE27 ", - "\uD83D\uDE27 ", - "\uD83E\uDD2F ", - "\uD83D\uDCA5 ", - "āœØ ", - "怀 ", - "怀 ", - "怀 " - ] + koi8t: { + type: "_sbcs", + chars: "Ņ›Ņ“ā€šŅ’ā€žā€¦ā€ ā€”ļæ½ā€°Ņ³ā€¹Ņ²Ņ·Ņ¶ļæ½Ņšā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢ļæ½ā€ŗļæ½ļæ½ļæ½ļæ½ļæ½ÓÆӮёĀ¤Ó£Ā¦Ā§ļæ½ļæ½ļæ½Ā«Ā¬Ā­Ā®ļæ½Ā°Ā±Ā²Šļæ½Ó¢Ā¶Ā·ļæ½ā„–ļæ½Ā»ļæ½ļæ½ļæ½Ā©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ" }, - speaker: { - interval: 160, - frames: [ - "\uD83D\uDD08 ", - "\uD83D\uDD09 ", - "\uD83D\uDD0A ", - "\uD83D\uDD09 " - ] + armscii8: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ļæ½Ö‡Ö‰)(Ā»Ā«ā€”.՝,-֊ā€¦ÕœÕ›ÕžŌ±Õ”Ō²Õ¢Ō³Õ£Ō“Õ¤ŌµÕ„Ō¶Õ¦Ō·Õ§ŌøÕØŌ¹Õ©ŌŗÕŖŌ»Õ«Ō¼Õ¬Ō½Õ­Ō¾Õ®ŌæÕÆՀհՁձՂղՃճՄՓՅյՆնՇշՈÕøՉչՊÕŗՋջՌռՍսՎվՏÕæՐրՑցՒւՓփՔքՕօՖֆ՚ļæ½" }, - orangePulse: { - interval: 100, - frames: [ - "\uD83D\uDD38 ", - "\uD83D\uDD36 ", - "\uD83D\uDFE0 ", - "\uD83D\uDFE0 ", - "\uD83D\uDD36 " - ] + rk1048: { + type: "_sbcs", + chars: "Š‚Šƒā€šŃ“ā€žā€¦ā€ ā€”ā‚¬ā€°Š‰ā€¹ŠŠŅšŅŗŠŃ’ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢Ń™ā€ŗњŅ›Ņ»ŃŸĀ Ņ°Ņ±Ó˜Ā¤ÓØĀ¦Ā§ŠĀ©Ņ’Ā«Ā¬Ā­Ā®Ņ®Ā°Ā±Š†Ń–Ó©ĀµĀ¶Ā·Ń‘ā„–Ņ“Ā»Ó™Ņ¢Ņ£ŅÆŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюя" }, - bluePulse: { - interval: 100, - frames: [ - "\uD83D\uDD39 ", - "\uD83D\uDD37 ", - "\uD83D\uDD35 ", - "\uD83D\uDD35 ", - "\uD83D\uDD37 " - ] + tcvn: { + type: "_sbcs", + chars: `\x00ƚį»¤\x03į»Ŗį»¬į»®\x07\b +\v\f\r\x0E\x0F\x10į»Øį»°į»²į»¶į»øƝį»“\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~ƀįŗ¢ĆƒĆįŗ įŗ¶įŗ¬Ćˆįŗŗįŗ¼Ć‰įŗøį»†ĆŒį»ˆÄØƍį»ŠĆ’į»ŽĆ•Ć“į»Œį»˜į»œį»žį» į»šį»¢Ć™į»¦ÅØĀ Ä‚ƂƊƔʠĘÆÄÄƒĆ¢ĆŖƓʔʰđįŗ°Ģ€Ģ‰ĢƒĢĢ£Ć įŗ£Ć£Ć”įŗ”įŗ²įŗ±įŗ³įŗµįŗÆįŗ“įŗ®įŗ¦įŗØįŗŖįŗ¤į»€įŗ·įŗ§įŗ©įŗ«įŗ„įŗ­ĆØį»‚įŗ»įŗ½Ć©įŗ¹į»į»ƒį»…įŗæį»‡Ć¬į»‰į»„įŗ¾į»’Ä©Ć­į»‹Ć²į»”į»ĆµĆ³į»į»“į»•į»—į»‘į»™į»į»Ÿį»”į»›į»£Ć¹į»–į»§Å©Ćŗį»„į»«į»­į»Æį»©į»±į»³į»·į»¹Ć½į»µį»` }, - orangeBluePulse: { - interval: 100, - frames: [ - "\uD83D\uDD38 ", - "\uD83D\uDD36 ", - "\uD83D\uDFE0 ", - "\uD83D\uDFE0 ", - "\uD83D\uDD36 ", - "\uD83D\uDD39 ", - "\uD83D\uDD37 ", - "\uD83D\uDD35 ", - "\uD83D\uDD35 ", - "\uD83D\uDD37 " - ] + georgianacademy: { + type: "_sbcs", + chars: "Ā€Āā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ĀĀŽĀĀā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœĀĀžÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾Āæįƒįƒ‘įƒ’įƒ“įƒ”įƒ•įƒ–įƒ—įƒ˜įƒ™įƒšįƒ›įƒœįƒįƒžįƒŸįƒ įƒ”įƒ¢įƒ£įƒ¤įƒ„įƒ¦įƒ§įƒØįƒ©įƒŖįƒ«įƒ¬įƒ­įƒ®įƒÆįƒ°įƒ±įƒ²įƒ³įƒ“įƒµįƒ¶Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" }, - timeTravel: { - interval: 100, - frames: [ - "\uD83D\uDD5B ", - "\uD83D\uDD5A ", - "\uD83D\uDD59 ", - "\uD83D\uDD58 ", - "\uD83D\uDD57 ", - "\uD83D\uDD56 ", - "\uD83D\uDD55 ", - "\uD83D\uDD54 ", - "\uD83D\uDD53 ", - "\uD83D\uDD52 ", - "\uD83D\uDD51 ", - "\uD83D\uDD50 " - ] + georgianps: { + type: "_sbcs", + chars: "Ā€Āā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ĀĀŽĀĀā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœĀĀžÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾Āæįƒįƒ‘įƒ’įƒ“įƒ”įƒ•įƒ–įƒ±įƒ—įƒ˜įƒ™įƒšįƒ›įƒœįƒ²įƒįƒžįƒŸįƒ įƒ”įƒ¢įƒ³įƒ£įƒ¤įƒ„įƒ¦įƒ§įƒØįƒ©įƒŖįƒ«įƒ¬įƒ­įƒ®įƒ“įƒÆįƒ°įƒµĆ¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ" }, - aesthetic: { - interval: 80, - frames: [ - "ā–°ā–±ā–±ā–±ā–±ā–±ā–±", - "ā–°ā–°ā–±ā–±ā–±ā–±ā–±", - "ā–°ā–°ā–°ā–±ā–±ā–±ā–±", - "ā–°ā–°ā–°ā–°ā–±ā–±ā–±", - "ā–°ā–°ā–°ā–°ā–°ā–±ā–±", - "ā–°ā–°ā–°ā–°ā–°ā–°ā–±", - "ā–°ā–°ā–°ā–°ā–°ā–°ā–°", - "ā–°ā–±ā–±ā–±ā–±ā–±ā–±" - ] + pt154: { + type: "_sbcs", + chars: "Ņ–Ņ’Ó®Ņ“ā€žā€¦Ņ¶Ņ®Ņ²ŅÆŅ Ó¢Ņ¢ŅšŅŗŅøŅ—ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ņ³Ņ·Ņ”Ó£Ņ£Ņ›Ņ»Ņ¹Ā ŠŽŃžŠˆÓØŅ˜Ņ°Ā§ŠĀ©Ó˜Ā«Ā¬ÓÆĀ®ŅœĀ°Ņ±Š†Ń–Ņ™Ó©Ā¶Ā·Ń‘ā„–Ó™Ā»Ń˜ŅŖŅ«ŅŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюя" }, - dwarfFortress: { - interval: 80, - frames: [ - " ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - "ā˜ŗā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - "ā˜ŗā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - "ā˜ŗā–“ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - "ā˜ŗā–“ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - "ā˜ŗā–’ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - "ā˜ŗā–’ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - "ā˜ŗā–‘ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - "ā˜ŗā–‘ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - "ā˜ŗ ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–“ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–“ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–’ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–’ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–‘ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–‘ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗ ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–“ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–“ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–’ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–’ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–‘ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–‘ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗ ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–“ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–“ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–’ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–’ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–‘ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–‘ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗ ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–“ā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–“ā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–’ā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–’ā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–‘ā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–‘ā–ˆĀ£Ā£Ā£ ", - " ā˜ŗ ā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–ˆĀ£Ā£Ā£ ", - " ā˜ŗā–“Ā£Ā£Ā£ ", - " ā˜ŗā–“Ā£Ā£Ā£ ", - " ā˜ŗā–’Ā£Ā£Ā£ ", - " ā˜ŗā–’Ā£Ā£Ā£ ", - " ā˜ŗā–‘Ā£Ā£Ā£ ", - " ā˜ŗā–‘Ā£Ā£Ā£ ", - " ā˜ŗ Ā£Ā£Ā£ ", - " ā˜ŗĀ£Ā£Ā£ ", - " ā˜ŗĀ£Ā£Ā£ ", - " ā˜ŗā–“Ā£Ā£ ", - " ā˜ŗā–“Ā£Ā£ ", - " ā˜ŗā–’Ā£Ā£ ", - " ā˜ŗā–’Ā£Ā£ ", - " ā˜ŗā–‘Ā£Ā£ ", - " ā˜ŗā–‘Ā£Ā£ ", - " ā˜ŗ Ā£Ā£ ", - " ā˜ŗĀ£Ā£ ", - " ā˜ŗĀ£Ā£ ", - " ā˜ŗā–“Ā£ ", - " ā˜ŗā–“Ā£ ", - " ā˜ŗā–’Ā£ ", - " ā˜ŗā–’Ā£ ", - " ā˜ŗā–‘Ā£ ", - " ā˜ŗā–‘Ā£ ", - " ā˜ŗ Ā£ ", - " ā˜ŗĀ£ ", - " ā˜ŗĀ£ ", - " ā˜ŗā–“ ", - " ā˜ŗā–“ ", - " ā˜ŗā–’ ", - " ā˜ŗā–’ ", - " ā˜ŗā–‘ ", - " ā˜ŗā–‘ ", - " ā˜ŗ ", - " ā˜ŗ &", - " ā˜ŗ ā˜¼&", - " ā˜ŗ ā˜¼ &", - " ā˜ŗā˜¼ &", - " ā˜ŗā˜¼ & ", - " ā€¼ & ", - " ā˜ŗ & ", - " ā€¼ & ", - " ā˜ŗ & ", - " ā€¼ & ", - " ā˜ŗ & ", - "ā€¼ & ", - " & ", - " & ", - " & ā–‘ ", - " & ā–’ ", - " & ā–“ ", - " & Ā£ ", - " & ā–‘Ā£ ", - " & ā–’Ā£ ", - " & ā–“Ā£ ", - " & Ā£Ā£ ", - " & ā–‘Ā£Ā£ ", - " & ā–’Ā£Ā£ ", - "& ā–“Ā£Ā£ ", - "& Ā£Ā£Ā£ ", - " ā–‘Ā£Ā£Ā£ ", - " ā–’Ā£Ā£Ā£ ", - " ā–“Ā£Ā£Ā£ ", - " ā–ˆĀ£Ā£Ā£ ", - " ā–‘ā–ˆĀ£Ā£Ā£ ", - " ā–’ā–ˆĀ£Ā£Ā£ ", - " ā–“ā–ˆĀ£Ā£Ā£ ", - " ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–‘ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–’ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–“ā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–‘ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–’ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–“ā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–‘ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–’ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–“ā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–‘ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–’ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–“ā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ ", - " ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆĀ£Ā£Ā£ " - ] + viscii: { + type: "_sbcs", + chars: `\x00\x01įŗ²\x03\x04įŗ“įŗŖ\x07\b +\v\f\r\x0E\x0F\x10\x11\x12\x13į»¶\x15\x16\x17\x18į»ø\x1A\x1B\x1C\x1Dį»“\x1F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~įŗ įŗ®įŗ°įŗ¶įŗ¤įŗ¦įŗØįŗ¬įŗ¼įŗøįŗ¾į»€į»‚į»„į»†į»į»’į»”į»–į»˜į»¢į»šį»œį»žį»Šį»Žį»Œį»ˆį»¦ÅØį»¤į»²Ć•įŗÆįŗ±įŗ·įŗ„įŗ§įŗ©įŗ­įŗ½įŗ¹įŗæį»į»ƒį»…į»‡į»‘į»“į»•į»—į» Ę į»™į»į»Ÿį»‹į»°į»Øį»Ŗį»¬Ę”į»›ĘÆƀƁƂƃįŗ¢Ä‚įŗ³įŗµĆˆĆ‰ĆŠįŗŗƌƍÄØį»³Äį»©Ć’Ć“Ć”įŗ”į»·į»«į»­Ć™Ćšį»¹į»µĆį»”Ę°Ć Ć”Ć¢Ć£įŗ£Äƒį»Æįŗ«ĆØĆ©ĆŖįŗ»Ć¬Ć­Ä©į»‰Ä‘į»±Ć²Ć³Ć“Ƶį»į»į»„Ć¹ĆŗÅ©į»§Ć½į»£į»®` + }, + iso646cn: { + type: "_sbcs", + chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b +\v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#Ā„%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}ā€¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½` + }, + iso646jp: { + type: "_sbcs", + chars: `\x00\x01\x02\x03\x04\x05\x06\x07\b +\v\f\r\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Ā„]^_\`abcdefghijklmnopqrstuvwxyz{|}ā€¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½` + }, + hproman8: { + type: "_sbcs", + chars: "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ć€Ć‚ĆˆĆŠĆ‹ĆŽĆĀ“Ė‹Ė†ĀØĖœĆ™Ć›ā‚¤ĀÆĆĆ½Ā°Ć‡Ć§Ć‘ƱĀ”ĀæĀ¤Ā£Ā„Ā§Ę’Ā¢Ć¢ĆŖĆ“Ć»Ć”Ć©Ć³ĆŗĆ ĆØĆ²Ć¹Ć¤Ć«Ć¶Ć¼Ć…Ć®Ć˜Ć†Ć„Ć­ĆøĆ¦Ć„Ć¬Ć–ĆœĆ‰ĆÆĆŸĆ”ĆĆƒĆ£ĆĆ°ĆĆŒĆ“Ć’Ć•ĆµÅ Å”ĆšÅøĆæĆžĆ¾Ā·ĀµĀ¶Ā¾ā€”Ā¼Ā½ĀŖĀŗĀ«ā– Ā»Ā±ļæ½" + }, + macintosh: { + type: "_sbcs", + chars: "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ā€¹ā€ŗļ¬ļ¬‚ā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡" + }, + ascii: { + type: "_sbcs", + chars: "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½" + }, + tis620: { + type: "_sbcs", + chars: "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½" + } + }; +}); + +// node_modules/iconv-lite/encodings/dbcs-codec.js +var require_dbcs_codec = __commonJS((exports) => { + var Buffer2 = require_safer().Buffer; + exports._dbcs = DBCSCodec; + var UNASSIGNED = -1; + var GB18030_CODE = -2; + var SEQ_START = -10; + var NODE_START = -1000; + var UNASSIGNED_NODE = new Array(256); + var DEF_CHAR = -1; + for (i = 0;i < 256; i++) + UNASSIGNED_NODE[i] = UNASSIGNED; + var i; + function DBCSCodec(codecOptions, iconv) { + this.encodingName = codecOptions.encodingName; + if (!codecOptions) + throw new Error("DBCS codec is called without the data."); + if (!codecOptions.table) + throw new Error("Encoding '" + this.encodingName + "' has no data."); + var mappingTable = codecOptions.table(); + this.decodeTables = []; + this.decodeTables[0] = UNASSIGNED_NODE.slice(0); + this.decodeTableSeq = []; + for (var i2 = 0;i2 < mappingTable.length; i2++) + this._addDecodeChunk(mappingTable[i2]); + this.defaultCharUnicode = iconv.defaultCharUnicode; + this.encodeTable = []; + this.encodeTableSeq = []; + var skipEncodeChars = {}; + if (codecOptions.encodeSkipVals) + for (var i2 = 0;i2 < codecOptions.encodeSkipVals.length; i2++) { + var val = codecOptions.encodeSkipVals[i2]; + if (typeof val === "number") + skipEncodeChars[val] = true; + else + for (var j = val.from;j <= val.to; j++) + skipEncodeChars[j] = true; + } + this._fillEncodeTable(0, 0, skipEncodeChars); + if (codecOptions.encodeAdd) { + for (var uChar in codecOptions.encodeAdd) + if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) + this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]); + } + this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]; + if (this.defCharSB === UNASSIGNED) + this.defCharSB = this.encodeTable[0]["?"]; + if (this.defCharSB === UNASSIGNED) + this.defCharSB = 63; + if (typeof codecOptions.gb18030 === "function") { + this.gb18030 = codecOptions.gb18030(); + var thirdByteNodeIdx = this.decodeTables.length; + var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0); + var fourthByteNodeIdx = this.decodeTables.length; + var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0); + for (var i2 = 129;i2 <= 254; i2++) { + var secondByteNodeIdx = NODE_START - this.decodeTables[0][i2]; + var secondByteNode = this.decodeTables[secondByteNodeIdx]; + for (var j = 48;j <= 57; j++) + secondByteNode[j] = NODE_START - thirdByteNodeIdx; + } + for (var i2 = 129;i2 <= 254; i2++) + thirdByteNode[i2] = NODE_START - fourthByteNodeIdx; + for (var i2 = 48;i2 <= 57; i2++) + fourthByteNode[i2] = GB18030_CODE; + } + } + DBCSCodec.prototype.encoder = DBCSEncoder; + DBCSCodec.prototype.decoder = DBCSDecoder; + DBCSCodec.prototype._getDecodeTrieNode = function(addr) { + var bytes = []; + for (;addr > 0; addr >>= 8) + bytes.push(addr & 255); + if (bytes.length == 0) + bytes.push(0); + var node = this.decodeTables[0]; + for (var i2 = bytes.length - 1;i2 > 0; i2--) { + var val = node[bytes[i2]]; + if (val == UNASSIGNED) { + node[bytes[i2]] = NODE_START - this.decodeTables.length; + this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); + } else if (val <= NODE_START) { + node = this.decodeTables[NODE_START - val]; + } else + throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16)); + } + return node; + }; + DBCSCodec.prototype._addDecodeChunk = function(chunk) { + var curAddr = parseInt(chunk[0], 16); + var writeTable = this._getDecodeTrieNode(curAddr); + curAddr = curAddr & 255; + for (var k = 1;k < chunk.length; k++) { + var part = chunk[k]; + if (typeof part === "string") { + for (var l = 0;l < part.length; ) { + var code = part.charCodeAt(l++); + if (55296 <= code && code < 56320) { + var codeTrail = part.charCodeAt(l++); + if (56320 <= codeTrail && codeTrail < 57344) + writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320); + else + throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]); + } else if (4080 < code && code <= 4095) { + var len = 4095 - code + 2; + var seq = []; + for (var m = 0;m < len; m++) + seq.push(part.charCodeAt(l++)); + writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length; + this.decodeTableSeq.push(seq); + } else + writeTable[curAddr++] = code; + } + } else if (typeof part === "number") { + var charCode = writeTable[curAddr - 1] + 1; + for (var l = 0;l < part; l++) + writeTable[curAddr++] = charCode++; + } else + throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]); + } + if (curAddr > 255) + throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr); + }; + DBCSCodec.prototype._getEncodeBucket = function(uCode) { + var high = uCode >> 8; + if (this.encodeTable[high] === undefined) + this.encodeTable[high] = UNASSIGNED_NODE.slice(0); + return this.encodeTable[high]; + }; + DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) { + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 255; + if (bucket[low] <= SEQ_START) + this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode; + else if (bucket[low] == UNASSIGNED) + bucket[low] = dbcsCode; + }; + DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) { + var uCode = seq[0]; + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 255; + var node; + if (bucket[low] <= SEQ_START) { + node = this.encodeTableSeq[SEQ_START - bucket[low]]; + } else { + node = {}; + if (bucket[low] !== UNASSIGNED) + node[DEF_CHAR] = bucket[low]; + bucket[low] = SEQ_START - this.encodeTableSeq.length; + this.encodeTableSeq.push(node); + } + for (var j = 1;j < seq.length - 1; j++) { + var oldVal = node[uCode]; + if (typeof oldVal === "object") + node = oldVal; + else { + node = node[uCode] = {}; + if (oldVal !== undefined) + node[DEF_CHAR] = oldVal; + } + } + uCode = seq[seq.length - 1]; + node[uCode] = dbcsCode; + }; + DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) { + var node = this.decodeTables[nodeIdx]; + for (var i2 = 0;i2 < 256; i2++) { + var uCode = node[i2]; + var mbCode = prefix + i2; + if (skipEncodeChars[mbCode]) + continue; + if (uCode >= 0) + this._setEncodeChar(uCode, mbCode); + else if (uCode <= NODE_START) + this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars); + else if (uCode <= SEQ_START) + this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode); + } + }; + function DBCSEncoder(options, codec) { + this.leadSurrogate = -1; + this.seqObj = undefined; + this.encodeTable = codec.encodeTable; + this.encodeTableSeq = codec.encodeTableSeq; + this.defaultCharSingleByte = codec.defCharSB; + this.gb18030 = codec.gb18030; + } + DBCSEncoder.prototype.write = function(str) { + var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3)), leadSurrogate = this.leadSurrogate, seqObj = this.seqObj, nextChar = -1, i2 = 0, j = 0; + while (true) { + if (nextChar === -1) { + if (i2 == str.length) + break; + var uCode = str.charCodeAt(i2++); + } else { + var uCode = nextChar; + nextChar = -1; + } + if (55296 <= uCode && uCode < 57344) { + if (uCode < 56320) { + if (leadSurrogate === -1) { + leadSurrogate = uCode; + continue; + } else { + leadSurrogate = uCode; + uCode = UNASSIGNED; + } + } else { + if (leadSurrogate !== -1) { + uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320); + leadSurrogate = -1; + } else { + uCode = UNASSIGNED; + } + } + } else if (leadSurrogate !== -1) { + nextChar = uCode; + uCode = UNASSIGNED; + leadSurrogate = -1; + } + var dbcsCode = UNASSIGNED; + if (seqObj !== undefined && uCode != UNASSIGNED) { + var resCode = seqObj[uCode]; + if (typeof resCode === "object") { + seqObj = resCode; + continue; + } else if (typeof resCode == "number") { + dbcsCode = resCode; + } else if (resCode == undefined) { + resCode = seqObj[DEF_CHAR]; + if (resCode !== undefined) { + dbcsCode = resCode; + nextChar = uCode; + } else { + } + } + seqObj = undefined; + } else if (uCode >= 0) { + var subtable = this.encodeTable[uCode >> 8]; + if (subtable !== undefined) + dbcsCode = subtable[uCode & 255]; + if (dbcsCode <= SEQ_START) { + seqObj = this.encodeTableSeq[SEQ_START - dbcsCode]; + continue; + } + if (dbcsCode == UNASSIGNED && this.gb18030) { + var idx = findIdx(this.gb18030.uChars, uCode); + if (idx != -1) { + var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]); + newBuf[j++] = 129 + Math.floor(dbcsCode / 12600); + dbcsCode = dbcsCode % 12600; + newBuf[j++] = 48 + Math.floor(dbcsCode / 1260); + dbcsCode = dbcsCode % 1260; + newBuf[j++] = 129 + Math.floor(dbcsCode / 10); + dbcsCode = dbcsCode % 10; + newBuf[j++] = 48 + dbcsCode; + continue; + } + } + } + if (dbcsCode === UNASSIGNED) + dbcsCode = this.defaultCharSingleByte; + if (dbcsCode < 256) { + newBuf[j++] = dbcsCode; + } else if (dbcsCode < 65536) { + newBuf[j++] = dbcsCode >> 8; + newBuf[j++] = dbcsCode & 255; + } else { + newBuf[j++] = dbcsCode >> 16; + newBuf[j++] = dbcsCode >> 8 & 255; + newBuf[j++] = dbcsCode & 255; + } + } + this.seqObj = seqObj; + this.leadSurrogate = leadSurrogate; + return newBuf.slice(0, j); + }; + DBCSEncoder.prototype.end = function() { + if (this.leadSurrogate === -1 && this.seqObj === undefined) + return; + var newBuf = Buffer2.alloc(10), j = 0; + if (this.seqObj) { + var dbcsCode = this.seqObj[DEF_CHAR]; + if (dbcsCode !== undefined) { + if (dbcsCode < 256) { + newBuf[j++] = dbcsCode; + } else { + newBuf[j++] = dbcsCode >> 8; + newBuf[j++] = dbcsCode & 255; + } + } else { + } + this.seqObj = undefined; + } + if (this.leadSurrogate !== -1) { + newBuf[j++] = this.defaultCharSingleByte; + this.leadSurrogate = -1; + } + return newBuf.slice(0, j); + }; + DBCSEncoder.prototype.findIdx = findIdx; + function DBCSDecoder(options, codec) { + this.nodeIdx = 0; + this.prevBuf = Buffer2.alloc(0); + this.decodeTables = codec.decodeTables; + this.decodeTableSeq = codec.decodeTableSeq; + this.defaultCharUnicode = codec.defaultCharUnicode; + this.gb18030 = codec.gb18030; + } + DBCSDecoder.prototype.write = function(buf) { + var newBuf = Buffer2.alloc(buf.length * 2), nodeIdx = this.nodeIdx, prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length, seqStart = -this.prevBuf.length, uCode; + if (prevBufOffset > 0) + prevBuf = Buffer2.concat([prevBuf, buf.slice(0, 10)]); + for (var i2 = 0, j = 0;i2 < buf.length; i2++) { + var curByte = i2 >= 0 ? buf[i2] : prevBuf[i2 + prevBufOffset]; + var uCode = this.decodeTables[nodeIdx][curByte]; + if (uCode >= 0) { + } else if (uCode === UNASSIGNED) { + i2 = seqStart; + uCode = this.defaultCharUnicode.charCodeAt(0); + } else if (uCode === GB18030_CODE) { + var curSeq = seqStart >= 0 ? buf.slice(seqStart, i2 + 1) : prevBuf.slice(seqStart + prevBufOffset, i2 + 1 + prevBufOffset); + var ptr = (curSeq[0] - 129) * 12600 + (curSeq[1] - 48) * 1260 + (curSeq[2] - 129) * 10 + (curSeq[3] - 48); + var idx = findIdx(this.gb18030.gbChars, ptr); + uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]; + } else if (uCode <= NODE_START) { + nodeIdx = NODE_START - uCode; + continue; + } else if (uCode <= SEQ_START) { + var seq = this.decodeTableSeq[SEQ_START - uCode]; + for (var k = 0;k < seq.length - 1; k++) { + uCode = seq[k]; + newBuf[j++] = uCode & 255; + newBuf[j++] = uCode >> 8; + } + uCode = seq[seq.length - 1]; + } else + throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte); + if (uCode > 65535) { + uCode -= 65536; + var uCodeLead = 55296 + Math.floor(uCode / 1024); + newBuf[j++] = uCodeLead & 255; + newBuf[j++] = uCodeLead >> 8; + uCode = 56320 + uCode % 1024; + } + newBuf[j++] = uCode & 255; + newBuf[j++] = uCode >> 8; + nodeIdx = 0; + seqStart = i2 + 1; + } + this.nodeIdx = nodeIdx; + this.prevBuf = seqStart >= 0 ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset); + return newBuf.slice(0, j).toString("ucs2"); + }; + DBCSDecoder.prototype.end = function() { + var ret = ""; + while (this.prevBuf.length > 0) { + ret += this.defaultCharUnicode; + var buf = this.prevBuf.slice(1); + this.prevBuf = Buffer2.alloc(0); + this.nodeIdx = 0; + if (buf.length > 0) + ret += this.write(buf); + } + this.nodeIdx = 0; + return ret; + }; + function findIdx(table, val) { + if (table[0] > val) + return -1; + var l = 0, r = table.length; + while (l < r - 1) { + var mid = l + Math.floor((r - l + 1) / 2); + if (table[mid] <= val) + l = mid; + else + r = mid; + } + return l; + } +}); + +// node_modules/iconv-lite/encodings/tables/shiftjis.json +var require_shiftjis = __commonJS((exports, module) => { + module.exports = [ + ["0", "\x00", 128], + ["a1", "ļ½”", 62], + ["8140", "怀态怂ļ¼Œļ¼Žćƒ»ļ¼šļ¼›ļ¼Ÿļ¼ć‚›ć‚œĀ“ļ½€ĀØļ¼¾ļæ£ļ¼æćƒ½ćƒ¾ć‚ć‚žć€ƒä»ć€…ć€†ć€‡ćƒ¼ā€•ā€ļ¼ļ¼¼ļ½žāˆ„ļ½œā€¦ā€„ā€˜ā€™ā€œā€ļ¼ˆļ¼‰ć€”怕ļ¼»ļ¼½ļ½›ļ½ć€ˆ", 9, "ļ¼‹ļ¼Ā±Ć—"], + ["8180", "Ć·ļ¼ā‰ ļ¼œļ¼žā‰¦ā‰§āˆžāˆ“ā™‚ā™€Ā°ā€²ā€³ā„ƒļæ„ļ¼„ļæ ļæ”ļ¼…ļ¼ƒļ¼†ļ¼Šļ¼ Ā§ā˜†ā˜…ā—‹ā—ā—Žā—‡ā—†ā–”ā– ā–³ā–²ā–½ā–¼ā€»ć€’ā†’ā†ā†‘ā†“怓"], + ["81b8", "āˆˆāˆ‹āŠ†āŠ‡āŠ‚āŠƒāˆŖāˆ©"], + ["81c8", "āˆ§āˆØļæ¢ā‡’ā‡”āˆ€āˆƒ"], + ["81da", "āˆ āŠ„āŒ’āˆ‚āˆ‡ā‰”ā‰’ā‰Ŗā‰«āˆšāˆ½āˆāˆµāˆ«āˆ¬"], + ["81f0", "ā„«ā€°ā™Æā™­ā™Ŗā€ ā€”Ā¶"], + ["81fc", "ā—Æ"], + ["824f", "ļ¼", 9], + ["8260", "ļ¼”", 25], + ["8281", "ļ½", 25], + ["829f", "恁", 82], + ["8340", "ć‚”", 62], + ["8380", "惠", 22], + ["839f", "Ī‘", 16, "Ī£", 6], + ["83bf", "Ī±", 16, "Ļƒ", 6], + ["8440", "Š", 5, "ŠŠ–", 25], + ["8470", "Š°", 5, "ёŠ¶", 7], + ["8480", "Š¾", 17], + ["849f", "ā”€ā”‚ā”Œā”ā”˜ā””ā”œā”¬ā”¤ā”“ā”¼ā”ā”ƒā”ā”“ā”›ā”—ā”£ā”³ā”«ā”»ā•‹ā” ā”Æā”Øā”·ā”æā”ā”°ā”„ā”øā•‚"], + ["8740", "ā‘ ", 19, "ā… ", 9], + ["875f", "ć‰ćŒ”ćŒ¢ććŒ˜ćŒ§ćŒƒćŒ¶ć‘ć—ćŒćŒ¦ćŒ£ćŒ«ćŠćŒ»ćŽœćŽćŽžćŽŽćŽć„ćŽ”"], + ["877e", "ć»"], + ["8780", "思怟ā„–揍ā„”护", 4, "ćˆ±ćˆ²ćˆ¹ć¾ć½ć¼ā‰’ā‰”āˆ«āˆ®āˆ‘āˆšāŠ„āˆ āˆŸāŠæāˆµāˆ©āˆŖ"], + ["889f", "äŗœå”–å؃é˜æå“€ę„›ęŒØå§¶é€¢č‘µčŒœē©ę‚Ŗę”ęø„ꗭ葦芦éÆµę¢“åœ§ę–”ę‰±å®›å§č™»é£“ēµ¢ē¶¾é®Žęˆ–ē²Ÿč¢·å®‰åŗµęŒ‰ęš—ę”ˆé—‡éžęä»„伊位依偉囲夷委åØå°‰ęƒŸę„ę…°ę˜“ę¤…ē‚ŗē•ē•°ē§»ē¶­ē·ÆčƒƒčŽč”£č¬‚é•éŗ医äŗ•äŗ„åŸŸč‚²éƒē£Æäø€å£±ęŗ¢é€øēزčŒØ芋é°Æå…å°å’½å“”å› å§»å¼•é£²ę·«čƒ¤č”­"], + ["8940", "院陰隠韻吋右宇ēƒē¾½čæ‚é›ØåÆ鵜ēŖŗäø‘ē¢“č‡¼ęø¦å˜˜å”„ę¬č”šé°»å§„åŽ©ęµ¦ē“œé–å™‚äŗ‘é‹é›²čé¤Œå”å–¶å¬°å½±ę˜ ę›³ę „ę°øę³³ę“©ē‘›ē›ˆē©Žé “č‹±č”›č© é‹­ę¶²ē–«ē›Šé§…ę‚¦č¬č¶Šé–²ę¦ŽåŽ­å††"], + ["8980", "園堰億宓延ę€ØęŽ©ę“ę²æę¼”ē‚Žē„”ē…™ē‡•ēŒæēøč‰¶č‹‘č–—é é‰›é“›å”©ę–¼ę±šē”„凹央億往åæœęŠ¼ę—ŗęØŖ꬧ꮓēŽ‹ēæč„–é“¬é“Žé»„å²”ę²–č»å„„å±‹ę†¶č‡†ę”¶ē‰”乙äæŗåøꁩęø©ē©éŸ³äø‹åŒ–仮何伽侔佳加åÆ嘉夏嫁家åÆ”ē§‘ęš‡ęžœęž¶ę­Œę²³ē«ē‚ē¦ē¦¾ēؼē®‡čŠ±č‹›čŒ„č·čÆč“č¦čŖ²å˜©č²Øčæ¦éŽéœžčšŠäæ„å³Øꈑē‰™ē”»č‡„čŠ½č›¾č³€é›…é¤“é§•ä»‹ä¼šč§£å›žå”Šå£Šå»»åæ«ę€Ŗę‚”ę¢ę‡ęˆ’ę‹ę”¹"], + ["8a40", "é­ę™¦ę¢°ęµ·ē°ē•Œēš†ēµµčŠ„čŸ¹é–‹éšŽč²å‡±åŠ¾å¤–å’³å®³å“–ę…Øꦂę¶Æē¢č“‹č”—č©²éŽ§éŖø구é¦Øč›™åž£ęŸæč›ŽéˆŽåŠƒåš‡å„å»“ę‹”ę’¹ę ¼ę øę®»ē²ē¢ŗē©«č¦šč§’čµ«č¼ƒéƒ­é–£éš”é©å­¦å²³ę„½é”é”ŽęŽ›ē¬ ęØ«"], + ["8a80", "ę©æę¢¶é°ę½Ÿå‰²å–ę°ę‹¬ę“»ęø‡ę»‘č‘›č¤č½„äø”é°¹å¶ę¤›ęØŗ鞄ę Ŗ兜ē«ƒč’²é‡œéŽŒå™›é“Øę ¢čŒ…č±ē²„åˆˆč‹…ē“¦ä¹¾ä¾ƒå† åƒ刊勘勧巻喚å Ŗ姦完官åÆ›å¹²å¹¹ę‚£ę„Ÿę…£ę†¾ę›ę•¢ęŸ‘ę”“ę£ŗę¬¾ę­“ę±—ę¼¢ę¾—ę½…ē’°ē”˜ē›£ēœ‹ē«æē®”ē°”ē·©ē¼¶ēæ°č‚č‰¦čŽžč¦³č«Œč²«é‚„鑑間閑関附韓é¤Ø舘äøø含å²ø巌ēŽ©ē™Œēœ¼å²©ēæ«č“‹é›é ‘锔锘企伎危喜å™ØåŸŗ儇嬉åƄ岐åøŒå¹¾åæŒę®ęœŗę——ę—¢ęœŸę£‹ę£„"], + ["8b40", "ę©Ÿåø°ęÆ…ę°—ę±½ē•æē„ˆå­£ē؀ē“€å¾½č¦čØ˜č²“čµ·č»Œč¼é£¢é؎鬼äŗ€å½å„€å¦“宜ęˆÆꊀꓬę¬ŗēŠ ē–‘ē„‡ē¾©čŸ»čŖ¼č­°ęŽ¬čŠéž å‰åƒå–«ę””ę©˜č©°ē §ęµé»å“å®¢č„šč™é€†äø˜ä¹…仇休及åøå®®å¼“ę€„ę•‘"], + ["8b80", "ęœ½ę±‚ę±²ę³£ēøēƒē©¶ēŖ®ē¬ˆē“šē³¾ēµ¦ę—§ē‰›åŽ»å±…å·Øꋒꋠꌙęø č™ščØ±č·é‹øę¼ē¦¦é­šäŗØäŗ«äŗ¬ä¾›ä¾ åƒ‘å…‡ē«¶å…±å‡¶å”匔åæ叫喬境峔強彊ę€Æęę­ęŒŸę•™ę©‹ę³ē‹‚ē‹­ēŸÆčƒøč„…čˆˆč•Žéƒ·é”éŸæé„—é©šä»°å‡å°­ęšę„­å±€ę›²ę„µēŽ‰ę”ē²åƒ…å‹¤å‡å·¾éŒ¦ę–¤ę¬£ę¬½ē“ē¦ē¦½ē­‹ē·ŠčŠ¹čŒč”æč„Ÿč¬¹čæ‘金吟銀九倶叄åŒŗē‹—ēŽ–ēŸ©č‹¦čŗÆé§†é§ˆé§’å…·ę„šč™žå–°ē©ŗ偶åƓ遇隅äø²ę«›é‡§å±‘屈"], + ["8c40", "ꎘēŖŸę²“é“č½”ēŖŖē†Šéšˆē²‚ę —ē¹°ę”‘é¬å‹²å›č–«čؓē¾¤č»éƒ”å¦č¢ˆē„äæ‚傾刑兄啓圭ēŖåž‹å„‘å½¢å¾„ęµę…¶ę…§ę†©ęŽ²ęŗꕬę™Æꔂęø“ē•¦ēؽē³»ēµŒē¶™ē¹‹ē½«čŒŽčŠč›čØˆč©£č­¦č»½é šé¶čŠøčæŽéÆØ"], + ["8c80", "åŠ‡ęˆŸę’ƒęæ€éš™ę”å‚‘ꬠę±ŗę½”ē©“ēµč”€čØ£ęœˆä»¶å€¹å€¦å„å…¼åˆø剣喧圏堅嫌å»ŗę†²ę‡øę‹³ę²ę¤œęØ©ē‰½ēŠ¬ēŒ®ē ”ē”Æēµ¹ēœŒč‚©č¦‹č¬™č³¢č»’遣鍵é™ŗ锕éؓé¹ø元原厳幻弦ęø›ęŗēŽ„ē¾ēµƒčˆ·č؀č«ŗ限乎個古呼å›ŗ姑孤己åŗ«å¼§ęˆøꕅęžÆę¹–ē‹ē³Šč¢“č‚”čƒ”č°č™ŽčŖ‡č·Ø鈷雇锧鼓äŗ”äŗ’伍午呉吾åØÆå¾Œå¾”ę‚Ÿę¢§ęŖŽē‘šē¢čŖžčŖ¤č­·é†ä¹žéƉäŗ¤ä½¼ä¾Æ候倖光公功効勾厚口向"], + ["8d40", "后喉坑垢儽孔孝宏巄巧巷å¹øåŗƒåŗšåŗ·å¼˜ę’ę…ŒęŠ—ę‹˜ęŽ§ę”»ę˜‚ę™ƒę›“ę­ę ”ę¢—ę§‹ę±Ÿę“Ŗ굩ęøÆęŗē”²ēš‡ē”¬ēØæē³ ē“…ē“˜ēµžē¶±č€•č€ƒč‚Æč‚±č…”č†čˆŖč’č”Œč””č¬›č²¢č³¼éƒŠé…µé‰±ē æ鋼閤降"], + ["8d80", "é …é¦™é«˜é“»å‰›åŠ«å·åˆå£•ę‹·ęæ č±Ŗč½Ÿéŗ¹å…‹åˆ»å‘Šå›½ē©€é…·éµ é»’ē„ę¼‰č…°ē”‘åæ½ęƒšéŖØē‹›č¾¼ę­¤é ƒä»Šå›°å¤å¢¾å©šęØę‡‡ę˜ę˜†ę ¹ę¢±ę··ē—•ē“ŗ艮魂äŗ›ä½å‰å”†åµÆå·¦å·®ęŸ»ę²™ē‘³ē ‚č©éŽ–č£Ÿååŗ§ęŒ«å‚µå‚¬å†ęœ€å“‰å”žå¦»å®°å½©ę‰ęŽ”ę ½ę­³ęøˆē½é‡‡ēŠ€ē •ē ¦ē„­ę–Žē“°čœč£č¼‰éš›å‰¤åœØꝐē½Ŗč²”å†“å‚é˜Ŗå ŗę¦Šč‚“å’²å“ŽåŸ¼ē¢•é·ŗä½œå‰Šå’‹ę¾ę˜Øęœ”ęŸµēŖ„ē­–ē“¢éŒÆę”œé®­ē¬¹åŒ™å†Šåˆ·"], + ["8e40", "åÆŸę‹¶ę’®ę“¦ęœ­ę®ŗ薩雑ēšéÆ–ęŒéŒ†é®«ēšæꙒäø‰å‚˜å‚å±±ęƒØę’’ę•£ę”Ÿē‡¦ēŠē”£ē®—ēŗ‚čš•č®ƒč³›é…ø餐ꖬꚫꮋ仕仔ä¼ŗä½æåˆŗåø史嗣四士始姉å§æ子屍åø‚åø«åæ—ę€ęŒ‡ę”Æ孜ę–Æę–½ę—Øęžę­¢"], + ["8e80", "ę­»ę°ē…ē„‰ē§ē³øē“™ē“«č‚¢č„‚č‡³č¦–č©žč©©č©¦čŖŒč«®č³‡č³œé›Œé£¼ę­Æäŗ‹ä¼¼ä¾å…å­—åÆŗę…ˆęŒę™‚ę¬”ę»‹ę²»ēˆ¾ē’½ē—”ē£ē¤ŗč€Œč€³č‡Ŗč’”č¾žę±é¹æå¼č­˜é“«ē«ŗč»ø宍雫äøƒå±åŸ·å¤±å«‰å®¤ę‚‰ę¹æę¼†ē–¾č³Ŗå®Ÿč”€ēÆ å²ęŸ“čŠå±”č•ŠēøžčˆŽå†™å°„ęØčµ¦ę–œē…®ē¤¾ē“—č€…č¬č»Šé®č›‡é‚Ŗ借å‹ŗå°ŗꝓē¼ēˆµé…Œé‡ˆéŒ«č‹„åÆ‚å¼±ęƒ¹äø»å–å®ˆę‰‹ęœ±ę®Šē‹©ē ēØ®č…«č¶£é…’é¦–å„’å—å‘ŖåÆæꎈęعē¶¬éœ€å›šåŽå‘Ø"], + ["8f40", "宗就州äæ®ę„ę‹¾ę“²ē§€ē§‹ēµ‚ē¹ēæ’č‡­čˆŸč’č”†č„²č®č¹“č¼Æé€±é…‹é…¬é›†é†œä»€ä½å……åå¾“ęˆŽęŸ”ę±ęø‹ē£ēø¦é‡éŠƒå”夙å®æę·‘ē„ēø®ē²›å”¾ē†Ÿå‡ŗ蔓čæ°äæŠå³»ę˜„ēž¬ē«£čˆœé§æ准å¾Ŗę—¬ę„Æę®‰ę·³"], + ["8f80", "ęŗ–ę½¤ē›¾ē“”å·”éµé†‡é †å‡¦åˆę‰€ęš‘ę›™ęøšåŗ¶ē·’ē½²ę›øč–Æč—·č«ø助叙儳åŗå¾ę•é‹¤é™¤å‚·å„Ÿå‹åŒ å‡å¬å“Ø商唱嘗å„Ø妾åؼ宵将小少尚åŗ„åŗŠå» å½°ę‰æęŠ„ę‹›ęŽŒę·ę˜‡ę˜Œę˜­ę™¶ę¾ę¢¢ę؟ęØµę²¼ę¶ˆęø‰ę¹˜ē„¼ē„¦ē…§ē—‡ēœē”ē¤ē„„ē§°ē« ē¬‘ē²§ē“¹č‚–č–č’‹č•‰č”č£³č؟čØ¼č©”č©³č±”č³žé†¤é‰¦é¾é˜éšœéž˜äøŠäøˆäøžä¹—冗剰城堓壌嬢åøøęƒ…ę“¾ę”ę–ęµ„ēŠ¶ē•³ē©£č’øč­²é†ø錠嘱埓飾"], + ["9040", "ę‹­ę¤ę®–ē‡­ē¹”č·č‰²č§¦é£Ÿč•č¾±å°»ä¼øäæ”侵唇åØ åƝåÆ©åæƒę…ŽęŒÆę–°ę™‹ę£®ę¦›ęµøę·±ē”³ē–¹ēœŸē„žē§¦ē“³č‡£čŠÆč–Ŗč¦ŖčØŗčŗ«č¾›é€²é‡éœ‡äŗŗ仁刃唵壬尋ē”šå°½č…Žč؊čæ…陣靭ē¬„č«é ˆé…¢å›³åŽØ"], + ["9080", "逗吹垂åø„ęŽØę°“ē‚Šē”ē²‹ēæ č”°é‚酔錐錘随ē‘žé«„å“‡åµ©ę•°ęž¢č¶Øé››ę®ę‰ę¤™č…é —é›€č£¾ę¾„ę‘ŗåÆøäø–ē€¬ē•ę˜Æå‡„åˆ¶å‹¢å§“å¾ę€§ęˆę”æę•“ę˜Ÿę™“ę£²ę –ę­£ęø…ē‰²ē”Ÿē››ē²¾č–å£°č£½č„æčŖ čŖ“č«‹é€é†’é’é™ę–‰ēØŽč„†éš»åø­ęƒœęˆšę–„ꘔꞐēŸ³ē©ē±ēø¾č„Šč²¬čµ¤č·”č¹Ÿē¢©åˆ‡ę‹™ęŽ„ꑂꊘčØ­ēŖƒēƀčŖ¬é›Ŗēµ¶čˆŒč‰ä»™å…ˆåƒå å®£å°‚å°–å·ęˆ¦ę‰‡ę’°ę “ę “ę³‰ęµ…ę“—ęŸ“ę½œē…Žē…½ę—‹ē©æē®­ē·š"], + ["9140", "ē¹Šē¾Øč…ŗčˆ›čˆ¹č–¦č©®č³Žč·µéø遷銭銑閃鮮前善ę¼øē„¶å…Øē¦…ē¹•č†³ē³Žå™Œå”‘å²ØęŽŖę›¾ę›½ę„šē‹™ē–ē–Žē¤Žē„–ē§Ÿē²—ē“ ēµ„č˜‡čؓ阻達鼠僧創双叢倉å–Ŗ壮儏ēˆ½å®‹å±¤åŒęƒ£ęƒ³ęœęŽƒęŒæꎻ"], + ["9180", "ę“ę—©ę›¹å·£ę§ę§½ę¼•ē‡„äŗ‰ē—©ē›øēŖ“ē³Ÿē·ē¶œč”č‰č˜č‘¬č’¼č—»č£…čµ°é€é­éŽ—éœœéØ’åƒå¢—ę†Žč‡“č”µč“ˆé€ äæƒå“則即ęÆꍉꝟęø¬č¶³é€Ÿäæ—å±žč³Šę—ē¶šå’č¢–å…¶ęƒå­˜å­«å°Šęę‘éœä»–å¤šå¤Ŗę±°č©‘å”¾å •å¦„ęƒ°ę‰“ęŸčˆµę„•é™€é§„éØØ体堆åÆ¾č€å²±åøÆå¾…ę€ ę…‹ęˆ“ę›æę³°ę»žčƒŽč…æč‹”č¢‹č²ø退逮隊黛éƛ代台大ē¬¬é†é”Œé·¹ę»ē€§å“å•„å®…ę‰˜ęŠžę‹“ę²¢ęæÆē¢čؗéøęæč«¾čŒø凧č›øåŖ"], + ["9240", "å©ä½†é”č¾°å„Ŗč„±å·½ē«Ŗč¾æę£šč°·ē‹ø鱈ęؽčŖ°äø¹å˜å˜†å¦ę‹…ęŽ¢ę—¦ę­Žę·”ę¹›ē‚­ēŸ­ē«Æē®Ŗē¶»č€½čƒ†č›‹čŖ•é›å›£å£‡å¼¾ę–­ęš–ęŖ€ę®µē”·č«‡å€¤ēŸ„åœ°å¼›ę„ę™ŗę± ē—“ēؚē½®č‡“čœ˜é…é¦³ēƉē•œē«¹ē­‘č“„"], + ["9280", "逐ē§©ēŖ’čŒ¶å«”ē€äø­ä»²å®™åæ ęŠ½ę˜¼ęŸ±ę³Ø虫蔷čػ酎鋳駐ęؗē€¦ēŒŖ苧著č²Æäøå…†å‡‹å–‹åƵåø–åø³åŗå¼”å¼µå½«å¾“ę‡²ęŒ‘ęš¢ęœę½®ē‰’ē”ŗēœŗč“č„¹č…øč¶čŖæč«œč¶…č·³éŠšé•·é ‚é³„å‹…ę—ē›“ęœ•ę²ˆēč³ƒéŽ®é™³ę“„å¢œę¤Žę§Œčæ½éŽšē—›é€šå”šę ‚ęŽ“ę§»ä½ƒę¼¬ęŸ˜č¾»č”¦ē¶“鍔ę¤æę½°åŖ壷嬬ē“¬ēˆŖ吊釣鶓äŗ­ä½Žåœåµå‰ƒč²žå‘ˆå ¤å®šåøåŗ•åŗ­å»·å¼Ÿę‚ŒęŠµęŒŗꏐę¢Æę±€ē¢‡ē¦Žē؋ē· č‰‡čØ‚č«¦č¹„é€“"], + ["9340", "é‚øé„­é‡˜é¼Žę³„ę‘˜ę“¢ę•µę»“ēš„ē¬›é©é‘ęŗŗå“²å¾¹ę’¤č½čæ­é‰„å…ø唫天展åŗ—ę·»ēŗē”œč²¼č»¢é”›ē‚¹ä¼ę®æę¾±ē”°é›»å…Žåå µå”—å¦¬å± å¾’ę–—ęœęø”ē™»čŸč³­é€”都鍍ē „ē ŗåŠŖåŗ¦åœŸå„“ę€’å€’å…šå†¬"], + ["9380", "å‡åˆ€å”å””å”˜å„—å®•å³¶å¶‹ę‚¼ęŠ•ę­ę±ę”ƒę¢¼ę£Ÿē›—ę·˜ę¹Æ궛ēÆē‡ˆå½“ē—˜ē„·ē­‰ē­”ē­’ē³–ēµ±åˆ°č‘£č•©č—¤čØŽč¬„č±†čøé€ƒé€é™é™¶é ­éØ°é—˜åƒå‹•åŒå ‚å°Žę†§ę’žę“žēž³ē«„čƒ“č„é“éŠ…å³ é“‡åŒæå¾—å¾³ę¶œē‰¹ē£ē¦æēƤęƒē‹¬čŖ­ę ƒę©”å‡øēŖę¤“å±Šé³¶č‹«åƅ酉ē€žå™øå±Æęƒ‡ę•¦ę²Œč±šéé “å‘‘ę›‡éˆå„ˆé‚£å†…ä¹å‡Ŗ薙謎ē˜ęŗé‹ę„¢é¦“ēø„ē•·å—ę„ č»Ÿé›£ę±äŗŒå°¼å¼čæ©åŒ‚č³‘č‚‰č™¹å»æę—„ä¹³å…„"], + ["9440", "如å°æ韮任妊åæčŖęæ”ē¦°ē„¢åÆ§č‘±ēŒ«ē†±å¹“åæµę»ę’šē‡ƒē²˜ä¹ƒå»¼ä¹‹åŸœåš¢ę‚©ęæƒē“čƒ½č„³č†æč¾²č¦—čš¤å·“ęŠŠę’­č¦‡ę·ę³¢ę“¾ē¶ē “婆ē½µčŠ­é¦¬äæ³å»ƒę‹ęŽ’ę•—ęÆē›ƒē‰ŒčƒŒč‚ŗč¼©é…å€åŸ¹åŖ’ę¢…"], + ["9480", "ę„³ē…¤ē‹½č²·å£²č³ é™Ŗ這čæē§¤ēŸ§č©ä¼Æå‰„åšę‹ęŸę³Šē™½ē®”ē²•čˆ¶č–„čæ«ę›ę¼ ēˆ†ēø›čŽ«é§éŗ¦å‡½ē®±ē”²ē®ø肇ē­ˆę«Øå¹”č‚Œē•‘ē• å…«é‰¢ęŗŒē™ŗ醗é«Ŗ伐ē½°ęŠœē­é–„鳩å™ŗå”™č›¤éš¼ä¼“åˆ¤åŠåå›åø†ę¬ę–‘ęæę°¾ę±Žē‰ˆēŠÆē­ē•”ē¹čˆ¬č—©č²©ēƄ釆ē…©é ’é£ÆęŒ½ę™©ē•Ŗē›¤ē£č•ƒč›®åŒŖ卑否妃åŗ‡å½¼ę‚²ę‰‰ę‰¹ęŠ«ę–ęÆ”ę³Œē–²ēš®ē¢‘ē§˜ē·‹ē½·č‚„č¢«čŖ¹č²»éæ非飛ę؋ē°øå‚™å°¾å¾®ęž‡ęƘēµēœ‰ē¾Ž"], + ["9540", "é¼»ęŸŠēؗ匹ē–‹é«­å½¦č†č±č‚˜å¼¼åæ…ē•¢ē­†é€¼ę”§å§«åŖ›ē“ē™¾č¬¬äæµå½ŖęØ™ę°·ę¼‚ē“¢ē„Øč”Øč©•č±¹å»Ÿęē—…ē§’č‹—éŒØé‹²č’œč›­é°­å“å½¬ę–Œęµœē€•č²§č³“é »ę•ē“¶äøä»˜åŸ å¤«å©¦åƌå†Øåøƒåŗœę€–ꉶꕷ"], + ["9580", "ꖧꙮ굮ēˆ¶ē¬¦č…č†ščŠ™č­œč² č³¦čµ“é˜œé™„ä¾®ę’«ę­¦čˆžč‘”č•ŖéƒØå°ę„“é¢Øč‘ŗč•—ä¼å‰Æå¾©å¹…ęœē¦č…¹č¤‡č¦†ę·µå¼—ꉕę²ø仏ē‰©é®’åˆ†å»å™“å¢³ę†¤ę‰®ē„šå„®ē²‰ē³žē“›é›°ę–‡čžäø™ä½µå…µå”€å¹£å¹³å¼ŠęŸ„äø¦č”½é–‰é™›ē±³é åƒ»å£ē™–ē¢§åˆ„ēž„蔑ē®†åå¤‰ē‰‡ēƇē·Øč¾ŗčæ”遍ä¾æ勉åة弁鞭äæčˆ—é‹Ŗåœƒę•ę­©ē”«č£œč¼”ē©‚å‹Ÿå¢“ę…•ęˆŠęš®ęƍē°æč©å€£äæø包呆報儉宝峰å³Æå“©åŗ–ęŠ±ę§ę”¾ę–¹ęœ‹"], + ["9640", "ę³•ę³”ēƒ¹ē ²ēø«čƒžčŠ³čŒč“¬čœ‚褒čØŖč±Šé‚¦é‹’é£½é³³éµ¬ä¹äŗ”傍剖坊å¦Øåø½åæ˜åæ™ęˆæęš“ęœ›ęŸę£’å†’ē“”č‚Ŗč†Øč¬€č²Œč²æ鉾防吠頬北僕卜å¢Øę’²ęœ“ē‰§ē¦ē©†é‡¦å‹ƒę²”ę®†å €å¹Œå„”ęœ¬ēæ»å‡”ē›†"], + ["9680", "ę‘©ē£Ø魔éŗ»åŸ‹å¦¹ę˜§ęžšęÆŽå“©ę§™å¹•č†œęž•é®ŖęŸ¾é±’ę”äŗ¦äæ£åˆęŠ¹ęœ«ę²«čæ„ä¾­ē¹­éŗæäø‡ę…¢ęŗ€ę¼«č”“味ęœŖ魅巳ē®•å²¬åÆ†čœœę¹Šč“‘ēØ”č„ˆå¦™ē²ę°‘ēœ å‹™å¤¢ē„”ē‰ŸēŸ›éœ§éµ”ꤋå©æåØ˜å†„åå‘½ę˜Žē›Ÿčæ·éŠ˜é³“å§Ŗē‰ę»…å…ę£‰ē¶æē·¬é¢éŗŗę‘øęØ”čŒ‚å¦„å­ŸęƛēŒ›ē›²ē¶²č€—č’™å„²ęœØ黙ē›®ę¢å‹æé¤…å°¤ęˆ»ē±¾č²°å•ę‚¶ē“‹é–€åŒä¹Ÿå†¶å¤œēˆŗč€¶é‡Žå¼„ēŸ¢åŽ„å½¹ē“„č–¬čسčŗé–ęŸ³č–®é‘“ę„‰ę„ˆę²¹ē™’"], + ["9740", "č«­č¼øå”Æ佑å„Ŗå‹‡å‹å®„å¹½ę‚ ę†‚ę–ęœ‰ęŸšę¹§ę¶ŒēŒ¶ēŒ·ē”±ē„č£•čŖ˜éŠé‚‘éƒµé›„čžå¤•äŗˆä½™äøŽčŖ‰č¼æ預傭幼妖容åŗøꏚęŗę“ę›œę„Šę§˜ę“‹ęŗ¶ē†”ē”ØēŖÆē¾Šč€€č‘‰č“‰č¦č¬”čøŠé„é™½é¤Šę…¾ęŠ‘ę¬²"], + ["9780", "ę²ƒęµ“ēæŒēæ¼ę·€ē¾…čžŗč£øę„čŽ±é ¼é›·ę“›ēµ”č½é…Ŗä¹±åµåµę¬„ęæ«č—č˜­č¦§åˆ©åå±„Ꝏę¢Øē†ē’ƒē—¢č£č£”里離é™ø律ēŽ‡ē«‹č‘ŽęŽ ē•„åŠ‰ęµęŗœē‰ē•™ē”«ē²’隆ē«œé¾ä¾¶ę…®ę—…č™œäŗ†äŗ®åƒšäø”凌åÆ®ę–™ę¢ę¶¼ēŒŸē™‚ēž­ē؜ē³§č‰Æč«’é¼é‡é™µé ˜åŠ›ē·‘å€«åŽ˜ęž—ę·‹ē‡ē³č‡Øč¼Ŗ隣鱗éŗŸē‘ å”ę¶™ē“Æ锞令伶例冷励å¶ŗꀜēŽ²ē¤¼č‹“鈓隷零霊éŗ—é½¢ęš¦ę­“列劣ēƒˆč£‚å»‰ę‹ę†ę¼£ē…‰ē°¾ē·“čÆ"], + ["9840", "č“®é€£éŒ¬å‘‚é­Æę«“ē‚‰č³‚č·Æéœ²åŠ“å©å»Šå¼„ęœ—ę„¼ę¦”ęµŖę¼ē‰¢ē‹¼ēÆ­č€č¾č‹éƒŽå…­éŗ“ē¦„č‚‹éŒ²č«–å€­å’Œč©±ę­Ŗč³„č„‡ęƒ‘ęž é·²äŗ™äŗ˜é°č©«č—č•Øę¤€ę¹¾ē¢—č…•"], + ["989f", "弌äøäø•äøŖäø±äø¶äø¼äøæ乂乖乘äŗ‚äŗ…豫äŗŠčˆ’弍äŗŽäŗžäŗŸäŗ äŗ¢äŗ°äŗ³äŗ¶ä»Žä»ä»„仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑ä½Æ來侖儘äæ”äæŸäæŽäæ˜äæ›äæ‘äæšäæäæ¤äæ„倚å€Ø倔å€Ŗ倄倅伜äæ¶å€”倩倬äæ¾äæÆå€‘å€†åƒå‡ęœƒå•ååˆåšå–å¬åø傀傚傅傓傲"], + ["9940", "僉僊傳僂僖僞僄僭僣僮價僵儉儁儂儖儕儔儚儔å„ŗ儷儼儻å„æ兀兒兌兔兢ē«ø兩å…Ŗ兮冀冂囘册冉冏冑冓冕冖冤冦冢冩å†Ŗå†«å†³å†±å†²å†°å†µå†½å‡…å‡‰å‡›å‡ č™•å‡©å‡­"], + ["9980", "凰凵凾刄刋刔刎刧åˆŖ刮刳刹剏剄剋剌剞剔å‰Ŗ剓剩剳å‰æ剽劍劔劒剱劈劑č¾Øč¾§åŠ¬åŠ­åŠ¼åŠµå‹å‹å‹—å‹žå‹£å‹¦é£­å‹ å‹³å‹µå‹ø勹匆匈ē”ø匍匐匏匕匚匣åŒÆ匱匳åŒø區卆卅äø—卉卍凖卞卩卮夘卻卷厂厖厠厦厄厮厰厶參ē°’é›™åŸę›¼ē‡®å®åØ叭åŗ吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢å’ø咄咬哄哈å’Ø"], + ["9a40", "咫哂咤咾咼哘哄哦唏唔哽哮哭å“ŗ哢唹啀啣啌售啜啅啖啗å”ø唳啝喙喀å’Æ喊喟啻啾喘喞單啼喃喩喇å–Ø嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐ē‡Ÿå˜“嘶嘲å˜ø"], + ["9a80", "噫噤å˜Æ噬å™Ŗ嚆嚀嚊嚠嚔嚏嚄嚮嚶嚓囂嚼囁囃囀囈囎囑囓囗囮囹圀å›æ圄圉圈國圍圓團圖嗇圜圦圷åœø坎圻址坏坩埀垈坔åæ垉垓垠垳垤åžŖ垰埃埆埔埒埓堊埖埣堋堙堝唲堔唢唋唰ęƀ唒堽唹墅墹墟墫å¢ŗ壞墻å¢ø墮壅壓壑壗壙壘壄壜壤壟å£Æå£ŗå£¹å£»å£¼å£½å¤‚å¤Šå¤å¤›ę¢¦å¤„å¤¬å¤­å¤²å¤ø夾ē«’儕儐儎儚儘儢儠儧儬儩"], + ["9b40", "å„ø妁妝佞侫妣妲姆å§Ø姜妍姙姚åØ„å؟åؑå؜å؉åؚ婀婬婉åصåض婢å©ŖåŖšåŖ¼åŖ¾å«‹å«‚åŖ½å«£å«—嫦嫩嫖å«ŗ嫻嬌嬋嬖嬲嫐å¬Ŗ嬶嬾孃孅孀孑孕孚孛孄孩孰孳孵å­øꖈå­ŗ宀"], + ["9b80", "它宦å®øåƃåƇåƉåƔåƐåƤåƦåÆ¢åƞåÆ„åÆ«åÆ°åƶåƳ尅將專對尓尠尢å°Øå°ø尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽å³ŗ峭嶌å³Ŗ哋哕哗嵜哟哛哑哔哢哚哙哘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵åø‹åøšåø™åø‘åø›åø¶åø·å¹„幃幀幎幗幔幟幢幤幇幵并å¹ŗéŗ¼å¹æåŗ å»å»‚廈廐廏"], + ["9c40", "廖廣廝廚廛廢廔å»Ø廩廬廱廳廰廓å»ø廾弃弉彝彜弋弑弖弩弭å¼ø彁彈彌彎å¼Æ彑彖彗彙彔彭彳彷徃徂å½æ徊很徑徇從徙徘徠å¾Øå¾­å¾¼åæ–åæ»åæ¤åæøåæ±åæę‚³åææꀔꁠ"], + ["9c80", "ę€™ę€ę€©ę€Žę€±ę€›ę€•ę€«ę€¦ę€ę€ŗꁚꁁęŖę·ęŸęŠę†ęę£ęƒę¤ę‚ę¬ę«ę™ę‚ę‚ęƒ§ę‚ƒę‚šę‚„ę‚›ę‚–ę‚—ę‚’ę‚§ę‚‹ęƒ”ę‚øęƒ ęƒ“ę‚“åæ°ę‚½ęƒ†ę‚µęƒ˜ę…ę„•ę„†ęƒ¶ęƒ·ę„€ęƒ“ęƒŗę„ƒę„”ęƒ»ęƒ±ę„ę„Žę…‡ę„¾ę„Øꄧꅊę„æę„¼ę„¬ę„“ę„½ę…‚ę…„ę…³ę…·ę…˜ę…™ę…šę…«ę…“ę…Æę…„ę…±ę…Ÿę…ę…“ę…µę†™ę†–ę†‡ę†¬ę†”ę†šę†Šę†‘ę†«ę†®ę‡Œę‡Šę‡‰ę‡·ę‡ˆę‡ƒę‡†ę†ŗꇋē½¹ę‡ę‡¦ę‡£ę‡¶ę‡ŗꇓę‡æę‡½ę‡¼ę‡¾ęˆ€ęˆˆęˆ‰ęˆęˆŒęˆ”ęˆ›"], + ["9d40", "ęˆžęˆ”ęˆŖęˆ®ęˆ°ęˆ²ęˆ³ę‰ę‰Žę‰žę‰£ę‰›ę‰ ę‰Øę‰¼ęŠ‚ęŠ‰ę‰¾ęŠ’ęŠ“ęŠ–ę‹”ęŠƒęŠ”ę‹—ę‹‘ęŠ»ę‹ę‹æę‹†ę“”ę‹ˆę‹œę‹Œę‹Šę‹‚ę‹‡ęŠ›ę‹‰ęŒŒę‹®ę‹±ęŒ§ęŒ‚ęŒˆę‹Æę‹µęęŒ¾ęęœęęŽ–ęŽŽęŽ€ęŽ«ę¶ęŽ£ęŽęŽ‰ęŽŸęŽµę«"], + ["9d80", "ę©ęŽ¾ę©ę€ę†ę£ę‰ę’ę¶ę„ę–ę“ę†ę“ę¦ę¶ę”ę—ęØꐏꑧę‘Æꑶꑎę”Ŗę’•ę’“ę’„ę’©ę’ˆę’¼ę“šę“’ę“…ę“‡ę’»ę“˜ę“‚ę“±ę“§čˆ‰ę“ ę“”ęŠ¬ę“£ę“Æę”¬ę“¶ę““ę“²ę“ŗę”€ę“½ę”˜ę”œę”…ę”¤ę”£ę”«ę”“ę”µę”·ę”¶ę”øē•‹ę•ˆę•–ę••ę•ę•˜ę•žę•ę•²ę•øę–‚ę–ƒč®Šę–›ę–Ÿę–«ę–·ę—ƒę—†ę—ę—„ę—Œę—’ę—›ę—™ę— ę—”ę—±ę²ę˜Šę˜ƒę—»ę³ę˜µę˜¶ę˜“ę˜œę™ę™„ę™‰ę™ę™žę™ę™¤ę™§ę™Øę™Ÿę™¢ę™°ęšƒęšˆęšŽęš‰ęš„ęš˜ęšę›ęš¹ę›‰ęš¾ęš¼"], + ["9e40", "ꛄęšøꛖꛚꛠę˜æę›¦ę›©ę›°ę›µę›·ęœęœ–ęœžęœ¦ęœ§éœøęœ®ęœæęœ¶ęęœøęœ·ę†ęžę ę™ę£ę¤ęž‰ę°ęž©ę¼ęŖęžŒęž‹ęž¦ęž”ęž…ęž·ęŸÆęž“ęŸ¬ęž³ęŸ©ęžøęŸ¤ęŸžęŸęŸ¢ęŸ®ęž¹ęŸŽęŸ†ęŸ§ęŖœę žę”†ę ©ę”€ę”ę ²ę”Ž"], + ["9e80", "ę¢³ę «ę”™ę”£ę”·ę”æę¢Ÿę¢ę¢­ę¢”ę¢ę¢›ę¢ƒęŖ®ę¢¹ę”“ę¢µę¢ ę¢ŗę¤ę¢ę”¾ę¤ę£Šę¤ˆę£˜ę¤¢ę¤¦ę£”ę¤Œę£ę£”ę£§ę£•ę¤¶ę¤’ę¤„ę£—ę££ę¤„ę£¹ę£ ę£Æę¤Øę¤Ŗę¤šę¤£ę¤”ę£†ę„¹ę„·ę„œę„øę„«ę„”ę„¾ę„®ę¤¹ę„“ę¤½ę„™ę¤°ę„”ę„žę„ę¦ę„Ŗę¦²ę¦®ę§ę¦æę§ę§“ę¦¾ę§ŽåÆØę§Šę§ę¦»ę§ƒę¦§ęØ®ę¦‘ę¦ ę¦œę¦•ę¦“ę§žę§Øę؂ę؛ę§æę¬Šę§¹ę§²ę§§ęØ…ę¦±ęØžę§­ęØ”ę§«ę؊ęØ’ę«ęØ£ęØ“ę©„ęØŒę©²ęضę©øę©‡ę©¢ę©™ę©¦ę©ˆęØøęØ¢ęŖęŖęŖ ęŖ„ęŖ¢ęŖ£"], + ["9f40", "ęŖ—č˜—ęŖ»ę«ƒę«‚ęŖøęŖ³ęŖ¬ę«žę«‘ę«ŸęŖŖę«šę«Ŗę«»ę¬…č˜–ę«ŗę¬’ę¬–é¬±ę¬Ÿę¬øꬷē›œę¬¹é£®ę­‡ę­ƒę­‰ę­ę­™ę­”ę­›ę­Ÿę­”ę­øę­¹ę­æę®€ę®„ę®ƒę®ę®˜ę®•ę®žę®¤ę®Ŗꮫę®Æę®²ę®±ę®³ę®·ę®¼ęƆęƋęƓęƟęƬęÆ«ęƳęÆÆ"], + ["9f80", "éŗ¾ę°ˆę°“ę°”ę°›ę°¤ę°£ę±žę±•ę±¢ę±Ŗę²‚ę²ę²šę²ę²›ę±¾ę±Øę±³ę²’ę²ę³„ę³±ę³“ę²½ę³—ę³…ę³ę²®ę²±ę²¾ę²ŗę³›ę³Æę³™ę³Ŗę“Ÿč”ę“¶ę“«ę“½ę“øę“™ę“µę“³ę“’ę“Œęµ£ę¶“ęµ¤ęµšęµ¹ęµ™ę¶Žę¶•ęæ¤ę¶…ę·¹ęø•ęøŠę¶µę·‡ę·¦ę¶øę·†ę·¬ę·žę·Œę·Øę·’ę·…ę·ŗ귙귤귕ę·Ŗę·®ęø­ę¹®ęø®ęø™ę¹²ę¹Ÿęø¾ęø£ę¹«ęø«ę¹¶ę¹ęøŸę¹ƒęøŗę¹Žęø¤ę»æęøęøøęŗ‚ęŗŖęŗ˜ę»‰ęŗ·ę»“ęŗ½ęŗÆ껄ęŗ²ę»”껕ęŗęŗ„껂ęŗŸę½ę¼‘ēŒę»¬ę»øę»¾ę¼æę»²ę¼±ę»Æę¼²ę»Œ"], + ["e040", "ę¼¾ę¼“ę»·ę¾†ę½ŗę½øę¾ę¾€ę½Æę½›ęæ³ę½­ę¾‚ę½¼ę½˜ę¾Žę¾‘ęæ‚ę½¦ę¾³ę¾£ę¾”ę¾¤ę¾¹ęæ†ę¾ŖęæŸęæ•ęæ¬ęæ”ęæ˜ęæ±ęæ®ęæ›ē€‰ē€‹ęæŗē€‘ē€ē€ęæ¾ē€›ē€šę½“ē€ē€˜ē€Ÿē€°ē€¾ē€²ē‘ē£ē‚™ē‚’ē‚Æēƒ±ē‚¬ē‚øē‚³ē‚®ēƒŸēƒ‹ēƒ"], + ["e080", "ēƒ™ē„‰ēƒ½ē„œē„™ē…„ē…•ē†ˆē…¦ē…¢ē…Œē…–ē…¬ē†ē‡»ē†„ē†•ē†Øē†¬ē‡—ē†¹ē†¾ē‡’ē‡‰ē‡”ē‡Žē‡ ē‡¬ē‡§ē‡µē‡¼ē‡¹ē‡æēˆēˆēˆ›ēˆØēˆ­ēˆ¬ēˆ°ēˆ²ēˆ»ēˆ¼ēˆæē‰€ē‰†ē‰‹ē‰˜ē‰“ē‰¾ēŠ‚ēŠēŠ‡ēŠ’ēŠ–ēŠ¢ēŠ§ēŠ¹ēŠ²ē‹ƒē‹†ē‹„ē‹Žē‹’ē‹¢ē‹ ē‹”ē‹¹ē‹·å€ēŒ—ēŒŠēŒœēŒ–ēŒēŒ“ēŒÆēŒ©ēŒ„ēŒ¾ēŽēé»˜ē—ēŖēØē°ēøēµē»ēŗēˆēŽ³ēŽēŽ»ē€ē„ē®ēžē’¢ē…ē‘Æē„ēøē²ēŗē‘•ēæē‘Ÿē‘™ē‘ē‘œē‘©ē‘°ē‘£ē‘Ŗē‘¶ē‘¾ē’‹ē’žē’§ē“Šē“ē“”ē±"], + ["e140", "ē“ ē“£ē“§ē“©ē“®ē“²ē“°ē“±ē“øē“·ē”„ē”ƒē”…ē”Œē”Žē”ē”•ē”“ē”žē”¦ē”¬ē”¼ē•„ē•ē•Šē•‰ē•›ē•†ē•šē•©ē•¤ē•§ē•«ē•­ē•øē•¶ē–†ē–‡ē•“ē–Šē–‰ē–‚ē–”ē–šē–ē–„ē–£ē—‚ē–³ē—ƒē–µē–½ē–øē–¼ē–±ē—ē—Šē—’ē—™ē—£ē—žē—¾ē—æ"], + ["e180", "ē—¼ē˜ē—°ē—ŗē—²ē—³ē˜‹ē˜ē˜‰ē˜Ÿē˜§ē˜ ē˜”ē˜¢ē˜¤ē˜“ē˜°ē˜»ē™‡ē™ˆē™†ē™œē™˜ē™”ē™¢ē™Øē™©ē™Ŗē™§ē™¬ē™°ē™²ē™¶ē™øē™¼ēš€ēšƒēšˆēš‹ēšŽēš–ēš“ēš™ēššēš°ēš“ēšøēš¹ēšŗē›‚ē›ē›–ē›’ē›žē›”ē›„ē›§ē›Ŗč˜Æē›»ēœˆēœ‡ēœ„ēœ©ēœ¤ēœžēœ„ēœ¦ēœ›ēœ·ēœøē‡ēšēØē«ē›ē„ēæē¾ē¹ēžŽēž‹ēž‘ēž ēžžēž°ēž¶ēž¹ēžæēž¼ēž½ēž»ēŸ‡ēŸēŸ—ēŸšēŸœēŸ£ēŸ®ēŸ¼ē Œē ’ē¤¦ē  ē¤Ŗē”…ē¢Žē”“ē¢†ē”¼ē¢šē¢Œē¢£ē¢µē¢Ŗē¢Æē£‘ē£†ē£‹ē£”ē¢¾ē¢¼ē£…ē£Šē£¬"], + ["e240", "ē£§ē£šē£½ē£“ē¤‡ē¤’ē¤‘ē¤™ē¤¬ē¤«ē„€ē„ ē„—ē„Ÿē„šē„•ē„“ē„ŗē„æē¦Šē¦ē¦§é½‹ē¦Ŗē¦®ē¦³ē¦¹ē¦ŗē§‰ē§•ē§§ē§¬ē§”ē§£ē؈ē؍ēؘēؙēØ ē؟ē¦€ēرēØ»ēؾēØ·ē©ƒē©—ē©‰ē©”ē©¢ē©©é¾ē©°ē©¹ē©½ēŖˆēŖ—ēŖ•ēŖ˜ēŖ–ēŖ©ē«ˆēŖ°"], + ["e280", "ēŖ¶ē«…ē«„ēŖæ邃ē«‡ē«Šē«ē«ē«•ē«“ē«™ē«šē«ē«”ē«¢ē«¦ē«­ē«°ē¬‚ē¬ē¬Šē¬†ē¬³ē¬˜ē¬™ē¬žē¬µē¬Øē¬¶ē­ē­ŗē¬„ē­ē¬‹ē­Œē­…ē­µē­„ē­“ē­§ē­°ē­±ē­¬ē­®ē®ē®˜ē®Ÿē®ē®œē®šē®‹ē®’ē®ē­ē®™ēƋēƁēƌēƏē®“ēƆēƝēÆ©ē°‘ē°”ēƦēÆ„ē± ē°€ē°‡ē°“ēƳēÆ·ē°—ē°ēƶē°£ē°§ē°Ŗē°Ÿē°·ē°«ē°½ē±Œē±ƒē±”ē±ē±€ē±ē±˜ē±Ÿē±¤ē±–ē±„ē±¬ē±µē²ƒē²ē²¤ē²­ē²¢ē²«ē²”ē²Øē²³ē²²ē²±ē²®ē²¹ē²½ē³€ē³…ē³‚ē³˜ē³’ē³œē³¢é¬»ē³Æē³²ē³“ē³¶ē³ŗē“†"], + ["e340", "ē“‚ē“œē“•ē“Šēµ…ēµ‹ē“®ē“²ē“æē“µēµ†ēµ³ēµ–ēµŽēµ²ēµØēµ®ēµēµ£ē¶“ē¶‰ēµ›ē¶ēµ½ē¶›ē¶ŗē¶®ē¶£ē¶µē·‡ē¶½ē¶«ēø½ē¶¢ē¶Æē·œē¶øē¶Ÿē¶°ē·˜ē·ē·¤ē·žē·»ē·²ē·”ēø…ēøŠēø£ēø”ēø’ēø±ēøŸēø‰ēø‹ēø¢ē¹†ē¹¦ēø»ēøµēø¹ē¹ƒēø·"], + ["e380", "ēø²ēøŗē¹§ē¹ē¹–ē¹žē¹™ē¹šē¹¹ē¹Ŗē¹©ē¹¼ē¹»ēŗƒē·•ē¹½č¾®ē¹æēŗˆēŗ‰ēŗŒēŗ’ēŗēŗ“ēŗ”ēŗ–ēŗŽēŗ›ēŗœē¼øē¼ŗē½…ē½Œē½ē½Žē½ē½‘ē½•ē½”ē½˜ē½Ÿē½ ē½Øē½©ē½§ē½øē¾‚ē¾†ē¾ƒē¾ˆē¾‡ē¾Œē¾”ē¾žē¾ē¾šē¾£ē¾Æē¾²ē¾¹ē¾®ē¾¶ē¾øč­±ēæ…ēæ†ēæŠēæ•ēæ”ēæ”ēæ¦ēæ©ēæ³ēæ¹é£œč€†č€„č€‹č€’č€˜č€™č€œč€”č€Øč€æč€»čŠč†č’č˜čščŸč¢čØč³č²č°č¶č¹č½čæč‚„č‚†č‚…č‚›č‚“č‚šč‚­å†č‚¬čƒ›čƒ„čƒ™čƒčƒ„čƒščƒ–č„‰čƒÆčƒ±č„›č„©č„£č„Æ腋"], + ["e440", "éš‹č…†č„¾č…“č…‘čƒ¼č…±č…®č…„č…¦č…“č†ƒč†ˆč†Šč†€č†‚č† č†•č†¤č†£č…Ÿč†“č†©č†°č†µč†¾č†øč†½č‡€č‡‚č†ŗ臉臍臑臙臘臈臚臟臠臧č‡ŗč‡»č‡¾čˆčˆ‚čˆ…čˆ‡čˆŠčˆčˆčˆ–čˆ©čˆ«čˆøčˆ³č‰€č‰™č‰˜č‰č‰šč‰Ÿč‰¤"], + ["e480", "č‰¢č‰Øč‰Ŗč‰«čˆ®č‰±č‰·č‰øč‰¾čŠčŠ’čŠ«čŠŸčŠ»čŠ¬č‹”č‹£č‹Ÿč‹’č‹“č‹³č‹ŗčŽ“čŒƒč‹»č‹¹č‹žčŒ†č‹œčŒ‰č‹™čŒµčŒ“čŒ–čŒ²čŒ±č€čŒ¹čč…čŒÆčŒ«čŒ—čŒ˜čŽ…čŽščŽŖčŽŸčŽ¢čŽ–čŒ£čŽŽčŽ‡čŽŠč¼čŽµč³čµčŽ čŽ‰čŽØč“č“č«čŽč½čƒč˜č‹čč·č‡č č²čč¢č čŽ½čøč”†č»č‘­čŖč¼č•šč’„č‘·č‘«č’­č‘®č’‚č‘©č‘†č¬č‘Æč‘¹čµč“Šč‘¢č’¹č’æč’Ÿč“™č“č’»č“šč“č“č“†č“–č’”č””č“æč““č”—č”˜č”¬č”Ÿč”•č””č“¼č•€č•£č•˜č•ˆ"], + ["e540", "蕁蘂蕋蕕薀薤薈薑薊č–Ø蕭薔薛č—Ŗč–‡č–œč•·č•¾č–č—‰č–ŗč—č–¹č—č—•č—č—„č—œč—¹č˜Šč˜“č˜‹č—¾č—ŗč˜†č˜¢č˜šč˜°č˜æč™ä¹•č™”č™Ÿč™§č™±čš“čš£čš©čšŖčš‹čšŒčš¶čšÆč›„č›†čš°č›‰č £čš«č›”č›žč›©č›¬"], + ["e580", "蛟蛛č›Æčœ’čœ†čœˆčœ€čœƒč›»čœ‘čœ‰čœč›¹čœŠčœ“čœæčœ·čœ»čœ„čœ©čœšč čŸčøčŒčŽč“č—čØč®č™č“č£čŖč …čž¢čžŸčž‚čžÆčŸ‹čž½čŸ€čŸé›–čž«čŸ„čž³čŸ‡čŸ†čž»čŸÆčŸ²čŸ č č čŸ¾čŸ¶čŸ·č ŽčŸ’č ‘č –č •č ¢č ”č ±č ¶č ¹č §č »č”„č”‚č”’č”™č”žč”¢č”«č¢č”¾č¢žč”µč”½č¢µč”²č¢‚č¢—č¢’č¢®č¢™č¢¢č¢č¢¤č¢°č¢æč¢±č£ƒč£„č£”č£˜č£™č£č£¹č¤‚č£¼č£“č£Øč£²č¤„č¤Œč¤Šč¤“č„ƒč¤žč¤„č¤Ŗ褫脁脄褻褶č¤øč„Œč¤č„ č„ž"], + ["e640", "脦脤脭č„Ŗč„Æč„“č„·č„¾č¦ƒč¦ˆč¦Šč¦“č¦˜č¦”č¦©č¦¦č¦¬č¦Æč¦²č¦ŗč¦½č¦æč§€č§šč§œč§č§§č§“č§øč؃čؖčؐč،č؛č؝čØ„čØ¶č©č©›č©’č©†č©ˆč©¼č©­č©¬č©¢čŖ…čŖ‚čŖ„čŖØčŖ”čŖ‘čŖ„čŖ¦čŖščŖ£č«„č«č«‚č«šč««č«³č«§"], + ["e680", "č«¤č«±č¬”č« č«¢č«·č«žč«›č¬Œč¬‡č¬šč«”č¬–č¬č¬—č¬ č¬³éž«č¬¦č¬«č¬¾č¬Øč­č­Œč­č­Žč­‰č­–č­›č­šč­«č­Ÿč­¬č­Æč­“č­½č®€č®Œč®Žč®’č®“č®–č®™č®šč°ŗ豁č°æč±ˆč±Œč±Žč±č±•č±¢č±¬č±øč±ŗč²‚č²‰č²…č²Šč²č²Žč²”č±¼č²˜ęˆč²­č²Ŗč²½č²²č²³č²®č²¶č³ˆč³č³¤č³£č³šč³½č³ŗč³»č“„č“…č“Šč“‡č“č“č“é½Žč““č³č“”č“–čµ§čµ­čµ±čµ³č¶č¶™č·‚č¶¾č¶ŗč·č·šč·–č·Œč·›č·‹č·Ŗč·«č·Ÿč·£č·¼čøˆčø‰č·æčøčøžčøčøŸč¹‚čøµčø°čø“č¹Š"], + ["e740", "č¹‡č¹‰č¹Œč¹č¹ˆč¹™č¹¤č¹ čøŖč¹£č¹•č¹¶č¹²č¹¼čŗčŗ‡čŗ…čŗ„čŗ‹čŗŠčŗ“čŗ‘čŗ”čŗ™čŗŖčŗ”čŗ¬čŗ°č»†čŗ±čŗ¾č»…č»ˆč»‹č»›č»£č»¼č»»č»«č»¾č¼Šč¼…č¼•č¼’č¼™č¼“č¼œč¼Ÿč¼›č¼Œč¼¦č¼³č¼»č¼¹č½…č½‚č¼¾č½Œč½‰č½†č½Žč½—č½œ"], + ["e780", "č½¢č½£č½¤č¾œč¾Ÿč¾£č¾­č¾Æč¾·čæščæ„čæ¢čæŖčæÆ邇čæ“逅čæ¹čæŗ逑逕途逍逞逖逋逧逶逵逹čæø遏遐遑遒逎遉逾遖遘遞éØéÆ遶éšØ遲邂遽邁邀邊邉邏é‚Øé‚Æé‚±é‚µéƒ¢éƒ¤ę‰ˆéƒ›é„‚é„’é„™é„²é„°é…Šé…–é…˜é…£é…„é…©é…³é…²é†‹é†‰é†‚é†¢é†«é†Æé†Ŗ醵醓é†ŗ釀釁釉釋釐釖釟釔釛釼釵釶鈞é‡æ鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕éˆæ鉋鉐銜銖銓銛鉚鋏銹銷鋩錏é‹ŗ鍄錮"], + ["e840", "錙錢錚錣éŒŗ錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗éØ鏄鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐔éŗ鑁鑒鑄鑛鑠鑢鑞é‘Ŗ鈩鑰鑵鑷鑽鑚鑼鑾钁é‘æ閂閇閊閔閖閘閙"], + ["e880", "閠é–Ø閧閭閼閻閹閾闊ęæ¶é—ƒé—é—Œé—•é—”闖關闔闄闢阔é˜Ø阮é˜Æ陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗éšŖ隧隱隲隰隓隶éšøéš¹é›Žé›‹é›‰é›č„é›œéœé›•é›¹éœ„éœ†éœˆéœ“éœŽéœ‘éœéœ–éœ™éœ¤éœŖ霰霹霽霾靄靆靈靂靉靜靠靤靦éØ勒靫靱靹鞅靼鞁éŗ鞆鞋鞏鞐鞜éžØ鞦鞣鞳鞓韃韆韈韋韜韭齏韲ē«ŸéŸ¶éŸµé é Œé ø頤頔頷頽锆锏锋锫é”Æé”°"], + ["e940", "锱锓锳é¢Ŗé¢Æ颱颶飄飃飆飩飫餃餉餒餔餘餔餝餞餤餠餬餮餽餾鄂鄉鄅鄐鄋鄑鄒鄌鄕馗馘馄馭馮馼駟駛駝駘駑駭駮駱駲駻é§øé؁é؏é؅駢éؙéØ«éط驅驂驀驃"], + ["e980", "éؾ驕驍驛驗驟驢驄驤驩驫é©ŖéŖ­éŖ°éŖ¼é«€é«é«‘髓體髞髟髢髣髦é«Æ髫髮髓髱髷髻鬆鬘鬚鬟鬢鬣鬄鬧é¬Ø鬩é¬Ŗ鬮é¬Æ鬲魄魃魏魍魎魑魘魓鮓鮃鮑鮖鮗鮟鮠é®Ø鮓éƀéƊ鮹éƆéƏéƑéƒéÆ£éÆ¢éƤéƔéÆ”é°ŗéƲéƱéư鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰄鰤鰔鰰鱇鰲鱆鰾鱚鱠鱧鱶é±ø鳧鳬鳰铉铈鳫铃铆é“Ŗ铦é¶Æ铣铟鵄铕铒鵁é“æ链鵆鵈"], + ["ea40", "鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫éµÆéµŗ鶚鶤鶩鶲鷄鷁鶻é¶øé¶ŗ鷆鷏鷂鷙鷓é·ø鷦鷭é·Æé·½éøšéø›éøžé¹µé¹¹é¹½éŗéŗˆéŗ‹éŗŒéŗ’éŗ•éŗ‘éŗéŗ„éŗ©éŗøéŗŖéŗ­é”黌黎黏黐黔黜點黝黠黄é»Øé»Æ"], + ["ea80", "黓黶黷黹黻黼黽鼇鼈ēš·é¼•é¼”鼬鼾齊齒齔齣齟齠齔齦齧齬é½Ŗ齷齲齶龕龜龠å Æ꧇遙ē‘¤å‡œē†™"], + ["ed40", "ēŗŠč¤œéˆéŠˆč“œäæ‰ē‚»ę˜±ę£ˆé‹¹ę›»å½…äøØ仔仼伀伃伹佖侒侊侚侔äæå€å€¢äææ倞偆偰偂傔僓僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝ļ؎咜咊咩å“æ喆坙坄垬埈埇ļ؏"], + ["ed80", "ļؐ增墲夋儓儛儝儣妤å¦ŗ孖åƀē”ÆåƘåƬ尞岦å²ŗ峵哧嵓ļؑ嵂嵭å¶ø嶹巐弔弓彧德åæžęę‚…ę‚Šęƒžęƒ•ę„ ęƒ²ę„‘ę„·ę„°ę†˜ęˆ“ęŠ¦ęµę‘ ę’ę“Žę•Žę˜€ę˜•ę˜»ę˜‰ę˜®ę˜žę˜¤ę™„ꙗꙙļØ’ę™³ęš™ęš ęš²ęšæę›ŗ꜎ļ¤©ę¦ęž»ę”’ęŸ€ę ę”„ę£ļؓę„ØļØ”ę¦˜ę§¢ęØ°ę©«ę©†ę©³ę©¾ę«¢ę«¤ęƖę°æę±œę²†ę±Æę³šę“„ę¶‡ęµÆę¶–ę¶¬ę·ę·øę·²ę·¼ęø¹ę¹œęø§ęø¼ęŗæę¾ˆę¾µęæµē€…ē€‡ē€Øē‚…ē‚«ē„ē„„ē…œē…†ē…‡ļؕē‡ē‡¾ēŠ±"], + ["ee40", "ēŠ¾ēŒ¤ļؖē·ēŽ½ē‰ē–ē£ē’ē‡ēµē¦ēŖē©ē®ē‘¢ē’‰ē’Ÿē”ē•Æēš‚ēšœēšžēš›ēš¦ļؗē†åŠÆē ”ē”Žē”¤ē”ŗē¤°ļؘļؙļؚē¦”ļ؛ē¦›ē«‘ē«§ļ؜ē««ē®žļ؝ēµˆēµœē¶·ē¶ ē·–ē¹’ē½‡ē¾”ļØžčŒč¢čæč‡č¶č‘ˆč’“č•“č•™"], + ["ee80", "č•«ļØŸč–°ļØ ļØ”č ‡č£µčؒčØ·č©¹čŖ§čŖ¾č«ŸļØ¢č«¶č­“č­æč³°č³“č“’čµ¶ļØ£č»ļؤļ؄遧郞ļئ鄕鄧釚釗釞釭釮釤釄鈆鈐鈊éˆŗ鉀鈼鉎鉙鉑鈹鉧銧鉷é‰ø鋧鋗鋙鋐ļا鋕鋠鋓錄錔鋻ļØØ錞é‹æ錝錂鍰鍗鎤鏆鏞éø鐱鑅鑈閒ļ§œļة隝éšÆ霳霻靃靍靏靑靕锗锄ļØŖļث餧ļج馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫ļØ­éø™é»‘"], + ["eeef", "ā…°", 9, "ļæ¢ļæ¤ļ¼‡ļ¼‚"], + ["f040", "ī€€", 62], + ["f080", "ī€æ", 124], + ["f140", "ī‚¼", 62], + ["f180", "īƒ»", 124], + ["f240", "ī…ø", 62], + ["f280", "ī†·", 124], + ["f340", "īˆ“", 62], + ["f380", "ī‰³", 124], + ["f440", "ī‹°", 62], + ["f480", "īŒÆ", 124], + ["f540", "īŽ¬", 62], + ["f580", "ī«", 124], + ["f640", "ī‘Ø", 62], + ["f680", "ī’§", 124], + ["f740", "ī”¤", 62], + ["f780", "ī•£", 124], + ["f840", "ī— ", 62], + ["f880", "ī˜Ÿ", 124], + ["f940", "īšœ"], + ["fa40", "ā…°", 9, "ā… ", 9, "ļæ¢ļæ¤ļ¼‡ļ¼‚ćˆ±ā„–ā„”āˆµēŗŠč¤œéˆéŠˆč“œäæ‰ē‚»ę˜±ę£ˆé‹¹ę›»å½…äøØ仔仼伀伃伹佖侒侊侚侔äæå€å€¢äææ倞偆偰偂傔僓僘兊"], + ["fa80", "兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝ļ؎咜咊咩å“æ喆坙坄垬埈埇ļ؏ļؐ增墲夋儓儛儝儣妤å¦ŗ孖åƀē”ÆåƘåƬ尞岦å²ŗ峵哧嵓ļؑ嵂嵭å¶ø嶹巐弔弓彧德åæžęę‚…ę‚Šęƒžęƒ•ę„ ęƒ²ę„‘ę„·ę„°ę†˜ęˆ“ęŠ¦ęµę‘ ę’ę“Žę•Žę˜€ę˜•ę˜»ę˜‰ę˜®ę˜žę˜¤ę™„ꙗꙙļØ’ę™³ęš™ęš ęš²ęšæę›ŗ꜎ļ¤©ę¦ęž»ę”’ęŸ€ę ę”„ę£ļؓę„ØļØ”ę¦˜ę§¢ęØ°ę©«ę©†ę©³ę©¾ę«¢ę«¤ęƖę°æę±œę²†ę±Æę³šę“„ę¶‡ęµÆ"], + ["fb40", "ę¶–ę¶¬ę·ę·øę·²ę·¼ęø¹ę¹œęø§ęø¼ęŗæę¾ˆę¾µęæµē€…ē€‡ē€Øē‚…ē‚«ē„ē„„ē…œē…†ē…‡ļؕē‡ē‡¾ēŠ±ēŠ¾ēŒ¤ļؖē·ēŽ½ē‰ē–ē£ē’ē‡ēµē¦ēŖē©ē®ē‘¢ē’‰ē’Ÿē”ē•Æēš‚ēšœēšžēš›ēš¦ļؗē†åŠÆē ”ē”Žē”¤ē”ŗē¤°ļؘļؙ"], + ["fb80", "ļؚē¦”ļ؛ē¦›ē«‘ē«§ļ؜ē««ē®žļ؝ēµˆēµœē¶·ē¶ ē·–ē¹’ē½‡ē¾”ļØžčŒč¢čæč‡č¶č‘ˆč’“č•“č•™č•«ļØŸč–°ļØ ļØ”č ‡č£µčؒčØ·č©¹čŖ§čŖ¾č«ŸļØ¢č«¶č­“č­æč³°č³“č“’čµ¶ļØ£č»ļؤļ؄遧郞ļئ鄕鄧釚釗釞釭釮釤釄鈆鈐鈊éˆŗ鉀鈼鉎鉙鉑鈹鉧銧鉷é‰ø鋧鋗鋙鋐ļا鋕鋠鋓錄錔鋻ļØØ錞é‹æ錝錂鍰鍗鎤鏆鏞éø鐱鑅鑈閒ļ§œļة隝éšÆ霳霻靃靍靏靑靕锗锄ļØŖļث餧ļج馞驎髙"], + ["fc40", "髜魵魲鮏鮱鮻鰀鵰鵫ļØ­éø™é»‘"] + ]; +}); + +// node_modules/iconv-lite/encodings/tables/eucjp.json +var require_eucjp = __commonJS((exports, module) => { + module.exports = [ + ["0", "\x00", 127], + ["8ea1", "ļ½”", 62], + ["a1a1", "怀态怂ļ¼Œļ¼Žćƒ»ļ¼šļ¼›ļ¼Ÿļ¼ć‚›ć‚œĀ“ļ½€ĀØļ¼¾ļæ£ļ¼æćƒ½ćƒ¾ć‚ć‚žć€ƒä»ć€…ć€†ć€‡ćƒ¼ā€•ā€ļ¼ļ¼¼ļ½žāˆ„ļ½œā€¦ā€„ā€˜ā€™ā€œā€ļ¼ˆļ¼‰ć€”怕ļ¼»ļ¼½ļ½›ļ½ć€ˆ", 9, "ļ¼‹ļ¼Ā±Ć—Ć·ļ¼ā‰ ļ¼œļ¼žā‰¦ā‰§āˆžāˆ“ā™‚ā™€Ā°ā€²ā€³ā„ƒļæ„ļ¼„ļæ ļæ”ļ¼…ļ¼ƒļ¼†ļ¼Šļ¼ Ā§ā˜†ā˜…ā—‹ā—ā—Žā—‡"], + ["a2a1", "ā—†ā–”ā– ā–³ā–²ā–½ā–¼ā€»ć€’ā†’ā†ā†‘ā†“怓"], + ["a2ba", "āˆˆāˆ‹āŠ†āŠ‡āŠ‚āŠƒāˆŖāˆ©"], + ["a2ca", "āˆ§āˆØļæ¢ā‡’ā‡”āˆ€āˆƒ"], + ["a2dc", "āˆ āŠ„āŒ’āˆ‚āˆ‡ā‰”ā‰’ā‰Ŗā‰«āˆšāˆ½āˆāˆµāˆ«āˆ¬"], + ["a2f2", "ā„«ā€°ā™Æā™­ā™Ŗā€ ā€”Ā¶"], + ["a2fe", "ā—Æ"], + ["a3b0", "ļ¼", 9], + ["a3c1", "ļ¼”", 25], + ["a3e1", "ļ½", 25], + ["a4a1", "恁", 82], + ["a5a1", "ć‚”", 85], + ["a6a1", "Ī‘", 16, "Ī£", 6], + ["a6c1", "Ī±", 16, "Ļƒ", 6], + ["a7a1", "Š", 5, "ŠŠ–", 25], + ["a7d1", "Š°", 5, "ёŠ¶", 25], + ["a8a1", "ā”€ā”‚ā”Œā”ā”˜ā””ā”œā”¬ā”¤ā”“ā”¼ā”ā”ƒā”ā”“ā”›ā”—ā”£ā”³ā”«ā”»ā•‹ā” ā”Æā”Øā”·ā”æā”ā”°ā”„ā”øā•‚"], + ["ada1", "ā‘ ", 19, "ā… ", 9], + ["adc0", "ć‰ćŒ”ćŒ¢ććŒ˜ćŒ§ćŒƒćŒ¶ć‘ć—ćŒćŒ¦ćŒ£ćŒ«ćŠćŒ»ćŽœćŽćŽžćŽŽćŽć„ćŽ”"], + ["addf", "ć»ć€ć€Ÿā„–揍ā„”护", 4, "ćˆ±ćˆ²ćˆ¹ć¾ć½ć¼ā‰’ā‰”āˆ«āˆ®āˆ‘āˆšāŠ„āˆ āˆŸāŠæāˆµāˆ©āˆŖ"], + ["b0a1", "äŗœå”–å؃é˜æå“€ę„›ęŒØå§¶é€¢č‘µčŒœē©ę‚Ŗę”ęø„ꗭ葦芦éÆµę¢“åœ§ę–”ę‰±å®›å§č™»é£“ēµ¢ē¶¾é®Žęˆ–ē²Ÿč¢·å®‰åŗµęŒ‰ęš—ę”ˆé—‡éžęä»„伊位依偉囲夷委åØå°‰ęƒŸę„ę…°ę˜“ę¤…ē‚ŗē•ē•°ē§»ē¶­ē·ÆčƒƒčŽč”£č¬‚é•éŗ医äŗ•äŗ„åŸŸč‚²éƒē£Æäø€å£±ęŗ¢é€øēزčŒØ芋é°Æå…å°å’½å“”å› å§»å¼•é£²ę·«čƒ¤č”­"], + ["b1a1", "院陰隠韻吋右宇ēƒē¾½čæ‚é›ØåÆ鵜ēŖŗäø‘ē¢“č‡¼ęø¦å˜˜å”„ę¬č”šé°»å§„åŽ©ęµ¦ē“œé–å™‚äŗ‘é‹é›²čé¤Œå”å–¶å¬°å½±ę˜ ę›³ę „ę°øę³³ę“©ē‘›ē›ˆē©Žé “č‹±č”›č© é‹­ę¶²ē–«ē›Šé§…ę‚¦č¬č¶Šé–²ę¦ŽåŽ­å††åœ’å °å„„å®“延ę€ØęŽ©ę“ę²æę¼”ē‚Žē„”ē…™ē‡•ēŒæēøč‰¶č‹‘č–—é é‰›é“›å”©ę–¼ę±šē”„凹央億往åæœ"], + ["b2a1", "ęŠ¼ę—ŗęØŖ꬧ꮓēŽ‹ēæč„–é“¬é“Žé»„å²”ę²–č»å„„å±‹ę†¶č‡†ę”¶ē‰”乙äæŗåøꁩęø©ē©éŸ³äø‹åŒ–仮何伽侔佳加åÆ嘉夏嫁家åÆ”ē§‘ęš‡ęžœęž¶ę­Œę²³ē«ē‚ē¦ē¦¾ēؼē®‡čŠ±č‹›čŒ„č·čÆč“č¦čŖ²å˜©č²Øčæ¦éŽéœžčšŠäæ„å³Øꈑē‰™ē”»č‡„čŠ½č›¾č³€é›…é¤“é§•ä»‹ä¼šč§£å›žå”Šå£Šå»»åæ«ę€Ŗę‚”ę¢ę‡ęˆ’ę‹ę”¹"], + ["b3a1", "é­ę™¦ę¢°ęµ·ē°ē•Œēš†ēµµčŠ„čŸ¹é–‹éšŽč²å‡±åŠ¾å¤–å’³å®³å“–ę…Øꦂę¶Æē¢č“‹č”—č©²éŽ§éŖø구é¦Øč›™åž£ęŸæč›ŽéˆŽåŠƒåš‡å„å»“ę‹”ę’¹ę ¼ę øę®»ē²ē¢ŗē©«č¦šč§’čµ«č¼ƒéƒ­é–£éš”é©å­¦å²³ę„½é”é”ŽęŽ›ē¬ ęØ«ę©æę¢¶é°ę½Ÿå‰²å–ę°ę‹¬ę“»ęø‡ę»‘č‘›č¤č½„äø”é°¹å¶ę¤›ęØŗ鞄ę Ŗ兜ē«ƒč’²é‡œéŽŒå™›é“Øę ¢čŒ…č±"], + ["b4a1", "ē²„åˆˆč‹…ē“¦ä¹¾ä¾ƒå† åƒ刊勘勧巻喚å Ŗ姦完官åÆ›å¹²å¹¹ę‚£ę„Ÿę…£ę†¾ę›ę•¢ęŸ‘ę”“ę£ŗę¬¾ę­“ę±—ę¼¢ę¾—ę½…ē’°ē”˜ē›£ēœ‹ē«æē®”ē°”ē·©ē¼¶ēæ°č‚č‰¦čŽžč¦³č«Œč²«é‚„鑑間閑関附韓é¤Ø舘äøø含å²ø巌ēŽ©ē™Œēœ¼å²©ēæ«č“‹é›é ‘锔锘企伎危喜å™ØåŸŗ儇嬉åƄ岐åøŒå¹¾åæŒę®ęœŗę——ę—¢ęœŸę£‹ę£„"], + ["b5a1", "ę©Ÿåø°ęÆ…ę°—ę±½ē•æē„ˆå­£ē؀ē“€å¾½č¦čØ˜č²“čµ·č»Œč¼é£¢é؎鬼äŗ€å½å„€å¦“宜ęˆÆꊀꓬę¬ŗēŠ ē–‘ē„‡ē¾©čŸ»čŖ¼č­°ęŽ¬čŠéž å‰åƒå–«ę””ę©˜č©°ē §ęµé»å“å®¢č„šč™é€†äø˜ä¹…仇休及åøå®®å¼“ę€„ę•‘ęœ½ę±‚ę±²ę³£ēøēƒē©¶ēŖ®ē¬ˆē“šē³¾ēµ¦ę—§ē‰›åŽ»å±…å·Øꋒꋠꌙęø č™ščØ±č·é‹øę¼ē¦¦é­šäŗØäŗ«äŗ¬"], + ["b6a1", "供侠僑兇ē«¶å…±å‡¶å”匔åæ叫喬境峔強彊ę€Æęę­ęŒŸę•™ę©‹ę³ē‹‚ē‹­ēŸÆčƒøč„…čˆˆč•Žéƒ·é”éŸæé„—é©šä»°å‡å°­ęšę„­å±€ę›²ę„µēŽ‰ę”ē²åƒ…å‹¤å‡å·¾éŒ¦ę–¤ę¬£ę¬½ē“ē¦ē¦½ē­‹ē·ŠčŠ¹čŒč”æč„Ÿč¬¹čæ‘金吟銀九倶叄åŒŗē‹—ēŽ–ēŸ©č‹¦čŗÆé§†é§ˆé§’å…·ę„šč™žå–°ē©ŗ偶åƓ遇隅äø²ę«›é‡§å±‘屈"], + ["b7a1", "ꎘēŖŸę²“é“č½”ēŖŖē†Šéšˆē²‚ę —ē¹°ę”‘é¬å‹²å›č–«čؓē¾¤č»éƒ”å¦č¢ˆē„äæ‚傾刑兄啓圭ēŖåž‹å„‘å½¢å¾„ęµę…¶ę…§ę†©ęŽ²ęŗꕬę™Æꔂęø“ē•¦ēؽē³»ēµŒē¶™ē¹‹ē½«čŒŽčŠč›čØˆč©£č­¦č»½é šé¶čŠøčæŽéÆØåŠ‡ęˆŸę’ƒęæ€éš™ę”å‚‘ꬠę±ŗę½”ē©“ēµč”€čØ£ęœˆä»¶å€¹å€¦å„å…¼åˆø剣喧圏堅嫌å»ŗę†²ę‡øę‹³ę²"], + ["b8a1", "ꤜęØ©ē‰½ēŠ¬ēŒ®ē ”ē”Æēµ¹ēœŒč‚©č¦‹č¬™č³¢č»’遣鍵é™ŗ锕éؓé¹ø元原厳幻弦ęø›ęŗēŽ„ē¾ēµƒčˆ·č؀č«ŗ限乎個古呼å›ŗ姑孤己åŗ«å¼§ęˆøꕅęžÆę¹–ē‹ē³Šč¢“č‚”čƒ”č°č™ŽčŖ‡č·Ø鈷雇锧鼓äŗ”äŗ’伍午呉吾åØÆå¾Œå¾”ę‚Ÿę¢§ęŖŽē‘šē¢čŖžčŖ¤č­·é†ä¹žéƉäŗ¤ä½¼ä¾Æ候倖光公功効勾厚口向"], + ["b9a1", "后喉坑垢儽孔孝宏巄巧巷å¹øåŗƒåŗšåŗ·å¼˜ę’ę…ŒęŠ—ę‹˜ęŽ§ę”»ę˜‚ę™ƒę›“ę­ę ”ę¢—ę§‹ę±Ÿę“Ŗ굩ęøÆęŗē”²ēš‡ē”¬ēØæē³ ē“…ē“˜ēµžē¶±č€•č€ƒč‚Æč‚±č…”č†čˆŖč’č”Œč””č¬›č²¢č³¼éƒŠé…µé‰±ē æé‹¼é–¤é™é …é¦™é«˜é“»å‰›åŠ«å·åˆå£•ę‹·ęæ č±Ŗč½Ÿéŗ¹å…‹åˆ»å‘Šå›½ē©€é…·éµ é»’ē„ę¼‰č…°ē”‘åæ½ęƒšéŖØē‹›č¾¼"], + ["baa1", "ę­¤é ƒä»Šå›°å¤å¢¾å©šęØę‡‡ę˜ę˜†ę ¹ę¢±ę··ē—•ē“ŗ艮魂äŗ›ä½å‰å”†åµÆå·¦å·®ęŸ»ę²™ē‘³ē ‚č©éŽ–č£Ÿååŗ§ęŒ«å‚µå‚¬å†ęœ€å“‰å”žå¦»å®°å½©ę‰ęŽ”ę ½ę­³ęøˆē½é‡‡ēŠ€ē •ē ¦ē„­ę–Žē“°čœč£č¼‰éš›å‰¤åœØꝐē½Ŗč²”å†“å‚é˜Ŗå ŗę¦Šč‚“å’²å“ŽåŸ¼ē¢•é·ŗä½œå‰Šå’‹ę¾ę˜Øęœ”ęŸµēŖ„ē­–ē“¢éŒÆę”œé®­ē¬¹åŒ™å†Šåˆ·"], + ["bba1", "åÆŸę‹¶ę’®ę“¦ęœ­ę®ŗ薩雑ēšéÆ–ęŒéŒ†é®«ēšæꙒäø‰å‚˜å‚å±±ęƒØę’’ę•£ę”Ÿē‡¦ēŠē”£ē®—ēŗ‚čš•č®ƒč³›é…ø餐ꖬꚫꮋ仕仔ä¼ŗä½æåˆŗåø史嗣四士始姉å§æ子屍åø‚åø«åæ—ę€ęŒ‡ę”Æ孜ę–Æę–½ę—Øęžę­¢ę­»ę°ē…ē„‰ē§ē³øē“™ē“«č‚¢č„‚č‡³č¦–č©žč©©č©¦čŖŒč«®č³‡č³œé›Œé£¼ę­Æäŗ‹ä¼¼ä¾å…å­—åÆŗꅈꌁꙂ"], + ["bca1", "ę¬”ę»‹ę²»ēˆ¾ē’½ē—”ē£ē¤ŗč€Œč€³č‡Ŗč’”č¾žę±é¹æå¼č­˜é“«ē«ŗč»ø宍雫äøƒå±åŸ·å¤±å«‰å®¤ę‚‰ę¹æę¼†ē–¾č³Ŗå®Ÿč”€ēÆ å²ęŸ“čŠå±”č•ŠēøžčˆŽå†™å°„ęØčµ¦ę–œē…®ē¤¾ē“—č€…č¬č»Šé®č›‡é‚Ŗ借å‹ŗå°ŗꝓē¼ēˆµé…Œé‡ˆéŒ«č‹„åÆ‚å¼±ęƒ¹äø»å–å®ˆę‰‹ęœ±ę®Šē‹©ē ēØ®č…«č¶£é…’é¦–å„’å—å‘ŖåÆæꎈęعē¶¬éœ€å›šåŽå‘Ø"], + ["bda1", "宗就州äæ®ę„ę‹¾ę“²ē§€ē§‹ēµ‚ē¹ēæ’č‡­čˆŸč’č”†č„²č®č¹“č¼Æé€±é…‹é…¬é›†é†œä»€ä½å……åå¾“ęˆŽęŸ”ę±ęø‹ē£ēø¦é‡éŠƒå”夙å®æę·‘ē„ēø®ē²›å”¾ē†Ÿå‡ŗ蔓čæ°äæŠå³»ę˜„ēž¬ē«£čˆœé§æ准å¾Ŗę—¬ę„Æę®‰ę·³ęŗ–ę½¤ē›¾ē“”å·”éµé†‡é †å‡¦åˆę‰€ęš‘ę›™ęøšåŗ¶ē·’ē½²ę›øč–Æč—·č«ø助叙儳åŗå¾ę•é‹¤é™¤å‚·å„Ÿ"], + ["bea1", "勝匠升召å“Ø商唱嘗å„Ø妾åؼ宵将小少尚åŗ„åŗŠå» å½°ę‰æęŠ„ę‹›ęŽŒę·ę˜‡ę˜Œę˜­ę™¶ę¾ę¢¢ę؟ęØµę²¼ę¶ˆęø‰ę¹˜ē„¼ē„¦ē…§ē—‡ēœē”ē¤ē„„ē§°ē« ē¬‘ē²§ē“¹č‚–č–č’‹č•‰č”č£³č؟čØ¼č©”č©³č±”č³žé†¤é‰¦é¾é˜éšœéž˜äøŠäøˆäøžä¹—冗剰城堓壌嬢åøøęƒ…ę“¾ę”ę–ęµ„ēŠ¶ē•³ē©£č’øč­²é†ø錠嘱埓飾"], + ["bfa1", "ę‹­ę¤ę®–ē‡­ē¹”č·č‰²č§¦é£Ÿč•č¾±å°»ä¼øäæ”侵唇åØ åƝåÆ©åæƒę…ŽęŒÆę–°ę™‹ę£®ę¦›ęµøę·±ē”³ē–¹ēœŸē„žē§¦ē“³č‡£čŠÆč–Ŗč¦ŖčØŗčŗ«č¾›é€²é‡éœ‡äŗŗ仁刃唵壬尋ē”šå°½č…Žč؊čæ…陣靭ē¬„č«é ˆé…¢å›³åŽØ逗吹垂åø„ęŽØę°“ē‚Šē”ē²‹ēæ č”°é‚酔錐錘随ē‘žé«„å“‡åµ©ę•°ęž¢č¶Øé››ę®ę‰ę¤™č…é —é›€č£¾"], + ["c0a1", "ę¾„ę‘ŗåÆøäø–ē€¬ē•ę˜Æå‡„åˆ¶å‹¢å§“å¾ę€§ęˆę”æę•“ę˜Ÿę™“ę£²ę –ę­£ęø…ē‰²ē”Ÿē››ē²¾č–å£°č£½č„æčŖ čŖ“č«‹é€é†’é’é™ę–‰ēØŽč„†éš»åø­ęƒœęˆšę–„ꘔꞐēŸ³ē©ē±ēø¾č„Šč²¬čµ¤č·”č¹Ÿē¢©åˆ‡ę‹™ęŽ„ꑂꊘčØ­ēŖƒēƀčŖ¬é›Ŗēµ¶čˆŒč‰ä»™å…ˆåƒå å®£å°‚å°–å·ęˆ¦ę‰‡ę’°ę “ę “ę³‰ęµ…ę“—ęŸ“ę½œē…Žē…½ę—‹ē©æē®­ē·š"], + ["c1a1", "ē¹Šē¾Øč…ŗčˆ›čˆ¹č–¦č©®č³Žč·µéø遷銭銑閃鮮前善ę¼øē„¶å…Øē¦…ē¹•č†³ē³Žå™Œå”‘å²ØęŽŖę›¾ę›½ę„šē‹™ē–ē–Žē¤Žē„–ē§Ÿē²—ē“ ēµ„č˜‡čؓ阻達鼠僧創双叢倉å–Ŗ壮儏ēˆ½å®‹å±¤åŒęƒ£ęƒ³ęœęŽƒęŒæęŽ»ę“ę—©ę›¹å·£ę§ę§½ę¼•ē‡„äŗ‰ē—©ē›øēŖ“ē³Ÿē·ē¶œč”č‰č˜č‘¬č’¼č—»č£…čµ°é€é­éŽ—éœœéØ’åƒå¢—ę†Ž"], + ["c2a1", "č‡“č”µč“ˆé€ äæƒå“則即ęÆꍉꝟęø¬č¶³é€Ÿäæ—å±žč³Šę—ē¶šå’č¢–å…¶ęƒå­˜å­«å°Šęę‘éœä»–å¤šå¤Ŗę±°č©‘å”¾å •å¦„ęƒ°ę‰“ęŸčˆµę„•é™€é§„éØØ体堆åÆ¾č€å²±åøÆå¾…ę€ ę…‹ęˆ“ę›æę³°ę»žčƒŽč…æč‹”č¢‹č²ø退逮隊黛éƛ代台大ē¬¬é†é”Œé·¹ę»ē€§å“å•„å®…ę‰˜ęŠžę‹“ę²¢ęæÆē¢čؗéøęæč«¾čŒø凧č›øåŖ"], + ["c3a1", "å©ä½†é”č¾°å„Ŗč„±å·½ē«Ŗč¾æę£šč°·ē‹ø鱈ęؽčŖ°äø¹å˜å˜†å¦ę‹…ęŽ¢ę—¦ę­Žę·”ę¹›ē‚­ēŸ­ē«Æē®Ŗē¶»č€½čƒ†č›‹čŖ•é›å›£å£‡å¼¾ę–­ęš–ęŖ€ę®µē”·č«‡å€¤ēŸ„åœ°å¼›ę„ę™ŗę± ē—“ēؚē½®č‡“čœ˜é…é¦³ēƉē•œē«¹ē­‘蓄逐ē§©ēŖ’čŒ¶å«”ē€äø­ä»²å®™åæ ęŠ½ę˜¼ęŸ±ę³Ø虫蔷čػ酎鋳駐ęؗē€¦ēŒŖ苧著č²Æäøå…†å‡‹å–‹åƵ"], + ["c4a1", "åø–åø³åŗå¼”å¼µå½«å¾“ę‡²ęŒ‘ęš¢ęœę½®ē‰’ē”ŗēœŗč“č„¹č…øč¶čŖæč«œč¶…č·³éŠšé•·é ‚é³„å‹…ę—ē›“ęœ•ę²ˆēč³ƒéŽ®é™³ę“„å¢œę¤Žę§Œčæ½éŽšē—›é€šå”šę ‚ęŽ“ę§»ä½ƒę¼¬ęŸ˜č¾»č”¦ē¶“鍔ę¤æę½°åŖ壷嬬ē“¬ēˆŖ吊釣鶓äŗ­ä½Žåœåµå‰ƒč²žå‘ˆå ¤å®šåøåŗ•åŗ­å»·å¼Ÿę‚ŒęŠµęŒŗꏐę¢Æę±€ē¢‡ē¦Žē؋ē· č‰‡čØ‚č«¦č¹„é€“"], + ["c5a1", "é‚øé„­é‡˜é¼Žę³„ę‘˜ę“¢ę•µę»“ēš„ē¬›é©é‘ęŗŗå“²å¾¹ę’¤č½čæ­é‰„å…ø唫天展åŗ—ę·»ēŗē”œč²¼č»¢é”›ē‚¹ä¼ę®æę¾±ē”°é›»å…Žåå µå”—å¦¬å± å¾’ę–—ęœęø”ē™»čŸč³­é€”都鍍ē „ē ŗåŠŖåŗ¦åœŸå„“ę€’å€’å…šå†¬å‡åˆ€å”å””å”˜å„—å®•å³¶å¶‹ę‚¼ęŠ•ę­ę±ę”ƒę¢¼ę£Ÿē›—ę·˜ę¹Æ궛ēÆē‡ˆå½“ē—˜ē„·ē­‰ē­”ē­’ē³–ēµ±åˆ°"], + ["c6a1", "č‘£č•©č—¤čØŽč¬„č±†čøé€ƒé€é™é™¶é ­éØ°é—˜åƒå‹•åŒå ‚å°Žę†§ę’žę“žēž³ē«„čƒ“č„é“éŠ…å³ é“‡åŒæå¾—å¾³ę¶œē‰¹ē£ē¦æēƤęƒē‹¬čŖ­ę ƒę©”å‡øēŖę¤“å±Šé³¶č‹«åƅ酉ē€žå™øå±Æęƒ‡ę•¦ę²Œč±šéé “å‘‘ę›‡éˆå„ˆé‚£å†…ä¹å‡Ŗ薙謎ē˜ęŗé‹ę„¢é¦“ēø„ē•·å—ę„ č»Ÿé›£ę±äŗŒå°¼å¼čæ©åŒ‚č³‘č‚‰č™¹å»æę—„ä¹³å…„"], + ["c7a1", "如å°æ韮任妊åæčŖęæ”ē¦°ē„¢åÆ§č‘±ēŒ«ē†±å¹“åæµę»ę’šē‡ƒē²˜ä¹ƒå»¼ä¹‹åŸœåš¢ę‚©ęæƒē“čƒ½č„³č†æč¾²č¦—čš¤å·“ęŠŠę’­č¦‡ę·ę³¢ę“¾ē¶ē “婆ē½µčŠ­é¦¬äæ³å»ƒę‹ęŽ’ę•—ęÆē›ƒē‰ŒčƒŒč‚ŗč¼©é…å€åŸ¹åŖ’ę¢…ę„³ē…¤ē‹½č²·å£²č³ é™Ŗ這čæē§¤ēŸ§č©ä¼Æå‰„åšę‹ęŸę³Šē™½ē®”ē²•čˆ¶č–„čæ«ę›ę¼ ēˆ†ēø›čŽ«é§éŗ¦"], + ["c8a1", "函ē®±ē”²ē®ø肇ē­ˆę«Øå¹”č‚Œē•‘ē• å…«é‰¢ęŗŒē™ŗ醗é«Ŗ伐ē½°ęŠœē­é–„鳩å™ŗå”™č›¤éš¼ä¼“åˆ¤åŠåå›åø†ę¬ę–‘ęæę°¾ę±Žē‰ˆēŠÆē­ē•”ē¹čˆ¬č—©č²©ēƄ釆ē…©é ’é£ÆęŒ½ę™©ē•Ŗē›¤ē£č•ƒč›®åŒŖ卑否妃åŗ‡å½¼ę‚²ę‰‰ę‰¹ęŠ«ę–ęÆ”ę³Œē–²ēš®ē¢‘ē§˜ē·‹ē½·č‚„č¢«čŖ¹č²»éæ非飛ę؋ē°øå‚™å°¾å¾®ęž‡ęƘēµēœ‰ē¾Ž"], + ["c9a1", "é¼»ęŸŠēؗ匹ē–‹é«­å½¦č†č±č‚˜å¼¼åæ…ē•¢ē­†é€¼ę”§å§«åŖ›ē“ē™¾č¬¬äæµå½ŖęØ™ę°·ę¼‚ē“¢ē„Øč”Øč©•č±¹å»Ÿęē—…ē§’č‹—éŒØé‹²č’œč›­é°­å“å½¬ę–Œęµœē€•č²§č³“é »ę•ē“¶äøä»˜åŸ å¤«å©¦åƌå†Øåøƒåŗœę€–ꉶꕷꖧꙮ굮ēˆ¶ē¬¦č…č†ščŠ™č­œč² č³¦čµ“é˜œé™„ä¾®ę’«ę­¦čˆžč‘”č•ŖéƒØå°ę„“é¢Øč‘ŗč•—ä¼å‰Æå¾©å¹…ęœ"], + ["caa1", "ē¦č…¹č¤‡č¦†ę·µå¼—ꉕę²ø仏ē‰©é®’åˆ†å»å™“å¢³ę†¤ę‰®ē„šå„®ē²‰ē³žē“›é›°ę–‡čžäø™ä½µå…µå”€å¹£å¹³å¼ŠęŸ„äø¦č”½é–‰é™›ē±³é åƒ»å£ē™–ē¢§åˆ„ēž„蔑ē®†åå¤‰ē‰‡ēƇē·Øč¾ŗčæ”遍ä¾æ勉åة弁鞭äæčˆ—é‹Ŗåœƒę•ę­©ē”«č£œč¼”ē©‚å‹Ÿå¢“ę…•ęˆŠęš®ęƍē°æč©å€£äæø包呆報儉宝峰å³Æå“©åŗ–ęŠ±ę§ę”¾ę–¹ęœ‹"], + ["cba1", "ę³•ę³”ēƒ¹ē ²ēø«čƒžčŠ³čŒč“¬čœ‚褒čØŖč±Šé‚¦é‹’é£½é³³éµ¬ä¹äŗ”傍剖坊å¦Øåø½åæ˜åæ™ęˆæęš“ęœ›ęŸę£’å†’ē“”č‚Ŗč†Øč¬€č²Œč²æ鉾防吠頬北僕卜å¢Øę’²ęœ“ē‰§ē¦ē©†é‡¦å‹ƒę²”ę®†å €å¹Œå„”ęœ¬ēæ»å‡”ē›†ę‘©ē£Ø魔éŗ»åŸ‹å¦¹ę˜§ęžšęÆŽå“©ę§™å¹•č†œęž•é®ŖęŸ¾é±’ę”äŗ¦äæ£åˆęŠ¹ęœ«ę²«čæ„ä¾­ē¹­éŗæäø‡ę…¢ęŗ€"], + ["cca1", "ę¼«č”“å‘³ęœŖ魅巳ē®•å²¬åÆ†čœœę¹Šč“‘ēØ”č„ˆå¦™ē²ę°‘ēœ å‹™å¤¢ē„”ē‰ŸēŸ›éœ§éµ”ꤋå©æåØ˜å†„åå‘½ę˜Žē›Ÿčæ·éŠ˜é³“å§Ŗē‰ę»…å…ę£‰ē¶æē·¬é¢éŗŗę‘øęØ”čŒ‚å¦„å­ŸęƛēŒ›ē›²ē¶²č€—č’™å„²ęœØ黙ē›®ę¢å‹æé¤…å°¤ęˆ»ē±¾č²°å•ę‚¶ē“‹é–€åŒä¹Ÿå†¶å¤œēˆŗč€¶é‡Žå¼„ēŸ¢åŽ„å½¹ē“„č–¬čسčŗé–ęŸ³č–®é‘“ę„‰ę„ˆę²¹ē™’"], + ["cda1", "č«­č¼øå”Æ佑å„Ŗå‹‡å‹å®„å¹½ę‚ ę†‚ę–ęœ‰ęŸšę¹§ę¶ŒēŒ¶ēŒ·ē”±ē„č£•čŖ˜éŠé‚‘éƒµé›„čžå¤•äŗˆä½™äøŽčŖ‰č¼æ預傭幼妖容åŗøꏚęŗę“ę›œę„Šę§˜ę“‹ęŗ¶ē†”ē”ØēŖÆē¾Šč€€č‘‰č“‰č¦č¬”čøŠé„é™½é¤Šę…¾ęŠ‘ę¬²ę²ƒęµ“ēæŒēæ¼ę·€ē¾…čžŗč£øę„čŽ±é ¼é›·ę“›ēµ”č½é…Ŗä¹±åµåµę¬„ęæ«č—č˜­č¦§åˆ©åå±„Ꝏę¢Øē†ē’ƒ"], + ["cea1", "ē—¢č£č£”里離é™ø律ēŽ‡ē«‹č‘ŽęŽ ē•„åŠ‰ęµęŗœē‰ē•™ē”«ē²’隆ē«œé¾ä¾¶ę…®ę—…č™œäŗ†äŗ®åƒšäø”凌åÆ®ę–™ę¢ę¶¼ēŒŸē™‚ēž­ē؜ē³§č‰Æč«’é¼é‡é™µé ˜åŠ›ē·‘å€«åŽ˜ęž—ę·‹ē‡ē³č‡Øč¼Ŗ隣鱗éŗŸē‘ å”ę¶™ē“Æ锞令伶例冷励å¶ŗꀜēŽ²ē¤¼č‹“鈓隷零霊éŗ—é½¢ęš¦ę­“列劣ēƒˆč£‚å»‰ę‹ę†ę¼£ē…‰ē°¾ē·“čÆ"], + ["cfa1", "č“®é€£éŒ¬å‘‚é­Æę«“ē‚‰č³‚č·Æéœ²åŠ“å©å»Šå¼„ęœ—ę„¼ę¦”ęµŖę¼ē‰¢ē‹¼ēÆ­č€č¾č‹éƒŽå…­éŗ“ē¦„č‚‹éŒ²č«–å€­å’Œč©±ę­Ŗč³„č„‡ęƒ‘ęž é·²äŗ™äŗ˜é°č©«č—č•Øę¤€ę¹¾ē¢—č…•"], + ["d0a1", "弌äøäø•äøŖäø±äø¶äø¼äøæ乂乖乘äŗ‚äŗ…豫äŗŠčˆ’弍äŗŽäŗžäŗŸäŗ äŗ¢äŗ°äŗ³äŗ¶ä»Žä»ä»„仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑ä½Æ來侖儘äæ”äæŸäæŽäæ˜äæ›äæ‘äæšäæäæ¤äæ„倚å€Ø倔å€Ŗ倄倅伜äæ¶å€”倩倬äæ¾äæÆå€‘å€†åƒå‡ęœƒå•ååˆåšå–å¬åø傀傚傅傓傲"], + ["d1a1", "僉僊傳僂僖僞僄僭僣僮價僵儉儁儂儖儕儔儚儔å„ŗ儷儼儻å„æ兀兒兌兔兢ē«ø兩å…Ŗ兮冀冂囘册冉冏冑冓冕冖冤冦冢冩å†Ŗå†«å†³å†±å†²å†°å†µå†½å‡…å‡‰å‡›å‡ č™•å‡©å‡­å‡°å‡µå‡¾åˆ„åˆ‹åˆ”åˆŽåˆ§åˆŖ刮刳刹剏剄剋剌剞剔å‰Ŗ剓剩剳å‰æ剽劍劔劒剱劈劑č¾Ø"], + ["d2a1", "č¾§åŠ¬åŠ­åŠ¼åŠµå‹å‹å‹—å‹žå‹£å‹¦é£­å‹ å‹³å‹µå‹ø勹匆匈ē”ø匍匐匏匕匚匣åŒÆ匱匳åŒø區卆卅äø—卉卍凖卞卩卮夘卻卷厂厖厠厦厄厮厰厶參ē°’é›™åŸę›¼ē‡®å®åØ叭åŗ吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢å’ø咄咬哄哈å’Ø"], + ["d3a1", "咫哂咤咾咼哘哄哦唏唔哽哮哭å“ŗ哢唹啀啣啌售啜啅啖啗å”ø唳啝喙喀å’Æ喊喟啻啾喘喞單啼喃喩喇å–Ø嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐ē‡Ÿå˜“嘶嘲å˜ø噫噤å˜Æ噬å™Ŗ嚆嚀嚊嚠嚔嚏嚄嚮嚶嚓囂嚼囁囃囀囈囎囑囓囗囮囹圀å›æ圄圉"], + ["d4a1", "圈國圍圓團圖嗇圜圦圷åœø坎圻址坏坩埀垈坔åæ垉垓垠垳垤åžŖ垰埃埆埔埒埓堊埖埣堋堙堝唲堔唢唋唰ęƀ唒堽唹墅墹墟墫å¢ŗ壞墻å¢ø墮壅壓壑壗壙壘壄壜壤壟å£Æå£ŗå£¹å£»å£¼å£½å¤‚å¤Šå¤å¤›ę¢¦å¤„å¤¬å¤­å¤²å¤ø夾ē«’儕儐儎儚儘儢儠儧儬儩"], + ["d5a1", "å„ø妁妝佞侫妣妲姆å§Ø姜妍姙姚åØ„å؟åؑå؜å؉åؚ婀婬婉åصåض婢å©ŖåŖšåŖ¼åŖ¾å«‹å«‚åŖ½å«£å«—嫦嫩嫖å«ŗ嫻嬌嬋嬖嬲嫐å¬Ŗ嬶嬾孃孅孀孑孕孚孛孄孩孰孳孵å­øꖈå­ŗ宀它宦å®øåƃåƇåƉåƔåƐåƤåƦåÆ¢åƞåÆ„åÆ«åÆ°åƶåƳ尅將專對尓尠尢å°Øå°ø尹屁屆屎屓"], + ["d6a1", "屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽å³ŗ峭嶌å³Ŗ哋哕哗嵜哟哛哑哔哢哚哙哘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵åø‹åøšåø™åø‘åø›åø¶åø·å¹„幃幀幎幗幔幟幢幤幇幵并å¹ŗéŗ¼å¹æåŗ å»å»‚廈廐廏"], + ["d7a1", "廖廣廝廚廛廢廔å»Ø廩廬廱廳廰廓å»ø廾弃弉彝彜弋弑弖弩弭å¼ø彁彈彌彎å¼Æ彑彖彗彙彔彭彳彷徃徂å½æ徊很徑徇從徙徘徠å¾Øå¾­å¾¼åæ–åæ»åæ¤åæøåæ±åæę‚³åææę€”ę ę€™ę€ę€©ę€Žę€±ę€›ę€•ę€«ę€¦ę€ę€ŗꁚꁁęŖę·ęŸęŠę†ęę£ęƒę¤ę‚ę¬ę«ę™ę‚ę‚ęƒ§ę‚ƒę‚š"], + ["d8a1", "ę‚„ę‚›ę‚–ę‚—ę‚’ę‚§ę‚‹ęƒ”ę‚øęƒ ęƒ“ę‚“åæ°ę‚½ęƒ†ę‚µęƒ˜ę…ę„•ę„†ęƒ¶ęƒ·ę„€ęƒ“ęƒŗę„ƒę„”ęƒ»ęƒ±ę„ę„Žę…‡ę„¾ę„Øꄧꅊę„æę„¼ę„¬ę„“ę„½ę…‚ę…„ę…³ę…·ę…˜ę…™ę…šę…«ę…“ę…Æę…„ę…±ę…Ÿę…ę…“ę…µę†™ę†–ę†‡ę†¬ę†”ę†šę†Šę†‘ę†«ę†®ę‡Œę‡Šę‡‰ę‡·ę‡ˆę‡ƒę‡†ę†ŗꇋē½¹ę‡ę‡¦ę‡£ę‡¶ę‡ŗꇓę‡æę‡½ę‡¼ę‡¾ęˆ€ęˆˆęˆ‰ęˆęˆŒęˆ”ęˆ›"], + ["d9a1", "ęˆžęˆ”ęˆŖęˆ®ęˆ°ęˆ²ęˆ³ę‰ę‰Žę‰žę‰£ę‰›ę‰ ę‰Øę‰¼ęŠ‚ęŠ‰ę‰¾ęŠ’ęŠ“ęŠ–ę‹”ęŠƒęŠ”ę‹—ę‹‘ęŠ»ę‹ę‹æę‹†ę“”ę‹ˆę‹œę‹Œę‹Šę‹‚ę‹‡ęŠ›ę‹‰ęŒŒę‹®ę‹±ęŒ§ęŒ‚ęŒˆę‹Æę‹µęęŒ¾ęęœęęŽ–ęŽŽęŽ€ęŽ«ę¶ęŽ£ęŽęŽ‰ęŽŸęŽµę«ę©ęŽ¾ę©ę€ę†ę£ę‰ę’ę¶ę„ę–ę“ę†ę“ę¦ę¶ę”ę—ęØꐏꑧę‘Æꑶꑎę”Ŗę’•ę’“ę’„ę’©ę’ˆę’¼"], + ["daa1", "ę“šę“’ę“…ę“‡ę’»ę“˜ę“‚ę“±ę“§čˆ‰ę“ ę“”ęŠ¬ę“£ę“Æę”¬ę“¶ę““ę“²ę“ŗę”€ę“½ę”˜ę”œę”…ę”¤ę”£ę”«ę”“ę”µę”·ę”¶ę”øē•‹ę•ˆę•–ę••ę•ę•˜ę•žę•ę•²ę•øę–‚ę–ƒč®Šę–›ę–Ÿę–«ę–·ę—ƒę—†ę—ę—„ę—Œę—’ę—›ę—™ę— ę—”ę—±ę²ę˜Šę˜ƒę—»ę³ę˜µę˜¶ę˜“ę˜œę™ę™„ę™‰ę™ę™žę™ę™¤ę™§ę™Øę™Ÿę™¢ę™°ęšƒęšˆęšŽęš‰ęš„ęš˜ęšę›ęš¹ę›‰ęš¾ęš¼"], + ["dba1", "ꛄęšøꛖꛚꛠę˜æę›¦ę›©ę›°ę›µę›·ęœęœ–ęœžęœ¦ęœ§éœøęœ®ęœæęœ¶ęęœøęœ·ę†ęžę ę™ę£ę¤ęž‰ę°ęž©ę¼ęŖęžŒęž‹ęž¦ęž”ęž…ęž·ęŸÆęž“ęŸ¬ęž³ęŸ©ęžøęŸ¤ęŸžęŸęŸ¢ęŸ®ęž¹ęŸŽęŸ†ęŸ§ęŖœę žę”†ę ©ę”€ę”ę ²ę”Žę¢³ę «ę”™ę”£ę”·ę”æę¢Ÿę¢ę¢­ę¢”ę¢ę¢›ę¢ƒęŖ®ę¢¹ę”“ę¢µę¢ ę¢ŗę¤ę¢ę”¾ę¤ę£Šę¤ˆę£˜ę¤¢ę¤¦ę£”ę¤Œę£"], + ["dca1", "ę£”ę£§ę£•ę¤¶ę¤’ę¤„ę£—ę££ę¤„ę£¹ę£ ę£Æę¤Øę¤Ŗę¤šę¤£ę¤”ę£†ę„¹ę„·ę„œę„øę„«ę„”ę„¾ę„®ę¤¹ę„“ę¤½ę„™ę¤°ę„”ę„žę„ę¦ę„Ŗę¦²ę¦®ę§ę¦æę§ę§“ę¦¾ę§ŽåÆØę§Šę§ę¦»ę§ƒę¦§ęØ®ę¦‘ę¦ ę¦œę¦•ę¦“ę§žę§Øę؂ę؛ę§æę¬Šę§¹ę§²ę§§ęØ…ę¦±ęØžę§­ęØ”ę§«ę؊ęØ’ę«ęØ£ęØ“ę©„ęØŒę©²ęضę©øę©‡ę©¢ę©™ę©¦ę©ˆęØøęØ¢ęŖęŖęŖ ęŖ„ęŖ¢ęŖ£"], + ["dda1", "ęŖ—č˜—ęŖ»ę«ƒę«‚ęŖøęŖ³ęŖ¬ę«žę«‘ę«ŸęŖŖę«šę«Ŗę«»ę¬…č˜–ę«ŗę¬’ę¬–é¬±ę¬Ÿę¬øꬷē›œę¬¹é£®ę­‡ę­ƒę­‰ę­ę­™ę­”ę­›ę­Ÿę­”ę­øę­¹ę­æę®€ę®„ę®ƒę®ę®˜ę®•ę®žę®¤ę®Ŗꮫę®Æę®²ę®±ę®³ę®·ę®¼ęƆęƋęƓęƟęƬęÆ«ęƳęÆÆéŗ¾ę°ˆę°“ę°”ę°›ę°¤ę°£ę±žę±•ę±¢ę±Ŗę²‚ę²ę²šę²ę²›ę±¾ę±Øę±³ę²’ę²ę³„ę³±ę³“ę²½ę³—ę³…ę³ę²®ę²±ę²¾"], + ["dea1", "ę²ŗę³›ę³Æę³™ę³Ŗę“Ÿč”ę“¶ę“«ę“½ę“øę“™ę“µę“³ę“’ę“Œęµ£ę¶“ęµ¤ęµšęµ¹ęµ™ę¶Žę¶•ęæ¤ę¶…ę·¹ęø•ęøŠę¶µę·‡ę·¦ę¶øę·†ę·¬ę·žę·Œę·Øę·’ę·…ę·ŗ귙귤귕ę·Ŗę·®ęø­ę¹®ęø®ęø™ę¹²ę¹Ÿęø¾ęø£ę¹«ęø«ę¹¶ę¹ęøŸę¹ƒęøŗę¹Žęø¤ę»æęøęøøęŗ‚ęŗŖęŗ˜ę»‰ęŗ·ę»“ęŗ½ęŗÆ껄ęŗ²ę»”껕ęŗęŗ„껂ęŗŸę½ę¼‘ēŒę»¬ę»øę»¾ę¼æę»²ę¼±ę»Æę¼²ę»Œ"], + ["dfa1", "ę¼¾ę¼“ę»·ę¾†ę½ŗę½øę¾ę¾€ę½Æę½›ęæ³ę½­ę¾‚ę½¼ę½˜ę¾Žę¾‘ęæ‚ę½¦ę¾³ę¾£ę¾”ę¾¤ę¾¹ęæ†ę¾ŖęæŸęæ•ęæ¬ęæ”ęæ˜ęæ±ęæ®ęæ›ē€‰ē€‹ęæŗē€‘ē€ē€ęæ¾ē€›ē€šę½“ē€ē€˜ē€Ÿē€°ē€¾ē€²ē‘ē£ē‚™ē‚’ē‚Æēƒ±ē‚¬ē‚øē‚³ē‚®ēƒŸēƒ‹ēƒēƒ™ē„‰ēƒ½ē„œē„™ē…„ē…•ē†ˆē…¦ē…¢ē…Œē…–ē…¬ē†ē‡»ē†„ē†•ē†Øē†¬ē‡—ē†¹ē†¾ē‡’ē‡‰ē‡”ē‡Žē‡ ē‡¬ē‡§ē‡µē‡¼"], + ["e0a1", "ē‡¹ē‡æēˆēˆēˆ›ēˆØēˆ­ēˆ¬ēˆ°ēˆ²ēˆ»ēˆ¼ēˆæē‰€ē‰†ē‰‹ē‰˜ē‰“ē‰¾ēŠ‚ēŠēŠ‡ēŠ’ēŠ–ēŠ¢ēŠ§ēŠ¹ēŠ²ē‹ƒē‹†ē‹„ē‹Žē‹’ē‹¢ē‹ ē‹”ē‹¹ē‹·å€ēŒ—ēŒŠēŒœēŒ–ēŒēŒ“ēŒÆēŒ©ēŒ„ēŒ¾ēŽēé»˜ē—ēŖēØē°ēøēµē»ēŗēˆēŽ³ēŽēŽ»ē€ē„ē®ēžē’¢ē…ē‘Æē„ēøē²ēŗē‘•ēæē‘Ÿē‘™ē‘ē‘œē‘©ē‘°ē‘£ē‘Ŗē‘¶ē‘¾ē’‹ē’žē’§ē“Šē“ē“”ē±"], + ["e1a1", "ē“ ē“£ē“§ē“©ē“®ē“²ē“°ē“±ē“øē“·ē”„ē”ƒē”…ē”Œē”Žē”ē”•ē”“ē”žē”¦ē”¬ē”¼ē•„ē•ē•Šē•‰ē•›ē•†ē•šē•©ē•¤ē•§ē•«ē•­ē•øē•¶ē–†ē–‡ē•“ē–Šē–‰ē–‚ē–”ē–šē–ē–„ē–£ē—‚ē–³ē—ƒē–µē–½ē–øē–¼ē–±ē—ē—Šē—’ē—™ē—£ē—žē—¾ē—æē—¼ē˜ē—°ē—ŗē—²ē—³ē˜‹ē˜ē˜‰ē˜Ÿē˜§ē˜ ē˜”ē˜¢ē˜¤ē˜“ē˜°ē˜»ē™‡ē™ˆē™†ē™œē™˜ē™”ē™¢ē™Øē™©ē™Ŗē™§ē™¬ē™°"], + ["e2a1", "ē™²ē™¶ē™øē™¼ēš€ēšƒēšˆēš‹ēšŽēš–ēš“ēš™ēššēš°ēš“ēšøēš¹ēšŗē›‚ē›ē›–ē›’ē›žē›”ē›„ē›§ē›Ŗč˜Æē›»ēœˆēœ‡ēœ„ēœ©ēœ¤ēœžēœ„ēœ¦ēœ›ēœ·ēœøē‡ēšēØē«ē›ē„ēæē¾ē¹ēžŽēž‹ēž‘ēž ēžžēž°ēž¶ēž¹ēžæēž¼ēž½ēž»ēŸ‡ēŸēŸ—ēŸšēŸœēŸ£ēŸ®ēŸ¼ē Œē ’ē¤¦ē  ē¤Ŗē”…ē¢Žē”“ē¢†ē”¼ē¢šē¢Œē¢£ē¢µē¢Ŗē¢Æē£‘ē£†ē£‹ē£”ē¢¾ē¢¼ē£…ē£Šē£¬"], + ["e3a1", "ē£§ē£šē£½ē£“ē¤‡ē¤’ē¤‘ē¤™ē¤¬ē¤«ē„€ē„ ē„—ē„Ÿē„šē„•ē„“ē„ŗē„æē¦Šē¦ē¦§é½‹ē¦Ŗē¦®ē¦³ē¦¹ē¦ŗē§‰ē§•ē§§ē§¬ē§”ē§£ē؈ē؍ēؘēؙēØ ē؟ē¦€ēرēØ»ēؾēØ·ē©ƒē©—ē©‰ē©”ē©¢ē©©é¾ē©°ē©¹ē©½ēŖˆēŖ—ēŖ•ēŖ˜ēŖ–ēŖ©ē«ˆēŖ°ēŖ¶ē«…ē«„ēŖæ邃ē«‡ē«Šē«ē«ē«•ē«“ē«™ē«šē«ē«”ē«¢ē«¦ē«­ē«°ē¬‚ē¬ē¬Šē¬†ē¬³ē¬˜ē¬™ē¬žē¬µē¬Øē¬¶ē­"], + ["e4a1", "ē­ŗē¬„ē­ē¬‹ē­Œē­…ē­µē­„ē­“ē­§ē­°ē­±ē­¬ē­®ē®ē®˜ē®Ÿē®ē®œē®šē®‹ē®’ē®ē­ē®™ēƋēƁēƌēƏē®“ēƆēƝēÆ©ē°‘ē°”ēƦēÆ„ē± ē°€ē°‡ē°“ēƳēÆ·ē°—ē°ēƶē°£ē°§ē°Ŗē°Ÿē°·ē°«ē°½ē±Œē±ƒē±”ē±ē±€ē±ē±˜ē±Ÿē±¤ē±–ē±„ē±¬ē±µē²ƒē²ē²¤ē²­ē²¢ē²«ē²”ē²Øē²³ē²²ē²±ē²®ē²¹ē²½ē³€ē³…ē³‚ē³˜ē³’ē³œē³¢é¬»ē³Æē³²ē³“ē³¶ē³ŗē“†"], + ["e5a1", "ē“‚ē“œē“•ē“Šēµ…ēµ‹ē“®ē“²ē“æē“µēµ†ēµ³ēµ–ēµŽēµ²ēµØēµ®ēµēµ£ē¶“ē¶‰ēµ›ē¶ēµ½ē¶›ē¶ŗē¶®ē¶£ē¶µē·‡ē¶½ē¶«ēø½ē¶¢ē¶Æē·œē¶øē¶Ÿē¶°ē·˜ē·ē·¤ē·žē·»ē·²ē·”ēø…ēøŠēø£ēø”ēø’ēø±ēøŸēø‰ēø‹ēø¢ē¹†ē¹¦ēø»ēøµēø¹ē¹ƒēø·ēø²ēøŗē¹§ē¹ē¹–ē¹žē¹™ē¹šē¹¹ē¹Ŗē¹©ē¹¼ē¹»ēŗƒē·•ē¹½č¾®ē¹æēŗˆēŗ‰ēŗŒēŗ’ēŗēŗ“ēŗ”ēŗ–ēŗŽēŗ›ēŗœē¼øē¼ŗ"], + ["e6a1", "ē½…ē½Œē½ē½Žē½ē½‘ē½•ē½”ē½˜ē½Ÿē½ ē½Øē½©ē½§ē½øē¾‚ē¾†ē¾ƒē¾ˆē¾‡ē¾Œē¾”ē¾žē¾ē¾šē¾£ē¾Æē¾²ē¾¹ē¾®ē¾¶ē¾øč­±ēæ…ēæ†ēæŠēæ•ēæ”ēæ”ēæ¦ēæ©ēæ³ēæ¹é£œč€†č€„č€‹č€’č€˜č€™č€œč€”č€Øč€æč€»čŠč†č’č˜čščŸč¢čØč³č²č°č¶č¹č½čæč‚„č‚†č‚…č‚›č‚“č‚šč‚­å†č‚¬čƒ›čƒ„čƒ™čƒčƒ„čƒščƒ–č„‰čƒÆčƒ±č„›č„©č„£č„Æ腋"], + ["e7a1", "éš‹č…†č„¾č…“č…‘čƒ¼č…±č…®č…„č…¦č…“č†ƒč†ˆč†Šč†€č†‚č† č†•č†¤č†£č…Ÿč†“č†©č†°č†µč†¾č†øč†½č‡€č‡‚č†ŗ臉臍臑臙臘臈臚臟臠臧č‡ŗč‡»č‡¾čˆčˆ‚čˆ…čˆ‡čˆŠčˆčˆčˆ–čˆ©čˆ«čˆøčˆ³č‰€č‰™č‰˜č‰č‰šč‰Ÿč‰¤č‰¢č‰Øč‰Ŗč‰«čˆ®č‰±č‰·č‰øč‰¾čŠčŠ’čŠ«čŠŸčŠ»čŠ¬č‹”č‹£č‹Ÿč‹’č‹“č‹³č‹ŗčŽ“čŒƒč‹»č‹¹č‹žčŒ†č‹œčŒ‰č‹™"], + ["e8a1", "čŒµčŒ“čŒ–čŒ²čŒ±č€čŒ¹čč…čŒÆčŒ«čŒ—čŒ˜čŽ…čŽščŽŖčŽŸčŽ¢čŽ–čŒ£čŽŽčŽ‡čŽŠč¼čŽµč³čµčŽ čŽ‰čŽØč“č“č«čŽč½čƒč˜č‹čč·č‡č č²čč¢č čŽ½čøč”†č»č‘­čŖč¼č•šč’„č‘·č‘«č’­č‘®č’‚č‘©č‘†č¬č‘Æč‘¹čµč“Šč‘¢č’¹č’æč’Ÿč“™č“č’»č“šč“č“č“†č“–č’”č””č“æč““č”—č”˜č”¬č”Ÿč”•č””č“¼č•€č•£č•˜č•ˆ"], + ["e9a1", "蕁蘂蕋蕕薀薤薈薑薊č–Ø蕭薔薛č—Ŗč–‡č–œč•·č•¾č–č—‰č–ŗč—č–¹č—č—•č—č—„č—œč—¹č˜Šč˜“č˜‹č—¾č—ŗč˜†č˜¢č˜šč˜°č˜æč™ä¹•č™”č™Ÿč™§č™±čš“čš£čš©čšŖčš‹čšŒčš¶čšÆč›„č›†čš°č›‰č £čš«č›”č›žč›©č›¬č›Ÿč››č›Æčœ’čœ†čœˆčœ€čœƒč›»čœ‘čœ‰čœč›¹čœŠčœ“čœæčœ·čœ»čœ„čœ©čœšč čŸčøčŒčŽč“č—čØč®č™"], + ["eaa1", "č“č£čŖč …čž¢čžŸčž‚čžÆčŸ‹čž½čŸ€čŸé›–čž«čŸ„čž³čŸ‡čŸ†čž»čŸÆčŸ²čŸ č č čŸ¾čŸ¶čŸ·č ŽčŸ’č ‘č –č •č ¢č ”č ±č ¶č ¹č §č »č”„č”‚č”’č”™č”žč”¢č”«č¢č”¾č¢žč”µč”½č¢µč”²č¢‚č¢—č¢’č¢®č¢™č¢¢č¢č¢¤č¢°č¢æč¢±č£ƒč£„č£”č£˜č£™č£č£¹č¤‚č£¼č£“č£Øč£²č¤„č¤Œč¤Šč¤“č„ƒč¤žč¤„č¤Ŗ褫脁脄褻褶č¤øč„Œč¤č„ č„ž"], + ["eba1", "脦脤脭č„Ŗč„Æč„“č„·č„¾č¦ƒč¦ˆč¦Šč¦“č¦˜č¦”č¦©č¦¦č¦¬č¦Æč¦²č¦ŗč¦½č¦æč§€č§šč§œč§č§§č§“č§øč؃čؖčؐč،č؛č؝čØ„čØ¶č©č©›č©’č©†č©ˆč©¼č©­č©¬č©¢čŖ…čŖ‚čŖ„čŖØčŖ”čŖ‘čŖ„čŖ¦čŖščŖ£č«„č«č«‚č«šč««č«³č«§č«¤č«±č¬”č« č«¢č«·č«žč«›č¬Œč¬‡č¬šč«”č¬–č¬č¬—č¬ č¬³éž«č¬¦č¬«č¬¾č¬Øč­č­Œč­č­Žč­‰č­–č­›č­šč­«"], + ["eca1", "č­Ÿč­¬č­Æč­“č­½č®€č®Œč®Žč®’č®“č®–č®™č®šč°ŗ豁č°æč±ˆč±Œč±Žč±č±•č±¢č±¬č±øč±ŗč²‚č²‰č²…č²Šč²č²Žč²”č±¼č²˜ęˆč²­č²Ŗč²½č²²č²³č²®č²¶č³ˆč³č³¤č³£č³šč³½č³ŗč³»č“„č“…č“Šč“‡č“č“č“é½Žč““č³č“”č“–čµ§čµ­čµ±čµ³č¶č¶™č·‚č¶¾č¶ŗč·č·šč·–č·Œč·›č·‹č·Ŗč·«č·Ÿč·£č·¼čøˆčø‰č·æčøčøžčøčøŸč¹‚čøµčø°čø“č¹Š"], + ["eda1", "č¹‡č¹‰č¹Œč¹č¹ˆč¹™č¹¤č¹ čøŖč¹£č¹•č¹¶č¹²č¹¼čŗčŗ‡čŗ…čŗ„čŗ‹čŗŠčŗ“čŗ‘čŗ”čŗ™čŗŖčŗ”čŗ¬čŗ°č»†čŗ±čŗ¾č»…č»ˆč»‹č»›č»£č»¼č»»č»«č»¾č¼Šč¼…č¼•č¼’č¼™č¼“č¼œč¼Ÿč¼›č¼Œč¼¦č¼³č¼»č¼¹č½…č½‚č¼¾č½Œč½‰č½†č½Žč½—č½œč½¢č½£č½¤č¾œč¾Ÿč¾£č¾­č¾Æč¾·čæščæ„čæ¢čæŖčæÆ邇čæ“逅čæ¹čæŗ逑逕途逍逞逖逋逧逶逵逹čæø"], + ["eea1", "遏遐遑遒逎遉逾遖遘遞éØéÆ遶éšØ遲邂遽邁邀邊邉邏é‚Øé‚Æé‚±é‚µéƒ¢éƒ¤ę‰ˆéƒ›é„‚é„’é„™é„²é„°é…Šé…–é…˜é…£é…„é…©é…³é…²é†‹é†‰é†‚é†¢é†«é†Æé†Ŗ醵醓é†ŗ釀釁釉釋釐釖釟釔釛釼釵釶鈞é‡æ鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕éˆæ鉋鉐銜銖銓銛鉚鋏銹銷鋩錏é‹ŗ鍄錮"], + ["efa1", "錙錢錚錣éŒŗ錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗éØ鏄鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐔éŗ鑁鑒鑄鑛鑠鑢鑞é‘Ŗ鈩鑰鑵鑷鑽鑚鑼鑾钁é‘æ閂閇閊閔閖閘閙閠é–Ø閧閭閼閻閹閾闊ęæ¶é—ƒé—é—Œé—•é—”闖關闔闄闢阔é˜Ø阮é˜Æ陂陌陏陋陷陜陞"], + ["f0a1", "陝陟陦陲陬隍隘隕隗éšŖ隧隱隲隰隓隶éšøéš¹é›Žé›‹é›‰é›č„é›œéœé›•é›¹éœ„éœ†éœˆéœ“éœŽéœ‘éœéœ–éœ™éœ¤éœŖ霰霹霽霾靄靆靈靂靉靜靠靤靦éØ勒靫靱靹鞅靼鞁éŗ鞆鞋鞏鞐鞜éžØ鞦鞣鞳鞓韃韆韈韋韜韭齏韲ē«ŸéŸ¶éŸµé é Œé ø頤頔頷頽锆锏锋锫é”Æé”°"], + ["f1a1", "锱锓锳é¢Ŗé¢Æ颱颶飄飃飆飩飫餃餉餒餔餘餔餝餞餤餠餬餮餽餾鄂鄉鄅鄐鄋鄑鄒鄌鄕馗馘馄馭馮馼駟駛駝駘駑駭駮駱駲駻é§øé؁é؏é؅駢éؙéØ«éط驅驂驀驃éؾ驕驍驛驗驟驢驄驤驩驫é©ŖéŖ­éŖ°éŖ¼é«€é«é«‘髓體髞髟髢髣髦é«Æ髫髮髓髱髷"], + ["f2a1", "髻鬆鬘鬚鬟鬢鬣鬄鬧é¬Ø鬩é¬Ŗ鬮é¬Æ鬲魄魃魏魍魎魑魘魓鮓鮃鮑鮖鮗鮟鮠é®Ø鮓éƀéƊ鮹éƆéƏéƑéƒéÆ£éÆ¢éƤéƔéÆ”é°ŗéƲéƱéư鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰄鰤鰔鰰鱇鰲鱆鰾鱚鱠鱧鱶é±ø鳧鳬鳰铉铈鳫铃铆é“Ŗ铦é¶Æ铣铟鵄铕铒鵁é“æ链鵆鵈"], + ["f3a1", "鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫éµÆéµŗ鶚鶤鶩鶲鷄鷁鶻é¶øé¶ŗ鷆鷏鷂鷙鷓é·ø鷦鷭é·Æé·½éøšéø›éøžé¹µé¹¹é¹½éŗéŗˆéŗ‹éŗŒéŗ’éŗ•éŗ‘éŗéŗ„éŗ©éŗøéŗŖéŗ­é”黌黎黏黐黔黜點黝黠黄é»Øé»Æ黓黶黷黹黻黼黽鼇鼈ēš·é¼•é¼”鼬鼾齊齒齔齣齟齠齔齦齧齬é½Ŗ齷齲齶龕龜龠"], + ["f4a1", "å Æ꧇遙ē‘¤å‡œē†™"], + ["f9a1", "ēŗŠč¤œéˆéŠˆč“œäæ‰ē‚»ę˜±ę£ˆé‹¹ę›»å½…äøØ仔仼伀伃伹佖侒侊侚侔äæå€å€¢äææ倞偆偰偂傔僓僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝ļ؎咜咊咩å“æ喆坙坄垬埈埇ļ؏ļؐ增墲夋儓儛儝儣妤å¦ŗ孖åƀē”ÆåƘåƬ尞岦å²ŗ峵哧嵓ļؑ嵂嵭å¶ø嶹巐弔弓彧德"], + ["faa1", "åæžęę‚…ę‚Šęƒžęƒ•ę„ ęƒ²ę„‘ę„·ę„°ę†˜ęˆ“ęŠ¦ęµę‘ ę’ę“Žę•Žę˜€ę˜•ę˜»ę˜‰ę˜®ę˜žę˜¤ę™„ꙗꙙļØ’ę™³ęš™ęš ęš²ęšæę›ŗ꜎ļ¤©ę¦ęž»ę”’ęŸ€ę ę”„ę£ļؓę„ØļØ”ę¦˜ę§¢ęØ°ę©«ę©†ę©³ę©¾ę«¢ę«¤ęƖę°æę±œę²†ę±Æę³šę“„ę¶‡ęµÆę¶–ę¶¬ę·ę·øę·²ę·¼ęø¹ę¹œęø§ęø¼ęŗæę¾ˆę¾µęæµē€…ē€‡ē€Øē‚…ē‚«ē„ē„„ē…œē…†ē…‡ļؕē‡ē‡¾ēŠ±"], + ["fba1", "ēŠ¾ēŒ¤ļؖē·ēŽ½ē‰ē–ē£ē’ē‡ēµē¦ēŖē©ē®ē‘¢ē’‰ē’Ÿē”ē•Æēš‚ēšœēšžēš›ēš¦ļؗē†åŠÆē ”ē”Žē”¤ē”ŗē¤°ļؘļؙļؚē¦”ļ؛ē¦›ē«‘ē«§ļ؜ē««ē®žļ؝ēµˆēµœē¶·ē¶ ē·–ē¹’ē½‡ē¾”ļØžčŒč¢čæč‡č¶č‘ˆč’“č•“č•™č•«ļØŸč–°ļØ ļØ”č ‡č£µčؒčØ·č©¹čŖ§čŖ¾č«ŸļØ¢č«¶č­“č­æč³°č³“č“’čµ¶ļØ£č»ļؤļ؄遧郞ļئ鄕鄧釚"], + ["fca1", "釗釞釭釮釤釄鈆鈐鈊éˆŗ鉀鈼鉎鉙鉑鈹鉧銧鉷é‰ø鋧鋗鋙鋐ļا鋕鋠鋓錄錔鋻ļØØ錞é‹æ錝錂鍰鍗鎤鏆鏞éø鐱鑅鑈閒ļ§œļة隝éšÆ霳霻靃靍靏靑靕锗锄ļØŖļث餧ļج馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫ļØ­éø™é»‘"], + ["fcf1", "ā…°", 9, "ļæ¢ļæ¤ļ¼‡ļ¼‚"], + ["8fa2af", "Ė˜Ė‡ĀøĖ™ĖĀÆĖ›Ėšļ½žĪ„Ī…"], + ["8fa2c2", "Ā”Ā¦Āæ"], + ["8fa2eb", "ĀŗĀŖĀ©Ā®ā„¢Ā¤ā„–"], + ["8fa6e1", "Ī†ĪˆĪ‰ĪŠĪŖ"], + ["8fa6e7", "ĪŒ"], + ["8fa6e9", "ĪŽĪ«"], + ["8fa6ec", "Ī"], + ["8fa6f1", "Ī¬Ī­Ī®ĪÆĻŠĪĻŒĻ‚ĻĻ‹Ī°ĻŽ"], + ["8fa7c2", "Š‚", 10, "ŠŽŠ"], + ["8fa7f2", "ђ", 10, "ўџ"], + ["8fa9a1", "ƆĐ"], + ["8fa9a4", "Ħ"], + ["8fa9a6", "IJ"], + ["8fa9a8", "ŁÄæ"], + ["8fa9ab", "ÅŠĆ˜Å’"], + ["8fa9af", "Å¦Ćž"], + ["8fa9c1", "Ć¦Ä‘Ć°Ä§Ä±Ä³ÄøłŀʼnŋĆøÅ“ĆŸÅ§Ć¾"], + ["8faaa1", "ƁƀƄƂĂĒÄ€Ä„Ć…ĆƒÄ†ÄˆÄŒĆ‡ÄŠÄŽĆ‰ĆˆĆ‹ĆŠÄšÄ–Ä’Ä˜"], + ["8faaba", "ÄœÄžÄ¢Ä Ä¤ĆĆŒĆĆŽĒÄ°ÄŖÄ®ÄØÄ“Ä¶Ä¹Ä½Ä»ÅƒÅ‡Å…Ć‘Ć“Ć’Ć–Ć”Ē‘ÅÅŒĆ•Å”Å˜Å–ÅšÅœÅ ÅžÅ¤Å¢ĆšĆ™ĆœĆ›Å¬Ē“Å°ÅŖŲŮÅØĒ—Ē›Ē™Ē•Å“ƝÅøŶŹŽŻ"], + ["8faba1", "Ć”Ć Ć¤Ć¢ÄƒĒŽÄÄ…Ć„Ć£Ä‡Ä‰ÄĆ§Ä‹ÄĆ©ĆØĆ«ĆŖěėēęĒµÄÄŸ"], + ["8fabbd", "ĔĄƭƬĆÆĆ®Ē"], + ["8fabc5", "Ä«ÄÆĩĵķÄŗÄ¾Ä¼Å„ÅˆÅ†Ć±Ć³Ć²Ć¶Ć“Ē’Å‘ÅĆµÅ•Å™Å—Å›ÅÅ”ÅŸÅ„Å£ĆŗĆ¹Ć¼Ć»Å­Ē”űūųÅÆÅ©Ē˜ĒœĒšĒ–ÅµĆ½ĆæÅ·Åŗžż"], + ["8fb0a1", "äø‚äø„äø…äøŒäø’äøŸäø£äø¤äøØäø«äø®äøÆäø°äøµä¹€ä¹ä¹„乇乑乚乜乣ä¹Ø乩乓乵乹ä¹æäŗäŗ–äŗ—äŗäŗÆäŗ¹ä»ƒä»ä»šä»›ä» ä»”仢ä»Øä»Æ仱仳仵份仾ä»æ伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣ä½Ŗ佬佮佱佷ä½øä½¹ä½ŗ佽佾侁侂侄"], + ["8fb1a1", "侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾äæ€äæäæ…äæ†äæˆäæ‰äæ‹äæŒäæäæäæ’äæœäæ äæ¢äæ°äæ²äæ¼äæ½äææ倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧åŖ偭偰偱倻傁傃傄傆傊傎傏傐"], + ["8fb2a1", "傒傓傔傖傛傜傞", 4, "å‚Ŗå‚Æ傰傹å‚ŗ傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦åƒØ僩åƒÆ僱僶åƒŗ僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧å„Ø儬儭å„Æ儱儳儓儵å„ø儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冔冣冭å†øå†ŗ冼冾å†æ凂"], + ["8fb3a1", "凈减凑凒凓凕凘凞凢凄凮凲凳凓凷刁刂刅划刓刕刖刘刢åˆØ刱刲刵刼剅剉剕剗剘剚剜剟剠剔剦剮剷å‰ø剹劀劂劅劊劌劓劕劖劗劘劚劜劤劄劦劧åŠÆ劰劶劷åŠøåŠŗ劻劽勀勄勆勈勌勏勑勔勖勛勜勔勄å‹Ø勩å‹Ŗ勬勰勱勓勶勷匀匃匊匋"], + ["8fb4a1", "匌匑匓匘匛匜匞匟匄匧åŒØ匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛協卣卄卬卭卲卹卾厃厇厈厎厓厔厙厝厔厤åŽŖ厫åŽÆ厲厓厵厷åŽøåŽŗ厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吔吧åØåŖåÆ吱吓吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呓å‘æ"], + ["8fb5a1", "咁咃咅咈咉咍咑咕咖咜咟咔咦咧咩å’Ŗ咭咮咱咷咹å’ŗ咻å’æ哆哊响哎哠å“Ŗ哬å“Æ哶哼哾å“æ唀唁唅唈唉唌唍唎唕å”Ŗ唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啔啤啦å•æ喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲å–æ嗁嗃嗆嗉嗋嗌嗎嗑嗒"], + ["8fb6a1", "嗓嗗嗘嗛嗞嗢嗩嗶å—æ嘅嘈嘊嘍", 5, "嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽å˜æ噀噁噃噄噆噉噋噍噏噔噞噠噔噢噣噦噩噭å™Æ噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧åšØ嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囔囤", 4, "囱囫园"], + ["8fb7a1", "囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圄圩åœŖ圬圮åœÆ圳圓圽圾åœæ坅坆坌坍坒坢坄坧åØ坫坭", 4, "坳坓坵坷坹åŗ坻坼坾垁垃垌垔垗垙垚垜垝垞垟垔垕垧åžØ垩垬åžø垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶åŸø埽埾åŸæ堃堄堈堉埔"], + ["8fb8a1", "堌堍堛堞堟堠堦堧堭堲堹å æ唉唌唍唏唐唕唟唔唤唧å”Øå”ø唼å”æå¢€å¢å¢‡å¢ˆå¢‰å¢Šå¢Œå¢å¢å¢å¢”å¢–å¢å¢ å¢”å¢¢å¢¦å¢©å¢±å¢²å£„å¢¼å£‚å£ˆå£å£Žå£å£’å£”å£–å£šå£å£”å£¢å£©å£³å¤…å¤†å¤‹å¤Œå¤’å¤“å¤”č™å¤å¤”å¤£å¤¤å¤Øå¤Æ夰夳夵夶å¤æ儃儆儒儓儙儛儝儞償儔儣儫儭"], + ["8fb9a1", "å„Æ儲儵儶儹儻儼妋妌妎妒妕妗妟妤妧妭妮å¦Æ妰妳妷å¦ŗ妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮å§Æ姱姲姓姷å؀å؄å،å؍å؎åؒåؓå؞åØ£åؤåاåØØåØŖåØ­åذ婄婅婇婈婌婐婕婞婣婄婧婭婷å©ŗ婻婾åŖ‹åŖåŖ“åŖ–åŖ™åŖœåŖžåŖŸåŖ åŖ¢åŖ§åŖ¬åŖ±åŖ²åŖ³åŖµåŖøåŖŗåŖ»åŖæ"], + ["8fbaa1", "嫄嫆嫈嫏嫚嫜嫠嫄å«Ŗ嫮嫵嫶嫽嬀嬁嬈嬗嬓嬙嬛嬝嬔嬄嬭å¬ø孁孋孌孒孖孞å­Øå­®å­Æ孼孽孾å­æ宁宄宆宊宎宐宑宓宔宖å®Ø宩宬宭å®Æ宱宲宷å®ŗ宼åƀåƁåƍåƏåƖ", 4, "åÆ åÆÆåƱåÆ“åƽ尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧å±Ø屩"], + ["8fbba1", "屭屰屓屵å±ŗ屻屼屽岇岈岊岏岒岝岟岠岢岣岦å²Ŗ岲岓岵å²ŗ峉峋峒峝峗峮峱峲峓品哆响哒哫哣哤哦哧哱哓哹哽å“æ嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵔嵢嵤åµŖåµ­åµ°åµ¹åµŗåµ¾åµæ嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶓å¶ø嶹巃巇巋巐巎巘巙巠巤"], + ["8fbca1", "å·©å·øå·¹åø€åø‡åøåø’åø”åø•åø˜åøŸåø åø®åøØåø²åøµåø¾å¹‹å¹å¹‰å¹‘幖幘幛幜幞å¹Øå¹Ŗ", 4, "å¹°åŗ€åŗ‹åŗŽåŗ¢åŗ¤åŗ„åŗØåŗŖåŗ¬åŗ±åŗ³åŗ½åŗ¾åŗæ廆廌廋廎廑廒廔廕廜廞廄廫异弆弇弈弎弙弜弝弔弢弣弤å¼Ø弫弬弮弰弓弶弻弽å¼æ彀彄彅彇彍彐彔彘彛彠彣彤彧"], + ["8fbda1", "å½Æ彲当彵å½øå½ŗ彽彾徉徍徏徖徜徝徢徧徫徤徬å¾Æå¾°å¾±å¾øåæ„åæ‡åæˆåæ‰åæ‹åæ", 4, "åæžåæ”åæ¢åæØåæ©åæŖåæ¬åæ­åæ®åæÆåæ²åæ³åæ¶åæŗåæ¼ę€‡ę€Šę€ę€“ę€”ę€—ę€˜ę€šę€Ÿę€¤ę€­ę€³ę€µę€ę‡ęˆę‰ęŒę‘ę”ę–ę—ęę”ę§ę±ę¾ęæę‚‚ę‚†ę‚ˆę‚Šę‚Žę‚‘ę‚“ę‚•ę‚˜ę‚ę‚žę‚¢ę‚¤ę‚„ę‚Øꂰꂱꂷ"], + ["8fbea1", "ę‚»ę‚¾ęƒ‚ęƒ„ęƒˆęƒ‰ęƒŠęƒ‹ęƒŽęƒęƒ”ęƒ•ęƒ™ęƒ›ęƒęƒžęƒ¢ęƒ„ęƒ²ęƒµęƒøęƒ¼ęƒ½ę„‚ę„‡ę„Šę„Œę„", 4, "ę„–ę„—ę„™ę„œę„žę„¢ę„Ŗę„«ę„°ę„±ę„µę„¶ę„·ę„¹ę…ę……ę…†ę…‰ę…žę… ę…¬ę…²ę…øę…»ę…¼ę…æę†€ę†ę†ƒę†„ę†‹ę†ę†’ę†“ę†—ę†˜ę†œę†ę†Ÿę† ę†„ę†Øę†Ŗꆭę†øę†¹ę†¼ę‡€ę‡ę‡‚ę‡Žę‡ę‡•ę‡œę‡ę‡žę‡Ÿę‡”ę‡¢ę‡§ę‡©ę‡„"], + ["8fbfa1", "ꇬꇭę‡Æęˆęˆƒęˆ„ęˆ‡ęˆ“ęˆ•ęˆœęˆ ęˆ¢ęˆ£ęˆ§ęˆ©ęˆ«ęˆ¹ęˆ½ę‰‚ę‰ƒę‰„ę‰†ę‰Œę‰ę‰‘ę‰’ę‰”ę‰–ę‰šę‰œę‰¤ę‰­ę‰Æę‰³ę‰ŗę‰½ęŠęŠŽęŠęŠęŠ¦ęŠØęŠ³ęŠ¶ęŠ·ęŠŗęŠ¾ęŠæꋄꋎꋕꋖꋚę‹Ŗę‹²ę‹“ę‹¼ę‹½ęŒƒęŒ„ęŒŠęŒ‹ęŒęŒęŒ“ęŒ–ęŒ˜ęŒ©ęŒŖęŒ­ęŒµęŒ¶ęŒ¹ęŒ¼ęę‚ęƒę„ę†ęŠę‹ęŽę’ę“ę”ę˜ę›ę„ę¦ę¬ę­ę±ę“ęµ"], + ["8fc0a1", "ęøę¼ę½ęæꎂꎄꎇꎊꎐꎔꎕꎙꎚꎞꎤꎦꎭꎮęŽÆęŽ½ęę…ęˆęŽę‘ę“ę”ę•ęœę ę„ęŖę¬ę²ę³ęµęøę¹ę‰ęŠęę’ę”ę˜ęžę ę¢ę¤ę„ę©ęŖęÆę°ęµę½ęæę‘‹ę‘ę‘‘ę‘’ę‘“ę‘”ę‘šę‘›ę‘œę‘ę‘Ÿę‘ ę‘”ę‘£ę‘­ę‘³ę‘“ę‘»ę‘½ę’…ę’‡ę’ę’ę’‘ę’˜ę’™ę’›ę’ę’Ÿę’”ę’£ę’¦ę’Øę’¬ę’³ę’½ę’¾ę’æ"], + ["8fc1a1", "ę“„ę“‰ę“Šę“‹ę“Œę“Žę“ę“‘ę“•ę“—ę“¤ę“„ę“©ę“Ŗꓭꓰꓵꓷꓻę“æę”ę”„ę”ˆę”‰ę”Šę”ę”“ę””ę”–ę”™ę”›ę”žę”Ÿę”¢ę”¦ę”©ę”®ę”±ę”ŗę”¼ę”½ę•ƒę•‡ę•‰ę•ę•’ę•”ę•Ÿę• ę•§ę•«ę•ŗę•½ę–ę–…ę–Šę–’ę–•ę–˜ę–ę– ę–£ę–¦ę–®ę–²ę–³ę–“ę–æę—‚ę—ˆę—‰ę—Žę—ę—”ę—–ę—˜ę—Ÿę—°ę—²ę—“ę—µę—¹ę—¾ę—æꘀꘄꘈꘉ꘍ꘑꘒꘕꘖꘝ"], + ["8fc2a1", "ę˜žę˜”ę˜¢ę˜£ę˜¤ę˜¦ę˜©ę˜Ŗę˜«ę˜¬ę˜®ę˜°ę˜±ę˜³ę˜¹ę˜·ę™€ę™…ę™†ę™Šę™Œę™‘ę™Žę™—ę™˜ę™™ę™›ę™œę™ ę™”ę›»ę™Ŗę™«ę™¬ę™¾ę™³ę™µę™æę™·ę™øę™¹ę™»ęš€ę™¼ęš‹ęšŒęšęšęš’ęš™ęššęš›ęšœęšŸęš ęš¤ęš­ęš±ęš²ęšµęš»ęšæꛀꛂꛃꛈꛌꛎꛏꛔꛛꛟę›Øꛫꛬꛮę›ŗęœ…ęœ‡ęœŽęœ“ęœ™ęœœęœ ęœ¢ęœ³ęœ¾ę…ę‡ęˆęŒę”ę•ę"], + ["8fc3a1", "ę¦ę¬ę®ę“ę¶ę»ęžęž„ęžŽęžęž‘ęž“ęž–ęž˜ęž™ęž›ęž°ęž±ęž²ęžµęž»ęž¼ęž½ęŸ¹ęŸ€ęŸ‚ęŸƒęŸ…ęŸˆęŸ‰ęŸ’ęŸ—ęŸ™ęŸœęŸ”ęŸ¦ęŸ°ęŸ²ęŸ¶ęŸ·ę”’ę ”ę ™ę ę Ÿę Øꠧ꠬꠭ę Æę °ę ±ę ³ę »ę æę”„ę”…ę”Šę”Œę”•ę”—ę”˜ę”›ę”«ę”®", 4, "ę”µę”¹ę”ŗę”»ę”¼ę¢‚ę¢„ę¢†ę¢ˆę¢–ę¢˜ę¢šę¢œę¢”ę¢£ę¢„ę¢©ę¢Ŗę¢®ę¢²ę¢»ę£…ę£ˆę£Œę£"], + ["8fc4a1", "ę£ę£‘ę£“ę£–ę£™ę£œę£ę£„ę£Øę£Ŗę£«ę£¬ę£­ę£°ę£±ę£µę£¶ę£»ę£¼ę£½ę¤†ę¤‰ę¤Šę¤ę¤‘ę¤“ę¤–ę¤—ę¤±ę¤³ę¤µę¤øę¤»ę„‚ę„…ę„‰ę„Žę„—ę„›ę„£ę„¤ę„„ę„¦ę„Øę„©ę„¬ę„°ę„±ę„²ę„ŗę„»ę„æę¦€ę¦ę¦’ę¦–ę¦˜ę¦”ę¦„ę¦¦ę¦Øꦫꦭę¦Æꦷę¦øę¦ŗę¦¼ę§…ę§ˆę§‘ę§–ę§—ę§¢ę§„ę§®ę§Æę§±ę§³ę§µę§¾ę؀ę؁ę؃ę؏ęؑęؕęؚę؝ęØ ęؤęØØęØ°ęز"], + ["8fc5a1", "ęØ“ęØ·ęØ»ęؾęØæꩅꩆꩉꩊ꩎꩐꩑꩒꩕꩖꩛ꩤꩧę©Ŗę©±ę©³ę©¾ęŖęŖƒęŖ†ęŖ‡ęŖ‰ęŖ‹ęŖ‘ęŖ›ęŖęŖžęŖŸęŖ„ęŖ«ęŖÆęŖ°ęŖ±ęŖ“ęŖ½ęŖ¾ęŖæę«†ę«‰ę«ˆę«Œę«ę«”ę«•ę«–ę«œę«ę«¤ę«§ę«¬ę«°ę«±ę«²ę«¼ę«½ę¬‚ę¬ƒę¬†ę¬‡ę¬‰ę¬ę¬ę¬‘ę¬—ę¬›ę¬žę¬¤ę¬Øꬫꬬę¬Æꬵꬶꬻę¬æę­†ę­Šę­ę­’ę­–ę­˜ę­ę­ ę­§ę­«ę­®ę­°ę­µę­½"], + ["8fc6a1", "ę­¾ę®‚ę®…ę®—ę®›ę®Ÿę® ę®¢ę®£ę®Øꮩꮬꮭꮮꮰę®øę®¹ę®½ę®¾ęƃęƄęƉęƌęƖęƚęÆ”ęÆ£ęƦęƧęÆ®ęƱęÆ·ęƹęÆæę°‚ę°„ę°…ę°‰ę°ę°Žę°ę°’ę°™ę°Ÿę°¦ę°§ę°Øę°¬ę°®ę°³ę°µę°¶ę°ŗę°»ę°æę±Šę±‹ę±ę±ę±’ę±”ę±™ę±›ę±œę±«ę±­ę±Æ걓걶ę±øę±¹ę±»ę²…ę²†ę²‡ę²‰ę²”ę²•ę²—ę²˜ę²œę²Ÿę²°ę²²ę²“ę³‚ę³†ę³ę³ę³ę³‘ę³’ę³”ę³–"], + ["8fc7a1", "ę³šę³œę³ ę³§ę³©ę³«ę³¬ę³®ę³²ę³“ę“„ę“‡ę“Šę“Žę“ę“‘ę““ę“šę“¦ę“§ę“Ø걧ꓮę“Æę“±ę“¹ę“¼ę“æęµ—ęµžęµŸęµ”ęµ„ęµ§ęµÆęµ°ęµ¼ę¶‚ę¶‡ę¶‘ę¶’ę¶”ę¶–ę¶—ę¶˜ę¶Ŗę¶¬ę¶“ę¶·ę¶¹ę¶½ę¶æę·„ę·ˆę·Šę·Žę·ę·–ę·›ę·ę·Ÿę· ę·¢ę·„ę·©ę·Æę·°ę·“ę·¶ę·¼ęø€ęø„ęøžęø¢ęø§ęø²ęø¶ęø¹ęø»ęø¼ę¹„ę¹…ę¹ˆę¹‰ę¹‹ę¹ę¹‘ę¹’ę¹“ę¹”ę¹—ę¹œę¹ę¹ž"], + ["8fc8a1", "ę¹¢ę¹£ę¹Øę¹³ę¹»ę¹½ęŗęŗ“ęŗ™ęŗ ęŗ§ęŗ­ęŗ®ęŗ±ęŗ³ęŗ»ęŗæę»€ę»ę»ƒę»‡ę»ˆę»Šę»ę»Žę»ę»«ę»­ę»®ę»¹ę»»ę»½ę¼„ę¼ˆę¼Šę¼Œę¼ę¼–ę¼˜ę¼šę¼›ę¼¦ę¼©ę¼Ŗę¼Æę¼°ę¼³ę¼¶ę¼»ę¼¼ę¼­ę½ę½‘ę½’ę½“ę½—ę½™ę½šę½ę½žę½”ę½¢ę½Øę½¬ę½½ę½¾ę¾ƒę¾‡ę¾ˆę¾‹ę¾Œę¾ę¾ę¾’ę¾“ę¾”ę¾–ę¾šę¾Ÿę¾ ę¾„ę¾¦ę¾§ę¾Øę¾®ę¾Æę¾°ę¾µę¾¶ę¾¼ęæ…ęæ‡ęæˆęæŠ"], + ["8fc9a1", "ęæšęæžęæØęæ©ęæ°ęæµęæ¹ęæ¼ęæ½ē€€ē€…ē€†ē€‡ē€ē€—ē€ ē€£ē€Æē€“ē€·ē€¹ē€¼ēƒē„ēˆē‰ēŠē‹ē”ē•ēēžēŽē¤ē„ē¬ē®ēµē¶ē¾ē‚ē‚…ē‚†ē‚”", 4, "ē‚›ē‚¤ē‚«ē‚°ē‚±ē‚“ē‚·ēƒŠēƒ‘ēƒ“ēƒ”ēƒ•ēƒ–ēƒ˜ēƒœēƒ¤ēƒŗē„ƒ", 4, "ē„‹ē„Œē„ē„žē„ ē„«ē„­ē„Æē„°ē„±ē„øē…ē……ē…†ē…‡ē…Šē…‹ē…ē…’ē…—ē…šē…œē…žē… "], + ["8fcaa1", "ē…Øē…¹ē†€ē†…ē†‡ē†Œē†’ē†šē†›ē† ē†¢ē†Æē†°ē†²ē†³ē†ŗē†æē‡€ē‡ē‡„ē‡‹ē‡Œē‡“ē‡–ē‡™ē‡šē‡œē‡øē‡¾ēˆ€ēˆ‡ēˆˆēˆ‰ēˆ“ēˆ—ēˆšēˆēˆŸēˆ¤ēˆ«ēˆÆēˆ“ēˆøēˆ¹ē‰ē‰‚ē‰ƒē‰…ē‰Žē‰ē‰ē‰“ē‰•ē‰–ē‰šē‰œē‰žē‰ ē‰£ē‰Øē‰«ē‰®ē‰Æē‰±ē‰·ē‰øē‰»ē‰¼ē‰æēŠ„ēŠ‰ēŠēŠŽēŠ“ēŠ›ēŠØēŠ­ēŠ®ēŠ±ēŠ“ēŠ¾ē‹ē‹‡ē‹‰ē‹Œē‹•ē‹–ē‹˜ē‹Ÿē‹„ē‹³ē‹“ē‹ŗē‹»"], + ["8fcba1", "ē‹¾ēŒ‚ēŒ„ēŒ…ēŒ‡ēŒ‹ēŒēŒ’ēŒ“ēŒ˜ēŒ™ēŒžēŒ¢ēŒ¤ēŒ§ēŒØēŒ¬ēŒ±ēŒ²ēŒµēŒŗēŒ»ēŒ½ēƒēēē’ē–ē˜ēēžēŸē ē¦ē§ē©ē«ē¬ē®ēÆē±ē·ē¹ē¼ēŽ€ēŽēŽƒēŽ…ēŽ†ēŽŽēŽēŽ“ēŽ•ēŽ—ēŽ˜ēŽœēŽžēŽŸēŽ ēŽ¢ēŽ„ēŽ¦ēŽŖēŽ«ēŽ­ēŽµēŽ·ēŽ¹ēŽ¼ēŽ½ēŽæē…ē†ē‰ē‹ēŒēē’ē“ē–ē™ēē”ē£ē¦ē§ē©ē“ēµē·ē¹ēŗē»ē½"], + ["8fcca1", "ēæē€ēē„ē‡ēŠē‘ēšē›ē¤ē¦ēØ", 9, "ē¹ē‘€ē‘ƒē‘„ē‘†ē‘‡ē‘‹ē‘ē‘‘ē‘’ē‘—ē‘ē‘¢ē‘¦ē‘§ē‘Øē‘«ē‘­ē‘®ē‘±ē‘²ē’€ē’ē’…ē’†ē’‡ē’‰ē’ē’ē’‘ē’’ē’˜ē’™ē’šē’œē’Ÿē’ ē’”ē’£ē’¦ē’Øē’©ē’Ŗē’«ē’®ē’Æē’±ē’²ē’µē’¹ē’»ē’æē“ˆē“‰ē“Œē“ē““ē“˜ē“šē“›ē“žē“Ÿē“¤ē“Øē“Ŗē“«ē“Æē““ē“ŗē“»ē“¼ē“æē”†"], + ["8fcda1", "ē”’ē”–ē”—ē” ē””ē”¤ē”§ē”©ē”Ŗē”Æē”¶ē”¹ē”½ē”¾ē”æē•€ē•ƒē•‡ē•ˆē•Žē•ē•’ē•—ē•žē•Ÿē•”ē•Æē•±ē•¹", 5, "ē–ē–…ē–ē–’ē–“ē–•ē–™ē–œē–¢ē–¤ē–“ē–ŗē–æē—€ē—ē—„ē—†ē—Œē—Žē—ē——ē—œē—Ÿē— ē—”ē—¤ē—§ē—¬ē—®ē—Æē—±ē—¹ē˜€ē˜‚ē˜ƒē˜„ē˜‡ē˜ˆē˜Šē˜Œē˜ē˜’ē˜“ē˜•ē˜–ē˜™ē˜›ē˜œē˜ē˜žē˜£ē˜„ē˜¦ē˜©ē˜­ē˜²ē˜³ē˜µē˜øē˜¹"], + ["8fcea1", "ē˜ŗē˜¼ē™Šē™€ē™ē™ƒē™„ē™…ē™‰ē™‹ē™•ē™™ē™Ÿē™¤ē™„ē™­ē™®ē™Æē™±ē™“ēšēš…ēšŒēšēš•ēš›ēšœēšēšŸēš ēš¢", 6, "ēšŖēš­ēš½ē›ē›…ē›‰ē›‹ē›Œē›Žē›”ē›™ē› ē›¦ē›Øē›¬ē›°ē›±ē›¶ē›¹ē›¼ēœ€ēœ†ēœŠēœŽēœ’ēœ”ēœ•ēœ—ēœ™ēœšēœœēœ¢ēœØēœ­ēœ®ēœÆēœ“ēœµēœ¶ēœ¹ēœ½ēœ¾ē‚ē…ē†ēŠēēŽēē’ē–ē—ēœēžēŸē ē¢"], + ["8fcfa1", "ē¤ē§ēŖē¬ē°ē²ē³ē“ēŗē½ēž€ēž„ēžŒēžēž”ēž•ēž–ēžšēžŸēž¢ēž§ēžŖēž®ēžÆēž±ēžµēž¾ēŸƒēŸ‰ēŸ‘ēŸ’ēŸ•ēŸ™ēŸžēŸŸēŸ ēŸ¤ēŸ¦ēŸŖēŸ¬ēŸ°ēŸ±ēŸ“ēŸøēŸ»ē …ē †ē ‰ē ē Žē ‘ē ē ”ē ¢ē £ē ­ē ®ē °ē µē ·ē”ƒē”„ē”‡ē”ˆē”Œē”Žē”’ē”œē”žē” ē””ē”£ē”¤ē”Øē”Ŗē”®ē”ŗē”¾ē¢Šē¢ē¢”ē¢˜ē¢”ē¢ē¢žē¢Ÿē¢¤ē¢Øē¢¬ē¢­ē¢°ē¢±ē¢²ē¢³"], + ["8fd0a1", "ē¢»ē¢½ē¢æē£‡ē£ˆē£‰ē£Œē£Žē£’ē£“ē£•ē£–ē£¤ē£›ē£Ÿē£ ē£”ē£¦ē£Ŗē£²ē£³ē¤€ē£¶ē£·ē£ŗē£»ē£æē¤†ē¤Œē¤ē¤šē¤œē¤žē¤Ÿē¤ ē¤„ē¤§ē¤©ē¤­ē¤±ē¤“ē¤µē¤»ē¤½ē¤æē„„ē„…ē„†ē„Šē„‹ē„ē„‘ē„”ē„˜ē„›ē„œē„§ē„©ē„«ē„²ē„¹ē„»ē„¼ē„¾ē¦‹ē¦Œē¦‘ē¦“ē¦”ē¦•ē¦–ē¦˜ē¦›ē¦œē¦”ē¦Øē¦©ē¦«ē¦Æē¦±ē¦“ē¦øē¦»ē§‚ē§„ē§‡ē§ˆē§Šē§ē§”ē§–ē§šē§ē§ž"], + ["8fd1a1", "ē§ ē§¢ē§„ē§Ŗē§«ē§­ē§±ē§øē§¼ē؂ē؃ē؇ē؉ē؊ē،ēؑēؕē؛ē؞ēØ”ēاēØ«ēØ­ēØÆēØ°ēØ“ēصēØøēعēØŗē©„ē©…ē©‡ē©ˆē©Œē©•ē©–ē©™ē©œē©ē©Ÿē© ē©„ē©§ē©Ŗē©­ē©µē©øē©¾ēŖ€ēŖ‚ēŖ…ēŖ†ēŖŠēŖ‹ēŖēŖ‘ēŖ”ēŖžēŖ ēŖ£ēŖ¬ēŖ³ēŖµēŖ¹ēŖ»ēŖ¼ē«†ē«‰ē«Œē«Žē«‘ē«›ē«Øē«©ē««ē«¬ē«±ē«“ē«»ē«½ē«¾ē¬‡ē¬”ē¬Ÿē¬£ē¬§ē¬©ē¬Ŗē¬«ē¬­ē¬®ē¬Æē¬°"], + ["8fd2a1", "ē¬±ē¬“ē¬½ē¬æē­€ē­ē­‡ē­Žē­•ē­ ē­¤ē­¦ē­©ē­Ŗē­­ē­Æē­²ē­³ē­·ē®„ē®‰ē®Žē®ē®‘ē®–ē®›ē®žē® ē®„ē®¬ē®Æē®°ē®²ē®µē®¶ē®ŗē®»ē®¼ē®½ēƂēƅēƈēƊēƔēƖēƗēƙēƚēƛēÆØēÆŖēƲēÆ“ēƵēÆøēƹēÆŗēƼēƾē°ē°‚ē°ƒē°„ē°†ē°‰ē°‹ē°Œē°Žē°ē°™ē°›ē° ē°„ē°¦ē°Øē°¬ē°±ē°³ē°“ē°¶ē°¹ē°ŗē±†ē±Šē±•ē±‘ē±’ē±“ē±™", 5], + ["8fd3a1", "ē±”ē±£ē±§ē±©ē±­ē±®ē±°ē±²ē±¹ē±¼ē±½ē²†ē²‡ē²ē²”ē²žē² ē²¦ē²°ē²¶ē²·ē²ŗē²»ē²¼ē²æē³„ē³‡ē³ˆē³‰ē³ē³ē³“ē³”ē³•ē³—ē³™ē³šē³ē³¦ē³©ē³«ē³µē“ƒē“‡ē“ˆē“‰ē“ē“‘ē“’ē““ē“–ē“ē“žē“£ē“¦ē“Ŗē“­ē“±ē“¼ē“½ē“¾ēµ€ēµēµ‡ēµˆēµēµ‘ēµ“ēµ—ēµ™ēµšēµœēµēµ„ēµ§ēµŖēµ°ēµøēµŗēµ»ēµæē¶ē¶‚ē¶ƒē¶…ē¶†ē¶ˆē¶‹ē¶Œē¶ē¶‘ē¶–ē¶—ē¶"], + ["8fd4a1", "ē¶žē¶¦ē¶§ē¶Ŗē¶³ē¶¶ē¶·ē¶¹ē·‚", 4, "ē·Œē·ē·Žē·—ē·™ēø€ē·¢ē·„ē·¦ē·Ŗē·«ē·­ē·±ē·µē·¶ē·¹ē·ŗēøˆēøēø‘ēø•ēø—ēøœēøēø ēø§ēøØēø¬ēø­ēøÆēø³ēø¶ēøæē¹„ē¹…ē¹‡ē¹Žē¹ē¹’ē¹˜ē¹Ÿē¹”ē¹¢ē¹„ē¹«ē¹®ē¹Æē¹³ē¹øē¹¾ēŗēŗ†ēŗ‡ēŗŠēŗēŗ‘ēŗ•ēŗ˜ēŗšēŗēŗžē¼¼ē¼»ē¼½ē¼¾ē¼æē½ƒē½„ē½‡ē½ē½’ē½“ē½›ē½œē½ē½”ē½£ē½¤ē½„ē½¦ē½­"], + ["8fd5a1", "ē½±ē½½ē½¾ē½æē¾€ē¾‹ē¾ē¾ē¾ē¾‘ē¾–ē¾—ē¾œē¾”ē¾¢ē¾¦ē¾Ŗē¾­ē¾“ē¾¼ē¾æēæ€ēæƒēæˆēæŽēæēæ›ēæŸēæ£ēæ„ēæØēæ¬ēæ®ēæÆēæ²ēæŗēæ½ēæ¾ēææč€‡č€ˆč€Šč€č€Žč€č€‘č€“č€”č€–č€č€žč€Ÿč€ č€¤č€¦č€¬č€®č€°č€“č€µč€·č€¹č€ŗč€¼č€¾č€č„č č¤č¦č­č±čµč‚č‚ˆč‚Žč‚œč‚žč‚¦č‚§č‚«č‚øč‚¹čƒˆčƒčƒčƒ’čƒ”čƒ•čƒ—čƒ˜čƒ čƒ­čƒ®"], + ["8fd6a1", "čƒ°čƒ²čƒ³čƒ¶čƒ¹čƒŗčƒ¾č„ƒč„‹č„–č„—č„˜č„œč„žč„ č„¤č„§č„¬č„°č„µč„ŗč„¼č……č…‡č…Šč…Œč…’č…—č… č…”č…§č…Øč…©č…­č…Æč…·č†č†č†„č†…č††č†‹č†Žč†–č†˜č†›č†žč†¢č†®č†²č†“č†»č‡‹č‡ƒč‡…č‡Šč‡Žč‡č‡•č‡—č‡›č‡č‡žč‡”č‡¤č‡«č‡¬č‡°č‡±č‡²č‡µč‡¶č‡øč‡¹č‡½č‡æčˆ€čˆƒčˆčˆ“čˆ”čˆ™čˆščˆčˆ”čˆ¢čˆØčˆ²čˆ“čˆŗ艃艄艅艆"], + ["8fd7a1", "č‰‹č‰Žč‰č‰‘č‰–č‰œč‰ č‰£č‰§č‰­č‰“č‰»č‰½č‰æčŠ€čŠčŠƒčŠ„čŠ‡čŠ‰čŠŠčŠŽčŠ‘čŠ”čŠ–čŠ˜čŠščŠ›čŠ čŠ”čŠ£čŠ¤čŠ§čŠØ芩čŠŖčŠ®čŠ°čŠ²čŠ“čŠ·čŠŗčŠ¼čŠ¾čŠæč‹†č‹č‹•č‹šč‹ č‹¢č‹¤č‹Øč‹Ŗ苭č‹Æč‹¶č‹·č‹½č‹¾čŒ€čŒčŒ‡čŒˆčŒŠčŒ‹č”čŒ›čŒčŒžčŒŸčŒ”čŒ¢čŒ¬čŒ­čŒ®čŒ°čŒ³čŒ·čŒŗčŒ¼čŒ½č‚čƒč„č‡ččŽč‘č•č–č—č°čø"], + ["8fd8a1", "č½čæčŽ€čŽ‚čŽ„čŽ†čŽčŽ’čŽ”čŽ•čŽ˜čŽ™čŽ›čŽœčŽčŽ¦čŽ§čŽ©čŽ¬čŽ¾čŽæ菀菇菉菏菐菑菔菝荓čØčŖč¶čøč¹č¼čč†čŠčč‘č•č™čŽ­čÆč¹č‘…č‘‡č‘ˆč‘Šč‘č‘č‘‘č‘’č‘–č‘˜č‘™č‘šč‘œč‘ č‘¤č‘„č‘§č‘Ŗč‘°č‘³č‘“č‘¶č‘øč‘¼č‘½č’č’…č’’č’“č’•č’žč’¦č’Øč’©č’Ŗč’Æ蒱蒓č’ŗč’½č’¾č“€č“‚č“‡č“ˆč“Œč“č““"], + ["8fd9a1", "蓜蓧č“Ŗč“Æč“°č“±č“²č“·č”²č“ŗč“»č“½č”‚č”ƒč”‡č”Œč”Žč”č”œč”žč”¢č”£č”¤č”„č”§č”Ŗ蔫č”Æč”³č”“č”¶č”æ蕆蕏", 4, "蕖蕙蕜", 6, "蕤蕫č•Æč•¹č•ŗč•»č•½č•æč–č–…č–†č–‰č–‹č–Œč–č–“č–˜č–č–Ÿč– č–¢č–„č–§č–“č–¶č–·č–øč–¼č–½č–¾č–æč—‚č—‡č—Šč—‹č—Žč–­č—˜č—šč—Ÿč— č—¦č—Øč—­č—³č—¶č—¼"], + ["8fdaa1", "č—æč˜€č˜„č˜…č˜č˜Žč˜č˜‘č˜’č˜˜č˜™č˜›č˜žč˜”č˜§č˜©č˜¶č˜øč˜ŗč˜¼č˜½č™€č™‚č™†č™’č™“č™–č™—č™˜č™™č™č™ ", 4, "虩虬č™Æ虵虶虷č™ŗčščš‘čš–čš˜čšščšœčš”čš¦čš§čšØčš­čš±čš³čš“čšµčš·čšøčš¹čšæč›€č›č›ƒč›…č›‘č›’č›•č›—č›šč›œč› č›£č›„č›§čšˆč›ŗč›¼č›½čœ„čœ…čœ‡čœ‹čœŽčœčœčœ“čœ”čœ™čœžčœŸčœ”čœ£"], + ["8fdba1", "čœØčœ®čœÆčœ±čœ²čœ¹čœŗčœ¼čœ½čœ¾č€čƒč…čč˜čč”č¤č„čÆč±č²č»čžƒ", 6, "čž‹čžŒčžčž“čž•čž—čž˜čž™čžžčž čž£čž§čž¬čž­čž®čž±čžµčž¾čžæčŸčŸˆčŸ‰čŸŠčŸŽčŸ•čŸ–čŸ™čŸščŸœčŸŸčŸ¢čŸ£čŸ¤čŸŖčŸ«čŸ­čŸ±čŸ³čŸøčŸŗčŸæ蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟č Øč ­č ®č °č ²č µ"], + ["8fdca1", "č ŗč ¼č”č”ƒč”…č”ˆč”‰č”Šč”‹č”Žč”‘č”•č”–č”˜č”šč”œč”Ÿč” č”¤č”©č”±č”¹č”»č¢€č¢˜č¢šč¢›č¢œč¢Ÿč¢ č¢Øč¢Ŗč¢ŗč¢½č¢¾č£€č£Š", 4, "č£‘č£’č£“č£›č£žč£§č£Æč£°č£±č£µč£·č¤č¤†č¤č¤Žč¤č¤•č¤–č¤˜č¤™č¤šč¤œč¤ č¤¦č¤§č¤Øč¤°č¤±č¤²č¤µč¤¹č¤ŗč¤¾č„€č„‚č„…č„†č„‰č„č„’č„—č„šč„›č„œč„”č„¢č„£č„«č„®č„°č„³č„µč„ŗ"], + ["8fdda1", "č„»č„¼č„½č¦‰č¦č¦č¦”č¦•č¦›č¦œč¦Ÿč¦ č¦„č¦°č¦“č¦µč¦¶č¦·č¦¼č§”", 4, "č§„č§©č§«č§­č§±č§³č§¶č§¹č§½č§æč؄č؅č؇č؏čؑčؒčؔčؕč؞čØ čØ¢čؤčئčØ«čجčØÆčصčØ·čؽčØ¾č©€č©ƒč©…č©‡č©‰č©č©Žč©“č©–č©—č©˜č©œč©č©”č©„č©§č©µč©¶č©·č©¹č©ŗč©»č©¾č©æčŖ€čŖƒčŖ†čŖ‹čŖčŖčŖ’čŖ–čŖ—čŖ™čŖŸčŖ§čŖ©čŖ®čŖÆčŖ³"], + ["8fdea1", "čŖ¶čŖ·čŖ»čŖ¾č«ƒč«†č«ˆč«‰č«Šč«‘č«“č«”č«•č«—č«č«Ÿč«¬č«°č«“č«µč«¶č«¼č«æč¬…č¬†č¬‹č¬‘č¬œč¬žč¬Ÿč¬Šč¬­č¬°č¬·č¬¼č­‚", 4, "č­ˆč­’č­“č­”č­™č­č­žč­£č­­č­¶č­øč­¹č­¼č­¾č®č®„č®…č®‹č®č®č®”č®•č®œč®žč®Ÿč°øč°¹č°½č°¾č±…č±‡č±‰č±‹č±č±‘č±“č±”č±—č±˜č±›č±č±™č±£č±¤č±¦č±Øč±©č±­č±³č±µč±¶č±»č±¾č²†"], + ["8fdfa1", "č²‡č²‹č²č²’č²“č²™č²›č²œč²¤č²¹č²ŗč³…č³†č³‰č³‹č³č³–č³•č³™č³č³”č³Øč³¬č³Æč³°č³²č³µč³·č³øč³¾č³æč“č“ƒč“‰č“’č“—č“›čµ„čµ©čµ¬čµ®čµæč¶‚č¶„č¶ˆč¶č¶č¶‘č¶•č¶žč¶Ÿč¶ č¶¦č¶«č¶¬č¶Æč¶²č¶µč¶·č¶¹č¶»č·€č·…č·†č·‡č·ˆč·Šč·Žč·‘č·”č·•č·—č·™č·¤č·„č·§č·¬č·°č¶¼č·±č·²č·“č·½čøčø„čø…čø†čø‹čø‘čø”čø–čø čø”čø¢"], + ["8fe0a1", "čø£čø¦čø§čø±čø³čø¶čø·čøøčø¹čø½č¹€č¹č¹‹č¹č¹Žč¹č¹”č¹›č¹œč¹č¹žč¹”č¹¢č¹©č¹¬č¹­č¹Æč¹°č¹±č¹¹č¹ŗč¹»čŗ‚čŗƒčŗ‰čŗčŗ’čŗ•čŗščŗ›čŗčŗžčŗ¢čŗ§čŗ©čŗ­čŗ®čŗ³čŗµčŗŗčŗ»č»€č»č»ƒč»„č»‡č»č»‘č»”č»œč»Øč»®č»°č»±č»·č»¹č»ŗč»­č¼€č¼‚č¼‡č¼ˆč¼č¼č¼–č¼—č¼˜č¼žč¼ č¼”č¼£č¼„č¼§č¼Øč¼¬č¼­č¼®č¼“č¼µč¼¶č¼·č¼ŗč½€č½"], + ["8fe1a1", "č½ƒč½‡č½č½‘", 4, "č½˜č½č½žč½„č¾č¾ č¾”č¾¤č¾„č¾¦č¾µč¾¶č¾øč¾¾čæ€čæčæ†čæŠčæ‹čæčæčæ’čæ“čæ•čæ čæ£čæ¤čæØčæ®čæ±čæµčæ¶čæ»čæ¾é€‚逄逈逌逘逛é€Ø逩é€Æé€Ŗ逬逭逳逓逷é€æ遃遄遌遛遝遢遦遧遬遰道遹邅邈邋邌邎邐邕邗邘邙邛邠邔邢還邰邲邳邓邶邽郌邾郃"], + ["8fe2a1", "郄郅郇郈郕郗郘郙郜郝郟郄郒郶郫éƒÆ郰郓郾éƒæ鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄄鄢鄣鄧鄩鄮é„Æ鄱鄓鄶鄷鄹é„ŗ鄼鄽酃酇酈酏酓酗酙酚酛酔酤酧酭酓酹é…ŗ酻醁醃醅醆醊醎醑醓醔醕醘醞醔醦é†Ø醬醭醮醰醱醲醳醶醻醼醽é†æ"], + ["8fe3a1", "釂釃釅釓釔釗釙釚釞釤釄釩é‡Ŗ釬", 5, "釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈄鈦éˆØ鈮éˆÆ鈰鈳鈵鈶éˆø鈹éˆŗ鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉔鉄鉧é‰Ø鉩鉮é‰Æ鉰鉵", 4, "鉻鉼鉽é‰æ銈銉銊銍銎銒銗"], + ["8fe4a1", "銙銟銠銤銄銧éŠØ銫éŠÆ銲銶éŠøéŠŗ銻銼銽éŠæ", 4, "鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋔鋣鋄鋧é‹Ø鋬鋮鋰鋹鋻é‹æ錀錂錈錍錑錔錕錜錝錞錟錔錤錄錧錩éŒŖ錳錓錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍄鍧鍩éŖ鍭éÆ鍰鍱鍳鍓鍶"], + ["8fe5a1", "éŗ鍽éæ鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎔鎣鎤鎦éŽØ鎫鎓鎵鎶éŽŗ鎩鏁鏄鏅鏆鏇鏉", 4, "鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷éøéŗ鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮éÆ鐱鐲鐳鐓鐻éæ鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑔鑣é‘Ø鑫鑭鑮é‘Æ鑱鑲钄钃é•ø镹"], + ["8fe6a1", "镾閄閈閌閍閎閝閞閟閔閦閩閫閬間閶é–ŗ閽é–æ闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阄阦阬阱阳阷é˜ø阹é˜ŗ阼阽陁陒陔陖陗陘陔陮陓陻陼陾é™æ隁隂隃隄隉隑隖隚隝隟隤隄隦隩隮éšÆ隳éšŗ雊雒嶲雘雚雝雞雟雩é›Æ雱é›ŗ霂"], + ["8fe7a1", "霃霅霉霚霛霝霔霢霣éœØ霱霳靁靃靊靎靏靕靗靘靚靛靣靧éŖ靮靳靶靷éø靻靽éæ鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶éžø鞹éžŗ鞼鞾éžæ韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韔韤éŸÆ韱韓韷éŸøéŸŗ頇頊頙頍頎頔頖頜頞頠頣頦"], + ["8fe8a1", "é «é ®é Æ頰頲頳頵頄頾锄锇锊锑锒锓锖锗错锚锢锣锄锦é”Ŗ锬颫颭颮颰颓颷é¢øé¢ŗ颻é¢æ飂飅飈飌飔飣飄飦飧é£Ŗ飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱", 4, "餹é¤ŗ餻餼鄀鄁鄆鄇鄈鄍鄎鄔鄘鄙鄛鄜鄞鄟鄠馛馝馟馦馰馱馲馵"], + ["8fe9a1", "馹é¦ŗ馽é¦æ駃駉駓駔駙駚駜駞駧é§Ŗ駫駬駰駓駵駹駽駾é؂é؃é؄é؋é،éؐéؑéؖé؞éØ éØ¢éØ£éؤéاéØ­éØ®éسéصéضéØø驇驁驄驊驋驌驎驑驔驖驝éŖŖéŖ¬éŖ®éŖÆéŖ²éŖ“éŖµéŖ¶éŖ¹éŖ»éŖ¾éŖæ髁髃髆髈髎髐髒髕髖髗髛髜髠髤髄髧髩髬髲髳髵髹é«ŗ髽é«æ", 4], + ["8feaa1", "鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬓鬵鬷鬹é¬ŗ鬽魈魋魌魕魖魗魛魞魔魣魄魦é­Øé­Ŗ", 4, "魳魵魷é­øé­¹é­æ鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷é®ø鮻鮼鮾é®æéƁéƇéƈéƎéƐéƗéƘéƝéƟéÆ„éƧéÆŖéÆ«éÆÆéƳéÆ·éÆø"], + ["8feba1", "éƹéÆŗéƽéÆæ鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦", 4, "鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩é±Ŗ鱜鱫é±Ø鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹铋铂铑铗铘铜铝铞é“Æ铰铲铳铓é“ŗ铼鵅铽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵄鵩éµŖ鵫鵰鵶鵷鵻"], + ["8feca1", "鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶔é¶Ŗ鶬鶮鶱鶵鶹鶼é¶æ鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷄鷧鷩鷫鷮鷰鷳鷓鷾éøŠéø‚éø‡éøŽéøéø‘éø’éø•éø–éø™éøœéøé¹ŗ鹻鹼éŗ€éŗ‚éŗƒéŗ„éŗ…éŗ‡éŗŽéŗéŗ–éŗ˜éŗ›éŗžéŗ¤éŗØéŗ¬éŗ®éŗÆéŗ°éŗ³éŗ“éŗµé»†é»ˆé»‹é»•é»Ÿé»¤é»§é»¬é»­é»®é»°é»±é»²é»µ"], + ["8feda1", "é»øé»æ鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦é¼Ŗ鼫é¼Æ鼱鼲鼓鼷鼹é¼ŗ鼼鼽é¼æ齁齃", 4, "齓齕齖齗齘齚齝齞é½Ø齩齭", 4, "齳齵é½ŗ齽龏龐龑龒龔龖龗龞龔龢龣龄"] + ]; +}); + +// node_modules/iconv-lite/encodings/tables/cp936.json +var require_cp936 = __commonJS((exports, module) => { + module.exports = [ + ["0", "\x00", 127, "ā‚¬"], + ["8140", "äø‚äø„äø…äø†äøäø’äø—äøŸäø äø”äø£äø¦äø©äø®äøÆäø±äø³äøµäø·äø¼ä¹€ä¹ä¹‚乄乆乊乑乕乗乚乛乢乣乤乄乧ä¹Øä¹Ŗ", 5, "乲乓", 9, "ä¹æ", 6, "äŗ‡äŗŠ"], + ["8180", "äŗäŗ–äŗ—äŗ™äŗœäŗäŗžäŗ£äŗŖäŗÆäŗ°äŗ±äŗ“äŗ¶äŗ·äŗøäŗ¹äŗ¼äŗ½äŗ¾ä»ˆä»Œä»ä»ä»’仚仛仜仠仢仦仧仩仭仮ä»Æ仱仓ä»ø仹ä»ŗ仼仾伀伂", 6, "伋伌伒", 4, "伜伝伔伣ä¼Ø伩伬伭伮伱伳伵伷伹伻伾", 4, "佄佅佇", 5, "佒佔佖佔佢佦ä½Øä½Ŗ佫佭佮佱佲併佷ä½øä½¹ä½ŗ佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟侔侢"], + ["8240", "侤侫侭侰", 4, "侶", 8, "äæ€äæäæ‚äæ†äæ‡äæˆäæ‰äæ‹äæŒäæäæ’", 4, "äæ™äæ›äæ äæ¢äæ¤äæ„äæ§äæ«äæ¬äæ°äæ²äæ“äæµäæ¶äæ·äæ¹äæ»äæ¼äæ½äææ", 11], + ["8280", "個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫å€Æ", 10, "倻倽å€æ偀偁偂偄偅偆偉偊偋偍偐", 4, "偖偗偘偙偛偝", 7, "偦", 5, "偭", 8, "åø偹åŗ偼偽傁傂傃傄傆傇傉傊傋傌傎", 20, "傤傦å‚Ŗ傫傭", 4, "傳", 6, "傼"], + ["8340", "傽", 17, "僐", 5, "僗僘僙僛", 10, "åƒØ僩åƒŖ僫åƒÆ僰僱僲僓僶", 4, "僼", 9, "儈"], + ["8380", "儉儊儌", 5, "儓", 13, "儢", 28, "兂兇兊兌兎兏児兒兓兗兘兙兛兝", 4, "兣兤兦內兩å…Ŗå…Æ兲å…ŗ兾å…æ冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冔冣冦", 4, "冭冮冓å†ø冹å†ŗ冾å†æ凁凂凃凅凈凊凍凎凐凒", 5], + ["8440", "凘凙凚凜凞凟凢凣凄", 5, "凬凮凱凲凓凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刔刢刣刄刦刧åˆŖ刬åˆÆ刱刲刓刵刼刾剄", 5, "剋剎剏剒剓剕剗剘"], + ["8480", "剙剚剛剝剟剠剢剣剤剦å‰Ø剫剬剭剮剰剱剳", 9, "剾劀劃", 4, "劉", 6, "劑劒劔", 6, "劜劤劄劦劧劮åŠÆ劰劓", 9, "勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務", 5, "勠勔勢勣勄", 10, "勱", 7, "勻勼勽匁匂匃匄匇匉匊匋匌匎"], + ["8540", "匑匒匓匔匘匛匜匞匟匢匤匄匧åŒØ匩匫匬匭åŒÆ", 9, "匼匽區卂卄卆卋卌卍卐協単卙卛卝卄åØåŖ卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"], + ["8580", "厐", 4, "厖厗厙厛厜厞厠厔厤厧åŽŖ厫厬厭åŽÆ", 6, "厷åŽø厹åŽŗ厼厽厾叀參", 4, "収叏叐叒叓叕叚叜叝叞叔叢叧叓åŗ叾åæ吀吂吅吇吋吔吘吙吚吜吢吤各åŖ吰吳吶吷åŗ吽åæ呁呂呄呅呇呉呌呍呎呏呑呚呝", 4, "呣呄呧呩", 7, "呓呹å‘ŗ呾å‘æ咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咔"], + ["8640", "咢咄咮咰咲咵咶咷咹å’ŗ咼咾哃哅哊哋哖哘哛哠", 4, "哫哬å“Æ哰哱哓", 5, "哻哾唀唂唃唄唅唈唊", 4, "唒唓唕", 5, "唜唝唞唟唔唄唦"], + ["8680", "å”Ø唩唫唭唲唓唵唶å”ø唹å”ŗ唻唽啀啂啅啇啈啋", 4, "啑啒啓啔啗", 4, "啝啞啟啠啢啣å•Ø啩啫å•Æ", 5, "啹å•ŗ啽å•æ喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠", 6, "å–Ø", 8, "喲喓営å–øå–ŗ喼å–æ", 4, "嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗", 4, "嗞嗠嗢嗧嗩嗭嗮嗰嗱嗓嗶å—ø", 4, "å—æ嘂嘃嘄嘅"], + ["8740", "嘆嘇嘊嘋嘍嘐", 7, "嘙嘚嘜嘝嘠嘔嘢嘄嘦å˜Ø嘩å˜Ŗ嘫嘮å˜Æ嘰嘳嘵嘷å˜øå˜ŗ嘼嘽嘾噀", 11, "噏", 4, "噕噖噚噛噝", 4], + ["8780", "噣噄噦噧噭噮å™Æ噰噲噳噓噵噷å™ø噹å™ŗ噽", 7, "嚇", 6, "嚐嚑嚒嚔", 14, "嚤", 10, "嚰", 6, "åšø嚹åšŗ嚻嚽", 12, "囋", 8, "囕囖囘囙囜団囄", 5, "囬囮å›Æ囲図囶囷å›ø囻囼圀圁圂圅圇國", 6], + ["8840", "園", 9, "圝圞圠圔圢圤圄圦圧圫圱圲圓", 4, "圼圽åœæ坁坃坄坅坆坈坉坋坒", 4, "坘坙坢坣坄坧坬坮坰坱坲坓坵åø坹åŗ坽坾åæ垀"], + ["8880", "垁垇垈垉垊垍", 4, "垔", 6, "垜垝垞垟垄åžØåžŖ垬åžÆ垰垱垳垵垶垷垹", 8, "埄", 6, "埌埍埐埑埓埖埗埛埜埞埔埢埣埄", 7, "埮埰埱埲埳埵埶執埻埼埾åŸæ堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堄", 4, "å «", 4, "報堲堳堓堶", 7], + ["8940", "å ¾", 5, "å”…", 6, "唎唏唐唒唓唕唖唗唙", 4, "唟", 5, "唦", 4, "å”­", 16, "å”æ墂墄墆墇墈墊墋墌"], + ["8980", "墍", 4, "墔", 4, "墛墜墝墠", 7, "å¢Ŗ", 17, "墽墾å¢æ壀壂壃壄壆", 10, "壒壓壔壖", 13, "壄", 5, "壭å£Æ壱売壓壵壷å£øå£ŗ", 7, "夃夅夆夈", 4, "夎夐夑夒夓夗夘夛夝夞夠夔夢夣夦å¤Ø夬夰夲夳夵夶夻"], + ["8a40", "夽夾å¤æ儀儃儅儆儊儌儍儐儒儓儙儛", 4, "儔儣儤儦", 12, "儵儷å„ŗ儻儼儾å„æ妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妔妢妦"], + ["8a80", "妧妬妭妰妱妳", 5, "å¦ŗ妼妽å¦æ", 6, "姇姈姉姌姍姎姏姕姖姙姛姞", 4, "姤姦姧姩å§Ŗ姫姭", 11, "å§ŗ姼姽姾å؀å؂å؊å؋å؍å؎å؏åؐåؒåؔåؕåؖåؗåؙåؚå؛å؝å؞åØ”åØ¢åؤåئåاåØØåØŖ", 6, "åسåصåØ·", 4, "åؽåؾåØæ婁", 4, "婇婈婋", 9, "婖婗婘婙婛", 5], + ["8b40", "婔婣婤婄婦å©Øå©©å©«", 8, "å©ø婹婻婼婽婾åŖ€", 17, "åŖ“", 6, "åŖœ", 13, "åŖ«åŖ¬"], + ["8b80", "åŖ­", 4, "åŖ“åŖ¶åŖ·åŖ¹", 4, "åŖæ嫀嫃", 5, "嫊嫋嫍", 4, "嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫄嫧å«Øå«Ŗ嫬", 4, "嫲", 22, "嬊", 11, "嬘", 25, "嬳嬵嬶å¬ø", 7, "孁", 6], + ["8c40", "孈", 7, "孒孖孞孠孔孧å­Øå­«å­­å­®å­Æ孲孓孶孷å­ø孹孻孼孾å­æ宂宆宊宍宎宐宑宒宔宖実宧å®Ø宩宬宭宮å®Æ宱宲宷å®ŗ宻宼åƀåƁåƃåƈåƉåƊåƋåƍåƎåƏ"], + ["8c80", "åƑåƔ", 8, "åÆ åÆ¢åÆ£åƦåƧåÆ©", 4, "åÆÆåƱ", 6, "åƽåƾ尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尔尣尦å°Øå°©å°Ŗå°«å°­å°®å°Æ尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧", 6, "å±°å±²", 6, "屻屼屽屾岀岃", 4, "岉岊岋岎岏岒岓岕岝", 4, "岤", 4], + ["8d40", "å²Ŗå²®å²Æ岰岲岓岶岹å²ŗ岻岼岾峀峂峃峅", 5, "峌", 5, "峓", 5, "峚", 6, "峢峣峧峩峫峬峮å³Æå³±", 9, "å³¼", 4], + ["8d80", "品哄哅哈", 5, "哏", 4, "哕哗哘哙哚哜哝哟", 4, "å“„å“Øå“Ŗ哫哬å“Æ", 4, "哵", 7, "å“æ", 7, "嵈嵉嵍", 10, "嵙嵚嵜嵞", 10, "åµŖ嵭嵮嵰嵱嵲嵳嵵", 12, "嶃", 21, "嶚嶛嶜嶞嶟嶠"], + ["8e40", "嶔", 21, "å¶ø", 12, "巆", 6, "巎", 12, "巜巟巠巣巤å·Ŗ巬巭"], + ["8e80", "巰巵巶å·ø", 4, "å·æåø€åø„åø‡åø‰åøŠåø‹åøåøŽåø’åø“åø—åøž", 7, "åøØ", 4, "åøÆåø°åø²", 4, "åø¹åøŗåø¾åøæ幀幁幃幆", 5, "幍", 6, "幖", 4, "幜幝幟幠幣", 14, "幵幷幹幾åŗåŗ‚åŗƒåŗ…åŗˆåŗ‰åŗŒåŗåŗŽåŗ’åŗ˜åŗ›åŗåŗ”åŗ¢åŗ£åŗ¤åŗØ", 4, "åŗ®", 4, "åŗ“åŗŗåŗ»åŗ¼åŗ½åŗæ", 6], + ["8f40", "廆廇廈廋", 5, "廔廕廗廘廙廚廜", 11, "廩廫", 8, "廵å»ø廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弔弢弣弤"], + ["8f80", "å¼Ø弫弬弮弰弲", 6, "弻弽弾å¼æ彁", 14, "彑彔彙彚彛彜彞彟彠彣彄彧å½Ø彫彮å½Æ彲当彵彶å½øå½ŗ彽彾å½æ徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢", 5, "復徫徬å¾Æ", 5, "徶å¾øå¾¹å¾ŗ徻徾", 4, "åæ‡åæˆåæŠåæ‹åæŽåæ“åæ”åæ•åæšåæ›åæœåæžåæŸåæ¢åæ£åæ„åæ¦åæØåæ©åæ¬åæÆåæ°åæ²åæ³åæ“åæ¶åæ·åæ¹åæŗåæ¼ę€‡"], + ["9040", "ę€ˆę€‰ę€‹ę€Œę€ę€‘ę€“ę€—ę€˜ę€šę€žę€Ÿę€¢ę€£ę€¤ę€¬ę€­ę€®ę€°", 4, "ꀶ", 4, "ę€½ę€¾ę€ę„", 6, "ęŒęŽęę‘ę“ę”ę–ę—ę˜ę›ęœęžęŸę ę”ę„ę¦ę®ę±ę²ę“ęµę·ę¾ę‚€"], + ["9080", "ę‚ę‚‚ę‚…ę‚†ę‚‡ę‚ˆę‚Šę‚‹ę‚Žę‚ę‚ę‚‘ę‚“ę‚•ę‚—ę‚˜ę‚™ę‚œę‚žę‚”ę‚¢ę‚¤ę‚„ę‚§ę‚©ę‚Ŗę‚®ę‚°ę‚³ę‚µę‚¶ę‚·ę‚¹ę‚ŗę‚½", 7, "ꃇꃈꃉꃌ", 4, "ęƒ’ęƒ“ęƒ”ęƒ–ęƒ—ęƒ™ęƒ›ęƒžęƒ”", 4, "ęƒŖęƒ±ęƒ²ęƒµęƒ·ęƒøꃻ", 4, "ꄂꄃꄄꄅꄇꄊꄋꄌꄐ", 4, "ę„–ę„—ę„˜ę„™ę„›ę„œę„ę„žę„”ę„¢ę„„ę„Øę„©ę„Ŗꄬ", 18, "ꅀ", 6], + ["9140", "ꅇꅉꅋꅍꅏꅐꅒꅓꅔꅖ", 6, "ę…žę…Ÿę… ę…”ę…£ę…¤ę…„ę…¦ę…©", 6, "ę…±ę…²ę…³ę…“ę…¶ę…ø", 18, "ꆌꆍꆏ", 4, "ꆕ"], + ["9180", "ꆖ", 6, "ꆞ", 8, "ę†Ŗꆫꆭ", 9, "ę†ø", 5, "ę†æꇀꇁꇃ", 4, "ꇉꇌ", 4, "ꇓꇕ", 16, "ꇧ", 13, "ꇶ", 8, "ꈀ", 5, "ęˆ‡ęˆ‰ęˆ“ęˆ”ęˆ™ęˆœęˆęˆžęˆ ęˆ£ęˆ¦ęˆ§ęˆØꈩꈫꈭęˆÆęˆ°ęˆ±ęˆ²ęˆµęˆ¶ęˆø", 4, "ꉂꉄꉅꉆꉊ"], + ["9240", "ꉏꉐꉕꉖꉗꉙꉚꉜ", 6, "ꉤꉄę‰Øę‰±ę‰²ę‰“ę‰µę‰·ę‰øę‰ŗę‰»ę‰½ęŠęŠ‚ęŠƒęŠ…ęŠ†ęŠ‡ęŠˆęŠ‹", 5, "ęŠ”ęŠ™ęŠœęŠęŠžęŠ£ęŠ¦ęŠ§ęŠ©ęŠŖꊭꊮęŠÆęŠ°ęŠ²ęŠ³ęŠ“ęŠ¶ęŠ·ęŠøęŠŗęŠ¾ę‹€ę‹"], + ["9280", "ę‹ƒę‹‹ę‹ę‹‘ę‹•ę‹ę‹žę‹ ę‹”ę‹¤ę‹Ŗę‹«ę‹°ę‹²ę‹µę‹øę‹¹ę‹ŗę‹»ęŒ€ęŒƒęŒ„ęŒ…ęŒ†ęŒŠęŒ‹ęŒŒęŒęŒęŒęŒ’ęŒ“ęŒ”ęŒ•ęŒ—ęŒ˜ęŒ™ęŒœęŒ¦ęŒ§ęŒ©ęŒ¬ęŒ­ęŒ®ęŒ°ęŒ±ęŒ³", 5, "ęŒ»ęŒ¼ęŒ¾ęŒæꍀꍁꍄꍇꍈꍊꍑꍒꍓꍔꍖ", 7, "ę ę¤ę„ę¦ęØęŖę«ę¬ęÆę°ę²ę³ę“ęµęøę¹ę¼ę½ę¾ęæꎁꎃꎄꎅꎆꎋꎍꎑꎓꎔꎕꎗꎙ", 6, "ꎔꎤꎦꎫęŽÆęŽ±ęŽ²ęŽµęŽ¶ęŽ¹ęŽ»ęŽ½ęŽæꏀ"], + ["9340", "ꏁꏂꏃꏅꏇꏈꏊꏋꏌꏑꏓꏔꏕꏗ", 6, "ęŸę¢ę¤", 4, "ę«ę¬ę®ęÆę°ę±ę³ęµę·ę¹ęŗę»ę¼ę¾ęƒę„ę†", 4, "ꐍꐎꐑꐒꐕ", 5, "ęęŸę¢ę£ę¤"], + ["9380", "ꐄꐧęØꐩꐫꐮ", 5, "ꐵ", 4, "ę»ę¼ę¾ę‘€ę‘‚ę‘ƒę‘‰ę‘‹", 6, "ꑓꑕꑖꑗꑙ", 4, "ꑟ", 7, "ę‘Øę‘Ŗꑫꑬꑮ", 9, "ę‘»", 6, "ꒃꒆꒈ", 8, "꒓꒔꒗꒘꒚꒛꒜꒝꒟", 4, "ꒄ꒦꒧ę’Øę’Ŗę’«ę’Æę’±ę’²ę’³ę’“ę’¶ę’¹ę’»ę’½ę’¾ę’æ꓁꓃꓄꓆", 6, "꓏ꓑꓓꓔꓕꓖꓙꓚ"], + ["9440", "ę“›ę“œę“ę“Ÿę“ ę“”ę“£ę“„ę“§", 24, "ꔁ", 7, "ꔊ", 7, "ꔓ", 4, "ꔙ", 8], + ["9480", "ę”¢ę”£ę”¤ę”¦", 4, "ę”¬ę”­ę”°ę”±ę”²ę”³ę”·ę”ŗę”¼ę”½ę•€", 4, "ę•†ę•‡ę•Šę•‹ę•ę•Žę•ę•’ę•“ę•”ę•—ę•˜ę•šę•œę•Ÿę• ę•”ę•¤ę•„ę•§ę•Øę•©ę•Ŗę•­ę•®ę•Æę•±ę•³ę•µę•¶ę•ø", 14, "ę–ˆę–‰ę–Šę–ę–Žę–ę–’ę–”ę–•ę––ę–˜ę–šę–ę–žę– ę–¢ę–£ę–¦ę–Øę–Ŗꖬꖮꖱ", 7, "ę–ŗę–»ę–¾ę–æꗀꗂꗇꗈꗉꗊꗍꗐꗑꗓꗔꗕꗘ", 7, "ę—”ę—£ę—¤ę—Ŗę—«"], + ["9540", "ę—²ę—³ę—“ę—µę—øę—¹ę—»", 4, "ę˜ę˜„ę˜…ę˜‡ę˜ˆę˜‰ę˜‹ę˜ę˜ę˜‘ę˜’ę˜–ę˜—ę˜˜ę˜šę˜›ę˜œę˜žę˜”ę˜¢ę˜£ę˜¤ę˜¦ę˜©ę˜Ŗę˜«ę˜¬ę˜®ę˜°ę˜²ę˜³ę˜·", 4, "ę˜½ę˜æꙀꙂꙄ", 6, "ꙍꙎꙐꙑꙘ"], + ["9580", "ę™™ę™›ę™œę™ę™žę™ ę™¢ę™£ę™„ę™§ę™©", 4, "ę™±ę™²ę™³ę™µę™øę™¹ę™»ę™¼ę™½ę™æꚀꚁꚃꚅꚆꚈꚉꚊꚋꚍꚎꚏꚐꚒꚓꚔꚕꚘ", 4, "ꚞ", 8, "ęš©", 4, "ęšÆ", 4, "ꚵꚶꚷęšøęšŗęš»ęš¼ęš½ęšæ", 25, "ꛚꛞ", 7, "ꛧę›Øę›Ŗ", 5, "꛱꛵꛶ę›øę›ŗę›»ę›½ęœęœ‚ęœƒ"], + ["9640", "꜄꜅꜆꜇꜌꜎꜏꜑꜒꜓꜖ꜘꜙꜚꜜꜞ꜠", 5, "ęœ§ęœ©ęœ®ęœ°ęœ²ęœ³ęœ¶ęœ·ęœøęœ¹ęœ»ęœ¼ęœ¾ęœæꝁꝄꝅꝇꝊꝋꝍꝒꝔꝕꝗ", 4, "ęę¢ę£ę¤ę¦ę§ę«ę¬ę®ę±ę“ę¶"], + ["9680", "ęøę¹ęŗę»ę½ęž€ęž‚ęžƒęž…ęž†ęžˆęžŠęžŒęžęžŽęžęž‘ęž’ęž“ęž”ęž–ęž™ęž›ęžŸęž ęž”ęž¤ęž¦ęž©ęž¬ęž®ęž±ęž²ęž“ęž¹", 7, "ꟂꟅ", 9, "ęŸ•ęŸ–ęŸ—ęŸ›ęŸŸęŸ”ęŸ£ęŸ¤ęŸ¦ęŸ§ęŸØęŸŖęŸ«ęŸ­ęŸ®ęŸ²ęŸµ", 7, "ęŸ¾ę ę ‚ę ƒę „ę †ę ę ę ’ę ”ę •ę ˜", 4, "ę žę Ÿę  ę ¢", 6, "ę «", 6, "ꠓ꠵꠶ę ŗę »ę æę”‡ę”‹ę”ę”ę”’ę”–", 5], + ["9740", "ę”œę”ę”žę”Ÿę”Ŗꔬ", 7, "ꔵę”ø", 8, "ę¢‚ę¢„ę¢‡", 7, "ę¢ę¢‘ę¢’ę¢”ę¢•ę¢–ę¢˜", 9, "ę¢£ę¢¤ę¢„ę¢©ę¢Ŗę¢«ę¢¬ę¢®ę¢±ę¢²ę¢“ę¢¶ę¢·ę¢ø"], + ["9780", "ę¢¹", 6, "ę£ę£ƒ", 5, "ę£Šę£Œę£Žę£ę£ę£‘ę£“ę£”ę£–ę£—ę£™ę£›", 4, "ę£”ę£¢ę£¤", 9, "ę£Æę£²ę£³ę£“ę£¶ę£·ę£øę£»ę£½ę£¾ę£æ꤀꤂꤃꤄꤆", 4, "ꤌꤏꤑꤓ", 11, "ę¤”ę¤¢ę¤£ę¤„", 7, "꤮ę¤Æę¤±ę¤²ę¤³ę¤µę¤¶ę¤·ę¤øę¤ŗę¤»ę¤¼ę¤¾ę„€ę„ę„ƒ", 16, "ę„•ę„–ę„˜ę„™ę„›ę„œę„Ÿ"], + ["9840", "ę„”ę„¢ę„¤ę„„ę„§ę„Øę„©ę„Ŗꄬꄭę„Æę„°ę„²", 4, "ę„ŗę„»ę„½ę„¾ę„æę¦ę¦ƒę¦…ę¦Šę¦‹ę¦Œę¦Ž", 5, "ę¦–ę¦—ę¦™ę¦šę¦", 9, "ꦩę¦Ŗꦬꦮę¦Æę¦°ę¦²ę¦³ę¦µę¦¶ę¦øę¦¹ę¦ŗę¦¼ę¦½"], + ["9880", "ę¦¾ę¦æ꧀꧂", 7, "꧋꧍ꧏ꧑꧒꧓꧕", 5, "ę§œę§ę§žę§”", 11, "ꧮę§Æę§°ę§±ę§³", 9, "ę§¾ę؀", 9, "ę؋", 11, "ęؙ", 5, "ęØ ęØ¢", 5, "ęØ©ęØ«ęجęØ­ęØ®ęØ°ęزęسęØ“ęض", 6, "ęØæ", 4, "ę©…ę©†ę©ˆ", 7, "ę©‘", 6, "ę©š"], + ["9940", "ę©œ", 4, "ę©¢ę©£ę©¤ę©¦", 10, "ę©²", 6, "ę©ŗę©»ę©½ę©¾ę©æęŖęŖ‚ęŖƒęŖ…", 8, "ęŖęŖ’", 4, "ęŖ˜", 7, "ęŖ”", 5], + ["9980", "ęŖ§ęŖØęŖŖęŖ­", 114, "ꬄꬦę¬Ø", 6], + ["9a40", "ę¬Æę¬°ę¬±ę¬³ę¬“ę¬µę¬¶ę¬øę¬»ę¬¼ę¬½ę¬æꭀꭁꭂꭄꭅꭈꭊꭋꭍ", 11, "ꭚ", 7, "ę­Øę­©ę­«", 13, "ę­ŗę­½ę­¾ę­æę®€ę®…ę®ˆ"], + ["9a80", "ę®Œę®Žę®ę®ę®‘ę®”ę®•ę®—ę®˜ę®™ę®œ", 4, "ę®¢", 7, "ꮫ", 7, "ꮶę®ø", 6, "ęƀęƃęƄęƆ", 4, "ęƌęƎęƐęƑęƘęƚęƜ", 4, "ęÆ¢", 7, "ęƬęÆ­ęÆ®ęÆ°ęƱęƲęÆ“ęƶęÆ·ęÆøęÆŗęÆ»ęƼęƾ", 6, "갈", 4, "ę°Žę°’ę°—ę°œę°ę°žę° ę°£ę°„ę°«ę°¬ę°­ę°±ę°³ę°¶ę°·ę°¹ę°ŗę°»ę°¼ę°¾ę°æę±ƒę±„ę±…ę±ˆę±‹", 4, "ę±‘ę±’ę±“ę±–ę±˜"], + ["9b40", "ę±™ę±šę±¢ę±£ę±„ę±¦ę±§ę±«", 4, "ę±±ę±³ę±µę±·ę±øę±ŗę±»ę±¼ę±æę²€ę²„ę²‡ę²Šę²‹ę²ę²Žę²‘ę²’ę²•ę²–ę²—ę²˜ę²šę²œę²ę²žę² ę²¢ę²Øę²¬ę²Æę²°ę²“ę²µę²¶ę²·ę²ŗę³€ę³ę³‚ę³ƒę³†ę³‡ę³ˆę³‹ę³ę³Žę³ę³‘ę³’ę³˜"], + ["9b80", "ę³™ę³šę³œę³ę³Ÿę³¤ę³¦ę³§ę³©ę³¬ę³­ę³²ę³“ę³¹ę³æę“€ę“‚ę“ƒę“…ę“†ę“ˆę“‰ę“Šę“ę“ę“ę“‘ę““ę“”ę“•ę“–ę“˜ę“œę“ę“Ÿ", 5, "ꓦę“Øꓩꓬꓭę“Æꓰꓓꓶꓷę“øę“ŗę“æęµ€ęµ‚ęµ„ęµ‰ęµŒęµęµ•ęµ–ęµ—ęµ˜ęµ›ęµęµŸęµ”ęµ¢ęµ¤ęµ„ęµ§ęµØęµ«ęµ¬ęµ­ęµ°ęµ±ęµ²ęµ³ęµµęµ¶ęµ¹ęµŗęµ»ęµ½", 4, "ę¶ƒę¶„ę¶†ę¶‡ę¶Šę¶‹ę¶ę¶ę¶ę¶’ę¶–", 4, "ę¶œę¶¢ę¶„ę¶¬ę¶­ę¶°ę¶±ę¶³ę¶“ę¶¶ę¶·ę¶¹", 5, "ę·ę·‚ę·ƒę·ˆę·‰ę·Š"], + ["9c40", "ę·ę·Žę·ę·ę·’ę·“ę·”ę·•ę·—ę·šę·›ę·œę·Ÿę·¢ę·£ę·„ę·§ę·Øę·©ę·Ŗę·­ę·Æę·°ę·²ę·“ę·µę·¶ę·øę·ŗę·½", 7, "ęø†ęø‡ęøˆęø‰ęø‹ęøęø’ęø“ęø•ęø˜ęø™ęø›ęøœęøžęøŸęø¢ęø¦ęø§ęøØęøŖęø¬ęø®ęø°ęø±ęø³ęøµ"], + ["9c80", "ęø¶ęø·ęø¹ęø»", 7, "ę¹…", 7, "ę¹ę¹ę¹‘ę¹’ę¹•ę¹—ę¹™ę¹šę¹œę¹ę¹žę¹ ", 10, "ę¹¬ę¹­ę¹Æ", 14, "ęŗ€ęŗęŗ‚ęŗ„ęŗ‡ęŗˆęŗŠ", 4, "ęŗ‘", 6, "ęŗ™ęŗšęŗ›ęŗęŗžęŗ ęŗ”ęŗ£ęŗ¤ęŗ¦ęŗØęŗ©ęŗ«ęŗ¬ęŗ­ęŗ®ęŗ°ęŗ³ęŗµęŗøęŗ¹ęŗ¼ęŗ¾ęŗæę»€ę»ƒę»„ę»…ę»†ę»ˆę»‰ę»Šę»Œę»ę»Žę»ę»’ę»–ę»˜ę»™ę»›ę»œę»ę»£ę»§ę»Ŗ", 5], + ["9d40", "ę»°ę»±ę»²ę»³ę»µę»¶ę»·ę»øę»ŗ", 7, "ę¼ƒę¼„ę¼…ę¼‡ę¼ˆę¼Š", 4, "ę¼ę¼‘ę¼’ę¼–", 9, "ę¼”ę¼¢ę¼£ę¼„ę¼¦ę¼§ę¼Øę¼¬ę¼®ę¼°ę¼²ę¼“ę¼µę¼·", 6, "ę¼æę½€ę½ę½‚"], + ["9d80", "ę½ƒę½„ę½…ę½ˆę½‰ę½Šę½Œę½Ž", 9, "ę½™ę½šę½›ę½ę½Ÿę½ ę½”ę½£ę½¤ę½„ę½§", 5, "ę½Æę½°ę½±ę½³ę½µę½¶ę½·ę½¹ę½»ę½½", 6, "ę¾…ę¾†ę¾‡ę¾Šę¾‹ę¾", 12, "ę¾ę¾žę¾Ÿę¾ ę¾¢", 4, "ę¾Ø", 10, "ę¾“ę¾µę¾·ę¾øę¾ŗ", 5, "ęæęæƒ", 5, "ęæŠ", 6, "ęæ“", 10, "ęæŸęæ¢ęæ£ęæ¤ęæ„"], + ["9e40", "ęæ¦", 7, "ęæ°", 32, "ē€’", 7, "ē€œ", 6, "ē€¤", 6], + ["9e80", "ē€«", 9, "ē€¶ē€·ē€øē€ŗ", 17, "ēēŽē", 13, "ēŸ", 11, "ē®ē±ē²ē³ē“ē·ē¹ēŗē»ē½ē‚ē‚‚ē‚ƒē‚„ē‚†ē‚‡ē‚ˆē‚‹ē‚Œē‚ē‚ē‚ē‚‘ē‚“ē‚—ē‚˜ē‚šē‚›ē‚ž", 12, "ē‚°ē‚²ē‚“ē‚µē‚¶ē‚ŗē‚¾ē‚æēƒ„ēƒ…ēƒ†ēƒ‡ēƒ‰ēƒ‹", 12, "ēƒš"], + ["9f40", "ēƒœēƒēƒžēƒ ēƒ”ēƒ¢ēƒ£ēƒ„ēƒŖēƒ®ēƒ°", 6, "ēƒøēƒŗēƒ»ēƒ¼ēƒ¾", 10, "ē„‹", 4, "ē„‘ē„’ē„”ē„—ē„›", 10, "ē„§", 7, "ē„²ē„³ē„“"], + ["9f80", "ē„µē„·", 13, "ē…†ē…‡ē…ˆē…‰ē…‹ē…ē…", 12, "ē…ē…Ÿ", 4, "ē…„ē…©", 4, "ē…Æē…°ē…±ē…“ē…µē…¶ē…·ē…¹ē…»ē…¼ē…¾", 5, "ē†…", 4, "ē†‹ē†Œē†ē†Žē†ē†‘ē†’ē†“ē†•ē†–ē†—ē†š", 4, "ē†”", 6, "ē†©ē†Ŗē†«ē†­", 5, "ē†“ē†¶ē†·ē†øē†ŗ", 8, "ē‡„", 9, "ē‡", 4], + ["a040", "ē‡–", 9, "ē‡”ē‡¢ē‡£ē‡¤ē‡¦ē‡Ø", 5, "ē‡Æ", 9, "ē‡ŗ", 11, "ēˆ‡", 19], + ["a080", "ēˆ›ēˆœēˆž", 9, "ēˆ©ēˆ«ēˆ­ēˆ®ēˆÆēˆ²ēˆ³ēˆ“ēˆŗēˆ¼ēˆ¾ē‰€", 6, "ē‰‰ē‰Šē‰‹ē‰Žē‰ē‰ē‰‘ē‰“ē‰”ē‰•ē‰—ē‰˜ē‰šē‰œē‰žē‰ ē‰£ē‰¤ē‰„ē‰Øē‰Ŗē‰«ē‰¬ē‰­ē‰°ē‰±ē‰³ē‰“ē‰¶ē‰·ē‰øē‰»ē‰¼ē‰½ēŠ‚ēŠƒēŠ…", 4, "ēŠŒēŠŽēŠēŠ‘ēŠ“", 11, "ēŠ ", 11, "ēŠ®ēŠ±ēŠ²ēŠ³ēŠµēŠŗ", 6, "ē‹…ē‹†ē‹‡ē‹‰ē‹Šē‹‹ē‹Œē‹ē‹‘ē‹“ē‹”ē‹•ē‹–ē‹˜ē‹šē‹›"], + ["a1a1", "怀态怂Ā·Ė‰Ė‡ĀØ怃怅ā€”ļ½žā€–ā€¦ā€˜ā€™ā€œā€ć€”ć€•ć€ˆ", 7, "怖怗怐怑Ā±Ć—Ć·āˆ¶āˆ§āˆØāˆ‘āˆāˆŖāˆ©āˆˆāˆ·āˆšāŠ„āˆ„āˆ āŒ’āŠ™āˆ«āˆ®ā‰”ā‰Œā‰ˆāˆ½āˆā‰ ā‰®ā‰Æā‰¤ā‰„āˆžāˆµāˆ“ā™‚ā™€Ā°ā€²ā€³ā„ƒļ¼„Ā¤ļæ ļæ”ā€°Ā§ā„–ā˜†ā˜…ā—‹ā—ā—Žā—‡ā—†ā–”ā– ā–³ā–²ā€»ā†’ā†ā†‘ā†“怓"], + ["a2a1", "ā…°", 9], + ["a2b1", "ā’ˆ", 19, "ā‘“", 19, "ā‘ ", 9], + ["a2e5", "戠", 9], + ["a2f1", "ā… ", 11], + ["a3a1", "ļ¼ļ¼‚ļ¼ƒļæ„ļ¼…", 88, "ļæ£"], + ["a4a1", "恁", 82], + ["a5a1", "ć‚”", 85], + ["a6a1", "Ī‘", 16, "Ī£", 6], + ["a6c1", "Ī±", 16, "Ļƒ", 6], + ["a6e0", "ļøµļø¶ļø¹ļøŗļøæļ¹€ļø½ļø¾ļ¹ļ¹‚ļ¹ƒļ¹„"], + ["a6ee", "ļø»ļø¼ļø·ļøøļø±"], + ["a6f4", "ļø³ļø“"], + ["a7a1", "Š", 5, "ŠŠ–", 25], + ["a7d1", "Š°", 5, "ёŠ¶", 25], + ["a840", "ĖŠĖ‹Ė™ā€“ā€•ā€„ā€µā„…ā„‰ā†–ā†—ā†˜ā†™āˆ•āˆŸāˆ£ā‰’ā‰¦ā‰§āŠæā•", 35, "ā–", 6], + ["a880", "ā–ˆ", 7, "ā–“ā–”ā–•ā–¼ā–½ā—¢ā—£ā—¤ā—„ā˜‰āŠ•ć€’ć€ć€ž"], + ["a8a1", "āƔĒŽĆ Ä“Ć©Ä›ĆØÄ«Ć­ĒĆ¬ÅĆ³Ē’Ć²Å«ĆŗĒ”Ć¹Ē–Ē˜ĒšĒœĆ¼ĆŖɑ"], + ["a8bd", "ńň"], + ["a8c0", "É”"], + ["a8c5", "愅", 36], + ["a940", "怔", 8, "ćŠ£ćŽŽćŽćŽœćŽćŽžćŽ”ć„ćŽć‘ć’ć•ļø°ļæ¢ļæ¤"], + ["a959", "ā„”戱"], + ["a95c", "ā€"], + ["a960", "ćƒ¼ć‚›ć‚œćƒ½ćƒ¾ć€†ć‚ć‚žļ¹‰", 9, "ļ¹”ļ¹•ļ¹–ļ¹—ļ¹™", 8], + ["a980", "ļ¹¢", 4, "ļ¹Øļ¹©ļ¹Ŗļ¹«"], + ["a996", "怇"], + ["a9a4", "ā”€", 75], + ["aa40", "ē‹œē‹ē‹Ÿē‹¢", 5, "ē‹Ŗē‹«ē‹µē‹¶ē‹¹ē‹½ē‹¾ē‹æēŒ€ēŒ‚ēŒ„", 5, "ēŒ‹ēŒŒēŒēŒēŒēŒ‘ēŒ’ēŒ”ēŒ˜ēŒ™ēŒšēŒŸēŒ ēŒ£ēŒ¤ēŒ¦ēŒ§ēŒØēŒ­ēŒÆēŒ°ēŒ²ēŒ³ēŒµēŒ¶ēŒŗēŒ»ēŒ¼ēŒ½ē€", 8], + ["aa80", "ē‰ēŠē‹ēŒēŽēē‘ē“ē”ē•ē–ē˜", 7, "ē”", 10, "ē®ē°ē±"], + ["ab40", "ē²", 11, "ēæ", 4, "ēŽ…ēŽ†ēŽˆēŽŠēŽŒēŽēŽēŽēŽ’ēŽ“ēŽ”ēŽ•ēŽ—ēŽ˜ēŽ™ēŽšēŽœēŽēŽžēŽ ēŽ”ēŽ£", 5, "ēŽŖēŽ¬ēŽ­ēŽ±ēŽ“ēŽµēŽ¶ēŽøēŽ¹ēŽ¼ēŽ½ēŽ¾ēŽæēēƒ", 4], + ["ab80", "ē‹ēŒēŽē’", 6, "ēšē›ēœēēŸē”ē¢ē£ē¤ē¦ēØēŖē«ē¬ē®ēÆē°ē±ē³", 4], + ["ac40", "ēø", 10, "ē„ē‡ēˆē‹ēŒēēŽē‘", 8, "ēœ", 5, "ē£ē¤ē§ē©ē«ē­ēÆē±ē²ē·", 4, "ē½ē¾ēæē‘€ē‘‚", 11], + ["ac80", "ē‘Ž", 6, "ē‘–ē‘˜ē‘ē‘ ", 12, "ē‘®ē‘Æē‘±", 4, "ē‘øē‘¹ē‘ŗ"], + ["ad40", "ē‘»ē‘¼ē‘½ē‘æē’‚ē’„ē’…ē’†ē’ˆē’‰ē’Šē’Œē’ē’ē’‘", 10, "ē’ē’Ÿ", 7, "ē’Ŗ", 15, "ē’»", 12], + ["ad80", "ē“ˆ", 9, "ē““", 8, "ē“ē“Ÿē“”ē“„ē“§", 6, "ē“°ē“±ē“²"], + ["ae40", "ē“³ē“µē“ø", 6, "ē”€ē”ē”‚ē”ƒē”…", 7, "ē”Žē”ē”’ē””ē”•ē”–ē”—ē”›ē”ē”žē” ", 4, "ē”¦ē”§ē”Ŗē”®ē”“ē”¶ē”¹ē”¼ē”½ē”æē•ē•‚ē•ƒē•„ē•†ē•‡ē•‰ē•Šē•ē•ē•‘ē•’ē•“ē••ē•–ē•—ē•˜"], + ["ae80", "ē•", 7, "ē•§ē•Øē•©ē•«", 6, "ē•³ē•µē•¶ē•·ē•ŗ", 4, "ē–€ē–ē–‚ē–„ē–…ē–‡"], + ["af40", "ē–ˆē–‰ē–Šē–Œē–ē–Žē–ē–“ē–•ē–˜ē–›ē–œē–žē–¢ē–¦", 4, "ē–­ē–¶ē–·ē–ŗē–»ē–æē—€ē—ē—†ē—‹ē—Œē—Žē—ē—ē—‘ē—“ē——ē—™ē—šē—œē—ē—Ÿē— ē—”ē—„ē—©ē—¬ē—­ē—®ē—Æē—²ē—³ē—µē—¶ē—·ē—øē—ŗē—»ē—½ē—¾ē˜‚ē˜„ē˜†ē˜‡"], + ["af80", "ē˜ˆē˜‰ē˜‹ē˜ē˜Žē˜ē˜‘ē˜’ē˜“ē˜”ē˜–ē˜šē˜œē˜ē˜žē˜”ē˜£ē˜§ē˜Øē˜¬ē˜®ē˜Æē˜±ē˜²ē˜¶ē˜·ē˜¹ē˜ŗē˜»ē˜½ē™ē™‚ē™„"], + ["b040", "ē™…", 6, "ē™Ž", 5, "ē™•ē™—", 4, "ē™ē™Ÿē™ ē™”ē™¢ē™¤", 6, "ē™¬ē™­ē™®ē™°", 7, "ē™¹ē™ŗē™¼ē™æēš€ēšēšƒēš…ēš‰ēšŠēšŒēšēšēšēš’ēš”ēš•ēš—ēš˜ēššēš›"], + ["b080", "ēšœ", 7, "ēš„", 8, "ēšÆēš°ēš³ēšµ", 9, "ē›€ē›ē›ƒå•Šé˜æ埃ęŒØ哎唉哀ēš‘ē™Œč”¼ēŸ®č‰¾ē¢ēˆ±éš˜éžę°Ø安äæŗꌉꚗå²øčƒŗę”ˆč‚®ę˜‚ē›Žå‡¹ę•–ē†¬ēæ±č¢„å‚²å„„ę‡Šę¾³čŠ­ęŒę‰’å­å§ē¬†å…«ē–¤å·“ę‹”č·‹é¶ęŠŠč€™åéœøē½¢ēˆøē™½ęŸē™¾ę‘†ä½°č“„ꋜēØ—ę–‘ē­ę¬ę‰³čˆ¬é¢ęæē‰ˆę‰®ę‹Œä¼“ē“£åŠåŠžē»Šé‚¦åø®ę¢†ę¦œč†€ē»‘ę£’ē£…čšŒé•‘å‚č°¤č‹žčƒžåŒ…č¤’å‰„"], + ["b140", "ē›„ē›‡ē›‰ē›‹ē›Œē›“ē›•ē›™ē›šē›œē›ē›žē› ", 4, "ē›¦", 7, "ē›°ē›³ē›µē›¶ē›·ē›ŗē›»ē›½ē›æēœ€ēœ‚ēœƒēœ…ēœ†ēœŠēœŒēœŽ", 10, "ēœ›ēœœēœēœžēœ”ēœ£ēœ¤ēœ„ēœ§ēœŖēœ«"], + ["b180", "ēœ¬ēœ®ēœ°", 4, "ēœ¹ēœ»ēœ½ēœ¾ēœæē‚ē„ē…ē†ēˆ", 7, "ē’", 7, "ēœč–„雹äæå ”é„±å®ęŠ±ęŠ„ęš“č±¹é²ēˆ†ęÆē¢‘ę‚²å‘åŒ—č¾ˆčƒŒč“é’”倍ē‹ˆå¤‡ęƒ«ē„™č¢«å„”č‹Æęœ¬ē¬Øå“©ē»·ē”­ę³µč¹¦čæø逼鼻ęƔ鄙ē¬”å½¼ē¢§č“–č”½ęƕęƙęƖåøåŗ‡ē—¹é—­ę•å¼Šåæ…č¾Ÿå£č‡‚éæé™›éž­č¾¹ē¼–蓬ꉁä¾æ变卞č¾Øč¾©č¾«éę ‡å½Ŗ膘č”Øé³–ę†‹åˆ«ē˜Ŗå½¬ę–Œęæ’ę»Øå®¾ę‘ˆå…µå†°ęŸ„äø™ē§‰é„¼ē‚³"], + ["b240", "ēēžēŸē ē¤ē§ē©ēŖē­", 11, "ēŗē»ē¼ēžēž‚ēžƒēž†", 5, "ēžēžēž“", 11, "ēž”ēž£ēž¤ēž¦ēžØēž«ēž­ēž®ēžÆēž±ēž²ēž“ēž¶", 4], + ["b280", "ēž¼ēž¾ēŸ€", 12, "ēŸŽ", 8, "ēŸ˜ēŸ™ēŸšēŸ", 4, "ēŸ¤ē—…并ēŽ»č ę’­ę‹Øé’µę³¢åšå‹ƒęé“‚ē®”ä¼Æåø›čˆ¶č„–膊ęø¤ę³Šé©³ę•åœå“ŗč”„åŸ äøåøƒę­„ē°æéƒØꀖꓦēŒœč£ęę‰č“¢ē¬čø©é‡‡å½©čœč””é¤å‚čš•ę®‹ęƒ­ęƒØēæč‹čˆ±ä»“ę²§č—ę“ē³™ę§½ę›¹č‰åŽ•ē­–ä¾§å†Œęµ‹å±‚č¹­ę’å‰čŒ¬čŒ¶ęŸ„ē¢“ę½åƟ岔差čÆ§ę‹†ęŸ“č±ŗꐀęŽŗč‰é¦‹č°—ē¼ é“²äŗ§é˜é¢¤ę˜ŒēŒ–"], + ["b340", "ēŸ¦ēŸØēŸŖēŸÆēŸ°ēŸ±ēŸ²ēŸ“ēŸµēŸ·ēŸ¹ēŸŗēŸ»ēŸ¼ē ƒ", 5, "ē Šē ‹ē Žē ē ē “ē •ē ™ē ›ē žē  ē ”ē ¢ē ¤ē Øē Ŗē «ē ®ē Æē ±ē ²ē ³ē µē ¶ē ½ē æē”ē”‚ē”ƒē”„ē”†ē”ˆē”‰ē”Šē”‹ē”ē”ē”‘ē”“ē””ē”˜ē”™ē”š"], + ["b380", "ē”›ē”œē”ž", 11, "ē”Æ", 7, "ē”øē”¹ē”ŗē”»ē”½", 6, "åœŗ尝åøøé•æåæč‚ åŽ‚ę•žē•…å”±å€”č¶…ęŠ„é’žęœå˜²ę½®å·¢åµē‚’č½¦ę‰Æę’¤ęŽ£å½»ę¾ˆéƒ“č‡£č¾°å°˜ę™Øåæ±ę²‰é™ˆč¶č”¬ę’‘ē§°åŸŽę©™ęˆå‘ˆä¹˜ēØ‹ęƒ©ę¾„čƚę‰æ逞éŖ‹ē§¤åƒē—“ęŒåŒ™ę± čæŸå¼›é©°č€»é½æ侈å°ŗ赤ēæ…ę–„ē‚½å……å†²č™«å“‡å® ęŠ½é…¬ē•“čøŒēØ ę„ē­¹ä»‡ē»øēž…äø‘č‡­åˆå‡ŗꩱåŽØčŗ‡é”„é›ę»é™¤ę„š"], + ["b440", "ē¢„ē¢…ē¢†ē¢ˆē¢Šē¢‹ē¢ē¢ē¢’ē¢”ē¢•ē¢–ē¢™ē¢ē¢žē¢ ē¢¢ē¢¤ē¢¦ē¢Ø", 7, "ē¢µē¢¶ē¢·ē¢øē¢ŗē¢»ē¢¼ē¢½ē¢æē£€ē£‚ē£ƒē£„ē£†ē£‡ē£ˆē£Œē£ē£Žē£ē£‘ē£’ē£“ē£–ē£—ē£˜ē£š", 9], + ["b480", "ē£¤ē£„ē£¦ē£§ē£©ē£Ŗē£«ē£­", 4, "ē£³ē£µē£¶ē£øē£¹ē£»", 5, "ē¤‚ē¤ƒē¤„ē¤†", 6, "ē”€å‚ØēŸ—ęč§¦å¤„ę£å·ē©æę¤½ä¼ čˆ¹å–˜äø²ē–®ēŖ—å¹¢åŗŠé—Æ创吹ē‚Šę¶é”¤åž‚ę˜„ę¤æé†‡å”‡ę·³ēŗÆč ¢ęˆ³ē»°ē–µčŒØē£é›Œč¾žę…ˆē“·čÆę­¤åˆŗ赐ꬔčŖč‘±å›±åŒ†ä»Žäø›å‡‘ē²—醋ē°‡äæƒč¹æēÆ”ēŖœę‘§å“”å‚¬č„†ē˜ē²¹ę·¬ēæ ę‘å­˜åÆøē£‹ę’®ę“ęŽŖęŒ«é”™ę­č¾¾ē­”ē˜©ę‰“å¤§å‘†ę­¹å‚£ęˆ“åø¦ę®†ä»£č“·č¢‹å¾…逮"], + ["b540", "ē¤", 5, "ē¤”", 9, "ē¤Ÿ", 4, "ē¤„", 14, "ē¤µ", 4, "ē¤½ē¤æē„‚ē„ƒē„„ē„…ē„‡ē„Š", 8, "ē„”ē„•ē„˜ē„™ē„”ē„£"], + ["b580", "ē„¤ē„¦ē„©ē„Ŗē„«ē„¬ē„®ē„°", 6, "ē„¹ē„»", 4, "ē¦‚ē¦ƒē¦†ē¦‡ē¦ˆē¦‰ē¦‹ē¦Œē¦ē¦Žē¦ē¦‘ē¦’ę€ č€½ę‹…äø¹å•éƒøęŽøčƒ†ę—¦ę°®ä½†ęƒ®ę·”čÆžå¼¹č›‹å½“ęŒ”å…šč”ę”£åˆ€ę£č¹ˆå€’å²›ē„·åƼ到ēØ»ę‚¼é“ē›—å¾·å¾—ēš„č¹¬ēÆē™»ē­‰ēžŖå‡³é‚“å ¤ä½Žę»“čæŖꕌē¬›ē‹„궤ēæŸå«”ꊵåŗ•åœ°č’‚ē¬¬åøå¼Ÿé€’ē¼”é¢ ęŽ‚ę»‡ē¢˜ē‚¹å…ø靛垫ē”µä½ƒē”øåŗ—ęƒ¦å„ ę·€ę®æē¢‰å¼é›•å‡‹åˆęŽ‰åŠé’“č°ƒč·Œēˆ¹ē¢Ÿč¶čæ­č°å "], + ["b640", "ē¦“", 6, "ē¦›", 11, "ē¦Ø", 10, "ē¦“", 4, "ē¦¼ē¦æē§‚ē§„ē§…ē§‡ē§ˆē§Šē§Œē§Žē§ē§ē§“ē§”ē§–ē§—ē§™", 5, "ē§ ē§”ē§¢ē§„ē§Øē§Ŗ"], + ["b680", "ē§¬ē§®ē§±", 6, "ē§¹ē§ŗē§¼ē§¾ē§æē؁ē؄ē؅ē؇ē؈ē؉ē؊ē،ē؏", 4, "ēؕēؖēؘēؙē؛ē؜äøē›Æå®é’‰é”¶é¼Žé”­å®šč®¢äø¢äøœå†¬č‘£ę‡‚åŠØę ‹ä¾—ę«å†»ę“žå…œęŠ–ę–—é™”č±†é€—ē—˜éƒ½ē£ęƒēŠŠē‹¬čƻ堵ē¹čµŒęœé•€č‚šåŗ¦ęø”妒ē«ÆēŸ­é”»ę®µę–­ē¼Žå †å…‘队åƹ墩åØč¹²ę•¦é”æ囤钝ē›¾éęŽ‡å“†å¤šå¤ŗ垛čŗ²ęœµč·ŗčˆµå‰ęƒ°å •č›¾å³Ø鹅äæ„é¢č®¹åØ„ę¶åŽ„ę‰¼éé„‚é„æę©č€Œå„æč€³å°”é„µę“±äŗŒ"], + ["b740", "ē؝ē؟ēØ”ēØ¢ēؤ", 14, "ēØ“ēصēضēØøēØŗēؾē©€", 5, "ē©‡", 9, "ē©’", 4, "ē©˜", 16], + ["b780", "ē©©", 6, "ē©±ē©²ē©³ē©µē©»ē©¼ē©½ē©¾ēŖ‚ēŖ…ēŖ‡ēŖ‰ēŖŠēŖ‹ēŖŒēŖŽēŖēŖēŖ“ēŖ”ēŖ™ēŖšēŖ›ēŖžēŖ”ēŖ¢č“°å‘ē½šē­ä¼ä¹é˜€ę³•ēč—©åø†ē•Ŗēæ»ę؊ēŸ¾é’’ē¹å‡”ēƒ¦åčæ”čŒƒč“©ēŠÆé„­ę³›åŠčŠ³ę–¹č‚Ŗęˆæ防å¦Øä»æč®æēŗŗę”¾č²éžå•”é£žč‚„åŒŖčƽ吠č‚ŗåŗŸę²øč“¹čŠ¬é…šå©ę°›åˆ†ēŗ·åŸē„šę±¾ē²‰å„‹ä»½åææꄤē²Ŗäø°å°ęž«čœ‚峰锋风ē–Æēƒ½é€¢å†Æē¼č®½å„‰å‡¤ä½›å¦å¤«ę•·č‚¤å­µę‰¶ę‹‚č¾å¹…ę°Ÿē¬¦ä¼äæ˜ęœ"], + ["b840", "ēŖ£ēŖ¤ēŖ§ēŖ©ēŖŖēŖ«ēŖ®", 4, "ēŖ“", 10, "ē«€", 10, "ē«Œ", 9, "ē«—ē«˜ē«šē«›ē«œē«ē«”ē«¢ē«¤ē«§", 5, "ē«®ē«°ē«±ē«²ē«³"], + ["b880", "ē«“", 4, "ē«»ē«¼ē«¾ē¬€ē¬ē¬‚ē¬…ē¬‡ē¬‰ē¬Œē¬ē¬Žē¬ē¬’ē¬“ē¬–ē¬—ē¬˜ē¬šē¬œē¬ē¬Ÿē¬”ē¬¢ē¬£ē¬§ē¬©ē¬­ęµ®ę¶Ŗē¦č¢±å¼—ē”«ęŠšč¾…äæÆ釜ꖧč„Æ腑åŗœč…čµ“å‰Æč¦†čµ‹å¤å‚…ä»˜é˜œēˆ¶č…¹č“ŸåÆŒč®£é™„å¦‡ē¼šå’å™¶å˜ŽčÆ„ę”¹ę¦‚é’™ē›–ęŗ‰å¹²ē”˜ę†ęŸ‘ē«æč‚čµ¶ę„Ÿē§†ę•¢čµ£å†ˆåˆšé’¢ē¼ø肛ēŗ²å²—ęøÆꝠēƙēš‹é«˜č†ē¾”ē³•ęžé•ēØæå‘Šå“„ę­Œęęˆˆéø½čƒ³ē–™å‰²é©č‘›ę ¼č›¤é˜éš”铬äøŖ各ē»™ę ¹č·Ÿč€•ę›“åŗšē¾¹"], + ["b940", "ē¬Æē¬°ē¬²ē¬“ē¬µē¬¶ē¬·ē¬¹ē¬»ē¬½ē¬æ", 5, "ē­†ē­ˆē­Šē­ē­Žē­“ē­•ē­—ē­™ē­œē­žē­Ÿē­”ē­£", 10, "ē­Æē­°ē­³ē­“ē­¶ē­øē­ŗē­¼ē­½ē­æē®ē®‚ē®ƒē®„ē®†", 6, "ē®Žē®"], + ["b980", "ē®‘ē®’ē®“ē®–ē®˜ē®™ē®šē®›ē®žē®Ÿē® ē®£ē®¤ē®„ē®®ē®Æē®°ē®²ē®³ē®µē®¶ē®·ē®¹", 7, "ēƂēƃēƄ埂č€æę¢—å·„ę”»åŠŸę­é¾šä¾›čŗ¬å…¬å®«å¼“å·©ę±žę‹±č“”å…±é’©å‹¾ę²Ÿč‹Ÿē‹—åž¢ęž„č“­å¤Ÿč¾œč‡å’•ē®ä¼°ę²½å­¤å§‘é¼“å¤č›ŠéŖØč°·č‚”ę•…é”¾å›ŗ雇刮ē“œå‰åÆ”ęŒ‚č¤‚ä¹–ę‹ę€Ŗę£ŗå…³å®˜å† č§‚ē®”馆ē½ęƒÆēŒč“Æ光å¹æ逛ē‘°č§„圭ē”…归龟é—ŗč½Ø鬼čÆ”ē™øę”‚ęŸœč·Ŗč“µåˆ½č¾Šę»šę£é”…éƒ­å›½ęžœč£¹čæ‡å“ˆ"], + ["ba40", "ēƅēƈēƉēƊēƋēƍēƎēƏēƐēƒēƔ", 4, "ēƛēƜēƞēƟēÆ ēÆ¢ēÆ£ēƤēƧēÆØēÆ©ēÆ«ēƬēÆ­ēÆÆēÆ°ēƲ", 4, "ēÆøēƹēÆŗēÆ»ēƽēÆæ", 7, "ē°ˆē°‰ē°Šē°ē°Žē°", 5, "ē°—ē°˜ē°™"], + ["ba80", "ē°š", 4, "ē° ", 5, "ē°Øē°©ē°«", 12, "ē°¹", 5, "ē±‚éŖøå­©ęµ·ę°¦äŗ„害éŖ‡é…£ę†Øé‚ÆéŸ©å«ę¶µåƒ函喊ē½•ēæ°ę’¼ęę—±ę†¾ę‚ē„Šę±—걉å¤ÆꝭčˆŖ壕嚎č±ŖęÆ«éƒå„½č€—å·ęµ©å‘µå–č·čę øē¦¾å’Œä½•åˆē›’č²‰é˜‚ę²³ę¶øčµ«č¤é¹¤č“ŗå˜æ黑ē—•å¾ˆē‹ ęØ哼äŗØęØŖč””ę’č½°å“„ēƒ˜č™¹éøæę“Ŗ宏弘ēŗ¢å–‰ä¾ÆēŒ“吼厚候后呼乎åæ½ē‘šå£¶č‘«čƒ”č“ē‹ē³Šę¹–"], + ["bb40", "ē±ƒ", 9, "ē±Ž", 36, "ē±µ", 5, "ē±¾", 9], + ["bb80", "ē²ˆē²Š", 6, "ē²“ē²”ē²–ē²™ē²šē²›ē² ē²”ē²£ē²¦ē²§ē²Øē²©ē²«ē²¬ē²­ē²Æē²°ē²“", 4, "ē²ŗē²»å¼§č™Žå”¬ęŠ¤äŗ’ę²Ŗęˆ·čŠ±å“—åŽēŒ¾ę»‘ē”»åˆ’化čÆę§å¾Šę€€ę·®åę¬¢ēŽÆꔓčæ˜ē¼“ę¢ę‚£å”¤ē—Ŗč±¢ē„•ę¶£å®¦å¹»č’ę…Œé»„ē£ŗ蝗ē°§ēš‡å‡°ęƒ¶ē…Œę™ƒå¹Œęč°Žē°ęŒ„č¾‰å¾½ę¢č›”å›žęÆę‚”ę…§å‰ęƒ ę™¦č“æē§½ä¼šēƒ©ę±‡č®³čƲē»˜č¤ę˜å©šé­‚ęµ‘ę··č±ę“»ä¼™ē«čŽ·ęˆ–ęƒ‘éœč“§ē„ø击圾åŸŗęœŗē•øēؽē§Æē®•"], + ["bc40", "ē²æē³€ē³‚ē³ƒē³„ē³†ē³‰ē³‹ē³Ž", 6, "ē³˜ē³šē³›ē³ē³žē³”", 6, "ē³©", 5, "ē³°", 7, "ē³¹ē³ŗē³¼", 13, "ē“‹", 5], + ["bc80", "ē“‘", 14, "ē“”ē“£ē“¤ē“„ē“¦ē“Øē“©ē“Ŗē“¬ē“­ē“®ē“°", 6, "č‚Œé„„čæ¹ęæ€č®„éø”姬ē»©ē¼‰å‰ęžę£˜č¾‘ē±é›†åŠę€„ē–¾ę±²å³å«‰ēŗ§ęŒ¤å‡ č„Šå·±č“ŸęŠ€å†€å­£ä¼Žē„­å‰‚ę‚ø굎åƄåÆ‚č®”č®°ę—¢åæŒé™…妓ē»§ēŗŖå˜‰ęž·å¤¹ä½³å®¶åŠ čšé¢Šč“¾ē”²é’¾å‡ēØ¼ä»·ęž¶é©¾å«ę­¼ē›‘坚尖ē¬ŗé—“ē…Žå…¼č‚©č‰°å„øē¼„čŒ§ę£€ęŸ¬ē¢±ē”·ę‹£ę”ē®€äæ­å‰Ŗå‡čę§›é‰“č·µč“±č§é”®ē®­ä»¶"], + ["bd40", "ē“·", 54, "ēµÆ", 7], + ["bd80", "ēµø", 32, "å„čˆ°å‰‘é„Æęøęŗ…궧å»ŗåƒµå§œå°†ęµ†ę±Ÿē–†č’‹ę”Øå„–č®²åŒ é…±é™č•‰ę¤’ē¤ē„¦čƒ¶äŗ¤éƒŠęµ‡éŖ„åØ‡åš¼ę…é“°ēŸ«ä¾„脚ē‹”角é„ŗē¼“ē»žå‰æꕙ酵č½æč¾ƒå«ēŖ–ę­ęŽ„ēš†ē§øč”—é˜¶ęˆŖåŠ«čŠ‚ę””ę°ę·ē«ē«­ę“ē»“č§£å§ęˆ’č—‰čŠ„ē•Œå€Ÿä»‹ē–„čƫ届巾ē­‹ę–¤é‡‘ä»Šę“„č„Ÿē“§é”¦ä»…č°Øčæ›é³ę™‹ē¦čæ‘ēƒ¬ęµø"], + ["be40", "ē¶™", 12, "ē¶§", 6, "ē¶Æ", 42], + ["be80", "ē·š", 32, "å°½åŠ²č†å…¢čŒŽē›ę™¶é²øäŗ¬ęƒŠē²¾ē²³ē»äŗ•č­¦ę™Æé¢ˆé™å¢ƒę•¬é•œå¾„ē—‰é–ē«Ÿē«žå‡€ē‚ÆēŖ˜ęŖē©¶ēŗ ēŽ–韭久ēøä¹é…’åŽ©ę•‘ę—§č‡¼čˆ…å’Žå°±ē–šéž ę‹˜ē‹™ē–½å±…é©¹čŠå±€å’€ēŸ©äø¾ę²®čšę‹’ę®å·Øå…·č·čøžé”Æäæ±å„ꃧē‚¬å‰§ęé¹ƒå؟倦ēœ·å·ē»¢ę’…ę”«ęŠ‰ęŽ˜å€”ēˆµč§‰å†³čƀē»å‡čŒé’§å†›å›å³»"], + ["bf40", "ē·»", 62], + ["bf80", "ēøŗēø¼", 4, "ē¹‚", 4, "ē¹ˆ", 21, "äæŠē«£ęµšéƒ”éŖå–€å’–協å’Æå¼€ę©ę„·å‡Æę…Ø刊å Ŗ勘坎ē ēœ‹åŗ·ę…·ē³ ę‰›ęŠ—äŗ¢ē‚•č€ƒę‹·ēƒ¤é å·č‹›ęŸÆę£µē£•é¢—ē§‘壳咳åÆęø“克刻客čƾč‚Æå•ƒåž¦ę³å‘å­ē©ŗęå­”ęŽ§ęŠ å£ę‰£åƇęžÆ哭ēŖŸč‹¦é…·åŗ“č£¤å¤øåž®ęŒŽč·ØčƒÆ块ē­·ä¾©åæ«å®½ę¬¾åŒ”ē­ē‹‚ꔆēŸæēœ¶ę—·å†µäŗē›”å²æēŖ„č‘µå„Žé­å‚€"], + ["c040", "ē¹ž", 35, "ēŗƒ", 23, "ēŗœēŗēŗž"], + ["c080", "ēŗ®ēŗ“ēŗ»ēŗ¼ē»–ē»¤ē»¬ē»¹ē¼Šē¼ē¼žē¼·ē¼¹ē¼»", 6, "ē½ƒē½†", 9, "ē½’ē½“é¦ˆę„§ęŗƒå¤ę˜†ę†å›°ę‹¬ę‰©å»“é˜”åžƒę‹‰å–‡čœ”č…Šč¾£å•¦čŽ±ę„čµ–č“å©Ŗę ę‹¦ēÆ®é˜‘å…°ę¾œč°°ę½č§ˆę‡’ē¼†ēƒ‚껄ē…ꦔē‹¼å»ŠéƒŽęœ—ęµŖęžåŠ³ē‰¢č€ä½¬å§„é…Ŗēƒ™ę¶å‹’ä¹é›·é•­č•¾ē£Šē“Æå„”åž’ę“‚č‚‹ē±»ę³Ŗę£±ę„žå†·åŽ˜ę¢ØēŠé»ŽēƱē‹øē¦»ę¼“ē†ęŽé‡Œé²¤ē¤¼čŽ‰č”åę —äø½åŽ‰åŠ±ē ¾åŽ†åˆ©å‚ˆä¾‹äæ"], + ["c140", "ē½–ē½™ē½›ē½œē½ē½žē½ ē½£", 4, "ē½«ē½¬ē½­ē½Æē½°ē½³ē½µē½¶ē½·ē½øē½ŗē½»ē½¼ē½½ē½æē¾€ē¾‚", 7, "ē¾‹ē¾ē¾", 4, "ē¾•", 4, "ē¾›ē¾œē¾ ē¾¢ē¾£ē¾„ē¾¦ē¾Ø", 6, "ē¾±"], + ["c180", "ē¾³", 4, "ē¾ŗē¾»ē¾¾ēæ€ēæ‚ēæƒēæ„ēæ†ēæ‡ēæˆēæ‰ēæ‹ēæēæ", 4, "ēæ–ēæ—ēæ™", 5, "ēæ¢ēæ£ē—¢ē«‹ē²’ę²„隶力ē’ƒå“©äæ©č”čŽ²čæžé•°å»‰ę€œę¶Ÿåø˜ę•›č„øé“¾ę‹ē‚¼ē»ƒē²®å‡‰ę¢ē²±č‰Æäø¤č¾†é‡ę™¾äŗ®č°…ę’©čŠåƒšē–—ē‡ŽåÆ„č¾½ę½¦äŗ†ę’‚é•£å»–ę–™åˆ—č£‚ēƒˆåŠ£ēŒŽē³ęž—ē£·éœ–äø“é‚»é³žę·‹å‡›čµåę‹ŽēŽ²č±é›¶é¾„铃伶ē¾šå‡Œēµé™µå²­é¢†å¦ä»¤ęŗœē‰ę¦“ē”«é¦ē•™åˆ˜ē˜¤ęµęŸ³å…­é¾™č‹å’™ē¬¼ēŖæ"], + ["c240", "ēæ¤ēæ§ēæØēæŖēæ«ēæ¬ēæ­ēæÆēæ²ēæ“", 6, "ēæ½ēæ¾ēææč€‚č€‡č€ˆč€‰č€Šč€Žč€č€‘č€“č€šč€›č€č€žč€Ÿč€”č€£č€¤č€«", 5, "č€²č€“č€¹č€ŗč€¼č€¾č€čč„č…č‡čˆč‰čŽččč‘č“č•č–č—"], + ["c280", "聙聛", 13, "聫", 5, "č²", 11, "éš†åž„ę‹¢é™‡ę„¼åØ„ę‚ēÆ“ę¼é™‹čŠ¦å¢é¢…åŗē‚‰ęŽ³å¤č™é²éŗ“ē¢Œéœ²č·Æ赂é¹æę½žē¦„å½•é™†ęˆ®é©“å•é“ä¾£ę—…å±„å±”ē¼•č™‘ę°Æ律ēŽ‡ę»¤ē»æå³¦ęŒ›å­Ŗę»¦åµä¹±ęŽ ē•„ęŠ”č½®ä¼¦ä»‘ę²¦ēŗ¶č®ŗ萝čžŗē½—逻锣ē®©éŖ”č£øč½ę“›éŖ†ē»œå¦ˆéŗ»ēŽ›ē čš‚马éŖ‚嘛吗埋买éŗ¦å–čæˆč„‰ēž’é¦’č›®ę»”č”“ę›¼ę…¢ę¼«"], + ["c340", "č¾č‚č‚‚č‚…č‚ˆč‚Šč‚", 5, "č‚”č‚•č‚—č‚™č‚žč‚£č‚¦č‚§č‚Øč‚¬č‚°č‚³č‚µč‚¶č‚øč‚¹č‚»čƒ…čƒ‡", 4, "胏", 6, "čƒ˜čƒŸčƒ čƒ¢čƒ£čƒ¦čƒ®čƒµčƒ·čƒ¹čƒ»čƒ¾čƒæ脀脁脃脄脅脇脈脋"], + ["c380", "脌脕脗脙脛脜脝脟", 12, "č„­č„®č„°č„³č„“č„µč„·č„¹", 4, "č„æč°©čŠ’čŒ«ē›²ę°“åæ™čŽ½ēŒ«čŒ…锚ęƛēŸ›é“†åÆčŒ‚å†’åø½č²Œč“ø么ēŽ«ęžšę¢…酶霉ē…¤ę²”ēœ‰åŖ’镁ęƏē¾Žę˜§åƐ妹åŖšé—Øé—·ä»¬čŒč’™ęŖ¬ē›Ÿé”°ēŒ›ę¢¦å­ŸēœÆ醚靔ē³œčæ·č°œå¼„ē±³ē§˜č§…ę³ŒčœœåÆ†å¹‚ę£‰ēœ ē»µå†•å…å‹‰åØ©ē¼…é¢č‹—ęēž„藐ē§’ęøŗåŗ™å¦™č”‘ē­ę°‘ęŠæēšæꕏę‚Æé—½ę˜ŽčžŸéø£é“­åå‘½č°¬ę‘ø"], + ["c440", "腀", 5, "腇腉腍腎腏腒腖腗腘腛", 4, "č…”č…¢č…£č…¤č…¦č…Øč…Ŗč…«č…¬č…Æč…²č…³č…µč…¶č…·č…ø膁膃", 4, "膉膋膌膍膎膐膒", 5, "膙膚膞", 4, "膤膄"], + ["c480", "膧膩膫", 7, "膓", 5, "č†¼č†½č†¾č†æ臄臅臇臈臉臋臍", 6, "ę‘¹č˜‘ęØ”č†œē£Øę‘©é­”ęŠ¹ęœ«čŽ«å¢Øé»˜ę²«ę¼ åÆžé™Œč°‹ē‰ŸęŸę‹‡ē‰”äŗ©å§†ęÆå¢“ęš®å¹•å‹Ÿę…•ęœØē›®ē¦ē‰§ē©†ę‹æå“Ŗ呐钠那å؜ēŗ³ę°–ä¹ƒå„¶č€å„ˆå—ē”·éš¾å›ŠęŒ č„‘ę¼é—¹ę·–å‘¢é¦å†…å«©čƒ½å¦®éœ“å€Ŗę³„å°¼ę‹Ÿä½ åŒæ腻逆ęŗŗč”«ę‹ˆå¹“ē¢¾ę’µę»åæµåؘé…æéøŸå°æęč‚å­½å•®é•Šé•ę¶…ę‚Ø꟠ē‹žå‡å®"], + ["c540", "臔", 14, "臤臄臦č‡Ø臩臫臮", 4, "臵", 5, "č‡½č‡æ舃與", 4, "舎舏舑舓舕", 5, "čˆčˆ čˆ¤čˆ„čˆ¦čˆ§čˆ©čˆ®čˆ²čˆŗčˆ¼čˆ½čˆæ"], + ["c580", "艀艁艂艃艅艆艈艊艌艍艎艐", 7, "艙艛艜艝艞艠", 7, "č‰©ę‹§ę³žē‰›ę‰­é’®ēŗ½č„“ęµ“å†œå¼„å„“åŠŖę€’å„³ęš–č™ē–ŸęŒŖꇦē³ÆčÆŗå“¦ę¬§éø„ę®“č—•å‘•å¶ę²¤å•Ŗ趓ēˆ¬åø•ę€•ē¶ę‹ęŽ’ē‰Œå¾˜ę¹ƒę“¾ę”€ę½˜ē›˜ē£ē›¼ē•”判叛乓åŗžę—č€Ŗčƒ–ęŠ›å’†åˆØē‚®č¢č·‘ę³”å‘øčƒšåŸ¹č£“čµ”é™Ŗé…ä½©ę²›å–·ē›†ē °ęŠØēƒ¹ę¾Žå½­č“¬ę£šē”¼ēÆ·č†Øęœ‹é¹ę§ē¢°åÆē ’éœ¹ę‰¹ęŠ«åŠˆēµęƗ"], + ["c640", "č‰Ŗ艫艬艭艱艵艶艷č‰øč‰»č‰¼čŠ€čŠčŠƒčŠ…čŠ†čŠ‡čŠ‰čŠŒčŠčŠ“čŠ”čŠ•čŠ–čŠščŠ›čŠžčŠ čŠ¢čŠ£čŠ§čŠ²čŠµčŠ¶čŠŗčŠ»čŠ¼čŠæč‹€č‹‚č‹ƒč‹…č‹†č‹‰č‹č‹–č‹™č‹šč‹č‹¢č‹§č‹Øč‹©č‹Ŗč‹¬č‹­č‹®č‹°č‹²č‹³č‹µč‹¶č‹ø"], + ["c680", "č‹ŗč‹¼", 4, "茊茋茍茐茒茓茖茘茙茝", 9, "čŒ©čŒŖčŒ®čŒ°čŒ²čŒ·čŒ»čŒ½å•¤č„¾ē–²ēš®åŒ¹ē—žåƒ»å±č­¬ēƇ偏ē‰‡éŖ—é£˜ę¼‚ē“¢ē„Øꒇēž„ę‹¼é¢‘č“«å“č˜ä¹’åŖč‹¹čå¹³å‡­ē“¶čÆ„å±å”ę³¼é¢‡å©†ē “魄čæ«ē²•å‰–ꉑé“ŗä»†čŽ†č‘”č©č’²åŸ”ęœ“åœƒę™®ęµ¦č°±ę›ē€‘ęœŸę¬ŗę –ęˆšå¦»äøƒå‡„ę¼†ęŸ’ę²å…¶ę£‹å„‡ę­§ē•¦å“Žč„é½ę——ē„ˆē„éŖ‘čµ·å²‚ä¹žä¼åÆå„‘ē Œå™Ø갔čæ„å¼ƒę±½ę³£č®«ęŽ"], + ["c740", "čŒ¾čŒæ荁荂荄荅荈荊", 4, "荓荕", 4, "čč¢č°", 6, "č¹čŗč¾", 6, "čŽ‡čŽˆčŽŠčŽ‹čŽŒčŽčŽčŽčŽ‘čŽ”čŽ•čŽ–čŽ—čŽ™čŽščŽčŽŸčŽ”", 6, "莬莭莮"], + ["c780", "čŽÆčŽµčŽ»čŽ¾čŽæč‚čƒč„č†čˆč‰č‹ččŽčč‘č’č“č•č—č™čšč›čžč¢č£č¤č¦č§čØč«č¬č­ę°ę“½ē‰µę‰¦é’Žé“…千čæē­¾ä»Ÿč°¦ä¹¾é»”é’±é’³å‰ę½œé£ęµ…č°“å ‘åµŒę¬ ę­‰ęžŖå‘›č…”ē¾Œå¢™č”·å¼ŗęŠ¢ę©‡é”¹ę•²ę‚„ę”„ēž§ä¹”ä¾Øå·§éž˜ę’¬ēæ˜å³­äæēŖåˆ‡čŒ„äø”ę€ÆēŖƒé’¦ä¾µäŗ²ē§¦ē“å‹¤čŠ¹ę“’ē¦½åÆę²é’č½»ę°¢å€¾åæęø…ę“Žę™“ę°°ęƒ…é”·čÆ·åŗ†ē¼ē©·ē§‹äø˜é‚±ēƒę±‚å›šé…‹ę³…č¶‹åŒŗč›†ę›²čŗÆ屈驱ęø "], + ["c840", "č®čÆč³", 4, "čŗč»č¼č¾čæ萀萂萅萇萈萉萊萐萒", 5, "萙萚萛萞", 5, "萩", 7, "č²", 5, "č¹čŗč»č¾", 7, "葇葈葉"], + ["c880", "葊", 6, "葒", 4, "č‘˜č‘č‘žč‘Ÿč‘ č‘¢č‘¤", 4, "č‘Ŗč‘®č‘Æč‘°č‘²č‘“č‘·č‘¹č‘»č‘¼å–åØ¶é¾‹č¶£åŽ»åœˆé¢§ęƒé†›ę³‰å…Øē—Šę‹³ēŠ¬åˆø劝ē¼ŗē‚”ē˜øå“é¹Šę¦·ē”®é›€č£™ē¾¤ē„¶ē‡ƒå†‰ęŸ“ē“¤å£¤ę”˜åš·č®©é„¶ę‰°ē»•ęƒ¹ēƒ­å£¬ä»äŗŗåæéŸ§ä»»č®¤åˆƒå¦Šēŗ«ę‰”ä»ę—„ꈎčŒøč“‰č£čžē†”ęŗ¶å®¹ē»’å†—ę‰ęŸ”č‚‰čŒ¹č •å„’å­ŗå¦‚č¾±ä¹³ę±å…„č¤„č½Æé˜®č•Šē‘žé”é—°ę¶¦č‹„å¼±ę’’ę“’čØč…®é³ƒå”žčµ›äø‰å"], + ["c940", "č‘½", 4, "蒃蒄蒅蒆蒊蒍蒏", 7, "č’˜č’šč’›č’č’žč’Ÿč’ č’¢", 12, "č’°č’±č’³č’µč’¶č’·č’»č’¼č’¾č“€č“‚č“ƒč“…č“†č“‡č“ˆč“‹č“Œč“Žč“č“’č“”č“•č“—"], + ["c980", "蓘", 4, "č“žč“”č“¢č“¤č“§", 4, "č“­č“®č“Æ蓱", 10, "č“½č“¾č”€č”č”‚ä¼žę•£ę”‘å—“äø§ę”éŖšę‰«å«‚ē‘Ÿč‰²ę¶©ę£®åƒ§čŽŽē ‚ę€åˆ¹ę²™ēŗ±å‚»å•„ē…žē­›ę™’ēŠč‹«ę‰å±±åˆ ē…½č”«é—Ŗé™•ę“…čµ”č†³å–„ę±•ę‰‡ē¼®å¢’ä¼¤å•†čµę™ŒäøŠå°šč£³ę¢¢ęŽē؍ēƒ§čŠå‹ŗ韶少å“Ø邵ē»å„¢čµŠč›‡čˆŒčˆčµ¦ę‘„å°„ę…‘ę¶‰ē¤¾č®¾ē ·ē”³å‘»ä¼øčŗ«ę·±åØ ē»…ē„žę²ˆå®”婶ē”šč‚¾ę…Žęø—声ē”Ÿē”„ē‰²å‡ē»³"], + ["ca40", "蔃", 8, "č”č”Žč”č”č”’č””č”•č”–č”˜č”™č”›č”œč”č”žč” č”¢", 8, "蔭", 9, "č”¾", 4, "蕄蕅蕆蕇蕋", 10], + ["ca80", "蕗蕘蕚蕛蕜蕝蕟", 4, "蕄蕦蕧蕩", 8, "č•³č•µč•¶č•·č•øč•¼č•½č•æ薀薁ēœē››å‰©čƒœåœ£åøˆå¤±ē‹®ę–½ę¹æčƗå°øč™±åēŸ³ę‹¾ę—¶ä»€é£Ÿčš€å®žčƆ史ēŸ¢ä½æ屎驶始式ē¤ŗ士äø–ęŸæäŗ‹ę‹­čŖ“逝åŠæę˜Æå—œå™¬é€‚ä»•ä¾é‡Šé„°ę°åø‚ęƒå®¤č§†čÆ•ę”¶ę‰‹é¦–å®ˆåÆæęŽˆå”®å—ē˜¦å…½č”¬ęž¢ę¢³ę®ŠęŠ’č¾“å”čˆ’ę·‘ē–ä¹¦čµŽå­°ē†Ÿč–Æꚑꛙē½²čœ€é»é¼ å±žęœÆčæ°ę ‘ęŸęˆē«–墅åŗ¶ę•°ę¼±"], + ["cb40", "薂薃薆薈", 6, "薐", 10, "薝", 6, "薄薦薧薩薫薬薭薱", 5, "č–øč–ŗ", 6, "藂", 6, "藊", 4, "藑藒"], + ["cb80", "藔藖", 5, "藝", 6, "藄藦藧č—Øč—Ŗ", 14, "ę•åˆ·č€ę‘”č”°ē”©åø…ę “ę‹“霜双ēˆ½č°ę°“ē”ē؎吮ēž¬é”ŗ舜čÆ“ē”•ęœ”ēƒę–Æę’•å˜¶ę€ē§åøäøę­»č‚†åÆŗ嗣四ä¼ŗä¼¼é„²å·³ę¾č€øę€‚é¢‚é€å®‹č®¼čÆµęœč‰˜ę“žå—½č‹é…„äæ—ē“ é€Ÿē²Ÿåƒ³å”‘ęŗÆå®æčÆ‰č‚ƒé…ø蒜ē®—č™½éš‹éšē»„髓ē¢Žå²ē©—遂隧ē„Ÿå­™ęŸē¬‹č“‘ę¢­å”†ē¼©ēē“¢é”ę‰€å”Œä»–它儹唔"], + ["cc40", "č—¹č—ŗč—¼č—½č—¾č˜€", 4, "蘆", 10, "蘒蘓蘔蘕蘗", 15, "č˜Øč˜Ŗ", 13, "č˜¹č˜ŗč˜»č˜½č˜¾č˜æ虀"], + ["cc80", "虁", 11, "虒虓處", 4, "č™›č™œč™č™Ÿč™ č™”č™£", 7, "ē­ęŒžč¹‹čøčƒŽč‹”ęŠ¬å°ę³°é…žå¤Ŗę€ę±°åę‘Šč“Ŗē˜«ę»©å›ęŖ€ē—°ę½­č°­č°ˆå¦ęÆÆč¢’ē¢³ęŽ¢å¹ē‚­ę±¤å”˜ęŖå ‚ę£ č†›å”ē³–倘čŗŗę·Œč¶Ÿēƒ«ęŽę¶›ę»”ē»¦č„ę”ƒé€ƒę·˜é™¶č®Øå„—ē‰¹č—¤č…¾ē–¼čŖŠę¢Æ剔čø¢é”‘ęé¢˜č¹„å•¼ä½“ę›æåšęƒ•ę¶•å‰ƒå±‰å¤©ę·»å”«ē”°ē”œę¬čˆ”č…†ęŒ‘ę”čæ¢ēœŗč·³č““é“åø–厅听ēƒƒ"], + ["cd40", "虭č™Æč™°č™²", 6, "蚃", 6, "蚎", 4, "蚔蚖", 5, "蚞", 4, "čš„čš¦čš«čš­čš®čš²čš³čš·čšøčš¹čš»", 4, "蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"], + ["cd80", "č›č› č›”č›¢č›£č›„č›¦č›§č›Øč›Ŗ蛫蛬č›Æ蛵蛶蛷č›ŗč›»č›¼č›½č›æčœčœ„čœ…čœ†čœ‹čœŒčœŽčœčœčœ‘čœ”čœ–ę±€å»·åœäŗ­åŗ­ęŒŗ艇通ꔐ酮ēž³åŒé“œå½¤ē«„ę”¶ę…ē­’ē»Ÿē—›å·ęŠ•å¤“透å‡øē§ƒēŖå›¾å¾’é€”ę¶‚å± åœŸåå…”ę¹å›¢ęŽØ颓č…æ蜕č¤Ŗ退吞å±Æč‡€ę‹–ę‰˜č„±éøµé™€é©®é©¼ę¤­å¦„ę‹“å”¾ęŒ–å“‡č›™ę“¼å؃ē“¦č¢œę­Ŗå¤–č±Œå¼Æę¹¾ēŽ©é”½äøøēƒ·å®Œē¢—ęŒ½ę™šēš–ęƒ‹å®›å©‰äø‡č…•ę±ŖēŽ‹äŗ”꞉ē½‘å¾€ę—ŗꜛåæ˜å¦„å؁"], + ["ce40", "čœ™čœ›čœčœŸčœ čœ¤čœ¦čœ§čœØčœŖčœ«čœ¬čœ­čœÆčœ°čœ²čœ³čœµčœ¶čœøčœ¹čœŗčœ¼čœ½č€", 6, "蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚", 5, "č”č¢č¦", 7, "čÆč±č²č³čµ"], + ["ce80", "č·čøč¹čŗčæ螀螁螄螆螇螉螊螌螎", 4, "螔螕螖螘", 6, "螠", 4, "巍微危韦čæę”…囓å”Æꃟäøŗę½ē»“č‹‡čŽå§”ä¼Ÿä¼Ŗå°¾ēŗ¬ęœŖč”šå‘³ē•čƒƒå–‚魏位ęø­č°“å°‰ę…°å«ē˜Ÿęø©čšŠę–‡é—»ēŗ¹å»ēسē“Šé—®å—”ēæē“®ęŒčœ—궔ēŖęˆ‘ę–”å§ę”ę²ƒå·«å‘œé’Øä¹Œę±”čÆ¬å±‹ę— čŠœę¢§å¾å“ęÆ‹ę­¦äŗ”ę‚åˆčˆžä¼ä¾®åžęˆŠé›¾ę™¤ē‰©å‹æåŠ”ę‚ŸčÆÆꘔē†™ęžč„æē”’ēŸ½ę™°å˜»åøé””ē‰ŗ"], + ["cf40", "螄螦螧螩čžŖčž®čž°čž±čž²čž“čž¶čž·čžøčž¹čž»čž¼čž¾čžæ蟁", 4, "蟇蟈蟉蟌", 4, "蟔", 6, "čŸœčŸčŸžčŸŸčŸ”čŸ¢čŸ£čŸ¤čŸ¦čŸ§čŸØčŸ©čŸ«čŸ¬čŸ­čŸÆ", 9], + ["cf80", "čŸŗčŸ»čŸ¼čŸ½čŸæ蠀蠁蠂蠄", 5, "蠋", 7, "蠔蠗蠘蠙蠚蠜", 4, "č £ē؀ęÆåøŒę‚‰č†å¤•ęƒœē†„ēƒÆęŗŖ걐ēŠ€ęŖ„č¢­åø­ä¹ åŖ³å–œé“£ę“—ē³»éš™ęˆē»†ēžŽč™¾åŒ£éœžč¾–ęš‡å³”ä¾ ē‹­äø‹åŽ¦å¤å“ꎀé”Ø先仙鲜ēŗ¤å’øč“¤č””čˆ·é—²ę¶Žå¼¦å«Œę˜¾é™©ēŽ°ēŒ®åŽæč…ŗ馅ē¾”å®Ŗ陷限ēŗæē›ø厢镶香ē®±č„„ę¹˜ä¹”ēæ”ē„„čÆ¦ęƒ³å“äŗ«é”¹å··ę©”åƒå‘č±”č§ē”éœ„å‰Šå“®åš£é”€ę¶ˆå®µę·†ę™“"], + ["d040", "č ¤", 13, "č ³", 5, "č ŗč »č ½č ¾č æč”č”‚č”ƒč”†", 5, "蔎", 5, "č”•č”–č”˜č”š", 6, "蔦蔧č”Ŗč”­č”Æč”±č”³č”“č”µč”¶č”øč”¹č”ŗ"], + ["d080", "č”»č”¼č¢€č¢ƒč¢†č¢‡č¢‰č¢Šč¢Œč¢Žč¢č¢č¢‘č¢“č¢”č¢•č¢—", 4, "č¢", 4, "č¢£č¢„", 5, "å°å­ę ”č‚–å•øē¬‘ę•ˆę„”äŗ›ę­‡čŽéž‹åęŒŸęŗé‚Ŗę–œčƒč°å†™ę¢°åøčŸ¹ę‡ˆę³„ę³»č°¢å±‘č–ŖčŠÆé”Œę¬£č¾›ę–°åæ»åæƒäæ”č”…ę˜Ÿč…„ēŒ©ęƒŗå…“åˆ‘åž‹å½¢é‚¢č”Œé†’å¹øęę€§å§“å…„å‡¶čƒøåŒˆę±¹é›„ē†Šä¼‘äæ®ē¾žęœ½å—…锈ē§€č¢–ē»£å¢ŸęˆŒéœ€č™šå˜˜é”»å¾č®øč“„é…—å™ę—­åŗē•œę¤ēµ®å©æē»Ŗē»­č½©å–§å®£ę‚¬ę—‹ēŽ„"], + ["d140", "č¢¬č¢®č¢Æč¢°č¢²", 4, "č¢øč¢¹č¢ŗč¢»č¢½č¢¾č¢æč£€č£ƒč£„č£‡č£ˆč£Šč£‹č£Œč£č£č£č£‘č£“č£–č£—č£š", 4, "č£ č£”č£¦č£§č£©", 6, "č£²č£µč£¶č£·č£ŗč£»č£½č£æ褀褁褃", 5], + ["d180", "褉褋", 4, "褑褔", 4, "褜", 4, "č¤¢č¤£č¤¤č¤¦č¤§č¤Ø褩褬褭褮č¤Æč¤±č¤²č¤³č¤µč¤·é€‰ē™£ēœ©ē»šé“č–›å­¦ē©“é›Ŗč”€å‹‹ē†å¾Ŗę—¬čÆ¢åÆ»é©Æå·”ę®‰ę±›č®­č®Æ逊čæ…åŽ‹ęŠ¼éø¦éø­å‘€äø«čŠ½ē‰™čšœå“–č”™ę¶Æ雅哑äŗšč®¶ē„‰å’½é˜‰ēƒŸę·¹ē›äø„ē ”čœ’å²©å»¶č؀颜阎ē‚Žę²æå„„ęŽ©ēœ¼č”ę¼”č‰³å °ē‡•åŽŒē šé›å”å½¦ē„°å®“谚éŖŒę®ƒå¤®éøÆē§§ęØꉬä½Æē–”ē¾Šę“‹é˜³ę°§ä»°ē—’å…»ę ·ę¼¾é‚€č…°å¦–ē‘¶"], + ["d240", "č¤ø", 8, "č„‚č„ƒč„…", 24, "č„ ", 5, "脧", 19, "č„¼"], + ["d280", "č„½č„¾č¦€č¦‚č¦„č¦…č¦‡", 26, "ę‘‡å°§é„ēŖ‘č°£å§šå’¬čˆ€čÆč¦č€€ę¤°å™Žč€¶ēˆ·é‡Žå†¶ä¹Ÿé”µęŽ–äøšå¶ę›³č…‹å¤œę¶²äø€å£¹åŒ»ę–é“±ä¾ä¼Šč”£é¢å¤·é—ē§»ä»Ŗ胰ē–‘ę²‚å®œå§Øå½ę¤…čšå€šå·²ä¹™ēŸ£ä»„č‰ŗęŠ‘ę˜“é‚‘å±¹äŗæå½¹č‡†é€ø肄ē–«äŗ¦č£”ę„ęƅåæ†ä¹‰ē›Šęŗ¢čÆ£č®®č°ŠčƑ异ēæ¼ēæŒē»ŽčŒµč«å› ę®·éŸ³é˜“å§»åŸé“¶ę·«åƅ鄮尹引隐"], + ["d340", "č¦¢", 30, "č§ƒč§č§“č§”č§•č§—č§˜č§™č§›č§č§Ÿč§ č§”č§¢č§¤č§§č§Ø觩č§Ŗč§¬č§­č§®č§°č§±č§²č§“", 6], + ["d380", "觻", 4, "č؁", 5, "č؈", 21, "å°č‹±ęر婓鹰åŗ”ē¼ØčŽ¹č¤č„č§č‡čæŽčµ¢ē›ˆå½±é¢–ē”¬ę˜ å“Ÿę‹„ä½£č‡ƒē—ˆåŗø雍čøŠč›¹å’ę³³ę¶Œę°øęæ勇ē”Øå¹½ä¼˜ę‚ åæ§å°¤ē”±é‚®é“€ēŠ¹ę²¹ęøøé…‰ęœ‰å‹å³ä½‘é‡‰čƱ又幼čæ‚ę·¤äŗŽē›‚ę¦†č™žę„ščˆ†ä½™äæžé€¾é±¼ę„‰ęøęø”éš…äŗˆåرé›ØäøŽå±æē¦¹å®‡čÆ­ē¾½ēŽ‰åŸŸčŠ‹éƒåé‡å–»å³Ŗå¾”ę„ˆę¬²ē‹±č‚²čŖ‰"], + ["d440", "č؞", 31, "čØæ", 8, "詉", 21], + ["d480", "č©Ÿ", 25, "č©ŗ", 6, "굓åÆ“č£•é¢„č±«é©­éø³ęøŠå†¤å…ƒåž£č¢åŽŸę“č¾•å›­å‘˜åœ†ēŒæęŗē¼˜čæœč‹‘ę„æę€Øé™¢ę›°ēŗ¦č¶Šč·ƒé’„å²³ē²¤ęœˆę‚¦é˜…č€˜äŗ‘郧匀é™Ø允čæč•“é…ę™•éŸµå­•åŒē øę‚ę ½å“‰ē¾å®°č½½å†åœØå’±ę”’ęš‚čµžčµƒč„č‘¬é­ē³Ÿå‡æč—»ęž£ę—©ę¾”čš¤čŗå™Ŗ造ēš‚ē¶ē‡„č“£ę‹©åˆ™ę³½č“¼ę€Žå¢žę†Žę›¾čµ ę‰Žå–³ęø£ęœ­č½§"], + ["d540", "čŖ", 7, "čŖ‹", 7, "čŖ”", 46], + ["d580", "諃", 32, "é“”é—øēœØꠅę¦Ø咋乍ē‚øčÆˆę‘˜ę–‹å®…ēŖ„å€ŗåÆØēž»ęÆ”č©¹ē²˜ę²¾ē›ę–©č¾—哭展č˜øę ˆå ęˆ˜ē«™ę¹›ē»½ę؟ē« å½°ę¼³å¼ ęŽŒę¶ØꝖäøˆåøč“¦ä»—čƒ€ē˜“éšœę‹›ę˜­ę‰¾ę²¼čµµē…§ē½©å…†č‚‡å¬é®ęŠ˜å“²č›°č¾™č€…é”—č”—čæ™ęµ™ēę–ŸēœŸē”„ē §č‡»č“žé’ˆä¾¦ęž•ē–¹čƊ震ęŒÆ镇阵č’øęŒ£ēå¾ē‹°äŗ‰ę€”ę•“ę‹Æę­£ę”æ"], + ["d640", "諤", 34, "謈", 27], + ["d680", "謤謄謧", 30, "åø§ē—‡éƒ‘čÆčŠęžę”Æå±čœ˜ēŸ„č‚¢č„‚ę±ä¹‹ē»‡čŒē›“ę¤ę®–ę‰§å€¼ä¾„å€ęŒ‡ę­¢č¶¾åŖę—Øēŗøåæ—ęŒšęŽ·č‡³č‡“ē½®åøœå³™åˆ¶ę™ŗē§©ēؚč“Øē‚™ē—”ę»žę²»ēŖ’äø­ē›…åæ é’Ÿč”·ē»ˆē§č‚æé‡ä»²ä¼—čˆŸå‘Øå·žę“²čƌē²„č½“č‚˜åøšå’’ēš±å®™ę˜¼éŖ¤ē ę Ŗč››ęœ±ēŒŖčÆøčƛ逐ē«¹ēƒ›ē…®ę‹„ēž©å˜±äø»č‘—ęŸ±åŠ©č›€č“®é“øē­‘"], + ["d740", "譆", 31, "č­§", 4, "č­­", 25], + ["d780", "讇", 24, "讬讱讻čƇčƐčÆŖč°‰č°žä½ę³Øē„é©»ęŠ“ēˆŖę‹½äø“ē –č½¬ę’°čµšēÆ†ę”©åŗ„č£…å¦†ę’žå£®ēŠ¶ę¤Žé”„čæ½čµ˜å ē¼€č°†å‡†ę‰ę‹™å“ę”Œē¢čŒé…Œå•„ē€ē¼ęµŠå…¹å’Ø资å§æę»‹ę·„å­œē“«ä»”ē±½ę»“子č‡Ŗęøå­—é¬ƒę£•čøŖ宗ē»¼ę€»ēŗµé‚¹čµ°å„ęē§Ÿč¶³å’ę—ē„–čƅ阻ē»„é’»ēŗ‚嘓醉꜀ē½Ŗ尊遵ę˜Øå·¦ä½ęŸžåšä½œååŗ§"], + ["d840", "č°ø", 8, "č±‚č±ƒč±„č±…č±ˆč±Šč±‹č±", 7, "č±–č±—č±˜č±™č±›", 5, "č±£", 6, "豬", 6, "豓豵豶豷豻", 6, "č²ƒč²„č²†č²‡"], + ["d880", "č²ˆč²‹č²", 6, "č²•č²–č²—č²™", 20, "äŗäøŒå…€äøå»æ卅äø•äŗ˜äøžé¬²å­¬å™©äøØē¦ŗäøæ匕乇夭ēˆ»å®ę°å›Ÿčƒ¤é¦—ęƓē¾é¼—äø¶äŗŸé¼ä¹œä¹©äŗ“čŠˆå­›å•¬å˜ä»„åŽåŽåŽ£åŽ„åŽ®é„čµåŒšåµåŒ¦åŒ®åŒ¾čµœå¦å£åˆ‚åˆˆåˆŽåˆ­åˆ³åˆæ剀剌剞剔剜č’Æ剽劂劁劐劓冂ē½”äŗ»ä»ƒä»‰ä»‚ä»Ø仔仫仞伛仳伢佤仵伄伧伉伫佞佧ę”ø佚佝"], + ["d940", "č²®", 62], + ["d980", "č³­", 32, "佟佗伲伽佶体侑侉侃侏佾佻ä¾Ŗ佼侬侔äæ¦äæØäæŖäæ…äæšäæ£äæœäæ‘äæŸäæø倩偌äæ³å€¬å€å€®å€­äæ¾å€œå€Œå€„å€Ø偾偃偕偈偎偬偻傄傧傩å‚ŗåƒ–å„†åƒ­åƒ¬åƒ¦åƒ®å„‡å„‹ä»ę°½ä½˜ä½„äæŽé¾ ę±†ē±“兮巽黉馘冁夔勹匍č؇匐凫夙兕äŗ å…–äŗ³č”®č¢¤äŗµč„”č£’ē¦€å¬“蠃ē¾ø冫冱冽冼"], + ["da40", "č“Ž", 14, "č“ čµ‘čµ’čµ—čµŸčµ„čµØ赩čµŖ赬赮čµÆčµ±čµ²čµø", 8, "č¶‚č¶ƒč¶†č¶‡č¶ˆč¶‰č¶Œ", 4, "趒趓趕", 9, "趠趔"], + ["da80", "č¶¢č¶¤", 12, "č¶²č¶¶č¶·č¶¹č¶»č¶½č·€č·č·‚č·…č·‡č·ˆč·‰č·Šč·č·č·’č·“č·”å‡‡å†–å†¢å†„č® č®¦č®§č®Ŗ讓讵讷čƂčƃčƋčƏčƎčƒčƓčƔčƖčƘčƙčƜčƟčÆ čƤčÆØčÆ©čÆ®čÆ°čƳčƶčƹčƼčÆæč°€č°‚č°„č°‡č°Œč°č°‘č°’č°”č°•č°–č°™č°›č°˜č°č°Ÿč° č°”č°„č°§č°Ŗč°«č°®č°Æč°²č°³č°µč°¶å©åŗ阝阢阔阱é˜Ŗ阽阼陂陉陔陟陧陬陲陓隈隍隗隰邗邛邝邙邬邔邓邳邶é‚ŗ"], + ["db40", "č·•č·˜č·™č·œč· č·”č·¢č·„č·¦č·§č·©č·­č·®č·°č·±č·²č·“č·¶č·¼č·¾", 6, "čø†čø‡čøˆčø‹čøčøŽčøčø‘čø’čø“čø•", 7, "čø čø”čø¤", 4, "čø«čø­čø°čø²čø³čø“čø¶čø·čøøčø»čø¼čø¾"], + ["db80", "čøæč¹ƒč¹…č¹†č¹Œ", 4, "č¹“", 5, "č¹š", 11, "č¹§č¹Øč¹Ŗč¹«č¹®č¹±é‚ø邰郏郅邾郐郄郇郓郦郢郜郗郛郫éƒÆ郾鄄鄢鄞鄣鄱é„Æ鄹酃酆刍儂劢劬劭劾å“æ勐勖勰叟ē‡®ēŸå»“凵凼é¬Æ厶弁ē•šå·Æ坌垩垔唾墼壅壑圩圬åœŖ圳圹圮åœÆ坜圻坂坩垅坫垆坼坻åØ坭坶坳垭垤垌垲埏垧垓垓垠埕埘埚埙埒åžø埓åŸÆåŸø埤埝"], + ["dc40", "č¹³č¹µč¹·", 4, "č¹½č¹¾čŗ€čŗ‚čŗƒčŗ„čŗ†čŗˆ", 6, "čŗ‘čŗ’čŗ“čŗ•", 6, "čŗčŗŸ", 11, "čŗ­čŗ®čŗ°čŗ±čŗ³", 6, "čŗ»", 7], + ["dc80", "軃", 10, "č»", 21, "堋堍埽埭堀堞堙唄堠唄唬墁墉墚墀é¦Ø鼙ę‡æč‰¹č‰½č‰æ芏芊čŠØ芄芎芑芗芙芫čŠøčŠ¾čŠ°č‹ˆč‹Šč‹£čŠ˜čŠ·čŠ®č‹‹č‹Œč‹čŠ©čŠ“čŠ”čŠŖčŠŸč‹„č‹ŽčŠ¤č‹”čŒ‰č‹·č‹¤čŒčŒ‡č‹œč‹“č‹’č‹˜čŒŒč‹»č‹“čŒ‘čŒščŒ†čŒ”čŒ•č‹ č‹•čŒœč‘č›čœčŒˆčŽ’čŒ¼čŒ“čŒ±čŽ›čžčŒÆ荏荇荃荟荀茗荠茭čŒŗčŒ³č¦č„"], + ["dd40", "軄", 62], + ["dd80", "č¼¤", 32, "čØčŒ›č©č¬čŖč­č®čŽ°čøčŽ³čŽ“čŽ čŽŖčŽ“čŽœčŽ…č¼čŽ¶čŽ©č½čŽøč»čŽ˜čŽžčŽØčŽŗčŽ¼ččč„č˜å ‡č˜č‹čč½č–čœčø萑萆菔菟萏萃čøč¹čŖč…č€č¦č°č”č‘œč‘‘č‘šč‘™č‘³č’‡č’ˆč‘ŗ蒉č‘øč¼č‘†č‘©č‘¶č’Œč’Žč±č‘­č“č“č“č“¦č’½č““č“Šč’æč’ŗč“ č’”č’¹č’“č’—č“„č“£č”Œē”č”øč“°č”¹č”Ÿč”ŗ"], + ["de40", "č½…", 32, "č½Ŗč¾€č¾Œč¾’č¾č¾ č¾”č¾¢č¾¤č¾„č¾¦č¾§č¾Ŗč¾¬č¾­č¾®č¾Æč¾²č¾³č¾“č¾µč¾·č¾øč¾ŗč¾»č¾¼č¾æčæ€čæƒčæ†"], + ["de80", "čæ‰", 4, "čæčæ’čæ–čæ—čæščæ čæ”čæ£čæ§čæ¬čæÆčæ±čæ²čæ“čæµčæ¶čæŗčæ»čæ¼čæ¾čææé€‡é€ˆé€Œé€Žé€“é€•é€˜č•–č”»č“æč“¼č•™č•ˆč•Ø蕤蕞č•ŗēž¢č•ƒč•²č•»č–¤č–Øč–‡č–č•¹č–®č–œč–…č–¹č–·č–°č—“č—č—œč—æč˜§č˜…č˜©č˜–č˜¼å»¾å¼ˆå¤¼å„č€·å„•å„šå„˜åŒå°¢å°„å°¬å°“ę‰Œę‰ŖęŠŸęŠ»ę‹Šę‹šę‹—ę‹®ęŒ¢ę‹¶ęŒ¹ę‹ęƒęŽ­ę¶ę±ęŗęŽŽęŽ“ę­ęŽ¬ęŽŠę©ęŽ®ęŽ¼ę²ęøꏠęæę„ęžęŽę‘’ę†ęŽ¾ę‘…ę‘ę‹ę›ę ęŒę¦ę”ę‘žę’„ę‘­ę’–"], + ["df40", "這逜連逤逄逧", 5, "逰", 4, "逷逹é€ŗ逽é€æ遀遃遅遆遈", 4, "過達違遖遙遚遜", 5, "遤遦遧適éŖ遫遬éÆ", 4, "遶", 6, "遾邁"], + ["df80", "還邅邆邇邉邊邌", 4, "邒邔邖邘邚邜邞邟邠邤還邧é‚Ø邩邫邭邲邷邼邽é‚æ郀ę‘ŗę’·ę’ø꒙ę’ŗę“€ę“ę“—ę“¤ę“¢ę”‰ę”„ę”®å¼‹åæ’ē”™å¼‘卟叱叽叩åØ叻吒吖吆呋呒呓呔呖呃吔呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咓哒咧咦哓哔呲咣哕咻å’æ哌哙哚哜咩å’Ŗ咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧å”Ŗ啧喏喵啉啭啁啕å”æ啐唼"], + ["e040", "郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郄郩éƒŖ郬郮郰郱郲郳郵郶郷郹éƒŗ郻郼éƒæ鄀鄁鄃鄅", 19, "鄚鄛鄜"], + ["e080", "鄝鄟鄠鄔鄤", 10, "鄰鄲", 6, "é„ŗ", 8, "酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙å—Ŗ嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄å—Æ嗄嗲嗳嗌嗍å—Øå—µå—¤č¾”å˜žå˜ˆå˜Œå˜å˜¤å˜£å—¾å˜€å˜§å˜­å™˜å˜¹å™—å˜¬å™å™¢å™™å™œå™Œå™”åš†å™¤å™±å™«å™»å™¼åš…åš“åšÆ囔囗囝囔囵囫囹å›æ圄圊圉圜åøåø™åø”åø‘åø±åø»åø¼"], + ["e140", "酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧é…Ø酫酭酳é…ŗ酻酼醀", 4, "醆醈醊醎醏醓", 6, "醜", 5, "醤", 5, "醫醬醰醱醲醳醶醷é†ø醹醻"], + ["e180", "醼", 10, "釈釋釐釒", 9, "針", 8, "åø·å¹„幔幛幞幔岌å±ŗ岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峄哂哃哧哦哮哤哞哆哛嵘哾哓哽嵬嵛åµÆåµåµ«åµ‹åµŠåµ©åµ“å¶‚å¶™å¶č±³å¶·å·…å½³å½·å¾‚å¾‡å¾‰å¾Œå¾•å¾™å¾œå¾Øå¾­å¾µå¾¼č”¢å½”ēŠ­ēŠ°ēŠ“ēŠ·ēŠøē‹ƒē‹ē‹Žē‹ē‹’ē‹Øē‹Æē‹©ē‹²ē‹“ē‹·ēŒē‹³ēŒƒē‹ŗ"], + ["e240", "釦", 62], + ["e280", "鈄", 32, "ē‹»ēŒ—ēŒ“ēŒ”ēŒŠēŒžēŒēŒ•ēŒ¢ēŒ¹ēŒ„ēŒ¬ēŒøēŒ±ēēē—ē ē¬ēÆē¾čˆ›å¤„飧夤夂鄣鄧", 5, "鄓鄷鄽馀馄馇馊馍馐馑馓馔馕åŗ€åŗ‘åŗ‹åŗ–åŗ„åŗ åŗ¹åŗµåŗ¾åŗ³čµ“廒廑廛å»Øå»Ŗč†ŗåæ„åæ‰åæ–åæę€ƒåæ®ę€„åæ”åæ¤åæ¾ę€…ꀆåæŖåæ­åæøę€™ę€µę€¦ę€›ę€ę€ę€©ę€«ę€Šę€æꀔęøę¹ę»ęŗꁂ"], + ["e340", "鉆", 45, "鉵", 16], + ["e380", "銆", 7, "銏", 24, "ęŖę½ę‚–ę‚šę‚­ę‚ę‚ƒę‚’ę‚Œę‚›ęƒ¬ę‚»ę‚±ęƒęƒ˜ęƒ†ęƒšę‚“ę„ ę„¦ę„•ę„£ęƒ“ę„€ę„Žę„«ę…Šę…µę†¬ę†”ę†§ę†·ę‡”ę‡µåæéš³é—©é—«é—±é—³é—µé—¶é—¼é—¾é˜ƒé˜„阆阈阊阋阌阍阏阒阕阖阗阙阚äø¬ēˆæęˆ•ę°µę±”ę±œę±Šę²£ę²…ę²ę²”ę²Œę±Øę±©ę±“ę±¶ę²†ę²©ę³ę³”ę²­ę³·ę³øę³±ę³—ę²²ę³ ę³–ę³ŗę³«ę³®ę²±ę³“ę³Æę³¾"], + ["e440", "éŠØ", 5, "éŠÆ", 24, "鋉", 31], + ["e480", "鋩", 32, "ę“¹ę“§ę“Œęµƒęµˆę“‡ę“„ę“™ę“Žę“«ęµę“®ę“µę“šęµęµ’ęµ”ę“³ę¶‘ęµÆę¶žę¶ ęµžę¶“ę¶”ęµœęµ ęµ¼ęµ£ęøšę·‡ę·…ę·žęøŽę¶æę· ęø‘ę·¦ę·ę·™ęø–궫ęøŒę¶®ęø«ę¹®ę¹Žę¹«ęŗ²ę¹Ÿęŗ†ę¹“ę¹”ęø²ęø„ę¹„ę»Ÿęŗ±ęŗ˜ę» ę¼­ę»¢ęŗ„ęŗ§ęŗ½ęŗ»ęŗ·ę»—ęŗ“ę»ęŗę»‚ęŗŸę½¢ę½†ę½‡ę¼¤ę¼•ę»¹ę¼Æę¼¶ę½‹ę½“ę¼Ŗę¼‰ę¼©ę¾‰ę¾ę¾Œę½øę½²ę½¼ę½ŗęæ‘"], + ["e540", "錊", 51, "éŒæ", 10], + ["e580", "鍊", 31, "鍫ęæ‰ę¾§ę¾¹ę¾¶ęæ‚ęæ”ęæ®ęæžęæ ęæÆē€šē€£ē€›ē€¹ē€µēēžå®€å®„宕宓宄å®øē”ÆéŖžę“åƤåÆ®č¤°åÆ°č¹‡č¬‡č¾¶čæ“čæ•čæ„čæ®čæ¤čæ©čæ¦čæ³čæØ逅逄逋逦逑逍逖途逵逶逭é€Æ遄遑遒遐éØé˜é¢é›ęš¹é“é½é‚‚é‚ˆé‚ƒé‚‹å½å½—å½–å½˜å°»å’«å±å±™å­±å±£å±¦ē¾¼å¼Ŗå¼©å¼­č‰“å¼¼é¬»å±®å¦å¦ƒå¦å¦©å¦Ŗ妣"], + ["e640", "鍬", 34, "鎐", 27], + ["e680", "鎬", 29, "鏋鏌鏍妗姊妫妞妤姒妲å¦Æ姗妾å؅å؆姝å؈姣姘姹å،å؉åزåØ“åؑåØ£åؓ婀婧婊婕åØ¼å©¢å©µčƒ¬åŖŖåŖ›å©·å©ŗåŖ¾å««åŖ²å«’å«”åŖø嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孄孳孑孓孢驵驷é©øé©ŗé©æ驽éŖ€éŖéŖ…éŖˆéŖŠéŖéŖ’éŖ“éŖ–éŖ˜éŖ›éŖœéŖéŖŸéŖ éŖ¢éŖ£éŖ„éŖ§ēŗŸēŗ”ēŗ£ēŗ„ēŗØēŗ©"], + ["e740", "鏎", 7, "鏗", 54], + ["e780", "鐎", 32, "ēŗ­ēŗ°ēŗ¾ē»€ē»ē»‚ē»‰ē»‹ē»Œē»ē»”ē»—ē»›ē» ē»”ē»Øē»«ē»®ē»Æē»±ē»²ē¼ē»¶ē»ŗē»»ē»¾ē¼ē¼‚ē¼ƒē¼‡ē¼ˆē¼‹ē¼Œē¼ē¼‘ē¼’ē¼—ē¼™ē¼œē¼›ē¼Ÿē¼”", 6, "ē¼Ŗē¼«ē¼¬ē¼­ē¼Æ", 4, "ē¼µå¹ŗē•æ巛ē”¾é‚•ēŽŽēŽ‘ēŽ®ēŽ¢ēŽŸēē‚ē‘ēŽ·ēŽ³ē€ē‰ēˆē„ē™é”¼ēŠē©ē§ēžēŽŗē²ēēŖē‘›ē¦ē„ēØē°ē®ē¬"], + ["e840", "éÆ", 14, "éæ", 43, "鑬鑭鑮é‘Æ"], + ["e880", "鑰", 20, "钑钖钘铇铏铓铔铚铦铻锜锠ē›ēšē‘ē‘œē‘—ē‘•ē‘™ē‘·ē‘­ē‘¾ē’œē’Žē’€ē’ē’‡ē’‹ē’žē’Øē’©ē’ē’§ē“’ē’ŗéŸŖéŸ«éŸ¬ęŒę“ęžęˆę©ęž„ęž‡ęŖę³ęž˜ęž§ęµęžØęžžęž­ęž‹ę·ę¼ęŸ°ę ‰ęŸ˜ę ŠęŸ©ęž°ę ŒęŸ™ęžµęŸšęž³ęŸę €ęŸƒęžøęŸ¢ę ŽęŸęŸ½ę ²ę ³ę” ę””ę”Žę”¢ę”„ę”¤ę¢ƒę ę”•ę”¦ę”ę”§ę”€ę ¾ę”Šę”‰ę ©ę¢µę¢ę”“ę”·ę¢“ę”«ę£‚ę„®ę£¼ę¤Ÿę¤ ę£¹"], + ["e940", "锧锳锽镃镈镋镕镚镠镮镓镵長", 7, "門", 42], + ["e980", "閫", 32, "ę¤¤ę£°ę¤‹ę¤ę„—ę££ę¤ę„±ę¤¹ę„ ę„‚ę„ę¦„ę„«ę¦€ę¦˜ę„øę¤“ę§Œę¦‡ę¦ˆę§Žę¦‰ę„¦ę„£ę„¹ę¦›ę¦§ę¦»ę¦«ę¦­ę§”ę¦±ę§ę§Šę§Ÿę¦•ę§ ę¦ę§æęØÆꧭęؗęØ˜ę©„ę§²ę©„ęؾęŖ ę©ę©›ęصęŖŽę©¹ęؽęØØę©˜ę©¼ęŖ‘ęŖęŖ©ęŖ—ęŖ«ēŒ·ē’ę®ę®‚ę®‡ę®„ę®’ę®“ę®ę®šę®›ę®”ę®Ŗč½«č½­č½±č½²č½³č½µč½¶č½øč½·č½¹č½ŗč½¼č½¾č¾č¾‚č¾„č¾‡č¾‹"], + ["ea40", "闌", 27, "闬é—æ阇阓阘阛阞阠阣", 6, "阫阬阭é˜Æ阰阷é˜ø阹é˜ŗ阾陁陃陊陎陏陑陒陓陖陗"], + ["ea80", "陘陙陚陜陝陞陠陣附陦陫陭", 4, "陳é™ø", 12, "éš‡éš‰éšŠč¾č¾Žč¾č¾˜č¾šč»Žęˆ‹ęˆ—ęˆ›ęˆŸęˆ¢ęˆ”ęˆ„ęˆ¤ęˆ¬č‡§ē“Æē““ē“æē”ē”‘ē”“ꔓꗮę—Æę—°ę˜Šę˜™ę²ę˜ƒę˜•ę˜€ē‚…ę›·ę˜ę˜“ę˜±ę˜¶ę˜µč€†ę™Ÿę™”ę™ę™ę™–ę™”ę™—ę™·ęš„ęšŒęš§ęšęš¾ę››ę›œę›¦ę›©č“²č“³č“¶č“»č“½čµ€čµ…čµ†čµˆčµ‰čµ‡čµčµ•čµ™č§‡č§Šč§‹č§Œč§Žč§č§č§‘ē‰®ēŠŸē‰ē‰¦ē‰Æē‰¾ē‰æēŠ„ēŠ‹ēŠēŠēŠ’ęŒˆęŒ²ęŽ°"], + ["eb40", "隌階隑隒隓隕隖隚際隝", 9, "éšØ", 7, "隱隲隓隵隷éšøéšŗ隻éšæ雂雃雈雊雋雐雑雓雔雖", 9, "é›”", 6, "雫"], + ["eb80", "雬雭雮雰雱雲雓雵é›øé›ŗ電雼雽é›æ霂霃霅霊霋霌霐霑霒霔霕霗", 4, "霝霟霠ęæꓘ耄ęÆŖęƳęƽęƵęÆ¹ę°…ę°‡ę°†ę°ę°•ę°˜ę°™ę°šę°”ę°©ę°¤ę°Ŗę°²ę”µę••ę•«ē‰ē‰’ē‰–ēˆ°č™¢åˆ–č‚Ÿč‚œč‚“č‚¼ęœŠč‚½č‚±č‚«č‚­č‚“č‚·čƒ§čƒØ胩čƒŖčƒ›čƒ‚čƒ„čƒ™čƒčƒ—ęœčƒčƒ«čƒ±čƒ“čƒ­č„č„Žčƒ²čƒ¼ęœ•č„’č±šč„¶č„žč„¬č„˜č„²č…ˆč…Œč…“č…“č…™č…šč…±č… č…©č…¼č…½č…­č…§å”åŖµč†ˆč†‚č†‘ę»•č†£č†Ŗč‡Œęœ¦č‡Šč†»"], + ["ec40", "霔", 8, "霫霬霮éœÆ霱霳", 4, "éœŗ霻霼霽éœæ", 18, "靔靕靗靘靚靜靝靟靣靤靦靧éØéŖ", 7], + ["ec80", "靲靵靷", 4, "靽", 7, "鞆", 4, "鞌鞎鞏鞐鞓鞕鞖鞗鞙", 4, "č‡č†¦ę¬¤ę¬·ę¬¹ę­ƒę­†ę­™é£‘é£’é£“é£•é£™é£šę®³å½€ęÆ‚č§³ę–é½‘ę–“ę–¼ę—†ę—„ę—ƒę—Œę—Žę—’ę—–ē‚€ē‚œē‚–ē‚ē‚»ēƒ€ē‚·ē‚«ē‚±ēƒØēƒŠē„ē„“ē„–ē„Æē„±ē…³ē…œē…Øē……ē…²ē…Šē…øē…ŗē†˜ē†³ē†µē†Øē† ē‡ ē‡”ē‡§ē‡¹ēˆēˆØē¬ē„˜ē…¦ē†¹ęˆ¾ęˆ½ę‰ƒę‰ˆę‰‰ē¤»ē„€ē„†ē„‰ē„›ē„œē„“ē„šē„¢ē„—ē„ ē„Æē„§ē„ŗē¦…ē¦Šē¦šē¦§ē¦³åæ‘åæ"], + ["ed40", "鞞鞟鞔鞢鞤", 6, "鞬鞮鞰鞱鞳鞵", 46], + ["ed80", "韤韄éŸØ韮", 4, "韓韷", 23, "ę€¼ęęšę§ęę™ę£ę‚«ę„†ę„ę…ę†©ę†ę‡‹ę‡‘ęˆ†č‚€čæę²“ę³¶ę·¼ēŸ¶ēŸøē €ē ‰ē —ē ˜ē ‘ę–«ē ­ē œē ē ¹ē ŗē »ē Ÿē ¼ē „ē ¬ē £ē ©ē”Žē”­ē”–ē”—ē ¦ē”ē”‡ē”Œē”Ŗē¢›ē¢“ē¢šē¢‡ē¢œē¢”ē¢£ē¢²ē¢¹ē¢„ē£”ē£™ē£‰ē£¬ē£²ē¤…ē£“ē¤“ē¤¤ē¤žē¤“龛黹黻黼ē›±ēœ„ēœē›¹ēœ‡ēœˆēœšēœ¢ēœ™ēœ­ēœ¦ēœµēœøēē‘ē‡ēƒēšēØ"], + ["ee40", "頏", 62], + ["ee80", "锎", 32, "ē¢ē„ēæēžē½ēž€ēžŒēž‘ēžŸēž ēž°ēžµēž½ē”ŗē•€ē•Žē•‹ē•ˆē•›ē•²ē•¹ē–ƒē½˜ē½”ē½Ÿč©ˆē½Øē½“ē½±ē½¹ē¾ē½¾ē›ē›„č ²é’…é’†é’‡é’‹é’Šé’Œé’é’é’é’”é’—é’•é’šé’›é’œé’£é’¤é’«é’Ŗ钭钬é’Æ钰钲钓钶", 4, "钼钽é’æ铄铈", 6, "铐铑铒铕铖铗铙铘铛铞铟铠铢铤铄铧é“Øé“Ŗ"], + ["ef40", "é”Æ", 5, "颋颎颒颕颙颣é¢Ø", 37, "飏飐飔飖飗飛飜飝飠", 4], + ["ef80", "飄飦飩", 30, "铩铫铮é“Æ铳铓铵铷铹铼铽é“æ锃锂锆锇锉锊锍锎锏锒", 4, "锘锛锝锞锟锢é”Ŗ锫锩锬锱锲锓锶锷é”ø锼锾é”æ镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镔镢镤", 8, "é•Æ镱镲镳é”ŗēŸ§ēŸ¬é›‰ē§•ē§­ē§£ē§«ē؆嵇ē؃ē؂ē؞ēؔ"], + ["f040", "餈", 4, "餎餏餑", 28, "é¤Æ", 26], + ["f080", "é„Š", 9, "é„–", 12, "鄤鄦鄳é„ø鄹鄻鄾馂馃馉ēعēØ·ē©‘黏馄ē©°ēšˆēšŽēš“ēš™ēš¤ē“žē“ ē”¬éø éø¢éøØ", 4, "éø²éø±éø¶éøøéø·éø¹éøŗéø¾é¹é¹‚鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦", 6, "鹱鹭鹳ē–’ē–”ē––ē– ē–ē–¬ē–£ē–³ē–“ē–øē—„ē–±ē–°ē—ƒē—‚ē—–ē—ē—£ē—Øē—¦ē—¤ē—«ē—§ē˜ƒē—±ē—¼ē—æē˜ē˜€ē˜…ē˜Œē˜—ē˜Šē˜„ē˜˜ē˜•ē˜™"], + ["f140", "馌馎馚", 10, "馦馧馩", 47], + ["f180", "駙", 32, "ē˜›ē˜¼ē˜¢ē˜ ē™€ē˜­ē˜°ē˜æē˜µē™ƒē˜¾ē˜³ē™ē™žē™”ē™œē™–ē™«ē™ÆēæŠē«¦ē©øē©¹ēŖ€ēŖ†ēŖˆēŖ•ēŖ¦ēŖ ēŖ¬ēŖØēŖ­ēŖ³č”¤č”©č”²č”½č”æč¢‚č¢¢č£†č¢·č¢¼č£‰č£¢č£Žč££č£„č£±č¤šč£¼č£Øč£¾č£°č¤”č¤™č¤“č¤›č¤Šč¤“č¤«č¤¶č„č„¦č„»ē–‹čƒ„ēš²ēš“ēŸœč€’č€”č€–č€œč€ č€¢č€„耦耧耩č€Øč€±č€‹č€µčƒč†čč’č©č±č¦ƒé”ø颀颃"], + ["f240", "é§ŗ", 62], + ["f280", "éع", 32, "é¢‰é¢Œé¢é¢é¢”é¢šé¢›é¢žé¢Ÿé¢”é¢¢é¢„é¢¦č™č™”č™¬č™®č™æč™ŗč™¼č™»čšØčščš‹čš¬čščš§čš£čšŖ蚓蚩蚶蛄蚵蛎蚰čšŗčš±čšÆč›‰č›čš“č›©č›±č›²č›­č›³č›čœ“č›žč›“č›Ÿč›˜č›‘čœƒčœ‡č›øčœˆčœŠčœčœ‰čœ£čœ»čœžčœ„čœ®čœščœ¾čˆčœ“čœ±čœ©čœ·čœæčž‚čœ¢č½č¾č»č č°čŒč®čž‹č“č£č¼č¤č™č„čž“čžÆčžØ蟒"], + ["f340", "驚", 17, "驲éŖƒéŖ‰éŖéŖŽéŖ”éŖ•éŖ™éŖ¦éŖ©", 6, "éŖ²éŖ³éŖ“éŖµéŖ¹éŖ»éŖ½éŖ¾éŖæ髃髄髆", 4, "髍髎髏髐髒體髕髖髗髙髚髛髜"], + ["f380", "髝髞髠髢髣髤髄髧é«Øé«©é«Ŗ髬髮髰", 8, "é«ŗ髼", 6, "é¬„é¬…é¬†čŸ†čžˆčž…čž­čž—čžƒčž«čŸ„čž¬čžµčž³čŸ‹čŸ“čž½čŸ‘čŸ€čŸŠčŸ›čŸŖčŸ čŸ®č –č “čŸ¾č Šč ›č ”č ¹č ¼ē¼¶ē½‚ē½„ē½…čˆē«ŗē«½ē¬ˆē¬ƒē¬„ē¬•ē¬Šē¬«ē¬ē­‡ē¬øē¬Ŗē¬™ē¬®ē¬±ē¬ ē¬„ē¬¤ē¬³ē¬¾ē¬žē­˜ē­šē­…ē­µē­Œē­ē­ ē­®ē­»ē­¢ē­²ē­±ē®ē®¦ē®§ē®øē®¬ē®ē®Øē®…ē®Ŗē®œē®¢ē®«ē®“ēƑēƁēƌēƝēƚēÆ„ēƦēÆŖē°ŒēƾēƼē°ē°–ē°‹"], + ["f440", "鬇鬉", 5, "鬐鬑鬒鬔", 10, "鬠鬔鬢鬤", 10, "鬰鬱鬳", 7, "鬽鬾é¬æ魀魆魊魋魌魎魐魒魓魕", 5], + ["f480", "魛", 32, "ē°Ÿē°Ŗē°¦ē°øē±ē±€č‡¾čˆčˆ‚čˆ„č‡¬č”„čˆ”čˆ¢čˆ£čˆ­čˆÆčˆØ舫čˆøčˆ»čˆ³čˆ“čˆ¾č‰„č‰‰č‰‹č‰č‰šč‰Ÿč‰Øč”¾č¢…č¢ˆč£˜č£Ÿč„žē¾ē¾Ÿē¾§ē¾Æē¾°ē¾²ē±¼ę•‰ē²‘ē²ē²œē²žē²¢ē²²ē²¼ē²½ē³ē³‡ē³Œē³ē³ˆē³…ē³—ē³Ø艮ęšØē¾æēæŽēæ•ēæ„ēæ”ēæ¦ēæ©ēæ®ēæ³ē³øēµ·ē¶¦ē¶®ē¹‡ēŗ›éŗøéŗ“čµ³č¶„č¶”č¶‘č¶±čµ§čµ­č±‡č±‰é…Šé…é…Žé…é…¤"], + ["f540", "é­¼", 62], + ["f580", "é®»", 32, "酢酔酰酩é…Æ酽酾酲酓酹醌醅醐醍醑醢醣é†Ŗ醭醮é†Æ醵醓é†ŗč±•é¹¾č¶øč·«čø…č¹™č¹©č¶µč¶æč¶¼č¶ŗč·„č·–č·—č·šč·žč·Žč·č·›č·†č·¬č··č·øč·£č·¹č·»č·¤čø‰č·½čø”čøčøŸčø¬čø®čø£čøÆčøŗč¹€čø¹čøµčø½čø±č¹‰č¹č¹‚č¹‘č¹’č¹Šč¹°č¹¶č¹¼č¹Æč¹“čŗ…čŗčŗ”čŗčŗœčŗžč±øč²‚č²Šč²…č²˜č²”ę–›č§–č§žč§šč§œ"], + ["f640", "éƜ", 62], + ["f680", "鰛", 32, "规觫č§ÆčØ¾č¬¦é“é›©é›³é›Æ霆霁霈霏霎éœŖ霭霰霾龀龃龅", 5, "龌黾鼋鼍隹隼隽雎雒ēžæ雠銎銮鋈錾éŖ鏊鎏鐾鑫é±æ鲂鲅鲆鲇鲈ēأ鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞", 5, "鲄", 4, "鲫鲭鲮鲰", 7, "é²ŗ鲻鲼鲽鳄鳅鳆鳇鳊鳋"], + ["f740", "é°¼", 62], + ["f780", "鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝é²Ŗ鲬é²Æ鲹鲾", 4, "鳈鳉鳑鳒鳚鳛鳠鳔鳌", 4, "鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔éžÆ鞫鞣鞲鞓éŖ±éŖ°éŖ·é¹˜éŖ¶éŖŗéŖ¼é«é«€é«…髂髋髌髑魅魃魇魉魈魍魑é£Ø餍餮鄕鄔髟體髦é«Æ髫髻髭髹鬈鬏鬓鬟鬣éŗ½éŗ¾ēø»éŗ‚éŗ‡éŗˆéŗ‹éŗ’鏖éŗéŗŸé»›é»œé»é» é»Ÿé»¢é»©é»§é»„é»Ŗé»Æ鼢鼬é¼Æ鼹鼷鼽鼾齄"], + ["f840", "é³£", 62], + ["f880", "é“¢", 32], + ["f940", "鵃", 62], + ["f980", "鶂", 32], + ["fa40", "鶣", 62], + ["fa80", "é·¢", 32], + ["fb40", "éøƒ", 27, "éø¤éø§éø®éø°éø“éø»éø¼é¹€é¹é¹é¹’鹓鹔鹖鹙鹝鹟鹠鹔鹢鹄鹮é¹Æ鹲鹓", 9, "éŗ€"], + ["fb80", "éŗéŗƒéŗ„éŗ…éŗ†éŗ‰éŗŠéŗŒ", 5, "éŗ”", 8, "éŗžéŗ ", 5, "éŗ§éŗØéŗ©éŗŖ"], + ["fc40", "éŗ«", 8, "éŗµéŗ¶éŗ·éŗ¹éŗŗéŗ¼éŗæ", 4, "黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黔黣黤黦é»Ø黫黬黭黮黰", 8, "é»ŗ黽é»æ", 6], + ["fc80", "鼆", 4, "鼌鼏鼑鼒鼔鼕鼖鼘鼚", 5, "鼔鼣", 8, "鼭鼮鼰鼱"], + ["fd40", "é¼²", 4, "é¼øé¼ŗé¼¼é¼æ", 4, "齅", 10, "齒", 38], + ["fd80", "é½¹", 5, "龁龂龍", 11, "龜龝龞龔", 4, "ļ¤¬ļ„¹ļ¦•ļ§§ļ§±"], + ["fe40", "ļ،ļ؍ļ؎ļ؏ļؑļؓļؔļؘļ؟ļØ ļØ”ļØ£ļؤļاļØØļØ©"] + ]; +}); + +// node_modules/iconv-lite/encodings/tables/gbk-added.json +var require_gbk_added = __commonJS((exports, module) => { + module.exports = [ + ["a140", "ī“†", 62], + ["a180", "ī”…", 32], + ["a240", "ī”¦", 62], + ["a280", "ī•„", 32], + ["a2ab", "ī¦", 5], + ["a2e3", "ā‚¬ī­"], + ["a2ef", "ī®īÆ"], + ["a2fd", "ī°ī±"], + ["a340", "ī–†", 62], + ["a380", "ī—…", 31, "怀"], + ["a440", "ī—¦", 62], + ["a480", "ī˜„", 32], + ["a4f4", "ī²", 10], + ["a540", "ī™†", 62], + ["a580", "īš…", 32], + ["a5f7", "ī½", 7], + ["a640", "īš¦", 62], + ["a680", "ī›„", 32], + ["a6b9", "īž…", 7], + ["a6d9", "īž", 6], + ["a6ec", "īž”īž•"], + ["a6f3", "īž–"], + ["a6f6", "īž—", 8], + ["a740", "īœ†", 62], + ["a780", "ī…", 32], + ["a7c2", "īž ", 14], + ["a7f2", "īžÆ", 12], + ["a896", "īž¼", 10], + ["a8bc", "īŸ‡"], + ["a8bf", "Ē¹"], + ["a8c1", "īŸ‰īŸŠīŸ‹īŸŒ"], + ["a8ea", "īŸ", 20], + ["a958", "īŸ¢"], + ["a95b", "īŸ£"], + ["a95d", "īŸ¤īŸ„īŸ¦"], + ["a989", "ć€¾āæ°", 11], + ["a997", "īŸ“", 12], + ["a9f0", "ī ", 14], + ["aaa1", "ī€€", 93], + ["aba1", "īž", 93], + ["aca1", "ī‚¼", 93], + ["ada1", "ī„š", 93], + ["aea1", "ī…ø", 93], + ["afa1", "ī‡–", 93], + ["d7fa", "ī ", 4], + ["f8a1", "īˆ“", 93], + ["f9a1", "īŠ’", 93], + ["faa1", "ī‹°", 93], + ["fba1", "īŽ", 93], + ["fca1", "īŽ¬", 93], + ["fda1", "īŠ", 93], + ["fe50", "āŗī –ī —ī ˜āŗ„ć‘³ć‘‡āŗˆāŗ‹ī žć–žć˜šć˜ŽāŗŒāŗ—ć„®ć¤˜ī ¦ć§ć§Ÿć©³ć§ī «ī ¬ć­Žć±®ć³ āŗ§ī ±ī ²āŗŖ䁖䅟āŗ®äŒ·āŗ³āŗ¶āŗ·ī »äŽ±äŽ¬āŗ»ää“–ä™”䙌ī”ƒ"], + ["fe80", "䜣䜩䝼䞍ā»Šä„‡ä„ŗ䄽䦂䦃䦅䦆䦟䦛䦷䦶ī””ī”•ä²£ä²Ÿä² ä²”䱷䲢䓓", 6, "䶮ī”¤ī‘Ø", 93] + ]; +}); + +// node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +var require_gb18030_ranges = __commonJS((exports, module) => { + module.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189000] }; +}); + +// node_modules/iconv-lite/encodings/tables/cp949.json +var require_cp949 = __commonJS((exports, module) => { + module.exports = [ + ["0", "\x00", 127], + ["8141", "ź°‚ź°ƒź°…ź°†ź°‹", 4, "ź°˜ź°žź°Ÿź°”ź°¢ź°£ź°„", 6, "ź°®ź°²ź°³ź°“"], + ["8161", "ź°µź°¶ź°·ź°ŗź°»ź°½ź°¾ź°æź±", 9, "ź±Œź±Ž", 5, "ź±•"], + ["8181", "ź±–ź±—ź±™ź±šź±›ź±", 18, "ź±²ź±³ź±µź±¶ź±¹ź±»", 4, "ź²‚ź²‡ź²ˆź²ź²Žź²ź²‘ź²’ź²“ź²•", 6, "ź²žź²¢", 5, "ź²«ź²­ź²®ź²±", 6, "ź²ŗź²¾ź²æź³€ź³‚ź³ƒź³…ź³†ź³‡ź³‰ź³Šź³‹ź³", 7, "ź³–ź³˜", 7, "ź³¢ź³£ź³„ź³¦ź³©ź³«ź³­ź³®ź³²ź³“ź³·", 4, "ź³¾ź³æź“ź“‚ź“ƒź“…ź“‡", 4, "ź“Žź“ź“’ź““"], + ["8241", "ź“”ź“•ź“–ź“—ź“™ź“šź“›ź“ź“žź“Ÿź“”", 7, "ź“Ŗź“«ź“®", 5], + ["8261", "ź“¶ź“·ź“¹ź“ŗź“»ź“½", 6, "źµ†źµˆźµŠ", 5, "źµ‘źµ’źµ“źµ•źµ–źµ—"], + ["8281", "źµ™", 7, "źµ¢źµ¤", 7, "źµ®źµÆźµ±źµ²źµ·źµøźµ¹źµŗźµ¾ź¶€ź¶ƒ", 4, "ź¶Šź¶‹ź¶ź¶Žź¶ź¶‘", 10, "ź¶ž", 5, "ź¶„", 17, "ź¶ø", 7, "ź·‚ź·ƒź·…ź·†ź·‡ź·‰", 6, "ź·’ź·”", 7, "ź·ź·žź·Ÿź·”ź·¢ź·£ź·„", 18], + ["8341", "ź·ŗź·»ź·½ź·¾źø‚", 5, "źøŠźøŒźøŽ", 5, "źø•", 7], + ["8361", "źø", 18, "źø²źø³źøµźø¶źø¹źø»źø¼"], + ["8381", "źø½źø¾źøæź¹‚ź¹„ź¹‡ź¹ˆź¹‰ź¹‹ź¹ź¹‘ź¹’ź¹“ź¹•ź¹—", 4, "ź¹žź¹¢ź¹£ź¹¤ź¹¦ź¹§ź¹Ŗź¹«ź¹­ź¹®ź¹Æź¹±", 6, "ź¹ŗź¹¾", 5, "źŗ†", 5, "źŗ", 46, "źŗæź»ź»‚ź»ƒź»…", 6, "ź»Žź»’", 5, "ź»šź»›ź»", 8], + ["8441", "ź»¦ź»§ź»©ź»Ŗź»¬ź»®", 5, "ź»µź»¶ź»·ź»¹ź»ŗź»»ź»½", 8], + ["8461", "ź¼†ź¼‰ź¼Šź¼‹ź¼Œź¼Žź¼ź¼‘", 18], + ["8481", "ź¼¤", 7, "ź¼®ź¼Æź¼±ź¼³ź¼µ", 6, "ź¼¾ź½€ź½„ź½…ź½†ź½‡ź½Š", 5, "ź½‘", 10, "ź½ž", 5, "ź½¦", 18, "ź½ŗ", 5, "ź¾ź¾‚ź¾ƒź¾…ź¾†ź¾‡ź¾‰", 6, "ź¾’ź¾“ź¾”ź¾–", 5, "ź¾", 26, "ź¾ŗź¾»ź¾½ź¾¾"], + ["8541", "ź¾æźæ", 5, "źæŠźæŒźæ", 4, "źæ•", 6, "źæ", 4], + ["8561", "źæ¢", 5, "źæŖ", 5, "źæ²źæ³źæµźæ¶źæ·źæ¹", 6, "ė€‚ė€ƒ"], + ["8581", "ė€…", 6, "ė€ė€Žė€ė€‘ė€’ė€“ė€•", 6, "ė€ž", 9, "ė€©", 26, "ė†ė‡ė‰ė‹ėėėė‘ė’ė–ė˜ėšė›ėœėž", 29, "ė¾ėæė‚ė‚‚ė‚ƒė‚…", 6, "ė‚Žė‚ė‚’", 5, "ė‚›ė‚ė‚žė‚£ė‚¤"], + ["8641", "ė‚„ė‚¦ė‚§ė‚Ŗė‚°ė‚²ė‚¶ė‚·ė‚¹ė‚ŗė‚»ė‚½", 6, "ėƒ†ėƒŠ", 5, "ėƒ’"], + ["8661", "ėƒ“ėƒ•ėƒ–ėƒ—ėƒ™", 6, "ėƒ”ėƒ¢ėƒ£ėƒ¤ėƒ¦", 10], + ["8681", "ėƒ±", 22, "ė„Šė„ė„Žė„ė„‘ė„”ė„•ė„–ė„—ė„šė„ž", 4, "ė„¦ė„§ė„©ė„Ŗė„«ė„­", 6, "ė„¶ė„ŗ", 5, "ė…‚ė…ƒė……ė…†ė…‡ė…‰", 6, "ė…’ė…“ė…–ė…—ė…™ė…šė…›ė…ė…žė…Ÿė…”", 22, "ė…ŗė…»ė…½ė…¾ė…æė†ė†ƒ", 4, "ė†Šė†Œė†Žė†ė†ė†‘ė†•ė†–ė†—ė†™ė†šė†›ė†"], + ["8741", "ė†ž", 9, "ė†©", 15], + ["8761", "ė†¹", 18, "ė‡ė‡Žė‡ė‡‘ė‡’ė‡“ė‡•"], + ["8781", "ė‡–", 5, "ė‡žė‡ ", 7, "ė‡Ŗė‡«ė‡­ė‡®ė‡Æė‡±", 7, "ė‡ŗė‡¼ė‡¾", 5, "ėˆ†ėˆ‡ėˆ‰ėˆŠėˆ", 6, "ėˆ–ėˆ˜ėˆš", 5, "ėˆ”", 18, "ėˆµ", 6, "ėˆ½", 26, "ė‰™ė‰šė‰›ė‰ė‰žė‰Ÿė‰”", 6, "ė‰Ŗ", 4], + ["8841", "ė‰Æ", 4, "ė‰¶", 5, "ė‰½", 6, "ėŠ†ėŠ‡ėŠˆėŠŠ", 4], + ["8861", "ėŠėŠ’ėŠ“ėŠ•ėŠ–ėŠ—ėŠ›", 4, "ėŠ¢ėŠ¤ėŠ§ėŠØėŠ©ėŠ«ėŠ­ėŠ®ėŠÆėŠ±ėŠ²ėŠ³ėŠµėŠ¶ėŠ·"], + ["8881", "ėŠø", 15, "ė‹Šė‹‹ė‹ė‹Žė‹ė‹‘ė‹“", 4, "ė‹šė‹œė‹žė‹Ÿė‹ ė‹”ė‹£ė‹§ė‹©ė‹Ŗė‹°ė‹±ė‹²ė‹¶ė‹¼ė‹½ė‹¾ėŒ‚ėŒƒėŒ…ėŒ†ėŒ‡ėŒ‰", 6, "ėŒ’ėŒ–", 5, "ėŒ", 54, "ė—ė™ėšėė ė”ė¢ė£"], + ["8941", "ė¦ėØėŖė¬ė­ėÆė²ė³ėµė¶ė·ė¹", 6, "ėŽ‚ėŽ†", 5, "ėŽ"], + ["8961", "ėŽŽėŽėŽ‘ėŽ’ėŽ“ėŽ•", 10, "ėŽ¢", 5, "ėŽ©ėŽŖėŽ«ėŽ­"], + ["8981", "ėŽ®", 21, "ė†ė‡ė‰ėŠėėė‘ė’ė“ė–ė˜ėšėœėžėŸė”ė¢ė£ė„ė¦ė§ė©", 18, "ė½", 18, "ė‘", 6, "ė™ėšė›ėėžėŸė”", 6, "ėŖė¬", 7, "ėµ", 15], + ["8a41", "ė‘…", 10, "ė‘’ė‘“ė‘•ė‘–ė‘—ė‘™", 6, "ė‘¢ė‘¤ė‘¦"], + ["8a61", "ė‘§", 4, "ė‘­", 18, "ė’ė’‚"], + ["8a81", "ė’ƒ", 4, "ė’‰", 19, "ė’ž", 5, "ė’„ė’¦ė’§ė’©ė’Ŗė’«ė’­", 7, "ė’¶ė’øė’ŗ", 5, "ė“ė“‚ė“ƒė“…ė“†ė“‡ė“‰", 6, "ė“‘ė“’ė““ė“”ė“–", 5, "ė“žė“Ÿė“”ė“¢ė“„ė“§", 4, "ė“®ė“°ė“²", 5, "ė“¹", 26, "ė”–ė”—ė”™ė”šė”"], + ["8b41", "ė”ž", 5, "ė”¦ė”«", 4, "ė”²ė”³ė”µė”¶ė”·ė”¹", 6, "ė•‚ė•†"], + ["8b61", "ė•‡ė•ˆė•‰ė•Šė•Žė•ė•‘ė•’ė•“ė••", 6, "ė•žė•¢", 8], + ["8b81", "ė•«", 52, "ė–¢ė–£ė–„ė–¦ė–§ė–©ė–¬ė–­ė–®ė–Æė–²ė–¶", 4, "ė–¾ė–æė—ė—‚ė—ƒė—…", 6, "ė—Žė—’", 5, "ė—™", 18, "ė—­", 18], + ["8c41", "ė˜€", 15, "ė˜’ė˜“ė˜•ė˜–ė˜—ė˜™", 4], + ["8c61", "ė˜ž", 6, "ė˜¦", 5, "ė˜­", 6, "ė˜µ", 5], + ["8c81", "ė˜»", 12, "ė™‰", 26, "ė™„ė™¦ė™§ė™©", 50, "ėšžėšŸėš”ėš¢ėš£ėš„", 5, "ėš­ėš®ėšÆėš°ėš²", 16], + ["8d41", "ė›ƒ", 16, "ė›•", 8], + ["8d61", "ė›ž", 17, "ė›±ė›²ė›³ė›µė›¶ė›·ė›¹ė›ŗ"], + ["8d81", "ė›»", 4, "ėœ‚ėœƒėœ„ėœ†", 33, "ėœŖėœ«ėœ­ėœ®ėœ±", 6, "ėœŗėœ¼", 7, "ė…ė†ė‡ė‰ėŠė‹ė", 6, "ė–", 9, "ė”ė¢ė£ė„ė¦ė§ė©", 6, "ė²ė“ė¶", 5, "ė¾ėæėžėž‚ėžƒėž…", 6, "ėžŽėž“ėž”ėž•ėžšėž›ėžėžž"], + ["8e41", "ėžŸėž”", 6, "ėžŖėž®", 5, "ėž¶ėž·ėž¹", 8], + ["8e61", "ėŸ‚", 4, "ėŸˆėŸŠ", 19], + ["8e81", "ėŸž", 13, "ėŸ®ėŸÆėŸ±ėŸ²ėŸ³ėŸµ", 6, "ėŸ¾ė ‚", 4, "ė Šė ‹ė ė Žė ė ‘", 6, "ė šė œė ž", 5, "ė ¦ė §ė ©ė Ŗė «ė ­", 6, "ė ¶ė ŗ", 5, "ė”ė”‚ė”ƒė”…", 11, "ė”’ė””", 7, "ė”žė”Ÿė””ė”¢ė”£ė”„", 6, "ė”®ė”°ė”²", 5, "ė”¹ė”ŗė”»ė”½", 7], + ["8f41", "ė¢…", 7, "ė¢Ž", 17], + ["8f61", "ė¢ ", 7, "ė¢©", 6, "ė¢±ė¢²ė¢³ė¢µė¢¶ė¢·ė¢¹", 4], + ["8f81", "ė¢¾ė¢æė£‚ė£„ė£†", 5, "ė£ė£Žė£ė£‘ė£’ė£“ė£•", 7, "ė£žė£ ė£¢", 5, "ė£Ŗė£«ė£­ė£®ė£Æė£±", 6, "ė£ŗė£¼ė£¾", 5, "ė¤…", 18, "ė¤™", 6, "ė¤”", 26, "ė¤¾ė¤æė„ė„‚ė„ƒė„…", 6, "ė„ė„Žė„ė„’", 5], + ["9041", "ė„šė„›ė„ė„žė„Ÿė„”", 6, "ė„Ŗė„¬ė„®", 5, "ė„¶ė„·ė„¹ė„ŗė„»ė„½"], + ["9061", "ė„¾", 5, "ė¦†ė¦ˆė¦‹ė¦Œė¦", 15], + ["9081", "ė¦Ÿ", 12, "ė¦®ė¦Æė¦±ė¦²ė¦³ė¦µ", 6, "ė¦¾ė§€ė§‚", 5, "ė§Šė§‹ė§ė§“", 4, "ė§šė§œė§Ÿė§ ė§¢ė§¦ė§§ė§©ė§Ŗė§«ė§­", 6, "ė§¶ė§»", 4, "ė؂", 5, "ė؉", 11, "ėؖ", 33, "ėØŗėØ»ėؽėؾėØæė©ė©ƒė©„ė©…ė©†"], + ["9141", "ė©‡ė©Šė©Œė©ė©ė©‘ė©’ė©–ė©—ė©™ė©šė©›ė©", 6, "ė©¦ė©Ŗ", 5], + ["9161", "ė©²ė©³ė©µė©¶ė©·ė©¹", 9, "ėŖ†ėŖˆėŖ‰ėŖŠėŖ‹ėŖ", 5], + ["9181", "ėŖ“", 20, "ėŖŖėŖ­ėŖ®ėŖÆėŖ±ėŖ³", 4, "ėŖŗėŖ¼ėŖ¾", 5, "ė«…ė«†ė«‡ė«‰", 14, "ė«š", 33, "ė«½ė«¾ė«æė¬ė¬‚ė¬ƒė¬…", 7, "ė¬Žė¬ė¬’", 5, "ė¬™ė¬šė¬›ė¬ė¬žė¬Ÿė¬”", 6], + ["9241", "ė¬Øė¬Ŗė¬¬", 7, "ė¬·ė¬¹ė¬ŗė¬æ", 4, "ė­†ė­ˆė­Šė­‹ė­Œė­Žė­‘ė­’"], + ["9261", "ė­“ė­•ė­–ė­—ė­™", 7, "ė­¢ė­¤", 7, "ė­­", 4], + ["9281", "ė­²", 21, "ė®‰ė®Šė®‹ė®ė®Žė®ė®‘", 18, "ė®„ė®¦ė®§ė®©ė®Ŗė®«ė®­", 6, "ė®µė®¶ė®ø", 7, "ėƁėƂėƃėƅėƆėƇėƉ", 6, "ėƑėƒėƔ", 35, "ėÆŗėÆ»ėƽėƾė°"], + ["9341", "ė°ƒ", 4, "ė°Šė°Žė°ė°’ė°“ė°™ė°šė° ė°”ė°¢ė°£ė°¦ė°Øė°Ŗė°«ė°¬ė°®ė°Æė°²ė°³ė°µ"], + ["9361", "ė°¶ė°·ė°¹", 6, "ė±‚ė±†ė±‡ė±ˆė±Šė±‹ė±Žė±ė±‘", 8], + ["9381", "ė±šė±›ė±œė±ž", 37, "ė²†ė²‡ė²‰ė²Šė²ė²", 4, "ė²–ė²˜ė²›", 4, "ė²¢ė²£ė²„ė²¦ė²©", 6, "ė²²ė²¶", 5, "ė²¾ė²æė³ė³‚ė³ƒė³…", 7, "ė³Žė³’ė³“ė³”ė³–ė³—ė³™ė³šė³›ė³", 22, "ė³·ė³¹ė³ŗė³»ė³½"], + ["9441", "ė³¾", 5, "ė“†ė“ˆė“Š", 5, "ė“‘ė“’ė““ė“•", 8], + ["9461", "ė“ž", 5, "ė“„", 6, "ė“­", 12], + ["9481", "ė“ŗ", 5, "ėµ", 6, "ėµŠėµ‹ėµėµŽėµėµ‘", 6, "ėµš", 9, "ėµ„ėµ¦ėµ§ėµ©", 22, "ė¶‚ė¶ƒė¶…ė¶†ė¶‹", 4, "ė¶’ė¶”ė¶–ė¶—ė¶˜ė¶›ė¶", 6, "ė¶„", 10, "ė¶±", 6, "ė¶¹", 24], + ["9541", "ė·’ė·“ė·–ė·—ė·™ė·šė·›ė·", 11, "ė·Ŗ", 5, "ė·±"], + ["9561", "ė·²ė·³ė·µė·¶ė··ė·¹", 6, "ėøėø‚ėø„ėø†", 5, "ėøŽėøėø‘ėø’ėø“"], + ["9581", "ėø•", 6, "ėøžėø ", 35, "ė¹†ė¹‡ė¹‰ė¹Šė¹‹ė¹ė¹", 4, "ė¹–ė¹˜ė¹œė¹ė¹žė¹Ÿė¹¢ė¹£ė¹„ė¹¦ė¹§ė¹©ė¹«", 4, "ė¹²ė¹¶", 4, "ė¹¾ė¹æėŗėŗ‚ėŗƒėŗ…", 6, "ėŗŽėŗ’", 5, "ėŗš", 13, "ėŗ©", 14], + ["9641", "ėŗø", 23, "ė»’ė»“"], + ["9661", "ė»•ė»–ė»™", 6, "ė»”ė»¢ė»¦", 5, "ė»­", 8], + ["9681", "ė»¶", 10, "ė¼‚", 5, "ė¼Š", 13, "ė¼šė¼ž", 33, "ė½‚ė½ƒė½…ė½†ė½‡ė½‰", 6, "ė½’ė½“ė½”ė½–", 44], + ["9741", "ė¾ƒ", 16, "ė¾•", 8], + ["9761", "ė¾ž", 17, "ė¾±", 7], + ["9781", "ė¾¹", 11, "ėæ†", 5, "ėæŽėæėæ‘ėæ’ėæ“ėæ•", 6, "ėæėæžėæ ėæ¢", 89, "ģ€½ģ€¾ģ€æ"], + ["9841", "ģ€", 16, "ģ’", 5, "ģ™ģšģ›"], + ["9861", "ģģžģŸģ”", 6, "ģŖ", 15], + ["9881", "ģŗ", 21, "ģ‚’ģ‚“ģ‚•ģ‚–ģ‚—ģ‚™", 6, "ģ‚¢ģ‚¤ģ‚¦", 5, "ģ‚®ģ‚±ģ‚²ģ‚·", 4, "ģ‚¾ģƒ‚ģƒƒģƒ„ģƒ†ģƒ‡ģƒŠģƒ‹ģƒģƒŽģƒģƒ‘", 6, "ģƒšģƒž", 5, "ģƒ¦ģƒ§ģƒ©ģƒŖģƒ«ģƒ­", 6, "ģƒ¶ģƒøģƒŗ", 5, "ģ„ģ„‚ģ„ƒģ„…ģ„†ģ„‡ģ„‰", 6, "ģ„‘ģ„’ģ„“ģ„”ģ„–", 5, "ģ„”ģ„¢ģ„„ģ„Øģ„©ģ„Ŗģ„«ģ„®"], + ["9941", "ģ„²ģ„³ģ„“ģ„µģ„·ģ„ŗģ„»ģ„½ģ„¾ģ„æģ…", 6, "ģ…Šģ…Ž", 5, "ģ…–ģ…—"], + ["9961", "ģ…™ģ…šģ…›ģ…", 6, "ģ…¦ģ…Ŗ", 5, "ģ…±ģ…²ģ…³ģ…µģ…¶ģ…·ģ…¹ģ…ŗģ…»"], + ["9981", "ģ…¼", 8, "ģ††", 5, "ģ†ģ†‘ģ†’ģ†“ģ†•ģ†—", 4, "ģ†žģ† ģ†¢ģ†£ģ†¤ģ†¦ģ†§ģ†Ŗģ†«ģ†­ģ†®ģ†Æģ†±", 11, "ģ†¾", 5, "ģ‡…ģ‡†ģ‡‡ģ‡‰ģ‡Šģ‡‹ģ‡", 6, "ģ‡•ģ‡–ģ‡™", 6, "ģ‡”ģ‡¢ģ‡£ģ‡„ģ‡¦ģ‡§ģ‡©", 6, "ģ‡²ģ‡“", 7, "ģ‡¾ģ‡æģˆģˆ‚ģˆƒģˆ…", 6, "ģˆŽģˆģˆ’", 5, "ģˆšģˆ›ģˆģˆžģˆ”ģˆ¢ģˆ£"], + ["9a41", "ģˆ¤ģˆ„ģˆ¦ģˆ§ģˆŖģˆ¬ģˆ®ģˆ°ģˆ³ģˆµ", 16], + ["9a61", "ģ‰†ģ‰‡ģ‰‰", 6, "ģ‰’ģ‰“ģ‰•ģ‰–ģ‰—ģ‰™", 6, "ģ‰”ģ‰¢ģ‰£ģ‰¤ģ‰¦"], + ["9a81", "ģ‰§", 4, "ģ‰®ģ‰Æģ‰±ģ‰²ģ‰³ģ‰µ", 6, "ģ‰¾ģŠ€ģŠ‚", 5, "ģŠŠ", 5, "ģŠ‘", 6, "ģŠ™ģŠšģŠœģŠž", 5, "ģŠ¦ģŠ§ģŠ©ģŠŖģŠ«ģŠ®", 5, "ģŠ¶ģŠøģŠŗ", 33, "ģ‹žģ‹Ÿģ‹”ģ‹¢ģ‹„", 5, "ģ‹®ģ‹°ģ‹²ģ‹³ģ‹“ģ‹µģ‹·ģ‹ŗģ‹½ģ‹¾ģ‹æģŒ", 6, "ģŒŠģŒ‹ģŒŽģŒ"], + ["9b41", "ģŒģŒ‘ģŒ’ģŒ–ģŒ—ģŒ™ģŒšģŒ›ģŒ", 6, "ģŒ¦ģŒ§ģŒŖ", 8], + ["9b61", "ģŒ³", 17, "ģ†", 7], + ["9b81", "ģŽ", 25, "ģŖģ«ģ­ģ®ģÆģ±ģ³", 4, "ģŗģ»ģ¾", 5, "ģŽ…ģŽ†ģŽ‡ģŽ‰ģŽŠģŽ‹ģŽ", 50, "ģ", 22, "ģš"], + ["9c41", "ģ›ģģžģ”ģ£", 4, "ģŖģ«ģ¬ģ®", 5, "ģ¶ģ·ģ¹", 5], + ["9c61", "ģæ", 8, "ģ‰", 6, "ģ‘", 9], + ["9c81", "ģ›", 8, "ģ„", 6, "ģ­ģ®ģÆģ±ģ²ģ³ģµ", 6, "ģ¾", 9, "ģ‘‰", 26, "ģ‘¦ģ‘§ģ‘©ģ‘Ŗģ‘«ģ‘­", 6, "ģ‘¶ģ‘·ģ‘øģ‘ŗ", 5, "ģ’", 18, "ģ’•", 6, "ģ’", 12], + ["9d41", "ģ’Ŗ", 13, "ģ’¹ģ’ŗģ’»ģ’½", 8], + ["9d61", "ģ“†", 25], + ["9d81", "ģ“ ", 8, "ģ“Ŗ", 5, "ģ“²ģ“³ģ“µģ“¶ģ“·ģ“¹ģ“»ģ“¼ģ“½ģ“¾ģ”‚", 9, "ģ”ģ”Žģ”ģ”‘ģ”’ģ”“ģ”•", 6, "ģ”", 10, "ģ”Ŗģ”«ģ”­ģ”®ģ”Æģ”±", 6, "ģ”ŗģ”¼ģ”¾", 5, "ģ•†ģ•‡ģ•‹ģ•ģ•ģ•‘ģ•’ģ•–ģ•šģ•›ģ•œģ•Ÿģ•¢ģ•£ģ•„ģ•¦ģ•§ģ•©", 6, "ģ•²ģ•¶", 5, "ģ•¾ģ•æģ–ģ–‚ģ–ƒģ–…ģ–†ģ–ˆģ–‰ģ–Šģ–‹ģ–Žģ–ģ–’ģ–“ģ–”"], + ["9e41", "ģ––ģ–™ģ–šģ–›ģ–ģ–žģ–Ÿģ–”", 7, "ģ–Ŗ", 9, "ģ–¶"], + ["9e61", "ģ–·ģ–ŗģ–æ", 4, "ģ—‹ģ—ģ—ģ—’ģ—“ģ—•ģ—–ģ——ģ—™", 6, "ģ—¢ģ—¤ģ—¦ģ—§"], + ["9e81", "ģ—Øģ—©ģ—Ŗģ—«ģ—Æģ—±ģ—²ģ—³ģ—µģ—øģ—¹ģ—ŗģ—»ģ˜‚ģ˜ƒģ˜„ģ˜‰ģ˜Šģ˜‹ģ˜ģ˜Žģ˜ģ˜‘", 6, "ģ˜šģ˜", 6, "ģ˜¦ģ˜§ģ˜©ģ˜Ŗģ˜«ģ˜Æģ˜±ģ˜²ģ˜¶ģ˜øģ˜ŗģ˜¼ģ˜½ģ˜¾ģ˜æģ™‚ģ™ƒģ™…ģ™†ģ™‡ģ™‰", 6, "ģ™’ģ™–", 5, "ģ™žģ™Ÿģ™”", 10, "ģ™­ģ™®ģ™°ģ™²", 5, "ģ™ŗģ™»ģ™½ģ™¾ģ™æģš", 6, "ģšŠģšŒģšŽ", 5, "ģš–ģš—ģš™ģššģš›ģš", 6, "ģš¦"], + ["9f41", "ģšØģšŖ", 5, "ģš²ģš³ģšµģš¶ģš·ģš»", 4, "ģ›‚ģ›„ģ›†", 5, "ģ›Ž"], + ["9f61", "ģ›ģ›‘ģ›’ģ›“ģ›•", 6, "ģ›žģ›Ÿģ›¢", 5, "ģ›Ŗģ›«ģ›­ģ›®ģ›Æģ›±ģ›²"], + ["9f81", "ģ›³", 4, "ģ›ŗģ›»ģ›¼ģ›¾", 5, "ģœ†ģœ‡ģœ‰ģœŠģœ‹ģœ", 6, "ģœ–ģœ˜ģœš", 5, "ģœ¢ģœ£ģœ„ģœ¦ģœ§ģœ©", 6, "ģœ²ģœ“ģœ¶ģœøģœ¹ģœŗģœ»ģœ¾ģœæģģ‚ģƒģ…", 4, "ģ‹ģŽģģ™ģšģ›ģģžģŸģ”", 6, "ģ©ģŖģ¬", 7, "ģ¶ģ·ģ¹ģŗģ»ģæģž€ģžģž‚ģž†ģž‹ģžŒģžģžģž’ģž“ģž•ģž™ģž›", 4, "ģž¢ģž§", 4, "ģž®ģžÆģž±ģž²ģž³ģžµģž¶ģž·"], + ["a041", "ģžøģž¹ģžŗģž»ģž¾ģŸ‚", 5, "ģŸŠģŸ‹ģŸģŸģŸ‘", 6, "ģŸ™ģŸšģŸ›ģŸœ"], + ["a061", "ģŸž", 5, "ģŸ„ģŸ¦ģŸ§ģŸ©ģŸŖģŸ«ģŸ­", 13], + ["a081", "ģŸ»", 4, "ģ ‚ģ ƒģ …ģ †ģ ‡ģ ‰ģ ‹", 4, "ģ ’ģ ”ģ —", 4, "ģ žģ Ÿģ ”ģ ¢ģ £ģ „", 6, "ģ ®ģ °ģ ²", 5, "ģ ¹ģ ŗģ »ģ ½ģ ¾ģ æģ”", 6, "ģ”Šģ”‹ģ”Ž", 5, "ģ”•", 26, "ģ”²ģ”³ģ”µģ”¶ģ”·ģ”¹ģ”»", 4, "ģ¢‚ģ¢„ģ¢ˆģ¢‰ģ¢Šģ¢Ž", 5, "ģ¢•", 7, "ģ¢žģ¢ ģ¢¢ģ¢£ģ¢¤"], + ["a141", "ģ¢„ģ¢¦ģ¢§ģ¢©", 18, "ģ¢¾ģ¢æģ£€ģ£"], + ["a161", "ģ£‚ģ£ƒģ£…ģ£†ģ£‡ģ£‰ģ£Šģ£‹ģ£", 6, "ģ£–ģ£˜ģ£š", 5, "ģ£¢ģ££ģ£„"], + ["a181", "ģ£¦", 14, "ģ£¶", 5, "ģ£¾ģ£æģ¤ģ¤‚ģ¤ƒģ¤‡", 4, "ģ¤Žć€€ć€ć€‚Ā·ā€„ā€¦ĀØ怃Ā­ā€•āˆ„ļ¼¼āˆ¼ā€˜ā€™ā€œā€ć€”ć€•ć€ˆ", 9, "Ā±Ć—Ć·ā‰ ā‰¤ā‰„āˆžāˆ“Ā°ā€²ā€³ā„ƒā„«ļæ ļæ”ļæ„ā™‚ā™€āˆ āŠ„āŒ’āˆ‚āˆ‡ā‰”ā‰’Ā§ā€»ā˜†ā˜…ā—‹ā—ā—Žā—‡ā—†ā–”ā– ā–³ā–²ā–½ā–¼ā†’ā†ā†‘ā†“ā†”怓ā‰Ŗā‰«āˆšāˆ½āˆāˆµāˆ«āˆ¬āˆˆāˆ‹āŠ†āŠ‡āŠ‚āŠƒāˆŖāˆ©āˆ§āˆØļæ¢"], + ["a241", "ģ¤ģ¤’", 5, "ģ¤™", 18], + ["a261", "ģ¤­", 6, "ģ¤µ", 18], + ["a281", "ģ„ˆ", 7, "ģ„’ģ„“ģ„•ģ„–ģ„—ģ„™", 6, "ģ„¢ģ„¤", 7, "ģ„­ģ„®ģ„Æā‡’ā‡”āˆ€āˆƒĀ“ļ½žĖ‡Ė˜ĖĖšĖ™ĀøĖ›Ā”ĀæĖāˆ®āˆ‘āˆĀ¤ā„‰ā€°ā—ā—€ā–·ā–¶ā™¤ā™ ā™”ā™„ā™§ā™£āŠ™ā—ˆā–£ā—ā—‘ā–’ā–¤ā–„ā–Øā–§ā–¦ā–©ā™Øā˜ā˜Žā˜œā˜žĀ¶ā€ ā€”ā†•ā†—ā†™ā†–ā†˜ā™­ā™©ā™Ŗā™¬ć‰æ戜ā„–ć‡ā„¢ć‚ć˜ā„”ā‚¬Ā®"], + ["a341", "ģ„±ģ„²ģ„³ģ„µ", 6, "ģ„½", 10, "ģ¦Šģ¦‹ģ¦ģ¦Žģ¦"], + ["a361", "ģ¦‘", 6, "ģ¦šģ¦œģ¦ž", 16], + ["a381", "ģ¦Æ", 16, "ģ§‚ģ§ƒģ§…ģ§†ģ§‰ģ§‹", 4, "ģ§’ģ§”ģ§—ģ§˜ģ§›ļ¼", 58, "ļæ¦ļ¼½", 32, "ļæ£"], + ["a441", "ģ§žģ§Ÿģ§”ģ§£ģ§„ģ§¦ģ§Øģ§©ģ§Ŗģ§«ģ§®ģ§²", 5, "ģ§ŗģ§»ģ§½ģ§¾ģ§æģ؁ģ؂ģ؃ģ؄"], + ["a461", "ģ؅ģ؆ģ؇ģ؊ģ؎", 5, "ģؕģؖģؗģؙ", 12], + ["a481", "ģئģاģØØģØŖ", 28, "愱", 93], + ["a541", "ģ©‡", 4, "ģ©Žģ©ģ©‘ģ©’ģ©“ģ©•", 6, "ģ©žģ©¢", 5, "ģ©©ģ©Ŗ"], + ["a561", "ģ©«", 17, "ģ©¾", 5, "ģŖ…ģŖ†"], + ["a581", "ģŖ‡", 16, "ģŖ™", 14, "ā…°", 9], + ["a5b0", "ā… ", 9], + ["a5c1", "Ī‘", 16, "Ī£", 6], + ["a5e1", "Ī±", 16, "Ļƒ", 6], + ["a641", "ģŖØ", 19, "ģŖ¾ģŖæģ«ģ«‚ģ«ƒģ«…"], + ["a661", "ģ«†", 5, "ģ«Žģ«ģ«’ģ«”ģ«•ģ«–ģ«—ģ«š", 5, "ģ«”", 6], + ["a681", "ģ«Øģ«©ģ«Ŗģ««ģ«­", 6, "ģ«µ", 18, "ģ¬‰ģ¬Šā”€ā”‚ā”Œā”ā”˜ā””ā”œā”¬ā”¤ā”“ā”¼ā”ā”ƒā”ā”“ā”›ā”—ā”£ā”³ā”«ā”»ā•‹ā” ā”Æā”Øā”·ā”æā”ā”°ā”„ā”øā•‚ā”’ā”‘ā”šā”™ā”–ā”•ā”Žā”ā”žā”Ÿā””ā”¢ā”¦ā”§ā”©ā”Ŗā”­ā”®ā”±ā”²ā”µā”¶ā”¹ā”ŗā”½ā”¾ā•€ā•ā•ƒ", 7], + ["a741", "ģ¬‹", 4, "ģ¬‘ģ¬’ģ¬“ģ¬•ģ¬–ģ¬—ģ¬™", 6, "ģ¬¢", 7], + ["a761", "ģ¬Ŗ", 22, "ģ­‚ģ­ƒģ­„"], + ["a781", "ģ­…ģ­†ģ­‡ģ­Šģ­‹ģ­ģ­Žģ­ģ­‘", 6, "ģ­šģ­›ģ­œģ­ž", 5, "ģ­„", 7, "掕掖掗ā„“ćŽ˜ć„ćŽ£ćŽ¤ćŽ„掦掙", 9, "揊掍掎掏描授掉揈控ćŽØ掰", 9, "掀", 4, "ćŽŗ", 5, "掐", 4, "ā„¦ć€ććŽŠćŽ‹ćŽŒć–ć…ćŽ­ćŽ®ćŽÆć›ćŽ©ćŽŖćŽ«ćŽ¬ććć“ćƒć‰ćœć†"], + ["a841", "ģ­­", 10, "ģ­ŗ", 14], + ["a861", "ģ®‰", 18, "ģ®", 6], + ["a881", "ģ®¤", 19, "ģ®¹", 11, "ƆƐĀŖĦ"], + ["a8a6", "IJ"], + ["a8a8", "ÄæÅĆ˜Å’ĀŗĆžÅ¦ÅŠ"], + ["a8b1", "扠", 27, "ā“", 25, "ā‘ ", 14, "Ā½ā…“ā…”Ā¼Ā¾ā…›ā…œā…ā…ž"], + ["a941", "ģƅ", 14, "ģƕ", 10], + ["a961", "ģÆ ģÆ”ģÆ¢ģÆ£ģÆ„ģƦģÆØģÆŖ", 18], + ["a981", "ģƽ", 14, "ģ°Žģ°ģ°‘ģ°’ģ°“ģ°•", 6, "ģ°žģ°Ÿģ° ģ°£ģ°¤Ć¦Ä‘Ć°Ä§Ä±Ä³ÄøŀłĆøÅ“ĆŸĆ¾Å§Å‹Å‰ćˆ€", 27, "ā’œ", 25, "ā‘“", 14, "Ā¹Ā²Ā³ā“āæā‚ā‚‚ā‚ƒā‚„"], + ["aa41", "ģ°„ģ°¦ģ°Ŗģ°«ģ°­ģ°Æģ°±", 6, "ģ°ŗģ°æ", 4, "ģ±†ģ±‡ģ±‰ģ±Šģ±‹ģ±ģ±Ž"], + ["aa61", "ģ±", 4, "ģ±–ģ±š", 5, "ģ±”ģ±¢ģ±£ģ±„ģ±§ģ±©", 6, "ģ±±ģ±²"], + ["aa81", "ģ±³ģ±“ģ±¶", 29, "恁", 82], + ["ab41", "ģ²”ģ²•ģ²–ģ²—ģ²šģ²›ģ²ģ²žģ²Ÿģ²”", 6, "ģ²Ŗģ²®", 5, "ģ²¶ģ²·ģ²¹"], + ["ab61", "ģ²ŗģ²»ģ²½", 6, "ģ³†ģ³ˆģ³Š", 5, "ģ³‘ģ³’ģ³“ģ³•", 5], + ["ab81", "ģ³›", 8, "ģ³„", 6, "ģ³­ģ³®ģ³Æģ³±", 12, "ć‚”", 85], + ["ac41", "ģ³¾ģ³æģ“€ģ“‚", 5, "ģ“Šģ“‹ģ“ģ“Žģ“ģ“‘", 6, "ģ“šģ“œģ“žģ“Ÿģ“ "], + ["ac61", "ģ“”ģ“¢ģ“£ģ“„ģ“¦ģ“§ģ“©ģ“Ŗģ“«ģ“­", 11, "ģ“ŗ", 4], + ["ac81", "ģ“æ", 28, "ģµģµžģµŸŠ", 5, "ŠŠ–", 25], + ["acd1", "Š°", 5, "ёŠ¶", 25], + ["ad41", "ģµ”ģµ¢ģµ£ģµ„", 6, "ģµ®ģµ°ģµ²", 5, "ģµ¹", 7], + ["ad61", "ģ¶", 6, "ģ¶‰", 10, "ģ¶–ģ¶—ģ¶™ģ¶šģ¶›ģ¶ģ¶žģ¶Ÿ"], + ["ad81", "ģ¶ ģ¶”ģ¶¢ģ¶£ģ¶¦ģ¶Øģ¶Ŗ", 5, "ģ¶±", 18, "ģ·…"], + ["ae41", "ģ·†", 5, "ģ·ģ·Žģ·ģ·‘", 16], + ["ae61", "ģ·¢", 5, "ģ·©ģ·Ŗģ·«ģ·­ģ·®ģ·Æģ·±", 6, "ģ·ŗģ·¼ģ·¾", 4], + ["ae81", "ģøƒģø…ģø†ģø‡ģø‰ģøŠģø‹ģø", 6, "ģø•ģø–ģø—ģø˜ģøš", 5, "ģø¢ģø£ģø„ģø¦ģø§ģø©ģøŖģø«"], + ["af41", "ģø¬ģø­ģø®ģøÆģø²ģø“ģø¶", 19], + ["af61", "ģ¹Š", 13, "ģ¹šģ¹›ģ¹ģ¹žģ¹¢", 5, "ģ¹Ŗģ¹¬"], + ["af81", "ģ¹®", 5, "ģ¹¶ģ¹·ģ¹¹ģ¹ŗģ¹»ģ¹½", 6, "ģŗ†ģŗˆģŗŠ", 5, "ģŗ’ģŗ“ģŗ•ģŗ–ģŗ—ģŗ™"], + ["b041", "ģŗš", 5, "ģŗ¢ģŗ¦", 5, "ģŗ®", 12], + ["b061", "ģŗ»", 5, "ģ»‚", 19], + ["b081", "ģ»–", 13, "ģ»¦ģ»§ģ»©ģ»Ŗģ»­", 6, "ģ»¶ģ»ŗ", 5, "ź°€ź°ź°„ź°‡ź°ˆź°‰ź°Šź°", 7, "ź°™", 4, "ź° ź°¤ź°¬ź°­ź°Æź°°ź°±ź°øź°¹ź°¼ź±€ź±‹ź±ź±”ź±˜ź±œź±°ź±±ź±“ź±·ź±øź±ŗź²€ź²ź²ƒź²„ź²…ź²†ź²‰ź²Šź²‹ź²Œź²ź²”ź²œź²ź²Ÿź² ź²”ź²Øź²©ź²Ŗź²¬ź²Æź²°ź²øź²¹ź²»ź²¼ź²½ź³ź³„ź³ˆź³Œź³•ź³—ź³ ź³”ź³¤ź³§ź³Øź³Ŗź³¬ź³Æź³°ź³±ź³³ź³µź³¶ź³¼ź³½ź“€ź“„ź“†"], + ["b141", "ģ¼‚ģ¼ƒģ¼…ģ¼†ģ¼‡ģ¼‰", 6, "ģ¼’ģ¼”ģ¼–", 5, "ģ¼ģ¼žģ¼Ÿģ¼”ģ¼¢ģ¼£"], + ["b161", "ģ¼„", 6, "ģ¼®ģ¼²", 5, "ģ¼¹", 11], + ["b181", "ģ½…", 14, "ģ½–ģ½—ģ½™ģ½šģ½›ģ½", 6, "ģ½¦ģ½Øģ½Ŗģ½«ģ½¬ź“Œź“ź“ź“‘ź“˜ź“œź“ ź“©ź“¬ź“­ź““ź“µź“øź“¼źµ„źµ…źµ‡źµ‰źµźµ”źµ˜źµ”źµ£źµ¬źµ­źµ°źµ³źµ“źµµźµ¶źµ»źµ¼źµ½źµæź¶ź¶‚ź¶ˆź¶‰ź¶Œź¶ź¶œź¶ź¶¤ź¶·ź·€ź·ź·„ź·ˆź·ź·‘ź·“ź·œź· ź·¤ź·øź·¹ź·¼ź·æźø€źøźøˆźø‰źø‹źøźø”źø°źø±źø“źø·źøøźøŗź¹€ź¹ź¹ƒź¹…ź¹†ź¹Šź¹Œź¹ź¹Žź¹ź¹”ź¹–ź¹œź¹ź¹Ÿź¹ ź¹”ź¹„ź¹Øź¹©ź¹¬ź¹°ź¹ø"], + ["b241", "ģ½­ģ½®ģ½Æģ½²ģ½³ģ½µģ½¶ģ½·ģ½¹", 6, "ģ¾ģ¾‚ģ¾ƒģ¾„ģ¾†", 5, "ģ¾"], + ["b261", "ģ¾Ž", 18, "ģ¾¢", 5, "ģ¾©"], + ["b281", "ģ¾Ŗ", 5, "ģ¾±", 18, "ģæ…", 6, "ź¹¹ź¹»ź¹¼ź¹½źŗ„źŗ…źŗŒźŗ¼źŗ½źŗ¾ź»€ź»„ź»Œź»ź»ź»ź»‘ź»˜ź»™ź»œź»Øź»«ź»­ź»“ź»øź»¼ź¼‡ź¼ˆź¼ź¼ź¼¬ź¼­ź¼°ź¼²ź¼“ź¼¼ź¼½ź¼æź½ź½‚ź½ƒź½ˆź½‰ź½ź½œź½ź½¤ź½„ź½¹ź¾€ź¾„ź¾ˆź¾ź¾‘ź¾•ź¾œź¾øź¾¹ź¾¼źæ€źæ‡źæˆźæ‰źæ‹źæźæŽźæ”źæœźæØźæ©źæ°źæ±źæ“źæøė€€ė€ė€„ė€Œė€ė€”ė€œė€ė€Øė„ė…ėˆėŠėŒėŽė“ė”ė•ė—ė™"], + ["b341", "ģæŒ", 19, "ģæ¢ģæ£ģæ„ģæ¦ģæ§ģæ©"], + ["b361", "ģæŖ", 5, "ģæ²ģæ“ģæ¶", 5, "ģæ½ģæ¾ģææķ€ķ€‚ķ€ƒķ€…", 5], + ["b381", "ķ€‹", 5, "ķ€’", 5, "ķ€™", 19, "ėė¼ė½ė‚€ė‚„ė‚Œė‚ė‚ė‚‘ė‚˜ė‚™ė‚šė‚œė‚Ÿė‚ ė‚”ė‚¢ė‚Øė‚©ė‚«", 4, "ė‚±ė‚³ė‚“ė‚µė‚øė‚¼ėƒ„ėƒ…ėƒ‡ėƒˆėƒ‰ėƒėƒ‘ėƒ”ėƒ˜ėƒ ėƒ„ė„ˆė„‰ė„‹ė„Œė„ė„’ė„“ė„˜ė„™ė„›ė„œė„ė„£ė„¤ė„„ė„Øė„¬ė„“ė„µė„·ė„øė„¹ė…€ė…ė…„ė…ˆė…ė…‘ė…”ė…•ė…˜ė…œė… ė…øė…¹ė…¼ė†€ė†‚ė†ˆė†‰ė†‹ė†ė†’ė†“ė†”ė†˜ė†œė†Øė‡Œė‡ė‡”ė‡œė‡"], + ["b441", "ķ€®", 5, "ķ€¶ķ€·ķ€¹ķ€ŗķ€»ķ€½", 6, "ķ†ķˆķŠ", 5], + ["b461", "ķ‘ķ’ķ“ķ•ķ–ķ—ķ™", 6, "ķ”", 10, "ķ®ķÆ"], + ["b481", "ķ±ķ²ķ³ķµ", 6, "ķ¾ķæķ‚€ķ‚‚", 18, "ė‡Ÿė‡Øė‡©ė‡¬ė‡°ė‡¹ė‡»ė‡½ėˆ„ėˆ…ėˆˆėˆ‹ėˆŒėˆ”ėˆ•ėˆ—ėˆ™ėˆ ėˆ“ėˆ¼ė‰˜ė‰œė‰ ė‰Øė‰©ė‰“ė‰µė‰¼ėŠ„ėŠ…ėŠ‰ėŠėŠ‘ėŠ”ėŠ˜ėŠ™ėŠšėŠ ėŠ”ėŠ£ėŠ„ėŠ¦ėŠŖėŠ¬ėŠ°ėŠ“ė‹ˆė‹‰ė‹Œė‹ė‹’ė‹˜ė‹™ė‹›ė‹ė‹¢ė‹¤ė‹„ė‹¦ė‹Øė‹«", 4, "ė‹³ė‹“ė‹µė‹·", 4, "ė‹æėŒ€ėŒėŒ„ėŒˆėŒėŒ‘ėŒ“ėŒ”ėŒ•ėŒœė”ė•ė–ė˜ė›ėœėžėŸė¤ė„"], + ["b541", "ķ‚•", 14, "ķ‚¦ķ‚§ķ‚©ķ‚Ŗķ‚«ķ‚­", 5], + ["b561", "ķ‚³ķ‚¶ķ‚øķ‚ŗ", 5, "ķƒ‚ķƒƒķƒ…ķƒ†ķƒ‡ķƒŠ", 5, "ķƒ’ķƒ–", 4], + ["b581", "ķƒ›ķƒžķƒŸķƒ”ķƒ¢ķƒ£ķƒ„", 6, "ķƒ®ķƒ²", 5, "ķƒ¹", 11, "ė§ė©ė«ė®ė°ė±ė“ėøėŽ€ėŽėŽƒėŽ„ėŽ…ėŽŒėŽėŽ”ėŽ ėŽ”ėŽØėŽ¬ė„ė…ėˆė‹ėŒėŽėė”ė•ė—ė™ė›ėė ė¤ėØė¼ėė˜ėœė ėØė©ė«ė“ė‘ė‘‘ė‘”ė‘˜ė‘ ė‘”ė‘£ė‘„ė‘¬ė’€ė’ˆė’ė’¤ė’Øė’¬ė’µė’·ė’¹ė“€ė“„ė“ˆė“ė“•ė“œė“ė“ ė“£ė“¤ė“¦ė“¬ė“­ė“Æė“±ė“øė””ė”•ė”˜ė”›ė”œė”¤ė”„ė”§ė”Øė”©ė”Ŗė”°ė”±ė”“ė”ø"], + ["b641", "ķ„…", 7, "ķ„Ž", 17], + ["b661", "ķ„ ", 15, "ķ„²ķ„³ķ„µķ„¶ķ„·ķ„¹ķ„»ķ„¼ķ„½ķ„¾"], + ["b681", "ķ„æķ…‚ķ…†", 5, "ķ…Žķ…ķ…‘ķ…’ķ…“ķ…•", 6, "ķ…žķ… ķ…¢", 5, "ķ…©ķ…Ŗķ…«ķ…­ė•€ė•ė•ƒė•„ė•…ė•‹ė•Œė•ė•ė•”ė•œė•ė•Ÿė• ė•”ė– ė–”ė–¤ė–Øė–Ŗė–«ė–°ė–±ė–³ė–“ė–µė–»ė–¼ė–½ė—€ė—„ė—Œė—ė—ė—ė—‘ė—˜ė—¬ė˜ė˜‘ė˜”ė˜˜ė˜„ė˜¬ė˜“ė™ˆė™¤ė™Øėšœėšėš ėš¤ėš«ėš¬ėš±ė›”ė›°ė›“ė›øėœ€ėœėœ…ėœØėœ©ėœ¬ėœÆėœ°ėœøėœ¹ėœ»ė„ėˆėŒė”ė•ė ė¤ėØė°ė±ė³ėµė¼ė½ėž€ėž„ėžŒėžėžėžėž‘ėž’ėž–ėž—"], + ["b741", "ķ…®", 13, "ķ…½", 6, "ķ†…ķ††ķ†‡ķ†‰ķ†Š"], + ["b761", "ķ†‹", 20, "ķ†¢ķ†£ķ†„ķ†¦ķ†§"], + ["b781", "ķ†©", 6, "ķ†²ķ†“ķ†¶ķ†·ķ†øķ†¹ķ†»ķ†½ķ†¾ķ†æķ‡", 14, "ėž˜ėž™ėžœėž ėžØėž©ėž«ėž¬ėž­ėž“ėžµėžøėŸ‡ėŸ‰ėŸ¬ėŸ­ėŸ°ėŸ“ėŸ¼ėŸ½ėŸæė €ė ė ‡ė ˆė ‰ė Œė ė ˜ė ™ė ›ė ė ¤ė „ė Øė ¬ė “ė µė ·ė øė ¹ė”€ė”„ė”‘ė”“ė”œė”ė” ė”¤ė”¬ė”­ė”Æė”±ė”øė”¼ė¢ė¢Øė¢°ė¢“ė¢øė£€ė£ė£ƒė£…ė£Œė£ė£”ė£ė£Ÿė£”ė£Øė£©ė£¬ė£°ė£øė£¹ė£»ė£½ė¤„ė¤˜ė¤ ė¤¼ė¤½ė„€ė„„ė„Œė„ė„‘ė„˜ė„™ė„œė„ ė„Øė„©"], + ["b841", "ķ‡", 7, "ķ‡™", 17], + ["b861", "ķ‡«", 8, "ķ‡µķ‡¶ķ‡·ķ‡¹", 13], + ["b881", "ķˆˆķˆŠ", 5, "ķˆ‘", 24, "ė„«ė„­ė„“ė„µė„øė„¼ė¦„ė¦…ė¦‡ė¦‰ė¦Šė¦ė¦Žė¦¬ė¦­ė¦°ė¦“ė¦¼ė¦½ė¦æė§ė§ˆė§‰ė§Œė§Ž", 4, "ė§˜ė§™ė§›ė§ė§žė§”ė§£ė§¤ė§„ė§Øė§¬ė§“ė§µė§·ė§øė§¹ė§ŗė؀ė؁ė؈ėؕėØøėعėؼė©€ė©‚ė©ˆė©‰ė©‹ė©ė©Žė©“ė©”ė©•ė©˜ė©œė©¤ė©„ė©§ė©Øė©©ė©°ė©±ė©“ė©øėŖƒėŖ„ėŖ…ėŖ‡ėŖŒėŖØėŖ©ėŖ«ėŖ¬ėŖ°ėŖ²ėŖøėŖ¹ėŖ»ėŖ½ė«„ė«ˆė«˜ė«™ė«¼"], + ["b941", "ķˆŖķˆ«ķˆ®ķˆÆķˆ±ķˆ²ķˆ³ķˆµ", 6, "ķˆ¾ķ‰€ķ‰‚", 5, "ķ‰‰ķ‰Šķ‰‹ķ‰Œ"], + ["b961", "ķ‰", 14, "ķ‰", 6, "ķ‰„ķ‰¦ķ‰§ķ‰Ø"], + ["b981", "ķ‰©", 22, "ķŠ‚ķŠƒķŠ…ķŠ†ķŠ‡ķŠ‰ķŠŠķŠ‹ķŠŒė¬€ė¬„ė¬ė¬ė¬‘ė¬˜ė¬œė¬ ė¬©ė¬«ė¬“ė¬µė¬¶ė¬øė¬»ė¬¼ė¬½ė¬¾ė­„ė­…ė­‡ė­‰ė­ė­ė­ė­”ė­˜ė­”ė­£ė­¬ė®ˆė®Œė®ė®¤ė®Øė®¬ė®“ė®·ėƀėƄėƈėƐėƓėÆøėƹėƼėÆæė°€ė°‚ė°ˆė°‰ė°‹ė°Œė°ė°ė°‘ė°”", 4, "ė°›", 4, "ė°¤ė°„ė°§ė°©ė°­ė°°ė°±ė°“ė°øė±€ė±ė±ƒė±„ė±…ė±‰ė±Œė±ė±ė±ė²„ė²…ė²ˆė²‹ė²Œė²Žė²”ė²•ė²—"], + ["ba41", "ķŠķŠŽķŠķŠ’ķŠ“ķŠ”ķŠ–", 5, "ķŠķŠžķŠŸķŠ”ķŠ¢ķŠ£ķŠ„", 6, "ķŠ­"], + ["ba61", "ķŠ®ķŠÆķŠ°ķŠ²", 5, "ķŠŗķŠ»ķŠ½ķŠ¾ķ‹ķ‹ƒ", 4, "ķ‹Šķ‹Œ", 5], + ["ba81", "ķ‹’ķ‹“ķ‹•ķ‹–ķ‹—ķ‹™ķ‹šķ‹›ķ‹", 6, "ķ‹¦", 9, "ķ‹²ķ‹³ķ‹µķ‹¶ķ‹·ķ‹¹ķ‹ŗė²™ė²šė² ė²”ė²¤ė²§ė²Øė²°ė²±ė²³ė²“ė²µė²¼ė²½ė³€ė³„ė³ė³ė³ė³‘ė³•ė³˜ė³œė³“ė³µė³¶ė³øė³¼ė“„ė“…ė“‡ė“‰ė“ė“”ė“¤ė“¬ėµ€ėµˆėµ‰ėµŒėµėµ˜ėµ™ėµ¤ėµØė¶€ė¶ė¶„ė¶‡ė¶ˆė¶‰ė¶Šė¶ė¶‘ė¶“ė¶•ė¶™ė¶šė¶œė¶¤ė¶°ė¶øė·”ė·•ė·˜ė·œė·©ė·°ė·“ė·øėø€ėøƒėø…ėøŒėøėøėø”ėøœėøėøŸė¹„ė¹…ė¹ˆė¹Œė¹Žė¹”ė¹•ė¹—ė¹™ė¹šė¹›ė¹ ė¹”ė¹¤"], + ["bb41", "ķ‹»", 4, "ķŒ‚ķŒ„ķŒ†", 5, "ķŒķŒ‘ķŒ’ķŒ“ķŒ•ķŒ—", 4, "ķŒžķŒ¢ķŒ£"], + ["bb61", "ķŒ¤ķŒ¦ķŒ§ķŒŖķŒ«ķŒ­ķŒ®ķŒÆķŒ±", 6, "ķŒŗķŒ¾", 5, "ķ†ķ‡ķˆķ‰"], + ["bb81", "ķŠ", 31, "ė¹Øė¹Ŗė¹°ė¹±ė¹³ė¹“ė¹µė¹»ė¹¼ė¹½ėŗ€ėŗ„ėŗŒėŗėŗėŗėŗ‘ėŗ˜ėŗ™ėŗØė»ė»‘ė»”ė»—ė»˜ė» ė»£ė»¤ė»„ė»¬ė¼ė¼ˆė¼‰ė¼˜ė¼™ė¼›ė¼œė¼ė½€ė½ė½„ė½ˆė½ė½‘ė½•ė¾”ė¾°ėæ…ėæŒėæėæėæ”ėæœėæŸėæ”ģ€¼ģ‘ģ˜ģœģ ģØģ©ģ‚ģ‚‘ģ‚”ģ‚˜ģ‚ ģ‚”ģ‚£ģ‚„ģ‚¬ģ‚­ģ‚Æģ‚°ģ‚³ģ‚“ģ‚µģ‚¶ģ‚¼ģ‚½ģ‚æģƒ€ģƒģƒ…ģƒˆģƒ‰ģƒŒģƒģƒ˜ģƒ™ģƒ›ģƒœģƒģƒ¤"], + ["bc41", "ķŖ", 17, "ķ¾ķæķŽķŽ‚ķŽƒķŽ…ķŽ†ķŽ‡"], + ["bc61", "ķŽˆķŽ‰ķŽŠķŽ‹ķŽŽķŽ’", 5, "ķŽšķŽ›ķŽķŽžķŽŸķŽ”", 6, "ķŽŖķŽ¬ķŽ®"], + ["bc81", "ķŽÆ", 4, "ķŽµķŽ¶ķŽ·ķŽ¹ķŽŗķŽ»ķŽ½", 6, "ķ†ķ‡ķŠ", 5, "ķ‘", 5, "ģƒ„ģƒØģƒ¬ģƒ“ģƒµģƒ·ģƒ¹ģ„€ģ„„ģ„ˆģ„ģ„•ģ„œ", 4, "ģ„£ģ„¤ģ„¦ģ„§ģ„¬ģ„­ģ„Æģ„°ģ„±ģ„¶ģ„øģ„¹ģ„¼ģ…€ģ…ˆģ…‰ģ…‹ģ…Œģ…ģ…”ģ…•ģ…˜ģ…œģ…¤ģ…„ģ…§ģ…Øģ…©ģ…°ģ…“ģ…øģ†…ģ†Œģ†ģ†Žģ†ģ†”ģ†–ģ†œģ†ģ†Ÿģ†”ģ†„ģ†Øģ†©ģ†¬ģ†°ģ†½ģ‡„ģ‡ˆģ‡Œģ‡”ģ‡—ģ‡˜ģ‡ ģ‡¤ģ‡Øģ‡°ģ‡±ģ‡³ģ‡¼ģ‡½ģˆ€ģˆ„ģˆŒģˆģˆģˆ‘ģˆ˜ģˆ™ģˆœģˆŸģˆ ģˆØģˆ©ģˆ«ģˆ­"], + ["bd41", "ķ—ķ™", 7, "ķ¢ķ¤", 7, "ķ®ķÆķ±ķ²ķ³ķµķ¶ķ·"], + ["bd61", "ķøķ¹ķŗķ»ķ¾ķ€ķ‚", 5, "ķ‰", 13], + ["bd81", "ķ—", 5, "ķž", 25, "ģˆÆģˆ±ģˆ²ģˆ“ģ‰ˆģ‰ģ‰‘ģ‰”ģ‰˜ģ‰ ģ‰„ģ‰¬ģ‰­ģ‰°ģ‰“ģ‰¼ģ‰½ģ‰æģŠģŠˆģŠ‰ģŠģŠ˜ģŠ›ģŠģŠ¤ģŠ„ģŠØģŠ¬ģŠ­ģŠ“ģŠµģŠ·ģŠ¹ģ‹œģ‹ģ‹ ģ‹£ģ‹¤ģ‹«ģ‹¬ģ‹­ģ‹Æģ‹±ģ‹¶ģ‹øģ‹¹ģ‹»ģ‹¼ģŒ€ģŒˆģŒ‰ģŒŒģŒģŒ“ģŒ”ģŒ•ģŒ˜ģŒœģŒ¤ģŒ„ģŒØģŒ©ģ…ģØģ©ģ¬ģ°ģ²ģøģ¹ģ¼ģ½ģŽ„ģŽˆģŽŒģ€ģ˜ģ™ģœģŸģ ģ¢ģØģ©ģ­ģ“ģµģøģˆģģ¤ģ¬ģ°"], + ["be41", "ķø", 7, "ķ‘ķ‘‚ķ‘ƒķ‘…", 14], + ["be61", "ķ‘”", 7, "ķ‘ķ‘žķ‘Ÿķ‘”ķ‘¢ķ‘£ķ‘„", 7, "ķ‘®ķ‘°ķ‘±ķ‘²"], + ["be81", "ķ‘³", 4, "ķ‘ŗķ‘»ķ‘½ķ‘¾ķ’ķ’ƒ", 4, "ķ’Šķ’Œķ’Ž", 5, "ķ’•", 8, "ģ“ģ¼ģ½ģ‘ˆģ‘¤ģ‘„ģ‘Øģ‘¬ģ‘“ģ‘µģ‘¹ģ’€ģ’”ģ’œģ’øģ’¼ģ“©ģ“°ģ“±ģ““ģ“øģ“ŗģ“æģ”€ģ”ģ”Œģ”ģ””ģ”œģ”Øģ”©ģ”¬ģ”°ģ”øģ”¹ģ”»ģ”½ģ•„ģ•…ģ•ˆģ•‰ģ•Šģ•Œģ•ģ•Žģ•“ģ•”ģ••ģ•—ģ•˜ģ•™ģ•ģ•žģ• ģ•”ģ•¤ģ•Øģ•°ģ•±ģ•³ģ•“ģ•µģ•¼ģ•½ģ–€ģ–„ģ–‡ģ–Œģ–ģ–ģ–‘ģ–•ģ–—ģ–˜ģ–œģ– ģ–©ģ–“ģ–µģ–øģ–¹ģ–»ģ–¼ģ–½ģ–¾ģ—„", 6, "ģ—Œģ—Ž"], + ["bf41", "ķ’ž", 10, "ķ’Ŗ", 14], + ["bf61", "ķ’¹", 18, "ķ“ķ“Žķ“ķ“‘ķ“’ķ““ķ“•"], + ["bf81", "ķ“–", 5, "ķ“ķ“žķ“ ", 7, "ķ“©ķ“Ŗķ“«ķ“­ķ“®ķ“Æķ“±", 6, "ķ“¹ķ“ŗķ“¼ģ—ģ—‘ģ—”ģ—˜ģ— ģ—”ģ—£ģ—„ģ—¬ģ—­ģ—®ģ—°ģ—“ģ—¶ģ—·ģ—¼", 5, "ģ˜…ģ˜†ģ˜‡ģ˜ˆģ˜Œģ˜ģ˜˜ģ˜™ģ˜›ģ˜œģ˜¤ģ˜„ģ˜Øģ˜¬ģ˜­ģ˜®ģ˜°ģ˜³ģ˜“ģ˜µģ˜·ģ˜¹ģ˜»ģ™€ģ™ģ™„ģ™ˆģ™ģ™‘ģ™“ģ™”ģ™•ģ™œģ™ģ™ ģ™¬ģ™Æģ™±ģ™øģ™¹ģ™¼ģš€ģšˆģš‰ģš‹ģšģš”ģš•ģš˜ģšœģš¤ģš„ģš§ģš©ģš°ģš±ģš“ģšøģš¹ģšŗģ›€ģ›ģ›ƒģ›…ģ›Œģ›ģ›ģ›”ģ›œģ›ģ› ģ›”ģ›Ø"], + ["c041", "ķ“¾", 5, "ķ”…ķ”†ķ”‡ķ”‰ķ”Šķ”‹ķ”", 6, "ķ”–ķ”˜", 5], + ["c061", "ķ”ž", 25], + ["c081", "ķ”øķ”¹ķ”ŗķ”»ķ”¾ķ”æķ•ķ•‚ķ•ƒķ•…", 6, "ķ•Žķ•ķ•’", 5, "ķ•šķ•›ķ•ķ•žķ•Ÿķ•”ķ•¢ķ•£ģ›©ģ›¬ģ›°ģ›øģ›¹ģ›½ģœ„ģœ…ģœˆģœŒģœ”ģœ•ģœ—ģœ™ģœ ģœ”ģœ¤ģœØģœ°ģœ±ģœ³ģœµģœ·ģœ¼ģœ½ģ€ģ„ģŠģŒģģģ‘", 7, "ģœģ ģØģ«ģ“ģµģøģ¼ģ½ģ¾ģžƒģž„ģž…ģž‡ģžˆģž‰ģžŠģžŽģžģž‘ģž”ģž–ģž—ģž˜ģžšģž ģž”ģž£ģž¤ģž„ģž¦ģž¬ģž­ģž°ģž“ģž¼ģž½ģžæģŸ€ģŸģŸˆģŸ‰ģŸŒģŸŽģŸģŸ˜ģŸģŸ¤ģŸØģŸ¬ģ €ģ ģ „ģ ˆģ Š"], + ["c141", "ķ•¤ķ•¦ķ•§ķ•Ŗķ•¬ķ•®", 5, "ķ•¶ķ•·ķ•¹ķ•ŗķ•»ķ•½", 6, "ķ–†ķ–Šķ–‹"], + ["c161", "ķ–Œķ–ķ–Žķ–ķ–‘", 19, "ķ–¦ķ–§"], + ["c181", "ķ–Ø", 31, "ģ ģ ‘ģ “ģ •ģ –ģ œģ ģ  ģ ¤ģ ¬ģ ­ģ Æģ ±ģ øģ ¼ģ”€ģ”ˆģ”‰ģ”Œģ”ģ””ģ”°ģ”±ģ”“ģ”øģ”ŗģ¢€ģ¢ģ¢ƒģ¢…ģ¢†ģ¢‡ģ¢‹ģ¢Œģ¢ģ¢”ģ¢ģ¢Ÿģ¢”ģ¢Øģ¢¼ģ¢½ģ£„ģ£ˆģ£Œģ£”ģ£•ģ£—ģ£™ģ£ ģ£”ģ£¤ģ£µģ£¼ģ£½ģ¤€ģ¤„ģ¤…ģ¤†ģ¤Œģ¤ģ¤ģ¤‘ģ¤˜ģ¤¬ģ¤“ģ„ģ„‘ģ„”ģ„˜ģ„ ģ„”ģ„£ģ„¬ģ„°ģ„“ģ„¼ģ¦ˆģ¦‰ģ¦Œģ¦ģ¦˜ģ¦™ģ¦›ģ¦ģ§€ģ§ģ§„ģ§‡ģ§ˆģ§Šģ§ģ§‘ģ§“"], + ["c241", "ķ—Šķ—‹ķ—ķ—Žķ—ķ—‘ķ—“", 4, "ķ—šķ—œķ—ž", 5, "ķ—¦ķ—§ķ—©ķ—Ŗķ—«ķ—­ķ—®"], + ["c261", "ķ—Æ", 4, "ķ—¶ķ—øķ—ŗ", 5, "ķ˜‚ķ˜ƒķ˜…ķ˜†ķ˜‡ķ˜‰", 6, "ķ˜’"], + ["c281", "ķ˜–", 5, "ķ˜ķ˜žķ˜Ÿķ˜”ķ˜¢ķ˜£ķ˜„", 7, "ķ˜®", 9, "ķ˜ŗķ˜»ģ§•ģ§–ģ§™ģ§šģ§œģ§ģ§ ģ§¢ģ§¤ģ§§ģ§¬ģ§­ģ§Æģ§°ģ§±ģ§øģ§¹ģ§¼ģ؀ģ؈ģ؉ģ؋ģ،ģ؍ģؔģؘģØ©ģ©Œģ©ģ©ģ©”ģ©œģ©ģ©Ÿģ© ģ©”ģ©Øģ©½ģŖ„ģŖ˜ģŖ¼ģŖ½ģ«€ģ«„ģ«Œģ«ģ«ģ«‘ģ«“ģ«˜ģ«™ģ« ģ«¬ģ«“ģ¬ˆģ¬ģ¬”ģ¬˜ģ¬ ģ¬”ģ­ģ­ˆģ­‰ģ­Œģ­ģ­˜ģ­™ģ­ģ­¤ģ­øģ­¹ģ®œģ®øģƔģƤģƧģÆ©ģ°Œģ°ģ°ģ°”ģ°œģ°ģ°”ģ°¢ģ°§ģ°Øģ°©ģ°¬ģ°®ģ°°ģ°øģ°¹ģ°»"], + ["c341", "ķ˜½ķ˜¾ķ˜æķ™ķ™‚ķ™ƒķ™„ķ™†ķ™‡ķ™Šķ™Œķ™Žķ™ķ™ķ™’ķ™“ķ™–ķ™—ķ™™ķ™šķ™›ķ™", 4], + ["c361", "ķ™¢", 4, "ķ™Øķ™Ŗ", 5, "ķ™²ķ™³ķ™µ", 11], + ["c381", "ķšķš‚ķš„ķš†", 5, "ķšŽķšķš‘ķš’ķš“ķš•", 7, "ķšžķš ķš¢", 5, "ķš©ķšŖģ°¼ģ°½ģ°¾ģ±„ģ±…ģ±ˆģ±Œģ±”ģ±•ģ±—ģ±˜ģ±™ģ± ģ±¤ģ±¦ģ±Øģ±°ģ±µģ²˜ģ²™ģ²œģ² ģ²Øģ²©ģ²«ģ²¬ģ²­ģ²“ģ²µģ²øģ²¼ģ³„ģ³…ģ³‡ģ³‰ģ³ģ³”ģ³¤ģ³¬ģ³°ģ“ģ“ˆģ“‰ģ“Œģ“ģ“˜ģ“™ģ“›ģ“ģ“¤ģ“Øģ“¬ģ“¹ģµœģµ ģµ¤ģµ¬ģµ­ģµÆģµ±ģµøģ¶ˆģ¶”ģ¶•ģ¶˜ģ¶œģ¶¤ģ¶„ģ¶§ģ¶©ģ¶°ģ·„ģ·Œģ·ģ·Øģ·¬ģ·°ģ·øģ·¹ģ·»ģ·½ģø„ģøˆģøŒģø”ģø™ģø ģø”ģø¤ģøØģø°ģø±ģø³ģøµ"], + ["c441", "ķš«ķš­ķš®ķšÆķš±", 7, "ķšŗķš¼", 7, "ķ›†ķ›‡ķ›‰ķ›Šķ›‹"], + ["c461", "ķ›ķ›Žķ›ķ›ķ›’ķ›“ķ›•ķ›–ķ›˜ķ›š", 5, "ķ›”ķ›¢ķ›£ķ›„ķ›¦ķ›§ķ›©", 4], + ["c481", "ķ›®ķ›Æķ›±ķ›²ķ›³ķ›“ķ›¶", 5, "ķ›¾ķ›æķœķœ‚ķœƒķœ…", 11, "ķœ’ķœ“ķœ”ģ¹˜ģ¹™ģ¹œģ¹Ÿģ¹ ģ¹”ģ¹Øģ¹©ģ¹«ģ¹­ģ¹“ģ¹µģ¹øģ¹¼ģŗ„ģŗ…ģŗ‡ģŗ‰ģŗģŗ‘ģŗ”ģŗ˜ģŗ ģŗ”ģŗ£ģŗ¤ģŗ„ģŗ¬ģŗ­ģ»ģ»¤ģ»„ģ»Øģ»«ģ»¬ģ»“ģ»µģ»·ģ»øģ»¹ģ¼€ģ¼ģ¼„ģ¼ˆģ¼ģ¼‘ģ¼“ģ¼•ģ¼œģ¼ ģ¼¤ģ¼¬ģ¼­ģ¼Æģ¼°ģ¼±ģ¼øģ½”ģ½•ģ½˜ģ½œģ½¤ģ½„ģ½§ģ½©ģ½°ģ½±ģ½“ģ½øģ¾€ģ¾…ģ¾Œģ¾”ģ¾Øģ¾°ģæ„ģæ ģæ”ģæ¤ģæØģæ°ģæ±ģæ³ģæµģæ¼ķ€€ķ€„ķ€‘ķ€˜ķ€­ķ€“ķ€µķ€øķ€¼"], + ["c541", "ķœ•ķœ–ķœ—ķœšķœ›ķœķœžķœŸķœ”", 6, "ķœŖķœ¬ķœ®", 5, "ķœ¶ķœ·ķœ¹"], + ["c561", "ķœŗķœ»ķœ½", 6, "ķ…ķ†ķˆķŠ", 5, "ķ’ķ“ķ•ķš", 4], + ["c581", "ķŸķ¢ķ¤ķ¦ķ§ķØķŖķ«ķ­ķ®ķÆķ±ķ²ķ³ķµ", 6, "ķ¾ķæķž€ķž‚", 5, "ķžŠķž‹ķ„ķ…ķ‡ķ‰ķķ”ķ˜ķ ķ¬ķ­ķ°ķ“ķ¼ķ½ķ‚ķ‚¤ķ‚„ķ‚Øķ‚¬ķ‚“ķ‚µķ‚·ķ‚¹ķƒ€ķƒķƒ„ķƒˆķƒ‰ķƒķƒ‘ķƒ“ķƒ”ķƒ•ķƒœķƒķƒ ķƒ¤ķƒ¬ķƒ­ķƒÆķƒ°ķƒ±ķƒøķ„ķ„°ķ„±ķ„“ķ„øķ„ŗķ…€ķ…ķ…ƒķ…„ķ……ķ…Œķ…ķ…ķ…”ķ…œķ…ķ…Ÿķ…”ķ…Øķ…¬ķ…¼ķ†„ķ†ˆķ† ķ†”ķ†¤ķ†Øķ†°ķ†±ķ†³ķ†µķ†ŗķ†¼ķ‡€ķ‡˜ķ‡“ķ‡øķˆ‡ķˆ‰ķˆķˆ¬ķˆ­ķˆ°ķˆ“ķˆ¼ķˆ½ķˆæķ‰ķ‰ˆķ‰œ"], + ["c641", "ķžķžŽķžķž‘", 6, "ķžšķžœķžž", 5], + ["c6a1", "ķ‰¤ķŠ€ķŠķŠ„ķŠˆķŠķŠ‘ķŠ•ķŠœķŠ ķŠ¤ķŠ¬ķŠ±ķŠøķŠ¹ķŠ¼ķŠæķ‹€ķ‹‚ķ‹ˆķ‹‰ķ‹‹ķ‹”ķ‹˜ķ‹œķ‹¤ķ‹„ķ‹°ķ‹±ķ‹“ķ‹øķŒ€ķŒķŒƒķŒ…ķŒŒķŒķŒŽķŒķŒ”ķŒ–ķŒœķŒķŒŸķŒ ķŒ”ķŒ„ķŒØķŒ©ķŒ¬ķŒ°ķŒøķŒ¹ķŒ»ķŒ¼ķŒ½ķ„ķ…ķ¼ķ½ķŽ€ķŽ„ķŽŒķŽķŽķŽķŽ‘ķŽ˜ķŽ™ķŽœķŽ ķŽØķŽ©ķŽ«ķŽ­ķŽ“ķŽøķŽ¼ķ„ķ…ķˆķ‰ķķ˜ķ”ķ£ķ¬ķ­ķ°ķ“ķ¼ķ½ķæķ"], + ["c7a1", "ķˆķķ‘€ķ‘„ķ‘œķ‘ ķ‘¤ķ‘­ķ‘Æķ‘øķ‘¹ķ‘¼ķ‘æķ’€ķ’‚ķ’ˆķ’‰ķ’‹ķ’ķ’”ķ’©ķ“Œķ“ķ“”ķ“œķ“Ÿķ“Øķ“¬ķ“°ķ“øķ“»ķ“½ķ”„ķ”ˆķ”Œķ””ķ”•ķ”—ķ”¼ķ”½ķ•€ķ•„ķ•Œķ•ķ•ķ•‘ķ•˜ķ•™ķ•œķ• ķ•„ķ•Øķ•©ķ•«ķ•­ķ•“ķ•µķ•øķ•¼ķ–„ķ–…ķ–‡ķ–ˆķ–‰ķ–ķ–„ķ—ˆķ—‰ķ—Œķ—ķ—’ķ—˜ķ—™ķ—›ķ—ķ—¤ķ—„ķ—Øķ—¬ķ—“ķ—µķ—·ķ—¹ķ˜€ķ˜ķ˜„ķ˜ˆķ˜ķ˜‘ķ˜“ķ˜”ķ˜•ķ˜œķ˜ "], + ["c8a1", "ķ˜¤ķ˜­ķ˜øķ˜¹ķ˜¼ķ™€ķ™…ķ™ˆķ™‰ķ™‹ķ™ķ™‘ķ™”ķ™•ķ™˜ķ™œķ™§ķ™©ķ™°ķ™±ķ™“ķšƒķš…ķšŒķšķšķš”ķšķšŸķš”ķšØķš¬ķš°ķš¹ķš»ķ›„ķ›…ķ›ˆķ›Œķ›‘ķ›”ķ›—ķ›™ķ› ķ›¤ķ›Øķ›°ķ›µķ›¼ķ›½ķœ€ķœ„ķœ‘ķœ˜ķœ™ķœœķœ ķœØķœ©ķœ«ķœ­ķœ“ķœµķœøķœ¼ķ„ķ‡ķ‰ķķ‘ķ”ķ–ķ—ķ˜ķ™ķ ķ”ķ£ķ„ķ©ķ¬ķ°ķ“ķ¼ķ½ķžķžˆķž‰ķžŒķžķž˜ķž™ķž›ķž"], + ["caa1", "伽佳假價加åÆå‘µå“„å˜‰å«å®¶ęš‡ęž¶ęž·ęŸÆꭌē‚ē—‚ēØ¼č‹›čŒ„č”—č¢ˆčØ¶č³ˆč·č»»čæ¦é§•åˆ»å“各ęŖę…¤ę®¼ēč„šč¦ŗč§’é–£ä¾ƒåˆŠå¢¾å„øå§¦å¹²å¹¹ę‡‡ę€ę†ęŸ¬ę”æę¾—ē™Žēœ‹ē£µē؈ē«æē°”č‚č‰®č‰±č««é–“ä¹«å–ę›·ęø“ē¢£ē«­č‘›č¤čŽéžØ勘坎å ŖåµŒę„Ÿę†¾ęˆ”ę•¢ęŸ‘ę©„ęø›ē”˜ē–³ē›£ēž°ē“ŗé‚Æ鑑鑒龕"], + ["cba1", "匣岬ē”²čƒ›é‰€é–˜å‰›å ˆå§œå²”å“—åŗ·å¼ŗå½Šę…·ę±Ÿē•ŗē–†ē³ ēµ³ē¶±ē¾Œč…”čˆ”č–‘č„č¬›é‹¼é™é±‡ä»‹ä»·å€‹å‡±å”ę„·ę„¾ę…Øę”¹ę§Ŗę¼‘ē–„ēš†ē›–ē®‡čŠ„蓋ļ¤€éŽ§é–‹å–€å®¢å‘ļ¤ē²³ē¾¹é†µå€Ø去居å·Øę‹’ę®ę“šę“§ęø ē‚¬ē„›č·čøžļ¤‚遽鉅é‹ø乾件偄巾å»ŗę„†ę„—č…±č™”č¹‡éµéØ«ä¹žå‚‘ę°ę”€å„‰åŠåŠ’ęŖ¢"], + ["cca1", "ēž¼éˆé»”劫ę€Æčæ²åˆę†©ę­ę“Šę ¼ęŖ„ęæ€č†ˆč¦”隔堅ē‰½ēŠ¬ē”„ēµ¹ē¹­č‚©č¦‹č­“é£éµ‘ęŠ‰ę±ŗę½”ēµē¼ŗčØ£å…¼ę…Šē®č¬™é‰—鎌äŗ¬äæ“倞傾儆勁勍åæ坰境åŗšå¾‘ꅶꆬ꓎ꕬę™Æęš»ę›“ę¢—ę¶‡ē‚…ēƒ±ē’Ÿē’„ē“Šē—™ē”¬ē£¬ē«Ÿē«¶ēµ…ē¶“耕č€æč„›čŽ–č­¦č¼•é€•é”é ƒé ø驚éÆØäæ‚å•“å ŗ儑季屆ę‚øęˆ’ę”‚ę¢°"], + ["cda1", "ę£ØęŗŖē•Œē™øē£Žēؽē³»ē¹«ē¹¼č؈čŖ”č°æ階鷄古叩告呱å›ŗ姑孤尻åŗ«ę‹·ę”·ę•…ę•²ęš ęžÆę§ę²½ē—¼ēšē¾ēØæē¾”č€ƒč‚”č†č‹¦č‹½č°č—č ±č¢“čŖ„ļ¤ƒč¾œéŒ®é›‡é”§é«˜é¼“å“­ę–›ę›²ę¢ē©€č°·éµ å›°å¤å“‘ę˜†ę¢±ę£ę»¾ēØč¢žéƤę±Øļ¤„éŖØä¾›å…¬å…±åŠŸå­”å·„ęę­ę‹±ęŽ§ę”»ē™ē©ŗčš£č²¢éžäø²åÆ”ęˆˆęžœē“œ"], + ["cea1", "ē§‘č“čŖ‡čŖ²č·Ø過鍋锆廓ę§Øč—æ郭ļ¤…冠官åÆ¬ę…£ę£ŗę¬¾ēŒēÆē“˜ē®”ē½č…č§€č²«é—œé¤Øåˆ®ęę‹¬é€‚ä¾Šå…‰åŒ”å£™å»£ę› ę“øē‚šē‹‚ē–ē­čƒ±é‘›å¦ęŽ›ē½«ä¹–傀唊壞ę€Ŗę„§ę‹ę§é­å®ē“˜č‚±č½Ÿäŗ¤åƒ‘咬喬嬌嶠巧ę”Ŗꕎꠔꩋē‹”ēšŽēŸÆēµžēæ¹č† č•Žč›Ÿč¼ƒč½ŽéƒŠé¤ƒé©•é®«äø˜ä¹…九仇äæ±å…·å‹¾"], + ["cfa1", "區口叄咎嘔坵垢åÆ‡å¶‡å»ę‡¼ę‹˜ę•‘ęžøęŸ©ę§‹ę­ęƆęÆ¬ę±‚ęŗēøē‹—ēŽ–ēƒēžæēŸ©ē©¶ēµæč€‰č‡¼čˆ…čˆŠč‹Ÿč”¢č¬³č³¼č»€é€‘é‚±é‰¤éŠ¶é§’é©…é³©é·—é¾œåœ‹å±€čŠéž éž«éŗ“君ēŖ˜ē¾¤č£™č»éƒ”å €å±ˆęŽ˜ēŖŸå®®å¼“ē©¹ēŖ®čŠŽčŗ¬å€¦åˆøå‹øå·åœˆę‹³ę²ę¬Šę·ƒēœ·åŽ„ē—č•Øč¹¶é—•ęœŗę«ƒę½°č©­č»Œé„‹ļ¤†ę™·ę­øč²“"], + ["d0a1", "鬼ļ¤‡å«åœ­å„Žę†ę§»ēŖē”…ēŖŗē«…ē³¾č‘µč¦čµ³é€µé–Ø勻均ē•‡ē­ čŒéˆžļ¤ˆę©˜å…‹å‰‹åŠ‡ęˆŸę£˜ę„µéš™åƒ…åŠ¤å‹¤ę‡ƒę–¤ę ¹ę§æē‘¾ē­‹čŠ¹č«č¦²č¬¹čæ‘鄉ļ¤‰ä»Šå¦—ę“’ę˜‘ęŖŽē“ē¦ē¦½čŠ©č”¾č”æč„Ÿļ¤ŠéŒ¦ä¼‹åŠę€„ę‰±ę±²ē“šēµ¦äŗ˜å…¢ēŸœč‚Æ企伎其冀嗜å™Ø圻åŸŗ埼夔儇妓åƄ岐哎己幾åæŒęŠ€ę——ę—£"], + ["d1a1", "ęœžęœŸęžę£‹ę£„ę©Ÿę¬ŗę°£ę±½ę²‚ę·‡ēŽ˜ē¦ēŖē’‚ē’£ē•øē•æē¢ē£Æē„ē„‡ē„ˆē„ŗē®•ē“€ē¶ŗē¾ˆč€†č€­č‚ŒčØ˜č­č±ˆčµ·éŒ”éŒ¤é£¢é„‘é؎é؏驄éŗ’ē·Šä½¶å‰ę‹®ę””金喫å„ŗļ¤‹ļ¤ŒåØœę‡¦ļ¤ę‹ę‹æļ¤Ž", 5, "那ļ¤”", 4, "č«¾ļ¤™ļ¤šļ¤›ļ¤œęš–ļ¤ē…–ļ¤žļ¤Ÿé›£ļ¤ ęęŗ南ļ¤”ęžę„ ę¹³ļ¤¢ē”·ļ¤£ļ¤¤ļ¤„"], + ["d2a1", "ē“ļ¤¦ļ¤§č”²å›Šåؘļ¤Ø", 4, "乃ļ¤­å…§å„ˆęŸ°č€ļ¤®å„³å¹“꒚ē§Šåæµę¬ę‹ˆę»åƧåƗåŠŖļ¤Æå„“å¼©ę€’ļ¤°ļ¤±ļ¤²ē‘™ļ¤³", 5, "駑ļ¤¹", 10, "ęæƒļ„„ļ„…č†æč¾²ęƒ±ļ„†ļ„‡č…¦ļ„ˆļ„‰å°æļ„Š", 7, "å«©čØ„ę»ē“ļ„’", 5, "čƒ½ļ„˜ļ„™å°¼ę³„åŒæęŗŗå¤ščŒ¶"], + ["d3a1", "äø¹äŗ¶ä½†å–®åœ˜å£‡å½–ę–·ę—¦ęŖ€ę®µę¹ēŸ­ē«Æē°žē·žč›‹č¢’é„²é›ę’»ę¾¾ēŗē–ø達啖坍ę†ŗę“”ę›‡ę·”ę¹›ę½­ę¾¹ē—°čƒč†½č•č¦ƒč«‡č­šéŒŸę²“ē•“ē­”čøéå”å ‚å”˜å¹¢ęˆ‡ę’žę£ ē•¶ē³–čž³é»Ø代垈坮大對岱åø¶å¾…ęˆ“ę“”ēŽ³č‡ŗč¢‹č²øéšŠé»›å®…å¾·ę‚³å€’åˆ€åˆ°åœ–å µå”—å°Žå± å³¶å¶‹åŗ¦å¾’ę‚¼ęŒ‘ęŽ‰ę—ę”ƒ"], + ["d4a1", "ę£¹ę«‚ę·˜ęø”ę»”ęæ¤ē‡¾ē›œē¹ē¦±ēØ»č„č¦©č³­č·³č¹ˆé€ƒé€”é“éƒ½éé™¶éŸœęƒē€†ē‰˜ēŠ¢ēØē£ē¦æēƤēŗ›č®€å¢©ęƒ‡ę•¦ę—½ęš¾ę²Œē„žē‡‰č±šé “ä¹­ēŖä»å†¬å‡å‹•åŒę†§ę±ę”ę£Ÿę“žę½¼ē–¼ēž³ē«„čƒ“č‘£éŠ…å…œę–—ęœęž“ē—˜ē«‡č³ļ„šč±†é€—é ­å±Æ臀芚遁éÆéˆå¾—å¶ę©™ē‡ˆē™»ē­‰č—¤č¬„鄧éØ°å–‡ę‡¶ļ„›ē™©ē¾…"], + ["d5a1", "č˜æčžŗč£ø邏ļ„œę“›ēƒ™ēžēµ”č½ļ„é…Ŗ駱ļ„žäŗ‚åµę¬„ę¬’ē€¾ēˆ›č˜­éøžå‰Œč¾£åµę“„ꔬꬖęæ«ē±ƒēŗœč—č„¤č¦½ę‹‰č‡˜č Ÿå»Šęœ—ęµŖē‹¼ē…ē‘Æčž‚éƒžä¾†å“å¾ čŠå†·ęŽ ē•„äŗ®å€†å…©å‡‰ę¢ęؑē²®ē²±ē³§č‰Æč«’č¼›é‡ä¾¶å„·å‹µå‘‚å»¬ę…®ęˆ¾ę—…ę«šęæ¾ē¤Ŗč—œč £é–­é©¢é©Ŗéŗ—é»ŽåŠ›ę›†ę­·ē€ē¤«č½¢é‚ę†ęˆ€ę”£ę¼£"], + ["d6a1", "ē…‰ē’‰ē·“čÆč“®č¼¦é€£éŠå†½åˆ—åŠ£ę“Œēƒˆč£‚å»‰ę–‚ę®®ęæ‚ē°¾ēµä»¤ä¼¶å›¹ļ„Ÿå²ŗå¶ŗꀜēŽ²ē¬­ē¾šēæŽč†é€žéˆ“é›¶éˆé ˜é½”ä¾‹ę¾§ē¦®é†“隷勞ļ„ ę’ˆę“„ę«“ę½žē€˜ēˆē›§č€č˜†č™œč·Æč¼…éœ²é­Æé·ŗé¹µē¢Œē„æē¶ č‰éŒ„é¹æéŗ“č«–å£Ÿå¼„ęœ§ē€§ē“ē± č¾å„”ē€Øē‰¢ē£Šč³‚č³šč³“雷äŗ†åƒšåÆ®å»–ę–™ē‡Žē™‚ēž­čŠč“¼"], + ["d7a1", "遼鬧龍壘婁屢ęØ“ę·šę¼ē˜»ē“Æēø·č”žč¤øé¤é™‹åŠ‰ę—’ęŸ³ę¦“ęµęŗœē€ē‰ē‘ ē•™ē˜¤ē”«č¬¬é”žå…­ęˆ®é™ø侖倫哙ę·Ŗē¶øč¼Ŗå¾‹ę…„ę —ļ„”éš†å‹’č‚‹å‡œå‡Œę„žē؜ē¶¾č±é™µäæšåˆ©åŽ˜åå”Žå±„ꂧꝎę¢Ø구ēŠē‹øē†ē’ƒļ„¢ē—¢ē±¬ē½¹ē¾øčŽ‰č£č£”é‡Œé‡é›¢éÆ‰åę½¾ē‡ē’˜č—ŗčŗŖ隣鱗éŗŸęž—ę·‹ē³č‡Ø霖ē ¬"], + ["d8a1", "ē«‹ē¬ ē²’ę‘©ē‘Ŗē—²ē¢¼ē£Ø馬魔éŗ»åÆžå¹•ę¼ č†œčŽ«é‚ˆäø‡ååØ©å·’å½Žę…¢ęŒ½ę™©ę›¼ę»æę¼«ē£ēžžč¬č”“č »č¼“é„…é°»å”œęŠ¹ęœ«ę²«čŒ‰č„Ŗéŗäŗ”妄åæ˜åæ™ęœ›ē¶²ē½”čŠ’čŒ«čŽ½č¼žé‚™åŸ‹å¦¹åŖ’åÆę˜§ęžšę¢…ęƏē…¤ē½µč²·č³£é‚é­…č„ˆč²Šé™Œé©€éŗ„å­Ÿę°“ēŒ›ē›²ē›ŸčŒå†Ŗč¦“å…å†•å‹‰ę£‰ę²”ēœ„ēœ ē¶æē·¬é¢éŗµę»…"], + ["d9a1", "č”‘å†„åå‘½ę˜Žęšę¤§ęŗŸēšæēž‘čŒ—č“‚čžŸé…©éŠ˜é³“č¢‚ä¾®å†’å‹Ÿå§†åø½ę…•ę‘øę‘¹ęš®ęŸęØ”ęƍęƛē‰Ÿē‰”ē‘ēœøēŸ›č€—čŠ¼čŒ…č¬€č¬Øč²ŒęœØę²ē‰§ē›®ē¦ē©†é¶©ę­æę²’å¤¢ęœ¦č’™åÆå¢“å¦™å»Ÿęę˜“ę³ęøŗēŒ«ē«—č‹—éŒØå‹™å·«ę†®ę‡‹ęˆŠę‹‡ę’«ę— ę„™ę­¦ęƋē„”ē·ē•ē¹†čˆžčŒ‚č•ŖčŖ£č²æ霧鵔å¢Øé»˜å€‘åˆŽå»å•ę–‡"], + ["daa1", "걶ē“Šē“‹čžčšŠé–€é›Æå‹æę²•ē‰©å‘³åŖšå°¾åµ‹å½Œå¾®ęœŖę¢¶ę„£ęø¼ę¹„ēœ‰ē±³ē¾Žč–‡č¬Žčæ·é”é»“å²·ę‚¶ę„ę†«ę•ę—»ę—¼ę°‘ę³ÆēŽŸē‰ē·”閔åÆ†čœœč¬å‰åšę‹ęę’²ęœ“ęØøę³Šē€ē’žē®”ē²•ēø›č†Ščˆ¶č–„čæ«é›¹é§ä¼“åŠåå›ę‹Œę¬ę”€ę–‘ę§ƒę³®ę½˜ē­ē•”ē˜¢ē›¤ē›¼ē£ē£»ē¤¬ēµ†čˆ¬čŸ čæ”é ’é£Æå‹ƒę‹”ę’„ęø¤ę½‘"], + ["dba1", "ē™¼č·‹é†±é‰¢é«®é­ƒå€£å‚åŠå¦Øå°Ø幇彷ęˆæę”¾ę–¹ę—ę˜‰ęž‹ę¦œę»‚ē£…ē“”č‚Ŗč†€čˆ«čŠ³č’”čšŒčØŖč¬—é‚¦é˜²é¾å€äæ³ļ„£åŸ¹å¾˜ę‹œęŽ’ęÆę¹ƒē„™ē›ƒčƒŒčƒšč£“č£µč¤™č³ č¼©é…é™Ŗä¼Æä½°åø›ęŸę ¢ē™½ē™¾é­„å¹”ę؊ē…©ē‡”ē•Ŗļ„¤ē¹č•ƒč—©é£œä¼ē­ē½°é–„凔åø†ę¢µę°¾ę±Žę³›ēŠÆēÆ„čŒƒę³•ēŗåƒ»åŠˆå£ę“˜ęŖ—ē’§ē™–"], + ["dca1", "ē¢§č˜—闢霹ļ„„åžå¼č®Šč¾Øč¾Æ邊刄ēž„鱉鼈äø™å€‚å…µå±›å¹·ę˜žę˜ŗęŸ„ę£…ē‚³ē”ē—…ē§‰ē«č¼§é¤ é؈äæå ”å ±åÆ¶ę™®ę­„ę“‘ę¹ŗę½½ē¤ē”«č©č£œč¤“č­œč¼”ä¼åƒ•åŒåœå®“å¾©ęœē¦č…¹čŒÆč””č¤‡č¦†č¼¹č¼»é¦„é°’ęœ¬ä¹¶äæø儉封å³Æå³°ę§ę£’ēƒ½ē†¢ē«ēø«č“¬čœ‚逢鋒鳳äøä»˜äæÆ傅剖å‰Æ否咐埠夫婦"], + ["dda1", "孚孵åƌåŗœļ„¦ę‰¶ę•·ę–§ęµ®ęŗ„ēˆ¶ē¬¦ē°æē¼¶č…č…‘膚艀芙莩čØƒč² č³¦č³»čµ“č¶ŗéƒØ釜阜附駙鳧北分吩噓墳儔儮åææę†¤ę‰®ę˜ę±¾ē„šē›†ē²‰ē³žē“›čŠ¬č³é›°ļ„§ä½›å¼—å½æę‹‚å“©ęœ‹ę£šē”¼ē¹ƒéµ¬äø•å‚™åŒ•åŒŖ卑妃婢åŗ‡ę‚²ę†Šę‰‰ę‰¹ę–ęž‡ę¦§ęƔęƖęƗęƘę²øļ„Øēµē—ŗē ’ē¢‘ē§•ē§˜ē²ƒē·‹ēæ”č‚„"], + ["dea1", "č„¾č‡‚č²čœšč£ØčŖ¹č­¬č²»é„™éžé£›é¼»åš¬å¬Ŗå½¬ę–ŒęŖ³ę®Æęµœęæ±ē€•ē‰ēŽ­č²§č³“é »ę†‘ę°·č˜é؁乍äŗ‹äŗ›ä»•ä¼ŗä¼¼ä½æäæŸåƒæ史åø唆嗣四士儢åؑåÆ«åÆŗ射巳åø«å¾™ę€ęØꖜę–ÆęŸ¶ęŸ»ę¢­ę­»ę²™ę³—ęø£ē€‰ē…ē ‚ē¤¾ē„€ē„ ē§ēÆ©ē“—ēµ²č‚†čˆčŽŽč“‘č›‡č£Ÿč©č©žč¬č³œčµ¦č¾­é‚Ŗ飼駟éŗå‰Šļ„©ęœ”ļ„Ŗ"], + ["dfa1", "傘åˆŖå±±ę•£ę±•ēŠē”£ē–ē®—č’œé…øéœ°ä¹·ę’’ę®ŗē…žč–©äø‰ļ„«ę‰ę£®ęø—čŠŸč”˜č”«ę·ę¾éˆ’é¢ÆäøŠå‚·åƒå„Ÿå•†å–Ŗ嘗孀尙峠åøøåŗŠåŗ å»‚ęƒ³ę”‘ę©”ę¹˜ēˆ½ē‰€ē‹€ē›øē„„ē®±ēæ”č£³č§“č©³č±”č³žéœœå”žē’½č³½å—‡ļ„¬ē©”ē“¢č‰²ē‰²ē”Ÿē”„ļ„­ē¬™å¢…壻嶼åŗåŗ¶å¾ę•ęŠ’ęæꕍꚑꛙę›øę –ę£²ēŠ€ē‘žē­®ēµ®ē·–ē½²"], + ["e0a1", "čƒ„čˆ’č–Æč„æčŖ“逝鋤黍鼠夕儭åø­ęƒœę˜”ę™³ęžę±ę·…ę½ŸēŸ³ē¢©č“†é‡‹éŒ«ä»™åƒŠå…ˆå–„å¬‹å®£ę‰‡ę•¾ę—‹ęø²ē…½ēē‘„ē’‡ē’æē™¬ē¦Ŗē·šē¹•ē¾Øč…ŗč†³čˆ¹č˜ščŸ¬č©µč·£éø銑鐄鄍鮮åØå±‘ę„”ę³„ę“©ęø«čˆŒč–›č¤»čØ­čŖŖé›Ŗé½§å‰”ęš¹ę®²ēŗ–čŸ¾č“é–ƒé™ę”ę¶‰ē‡®ļ„®åŸŽå§“å®¬ę€§ęƒŗꈐꘟꙟēŒ©ē¹ē››ēœē­¬"], + ["e1a1", "č–č²č…„čŖ é†’äø–å‹¢ę­²ę“—ē؅ē¬¹ē“°ļ„Æč²°å¬å˜Æå”‘å®µå°å°‘å·¢ę‰€ęŽƒę”ę˜­ę¢³ę²¼ę¶ˆęŗÆē€Ÿē‚¤ē‡’ē”¦ē–ē–Žē˜™ē¬‘ēÆ ē°«ē“ ē“¹č”¬č•­č˜‡čؓ逍達邵銷韶éØ·äæ—å±¬ęŸę¶‘ē²ŸēŗŒč¬–č“–é€Ÿå­«å·½ęč“€éœé£”ēŽ‡å®‹ę‚šę¾ę·žč؟čŖ¦é€é Œåˆ·ļ„°ē‘ē¢ŽéŽ–蔰釗äæ®å—嗽囚垂壽嫂守岫峀åø„ꄁ"], + ["e2a1", "ęˆę‰‹ęŽˆęœę”¶ę•øęØ¹ę®Šę°“ę“™ę¼±ē‡§ē‹©ēøē‡ē’²ē˜¦ē”ē§€ē©—ē«Ŗē²¹ē¶ē¶¬ē¹”ē¾žč„©čŒ±č’č“šč—Ŗč¢–čŖ°č®č¼ø遂邃酬銖銹隋隧éšØ雖需須首髓鬚叔唾夙孰å®æę·‘ę½šē†Ÿē”ē’¹č‚…č½å·”徇å¾Ŗꁂꗬꠒę„Æę©“ę®‰ę“µę·³ē£ē›¾ēž¬ē­ē“”č„£čˆœč€č““č•£č©¢č«„é†‡éŒžé †é¦“ęˆŒč”“čæ°é‰„哇哧"], + ["e3a1", "嵩ē‘Ÿč†čØęæ•ę‹¾ēæ’č¤¶č„²äøžä¹˜åƒ§å‹å‡ę‰æꘇē¹©č …陞侍匙嘶始åŖ¤å°ø屎屍åø‚å¼‘ęƒę–½ę˜Æę™‚ęž¾ęŸ“ēŒœēŸ¢ē¤ŗēæ…č’”č“č¦–č©¦č©©č«”豕č±ŗ埓åƔ式ęÆę‹­ę¤ę®–ę¹œē†„ēÆ’č•č­˜č»¾é£Ÿé£¾ä¼ø侁äæ”呻åØ å®øę„¼ę–°ę™Øē‡¼ē”³ē„žē“³č…Žč‡£čŽ˜č–Ŗ藎蜃č؊čŗ«č¾›ļ„±čæ…失室åÆ¦ę‚‰åƩ尋åæƒę²"], + ["e4a1", "ļ„²ę·±ē€‹ē”ščŠÆč«¶ä»€åļ„³é›™ę°äŗžäæ„å…’å•žåØ„å³Øꈑē‰™čŠ½čŽŖč›¾č”™č؝é˜æé›…é¤“é“‰éµå Šå²³å¶½å¹„ęƒ”ę„•ę”ę؂ęø„鄂鍔锎鰐齷安å²øęŒ‰ę™ę”ˆēœ¼é›éžé””é®Ÿę–”č¬č»‹é–¼å”µå²©å·–åŗµęš—ē™Œč“é—‡å£“ęŠ¼ē‹Žé“Øä»°å¤®ę€ę˜»ę®ƒē§§é“¦åŽ“å“€åŸƒå“–ę„›ę›–ę¶Æē¢č‰¾éš˜é„åŽ„ę‰¼ęŽ–ę¶²ēøŠč…‹é”"], + ["e5a1", "ę«»ē½Œé¶Æéøšä¹Ÿå€»å†¶å¤œęƒ¹ę¶ę¤°ēˆŗ耶ļ„“野弱ļ„µļ„¶ē“„č‹„č‘Æ蒻藄čŗļ„·ä½Æļ„øļ„¹å£¤å­ƒę™ęšę”˜ę•­ęš˜ļ„ŗę„ŠęØ£ę“‹ē€ē…¬ē—’ē˜ē¦³ē©°ļ„»ē¾Šļ„¼č„„ļ„½č®“釀陽ļ„¾é¤Šåœ„å¾”ę–¼ę¼ē˜€ē¦¦čŖžé¦­é­šé½¬å„„ꆶꊑęŖč‡†åƒå °å½¦ē„‰č؀č«ŗå­¼č˜–äæŗå„¼åš“å„„ęŽ©ę·¹å¶Ŗę„­å††äŗˆä½™ļ„æļ¦€ļ¦å¦‚ļ¦‚"], + ["e6a1", "ļ¦ƒę­Ÿę±ļ¦„ē’µē¤–ļ¦…čˆ‡č‰…čŒ¹č¼æč½ļ¦†é¤˜ļ¦‡ļ¦ˆļ¦‰äŗ¦ļ¦ŠåŸŸå½¹ę˜“ļ¦‹ļ¦Œē–«ē¹¹č­Æļ¦é€†é©›åš„å §å§øå؟宓ļ¦Žå»¶ļ¦ļ¦ęęŒ»ļ¦‘ę¤½ę²‡ę²æę¶Žę¶“ę·µę¼”ļ¦’ēƒŸē„¶ē…™ļ¦“ē‡ƒē‡•ļ¦”ē”ē”Æļ¦•ē­µē·£ļ¦–ēøÆļ¦—č”č»Ÿļ¦˜ļ¦™ļ¦šé‰›ļ¦›é³¶ļ¦œļ¦ļ¦žę‚…궅ļ¦Ÿē†±ļ¦ ļ¦”閱厭ļ¦¢ļ¦£ļ¦¤ęŸ“ļ¦„ē‚Žē„°ē°č‰¶č‹’"], + ["e7a1", "ļ¦¦é–»é«„é¹½ę›„ļ¦§ē‡č‘‰ļ¦Øļ¦©å”‹ļ¦Ŗļ¦«å¶øå½±ļ¦¬ę˜ ęšŽę„¹ę¦®ę°øę³³ęø¶ę½ęæšē€›ē€Æē…ē‡Ÿē°ļ¦­ē‘›ļ¦®ē“”ē›ˆē©Žēŗ“ļ¦Æļ¦°č‹±č© čæŽļ¦±éˆļ¦²éœ™ļ¦³ļ¦“乂å€Ŗļ¦µåˆˆå”ę›³ę±­ęæŠēŒŠēæē©¢čŠ®č—č˜‚ļ¦¶č£”č©£č­½č±«ļ¦·éŠ³ļ¦ø霓預äŗ”伍äæ‰å‚²åˆå¾å³å—šå”¢å¢ŗ儧å؛åÆ¤ę‚Ÿļ¦¹ę‡Šę•–ę—æę™¤ę¢§ę±šę¾³"], + ["e8a1", "ēƒē†¬ē’ē­½čœˆčŖ¤é°²é¼‡å±‹ę²ƒē„ēŽ‰éˆŗęŗ«ē‘„ē˜Ÿē©©ēø•č˜Šå…€å£…꓁ē“®ē”•ē™°ēæé‚•é›é„”ęø¦ē“¦ēŖ©ēŖŖ臄蛙čøčØ›å©‰å®Œå®›ę¢”ę¤€ęµ£ēŽ©ē“ē¬ē¢—ē·©ēæ«č„˜č…•čŽžč±Œé˜®é ‘ę›°å¾€ę—ŗ꞉ę±ŖēŽ‹å€­å؃ę­ŖēŸ®å¤–嵬巍ēŒ„ē•ļ¦ŗļ¦»åƒ„凹å Æ夭妖姚åÆ„ļ¦¼ļ¦½å¶¢ę‹—ę–ę’“ę“¾ļ¦¾ę›œļ¦æꩈļ§€ē‡æē‘¤ļ§"], + ["e9a1", "ēŖˆēŖÆē¹‡ē¹žč€€č…°ļ§‚čŸÆ要謠遙ļ§ƒé‚€é„’ę…¾ę¬²ęµ“ēøŸč¤„č¾±äæ‘傭冗勇埇墉容åŗøę…‚ę¦•ę¶Œę¹§ęŗ¶ē†”ē‘¢ē”Øē”¬č³čŒø蓉čøŠéŽ”鏞ļ§„äŗŽä½‘偶å„Ŗ又友右宇åÆ“å°¤ę„šę†‚ę—“ē‰›ēŽ—ē‘€ē›‚ē„ē¦‘ē¦¹ē“†ē¾½čŠ‹č—•č™žčæ‚遇郵é‡Ŗ隅é›Øé›©å‹–å½§ę—­ę˜±ę Æē…œēض郁頊äŗ‘ļ§…ę©’ę®žę¾ē†‰č€˜čŠø蕓"], + ["eaa1", "é‹éš•é›²éŸ»č”šé¬±äŗē†Šé›„元原哔圓園垣åŖ›å«„åƃę€Øę„æę“ę²…ę“¹ę¹²ęŗēˆ°ēŒæē‘—č‹‘č¢č½…é ļ§†é™¢é”˜é“›ęœˆč¶Šé‰žä½å‰åƒžå±åœå§”åØå°‰ę…°ęšęø­ēˆ²ē‘‹ē·ÆčƒƒčŽč‘¦č”æčŸč”›č¤˜č¬‚é•éŸ‹é­ä¹³ä¾‘å„’å…Ŗļ§‡å”Æ喩å­ŗ宄幼幽åŗ¾ę‚ ęƒŸę„ˆę„‰ę„ę”ø꜉ļ§ˆęŸ”ęŸšļ§‰ę„”ę„¢ę²¹ę“§ļ§Šęøøļ§‹"], + ["eba1", "ęæ”ēŒ¶ēŒ·ļ§Œē‘œē”±ļ§ē™’ļ§Žļ§ē¶­č‡¾čøč£•čŖ˜č«›č«­čø°č¹‚遊逾éŗ酉釉鍮ļ§ļ§‘å ‰ļ§’ęÆ“č‚‰č‚²ļ§“ļ§”允儫尹ļ§•ļ§–ę½¤ēŽ§čƒ¤č“‡ļ§—鈗閏ļ§˜ļ§™ļ§šļ§›čæꈎē€œēµØ融ļ§œåž ę©ę…‡ę®·čŖ¾éŠ€éš±ä¹™åŸę·«č”­é™°éŸ³é£®ę–ę³£é‚‘å‡ę‡‰č†ŗé·¹ä¾å€šå„€å®œę„ę‡æꓬ꤅ęƅē–‘ēŸ£ē¾©č‰¤č–čŸ»č”£čŖ¼"], + ["eca1", "議醫äŗŒä»„伊ļ§ļ§žå¤·å§Øļ§Ÿå·²å¼›å½›ę€”ļ§ ļ§”ļ§¢ļ§£ēˆ¾ē„ļ§¤ē•°ē—ļ§„ē§»ļ§¦č€Œč€³č‚„č‹”荑ļ§§ļ§Øč²½č²³é‚‡ļ§©ļ§Ŗ飓餌ļ§«ļ§¬ē€·ē›ŠēæŠēæŒēæ¼č¬šäŗŗ仁刃印ļ§­å’½å› å§»åƅ引åæę¹®ļ§®ļ§ÆēµŖčŒµļ§°čš“čŖļ§±é­é·ļ§²ļ§³äø€ä½šä½¾å£¹ę—„ęŗ¢é€øéŽ°é¦¹ä»»å£¬å¦Šå§™ęļ§“ļ§µēؔļ§¶čč³ƒå…„卄"], + ["eda1", "ļ§·ļ§øļ§¹ä»å‰©å­•čŠæ仔åˆŗå’Ø姉å§æå­å­—å­œę£ę…ˆę»‹ē‚™ē…®ēŽ†ē“·ē–µē£ē“«č€…č‡ŖčŒØč”—č—‰č«®č³‡é›Œä½œå‹ŗåš¼ę–«ę˜Øē¼ē‚øēˆµē¶½čŠé…Œé›€éµ²å­±ę£§ę®˜ę½ŗē›žå²‘ęš«ę½›ē®“ē°Ŗč ¶é›œäøˆä»—匠堓墻å£Æ儬將åø³åŗ„å¼µęŽŒęš²ę–ę؟ęŖ£ę¬Œę¼æē‰†ļ§ŗēē’‹ē« ē²§č…øč‡Ÿč‡§čŽŠč‘¬č”£č–”č—č£č““é†¬é•·"], + ["eea1", "障再哉åœØå®°ę‰ęę ½ę¢“ęø½ę»“ē½ēø”č£č²”č¼‰é½‹é½Žēˆ­ē®č«éŒšä½‡ä½Žå„²å’€å§åŗ•ęŠµęµę„®ęØ—ę²®ęøšē‹™ēŒŖē–½ē®øē“µč‹§č¹č‘—č—·č©›č²Æčŗ‡é€™é‚ø雎齟勣吊嫔åÆ‚ę‘˜ę•µę»“ē‹„ļ§»ēš„ē©ē¬›ē±ēø¾ēæŸč»č¬«č³Ščµ¤č·”č¹ŸčæŖčæ¹é©é‘佃ä½ŗ傳å…Øå…ø前å‰Ŗå””å”¼å„ å°ˆå±•å»›ę‚›ęˆ°ę “ę®æę°ˆę¾±"], + ["efa1", "ē…Žē ē”°ē”øē•‘ē™²ē­Œē®‹ē®­ēƆēŗč©®č¼¾č½‰éˆæ銓錢鐫電锚锫餞切ęˆŖęŠ˜ęµ™ē™¤ē«Šēƀēµ¶å å²¾åŗ—ę¼øē‚¹ē²˜éœ‘鮎點ꎄę‘ŗč¶äøäŗ•äŗ­åœåµå‘ˆå§ƒå®šå¹€åŗ­å»·å¾ęƒ…ęŒŗę”æę•“ę—Œę™¶ę™øęŸ¾ę„ØęŖ‰ę­£ę±€ę·€ę·ØęøŸę¹žē€žē‚”ēŽŽē½ē”ŗē›ē¢‡ē¦Žē؋ē©½ē²¾ē¶Žč‰‡č؂č«Ŗč²žé„­é…Šé‡˜é‰¦é‹ŒéŒ éœ†é–"], + ["f0a1", "靜頂鼎制劑啼堤åøå¼Ÿę‚Œęę¢ÆęæŸē„­ē¬¬č‡č–ŗč£½č«øč¹„é†é™¤éš›éœ½é”Œé½ŠäæŽå…†å‡‹åŠ©å˜²å¼”彫ęŽŖę“ę—©ę™ę›ŗę›¹ęœę¢ę£—ę§½ę¼•ę½®ē…§ē‡„ēˆŖē’Ŗēœŗē„–ē„šē§ŸēØ ēŖ•ē²—ē³Ÿēµ„ē¹°č‚‡č—»čš¤č©”čŖæ趙čŗé€ é­é‡£é˜»é›•é³„ꗏē°‡č¶³éƒå­˜å°Šå’ę‹™ēŒå€§å®—å¾žę‚°ę…«ę£•ę·™ē®ēØ®ēµ‚ē¶œēø±č…«"], + ["f1a1", "čøŖčøµé¾é˜ä½åå·¦åŗ§ęŒ«ē½Ŗäø»ä½ä¾åšå§čƒ„å‘Ŗå‘Øå—¾å„å®™å·žå»šę™ęœ±ęŸ±ę Ŗę³Øę“²ę¹Šę¾ē‚·ē ē–‡ē±Œē“‚ē“¬ē¶¢čˆŸč››čØ»čŖ…čµ°čŗŠč¼³é€±é…Žé…’鑄駐ē«¹ē²„äæŠå„å‡†åŸˆåÆÆå³»ę™™ęØ½ęµšęŗ–ęæ¬ē„Œē•Æē«£č ¢é€”遵雋é§æ茁äø­ä»²č”†é‡å½ę«›ę„«ę±č‘ŗå¢žę†Žę›¾ę‹Æēƒē”‘ē—‡ē¹’č’øč­‰č“ˆä¹‹åŖ"], + ["f2a1", "咫地址åæ—ęŒęŒ‡ę‘Æę”Æę—Øę™ŗęžęž³ę­¢ę± ę²šę¼¬ēŸ„ē „ē„‰ē„—ē“™č‚¢č„‚č‡³čŠčŠ·čœ˜čŖŒļ§¼č“„č¶¾é²ē›“ēؙēØ·ē¹”č·å”‡å—”å”µęŒÆę¢ę™‰ę™‹ę”­ę¦›ę®„ę“„ęŗ±ēē‘Øē’”ē•›ē–¹ē›”ēœžēž‹ē§¦ēø‰ēøč‡»č”Æč¢—čØŗč³‘č»«č¾°é€²éŽ­é™£é™³éœ‡ä¾„å±å§Ŗ嫉åø™ę”Žē“†ē–¾ē§©ēŖ’č†£č›­č³Ŗč·Œčæ­ę–Ÿęœ•ļ§½åŸ·ę½—ē·č¼Æ"], + ["f3a1", "é¶é›†å¾µę‡²ę¾„äø”侘借叉嗟åµÆå·®ę¬”ę­¤ē£‹ē®šļ§¾č¹‰č»Šé®ę‰ę¾ē€ēŖ„éŒÆé‘æé½Ŗ꒰ę¾Æē‡¦ē’Øē“šē«„ē°’ēŗ‚ē²²ēŗ˜č®šč“Šé‘½é¤é„Œåˆ¹åÆŸę“¦ęœ­ē“®åƒ­åƒå”¹ę…˜ę…™ę‡ŗę–¬ē«™č®’č®–å€‰å€”創唱åØ¼å» å½°ę„“ę•žę˜Œę˜¶ęš¢ę§ę»„ę¼²ēŒ–ē˜”ēŖ“č„¹č‰™č–č’¼å‚µåŸ°åƀåÆØå½©ęŽ”ē ¦ē¶µčœč””é‡‡é‡µå†ŠęŸµē­–"], + ["f4a1", "č²¬å‡„å¦»ę‚½č™•å€œļ§æ剔å°ŗę…½ęˆšę‹“ę“²ę–„ę»Œē˜ č„Šč¹ é™Ÿéš»ä»Ÿåƒå–˜å¤©å·ę“…ę³‰ę·ŗēŽ”ē©æčˆ›č–¦č³¤čøé·é‡§é—”阔韆å‡øå“²å–†å¾¹ę’¤ę¾ˆē¶“č¼Ÿč½éµåƒ‰å°–ę²¾ę·»ē”›ēž»ē°½ē±¤č©¹č«‚堞妾åø–ę·ē‰’ē–Šē«č«œč²¼č¼’å»³ę™“ę·øč½čč«‹é‘éƖļ؀剃ę›æ궕ę»Æē· č«¦é€®éžé«”初å‰æå“Øę†”ęŠ„ę‹›ę¢¢"], + ["f5a1", "ꤒꄚęصē‚’ē„¦ē”ē¤ē¤Žē§’ēØč‚–č‰øč‹•č‰č•‰č²‚č¶…é…¢é†‹é†®äæƒå›‘ē‡­ēŸ—čœ€č§øåÆøåæ–ę‘é‚Ø叢唚åÆµę‚¤ę†ę‘ ēø½č°č”„éŠƒę’®å‚¬å“”ęœ€å¢œęŠ½ęŽØꤎę„øęØžę¹«ēšŗē§‹čŠ»č©č«č¶Øčæ½é„’酋醜錐錘鎚雛éض鰍äø‘ē•œē„ē«ŗē­‘ēƉēø®č“„č¹™č¹“č»øé€ę˜„ę¤æē‘ƒå‡ŗęœ®é»œå……åæ ę²–čŸ²č”č”·ę‚“č†µčƒ"], + ["f6a1", "č“…å–å¹å˜“åض就ē‚Šēæ čšč„†č‡­č¶£é†‰é©Ÿé·²å“ä»„åŽ ęƒ»ęø¬å±¤ä¾ˆå€¤å—¤å³™å¹Ÿę„ę¢”ę²»ę·„ē†¾ē—”ē—“ē™”ēؚē©‰ē·‡ē·»ē½®č‡“čš©č¼œé›‰é¦³é½’å‰‡å‹…é£­č¦ŖäøƒęŸ’ę¼†ä¾µåÆ¢ęž•ę²ˆęµøē›ē §é‡é¼čŸ„ē§¤ēرåæ«ä»–å’¤å”¾å¢®å¦„ęƒ°ę‰“ę‹–ęœ¶ę„•čˆµé™€é¦±é§å€¬å“å•„å¼ļØę‰˜ļØ‚ę“¢ę™«ęŸęæęæÆē¢ēøčؗ"], + ["f7a1", "éøå‘‘å˜†å¦å½ˆę†šę­Žē˜ē‚­ē¶»čŖ•å„Ŗč„«ęŽ¢ēœˆč€½č²Ŗå””ę­ę¦»å®•åø‘ę¹ÆļØƒč•©å…Œå°å¤Ŗę€ ę…‹ę®†ę±°ę³°ē¬žčƒŽč‹”č·†é‚°é¢±ļØ„ę“‡ę¾¤ę’‘ę”„å…ŽååœŸčØŽę…Ÿę”¶ļ؅ē—›ē­’ēµ±é€šå †ę§Œč…æč¤Ŗ退頹åøå„—å¦¬ęŠ•é€é¬Ŗꅝē‰¹é—–å”å©†å·“ęŠŠę’­ę“ŗę·ę³¢ę“¾ēˆ¬ē¶ē “ē½·čŠ­č·›é —判坂ęæē‰ˆē“£č²©č¾¦éˆ‘"], + ["f8a1", "é˜Ŗå…«å­ęŒä½©å”„ę‚–ę•—ę²›ęµæē‰Œē‹½ēØ—č¦‡č²å½­ę¾Žēƒ¹č†Øꄎä¾æåę‰ē‰‡ēƇē·Øēæ©ééž­éØ™č²¶åŖå¹³ęž°čč©•å å¬–å¹£å»¢å¼Šę–ƒč‚ŗč”½é–‰é™›ä½ˆåŒ…åŒåŒå’†å“ŗ圃åøƒę€–ęŠ›ęŠ±ę•ļØ†ę³”ęµ¦ē–±ē ²čƒžč„Æč‹žč‘”č’²č¢č¤’é€‹é‹Ŗé£½é®‘å¹…ęš“ę›ē€‘ēˆ†ļ؇äæµå‰½å½ŖꅓꝓęØ™ę¼‚ē“¢ē„Øč”Øč±¹é£‡é£„é©ƒ"], + ["f9a1", "品ēØŸę„“č«·č±Šé¢Øé¦®å½¼ęŠ«ē–²ēš®č¢«éæ陂匹弼åæ…ę³ŒēŒē•¢ē–‹ē­†č‹¾é¦ä¹é€¼äø‹ä½•åŽ¦å¤å»ˆę˜°ę²³ē‘•č·č¦č³€ééœžé°•å£‘å­ø虐謔鶓åƒęØę‚ę—±ę±—ę¼¢ę¾£ē€šē½•ēæ°é–‘é–’é™éŸ“å‰²č½„å‡½å«å’ø啣喊ęŖ»ę¶µē·˜č‰¦éŠœé™·é¹¹åˆå“ˆē›’č›¤é–¤é—”é™œäŗ¢ä¼‰å§®å«¦å··ę’ęŠ—ę­ę”ę²†ęøÆē¼ø肛čˆŖ"], + ["faa1", "ļ؈ļ؉項äŗ„å•å’³åž“å„šå­©å®³ę‡ˆę„·ęµ·ē€£čŸ¹č§£č©²č«§é‚‚駭éŖø劾ę ø倖å¹øęč‡č”Œäŗ«å‘åš®ē¦é„•éŸæé¤‰é„—é¦™å™“å¢Ÿč™›čØ±ę†²ę«¶ē»č»’ę­‡éšŖé©—å„•ēˆ€čµ«é©äæ”峓弦ę‡øę™›ę³«ē‚«ēŽ„ēŽ¹ē¾ēœ©ēēµƒēµ¢ēø£čˆ·č”’ļØŠč³¢é‰‰é”Æ孑ē©“č”€é å«Œäæ å”å¤¾å³½ęŒ¾ęµ¹ē‹¹č„…č„‡čŽ¢é‹é °äŗØ兄刑型"], + ["fba1", "å½¢ę³‚ę»Žē€…ēē‚Æē†’ē©ē‘©čŠčž¢č””逈邢鎣é¦Øå…®å½—ęƒ ę…§ęš³č•™č¹Šé†Æ鞋乎äŗ’呼壕å£ŗå„½å²µå¼§ęˆ¶ę‰ˆę˜Šę™§ęÆ«ęµ©ę·ę¹–ę»øę¾”ęæ ęæ©ēē‹ē„ē‘šē“ ēš“ē„œē³Šēøžčƒ”芦葫č’æč™Žč™Ÿč“č­·č±ŖéŽ¬é €é”„ęƒ‘ęˆ–é…·å©šę˜ę··ęø¾ēæ魂åæ½ęƒšē¬å“„å¼˜ę±žę³“ę“Ŗēƒ˜ē“…č™¹č،铻化和嬅ęØŗē«ē•µ"], + ["fca1", "ē¦ē¦¾čŠ±čÆ話譁č²Ø靓ļØ‹ę““ę”«ē¢ŗē¢»ē©«äøøå–šå„å®¦å¹»ę‚£ę›ę­”ę™„ę”“ęø™ē…„ē’°ē“ˆé‚„é©©é°„ꓻ껑ēŒ¾č±é—Šå‡°å¹Œå¾Øęęƒ¶ę„°ę…Œę™ƒę™„ę¦„ę³ę¹Ÿę»‰ę½¢ē…Œē’œēš‡ēƁē°§č’č—é‘éšé»ƒåŒÆå›žå»»å¾Šę¢ę‚”ę‡·ę™¦ęœƒęŖœę·®ę¾®ē°ēŖē¹Ŗč†¾čŒ“č›”čŖØč³„åŠƒē²å®–ę©«é„å“®åš†å­ę•ˆę–…ę›‰ę¢Ÿę¶ę·†"], + ["fda1", "ēˆ»č‚“酵驍ä¾Æ候厚后吼喉嗅åøæå¾Œęœ½ē…¦ēé€…勛勳唤壎ē„„ē†ē‡»č–°čØ“ęšˆč–Øå–§ęš„ē…Šč±å‰å–™ęÆå½™å¾½ę®ęš‰ē…‡č«±č¼éŗ¾ä¼‘ęŗēƒ‹ē•¦č™§ę¤č­Žé·øå…‡å‡¶åŒˆę“¶čƒøé»‘ę˜•ę¬£ē‚˜ē—•åƒå±¹ē“‡čØ–ę¬ ę¬½ę­†åøę°ę“½ēæ•čˆˆåƒ–凞喜噫囍姬嬉åøŒę†™ę†˜ęˆ±ę™žę›¦ē†™ē†¹ē†ŗēŠ§ē¦§ē؀ē¾²č©°"] + ]; +}); + +// node_modules/iconv-lite/encodings/tables/cp950.json +var require_cp950 = __commonJS((exports, module) => { + module.exports = [ + ["0", "\x00", 127], + ["a140", "怀ļ¼Œć€ć€‚ļ¼Žā€§ļ¼›ļ¼šļ¼Ÿļ¼ļø°ā€¦ā€„ļ¹ļ¹‘ļ¹’Ā·ļ¹”ļ¹•ļ¹–ļ¹—ļ½œā€“ļø±ā€”ļø³ā•“ļø“ļ¹ļ¼ˆļ¼‰ļøµļø¶ļ½›ļ½ļø·ļøø怔怕ļø¹ļøŗ怐怑ļø»ļø¼ć€Šć€‹ļø½ļø¾ć€ˆć€‰ļøæļ¹€ć€Œć€ļ¹ļ¹‚ć€Žć€ļ¹ƒļ¹„ļ¹™ļ¹š"], + ["a1a1", "ļ¹›ļ¹œļ¹ļ¹žā€˜ā€™ā€œā€ć€ć€žā€µā€²ļ¼ƒļ¼†ļ¼Šā€»Ā§ć€ƒā—‹ā—ā–³ā–²ā—Žā˜†ā˜…ā—‡ā—†ā–”ā– ā–½ā–¼ćŠ£ā„…ĀÆļæ£ļ¼æĖļ¹‰ļ¹Šļ¹ļ¹Žļ¹‹ļ¹Œļ¹Ÿļ¹ ļ¹”ļ¼‹ļ¼Ć—Ć·Ā±āˆšļ¼œļ¼žļ¼ā‰¦ā‰§ā‰ āˆžā‰’ā‰”ļ¹¢", 4, "ļ½žāˆ©āˆŖāŠ„āˆ āˆŸāŠæ插揑āˆ«āˆ®āˆµāˆ“ā™€ā™‚āŠ•āŠ™ā†‘ā†“ā†ā†’ā†–ā†—ā†™ā†˜āˆ„āˆ£ļ¼"], + ["a240", "ļ¼¼āˆ•ļ¹Øļ¼„ļæ„怒ļæ ļæ”ļ¼…ļ¼ ā„ƒā„‰ļ¹©ļ¹Ŗļ¹«ć•ćŽœćŽćŽžćŽćŽ”掎掏揄Ā°å…™å…›å…žå…å…”兣嗧ē“©ē³Žā–", 7, "ā–ā–Žā–ā–Œā–‹ā–Šā–‰ā”¼ā”“ā”¬ā”¤ā”œā–”ā”€ā”‚ā–•ā”Œā”ā””ā”˜ā•­"], + ["a2a1", "ā•®ā•°ā•Æā•ā•žā•Ŗā•”ā—¢ā—£ā—„ā—¤ā•±ā•²ā•³ļ¼", 9, "ā… ", 9, "怔", 8, "十卄卅ļ¼”", 25, "ļ½", 21], + ["a340", "ļ½—ļ½˜ļ½™ļ½šĪ‘", 16, "Ī£", 6, "Ī±", 16, "Ļƒ", 6, "愅", 10], + ["a3a1", "愐", 25, "Ė™Ė‰ĖŠĖ‡Ė‹"], + ["a3e1", "ā‚¬"], + ["a440", "äø€ä¹™äøäøƒä¹ƒä¹äŗ†äŗŒäŗŗå„æ兄八几刀刁力匕十卜又äø‰äø‹äøˆäøŠäø«äøø凔久么也乞äŗŽäŗ”兀刃å‹ŗ千叉口土士夕大儳子孑孓åÆø小尢å°øå±±å·å·„å·±å·²å·³å·¾å¹²å»¾å¼‹å¼“ę‰"], + ["a4a1", "äø‘äøäøäø­äø°äø¹ä¹‹å°¹äŗˆäŗ‘äŗ•äŗ’äŗ”äŗ¢ä»ä»€ä»ƒä»†ä»‡ä»ä»Šä»‹ä»„元允內六兮公冗凶分切刈勻勾å‹æ化匹午升卅卞厄友及反壬天夫å¤Ŗ夭孔少尤å°ŗå±Æå·“å¹»å»æ弔引åæƒęˆˆęˆ¶ę‰‹ę‰Žę”Æę–‡ę–—ę–¤ę–¹ę—„ę›°ęœˆęœØę¬ ę­¢ę­¹ęƋęƔęÆ›ę°ę°“ē«ēˆŖēˆ¶ēˆ»ē‰‡ē‰™ē‰›ēŠ¬ēŽ‹äø™"], + ["a540", "äø–äø•äø”äø˜äø»ä¹ä¹ä¹Žä»„付仔仕他仗代令仙仞充兄冉冊冬凹å‡ŗå‡ø刊加功包匆北匝仟半卉協占åÆ卮去åÆ古右召叮叩åØ叼åø叵叫另åŖ史叱台叄叭叻四囚外"], + ["a5a1", "央失儓儶孕它尼å·Ø巧左åø‚åøƒå¹³å¹¼å¼å¼˜å¼—åæ…ęˆŠę‰“ę‰”ę‰’ę‰‘ę–„ę—¦ęœ®ęœ¬ęœŖęœ«ęœ­ę­£ęÆę°‘ę°ę°øę±ę±€ę°¾ēŠÆēŽ„ēŽ‰ē“œē“¦ē”˜ē”Ÿē”Øē”©ē”°ē”±ē”²ē”³ē–‹ē™½ēš®ēšæē›®ēŸ›ēŸ¢ēŸ³ē¤ŗē¦¾ē©“ē«‹äøžäøŸä¹’乓乩äŗ™äŗ¤äŗ¦äŗ„ä»æ伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先å…Ø"], + ["a640", "共再冰列刑划刎刖劣匈匔匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地åœØ圭圬åœÆ圩夙多夷å¤ø妄å„ø妃儽儹如妁字存宇守宅安åÆŗ尖屹州åø†å¹¶å¹“"], + ["a6a1", "式弛åæ™åæ–ęˆŽęˆŒęˆęˆę‰£ę‰›ę‰˜ę”¶ę—©ę—Øę—¬ę—­ę›²ę›³ęœ‰ęœ½ęœ“ęœ±ęœµę¬”ę­¤ę­»ę°–ę±ę±—ę±™ę±Ÿę± ę±ę±•ę±”ę±›ę±ę±Žē°ē‰Ÿē‰ē™¾ē«¹ē±³ē³øē¼¶ē¾Šē¾½č€č€ƒč€Œč€’č€³čæč‚‰č‚‹č‚Œč‡£č‡Ŗč‡³č‡¼čˆŒčˆ›čˆŸč‰®č‰²č‰¾č™«č”€č”Œč”£č„æ阔äø²äŗØ位住佇佗佞伓佛何估佐佑伽ä¼ŗä¼ø佃佔似但佣"], + ["a740", "作你ä¼Æ低伶余佝佈佚兌克免兵冶冷刄判利åˆŖåˆØ劫助åŠŖ劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻åø吮吵吶吠吼呀吱含吟听å›Ŗ困囤囫坊坑址坍"], + ["a7a1", "均坎圾坐坏圻å£Æ夾妝妒å¦Ø妞妣妙妖妍妤妓妊妄孝孜孚孛完宋宏尬局屁å°æ尾岐岑岔岌巫åøŒåŗåŗ‡åŗŠå»·å¼„弟彤形彷役åæ˜åæŒåæ—åæåæ±åæ«åæøåæŖęˆ’ęˆ‘ęŠ„ęŠ—ęŠ–ęŠ€ę‰¶ęŠ‰ę‰­ęŠŠę‰¼ę‰¾ę‰¹ę‰³ęŠ’ę‰ÆęŠ˜ę‰®ęŠ•ęŠ“ęŠ‘ęŠ†ę”¹ę”»ę”øę—±ę›“ęŸęŽęęę‘ęœę–ęžę‰ę†ę "], + ["a840", "ę“ę—ę­„ęÆę±‚ę±žę²™ę²ę²ˆę²‰ę²…ę²›ę±Ŗę±ŗę²ę±°ę²Œę±Øę²–ę²’ę±½ę²ƒę±²ę±¾ę±“ę²†ę±¶ę²ę²”ę²˜ę²‚ē¶ē¼ē½ēøē‰¢ē‰”ē‰ ē‹„ē‹‚ēŽ–ē”¬ē”«ē”·ē”øēš‚ē›ÆēŸ£ē§ē§€ē¦æē©¶ē³»ē½•č‚–č‚“č‚č‚˜č‚›č‚šč‚²č‰Æ芒"], + ["a8a1", "čŠ‹čŠč¦‹č§’čØ€č°·č±†č±•č²čµ¤čµ°č¶³čŗ«č»Šč¾›č¾°čæ‚čæ†čæ…čæ„å·”邑邢é‚Ŗ邦那酉釆里防阮阱é˜Ŗ阬äø¦ä¹–ä¹³äŗ‹äŗ›äŗžäŗ«äŗ¬ä½Æ依侍佳ä½æ佬供例來侃佰併侈佩佻侖佾侏侑ä½ŗ兔兒兕兩具其å…ø冽函刻åˆø刷åˆŗ到刮制剁劾劻卒協卓卑卦卷åø卹取叔受味呵"], + ["a940", "咖å‘ø咕咀呻呷咄咒咆呼咐呱呶和咚呢å‘Ø咋命咎å›ŗ垃坷åŖ坩坔坦坤坼夜儉儇儈億儔妾妻委妹妮姑姆姐姍始姓姊å¦Æ妳姒姅孟孤季宗定官宜宙宛尚屈居"], + ["a9a1", "屆岷岔å²ø岩岫岱岳åø˜åøšåø–åø•åø›åø‘å¹øåŗšåŗ—åŗœåŗ•åŗ–延弦弧弩往征å½æå½¼åæåæ åæ½åæµåææꀏꀔę€Æꀵꀖę€Ŗę€•ę€”ę€§ę€©ę€«ę€›ęˆ–ęˆ•ęˆæęˆ¾ę‰€ę‰æꋉꋌꋄęŠæę‹‚ęŠ¹ę‹’ę‹›ęŠ«ę‹“ę‹”ę‹‹ę‹ˆęŠØęŠ½ęŠ¼ę‹ę‹™ę‹‡ę‹ęŠµę‹šęŠ±ę‹˜ę‹–ę‹—ę‹†ęŠ¬ę‹Žę”¾ę–§ę–¼ę—ŗꘔꘓꘌꘆꘂ꘎ꘀ꘏ꘕꘊ"], + ["aa40", "ę˜‡ęœęœ‹ę­ęž‹ęž•ę±ęžœę³ę·ęž‡ęžęž—ęÆꝰęæęž‰ę¾ęžęµęžšęž“ę¼ęŖę²ę¬£ę­¦ę­§ę­æę°“ę°›ę³£ę³Øę³³ę²±ę³Œę³„ę²³ę²½ę²¾ę²¼ę³¢ę²«ę³•ę³“ę²øę³„ę²¹ę³ę²®ę³—ę³…ę³±ę²æę²»ę³”ę³›ę³Šę²¬ę³Æę³œę³–ę³ "], + ["aaa1", "ē‚•ē‚Žē‚’ē‚Šē‚™ēˆ¬ēˆ­ēˆøē‰ˆē‰§ē‰©ē‹€ē‹Žē‹™ē‹—ē‹ēŽ©ēŽØēŽŸēŽ«ēŽ„ē”½ē–ē–™ē–šēš„ē›‚ē›²ē›“ēŸ„ēŸ½ē¤¾ē„€ē„ē§‰ē§ˆē©ŗē©¹ē«ŗē³¾ē½”ē¾Œē¾‹č€…č‚ŗč‚„č‚¢č‚±č‚”č‚«č‚©č‚“č‚Ŗč‚Æč‡„č‡¾čˆčŠ³čŠčŠ™čŠ­čŠ½čŠŸčŠ¹čŠ±čŠ¬čŠ„čŠÆčŠøčŠ£čŠ°čŠ¾čŠ·č™Žč™±åˆč”Ø軋čæŽčæ”čæ‘邵é‚ø邱邶采金長門阜陀é˜æ阻附"], + ["ab40", "陂隹é›Ø青非äŗŸäŗ­äŗ®äæ”ä¾µä¾Æä¾æäæ äæ‘äæäæäæƒä¾¶äæ˜äæŸäæŠäæ—ä¾®äæäæ„äæ‚äæšäæŽäæžä¾·å…—冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀å’Ø哎哉å’ø咦咳哇哂咽å’Ŗ品"], + ["aba1", "哄哈å’Æ咫咱咻咩咧å’æå›æ垂型垠垣垢城垮垓儕儑儏儎儐姜姘å§æ姣å§Øå؃姄å§Ŗ姚姦å؁姻孩宣宦室客宄封屎屏屍屋峙峒巷åøåø„åøŸå¹½åŗ åŗ¦å»ŗå¼ˆå¼­å½„å¾ˆå¾…å¾Šå¾‹å¾‡å¾Œå¾‰ę€’ę€ę€ ę€„ę€Žę€ØꁍꁰęØę¢ę†ęƒę¬ę«ęŖę¤ę‰ę‹œęŒ–ęŒ‰ę‹¼ę‹­ęŒę‹®ę‹½ęŒ‡ę‹±ę‹·"], + ["ac40", "ę‹Æę‹¬ę‹¾ę‹“ęŒ‘ęŒ‚ę”æę•…ę–«ę–½ę—¢ę˜„ę˜­ę˜ ę˜§ę˜Æꘟę˜Øę˜±ę˜¤ę›·ęŸæęŸ“ęŸ±ęŸ”ęŸęŸ¬ęž¶ęžÆęŸµęŸ©ęŸÆęŸ„ęŸ‘ęž“ęŸšęŸ„ęžøęŸęŸžęŸ³ęž°ęŸ™ęŸ¢ęŸęŸ’ę­Ŗę®ƒę®†ę®µęƒęÆ—ę°Ÿę³‰ę“‹ę“²ę“Ŗęµę“„ę“Œę“±ę“žę“—"], + ["aca1", "ę“»ę“½ę“¾ę“¶ę“›ę³µę“¹ę“§ę“øꓩꓮꓵ꓎ꓫē‚«ē‚ŗē‚³ē‚¬ē‚Æē‚­ē‚øē‚®ē‚¤ēˆ°ē‰²ē‰Æē‰“ē‹©ē‹ ē‹”ēŽ·ēŠēŽ»ēŽ²ēē€ēŽ³ē”šē”­ē•ē•Œē•Žē•‹ē–«ē–¤ē–„ē–¢ē–£ē™øēš†ēš‡ēšˆē›ˆē›†ē›ƒē›…ēœē›¹ē›øēœ‰ēœ‹ē›¾ē›¼ēœ‡ēŸœē ‚ē ”ē Œē ē„†ē„‰ē„ˆē„‡ē¦¹ē¦ŗē§‘ē§’ē§‹ē©æēŖē«æē«½ē±½ē“‚ē“…ē“€ē“‰ē“‡ē“„ē“†ē¼øē¾Žē¾æ耄"], + ["ad40", "č€č€č€‘č€¶čƒ–čƒ„čƒščƒƒčƒ„čƒŒčƒ”čƒ›čƒŽčƒžčƒ¤čƒč‡“čˆ¢č‹§čŒƒčŒ…č‹£č‹›č‹¦čŒ„č‹„čŒ‚čŒ‰č‹’č‹—č‹±čŒč‹œč‹”č‹‘č‹žč‹“č‹Ÿč‹ÆčŒ†č™č™¹č™»č™ŗč”č”«č¦č§”č؈č؂čØƒč²žč² čµ“čµ³č¶“č»č»Œčæ°čæ¦čæ¢čæŖčæ„"], + ["ada1", "čæ­čæ«čæ¤čæØ郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁é¢Ø飛食首香乘äŗ³å€Œå€å€£äæÆ倦倄äæø倩倖倆值借倚倒們äæŗ倀倔å€Øäæ±å€”個候倘äæ³äæ®å€­å€Ŗäæ¾å€«å€‰å…¼å†¤å†„冢凍凌准凋剖剜剔剛剝åŒŖåæ原厝叟å“Ø唐唁唷哼哄哲唆å“ŗ唔哩哭哔唉哮å“Ŗ"], + ["ae40", "哦唧唇哽唏圃圄埂埔埋埃堉夏儗儘儚åؑåؘå؜å؟å؛åؓ姬åØ åØ£åØ©åØ„å،å؉孫屘宰害家宓宮宵容å®ø射屑展屐峭峽峻å³Ŗå³Ø峰島品峓差åø­åø«åŗ«åŗ­åŗ§å¼±å¾’å¾‘å¾ę™"], + ["aea1", "ę£ę„ęę•ę­ę©ęÆę‚„ę‚Ÿę‚šę‚ę‚”ę‚Œę‚…ę‚–ę‰‡ę‹³ęŒˆę‹æęŽęŒ¾ęŒÆꍕꍂꍆꍏꍉęŒŗęęŒ½ęŒŖęŒ«ęŒØꍍꍌꕈꕉꖙꗁꗅꙂꙉꙏꙃꙒꙌꙅꙁę›øęœ”ęœ•ęœ—ę ”ę øę”ˆę”†ę”“ę ¹ę”‚ę””ę ©ę¢³ę —ę”Œę”‘ę ½ęŸ“ę”ę”€ę ¼ę”ƒę Ŗę”…ę “ę ˜ę”ę®Šę®‰ę®·ę°£ę°§ę°Øę°¦ę°¤ę³°ęµŖę¶•ę¶ˆę¶‡ęµ¦ęµø굷굙궓"], + ["af40", "ęµ¬ę¶‰ęµ®ęµšęµ“ęµ©ę¶Œę¶Šęµ¹ę¶…ęµ„ę¶”ēƒŠēƒ˜ēƒ¤ēƒ™ēƒˆēƒēˆ¹ē‰¹ē‹¼ē‹¹ē‹½ē‹øē‹·ēŽ†ē­ē‰ē®ē ēŖēžē•”ē•ē•œē•šē•™ē–¾ē—…ē—‡ē–²ē–³ē–½ē–¼ē–¹ē—‚ē–øēš‹ēš°ē›Šē›ē›Žēœ©ēœŸēœ ēœØēŸ©ē °ē §ē øē ē “ē ·"], + ["afa1", "ē „ē ­ē  ē Ÿē ²ē„•ē„ē„ ē„Ÿē„–ē„žē„ē„—ē„šē§¤ē§£ē§§ē§Ÿē§¦ē§©ē§˜ēŖ„ēŖˆē«™ē¬†ē¬‘ē²‰ē“”ē“—ē“‹ē“Šē“ ē“¢ē“”ē“ē“•ē“šē“œē“ē“™ē“›ē¼ŗē½Ÿē¾”ēæ…ēæč€†č€˜č€•č€™č€—č€½č€æčƒ±č„‚čƒ°č„…čƒ­čƒ“č„†čƒøčƒ³č„ˆčƒ½č„Ščƒ¼čƒÆč‡­č‡¬čˆ€čˆčˆŖ舫čˆØčˆ¬čŠ»čŒ«č’č”čŠčŒøčč‰čŒµčŒ“ččŒ²čŒ¹čŒ¶čŒ—č€čŒ±čŒØ荃"], + ["b040", "虔蚊čšŖčš“čš¤čš©čšŒčš£čšœč”°č”·č¢č¢‚č”½č”¹čؘčؐč؎č،čؕč؊čؗčؓčؖč؏čØ‘č±ˆč±ŗč±¹č²”č²¢čµ·čŗ¬č»’č»”č»č¾±é€é€†čæ·é€€čæŗčæ“逃čæ½é€…čæø邕郔郝郢酒配酌釘針釗釜釙閃院陣陔"], + ["b0a1", "陛陝除陘陞隻飢馬éŖØ高鬄鬲鬼乾åŗ偽停假偃偌做偉偄偶偎偕偵偓偷偏倏åÆ偭兜冕凰å‰Ŗå‰Æ勒務勘動匐匏匙åŒæå€åŒ¾åƒę›¼å•†å•Ŗ啦啄啞啔啃啊唱啖問啕å”Æ啤å”ø售啜唬啣唳啁啗圈國圉域堅堊堆埠埤åŸŗ堂堵執培夠儢åض婁婉婦å©Ŗ婀"], + ["b140", "åؼ婢婚婆婊孰åƇåƅåƄåƂå®æåƆ尉專將屠屜屝哇哆哎哛哖哢哑哩哔哙哤哧哗巢åøøåø¶åø³åø·åŗ·åŗøåŗ¶åŗµåŗ¾å¼µå¼·å½—彬彩彫得徙從徘徔徠徜ęæę‚£ę‚‰ę‚ ę‚Øęƒ‹ę‚“ęƒ¦ę‚½"], + ["b1a1", "ęƒ…ę‚»ę‚µęƒœę‚¼ęƒ˜ęƒ•ęƒ†ęƒŸę‚øęƒšęƒ‡ęˆšęˆ›ę‰ˆęŽ ęŽ§ę²ęŽ–ęŽ¢ęŽ„ę·ę§ęŽ˜ęŽŖę±ęŽ©ęŽ‰ęŽƒęŽ›ę«ęŽØęŽ„ęŽˆęŽ™ęŽ”ęŽ¬ęŽ’ęŽęŽ€ę»ę©ęØęŗę•ę•–ę•‘ę•™ę•—å•Ÿę•ę•˜ę••ę•”ę–œę–›ę–¬ę—ę—‹ę—Œę—Žę™ę™šę™¤ę™Øę™¦ę™žę›¹å‹—ęœ›ę¢ę¢Æę¢¢ę¢“ę¢µę”æę”¶ę¢±ę¢§ę¢—ę¢°ę¢ƒę£„ę¢­ę¢†ę¢…ę¢”ę¢ę¢Øę¢Ÿę¢”ę¢‚ę¬²ę®ŗ"], + ["b240", "ęÆ«ęÆ¬ę°«ę¶Žę¶¼ę·³ę·™ę¶²ę·”ę·Œę·¤ę·»ę·ŗęø…귇귋ę¶Æę·‘ę¶®ę·žę·¹ę¶ø귷귵귅귒ęøšę¶µę·šę·«ę·˜ę·Ŗ귱귮ę·Ø귆귄ę¶Ŗę·¬ę¶æę·¦ēƒ¹ē„‰ē„Šēƒ½ēƒÆēˆ½ē‰½ēŠēŒœēŒ›ēŒ–ēŒ“ēŒ™ēŽ‡ē…ēŠēƒē†ē¾ēē“ ē“¶"], + ["b2a1", "ē“·ē”œē”¢ē•„ē•¦ē•¢ē•°ē–ē—”ē—•ē–µē—Šē—ēšŽē›”ē›’ē››ēœ·ēœ¾ēœ¼ēœ¶ēœøēœŗē”«ē”ƒē”Žē„„ē„Øē„­ē§»ēŖ’ēŖ•ē¬ ē¬Øē¬›ē¬¬ē¬¦ē¬™ē¬žē¬®ē²’ē²—ē²•ēµ†ēµƒēµ±ē“®ē“¹ē“¼ēµ€ē“°ē“³ēµ„ē“Æēµ‚ē“²ē“±ē¼½ē¾žē¾šēæŒēæŽēæ’č€œčŠč†č„Æč„–č„£č„«č„©č„°č„¤čˆ‚čˆµčˆ·čˆ¶čˆ¹čŽŽčŽžčŽ˜čøčŽ¢čŽ–čŽ½čŽ«čŽ’čŽŠčŽ“čŽ‰čŽ č·č»č¼"], + ["b340", "莆莧處å½Ŗ蛇蛀蚶蛄蚵蛆蛋蚱čšÆč›‰č”“č¢žč¢ˆč¢«č¢’č¢–č¢č¢‹č¦“č¦čØŖč؝čØ£čØ„čرčØ­č؟č؛čØ¢č±‰č±šč²©č²¬č²«č²Øč²Ŗč²§čµ§čµ¦č¶¾č¶ŗč»›č»Ÿé€™é€é€šé€—é€£é€Ÿé€é€é€•é€žé€ é€é€¢é€–é€›é€”"], + ["b3a1", "éƒØ郭都酗野釵釦釣釧釭釩閉é™Ŗ陵陳é™ø陰陓陶陷陬雀é›Ŗ雩ē« ē«Ÿé ‚頃魚鳄鹵é¹æéŗ„éŗ»å‚¢å‚å‚…å‚™å‚‘å‚€å‚–å‚˜å‚šęœ€å‡±å‰²å‰“創剩勞勝勛博厄啻喀喧啼喊喝喘喂喜å–Ŗ喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍å Æå Ŗ堓堤堰報堔堝堠壹å£ŗå„ "], + ["b440", "å©·åŖšå©æåŖ’åŖ›åŖ§å­³å­±åƒåƌåƓåƐ尊尋就嵌嵐哓嵇巽幅åø½å¹€å¹ƒå¹¾å»Šå»å»‚廄弼彭復å¾Ŗå¾Øęƒ‘ęƒ”ę‚²ę‚¶ęƒ ę„œę„£ęƒŗę„•ęƒ°ęƒ»ęƒ“ę…Øęƒ±ę„Žęƒ¶ę„‰ę„€ę„’ęˆŸę‰‰ęŽ£ęŽŒęę€ę©ę‰ę†ę"], + ["b4a1", "ę’ę£ęę”ę–ę­ę®ę¶ę“ęŖę›ę‘’ęšę¹ę•žę•¦ę•¢ę•£ę–‘ę–ę–Æꙮ꙰ꙓꙶę™Æꚑę™ŗę™¾ę™·ę›¾ę›æꜟꜝę£ŗę£•ę£ ę£˜ę£—ę¤…ę£Ÿę£µę£®ę£§ę£¹ę£’ę£²ę££ę£‹ę£ę¤ę¤’ę¤Žę£‰ę£šę„®ę£»ę¬¾ę¬ŗę¬½ę®˜ę®–ę®¼ęÆÆę°®ę°Æę°¬ęøÆęøøę¹”ęø”ęø²ę¹§ę¹Šęø ęø„ęø£ęø›ę¹›ę¹˜ęø¤ę¹–ę¹®ęø­ęø¦ę¹Æęø“ę¹ęøŗęø¬ę¹ƒęøęø¾ę»‹"], + ["b540", "ęŗ‰ęø™ę¹Žę¹£ę¹„ę¹²ę¹©ę¹Ÿē„™ē„šē„¦ē„°ē„”ē„¶ē…®ē„œē‰ŒēŠ„ēŠ€ēŒ¶ēŒ„ēŒ“ēŒ©ēŗēŖē³ē¢ē„ēµē¶ē“ēÆē›ē¦ēØē”„ē”¦ē•«ē•Ŗē—¢ē—›ē—£ē—™ē—˜ē—žē— ē™»ē™¼ēš–ēš“ēš“ē›œēēŸ­ē”ē”¬ē”Æē؍ē؈ē؋ē؅ē؀ēŖ˜"], + ["b5a1", "ēŖ—ēŖ–ē«„ē«£ē­‰ē­–ē­†ē­ē­’ē­”ē­ē­‹ē­ē­‘ē²Ÿē²„ēµžēµēµØēµ•ē“«ēµ®ēµ²ēµ”ēµ¦ēµ¢ēµ°ēµ³å–„ēæ”ēæ•č€‹č’č‚…č…•č…”č…‹č…‘č…Žč„¹č…†č„¾č…Œč…“č…“čˆ’čˆœč©čƒčø萍菠菅萋菁čÆč±č“č‘—čŠč°čŒčŒč½č²čŠčøčŽč„čœč‡č”čŸč™›č›Ÿč›™č›­č›”č››č›¤č›č›žč”—č£č£‚č¢±č¦ƒč¦–čØ»č© č©•č©žčØ¼č©"], + ["b640", "詔詛詐詆čØ“čØŗčØ¶č©–č±”č²‚č²Æč²¼č²³č²½č³č²»č³€č²“č²·č²¶č²æč²øč¶Šč¶…č¶č·Žč·č·‹č·šč·‘č·Œč·›č·†č»»č»øč»¼č¾œé€®é€µé€±é€ø進逶鄂郵鄉郾酣酄量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"], + ["b6a1", "間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇é›Æ雲韌項順須飧é£Ŗé£Æ飩飲飭馮馭黃黍黑äŗ‚傭債傲傳僅傾催傷傻å‚Æ僇å‰æ剷剽募勦勤勢勣åŒÆ嗟å—Ø嗓嗦嗎嗜嗇嗑嗣嗤å—Æ嗚嗔嗅嗆嗄嗉園圓唞唑唘唗唚唔唫唌唭唊唢唒唋儧嫁嫉嫌åŖ¾åŖ½åŖ¼"], + ["b740", "åŖ³å«‚åŖ²åµ©åµÆå¹Œå¹¹å»‰å»ˆå¼’å½™å¾¬å¾®ę„šę„ę…ˆę„Ÿęƒ³ę„›ęƒ¹ę„ę„ˆę…Žę…Œę…„ę…ę„¾ę„“ę„§ę„ę„†ę„·ęˆ”ęˆ¢ę“ę¾ęžęŖę­ę½ę¬ęęœę”ęę¶ę–ę—ę†ę•¬ę–Ÿę–°ęš—ęš‰ęš‡ęšˆęš–ęš„ęš˜ęšęœƒę¦”ę„­"], + ["b7a1", "ꄚꄷꄠꄔꄵꤰꦂꄊę„Øę„«ę„žę„“ę„¹ę¦†ę„ę„£ę„›ę­‡ę­²ęƀę®æęƓęƽęŗ¢ęŗÆ껓ęŗ¶ę»‚ęŗęŗę»‡ę»…ęŗ„ęŗ˜ęŗ¼ęŗŗęŗ«ę»‘ęŗ–ęŗœę»„ę»”ęŗŖęŗ§ęŗ“ē…Žē…™ē…©ē…¤ē…‰ē…§ē…œē…¬ē…¦ē…Œē…„ē…žē…†ē…Øē…–ēˆŗē‰’ēŒ·ē…ēŒæēŒ¾ē‘Æē‘šē‘•ē‘Ÿē‘žē‘ēæē‘™ē‘›ē‘œē•¶ē•øē˜€ē—°ē˜ē—²ē—±ē—ŗē—æē—“ē—³ē›žē›Ÿē›ē«ē¦ēžē£"], + ["b840", "ē¹ēŖē¬ēœē„ēØē¢ēŸ®ē¢Žē¢°ē¢—ē¢˜ē¢Œē¢‰ē”¼ē¢‘ē¢“ē”æē„ŗē„æē¦č¬ē¦½ē؜ēؚēØ ēؔē؟ē؞ēŖŸēŖ ē­·ēƀē­ ē­®ē­§ē²±ē²³ē²µē¶“ēµ¹ē¶‘ē¶ē¶ēµ›ē½®ē½©ē½Ŗē½²ē¾©ē¾Øē¾¤č–č˜č‚†č‚„č…±č…°č…øč…„č…®č…³č…«"], + ["b8a1", "č…¹č…ŗč…¦čˆ…č‰‡č’‚č‘·č½č±č‘µč‘¦č‘«č‘‰č‘¬č‘›č¼čµč‘”č‘£č‘©č‘­č‘†č™žč™œč™Ÿč›¹čœ“čœˆčœ‡čœ€č›¾č›»čœ‚čœƒčœ†čœŠč”™č£Ÿč£”č£™č£œč£˜č£č£”č£Šč£•č£’č¦œč§£č©«č©²č©³č©¦č©©č©°čŖ‡č©¼č©£čŖ č©±čŖ…č©­č©¢č©®č©¬č©¹č©»čؾč©Øč±¢č²Šč²‰č³Šč³‡č³ˆč³„č²²č³ƒč³‚č³…č·”č·Ÿč·Øč·Æč·³č·ŗč·Ŗ跤跦čŗ²č¼ƒč¼‰č»¾č¼Š"], + ["b940", "č¾Ÿč¾²é‹éŠé“é‚é”é€¼é•éé‡ééŽéé‘é€¾éé„’é„—é…¬é…Ŗ酩釉鈷鉗éˆø鈽鉀鈾鉛鉋鉤鉑鈓鉉鉍鉅鈹éˆæ鉚閘隘隔隕雍雋雉雊雷電雹零靖靓靶預頑頓頊頒頌飼飓"], + ["b9a1", "飽飾馳馱馓體鳩éŗ‚鼎鼓鼠僧僮僄僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖唵唾境墓墊唹墅唽壽处夢夤å„Ŗ儩嫔嫦嫩嫗嫖嫘嫣孵åƞåƧåÆ”åÆ„åƦåÆØåÆ¢åƤåÆŸå°å±¢å¶„å¶‡å¹›å¹£å¹•å¹—å¹”å»“å»–å¼Šå½†å½°å¾¹ę…‡"], + ["ba40", "ę„æę…‹ę…·ę…¢ę…£ę…Ÿę…šę…˜ę…µęˆŖꒇꑘꑔ꒤ę‘øꑟę‘ŗę‘‘ę‘§ę“ę‘­ę‘»ę•²ę–”ę——ę—–ęš¢ęšØęšę¦œę¦Øę¦•ę§ę¦®ę§“ę§‹ę¦›ę¦·ę¦»ę¦«ę¦“ę§ę§ę¦­ę§Œę¦¦ę§ƒę¦£ę­‰ę­Œę°³ę¼³ę¼”ę»¾ę¼“ę»“ę¼©ę¼¾ę¼ ę¼¬ę¼ę¼‚ę¼¢"], + ["baa1", "ę»æę»Æę¼†ę¼±ę¼øę¼²ę¼£ę¼•ę¼«ę¼Æę¾ˆę¼Ŗę»¬ę¼ę»²ę»Œę»·ē†”ē†™ē…½ē†Šē†„ē†’ēˆ¾ēŠ’ēŠ–ē„ēē‘¤ē‘£ē‘Ŗē‘°ē‘­ē”„ē–‘ē˜§ē˜ē˜‹ē˜‰ē˜“ē›”ē›£ēž„ē½ēæē”ē£ē¢Ÿē¢§ē¢³ē¢©ē¢£ē¦Žē¦ē¦ēØ®ēرēŖŖēŖ©ē«­ē«Æē®”ē®•ē®‹ē­µē®—ē®ē®”ē®ē®øē®‡ē®„ē²¹ē²½ē²¾ē¶»ē¶°ē¶œē¶½ē¶¾ē¶ ē·Šē¶“ē¶²ē¶±ē¶ŗē¶¢ē¶æē¶µē¶øē¶­ē·’ē·‡ē¶¬"], + ["bb40", "ē½°ēæ ēæ”ēæŸčžčšč‚‡č…č†€č†č†ˆč†Šč…æ膂臧č‡ŗ與舔舞艋蓉č’æč“†č“„č’™č’žč’²č’œč“‹č’øč“€č““č’č’¼č“‘č“Ščœæčœœčœ»čœ¢čœ„čœ“čœ˜č•čœ·čœ©č£³č¤‚č£“č£¹č£øč£½č£Ø褚č£ÆčŖ¦čŖŒčŖžčŖ£čŖčŖ”čŖ“čŖ¤"], + ["bba1", "čŖŖčŖ„čŖØčŖ˜čŖ‘čŖščŖ§č±Ŗč²č²Œč³“č³‘č³’čµ«č¶™č¶•č·¼č¼”č¼’č¼•č¼“č¾£é é˜éœé£é™éžé¢éé›é„™é„˜é„žé…µé…øé…·é…“é‰ø銀銅銘銖鉻銓銜éŠØ鉼銑閔é–Ø閩閣閄閤隙障際雌雒需靼鞅韶頗領é¢Æ颱餃餅餌餉駁éŖÆéŖ°é«¦é­é­‚鳓鳶鳳éŗ¼é¼»é½Šå„„儀僻僵價儂儈儉儅凜"], + ["bc40", "劇劈劉劍劊勰厲嘮嘻嘹嘲å˜æ嘓嘩噓噎噗噓嘶å˜Æ嘰墀墟增墳墜墮墩墦儭嬉嫻嬋嫵嬌嬈åÆ®åƬåÆ©åÆ«å±¤å±„å¶å¶”å¹¢å¹Ÿå¹”å»¢å»šå»Ÿå»å»£å» å½ˆå½±å¾·å¾µę…¶ę…§ę…®ę…ę…•ę†‚"], + ["bca1", "ę…¼ę…°ę…«ę…¾ę†§ę†ę†«ę†Žę†¬ę†šę†¤ę†”ę†®ęˆ®ę‘©ę‘Æę‘¹ę’žę’²ę’ˆę’ę’°ę’„ę’“ę’•ę’©ę’’ę’®ę’­ę’«ę’šę’¬ę’™ę’¢ę’³ę•µę•·ę•øꚮꚫꚓꚱęØ£ę؟ę§Øę؁ę؞ęØ™ę§½ęØ”ęؓęØŠę§³ę؂ęØ…ę§­ęØ‘ę­ę­Žę®¤ęƅęƆę¼æę½¼ę¾„ę½‘ę½¦ę½”ę¾†ę½­ę½›ę½øę½®ę¾Žę½ŗę½°ę½¤ę¾—ę½˜ę»•ę½Æę½ ę½Ÿē†Ÿē†¬ē†±ē†Øē‰–ēŠ›ēŽē—ē‘©ē’‹ē’ƒ"], + ["bd40", "ē‘¾ē’€ē•æē˜ ē˜©ē˜Ÿē˜¤ē˜¦ē˜”ē˜¢ēššēšŗē›¤ēžŽēž‡ēžŒēž‘ēž‹ē£‹ē£…ē¢ŗē£Šē¢¾ē£•ē¢¼ē£ēØæēؼē©€ēؽēØ·ēØ»ēŖÆēŖ®ē®­ē®±ēƄē®“ēƆēƇēƁē® ēƌē³Šē· ē·“ē·Æē·»ē·˜ē·¬ē·ē·Øē·£ē·šē·žē·©ē¶žē·™ē·²ē·¹ē½µē½·ē¾Æ"], + ["bda1", "ēæ©č€¦č†›č†œč†č† č†šč†˜č”—č”½č”šč“®č”¬č”­č”“č”‘č”£č””蔔蓬蔄č“æč”†čž‚č“č¶č č¦čøčØč™č—čŒč“č”›č”č¤č¤‡č¤’č¤“č¤•č¤ŠčŖ¼č«’談諄čŖ•č«‹č«øčŖ²č«‰č«‚čŖæčŖ°č«–č«čŖ¶čŖ¹č«›č±Œč±Žč±¬č³ č³žč³¦č³¤č³¬č³­č³¢č³£č³œč³Ŗč³”čµ­č¶Ÿč¶£čø«čøčøčø¢čøčø©čøŸčø”čøžčŗŗč¼č¼›č¼Ÿč¼©č¼¦č¼Ŗč¼œč¼ž"], + ["be40", "č¼„é©é®éØ遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷é‹Ŗ銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頔頫頜颳養餓餒餘駝駐駟駛駑駕駒駙éŖ·é«®é«Æ鬧魅魄魷é­Æ铆铉"], + ["bea1", "铃éŗ©éŗ¾é»Žå¢Ø齒儒儘儔儐儕冀å†Ŗ凝劑劓勳噙噫噹噩噤å™øå™Ŗå™Ø噄噱å™Æ噬噢噶壁墾壇壅儮嬝嬓å­øåÆ°å°Žå½Šę†²ę†‘ę†©ę†Šę‡ę†¶ę†¾ę‡Šę‡ˆęˆ°ę“…ę“ę“‹ę’»ę’¼ę“šę“„ę“‡ę“‚ę“ę’æę“’ę“”ę’¾ę•“ę›†ę›‰ęš¹ę›„ę›‡ęšøęؽęØøęØŗę©™ę©«ę©˜ęØ¹ę©„ę©¢ę©”ę©‹ę©‡ęØµę©Ÿę©ˆę­™ę­·ę°…ęæ‚ę¾±ę¾”"], + ["bf40", "ęæƒę¾¤ęæę¾§ę¾³ęæ€ę¾¹ę¾¶ę¾¦ę¾ ę¾“ē†¾ē‡‰ē‡ē‡’ē‡ˆē‡•ē†¹ē‡Žē‡™ē‡œē‡ƒē‡„ēØē’œē’£ē’˜ē’Ÿē’žē“¢ē”Œē”ē˜“ē˜øē˜ŗē›§ē›„ēž ēžžēžŸēž„ē£Øē£šē£¬ē£§ē¦¦ē©ē©Žē©†ē©Œē©‹ēŖŗēƙē°‘ēƉēƤēƛēÆ”ēÆ©ēƦē³•ē³–ēøŠ"], + ["bfa1", "ēø‘ēøˆēø›ēø£ēøžēøēø‰ēøē½¹ē¾²ēæ°ēæ±ēæ®č€Øč†³č†©č†Øč‡»čˆˆč‰˜č‰™č•Šč•™č•ˆč•Øč•©č•ƒč•‰č•­č•Ŗč•žčžƒčžŸčžžčž¢čžč””č¤Ŗč¤²č¤„č¤«č¤”č¦Ŗ覦諦č«ŗč««č«±č¬€č«œč«§č«®č«¾č¬č¬‚č«·č«­č«³č«¶č«¼č±«č±­č²“č³“č¹„čø±čø“č¹‚čø¹čøµč¼»č¼Æč¼øč¼³č¾Øč¾¦éµé“éø遲遼éŗ鄓醒錠錶é‹ø錳éŒÆ錢鋼錫錄錚"], + ["c040", "錐錦錔錕錮錙閻隧éšØéšŖ雕霎霑霖霍霓霏靛靜靦鞘頰é ø頻頷頭頹頤餐é¤Ø餞餛餔餚駭駢駱éŖøéŖ¼é«»é«­é¬Ø鮑铕铣铦é“Ø铒铛默黔龍龜å„Ŗ償儔儲勵嚎嚀嚐嚅嚇"], + ["c0a1", "嚏壕壓壑壎嬰å¬Ŗ嬤å­ŗå°·å±Ø嶼å¶ŗ嶽å¶øå¹«å½Œå¾½ę‡‰ę‡‚ę‡‡ę‡¦ę‡‹ęˆ²ęˆ“ę“Žę“Šę“˜ę“ ę“°ę“¦ę“¬ę“±ę“¢ę“­ę–‚ę–ƒę›™ę›–ęŖ€ęŖ”ęŖ„ęŖ¢ęŖœę«›ęŖ£ę©¾ęŖ—ęŖęŖ ę­œę®®ęÆšę°ˆęæ˜ęæ±ęæŸęæ ęæ›ęæ¤ęæ«ęæÆę¾€ęæ¬ęæ”ęæ©ęæ•ęæ®ęæ°ē‡§ē‡Ÿē‡®ē‡¦ē‡„ē‡­ē‡¬ē‡“ē‡ ēˆµē‰†ē°ē²ē’©ē’°ē’¦ē’Øē™†ē™‚ē™Œē›Ŗēž³ēžŖēž°ēž¬"], + ["c140", "ēž§ēž­ēŸÆē£·ē£ŗē£“ē£Æē¤ē¦§ē¦Ŗē©—ēŖæē°‡ē°ēƾēÆ·ē°ŒēÆ ē³ ē³œē³žē³¢ē³Ÿē³™ē³ēø®ēø¾ē¹†ēø·ēø²ē¹ƒēø«ēø½ēø±ē¹…ē¹ēø“ēø¹ē¹ˆēøµēøæēøÆē½„ēæ³ēæ¼č±č²č°čÆč³č‡†č‡ƒč†ŗ臂臀č†æč†½č‡‰č†¾č‡Øčˆ‰č‰±č–Ŗ"], + ["c1a1", "č–„č•¾č–œč–‘č–”č–Æ薛薇č–Øč–Šč™§čŸ€čŸ‘čž³čŸ’čŸ†čž«čž»čžŗčŸˆčŸ‹č¤»č¤¶č„„č¤øč¤½č¦¬č¬Žč¬—č¬™č¬›č¬Šč¬ č¬č¬„č¬č±č°æč±³č³ŗč³½č³¼č³øč³»č¶Øč¹‰č¹‹č¹ˆč¹Šč½„č¼¾č½‚č½…č¼æéæ遽還邁邂邀鄹醣醞醜鍍鎂éŒØ鍵鍊鍄鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱éšø雖霜霞鞠韓锆颶餵é؁"], + ["c240", "é§æ鮮鮫é®Ŗé®­é“»é“æéŗ‹é»é»žé»œé»é»›é¼¾é½‹å¢åš•åš®å£™å£˜å¬øå½ę‡£ęˆ³ę““ę“²ę“¾ę”†ę“ŗę“»ę“·ę–·ę›œęœ¦ęŖ³ęŖ¬ę«ƒęŖ»ęŖøę«‚ęŖ®ęŖÆꭟę­øę®Æē€‰ē€‹ęæ¾ē€†ęæŗē€‘ē€ē‡»ē‡¼ē‡¾ē‡øē·ēµē’§ē’æē”•ē™–ē™˜"], + ["c2a1", "ē™’ēž½ēžæēž»ēž¼ē¤Žē¦®ē©”ē©¢ē© ē«„ē«…ē°«ē°§ē°Ŗē°žē°£ē°”ē³§ē¹”ē¹•ē¹žē¹šē¹”ē¹’ē¹™ē½ˆēæ¹ēæ»č·č¶č‡č‡čˆŠč—č–©č—č—č—‰č–°č–ŗč–¹č–¦čŸÆčŸ¬čŸ²čŸ č¦†č¦²č§“č¬Øč¬¹č¬¬č¬«č±č“…č¹™č¹£č¹¦č¹¤č¹Ÿč¹•č»€č½‰č½é‚‡é‚ƒé‚ˆé†«é†¬é‡éŽ”éŽŠéŽ–éŽ¢éŽ³éŽ®éŽ¬éŽ°éŽ˜éŽšéŽ—é—”é—–é—é—•é›¢é›œé›™é››é›žéœ¤éž£éž¦"], + ["c340", "鞭韹锍锏锌锎锓é¢ŗ餾é¤æ餽餮馄é؎髁鬃鬆魏魎魍éƊéƉéƽéƈéƀ鵑鵝鵠黠鼕鼬儳嚄壞壟壢åÆµé¾å»¬ę‡²ę‡·ę‡¶ę‡µę”€ę”ę› ę›ę«„ę«ę«šę«“ē€›ē€Ÿē€Øē€šē€ē€•ē€˜ēˆ†ēˆē‰˜ēŠ¢ēø"], + ["c3a1", "ēŗē’½ē“Šē“£ē–‡ē–†ē™Ÿē™”ēŸ‡ē¤™ē¦±ē©«ē©©ē°¾ē°æē°øē°½ē°·ē±€ē¹«ē¹­ē¹¹ē¹©ē¹Ŗē¾…ē¹³ē¾¶ē¾¹ē¾øč‡˜č—©č—č—Ŗč—•č—¤č—„č—·čŸ»č …č čŸ¹čŸ¾č„ č„Ÿč„–č„žč­č­œč­˜č­‰č­šč­Žč­č­†č­™č“ˆč“Šč¹¼č¹²čŗ‡č¹¶č¹¬č¹ŗč¹“č½”č½Žč¾­é‚Šé‚‹é†±é†®é”é‘éŸéƒéˆéœéé–é¢éé˜é¤é—éØ關隓難éœŖ霧靔韜韻锞"], + ["c440", "锘锛颼鄅鄉éؖéؙ鬍éÆØéƧéƖéƛ鶉鵔鵲éµŖ鵬éŗ’éŗ—éŗ“éŗ“å‹øåšØ嚷嚶嚓嚼壤孀孃孽åƶ巉ę‡øę‡ŗę”˜ę””ę”™ę›¦ęœ§ę«¬ē€¾ē€°ē€²ēˆē»ē“ē™¢ē™„ē¤¦ē¤Ŗē¤¬ē¤«ē«‡ē«¶ē±Œē±ƒē±ē³Æē³°č¾®ē¹½ē¹¼"], + ["c4a1", "ēŗ‚ē½Œč€€č‡šč‰¦č—»č—¹č˜‘č—ŗč˜†č˜‹č˜‡č˜Šč ”č •č„¤č¦ŗč§ø議譬警č­Æč­Ÿč­«č“č“čŗ‰čŗčŗ…čŗ‚醓釋鐘鐃鏽闔霰飄鄒鄑é¦ØéØ«éØ°éØ·éص鰓鰍鹹éŗµé»Øé¼Æ齟齣齔儷å„øå›å›€å›‚å¤”å±¬å·ę‡¼ę‡¾ę”ę”œę–•ę›©ę«»ę¬„ę«ŗę®²ēŒēˆ›ēŠ§ē“–ē“”ē™©ēŸ“ē±ēŗēŗŒē¾¼č˜—č˜­č˜šč £č ¢č ”蠟č„Ŗč„¬č¦½č­“"], + ["c540", "č­·č­½č““čŗŠčŗčŗ‹č½Ÿč¾Æé†ŗ鐮鐳鐵éŗéø鐲鐫闢éœø霹露éŸæ锧锄鄗驅驃驀éؾ髏魔魑鰭鰄é¶Æ鶓鷂é¶øéŗé»Æ鼙齜齦齧儼儻囈囊囉å­æ巔巒彎ę‡æꔤꬊꭔē‘ē˜ēŽ€ē“¤ē–Šē™®ē™¬"], + ["c5a1", "ē¦³ē± ē±Ÿč¾č½č‡Ÿč„²č„Æč§¼č®€č“–č“—čŗ‘čŗ“č½”酈鑄鑑鑒霽霾韃韁锫鄕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼓齬é½Ŗé¾”å›Œå·–ęˆ€ę”£ę”«ę”Ŗꛬ꬐ē“šē«Šē±¤ē±£ē±„ēŗ“ēŗ–ēŗ”č‡¢č˜øč˜æč ±č®Šé‚é‚é‘£é‘ é‘¤éØé”Æ鄜驚驛驗髓體髑鱔鱗鱖鷄éŗŸé»“å›‘å£©ę”¬ēžē™±ē™²ēŸ—ē½ē¾ˆč ¶č ¹č”¢č®“č®’"], + ["c640", "讖艷蓛釀é‘Ŗ靂靈靄韆锰驟鬢魘鱟鷹é·ŗé¹¼é¹½é¼‡é½·é½²å»³ę¬–ē£ē±¬ē±®č »č§€čŗ”釁鑲鑰锱鄞髖鬣黌ē¤ēŸšč®šé‘·éŸ‰é©¢é©„ēŗœč®œčŗŖ釅鑽鑾鑼鱷é±øé»·č±”é‘æéøšēˆØé©Ŗ鬱éø›éøžē±²"], + ["c940", "乂乜凵匚厂äø‡äøŒä¹‡äŗå›—ļ،屮彳äøå†‡äøŽäø®äŗ“仂仉仈冘勼卬厹圠夃夬尐å·æę—”ę®³ęÆŒę°”ēˆæäø±äø¼ä»Ø仜仩仔仝仚刌匜卌圢圣夗å¤Æ宁宄尒尻屓屳åø„åŗ€åŗ‚åæ‰ęˆ‰ę‰ę°•"], + ["c9a1", "갶걃ę°æę°»ēŠ®ēŠ°ēŽŠē¦øč‚Šé˜žä¼Žä¼˜ä¼¬ä»µä¼”ä»±ä¼€ä»·ä¼ˆä¼ä¼‚ä¼…ä¼¢ä¼“ä¼„ä»“ä¼’å†±åˆ“åˆ‰åˆåŠ¦åŒ¢åŒŸååŽŠå‡å›”å›Ÿåœ®åœŖ圓夼妀儼妅儻儾儷å„æå­–å°•å°„å±¼å±ŗ屻屾巟幵åŗ„异弚当åæ•åæ”åæę‰œę‰žę‰¤ę‰”ę‰¦ę‰¢ę‰™ę‰ ę‰šę‰„ę—Æę—®ęœ¾ęœ¹ęœøęœ»ęœŗęœæęœ¼ęœ³ę°˜ę±†ę±’ę±œę±ę±Šę±”ę±‹"], + ["ca40", "ę±Œē±ē‰žēŠ“ēŠµēŽŽē”Ŗē™æē©µē½‘č‰øč‰¼čŠ€č‰½č‰æč™č„¾é‚™é‚—é‚˜é‚›é‚”é˜¢é˜¤é˜ é˜£ä½–ä¼»ä½¢ä½‰ä½“ä½¤ä¼¾ä½§ä½’ä½Ÿä½ä½˜ä¼­ä¼³ä¼æ佔冏冹刜刞刔劭劮匉卣卲厎厏吰吷åŖ呔呅吙吜各吘"], + ["caa1", "吽呏呁åØ吤呇囮囧囄坁坅坌坉坋坒夆儀妦妘妠妗妎妢妐妏妧妔宎宒å°Øå°Ŗ岍岏岈岋岉岒岊岆岓岕巠åøŠåøŽåŗ‹åŗ‰åŗŒåŗˆåŗå¼…弝å½ø彶åæ’åæ‘åæåæ­åæØåæ®åæ³åæ”åæ¤åæ£åæŗåæÆåæ·åæ»ę€€åæ“ęˆŗęŠƒęŠŒęŠŽęŠęŠ”ęŠ‡ę‰±ę‰»ę‰ŗę‰°ęŠęŠˆę‰·ę‰½ę‰²ę‰“ę”·ę—°ę—“ę—³ę—²ę—µę…ę‡"], + ["cb40", "ꝙꝕꝌꝈꝝꝍꝚꝋęÆę°™ę°šę±øę±§ę±«ę²„ę²‹ę²ę±±ę±Æę±©ę²šę±­ę²‡ę²•ę²œę±¦ę±³ę±„ę±»ę²Žē“ēŗē‰£ēŠæēŠ½ē‹ƒē‹†ē‹ēŠŗē‹…ēŽ•ēŽ—ēŽ“ēŽ”ēŽ’ē”ŗē”¹ē–”ē–•ēšē¤½č€“肕肙肐肒肜芐芏芅芎芑芓"], + ["cba1", "芊芃芄č±øčæ‰č¾æ邟邔還邞邧邠阰é˜Øé˜Æ阭äø³ä¾˜ä½¼ä¾…佽侀侇佶体侉侄佷佌侗ä½Ŗ侚佹侁ä½ø侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇å‘æ咁咑咂咈呫å‘ŗ呾呄呬呓呦咍å‘Æ呔呠咘呣呧呤囷囹åÆ坲坭坫坱坰坶垀坵坻坳坓坢"], + ["cc40", "åØ坽夌儅妵å¦ŗ姏姎妲姌姁妶妼姃姖妱妽姀姈妓姇孢孄宓宕屄屇岮岤岠岵å²Æå²Ø岬岟岣岭岢å²Ŗ岧岝岄岶岰岦åø—åø”åø™å¼Ø弢弣弤彔徂彾彽åæžåæ„ę€­ę€¦ę€™ę€²ę€‹"], + ["cca1", "ę€“ę€Šę€—ę€³ę€šę€žę€¬ę€¢ę€ę€ę€®ę€“ę€‘ę€Œę€‰ę€œęˆ”ęˆ½ęŠ­ęŠ“ę‹‘ęŠ¾ęŠŖęŠ¶ę‹ŠęŠ®ęŠ³ęŠÆꊻꊩꊰęŠøę”½ę–Øę–»ę˜‰ę—¼ę˜„ę˜’ę˜ˆę—»ę˜ƒę˜‹ę˜ę˜…ę—½ę˜‘ę˜ę›¶ęœŠęž…ę¬ęžŽęž’ę¶ę»ęž˜ęž†ęž„ę“ęžęžŒęŗęžŸęž‘ęž™ęžƒę½ęžęøę¹ęž”ę¬„ę®€ę­¾ęÆžę°ę²“ę³¬ę³«ę³®ę³™ę²¶ę³”ę²­ę³§ę²·ę³ę³‚ę²ŗę³ƒę³†ę³­ę³²"], + ["cd40", "ę³’ę³ę²“ę²Šę²ę²€ę³žę³€ę“°ę³ę³‡ę²°ę³¹ę³ę³©ę³‘ē‚”ē‚˜ē‚…ē‚“ē‚†ē‚„ē‚‘ē‚–ē‚‚ē‚šē‚ƒē‰Ŗē‹–ē‹‹ē‹˜ē‹‰ē‹œē‹’ē‹”ē‹šē‹Œē‹‘ēŽ¤ēŽ”ēŽ­ēŽ¦ēŽ¢ēŽ ēŽ¬ēŽē“ē“Øē”æē•€ē”¾ē–Œē–˜ēšÆē›³ē›±ē›°ē›µēŸøēŸ¼ēŸ¹ēŸ»ēŸŗ"], + ["cda1", "ēŸ·ē„‚ē¤æē§…ē©øē©»ē«»ē±µē³½č€µč‚č‚®č‚£č‚øč‚µč‚­čˆ čŠ č‹€čŠ«čŠščŠ˜čŠ›čŠµčŠ§čŠ®čŠ¼čŠžčŠŗ芓čŠØčŠ”čŠ©č‹‚čŠ¤č‹ƒčŠ¶čŠ¢č™°č™Æ虭虮豖čæ’čæ‹čæ“čæčæ–čæ•čæ—邲邓é‚Æ邳邰阹阽阼é˜ŗ陃äæäæ…äæ“ä¾²äæ‰äæ‹äæäæ”äæœäæ™ä¾»ä¾³äæ›äæ‡äæ–ä¾ŗäæ€ä¾¹äæ¬å‰„剉勀勂匽卼厗厖厙厘å’ŗ咔咭咄哏"], + ["ce40", "å“ƒčŒå’·å’®å“–å’¶å“…å“†å’ å‘°å’¼å’¢å’¾å‘²å“žå’°åžµåžžåžŸåž¤åžŒåž—åžåž›åž”åž˜åžåž™åž„åžšåž•å£“å¤å„“å§”å§žå§®å؀姱姝å§ŗ姽姼姶姤姲姷姛姩姳姵姠姾姓姭å®Ø屌峐峘峌峗峋峛"], + ["cea1", "峞峚峉峇峊峖峓峔峏峈峆峎峟å³øå·¹åø”åø¢åø£åø åø¤åŗ°åŗ¤åŗ¢åŗ›åŗ£åŗ„å¼‡å¼®å½–å¾†ę€·ę€¹ę”ę²ęžę…ę“ę‡ę‰ę›ęŒę€ę‚ęŸę€¤ę„ę˜ę¦ę®ę‰‚ę‰ƒę‹ęŒęŒ‹ę‹µęŒŽęŒƒę‹«ę‹¹ęŒęŒŒę‹øę‹¶ęŒ€ęŒ“ęŒ”ę‹ŗęŒ•ę‹»ę‹°ę•ę•ƒę–Ŗę–æę˜¶ę˜”ę˜²ę˜µę˜œę˜¦ę˜¢ę˜³ę˜«ę˜ŗę˜ę˜“ę˜¹ę˜®ęœęœęŸęŸ²ęŸˆęžŗ"], + ["cf40", "ęŸœęž»ęŸøęŸ˜ęŸ€ęž·ęŸ…ęŸ«ęŸ¤ęŸŸęžµęŸęž³ęŸ·ęŸ¶ęŸ®ęŸ£ęŸ‚ęž¹ęŸŽęŸ§ęŸ°ęž²ęŸ¼ęŸ†ęŸ­ęŸŒęž®ęŸ¦ęŸ›ęŸŗꟉꟊꟃęŸŖꟋę¬ØꮂꮄꮶęƖęƘęÆ ę° ę°”ę“Øę““ę“­ę“Ÿę“¼ę“æę“’ę“Šę³šę“³ę“„ę“™ę“ŗę“šę“‘ę“€ę“ęµ‚"], + ["cfa1", "ę“ę“˜ę“·ę“ƒę“ęµ€ę“‡ę“ ę“¬ę“ˆę“¢ę“‰ę“ē‚·ē‚Ÿē‚¾ē‚±ē‚°ē‚”ē‚“ē‚µē‚©ē‰ē‰‰ē‰Šē‰¬ē‰°ē‰³ē‰®ē‹Šē‹¤ē‹Øē‹«ē‹Ÿē‹Ŗē‹¦ē‹£ēŽ…ēŒē‚ēˆē…ēŽ¹ēŽ¶ēŽµēŽ“ē«ēŽæē‡ēŽ¾ēƒē†ēŽøē‹ē“¬ē“®ē”®ē•‡ē•ˆē–§ē–Ŗē™¹ē›„ēœˆēœƒēœ„ēœ…ēœŠē›·ē›»ē›ŗēŸ§ēŸØē †ē ‘ē ’ē …ē ē ē Žē ‰ē ƒē “ē„Šē„Œē„‹ē„…ē„„ē§•ē§ē§ē§–ē§ŽēŖ€"], + ["d040", "ē©¾ē«‘ē¬€ē¬ē±ŗē±øē±¹ē±æē²€ē²ē“ƒē“ˆē“ē½˜ē¾‘ē¾ē¾¾č€‡č€Žč€č€”č€·čƒ˜čƒ‡čƒ čƒ‘čƒˆčƒ‚čƒčƒ…čƒ£čƒ™čƒœčƒŠčƒ•čƒ‰čƒčƒ—čƒ¦čƒč‡æčˆ”čŠ”č‹™č‹¾č‹¹čŒ‡č‹Ø茀苕čŒŗč‹«č‹–č‹“č‹¬č‹”č‹²č‹µčŒŒč‹»č‹¶č‹°č‹Ŗ"], + ["d0a1", "苤苠č‹ŗč‹³č‹­č™·č™“č™¼č™³č”č”Žč”§č”Ŗ蔩觓č؄čØ‡čµ²čæ£čæ”čæ®čæ éƒ±é‚½é‚æ郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛äæµäæ“倳倷倬äæ¶äæ·å€—倜倠倧倵å€Æ倱倎党冔冓凊凄凅凈凎剔剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚å“æ唄唈哫唑唅哱"], + ["d140", "唊哻哷å“ø哠唎唃唋圁圂埌堲埕埒åžŗ埆垽垼åžø垶åžæ埇埐垹埁夎儊åؙåؖåØ­åØ®åؕå؏åؗå؊å؞åس孬宧宭宬尃屖屔峬å³æ峮峱峷哀峹åø©åøØåŗØåŗ®åŗŖåŗ¬å¼³å¼°å½§ęęšę§"], + ["d1a1", "ęę‚¢ę‚ˆę‚€ę‚’ę‚ę‚ę‚ƒę‚•ę‚›ę‚—ę‚‡ę‚œę‚Žęˆ™ę‰†ę‹²ęŒę–ęŒ¬ę„ę…ęŒ¶ęƒę¤ęŒ¹ę‹ęŠęŒ¼ęŒ©ęęŒ“ę˜ę”ę™ęŒ­ę‡ęŒ³ęšę‘ęŒøę—ę€ęˆę•Šę•†ę—†ę—ƒę—„ę—‚ę™Šę™Ÿę™‡ę™‘ęœ’ęœ“ę Ÿę šę”‰ę ²ę ³ę »ę”‹ę”ę –ę ±ę œę µę «ę ­ę Æę”Žę”„ę “ę ę ’ę ”ę ¦ę Øę ®ę”ę ŗꠄꠠꬬę¬Æę¬­ę¬±ę¬“ę­­č‚‚ę®ˆęƦęƤ"], + ["d240", "ęÆØęÆ£ęÆ¢ęÆ§ę°„ęµŗęµ£ęµ¤ęµ¶ę“ęµ”ę¶’ęµ˜ęµ¢ęµ­ęµÆę¶‘ę¶ę·Æęµæę¶†ęµžęµ§ęµ ę¶—ęµ°ęµ¼ęµŸę¶‚ę¶˜ę“ÆęµØę¶‹ęµ¾ę¶€ę¶„ę“–ę¶ƒęµ»ęµ½ęµµę¶ēƒœēƒ“ēƒ‘ēƒēƒ‹ē¼¹ēƒ¢ēƒ—ēƒ’ēƒžēƒ ēƒ”ēƒēƒ…ēƒ†ēƒ‡ēƒšēƒŽēƒ”ē‰‚ē‰ø"], + ["d2a1", "ē‰·ē‰¶ēŒ€ē‹ŗē‹“ē‹¾ē‹¶ē‹³ē‹»ēŒē“ē™ē„ē–ēŽ¼ē§ē£ē©ēœē’ē›ē”ēēšē—ē˜ēØē“žē“Ÿē““ē“µē””ē•›ē•Ÿē–°ē—ē–»ē—„ē—€ē–æē–¶ē–ŗēšŠē›‰ēœēœ›ēœēœ“ēœ’ēœ£ēœ‘ēœ•ēœ™ēœšēœ¢ēœ§ē £ē ¬ē ¢ē µē Æē Øē ®ē «ē ”ē ©ē ³ē Ŗē ±ē„”ē„›ē„ē„œē„“ē„’ē„‘ē§«ē§¬ē§ ē§®ē§­ē§Ŗē§œē§žē§ēŖ†ēŖ‰ēŖ…ēŖ‹ēŖŒēŖŠēŖ‡ē«˜ē¬"], + ["d340", "ē¬„ē¬“ē¬…ē¬ē¬ˆē¬Šē¬Žē¬‰ē¬’ē²„ē²‘ē²Šē²Œē²ˆē²ē²…ē“žē“ē“‘ē“Žē“˜ē“–ē““ē“Ÿē“’ē“ē“Œē½œē½”ē½žē½ ē½ē½›ē¾–ē¾’ēæƒēæ‚ēæ€č€–č€¾č€¹čƒŗčƒ²čƒ¹čƒµč„čƒ»č„€čˆčˆÆčˆ„čŒ³čŒ­č„čŒ™č‘čŒ„č–čŒæččŒ¦čŒœčŒ¢"], + ["d3a1", "荂荎茛čŒŖčŒˆčŒ¼ččŒ–čŒ¤čŒ čŒ·čŒÆčŒ©č‡č…čŒč“čŒžčŒ¬č‹čŒ§čˆč™“č™’čš¢čšØčš–čščš‘čšžčš‡čš—čš†čš‹čšščš…čš„čš™čš”čš§čš•čš˜čšŽčščščš”č”ƒč”„č”­č”µč”¶č”²č¢€č”±č”æč”Æč¢ƒč”¾č”“č”¼čØ’č±‡č±—č±»č²¤č²£čµ¶čµø趵趷趶軑軓čæ¾čæµé€‚čææčæ»é€„čæ¼čæ¶éƒ–郠郙郚郣郟郄郘郛郗郜郤酐"], + ["d440", "酎酏釕釢釚陜陟隼飣髟é¬Æä¹æ偰åŖ偔偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唓å”Ŗ啑啢唶唵唰啒啅"], + ["d4a1", "唌唲啄啎唹啈唭唻啀啋圊圇埻堔埢埶埜埓堀埭埽堈åŸø堋埳埏堇埮埣埲埄埬埔堎埼堐埧堁堌埱埩埰堍堄儜婠婘婕婧婞åØøåص婭婐婟婄婬婓婤婗婃婝婒婄婛婈åŖŽåؾ婍åع婌婰婩婇婑婖婂婜孲孮åƁåƀ屙哞哋哝哚哠哌å“Ø响哦哄哏"], + ["d540", "哰哒哣哟哮åø¾åø“åŗ±åŗ“åŗ¹åŗ²åŗ³å¼¶å¼øå¾›å¾–å¾Ÿę‚Šę‚ę‚†ę‚¾ę‚°ę‚ŗęƒ“ęƒ”ęƒęƒ¤ęƒ™ęƒęƒˆę‚±ęƒ›ę‚·ęƒŠę‚æęƒƒęƒęƒ€ęŒ²ę„ęŽŠęŽ‚ę½ęŽ½ęŽžęŽ­ęŽęŽ—ęŽ«ęŽŽęÆęŽ‡ęŽę®ęŽÆęµęŽœę­ęŽ®ę¼ęŽ¤ęŒ»ęŽŸ"], + ["d5a1", "ęøęŽ…ęŽęŽ‘ęŽę°ę•“ę—ę™„ę™”ę™›ę™™ę™œę™¢ęœ˜ę”¹ę¢‡ę¢ę¢œę”­ę”®ę¢®ę¢«ę„–ę”Æę¢£ę¢¬ę¢©ę”µę”“ę¢²ę¢ę”·ę¢’ę”¼ę”«ę”²ę¢Ŗę¢€ę”±ę”¾ę¢›ę¢–ę¢‹ę¢ ę¢‰ę¢¤ę”øę”»ę¢‘ę¢Œę¢Šę”½ę¬¶ę¬³ę¬·ę¬øę®‘ę®ę®ę®Žę®Œę°Ŗę·€ę¶«ę¶“ę¶³ę¹“ę¶¬ę·©ę·¢ę¶·ę·¶ę·”ęø€ę·ˆę· ę·Ÿę·–ę¶¾ę·„ę·œę·ę·›ę·“ę·Šę¶½ę·­ę·°ę¶ŗę·•ę·‚ę·ę·‰"], + ["d640", "ę·ę·²ę·“ę·½ę·—ę·ę·£ę¶»ēƒŗē„ēƒ·ē„—ēƒ“ē„Œēƒ°ē„„ēƒ³ē„ēƒ¼ēƒæē„†ē„“ē„€ēƒøēƒ¶ē„‹ē„‚ē„Žē‰¾ē‰»ē‰¼ē‰æēŒēŒ—ēŒ‡ēŒ‘ēŒ˜ēŒŠēŒˆē‹æēŒēŒžēŽˆē¶ēøēµē„ēē½ē‡ē€ēŗē¼ēæēŒē‹ē“ēˆē•¤ē•£ē—Žē—’ē—"], + ["d6a1", "ē—‹ē—Œē—‘ē—ēšēš‰ē›“ēœ¹ēœÆēœ­ēœ±ēœ²ēœ“ēœ³ēœ½ēœ„ēœ»ēœµē”ˆē”’ē”‰ē”ē”Šē”Œē ¦ē”…ē”ē„¤ē„§ē„©ē„Ŗē„£ē„«ē„”ē¦»ē§ŗē§øē§¶ē§·ēŖēŖ”ēŖē¬µē­‡ē¬“ē¬„ē¬°ē¬¢ē¬¤ē¬³ē¬˜ē¬Ŗē¬ē¬±ē¬«ē¬­ē¬Æē¬²ē¬øē¬šē¬£ē²”ē²˜ē²–ē²£ē“µē“½ē“øē“¶ē“ŗēµ…ē“¬ē“©ēµēµ‡ē“¾ē“æēµŠē“»ē“Øē½£ē¾•ē¾œē¾ē¾›ēæŠēæ‹ēæēæēæ‘ēæ‡ēæēæ‰č€Ÿ"], + ["d740", "č€žč€›č‡čƒčˆč„˜č„„č„™č„›č„­č„Ÿč„¬č„žč„”č„•č„§č„č„¢čˆ‘čˆøčˆ³čˆŗčˆ“čˆ²č‰“čŽčŽ£čŽØ莍čŗč³čŽ¤č“čŽčŽčŽ•čŽ™čµčŽ”čŽ©č½čŽƒčŽŒčŽčŽ›čŽŖčŽ‹č¾čŽ„čŽÆ莈莗莰čæčŽ¦čŽ‡čŽ®č¶čŽšč™™č™–čšæčš·"], + ["d7a1", "蛂蛁蛅čšŗčš°č›ˆčš¹čš³čšøč›Œčš“čš»čš¼č›ƒčš½čš¾č”’č¢‰č¢•č¢Øč¢¢č¢Ŗč¢šč¢‘č¢”č¢Ÿč¢˜č¢§č¢™č¢›č¢—č¢¤č¢¬č¢Œč¢“č¢Žč¦‚č§–č§™č§•čØ°čاčجčØžč°¹č°»č±œč±č±½č²„čµ½čµ»čµ¹č¶¼č·‚č¶¹č¶æč·č»˜č»žč»č»œč»—č» č»”é€¤é€‹é€‘é€œé€Œé€”éƒÆéƒŖ郰郓郲郳郔郫郬郩酖酘酚酓酕釬釓釱釳é‡ø釤釹é‡Ŗ"], + ["d840", "釫釷é‡Ø釮é•ŗ閆閈陼陭陫陱é™ÆéšæéŖ頄飄馗傛傕傔傞傋傣傃傌傎傝åØ傜傒傂傇兟凔匒匑厤厧喑å–Ø善喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦å•æ喕喔喎圌堩堷"], + ["d8a1", "堙堞堧堣å Ø埵唈堄堜堛堳å æ堶堮堹å ø堭堬堻儔åŖÆåŖ”åŖŸå©ŗåŖ¢åŖžå©øåŖ¦å©¼åŖ„åŖ¬åŖ•åŖ®åØ·åŖ„åŖŠåŖ—åŖƒåŖ‹åŖ©å©»å©½åŖŒåŖœåŖåŖ“åŖåÆŖåƍåƋåƔåƑåƊåƎ尌尰哷嵃嵫嵁嵋å“æ哵嵑嵎嵕哳å“ŗ嵒哽哱嵙嵂哹嵉å“øå“¼å“²å“¶åµ€åµ…å¹„å¹å½˜å¾¦å¾„å¾«ęƒ‰ę‚¹ęƒŒęƒ¢ęƒŽęƒ„ę„”"], + ["d940", "ęƒ²ę„Šę„–ę„…ęƒµę„“ęƒøęƒ¼ęƒ¾ęƒę„ƒę„˜ę„ę„ęƒæę„„ę„‹ę‰ŠęŽ”ęŽ±ęŽ°ęŽę„ęØęÆęƒę’ę³ęŠę ę¶ę•ę²ęµę‘”ęŸęŽ¾ęęœę„ę˜ę“ę‚ę‡ęŒę‹ęˆę°ę—ę™ę”²ę•§ę•Ŗꕤꕜę•Øę•„ę–Œę–ę–žę–®ę—ę—’"], + ["d9a1", "ę™¼ę™¬ę™»ęš€ę™±ę™¹ę™Ŗę™²ęœę¤Œę£“ę¤„ę£œę¤Ŗę£¬ę£Ŗę£±ę¤ę£–ę£·ę£«ę£¤ę£¶ę¤“ę¤ę£³ę£”ę¤‡ę£Œę¤ˆę„°ę¢“ę¤‘ę£Æę£†ę¤”ę£øę£ę£½ę£¼ę£Øę¤‹ę¤Šę¤—ę£Žę£ˆę£ę£žę£¦ę£“ę£‘ę¤†ę£”ę£©ę¤•ę¤„ę£‡ę¬¹ę¬»ę¬æę¬¼ę®”ę®—ę®™ę®•ę®½ęÆ°ęƲęÆ³ę°°ę·¼ę¹†ę¹‡ęøŸę¹‰ęŗˆęø¼ęø½ę¹…ę¹¢ęø«ęøæę¹ę¹ę¹³ęøœęø³ę¹‹ę¹€ę¹‘ęø»ęøƒęø®ę¹ž"], + ["da40", "ę¹Øę¹œę¹”ęø±ęøØę¹ ę¹±ę¹«ęø¹ęø¢ęø°ę¹“ę¹„ęø§ę¹øę¹¤ę¹·ę¹•ę¹¹ę¹’ę¹¦ęøµęø¶ę¹šē„ ē„žē„Æēƒ»ē„®ē„±ē„£ē„„ē„¢ē„²ē„Ÿē„Øē„ŗē„›ē‰‹ē‰šēŠˆēŠ‰ēŠ†ēŠ…ēŠ‹ēŒ’ēŒ‹ēŒ°ēŒ¢ēŒ±ēŒ³ēŒ§ēŒ²ēŒ­ēŒ¦ēŒ£ēŒµēŒŒē®ē¬ē°ē«ē–"], + ["daa1", "ēšē”ē­ē±ē¤ē£ēē©ē ē²ē“»ē”Æē•Æē•¬ē—§ē—šē—”ē—¦ē—ē—Ÿē—¤ē——ēš•ēš’ē›šē†ē‡ē„ēē…ēŠēŽē‹ēŒēŸžēŸ¬ē” ē”¤ē”„ē”œē”­ē”±ē”Ŗē”®ē”°ē”©ē”Øē”žē”¢ē„“ē„³ē„²ē„°ē؂ē؊ē؃ē،ē؄ēŖ™ē«¦ē«¤ē­Šē¬»ē­„ē­ˆē­Œē­Žē­€ē­˜ē­…ē²¢ē²žē²Øē²”ēµ˜ēµÆēµ£ēµ“ēµ–ēµ§ēµŖēµēµ­ēµœēµ«ēµ’ēµ”ēµ©ēµ‘ēµŸēµŽē¼¾ē¼æē½„"], + ["db40", "ē½¦ē¾¢ē¾ ē¾”ēæ—č‘čččƒ¾čƒ”č…ƒč…Šč…’č…č…‡č„½č…č„ŗ臦臮臷č‡øč‡¹čˆ„čˆ¼čˆ½čˆæč‰µčŒ»čč¹č£č€čØč’č§č¤č¼č¶čč†čˆč«č£čŽæččč„č˜čæč”č‹čŽč–čµč‰č‰ččžč‘č†č‚č³"], + ["dba1", "菕čŗ菇菑čŖč“čƒč¬č®č„č»č—č¢č›č›č¾č›˜č›¢č›¦č›“č›£č›šč›Ŗč›č›«č›œč›¬č›©č›—č›Øč›‘č”ˆč”–č”•č¢ŗč£—č¢¹č¢øč£€č¢¾č¢¶č¢¼č¢·č¢½č¢²č¤č£‰č¦•č¦˜č¦—č§č§šč§›č©Žč©čØ¹č©™č©€č©—č©˜č©„č©…č©’č©ˆč©‘č©Šč©Œč©č±Ÿč²č²€č²ŗč²¾č²°č²¹č²µč¶„č¶€č¶‰č·˜č·“č·č·‡č·–č·œč·č·•č·™č·ˆč·—č·…č»Æč»·č»ŗ"], + ["dc40", "č»¹č»¦č»®č»„č»µč»§č»Ø軶軫軱軬軓軩逭逓é€Æ鄆鄬鄄éƒæ郼鄈郹郻鄁鄀鄇鄅鄃酔酤酟酢酠鈁鈊鈄鈃鈚鈦鈏鈌鈀鈒é‡æ釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"], + ["dca1", "隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹äŗƒäŗ„äŗ¶å‚½å‚æ僆傮僄僊傓僈僂傰僁å‚ŗ傱僋僉傶å‚ø凗å‰ŗå‰ø剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩å–æ嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔唓å”Ø唤唏唍唉å”Æ唕唎唝唙唄唛堽唣唱壼嫇嫄嫋åŖŗåŖøåŖ±åŖµåŖ°åŖæ嫈åŖ»å«†"], + ["dd40", "åŖ·å«€å«ŠåŖ“åŖ¶å«åŖ¹åŖåƖåƘåƙ尟尳嵱嵣嵊嵄嵲嵬嵞åµØ嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀å¾Æå¾­ęƒ·ę…‰ę…Šę„«ę……ę„¶ę„²ę„®ę…†ę„Æę…ę„©ę…€ęˆ é…Øęˆ£ęˆ„ęˆ¤ę…ę±ę«ęę’ę‰ę ę¤"], + ["dda1", "ę³ę‘ƒęŸę•ę˜ę¹ę·ę¢ę£ęŒę¦ę°ęØꑁꐵęÆęŠęšę‘€ę„ę§ę‹ę§ę›ę®ę”ęŽę•ÆꖒꗓꚆꚌꚕꚐꚋꚊꚙꚔę™øęœ ę„¦ę„Ÿę¤øę„Žę„¢ę„±ę¤æę„…ę„Ŗę¤¹ę„‚ę„—ę„™ę„ŗę„ˆę„‰ę¤µę„¬ę¤³ę¤½ę„„ę£°ę„øꤓꄩꄀę„Æę„„ę„¶ę„˜ę„ę„“ę„Œę¤»ę„‹ę¤·ę„œę„ę„‘ę¤²ę„’ę¤Æę„»ę¤¼ę­†ę­…ę­ƒę­‚ę­ˆę­ę®›ļ؍ęÆ»ęƼ"], + ["de40", "ęƹęÆ·ęÆøęŗ›ę»–ę»ˆęŗę»€ęŗŸęŗ“ęŗ”ęŗ ęŗ±ęŗ¹ę»†ę»’ęŗ½ę»ęŗžę»‰ęŗ·ęŗ°ę»ęŗ¦ę»ęŗ²ęŗ¾ę»ƒę»œę»˜ęŗ™ęŗ’ęŗŽęŗęŗ¤ęŗ”ęŗæęŗ³ę»ę»Šęŗ—ęŗ®ęŗ£ē…‡ē…”ē…’ē…£ē… ē…ē…ē…¢ē…²ē…øē…Ŗē…”ē…‚ē…˜ē…ƒē…‹ē…°ē…Ÿē…ē…“"], + ["dea1", "ē…„ē…ē…šē‰ēŠēŠŒēŠ‘ēŠēŠŽēŒ¼ē‚ēŒ»ēŒŗē€ēŠē‰ē‘„ē‘Šē‘‹ē‘’ē‘‘ē‘—ē‘€ē‘ē‘ē‘Žē‘‚ē‘†ē‘ē‘”ē“”ē“æē“¾ē“½ē”ē•¹ē•·ę¦ƒē—Æē˜ē˜ƒē—·ē—¾ē—¼ē—¹ē—øē˜ē—»ē—¶ē—­ē—µē—½ēš™ēšµē›ē•ēŸē ē’ē–ēšē©ē§ē”ē™ē­ēŸ ē¢‡ē¢šē¢”ē¢ē¢„ē¢•ē¢…ē¢†ē¢”ē¢ƒē”¹ē¢™ē¢€ē¢–ē”»ē„¼ē¦‚ē„½ē„¹ēؑēؘēؙēؒēؗēؕēØ¢ēؓ"], + ["df40", "ē؛ēؐēŖ£ēŖ¢ēŖžē««ē­¦ē­¤ē­­ē­“ē­©ē­²ē­„ē­³ē­±ē­°ē­”ē­øē­¶ē­£ē²²ē²“ē²Æē¶ˆē¶†ē¶€ē¶ēµæē¶…ēµŗē¶Žēµ»ē¶ƒēµ¼ē¶Œē¶”ē¶„ēµ½ē¶’ē½­ē½«ē½§ē½Øē½¬ē¾¦ē¾„ē¾§ēæ›ēæœč€”č…¤č… č…·č…œč…©č…›č…¢č…²ęœ”č…žč…¶č…§č…Æ"], + ["dfa1", "č…„č…”čˆč‰‰č‰„č‰€č‰‚č‰…č“±čæč‘–č‘¶č‘¹č’č’č‘„č‘‘č‘€č’†č‘§č°č‘č‘½č‘šč‘™č‘“č‘³č‘č”‡č‘žč·čŗ萓č‘ŗ葃č‘øč²č‘…č©č™č‘‹čÆč‘‚č­č‘Ÿč‘°č¹č‘Žč‘Œč‘’č‘Æč“…č’Žč»č‘‡č¶č³č‘Øč‘¾č‘„č«č‘ č‘”č‘®č‘čœ‹čœ„č›·čœŒč›ŗč›–č›µčč›øčœŽčœ‰čœč›¶čœčœ…č£–č£‹č£č£Žč£žč£›č£šč£Œč£č¦…č¦›č§Ÿč§„č§¤"], + ["e040", "č§”č§ č§¢č§œč§¦č©¶čŖ†č©æč©”čØæč©·čŖ‚čŖ„詵čŖƒčŖč©“č©ŗč°¼č±‹č±Šč±„č±¤č±¦č²†č²„č²…č³ŒčµØčµ©č¶‘č¶Œč¶Žč¶č¶č¶“č¶”č¶č¶’č·°č· č·¬č·±č·®č·č·©č·£č·¢č·§č·²č·«č·“č¼†č»æč¼č¼€č¼…č¼‡č¼ˆč¼‚č¼‹é’é€æ"], + ["e0a1", "遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮é…Æ鉈鉒鈰éˆŗ鉦鈳鉄鉞銃鈮鉊鉆鉭鉬鉏鉠鉧é‰Æ鈶鉔鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎é›ŗ雽é›ø雵靳靷éø靲頏頍頎颬飶飹é¦Æ馲馰馵éŖ­éŖ«é­›é³Ŗ鳭鳧éŗ€é»½åƒ¦åƒ”僗åƒØ僳僛åƒŖ僝僤僓僬僰åƒÆ僣僠"], + ["e140", "凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂å—ŗ嘝嘄å—æ嗹墉唼墐墘墆墁å”æ唓墋å”ŗ墇墑墎唶墂墈唻墔墏壾儫嫜嫮嫄嫕å«Ŗ嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙å«Ø嫟孷åÆ "], + ["e1a1", "åƣ屣嶂嶀嵽嶆åµŗ嶁嵷嶊嶉嶈嵾嵼嶍嵹åµæ幘幙幓廘廑廗廎廜廕廙廒廔彄彃å½Æå¾¶ę„¬ę„Øę…ę…žę…±ę…³ę…’ę…“ę…²ę…¬ę†€ę…“ę…”ę…ŗꅛꅄꄻę…Ŗę…”ę…–ęˆ©ęˆ§ęˆ«ę«ę‘ę‘›ę‘ę‘“ę‘¶ę‘²ę‘³ę‘½ę‘µę‘¦ę’¦ę‘Žę’‚ę‘žę‘œę‘‹ę‘“ę‘ ę‘ę‘æęæę‘¬ę‘«ę‘™ę‘„ę‘·ę•³ę– ęš”ęš ęšŸęœ…ęœ„ęœ¢ę¦±ę¦¶ę§‰"], + ["e240", "ę¦ ę§Žę¦–ę¦°ę¦¬ę¦¼ę¦‘ę¦™ę¦Žę¦§ę¦ę¦©ę¦¾ę¦Æę¦æę§„ę¦½ę¦¤ę§”ę¦¹ę§Šę¦šę§ę¦³ę¦“ę¦Ŗę¦”ę¦žę§™ę¦—ę¦ę§‚ę¦µę¦„ę§†ę­Šę­ę­‹ę®žę®Ÿę® ęƃęƄęÆ¾ę»Žę»µę»±ę¼ƒę¼„ę»øę¼·ę»»ę¼®ę¼‰ę½Žę¼™ę¼šę¼§ę¼˜ę¼»ę¼’ę»­ę¼Š"], + ["e2a1", "ę¼¶ę½³ę»¹ę»®ę¼­ę½€ę¼°ę¼¼ę¼µę»«ę¼‡ę¼Žę½ƒę¼…ę»½ę»¶ę¼¹ę¼œę»¼ę¼ŗę¼Ÿę¼ę¼žę¼ˆę¼”ē†‡ē†ē†‰ē†€ē†…ē†‚ē†ē…»ē††ē†ē†—ē‰„ē‰“ēŠ—ēŠ•ēŠ“ēƒēē‘ēŒē‘¢ē‘³ē‘±ē‘µē‘²ē‘§ē‘®ē”€ē”‚ē”ƒē•½ē–ē˜–ē˜ˆē˜Œē˜•ē˜‘ē˜Šē˜”ēšøēžē¼ēž…ēž‚ē®ēž€ēÆē¾ēžƒē¢²ē¢Ŗē¢“ē¢­ē¢Øē”¾ē¢«ē¢žē¢„ē¢ ē¢¬ē¢¢ē¢¤ē¦˜ē¦Šē¦‹ē¦–ē¦•ē¦”ē¦“"], + ["e340", "ē¦—ē¦ˆē¦’ē¦ēØ«ē©ŠēØ°ēØÆēØØēئēŖØēŖ«ēŖ¬ē«®ē®ˆē®œē®Šē®‘ē®ē®–ē®ē®Œē®›ē®Žē®…ē®˜åŠ„ē®™ē®¤ē®‚ē²»ē²æē²¼ē²ŗē¶§ē¶·ē·‚ē¶£ē¶Ŗē·ē·€ē·…ē¶ē·Žē·„ē·†ē·‹ē·Œē¶Æē¶¹ē¶–ē¶¼ē¶Ÿē¶¦ē¶®ē¶©ē¶”ē·‰ē½³ēæ¢ēæ£ēæ„ēæž"], + ["e3a1", "č€¤ččœč†‰č††č†ƒč†‡č†č†Œč†‹čˆ•č’—č’¤č’”č’Ÿč’ŗč“Žč“‚č’¬č’®č’«č’¹č’“č“č“č’Ŗč’šč’±č“č’č’§č’»č’¢č’”č“‡č“Œč’›č’©č’Æč’Øč“–č’˜č’¶č“č’ č“—č“”č“’č“›č’°č’‘č™”čœ³čœ£čœØč«č€čœ®čœžčœ”čœ™čœ›čƒčœ¬ččœ¾č†čœ čœ²čœŖčœ­čœ¼čœ’čœŗčœ±čœµč‚čœ¦čœ§čœøčœ¤čœščœ°čœ‘č£·č£§č£±č£²č£ŗč£¾č£®č£¼č£¶č£»"], + ["e440", "č£°č£¬č£«č¦č¦”č¦Ÿč¦žč§©č§«č§ØčŖ«čŖ™čŖ‹čŖ’čŖčŖ–č°½č±Øč±©č³•č³č³—č¶–čø‰čø‚č·æčøč·½čøŠčøƒčø‡čø†čø…č·¾čø€čø„č¼č¼‘č¼Žč¼é„£é„œé„ é„¢é„Ÿé„é„šé„¤é„”鄛é…ŗ酲酹酳銄銤鉶銛é‰ŗ銠銔éŠŖ銍"], + ["e4a1", "銦銚銫鉹銗é‰æ銣鋮銎銂銕銢鉽銈銔銊銆銌銙銧鉾銇銩銝銋鈭隞隔é›æ靘靽éŗ靾鞃鞀鞂靻鞄鞁éæ韎韍頖颭颮餂餀餇馝馜駃馹馻é¦ŗ駂馽駇éŖ±é«£é«§é¬¾é¬æ魠魔魟鳱鳲鳵éŗ§åƒæ儃儰åƒø儆儇僶僾儋儌僽儊劋劌勱å‹Æ噈噂噌嘵噁噊噉噆噘"], + ["e540", "噚噀嘳嘽嘬嘾å˜øå˜Ŗå˜ŗ圚墫墝墱墠墣å¢Æ墬墄墔å£æå«æ嫓嫽嫷嫶嬃å«ø嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶔嶚嶞幩幝幠幜ē·³å»›å»žå»”å½‰å¾²ę†‹ę†ƒę…¹ę†±ę†°ę†¢ę†‰"], + ["e5a1", "ꆛꆓę†Æꆭꆟꆒę†Ŗę†”ę†ę…¦ę†³ęˆ­ę‘®ę‘°ę’–ę’ ę’…ę’—ę’œę’ę’‹ę’Šę’Œę’£ę’Ÿę‘Øę’±ę’˜ę•¶ę•ŗę•¹ę•»ę–²ę–³ęšµęš°ęš©ęš²ęš·ęšŖęšÆę؀ę؆ęØ—ę§„ę§øęØ•ę§±ę§¤ęØ ę§æę§¬ę§¢ę؛ęØę§¾ęØ§ę§²ę§®ęØ”ę§·ę§§ę©€ęØˆę§¦ę§»ęØę§¼ę§«ę؉ę؄ęؘęØ„ęØę§¶ęئęØ‡ę§“ęØ–ę­‘ę®„ę®£ę®¢ę®¦ę°ę°€ęÆæę°‚ę½ę¼¦ę½¾ę¾‡ęæ†ę¾’"], + ["e640", "ę¾ę¾‰ę¾Œę½¢ę½ę¾…ę½šę¾–ę½¶ę½¬ę¾‚ę½•ę½²ę½’ę½ę½—ę¾”ę¾“ę½ę¼€ę½”ę½«ę½½ę½§ę¾ę½“ę¾‹ę½©ę½æę¾•ę½£ę½·ę½Ŗę½»ē†²ē†Æē†›ē†°ē† ē†šē†©ē†µē†ē†„ē†žē†¤ē†”ē†Ŗē†œē†§ē†³ēŠ˜ēŠšē˜ē’ēžēŸē ēē›ē”ēšē™"], + ["e6a1", "ē¢ē’‡ē’‰ē’Šē’†ē’ē‘½ē’…ē’ˆē‘¼ē‘¹ē”ˆē”‡ē•¾ē˜„ē˜žē˜™ē˜ē˜œē˜£ē˜šē˜Øē˜›ēšœēšēšžēš›ēžēžēž‰ēžˆē£ē¢»ē£ē£Œē£‘ē£Žē£”ē£ˆē£ƒē£„ē£‰ē¦šē¦”ē¦ ē¦œē¦¢ē¦›ę­¶ēعēŖ²ēŖ“ēŖ³ē®·ēƋē®¾ē®¬ēƎē®Æē®¹ēƊē®µē³…ē³ˆē³Œē³‹ē··ē·›ē·Ŗē·§ē·—ē·”ēøƒē·ŗē·¦ē·¶ē·±ē·°ē·®ē·Ÿē½¶ē¾¬ē¾°ē¾­ēæ­ēæ«ēæŖēæ¬ēæ¦ēæØč¤č§č†£č†Ÿ"], + ["e740", "č†žč†•č†¢č†™č†—čˆ–č‰č‰“č‰’č‰č‰Žč‰‘č”¤č”»č”č”€č”©č”Žč”‰č”č”Ÿč”Šč”§č”œč“»č”«č“ŗč”ˆč”Œč““č”Ŗč“²č”•č“·č“«č“³č“¼č”’č“Ŗč“©č”–č“¾č”Øč”č”®č”‚č“½č”žč“¶č”±č”¦č“§č“Ø蓰č“Æč“¹č”˜č” č”°č”‹č”™č”Æč™¢"], + ["e7a1", "č–č£č¤č·čŸ”č³č˜č”č›č’č”čšč‘čžč­čŖ蝐蝎蝟蝝čÆč¬čŗč®čœč„čč»čµč¢č§č©č”šč¤…č¤Œč¤”č¤‹č¤—č¤˜č¤™č¤†č¤–č¤‘č¤Žč¤‰č¦¢č¦¤č¦£č§­č§°č§¬č«č«†čŖø諓諑諔諕čŖ»č«—čŖ¾č«€č«…č«˜č«ƒčŖŗčŖ½č«™č°¾č±č²č³„č³Ÿč³™č³Øč³šč³č³§č¶ č¶œč¶”č¶›čø čø£čø„čø¤čø®čø•čø›čø–čø‘čø™čø¦čø§"], + ["e840", "čø”čø’čø˜čø“čøœčø—čøšč¼¬č¼¤č¼˜č¼šč¼ č¼£č¼–č¼—é³é°éÆ遧遫é„Æ鄫鄩é„Ŗ鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌é‹Æ鋂é‹Ø鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"], + ["e8a1", "銵鋔鋆銓镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩é Ø頠頛頧颲餈é£ŗ餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌éŖ³é«¬é««é«³é«²é«±é­†é­ƒé­§é­“魱魦魶魵魰é­Ø魤魬鳼é³ŗé³½é³æ鳷铇铀鳹鳻铈铅铄éŗƒé»“鼏鼐儜儓儗儚儑凞匓叔噰噠噮"], + ["e940", "噳噦噣噭噲噞噷圜圛壈墽壉å¢æå¢ŗ壂墼壆嬗嬙嬛嬔嬔嬓嬐嬖å¬Ø嬚嬠嬞åÆÆ嶬嶱嶩嶧嶵嶰嶮å¶Ŗå¶Ø嶲嶭å¶Æ嶓幧å¹Ø幦å¹Æ廩廧廦å»Øå»„å½‹å¾¼ę†ę†Øę†–ę‡…ę†“ę‡†ę‡ę‡Œę†ŗ"], + ["e9a1", "ę†æę†øę†Œę“—ę“–ę“ę“ę“‰ę’½ę’‰ę“ƒę“›ę“³ę“™ę”³ę•æę•¼ę–¢ę›ˆęš¾ę›€ę›Šę›‹ę›ęš½ęš»ęšŗę›Œęœ£ęØ“ę©¦ę©‰ę©§ęزę©ØęØ¾ę©ę©­ę©¶ę©›ę©‘ęØØę©šęØ»ęØæꩁę©Ŗę©¤ę©ę©ę©”ę©Æę©©ę© ęØ¼ę©žę©–ę©•ę©ę©Žę©†ę­•ę­”ę­–ę®§ę®ŖꮫęƈęÆ‡ę°„ę°ƒę°†ę¾­ęæ‹ę¾£ęæ‡ę¾¼ęæŽęæˆę½žęæ„ę¾½ę¾žęæŠę¾Øē€„ę¾„ę¾®ę¾ŗę¾¬ę¾Ŗęæę¾æę¾ø"], + ["ea40", "ę¾¢ęæ‰ę¾«ęæę¾Æę¾²ę¾°ē‡…ē‡‚ē†æē†øē‡–ē‡€ē‡ē‡‹ē‡”ē‡Šē‡‡ē‡ē†½ē‡˜ē†¼ē‡†ē‡šē‡›ēŠēŠžē©ē¦ē§ē¬ē„ē«ēŖē‘æē’šē’ ē’”ē’’ē’•ē’”ē”‹ē–€ē˜Æē˜­ē˜±ē˜½ē˜³ē˜¼ē˜µē˜²ē˜°ēš»ē›¦ēžšēžēž”ēžœēž›ēž¢ēž£ēž•ēž™"], + ["eaa1", "ēž—ē£ē£©ē£„ē£Ŗē£žē££ē£›ē£”ē£¢ē£­ē£Ÿē£ ē¦¤ē©„ē©ˆē©‡ēŖ¶ēŖøēŖµēŖ±ēŖ·ēƞēÆ£ēƧēƝēƕēÆ„ēƚēÆØēƹēƔēÆŖēÆ¢ēƜēÆ«ēƘēƟē³’ē³”ē³—ē³ē³‘ēø’ēø”ēø—ēøŒēøŸēø ēø“ēøŽēøœēø•ēøšēø¢ēø‹ēøēø–ēøēø”ēø„ēø¤ē½ƒē½»ē½¼ē½ŗē¾±ēæÆč€Ŗč€©č¬č†±č†¦č†®č†¹č†µč†«č†°č†¬č†“č†²č†·č†§č‡²č‰•č‰–č‰—č•–č•…č•«č•č•“č•”č•˜"], + ["eb40", "č•€č•†č•¤č•č•¢č•„č•‘č•‡č•£č”¾č•›č•±č•Žč•®č•µč••č•§č• č–Œč•¦č•č•”č•„č•¬č™£č™„č™¤čž›čžčž—čž“čž’čžˆčžčž–čž˜č¹čž‡čž£čž…čžčž‘čžčž„čž”čžœčžščž‰č¤žč¤¦č¤°č¤­č¤®č¤§č¤±č¤¢č¤©č¤£č¤Æč¤¬č¤Ÿč§±č« "], + ["eba1", "č«¢č«²č«“č«µč«č¬”č«¤č«Ÿč«°č«ˆč«žč«”č«Øč«æč«Æč«»č²‘č²’č²č³µč³®č³±č³°č³³čµ¬čµ®č¶„č¶§čø³čø¾čøøč¹€č¹…čø¶čø¼čø½č¹čø°čøæčŗ½č¼¶č¼®č¼µč¼²č¼¹č¼·č¼“遶遹遻邆éƒŗ鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏éŗéŒø錼錛錣錒錁鍆錭錎錍鋋錝é‹ŗ錄錓鋹鋷錓錂錤é‹æ錩錹錵éŒŖ錔錌"], + ["ec40", "錋鋾錉錀鋻錖閼闍閾閹é–ŗ閶é–æ閵閽隩雔霋霒霐鞙鞗鞔韰éŸøé µé Æ頲餤餟餧餩馞駮駬駄駤駰駣é§Ŗ駩駧éŖ¹éŖæéŖ“éŖ»é«¶é«ŗ髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐é­ŗ鮕"], + ["eca1", "魽鮈铄铗铠铞铔铩铝铘铢铐铙铟éŗˆéŗ†éŗ‡éŗ®éŗ­é»•é»–é»ŗ鼒鼽儦億儢儤儠儩勓嚓嚌嚍嚆嚄嚃噾嚂å™æ嚁壖壔壏壒嬭嬄嬲嬣嬬嬧嬦å¬Æ嬮孻åƱåƲ嶷幬å¹Ŗå¾¾å¾»ę‡ƒę†µę†¼ę‡§ę‡ ę‡„ę‡¤ę‡Øꇞę“Æę“©ę“£ę“«ę“¤ę“ØꖁꖀꖶꗚꛒęŖęŖ–ęŖęŖ„ęŖ‰ęŖŸęŖ›ęŖ”ęŖžęŖ‡ęŖ“ęŖŽ"], + ["ed40", "ęŖ•ęŖƒęŖØęŖ¤ęŖ‘ę©æęŖ¦ęŖšęŖ…ęŖŒęŖ’꭛ꮭ갉ęæŒę¾©ęæ“ęæ”ęæ£ęæœęæ­ęæ§ęæ¦ęæžęæ²ęæęæ¢ęæØē‡”ē‡±ē‡Øē‡²ē‡¤ē‡°ē‡¢ē³ē®ēÆē’—ē’²ē’«ē’ē’Ŗē’­ē’±ē’„ē’Æē”ē”‘ē”’ē”ē–„ē™ƒē™ˆē™‰ē™‡ēš¤ē›©ēžµēž«ēž²ēž·ēž¶"], + ["eda1", "ēž“ēž±ēžØēŸ°ē£³ē£½ē¤‚ē£»ē£¼ē£²ē¤…ē£¹ē£¾ē¤„ē¦«ē¦Øē©œē©›ē©–ē©˜ē©”ē©šēŖ¾ē«€ē«ē°…ē°ēƲē°€ēÆæēÆ»ē°ŽēÆ“ē°‹ēƳē°‚ē°‰ē°ƒē°ēÆøēƽē°†ēÆ°ēƱē°ē°Šē³Øēø­ēø¼ē¹‚ēø³é”ˆēøøēøŖē¹‰ē¹€ē¹‡ēø©ē¹Œēø°ēø»ēø¶ē¹„ēøŗē½…ē½æē½¾ē½½ēæ“ēæ²č€¬č†»č‡„č‡Œč‡Šč‡…č‡‡č†¼č‡©č‰›č‰šč‰œč–ƒč–€č–č–§č–•č– č–‹č–£č•»č–¤č–šč–ž"], + ["ee40", "č•·č•¼č–‰č–”č•ŗč•øč•—č–Žč––č–†č–č–™č–č–č–¢č–‚č–ˆč–…č•¹č•¶č–˜č–č–Ÿč™Øčž¾čžŖčž­čŸ…čž°čž¬čž¹čžµčž¼čž®čŸ‰čŸƒčŸ‚čŸŒčž·čžÆčŸ„čŸŠčž“čž¶čžæčžøčž½čŸžčž²č¤µč¤³č¤¼č¤¾č„č„’č¤·č„‚č¦­č¦Æč¦®č§²č§³č¬ž"], + ["eea1", "č¬˜č¬–č¬‘č¬…č¬‹č¬¢č¬č¬’č¬•č¬‡č¬č¬ˆč¬†č¬œč¬“č¬šč±č±°č±²č±±č±Æč²•č²”č³¹čµÆč¹Žč¹č¹“č¹č¹Œč¹‡č½ƒč½€é‚…é¾é„ø醚醢醛醙醟醔醝醠鎔鎃éŽÆ鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌éŖ鍹鍗鍕鍒鍏鍱鍷鍻鍔鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞔鞜"], + ["ef40", "鞞鞝韕韔韱锁锄锊锉锅锃餄餫餬é¤Ŗ餳餲é¤Æ餭餱餰馘馣馔é؂é§ŗ駓駷駹é§ø駶駻駽駾駼é؃éŖ¾é«¾é«½é¬é«¼é­ˆé®šé®Ø鮞鮛鮦鮔鮄鮤鮆鮢鮠é®Æ铳鵁鵧银铮é“Æ铱é“øé“°"], + ["efa1", "鵅鵂鵃链铷鵀铽ēæµé“­éŗŠéŗ‰éŗéŗ°é»ˆé»šé»»é»æ鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙儰嬼屩å±Ŗå·€å¹­å¹®ę‡˜ę‡Ÿę‡­ę‡®ę‡±ę‡Ŗꇰꇫꇖꇩę“æę”„ę“½ę“øę”ę”ƒę“¼ę–”ę—›ę›šę››ę›˜ę«…ęŖ¹ęŖ½ę«”꫆ęŖŗęŖ¶ęŖ·ę«‡ęŖ“ęŖ­ę­žęÆ‰ę°‹ē€‡ē€Œē€ē€ē€…ē€”ē€Žęææē€€ęæ»ē€¦ęæ¼ęæ·ē€Šēˆē‡æē‡¹ēˆƒē‡½ē¶"], + ["f040", "ē’øē“€ē’µē“ē’¾ē’¶ē’»ē“‚ē””ē”“ē™œē™¤ē™™ē™ē™“ē™—ē™šēš¦ēš½ē›¬ēŸ‚ēžŗē£æē¤Œē¤“ē¤”ē¤‰ē¤ē¤’ē¤‘ē¦­ē¦¬ē©Ÿē°œē°©ē°™ē° ē°Ÿē°­ē°ē°¦ē°Øē°¢ē°„ē°°ē¹œē¹ē¹–ē¹£ē¹˜ē¹¢ē¹Ÿē¹‘ē¹ ē¹—ē¹“ē¾µē¾³ēæ·ēæø聵臑臒"], + ["f0a1", "č‡č‰Ÿč‰žč–“č—†č—€č—ƒč—‚č–³č–µč–½č—‡č—„č–æč—‹č—Žč—ˆč—…č–±č–¶č—’č˜¤č–øč–·č–¾č™©čŸ§čŸ¦čŸ¢čŸ›čŸ«čŸŖčŸ„čŸŸčŸ³čŸ¤čŸ”čŸœčŸ“čŸ­čŸ˜čŸ£čž¤čŸ—čŸ™č čŸ“čŸØčŸč„“č„‹č„č„Œč„†č„č„‘č„‰č¬Ŗč¬§č¬£č¬³č¬°č¬µč­‡č¬Æč¬¼č¬¾č¬±č¬„č¬·č¬¦č¬¶č¬®č¬¤č¬»č¬½č¬ŗč±‚č±µč²™č²˜č²—č³¾č“„č“‚č“€č¹œč¹¢č¹ č¹—č¹–č¹žč¹„č¹§"], + ["f140", "č¹›č¹šč¹”č¹č¹©č¹”č½†č½‡č½ˆč½‹é„Øé„ŗ鄻鄾é†Ø醄醧é†Æé†Ŗ鎵鎌鎒鎷鎛鎝鎉鎧鎎éŽŖ鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤éŽØ鎓鎣鎄闒闓闑隳雗雚巂雟雘雝霣霢霄鞬鞮éžØ鞫鞤éžŖ"], + ["f1a1", "鞢鞄韗韙韖韘éŸŗ锐锑锒é¢ø鄁餼é¤ŗé؏é؋é؉é؍é؄éؑé؊é؅é؇é؆髀髜鬈鬄鬅鬩鬵魊魌魋éƇéƆéƃé®æéƁ鮵é®øéƓ鮶éƄ鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚éŗŽéŗŒé»Ÿé¼é¼€é¼–鼄鼫é¼Ŗ鼩é¼Ø齌齕儓儵劖勷厓嚫嚭嚦嚧åšŖ嚬壚壝壛夒嬽嬾å¬æ巃幰"], + ["f240", "å¾æę‡»ę”‡ę”ę”ę”‰ę”Œę”Žę–„ę—žę—ę›žę«§ę« ę«Œę«‘ę«™ę«‹ę«Ÿę«œę«ę««ę«ę«ę«žę­ ę®°ę°Œē€™ē€§ē€ ē€–ē€«ē€”ē€¢ē€£ē€©ē€—ē€¤ē€œē€ŖēˆŒēˆŠēˆ‡ēˆ‚ēˆ…ēŠ„ēŠ¦ēŠ¤ēŠ£ēŠ”ē“‹ē“…ē’·ē“ƒē”–ē™ ēŸ‰ēŸŠēŸ„ēŸ±ē¤ē¤›"], + ["f2a1", "ē¤”ē¤œē¤—ē¤žē¦°ē©§ē©Øē°³ē°¼ē°¹ē°¬ē°»ē³¬ē³Ŗē¹¶ē¹µē¹øē¹°ē¹·ē¹Æē¹ŗē¹²ē¹“ē¹Øē½‹ē½Šē¾ƒē¾†ē¾·ēæ½ēæ¾čøč‡—č‡•č‰¤č‰”č‰£č—«č—±č—­č—™č—”č—Øč—šč——č—¬č—²č—øč—˜č—Ÿč—£č—œč—‘č—°č—¦č—Æč—žč—¢č €čŸŗč ƒčŸ¶čŸ·č ‰č Œč ‹č †čŸ¼č ˆčŸæč Šč ‚č„¢č„šč„›č„—č„”č„œč„˜č„č„™č¦ˆč¦·č¦¶č§¶č­č­ˆč­Šč­€č­“č­–č­”č­‹č­•"], + ["f340", "č­‘č­‚č­’č­—č±ƒč±·č±¶č²šč“†č“‡č“‰č¶¬č¶Ŗč¶­č¶«č¹­č¹øč¹³č¹Ŗč¹Æč¹»č»‚č½’č½‘č½č½č½“č¾“é…€é„æ醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雔霩霫霬éœØ霦"], + ["f3a1", "鞳鞷鞶韝韞韟锜错锝锗é¢æ颽颻颾鄈鄇鄃馦馧éؚéؕéØ„é؝éؤé؛éØ¢éØ éاéØ£é؞é؜éؔ髂鬋鬊鬎鬌鬷éÆŖéÆ«éÆ éƞéƤéƦéÆ¢éÆ°éƔéƗéƬéƜéƙéÆ„éƕéÆ”éƚ鵷鶁鶊鶄鶈鵱鶀éµø鶆鶋鶌鵽鵫鵓鵵鵰鵩鶅鵳鵻鶂éµÆéµ¹éµæ鶇éµØéŗ”éŗ‘黀黼鼭齀齁齍齖齗齘匷嚲"], + ["f440", "嚵嚳壣孅巆巇廮å»Æåæ€åæę‡¹ę”—ę”–ę”•ę”“ę—Ÿę›Øę›£ę›¤ę«³ę«°ę«Ŗę«Øę«¹ę«±ę«®ę«Æē€¼ē€µē€Æē€·ē€“ē€±ē‚ē€øē€æē€ŗē€¹ē€ē€»ē€³ēēˆ“ēˆ”ēŠØē½ē¼ē’ŗēš«ēšŖēš¾ē›­ēŸŒēŸŽēŸēŸēŸ²ē¤„ē¤£ē¤§ē¤Øē¤¤ē¤©"], + ["f4a1", "ē¦²ē©®ē©¬ē©­ē«·ē±‰ē±ˆē±Šē±‡ē±…ē³®ē¹»ē¹¾ēŗēŗ€ē¾ŗēææč¹č‡›č‡™čˆ‹č‰Øč‰©č˜¢č—æč˜č—¾č˜›č˜€č—¶č˜„č˜‰č˜…č˜Œč—½č ™č č ‘č —č “č –č„£č„¦č¦¹č§·č­ č­Ŗ譝č­Øč­£č­„č­§č­­č¶®čŗ†čŗˆčŗ„č½™č½–č½—č½•č½˜č½šé‚é…ƒé…é†·é†µé†²é†³é‹é“é»é éé”é¾é•ééØ鐙鐍鏵鐀鏷鐇鐎鐖鐒éŗ鐉éø鐊éæ"], + ["f540", "鏼鐌鏶鐑鐆闞闠闟霮éœÆ鞹鞻韽韾锠锢锣锟飁飂鄐鄎鄙鄌鄋鄓éزéØ“éرéجéØŖéضéØ©éØ®éØøéح髇髊髆鬐鬒鬑鰋鰈éƷ鰅鰒éÆø鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"], + ["f5a1", "鶠鶔鶜é¶Ŗ鶗鶔鶚鶢é¶Ø鶞鶣é¶æ鶩鶖鶦鶧éŗ™éŗ›éŗšé»„黤黧黦鼰鼮齛齠齞齝齙龑å„ŗå„¹åŠ˜åŠ—å›ƒåš½åš¾å­ˆå­‡å·‹å·å»±ę‡½ę”›ę¬‚ę«¼ę¬ƒę«ø꬀ēƒē„ēŠēˆē‰ē…ē†ēˆēˆšēˆ™ē¾ē”—ē™ŖēŸē¤­ē¤±ē¤Æē±”ē±“ē³²ēŗŠēŗ‡ēŗˆēŗ‹ēŗ†ēŗē½ē¾»č€°č‡č˜˜č˜Ŗč˜¦č˜Ÿč˜£č˜œč˜™č˜§č˜®č˜”č˜ č˜©č˜žč˜„"], + ["f640", "č ©č č ›č  č ¤č œč «č”Šč„­č„©č„®č„«č§ŗč­¹č­ø譅č­ŗ譻蓐蓔č¶ÆčŗŽčŗŒč½žč½›č½é…†é…„酅醹éæ鐻鐶鐩鐽鐼鐰鐹éŖ鐷鐬鑀鐱闄闤闣霵éœŗéžæ韔锤飉飆飀鄘鄖éعéؽ驆驄驂驁éØŗ"], + ["f6a1", "éØæ髍鬕鬗鬘鬖é¬ŗ魒鰫鰝鰜鰬鰣é°Ø鰩鰤鰔鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹é¶ŗ鶬鷈鶱鶭鷌鶳鷍鶲é¹ŗéŗœé»«é»®é»­é¼›é¼˜é¼šé¼±é½Žé½„齤龒äŗ¹å›†å›…å›‹å„±å­‹å­Œå·•å·‘å»²ę””ę” ę”¦ę”¢ę¬‹ę¬ˆę¬‰ę°ē•ē–ē—ē’ēˆžēˆŸēŠ©ēæē“˜ē“•ē“™ē“—ē™­ēš­ē¤µē¦“ē©°ē©±ē±—ē±œē±™ē±›ē±š"], + ["f740", "ē³“ē³±ēŗ‘ē½ē¾‡č‡žč‰«č˜“č˜µč˜³č˜¬č˜²č˜¶č ¬č Øč ¦č Ŗ蠄脱č¦æč¦¾č§»č­¾č®„č®‚č®†č®…č­æč“•čŗ•čŗ”čŗščŗ’čŗčŗ–čŗ—č½ č½¢é…‡é‘Œé‘é‘Šé‘‹é‘é‘‡é‘…é‘ˆé‘‰é‘†éœæ韣é”Ŗ锩飋鄔鄛驎驓驔驌驏驈驊"], + ["f7a1", "驉驒驐髐鬙鬫鬻魖魕鱆鱈é°æ鱄鰹鰳鱁鰼鰷鰓鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝éŗ¶é»°é¼µé¼³é¼²é½‚齫龕龢儽劙å£Ø壧儲孍巘č Æå½ęˆęˆƒęˆ„ę”©ę”„ę––ę›«ę¬‘ę¬’ę¬ęƊē›ēšēˆ¢ēŽ‚ēŽēŽƒē™°ēŸ”ē±§ē±¦ēŗ•č‰¬č˜ŗč™€č˜¹č˜¼č˜±č˜»č˜¾č °č ²č ®č ³č„¶č„“č„³č§¾"], + ["f840", "č®Œč®Žč®‹č®ˆč±…č“™čŗ˜č½¤č½£é†¼é‘¢é‘•é‘é‘—鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷é·Æ鷣鷫é·ø鷤鷶鷔鷮鷦鷲鷰鷢鷬鷓鷳é·Ø鷭黂黐黲黳鼆鼜é¼ø鼷鼶齃齏"], + ["f8a1", "齱齰齮é½Æå›“å›å­Žå±­ę”­ę›­ę›®ę¬“ēŸē”ēē ēˆ£ē“›ē“„ēŸ•ē¤øē¦·ē¦¶ē±Ŗēŗ—ē¾‰č‰­č™ƒč ø蠷蠵蔋讔讕čŗžčŗŸčŗ čŗé†¾é†½é‡‚é‘«é‘Ø鑩雄靆靃靇韇韄驞髕魙鱣鱧鱦鱢鱞鱠éø‚é·¾éø‡éøƒéø†éø…éø€éøéø‰é·æé·½éø„éŗ é¼žé½†é½“é½µé½¶å›”ę”®ę–øę¬˜ę¬™ę¬—ę¬šē¢ēˆ¦ēŠŖēŸ˜ēŸ™ē¤¹ē±©ē±«ē³¶ēŗš"], + ["f940", "ēŗ˜ēŗ›ēŗ™č‡ č‡”č™†č™‡č™ˆč„¹č„ŗč„¼č„»č§æč®˜č®™čŗ„čŗ¤čŗ£é‘®é‘­é‘Æ鑱鑳靉锲鄟é±Ø鱮鱭éø‹éøéøéøéø’éø‘éŗ”黵鼉齇é½øé½»é½ŗ齹圞ē¦ē±Æč ¼č¶²čŗ¦é‡ƒé‘“é‘ø鑶鑵驠鱓鱳鱱鱵éø”éø“黶鼊"], + ["f9a1", "龤ēØē„ē³·č™Ŗč ¾č ½č æč®žč²œčŗ©č»‰é‹é”³é”“飌鄔馫驤驦驧鬤éø•éø—é½ˆęˆ‡ę¬žēˆ§č™ŒčŗØ钂钀钁驩é©Ø鬮éø™ēˆ©č™‹č®Ÿé’ƒé±¹éŗ·ē™µé©«é±ŗéøē©ēŖéŗ¤é½¾é½‰é¾˜ē¢éŠ¹č£å¢»ę’ē²§å«ŗā•”ā•¦ā•—ā• ā•¬ā•£ā•šā•©ā•ā•’ā•¤ā••ā•žā•Ŗā•”ā•˜ā•§ā•›ā•“ā•„ā•–ā•Ÿā•«ā•¢ā•™ā•Øā•œā•‘ā•ā•­ā•®ā•°ā•Æā–“"] + ]; +}); + +// node_modules/iconv-lite/encodings/tables/big5-added.json +var require_big5_added = __commonJS((exports, module) => { + module.exports = [ + ["8740", "䏰䰲䘃䖦ä•ø\uD85C\uDE67䵷䖳\uD85F\uDCB1ä³¢\uD85F\uDCC5ć®•äœ¶ä„ä±‡ä±€\uD850\uDEBF\uD84D\uDE17\uD85C\uDF52\uD85B\uDE8B\uD85C\uDCD2䱗\uD868\uDF51䝏䗚䲅\uD85F\uDC6C䓇äŖ¤äš”\uD85A\uDF23ēˆ„\uD856\uDE54\uD846\uDE63\uD84F\uDE06\uD84F\uDF61ę™å›»"], + ["8767", "ē¶•å¤\uD862\uDFB9ć·“éœ“\uD85E\uDFEFåƛ\uD847\uDD5EåŖ¤ć˜„\uD867\uDEB0å«‘å®·å³¼ę®č–“\uD866\uDD45ē‘”ē’ć”µ\uD847\uDD53\uD84D\uDE9E\uD858\uDC21滬"], + ["87a1", "\uD856\uDCDE櫵ē«¼é¾—\uD850\uDD61\uD862\uDD0D\uD84C\uDDEA\uD842\uDE8A\uD84C\uDE5EäŒŠč’„é¾–éÆä¤°č˜“å¢–éŠéˆ˜ē§ēØ²ę™ ęØ©č¢ē‘ŒēÆ…ęž‚ēØ¬å‰é†ć“¦ē„\uD857\uDDB9ē“†éæ‡åž³ä¤Æ呌䄱\uD84D\uDE8E堘ē©²\uD85E\uDF65č®äš®\uD85B\uDE88䆁\uD857\uDD99ē®®\uD849\uDCBCéæˆ\uD849\uDCC1\uD849\uDCC9\uD849\uDCCCéæ‰č”„\uD84D\uDDBBä‚“éæŠä“”\uD86B\uDDFFꋁē®éæ‹"], + ["8840", "懀", 4, "\uD840\uDD0C懅\uD840\uDCD1\uD840\uDCCD懆懇\uD840\uDCCB\uD847\uDFE8懈\uD840\uDCCA應懊懋懌\uD840\uDD0E懍懎ĀƁĒĆ€Ä’Ć‰ÄšĆˆÅŒĆ“Ē‘Ć’ąææƊĢ„įŗ¾ąææƊĢŒį»€ĆŠÄĆ”ĒŽĆ É‘Ä“Ć©Ä›ĆØÄ«Ć­ĒĆ¬ÅĆ³Ē’Ć²Å«ĆŗĒ”Ć¹Ē–Ē˜Ēš"], + ["88a1", "ĒœĆ¼ąææĆŖĢ„įŗæąææĆŖĢŒį»ĆŖÉ”āšā›"], + ["8940", "\uD868\uDFA9\uD844\uDD45"], + ["8943", "ꔊ"], + ["8946", "äø½ę»éµŽé‡Ÿ"], + ["894c", "\uD85D\uDF35ę’‘ä¼šä¼Øä¾Ø兖兓农凤劔åŠØ医华发变团声处备夲夓学实実岚åŗ†ę€»ę–‰ęŸ¾ę „ꔄ굎ē‚¼ē”µēŗ¤ēŗ¬ēŗŗē»‡ē»ē»Ÿē¼†ē¼·č‰ŗ苏čÆč§†č®¾čÆ¢č½¦č½§č½®"], + ["89a1", "ē‘ē³¼ē·ę„†ē«‰åˆ§"], + ["89ab", "醌ē¢øé…žč‚¼"], + ["89b0", "č“‹čƒ¶\uD842\uDDE7"], + ["89b5", "č‚Ÿé»‡ä³é·‰éøŒä°¾\uD867\uDDF6\uD85C\uDC0EéøŠ\uD868\uDD33旁"], + ["89c1", "ęŗščˆ¾ē”™"], + ["89c5", "䤑马éŖé¾™ē¦‡\uD861\uDC6C\uD847\uDDCA\uD841\uDDD0\uD84A\uDEE6äø¤äŗäŗ€äŗ‡äŗæä»«ä¼·ć‘Œä¾½ć¹ˆå€ƒå‚ˆć‘½ć’“ć’„å††å¤…å‡›å‡¼åˆ…äŗ‰å‰¹åŠåŒ§ć—‡åŽ©ć•‘åŽ°ć•“å‚å£ć•­ć•²ćšå’“å’£å’“咹哐å“Æ唘唣å”Ø斘å”æć–„ć–æå——ć—…"], + ["8a40", "\uD85F\uDD84唄"], + ["8a43", "\uD843\uDC42\uD843\uDD15\uD854\uDD2B喐\uD84B\uDCC6槬\uD840\uDF41č¹†\uD853\uDDB8\uD865\uDCE5䁓\uD860\uDCBEēŗ\uD84B\uDC38ćؓ䟕\uD860\uDD5D\uD85A\uDDF2\uD853\uDDEAꓝ\uD843\uDD7C\uD843\uDFB4\uD843\uDCD5\uD844\uDCF4ę’č¹¾\uD843\uDE96\uD843\uDC0B\uD843\uDF64\uD84B\uDCA9\uD860\uDE56\uD851\uDCD3"], + ["8a64", "\uD843\uDD46\uD866\uDE4D\uD860\uDCE9䟓\uD853\uDEA7\uD84B\uDCC2éŖ²ć©§\uD865\uDDF4ćæ­ć”†\uD854\uDEC7\uD865\uDFD4\uD85E\uDCC8\uD84B\uDD44鵮頕"], + ["8a76", "䏙\uD858\uDCA5ę’“å“£\uD84B\uDD4C\uD84A\uDFCA\uD844\uDC77槻\uD844\uDC6F"], + ["8aa1", "\uD859\uDEDA\uD859\uDF16\uD85E\uDDA0ę“Ŗ\uD854\uDC52\uD843\uDC43č¹Ø\uD848\uDDA1\uD862\uDF4C\uD841\uDF31"], + ["8aac", "䠋\uD840\uDDA9ćæŗ唳\uD84B\uDD8D"], + ["8ab2", "\uD851\uDDC8\uD841\uDCFC\uD858\uDC97\uD843\uDF4C\uD843\uDD96啹䂻äŽŗ"], + ["8abb", "äŖ“\uD84A\uDE66\uD844\uDC9Dč†Ŗ飵\uD843\uDD9Cę¹ć§¾\uD849\uDF75č·€åš”ę‘¼ć¹ƒ"], + ["8ac9", "\uD869\uDE01\uD843\uDE09\uD84A\uDECF\uD84B\uDCC9"], + ["8ace", "\uD844\uDCC8\uD84E\uDDC2榒ć؆\uD860\uDE9Bć•ø\uD857\uDE49\uD848\uDCC7噒\uD843\uDF31\uD84B\uDCB2\uD865\uDF20ć’¼ę°½\uD853\uDE3B"], + ["8adf", "\uD85D\uDD74\uD84B\uDE8B\uD848\uDE08\uD869\uDE5B\uD863\uDCCD\uD843\uDE7A\uD843\uDC34\uD85A\uDC1Cē¾“\uD844\uDCCF\uD84A\uDC03\uD84A\uDD39ć—»\uD854\uDDE3\uD843\uDE8C\uD843\uDF8D\uD843\uDEAAć¾“\uD843\uDF30\uD843\uDD47\uD844\uDD4F\uD843\uDE4C"], + ["8af6", "\uD843\uDEAB\uD842\uDFA9\uD843\uDD48\uD844\uDCC0\uD844\uDD3Dćæ¹\uD849\uDE96ę²\uD843\uDFAD"], + ["8b40", "\uD84C\uDFF4\uD85D\uDE39\uD84A\uDFCE\uD843\uDD7E\uD843\uDD7F\uD84B\uDC51\uD84B\uDC55ćؘ\uD843\uDE98\uD844\uDCC7\uD843\uDF2E\uD869\uDE32\uD85A\uDF50\uD863\uDCD2\uD863\uDD99\uD863\uDCCAé–Ŗå“Œč‹„å–¹"], + ["8b55", "\uD867\uDEC3é°¦éŖ¶\uD85D\uDF5E\uD84B\uDDEEē…€č…­čƒ¬å°œ\uD859\uDD72č„“ćž—åŸ\uD860\uDCBD醶\uD843\uDEFA\uD843\uDE0F\uD843\uDE77\uD843\uDEFB旝\uD853\uDDEB昉\uD843\uDCD6åšÆ\uD849\uDFB5\uD844\uDCC9\uD843\uDE10\uD843\uDE78\uD844\uDC78\uD844\uDD48\uD860\uDE07\uD845\uDC55\uD843\uDE79\uD853\uDE50\uD84B\uDDA4婔\uD844\uDC1D\uD844\uDC1E\uD844\uDCF5\uD844\uDCF6垜\uD843\uDE11"], + ["8ba1", "\uD85D\uDE94\uD860\uDECD\uD843\uDFB5\uD843\uDE7B\uD854\uDD7E會\uD843\uDFB6\uD844\uDD80\uD854\uDED8\uD868\uDEBD\uD852\uDDDA\uD846\uDC3A\uD850\uDD77\uD860\uDE7C墙å‰Ø昚\uD855\uDF3Dē®²å­Ø䠀䬬鼧䧧鰟鮍\uD856\uDF74\uD84C\uDD3Då—»ć—²åš‰äøØ夂\uD846\uDFC1\uD87E\uDC78靑\uD840\uDC86乛äŗ»ć”¾å°£å½‘åæ„ć£ŗę‰Œę”µę­ŗę°µę°ŗē¬ēˆ«äø¬ēŠ­\uD852\uDCE9ē½’ē¤»ē³¹ē½“\uD858\uDE6A擁"], + ["8bde", "\uD858\uDF4B耂肀\uD859\uDE12\uD85A\uDD51åč”¤č§\uD85E\uDCB2č® č“é’…é•øé•æé—Ø\uD863\uDE0F韦锵风飞鄣\uD866\uDC10é±¼éøŸé»„ę­Æļ¤‡äø·\uD840\uDC87é˜ęˆ·é’¢"], + ["8c40", "å€»ę·¾\uD867\uDC73é¾¦ć·‰č¢\uD850\uDD4Eē·å³µä¬ \uD854\uDDCD教\uD857\uDD30ę„¢\uD862\uDE32č¾§é‡¶ē†‘ęœ™ēŽŗ\uD84C\uDE81\uD868\uDD07ć²‹\uD846\uDD80䬐ē£¤ē‚冮\uD861\uDF0Fä€‰ę©£\uD868\uDEBAäˆ£č˜\uD842\uDE6FēØŖ\uD866\uDD47\uD862\uDEEA靕ēåŒ¤\uD848\uDC7E鏓ē›™\uD862\uDDE3龧ēŸäŗ£äæ°å‚¼äøÆ众é¾Ø吓ē¶‹å¢’壐\uD847\uDDB6åŗ’åŗ™åæ‚\uD849\uDF12ꖋ"], + ["8ca1", "\uD84C\uDFF9ę¤™ę©ƒ\uD84F\uDC63ę³æ"], + ["8ca7", "ēˆ€\uD851\uDD05ēŽŒć»›\uD852\uDE13嬕ē’¹č®ƒ\uD857\uDCA4\uD855\uDE95ēŖ“ēƬē³ƒē¹¬č‹øč–—é¾©č¢é¾Ŗčŗ¹é¾«čæč•Ÿé§ éˆ”龬\uD863\uDDB9\uD845\uDC3F䁱䊢åؚ"], + ["8cc9", "é”Øę«ä‰¶åœ½"], + ["8cce", "藖\uD852\uDD7BčŠæ\uD85C\uDD0D䲁\uD85B\uDD74åµ»\uD85A\uDF15\uD85B\uDFBE龭龮宖é¾Æꛧē¹›ę¹—ē§Šć¶ˆä“ƒ\uD84C\uDE56\uD849\uDF96䎚䔶"], + ["8ce6", "峕\uD84E\uDF1Ač«¹å±øć“’\uD84D\uDD51åµøé¾²ē…—䕘\uD850\uDCEC\uD847\uDE23ä±·ć„ø摊\uD840\uDDA4\uD85B\uDC41č«Œä¾“\uD840\uDE39å¦æ腬锖\uD866\uDCFAå¼»"], + ["8d40", "\uD842\uDF9F"], + ["8d42", "\uD848\uDDC1\uD862\uDD6D䄂䚻\uD864\uDC79ć¼‡é¾³\uD868\uDDB5äƒøćŸ–ä›·\uD85B\uDC46䅼\uD861\uDEB2\uD85C\uDFFFä•­ć£”\uD855\uDC9A䕔䔛䶉䱻䵶ä—Ŗćæˆ\uD852\uDF0Fć™”ä“žä’½ä‡­å“¾åµˆåµ–ć·¼ć å¶¤å¶¹ć  ć ø幂åŗ½å¼„å¾ƒć¤ˆć¤”ć¤æć„ęƒ—ę„½å³„ć¦‰ę†·ę†¹ę‡ć¦øęˆ¬ęŠę‹„ęŒ˜ć§ø嚱"], + ["8da1", "ćØƒę¢ę»ę‡ę‘šć©‹ę“€å“•å˜”é¾ŸćŖ—ę–†ćŖ½ę—æę™“ć«²ęš’ć¬¢ęœ–ć­‚ęž¤ę €ć­˜ę”Šę¢„ć­²ć­±ć­»ę¤‰ę„ƒē‰œę„¤ę¦Ÿę¦…ć®¼ę§–ćÆę©„ę©“ę©±ęŖ‚ćƬęŖ™ćƲęŖ«ęŖµę«”꫶ꮁęƁęÆŖę±µę²Ŗć³‹ę“‚ę“†ę“¦ę¶ć³Æ궤궱ęø•ęø˜ęø©ęŗ†\uD862\uDDC0ęŗ»ę»¢ę»šé½æę»Øę»©ę¼¤ę¼“ćµ†\uD84F\uDF41ę¾ę¾¾ćµŖćµµē†·å²™ć¶Šē€¬ć¶‘ēē”ēÆēæē‚‰\uD840\uDF25äć—±\uD843\uDED8"], + ["8e40", "\uD84F\uDED7垾\uD85B\uDED3ē„¾\uD855\uDFE0ć™Žę¦¢\uD862\uDFE9å­“ē©‰\uD856\uDCE1\uD865\uDCD9ē©„ē©½\uD856\uDDACēŖ»ēŖ°ē«‚ē«ƒē‡‘\uD859\uDC8D䇊ē«šē«ē«Ŗä‡Æ咲\uD857\uDC01ē¬‹ē­•ē¬©\uD854\uDF0E\uD857\uDCFEē®¢ē­Æ莜\uD856\uDFB4\uD85B\uDC7FēÆč”ē®’ē®ø\uD857\uDD20涭\uD857\uDC65蒒ēÆŗē°†ē°µ\uD857\uDCC1ē±„ē²ƒ\uD852\uDC82ē²¦ę™½\uD851\uDD78ē³‰ē³‡ē³¦ē±“ē³³ē³µē³Ž"], + ["8ea1", "ē¹§ä”\uD85B\uDE44ēµ\uD85B\uDED6ē’ē¶‰ē¶«ē„µē¶³ē·’\uD850\uDC57\uD858\uDC29ē·¤ć““ē·µ\uD845\uDFF9ē·„\uD860\uDF6Dēø\uD858\uDD21\uD858\uDD5Aē¹®ēŗ’䌫鑬ēø§ē½€ē½ē½‡ē¤¶\uD858\uDED0駔ē¾—\uD858\uDF51ē¾£\uD845\uDE61\uD840\uDC68䕜\uD84D\uDF66䔃\uD860\uDF3Aēæŗ\uD859\uDC89者耈耝č€Øč€Æ\uD868\uDC87\uD85B\uDCC3č€»č€¼č”\uD849\uDF14䦉\uD859\uDE26\uD84F\uDDE3\uD859\uDEE8ęœ„č‚§\uD862\uDE48č„‡č„šå¢°\uD849\uDEF6ę±æ\uD859\uDC98\uD853\uDFB8ꓧ\uD845\uDC8A舘\uD846\uDC5Eę©“\uD852\uDE65\uD852\uDE95ä‘ŗ舩\uD842\uDF0D\uD85A\uDE52\uD84F\uDD7Eäæ¹\uD845\uDCFDč“¢č¢\uD85A\uDF0A\uD852\uDDA7\uD84D\uDD30\uD845\uDF73\uD84F\uDDF8čŠŖꤛ\uD87E\uDD94䇛"], + ["8f40", "蕋苐茚\uD843\uDE16\uD845\uDFB4曁\uD84C\uDD7D\uD84D\uDD5Ač‰»č‹¢čŒ˜\uD84F\uDE8B\uD85B\uDDA3\uD85A\uDF05\uD85A\uDF97\uD84D\uDDCEć¶æčŒå—¬čŽ…ä”‹\uD85B\uDDA5čŽ¬čč“ć‘¾\uD85B\uDED4ę©—č•šć’–\uD85B\uDE42\uD84B\uDEEF葘\uD856\uDFE4葱淓䓤ęŖ§č‘Š\uD84F\uDCB5ē„˜č’Ø\uD85A\uDF96\uD85B\uDE77\uD85B\uDE43蓞萏莑䒠蒓蓤\uD857\uDC91䉀\uD857\uDCC0ä•ƒč”“å«²\uD85B\uDE99ä”§č•³ä”–ęžæ蘖"], + ["8fa1", "\uD861\uDE25\uD861\uDE3B藁\uD85C\uDC88蘂\uD845\uDD82\uD85C\uDCCD\uD87E\uDDB2ä•Ŗč˜Ø晈\uD846\uDCA2号\uD85C\uDF9Ač™¾č±\uD868\uDCF8čŸ®\uD84B\uDC27čž±čŸšč å™”č™¬ę”–ä˜č”…č”†\uD85D\uDDE0\uD84F\uDDB9\uD85D\uDDE4č”žč¢œä™›č¢“č¢µęč£…ē·\uD85D\uDF0Fč¦‡č¦Šč¦¦č¦©č¦§č¦¼\uD862\uDE25觧\uD85E\uDD24\uD85E\uDEBDčŖœēž“釾čŖ\uD85E\uDE59ē«©\uD85E\uDF3A\uD84F\uDF8F䜓\uD85E\uDF38ē…¼č¬Œč¬Ÿ\uD855\uDC30\uD855\uDD65č¬æ譌譍čŖ©\uD852\uDE7A讐讛čŖÆ\uD845\uDEDFä˜•č”č²›\uD85F\uDD54\uD85F\uDD8F\uD87E\uDDD4ćœ„\uD85F\uDD53č³–\uD85F\uDD98\uD85F\uDDBDč“’č“ƒ\uD846\uDD10č³›ēœč“‘\uD853\uDCC9滐起"], + ["9040", "趩\uD860\uDC02\uD844\uDC14\uD852\uDD8Ać­¼\uD860\uDDBC\uD85C\uDD0Cē«§čŗ­čŗ¶č»ƒé‹”č¼™č¼­\uD860\uDF65\uD861\uDC12č¾„éŒƒ\uD868\uDE9F\uD842\uDE50č¾³ä¤Ŗ\uD862\uDDDE\uD861\uDD3D\uD84F\uDDBBå»ø\uD84C\uDE62čæ¹\uD868\uDC14\uD861\uDEBC\uD861\uDD01\uD848\uDF25榀\uD85B\uDED7逷\uD861\uDD3C\uD85E\uDEBE達\uD861\uDD6C\uD861\uDE0Bé‚Ø\uD861\uDF13郄\uD861\uDEE6é‚®éƒ½é…§ć«°é†©é‡„ē²¬\uD862\uDD33\uD847\uDE89éˆŽę²Ÿé‰é‰¢\uD855\uDDB9銹\uD862\uDEC6\uD84F\uDC9B\uD862\uDF0C\uD855\uDDDB"], + ["90a1", "\uD843\uDD31錬鍫\uD862\uDEE1\uD862\uDFEBē‚å«ƒ\uD862\uDEE2\uD862\uDEE5䄄鉄\uD862\uDFEC\uD863\uDC39\uD862\uDFFF鍳鑛čŗ¼é–…閦鐦閠ęæ¶äŠ¹\uD849\uDE7A\uD861\uDED8\uD844\uDE7C\uD84F\uDE2Eä§Ÿę°œé™»éš–ä…¬éš£\uD85B\uDED5ꇚ隶ē£µ\uD862\uDEE0隽双䦔\uD85B\uDCB8\uD840\uDE74\uD859\uDC10\uD864\uDCAF\uD864\uDCE5\uD852\uDED1\uD846\uDD15\uD84C\uDF0Aéœ±č™‚éœ¶ä؏䔽䖅\uD852\uDEE9ēµå­éœ›éœ\uD864\uDDD5靗孊\uD864\uDDEB靟鐄僐\uD84C\uDCB7\uD84C\uDCBC鞉鞟鞱鞾韀韒韠\uD855\uDC6C韮ēœ\uD865\uDC33éŸæ韵\uD865\uDC1D\uD85E\uDD7Aä«‘é “é ³é”‹é”¦ć¬Ž\uD85C\uDD75浑\uD841\uDE30\uD850\uDD5C"], + ["9140", "\uD855\uDF06飊颷飈飇ä«æ\uD85B\uDD27\uD845\uDED3喰飔飦飬éø餹\uD852\uDE29ä­²\uD866\uDC57\uD866\uDD05駵é،éØ»éؐ驘\uD855\uDF25曄\uD864\uDCB1\uD866\uDFD5é« é«¢\uD866\uDF05髓䰎鬔鬭\uD861\uDE00倓鬓\uD85A\uDDA8ć£ƒ\uD84C\uDC7D魐魀\uD867\uDD3E婅\uD846\uDC63鮎\uD850\uDE4B鰂éÆæ鰌\uD867\uDE68鷔\uD867\uDFB7\uD868\uDD92\uD868\uDDAB\uD868\uDCE1\uD868\uDD23\uD868\uDDDF鵾鶃\uD868\uDD34éøŽę¢ˆ"], + ["91a1", "鷄\uD848\uDD5B\uD868\uDD93\uD868\uDE20\uD846\uDD3B\uD868\uDE33铹\uD868\uDCB9\uD868\uDEB4éŗéŗ•éŗžéŗ¢ä““éŗŖéŗÆ\uD850\uDF64é»ć­ ć§„ć“ä¼²ćž¾\uD863\uDC2B鼂鼈䮖鐤\uD85B\uDDA2鼗鼖鼹嚟嚊齅é¦ø\uD864\uDC8B韲č‘æ齢齩ē«œé¾Žēˆ–䮾\uD852\uDD75\uD852\uDDBBē…·\uD852\uDDF8\uD850\uDF48\uD852\uDE51ēŽž\uD862\uDFDA\uD846\uDCFAē¦Ÿ\uD862\uDD7E\uD863\uDE36鍩鏳\uD862\uDE44鋬鎁鏋\uD862\uDD6C\uD851\uDCB9ēˆ—滫ē²ē©ƒēƒ\uD851\uDC73\uD850\uDFF8ē…¾\uD845\uDFEFē‚£\uD846\uDCBE\uD84D\uDD99滇\uD846\uDC85\uD855\uDC2F\uD845\uDFF8ćœ¢\uD845\uDEFB\uD846\uDC39ć›”\uD845\uDF74\uD846\uDCD1\uD857\uDF4Bćœ£\uD845\uDEC0坛\uD852\uDE25\uD844\uDFFE\uD844\uDEA8"], + ["9240", "\uD844\uDFC6\uD845\uDCB6蔃\uD84D\uDEA6蔃葕\uD852\uDD94\uD85C\uDD65\uD84F\uDE31\uD855\uDD5C\uD84F\uDEFB\uD85C\uDC52ä““\uD84D\uDEEE\uD866\uDD9D\uD85B\uDF26ęŸ¹ćœ³ć°•ć·§å”¬\uD846\uDD22ꠐ䁗\uD84D\uDF3F\uD850\uDCE1\uD850\uDC8B\uD850\uDD0F\uD85B\uDC21哋嚞\uD859\uDEB1嚒\uD843\uDFDF\uD842\uDFA8\uD843\uDE0D鏆\uD862\uDF13鎜ä»øå„«ć ™\uD851\uDC36äŗ¼\uD841\uDC65\uD840\uDF7F佋侊\uD855\uDE51å©Ø\uD840\uDDAB\uD840\uDFCB榙\uD840\uDF0A\uD841\uDC14ćµä¼©\uD840\uDEC0\uD863\uDEB3\uD840\uDE75č«š\uD840\uDE0Cäŗ˜"], + ["92a1", "働儍侢伃\uD852\uDE0E\uD84F\uDE8A佂倮偬傁äæŒäæ„å˜åƒ¼å…™å…›å…å…žę¹¶\uD84D\uDD95\uD84F\uDE39\uD84F\uDEBFęµ²\uD846\uDC84\uD84F\uDE89å†Ø凃\uD841\uDDE0䓝\uD841\uDCA3\uD841\uDC92\uD841\uDC91čµŗ\uD862\uDE9C\uD841\uDF0E剙劤\uD842\uDC73勔鍮ä™ŗē†Œ\uD850\uDF8C\uD843\uDC20\uD852\uDDAC\uD844\uDCE4꧑\uD843\uDE1Dē‘¹ć»žē’™ē”ē‘–ēŽ˜ä®Ž\uD852\uDEBC\uD850\uDC8Dåć–„ēˆ\uD850\uDCC9å–“\uD840\uDF45响\uD842\uDFC6圝鉝雓鍦埝垍åæć˜¾å£‹åŖ™\uD862\uDE46\uD845\uDEFA\uD845\uDF6F\uD845\uDF10åجå¦ø銏婾嫏åؒ\uD856\uDD46\uD846\uDDF3\uD846\uDC61\uD850\uDE95曵꓅ē‘ƒåØ”\uD857\uDE83"], + ["9340", "åŖ\uD862\uDFD7\uD841\uDC13鏠ē’Œ\uD844\uDF03ē„…䄲鐈\uD862\uDDFBéŽ½ćž å°žå²žå¹žå¹ˆ\uD846\uDD96\uD846\uDD7C\uD84E\uDEEE廍孏\uD846\uDD03\uD846\uDD04朁\uD846\uDCA0曝\uD845\uDEFE曓č„Ŗ\uD862\uDE47\uD847\uDDBA\uD84D\uDC72\uD862\uDDA8弌弎\uD846\uDD27\uD845\uDFABå©«\uD845\uDF3Bå­„č˜”\uD85D\uDDFDč” ę¾\uD84A\uDC60\uD849\uDE2Båæ›ćŗø\uD849\uDDAF\uD849\uDDBE\uD864\uDC88\uD85B\uDF73ꇀ\uD840\uDC3E\uD840\uDC46\uD849\uDE1Bę†™ę†˜ęµ\uD84B\uDC9B\uD84B\uDD07\uD851\uDED4\uD864\uDD4D"], + ["93a1", "ꑱ\uD851\uDE65\uD84A\uDF6AćØ©\uD84A\uDF22\uD84D\uDC50\uD866\uDCEA\uD84B\uDE78ęŒ·\uD869\uDC5Bę’¶ęŒ±ę‘\uD852\uDDE3\uD84B\uDD67ꊤ\uD84B\uDCA1ę»ę•«ę„²ćÆ“\uD84C\uDC8E\uD84C\uDEAD\uD852\uDD89\uD84C\uDEAB唍\uD84C\uDEE0\uD846\uDCD9\uD865\uDC3Fꛎ\uD84C\uDE89\uD84C\uDDB3櫠䆐\uD855\uDD84\uD862\uDF22\uD855\uDD8F\uD845\uDEFC\uD855\uDD5B\uD855\uDC25ē£®\uD84C\uDD03\uD846\uDC2A\uD84C\uDE34摤\uD84C\uDE0F\uD84C\uDD82\uD850\uDEC9Ꚏ\uD85B\uDD24ę™«ä®“ę˜°\uD85E\uDC70\uD847\uDDEBę™£\uD84C\uDED2\uD84C\uDEE1ꘞ\uD856\uDC72ć£‘\uD84E\uDC3A\uD84D\uDFBCć®™\uD84D\uDFA2\uD84C\uDFFEē“ć®–꾏\uD851\uDE2Aę¢¶ę žćƄęŖ¾ć”£\uD84D\uDFD5\uD851\uDC87ęØ³ę©’ę«‰ę¬…\uD846\uDD12ę”‘ę¢˜ę©ŒćƗę©ŗꭗ\uD84F\uDFC0\uD84F\uDC9A鎠鋲\uD862\uDFEA\uD862\uDECB"], + ["9440", "銉\uD860\uDC1E\uD862\uDDDCé‘§ę¶„ę¼‹\uD852\uDDEC굧\uD84F\uDF7Fć¶ęø„\uD850\uDC3CåؽęøŠå”‡ę“¤ē”‚ē„»\uD850\uDF1A\uD850\uDE76ēƒ±ē‰ēŠ‡ēŠ”\uD851\uDF8F\uD851\uDF25兹\uD852\uDEA4\uD841\uDDEBē‘ŗ\uD84F\uDEF8\uD84D\uDE5F\uD852\uDE4A\uD852\uDD17\uD857\uDFE1ć¼†ćŗ±\uD852\uDEDF\uD863\uDC23\uD84F\uDF35ę‚§ć»³ē“Œē¼éŽ‡ē·ä’Ÿ\uD85B\uDDEA䕑ē–ƒć½£\uD853\uDCD9\uD853\uDD06ć½˜ē••ē™³\uD869\uDDC6欙ē‘Ø\uD862\uDECC\uD852\uDDAB\uD852\uDD8Eć«»"], + ["94a1", "ć·\uD852\uDE4Eć»æ\uD852\uDDC5\uD852\uDCF3é‡ŗ圲鍂\uD862\uDEE3\uD846\uDC64僟\uD854\uDE21\uD854\uDDE7ēø\uD84C\uDE32ēœŽēœē»\uD851\uDE97\uD84D\uDF81ć©ž\uD852\uDCF0ēøē’›ćŗæ\uD852\uDEBA\uD852\uDEC7䃈\uD852\uDE96\uD858\uDDAE錇\uD855\uDD81ē žē¢ē¢ˆē£’ēē„™\uD85D\uDF41\uD855\uDEE3䄎ē¦›č’–ē¦„ęØ­\uD84F\uDEFAēØŗē§“䅮\uD845\uDEE6䄲鈵ē§±\uD843\uDD4C\uD852\uDD8C\uD840\uDE99\uD84F\uDDBA\uD845\uDF6Eć–—å•«ć•°ćšŖ\uD840\uDDD4\uD843\uDC0Dē«¢å©™\uD849\uDEF5\uD856\uDEAF\uD856\uDE9Cå؍\uD840\uDE5Bē£°åØŖ\uD856\uDFC6ē«¾ä‡¹ē±ē±­äˆ‘\uD856\uDFB3\uD857\uDEBC\uD857\uDEA6ē³\uD852\uDDF9\uD845\uDFB0ē²Žē±¼ē²®ęŖ²ē·œēø‡ē·“ē½Ž\uD858\uDE61"], + ["9540", "\uD858\uDD5C\uD85E\uDF48ē¶—\uD857\uDE82ä‰Ŗ\uD85A\uDF75\uD842\uDD16Ꟗ\uD840\uDC4E\uD84D\uDDCF埄\uD859\uDC12\uD858\uDFF8\uD852\uDD62ēæē¬§\uD842\uDC2C\uD856\uDEE9\uD857\uDD43ē¬Œ\uD857\uDE0Eé§¦č™…é©£ę؜\uD84D\uDC3Fć§¢\uD852\uDDF7\uD859\uDDADé؟\uD859\uDDA0蒀\uD85C\uDD27\uD85B\uDCD1ä“Ŗč„·ä‚čƒ†č„‰č…‚\uD859\uDFB4飃\uD85A\uDE42č‰¢č‰„\uD85A\uDE51葓\uD85B\uDDA7蘐\uD85C\uDE1BåŖ†ä…æ\uD846\uDC40嬫\uD846\uDCA1嫤\uD846\uDCD8蚠\uD87E\uDDBC\uD84F\uDD8Fč ­\uD85D\uDC22å؂"], + ["95a1", "č”®ä½…č¢‡č¢æč£¦č„„č„\uD855\uDE83č„”\uD85D\uDF85\uD85D\uDF84\uD862\uDFF5\uD862\uDFD9\uD862\uDF9C\uD862\uDDF9ćŗ­č’£ä›µä›ćŸ²čؽč؜\uD865\uDC48彍鈫\uD850\uDE84ꗔē„©ēƒ„\uD846\uDC45éµ­č²Ÿč³©\uD85F\uDDDC妚ēŸƒå§°ä®ć›”čøŖčŗ§\uD853\uDC09č¼°č½Šä‹“ę±˜ę¾»\uD848\uDF21ä¢›ę½¹ęŗ‹\uD845\uDFDAéÆ©ćšµ\uD852\uDD2F邻邗啱䤆醻鐄\uD862\uDE4B䁢\uD862\uDEFC鐧\uD863\uDC1D\uD863\uDC3Bč“„čث閙閧閗閖\uD863\uDD34ē‘…滂\uD852\uDCFF\uD852\uDE42\uD850\uDFEA滧\uD84C\uDE25随\uD863\uDEE7\uD863\uDE66\uD863\uDE65ć»Œ\uD852\uDDED\uD852\uDE78\uD84F\uDFEEē’ē‘«ć»¼é\uD864\uDCB0"], + ["9640", "ꔇä؝\uD864\uDC93\uD855\uDFDF靝éØ\uD862\uDD89\uD863\uDC26\uD862\uDF2F\uD858\uDFBEéŠŗå¬‘č­©ä¤¼ē¹\uD850\uDE1B鞛靱é¤ø\uD843\uDF26巁\uD862\uDFC5\uD852\uDEB2頟\uD865\uDCDA鋶\uD865\uDDD7釄䓀\uD862\uDF50\uD852\uDE67\uD862\uDF64飜\uD862\uDE45ć¼€éˆŖä¤„č”é¤»é„\uD85E\uDF06ć·½é¦›ä­Æé¦Ŗ驜\uD862\uDF65\uD856\uDCC8ęŖéؔ嫾éØÆ\uD866\uDCF1䮐\uD866\uDD48馼䮽䮗鍽唲\uD844\uDF02å ¢\uD852\uDDB8"], + ["96a1", "\uD845\uDCE8ē”„\uD849\uDF1F\uD84F\uDDB8ę£…ćµ½é‘˜ć¤§ę…\uD849\uDF81\uD84A\uDD6Bę„‡é±é±“é±»é°µé°é­æéƏ\uD867\uDE2D鮟\uD868\uDDF5\uD868\uDCFE铔䲮\uD850\uDD04éø˜ä²°é“Œ\uD868\uDDB4\uD868\uDCED\uD868\uDCF3\uD866\uDD2Fé¶„č’½\uD85B\uDE12\uD85B\uDFDF\uD85A\uDF82č—¼ä”³\uD85B\uDDA4\uD85B\uDE84\uD85B\uDDF0萠藮\uD85B\uDE00\uD84D\uDFD7\uD858\uDC64ē§¢\uD84D\uDD9C\uD84D\uDE40䤭\uD852\uDDDEćµ¢é›éŠ¾éˆ\uD840\uDEBFē¢¹é‰·é‘äæ¤ć‘€é¤\uD855\uDD5Dē ½ē””ē¢¶ē”‹\uD845\uDF57\uD84C\uDDC9\uD852\uDD41ćššä½²ęæšęæ™ē€žē€žå”\uD850\uDDB5垻壳垊铖埗ē„“ć’Æ\uD850\uDDACē‡«\uD85B\uDC40\uD853\uDF97å¬Ø\uD845\uDFB5\uD862\uDE49"], + ["9740", "ę„Œå«Žå؋䊼\uD851\uDC88ćœ¬ä­»\uD862\uDDFC鎻éŽø\uD846\uDCD6\uD843\uDF1Dč‘²\uD85B\uDCC0\uD845\uDC13\uD850\uDEFA\uD84B\uDC26\uD850\uDFC1妔\uD84F\uDDB7\uD859\uDF41ē¶Ø\uD858\uDD5B\uD858\uDCA4\uD852\uDDB9\uD852\uDD8B\uD862\uDDFAé‹„ē¢ć»©ē’“\uD862\uDF63\uD846\uDC9Fć»”\uD852\uDEB3꫘ē³ē»ć»–\uD852\uDE3E\uD852\uDE94\uD845\uDFD9\uD852\uDE66\uD840\uDFA7\uD845\uDC24\uD852\uDDE5ē‘ˆ\uD852\uDD16ē‚„\uD852\uDD76銄ē¦éŸ\uD841\uDCFE錱\uD862\uDECE\uD862\uDE16鎆\uD862\uDFE7\uD855\uDDD5䤵\uD862\uDE82ē…«"], + ["97a1", "\uD852\uDD43\uD843\uDCFF嚤\uD841\uDE1A\uD842\uDFEB\uD843\uDCB8唂ē§„\uD845\uDFFAē·¾\uD845\uDEC2\uD852\uDE50\uD846\uDC52ä”®éćœŠ\uD862\uDEC0\uD852\uDDAD妰\uD846\uDCBF\uD846\uDC83\uD85D\uDC84åŖ”ć›¢\uD84F\uDD5Bćš°é‰Ÿå©¹\uD862\uDE81\uD846\uDC62é“ć³\uD842\uDEB4äŖ–ć¦Šåƒ“ćµ©ćµŒ\uD844\uDF9Cē…µä‹»\uD860\uDE18ęø\uD864\uDCE4ä“«ęµ—\uD85F\uDE4Fē§ę²Æć³–\uD84F\uDFED\uD84F\uDE2Dęø‚ę¼ŒćµÆ\uD840\uDFF5ē•‘ćš¼ć“ˆäš€ć»šä”±å§„é‰®ä¤¾č½\uD863\uDC1C\uD85A\uDFC0å ’åŸˆć›–\uD845\uDC52ēƒ¾\uD850\uDF62\uD852\uDE71\uD84B\uDFE3\uD844\uDEB0\uD848\uDFBDę¢¹ę„§\uD844\uDF98\uD84D\uDCE5\uD85E\uDFF4\uD84D\uDEDF\uD862\uDE83\uD84D\uDFD6\uD84C\uDFFA\uD853\uDC9Fęؚ\uD84D\uDEAD\uD85B\uDCB7č¾ä“Ÿä“Ž"], + ["9840", "\uD85B\uDD26\uD85B\uDD51\uD85B\uDC82\uD85B\uDFDEę¼—\uD85C\uDD09čŒ½\uD845\uDF3A菭\uD85B\uDC80\uD85C\uDC53\uD845\uDFDB妉åŖ‚\uD845\uDFB3婔婱\uD846\uDD05\uD850\uDDFC札å§Æ\uD845\uDF3C曇ē†ŽéŽęšš\uD850\uDEA5å©®åØ«\uD850\uDE93ęØ«\uD84F\uDEF9\uD85D\uDF36\uD851\uDC5B\uD850\uDECAē„\uD850\uDE59\uD862\uDDE1ä¾°\uD85B\uDD28峂\uD851\uDCCE\uD85F\uDE4D\uD850\uDFBDę،\uD850\uDE56\uD844\uDF04ē‚¦ē„³\uD850\uDFE9ć¶„ę³Ÿ\uD87E\uDC25\uD852\uDE4Fē¹„姫å“Æć·³å½œ\uD852\uDE5D\uD845\uDFDFē¶¤č¦"], + ["98a1", "咅\uD84E\uDEFA\uD84C\uDF00\uD840\uDE14坾\uD842\uDCD5\uD841\uDE19ćæ„\uD847\uDF9E\uD868\uDEB6ē€ƒ\uD864\uDD5Båµ°ēŽē³“\uD862\uDE59\uD865\uDC20äæˆēæ§ē‹ēŒ\uD85E\uDEF4ēŒøēŒ¹\uD855\uDEF6ēēˆćŗ©\uD85E\uDF18遬ē‡µ\uD852\uDCF2ē”臶滊ēœŒć»‘ę²¢å›½ē™ēžēŸć»¢ć»°ć»“ć»ŗē““ć¼Žć½“ē•‚ē•­ē•²ē–ć½¼ē—ˆē—œćæ€ē™ćæ—ē™“ćæœē™ŗ\uD853\uDF5Cē†ˆå˜£č¦€å”©ä€ēƒä€¹ę”䁅旛ēž˜äŖäÆ属ēž¾ēŸ‹å£²ē ˜ē‚¹ē œä‚Øē ¹ē”‡ē”‘ē”¦č‘ˆ\uD855\uDD35ē¤³ę ƒē¤²ä„ƒ"], + ["9940", "䄉ē¦‘ē¦™č¾»ēØ†č¾¼ä…§ēŖ‘䆲ēŖ¼č‰¹ä‡„ē«ē«›ä‡äø”ē­¢ē­¬ē­»ē°’ē°›ä‰ ä‰ŗē±»ē²œäŠŒē²ø䊔ē³­č¾“ēƒ€\uD843\uDCCFē·ē·”ē·ē·½ē¾®ē¾“ēŠŸäŽ—耠耄ē¬¹č€®č€±č”ć·Œåž“ē‚ č‚·čƒ©ä­č„ŒēŒŖ脎脒ē• č„”äć¬¹č…–č…™č…š"], + ["99a1", "䐓å ŗč…¼č†„ä„č†“ä­č†„åŸÆč‡č‡¤č‰”ä’čŠ¦č‰¶č‹Šč‹˜č‹æä’°č—é™©ę¦Šč…ēƒµč‘¤ęƒ£č’ˆä”„č’¾č“”č“ø蔐č”øč•’ä”»č•Æč•°č— ä•·č™²čš’čš²č›Æé™…čž‹ä˜†ä˜—č¢®č£æ褤脇覑\uD85E\uDD67čØ©čØøčŖ”čŖ“č±‘č³”č³²č“œäž˜å”Ÿč·ƒäŸ­ä»®čøŗå—˜å”č¹±å—µčŗ°ä ·č»Žč»¢č»¤č»­č»²č¾·čæčæŠčæŒé€³é§„䢭飠鈓䤞éˆØ鉘鉫銱銮éŠæ"], + ["9a40", "鋣鋫鋳鋓鋽鍃鎄鎭䄅䄑éŗæ鐗匁鐝鐭鐾ä„Ŗé‘”é‘¹é”­é–¢ä¦§é—“é˜³ä§„ęž äؤ靀äص鞲韂噔䫤ęƒØ颹䬙飱唄餎餙冓餜餷鄂鄝鄢䭰駅䮝éؼ鬏ēŖƒé­©é®éƝéƱéÆ“ä±­é° ćÆ\uD846\uDFC2鵉é°ŗ"], + ["9aa1", "é»¾å™é¶“é¶½é·€é·¼é“¶č¾¶é¹»éŗ¬éŗ±éŗ½é»†é“œé»¢é»±é»øē«ˆé½„\uD840\uDC94\uD840\uDEB7\uD840\uDFA0ę¤šé“ƒå¦¬\uD841\uDCD7å”€é“ćž¹\uD841\uDDD5\uD841\uDE15\uD841\uDE76\uD845\uDEBA块ē…³\uD842\uDEC2\uD842\uDECD\uD842\uDFBFå‘Ŗ\uD87E\uDC3B\uD842\uDFCB咞\uD842\uDFFB\uD843\uDC3B\uD843\uDC53\uD843\uDC65\uD843\uDC7Cꃧ\uD843\uDC8Då™ŗ\uD843\uDCB5\uD843\uDCDD\uD843\uDCED\uD843\uDD6F\uD843\uDDB2\uD843\uDDC8ę„•é°Æčž„\uD843\uDE04\uD843\uDE0E\uD843\uDED7\uD843\uDF90\uD843\uDF2D\uD843\uDE73å° \uD843\uDFBCåø‹\uD844\uDC5C\uD844\uDC4F\uD844\uDC76ꜞ\uD844\uDC7B\uD844\uDC88\uD844\uDC96晇\uD844\uDCBF\uD844\uDCD3\uD844\uDD2F\uD844\uDD3Bå¤č’­\uD844\uDEE3\uD844\uDF75\uD844\uDF36讁\uD845\uDD77\uD845\uDE19\uD845\uDFC3\uD845\uDFC7ä¹øē‚»\uD846\uDC2D\uD846\uDD6A"], + ["9b40", "\uD846\uDE2D\uD846\uDE45\uD847\uDC2A\uD847\uDC70\uD847\uDCAC\uD847\uDEC8ꋃ\uD847\uDED5\uD847\uDF15ē†˜ę”•\uD848\uDC45ę§©ć›ˆ\uD848\uDE7C\uD848\uDFD7\uD848\uDFFA\uD849\uDF2A\uD84A\uDC71\uD84A\uDD4Fč‹½\uD84A\uDD67\uD84A\uDD93\uD84A\uDED5覄\uD84A\uDEE8č¾ \uD84A\uDF0Eéžø\uD84A\uDF3F锇éŖ½\uD84B\uDC4C"], + ["9b62", "\uD84B\uDC88\uD84B\uDCB7\uD856\uDFE8\uD84B\uDD08\uD84B\uDD12\uD84B\uDDB7\uD84B\uDD95\uD84B\uDE42\uD84B\uDF74\uD84B\uDFCC\uD84C\uDC33\uD84C\uDC66\uD84C\uDF1F\uD84C\uDFDEå¾±ę™ˆęšæ\uD85E\uDE79\uD84D\uDD67\uD84D\uDDF3ēˆ\uD852\uDDBAēŸ—\uD84D\uDE1A\uD84D\uDF16ēŗ‡\uD840\uDF46å¢µęœŽ"], + ["9ba1", "ꤘ\uD84E\uDEA7\uD85D\uDE57\uD857\uDFE2\uD84F\uDE11\uD84F\uDEB9\uD85D\uDDFE\uD848\uDC9A䣐äŖø\uD850\uDD19\uD862\uDE9A\uD850\uDEEE\uD850\uDF0D\uD850\uDC3B\uD850\uDF34\uD850\uDF96\uD852\uDE45\uD841\uDDCA凒\uD841\uDE11妟\uD847\uDEA8ć®¾\uD84F\uDCFF\uD851\uDC04\uD851\uDCD6垈\uD851\uDE74榛\uD851\uDF2F\uD861\uDDE8\uD866\uDDC9ć¢\uD848\uDDC3譞\uD862\uDF4E駖\uD852\uDC12\uD852\uDCFB\uD852\uDE15ēˆ‰\uD852\uDEC0\uD843\uDC78å„„\uD853\uDEA5\uD853\uDF86\uD841\uDF79軚\uD854\uDC2C劏åœæē…±\uD854\uDE99\uD855\uDC19\uD84F\uDF4A\uD852\uDEA7喼\uD855\uDC46\uD855\uDC6E\uD85A\uDF52é‡”ć‘³\uD855\uDD3F\uD85D\uDE32\uD855\uDD5E䜘\uD855\uDD62\uD855\uDD66\uD855\uDFC7\uD852\uDD3F\uD856\uDC5Då¦ć“»\uD84C\uDFCCꃞ\uD856\uDD03䝼\uD862\uDD48\uD856\uDEAE\uD856\uDF89\uD857\uDC06\uD847\uDD90垔ē…‘ę¾¶\uD858\uDD02\uD85F\uDC12遖\uD858\uDDB2\uD853\uDF9Ač­¢\uD859\uDC02\uD859\uDC4A"], + ["9c40", "嵛\uD85A\uDFF7č¼¶\uD859\uDC84\uD846\uDD1Cč«Ŗ\uD852\uDDF6\uD859\uDC88\uD84F\uDFEF\uD859\uDD12äƀ\uD859\uDDBF\uD859\uDEB5\uD849\uDF1Bé‘„\uD855\uDFE1ꆕåا\uD87E\uDCCD侻嚹\uD851\uDD21\uD859\uDEFCä¹Ŗ\uD852\uDD34é™–ę¶\uD85B\uDCBD昘脷\uD859\uDF99\uD85A\uDC6E\uD859\uDC11\uD85A\uDC5Eē‡Ÿ\uD85A\uDCC7ē­‚\uD864\uDCC0\uD842\uDE11\uD85A\uDD26鄄\uD85A\uDD39ē©…é·°\uD85A\uDDFAéئ\uD85A\uDE2D晟\uD859\uDC69\uD840\uDC21ē¦ƒ\uD85A\uDE34\uD85A\uDF5B哬\uD84D\uDD19菏\uD85A\uDF9D䛐\uD85B\uDCA4ē”»č”„\uD85B\uDDAE墶"], + ["9ca1", "朜\uD849\uDD8D\uD85C\uDC4B\uD85C\uDDCDć±”\uD85C\uDE80\uD85C\uDE85銁\uD848\uDD7A\uD85C\uDE8B錰\uD85C\uDEE6\uD852\uDDD0ę°¹é’Ÿ\uD85D\uDC50\uD843\uDEF8č §č£µ\uD84A\uDD26\uD861\uDC73\uD845\uDFB1ęŗø\uD852\uDE2A\uD846\uDC20ć¦¤ćš¹å°ē§£ä”æꚶ\uD867\uDCAD\uD866\uDCA4脃\uD85D\uDFCC\uD85E\uDC58囖䃟\uD845\uDE0A榔\uD84D\uDF2F\uD860\uDCE8\uD844\uDFC5ē†­č¦\uD85E\uDDDD\uD864\uDDA8婧䲷\uD85C\uDCAF\uD862\uDDAB\uD85E\uDDFD\uD85E\uDE0A\uD85E\uDF0B\uD85F\uDD66\uD850\uDD7Aē­ƒē„¾\uD860\uDC09ę¾µ\uD868\uDEDFę؃\uD860\uDF18厢\uD85B\uDE07éŽæę ¶é\uD860\uDD6F\uD860\uDC23\uD85A\uDDB5\uD844\uDFED\uD84C\uDE2F\uD860\uDC48嶅\uD863\uDC30\uD860\uDC83圕頣\uD862\uDD49嶫\uD852\uDD88ę–¾ę§•å’\uD852\uDEA5\uD84F\uDF81ć°‘ęœ¶\uD860\uDC90\uD860\uDCF4\uD860\uDD2E\uD847\uDFA1\uD860\uDD4F"], + ["9d40", "\uD860\uDD89\uD860\uDDAF\uD860\uDE1A\uD860\uDF06\uD860\uDF2F\uD860\uDF8A旊\uD861\uDC68\uD861\uDEAAä£ŗę¦\uD862\uDD56ē ˆé‰•\uD862\uDDB8䏲\uD862\uDDE7䏟\uD862\uDDE8\uD862\uDF46\uD862\uDFD4å§ø\uD863\uDC09č¼‹\uD863\uDFC5\uD864\uDCECē­‘\uD864\uDD10\uD864\uDD3Cć··\uD864\uDD5E\uD852\uDECAčæēŠåš‹\uD865\uDCE7\uD865\uDDE9\uD865\uDDB0\uD865\uDDB8\uD865\uDF32\uD866\uDCD1\uD866\uDD49\uD866\uDD6A\uD866\uDDC3\uD866\uDE28\uD866\uDF0E\uD867\uDD5A\uD867\uDD9BēŗŸ\uD867\uDEF8\uD867\uDF23䲤镇\uD868\uDE93ē†¢\uD868\uDEFF䶑递\uD869\uDDCB䶜\uD843\uDC9Cč¾¾å—"], + ["9da1", "č¾ŗ\uD849\uDCB0č¾¹\uD852\uDE93䔉ē¹æę½–ęŖ±ä»Ŗ擤\uD862\uDF2C\uD85E\uDC9Dćœŗčŗ€\uD845\uDFF5\uD860\uDC24\uD862\uDF6C\uD862\uDF99\uD85E\uDE3E\uD859\uDEAFć·«\uD85D\uDE55\uD84F\uDCB7\uD855\uDE35\uD856\uDD56äŗš\uD857\uDE81\uD858\uDE58åšæ\uD843\uDE6DčøŽå­­\uD84F\uDE88\uD853\uDC9Eꏞꋐ\uD845\uDFF6\uD846\uDC7Bę”°å˜­\uD857\uDC4A吚\uD854\uDF11ć·†\uD867\uDD98䱽嘢嘞ē½‰\uD857\uDED8儵\uD84F\uDD40蝰äøœ\uD843\uDFEA\uD843\uDD49\uD84D\uDEBAč„—éµžč“˜ē˜»é±…ē™Žēž¹é…å²č…ˆč‹·å˜„č„²č˜č‚½å—Ŗē„¢å™ƒå–\uD843\uDE9Dć—Žå˜…å—±ę›±\uD860\uDEE2昭ē”“嗰å–ŗ咗啲\uD843\uDC41\uD843\uDC96廐\uD854\uDD48\uD843\uDE76\uD84B\uDC62"], + ["9e40", "\uD843\uDEA2éŗ«ēµšå—ž\uD844\uDC75ęŠé­å’”č³ē‡¶é…¶ę¼ęŽ¹ę¾å•©\uD84A\uDF43é±²\uD84B\uDEB3å†šć“Ÿ\uD843\uDDA7冧呍唞唓ē™¦čø­\uD85A\uDC8Aē–±č‚¶č „čž†č£‡č†¶čœ\uD844\uDCC1䓬ēŒ„\uD851\uDF06å®čŒ‹\uD85A\uDC93噻\uD849\uDEF4\uD85F\uDD2F\uD850\uDDA3\uD85F\uDD73\uD85B\uDED0\uD85C\uDEB6酰\uD844\uDDD9鈈\uD84F\uDCFC\uD869\uDEA9\uD843\uDEAC\uD843\uDEF9ē‰¦\uD847\uDCA2䝎\uD853\uDFC2\uD85F\uDFF9\uD843\uDFEBäƒŗ"], + ["9ea1", "é±ę”Ÿ\uD84B\uDDA0䣳\uD851\uDFE0\uD867\uDD7C\uD843\uDFEC\uD843\uDE0Aę¢\uD85D\uDDA3\uD843\uDFED"], + ["9ead", "\uD858\uDC48\uD844\uDD87ē†£ēŗŽéµäøšäø„ć•·å¬ę²²å§ćš¬ć§œå½ćš„\uD851\uDE18墚\uD852\uDF6Ečˆ­å‘‹åžŖ\uD856\uDE95\uD842\uDD79"], + ["9ec5", "ć©’\uD849\uDC65ē“\uD867\uDEAC䓉éÆ­\uD84F\uDCFE\uD867\uDF30䱛\uD853\uDFA9\uD865\uDD9E\uD867\uDFDE葜\uD84F\uDDB6\uD85C\uDEB2\uD859\uDFB3\uD84D\uDF20ęŒ®ē“„\uD84F\uDEF7\uD84F\uDE2CćØŖé€ˆå‹Œć¹“ć™ŗ䗩\uD841\uDC8Eē™€å«°\uD843\uDEB6ē”ŗ\uD85F\uDF2E墧ä‚æ噼鮋嵓ē™”\uD869\uDC34éŗ…ä³”ē—¹ćŸ»ę„™\uD84C\uDCDA\uD850\uDFF2"], + ["9ef5", "噝\uD844\uDEA9垧\uD852\uDD63\uD867\uDE06刓\uD85C\uDCAEć–­ę±Šéµ¼"], + ["9f40", "ē±–鬹埞\uD845\uDF6Cå±“ę““\uD865\uDCD0\uD858\uDF35\uD85C\uDD64蚭\uD843\uDD28\uD85B\uDD22\uD852\uDEE2\uD843\uDD71"], + ["9f4f", "凾\uD847\uDF0F嶎霃\uD847\uDDD1éŗéŒē¬Ÿé¬‚峑ē®£ę‰ØęŒµé«æēƏé¬Ŗē±¾é¬®ē±‚ē²†é°•ēƼ鬉鼗鰛\uD852\uDD3E齚啳åƃäæ½éŗ˜äæ²å‰ ćø†å‹‘坧偖妷åø’éŸˆé¶«č½œå‘©éž“é„€éžŗåŒ¬ę„°"], + ["9fa1", "ę¤¬åšé°Šé“‚ä°»é™ę¦€å‚¦ē•†\uD845\uDF6D駚剳"], + ["9fae", "酙隁酜"], + ["9fb2", "酑\uD863\uDE97ęæ\uD85B\uDD23ę«Šå˜‘é†Žē•ŗꊅ\uD840\uDFFCēē±°\uD857\uDC21\uD84F\uDCFD"], + ["9fc1", "\uD852\uDD19ē›–鮝äøŖ\uD843\uDCD4čŽ¾č”‚"], + ["9fc9", "å±Šę§€åƒ­åŗåˆŸå·µä»Žę°±\uD840\uDDF2ä¼¹å’œå“šåŠšč¶‚ć—¾å¼Œć—³"], + ["9fdb", "ę­’é…¼é¾„é®—é ®é¢“éŖŗéŗØéŗ„ē…ŗē¬”"], + ["9fe7", "ęÆŗ蠘ē½ø"], + ["9feb", "嘠\uD869\uDE4Ač¹·é½“"], + ["9ff0", "č·”č¹éøœčøęŠ‚\uD860\uDF7DčøØč¹µē«“\uD852\uDE77ēؾē£˜ę³Ŗ詧ē˜‡"], + ["a040", "\uD862\uDE5Aé¼¦ę³ŽčŸ–ē—ƒ\uD868\uDEB2ē”“\uD87E\uDC40č“Œē‹¢ē±č¬­ēŒ‚ē“±č³«\uD852\uDEBBč˜Æå¾ŗč¢ ä’·"], + ["a055", "\uD846\uDC3B\uD85B\uDE05"], + ["a058", "č©¾\uD849\uDD1B"], + ["a05b", "ęƒ½ē™§é«—éµ„é®é®čŸµ"], + ["a063", "č č³·ēŒ¬éœ”é®°ć—–ēŠ²ä°‡ē±‘é„Š\uD858\uDD59ꅙ䰄éŗ–ę…½"], + ["a073", "坟ę…ÆęŠ¦ęˆ¹ę‹Žć©œę‡¢åŽŖ\uD84C\uDFF5ꍤꠂ旒"], + ["a0a1", "嵗\uD862\uDFC2čæš\uD863\uDE39"], + ["a0a6", "僙\uD847\uDD46ē¤†åŒ²é˜ø\uD843\uDF3B䁄"], + ["a0ae", "ēŸ¾"], + ["a0b0", "ē³‚\uD857\uDF1Aē³šēØ­č¦č£ēµē”…ē“²č¦”čˆšęœŒč¢\uD85D\uDC86聛ē“°č„ƒēœ¤č¦‰\uD859\uDFCCē•“\uD85B\uDED1čž©čŸŽč‡ˆčžŒč©‰č²­č­ƒēœ«ē“øč“šć˜µę¦²č¶¦"], + ["a0d4", "覩ē‘Øę¶¹čŸ\uD850\uDC11ē“§ć·›ē…¶ę‚¤ę†œć³‘ē…¢ę·"], + ["a0e2", "ē½±\uD862\uDF2Dē‰ęƒ©ä­¾åˆ ć°˜\uD84F\uDCC7\uD857\uDED7\uD85D\uDE56\uD855\uDD31\uD846\uDD44\uD844\uDEFE\uD866\uDD03\uD85B\uDDDC\uD85C\uDCAD峁\uD858\uDDAD\uD862\uDE0F\uD84D\uDE77\uD840\uDCEE\uD85A\uDC46\uD853\uDF0E䕢嬟\uD858\uDF4C齐éŗ¦\uD858\uDE6B"], + ["a3c0", "ā€", 31, "ā”"], + ["c6a1", "ā‘ ", 9, "ā‘“", 9, "ā…°", 9, "äø¶äøæäŗ…äŗ å†‚冖冫勹åŒø卩厶夊宀巛ā¼³å¹æå»“å½å½”ę”“ę— ē–’ē™¶č¾µéš¶ĀØĖ†ćƒ½ćƒ¾ć‚ć‚žć€ƒä»ć€…ć€†ć€‡ćƒ¼ļ¼»ļ¼½āœ½ć", 23], + ["c740", "恙", 58, "ć‚”ć‚¢ć‚£ć‚¤"], + ["c7a1", "ć‚„", 81, "Š", 5, "ŠŠ–", 4], + ["c840", "Š›", 26, "ёŠ¶", 25, "ā‡§ā†øā†¹ć‡\uD840\uDCCC乚\uD840\uDC8A刂䒑"], + ["c8a1", "龰冈龱\uD85D\uDE07"], + ["c8cd", "ļæ¢ļæ¤ļ¼‡ļ¼‚ćˆ±ā„–ā„”悛悜āŗ€āŗ„āŗ†āŗ‡āŗˆāŗŠāŗŒāŗāŗ•āŗœāŗāŗ„āŗ§āŗŖāŗ¬āŗ®āŗ¶āŗ¼āŗ¾ā»†ā»Šā»Œā»ā»ā»–ā»—ā»žā»£"], + ["c8f5", "ŹƒÉÉ›É”ɵœĆøŋŹŠÉŖ"], + ["f9fe", "ļæ­"], + ["fa40", "\uD841\uDD47鋛\uD841\uDDDF\uD84F\uDFC5č•ŒäŠµēÆå†µć™‰\uD852\uDD42\uD862\uDDE4鍄\uD846\uDDDBč‹®\uD84F\uDCC8ē ¼ę„ę‹Ÿ\uD852\uDD33\uD862\uDDAA\uD840\uDEA0\uD85A\uDFB3\uD844\uDF05侫\uD849\uDCED倈\uD85B\uDD29\uD85E\uDE84\uD84D\uDE00\uD852\uDEB1\uD849\uDD13倩\uD840\uDF7E徤\uD840\uDF80\uD840\uDF47ę»›\uD841\uDC1F偽儁ć‘ŗå„Žé”¬ćƒč–\uD852\uDDA4\uD841\uDC87兠\uD84C\uDFB4å…Ŗ\uD842\uDFFF\uD848\uDCFC\uD840\uDEE5\uD849\uDD30\uD841\uDD8E\uD84C\uDE33\uD846\uDD83å®‚č½\uD841\uDDB3\uD84F\uDC99冲å†ø"], + ["faa1", "é““å‡‰å‡å‡‘ć³œå‡“\uD852\uDEA6å†³å‡¢å‚å‡­čę¤¾\uD84D\uDF2D彻刋刦刼劵剗劔効勅ē°•č•‚å‹ č˜\uD85A\uDF13包\uD862\uDEDEå•‰ę»™\uD84F\uDF80\uD842\uDD54\uD84F\uDFEC匳卄\uD842\uDFE2ę³‹\uD845\uDF26ꠛē•ęŠćŗŖć£Œ\uD845\uDEE8ē‡ä’¢å­å“\uD861\uDEAB卾åæ\uD845\uDD96\uD845\uDE13ēŸ¦åŽ“\uD862\uDE9B厠厫厮ēŽ§\uD855\uDF72ć½™ēŽœåå…ę±‰ä¹‰åŸ¾å™ćŖ«\uD842\uDF8F叠\uD84F\uDFEB\uD84B\uDDA3叶\uD843\uDC77吓ē¹å”«ę™—ęµ›å‘­\uD85A\uDF53\uD843\uDD74啝咏咤䞦\uD845\uDF0D\uD843\uDEDD涓\uD843\uDD4D"], + ["fb40", "\uD862\uDDBC\uD849\uDE98啇䳭åÆē—喆喩嘅\uD846\uDCD7\uD850\uDC3A䕒\uD851\uDC35ęš³\uD844\uDCB4å˜·ę›\uD84C\uDE8Aęš¤ęš­å™å™ē£±å›±éž‡å¾åœ€å›Æ园\uD862\uDF66ć˜£\uD844\uDE4F坆\uD850\uDDA5ę±®ē‚‹å‚ćš±\uD85B\uDC7E埦\uD845\uDC16堃\uD845\uDC54\uD850\uDF63å ¦\uD852\uDFF5唜å¢Ŗć•”å£ å£œ\uD844\uDE3C壻åÆæ坃\uD868\uDD50\uD850\uDE78é“ć–”å¤Ÿę¢¦ć›ƒę¹™"], + ["fba1", "\uD845\uDE3Eåؤ啓\uD845\uDE92č”…å§‰\uD843\uDD4E\uD85B\uDC81\uD85B\uDD2A\uD845\uDFDC姙\uD845\uDFFB\uD845\uDFB2\uD85B\uDDA6ęµ±\uD846\uDC28\uD845\uDED5姹\uD85B\uDE45åŖ«å©£ć›¦\uD852\uDDA9å©·ćœˆåŖ–ē‘„嫓\uD85B\uDFA1\uD849\uDD54涅\uD846\uDD11ćœ²\uD845\uDEB8åŗƒå‹å­¶ę–ˆå­¼\uD85E\uDE0E䀄䔝\uD840\uDE04åÆ•ę… \uD846\uDE34\uD856\uDDCC\uD841\uDDA5åƳ宝䓐尅\uD846\uDF44尓ēŽå°”\uD847\uDCA5\uD85A\uDF28屉䣝岅峩å³Æ嶋\uD847\uDDF9\uD847\uDE37哐哘嵆\uD847\uDEA4å²ŗå·—č‹¼ć ­\uD852\uDD01\uD848\uDC49\uD848\uDD73芇栶ćƂåø®ęŖŠå¹µå¹ŗ\uD851\uDCBC\uD843\uDCD3厦äŗ·å»åŽØ\uD845\uDF71åø‰å»“\uD861\uDC82"], + ["fc40", "å»¹å»»ć¢ å»¼ę ¾é›å¼\uD840\uDDC1\uD87E\uDC94ć«žä¢®\uD844\uDF3Aå¼ŗ\uD85A\uDC88\uD848\uDFD0彘\uD849\uDC71彣鞽\uD85B\uDE6E彲鍀\uD862\uDE36å¾§å¶¶ćµŸ\uD854\uDE50\uD847\uDF6A\uD85C\uDCF8\uD849\uDE68釖\uD840\uDE9E\uD862\uDE29ꀱꚅ\uD846\uDC77ć„£ć·‡ć˜¹åž\uD849\uDFB4ē„±ć¹€ę‚žę‚¤ę‚³\uD852\uDD82\uD852\uDD8F\uD85E\uDE53ē’¤åƒ”åŖ ę…¤č¤ę…‚\uD87E\uDCA6\uD85B\uDED2ę†å‡“\uD841\uDE56ꆇå®Ŗ\uD84F\uDFB7"], + ["fca1", "\uD84A\uDC5Fꇓ\uD862\uDF9D\uD866\uDD5Dę‡ć¤²\uD84A\uDD80\uD84A\uDCC1ę€£ę…œę”žęŽ‹\uD840\uDD18ꋅ\uD845\uDF70ꋕ\uD84B\uDE0Dę¬\uD852\uDDDFćؗęøęø\uD844\uDF8E\uD845\uDFFCę’ę¾Š\uD84B\uDE36頔\uD850\uDC8C\uD855\uDF1Dꓔ꓄鑻橦ęŗć©—ę•ę¼–\uD852\uDE28\uD852\uDE23ꖅꕭꕟ\uD84C\uDC7Eę–µ\uD852\uDD40ä¬·ę—‘äƒ˜\uD846\uDC29ę— ę—£åæŸ\uD84D\uDC00ꘘ\uD84C\uDDF7\uD84C\uDDF8Ꙅ\uD84C\uDDA4\uD84C\uDDA5ꙋ\uD843\uDE75ꙧ\uD854\uDDE6ę™³ę™“\uD847\uDE3D\uD84C\uDE31\uD861\uDDF4\uD84C\uDDC8\uD854\uDF13ēŸ…\uD84A\uDCF7é¦¤ęœ‚\uD850\uDF9C\uD852\uDE21欫ę§ŗ\uD84D\uDFC2ęžę§ę¢\uD850\uDDCD\uD864\uDCEDęŸ—ä“©ę ¢ę¹éˆ¼ę \uD84C\uDFE6\uD85B\uDDA0ę”"], + ["fd40", "\uD84D\uDC6F꧔ę؋\uD862\uDEDFę„³ę£ƒ\uD84D\uDDCDę¤ę¤€ć“²ć؁\uD84D\uDE3C殀Ɡꄔ\uD862\uDE4Aä‹¼ę¤¶ę¦˜ć®”\uD840\uDFC9č£å‚ę§¹\uD84D\uDE59\uD848\uDD2Aę©…\uD84D\uDF03ęŖćÆ³ęž±ę«ˆ\uD864\uDD9Cć°ę¬\uD842\uDD23ęƒžę¬µę­“\uD849\uDFCDęŗµ\uD84E\uDEDB\uD840\uDFB5\uD846\uDD58ć€å”\uD84E\uDF5AęÆ”\uD84F\uDEFCęÆœę°·\uD849\uDC8B\uD852\uDCF1\uD85A\uDF51ę±ščˆ¦ę±¹\uD84F\uDDBC䓅\uD84F\uDDBD\uD850\uDDA4\uD852\uDD0C\uD852\uDD00"], + ["fda1", "\uD84F\uDCC9ć›„ć³«\uD843\uDD32鮃\uD84C\uDDF9\uD849\uDC91ē¾ę ·\uD85B\uDD25\uD85B\uDDA1\uD85B\uDDEBę¶–ęµœę¹¼ę¼„\uD852\uDD7F\uD850\uDC85\uD85B\uDE72č”³\uD85B\uDF74å‡‡ę²œęøč®\uD862\uDF21ęøÆ\uD84F\uDE2Fē‘“\uD84F\uDF82ē§Œę¹åŖ‘\uD84C\uDC4Bęæøćœę¾\uD84F\uDE30ę»ŗ\uD845\uDC97\uD850\uDC3Dä••é°ę½„ę½œćµŽę½“\uD864\uDD70ć“»ę¾Ÿ\uD850\uDD44ęæ“\uD850\uDC91\uD850\uDD55\uD850\uDC39\uD84F\uDFF0\uD84F\uDFB4\uD850\uDD3F凟\uD850\uDD56\uD850\uDD57\uD850\uDD40\uD858\uDDDDē‹ē¾ē‚§ē‚ēƒŒēƒ•ēƒ–ēƒŸä„„ć·Øē†“ē†–\uD850\uDE77ē„«ē……åŖˆē…Šē…®å²œ\uD850\uDF65ē…é¢\uD850\uDEC1ē„¬\uD851\uDC5A\uD852\uDE27\uD852\uDE22ē†ŗ\uD862\uDFE8ē‚½ēˆŽ"], + ["fe40", "鑂ēˆ•å¤‘鑃ēˆ¤é\uD855\uDE05ēˆ®ē‰€\uD852\uDD74ę¢½ē‰•ē‰—ć¹•\uD84C\uDC44ę ę¼½ēŠ‚ēŒŖēŒ«\uD852\uDC23\uD862\uDC2B䣭\uD862\uDC04ēŒØēŒ®ēēŽŖ\uD843\uDC3A\uD85A\uDE2Eē‰ē‘‰\uD850\uDDE2\uD845\uDEE7\uD852\uDE24ę˜£ć›…\uD852\uDDB7\uD852\uDD8D\uD852\uDDFBē·ē•ę¤ƒ\uD852\uDE26ē¹\uD841\uDDC3ć»—ē‘œ\uD84A\uDCADē‘ \uD863\uDEB2ē‘‡ē¤ē‘¶čŽ¹ē‘¬ćœ°ē‘“鏱ęجē’‚ä„“\uD852\uDE8C"], + ["fea1", "\uD850\uDD5F\uD852\uDE79\uD862\uDF8F孆\uD863\uDC03\uD846\uDC9Eē“ˆ\uD846\uDD88ē”Žē“©ē”ž\uD863\uDED9\uD846\uDE4BåƗ\uD863\uDEAC鎅ē•ē•Šē•§ē•®\uD853\uDF82ć¼„\uD853\uDD13ē–Žē‘ē–žē–“ē˜‚ē˜¬ē™‘ē™ē™Æē™¶\uD858\uDFF5ēšč‡ÆćŸø\uD85A\uDD11\uD85A\uDD0Eēš”ēš„ēš·ē›Œ\uD85B\uDF9Fč‘¢\uD854\uDC9D\uD854\uDD7D\uD847\uDE1Cēœžēœ¦ē€ę’Æ\uD854\uDE20ē˜\uD84C\uDEACēžÆ\uD862\uDD64\uD862\uDD68\uD845\uDEC1ēŸ“ē ‰\uD844\uDF76\uD852\uDE12ę£Šē¢Æē£‡ē£“éš„ē¤®\uD855\uDDE0ē£—ē¤“ē¢±\uD85D\uDE0Cč¾øč¢„\uD862\uDF2B\uD858\uDC83\uD849\uDE1Cē¦†č¤€ę¤‚ē¦€\uD856\uDC57ē¦\uD85E\uDF39ē¤¼ē¦©ęøŖ\uD85C\uDD26ćŗØē§†\uD864\uDD0Dē§”"] + ]; +}); + +// node_modules/iconv-lite/encodings/dbcs-data.js +var require_dbcs_data = __commonJS((exports, module) => { + module.exports = { + shiftjis: { + type: "_dbcs", + table: function() { + return require_shiftjis(); + }, + encodeAdd: { "Ā„": 92, "ā€¾": 126 }, + encodeSkipVals: [{ from: 60736, to: 63808 }] + }, + csshiftjis: "shiftjis", + mskanji: "shiftjis", + sjis: "shiftjis", + windows31j: "shiftjis", + ms31j: "shiftjis", + xsjis: "shiftjis", + windows932: "shiftjis", + ms932: "shiftjis", + "932": "shiftjis", + cp932: "shiftjis", + eucjp: { + type: "_dbcs", + table: function() { + return require_eucjp(); + }, + encodeAdd: { "Ā„": 92, "ā€¾": 126 } + }, + gb2312: "cp936", + gb231280: "cp936", + gb23121980: "cp936", + csgb2312: "cp936", + csiso58gb231280: "cp936", + euccn: "cp936", + windows936: "cp936", + ms936: "cp936", + "936": "cp936", + cp936: { + type: "_dbcs", + table: function() { + return require_cp936(); + } + }, + gbk: { + type: "_dbcs", + table: function() { + return require_cp936().concat(require_gbk_added()); + } + }, + xgbk: "gbk", + isoir58: "gbk", + gb18030: { + type: "_dbcs", + table: function() { + return require_cp936().concat(require_gbk_added()); + }, + gb18030: function() { + return require_gb18030_ranges(); + }, + encodeSkipVals: [128], + encodeAdd: { "ā‚¬": 41699 } + }, + chinese: "gb18030", + windows949: "cp949", + ms949: "cp949", + "949": "cp949", + cp949: { + type: "_dbcs", + table: function() { + return require_cp949(); + } + }, + cseuckr: "cp949", + csksc56011987: "cp949", + euckr: "cp949", + isoir149: "cp949", + korean: "cp949", + ksc56011987: "cp949", + ksc56011989: "cp949", + ksc5601: "cp949", + windows950: "cp950", + ms950: "cp950", + "950": "cp950", + cp950: { + type: "_dbcs", + table: function() { + return require_cp950(); + } + }, + big5: "big5hkscs", + big5hkscs: { + type: "_dbcs", + table: function() { + return require_cp950().concat(require_big5_added()); + }, + encodeSkipVals: [41676] + }, + cnbig5: "big5hkscs", + csbig5: "big5hkscs", + xxbig5: "big5hkscs" + }; +}); + +// node_modules/iconv-lite/encodings/index.js +var require_encodings = __commonJS((exports, module) => { + var modules = [ + require_internal(), + require_utf16(), + require_utf7(), + require_sbcs_codec(), + require_sbcs_data(), + require_sbcs_data_generated(), + require_dbcs_codec(), + require_dbcs_data() + ]; + for (i = 0;i < modules.length; i++) { + module = modules[i]; + for (enc in module) + if (Object.prototype.hasOwnProperty.call(module, enc)) + exports[enc] = module[enc]; + } + var module; + var enc; + var i; +}); + +// node_modules/iconv-lite/lib/streams.js +var require_streams = __commonJS((exports, module) => { + var Buffer2 = __require("buffer").Buffer; + var Transform = __require("stream").Transform; + module.exports = function(iconv) { + iconv.encodeStream = function encodeStream(encoding, options) { + return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options); + }; + iconv.decodeStream = function decodeStream(encoding, options) { + return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options); + }; + iconv.supportsStreams = true; + iconv.IconvLiteEncoderStream = IconvLiteEncoderStream; + iconv.IconvLiteDecoderStream = IconvLiteDecoderStream; + iconv._collect = IconvLiteDecoderStream.prototype.collect; + }; + function IconvLiteEncoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.decodeStrings = false; + Transform.call(this, options); + } + IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteEncoderStream } + }); + IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) { + if (typeof chunk != "string") + return done(new Error("Iconv encoding stream needs strings as its input.")); + try { + var res = this.conv.write(chunk); + if (res && res.length) + this.push(res); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteEncoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) + this.push(res); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteEncoderStream.prototype.collect = function(cb) { + var chunks = []; + this.on("error", cb); + this.on("data", function(chunk) { + chunks.push(chunk); + }); + this.on("end", function() { + cb(null, Buffer2.concat(chunks)); + }); + return this; + }; + function IconvLiteDecoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.encoding = this.encoding = "utf8"; + Transform.call(this, options); + } + IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteDecoderStream } + }); + IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) { + if (!Buffer2.isBuffer(chunk)) + return done(new Error("Iconv decoding stream needs buffers as its input.")); + try { + var res = this.conv.write(chunk); + if (res && res.length) + this.push(res, this.encoding); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteDecoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) + this.push(res, this.encoding); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteDecoderStream.prototype.collect = function(cb) { + var res = ""; + this.on("error", cb); + this.on("data", function(chunk) { + res += chunk; + }); + this.on("end", function() { + cb(null, res); + }); + return this; + }; +}); + +// node_modules/iconv-lite/lib/extend-node.js +var require_extend_node = __commonJS((exports, module) => { + var Buffer2 = __require("buffer").Buffer; + module.exports = function(iconv) { + var original = undefined; + iconv.supportsNodeEncodingsExtension = !(Buffer2.from || new Buffer2(0) instanceof Uint8Array); + iconv.extendNodeEncodings = function extendNodeEncodings() { + if (original) + return; + original = {}; + if (!iconv.supportsNodeEncodingsExtension) { + console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"); + console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility"); + return; + } + var nodeNativeEncodings = { + hex: true, + utf8: true, + "utf-8": true, + ascii: true, + binary: true, + base64: true, + ucs2: true, + "ucs-2": true, + utf16le: true, + "utf-16le": true + }; + Buffer2.isNativeEncoding = function(enc) { + return enc && nodeNativeEncodings[enc.toLowerCase()]; + }; + var SlowBuffer = __require("buffer").SlowBuffer; + original.SlowBufferToString = SlowBuffer.prototype.toString; + SlowBuffer.prototype.toString = function(encoding, start, end) { + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.SlowBufferToString.call(this, encoding, start, end); + if (typeof start == "undefined") + start = 0; + if (typeof end == "undefined") + end = this.length; + return iconv.decode(this.slice(start, end), encoding); + }; + original.SlowBufferWrite = SlowBuffer.prototype.write; + SlowBuffer.prototype.write = function(string, offset, length, encoding) { + if (isFinite(offset)) { + if (!isFinite(length)) { + encoding = length; + length = undefined; + } + } else { + var swap = encoding; + encoding = offset; + offset = length; + length = swap; + } + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.SlowBufferWrite.call(this, string, offset, length, encoding); + if (string.length > 0 && (length < 0 || offset < 0)) + throw new RangeError("attempt to write beyond buffer bounds"); + var buf = iconv.encode(string, encoding); + if (buf.length < length) + length = buf.length; + buf.copy(this, offset, 0, length); + return length; + }; + original.BufferIsEncoding = Buffer2.isEncoding; + Buffer2.isEncoding = function(encoding) { + return Buffer2.isNativeEncoding(encoding) || iconv.encodingExists(encoding); + }; + original.BufferByteLength = Buffer2.byteLength; + Buffer2.byteLength = SlowBuffer.byteLength = function(str, encoding) { + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.BufferByteLength.call(this, str, encoding); + return iconv.encode(str, encoding).length; + }; + original.BufferToString = Buffer2.prototype.toString; + Buffer2.prototype.toString = function(encoding, start, end) { + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.BufferToString.call(this, encoding, start, end); + if (typeof start == "undefined") + start = 0; + if (typeof end == "undefined") + end = this.length; + return iconv.decode(this.slice(start, end), encoding); + }; + original.BufferWrite = Buffer2.prototype.write; + Buffer2.prototype.write = function(string, offset, length, encoding) { + var _offset = offset, _length = length, _encoding = encoding; + if (isFinite(offset)) { + if (!isFinite(length)) { + encoding = length; + length = undefined; + } + } else { + var swap = encoding; + encoding = offset; + offset = length; + length = swap; + } + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.BufferWrite.call(this, string, _offset, _length, _encoding); + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + if (string.length > 0 && (length < 0 || offset < 0)) + throw new RangeError("attempt to write beyond buffer bounds"); + var buf = iconv.encode(string, encoding); + if (buf.length < length) + length = buf.length; + buf.copy(this, offset, 0, length); + return length; + }; + if (iconv.supportsStreams) { + var Readable = __require("stream").Readable; + original.ReadableSetEncoding = Readable.prototype.setEncoding; + Readable.prototype.setEncoding = function setEncoding(enc, options) { + this._readableState.decoder = iconv.getDecoder(enc, options); + this._readableState.encoding = enc; + }; + Readable.prototype.collect = iconv._collect; + } + }; + iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() { + if (!iconv.supportsNodeEncodingsExtension) + return; + if (!original) + throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called."); + delete Buffer2.isNativeEncoding; + var SlowBuffer = __require("buffer").SlowBuffer; + SlowBuffer.prototype.toString = original.SlowBufferToString; + SlowBuffer.prototype.write = original.SlowBufferWrite; + Buffer2.isEncoding = original.BufferIsEncoding; + Buffer2.byteLength = original.BufferByteLength; + Buffer2.prototype.toString = original.BufferToString; + Buffer2.prototype.write = original.BufferWrite; + if (iconv.supportsStreams) { + var Readable = __require("stream").Readable; + Readable.prototype.setEncoding = original.ReadableSetEncoding; + delete Readable.prototype.collect; + } + original = undefined; + }; + }; +}); + +// node_modules/iconv-lite/lib/index.js +var require_lib2 = __commonJS((exports, module) => { + var Buffer2 = require_safer().Buffer; + var bomHandling = require_bom_handling(); + var iconv = exports; + iconv.encodings = null; + iconv.defaultCharUnicode = "ļæ½"; + iconv.defaultCharSingleByte = "?"; + iconv.encode = function encode(str, encoding, options) { + str = "" + (str || ""); + var encoder = iconv.getEncoder(encoding, options); + var res = encoder.write(str); + var trail = encoder.end(); + return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res; + }; + iconv.decode = function decode(buf, encoding, options) { + if (typeof buf === "string") { + if (!iconv.skipDecodeWarning) { + console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"); + iconv.skipDecodeWarning = true; + } + buf = Buffer2.from("" + (buf || ""), "binary"); + } + var decoder = iconv.getDecoder(encoding, options); + var res = decoder.write(buf); + var trail = decoder.end(); + return trail ? res + trail : res; + }; + iconv.encodingExists = function encodingExists(enc) { + try { + iconv.getCodec(enc); + return true; + } catch (e) { + return false; + } + }; + iconv.toEncoding = iconv.encode; + iconv.fromEncoding = iconv.decode; + iconv._codecDataCache = {}; + iconv.getCodec = function getCodec(encoding) { + if (!iconv.encodings) + iconv.encodings = require_encodings(); + var enc = iconv._canonicalizeEncoding(encoding); + var codecOptions = {}; + while (true) { + var codec = iconv._codecDataCache[enc]; + if (codec) + return codec; + var codecDef = iconv.encodings[enc]; + switch (typeof codecDef) { + case "string": + enc = codecDef; + break; + case "object": + for (var key2 in codecDef) + codecOptions[key2] = codecDef[key2]; + if (!codecOptions.encodingName) + codecOptions.encodingName = enc; + enc = codecDef.type; + break; + case "function": + if (!codecOptions.encodingName) + codecOptions.encodingName = enc; + codec = new codecDef(codecOptions, iconv); + iconv._codecDataCache[codecOptions.encodingName] = codec; + return codec; + default: + throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); + } + } + }; + iconv._canonicalizeEncoding = function(encoding) { + return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); + }; + iconv.getEncoder = function getEncoder(encoding, options) { + var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec); + if (codec.bomAware && options && options.addBOM) + encoder = new bomHandling.PrependBOM(encoder, options); + return encoder; + }; + iconv.getDecoder = function getDecoder(encoding, options) { + var codec = iconv.getCodec(encoding), decoder = new codec.decoder(options, codec); + if (codec.bomAware && !(options && options.stripBOM === false)) + decoder = new bomHandling.StripBOM(decoder, options); + return decoder; + }; + var nodeVer = typeof process !== "undefined" && process.versions && process.versions.node; + if (nodeVer) { + nodeVerArr = nodeVer.split(".").map(Number); + if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) { + require_streams()(iconv); } - }; + require_extend_node()(iconv); + } + var nodeVerArr; + if (false) { + } }); -// node_modules/cli-spinners/index.js -var require_cli_spinners = __commonJS((exports, module) => { - var spinners = Object.assign({}, require_spinners()); - var spinnersList = Object.keys(spinners); - Object.defineProperty(spinners, "random", { - get() { - const randomIndex = Math.floor(Math.random() * spinnersList.length); - const spinnerName = spinnersList[randomIndex]; - return spinners[spinnerName]; +// node_modules/os-tmpdir/index.js +var require_os_tmpdir = __commonJS((exports, module) => { + var isWindows = process.platform === "win32"; + var trailingSlashRe = isWindows ? /[^:]\\$/ : /.\/$/; + module.exports = function() { + var path2; + if (isWindows) { + path2 = process.env.TEMP || process.env.TMP || (process.env.SystemRoot || process.env.windir) + "\\temp"; + } else { + path2 = process.env.TMPDIR || process.env.TMP || process.env.TEMP || "/tmp"; } - }); - module.exports = spinners; -}); - -// node_modules/emoji-regex/index.js -var require_emoji_regex2 = __commonJS((exports, module) => { - module.exports = () => { - return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; + if (trailingSlashRe.test(path2)) { + path2 = path2.slice(0, -1); + } + return path2; }; }); -// node_modules/ms/index.js -var require_ms = __commonJS((exports, module) => { - var s = 1000; - var m = s * 60; - var h = m * 60; - var d = h * 24; - var w = d * 7; - var y = d * 365.25; - module.exports = function(val, options) { - options = options || {}; - var type = typeof val; - if (type === "string" && val.length > 0) { - return parse(val); - } else if (type === "number" && isFinite(val)) { - return options.long ? fmtLong(val) : fmtShort(val); +// node_modules/tmp/lib/tmp.js +var require_tmp = __commonJS((exports, module) => { + /*! + * Tmp + * + * Copyright (c) 2011-2017 KARASZI Istvan + * + * MIT Licensed + */ + var fs2 = __require("fs"); + var path2 = __require("path"); + var crypto = __require("crypto"); + var osTmpDir = require_os_tmpdir(); + var _c = process.binding("constants"); + var tmpDir = osTmpDir(); + var RANDOM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + var TEMPLATE_PATTERN = /XXXXXX/; + var DEFAULT_TRIES = 3; + var CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR); + var EBADF = _c.EBADF || _c.os.errno.EBADF; + var ENOENT = _c.ENOENT || _c.os.errno.ENOENT; + var DIR_MODE = 448; + var FILE_MODE = 384; + var _removeObjects = []; + var _gracefulCleanup = false; + var _uncaughtException = false; + function _randomChars(howMany) { + var value = [], rnd = null; + try { + rnd = crypto.randomBytes(howMany); + } catch (e) { + rnd = crypto.pseudoRandomBytes(howMany); } - throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); - }; - function parse(str) { - str = String(str); - if (str.length > 100) { - return; + for (var i = 0;i < howMany; i++) { + value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]); } - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); - if (!match) { + return value.join(""); + } + function _isUndefined(obj) { + return typeof obj === "undefined"; + } + function _parseArguments(options, callback) { + if (typeof options == "function") { + return [callback || {}, options]; + } + if (_isUndefined(options)) { + return [{}, callback]; + } + return [options, callback]; + } + function _generateTmpName(opts) { + if (opts.name) { + return path2.join(opts.dir || tmpDir, opts.name); + } + if (opts.template) { + return opts.template.replace(TEMPLATE_PATTERN, _randomChars(6)); + } + const name = [ + opts.prefix || "tmp-", + process.pid, + _randomChars(12), + opts.postfix || "" + ].join(""); + return path2.join(opts.dir || tmpDir, name); + } + function tmpName(options, callback) { + var args = _parseArguments(options, callback), opts = args[0], cb = args[1], tries = opts.name ? 1 : opts.tries || DEFAULT_TRIES; + if (isNaN(tries) || tries < 0) + return cb(new Error("Invalid tries")); + if (opts.template && !opts.template.match(TEMPLATE_PATTERN)) + return cb(new Error("Invalid template provided")); + (function _getUniqueName() { + const name = _generateTmpName(opts); + fs2.stat(name, function(err) { + if (!err) { + if (tries-- > 0) + return _getUniqueName(); + return cb(new Error("Could not get a unique tmp filename, max tries reached " + name)); + } + cb(null, name); + }); + })(); + } + function tmpNameSync(options) { + var args = _parseArguments(options), opts = args[0], tries = opts.name ? 1 : opts.tries || DEFAULT_TRIES; + if (isNaN(tries) || tries < 0) + throw new Error("Invalid tries"); + if (opts.template && !opts.template.match(TEMPLATE_PATTERN)) + throw new Error("Invalid template provided"); + do { + const name = _generateTmpName(opts); + try { + fs2.statSync(name); + } catch (e) { + return name; + } + } while (tries-- > 0); + throw new Error("Could not get a unique tmp filename, max tries reached"); + } + function file(options, callback) { + var args = _parseArguments(options, callback), opts = args[0], cb = args[1]; + opts.postfix = _isUndefined(opts.postfix) ? ".tmp" : opts.postfix; + tmpName(opts, function _tmpNameCreated(err, name) { + if (err) + return cb(err); + fs2.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err2, fd) { + if (err2) + return cb(err2); + if (opts.discardDescriptor) { + return fs2.close(fd, function _discardCallback(err3) { + if (err3) { + try { + fs2.unlinkSync(name); + } catch (e) { + if (!isENOENT(e)) { + err3 = e; + } + } + return cb(err3); + } + cb(null, name, undefined, _prepareTmpFileRemoveCallback(name, -1, opts)); + }); + } + if (opts.detachDescriptor) { + return cb(null, name, fd, _prepareTmpFileRemoveCallback(name, -1, opts)); + } + cb(null, name, fd, _prepareTmpFileRemoveCallback(name, fd, opts)); + }); + }); + } + function fileSync(options) { + var args = _parseArguments(options), opts = args[0]; + opts.postfix = opts.postfix || ".tmp"; + const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor; + const name = tmpNameSync(opts); + var fd = fs2.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE); + if (opts.discardDescriptor) { + fs2.closeSync(fd); + fd = undefined; + } + return { + name, + fd, + removeCallback: _prepareTmpFileRemoveCallback(name, discardOrDetachDescriptor ? -1 : fd, opts) + }; + } + function _rmdirRecursiveSync(root) { + const dirs = [root]; + do { + var dir2 = dirs.pop(), deferred = false, files = fs2.readdirSync(dir2); + for (var i = 0, length = files.length;i < length; i++) { + var file2 = path2.join(dir2, files[i]), stat = fs2.lstatSync(file2); + if (stat.isDirectory()) { + if (!deferred) { + deferred = true; + dirs.push(dir2); + } + dirs.push(file2); + } else { + fs2.unlinkSync(file2); + } + } + if (!deferred) { + fs2.rmdirSync(dir2); + } + } while (dirs.length !== 0); + } + function dir(options, callback) { + var args = _parseArguments(options, callback), opts = args[0], cb = args[1]; + tmpName(opts, function _tmpNameCreated(err, name) { + if (err) + return cb(err); + fs2.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err2) { + if (err2) + return cb(err2); + cb(null, name, _prepareTmpDirRemoveCallback(name, opts)); + }); + }); + } + function dirSync(options) { + var args = _parseArguments(options), opts = args[0]; + const name = tmpNameSync(opts); + fs2.mkdirSync(name, opts.mode || DIR_MODE); + return { + name, + removeCallback: _prepareTmpDirRemoveCallback(name, opts) + }; + } + function _prepareTmpFileRemoveCallback(name, fd, opts) { + const removeCallback = _prepareRemoveCallback(function _removeCallback(fdPath) { + try { + if (0 <= fdPath[0]) { + fs2.closeSync(fdPath[0]); + } + } catch (e) { + if (!isEBADF(e) && !isENOENT(e)) { + throw e; + } + } + try { + fs2.unlinkSync(fdPath[1]); + } catch (e) { + if (!isENOENT(e)) { + throw e; + } + } + }, [fd, name]); + if (!opts.keep) { + _removeObjects.unshift(removeCallback); + } + return removeCallback; + } + function _prepareTmpDirRemoveCallback(name, opts) { + const removeFunction = opts.unsafeCleanup ? _rmdirRecursiveSync : fs2.rmdirSync.bind(fs2); + const removeCallback = _prepareRemoveCallback(removeFunction, name); + if (!opts.keep) { + _removeObjects.unshift(removeCallback); + } + return removeCallback; + } + function _prepareRemoveCallback(removeFunction, arg) { + var called = false; + return function _cleanupCallback(next) { + if (!called) { + const index = _removeObjects.indexOf(_cleanupCallback); + if (index >= 0) { + _removeObjects.splice(index, 1); + } + called = true; + removeFunction(arg); + } + if (next) + next(null); + }; + } + function _garbageCollector() { + if (_uncaughtException && !_gracefulCleanup) { return; } - var n = parseFloat(match[1]); - var type = (match[2] || "ms").toLowerCase(); - switch (type) { - case "years": - case "year": - case "yrs": - case "yr": - case "y": - return n * y; - case "weeks": - case "week": - case "w": - return n * w; - case "days": - case "day": - case "d": - return n * d; - case "hours": - case "hour": - case "hrs": - case "hr": - case "h": - return n * h; - case "minutes": - case "minute": - case "mins": - case "min": - case "m": - return n * m; - case "seconds": - case "second": - case "secs": - case "sec": - case "s": - return n * s; - case "milliseconds": - case "millisecond": - case "msecs": - case "msec": - case "ms": - return n; - default: - return; + while (_removeObjects.length) { + try { + _removeObjects[0].call(null); + } catch (e) { + } } } - function fmtShort(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return Math.round(ms / d) + "d"; + function isEBADF(error) { + return isExpectedError(error, -EBADF, "EBADF"); + } + function isENOENT(error) { + return isExpectedError(error, -ENOENT, "ENOENT"); + } + function isExpectedError(error, code, errno) { + return error.code == code || error.code == errno; + } + function setGracefulCleanup() { + _gracefulCleanup = true; + } + var version = process.versions.node.split(".").map(function(value) { + return parseInt(value, 10); + }); + if (version[0] === 0 && (version[1] < 9 || version[1] === 9 && version[2] < 5)) { + process.addListener("uncaughtException", function _uncaughtExceptionThrown(err) { + _uncaughtException = true; + _garbageCollector(); + throw err; + }); + } + process.addListener("exit", function _exit(code) { + if (code) + _uncaughtException = true; + _garbageCollector(); + }); + exports.tmpdir = tmpDir; + exports.dir = dir; + exports.dirSync = dirSync; + exports.file = file; + exports.fileSync = fileSync; + exports.tmpName = tmpName; + exports.tmpNameSync = tmpNameSync; + exports.setGracefulCleanup = setGracefulCleanup; +}); + +// node_modules/external-editor/main/errors/CreateFileError.js +var require_CreateFileError = __commonJS((exports) => { + var __extends = exports && exports.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (b2.hasOwnProperty(p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); + }; + }(); + Object.defineProperty(exports, "__esModule", { value: true }); + var CreateFileError = function(_super) { + __extends(CreateFileError2, _super); + function CreateFileError2(originalError) { + var _newTarget = this.constructor; + var _this = _super.call(this, "Failed to create temporary file for editor") || this; + _this.originalError = originalError; + var proto2 = _newTarget.prototype; + if (Object.setPrototypeOf) { + Object.setPrototypeOf(_this, proto2); + } else { + _this.__proto__ = _newTarget.prototype; + } + return _this; } - if (msAbs >= h) { - return Math.round(ms / h) + "h"; + return CreateFileError2; + }(Error); + exports.CreateFileError = CreateFileError; +}); + +// node_modules/external-editor/main/errors/LaunchEditorError.js +var require_LaunchEditorError = __commonJS((exports) => { + var __extends = exports && exports.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (b2.hasOwnProperty(p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); + }; + }(); + Object.defineProperty(exports, "__esModule", { value: true }); + var LaunchEditorError = function(_super) { + __extends(LaunchEditorError2, _super); + function LaunchEditorError2(originalError) { + var _newTarget = this.constructor; + var _this = _super.call(this, "Failed launch editor") || this; + _this.originalError = originalError; + var proto2 = _newTarget.prototype; + if (Object.setPrototypeOf) { + Object.setPrototypeOf(_this, proto2); + } else { + _this.__proto__ = _newTarget.prototype; + } + return _this; } - if (msAbs >= m) { - return Math.round(ms / m) + "m"; + return LaunchEditorError2; + }(Error); + exports.LaunchEditorError = LaunchEditorError; +}); + +// node_modules/external-editor/main/errors/ReadFileError.js +var require_ReadFileError = __commonJS((exports) => { + var __extends = exports && exports.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (b2.hasOwnProperty(p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); + }; + }(); + Object.defineProperty(exports, "__esModule", { value: true }); + var ReadFileError = function(_super) { + __extends(ReadFileError2, _super); + function ReadFileError2(originalError) { + var _newTarget = this.constructor; + var _this = _super.call(this, "Failed to read temporary file") || this; + _this.originalError = originalError; + var proto2 = _newTarget.prototype; + if (Object.setPrototypeOf) { + Object.setPrototypeOf(_this, proto2); + } else { + _this.__proto__ = _newTarget.prototype; + } + return _this; + } + return ReadFileError2; + }(Error); + exports.ReadFileError = ReadFileError; +}); + +// node_modules/external-editor/main/errors/RemoveFileError.js +var require_RemoveFileError = __commonJS((exports) => { + var __extends = exports && exports.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (b2.hasOwnProperty(p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); + }; + }(); + Object.defineProperty(exports, "__esModule", { value: true }); + var RemoveFileError = function(_super) { + __extends(RemoveFileError2, _super); + function RemoveFileError2(originalError) { + var _newTarget = this.constructor; + var _this = _super.call(this, "Failed to cleanup temporary file") || this; + _this.originalError = originalError; + var proto2 = _newTarget.prototype; + if (Object.setPrototypeOf) { + Object.setPrototypeOf(_this, proto2); + } else { + _this.__proto__ = _newTarget.prototype; + } + return _this; } - if (msAbs >= s) { - return Math.round(ms / s) + "s"; + return RemoveFileError2; + }(Error); + exports.RemoveFileError = RemoveFileError; +}); + +// node_modules/external-editor/main/index.js +var require_main = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + var chardet_1 = require_chardet(); + var child_process_1 = __require("child_process"); + var fs_1 = __require("fs"); + var iconv_lite_1 = require_lib2(); + var tmp_1 = require_tmp(); + var CreateFileError_1 = require_CreateFileError(); + exports.CreateFileError = CreateFileError_1.CreateFileError; + var LaunchEditorError_1 = require_LaunchEditorError(); + exports.LaunchEditorError = LaunchEditorError_1.LaunchEditorError; + var ReadFileError_1 = require_ReadFileError(); + exports.ReadFileError = ReadFileError_1.ReadFileError; + var RemoveFileError_1 = require_RemoveFileError(); + exports.RemoveFileError = RemoveFileError_1.RemoveFileError; + function edit(text, fileOptions) { + if (text === undefined) { + text = ""; } - return ms + "ms"; + var editor = new ExternalEditor(text, fileOptions); + editor.run(); + editor.cleanup(); + return editor.text; } - function fmtLong(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return plural(ms, msAbs, d, "day"); - } - if (msAbs >= h) { - return plural(ms, msAbs, h, "hour"); - } - if (msAbs >= m) { - return plural(ms, msAbs, m, "minute"); - } - if (msAbs >= s) { - return plural(ms, msAbs, s, "second"); + exports.edit = edit; + function editAsync(text, callback, fileOptions) { + if (text === undefined) { + text = ""; } - return ms + " ms"; - } - function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); - } -}); - -// node_modules/debug/src/common.js -var require_common = __commonJS((exports, module) => { - function setup(env2) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = require_ms(); - createDebug.destroy = destroy; - Object.keys(env2).forEach((key2) => { - createDebug[key2] = env2[key2]; + var editor = new ExternalEditor(text, fileOptions); + editor.runAsync(function(err, result) { + if (err) { + setImmediate(callback, err, null); + } else { + try { + editor.cleanup(); + setImmediate(callback, null, result); + } catch (cleanupError) { + setImmediate(callback, cleanupError, null); + } + } }); - createDebug.names = []; - createDebug.skips = []; - createDebug.formatters = {}; - function selectColor(namespace) { - let hash = 0; - for (let i = 0;i < namespace.length; i++) { - hash = (hash << 5) - hash + namespace.charCodeAt(i); - hash |= 0; + } + exports.editAsync = editAsync; + var ExternalEditor = function() { + function ExternalEditor2(text, fileOptions) { + if (text === undefined) { + text = ""; } - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + this.text = ""; + this.fileOptions = {}; + this.text = text; + if (fileOptions) { + this.fileOptions = fileOptions; + } + this.determineEditor(); + this.createTemporaryFile(); } - createDebug.selectColor = selectColor; - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - let namespacesCache; - let enabledCache; - function debug(...args) { - if (!debug.enabled) { - return; - } - const self2 = debug; - const curr = Number(new Date); - const ms = curr - (prevTime || curr); - self2.diff = ms; - self2.prev = prevTime; - self2.curr = curr; - prevTime = curr; - args[0] = createDebug.coerce(args[0]); - if (typeof args[0] !== "string") { - args.unshift("%O"); + ExternalEditor2.splitStringBySpace = function(str) { + var pieces = []; + var currentString = ""; + for (var strIndex = 0;strIndex < str.length; strIndex++) { + var currentLetter = str[strIndex]; + if (strIndex > 0 && currentLetter === " " && str[strIndex - 1] !== "\\" && currentString.length > 0) { + pieces.push(currentString); + currentString = ""; + } else { + currentString += currentLetter; } - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - if (match === "%%") { - return "%"; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === "function") { - const val = args[index]; - match = formatter.call(self2, val); - args.splice(index, 1); - index--; + } + if (currentString.length > 0) { + pieces.push(currentString); + } + return pieces; + }; + Object.defineProperty(ExternalEditor2.prototype, "temp_file", { + get: function() { + console.log("DEPRECATED: temp_file. Use tempFile moving forward."); + return this.tempFile; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ExternalEditor2.prototype, "last_exit_status", { + get: function() { + console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward."); + return this.lastExitStatus; + }, + enumerable: true, + configurable: true + }); + ExternalEditor2.prototype.run = function() { + this.launchEditor(); + this.readTemporaryFile(); + return this.text; + }; + ExternalEditor2.prototype.runAsync = function(callback) { + var _this = this; + try { + this.launchEditorAsync(function() { + try { + _this.readTemporaryFile(); + setImmediate(callback, null, _this.text); + } catch (readError) { + setImmediate(callback, readError, null); } - return match; }); - createDebug.formatArgs.call(self2, args); - const logFn = self2.log || createDebug.log; - logFn.apply(self2, args); + } catch (launchError) { + setImmediate(callback, launchError, null); } - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; - Object.defineProperty(debug, "enabled", { - enumerable: true, - configurable: false, - get: () => { - if (enableOverride !== null) { - return enableOverride; + }; + ExternalEditor2.prototype.cleanup = function() { + this.removeTemporaryFile(); + }; + ExternalEditor2.prototype.determineEditor = function() { + var editor = process.env.VISUAL ? process.env.VISUAL : process.env.EDITOR ? process.env.EDITOR : /^win/.test(process.platform) ? "notepad" : "vim"; + var editorOpts = ExternalEditor2.splitStringBySpace(editor).map(function(piece) { + return piece.replace("\\ ", " "); + }); + var bin = editorOpts.shift(); + this.editor = { args: editorOpts, bin }; + }; + ExternalEditor2.prototype.createTemporaryFile = function() { + try { + this.tempFile = tmp_1.tmpNameSync(this.fileOptions); + var opt = { encoding: "utf8" }; + if (this.fileOptions.hasOwnProperty("mode")) { + opt.mode = this.fileOptions.mode; + } + fs_1.writeFileSync(this.tempFile, this.text, opt); + } catch (createFileError) { + throw new CreateFileError_1.CreateFileError(createFileError); + } + }; + ExternalEditor2.prototype.readTemporaryFile = function() { + try { + var tempFileBuffer = fs_1.readFileSync(this.tempFile); + if (tempFileBuffer.length === 0) { + this.text = ""; + } else { + var encoding = chardet_1.detect(tempFileBuffer).toString(); + if (!iconv_lite_1.encodingExists(encoding)) { + encoding = "utf8"; } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); + this.text = iconv_lite_1.decode(tempFileBuffer, encoding); + } + } catch (readFileError) { + throw new ReadFileError_1.ReadFileError(readFileError); + } + }; + ExternalEditor2.prototype.removeTemporaryFile = function() { + try { + fs_1.unlinkSync(this.tempFile); + } catch (removeFileError) { + throw new RemoveFileError_1.RemoveFileError(removeFileError); + } + }; + ExternalEditor2.prototype.launchEditor = function() { + try { + var editorProcess = child_process_1.spawnSync(this.editor.bin, this.editor.args.concat([this.tempFile]), { stdio: "inherit" }); + this.lastExitStatus = editorProcess.status; + } catch (launchError) { + throw new LaunchEditorError_1.LaunchEditorError(launchError); + } + }; + ExternalEditor2.prototype.launchEditorAsync = function(callback) { + var _this = this; + try { + var editorProcess = child_process_1.spawn(this.editor.bin, this.editor.args.concat([this.tempFile]), { stdio: "inherit" }); + editorProcess.on("exit", function(code) { + _this.lastExitStatus = code; + setImmediate(callback); + }); + } catch (launchError) { + throw new LaunchEditorError_1.LaunchEditorError(launchError); + } + }; + return ExternalEditor2; + }(); + exports.ExternalEditor = ExternalEditor; +}); + +// node_modules/@inquirer/editor/dist/esm/index.js +import { AsyncResource as AsyncResource4 } from "node:async_hooks"; +var import_external_editor, editorTheme, esm_default3; +var init_esm4 = __esm(() => { + import_external_editor = __toESM(require_main(), 1); + init_esm2(); + editorTheme = { + validationFailureMode: "keep" + }; + esm_default3 = createPrompt((config, done) => { + const { waitForUseInput = true, file: { postfix = config.postfix ?? ".txt", ...fileProps } = {}, validate: validate2 = () => true } = config; + const theme = makeTheme(editorTheme, config.theme); + const [status, setStatus] = useState("idle"); + const [value = "", setValue] = useState(config.default); + const [errorMsg, setError] = useState(); + const prefix = usePrefix({ status, theme }); + function startEditor(rl) { + rl.pause(); + const editCallback = AsyncResource4.bind(async (error2, answer) => { + rl.resume(); + if (error2) { + setError(error2.toString()); + } else { + setStatus("loading"); + const isValid2 = await validate2(answer); + if (isValid2 === true) { + setError(undefined); + setStatus("done"); + done(answer); + } else { + if (theme.validationFailureMode === "clear") { + setValue(config.default); + } else { + setValue(answer); + } + setError(isValid2 || "You must provide a valid value"); + setStatus("idle"); } - return enabledCache; - }, - set: (v) => { - enableOverride = v; } }); - if (typeof createDebug.init === "function") { - createDebug.init(debug); + import_external_editor.editAsync(value, (error2, answer) => void editCallback(error2, answer), { + postfix, + ...fileProps + }); + } + useEffect((rl) => { + if (!waitForUseInput) { + startEditor(rl); } - return debug; + }, []); + useKeypress((key2, rl) => { + if (status !== "idle") { + return; + } + if (isEnterKey(key2)) { + startEditor(rl); + } + }); + const message = theme.style.message(config.message, status); + let helpTip = ""; + if (status === "loading") { + helpTip = theme.style.help("Received"); + } else if (status === "idle") { + const enterKey = theme.style.key("enter"); + helpTip = theme.style.help(`Press ${enterKey} to launch your preferred editor.`); } - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; + let error = ""; + if (errorMsg) { + error = theme.style.error(errorMsg); } - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - createDebug.names = []; - createDebug.skips = []; - const split2 = (typeof namespaces === "string" ? namespaces : "").trim().replace(" ", ",").split(",").filter(Boolean); - for (const ns of split2) { - if (ns[0] === "-") { - createDebug.skips.push(ns.slice(1)); + return [[prefix, message, helpTip].filter(Boolean).join(" "), error]; + }); +}); + +// node_modules/@inquirer/confirm/dist/esm/index.js +function getBooleanValue(value, defaultValue) { + let answer = defaultValue !== false; + if (/^(y|yes)/i.test(value)) + answer = true; + else if (/^(n|no)/i.test(value)) + answer = false; + return answer; +} +function boolToString(value) { + return value ? "Yes" : "No"; +} +var esm_default4; +var init_esm5 = __esm(() => { + init_esm2(); + esm_default4 = createPrompt((config, done) => { + const { transformer = boolToString } = config; + const [status, setStatus] = useState("idle"); + const [value, setValue] = useState(""); + const theme = makeTheme(config.theme); + const prefix = usePrefix({ status, theme }); + useKeypress((key2, rl) => { + if (isEnterKey(key2)) { + const answer = getBooleanValue(value, config.default); + setValue(transformer(answer)); + setStatus("done"); + done(answer); + } else if (key2.name === "tab") { + const answer = boolToString(!getBooleanValue(value, config.default)); + rl.clearLine(0); + rl.write(answer); + setValue(answer); + } else { + setValue(rl.line); + } + }); + let formattedValue = value; + let defaultValue = ""; + if (status === "done") { + formattedValue = theme.style.answer(value); + } else { + defaultValue = ` ${theme.style.defaultAnswer(config.default === false ? "y/N" : "Y/n")}`; + } + const message = theme.style.message(config.message, status); + return `${prefix} ${message}${defaultValue} ${formattedValue}`; + }); +}); + +// node_modules/@inquirer/input/dist/esm/index.js +var inputTheme, esm_default5; +var init_esm6 = __esm(() => { + init_esm2(); + inputTheme = { + validationFailureMode: "keep" + }; + esm_default5 = createPrompt((config, done) => { + const { required, validate: validate2 = () => true } = config; + const theme = makeTheme(inputTheme, config.theme); + const [status, setStatus] = useState("idle"); + const [defaultValue = "", setDefaultValue] = useState(config.default); + const [errorMsg, setError] = useState(); + const [value, setValue] = useState(""); + const prefix = usePrefix({ status, theme }); + useKeypress(async (key2, rl) => { + if (status !== "idle") { + return; + } + if (isEnterKey(key2)) { + const answer = value || defaultValue; + setStatus("loading"); + const isValid2 = required && !answer ? "You must provide a value" : await validate2(answer); + if (isValid2 === true) { + setValue(answer); + setStatus("done"); + done(answer); + } else { + if (theme.validationFailureMode === "clear") { + setValue(""); + } else { + rl.write(value); + } + setError(isValid2 || "You must provide a valid value"); + setStatus("idle"); + } + } else if (isBackspaceKey(key2) && !value) { + setDefaultValue(undefined); + } else if (key2.name === "tab" && !value) { + setDefaultValue(undefined); + rl.clearLine(0); + rl.write(defaultValue); + setValue(defaultValue); + } else { + setValue(rl.line); + setError(undefined); + } + }); + const message = theme.style.message(config.message, status); + let formattedValue = value; + if (typeof config.transformer === "function") { + formattedValue = config.transformer(value, { isFinal: status === "done" }); + } else if (status === "done") { + formattedValue = theme.style.answer(value); + } + let defaultStr; + if (defaultValue && status !== "done" && !value) { + defaultStr = theme.style.defaultAnswer(defaultValue); + } + let error = ""; + if (errorMsg) { + error = theme.style.error(errorMsg); + } + return [ + [prefix, message, defaultStr, formattedValue].filter((v) => v !== undefined).join(" "), + error + ]; + }); +}); + +// node_modules/@inquirer/number/dist/esm/index.js +function isStepOf(value, step, min) { + const valuePow = value * Math.pow(10, 6); + const stepPow = step * Math.pow(10, 6); + const minPow = min * Math.pow(10, 6); + return (valuePow - (Number.isFinite(min) ? minPow : 0)) % stepPow === 0; +} +function validateNumber(value, { min, max, step }) { + if (value == null || Number.isNaN(value)) { + return false; + } else if (value < min || value > max) { + return `Value must be between ${min} and ${max}`; + } else if (step !== "any" && !isStepOf(value, step, min)) { + return `Value must be a multiple of ${step}${Number.isFinite(min) ? ` starting from ${min}` : ""}`; + } + return true; +} +var esm_default6; +var init_esm7 = __esm(() => { + init_esm2(); + esm_default6 = createPrompt((config, done) => { + const { validate: validate2 = () => true, min = -Infinity, max = Infinity, step = 1, required = false } = config; + const theme = makeTheme(config.theme); + const [status, setStatus] = useState("idle"); + const [value, setValue] = useState(""); + const validDefault = validateNumber(config.default, { min, max, step }) === true ? config.default?.toString() : undefined; + const [defaultValue = "", setDefaultValue] = useState(validDefault); + const [errorMsg, setError] = useState(); + const prefix = usePrefix({ status, theme }); + useKeypress(async (key2, rl) => { + if (status !== "idle") { + return; + } + if (isEnterKey(key2)) { + const input = value || defaultValue; + const answer = input === "" ? undefined : Number(input); + setStatus("loading"); + let isValid2 = true; + if (required || answer != null) { + isValid2 = validateNumber(answer, { min, max, step }); + } + if (isValid2 === true) { + isValid2 = await validate2(answer); + } + if (isValid2 === true) { + setValue(String(answer ?? "")); + setStatus("done"); + done(answer); } else { - createDebug.names.push(ns); + rl.write(value); + setError(isValid2 || "You must provide a valid numeric value"); + setStatus("idle"); } + } else if (isBackspaceKey(key2) && !value) { + setDefaultValue(undefined); + } else if (key2.name === "tab" && !value) { + setDefaultValue(undefined); + rl.clearLine(0); + rl.write(defaultValue); + setValue(defaultValue); + } else { + setValue(rl.line); + setError(undefined); } + }); + const message = theme.style.message(config.message, status); + let formattedValue = value; + if (status === "done") { + formattedValue = theme.style.answer(value); } - function matchesTemplate(search, template) { - let searchIndex = 0; - let templateIndex = 0; - let starIndex = -1; - let matchIndex = 0; - while (searchIndex < search.length) { - if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) { - if (template[templateIndex] === "*") { - starIndex = templateIndex; - matchIndex = searchIndex; - templateIndex++; + let defaultStr; + if (defaultValue && status !== "done" && !value) { + defaultStr = theme.style.defaultAnswer(defaultValue); + } + let error = ""; + if (errorMsg) { + error = theme.style.error(errorMsg); + } + return [ + [prefix, message, defaultStr, formattedValue].filter((v) => v !== undefined).join(" "), + error + ]; + }); +}); + +// node_modules/@inquirer/expand/dist/esm/index.js +function normalizeChoices2(choices) { + return choices.map((choice) => { + if (Separator.isSeparator(choice)) { + return choice; + } + const name = "name" in choice ? choice.name : String(choice.value); + const value = "value" in choice ? choice.value : name; + return { + value, + name, + key: choice.key.toLowerCase() + }; + }); +} +var import_yoctocolors_cjs4, helpChoice, esm_default7; +var init_esm8 = __esm(() => { + init_esm2(); + import_yoctocolors_cjs4 = __toESM(require_yoctocolors_cjs(), 1); + helpChoice = { + key: "h", + name: "Help, list all options", + value: undefined + }; + esm_default7 = createPrompt((config, done) => { + const { default: defaultKey = "h" } = config; + const choices = useMemo(() => normalizeChoices2(config.choices), [config.choices]); + const [status, setStatus] = useState("idle"); + const [value, setValue] = useState(""); + const [expanded, setExpanded] = useState(config.expanded ?? false); + const [errorMsg, setError] = useState(); + const theme = makeTheme(config.theme); + const prefix = usePrefix({ theme, status }); + useKeypress((event, rl) => { + if (isEnterKey(event)) { + const answer = (value || defaultKey).toLowerCase(); + if (answer === "h" && !expanded) { + setExpanded(true); + } else { + const selectedChoice = choices.find((choice) => !Separator.isSeparator(choice) && choice.key === answer); + if (selectedChoice) { + setStatus("done"); + setValue(answer); + done(selectedChoice.value); + } else if (value === "") { + setError("Please input a value"); } else { - searchIndex++; - templateIndex++; + setError(`"${import_yoctocolors_cjs4.default.red(value)}" isn't an available option`); } - } else if (starIndex !== -1) { - templateIndex = starIndex + 1; - matchIndex++; - searchIndex = matchIndex; - } else { - return false; } + } else { + setValue(rl.line); + setError(undefined); } - while (templateIndex < template.length && template[templateIndex] === "*") { - templateIndex++; - } - return templateIndex === template.length; - } - function disable() { - const namespaces = [ - ...createDebug.names, - ...createDebug.skips.map((namespace) => "-" + namespace) - ].join(","); - createDebug.enable(""); - return namespaces; + }); + const message = theme.style.message(config.message, status); + if (status === "done") { + const selectedChoice = choices.find((choice) => !Separator.isSeparator(choice) && choice.key === value.toLowerCase()); + return `${prefix} ${message} ${theme.style.answer(selectedChoice.name)}`; } - function enabled(name) { - for (const skip of createDebug.skips) { - if (matchesTemplate(name, skip)) { - return false; - } + const allChoices = expanded ? choices : [...choices, helpChoice]; + let longChoices = ""; + let shortChoices = allChoices.map((choice) => { + if (Separator.isSeparator(choice)) + return ""; + if (choice.key === defaultKey) { + return choice.key.toUpperCase(); } - for (const ns of createDebug.names) { - if (matchesTemplate(name, ns)) { - return true; + return choice.key; + }).join(""); + shortChoices = ` ${theme.style.defaultAnswer(shortChoices)}`; + if (expanded) { + shortChoices = ""; + longChoices = allChoices.map((choice) => { + if (Separator.isSeparator(choice)) { + return ` ${choice.separator}`; } - } - return false; + const line = ` ${choice.key}) ${choice.name}`; + if (choice.key === value.toLowerCase()) { + return theme.style.highlight(line); + } + return line; + }).join(` +`); } - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; + let helpTip = ""; + const currentOption = choices.find((choice) => !Separator.isSeparator(choice) && choice.key === value.toLowerCase()); + if (currentOption) { + helpTip = `${import_yoctocolors_cjs4.default.cyan(">>")} ${currentOption.name}`; } - function destroy() { - console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + let error = ""; + if (errorMsg) { + error = theme.style.error(errorMsg); } - createDebug.enable(createDebug.load()); - return createDebug; - } - module.exports = setup; + return [ + `${prefix} ${message}${shortChoices} ${value}`, + [longChoices, helpTip, error].filter(Boolean).join(` +`) + ]; + }); }); -// node_modules/debug/src/browser.js -var require_browser = __commonJS((exports, module) => { - exports.formatArgs = formatArgs; - exports.save = save; - exports.load = load2; - exports.useColors = useColors; - exports.storage = localstorage(); - exports.destroy = (() => { - let warned = false; - return () => { - if (!warned) { - warned = true; - console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); - } - }; - })(); - exports.colors = [ - "#0000CC", - "#0000FF", - "#0033CC", - "#0033FF", - "#0066CC", - "#0066FF", - "#0099CC", - "#0099FF", - "#00CC00", - "#00CC33", - "#00CC66", - "#00CC99", - "#00CCCC", - "#00CCFF", - "#3300CC", - "#3300FF", - "#3333CC", - "#3333FF", - "#3366CC", - "#3366FF", - "#3399CC", - "#3399FF", - "#33CC00", - "#33CC33", - "#33CC66", - "#33CC99", - "#33CCCC", - "#33CCFF", - "#6600CC", - "#6600FF", - "#6633CC", - "#6633FF", - "#66CC00", - "#66CC33", - "#9900CC", - "#9900FF", - "#9933CC", - "#9933FF", - "#99CC00", - "#99CC33", - "#CC0000", - "#CC0033", - "#CC0066", - "#CC0099", - "#CC00CC", - "#CC00FF", - "#CC3300", - "#CC3333", - "#CC3366", - "#CC3399", - "#CC33CC", - "#CC33FF", - "#CC6600", - "#CC6633", - "#CC9900", - "#CC9933", - "#CCCC00", - "#CCCC33", - "#FF0000", - "#FF0033", - "#FF0066", - "#FF0099", - "#FF00CC", - "#FF00FF", - "#FF3300", - "#FF3333", - "#FF3366", - "#FF3399", - "#FF33CC", - "#FF33FF", - "#FF6600", - "#FF6633", - "#FF9900", - "#FF9933", - "#FFCC00", - "#FFCC33" - ]; - function useColors() { - if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { - return true; +// node_modules/@inquirer/rawlist/dist/esm/index.js +function isSelectableChoice(choice) { + return choice != null && !Separator.isSeparator(choice); +} +function normalizeChoices3(choices) { + let index = 0; + return choices.map((choice) => { + if (Separator.isSeparator(choice)) + return choice; + index += 1; + if (typeof choice === "string") { + return { + value: choice, + name: choice, + short: choice, + key: String(index) + }; } - if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; + const name = choice.name ?? String(choice.value); + return { + value: choice.value, + name, + short: choice.short ?? name, + key: choice.key ?? String(index) + }; + }); +} +var import_yoctocolors_cjs5, numberRegex, esm_default8; +var init_esm9 = __esm(() => { + init_esm2(); + import_yoctocolors_cjs5 = __toESM(require_yoctocolors_cjs(), 1); + numberRegex = /\d+/; + esm_default8 = createPrompt((config, done) => { + const choices = useMemo(() => normalizeChoices3(config.choices), [config.choices]); + const [status, setStatus] = useState("idle"); + const [value, setValue] = useState(""); + const [errorMsg, setError] = useState(); + const theme = makeTheme(config.theme); + const prefix = usePrefix({ status, theme }); + useKeypress((key2, rl) => { + if (isEnterKey(key2)) { + let selectedChoice; + if (numberRegex.test(value)) { + const answer = Number.parseInt(value, 10) - 1; + selectedChoice = choices.filter(isSelectableChoice)[answer]; + } else { + selectedChoice = choices.find((choice) => isSelectableChoice(choice) && choice.key === value); + } + if (isSelectableChoice(selectedChoice)) { + setValue(selectedChoice.short); + setStatus("done"); + done(selectedChoice.value); + } else if (value === "") { + setError("Please input a value"); + } else { + setError(`"${import_yoctocolors_cjs5.default.red(value)}" isn't an available option`); + } + } else { + setValue(rl.line); + setError(undefined); + } + }); + const message = theme.style.message(config.message, status); + if (status === "done") { + return `${prefix} ${message} ${theme.style.answer(value)}`; } - let m; - return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); - } - function formatArgs(args) { - args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff); - if (!this.useColors) { - return; + const choicesStr = choices.map((choice) => { + if (Separator.isSeparator(choice)) { + return ` ${choice.separator}`; + } + const line = ` ${choice.key}) ${choice.name}`; + if (choice.key === value.toLowerCase()) { + return theme.style.highlight(line); + } + return line; + }).join(` +`); + let error = ""; + if (errorMsg) { + error = theme.style.error(errorMsg); } - const c = "color: " + this.color; - args.splice(1, 0, c, "color: inherit"); - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, (match) => { - if (match === "%%") { + return [ + `${prefix} ${message} ${value}`, + [choicesStr, error].filter(Boolean).join(` +`) + ]; + }); +}); + +// node_modules/@inquirer/password/dist/esm/index.js +var import_ansi_escapes3, esm_default9; +var init_esm10 = __esm(() => { + init_esm2(); + import_ansi_escapes3 = __toESM(require_ansi_escapes(), 1); + esm_default9 = createPrompt((config, done) => { + const { validate: validate2 = () => true } = config; + const theme = makeTheme(config.theme); + const [status, setStatus] = useState("idle"); + const [errorMsg, setError] = useState(); + const [value, setValue] = useState(""); + const prefix = usePrefix({ status, theme }); + useKeypress(async (key2, rl) => { + if (status !== "idle") { return; } - index++; - if (match === "%c") { - lastC = index; + if (isEnterKey(key2)) { + const answer = value; + setStatus("loading"); + const isValid2 = await validate2(answer); + if (isValid2 === true) { + setValue(answer); + setStatus("done"); + done(answer); + } else { + rl.write(value); + setError(isValid2 || "You must provide a valid value"); + setStatus("idle"); + } + } else { + setValue(rl.line); + setError(undefined); } }); - args.splice(lastC, 0, c); - } - exports.log = console.debug || console.log || (() => { + const message = theme.style.message(config.message, status); + let formattedValue = ""; + let helpTip; + if (config.mask) { + const maskChar = typeof config.mask === "string" ? config.mask : "*"; + formattedValue = maskChar.repeat(value.length); + } else if (status !== "done") { + helpTip = `${theme.style.help("[input is masked]")}${import_ansi_escapes3.default.cursorHide}`; + } + if (status === "done") { + formattedValue = theme.style.answer(formattedValue); + } + let error = ""; + if (errorMsg) { + error = theme.style.error(errorMsg); + } + return [[prefix, message, config.mask ? formattedValue : helpTip].join(" "), error]; }); - function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem("debug", namespaces); +}); + +// node_modules/@inquirer/search/dist/esm/index.js +function isSelectable2(item) { + return !Separator.isSeparator(item) && !item.disabled; +} +function normalizeChoices4(choices) { + return choices.map((choice) => { + if (Separator.isSeparator(choice)) + return choice; + if (typeof choice === "string") { + return { + value: choice, + name: choice, + short: choice, + disabled: false + }; + } + const name = choice.name ?? String(choice.value); + return { + value: choice.value, + name, + description: choice.description, + short: choice.short ?? name, + disabled: choice.disabled ?? false + }; + }); +} +var import_yoctocolors_cjs6, searchTheme, esm_default10; +var init_esm11 = __esm(() => { + init_esm2(); + import_yoctocolors_cjs6 = __toESM(require_yoctocolors_cjs(), 1); + init_esm(); + searchTheme = { + icon: { cursor: esm_default.pointer }, + style: { + disabled: (text) => import_yoctocolors_cjs6.default.dim(`- ${text}`), + searchTerm: (text) => import_yoctocolors_cjs6.default.cyan(text), + description: (text) => import_yoctocolors_cjs6.default.cyan(text) + }, + helpMode: "auto" + }; + esm_default10 = createPrompt((config, done) => { + const { pageSize = 7, validate: validate2 = () => true } = config; + const theme = makeTheme(searchTheme, config.theme); + const firstRender = useRef(true); + const [status, setStatus] = useState("loading"); + const [searchTerm, setSearchTerm] = useState(""); + const [searchResults, setSearchResults] = useState([]); + const [searchError, setSearchError] = useState(); + const prefix = usePrefix({ status, theme }); + const bounds = useMemo(() => { + const first = searchResults.findIndex(isSelectable2); + const last = searchResults.findLastIndex(isSelectable2); + return { first, last }; + }, [searchResults]); + const [active = bounds.first, setActive] = useState(); + useEffect(() => { + const controller = new AbortController; + setStatus("loading"); + setSearchError(undefined); + const fetchResults = async () => { + try { + const results = await config.source(searchTerm || undefined, { + signal: controller.signal + }); + if (!controller.signal.aborted) { + setActive(undefined); + setSearchError(undefined); + setSearchResults(normalizeChoices4(results)); + setStatus("idle"); + } + } catch (error2) { + if (!controller.signal.aborted && error2 instanceof Error) { + setSearchError(error2.message); + } + } + }; + fetchResults(); + return () => { + controller.abort(); + }; + }, [searchTerm]); + const selectedChoice = searchResults[active]; + useKeypress(async (key2, rl) => { + if (isEnterKey(key2)) { + if (selectedChoice) { + setStatus("loading"); + const isValid2 = await validate2(selectedChoice.value); + setStatus("idle"); + if (isValid2 === true) { + setStatus("done"); + done(selectedChoice.value); + } else if (selectedChoice.name === searchTerm) { + setSearchError(isValid2 || "You must provide a valid value"); + } else { + rl.write(selectedChoice.name); + setSearchTerm(selectedChoice.name); + } + } else { + rl.write(searchTerm); + } + } else if (key2.name === "tab" && selectedChoice) { + rl.clearLine(0); + rl.write(selectedChoice.name); + setSearchTerm(selectedChoice.name); + } else if (status !== "loading" && (key2.name === "up" || key2.name === "down")) { + rl.clearLine(0); + if (key2.name === "up" && active !== bounds.first || key2.name === "down" && active !== bounds.last) { + const offset = key2.name === "up" ? -1 : 1; + let next = active; + do { + next = (next + offset + searchResults.length) % searchResults.length; + } while (!isSelectable2(searchResults[next])); + setActive(next); + } } else { - exports.storage.removeItem("debug"); + setSearchTerm(rl.line); } - } catch (error) { - } - } - function load2() { - let r; - try { - r = exports.storage.getItem("debug"); - } catch (error) { - } - if (!r && typeof process !== "undefined" && "env" in process) { - r = process.env.DEBUG; - } - return r; - } - function localstorage() { - try { - return localStorage; - } catch (error) { - } - } - module.exports = require_common()(exports); - var { formatters } = module.exports; - formatters.j = function(v) { - try { - return JSON.stringify(v); - } catch (error) { - return "[UnexpectedJSONParseError]: " + error.message; - } - }; -}); - -// node_modules/debug/src/node.js -var require_node = __commonJS((exports, module) => { - var tty2 = __require("tty"); - var util = __require("util"); - exports.init = init; - exports.log = log; - exports.formatArgs = formatArgs; - exports.save = save; - exports.load = load2; - exports.useColors = useColors; - exports.destroy = util.deprecate(() => { - }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); - exports.colors = [6, 2, 3, 4, 5, 1]; - try { - const supportsColor2 = (()=>{throw new Error("Cannot require module "+"supports-color");})(); - if (supportsColor2 && (supportsColor2.stderr || supportsColor2).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } - } catch (error) { - } - exports.inspectOpts = Object.keys(process.env).filter((key2) => { - return /^debug_/i.test(key2); - }).reduce((obj, key2) => { - const prop = key2.substring(6).toLowerCase().replace(/_([a-z])/g, (_2, k) => { - return k.toUpperCase(); }); - let val = process.env[key2]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === "null") { - val = null; - } else { - val = Number(val); + const message = theme.style.message(config.message, status); + if (active > 0) { + firstRender.current = false; } - obj[prop] = val; - return obj; - }, {}); - function useColors() { - return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty2.isatty(process.stderr.fd); - } - function formatArgs(args) { - const { namespace: name, useColors: useColors2 } = this; - if (useColors2) { - const c = this.color; - const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); - const prefix = ` ${colorCode};1m${name} \x1B[0m`; - args[0] = prefix + args[0].split(` -`).join(` -` + prefix); - args.push(colorCode + "m+" + module.exports.humanize(this.diff) + "\x1B[0m"); - } else { - args[0] = getDate() + name + " " + args[0]; + let helpTip = ""; + if (searchResults.length > 1 && (theme.helpMode === "always" || theme.helpMode === "auto" && firstRender.current)) { + helpTip = searchResults.length > pageSize ? ` +${theme.style.help("(Use arrow keys to reveal more choices)")}` : ` +${theme.style.help("(Use arrow keys)")}`; } - } - function getDate() { - if (exports.inspectOpts.hideDate) { - return ""; + const page = usePagination({ + items: searchResults, + active, + renderItem({ item, isActive }) { + if (Separator.isSeparator(item)) { + return ` ${item.separator}`; + } + if (item.disabled) { + const disabledLabel = typeof item.disabled === "string" ? item.disabled : "(disabled)"; + return theme.style.disabled(`${item.name} ${disabledLabel}`); + } + const color = isActive ? theme.style.highlight : (x) => x; + const cursor = isActive ? theme.icon.cursor : ` `; + return color(`${cursor} ${item.name}`); + }, + pageSize, + loop: false + }); + let error; + if (searchError) { + error = theme.style.error(searchError); + } else if (searchResults.length === 0 && searchTerm !== "" && status === "idle") { + error = theme.style.error("No results found"); } - return new Date().toISOString() + " "; - } - function log(...args) { - return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + ` -`); - } - function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; + let searchStr; + if (status === "done" && selectedChoice) { + const answer = selectedChoice.short; + return `${prefix} ${message} ${theme.style.answer(answer)}`; } else { - delete process.env.DEBUG; - } - } - function load2() { - return process.env.DEBUG; - } - function init(debug) { - debug.inspectOpts = {}; - const keys = Object.keys(exports.inspectOpts); - for (let i = 0;i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + searchStr = theme.style.searchTerm(searchTerm); } - } - module.exports = require_common()(exports); - var { formatters } = module.exports; - formatters.o = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts).split(` -`).map((str) => str.trim()).join(" "); - }; - formatters.O = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); - }; -}); - -// node_modules/debug/src/index.js -var require_src = __commonJS((exports, module) => { - if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) { - module.exports = require_browser(); - } else { - module.exports = require_node(); - } + const choiceDescription = selectedChoice?.description ? ` +${theme.style.description(selectedChoice.description)}` : ``; + return [ + [prefix, message, searchStr].filter(Boolean).join(" "), + `${error ?? page}${helpTip}${choiceDescription}` + ]; + }); }); -// node_modules/@kwsites/file-exists/dist/src/index.js -var require_src2 = __commonJS((exports) => { - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; +// node_modules/@inquirer/select/dist/esm/index.js +function isSelectable3(item) { + return !Separator.isSeparator(item) && !item.disabled; +} +function normalizeChoices5(choices) { + return choices.map((choice) => { + if (Separator.isSeparator(choice)) + return choice; + if (typeof choice === "string") { + return { + value: choice, + name: choice, + short: choice, + disabled: false + }; + } + const name = choice.name ?? String(choice.value); + return { + value: choice.value, + name, + description: choice.description, + short: choice.short ?? name, + disabled: choice.disabled ?? false + }; + }); +} +var import_yoctocolors_cjs7, import_ansi_escapes4, selectTheme, esm_default11; +var init_esm12 = __esm(() => { + init_esm2(); + import_yoctocolors_cjs7 = __toESM(require_yoctocolors_cjs(), 1); + init_esm(); + import_ansi_escapes4 = __toESM(require_ansi_escapes(), 1); + selectTheme = { + icon: { cursor: esm_default.pointer }, + style: { + disabled: (text) => import_yoctocolors_cjs7.default.dim(`- ${text}`), + description: (text) => import_yoctocolors_cjs7.default.cyan(text) + }, + helpMode: "auto" }; - Object.defineProperty(exports, "__esModule", { value: true }); - var fs_1 = __require("fs"); - var debug_1 = __importDefault(require_src()); - var log = debug_1.default("@kwsites/file-exists"); - function check2(path, isFile, isDirectory) { - log(`checking %s`, path); - try { - const stat = fs_1.statSync(path); - if (stat.isFile() && isFile) { - log(`[OK] path represents a file`); - return true; + esm_default11 = createPrompt((config, done) => { + const { loop = true, pageSize = 7 } = config; + const firstRender = useRef(true); + const theme = makeTheme(selectTheme, config.theme); + const [status, setStatus] = useState("idle"); + const prefix = usePrefix({ status, theme }); + const searchTimeoutRef = useRef(); + const items = useMemo(() => normalizeChoices5(config.choices), [config.choices]); + const bounds = useMemo(() => { + const first = items.findIndex(isSelectable3); + const last = items.findLastIndex(isSelectable3); + if (first === -1) { + throw new ValidationError("[select prompt] No selectable choices. All choices are disabled."); } - if (stat.isDirectory() && isDirectory) { - log(`[OK] path represents a directory`); - return true; + return { first, last }; + }, [items]); + const defaultItemIndex = useMemo(() => { + if (!("default" in config)) + return -1; + return items.findIndex((item) => isSelectable3(item) && item.value === config.default); + }, [config.default, items]); + const [active, setActive] = useState(defaultItemIndex === -1 ? bounds.first : defaultItemIndex); + const selectedChoice = items[active]; + useKeypress((key2, rl) => { + clearTimeout(searchTimeoutRef.current); + if (isEnterKey(key2)) { + setStatus("done"); + done(selectedChoice.value); + } else if (isUpKey(key2) || isDownKey(key2)) { + rl.clearLine(0); + if (loop || isUpKey(key2) && active !== bounds.first || isDownKey(key2) && active !== bounds.last) { + const offset = isUpKey(key2) ? -1 : 1; + let next = active; + do { + next = (next + offset + items.length) % items.length; + } while (!isSelectable3(items[next])); + setActive(next); + } + } else if (isNumberKey(key2)) { + rl.clearLine(0); + const position = Number(key2.name) - 1; + const item = items[position]; + if (item != null && isSelectable3(item)) { + setActive(position); + } + } else if (isBackspaceKey(key2)) { + rl.clearLine(0); + } else { + const searchTerm = rl.line.toLowerCase(); + const matchIndex = items.findIndex((item) => { + if (Separator.isSeparator(item) || !isSelectable3(item)) + return false; + return item.name.toLowerCase().startsWith(searchTerm); + }); + if (matchIndex !== -1) { + setActive(matchIndex); + } + searchTimeoutRef.current = setTimeout(() => { + rl.clearLine(0); + }, 700); } - log(`[FAIL] path represents something other than a file or directory`); - return false; - } catch (e) { - if (e.code === "ENOENT") { - log(`[FAIL] path is not accessible: %o`, e); - return false; + }); + useEffect(() => () => { + clearTimeout(searchTimeoutRef.current); + }, []); + const message = theme.style.message(config.message, status); + let helpTipTop = ""; + let helpTipBottom = ""; + if (theme.helpMode === "always" || theme.helpMode === "auto" && firstRender.current) { + firstRender.current = false; + if (items.length > pageSize) { + helpTipBottom = ` +${theme.style.help("(Use arrow keys to reveal more choices)")}`; + } else { + helpTipTop = theme.style.help("(Use arrow keys)"); } - log(`[FATAL] %o`, e); - throw e; } - } - function exists(path, type = exports.READABLE) { - return check2(path, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); - } - exports.exists = exists; - exports.FILE = 1; - exports.FOLDER = 2; - exports.READABLE = exports.FILE + exports.FOLDER; -}); - -// node_modules/@kwsites/file-exists/dist/index.js -var require_dist = __commonJS((exports) => { - function __export2(m) { - for (var p in m) - if (!exports.hasOwnProperty(p)) - exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export2(require_src2()); -}); - -// node_modules/@kwsites/promise-deferred/dist/index.js -var require_dist2 = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.createDeferred = exports.deferred = undefined; - function deferred() { - let done; - let fail; - let status = "pending"; - const promise = new Promise((_done, _fail) => { - done = _done; - fail = _fail; - }); - return { - promise, - done(result) { - if (status === "pending") { - status = "resolved"; - done(result); + const page = usePagination({ + items, + active, + renderItem({ item, isActive }) { + if (Separator.isSeparator(item)) { + return ` ${item.separator}`; } - }, - fail(error) { - if (status === "pending") { - status = "rejected"; - fail(error); + if (item.disabled) { + const disabledLabel = typeof item.disabled === "string" ? item.disabled : "(disabled)"; + return theme.style.disabled(`${item.name} ${disabledLabel}`); } + const color = isActive ? theme.style.highlight : (x) => x; + const cursor = isActive ? theme.icon.cursor : ` `; + return color(`${cursor} ${item.name}`); }, - get fulfilled() { - return status !== "pending"; - }, - get status() { - return status; - } - }; - } - exports.deferred = deferred; - exports.createDeferred = deferred; - exports.default = deferred; + pageSize, + loop + }); + if (status === "done") { + return `${prefix} ${message} ${theme.style.answer(selectedChoice.short)}`; + } + const choiceDescription = selectedChoice.description ? ` +${theme.style.description(selectedChoice.description)}` : ``; + return `${[prefix, message, helpTipTop].filter(Boolean).join(" ")} +${page}${helpTipBottom}${choiceDescription}${import_ansi_escapes4.default.cursorHide}`; + }); +}); + +// node_modules/@inquirer/prompts/dist/esm/index.js +var init_esm13 = __esm(() => { + init_esm3(); + init_esm4(); + init_esm5(); + init_esm6(); + init_esm7(); + init_esm8(); + init_esm9(); + init_esm10(); + init_esm11(); + init_esm12(); }); // node_modules/rxjs/dist/cjs/internal/util/isFunction.js @@ -19603,7 +16795,7 @@ var require_Subscription = __commonJS((exports) => { this._finalizers = null; } Subscription2.prototype.unsubscribe = function() { - var e_1, _a2, e_2, _b; + var e_1, _a, e_2, _b; var errors2; if (!this.closed) { this.closed = true; @@ -19620,8 +16812,8 @@ var require_Subscription = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (_parentage_1_1 && !_parentage_1_1.done && (_a2 = _parentage_1.return)) - _a2.call(_parentage_1); + if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) + _a.call(_parentage_1); } finally { if (e_1) throw e_1.error; @@ -19674,7 +16866,7 @@ var require_Subscription = __commonJS((exports) => { } }; Subscription2.prototype.add = function(teardown) { - var _a2; + var _a; if (teardown && teardown !== this) { if (this.closed) { execFinalizer(teardown); @@ -19685,7 +16877,7 @@ var require_Subscription = __commonJS((exports) => { } teardown._addParent(this); } - (this._finalizers = (_a2 = this._finalizers) !== null && _a2 !== undefined ? _a2 : []).push(teardown); + (this._finalizers = (_a = this._finalizers) !== null && _a !== undefined ? _a : []).push(teardown); } } }; @@ -19864,7 +17056,7 @@ var require_errorContext = __commonJS((exports) => { } cb(); if (isRoot) { - var _a2 = context, errorThrown = _a2.errorThrown, error = _a2.error; + var _a = context, errorThrown = _a.errorThrown, error = _a.error; context = null; if (errorThrown) { throw error; @@ -20159,7 +17351,7 @@ var require_Observable = __commonJS((exports) => { var _this = this; var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new Subscriber_1.SafeSubscriber(observerOrNext, error, complete); errorContext_1.errorContext(function() { - var _a2 = _this, operator = _a2.operator, source = _a2.source; + var _a = _this, operator = _a.operator, source = _a.source; subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); }); return subscriber; @@ -20191,8 +17383,8 @@ var require_Observable = __commonJS((exports) => { }); }; Observable2.prototype._subscribe = function(subscriber) { - var _a2; - return (_a2 = this.source) === null || _a2 === undefined ? undefined : _a2.subscribe(subscriber); + var _a; + return (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber); }; Observable2.prototype[observable_1.observable] = function() { return this; @@ -20225,8 +17417,8 @@ var require_Observable = __commonJS((exports) => { }(); exports.Observable = Observable; function getPromiseCtor(promiseCtor) { - var _a2; - return (_a2 = promiseCtor !== null && promiseCtor !== undefined ? promiseCtor : config_1.config.Promise) !== null && _a2 !== undefined ? _a2 : Promise; + var _a; + return (_a = promiseCtor !== null && promiseCtor !== undefined ? promiseCtor : config_1.config.Promise) !== null && _a !== undefined ? _a : Promise; } function isObserver(value) { return value && isFunction_1.isFunction(value.next) && isFunction_1.isFunction(value.error) && isFunction_1.isFunction(value.complete); @@ -20288,13 +17480,13 @@ var require_OperatorSubscriber = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.OperatorSubscriber = exports.createOperatorSubscriber = undefined; var Subscriber_1 = require_Subscriber(); - function createOperatorSubscriber(destination, onNext, onComplete, onError2, onFinalize) { - return new OperatorSubscriber(destination, onNext, onComplete, onError2, onFinalize); + function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { + return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); } exports.createOperatorSubscriber = createOperatorSubscriber; var OperatorSubscriber = function(_super) { __extends(OperatorSubscriber2, _super); - function OperatorSubscriber2(destination, onNext, onComplete, onError2, onFinalize, shouldUnsubscribe) { + function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { var _this = _super.call(this, destination) || this; _this.onFinalize = onFinalize; _this.shouldUnsubscribe = shouldUnsubscribe; @@ -20305,9 +17497,9 @@ var require_OperatorSubscriber = __commonJS((exports) => { destination.error(err); } } : _super.prototype._next; - _this._error = onError2 ? function(err) { + _this._error = onError ? function(err) { try { - onError2(err); + onError(err); } catch (err2) { destination.error(err2); } finally { @@ -20326,11 +17518,11 @@ var require_OperatorSubscriber = __commonJS((exports) => { return _this; } OperatorSubscriber2.prototype.unsubscribe = function() { - var _a2; + var _a; if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { var closed_1 = this.closed; _super.prototype.unsubscribe.call(this); - !closed_1 && ((_a2 = this.onFinalize) === null || _a2 === undefined || _a2.call(this)); + !closed_1 && ((_a = this.onFinalize) === null || _a === undefined || _a.call(this)); } }; return OperatorSubscriber2; @@ -20663,7 +17855,7 @@ var require_Subject = __commonJS((exports) => { Subject2.prototype.next = function(value) { var _this = this; errorContext_1.errorContext(function() { - var e_1, _a2; + var e_1, _a; _this._throwIfClosed(); if (!_this.isStopped) { if (!_this.currentObservers) { @@ -20678,8 +17870,8 @@ var require_Subject = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (_c && !_c.done && (_a2 = _b.return)) - _a2.call(_b); + if (_c && !_c.done && (_a = _b.return)) + _a.call(_b); } finally { if (e_1) throw e_1.error; @@ -20721,8 +17913,8 @@ var require_Subject = __commonJS((exports) => { }; Object.defineProperty(Subject2.prototype, "observed", { get: function() { - var _a2; - return ((_a2 = this.observers) === null || _a2 === undefined ? undefined : _a2.length) > 0; + var _a; + return ((_a = this.observers) === null || _a === undefined ? undefined : _a.length) > 0; }, enumerable: false, configurable: true @@ -20738,7 +17930,7 @@ var require_Subject = __commonJS((exports) => { }; Subject2.prototype._innerSubscribe = function(subscriber) { var _this = this; - var _a2 = this, hasError = _a2.hasError, isStopped = _a2.isStopped, observers = _a2.observers; + var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; if (hasError || isStopped) { return Subscription_1.EMPTY_SUBSCRIPTION; } @@ -20750,7 +17942,7 @@ var require_Subject = __commonJS((exports) => { }); }; Subject2.prototype._checkFinalizedStatuses = function(subscriber) { - var _a2 = this, hasError = _a2.hasError, thrownError = _a2.thrownError, isStopped = _a2.isStopped; + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; if (hasError) { subscriber.error(thrownError); } else if (isStopped) { @@ -20777,20 +17969,20 @@ var require_Subject = __commonJS((exports) => { return _this; } AnonymousSubject2.prototype.next = function(value) { - var _a2, _b; - (_b = (_a2 = this.destination) === null || _a2 === undefined ? undefined : _a2.next) === null || _b === undefined || _b.call(_a2, value); + var _a, _b; + (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.next) === null || _b === undefined || _b.call(_a, value); }; AnonymousSubject2.prototype.error = function(err) { - var _a2, _b; - (_b = (_a2 = this.destination) === null || _a2 === undefined ? undefined : _a2.error) === null || _b === undefined || _b.call(_a2, err); + var _a, _b; + (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.error) === null || _b === undefined || _b.call(_a, err); }; AnonymousSubject2.prototype.complete = function() { - var _a2, _b; - (_b = (_a2 = this.destination) === null || _a2 === undefined ? undefined : _a2.complete) === null || _b === undefined || _b.call(_a2); + var _a, _b; + (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.complete) === null || _b === undefined || _b.call(_a); }; AnonymousSubject2.prototype._subscribe = function(subscriber) { - var _a2, _b; - return (_b = (_a2 = this.source) === null || _a2 === undefined ? undefined : _a2.subscribe(subscriber)) !== null && _b !== undefined ? _b : Subscription_1.EMPTY_SUBSCRIPTION; + var _a, _b; + return (_b = (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber)) !== null && _b !== undefined ? _b : Subscription_1.EMPTY_SUBSCRIPTION; }; return AnonymousSubject2; }(Subject); @@ -20843,7 +18035,7 @@ var require_BehaviorSubject = __commonJS((exports) => { return subscription; }; BehaviorSubject2.prototype.getValue = function() { - var _a2 = this, hasError = _a2.hasError, thrownError = _a2.thrownError, _value = _a2._value; + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; if (hasError) { throw thrownError; } @@ -20921,7 +18113,7 @@ var require_ReplaySubject = __commonJS((exports) => { return _this; } ReplaySubject2.prototype.next = function(value) { - var _a2 = this, isStopped = _a2.isStopped, _buffer = _a2._buffer, _infiniteTimeWindow = _a2._infiniteTimeWindow, _timestampProvider = _a2._timestampProvider, _windowTime = _a2._windowTime; + var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime; if (!isStopped) { _buffer.push(value); !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); @@ -20933,7 +18125,7 @@ var require_ReplaySubject = __commonJS((exports) => { this._throwIfClosed(); this._trimBuffer(); var subscription = this._innerSubscribe(subscriber); - var _a2 = this, _infiniteTimeWindow = _a2._infiniteTimeWindow, _buffer = _a2._buffer; + var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer; var copy = _buffer.slice(); for (var i = 0;i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { subscriber.next(copy[i]); @@ -20942,16 +18134,16 @@ var require_ReplaySubject = __commonJS((exports) => { return subscription; }; ReplaySubject2.prototype._trimBuffer = function() { - var _a2 = this, _bufferSize = _a2._bufferSize, _timestampProvider = _a2._timestampProvider, _buffer = _a2._buffer, _infiniteTimeWindow = _a2._infiniteTimeWindow; + var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow; var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); if (!_infiniteTimeWindow) { var now = _timestampProvider.now(); - var last2 = 0; + var last = 0; for (var i = 1;i < _buffer.length && _buffer[i] <= now; i += 2) { - last2 = i; + last = i; } - last2 && _buffer.splice(0, last2 + 1); + last && _buffer.splice(0, last + 1); } }; return ReplaySubject2; @@ -20995,7 +18187,7 @@ var require_AsyncSubject = __commonJS((exports) => { return _this; } AsyncSubject2.prototype._checkFinalizedStatuses = function(subscriber) { - var _a2 = this, hasError = _a2.hasError, _hasValue = _a2._hasValue, _value = _a2._value, thrownError = _a2.thrownError, isStopped = _a2.isStopped, _isComplete = _a2._isComplete; + var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete; if (hasError) { subscriber.error(thrownError); } else if (isStopped || _isComplete) { @@ -21010,7 +18202,7 @@ var require_AsyncSubject = __commonJS((exports) => { } }; AsyncSubject2.prototype.complete = function() { - var _a2 = this, _hasValue = _a2._hasValue, _value = _a2._value, _isComplete = _a2._isComplete; + var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete; if (!_isComplete) { this._isComplete = true; _hasValue && _super.prototype.next.call(this, _value); @@ -21053,9 +18245,9 @@ var require_Action = __commonJS((exports) => { function Action2(scheduler, work) { return _super.call(this) || this; } - Action2.prototype.schedule = function(state, delay2) { - if (delay2 === undefined) { - delay2 = 0; + Action2.prototype.schedule = function(state, delay) { + if (delay === undefined) { + delay = 0; } return this; }; @@ -21151,10 +18343,10 @@ var require_AsyncAction = __commonJS((exports) => { _this.pending = false; return _this; } - AsyncAction2.prototype.schedule = function(state, delay2) { - var _a2; - if (delay2 === undefined) { - delay2 = 0; + AsyncAction2.prototype.schedule = function(state, delay) { + var _a; + if (delay === undefined) { + delay = 0; } if (this.closed) { return this; @@ -21163,24 +18355,24 @@ var require_AsyncAction = __commonJS((exports) => { var id = this.id; var scheduler = this.scheduler; if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, delay2); + this.id = this.recycleAsyncId(scheduler, id, delay); } this.pending = true; - this.delay = delay2; - this.id = (_a2 = this.id) !== null && _a2 !== undefined ? _a2 : this.requestAsyncId(scheduler, this.id, delay2); + this.delay = delay; + this.id = (_a = this.id) !== null && _a !== undefined ? _a : this.requestAsyncId(scheduler, this.id, delay); return this; }; - AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay2) { - if (delay2 === undefined) { - delay2 = 0; + AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay) { + if (delay === undefined) { + delay = 0; } - return intervalProvider_1.intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay2); + return intervalProvider_1.intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay); }; - AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay2) { - if (delay2 === undefined) { - delay2 = 0; + AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay) { + if (delay === undefined) { + delay = 0; } - if (delay2 != null && this.delay === delay2 && this.pending === false) { + if (delay != null && this.delay === delay && this.pending === false) { return id; } if (id != null) { @@ -21188,12 +18380,12 @@ var require_AsyncAction = __commonJS((exports) => { } return; }; - AsyncAction2.prototype.execute = function(state, delay2) { + AsyncAction2.prototype.execute = function(state, delay) { if (this.closed) { return new Error("executing a cancelled action"); } this.pending = false; - var error = this._execute(state, delay2); + var error = this._execute(state, delay); if (error) { return error; } else if (this.pending === false && this.id != null) { @@ -21216,7 +18408,7 @@ var require_AsyncAction = __commonJS((exports) => { }; AsyncAction2.prototype.unsubscribe = function() { if (!this.closed) { - var _a2 = this, id = _a2.id, scheduler = _a2.scheduler; + var _a = this, id = _a.id, scheduler = _a.scheduler; var actions = scheduler.actions; this.work = this.state = this.scheduler = null; this.pending = false; @@ -21355,26 +18547,26 @@ var require_AsapAction = __commonJS((exports) => { _this.work = work; return _this; } - AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { - if (delay2 === undefined) { - delay2 = 0; + AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === undefined) { + delay = 0; } - if (delay2 !== null && delay2 > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); } scheduler.actions.push(this); return scheduler._scheduled || (scheduler._scheduled = immediateProvider_1.immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined))); }; - AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { - var _a2; - if (delay2 === undefined) { - delay2 = 0; + AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { + var _a; + if (delay === undefined) { + delay = 0; } - if (delay2 != null ? delay2 > 0 : this.delay > 0) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2); + if (delay != null ? delay > 0 : this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); } var actions = scheduler.actions; - if (id != null && ((_a2 = actions[actions.length - 1]) === null || _a2 === undefined ? undefined : _a2.id) !== id) { + if (id != null && ((_a = actions[actions.length - 1]) === null || _a === undefined ? undefined : _a.id) !== id) { immediateProvider_1.immediateProvider.clearImmediate(id); if (scheduler._scheduled === id) { scheduler._scheduled = undefined; @@ -21392,24 +18584,24 @@ var require_Scheduler = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.Scheduler = undefined; var dateTimestampProvider_1 = require_dateTimestampProvider(); - var Scheduler2 = function() { - function Scheduler3(schedulerActionCtor, now) { + var Scheduler = function() { + function Scheduler2(schedulerActionCtor, now) { if (now === undefined) { - now = Scheduler3.now; + now = Scheduler2.now; } this.schedulerActionCtor = schedulerActionCtor; this.now = now; } - Scheduler3.prototype.schedule = function(work, delay2, state) { - if (delay2 === undefined) { - delay2 = 0; + Scheduler2.prototype.schedule = function(work, delay, state) { + if (delay === undefined) { + delay = 0; } - return new this.schedulerActionCtor(this, work).schedule(state, delay2); + return new this.schedulerActionCtor(this, work).schedule(state, delay); }; - Scheduler3.now = dateTimestampProvider_1.dateTimestampProvider.now; - return Scheduler3; + Scheduler2.now = dateTimestampProvider_1.dateTimestampProvider.now; + return Scheduler2; }(); - exports.Scheduler = Scheduler2; + exports.Scheduler = Scheduler; }); // node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js @@ -21585,27 +18777,27 @@ var require_QueueAction = __commonJS((exports) => { _this.work = work; return _this; } - QueueAction2.prototype.schedule = function(state, delay2) { - if (delay2 === undefined) { - delay2 = 0; + QueueAction2.prototype.schedule = function(state, delay) { + if (delay === undefined) { + delay = 0; } - if (delay2 > 0) { - return _super.prototype.schedule.call(this, state, delay2); + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); } - this.delay = delay2; + this.delay = delay; this.state = state; this.scheduler.flush(this); return this; }; - QueueAction2.prototype.execute = function(state, delay2) { - return delay2 > 0 || this.closed ? _super.prototype.execute.call(this, state, delay2) : this._execute(state, delay2); + QueueAction2.prototype.execute = function(state, delay) { + return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay); }; - QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { - if (delay2 === undefined) { - delay2 = 0; + QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === undefined) { + delay = 0; } - if (delay2 != null && delay2 > 0 || delay2 == null && this.delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); + if (delay != null && delay > 0 || delay == null && this.delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); } scheduler.flush(this); return 0; @@ -21696,28 +18888,28 @@ var require_AnimationFrameAction = __commonJS((exports) => { _this.work = work; return _this; } - AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { - if (delay2 === undefined) { - delay2 = 0; + AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === undefined) { + delay = 0; } - if (delay2 !== null && delay2 > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); } scheduler.actions.push(this); return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function() { return scheduler.flush(undefined); })); }; - AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { - var _a2; - if (delay2 === undefined) { - delay2 = 0; + AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { + var _a; + if (delay === undefined) { + delay = 0; } - if (delay2 != null ? delay2 > 0 : this.delay > 0) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2); + if (delay != null ? delay > 0 : this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); } var actions = scheduler.actions; - if (id != null && ((_a2 = actions[actions.length - 1]) === null || _a2 === undefined ? undefined : _a2.id) !== id) { + if (id != null && ((_a = actions[actions.length - 1]) === null || _a === undefined ? undefined : _a.id) !== id) { animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id); scheduler._scheduled = undefined; } @@ -21840,7 +19032,7 @@ var require_VirtualTimeScheduler = __commonJS((exports) => { return _this; } VirtualTimeScheduler2.prototype.flush = function() { - var _a2 = this, actions = _a2.actions, maxFrames = _a2.maxFrames; + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; var error; var action; while ((action = actions[0]) && action.delay <= maxFrames) { @@ -21875,41 +19067,41 @@ var require_VirtualTimeScheduler = __commonJS((exports) => { _this.index = scheduler.index = index; return _this; } - VirtualAction2.prototype.schedule = function(state, delay2) { - if (delay2 === undefined) { - delay2 = 0; + VirtualAction2.prototype.schedule = function(state, delay) { + if (delay === undefined) { + delay = 0; } - if (Number.isFinite(delay2)) { + if (Number.isFinite(delay)) { if (!this.id) { - return _super.prototype.schedule.call(this, state, delay2); + return _super.prototype.schedule.call(this, state, delay); } this.active = false; var action = new VirtualAction2(this.scheduler, this.work); this.add(action); - return action.schedule(state, delay2); + return action.schedule(state, delay); } else { return Subscription_1.Subscription.EMPTY; } }; - VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { - if (delay2 === undefined) { - delay2 = 0; + VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === undefined) { + delay = 0; } - this.delay = scheduler.frame + delay2; + this.delay = scheduler.frame + delay; var actions = scheduler.actions; actions.push(this); actions.sort(VirtualAction2.sortActions); return 1; }; - VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { - if (delay2 === undefined) { - delay2 = 0; + VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { + if (delay === undefined) { + delay = 0; } return; }; - VirtualAction2.prototype._execute = function(state, delay2) { + VirtualAction2.prototype._execute = function(state, delay) { if (this.active === true) { - return _super.prototype._execute.call(this, state, delay2); + return _super.prototype._execute.call(this, state, delay); } }; VirtualAction2.sortActions = function(a, b) { @@ -21933,7 +19125,7 @@ var require_VirtualTimeScheduler = __commonJS((exports) => { }); // node_modules/rxjs/dist/cjs/internal/observable/empty.js -var require_empty2 = __commonJS((exports) => { +var require_empty = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.empty = exports.EMPTY = undefined; var Observable_1 = require_Observable(); @@ -21970,19 +19162,19 @@ var require_args = __commonJS((exports) => { exports.popNumber = exports.popScheduler = exports.popResultSelector = undefined; var isFunction_1 = require_isFunction(); var isScheduler_1 = require_isScheduler(); - function last2(arr) { + function last(arr) { return arr[arr.length - 1]; } function popResultSelector(args) { - return isFunction_1.isFunction(last2(args)) ? args.pop() : undefined; + return isFunction_1.isFunction(last(args)) ? args.pop() : undefined; } exports.popResultSelector = popResultSelector; function popScheduler(args) { - return isScheduler_1.isScheduler(last2(args)) ? args.pop() : undefined; + return isScheduler_1.isScheduler(last(args)) ? args.pop() : undefined; } exports.popScheduler = popScheduler; function popNumber(args, defaultValue) { - return typeof last2(args) === "number" ? args.pop() : defaultValue; + return typeof last(args) === "number" ? args.pop() : defaultValue; } exports.popNumber = popNumber; }); @@ -22188,7 +19380,7 @@ var require_isReadableStreamLike = __commonJS((exports) => { var isFunction_1 = require_isFunction(); function readableStreamLikeToAsyncGenerator(readableStream) { return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() { - var reader, _a2, value, done; + var reader, _a, value, done; return __generator(this, function(_b) { switch (_b.label) { case 0: @@ -22202,7 +19394,7 @@ var require_isReadableStreamLike = __commonJS((exports) => { ; return [4, __await(reader.read())]; case 3: - _a2 = _b.sent(), value = _a2.value, done = _a2.done; + _a = _b.sent(), value = _a.value, done = _a.done; if (!done) return [3, 5]; return [4, __await(undefined)]; @@ -22446,7 +19638,7 @@ var require_innerFrom = __commonJS((exports) => { exports.fromPromise = fromPromise; function fromIterable(iterable) { return new Observable_1.Observable(function(subscriber) { - var e_1, _a2; + var e_1, _a; try { for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next();!iterable_1_1.done; iterable_1_1 = iterable_1.next()) { var value = iterable_1_1.value; @@ -22459,8 +19651,8 @@ var require_innerFrom = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (iterable_1_1 && !iterable_1_1.done && (_a2 = iterable_1.return)) - _a2.call(iterable_1); + if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) + _a.call(iterable_1); } finally { if (e_1) throw e_1.error; @@ -22484,7 +19676,7 @@ var require_innerFrom = __commonJS((exports) => { exports.fromReadableStreamLike = fromReadableStreamLike; function process11(asyncIterable, subscriber) { var asyncIterable_1, asyncIterable_1_1; - var e_2, _a2; + var e_2, _a; return __awaiter(this, undefined, undefined, function() { var value, e_2_1; return __generator(this, function(_b) { @@ -22514,9 +19706,9 @@ var require_innerFrom = __commonJS((exports) => { return [3, 11]; case 6: _b.trys.push([6, , 9, 10]); - if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a2 = asyncIterable_1.return))) + if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8]; - return [4, _a2.call(asyncIterable_1)]; + return [4, _a.call(asyncIterable_1)]; case 7: _b.sent(); _b.label = 8; @@ -22541,9 +19733,9 @@ var require_innerFrom = __commonJS((exports) => { var require_executeSchedule = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.executeSchedule = undefined; - function executeSchedule(parentSubscription, scheduler, work, delay2, repeat) { - if (delay2 === undefined) { - delay2 = 0; + function executeSchedule(parentSubscription, scheduler, work, delay, repeat) { + if (delay === undefined) { + delay = 0; } if (repeat === undefined) { repeat = false; @@ -22551,11 +19743,11 @@ var require_executeSchedule = __commonJS((exports) => { var scheduleSubscription = scheduler.schedule(function() { work(); if (repeat) { - parentSubscription.add(this.schedule(null, delay2)); + parentSubscription.add(this.schedule(null, delay)); } else { this.unsubscribe(); } - }, delay2); + }, delay); parentSubscription.add(scheduleSubscription); if (!repeat) { return scheduleSubscription; @@ -22571,23 +19763,23 @@ var require_observeOn = __commonJS((exports) => { var executeSchedule_1 = require_executeSchedule(); var lift_1 = require_lift(); var OperatorSubscriber_1 = require_OperatorSubscriber(); - function observeOn(scheduler, delay2) { - if (delay2 === undefined) { - delay2 = 0; + function observeOn(scheduler, delay) { + if (delay === undefined) { + delay = 0; } return lift_1.operate(function(source, subscriber) { source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { return subscriber.next(value); - }, delay2); + }, delay); }, function() { return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { return subscriber.complete(); - }, delay2); + }, delay); }, function(err) { return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { return subscriber.error(err); - }, delay2); + }, delay); })); }); } @@ -22599,14 +19791,14 @@ var require_subscribeOn = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.subscribeOn = undefined; var lift_1 = require_lift(); - function subscribeOn(scheduler, delay2) { - if (delay2 === undefined) { - delay2 = 0; + function subscribeOn(scheduler, delay) { + if (delay === undefined) { + delay = 0; } return lift_1.operate(function(source, subscriber) { subscriber.add(scheduler.schedule(function() { return source.subscribe(subscriber); - }, delay2)); + }, delay)); }); } exports.subscribeOn = subscribeOn; @@ -22675,11 +19867,11 @@ var require_scheduleIterable = __commonJS((exports) => { executeSchedule_1.executeSchedule(subscriber, scheduler, function() { iterator = input[iterator_1.iterator](); executeSchedule_1.executeSchedule(subscriber, scheduler, function() { - var _a2; + var _a; var value; var done; try { - _a2 = iterator.next(), value = _a2.value, done = _a2.done; + _a = iterator.next(), value = _a.value, done = _a.done; } catch (err) { subscriber.error(err); return; @@ -22835,7 +20027,7 @@ var require_throwError = __commonJS((exports) => { var require_Notification = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.observeNotification = exports.Notification = exports.NotificationKind = undefined; - var empty_1 = require_empty2(); + var empty_1 = require_empty(); var of_1 = require_of(); var throwError_1 = require_throwError(); var isFunction_1 = require_isFunction(); @@ -22856,15 +20048,15 @@ var require_Notification = __commonJS((exports) => { return observeNotification(this, observer); }; Notification2.prototype.do = function(nextHandler, errorHandler, completeHandler) { - var _a2 = this, kind = _a2.kind, value = _a2.value, error = _a2.error; + var _a = this, kind = _a.kind, value = _a.value, error = _a.error; return kind === "N" ? nextHandler === null || nextHandler === undefined ? undefined : nextHandler(value) : kind === "E" ? errorHandler === null || errorHandler === undefined ? undefined : errorHandler(error) : completeHandler === null || completeHandler === undefined ? undefined : completeHandler(); }; Notification2.prototype.accept = function(nextOrObserver, error, complete) { - var _a2; - return isFunction_1.isFunction((_a2 = nextOrObserver) === null || _a2 === undefined ? undefined : _a2.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete); + var _a; + return isFunction_1.isFunction((_a = nextOrObserver) === null || _a === undefined ? undefined : _a.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete); }; Notification2.prototype.toObservable = function() { - var _a2 = this, kind = _a2.kind, value = _a2.value, error = _a2.error; + var _a = this, kind = _a.kind, value = _a.value, error = _a.error; var result = kind === "N" ? of_1.of(value) : kind === "E" ? throwError_1.throwError(function() { return error; }) : kind === "C" ? empty_1.EMPTY : 0; @@ -22887,12 +20079,12 @@ var require_Notification = __commonJS((exports) => { }(); exports.Notification = Notification; function observeNotification(notification, observer) { - var _a2, _b, _c; + var _a, _b, _c; var _d = notification, kind = _d.kind, value = _d.value, error = _d.error; if (typeof kind !== "string") { throw new TypeError('Invalid notification, missing "kind"'); } - kind === "N" ? (_a2 = observer.next) === null || _a2 === undefined || _a2.call(observer, value) : kind === "E" ? (_b = observer.error) === null || _b === undefined || _b.call(observer, error) : (_c = observer.complete) === null || _c === undefined || _c.call(observer); + kind === "N" ? (_a = observer.next) === null || _a === undefined || _a.call(observer, value) : kind === "E" ? (_b = observer.error) === null || _b === undefined || _b.call(observer, error) : (_c = observer.complete) === null || _c === undefined || _c.call(observer); } exports.observeNotification = observeNotification; }); @@ -23058,8 +20250,8 @@ var require_timeout = __commonJS((exports) => { }; }); function timeout(config, schedulerArg) { - var _a2 = isDate_1.isValidDate(config) ? { first: config } : typeof config === "number" ? { each: config } : config, first2 = _a2.first, each = _a2.each, _b = _a2.with, _with = _b === undefined ? timeoutErrorFactory : _b, _c = _a2.scheduler, scheduler = _c === undefined ? schedulerArg !== null && schedulerArg !== undefined ? schedulerArg : async_1.asyncScheduler : _c, _d = _a2.meta, meta = _d === undefined ? null : _d; - if (first2 == null && each == null) { + var _a = isDate_1.isValidDate(config) ? { first: config } : typeof config === "number" ? { each: config } : config, first = _a.first, each = _a.each, _b = _a.with, _with = _b === undefined ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === undefined ? schedulerArg !== null && schedulerArg !== undefined ? schedulerArg : async_1.asyncScheduler : _c, _d = _a.meta, meta = _d === undefined ? null : _d; + if (first == null && each == null) { throw new TypeError("No timeout provided."); } return lift_1.operate(function(source, subscriber) { @@ -23067,7 +20259,7 @@ var require_timeout = __commonJS((exports) => { var timerSubscription; var lastValue = null; var seen = 0; - var startTimer = function(delay2) { + var startTimer = function(delay) { timerSubscription = executeSchedule_1.executeSchedule(subscriber, scheduler, function() { try { originalSourceSubscription.unsubscribe(); @@ -23079,7 +20271,7 @@ var require_timeout = __commonJS((exports) => { } catch (err) { subscriber.error(err); } - }, delay2); + }, delay); }; originalSourceSubscription = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { timerSubscription === null || timerSubscription === undefined || timerSubscription.unsubscribe(); @@ -23092,7 +20284,7 @@ var require_timeout = __commonJS((exports) => { } lastValue = null; })); - !seen && startTimer(first2 != null ? typeof first2 === "number" ? first2 : +first2 - scheduler.now() : each); + !seen && startTimer(first != null ? typeof first === "number" ? first : +first - scheduler.now() : each); }); } exports.timeout = timeout; @@ -23352,7 +20544,7 @@ var require_combineLatest = __commonJS((exports) => { } var scheduler = args_1.popScheduler(args); var resultSelector = args_1.popResultSelector(args); - var _a2 = argsArgArrayOrObject_1.argsArgArrayOrObject(args), observables = _a2.args, keys = _a2.keys; + var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys; if (observables.length === 0) { return from_1.from([], scheduler); } @@ -23580,7 +20772,7 @@ var require_connectable = __commonJS((exports) => { config = DEFAULT_CONFIG; } var connection = null; - var { connector, resetOnDisconnect: _a2 } = config, resetOnDisconnect = _a2 === undefined ? true : _a2; + var { connector, resetOnDisconnect: _a } = config, resetOnDisconnect = _a === undefined ? true : _a; var subject = connector(); var result = new Observable_1.Observable(function(subscriber) { return subject.subscribe(subscriber); @@ -23620,7 +20812,7 @@ var require_forkJoin = __commonJS((exports) => { args[_i] = arguments[_i]; } var resultSelector = args_1.popResultSelector(args); - var _a2 = argsArgArrayOrObject_1.argsArgArrayOrObject(args), sources = _a2.args, keys = _a2.keys; + var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys; var result = new Observable_1.Observable(function(subscriber) { var length = sources.length; if (!length) { @@ -23700,11 +20892,11 @@ var require_fromEvent = __commonJS((exports) => { if (resultSelector) { return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); } - var _a2 = __read(isEventTarget(target) ? eventTargetMethods.map(function(methodName) { + var _a = __read(isEventTarget(target) ? eventTargetMethods.map(function(methodName) { return function(handler) { return target[methodName](eventName, handler, options); }; - }) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add = _a2[0], remove2 = _a2[1]; + }) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add = _a[0], remove = _a[1]; if (!add) { if (isArrayLike_1.isArrayLike(target)) { return mergeMap_1.mergeMap(function(subTarget) { @@ -23725,7 +20917,7 @@ var require_fromEvent = __commonJS((exports) => { }; add(handler); return function() { - return remove2(handler); + return remove(handler); }; }); } @@ -23861,11 +21053,11 @@ var require_generate = __commonJS((exports) => { var defer_1 = require_defer(); var scheduleIterable_1 = require_scheduleIterable(); function generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) { - var _a2, _b; + var _a, _b; var resultSelector; var initialState; if (arguments.length === 1) { - _a2 = initialStateOrOptions, initialState = _a2.initialState, condition = _a2.condition, iterate = _a2.iterate, _b = _a2.resultSelector, resultSelector = _b === undefined ? identity_1.identity : _b, scheduler = _a2.scheduler; + _a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate = _a.iterate, _b = _a.resultSelector, resultSelector = _b === undefined ? identity_1.identity : _b, scheduler = _a.scheduler; } else { initialState = initialStateOrOptions; if (!resultSelectorOrScheduler || isScheduler_1.isScheduler(resultSelectorOrScheduler)) { @@ -23877,18 +21069,18 @@ var require_generate = __commonJS((exports) => { } function gen() { var state; - return __generator(this, function(_a3) { - switch (_a3.label) { + return __generator(this, function(_a2) { + switch (_a2.label) { case 0: state = initialState; - _a3.label = 1; + _a2.label = 1; case 1: if (!(!condition || condition(state))) return [3, 4]; return [4, resultSelector(state)]; case 2: - _a3.sent(); - _a3.label = 3; + _a2.sent(); + _a2.label = 3; case 3: state = iterate(state); return [3, 1]; @@ -23988,7 +21180,7 @@ var require_merge = __commonJS((exports) => { exports.merge = undefined; var mergeAll_1 = require_mergeAll(); var innerFrom_1 = require_innerFrom(); - var empty_1 = require_empty2(); + var empty_1 = require_empty(); var args_1 = require_args(); var from_1 = require_from(); function merge() { @@ -24011,10 +21203,10 @@ var require_never = __commonJS((exports) => { var Observable_1 = require_Observable(); var noop_1 = require_noop(); exports.NEVER = new Observable_1.Observable(noop_1.noop); - function never2() { + function never() { return exports.NEVER; } - exports.never = never2; + exports.never = never; }); // node_modules/rxjs/dist/cjs/internal/util/argsOrArgArray.js @@ -24164,7 +21356,7 @@ var require_range = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.range = undefined; var Observable_1 = require_Observable(); - var empty_1 = require_empty2(); + var empty_1 = require_empty(); function range(start, count, scheduler) { if (count == null) { count = start; @@ -24201,7 +21393,7 @@ var require_using = __commonJS((exports) => { exports.using = undefined; var Observable_1 = require_Observable(); var innerFrom_1 = require_innerFrom(); - var empty_1 = require_empty2(); + var empty_1 = require_empty(); function using(resourceFactory, observableFactory) { return new Observable_1.Observable(function(subscriber) { var resource = resourceFactory(); @@ -24251,7 +21443,7 @@ var require_zip = __commonJS((exports) => { var Observable_1 = require_Observable(); var innerFrom_1 = require_innerFrom(); var argsOrArgArray_1 = require_argsOrArgArray(); - var empty_1 = require_empty2(); + var empty_1 = require_empty(); var OperatorSubscriber_1 = require_OperatorSubscriber(); var args_1 = require_args(); function zip() { @@ -24429,7 +21621,7 @@ var require_bufferCount = __commonJS((exports) => { var buffers = []; var count = 0; source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a2, e_2, _b; + var e_1, _a, e_2, _b; var toEmit = null; if (count++ % startBufferEvery === 0) { buffers.push([]); @@ -24447,8 +21639,8 @@ var require_bufferCount = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (buffers_1_1 && !buffers_1_1.done && (_a2 = buffers_1.return)) - _a2.call(buffers_1); + if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) + _a.call(buffers_1); } finally { if (e_1) throw e_1.error; @@ -24474,7 +21666,7 @@ var require_bufferCount = __commonJS((exports) => { } } }, function() { - var e_3, _a2; + var e_3, _a; try { for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next();!buffers_2_1.done; buffers_2_1 = buffers_2.next()) { var buffer = buffers_2_1.value; @@ -24484,8 +21676,8 @@ var require_bufferCount = __commonJS((exports) => { e_3 = { error: e_3_1 }; } finally { try { - if (buffers_2_1 && !buffers_2_1.done && (_a2 = buffers_2.return)) - _a2.call(buffers_2); + if (buffers_2_1 && !buffers_2_1.done && (_a = buffers_2.return)) + _a.call(buffers_2); } finally { if (e_3) throw e_3.error; @@ -24526,12 +21718,12 @@ var require_bufferTime = __commonJS((exports) => { var args_1 = require_args(); var executeSchedule_1 = require_executeSchedule(); function bufferTime(bufferTimeSpan) { - var _a2, _b; + var _a, _b; var otherArgs = []; for (var _i = 1;_i < arguments.length; _i++) { otherArgs[_i - 1] = arguments[_i]; } - var scheduler = (_a2 = args_1.popScheduler(otherArgs)) !== null && _a2 !== undefined ? _a2 : async_1.asyncScheduler; + var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== undefined ? _a : async_1.asyncScheduler; var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== undefined ? _b : null; var maxBufferSize = otherArgs[1] || Infinity; return lift_1.operate(function(source, subscriber) { @@ -24566,7 +21758,7 @@ var require_bufferTime = __commonJS((exports) => { } startBuffer(); var bufferTimeSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a3; + var e_1, _a2; var recordsCopy = bufferRecords.slice(); try { for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next();!recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) { @@ -24579,8 +21771,8 @@ var require_bufferTime = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a3 = recordsCopy_1.return)) - _a3.call(recordsCopy_1); + if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a2 = recordsCopy_1.return)) + _a2.call(recordsCopy_1); } finally { if (e_1) throw e_1.error; @@ -24641,7 +21833,7 @@ var require_bufferToggle = __commonJS((exports) => { closingSubscription.add(innerFrom_1.innerFrom(closingSelector(openValue)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, emitBuffer, noop_1.noop))); }, noop_1.noop)); source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a2; + var e_1, _a; try { for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next();!buffers_1_1.done; buffers_1_1 = buffers_1.next()) { var buffer = buffers_1_1.value; @@ -24651,8 +21843,8 @@ var require_bufferToggle = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (buffers_1_1 && !buffers_1_1.done && (_a2 = buffers_1.return)) - _a2.call(buffers_1); + if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) + _a.call(buffers_1); } finally { if (e_1) throw e_1.error; @@ -25201,7 +22393,7 @@ var require_defaultIfEmpty = __commonJS((exports) => { var require_take = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.take = undefined; - var empty_1 = require_empty2(); + var empty_1 = require_empty(); var lift_1 = require_lift(); var OperatorSubscriber_1 = require_OperatorSubscriber(); function take(count) { @@ -25280,7 +22472,7 @@ var require_delay = __commonJS((exports) => { var async_1 = require_async(); var delayWhen_1 = require_delayWhen(); var timer_1 = require_timer(); - function delay2(due, scheduler) { + function delay(due, scheduler) { if (scheduler === undefined) { scheduler = async_1.asyncScheduler; } @@ -25289,7 +22481,7 @@ var require_delay = __commonJS((exports) => { return duration; }); } - exports.delay = delay2; + exports.delay = delay; }); // node_modules/rxjs/dist/cjs/internal/operators/dematerialize.js @@ -25349,11 +22541,11 @@ var require_distinctUntilChanged = __commonJS((exports) => { comparator = comparator !== null && comparator !== undefined ? comparator : defaultCompare; return lift_1.operate(function(source, subscriber) { var previousKey; - var first2 = true; + var first = true; source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { var currentKey = keySelector(value); - if (first2 || !comparator(previousKey, currentKey)) { - first2 = false; + if (first || !comparator(previousKey, currentKey)) { + first = false; previousKey = currentKey; subscriber.next(value); } @@ -25643,7 +22835,7 @@ var require_first = __commonJS((exports) => { var defaultIfEmpty_1 = require_defaultIfEmpty(); var throwIfEmpty_1 = require_throwIfEmpty(); var identity_1 = require_identity(); - function first2(predicate, defaultValue) { + function first(predicate, defaultValue) { var hasDefaultValue = arguments.length >= 2; return function(source) { return source.pipe(predicate ? filter_1.filter(function(v, i) { @@ -25653,7 +22845,7 @@ var require_first = __commonJS((exports) => { })); }; } - exports.first = first2; + exports.first = first; }); // node_modules/rxjs/dist/cjs/internal/operators/groupBy.js @@ -25773,7 +22965,7 @@ var require_takeLast = __commonJS((exports) => { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.takeLast = undefined; - var empty_1 = require_empty2(); + var empty_1 = require_empty(); var lift_1 = require_lift(); var OperatorSubscriber_1 = require_OperatorSubscriber(); function takeLast(count) { @@ -25785,7 +22977,7 @@ var require_takeLast = __commonJS((exports) => { buffer.push(value); count < buffer.length && buffer.shift(); }, function() { - var e_1, _a2; + var e_1, _a; try { for (var buffer_1 = __values(buffer), buffer_1_1 = buffer_1.next();!buffer_1_1.done; buffer_1_1 = buffer_1.next()) { var value = buffer_1_1.value; @@ -25795,8 +22987,8 @@ var require_takeLast = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (buffer_1_1 && !buffer_1_1.done && (_a2 = buffer_1.return)) - _a2.call(buffer_1); + if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) + _a.call(buffer_1); } finally { if (e_1) throw e_1.error; @@ -25821,7 +23013,7 @@ var require_last = __commonJS((exports) => { var throwIfEmpty_1 = require_throwIfEmpty(); var defaultIfEmpty_1 = require_defaultIfEmpty(); var identity_1 = require_identity(); - function last2(predicate, defaultValue) { + function last(predicate, defaultValue) { var hasDefaultValue = arguments.length >= 2; return function(source) { return source.pipe(predicate ? filter_1.filter(function(v, i) { @@ -25831,7 +23023,7 @@ var require_last = __commonJS((exports) => { })); }; } - exports.last = last2; + exports.last = last; }); // node_modules/rxjs/dist/cjs/internal/operators/materialize.js @@ -26276,18 +23468,18 @@ var require_raceWith = __commonJS((exports) => { var require_repeat = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.repeat = undefined; - var empty_1 = require_empty2(); + var empty_1 = require_empty(); var lift_1 = require_lift(); var OperatorSubscriber_1 = require_OperatorSubscriber(); var innerFrom_1 = require_innerFrom(); var timer_1 = require_timer(); function repeat(countOrConfig) { - var _a2; + var _a; var count = Infinity; - var delay2; + var delay; if (countOrConfig != null) { if (typeof countOrConfig === "object") { - _a2 = countOrConfig.count, count = _a2 === undefined ? Infinity : _a2, delay2 = countOrConfig.delay; + _a = countOrConfig.count, count = _a === undefined ? Infinity : _a, delay = countOrConfig.delay; } else { count = countOrConfig; } @@ -26300,8 +23492,8 @@ var require_repeat = __commonJS((exports) => { var resubscribe = function() { sourceSub === null || sourceSub === undefined || sourceSub.unsubscribe(); sourceSub = null; - if (delay2 != null) { - var notifier = typeof delay2 === "number" ? timer_1.timer(delay2) : innerFrom_1.innerFrom(delay2(soFar)); + if (delay != null) { + var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(soFar)); var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { notifierSubscriber_1.unsubscribe(); subscribeToSource(); @@ -26408,7 +23600,7 @@ var require_retry = __commonJS((exports) => { count: configOrCount }; } - var _a2 = config.count, count = _a2 === undefined ? Infinity : _a2, delay2 = config.delay, _b = config.resetOnSuccess, resetOnSuccess = _b === undefined ? false : _b; + var _a = config.count, count = _a === undefined ? Infinity : _a, delay = config.delay, _b = config.resetOnSuccess, resetOnSuccess = _b === undefined ? false : _b; return count <= 0 ? identity_1.identity : lift_1.operate(function(source, subscriber) { var soFar = 0; var innerSub; @@ -26430,8 +23622,8 @@ var require_retry = __commonJS((exports) => { syncUnsub = true; } }; - if (delay2 != null) { - var notifier = typeof delay2 === "number" ? timer_1.timer(delay2) : innerFrom_1.innerFrom(delay2(err, soFar)); + if (delay != null) { + var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(err, soFar)); var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { notifierSubscriber_1.unsubscribe(); resub_1(); @@ -26640,9 +23832,9 @@ var require_share = __commonJS((exports) => { if (options === undefined) { options = {}; } - var _a2 = options.connector, connector = _a2 === undefined ? function() { + var _a = options.connector, connector = _a === undefined ? function() { return new Subject_1.Subject; - } : _a2, _b = options.resetOnError, resetOnError = _b === undefined ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === undefined ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === undefined ? true : _d; + } : _a, _b = options.resetOnError, resetOnError = _b === undefined ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === undefined ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === undefined ? true : _d; return function(wrapperSource) { var connection; var resetConnection; @@ -26730,11 +23922,11 @@ var require_shareReplay = __commonJS((exports) => { var ReplaySubject_1 = require_ReplaySubject(); var share_1 = require_share(); function shareReplay(configOrBufferSize, windowTime, scheduler) { - var _a2, _b, _c; + var _a, _b, _c; var bufferSize; var refCount = false; if (configOrBufferSize && typeof configOrBufferSize === "object") { - _a2 = configOrBufferSize.bufferSize, bufferSize = _a2 === undefined ? Infinity : _a2, _b = configOrBufferSize.windowTime, windowTime = _b === undefined ? Infinity : _b, _c = configOrBufferSize.refCount, refCount = _c === undefined ? false : _c, scheduler = configOrBufferSize.scheduler; + _a = configOrBufferSize.bufferSize, bufferSize = _a === undefined ? Infinity : _a, _b = configOrBufferSize.windowTime, windowTime = _b === undefined ? Infinity : _b, _c = configOrBufferSize.refCount, refCount = _c === undefined ? false : _c, scheduler = configOrBufferSize.scheduler; } else { bufferSize = configOrBufferSize !== null && configOrBufferSize !== undefined ? configOrBufferSize : Infinity; } @@ -27026,27 +24218,27 @@ var require_tap = __commonJS((exports) => { function tap(observerOrNext, error, complete) { var tapObserver = isFunction_1.isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext; return tapObserver ? lift_1.operate(function(source, subscriber) { - var _a2; - (_a2 = tapObserver.subscribe) === null || _a2 === undefined || _a2.call(tapObserver); + var _a; + (_a = tapObserver.subscribe) === null || _a === undefined || _a.call(tapObserver); var isUnsub = true; source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var _a3; - (_a3 = tapObserver.next) === null || _a3 === undefined || _a3.call(tapObserver, value); + var _a2; + (_a2 = tapObserver.next) === null || _a2 === undefined || _a2.call(tapObserver, value); subscriber.next(value); }, function() { - var _a3; + var _a2; isUnsub = false; - (_a3 = tapObserver.complete) === null || _a3 === undefined || _a3.call(tapObserver); + (_a2 = tapObserver.complete) === null || _a2 === undefined || _a2.call(tapObserver); subscriber.complete(); }, function(err) { - var _a3; + var _a2; isUnsub = false; - (_a3 = tapObserver.error) === null || _a3 === undefined || _a3.call(tapObserver, err); + (_a2 = tapObserver.error) === null || _a2 === undefined || _a2.call(tapObserver, err); subscriber.error(err); }, function() { - var _a3, _b; + var _a2, _b; if (isUnsub) { - (_a3 = tapObserver.unsubscribe) === null || _a3 === undefined || _a3.call(tapObserver); + (_a2 = tapObserver.unsubscribe) === null || _a2 === undefined || _a2.call(tapObserver); } (_b = tapObserver.finalize) === null || _b === undefined || _b.call(tapObserver); })); @@ -27064,7 +24256,7 @@ var require_throttle = __commonJS((exports) => { var innerFrom_1 = require_innerFrom(); function throttle(durationSelector, config) { return lift_1.operate(function(source, subscriber) { - var _a2 = config !== null && config !== undefined ? config : {}, _b = _a2.leading, leading = _b === undefined ? true : _b, _c = _a2.trailing, trailing = _c === undefined ? false : _c; + var _a = config !== null && config !== undefined ? config : {}, _b = _a.leading, leading = _b === undefined ? true : _b, _c = _a.trailing, trailing = _c === undefined ? false : _c; var hasValue = false; var sendValue = null; var throttled = null; @@ -27137,11 +24329,11 @@ var require_timeInterval = __commonJS((exports) => { scheduler = async_1.asyncScheduler; } return lift_1.operate(function(source, subscriber) { - var last2 = scheduler.now(); + var last = scheduler.now(); source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { var now = scheduler.now(); - var interval = now - last2; - last2 = now; + var interval = now - last; + last = now; subscriber.next(new TimeInterval(value, interval)); })); }); @@ -27165,12 +24357,12 @@ var require_timeoutWith = __commonJS((exports) => { var isDate_1 = require_isDate(); var timeout_1 = require_timeout(); function timeoutWith(due, withObservable, scheduler) { - var first2; + var first; var each; var _with; scheduler = scheduler !== null && scheduler !== undefined ? scheduler : async_1.async; if (isDate_1.isValidDate(due)) { - first2 = due; + first = due; } else if (typeof due === "number") { each = due; } @@ -27181,11 +24373,11 @@ var require_timeoutWith = __commonJS((exports) => { } else { throw new TypeError("No observable provided to switch to"); } - if (first2 == null && each == null) { + if (first == null && each == null) { throw new TypeError("No timeout provided."); } return timeout_1.timeout({ - first: first2, + first, each, scheduler, with: _with @@ -27279,7 +24471,7 @@ var require_windowCount = __commonJS((exports) => { var count = 0; subscriber.next(windows[0].asObservable()); source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a2; + var e_1, _a; try { for (var windows_1 = __values(windows), windows_1_1 = windows_1.next();!windows_1_1.done; windows_1_1 = windows_1.next()) { var window_1 = windows_1_1.value; @@ -27289,8 +24481,8 @@ var require_windowCount = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (windows_1_1 && !windows_1_1.done && (_a2 = windows_1.return)) - _a2.call(windows_1); + if (windows_1_1 && !windows_1_1.done && (_a = windows_1.return)) + _a.call(windows_1); } finally { if (e_1) throw e_1.error; @@ -27337,12 +24529,12 @@ var require_windowTime = __commonJS((exports) => { var args_1 = require_args(); var executeSchedule_1 = require_executeSchedule(); function windowTime(windowTimeSpan) { - var _a2, _b; + var _a, _b; var otherArgs = []; for (var _i = 1;_i < arguments.length; _i++) { otherArgs[_i - 1] = arguments[_i]; } - var scheduler = (_a2 = args_1.popScheduler(otherArgs)) !== null && _a2 !== undefined ? _a2 : async_1.asyncScheduler; + var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== undefined ? _a : async_1.asyncScheduler; var windowCreationInterval = (_b = otherArgs[0]) !== null && _b !== undefined ? _b : null; var maxWindowSize = otherArgs[1] || Infinity; return lift_1.operate(function(source, subscriber) { @@ -27382,8 +24574,8 @@ var require_windowTime = __commonJS((exports) => { return windowRecords.slice().forEach(cb); }; var terminate = function(cb) { - loop(function(_a3) { - var window2 = _a3.window; + loop(function(_a2) { + var window2 = _a2.window; return cb(window2); }); cb(subscriber); @@ -27465,7 +24657,7 @@ var require_windowToggle = __commonJS((exports) => { closingSubscription.add(closingNotifier.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, closeWindow, noop_1.noop, handleError2))); }, noop_1.noop)); source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { - var e_1, _a2; + var e_1, _a; var windowsCopy = windows.slice(); try { for (var windowsCopy_1 = __values(windowsCopy), windowsCopy_1_1 = windowsCopy_1.next();!windowsCopy_1_1.done; windowsCopy_1_1 = windowsCopy_1.next()) { @@ -27476,8 +24668,8 @@ var require_windowToggle = __commonJS((exports) => { e_1 = { error: e_1_1 }; } finally { try { - if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a2 = windowsCopy_1.return)) - _a2.call(windowsCopy_1); + if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a = windowsCopy_1.return)) + _a.call(windowsCopy_1); } finally { if (e_1) throw e_1.error; @@ -27897,7 +25089,7 @@ var require_cjs = __commonJS((exports) => { Object.defineProperty(exports, "defer", { enumerable: true, get: function() { return defer_1.defer; } }); - var empty_1 = require_empty2(); + var empty_1 = require_empty(); Object.defineProperty(exports, "empty", { enumerable: true, get: function() { return empty_1.empty; } }); @@ -27981,7 +25173,7 @@ var require_cjs = __commonJS((exports) => { Object.defineProperty(exports, "scheduled", { enumerable: true, get: function() { return scheduled_1.scheduled; } }); - var empty_2 = require_empty2(); + var empty_2 = require_empty(); Object.defineProperty(exports, "EMPTY", { enumerable: true, get: function() { return empty_2.EMPTY; } }); @@ -28710,7 +25902,7 @@ var import_rxjs, import_run_async, import_mute_stream2, import_ansi_escapes5, _2 var init_prompt = __esm(() => { import_rxjs = __toESM(require_cjs(), 1); import_run_async = __toESM(require_run_async(), 1); - import_mute_stream2 = __toESM(require_lib2(), 1); + import_mute_stream2 = __toESM(require_lib(), 1); init_esm2(); import_ansi_escapes5 = __toESM(require_ansi_escapes(), 1); _2 = { @@ -28742,7 +25934,7 @@ var init_prompt = __esm(() => { // node_modules/inquirer/dist/esm/index.js var exports_esm = {}; __export(exports_esm, { - default: () => esm_default13, + default: () => esm_default12, createPromptModule: () => createPromptModule }); function createPromptModule(opt) { @@ -28767,7 +25959,7 @@ function registerPrompt(name, newPrompt) { function restoreDefaultPrompts() { prompt.restoreDefaultPrompts(); } -var builtInPrompts, prompt, inquirer, esm_default13; +var builtInPrompts, prompt, inquirer, esm_default12; var init_esm14 = __esm(() => { init_esm13(); init_prompt(); @@ -28795,7 +25987,7 @@ var init_esm14 = __esm(() => { restoreDefaultPrompts, Separator }; - esm_default13 = inquirer; + esm_default12 = inquirer; }); // node_modules/minimatch/lib/path.js @@ -29020,8 +26212,8 @@ var require_minimatch = __commonJS((exports, module) => { return new Minimatch(pattern, options).match(p); }; module.exports = minimatch; - var path3 = require_path(); - minimatch.sep = path3.sep; + var path2 = require_path(); + minimatch.sep = path2.sep; var GLOBSTAR = Symbol("globstar **"); minimatch.GLOBSTAR = GLOBSTAR; var expand = require_brace_expansion(); @@ -29536,8 +26728,8 @@ globstar while`, file, fr, pattern, pr, swallowee); if (f === "/" && partial) return true; const options = this.options; - if (path3.sep !== "/") { - f = f.split(path3.sep).join("/"); + if (path2.sep !== "/") { + f = f.split(path2.sep).join("/"); } f = f.split(slashSplit); this.debug(this.pattern, "split", f); @@ -29577,7 +26769,7 @@ globstar while`, file, fr, pattern, pr, swallowee); var require_readdir_glob = __commonJS((exports, module) => { module.exports = readdirGlob; var fs3 = __require("fs"); - var { EventEmitter: EventEmitter2 } = __require("events"); + var { EventEmitter } = __require("events"); var { Minimatch } = require_minimatch(); var { resolve } = __require("path"); function readdir(dir, strict) { @@ -29632,8 +26824,8 @@ var require_readdir_glob = __commonJS((exports, module) => { }); }); } - async function* exploreWalkAsync(dir, path3, followSymlinks, useStat, shouldSkip, strict) { - let files = await readdir(path3 + dir, strict); + async function* exploreWalkAsync(dir, path2, followSymlinks, useStat, shouldSkip, strict) { + let files = await readdir(path2 + dir, strict); for (const file of files) { let name = file.name; if (name === undefined) { @@ -29642,7 +26834,7 @@ var require_readdir_glob = __commonJS((exports, module) => { } const filename = dir + "/" + name; const relative = filename.slice(1); - const absolute = path3 + "/" + relative; + const absolute = path2 + "/" + relative; let stats = null; if (useStat || followSymlinks) { stats = await stat(absolute, followSymlinks); @@ -29656,15 +26848,15 @@ var require_readdir_glob = __commonJS((exports, module) => { if (stats.isDirectory()) { if (!shouldSkip(relative)) { yield { relative, absolute, stats }; - yield* exploreWalkAsync(filename, path3, followSymlinks, useStat, shouldSkip, false); + yield* exploreWalkAsync(filename, path2, followSymlinks, useStat, shouldSkip, false); } } else { yield { relative, absolute, stats }; } } } - async function* explore(path3, followSymlinks, useStat, shouldSkip) { - yield* exploreWalkAsync("", path3, followSymlinks, useStat, shouldSkip, true); + async function* explore(path2, followSymlinks, useStat, shouldSkip) { + yield* exploreWalkAsync("", path2, followSymlinks, useStat, shouldSkip, true); } function readOptions(options) { return { @@ -29684,7 +26876,7 @@ var require_readdir_glob = __commonJS((exports, module) => { }; } - class ReaddirGlob extends EventEmitter2 { + class ReaddirGlob extends EventEmitter { constructor(cwd, options, cb) { super(); if (typeof options === "function") { @@ -29916,7 +27108,7 @@ var require_async2 = __commonJS((exports, module) => { callback(err, results); }); } - function isArrayLike2(value) { + function isArrayLike(value) { return value && typeof value.length === "number" && value.length >= 0 && value.length % 1 === 0; } const breakLoop = {}; @@ -29964,7 +27156,7 @@ var require_async2 = __commonJS((exports, module) => { }; } function createIterator(coll) { - if (isArrayLike2(coll)) { + if (isArrayLike(coll)) { return createArrayIterator(coll); } var iterator = getIterator(coll); @@ -30118,7 +27310,7 @@ var require_async2 = __commonJS((exports, module) => { return eachOfLimit$1(coll, Infinity, iteratee, callback); } function eachOf(coll, iteratee, callback) { - var eachOfImplementation = isArrayLike2(coll) ? eachOfArrayLike : eachOfGeneric; + var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric; return eachOfImplementation(coll, wrapAsync(iteratee), callback); } var eachOf$1 = awaitify(eachOf, 3); @@ -30228,7 +27420,7 @@ var require_async2 = __commonJS((exports, module) => { function runTask(key2, task) { if (hasError) return; - var taskCallback2 = onlyOnce((err, ...result) => { + var taskCallback = onlyOnce((err, ...result) => { runningTasks--; if (err === false) { canceled = true; @@ -30256,9 +27448,9 @@ var require_async2 = __commonJS((exports, module) => { runningTasks++; var taskFn = wrapAsync(task[task.length - 1]); if (task.length > 1) { - taskFn(results, taskCallback2); + taskFn(results, taskCallback); } else { - taskFn(taskCallback2); + taskFn(taskCallback); } } function checkForDeadlocks() { @@ -30895,7 +28087,7 @@ Source: return _createTester((bool) => !bool, (res) => !res)(eachOfSeries$1, coll, iteratee, callback); } var everySeries$1 = awaitify(everySeries, 3); - function filterArray2(eachfn, arr, iteratee, callback) { + function filterArray(eachfn, arr, iteratee, callback) { var truthValues = new Array(arr.length); eachfn(arr, (x, index2, iterCb) => { iteratee(x, (err, v) => { @@ -30931,7 +28123,7 @@ Source: }); } function _filter(eachfn, coll, iteratee, callback) { - var filter3 = isArrayLike2(coll) ? filterArray2 : filterGeneric; + var filter3 = isArrayLike(coll) ? filterArray : filterGeneric; return filter3(eachfn, coll, wrapAsync(iteratee), callback); } function filter2(coll, iteratee, callback) { @@ -30981,733 +28173,1518 @@ Source: } } } - return callback(err, result); + return callback(err, result); + }); + } + var groupByLimit$1 = awaitify(groupByLimit, 4); + function groupBy(coll, iteratee, callback) { + return groupByLimit$1(coll, Infinity, iteratee, callback); + } + function groupBySeries(coll, iteratee, callback) { + return groupByLimit$1(coll, 1, iteratee, callback); + } + var log = consoleFunc("log"); + function mapValuesLimit(obj, limit, iteratee, callback) { + callback = once(callback); + var newObj = {}; + var _iteratee = wrapAsync(iteratee); + return eachOfLimit$2(limit)(obj, (val, key2, next) => { + _iteratee(val, key2, (err, result) => { + if (err) + return next(err); + newObj[key2] = result; + next(err); + }); + }, (err) => callback(err, newObj)); + } + var mapValuesLimit$1 = awaitify(mapValuesLimit, 4); + function mapValues(obj, iteratee, callback) { + return mapValuesLimit$1(obj, Infinity, iteratee, callback); + } + function mapValuesSeries(obj, iteratee, callback) { + return mapValuesLimit$1(obj, 1, iteratee, callback); + } + function memoize(fn, hasher = (v) => v) { + var memo = Object.create(null); + var queues = Object.create(null); + var _fn = wrapAsync(fn); + var memoized = initialParams((args, callback) => { + var key2 = hasher(...args); + if (key2 in memo) { + setImmediate$1(() => callback(null, ...memo[key2])); + } else if (key2 in queues) { + queues[key2].push(callback); + } else { + queues[key2] = [callback]; + _fn(...args, (err, ...resultArgs) => { + if (!err) { + memo[key2] = resultArgs; + } + var q = queues[key2]; + delete queues[key2]; + for (var i = 0, l = q.length;i < l; i++) { + q[i](err, ...resultArgs); + } + }); + } + }); + memoized.memo = memo; + memoized.unmemoized = fn; + return memoized; + } + var _defer; + if (hasNextTick) { + _defer = process.nextTick; + } else if (hasSetImmediate) { + _defer = setImmediate; + } else { + _defer = fallback2; + } + var nextTick = wrap(_defer); + var _parallel = awaitify((eachfn, tasks, callback) => { + var results = isArrayLike(tasks) ? [] : {}; + eachfn(tasks, (task, key2, taskCb) => { + wrapAsync(task)((err, ...result) => { + if (result.length < 2) { + [result] = result; + } + results[key2] = result; + taskCb(err); + }); + }, (err) => callback(err, results)); + }, 3); + function parallel(tasks, callback) { + return _parallel(eachOf$1, tasks, callback); + } + function parallelLimit(tasks, limit, callback) { + return _parallel(eachOfLimit$2(limit), tasks, callback); + } + function queue(worker, concurrency) { + var _worker = wrapAsync(worker); + return queue$1((items, cb) => { + _worker(items[0], cb); + }, concurrency, 1); + } + + class Heap { + constructor() { + this.heap = []; + this.pushCount = Number.MIN_SAFE_INTEGER; + } + get length() { + return this.heap.length; + } + empty() { + this.heap = []; + return this; + } + percUp(index2) { + let p; + while (index2 > 0 && smaller(this.heap[index2], this.heap[p = parent(index2)])) { + let t = this.heap[index2]; + this.heap[index2] = this.heap[p]; + this.heap[p] = t; + index2 = p; + } + } + percDown(index2) { + let l; + while ((l = leftChi(index2)) < this.heap.length) { + if (l + 1 < this.heap.length && smaller(this.heap[l + 1], this.heap[l])) { + l = l + 1; + } + if (smaller(this.heap[index2], this.heap[l])) { + break; + } + let t = this.heap[index2]; + this.heap[index2] = this.heap[l]; + this.heap[l] = t; + index2 = l; + } + } + push(node) { + node.pushCount = ++this.pushCount; + this.heap.push(node); + this.percUp(this.heap.length - 1); + } + unshift(node) { + return this.heap.push(node); + } + shift() { + let [top] = this.heap; + this.heap[0] = this.heap[this.heap.length - 1]; + this.heap.pop(); + this.percDown(0); + return top; + } + toArray() { + return [...this]; + } + *[Symbol.iterator]() { + for (let i = 0;i < this.heap.length; i++) { + yield this.heap[i].data; + } + } + remove(testFn) { + let j = 0; + for (let i = 0;i < this.heap.length; i++) { + if (!testFn(this.heap[i])) { + this.heap[j] = this.heap[i]; + j++; + } + } + this.heap.splice(j); + for (let i = parent(this.heap.length - 1);i >= 0; i--) { + this.percDown(i); + } + return this; + } + } + function leftChi(i) { + return (i << 1) + 1; + } + function parent(i) { + return (i + 1 >> 1) - 1; + } + function smaller(x, y) { + if (x.priority !== y.priority) { + return x.priority < y.priority; + } else { + return x.pushCount < y.pushCount; + } + } + function priorityQueue(worker, concurrency) { + var q = queue(worker, concurrency); + var { + push, + pushAsync + } = q; + q._tasks = new Heap; + q._createTaskItem = ({ data, priority }, callback) => { + return { + data, + priority, + callback + }; + }; + function createDataItems(tasks, priority) { + if (!Array.isArray(tasks)) { + return { data: tasks, priority }; + } + return tasks.map((data) => { + return { data, priority }; + }); + } + q.push = function(data, priority = 0, callback) { + return push(createDataItems(data, priority), callback); + }; + q.pushAsync = function(data, priority = 0, callback) { + return pushAsync(createDataItems(data, priority), callback); + }; + delete q.unshift; + delete q.unshiftAsync; + return q; + } + function race(tasks, callback) { + callback = once(callback); + if (!Array.isArray(tasks)) + return callback(new TypeError("First argument to race must be an array of functions")); + if (!tasks.length) + return callback(); + for (var i = 0, l = tasks.length;i < l; i++) { + wrapAsync(tasks[i])(callback); + } + } + var race$1 = awaitify(race, 2); + function reduceRight(array, memo, iteratee, callback) { + var reversed = [...array].reverse(); + return reduce$1(reversed, memo, iteratee, callback); + } + function reflect(fn) { + var _fn = wrapAsync(fn); + return initialParams(function reflectOn(args, reflectCallback) { + args.push((error, ...cbArgs) => { + let retVal = {}; + if (error) { + retVal.error = error; + } + if (cbArgs.length > 0) { + var value = cbArgs; + if (cbArgs.length <= 1) { + [value] = cbArgs; + } + retVal.value = value; + } + reflectCallback(null, retVal); + }); + return _fn.apply(this, args); + }); + } + function reflectAll(tasks) { + var results; + if (Array.isArray(tasks)) { + results = tasks.map(reflect); + } else { + results = {}; + Object.keys(tasks).forEach((key2) => { + results[key2] = reflect.call(this, tasks[key2]); + }); + } + return results; + } + function reject$2(eachfn, arr, _iteratee, callback) { + const iteratee = wrapAsync(_iteratee); + return _filter(eachfn, arr, (value, cb) => { + iteratee(value, (err, v) => { + cb(err, !v); + }); + }, callback); + } + function reject(coll, iteratee, callback) { + return reject$2(eachOf$1, coll, iteratee, callback); + } + var reject$1 = awaitify(reject, 3); + function rejectLimit(coll, limit, iteratee, callback) { + return reject$2(eachOfLimit$2(limit), coll, iteratee, callback); + } + var rejectLimit$1 = awaitify(rejectLimit, 4); + function rejectSeries(coll, iteratee, callback) { + return reject$2(eachOfSeries$1, coll, iteratee, callback); + } + var rejectSeries$1 = awaitify(rejectSeries, 3); + function constant(value) { + return function() { + return value; + }; + } + const DEFAULT_TIMES = 5; + const DEFAULT_INTERVAL = 0; + function retry(opts, task, callback) { + var options = { + times: DEFAULT_TIMES, + intervalFunc: constant(DEFAULT_INTERVAL) + }; + if (arguments.length < 3 && typeof opts === "function") { + callback = task || promiseCallback(); + task = opts; + } else { + parseTimes(options, opts); + callback = callback || promiseCallback(); + } + if (typeof task !== "function") { + throw new Error("Invalid arguments for async.retry"); + } + var _task = wrapAsync(task); + var attempt = 1; + function retryAttempt() { + _task((err, ...args) => { + if (err === false) + return; + if (err && attempt++ < options.times && (typeof options.errorFilter != "function" || options.errorFilter(err))) { + setTimeout(retryAttempt, options.intervalFunc(attempt - 1)); + } else { + callback(err, ...args); + } + }); + } + retryAttempt(); + return callback[PROMISE_SYMBOL]; + } + function parseTimes(acc, t) { + if (typeof t === "object") { + acc.times = +t.times || DEFAULT_TIMES; + acc.intervalFunc = typeof t.interval === "function" ? t.interval : constant(+t.interval || DEFAULT_INTERVAL); + acc.errorFilter = t.errorFilter; + } else if (typeof t === "number" || typeof t === "string") { + acc.times = +t || DEFAULT_TIMES; + } else { + throw new Error("Invalid arguments for async.retry"); + } + } + function retryable(opts, task) { + if (!task) { + task = opts; + opts = null; + } + let arity = opts && opts.arity || task.length; + if (isAsync2(task)) { + arity += 1; + } + var _task = wrapAsync(task); + return initialParams((args, callback) => { + if (args.length < arity - 1 || callback == null) { + args.push(callback); + callback = promiseCallback(); + } + function taskFn(cb) { + _task(...args, cb); + } + if (opts) + retry(opts, taskFn, callback); + else + retry(taskFn, callback); + return callback[PROMISE_SYMBOL]; + }); + } + function series(tasks, callback) { + return _parallel(eachOfSeries$1, tasks, callback); + } + function some(coll, iteratee, callback) { + return _createTester(Boolean, (res) => res)(eachOf$1, coll, iteratee, callback); + } + var some$1 = awaitify(some, 3); + function someLimit(coll, limit, iteratee, callback) { + return _createTester(Boolean, (res) => res)(eachOfLimit$2(limit), coll, iteratee, callback); + } + var someLimit$1 = awaitify(someLimit, 4); + function someSeries(coll, iteratee, callback) { + return _createTester(Boolean, (res) => res)(eachOfSeries$1, coll, iteratee, callback); + } + var someSeries$1 = awaitify(someSeries, 3); + function sortBy(coll, iteratee, callback) { + var _iteratee = wrapAsync(iteratee); + return map$1(coll, (x, iterCb) => { + _iteratee(x, (err, criteria) => { + if (err) + return iterCb(err); + iterCb(err, { value: x, criteria }); + }); + }, (err, results) => { + if (err) + return callback(err); + callback(null, results.sort(comparator).map((v) => v.value)); + }); + function comparator(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + } + } + var sortBy$1 = awaitify(sortBy, 3); + function timeout(asyncFn, milliseconds, info) { + var fn = wrapAsync(asyncFn); + return initialParams((args, callback) => { + var timedOut = false; + var timer; + function timeoutCallback() { + var name = asyncFn.name || "anonymous"; + var error = new Error('Callback function "' + name + '" timed out.'); + error.code = "ETIMEDOUT"; + if (info) { + error.info = info; + } + timedOut = true; + callback(error); + } + args.push((...cbArgs) => { + if (!timedOut) { + callback(...cbArgs); + clearTimeout(timer); + } + }); + timer = setTimeout(timeoutCallback, milliseconds); + fn(...args); }); } - var groupByLimit$1 = awaitify(groupByLimit, 4); - function groupBy(coll, iteratee, callback) { - return groupByLimit$1(coll, Infinity, iteratee, callback); - } - function groupBySeries(coll, iteratee, callback) { - return groupByLimit$1(coll, 1, iteratee, callback); + function range(size) { + var result = Array(size); + while (size--) { + result[size] = size; + } + return result; } - var log = consoleFunc("log"); - function mapValuesLimit(obj, limit, iteratee, callback) { - callback = once(callback); - var newObj = {}; + function timesLimit(count, limit, iteratee, callback) { var _iteratee = wrapAsync(iteratee); - return eachOfLimit$2(limit)(obj, (val, key2, next) => { - _iteratee(val, key2, (err, result) => { - if (err) - return next(err); - newObj[key2] = result; - next(err); - }); - }, (err) => callback(err, newObj)); - } - var mapValuesLimit$1 = awaitify(mapValuesLimit, 4); - function mapValues(obj, iteratee, callback) { - return mapValuesLimit$1(obj, Infinity, iteratee, callback); + return mapLimit$1(range(count), limit, _iteratee, callback); } - function mapValuesSeries(obj, iteratee, callback) { - return mapValuesLimit$1(obj, 1, iteratee, callback); + function times(n, iteratee, callback) { + return timesLimit(n, Infinity, iteratee, callback); } - function memoize(fn, hasher = (v) => v) { - var memo = Object.create(null); - var queues = Object.create(null); - var _fn = wrapAsync(fn); - var memoized = initialParams((args, callback) => { - var key2 = hasher(...args); - if (key2 in memo) { - setImmediate$1(() => callback(null, ...memo[key2])); - } else if (key2 in queues) { - queues[key2].push(callback); - } else { - queues[key2] = [callback]; - _fn(...args, (err, ...resultArgs) => { - if (!err) { - memo[key2] = resultArgs; - } - var q = queues[key2]; - delete queues[key2]; - for (var i = 0, l = q.length;i < l; i++) { - q[i](err, ...resultArgs); - } - }); - } - }); - memoized.memo = memo; - memoized.unmemoized = fn; - return memoized; + function timesSeries(n, iteratee, callback) { + return timesLimit(n, 1, iteratee, callback); } - var _defer; - if (hasNextTick) { - _defer = process.nextTick; - } else if (hasSetImmediate) { - _defer = setImmediate; - } else { - _defer = fallback2; + function transform(coll, accumulator, iteratee, callback) { + if (arguments.length <= 3 && typeof accumulator === "function") { + callback = iteratee; + iteratee = accumulator; + accumulator = Array.isArray(coll) ? [] : {}; + } + callback = once(callback || promiseCallback()); + var _iteratee = wrapAsync(iteratee); + eachOf$1(coll, (v, k, cb) => { + _iteratee(accumulator, v, k, cb); + }, (err) => callback(err, accumulator)); + return callback[PROMISE_SYMBOL]; } - var nextTick = wrap(_defer); - var _parallel = awaitify((eachfn, tasks, callback) => { - var results = isArrayLike2(tasks) ? [] : {}; - eachfn(tasks, (task, key2, taskCb) => { - wrapAsync(task)((err, ...result) => { - if (result.length < 2) { - [result] = result; + function tryEach(tasks, callback) { + var error = null; + var result; + return eachSeries$1(tasks, (task, taskCb) => { + wrapAsync(task)((err, ...args) => { + if (err === false) + return taskCb(err); + if (args.length < 2) { + [result] = args; + } else { + result = args; } - results[key2] = result; - taskCb(err); + error = err; + taskCb(err ? null : {}); }); - }, (err) => callback(err, results)); - }, 3); - function parallel(tasks, callback) { - return _parallel(eachOf$1, tasks, callback); - } - function parallelLimit(tasks, limit, callback) { - return _parallel(eachOfLimit$2(limit), tasks, callback); + }, () => callback(error, result)); } - function queue(worker, concurrency) { - var _worker = wrapAsync(worker); - return queue$1((items, cb) => { - _worker(items[0], cb); - }, concurrency, 1); + var tryEach$1 = awaitify(tryEach); + function unmemoize(fn) { + return (...args) => { + return (fn.unmemoized || fn)(...args); + }; } - - class Heap { - constructor() { - this.heap = []; - this.pushCount = Number.MIN_SAFE_INTEGER; + function whilst(test, iteratee, callback) { + callback = onlyOnce(callback); + var _fn = wrapAsync(iteratee); + var _test = wrapAsync(test); + var results = []; + function next(err, ...rest) { + if (err) + return callback(err); + results = rest; + if (err === false) + return; + _test(check2); } - get length() { - return this.heap.length; + function check2(err, truth) { + if (err) + return callback(err); + if (err === false) + return; + if (!truth) + return callback(null, ...results); + _fn(next); } - empty() { - this.heap = []; - return this; + return _test(check2); + } + var whilst$1 = awaitify(whilst, 3); + function until(test, iteratee, callback) { + const _test = wrapAsync(test); + return whilst$1((cb) => _test((err, truth) => cb(err, !truth)), iteratee, callback); + } + function waterfall(tasks, callback) { + callback = once(callback); + if (!Array.isArray(tasks)) + return callback(new Error("First argument to waterfall must be an array of functions")); + if (!tasks.length) + return callback(); + var taskIndex = 0; + function nextTask(args) { + var task = wrapAsync(tasks[taskIndex++]); + task(...args, onlyOnce(next)); } - percUp(index2) { - let p; - while (index2 > 0 && smaller(this.heap[index2], this.heap[p = parent(index2)])) { - let t = this.heap[index2]; - this.heap[index2] = this.heap[p]; - this.heap[p] = t; - index2 = p; + function next(err, ...args) { + if (err === false) + return; + if (err || taskIndex === tasks.length) { + return callback(err, ...args); } + nextTask(args); } - percDown(index2) { - let l; - while ((l = leftChi(index2)) < this.heap.length) { - if (l + 1 < this.heap.length && smaller(this.heap[l + 1], this.heap[l])) { - l = l + 1; - } - if (smaller(this.heap[index2], this.heap[l])) { - break; - } - let t = this.heap[index2]; - this.heap[index2] = this.heap[l]; - this.heap[l] = t; - index2 = l; + nextTask([]); + } + var waterfall$1 = awaitify(waterfall); + var index = { + apply, + applyEach, + applyEachSeries, + asyncify, + auto, + autoInject, + cargo: cargo$1, + cargoQueue: cargo, + compose, + concat: concat$1, + concatLimit: concatLimit$1, + concatSeries: concatSeries$1, + constant: constant$1, + detect: detect$1, + detectLimit: detectLimit$1, + detectSeries: detectSeries$1, + dir, + doUntil, + doWhilst: doWhilst$1, + each, + eachLimit: eachLimit$1, + eachOf: eachOf$1, + eachOfLimit: eachOfLimit$1, + eachOfSeries: eachOfSeries$1, + eachSeries: eachSeries$1, + ensureAsync, + every: every$1, + everyLimit: everyLimit$1, + everySeries: everySeries$1, + filter: filter$1, + filterLimit: filterLimit$1, + filterSeries: filterSeries$1, + forever: forever$1, + groupBy, + groupByLimit: groupByLimit$1, + groupBySeries, + log, + map: map$1, + mapLimit: mapLimit$1, + mapSeries: mapSeries$1, + mapValues, + mapValuesLimit: mapValuesLimit$1, + mapValuesSeries, + memoize, + nextTick, + parallel, + parallelLimit, + priorityQueue, + queue, + race: race$1, + reduce: reduce$1, + reduceRight, + reflect, + reflectAll, + reject: reject$1, + rejectLimit: rejectLimit$1, + rejectSeries: rejectSeries$1, + retry, + retryable, + seq, + series, + setImmediate: setImmediate$1, + some: some$1, + someLimit: someLimit$1, + someSeries: someSeries$1, + sortBy: sortBy$1, + timeout, + times, + timesLimit, + timesSeries, + transform, + tryEach: tryEach$1, + unmemoize, + until, + waterfall: waterfall$1, + whilst: whilst$1, + all: every$1, + allLimit: everyLimit$1, + allSeries: everySeries$1, + any: some$1, + anyLimit: someLimit$1, + anySeries: someSeries$1, + find: detect$1, + findLimit: detectLimit$1, + findSeries: detectSeries$1, + flatMap: concat$1, + flatMapLimit: concatLimit$1, + flatMapSeries: concatSeries$1, + forEach: each, + forEachSeries: eachSeries$1, + forEachLimit: eachLimit$1, + forEachOf: eachOf$1, + forEachOfSeries: eachOfSeries$1, + forEachOfLimit: eachOfLimit$1, + inject: reduce$1, + foldl: reduce$1, + foldr: reduceRight, + select: filter$1, + selectLimit: filterLimit$1, + selectSeries: filterSeries$1, + wrapSync: asyncify, + during: whilst$1, + doDuring: doWhilst$1 + }; + exports2.all = every$1; + exports2.allLimit = everyLimit$1; + exports2.allSeries = everySeries$1; + exports2.any = some$1; + exports2.anyLimit = someLimit$1; + exports2.anySeries = someSeries$1; + exports2.apply = apply; + exports2.applyEach = applyEach; + exports2.applyEachSeries = applyEachSeries; + exports2.asyncify = asyncify; + exports2.auto = auto; + exports2.autoInject = autoInject; + exports2.cargo = cargo$1; + exports2.cargoQueue = cargo; + exports2.compose = compose; + exports2.concat = concat$1; + exports2.concatLimit = concatLimit$1; + exports2.concatSeries = concatSeries$1; + exports2.constant = constant$1; + exports2.default = index; + exports2.detect = detect$1; + exports2.detectLimit = detectLimit$1; + exports2.detectSeries = detectSeries$1; + exports2.dir = dir; + exports2.doDuring = doWhilst$1; + exports2.doUntil = doUntil; + exports2.doWhilst = doWhilst$1; + exports2.during = whilst$1; + exports2.each = each; + exports2.eachLimit = eachLimit$1; + exports2.eachOf = eachOf$1; + exports2.eachOfLimit = eachOfLimit$1; + exports2.eachOfSeries = eachOfSeries$1; + exports2.eachSeries = eachSeries$1; + exports2.ensureAsync = ensureAsync; + exports2.every = every$1; + exports2.everyLimit = everyLimit$1; + exports2.everySeries = everySeries$1; + exports2.filter = filter$1; + exports2.filterLimit = filterLimit$1; + exports2.filterSeries = filterSeries$1; + exports2.find = detect$1; + exports2.findLimit = detectLimit$1; + exports2.findSeries = detectSeries$1; + exports2.flatMap = concat$1; + exports2.flatMapLimit = concatLimit$1; + exports2.flatMapSeries = concatSeries$1; + exports2.foldl = reduce$1; + exports2.foldr = reduceRight; + exports2.forEach = each; + exports2.forEachLimit = eachLimit$1; + exports2.forEachOf = eachOf$1; + exports2.forEachOfLimit = eachOfLimit$1; + exports2.forEachOfSeries = eachOfSeries$1; + exports2.forEachSeries = eachSeries$1; + exports2.forever = forever$1; + exports2.groupBy = groupBy; + exports2.groupByLimit = groupByLimit$1; + exports2.groupBySeries = groupBySeries; + exports2.inject = reduce$1; + exports2.log = log; + exports2.map = map$1; + exports2.mapLimit = mapLimit$1; + exports2.mapSeries = mapSeries$1; + exports2.mapValues = mapValues; + exports2.mapValuesLimit = mapValuesLimit$1; + exports2.mapValuesSeries = mapValuesSeries; + exports2.memoize = memoize; + exports2.nextTick = nextTick; + exports2.parallel = parallel; + exports2.parallelLimit = parallelLimit; + exports2.priorityQueue = priorityQueue; + exports2.queue = queue; + exports2.race = race$1; + exports2.reduce = reduce$1; + exports2.reduceRight = reduceRight; + exports2.reflect = reflect; + exports2.reflectAll = reflectAll; + exports2.reject = reject$1; + exports2.rejectLimit = rejectLimit$1; + exports2.rejectSeries = rejectSeries$1; + exports2.retry = retry; + exports2.retryable = retryable; + exports2.select = filter$1; + exports2.selectLimit = filterLimit$1; + exports2.selectSeries = filterSeries$1; + exports2.seq = seq; + exports2.series = series; + exports2.setImmediate = setImmediate$1; + exports2.some = some$1; + exports2.someLimit = someLimit$1; + exports2.someSeries = someSeries$1; + exports2.sortBy = sortBy$1; + exports2.timeout = timeout; + exports2.times = times; + exports2.timesLimit = timesLimit; + exports2.timesSeries = timesSeries; + exports2.transform = transform; + exports2.tryEach = tryEach$1; + exports2.unmemoize = unmemoize; + exports2.until = until; + exports2.waterfall = waterfall$1; + exports2.whilst = whilst$1; + exports2.wrapSync = asyncify; + Object.defineProperty(exports2, "__esModule", { value: true }); + }); +}); + +// node_modules/graceful-fs/polyfills.js +var require_polyfills = __commonJS((exports, module) => { + var constants = __require("constants"); + var origCwd = process.cwd; + var cwd = null; + var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform; + process.cwd = function() { + if (!cwd) + cwd = origCwd.call(process); + return cwd; + }; + try { + process.cwd(); + } catch (er) { + } + if (typeof process.chdir === "function") { + chdir = process.chdir; + process.chdir = function(d) { + cwd = null; + chdir.call(process, d); + }; + if (Object.setPrototypeOf) + Object.setPrototypeOf(process.chdir, chdir); + } + var chdir; + module.exports = patch; + function patch(fs3) { + if (constants.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { + patchLchmod(fs3); + } + if (!fs3.lutimes) { + patchLutimes(fs3); + } + fs3.chown = chownFix(fs3.chown); + fs3.fchown = chownFix(fs3.fchown); + fs3.lchown = chownFix(fs3.lchown); + fs3.chmod = chmodFix(fs3.chmod); + fs3.fchmod = chmodFix(fs3.fchmod); + fs3.lchmod = chmodFix(fs3.lchmod); + fs3.chownSync = chownFixSync(fs3.chownSync); + fs3.fchownSync = chownFixSync(fs3.fchownSync); + fs3.lchownSync = chownFixSync(fs3.lchownSync); + fs3.chmodSync = chmodFixSync(fs3.chmodSync); + fs3.fchmodSync = chmodFixSync(fs3.fchmodSync); + fs3.lchmodSync = chmodFixSync(fs3.lchmodSync); + fs3.stat = statFix(fs3.stat); + fs3.fstat = statFix(fs3.fstat); + fs3.lstat = statFix(fs3.lstat); + fs3.statSync = statFixSync(fs3.statSync); + fs3.fstatSync = statFixSync(fs3.fstatSync); + fs3.lstatSync = statFixSync(fs3.lstatSync); + if (fs3.chmod && !fs3.lchmod) { + fs3.lchmod = function(path2, mode, cb) { + if (cb) + process.nextTick(cb); + }; + fs3.lchmodSync = function() { + }; + } + if (fs3.chown && !fs3.lchown) { + fs3.lchown = function(path2, uid, gid, cb) { + if (cb) + process.nextTick(cb); + }; + fs3.lchownSync = function() { + }; + } + if (platform === "win32") { + fs3.rename = typeof fs3.rename !== "function" ? fs3.rename : function(fs$rename) { + function rename(from2, to, cb) { + var start = Date.now(); + var backoff = 0; + fs$rename(from2, to, function CB(er) { + if (er && (er.code === "EACCES" || er.code === "EPERM" || er.code === "EBUSY") && Date.now() - start < 60000) { + setTimeout(function() { + fs3.stat(to, function(stater, st) { + if (stater && stater.code === "ENOENT") + fs$rename(from2, to, CB); + else + cb(er); + }); + }, backoff); + if (backoff < 100) + backoff += 10; + return; + } + if (cb) + cb(er); + }); } - } - push(node) { - node.pushCount = ++this.pushCount; - this.heap.push(node); - this.percUp(this.heap.length - 1); - } - unshift(node) { - return this.heap.push(node); - } - shift() { - let [top] = this.heap; - this.heap[0] = this.heap[this.heap.length - 1]; - this.heap.pop(); - this.percDown(0); - return top; - } - toArray() { - return [...this]; - } - *[Symbol.iterator]() { - for (let i = 0;i < this.heap.length; i++) { - yield this.heap[i].data; + if (Object.setPrototypeOf) + Object.setPrototypeOf(rename, fs$rename); + return rename; + }(fs3.rename); + } + fs3.read = typeof fs3.read !== "function" ? fs3.read : function(fs$read) { + function read(fd, buffer, offset, length, position, callback_) { + var callback; + if (callback_ && typeof callback_ === "function") { + var eagCounter = 0; + callback = function(er, _3, __) { + if (er && er.code === "EAGAIN" && eagCounter < 10) { + eagCounter++; + return fs$read.call(fs3, fd, buffer, offset, length, position, callback); + } + callback_.apply(this, arguments); + }; } + return fs$read.call(fs3, fd, buffer, offset, length, position, callback); } - remove(testFn) { - let j = 0; - for (let i = 0;i < this.heap.length; i++) { - if (!testFn(this.heap[i])) { - this.heap[j] = this.heap[i]; - j++; + if (Object.setPrototypeOf) + Object.setPrototypeOf(read, fs$read); + return read; + }(fs3.read); + fs3.readSync = typeof fs3.readSync !== "function" ? fs3.readSync : function(fs$readSync) { + return function(fd, buffer, offset, length, position) { + var eagCounter = 0; + while (true) { + try { + return fs$readSync.call(fs3, fd, buffer, offset, length, position); + } catch (er) { + if (er.code === "EAGAIN" && eagCounter < 10) { + eagCounter++; + continue; + } + throw er; } } - this.heap.splice(j); - for (let i = parent(this.heap.length - 1);i >= 0; i--) { - this.percDown(i); - } - return this; - } - } - function leftChi(i) { - return (i << 1) + 1; - } - function parent(i) { - return (i + 1 >> 1) - 1; - } - function smaller(x, y) { - if (x.priority !== y.priority) { - return x.priority < y.priority; - } else { - return x.pushCount < y.pushCount; - } - } - function priorityQueue(worker, concurrency) { - var q = queue(worker, concurrency); - var { - push, - pushAsync - } = q; - q._tasks = new Heap; - q._createTaskItem = ({ data, priority }, callback) => { - return { - data, - priority, - callback - }; }; - function createDataItems(tasks, priority) { - if (!Array.isArray(tasks)) { - return { data: tasks, priority }; - } - return tasks.map((data) => { - return { data, priority }; + }(fs3.readSync); + function patchLchmod(fs4) { + fs4.lchmod = function(path2, mode, callback) { + fs4.open(path2, constants.O_WRONLY | constants.O_SYMLINK, mode, function(err, fd) { + if (err) { + if (callback) + callback(err); + return; + } + fs4.fchmod(fd, mode, function(err2) { + fs4.close(fd, function(err22) { + if (callback) + callback(err2 || err22); + }); + }); }); - } - q.push = function(data, priority = 0, callback) { - return push(createDataItems(data, priority), callback); }; - q.pushAsync = function(data, priority = 0, callback) { - return pushAsync(createDataItems(data, priority), callback); + fs4.lchmodSync = function(path2, mode) { + var fd = fs4.openSync(path2, constants.O_WRONLY | constants.O_SYMLINK, mode); + var threw = true; + var ret; + try { + ret = fs4.fchmodSync(fd, mode); + threw = false; + } finally { + if (threw) { + try { + fs4.closeSync(fd); + } catch (er) { + } + } else { + fs4.closeSync(fd); + } + } + return ret; }; - delete q.unshift; - delete q.unshiftAsync; - return q; - } - function race(tasks, callback) { - callback = once(callback); - if (!Array.isArray(tasks)) - return callback(new TypeError("First argument to race must be an array of functions")); - if (!tasks.length) - return callback(); - for (var i = 0, l = tasks.length;i < l; i++) { - wrapAsync(tasks[i])(callback); - } - } - var race$1 = awaitify(race, 2); - function reduceRight(array, memo, iteratee, callback) { - var reversed = [...array].reverse(); - return reduce$1(reversed, memo, iteratee, callback); } - function reflect(fn) { - var _fn = wrapAsync(fn); - return initialParams(function reflectOn(args, reflectCallback) { - args.push((error, ...cbArgs) => { - let retVal = {}; - if (error) { - retVal.error = error; - } - if (cbArgs.length > 0) { - var value = cbArgs; - if (cbArgs.length <= 1) { - [value] = cbArgs; + function patchLutimes(fs4) { + if (constants.hasOwnProperty("O_SYMLINK") && fs4.futimes) { + fs4.lutimes = function(path2, at, mt, cb) { + fs4.open(path2, constants.O_SYMLINK, function(er, fd) { + if (er) { + if (cb) + cb(er); + return; + } + fs4.futimes(fd, at, mt, function(er2) { + fs4.close(fd, function(er22) { + if (cb) + cb(er2 || er22); + }); + }); + }); + }; + fs4.lutimesSync = function(path2, at, mt) { + var fd = fs4.openSync(path2, constants.O_SYMLINK); + var ret; + var threw = true; + try { + ret = fs4.futimesSync(fd, at, mt); + threw = false; + } finally { + if (threw) { + try { + fs4.closeSync(fd); + } catch (er) { + } + } else { + fs4.closeSync(fd); } - retVal.value = value; } - reflectCallback(null, retVal); - }); - return _fn.apply(this, args); - }); - } - function reflectAll(tasks) { - var results; - if (Array.isArray(tasks)) { - results = tasks.map(reflect); - } else { - results = {}; - Object.keys(tasks).forEach((key2) => { - results[key2] = reflect.call(this, tasks[key2]); - }); + return ret; + }; + } else if (fs4.futimes) { + fs4.lutimes = function(_a, _b, _c, cb) { + if (cb) + process.nextTick(cb); + }; + fs4.lutimesSync = function() { + }; } - return results; } - function reject$2(eachfn, arr, _iteratee, callback) { - const iteratee = wrapAsync(_iteratee); - return _filter(eachfn, arr, (value, cb) => { - iteratee(value, (err, v) => { - cb(err, !v); + function chmodFix(orig) { + if (!orig) + return orig; + return function(target, mode, cb) { + return orig.call(fs3, target, mode, function(er) { + if (chownErOk(er)) + er = null; + if (cb) + cb.apply(this, arguments); }); - }, callback); + }; } - function reject(coll, iteratee, callback) { - return reject$2(eachOf$1, coll, iteratee, callback); + function chmodFixSync(orig) { + if (!orig) + return orig; + return function(target, mode) { + try { + return orig.call(fs3, target, mode); + } catch (er) { + if (!chownErOk(er)) + throw er; + } + }; } - var reject$1 = awaitify(reject, 3); - function rejectLimit(coll, limit, iteratee, callback) { - return reject$2(eachOfLimit$2(limit), coll, iteratee, callback); + function chownFix(orig) { + if (!orig) + return orig; + return function(target, uid, gid, cb) { + return orig.call(fs3, target, uid, gid, function(er) { + if (chownErOk(er)) + er = null; + if (cb) + cb.apply(this, arguments); + }); + }; } - var rejectLimit$1 = awaitify(rejectLimit, 4); - function rejectSeries(coll, iteratee, callback) { - return reject$2(eachOfSeries$1, coll, iteratee, callback); + function chownFixSync(orig) { + if (!orig) + return orig; + return function(target, uid, gid) { + try { + return orig.call(fs3, target, uid, gid); + } catch (er) { + if (!chownErOk(er)) + throw er; + } + }; } - var rejectSeries$1 = awaitify(rejectSeries, 3); - function constant(value) { - return function() { - return value; + function statFix(orig) { + if (!orig) + return orig; + return function(target, options, cb) { + if (typeof options === "function") { + cb = options; + options = null; + } + function callback(er, stats) { + if (stats) { + if (stats.uid < 0) + stats.uid += 4294967296; + if (stats.gid < 0) + stats.gid += 4294967296; + } + if (cb) + cb.apply(this, arguments); + } + return options ? orig.call(fs3, target, options, callback) : orig.call(fs3, target, callback); }; } - const DEFAULT_TIMES = 5; - const DEFAULT_INTERVAL = 0; - function retry(opts, task, callback) { - var options = { - times: DEFAULT_TIMES, - intervalFunc: constant(DEFAULT_INTERVAL) + function statFixSync(orig) { + if (!orig) + return orig; + return function(target, options) { + var stats = options ? orig.call(fs3, target, options) : orig.call(fs3, target); + if (stats) { + if (stats.uid < 0) + stats.uid += 4294967296; + if (stats.gid < 0) + stats.gid += 4294967296; + } + return stats; }; - if (arguments.length < 3 && typeof opts === "function") { - callback = task || promiseCallback(); - task = opts; - } else { - parseTimes(options, opts); - callback = callback || promiseCallback(); + } + function chownErOk(er) { + if (!er) + return true; + if (er.code === "ENOSYS") + return true; + var nonroot = !process.getuid || process.getuid() !== 0; + if (nonroot) { + if (er.code === "EINVAL" || er.code === "EPERM") + return true; } - if (typeof task !== "function") { - throw new Error("Invalid arguments for async.retry"); + return false; + } + } +}); + +// node_modules/graceful-fs/legacy-streams.js +var require_legacy_streams = __commonJS((exports, module) => { + var Stream = __require("stream").Stream; + module.exports = legacy; + function legacy(fs3) { + return { + ReadStream, + WriteStream + }; + function ReadStream(path2, options) { + if (!(this instanceof ReadStream)) + return new ReadStream(path2, options); + Stream.call(this); + var self2 = this; + this.path = path2; + this.fd = null; + this.readable = true; + this.paused = false; + this.flags = "r"; + this.mode = 438; + this.bufferSize = 64 * 1024; + options = options || {}; + var keys = Object.keys(options); + for (var index = 0, length = keys.length;index < length; index++) { + var key2 = keys[index]; + this[key2] = options[key2]; } - var _task = wrapAsync(task); - var attempt = 1; - function retryAttempt() { - _task((err, ...args) => { - if (err === false) - return; - if (err && attempt++ < options.times && (typeof options.errorFilter != "function" || options.errorFilter(err))) { - setTimeout(retryAttempt, options.intervalFunc(attempt - 1)); - } else { - callback(err, ...args); - } + if (this.encoding) + this.setEncoding(this.encoding); + if (this.start !== undefined) { + if (typeof this.start !== "number") { + throw TypeError("start must be a Number"); + } + if (this.end === undefined) { + this.end = Infinity; + } else if (typeof this.end !== "number") { + throw TypeError("end must be a Number"); + } + if (this.start > this.end) { + throw new Error("start must be <= end"); + } + this.pos = this.start; + } + if (this.fd !== null) { + process.nextTick(function() { + self2._read(); }); + return; } - retryAttempt(); - return callback[PROMISE_SYMBOL]; + fs3.open(this.path, this.flags, this.mode, function(err, fd) { + if (err) { + self2.emit("error", err); + self2.readable = false; + return; + } + self2.fd = fd; + self2.emit("open", fd); + self2._read(); + }); } - function parseTimes(acc, t) { - if (typeof t === "object") { - acc.times = +t.times || DEFAULT_TIMES; - acc.intervalFunc = typeof t.interval === "function" ? t.interval : constant(+t.interval || DEFAULT_INTERVAL); - acc.errorFilter = t.errorFilter; - } else if (typeof t === "number" || typeof t === "string") { - acc.times = +t || DEFAULT_TIMES; - } else { - throw new Error("Invalid arguments for async.retry"); + function WriteStream(path2, options) { + if (!(this instanceof WriteStream)) + return new WriteStream(path2, options); + Stream.call(this); + this.path = path2; + this.fd = null; + this.writable = true; + this.flags = "w"; + this.encoding = "binary"; + this.mode = 438; + this.bytesWritten = 0; + options = options || {}; + var keys = Object.keys(options); + for (var index = 0, length = keys.length;index < length; index++) { + var key2 = keys[index]; + this[key2] = options[key2]; + } + if (this.start !== undefined) { + if (typeof this.start !== "number") { + throw TypeError("start must be a Number"); + } + if (this.start < 0) { + throw new Error("start must be >= zero"); + } + this.pos = this.start; + } + this.busy = false; + this._queue = []; + if (this.fd === null) { + this._open = fs3.open; + this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); + this.flush(); } } - function retryable(opts, task) { - if (!task) { - task = opts; - opts = null; + } +}); + +// node_modules/graceful-fs/clone.js +var require_clone = __commonJS((exports, module) => { + module.exports = clone; + var getPrototypeOf = Object.getPrototypeOf || function(obj) { + return obj.__proto__; + }; + function clone(obj) { + if (obj === null || typeof obj !== "object") + return obj; + if (obj instanceof Object) + var copy = { __proto__: getPrototypeOf(obj) }; + else + var copy = Object.create(null); + Object.getOwnPropertyNames(obj).forEach(function(key2) { + Object.defineProperty(copy, key2, Object.getOwnPropertyDescriptor(obj, key2)); + }); + return copy; + } +}); + +// node_modules/graceful-fs/graceful-fs.js +var require_graceful_fs = __commonJS((exports, module) => { + var fs3 = __require("fs"); + var polyfills = require_polyfills(); + var legacy = require_legacy_streams(); + var clone = require_clone(); + var util2 = __require("util"); + var gracefulQueue; + var previousSymbol; + if (typeof Symbol === "function" && typeof Symbol.for === "function") { + gracefulQueue = Symbol.for("graceful-fs.queue"); + previousSymbol = Symbol.for("graceful-fs.previous"); + } else { + gracefulQueue = "___graceful-fs.queue"; + previousSymbol = "___graceful-fs.previous"; + } + function noop() { + } + function publishQueue(context, queue2) { + Object.defineProperty(context, gracefulQueue, { + get: function() { + return queue2; } - let arity = opts && opts.arity || task.length; - if (isAsync2(task)) { - arity += 1; + }); + } + var debug = noop; + if (util2.debuglog) + debug = util2.debuglog("gfs4"); + else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) + debug = function() { + var m = util2.format.apply(util2, arguments); + m = "GFS4: " + m.split(/\n/).join(` +GFS4: `); + console.error(m); + }; + if (!fs3[gracefulQueue]) { + queue = global[gracefulQueue] || []; + publishQueue(fs3, queue); + fs3.close = function(fs$close) { + function close(fd, cb) { + return fs$close.call(fs3, fd, function(err) { + if (!err) { + resetQueue(); + } + if (typeof cb === "function") + cb.apply(this, arguments); + }); } - var _task = wrapAsync(task); - return initialParams((args, callback) => { - if (args.length < arity - 1 || callback == null) { - args.push(callback); - callback = promiseCallback(); - } - function taskFn(cb) { - _task(...args, cb); - } - if (opts) - retry(opts, taskFn, callback); - else - retry(taskFn, callback); - return callback[PROMISE_SYMBOL]; + Object.defineProperty(close, previousSymbol, { + value: fs$close + }); + return close; + }(fs3.close); + fs3.closeSync = function(fs$closeSync) { + function closeSync(fd) { + fs$closeSync.apply(fs3, arguments); + resetQueue(); + } + Object.defineProperty(closeSync, previousSymbol, { + value: fs$closeSync + }); + return closeSync; + }(fs3.closeSync); + if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) { + process.on("exit", function() { + debug(fs3[gracefulQueue]); + __require("assert").equal(fs3[gracefulQueue].length, 0); }); } - function series(tasks, callback) { - return _parallel(eachOfSeries$1, tasks, callback); - } - function some(coll, iteratee, callback) { - return _createTester(Boolean, (res) => res)(eachOf$1, coll, iteratee, callback); - } - var some$1 = awaitify(some, 3); - function someLimit(coll, limit, iteratee, callback) { - return _createTester(Boolean, (res) => res)(eachOfLimit$2(limit), coll, iteratee, callback); - } - var someLimit$1 = awaitify(someLimit, 4); - function someSeries(coll, iteratee, callback) { - return _createTester(Boolean, (res) => res)(eachOfSeries$1, coll, iteratee, callback); + } + var queue; + if (!global[gracefulQueue]) { + publishQueue(global, fs3[gracefulQueue]); + } + module.exports = patch(clone(fs3)); + if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs3.__patched) { + module.exports = patch(fs3); + fs3.__patched = true; + } + function patch(fs4) { + polyfills(fs4); + fs4.gracefulify = patch; + fs4.createReadStream = createReadStream; + fs4.createWriteStream = createWriteStream; + var fs$readFile = fs4.readFile; + fs4.readFile = readFile; + function readFile(path2, options, cb) { + if (typeof options === "function") + cb = options, options = null; + return go$readFile(path2, options, cb); + function go$readFile(path3, options2, cb2, startTime) { + return fs$readFile(path3, options2, function(err) { + if (err && (err.code === "EMFILE" || err.code === "ENFILE")) + enqueue([go$readFile, [path3, options2, cb2], err, startTime || Date.now(), Date.now()]); + else { + if (typeof cb2 === "function") + cb2.apply(this, arguments); + } + }); + } } - var someSeries$1 = awaitify(someSeries, 3); - function sortBy(coll, iteratee, callback) { - var _iteratee = wrapAsync(iteratee); - return map$1(coll, (x, iterCb) => { - _iteratee(x, (err, criteria) => { - if (err) - return iterCb(err); - iterCb(err, { value: x, criteria }); + var fs$writeFile = fs4.writeFile; + fs4.writeFile = writeFile; + function writeFile(path2, data, options, cb) { + if (typeof options === "function") + cb = options, options = null; + return go$writeFile(path2, data, options, cb); + function go$writeFile(path3, data2, options2, cb2, startTime) { + return fs$writeFile(path3, data2, options2, function(err) { + if (err && (err.code === "EMFILE" || err.code === "ENFILE")) + enqueue([go$writeFile, [path3, data2, options2, cb2], err, startTime || Date.now(), Date.now()]); + else { + if (typeof cb2 === "function") + cb2.apply(this, arguments); + } }); - }, (err, results) => { - if (err) - return callback(err); - callback(null, results.sort(comparator).map((v) => v.value)); - }); - function comparator(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; } } - var sortBy$1 = awaitify(sortBy, 3); - function timeout(asyncFn, milliseconds, info) { - var fn = wrapAsync(asyncFn); - return initialParams((args, callback) => { - var timedOut = false; - var timer; - function timeoutCallback() { - var name = asyncFn.name || "anonymous"; - var error = new Error('Callback function "' + name + '" timed out.'); - error.code = "ETIMEDOUT"; - if (info) { - error.info = info; + var fs$appendFile = fs4.appendFile; + if (fs$appendFile) + fs4.appendFile = appendFile; + function appendFile(path2, data, options, cb) { + if (typeof options === "function") + cb = options, options = null; + return go$appendFile(path2, data, options, cb); + function go$appendFile(path3, data2, options2, cb2, startTime) { + return fs$appendFile(path3, data2, options2, function(err) { + if (err && (err.code === "EMFILE" || err.code === "ENFILE")) + enqueue([go$appendFile, [path3, data2, options2, cb2], err, startTime || Date.now(), Date.now()]); + else { + if (typeof cb2 === "function") + cb2.apply(this, arguments); } - timedOut = true; - callback(error); - } - args.push((...cbArgs) => { - if (!timedOut) { - callback(...cbArgs); - clearTimeout(timer); + }); + } + } + var fs$copyFile = fs4.copyFile; + if (fs$copyFile) + fs4.copyFile = copyFile; + function copyFile(src, dest, flags, cb) { + if (typeof flags === "function") { + cb = flags; + flags = 0; + } + return go$copyFile(src, dest, flags, cb); + function go$copyFile(src2, dest2, flags2, cb2, startTime) { + return fs$copyFile(src2, dest2, flags2, function(err) { + if (err && (err.code === "EMFILE" || err.code === "ENFILE")) + enqueue([go$copyFile, [src2, dest2, flags2, cb2], err, startTime || Date.now(), Date.now()]); + else { + if (typeof cb2 === "function") + cb2.apply(this, arguments); } }); - timer = setTimeout(timeoutCallback, milliseconds); - fn(...args); - }); + } } - function range(size) { - var result = Array(size); - while (size--) { - result[size] = size; + var fs$readdir = fs4.readdir; + fs4.readdir = readdir; + var noReaddirOptionVersions = /^v[0-5]\./; + function readdir(path2, options, cb) { + if (typeof options === "function") + cb = options, options = null; + var go$readdir = noReaddirOptionVersions.test(process.version) ? function go$readdir(path3, options2, cb2, startTime) { + return fs$readdir(path3, fs$readdirCallback(path3, options2, cb2, startTime)); + } : function go$readdir(path3, options2, cb2, startTime) { + return fs$readdir(path3, options2, fs$readdirCallback(path3, options2, cb2, startTime)); + }; + return go$readdir(path2, options, cb); + function fs$readdirCallback(path3, options2, cb2, startTime) { + return function(err, files) { + if (err && (err.code === "EMFILE" || err.code === "ENFILE")) + enqueue([ + go$readdir, + [path3, options2, cb2], + err, + startTime || Date.now(), + Date.now() + ]); + else { + if (files && files.sort) + files.sort(); + if (typeof cb2 === "function") + cb2.call(this, err, files); + } + }; } - return result; } - function timesLimit(count, limit, iteratee, callback) { - var _iteratee = wrapAsync(iteratee); - return mapLimit$1(range(count), limit, _iteratee, callback); + if (process.version.substr(0, 4) === "v0.8") { + var legStreams = legacy(fs4); + ReadStream = legStreams.ReadStream; + WriteStream = legStreams.WriteStream; } - function times(n, iteratee, callback) { - return timesLimit(n, Infinity, iteratee, callback); + var fs$ReadStream = fs4.ReadStream; + if (fs$ReadStream) { + ReadStream.prototype = Object.create(fs$ReadStream.prototype); + ReadStream.prototype.open = ReadStream$open; } - function timesSeries(n, iteratee, callback) { - return timesLimit(n, 1, iteratee, callback); + var fs$WriteStream = fs4.WriteStream; + if (fs$WriteStream) { + WriteStream.prototype = Object.create(fs$WriteStream.prototype); + WriteStream.prototype.open = WriteStream$open; } - function transform(coll, accumulator, iteratee, callback) { - if (arguments.length <= 3 && typeof accumulator === "function") { - callback = iteratee; - iteratee = accumulator; - accumulator = Array.isArray(coll) ? [] : {}; - } - callback = once(callback || promiseCallback()); - var _iteratee = wrapAsync(iteratee); - eachOf$1(coll, (v, k, cb) => { - _iteratee(accumulator, v, k, cb); - }, (err) => callback(err, accumulator)); - return callback[PROMISE_SYMBOL]; + Object.defineProperty(fs4, "ReadStream", { + get: function() { + return ReadStream; + }, + set: function(val) { + ReadStream = val; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(fs4, "WriteStream", { + get: function() { + return WriteStream; + }, + set: function(val) { + WriteStream = val; + }, + enumerable: true, + configurable: true + }); + var FileReadStream = ReadStream; + Object.defineProperty(fs4, "FileReadStream", { + get: function() { + return FileReadStream; + }, + set: function(val) { + FileReadStream = val; + }, + enumerable: true, + configurable: true + }); + var FileWriteStream = WriteStream; + Object.defineProperty(fs4, "FileWriteStream", { + get: function() { + return FileWriteStream; + }, + set: function(val) { + FileWriteStream = val; + }, + enumerable: true, + configurable: true + }); + function ReadStream(path2, options) { + if (this instanceof ReadStream) + return fs$ReadStream.apply(this, arguments), this; + else + return ReadStream.apply(Object.create(ReadStream.prototype), arguments); } - function tryEach(tasks, callback) { - var error = null; - var result; - return eachSeries$1(tasks, (task, taskCb) => { - wrapAsync(task)((err, ...args) => { - if (err === false) - return taskCb(err); - if (args.length < 2) { - [result] = args; - } else { - result = args; - } - error = err; - taskCb(err ? null : {}); - }); - }, () => callback(error, result)); + function ReadStream$open() { + var that = this; + open(that.path, that.flags, that.mode, function(err, fd) { + if (err) { + if (that.autoClose) + that.destroy(); + that.emit("error", err); + } else { + that.fd = fd; + that.emit("open", fd); + that.read(); + } + }); } - var tryEach$1 = awaitify(tryEach); - function unmemoize(fn) { - return (...args) => { - return (fn.unmemoized || fn)(...args); - }; + function WriteStream(path2, options) { + if (this instanceof WriteStream) + return fs$WriteStream.apply(this, arguments), this; + else + return WriteStream.apply(Object.create(WriteStream.prototype), arguments); } - function whilst(test, iteratee, callback) { - callback = onlyOnce(callback); - var _fn = wrapAsync(iteratee); - var _test = wrapAsync(test); - var results = []; - function next(err, ...rest) { - if (err) - return callback(err); - results = rest; - if (err === false) - return; - _test(check2); - } - function check2(err, truth) { - if (err) - return callback(err); - if (err === false) - return; - if (!truth) - return callback(null, ...results); - _fn(next); - } - return _test(check2); + function WriteStream$open() { + var that = this; + open(that.path, that.flags, that.mode, function(err, fd) { + if (err) { + that.destroy(); + that.emit("error", err); + } else { + that.fd = fd; + that.emit("open", fd); + } + }); } - var whilst$1 = awaitify(whilst, 3); - function until(test, iteratee, callback) { - const _test = wrapAsync(test); - return whilst$1((cb) => _test((err, truth) => cb(err, !truth)), iteratee, callback); + function createReadStream(path2, options) { + return new fs4.ReadStream(path2, options); } - function waterfall(tasks, callback) { - callback = once(callback); - if (!Array.isArray(tasks)) - return callback(new Error("First argument to waterfall must be an array of functions")); - if (!tasks.length) - return callback(); - var taskIndex = 0; - function nextTask(args) { - var task = wrapAsync(tasks[taskIndex++]); - task(...args, onlyOnce(next)); + function createWriteStream(path2, options) { + return new fs4.WriteStream(path2, options); + } + var fs$open = fs4.open; + fs4.open = open; + function open(path2, flags, mode, cb) { + if (typeof mode === "function") + cb = mode, mode = null; + return go$open(path2, flags, mode, cb); + function go$open(path3, flags2, mode2, cb2, startTime) { + return fs$open(path3, flags2, mode2, function(err, fd) { + if (err && (err.code === "EMFILE" || err.code === "ENFILE")) + enqueue([go$open, [path3, flags2, mode2, cb2], err, startTime || Date.now(), Date.now()]); + else { + if (typeof cb2 === "function") + cb2.apply(this, arguments); + } + }); } - function next(err, ...args) { - if (err === false) - return; - if (err || taskIndex === tasks.length) { - return callback(err, ...args); - } - nextTask(args); + } + return fs4; + } + function enqueue(elem) { + debug("ENQUEUE", elem[0].name, elem[1]); + fs3[gracefulQueue].push(elem); + retry(); + } + var retryTimer; + function resetQueue() { + var now = Date.now(); + for (var i = 0;i < fs3[gracefulQueue].length; ++i) { + if (fs3[gracefulQueue][i].length > 2) { + fs3[gracefulQueue][i][3] = now; + fs3[gracefulQueue][i][4] = now; } - nextTask([]); } - var waterfall$1 = awaitify(waterfall); - var index = { - apply, - applyEach, - applyEachSeries, - asyncify, - auto, - autoInject, - cargo: cargo$1, - cargoQueue: cargo, - compose, - concat: concat$1, - concatLimit: concatLimit$1, - concatSeries: concatSeries$1, - constant: constant$1, - detect: detect$1, - detectLimit: detectLimit$1, - detectSeries: detectSeries$1, - dir, - doUntil, - doWhilst: doWhilst$1, - each, - eachLimit: eachLimit$1, - eachOf: eachOf$1, - eachOfLimit: eachOfLimit$1, - eachOfSeries: eachOfSeries$1, - eachSeries: eachSeries$1, - ensureAsync, - every: every$1, - everyLimit: everyLimit$1, - everySeries: everySeries$1, - filter: filter$1, - filterLimit: filterLimit$1, - filterSeries: filterSeries$1, - forever: forever$1, - groupBy, - groupByLimit: groupByLimit$1, - groupBySeries, - log, - map: map$1, - mapLimit: mapLimit$1, - mapSeries: mapSeries$1, - mapValues, - mapValuesLimit: mapValuesLimit$1, - mapValuesSeries, - memoize, - nextTick, - parallel, - parallelLimit, - priorityQueue, - queue, - race: race$1, - reduce: reduce$1, - reduceRight, - reflect, - reflectAll, - reject: reject$1, - rejectLimit: rejectLimit$1, - rejectSeries: rejectSeries$1, - retry, - retryable, - seq, - series, - setImmediate: setImmediate$1, - some: some$1, - someLimit: someLimit$1, - someSeries: someSeries$1, - sortBy: sortBy$1, - timeout, - times, - timesLimit, - timesSeries, - transform, - tryEach: tryEach$1, - unmemoize, - until, - waterfall: waterfall$1, - whilst: whilst$1, - all: every$1, - allLimit: everyLimit$1, - allSeries: everySeries$1, - any: some$1, - anyLimit: someLimit$1, - anySeries: someSeries$1, - find: detect$1, - findLimit: detectLimit$1, - findSeries: detectSeries$1, - flatMap: concat$1, - flatMapLimit: concatLimit$1, - flatMapSeries: concatSeries$1, - forEach: each, - forEachSeries: eachSeries$1, - forEachLimit: eachLimit$1, - forEachOf: eachOf$1, - forEachOfSeries: eachOfSeries$1, - forEachOfLimit: eachOfLimit$1, - inject: reduce$1, - foldl: reduce$1, - foldr: reduceRight, - select: filter$1, - selectLimit: filterLimit$1, - selectSeries: filterSeries$1, - wrapSync: asyncify, - during: whilst$1, - doDuring: doWhilst$1 - }; - exports2.all = every$1; - exports2.allLimit = everyLimit$1; - exports2.allSeries = everySeries$1; - exports2.any = some$1; - exports2.anyLimit = someLimit$1; - exports2.anySeries = someSeries$1; - exports2.apply = apply; - exports2.applyEach = applyEach; - exports2.applyEachSeries = applyEachSeries; - exports2.asyncify = asyncify; - exports2.auto = auto; - exports2.autoInject = autoInject; - exports2.cargo = cargo$1; - exports2.cargoQueue = cargo; - exports2.compose = compose; - exports2.concat = concat$1; - exports2.concatLimit = concatLimit$1; - exports2.concatSeries = concatSeries$1; - exports2.constant = constant$1; - exports2.default = index; - exports2.detect = detect$1; - exports2.detectLimit = detectLimit$1; - exports2.detectSeries = detectSeries$1; - exports2.dir = dir; - exports2.doDuring = doWhilst$1; - exports2.doUntil = doUntil; - exports2.doWhilst = doWhilst$1; - exports2.during = whilst$1; - exports2.each = each; - exports2.eachLimit = eachLimit$1; - exports2.eachOf = eachOf$1; - exports2.eachOfLimit = eachOfLimit$1; - exports2.eachOfSeries = eachOfSeries$1; - exports2.eachSeries = eachSeries$1; - exports2.ensureAsync = ensureAsync; - exports2.every = every$1; - exports2.everyLimit = everyLimit$1; - exports2.everySeries = everySeries$1; - exports2.filter = filter$1; - exports2.filterLimit = filterLimit$1; - exports2.filterSeries = filterSeries$1; - exports2.find = detect$1; - exports2.findLimit = detectLimit$1; - exports2.findSeries = detectSeries$1; - exports2.flatMap = concat$1; - exports2.flatMapLimit = concatLimit$1; - exports2.flatMapSeries = concatSeries$1; - exports2.foldl = reduce$1; - exports2.foldr = reduceRight; - exports2.forEach = each; - exports2.forEachLimit = eachLimit$1; - exports2.forEachOf = eachOf$1; - exports2.forEachOfLimit = eachOfLimit$1; - exports2.forEachOfSeries = eachOfSeries$1; - exports2.forEachSeries = eachSeries$1; - exports2.forever = forever$1; - exports2.groupBy = groupBy; - exports2.groupByLimit = groupByLimit$1; - exports2.groupBySeries = groupBySeries; - exports2.inject = reduce$1; - exports2.log = log; - exports2.map = map$1; - exports2.mapLimit = mapLimit$1; - exports2.mapSeries = mapSeries$1; - exports2.mapValues = mapValues; - exports2.mapValuesLimit = mapValuesLimit$1; - exports2.mapValuesSeries = mapValuesSeries; - exports2.memoize = memoize; - exports2.nextTick = nextTick; - exports2.parallel = parallel; - exports2.parallelLimit = parallelLimit; - exports2.priorityQueue = priorityQueue; - exports2.queue = queue; - exports2.race = race$1; - exports2.reduce = reduce$1; - exports2.reduceRight = reduceRight; - exports2.reflect = reflect; - exports2.reflectAll = reflectAll; - exports2.reject = reject$1; - exports2.rejectLimit = rejectLimit$1; - exports2.rejectSeries = rejectSeries$1; - exports2.retry = retry; - exports2.retryable = retryable; - exports2.select = filter$1; - exports2.selectLimit = filterLimit$1; - exports2.selectSeries = filterSeries$1; - exports2.seq = seq; - exports2.series = series; - exports2.setImmediate = setImmediate$1; - exports2.some = some$1; - exports2.someLimit = someLimit$1; - exports2.someSeries = someSeries$1; - exports2.sortBy = sortBy$1; - exports2.timeout = timeout; - exports2.times = times; - exports2.timesLimit = timesLimit; - exports2.timesSeries = timesSeries; - exports2.transform = transform; - exports2.tryEach = tryEach$1; - exports2.unmemoize = unmemoize; - exports2.until = until; - exports2.waterfall = waterfall$1; - exports2.whilst = whilst$1; - exports2.wrapSync = asyncify; - Object.defineProperty(exports2, "__esModule", { value: true }); - }); + retry(); + } + function retry() { + clearTimeout(retryTimer); + retryTimer = undefined; + if (fs3[gracefulQueue].length === 0) + return; + var elem = fs3[gracefulQueue].shift(); + var fn = elem[0]; + var args = elem[1]; + var err = elem[2]; + var startTime = elem[3]; + var lastTime = elem[4]; + if (startTime === undefined) { + debug("RETRY", fn.name, args); + fn.apply(null, args); + } else if (Date.now() - startTime >= 60000) { + debug("TIMEOUT", fn.name, args); + var cb = args.pop(); + if (typeof cb === "function") + cb.call(null, err); + } else { + var sinceAttempt = Date.now() - lastTime; + var sinceStart = Math.max(lastTime - startTime, 1); + var desiredDelay = Math.min(sinceStart * 1.2, 100); + if (sinceAttempt >= desiredDelay) { + debug("RETRY", fn.name, args); + fn.apply(null, args.concat([startTime])); + } else { + fs3[gracefulQueue].push(elem); + } + } + if (retryTimer === undefined) { + retryTimer = setTimeout(retry, 0); + } + } }); // node_modules/archiver-utils/node_modules/is-stream/index.js @@ -31831,7 +29808,7 @@ var require_util = __commonJS((exports) => { if (Array.isArray) { return Array.isArray(arg); } - return objectToString2(arg) === "[object Array]"; + return objectToString(arg) === "[object Array]"; } exports.isArray = isArray; function isBoolean(arg) { @@ -31863,7 +29840,7 @@ var require_util = __commonJS((exports) => { } exports.isUndefined = isUndefined; function isRegExp(re) { - return objectToString2(re) === "[object RegExp]"; + return objectToString(re) === "[object RegExp]"; } exports.isRegExp = isRegExp; function isObject(arg) { @@ -31871,11 +29848,11 @@ var require_util = __commonJS((exports) => { } exports.isObject = isObject; function isDate(d) { - return objectToString2(d) === "[object Date]"; + return objectToString(d) === "[object Date]"; } exports.isDate = isDate; function isError(e) { - return objectToString2(e) === "[object Error]" || e instanceof Error; + return objectToString(e) === "[object Error]" || e instanceof Error; } exports.isError = isError; function isFunction(arg) { @@ -31887,7 +29864,7 @@ var require_util = __commonJS((exports) => { } exports.isPrimitive = isPrimitive; exports.isBuffer = __require("buffer").Buffer.isBuffer; - function objectToString2(o) { + function objectToString(o) { return Object.prototype.toString.call(o); } }); @@ -32085,7 +30062,7 @@ var require_destroy = __commonJS((exports, module) => { }); // node_modules/util-deprecate/node.js -var require_node2 = __commonJS((exports, module) => { +var require_node = __commonJS((exports, module) => { module.exports = __require("util").deprecate; }); @@ -32107,7 +30084,7 @@ var require__stream_writable = __commonJS((exports, module) => { var util2 = Object.create(require_util()); util2.inherits = require_inherits(); var internalUtil = { - deprecate: require_node2() + deprecate: require_node() }; var Stream = __require("stream"); var Buffer2 = require_safe_buffer().Buffer; @@ -32317,7 +30294,7 @@ var require__stream_writable = __commonJS((exports, module) => { if (!ret) state.needDrain = true; if (state.writing || state.corked) { - var last2 = state.lastBufferedRequest; + var last = state.lastBufferedRequest; state.lastBufferedRequest = { chunk, encoding, @@ -32325,8 +30302,8 @@ var require__stream_writable = __commonJS((exports, module) => { callback: cb, next: null }; - if (last2) { - last2.next = state.lastBufferedRequest; + if (last) { + last.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } @@ -32909,11 +30886,11 @@ var require__stream_readable = __commonJS((exports, module) => { var util2 = Object.create(require_util()); util2.inherits = require_inherits(); var debugUtil = __require("util"); - var debug2 = undefined; + var debug = undefined; if (debugUtil && debugUtil.debuglog) { - debug2 = debugUtil.debuglog("stream"); + debug = debugUtil.debuglog("stream"); } else { - debug2 = function() { + debug = function() { }; } var BufferList = require_BufferList(); @@ -33140,14 +31117,14 @@ var require__stream_readable = __commonJS((exports, module) => { return state.length; } Readable.prototype.read = function(n) { - debug2("read", n); + debug("read", n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; if (n !== 0) state.emittedReadable = false; if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug2("read: emitReadable", state.length, state.ended); + debug("read: emitReadable", state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this); else @@ -33161,16 +31138,16 @@ var require__stream_readable = __commonJS((exports, module) => { return null; } var doRead = state.needReadable; - debug2("need readable", doRead); + debug("need readable", doRead); if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; - debug2("length less than watermark", doRead); + debug("length less than watermark", doRead); } if (state.ended || state.reading) { doRead = false; - debug2("reading or ended", doRead); + debug("reading or ended", doRead); } else if (doRead) { - debug2("do read"); + debug("do read"); state.reading = true; state.sync = true; if (state.length === 0) @@ -33218,7 +31195,7 @@ var require__stream_readable = __commonJS((exports, module) => { var state = stream._readableState; state.needReadable = false; if (!state.emittedReadable) { - debug2("emitReadable", state.flowing); + debug("emitReadable", state.flowing); state.emittedReadable = true; if (state.sync) pna.nextTick(emitReadable_, stream); @@ -33227,7 +31204,7 @@ var require__stream_readable = __commonJS((exports, module) => { } } function emitReadable_(stream) { - debug2("emit readable"); + debug("emit readable"); stream.emit("readable"); flow(stream); } @@ -33240,7 +31217,7 @@ var require__stream_readable = __commonJS((exports, module) => { function maybeReadMore_(stream, state) { var len = state.length; while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug2("maybeReadMore read 0"); + debug("maybeReadMore read 0"); stream.read(0); if (len === state.length) break; @@ -33267,7 +31244,7 @@ var require__stream_readable = __commonJS((exports, module) => { break; } state.pipesCount += 1; - debug2("pipe count=%d opts=%j", state.pipesCount, pipeOpts); + debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) @@ -33276,7 +31253,7 @@ var require__stream_readable = __commonJS((exports, module) => { src.once("end", endFn); dest.on("unpipe", onunpipe); function onunpipe(readable, unpipeInfo) { - debug2("onunpipe"); + debug("onunpipe"); if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; @@ -33285,14 +31262,14 @@ var require__stream_readable = __commonJS((exports, module) => { } } function onend() { - debug2("onend"); + debug("onend"); dest.end(); } var ondrain = pipeOnDrain(src); dest.on("drain", ondrain); var cleanedUp = false; function cleanup() { - debug2("cleanup"); + debug("cleanup"); dest.removeListener("close", onclose); dest.removeListener("finish", onfinish); dest.removeListener("drain", ondrain); @@ -33308,12 +31285,12 @@ var require__stream_readable = __commonJS((exports, module) => { var increasedAwaitDrain = false; src.on("data", ondata); function ondata(chunk) { - debug2("ondata"); + debug("ondata"); increasedAwaitDrain = false; var ret = dest.write(chunk); if (ret === false && !increasedAwaitDrain) { if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug2("false write response, pause", state.awaitDrain); + debug("false write response, pause", state.awaitDrain); state.awaitDrain++; increasedAwaitDrain = true; } @@ -33321,7 +31298,7 @@ var require__stream_readable = __commonJS((exports, module) => { } } function onerror(er) { - debug2("onerror", er); + debug("onerror", er); unpipe(); dest.removeListener("error", onerror); if (EElistenerCount(dest, "error") === 0) @@ -33334,18 +31311,18 @@ var require__stream_readable = __commonJS((exports, module) => { } dest.once("close", onclose); function onfinish() { - debug2("onfinish"); + debug("onfinish"); dest.removeListener("close", onclose); unpipe(); } dest.once("finish", onfinish); function unpipe() { - debug2("unpipe"); + debug("unpipe"); src.unpipe(dest); } dest.emit("pipe", src); if (!state.flowing) { - debug2("pipe resume"); + debug("pipe resume"); src.resume(); } return dest; @@ -33353,7 +31330,7 @@ var require__stream_readable = __commonJS((exports, module) => { function pipeOnDrain(src) { return function() { var state = src._readableState; - debug2("pipeOnDrain", state.awaitDrain); + debug("pipeOnDrain", state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; if (state.awaitDrain === 0 && EElistenerCount(src, "data")) { @@ -33421,13 +31398,13 @@ var require__stream_readable = __commonJS((exports, module) => { }; Readable.prototype.addListener = Readable.prototype.on; function nReadingNextTick(self2) { - debug2("readable nexttick read 0"); + debug("readable nexttick read 0"); self2.read(0); } Readable.prototype.resume = function() { var state = this._readableState; if (!state.flowing) { - debug2("resume"); + debug("resume"); state.flowing = true; resume(this, state); } @@ -33441,7 +31418,7 @@ var require__stream_readable = __commonJS((exports, module) => { } function resume_(stream, state) { if (!state.reading) { - debug2("resume read 0"); + debug("resume read 0"); stream.read(0); } state.resumeScheduled = false; @@ -33452,9 +31429,9 @@ var require__stream_readable = __commonJS((exports, module) => { stream.read(0); } Readable.prototype.pause = function() { - debug2("call pause flowing=%j", this._readableState.flowing); + debug("call pause flowing=%j", this._readableState.flowing); if (this._readableState.flowing !== false) { - debug2("pause"); + debug("pause"); this._readableState.flowing = false; this.emit("pause"); } @@ -33462,7 +31439,7 @@ var require__stream_readable = __commonJS((exports, module) => { }; function flow(stream) { var state = stream._readableState; - debug2("flow", state.flowing); + debug("flow", state.flowing); while (state.flowing && stream.read() !== null) { } } @@ -33471,7 +31448,7 @@ var require__stream_readable = __commonJS((exports, module) => { var state = this._readableState; var paused = false; stream.on("end", function() { - debug2("wrapped end"); + debug("wrapped end"); if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) @@ -33480,7 +31457,7 @@ var require__stream_readable = __commonJS((exports, module) => { _this.push(null); }); stream.on("data", function(chunk) { - debug2("wrapped data"); + debug("wrapped data"); if (state.decoder) chunk = state.decoder.write(chunk); if (state.objectMode && (chunk === null || chunk === undefined)) @@ -33506,7 +31483,7 @@ var require__stream_readable = __commonJS((exports, module) => { stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); } this._read = function(n2) { - debug2("wrapped _read", n2); + debug("wrapped _read", n2); if (paused) { paused = false; stream.resume(); @@ -33837,24 +31814,24 @@ var require_normalize_path = __commonJS((exports, module) => { * Copyright (c) 2014-2018, Jon Schlinkert. * Released under the MIT License. */ - module.exports = function(path3, stripTrailing) { - if (typeof path3 !== "string") { + module.exports = function(path2, stripTrailing) { + if (typeof path2 !== "string") { throw new TypeError("expected path to be a string"); } - if (path3 === "\\" || path3 === "/") + if (path2 === "\\" || path2 === "/") return "/"; - var len = path3.length; + var len = path2.length; if (len <= 1) - return path3; + return path2; var prefix = ""; - if (len > 4 && path3[3] === "\\") { - var ch = path3[2]; - if ((ch === "?" || ch === ".") && path3.slice(0, 2) === "\\\\") { - path3 = path3.slice(2); + if (len > 4 && path2[3] === "\\") { + var ch = path2[2]; + if ((ch === "?" || ch === ".") && path2.slice(0, 2) === "\\\\") { + path2 = path2.slice(2); prefix = "//"; } } - var segs = path3.split(/[/\\]+/); + var segs = path2.split(/[/\\]+/); if (stripTrailing !== false && segs[segs.length - 1] === "") { segs.pop(); } @@ -33973,17 +31950,17 @@ var require__getRawTag = __commonJS((exports, module) => { var require__objectToString = __commonJS((exports, module) => { var objectProto = Object.prototype; var nativeObjectToString = objectProto.toString; - function objectToString2(value) { + function objectToString(value) { return nativeObjectToString.call(value); } - module.exports = objectToString2; + module.exports = objectToString; }); // node_modules/lodash/_baseGetTag.js var require__baseGetTag = __commonJS((exports, module) => { var Symbol2 = require__Symbol(); var getRawTag = require__getRawTag(); - var objectToString2 = require__objectToString(); + var objectToString = require__objectToString(); var nullTag = "[object Null]"; var undefinedTag = "[object Undefined]"; var symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined; @@ -33991,7 +31968,7 @@ var require__baseGetTag = __commonJS((exports, module) => { if (value == null) { return value === undefined ? undefinedTag : nullTag; } - return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString2(value); + return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); } module.exports = baseGetTag; }); @@ -34198,10 +32175,10 @@ var require_isLength = __commonJS((exports, module) => { var require_isArrayLike2 = __commonJS((exports, module) => { var isFunction = require_isFunction2(); var isLength = require_isLength(); - function isArrayLike2(value) { + function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } - module.exports = isArrayLike2; + module.exports = isArrayLike; }); // node_modules/lodash/_isIndex.js @@ -34219,7 +32196,7 @@ var require__isIndex = __commonJS((exports, module) => { // node_modules/lodash/_isIterateeCall.js var require__isIterateeCall = __commonJS((exports, module) => { var eq = require_eq(); - var isArrayLike2 = require_isArrayLike2(); + var isArrayLike = require_isArrayLike2(); var isIndex = require__isIndex(); var isObject = require_isObject(); function isIterateeCall(value, index, object) { @@ -34227,7 +32204,7 @@ var require__isIterateeCall = __commonJS((exports, module) => { return false; } var type = typeof index; - if (type == "number" ? isArrayLike2(object) && isIndex(index, object.length) : type == "string" && (index in object)) { + if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && (index in object)) { return eq(object[index], value); } return false; @@ -34458,9 +32435,9 @@ var require__baseKeysIn = __commonJS((exports, module) => { var require_keysIn = __commonJS((exports, module) => { var arrayLikeKeys = require__arrayLikeKeys(); var baseKeysIn = require__baseKeysIn(); - var isArrayLike2 = require_isArrayLike2(); + var isArrayLike = require_isArrayLike2(); function keysIn(object) { - return isArrayLike2(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); } module.exports = keysIn; }); @@ -34817,8 +32794,8 @@ var require_errors = __commonJS((exports, module) => { msg += `one of type ${types[0]} or ${types[1]}`; break; default: { - const last2 = types.pop(); - msg += `one of type ${types.join(", ")}, or ${last2}`; + const last = types.pop(); + msg += `one of type ${types.join(", ")}, or ${last}`; } } if (instances.length > 0 || other.length > 0) { @@ -34834,8 +32811,8 @@ var require_errors = __commonJS((exports, module) => { msg += `an instance of ${instances[0]} or ${instances[1]}`; break; default: { - const last2 = instances.pop(); - msg += `an instance of ${instances.join(", ")}, or ${last2}`; + const last = instances.pop(); + msg += `an instance of ${instances.join(", ")}, or ${last}`; } } if (other.length > 0) { @@ -34855,8 +32832,8 @@ var require_errors = __commonJS((exports, module) => { msg += `one of ${other[0]} or ${other[1]}`; break; default: { - const last2 = other.pop(); - msg += `one of ${other.join(", ")}, or ${last2}`; + const last = other.pop(); + msg += `one of ${other.join(", ")}, or ${last}`; } } if (actual == null) { @@ -34911,8 +32888,8 @@ var require_errors = __commonJS((exports, module) => { break; default: { - const last2 = args.pop(); - msg += `The ${args.join(", ")}, and ${last2} arguments`; + const last = args.pop(); + msg += `The ${args.join(", ")}, and ${last} arguments`; } break; } @@ -35868,7 +33845,7 @@ var require_process = __commonJS((exports, module) => { }); // node_modules/readable-stream/lib/internal/streams/utils.js -var require_utils3 = __commonJS((exports, module) => { +var require_utils = __commonJS((exports, module) => { var { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require_primordials(); var kIsDestroyed = SymbolFor("nodejs.stream.destroyed"); var kIsErrored = SymbolFor("nodejs.stream.errored"); @@ -36121,7 +34098,7 @@ var require_end_of_stream = __commonJS((exports, module) => { isNodeStream, willEmitClose: _willEmitClose, kIsClosedPromise - } = require_utils3(); + } = require_utils(); var addAbortListener; function isRequest(stream) { return stream.setHeader && typeof stream.abort === "function"; @@ -36353,7 +34330,7 @@ var require_destroy2 = __commonJS((exports, module) => { AbortError } = require_errors(); var { Symbol: Symbol2 } = require_primordials(); - var { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require_utils3(); + var { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require_utils(); var kDestroy = Symbol2("kDestroy"); var kConstruct = Symbol2("kConstruct"); function checkError(err, w, r) { @@ -36692,7 +34669,7 @@ var require_legacy = __commonJS((exports, module) => { var require_add_abort_signal = __commonJS((exports, module) => { var { SymbolDispose } = require_primordials(); var { AbortError, codes } = require_errors(); - var { isNodeStream, isWebStream, kControllerErrorFunction } = require_utils3(); + var { isNodeStream, isWebStream, kControllerErrorFunction } = require_utils(); var eos = require_end_of_stream(); var { ERR_INVALID_ARG_TYPE } = codes; var addAbortListener; @@ -37354,8 +35331,8 @@ var require_readable2 = __commonJS((exports, module) => { var { Buffer: Buffer2 } = __require("buffer"); var { addAbortSignal } = require_add_abort_signal(); var eos = require_end_of_stream(); - var debug2 = require_util2().debuglog("stream", (fn) => { - debug2 = fn; + var debug = require_util2().debuglog("stream", (fn) => { + debug = fn; }); var BufferList = require_buffer_list(); var destroyImpl = require_destroy2(); @@ -37507,7 +35484,7 @@ var require_readable2 = __commonJS((exports, module) => { return readableAddChunk(this, chunk, encoding, true); }; function readableAddChunk(stream, chunk, encoding, addToFront) { - debug2("readableAddChunk", chunk); + debug("readableAddChunk", chunk); const state = stream._readableState; let err; if ((state.state & kObjectMode) === 0) { @@ -37634,7 +35611,7 @@ var require_readable2 = __commonJS((exports, module) => { return state.ended ? state.length : 0; } Readable.prototype.read = function(n) { - debug2("read", n); + debug("read", n); if (n === undefined) { n = NaN; } else if (!NumberIsInteger(n)) { @@ -37647,7 +35624,7 @@ var require_readable2 = __commonJS((exports, module) => { if (n !== 0) state.state &= ~kEmittedReadable; if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { - debug2("read: emitReadable", state.length, state.ended); + debug("read: emitReadable", state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this); else @@ -37661,16 +35638,16 @@ var require_readable2 = __commonJS((exports, module) => { return null; } let doRead = (state.state & kNeedReadable) !== 0; - debug2("need readable", doRead); + debug("need readable", doRead); if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; - debug2("length less than watermark", doRead); + debug("length less than watermark", doRead); } if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) { doRead = false; - debug2("reading, ended or constructing", doRead); + debug("reading, ended or constructing", doRead); } else if (doRead) { - debug2("do read"); + debug("do read"); state.state |= kReading | kSync; if (state.length === 0) state.state |= kNeedReadable; @@ -37712,7 +35689,7 @@ var require_readable2 = __commonJS((exports, module) => { return ret; }; function onEofChunk(stream, state) { - debug2("onEofChunk"); + debug("onEofChunk"); if (state.ended) return; if (state.decoder) { @@ -37733,17 +35710,17 @@ var require_readable2 = __commonJS((exports, module) => { } function emitReadable(stream) { const state = stream._readableState; - debug2("emitReadable", state.needReadable, state.emittedReadable); + debug("emitReadable", state.needReadable, state.emittedReadable); state.needReadable = false; if (!state.emittedReadable) { - debug2("emitReadable", state.flowing); + debug("emitReadable", state.flowing); state.emittedReadable = true; process11.nextTick(emitReadable_, stream); } } function emitReadable_(stream) { const state = stream._readableState; - debug2("emitReadable_", state.destroyed, state.length, state.ended); + debug("emitReadable_", state.destroyed, state.length, state.ended); if (!state.destroyed && !state.errored && (state.length || state.ended)) { stream.emit("readable"); state.emittedReadable = false; @@ -37760,7 +35737,7 @@ var require_readable2 = __commonJS((exports, module) => { function maybeReadMore_(stream, state) { while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { const len = state.length; - debug2("maybeReadMore read 0"); + debug("maybeReadMore read 0"); stream.read(0); if (len === state.length) break; @@ -37780,7 +35757,7 @@ var require_readable2 = __commonJS((exports, module) => { } } state.pipes.push(dest); - debug2("pipe count=%d opts=%j", state.pipes.length, pipeOpts); + debug("pipe count=%d opts=%j", state.pipes.length, pipeOpts); const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process11.stdout && dest !== process11.stderr; const endFn = doEnd ? onend : unpipe; if (state.endEmitted) @@ -37789,7 +35766,7 @@ var require_readable2 = __commonJS((exports, module) => { src.once("end", endFn); dest.on("unpipe", onunpipe); function onunpipe(readable, unpipeInfo) { - debug2("onunpipe"); + debug("onunpipe"); if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; @@ -37798,13 +35775,13 @@ var require_readable2 = __commonJS((exports, module) => { } } function onend() { - debug2("onend"); + debug("onend"); dest.end(); } let ondrain; let cleanedUp = false; function cleanup() { - debug2("cleanup"); + debug("cleanup"); dest.removeListener("close", onclose); dest.removeListener("finish", onfinish); if (ondrain) { @@ -37822,11 +35799,11 @@ var require_readable2 = __commonJS((exports, module) => { function pause() { if (!cleanedUp) { if (state.pipes.length === 1 && state.pipes[0] === dest) { - debug2("false write response, pause", 0); + debug("false write response, pause", 0); state.awaitDrainWriters = dest; state.multiAwaitDrain = false; } else if (state.pipes.length > 1 && state.pipes.includes(dest)) { - debug2("false write response, pause", state.awaitDrainWriters.size); + debug("false write response, pause", state.awaitDrainWriters.size); state.awaitDrainWriters.add(dest); } src.pause(); @@ -37838,15 +35815,15 @@ var require_readable2 = __commonJS((exports, module) => { } src.on("data", ondata); function ondata(chunk) { - debug2("ondata"); + debug("ondata"); const ret = dest.write(chunk); - debug2("dest.write", ret); + debug("dest.write", ret); if (ret === false) { pause(); } } function onerror(er) { - debug2("onerror", er); + debug("onerror", er); unpipe(); dest.removeListener("error", onerror); if (dest.listenerCount("error") === 0) { @@ -37865,20 +35842,20 @@ var require_readable2 = __commonJS((exports, module) => { } dest.once("close", onclose); function onfinish() { - debug2("onfinish"); + debug("onfinish"); dest.removeListener("close", onclose); unpipe(); } dest.once("finish", onfinish); function unpipe() { - debug2("unpipe"); + debug("unpipe"); src.unpipe(dest); } dest.emit("pipe", src); if (dest.writableNeedDrain === true) { pause(); } else if (!state.flowing) { - debug2("pipe resume"); + debug("pipe resume"); src.resume(); } return dest; @@ -37887,10 +35864,10 @@ var require_readable2 = __commonJS((exports, module) => { return function pipeOnDrainFunctionResult() { const state = src._readableState; if (state.awaitDrainWriters === dest) { - debug2("pipeOnDrain", 1); + debug("pipeOnDrain", 1); state.awaitDrainWriters = null; } else if (state.multiAwaitDrain) { - debug2("pipeOnDrain", state.awaitDrainWriters.size); + debug("pipeOnDrain", state.awaitDrainWriters.size); state.awaitDrainWriters.delete(dest); } if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount("data")) { @@ -37936,7 +35913,7 @@ var require_readable2 = __commonJS((exports, module) => { state.readableListening = state.needReadable = true; state.flowing = false; state.emittedReadable = false; - debug2("on readable", state.length, state.reading); + debug("on readable", state.length, state.reading); if (state.length) { emitReadable(this); } else if (!state.reading) { @@ -37974,13 +35951,13 @@ var require_readable2 = __commonJS((exports, module) => { } } function nReadingNextTick(self2) { - debug2("readable nexttick read 0"); + debug("readable nexttick read 0"); self2.read(0); } Readable.prototype.resume = function() { const state = this._readableState; if (!state.flowing) { - debug2("resume"); + debug("resume"); state.flowing = !state.readableListening; resume(this, state); } @@ -37994,7 +35971,7 @@ var require_readable2 = __commonJS((exports, module) => { } } function resume_(stream, state) { - debug2("resume", state.reading); + debug("resume", state.reading); if (!state.reading) { stream.read(0); } @@ -38005,9 +35982,9 @@ var require_readable2 = __commonJS((exports, module) => { stream.read(0); } Readable.prototype.pause = function() { - debug2("call pause flowing=%j", this._readableState.flowing); + debug("call pause flowing=%j", this._readableState.flowing); if (this._readableState.flowing !== false) { - debug2("pause"); + debug("pause"); this._readableState.flowing = false; this.emit("pause"); } @@ -38016,7 +35993,7 @@ var require_readable2 = __commonJS((exports, module) => { }; function flow(stream) { const state = stream._readableState; - debug2("flow", state.flowing); + debug("flow", state.flowing); while (state.flowing && stream.read() !== null) ; } @@ -38265,14 +36242,14 @@ var require_readable2 = __commonJS((exports, module) => { } function endReadable(stream) { const state = stream._readableState; - debug2("endReadable", state.endEmitted); + debug("endReadable", state.endEmitted); if (!state.endEmitted) { state.ended = true; process11.nextTick(endReadableNT, state, stream); } } function endReadableNT(state, stream) { - debug2("endReadableNT", state.endEmitted, state.length); + debug("endReadableNT", state.endEmitted, state.length); if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) { state.endEmitted = true; stream.emit("end"); @@ -38963,7 +36940,7 @@ var require_duplexify = __commonJS((exports, module) => { isDuplexNodeStream, isReadableStream, isWritableStream - } = require_utils3(); + } = require_utils(); var eos = require_end_of_stream(); var { AbortError, @@ -39534,7 +37511,7 @@ var require_pipeline = __commonJS((exports, module) => { isWebStream, isReadableStream, isReadableFinished - } = require_utils3(); + } = require_utils(); var AbortController2 = globalThis.AbortController || require_abort_controller().AbortController; var PassThrough; var Readable; @@ -39712,12 +37689,12 @@ var require_pipeline = __commonJS((exports, module) => { const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false; const isLastStream = i === streams.length - 1; if (isNodeStream(stream)) { - let onError3 = function(err) { + let onError2 = function(err) { if (err && err.name !== "AbortError" && err.code !== "ERR_STREAM_PREMATURE_CLOSE") { finish(err); } }; - var onError2 = onError3; + var onError = onError2; if (end) { const { destroy, cleanup } = destroyer(stream, reading, writing); destroys.push(destroy); @@ -39725,10 +37702,10 @@ var require_pipeline = __commonJS((exports, module) => { lastStreamCleanup.push(cleanup); } } - stream.on("error", onError3); + stream.on("error", onError2); if (isReadable(stream) && isLastStream) { lastStreamCleanup.push(() => { - stream.removeListener("error", onError3); + stream.removeListener("error", onError2); }); } } @@ -39916,7 +37893,7 @@ var require_compose = __commonJS((exports, module) => { isTransformStream, isWritableStream, isReadableStream - } = require_utils3(); + } = require_utils(); var { AbortError, codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS } @@ -40105,7 +38082,7 @@ var require_operators = __commonJS((exports, module) => { var { finished } = require_end_of_stream(); var staticCompose = require_compose(); var { addAbortSignalNoValidate } = require_add_abort_signal(); - var { isWritable, isNodeStream } = require_utils3(); + var { isWritable, isNodeStream } = require_utils(); var { deprecate } = require_util2(); var { ArrayPrototypePush, @@ -40297,7 +38274,7 @@ var require_operators = __commonJS((exports, module) => { } return; } - async function forEach2(fn, options) { + async function forEach(fn, options) { if (typeof fn !== "function") { throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); } @@ -40482,7 +38459,7 @@ var require_operators = __commonJS((exports, module) => { }; exports.promiseReturningOperators = { every, - forEach: forEach2, + forEach, reduce: reduce2, toArray, some, @@ -40493,7 +38470,7 @@ var require_operators = __commonJS((exports, module) => { // node_modules/readable-stream/lib/stream/promises.js var require_promises = __commonJS((exports, module) => { var { ArrayPrototypePop, Promise: Promise2 } = require_primordials(); - var { isIterable, isNodeStream, isWebStream } = require_utils3(); + var { isIterable, isNodeStream, isWebStream } = require_utils(); var { pipelineImpl: pl } = require_pipeline(); var { finished } = require_end_of_stream(); require_stream(); @@ -40542,7 +38519,7 @@ var require_stream = __commonJS((exports, module) => { var { destroyer } = require_destroy2(); var eos = require_end_of_stream(); var promises = require_promises(); - var utils = require_utils3(); + var utils = require_utils(); var Stream = module.exports = require_legacy().Stream; Stream.isDestroyed = utils.isDestroyed; Stream.isDisturbed = utils.isDisturbed; @@ -41184,8 +39161,8 @@ var require__arrayMap = __commonJS((exports, module) => { // node_modules/lodash/_cacheHas.js var require__cacheHas = __commonJS((exports, module) => { - function cacheHas(cache2, key2) { - return cache2.has(key2); + function cacheHas(cache, key2) { + return cache.has(key2); } module.exports = cacheHas; }); @@ -41238,10 +39215,10 @@ var require__baseDifference = __commonJS((exports, module) => { // node_modules/lodash/isArrayLikeObject.js var require_isArrayLikeObject = __commonJS((exports, module) => { - var isArrayLike2 = require_isArrayLike2(); + var isArrayLike = require_isArrayLike2(); var isObjectLike = require_isObjectLike(); function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike2(value); + return isObjectLike(value) && isArrayLike(value); } module.exports = isArrayLikeObject; }); @@ -42030,11 +40007,11 @@ var require_commonjs = __commonJS((exports) => { return (f) => f.length === len && f !== "." && f !== ".."; }; var defaultPlatform = typeof process === "object" && process ? typeof process.env === "object" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix"; - var path3 = { + var path2 = { win32: { sep: "\\" }, posix: { sep: "/" } }; - exports.sep = defaultPlatform === "win32" ? path3.win32.sep : path3.posix.sep; + exports.sep = defaultPlatform === "win32" ? path2.win32.sep : path2.posix.sep; exports.minimatch.sep = exports.sep; exports.GLOBSTAR = Symbol("globstar **"); exports.minimatch.GLOBSTAR = exports.GLOBSTAR; @@ -44715,12 +42692,12 @@ var require_commonjs4 = __commonJS((exports) => { childrenCache() { return this.#children; } - resolve(path3) { - if (!path3) { + resolve(path2) { + if (!path2) { return this; } - const rootPath = this.getRootString(path3); - const dir = path3.substring(rootPath.length); + const rootPath = this.getRootString(path2); + const dir = path2.substring(rootPath.length); const dirParts = dir.split(this.splitSep); const result = rootPath ? this.getRoot(rootPath).#resolveParts(dirParts) : this.#resolveParts(dirParts); return result; @@ -45251,8 +43228,8 @@ var require_commonjs4 = __commonJS((exports) => { newChild(name, type = UNKNOWN, opts = {}) { return new PathWin32(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts); } - getRootString(path3) { - return node_path_1.win32.parse(path3).root; + getRootString(path2) { + return node_path_1.win32.parse(path2).root; } getRoot(rootPath) { rootPath = uncToDrive(rootPath.toUpperCase()); @@ -45279,8 +43256,8 @@ var require_commonjs4 = __commonJS((exports) => { constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) { super(name, type, root, roots, nocase, children, opts); } - getRootString(path3) { - return path3.startsWith("/") ? "/" : ""; + getRootString(path2) { + return path2.startsWith("/") ? "/" : ""; } getRoot(_rootPath) { return this.root; @@ -45338,11 +43315,11 @@ var require_commonjs4 = __commonJS((exports) => { } this.cwd = prev; } - depth(path3 = this.cwd) { - if (typeof path3 === "string") { - path3 = this.cwd.resolve(path3); + depth(path2 = this.cwd) { + if (typeof path2 === "string") { + path2 = this.cwd.resolve(path2); } - return path3.depth(); + return path2.depth(); } childrenCache() { return this.#children; @@ -45587,6474 +43564,8497 @@ var require_commonjs4 = __commonJS((exports) => { } } } - return results; + return results; + } + [Symbol.asyncIterator]() { + return this.iterate(); + } + iterate(entry = this.cwd, options = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + options = entry; + entry = this.cwd; + } + return this.stream(entry, options)[Symbol.asyncIterator](); + } + [Symbol.iterator]() { + return this.iterateSync(); + } + *iterateSync(entry = this.cwd, opts = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; + } + const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts; + if (!filter2 || filter2(entry)) { + yield withFileTypes ? entry : entry.fullpath(); + } + const dirs = new Set([entry]); + for (const dir of dirs) { + const entries = dir.readdirSync(); + for (const e of entries) { + if (!filter2 || filter2(e)) { + yield withFileTypes ? e : e.fullpath(); + } + let r = e; + if (e.isSymbolicLink()) { + if (!(follow && (r = e.realpathSync()))) + continue; + if (r.isUnknown()) + r.lstatSync(); + } + if (r.shouldWalk(dirs, walkFilter)) { + dirs.add(r); + } + } + } + } + stream(entry = this.cwd, opts = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; + } + const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts; + const results = new minipass_1.Minipass({ objectMode: true }); + if (!filter2 || filter2(entry)) { + results.write(withFileTypes ? entry : entry.fullpath()); + } + const dirs = new Set; + const queue = [entry]; + let processing = 0; + const process11 = () => { + let paused = false; + while (!paused) { + const dir = queue.shift(); + if (!dir) { + if (processing === 0) + results.end(); + return; + } + processing++; + dirs.add(dir); + const onReaddir = (er, entries, didRealpaths = false) => { + if (er) + return results.emit("error", er); + if (follow && !didRealpaths) { + const promises = []; + for (const e of entries) { + if (e.isSymbolicLink()) { + promises.push(e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r)); + } + } + if (promises.length) { + Promise.all(promises).then(() => onReaddir(null, entries, true)); + return; + } + } + for (const e of entries) { + if (e && (!filter2 || filter2(e))) { + if (!results.write(withFileTypes ? e : e.fullpath())) { + paused = true; + } + } + } + processing--; + for (const e of entries) { + const r = e.realpathCached() || e; + if (r.shouldWalk(dirs, walkFilter)) { + queue.push(r); + } + } + if (paused && !results.flowing) { + results.once("drain", process11); + } else if (!sync) { + process11(); + } + }; + let sync = true; + dir.readdirCB(onReaddir, true); + sync = false; + } + }; + process11(); + return results; + } + streamSync(entry = this.cwd, opts = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; + } + const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts; + const results = new minipass_1.Minipass({ objectMode: true }); + const dirs = new Set; + if (!filter2 || filter2(entry)) { + results.write(withFileTypes ? entry : entry.fullpath()); + } + const queue = [entry]; + let processing = 0; + const process11 = () => { + let paused = false; + while (!paused) { + const dir = queue.shift(); + if (!dir) { + if (processing === 0) + results.end(); + return; + } + processing++; + dirs.add(dir); + const entries = dir.readdirSync(); + for (const e of entries) { + if (!filter2 || filter2(e)) { + if (!results.write(withFileTypes ? e : e.fullpath())) { + paused = true; + } + } + } + processing--; + for (const e of entries) { + let r = e; + if (e.isSymbolicLink()) { + if (!(follow && (r = e.realpathSync()))) + continue; + if (r.isUnknown()) + r.lstatSync(); + } + if (r.shouldWalk(dirs, walkFilter)) { + queue.push(r); + } + } + } + if (paused && !results.flowing) + results.once("drain", process11); + }; + process11(); + return results; + } + chdir(path2 = this.cwd) { + const oldCwd = this.cwd; + this.cwd = typeof path2 === "string" ? this.cwd.resolve(path2) : path2; + this.cwd[setAsCwd](oldCwd); + } + } + exports.PathScurryBase = PathScurryBase; + + class PathScurryWin32 extends PathScurryBase { + sep = "\\"; + constructor(cwd = process.cwd(), opts = {}) { + const { nocase = true } = opts; + super(cwd, node_path_1.win32, "\\", { ...opts, nocase }); + this.nocase = nocase; + for (let p = this.cwd;p; p = p.parent) { + p.nocase = this.nocase; + } + } + parseRootPath(dir) { + return node_path_1.win32.parse(dir).root.toUpperCase(); + } + newRoot(fs3) { + return new PathWin32(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs: fs3 }); + } + isAbsolute(p) { + return p.startsWith("/") || p.startsWith("\\") || /^[a-z]:(\/|\\)/i.test(p); + } + } + exports.PathScurryWin32 = PathScurryWin32; + + class PathScurryPosix extends PathScurryBase { + sep = "/"; + constructor(cwd = process.cwd(), opts = {}) { + const { nocase = false } = opts; + super(cwd, node_path_1.posix, "/", { ...opts, nocase }); + this.nocase = nocase; + } + parseRootPath(_dir) { + return "/"; + } + newRoot(fs3) { + return new PathPosix(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs: fs3 }); + } + isAbsolute(p) { + return p.startsWith("/"); + } + } + exports.PathScurryPosix = PathScurryPosix; + + class PathScurryDarwin extends PathScurryPosix { + constructor(cwd = process.cwd(), opts = {}) { + const { nocase = true } = opts; + super(cwd, { ...opts, nocase }); + } + } + exports.PathScurryDarwin = PathScurryDarwin; + exports.Path = process.platform === "win32" ? PathWin32 : PathPosix; + exports.PathScurry = process.platform === "win32" ? PathScurryWin32 : process.platform === "darwin" ? PathScurryDarwin : PathScurryPosix; +}); + +// node_modules/glob/dist/commonjs/pattern.js +var require_pattern = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Pattern = undefined; + var minimatch_1 = require_commonjs(); + var isPatternList = (pl) => pl.length >= 1; + var isGlobList = (gl) => gl.length >= 1; + + class Pattern { + #patternList; + #globList; + #index; + length; + #platform; + #rest; + #globString; + #isDrive; + #isUNC; + #isAbsolute; + #followGlobstar = true; + constructor(patternList, globList, index, platform) { + if (!isPatternList(patternList)) { + throw new TypeError("empty pattern list"); + } + if (!isGlobList(globList)) { + throw new TypeError("empty glob list"); + } + if (globList.length !== patternList.length) { + throw new TypeError("mismatched pattern list and glob list lengths"); + } + this.length = patternList.length; + if (index < 0 || index >= this.length) { + throw new TypeError("index out of range"); + } + this.#patternList = patternList; + this.#globList = globList; + this.#index = index; + this.#platform = platform; + if (this.#index === 0) { + if (this.isUNC()) { + const [p0, p1, p2, p3, ...prest] = this.#patternList; + const [g0, g1, g2, g3, ...grest] = this.#globList; + if (prest[0] === "") { + prest.shift(); + grest.shift(); + } + const p = [p0, p1, p2, p3, ""].join("/"); + const g = [g0, g1, g2, g3, ""].join("/"); + this.#patternList = [p, ...prest]; + this.#globList = [g, ...grest]; + this.length = this.#patternList.length; + } else if (this.isDrive() || this.isAbsolute()) { + const [p1, ...prest] = this.#patternList; + const [g1, ...grest] = this.#globList; + if (prest[0] === "") { + prest.shift(); + grest.shift(); + } + const p = p1 + "/"; + const g = g1 + "/"; + this.#patternList = [p, ...prest]; + this.#globList = [g, ...grest]; + this.length = this.#patternList.length; + } + } + } + pattern() { + return this.#patternList[this.#index]; + } + isString() { + return typeof this.#patternList[this.#index] === "string"; + } + isGlobstar() { + return this.#patternList[this.#index] === minimatch_1.GLOBSTAR; + } + isRegExp() { + return this.#patternList[this.#index] instanceof RegExp; + } + globString() { + return this.#globString = this.#globString || (this.#index === 0 ? this.isAbsolute() ? this.#globList[0] + this.#globList.slice(1).join("/") : this.#globList.join("/") : this.#globList.slice(this.#index).join("/")); + } + hasMore() { + return this.length > this.#index + 1; + } + rest() { + if (this.#rest !== undefined) + return this.#rest; + if (!this.hasMore()) + return this.#rest = null; + this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform); + this.#rest.#isAbsolute = this.#isAbsolute; + this.#rest.#isUNC = this.#isUNC; + this.#rest.#isDrive = this.#isDrive; + return this.#rest; + } + isUNC() { + const pl = this.#patternList; + return this.#isUNC !== undefined ? this.#isUNC : this.#isUNC = this.#platform === "win32" && this.#index === 0 && pl[0] === "" && pl[1] === "" && typeof pl[2] === "string" && !!pl[2] && typeof pl[3] === "string" && !!pl[3]; + } + isDrive() { + const pl = this.#patternList; + return this.#isDrive !== undefined ? this.#isDrive : this.#isDrive = this.#platform === "win32" && this.#index === 0 && this.length > 1 && typeof pl[0] === "string" && /^[a-z]:$/i.test(pl[0]); + } + isAbsolute() { + const pl = this.#patternList; + return this.#isAbsolute !== undefined ? this.#isAbsolute : this.#isAbsolute = pl[0] === "" && pl.length > 1 || this.isDrive() || this.isUNC(); + } + root() { + const p = this.#patternList[0]; + return typeof p === "string" && this.isAbsolute() && this.#index === 0 ? p : ""; + } + checkFollowGlobstar() { + return !(this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar); + } + markFollowGlobstar() { + if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar) + return false; + this.#followGlobstar = false; + return true; + } + } + exports.Pattern = Pattern; +}); + +// node_modules/glob/dist/commonjs/ignore.js +var require_ignore = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Ignore = undefined; + var minimatch_1 = require_commonjs(); + var pattern_js_1 = require_pattern(); + var defaultPlatform = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux"; + + class Ignore { + relative; + relativeChildren; + absolute; + absoluteChildren; + platform; + mmopts; + constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform }) { + this.relative = []; + this.absolute = []; + this.relativeChildren = []; + this.absoluteChildren = []; + this.platform = platform; + this.mmopts = { + dot: true, + nobrace, + nocase, + noext, + noglobstar, + optimizationLevel: 2, + platform, + nocomment: true, + nonegate: true + }; + for (const ign of ignored) + this.add(ign); + } + add(ign) { + const mm = new minimatch_1.Minimatch(ign, this.mmopts); + for (let i = 0;i < mm.set.length; i++) { + const parsed = mm.set[i]; + const globParts = mm.globParts[i]; + if (!parsed || !globParts) { + throw new Error("invalid pattern object"); + } + while (parsed[0] === "." && globParts[0] === ".") { + parsed.shift(); + globParts.shift(); + } + const p = new pattern_js_1.Pattern(parsed, globParts, 0, this.platform); + const m = new minimatch_1.Minimatch(p.globString(), this.mmopts); + const children = globParts[globParts.length - 1] === "**"; + const absolute = p.isAbsolute(); + if (absolute) + this.absolute.push(m); + else + this.relative.push(m); + if (children) { + if (absolute) + this.absoluteChildren.push(m); + else + this.relativeChildren.push(m); + } + } } - [Symbol.asyncIterator]() { - return this.iterate(); + ignored(p) { + const fullpath = p.fullpath(); + const fullpaths = `${fullpath}/`; + const relative = p.relative() || "."; + const relatives = `${relative}/`; + for (const m of this.relative) { + if (m.match(relative) || m.match(relatives)) + return true; + } + for (const m of this.absolute) { + if (m.match(fullpath) || m.match(fullpaths)) + return true; + } + return false; } - iterate(entry = this.cwd, options = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - options = entry; - entry = this.cwd; + childrenIgnored(p) { + const fullpath = p.fullpath() + "/"; + const relative = (p.relative() || ".") + "/"; + for (const m of this.relativeChildren) { + if (m.match(relative)) + return true; } - return this.stream(entry, options)[Symbol.asyncIterator](); + for (const m of this.absoluteChildren) { + if (m.match(fullpath)) + return true; + } + return false; } - [Symbol.iterator]() { - return this.iterateSync(); + } + exports.Ignore = Ignore; +}); + +// node_modules/glob/dist/commonjs/processor.js +var require_processor = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Processor = exports.SubWalks = exports.MatchRecord = exports.HasWalkedCache = undefined; + var minimatch_1 = require_commonjs(); + + class HasWalkedCache { + store; + constructor(store = new Map) { + this.store = store; } - *iterateSync(entry = this.cwd, opts = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; + copy() { + return new HasWalkedCache(new Map(this.store)); + } + hasWalked(target, pattern) { + return this.store.get(target.fullpath())?.has(pattern.globString()); + } + storeWalked(target, pattern) { + const fullpath = target.fullpath(); + const cached = this.store.get(fullpath); + if (cached) + cached.add(pattern.globString()); + else + this.store.set(fullpath, new Set([pattern.globString()])); + } + } + exports.HasWalkedCache = HasWalkedCache; + + class MatchRecord { + store = new Map; + add(target, absolute, ifDir) { + const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0); + const current = this.store.get(target); + this.store.set(target, current === undefined ? n : n & current); + } + entries() { + return [...this.store.entries()].map(([path2, n]) => [ + path2, + !!(n & 2), + !!(n & 1) + ]); + } + } + exports.MatchRecord = MatchRecord; + + class SubWalks { + store = new Map; + add(target, pattern) { + if (!target.canReaddir()) { + return; } - const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts; - if (!filter2 || filter2(entry)) { - yield withFileTypes ? entry : entry.fullpath(); + const subs = this.store.get(target); + if (subs) { + if (!subs.find((p) => p.globString() === pattern.globString())) { + subs.push(pattern); + } + } else + this.store.set(target, [pattern]); + } + get(target) { + const subs = this.store.get(target); + if (!subs) { + throw new Error("attempting to walk unknown path"); } - const dirs = new Set([entry]); - for (const dir of dirs) { - const entries = dir.readdirSync(); - for (const e of entries) { - if (!filter2 || filter2(e)) { - yield withFileTypes ? e : e.fullpath(); + return subs; + } + entries() { + return this.keys().map((k) => [k, this.store.get(k)]); + } + keys() { + return [...this.store.keys()].filter((t) => t.canReaddir()); + } + } + exports.SubWalks = SubWalks; + + class Processor { + hasWalkedCache; + matches = new MatchRecord; + subwalks = new SubWalks; + patterns; + follow; + dot; + opts; + constructor(opts, hasWalkedCache) { + this.opts = opts; + this.follow = !!opts.follow; + this.dot = !!opts.dot; + this.hasWalkedCache = hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache; + } + processPatterns(target, patterns) { + this.patterns = patterns; + const processingSet = patterns.map((p) => [target, p]); + for (let [t, pattern] of processingSet) { + this.hasWalkedCache.storeWalked(t, pattern); + const root = pattern.root(); + const absolute = pattern.isAbsolute() && this.opts.absolute !== false; + if (root) { + t = t.resolve(root === "/" && this.opts.root !== undefined ? this.opts.root : root); + const rest2 = pattern.rest(); + if (!rest2) { + this.matches.add(t, true, false); + continue; + } else { + pattern = rest2; } - let r = e; - if (e.isSymbolicLink()) { - if (!(follow && (r = e.realpathSync()))) - continue; - if (r.isUnknown()) - r.lstatSync(); + } + if (t.isENOENT()) + continue; + let p; + let rest; + let changed = false; + while (typeof (p = pattern.pattern()) === "string" && (rest = pattern.rest())) { + const c = t.resolve(p); + t = c; + pattern = rest; + changed = true; + } + p = pattern.pattern(); + rest = pattern.rest(); + if (changed) { + if (this.hasWalkedCache.hasWalked(t, pattern)) + continue; + this.hasWalkedCache.storeWalked(t, pattern); + } + if (typeof p === "string") { + const ifDir = p === ".." || p === "" || p === "."; + this.matches.add(t.resolve(p), absolute, ifDir); + continue; + } else if (p === minimatch_1.GLOBSTAR) { + if (!t.isSymbolicLink() || this.follow || pattern.checkFollowGlobstar()) { + this.subwalks.add(t, pattern); } - if (r.shouldWalk(dirs, walkFilter)) { - dirs.add(r); + const rp = rest?.pattern(); + const rrest = rest?.rest(); + if (!rest || (rp === "" || rp === ".") && !rrest) { + this.matches.add(t, absolute, rp === "" || rp === "."); + } else { + if (rp === "..") { + const tp = t.parent || t; + if (!rrest) + this.matches.add(tp, absolute, true); + else if (!this.hasWalkedCache.hasWalked(tp, rrest)) { + this.subwalks.add(tp, rrest); + } + } } + } else if (p instanceof RegExp) { + this.subwalks.add(t, pattern); } } + return this; } - stream(entry = this.cwd, opts = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; - } - const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts; - const results = new minipass_1.Minipass({ objectMode: true }); - if (!filter2 || filter2(entry)) { - results.write(withFileTypes ? entry : entry.fullpath()); - } - const dirs = new Set; - const queue = [entry]; - let processing = 0; - const process11 = () => { - let paused = false; - while (!paused) { - const dir = queue.shift(); - if (!dir) { - if (processing === 0) - results.end(); - return; + subwalkTargets() { + return this.subwalks.keys(); + } + child() { + return new Processor(this.opts, this.hasWalkedCache); + } + filterEntries(parent, entries) { + const patterns = this.subwalks.get(parent); + const results = this.child(); + for (const e of entries) { + for (const pattern of patterns) { + const absolute = pattern.isAbsolute(); + const p = pattern.pattern(); + const rest = pattern.rest(); + if (p === minimatch_1.GLOBSTAR) { + results.testGlobstar(e, pattern, rest, absolute); + } else if (p instanceof RegExp) { + results.testRegExp(e, p, rest, absolute); + } else { + results.testString(e, p, rest, absolute); } - processing++; - dirs.add(dir); - const onReaddir = (er, entries, didRealpaths = false) => { - if (er) - return results.emit("error", er); - if (follow && !didRealpaths) { - const promises = []; - for (const e of entries) { - if (e.isSymbolicLink()) { - promises.push(e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r)); - } - } - if (promises.length) { - Promise.all(promises).then(() => onReaddir(null, entries, true)); - return; - } - } - for (const e of entries) { - if (e && (!filter2 || filter2(e))) { - if (!results.write(withFileTypes ? e : e.fullpath())) { - paused = true; - } - } - } - processing--; - for (const e of entries) { - const r = e.realpathCached() || e; - if (r.shouldWalk(dirs, walkFilter)) { - queue.push(r); - } - } - if (paused && !results.flowing) { - results.once("drain", process11); - } else if (!sync) { - process11(); - } - }; - let sync = true; - dir.readdirCB(onReaddir, true); - sync = false; } - }; - process11(); + } return results; } - streamSync(entry = this.cwd, opts = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; - } - const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts; - const results = new minipass_1.Minipass({ objectMode: true }); - const dirs = new Set; - if (!filter2 || filter2(entry)) { - results.write(withFileTypes ? entry : entry.fullpath()); - } - const queue = [entry]; - let processing = 0; - const process11 = () => { - let paused = false; - while (!paused) { - const dir = queue.shift(); - if (!dir) { - if (processing === 0) - results.end(); - return; - } - processing++; - dirs.add(dir); - const entries = dir.readdirSync(); - for (const e of entries) { - if (!filter2 || filter2(e)) { - if (!results.write(withFileTypes ? e : e.fullpath())) { - paused = true; - } - } - } - processing--; - for (const e of entries) { - let r = e; - if (e.isSymbolicLink()) { - if (!(follow && (r = e.realpathSync()))) - continue; - if (r.isUnknown()) - r.lstatSync(); - } - if (r.shouldWalk(dirs, walkFilter)) { - queue.push(r); + testGlobstar(e, pattern, rest, absolute) { + if (this.dot || !e.name.startsWith(".")) { + if (!pattern.hasMore()) { + this.matches.add(e, absolute, false); + } + if (e.canReaddir()) { + if (this.follow || !e.isSymbolicLink()) { + this.subwalks.add(e, pattern); + } else if (e.isSymbolicLink()) { + if (rest && pattern.checkFollowGlobstar()) { + this.subwalks.add(e, rest); + } else if (pattern.markFollowGlobstar()) { + this.subwalks.add(e, pattern); } } } - if (paused && !results.flowing) - results.once("drain", process11); - }; - process11(); - return results; + } + if (rest) { + const rp = rest.pattern(); + if (typeof rp === "string" && rp !== ".." && rp !== "" && rp !== ".") { + this.testString(e, rp, rest.rest(), absolute); + } else if (rp === "..") { + const ep = e.parent || e; + this.subwalks.add(ep, rest); + } else if (rp instanceof RegExp) { + this.testRegExp(e, rp, rest.rest(), absolute); + } + } } - chdir(path3 = this.cwd) { - const oldCwd = this.cwd; - this.cwd = typeof path3 === "string" ? this.cwd.resolve(path3) : path3; - this.cwd[setAsCwd](oldCwd); + testRegExp(e, p, rest, absolute) { + if (!p.test(e.name)) + return; + if (!rest) { + this.matches.add(e, absolute, false); + } else { + this.subwalks.add(e, rest); + } + } + testString(e, p, rest, absolute) { + if (!e.isNamed(p)) + return; + if (!rest) { + this.matches.add(e, absolute, false); + } else { + this.subwalks.add(e, rest); + } } } - exports.PathScurryBase = PathScurryBase; + exports.Processor = Processor; +}); - class PathScurryWin32 extends PathScurryBase { - sep = "\\"; - constructor(cwd = process.cwd(), opts = {}) { - const { nocase = true } = opts; - super(cwd, node_path_1.win32, "\\", { ...opts, nocase }); - this.nocase = nocase; - for (let p = this.cwd;p; p = p.parent) { - p.nocase = this.nocase; +// node_modules/glob/dist/commonjs/walker.js +var require_walker = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.GlobStream = exports.GlobWalker = exports.GlobUtil = undefined; + var minipass_1 = require_commonjs3(); + var ignore_js_1 = require_ignore(); + var processor_js_1 = require_processor(); + var makeIgnore = (ignore, opts) => typeof ignore === "string" ? new ignore_js_1.Ignore([ignore], opts) : Array.isArray(ignore) ? new ignore_js_1.Ignore(ignore, opts) : ignore; + + class GlobUtil { + path; + patterns; + opts; + seen = new Set; + paused = false; + aborted = false; + #onResume = []; + #ignore; + #sep; + signal; + maxDepth; + includeChildMatches; + constructor(patterns, path2, opts) { + this.patterns = patterns; + this.path = path2; + this.opts = opts; + this.#sep = !opts.posix && opts.platform === "win32" ? "\\" : "/"; + this.includeChildMatches = opts.includeChildMatches !== false; + if (opts.ignore || !this.includeChildMatches) { + this.#ignore = makeIgnore(opts.ignore ?? [], opts); + if (!this.includeChildMatches && typeof this.#ignore.add !== "function") { + const m = "cannot ignore child matches, ignore lacks add() method."; + throw new Error(m); + } + } + this.maxDepth = opts.maxDepth || Infinity; + if (opts.signal) { + this.signal = opts.signal; + this.signal.addEventListener("abort", () => { + this.#onResume.length = 0; + }); } } - parseRootPath(dir) { - return node_path_1.win32.parse(dir).root.toUpperCase(); + #ignored(path2) { + return this.seen.has(path2) || !!this.#ignore?.ignored?.(path2); } - newRoot(fs3) { - return new PathWin32(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs: fs3 }); + #childrenIgnored(path2) { + return !!this.#ignore?.childrenIgnored?.(path2); } - isAbsolute(p) { - return p.startsWith("/") || p.startsWith("\\") || /^[a-z]:(\/|\\)/i.test(p); + pause() { + this.paused = true; } - } - exports.PathScurryWin32 = PathScurryWin32; - - class PathScurryPosix extends PathScurryBase { - sep = "/"; - constructor(cwd = process.cwd(), opts = {}) { - const { nocase = false } = opts; - super(cwd, node_path_1.posix, "/", { ...opts, nocase }); - this.nocase = nocase; + resume() { + if (this.signal?.aborted) + return; + this.paused = false; + let fn = undefined; + while (!this.paused && (fn = this.#onResume.shift())) { + fn(); + } + } + onResume(fn) { + if (this.signal?.aborted) + return; + if (!this.paused) { + fn(); + } else { + this.#onResume.push(fn); + } + } + async matchCheck(e, ifDir) { + if (ifDir && this.opts.nodir) + return; + let rpc; + if (this.opts.realpath) { + rpc = e.realpathCached() || await e.realpath(); + if (!rpc) + return; + e = rpc; + } + const needStat = e.isUnknown() || this.opts.stat; + const s = needStat ? await e.lstat() : e; + if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) { + const target = await s.realpath(); + if (target && (target.isUnknown() || this.opts.stat)) { + await target.lstat(); + } + } + return this.matchCheckTest(s, ifDir); + } + matchCheckTest(e, ifDir) { + return e && (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && (!ifDir || e.canReaddir()) && (!this.opts.nodir || !e.isDirectory()) && (!this.opts.nodir || !this.opts.follow || !e.isSymbolicLink() || !e.realpathCached()?.isDirectory()) && !this.#ignored(e) ? e : undefined; + } + matchCheckSync(e, ifDir) { + if (ifDir && this.opts.nodir) + return; + let rpc; + if (this.opts.realpath) { + rpc = e.realpathCached() || e.realpathSync(); + if (!rpc) + return; + e = rpc; + } + const needStat = e.isUnknown() || this.opts.stat; + const s = needStat ? e.lstatSync() : e; + if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) { + const target = s.realpathSync(); + if (target && (target?.isUnknown() || this.opts.stat)) { + target.lstatSync(); + } + } + return this.matchCheckTest(s, ifDir); } - parseRootPath(_dir) { - return "/"; + matchFinish(e, absolute) { + if (this.#ignored(e)) + return; + if (!this.includeChildMatches && this.#ignore?.add) { + const ign = `${e.relativePosix()}/**`; + this.#ignore.add(ign); + } + const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute; + this.seen.add(e); + const mark = this.opts.mark && e.isDirectory() ? this.#sep : ""; + if (this.opts.withFileTypes) { + this.matchEmit(e); + } else if (abs) { + const abs2 = this.opts.posix ? e.fullpathPosix() : e.fullpath(); + this.matchEmit(abs2 + mark); + } else { + const rel = this.opts.posix ? e.relativePosix() : e.relative(); + const pre = this.opts.dotRelative && !rel.startsWith(".." + this.#sep) ? "." + this.#sep : ""; + this.matchEmit(!rel ? "." + mark : pre + rel + mark); + } } - newRoot(fs3) { - return new PathPosix(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs: fs3 }); + async match(e, absolute, ifDir) { + const p = await this.matchCheck(e, ifDir); + if (p) + this.matchFinish(p, absolute); } - isAbsolute(p) { - return p.startsWith("/"); + matchSync(e, absolute, ifDir) { + const p = this.matchCheckSync(e, ifDir); + if (p) + this.matchFinish(p, absolute); } - } - exports.PathScurryPosix = PathScurryPosix; - - class PathScurryDarwin extends PathScurryPosix { - constructor(cwd = process.cwd(), opts = {}) { - const { nocase = true } = opts; - super(cwd, { ...opts, nocase }); + walkCB(target, patterns, cb) { + if (this.signal?.aborted) + cb(); + this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb); } - } - exports.PathScurryDarwin = PathScurryDarwin; - exports.Path = process.platform === "win32" ? PathWin32 : PathPosix; - exports.PathScurry = process.platform === "win32" ? PathScurryWin32 : process.platform === "darwin" ? PathScurryDarwin : PathScurryPosix; -}); - -// node_modules/glob/dist/commonjs/pattern.js -var require_pattern = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Pattern = undefined; - var minimatch_1 = require_commonjs(); - var isPatternList = (pl) => pl.length >= 1; - var isGlobList = (gl) => gl.length >= 1; - - class Pattern { - #patternList; - #globList; - #index; - length; - #platform; - #rest; - #globString; - #isDrive; - #isUNC; - #isAbsolute; - #followGlobstar = true; - constructor(patternList, globList, index, platform) { - if (!isPatternList(patternList)) { - throw new TypeError("empty pattern list"); - } - if (!isGlobList(globList)) { - throw new TypeError("empty glob list"); - } - if (globList.length !== patternList.length) { - throw new TypeError("mismatched pattern list and glob list lengths"); + walkCB2(target, patterns, processor, cb) { + if (this.#childrenIgnored(target)) + return cb(); + if (this.signal?.aborted) + cb(); + if (this.paused) { + this.onResume(() => this.walkCB2(target, patterns, processor, cb)); + return; } - this.length = patternList.length; - if (index < 0 || index >= this.length) { - throw new TypeError("index out of range"); + processor.processPatterns(target, patterns); + let tasks = 1; + const next = () => { + if (--tasks === 0) + cb(); + }; + for (const [m, absolute, ifDir] of processor.matches.entries()) { + if (this.#ignored(m)) + continue; + tasks++; + this.match(m, absolute, ifDir).then(() => next()); } - this.#patternList = patternList; - this.#globList = globList; - this.#index = index; - this.#platform = platform; - if (this.#index === 0) { - if (this.isUNC()) { - const [p0, p1, p2, p3, ...prest] = this.#patternList; - const [g0, g1, g2, g3, ...grest] = this.#globList; - if (prest[0] === "") { - prest.shift(); - grest.shift(); - } - const p = [p0, p1, p2, p3, ""].join("/"); - const g = [g0, g1, g2, g3, ""].join("/"); - this.#patternList = [p, ...prest]; - this.#globList = [g, ...grest]; - this.length = this.#patternList.length; - } else if (this.isDrive() || this.isAbsolute()) { - const [p1, ...prest] = this.#patternList; - const [g1, ...grest] = this.#globList; - if (prest[0] === "") { - prest.shift(); - grest.shift(); - } - const p = p1 + "/"; - const g = g1 + "/"; - this.#patternList = [p, ...prest]; - this.#globList = [g, ...grest]; - this.length = this.#patternList.length; + for (const t of processor.subwalkTargets()) { + if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { + continue; + } + tasks++; + const childrenCached = t.readdirCached(); + if (t.calledReaddir()) + this.walkCB3(t, childrenCached, processor, next); + else { + t.readdirCB((_3, entries) => this.walkCB3(t, entries, processor, next), true); } } + next(); } - pattern() { - return this.#patternList[this.#index]; - } - isString() { - return typeof this.#patternList[this.#index] === "string"; + walkCB3(target, entries, processor, cb) { + processor = processor.filterEntries(target, entries); + let tasks = 1; + const next = () => { + if (--tasks === 0) + cb(); + }; + for (const [m, absolute, ifDir] of processor.matches.entries()) { + if (this.#ignored(m)) + continue; + tasks++; + this.match(m, absolute, ifDir).then(() => next()); + } + for (const [target2, patterns] of processor.subwalks.entries()) { + tasks++; + this.walkCB2(target2, patterns, processor.child(), next); + } + next(); } - isGlobstar() { - return this.#patternList[this.#index] === minimatch_1.GLOBSTAR; + walkCBSync(target, patterns, cb) { + if (this.signal?.aborted) + cb(); + this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb); } - isRegExp() { - return this.#patternList[this.#index] instanceof RegExp; + walkCB2Sync(target, patterns, processor, cb) { + if (this.#childrenIgnored(target)) + return cb(); + if (this.signal?.aborted) + cb(); + if (this.paused) { + this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb)); + return; + } + processor.processPatterns(target, patterns); + let tasks = 1; + const next = () => { + if (--tasks === 0) + cb(); + }; + for (const [m, absolute, ifDir] of processor.matches.entries()) { + if (this.#ignored(m)) + continue; + this.matchSync(m, absolute, ifDir); + } + for (const t of processor.subwalkTargets()) { + if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { + continue; + } + tasks++; + const children = t.readdirSync(); + this.walkCB3Sync(t, children, processor, next); + } + next(); } - globString() { - return this.#globString = this.#globString || (this.#index === 0 ? this.isAbsolute() ? this.#globList[0] + this.#globList.slice(1).join("/") : this.#globList.join("/") : this.#globList.slice(this.#index).join("/")); + walkCB3Sync(target, entries, processor, cb) { + processor = processor.filterEntries(target, entries); + let tasks = 1; + const next = () => { + if (--tasks === 0) + cb(); + }; + for (const [m, absolute, ifDir] of processor.matches.entries()) { + if (this.#ignored(m)) + continue; + this.matchSync(m, absolute, ifDir); + } + for (const [target2, patterns] of processor.subwalks.entries()) { + tasks++; + this.walkCB2Sync(target2, patterns, processor.child(), next); + } + next(); } - hasMore() { - return this.length > this.#index + 1; + } + exports.GlobUtil = GlobUtil; + + class GlobWalker extends GlobUtil { + matches = new Set; + constructor(patterns, path2, opts) { + super(patterns, path2, opts); } - rest() { - if (this.#rest !== undefined) - return this.#rest; - if (!this.hasMore()) - return this.#rest = null; - this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform); - this.#rest.#isAbsolute = this.#isAbsolute; - this.#rest.#isUNC = this.#isUNC; - this.#rest.#isDrive = this.#isDrive; - return this.#rest; + matchEmit(e) { + this.matches.add(e); } - isUNC() { - const pl = this.#patternList; - return this.#isUNC !== undefined ? this.#isUNC : this.#isUNC = this.#platform === "win32" && this.#index === 0 && pl[0] === "" && pl[1] === "" && typeof pl[2] === "string" && !!pl[2] && typeof pl[3] === "string" && !!pl[3]; + async walk() { + if (this.signal?.aborted) + throw this.signal.reason; + if (this.path.isUnknown()) { + await this.path.lstat(); + } + await new Promise((res, rej) => { + this.walkCB(this.path, this.patterns, () => { + if (this.signal?.aborted) { + rej(this.signal.reason); + } else { + res(this.matches); + } + }); + }); + return this.matches; } - isDrive() { - const pl = this.#patternList; - return this.#isDrive !== undefined ? this.#isDrive : this.#isDrive = this.#platform === "win32" && this.#index === 0 && this.length > 1 && typeof pl[0] === "string" && /^[a-z]:$/i.test(pl[0]); + walkSync() { + if (this.signal?.aborted) + throw this.signal.reason; + if (this.path.isUnknown()) { + this.path.lstatSync(); + } + this.walkCBSync(this.path, this.patterns, () => { + if (this.signal?.aborted) + throw this.signal.reason; + }); + return this.matches; } - isAbsolute() { - const pl = this.#patternList; - return this.#isAbsolute !== undefined ? this.#isAbsolute : this.#isAbsolute = pl[0] === "" && pl.length > 1 || this.isDrive() || this.isUNC(); + } + exports.GlobWalker = GlobWalker; + + class GlobStream extends GlobUtil { + results; + constructor(patterns, path2, opts) { + super(patterns, path2, opts); + this.results = new minipass_1.Minipass({ + signal: this.signal, + objectMode: true + }); + this.results.on("drain", () => this.resume()); + this.results.on("resume", () => this.resume()); } - root() { - const p = this.#patternList[0]; - return typeof p === "string" && this.isAbsolute() && this.#index === 0 ? p : ""; + matchEmit(e) { + this.results.write(e); + if (!this.results.flowing) + this.pause(); } - checkFollowGlobstar() { - return !(this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar); + stream() { + const target = this.path; + if (target.isUnknown()) { + target.lstat().then(() => { + this.walkCB(target, this.patterns, () => this.results.end()); + }); + } else { + this.walkCB(target, this.patterns, () => this.results.end()); + } + return this.results; } - markFollowGlobstar() { - if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar) - return false; - this.#followGlobstar = false; - return true; + streamSync() { + if (this.path.isUnknown()) { + this.path.lstatSync(); + } + this.walkCBSync(this.path, this.patterns, () => this.results.end()); + return this.results; } } - exports.Pattern = Pattern; + exports.GlobStream = GlobStream; }); -// node_modules/glob/dist/commonjs/ignore.js -var require_ignore = __commonJS((exports) => { +// node_modules/glob/dist/commonjs/glob.js +var require_glob = __commonJS((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); - exports.Ignore = undefined; + exports.Glob = undefined; var minimatch_1 = require_commonjs(); + var node_url_1 = __require("node:url"); + var path_scurry_1 = require_commonjs4(); var pattern_js_1 = require_pattern(); + var walker_js_1 = require_walker(); var defaultPlatform = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux"; - class Ignore { - relative; - relativeChildren; + class Glob { absolute; - absoluteChildren; + cwd; + root; + dot; + dotRelative; + follow; + ignore; + magicalBraces; + mark; + matchBase; + maxDepth; + nobrace; + nocase; + nodir; + noext; + noglobstar; + pattern; platform; - mmopts; - constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform }) { - this.relative = []; - this.absolute = []; - this.relativeChildren = []; - this.absoluteChildren = []; - this.platform = platform; - this.mmopts = { - dot: true, - nobrace, - nocase, - noext, - noglobstar, - optimizationLevel: 2, - platform, - nocomment: true, - nonegate: true - }; - for (const ign of ignored) - this.add(ign); - } - add(ign) { - const mm = new minimatch_1.Minimatch(ign, this.mmopts); - for (let i = 0;i < mm.set.length; i++) { - const parsed = mm.set[i]; - const globParts = mm.globParts[i]; - if (!parsed || !globParts) { - throw new Error("invalid pattern object"); - } - while (parsed[0] === "." && globParts[0] === ".") { - parsed.shift(); - globParts.shift(); + realpath; + scurry; + stat; + signal; + windowsPathsNoEscape; + withFileTypes; + includeChildMatches; + opts; + patterns; + constructor(pattern, opts) { + if (!opts) + throw new TypeError("glob options required"); + this.withFileTypes = !!opts.withFileTypes; + this.signal = opts.signal; + this.follow = !!opts.follow; + this.dot = !!opts.dot; + this.dotRelative = !!opts.dotRelative; + this.nodir = !!opts.nodir; + this.mark = !!opts.mark; + if (!opts.cwd) { + this.cwd = ""; + } else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) { + opts.cwd = (0, node_url_1.fileURLToPath)(opts.cwd); + } + this.cwd = opts.cwd || ""; + this.root = opts.root; + this.magicalBraces = !!opts.magicalBraces; + this.nobrace = !!opts.nobrace; + this.noext = !!opts.noext; + this.realpath = !!opts.realpath; + this.absolute = opts.absolute; + this.includeChildMatches = opts.includeChildMatches !== false; + this.noglobstar = !!opts.noglobstar; + this.matchBase = !!opts.matchBase; + this.maxDepth = typeof opts.maxDepth === "number" ? opts.maxDepth : Infinity; + this.stat = !!opts.stat; + this.ignore = opts.ignore; + if (this.withFileTypes && this.absolute !== undefined) { + throw new Error("cannot set absolute and withFileTypes:true"); + } + if (typeof pattern === "string") { + pattern = [pattern]; + } + this.windowsPathsNoEscape = !!opts.windowsPathsNoEscape || opts.allowWindowsEscape === false; + if (this.windowsPathsNoEscape) { + pattern = pattern.map((p) => p.replace(/\\/g, "/")); + } + if (this.matchBase) { + if (opts.noglobstar) { + throw new TypeError("base matching requires globstar"); } - const p = new pattern_js_1.Pattern(parsed, globParts, 0, this.platform); - const m = new minimatch_1.Minimatch(p.globString(), this.mmopts); - const children = globParts[globParts.length - 1] === "**"; - const absolute = p.isAbsolute(); - if (absolute) - this.absolute.push(m); - else - this.relative.push(m); - if (children) { - if (absolute) - this.absoluteChildren.push(m); - else - this.relativeChildren.push(m); + pattern = pattern.map((p) => p.includes("/") ? p : `./**/${p}`); + } + this.pattern = pattern; + this.platform = opts.platform || defaultPlatform; + this.opts = { ...opts, platform: this.platform }; + if (opts.scurry) { + this.scurry = opts.scurry; + if (opts.nocase !== undefined && opts.nocase !== opts.scurry.nocase) { + throw new Error("nocase option contradicts provided scurry option"); } + } else { + const Scurry = opts.platform === "win32" ? path_scurry_1.PathScurryWin32 : opts.platform === "darwin" ? path_scurry_1.PathScurryDarwin : opts.platform ? path_scurry_1.PathScurryPosix : path_scurry_1.PathScurry; + this.scurry = new Scurry(this.cwd, { + nocase: opts.nocase, + fs: opts.fs + }); } + this.nocase = this.scurry.nocase; + const nocaseMagicOnly = this.platform === "darwin" || this.platform === "win32"; + const mmo = { + ...opts, + dot: this.dot, + matchBase: this.matchBase, + nobrace: this.nobrace, + nocase: this.nocase, + nocaseMagicOnly, + nocomment: true, + noext: this.noext, + nonegate: true, + optimizationLevel: 2, + platform: this.platform, + windowsPathsNoEscape: this.windowsPathsNoEscape, + debug: !!this.opts.debug + }; + const mms = this.pattern.map((p) => new minimatch_1.Minimatch(p, mmo)); + const [matchSet, globParts] = mms.reduce((set, m) => { + set[0].push(...m.set); + set[1].push(...m.globParts); + return set; + }, [[], []]); + this.patterns = matchSet.map((set, i) => { + const g = globParts[i]; + if (!g) + throw new Error("invalid pattern object"); + return new pattern_js_1.Pattern(set, g, 0, this.platform); + }); + } + async walk() { + return [ + ...await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { + ...this.opts, + maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, + platform: this.platform, + nocase: this.nocase, + includeChildMatches: this.includeChildMatches + }).walk() + ]; + } + walkSync() { + return [ + ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { + ...this.opts, + maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, + platform: this.platform, + nocase: this.nocase, + includeChildMatches: this.includeChildMatches + }).walkSync() + ]; } - ignored(p) { - const fullpath = p.fullpath(); - const fullpaths = `${fullpath}/`; - const relative = p.relative() || "."; - const relatives = `${relative}/`; - for (const m of this.relative) { - if (m.match(relative) || m.match(relatives)) - return true; - } - for (const m of this.absolute) { - if (m.match(fullpath) || m.match(fullpaths)) - return true; - } - return false; + stream() { + return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { + ...this.opts, + maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, + platform: this.platform, + nocase: this.nocase, + includeChildMatches: this.includeChildMatches + }).stream(); } - childrenIgnored(p) { - const fullpath = p.fullpath() + "/"; - const relative = (p.relative() || ".") + "/"; - for (const m of this.relativeChildren) { - if (m.match(relative)) - return true; - } - for (const m of this.absoluteChildren) { - if (m.match(fullpath)) - return true; - } - return false; + streamSync() { + return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { + ...this.opts, + maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, + platform: this.platform, + nocase: this.nocase, + includeChildMatches: this.includeChildMatches + }).streamSync(); } - } - exports.Ignore = Ignore; -}); - -// node_modules/glob/dist/commonjs/processor.js -var require_processor = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Processor = exports.SubWalks = exports.MatchRecord = exports.HasWalkedCache = undefined; - var minimatch_1 = require_commonjs(); - - class HasWalkedCache { - store; - constructor(store = new Map) { - this.store = store; + iterateSync() { + return this.streamSync()[Symbol.iterator](); } - copy() { - return new HasWalkedCache(new Map(this.store)); + [Symbol.iterator]() { + return this.iterateSync(); } - hasWalked(target, pattern) { - return this.store.get(target.fullpath())?.has(pattern.globString()); + iterate() { + return this.stream()[Symbol.asyncIterator](); } - storeWalked(target, pattern) { - const fullpath = target.fullpath(); - const cached = this.store.get(fullpath); - if (cached) - cached.add(pattern.globString()); - else - this.store.set(fullpath, new Set([pattern.globString()])); + [Symbol.asyncIterator]() { + return this.iterate(); } } - exports.HasWalkedCache = HasWalkedCache; + exports.Glob = Glob; +}); - class MatchRecord { - store = new Map; - add(target, absolute, ifDir) { - const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0); - const current = this.store.get(target); - this.store.set(target, current === undefined ? n : n & current); +// node_modules/glob/dist/commonjs/has-magic.js +var require_has_magic = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.hasMagic = undefined; + var minimatch_1 = require_commonjs(); + var hasMagic = (pattern, options = {}) => { + if (!Array.isArray(pattern)) { + pattern = [pattern]; } - entries() { - return [...this.store.entries()].map(([path3, n]) => [ - path3, - !!(n & 2), - !!(n & 1) - ]); + for (const p of pattern) { + if (new minimatch_1.Minimatch(p, options).hasMagic()) + return true; } + return false; + }; + exports.hasMagic = hasMagic; +}); + +// node_modules/glob/dist/commonjs/index.js +var require_commonjs5 = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.glob = exports.sync = exports.iterate = exports.iterateSync = exports.stream = exports.streamSync = exports.Ignore = exports.hasMagic = exports.Glob = exports.unescape = exports.escape = undefined; + exports.globStreamSync = globStreamSync; + exports.globStream = globStream; + exports.globSync = globSync; + exports.globIterateSync = globIterateSync; + exports.globIterate = globIterate; + var minimatch_1 = require_commonjs(); + var glob_js_1 = require_glob(); + var has_magic_js_1 = require_has_magic(); + var minimatch_2 = require_commonjs(); + Object.defineProperty(exports, "escape", { enumerable: true, get: function() { + return minimatch_2.escape; + } }); + Object.defineProperty(exports, "unescape", { enumerable: true, get: function() { + return minimatch_2.unescape; + } }); + var glob_js_2 = require_glob(); + Object.defineProperty(exports, "Glob", { enumerable: true, get: function() { + return glob_js_2.Glob; + } }); + var has_magic_js_2 = require_has_magic(); + Object.defineProperty(exports, "hasMagic", { enumerable: true, get: function() { + return has_magic_js_2.hasMagic; + } }); + var ignore_js_1 = require_ignore(); + Object.defineProperty(exports, "Ignore", { enumerable: true, get: function() { + return ignore_js_1.Ignore; + } }); + function globStreamSync(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).streamSync(); } - exports.MatchRecord = MatchRecord; + function globStream(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).stream(); + } + function globSync(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).walkSync(); + } + async function glob_(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).walk(); + } + function globIterateSync(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).iterateSync(); + } + function globIterate(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).iterate(); + } + exports.streamSync = globStreamSync; + exports.stream = Object.assign(globStream, { sync: globStreamSync }); + exports.iterateSync = globIterateSync; + exports.iterate = Object.assign(globIterate, { + sync: globIterateSync + }); + exports.sync = Object.assign(globSync, { + stream: globStreamSync, + iterate: globIterateSync + }); + exports.glob = Object.assign(glob_, { + glob: glob_, + globSync, + sync: exports.sync, + globStream, + stream: exports.stream, + globStreamSync, + streamSync: exports.streamSync, + globIterate, + iterate: exports.iterate, + globIterateSync, + iterateSync: exports.iterateSync, + Glob: glob_js_1.Glob, + hasMagic: has_magic_js_1.hasMagic, + escape: minimatch_1.escape, + unescape: minimatch_1.unescape + }); + exports.glob.glob = exports.glob; +}); - class SubWalks { - store = new Map; - add(target, pattern) { - if (!target.canReaddir()) { - return; +// node_modules/archiver-utils/file.js +var require_file = __commonJS((exports, module) => { + var fs3 = require_graceful_fs(); + var path2 = __require("path"); + var flatten = require_flatten(); + var difference = require_difference(); + var union = require_union(); + var isPlainObject2 = require_isPlainObject(); + var glob = require_commonjs5(); + var file = module.exports = {}; + var pathSeparatorRe = /[\/\\]/g; + var processPatterns = function(patterns, fn) { + var result = []; + flatten(patterns).forEach(function(pattern) { + var exclusion = pattern.indexOf("!") === 0; + if (exclusion) { + pattern = pattern.slice(1); } - const subs = this.store.get(target); - if (subs) { - if (!subs.find((p) => p.globString() === pattern.globString())) { - subs.push(pattern); - } - } else - this.store.set(target, [pattern]); - } - get(target) { - const subs = this.store.get(target); - if (!subs) { - throw new Error("attempting to walk unknown path"); + var matches = fn(pattern); + if (exclusion) { + result = difference(result, matches); + } else { + result = union(result, matches); } - return subs; - } - entries() { - return this.keys().map((k) => [k, this.store.get(k)]); - } - keys() { - return [...this.store.keys()].filter((t) => t.canReaddir()); - } - } - exports.SubWalks = SubWalks; - - class Processor { - hasWalkedCache; - matches = new MatchRecord; - subwalks = new SubWalks; - patterns; - follow; - dot; - opts; - constructor(opts, hasWalkedCache) { - this.opts = opts; - this.follow = !!opts.follow; - this.dot = !!opts.dot; - this.hasWalkedCache = hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache; + }); + return result; + }; + file.exists = function() { + var filepath = path2.join.apply(path2, arguments); + return fs3.existsSync(filepath); + }; + file.expand = function(...args) { + var options = isPlainObject2(args[0]) ? args.shift() : {}; + var patterns = Array.isArray(args[0]) ? args[0] : args; + if (patterns.length === 0) { + return []; } - processPatterns(target, patterns) { - this.patterns = patterns; - const processingSet = patterns.map((p) => [target, p]); - for (let [t, pattern] of processingSet) { - this.hasWalkedCache.storeWalked(t, pattern); - const root = pattern.root(); - const absolute = pattern.isAbsolute() && this.opts.absolute !== false; - if (root) { - t = t.resolve(root === "/" && this.opts.root !== undefined ? this.opts.root : root); - const rest2 = pattern.rest(); - if (!rest2) { - this.matches.add(t, true, false); - continue; - } else { - pattern = rest2; - } - } - if (t.isENOENT()) - continue; - let p; - let rest; - let changed = false; - while (typeof (p = pattern.pattern()) === "string" && (rest = pattern.rest())) { - const c = t.resolve(p); - t = c; - pattern = rest; - changed = true; - } - p = pattern.pattern(); - rest = pattern.rest(); - if (changed) { - if (this.hasWalkedCache.hasWalked(t, pattern)) - continue; - this.hasWalkedCache.storeWalked(t, pattern); - } - if (typeof p === "string") { - const ifDir = p === ".." || p === "" || p === "."; - this.matches.add(t.resolve(p), absolute, ifDir); - continue; - } else if (p === minimatch_1.GLOBSTAR) { - if (!t.isSymbolicLink() || this.follow || pattern.checkFollowGlobstar()) { - this.subwalks.add(t, pattern); - } - const rp = rest?.pattern(); - const rrest = rest?.rest(); - if (!rest || (rp === "" || rp === ".") && !rrest) { - this.matches.add(t, absolute, rp === "" || rp === "."); + var matches = processPatterns(patterns, function(pattern) { + return glob.sync(pattern, options); + }); + if (options.filter) { + matches = matches.filter(function(filepath) { + filepath = path2.join(options.cwd || "", filepath); + try { + if (typeof options.filter === "function") { + return options.filter(filepath); } else { - if (rp === "..") { - const tp = t.parent || t; - if (!rrest) - this.matches.add(tp, absolute, true); - else if (!this.hasWalkedCache.hasWalked(tp, rrest)) { - this.subwalks.add(tp, rrest); - } - } + return fs3.statSync(filepath)[options.filter](); } - } else if (p instanceof RegExp) { - this.subwalks.add(t, pattern); + } catch (e) { + return false; } - } - return this; - } - subwalkTargets() { - return this.subwalks.keys(); - } - child() { - return new Processor(this.opts, this.hasWalkedCache); + }); } - filterEntries(parent, entries) { - const patterns = this.subwalks.get(parent); - const results = this.child(); - for (const e of entries) { - for (const pattern of patterns) { - const absolute = pattern.isAbsolute(); - const p = pattern.pattern(); - const rest = pattern.rest(); - if (p === minimatch_1.GLOBSTAR) { - results.testGlobstar(e, pattern, rest, absolute); - } else if (p instanceof RegExp) { - results.testRegExp(e, p, rest, absolute); - } else { - results.testString(e, p, rest, absolute); - } - } + return matches; + }; + file.expandMapping = function(patterns, destBase, options) { + options = Object.assign({ + rename: function(destBase2, destPath) { + return path2.join(destBase2 || "", destPath); } - return results; + }, options); + var files = []; + var fileByDest = {}; + file.expand(options, patterns).forEach(function(src) { + var destPath = src; + if (options.flatten) { + destPath = path2.basename(destPath); + } + if (options.ext) { + destPath = destPath.replace(/(\.[^\/]*)?$/, options.ext); + } + var dest = options.rename(destBase, destPath, options); + if (options.cwd) { + src = path2.join(options.cwd, src); + } + dest = dest.replace(pathSeparatorRe, "/"); + src = src.replace(pathSeparatorRe, "/"); + if (fileByDest[dest]) { + fileByDest[dest].src.push(src); + } else { + files.push({ + src: [src], + dest + }); + fileByDest[dest] = files[files.length - 1]; + } + }); + return files; + }; + file.normalizeFilesArray = function(data) { + var files = []; + data.forEach(function(obj) { + var prop; + if ("src" in obj || "dest" in obj) { + files.push(obj); + } + }); + if (files.length === 0) { + return []; } - testGlobstar(e, pattern, rest, absolute) { - if (this.dot || !e.name.startsWith(".")) { - if (!pattern.hasMore()) { - this.matches.add(e, absolute, false); - } - if (e.canReaddir()) { - if (this.follow || !e.isSymbolicLink()) { - this.subwalks.add(e, pattern); - } else if (e.isSymbolicLink()) { - if (rest && pattern.checkFollowGlobstar()) { - this.subwalks.add(e, rest); - } else if (pattern.markFollowGlobstar()) { - this.subwalks.add(e, pattern); + files = _(files).chain().forEach(function(obj) { + if (!("src" in obj) || !obj.src) { + return; + } + if (Array.isArray(obj.src)) { + obj.src = flatten(obj.src); + } else { + obj.src = [obj.src]; + } + }).map(function(obj) { + var expandOptions = Object.assign({}, obj); + delete expandOptions.src; + delete expandOptions.dest; + if (obj.expand) { + return file.expandMapping(obj.src, obj.dest, expandOptions).map(function(mapObj) { + var result2 = Object.assign({}, obj); + result2.orig = Object.assign({}, obj); + result2.src = mapObj.src; + result2.dest = mapObj.dest; + ["expand", "cwd", "flatten", "rename", "ext"].forEach(function(prop) { + delete result2[prop]; + }); + return result2; + }); + } + var result = Object.assign({}, obj); + result.orig = Object.assign({}, obj); + if ("src" in result) { + Object.defineProperty(result, "src", { + enumerable: true, + get: function fn() { + var src; + if (!("result" in fn)) { + src = obj.src; + src = Array.isArray(src) ? flatten(src) : [src]; + fn.result = file.expand(expandOptions, src); } + return fn.result; } - } + }); } - if (rest) { - const rp = rest.pattern(); - if (typeof rp === "string" && rp !== ".." && rp !== "" && rp !== ".") { - this.testString(e, rp, rest.rest(), absolute); - } else if (rp === "..") { - const ep = e.parent || e; - this.subwalks.add(ep, rest); - } else if (rp instanceof RegExp) { - this.testRegExp(e, rp, rest.rest(), absolute); - } + if ("dest" in result) { + result.dest = obj.dest; } + return result; + }).flatten().value(); + return files; + }; +}); + +// node_modules/archiver-utils/index.js +var require_archiver_utils = __commonJS((exports, module) => { + var fs3 = require_graceful_fs(); + var path2 = __require("path"); + var isStream = require_is_stream(); + var lazystream = require_lazystream(); + var normalizePath = require_normalize_path(); + var defaults = require_defaults(); + var Stream = __require("stream").Stream; + var PassThrough = require_ours().PassThrough; + var utils = module.exports = {}; + utils.file = require_file(); + utils.collectStream = function(source, callback) { + var collection = []; + var size = 0; + source.on("error", callback); + source.on("data", function(chunk) { + collection.push(chunk); + size += chunk.length; + }); + source.on("end", function() { + var buf = Buffer.alloc(size); + var offset = 0; + collection.forEach(function(data) { + data.copy(buf, offset); + offset += data.length; + }); + callback(null, buf); + }); + }; + utils.dateify = function(dateish) { + dateish = dateish || new Date; + if (dateish instanceof Date) { + dateish = dateish; + } else if (typeof dateish === "string") { + dateish = new Date(dateish); + } else { + dateish = new Date; + } + return dateish; + }; + utils.defaults = function(object, source, guard) { + var args = arguments; + args[0] = args[0] || {}; + return defaults(...args); + }; + utils.isStream = function(source) { + return isStream(source); + }; + utils.lazyReadStream = function(filepath) { + return new lazystream.Readable(function() { + return fs3.createReadStream(filepath); + }); + }; + utils.normalizeInputSource = function(source) { + if (source === null) { + return Buffer.alloc(0); + } else if (typeof source === "string") { + return Buffer.from(source); + } else if (utils.isStream(source)) { + return source.pipe(new PassThrough); } - testRegExp(e, p, rest, absolute) { - if (!p.test(e.name)) - return; - if (!rest) { - this.matches.add(e, absolute, false); - } else { - this.subwalks.add(e, rest); - } + return source; + }; + utils.sanitizePath = function(filepath) { + return normalizePath(filepath, false).replace(/^\w+:/, "").replace(/^(\.\.\/|\/)+/, ""); + }; + utils.trailingSlashIt = function(str) { + return str.slice(-1) !== "/" ? str + "/" : str; + }; + utils.unixifyPath = function(filepath) { + return normalizePath(filepath, false).replace(/^\w+:/, ""); + }; + utils.walkdir = function(dirpath, base, callback) { + var results = []; + if (typeof base === "function") { + callback = base; + base = dirpath; } - testString(e, p, rest, absolute) { - if (!e.isNamed(p)) - return; - if (!rest) { - this.matches.add(e, absolute, false); - } else { - this.subwalks.add(e, rest); + fs3.readdir(dirpath, function(err, list) { + var i = 0; + var file; + var filepath; + if (err) { + return callback(err); } - } - } - exports.Processor = Processor; + (function next() { + file = list[i++]; + if (!file) { + return callback(null, results); + } + filepath = path2.join(dirpath, file); + fs3.stat(filepath, function(err2, stats) { + results.push({ + path: filepath, + relative: path2.relative(base, filepath).replace(/\\/g, "/"), + stats + }); + if (stats && stats.isDirectory()) { + utils.walkdir(filepath, base, function(err3, res) { + if (err3) { + return callback(err3); + } + res.forEach(function(dirEntry) { + results.push(dirEntry); + }); + next(); + }); + } else { + next(); + } + }); + })(); + }); + }; }); -// node_modules/glob/dist/commonjs/walker.js -var require_walker = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GlobStream = exports.GlobWalker = exports.GlobUtil = undefined; - var minipass_1 = require_commonjs3(); - var ignore_js_1 = require_ignore(); - var processor_js_1 = require_processor(); - var makeIgnore = (ignore, opts) => typeof ignore === "string" ? new ignore_js_1.Ignore([ignore], opts) : Array.isArray(ignore) ? new ignore_js_1.Ignore(ignore, opts) : ignore; +// node_modules/archiver/lib/error.js +var require_error2 = __commonJS((exports, module) => { + var util2 = __require("util"); + var ERROR_CODES = { + ABORTED: "archive was aborted", + DIRECTORYDIRPATHREQUIRED: "diretory dirpath argument must be a non-empty string value", + DIRECTORYFUNCTIONINVALIDDATA: "invalid data returned by directory custom data function", + ENTRYNAMEREQUIRED: "entry name must be a non-empty string value", + FILEFILEPATHREQUIRED: "file filepath argument must be a non-empty string value", + FINALIZING: "archive already finalizing", + QUEUECLOSED: "queue closed", + NOENDMETHOD: "no suitable finalize/end method defined by module", + DIRECTORYNOTSUPPORTED: "support for directory entries not defined by module", + FORMATSET: "archive format already set", + INPUTSTEAMBUFFERREQUIRED: "input source must be valid Stream or Buffer instance", + MODULESET: "module already set", + SYMLINKNOTSUPPORTED: "support for symlink entries not defined by module", + SYMLINKFILEPATHREQUIRED: "symlink filepath argument must be a non-empty string value", + SYMLINKTARGETREQUIRED: "symlink target argument must be a non-empty string value", + ENTRYNOTSUPPORTED: "entry not supported" + }; + function ArchiverError(code, data) { + Error.captureStackTrace(this, this.constructor); + this.message = ERROR_CODES[code] || code; + this.code = code; + this.data = data; + } + util2.inherits(ArchiverError, Error); + exports = module.exports = ArchiverError; +}); - class GlobUtil { - path; - patterns; - opts; - seen = new Set; - paused = false; - aborted = false; - #onResume = []; - #ignore; - #sep; - signal; - maxDepth; - includeChildMatches; - constructor(patterns, path3, opts) { - this.patterns = patterns; - this.path = path3; - this.opts = opts; - this.#sep = !opts.posix && opts.platform === "win32" ? "\\" : "/"; - this.includeChildMatches = opts.includeChildMatches !== false; - if (opts.ignore || !this.includeChildMatches) { - this.#ignore = makeIgnore(opts.ignore ?? [], opts); - if (!this.includeChildMatches && typeof this.#ignore.add !== "function") { - const m = "cannot ignore child matches, ignore lacks add() method."; - throw new Error(m); +// node_modules/archiver/lib/core.js +var require_core = __commonJS((exports, module) => { + var fs3 = __require("fs"); + var glob = require_readdir_glob(); + var async = require_async2(); + var path2 = __require("path"); + var util2 = require_archiver_utils(); + var inherits = __require("util").inherits; + var ArchiverError = require_error2(); + var Transform = require_ours().Transform; + var win32 = process.platform === "win32"; + var Archiver = function(format, options) { + if (!(this instanceof Archiver)) { + return new Archiver(format, options); + } + if (typeof format !== "string") { + options = format; + format = "zip"; + } + options = this.options = util2.defaults(options, { + highWaterMark: 1024 * 1024, + statConcurrency: 4 + }); + Transform.call(this, options); + this._format = false; + this._module = false; + this._pending = 0; + this._pointer = 0; + this._entriesCount = 0; + this._entriesProcessedCount = 0; + this._fsEntriesTotalBytes = 0; + this._fsEntriesProcessedBytes = 0; + this._queue = async.queue(this._onQueueTask.bind(this), 1); + this._queue.drain(this._onQueueDrain.bind(this)); + this._statQueue = async.queue(this._onStatQueueTask.bind(this), options.statConcurrency); + this._statQueue.drain(this._onQueueDrain.bind(this)); + this._state = { + aborted: false, + finalize: false, + finalizing: false, + finalized: false, + modulePiped: false + }; + this._streams = []; + }; + inherits(Archiver, Transform); + Archiver.prototype._abort = function() { + this._state.aborted = true; + this._queue.kill(); + this._statQueue.kill(); + if (this._queue.idle()) { + this._shutdown(); + } + }; + Archiver.prototype._append = function(filepath, data) { + data = data || {}; + var task = { + source: null, + filepath + }; + if (!data.name) { + data.name = filepath; + } + data.sourcePath = filepath; + task.data = data; + this._entriesCount++; + if (data.stats && data.stats instanceof fs3.Stats) { + task = this._updateQueueTaskWithStats(task, data.stats); + if (task) { + if (data.stats.size) { + this._fsEntriesTotalBytes += data.stats.size; } + this._queue.push(task); } - this.maxDepth = opts.maxDepth || Infinity; - if (opts.signal) { - this.signal = opts.signal; - this.signal.addEventListener("abort", () => { - this.#onResume.length = 0; - }); - } + } else { + this._statQueue.push(task); } - #ignored(path3) { - return this.seen.has(path3) || !!this.#ignore?.ignored?.(path3); + }; + Archiver.prototype._finalize = function() { + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + return; } - #childrenIgnored(path3) { - return !!this.#ignore?.childrenIgnored?.(path3); + this._state.finalizing = true; + this._moduleFinalize(); + this._state.finalizing = false; + this._state.finalized = true; + }; + Archiver.prototype._maybeFinalize = function() { + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + return false; } - pause() { - this.paused = true; + if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) { + this._finalize(); + return true; } - resume() { - if (this.signal?.aborted) - return; - this.paused = false; - let fn = undefined; - while (!this.paused && (fn = this.#onResume.shift())) { - fn(); - } + return false; + }; + Archiver.prototype._moduleAppend = function(source, data, callback) { + if (this._state.aborted) { + callback(); + return; } - onResume(fn) { - if (this.signal?.aborted) + this._module.append(source, data, function(err) { + this._task = null; + if (this._state.aborted) { + this._shutdown(); return; - if (!this.paused) { - fn(); - } else { - this.#onResume.push(fn); } - } - async matchCheck(e, ifDir) { - if (ifDir && this.opts.nodir) + if (err) { + this.emit("error", err); + setImmediate(callback); return; - let rpc; - if (this.opts.realpath) { - rpc = e.realpathCached() || await e.realpath(); - if (!rpc) - return; - e = rpc; } - const needStat = e.isUnknown() || this.opts.stat; - const s = needStat ? await e.lstat() : e; - if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) { - const target = await s.realpath(); - if (target && (target.isUnknown() || this.opts.stat)) { - await target.lstat(); - } + this.emit("entry", data); + this._entriesProcessedCount++; + if (data.stats && data.stats.size) { + this._fsEntriesProcessedBytes += data.stats.size; } - return this.matchCheckTest(s, ifDir); + this.emit("progress", { + entries: { + total: this._entriesCount, + processed: this._entriesProcessedCount + }, + fs: { + totalBytes: this._fsEntriesTotalBytes, + processedBytes: this._fsEntriesProcessedBytes + } + }); + setImmediate(callback); + }.bind(this)); + }; + Archiver.prototype._moduleFinalize = function() { + if (typeof this._module.finalize === "function") { + this._module.finalize(); + } else if (typeof this._module.end === "function") { + this._module.end(); + } else { + this.emit("error", new ArchiverError("NOENDMETHOD")); } - matchCheckTest(e, ifDir) { - return e && (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && (!ifDir || e.canReaddir()) && (!this.opts.nodir || !e.isDirectory()) && (!this.opts.nodir || !this.opts.follow || !e.isSymbolicLink() || !e.realpathCached()?.isDirectory()) && !this.#ignored(e) ? e : undefined; + }; + Archiver.prototype._modulePipe = function() { + this._module.on("error", this._onModuleError.bind(this)); + this._module.pipe(this); + this._state.modulePiped = true; + }; + Archiver.prototype._moduleSupports = function(key2) { + if (!this._module.supports || !this._module.supports[key2]) { + return false; } - matchCheckSync(e, ifDir) { - if (ifDir && this.opts.nodir) - return; - let rpc; - if (this.opts.realpath) { - rpc = e.realpathCached() || e.realpathSync(); - if (!rpc) - return; - e = rpc; + return this._module.supports[key2]; + }; + Archiver.prototype._moduleUnpipe = function() { + this._module.unpipe(this); + this._state.modulePiped = false; + }; + Archiver.prototype._normalizeEntryData = function(data, stats) { + data = util2.defaults(data, { + type: "file", + name: null, + date: null, + mode: null, + prefix: null, + sourcePath: null, + stats: false + }); + if (stats && data.stats === false) { + data.stats = stats; + } + var isDir = data.type === "directory"; + if (data.name) { + if (typeof data.prefix === "string" && data.prefix !== "") { + data.name = data.prefix + "/" + data.name; + data.prefix = null; } - const needStat = e.isUnknown() || this.opts.stat; - const s = needStat ? e.lstatSync() : e; - if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) { - const target = s.realpathSync(); - if (target && (target?.isUnknown() || this.opts.stat)) { - target.lstatSync(); - } + data.name = util2.sanitizePath(data.name); + if (data.type !== "symlink" && data.name.slice(-1) === "/") { + isDir = true; + data.type = "directory"; + } else if (isDir) { + data.name += "/"; } - return this.matchCheckTest(s, ifDir); } - matchFinish(e, absolute) { - if (this.#ignored(e)) - return; - if (!this.includeChildMatches && this.#ignore?.add) { - const ign = `${e.relativePosix()}/**`; - this.#ignore.add(ign); + if (typeof data.mode === "number") { + if (win32) { + data.mode &= 511; + } else { + data.mode &= 4095; } - const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute; - this.seen.add(e); - const mark = this.opts.mark && e.isDirectory() ? this.#sep : ""; - if (this.opts.withFileTypes) { - this.matchEmit(e); - } else if (abs) { - const abs2 = this.opts.posix ? e.fullpathPosix() : e.fullpath(); - this.matchEmit(abs2 + mark); + } else if (data.stats && data.mode === null) { + if (win32) { + data.mode = data.stats.mode & 511; } else { - const rel = this.opts.posix ? e.relativePosix() : e.relative(); - const pre = this.opts.dotRelative && !rel.startsWith(".." + this.#sep) ? "." + this.#sep : ""; - this.matchEmit(!rel ? "." + mark : pre + rel + mark); + data.mode = data.stats.mode & 4095; } + if (win32 && isDir) { + data.mode = 493; + } + } else if (data.mode === null) { + data.mode = isDir ? 493 : 420; } - async match(e, absolute, ifDir) { - const p = await this.matchCheck(e, ifDir); - if (p) - this.matchFinish(p, absolute); - } - matchSync(e, absolute, ifDir) { - const p = this.matchCheckSync(e, ifDir); - if (p) - this.matchFinish(p, absolute); + if (data.stats && data.date === null) { + data.date = data.stats.mtime; + } else { + data.date = util2.dateify(data.date); } - walkCB(target, patterns, cb) { - if (this.signal?.aborted) - cb(); - this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb); + return data; + }; + Archiver.prototype._onModuleError = function(err) { + this.emit("error", err); + }; + Archiver.prototype._onQueueDrain = function() { + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + return; } - walkCB2(target, patterns, processor, cb) { - if (this.#childrenIgnored(target)) - return cb(); - if (this.signal?.aborted) - cb(); - if (this.paused) { - this.onResume(() => this.walkCB2(target, patterns, processor, cb)); - return; - } - processor.processPatterns(target, patterns); - let tasks = 1; - const next = () => { - if (--tasks === 0) - cb(); - }; - for (const [m, absolute, ifDir] of processor.matches.entries()) { - if (this.#ignored(m)) - continue; - tasks++; - this.match(m, absolute, ifDir).then(() => next()); - } - for (const t of processor.subwalkTargets()) { - if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { - continue; - } - tasks++; - const childrenCached = t.readdirCached(); - if (t.calledReaddir()) - this.walkCB3(t, childrenCached, processor, next); - else { - t.readdirCB((_3, entries) => this.walkCB3(t, entries, processor, next), true); - } - } - next(); + if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) { + this._finalize(); } - walkCB3(target, entries, processor, cb) { - processor = processor.filterEntries(target, entries); - let tasks = 1; - const next = () => { - if (--tasks === 0) - cb(); - }; - for (const [m, absolute, ifDir] of processor.matches.entries()) { - if (this.#ignored(m)) - continue; - tasks++; - this.match(m, absolute, ifDir).then(() => next()); - } - for (const [target2, patterns] of processor.subwalks.entries()) { - tasks++; - this.walkCB2(target2, patterns, processor.child(), next); + }; + Archiver.prototype._onQueueTask = function(task, callback) { + var fullCallback = () => { + if (task.data.callback) { + task.data.callback(); } - next(); + callback(); + }; + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + fullCallback(); + return; } - walkCBSync(target, patterns, cb) { - if (this.signal?.aborted) - cb(); - this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb); + this._task = task; + this._moduleAppend(task.source, task.data, fullCallback); + }; + Archiver.prototype._onStatQueueTask = function(task, callback) { + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + callback(); + return; } - walkCB2Sync(target, patterns, processor, cb) { - if (this.#childrenIgnored(target)) - return cb(); - if (this.signal?.aborted) - cb(); - if (this.paused) { - this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb)); + fs3.lstat(task.filepath, function(err, stats) { + if (this._state.aborted) { + setImmediate(callback); return; } - processor.processPatterns(target, patterns); - let tasks = 1; - const next = () => { - if (--tasks === 0) - cb(); - }; - for (const [m, absolute, ifDir] of processor.matches.entries()) { - if (this.#ignored(m)) - continue; - this.matchSync(m, absolute, ifDir); + if (err) { + this._entriesCount--; + this.emit("warning", err); + setImmediate(callback); + return; } - for (const t of processor.subwalkTargets()) { - if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { - continue; + task = this._updateQueueTaskWithStats(task, stats); + if (task) { + if (stats.size) { + this._fsEntriesTotalBytes += stats.size; } - tasks++; - const children = t.readdirSync(); - this.walkCB3Sync(t, children, processor, next); + this._queue.push(task); } - next(); + setImmediate(callback); + }.bind(this)); + }; + Archiver.prototype._shutdown = function() { + this._moduleUnpipe(); + this.end(); + }; + Archiver.prototype._transform = function(chunk, encoding, callback) { + if (chunk) { + this._pointer += chunk.length; } - walkCB3Sync(target, entries, processor, cb) { - processor = processor.filterEntries(target, entries); - let tasks = 1; - const next = () => { - if (--tasks === 0) - cb(); - }; - for (const [m, absolute, ifDir] of processor.matches.entries()) { - if (this.#ignored(m)) - continue; - this.matchSync(m, absolute, ifDir); - } - for (const [target2, patterns] of processor.subwalks.entries()) { - tasks++; - this.walkCB2Sync(target2, patterns, processor.child(), next); + callback(null, chunk); + }; + Archiver.prototype._updateQueueTaskWithStats = function(task, stats) { + if (stats.isFile()) { + task.data.type = "file"; + task.data.sourceType = "stream"; + task.source = util2.lazyReadStream(task.filepath); + } else if (stats.isDirectory() && this._moduleSupports("directory")) { + task.data.name = util2.trailingSlashIt(task.data.name); + task.data.type = "directory"; + task.data.sourcePath = util2.trailingSlashIt(task.filepath); + task.data.sourceType = "buffer"; + task.source = Buffer.concat([]); + } else if (stats.isSymbolicLink() && this._moduleSupports("symlink")) { + var linkPath = fs3.readlinkSync(task.filepath); + var dirName = path2.dirname(task.filepath); + task.data.type = "symlink"; + task.data.linkname = path2.relative(dirName, path2.resolve(dirName, linkPath)); + task.data.sourceType = "buffer"; + task.source = Buffer.concat([]); + } else { + if (stats.isDirectory()) { + this.emit("warning", new ArchiverError("DIRECTORYNOTSUPPORTED", task.data)); + } else if (stats.isSymbolicLink()) { + this.emit("warning", new ArchiverError("SYMLINKNOTSUPPORTED", task.data)); + } else { + this.emit("warning", new ArchiverError("ENTRYNOTSUPPORTED", task.data)); } - next(); + return null; } - } - exports.GlobUtil = GlobUtil; - - class GlobWalker extends GlobUtil { - matches = new Set; - constructor(patterns, path3, opts) { - super(patterns, path3, opts); + task.data = this._normalizeEntryData(task.data, stats); + return task; + }; + Archiver.prototype.abort = function() { + if (this._state.aborted || this._state.finalized) { + return this; } - matchEmit(e) { - this.matches.add(e); + this._abort(); + return this; + }; + Archiver.prototype.append = function(source, data) { + if (this._state.finalize || this._state.aborted) { + this.emit("error", new ArchiverError("QUEUECLOSED")); + return this; } - async walk() { - if (this.signal?.aborted) - throw this.signal.reason; - if (this.path.isUnknown()) { - await this.path.lstat(); - } - await new Promise((res, rej) => { - this.walkCB(this.path, this.patterns, () => { - if (this.signal?.aborted) { - rej(this.signal.reason); - } else { - res(this.matches); - } - }); - }); - return this.matches; + data = this._normalizeEntryData(data); + if (typeof data.name !== "string" || data.name.length === 0) { + this.emit("error", new ArchiverError("ENTRYNAMEREQUIRED")); + return this; } - walkSync() { - if (this.signal?.aborted) - throw this.signal.reason; - if (this.path.isUnknown()) { - this.path.lstatSync(); - } - this.walkCBSync(this.path, this.patterns, () => { - if (this.signal?.aborted) - throw this.signal.reason; - }); - return this.matches; + if (data.type === "directory" && !this._moduleSupports("directory")) { + this.emit("error", new ArchiverError("DIRECTORYNOTSUPPORTED", { name: data.name })); + return this; } - } - exports.GlobWalker = GlobWalker; - - class GlobStream extends GlobUtil { - results; - constructor(patterns, path3, opts) { - super(patterns, path3, opts); - this.results = new minipass_1.Minipass({ - signal: this.signal, - objectMode: true - }); - this.results.on("drain", () => this.resume()); - this.results.on("resume", () => this.resume()); + source = util2.normalizeInputSource(source); + if (Buffer.isBuffer(source)) { + data.sourceType = "buffer"; + } else if (util2.isStream(source)) { + data.sourceType = "stream"; + } else { + this.emit("error", new ArchiverError("INPUTSTEAMBUFFERREQUIRED", { name: data.name })); + return this; } - matchEmit(e) { - this.results.write(e); - if (!this.results.flowing) - this.pause(); + this._entriesCount++; + this._queue.push({ + data, + source + }); + return this; + }; + Archiver.prototype.directory = function(dirpath, destpath, data) { + if (this._state.finalize || this._state.aborted) { + this.emit("error", new ArchiverError("QUEUECLOSED")); + return this; } - stream() { - const target = this.path; - if (target.isUnknown()) { - target.lstat().then(() => { - this.walkCB(target, this.patterns, () => this.results.end()); - }); - } else { - this.walkCB(target, this.patterns, () => this.results.end()); - } - return this.results; + if (typeof dirpath !== "string" || dirpath.length === 0) { + this.emit("error", new ArchiverError("DIRECTORYDIRPATHREQUIRED")); + return this; } - streamSync() { - if (this.path.isUnknown()) { - this.path.lstatSync(); - } - this.walkCBSync(this.path, this.patterns, () => this.results.end()); - return this.results; + this._pending++; + if (destpath === false) { + destpath = ""; + } else if (typeof destpath !== "string") { + destpath = dirpath; } - } - exports.GlobStream = GlobStream; -}); - -// node_modules/glob/dist/commonjs/glob.js -var require_glob = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Glob = undefined; - var minimatch_1 = require_commonjs(); - var node_url_1 = __require("node:url"); - var path_scurry_1 = require_commonjs4(); - var pattern_js_1 = require_pattern(); - var walker_js_1 = require_walker(); - var defaultPlatform = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux"; - - class Glob { - absolute; - cwd; - root; - dot; - dotRelative; - follow; - ignore; - magicalBraces; - mark; - matchBase; - maxDepth; - nobrace; - nocase; - nodir; - noext; - noglobstar; - pattern; - platform; - realpath; - scurry; - stat; - signal; - windowsPathsNoEscape; - withFileTypes; - includeChildMatches; - opts; - patterns; - constructor(pattern, opts) { - if (!opts) - throw new TypeError("glob options required"); - this.withFileTypes = !!opts.withFileTypes; - this.signal = opts.signal; - this.follow = !!opts.follow; - this.dot = !!opts.dot; - this.dotRelative = !!opts.dotRelative; - this.nodir = !!opts.nodir; - this.mark = !!opts.mark; - if (!opts.cwd) { - this.cwd = ""; - } else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) { - opts.cwd = (0, node_url_1.fileURLToPath)(opts.cwd); - } - this.cwd = opts.cwd || ""; - this.root = opts.root; - this.magicalBraces = !!opts.magicalBraces; - this.nobrace = !!opts.nobrace; - this.noext = !!opts.noext; - this.realpath = !!opts.realpath; - this.absolute = opts.absolute; - this.includeChildMatches = opts.includeChildMatches !== false; - this.noglobstar = !!opts.noglobstar; - this.matchBase = !!opts.matchBase; - this.maxDepth = typeof opts.maxDepth === "number" ? opts.maxDepth : Infinity; - this.stat = !!opts.stat; - this.ignore = opts.ignore; - if (this.withFileTypes && this.absolute !== undefined) { - throw new Error("cannot set absolute and withFileTypes:true"); - } - if (typeof pattern === "string") { - pattern = [pattern]; - } - this.windowsPathsNoEscape = !!opts.windowsPathsNoEscape || opts.allowWindowsEscape === false; - if (this.windowsPathsNoEscape) { - pattern = pattern.map((p) => p.replace(/\\/g, "/")); - } - if (this.matchBase) { - if (opts.noglobstar) { - throw new TypeError("base matching requires globstar"); + var dataFunction = false; + if (typeof data === "function") { + dataFunction = data; + data = {}; + } else if (typeof data !== "object") { + data = {}; + } + var globOptions = { + stat: true, + dot: true + }; + function onGlobEnd() { + this._pending--; + this._maybeFinalize(); + } + function onGlobError(err) { + this.emit("error", err); + } + function onGlobMatch(match) { + globber.pause(); + var ignoreMatch = false; + var entryData = Object.assign({}, data); + entryData.name = match.relative; + entryData.prefix = destpath; + entryData.stats = match.stat; + entryData.callback = globber.resume.bind(globber); + try { + if (dataFunction) { + entryData = dataFunction(entryData); + if (entryData === false) { + ignoreMatch = true; + } else if (typeof entryData !== "object") { + throw new ArchiverError("DIRECTORYFUNCTIONINVALIDDATA", { dirpath }); + } } - pattern = pattern.map((p) => p.includes("/") ? p : `./**/${p}`); + } catch (e) { + this.emit("error", e); + return; } - this.pattern = pattern; - this.platform = opts.platform || defaultPlatform; - this.opts = { ...opts, platform: this.platform }; - if (opts.scurry) { - this.scurry = opts.scurry; - if (opts.nocase !== undefined && opts.nocase !== opts.scurry.nocase) { - throw new Error("nocase option contradicts provided scurry option"); - } - } else { - const Scurry = opts.platform === "win32" ? path_scurry_1.PathScurryWin32 : opts.platform === "darwin" ? path_scurry_1.PathScurryDarwin : opts.platform ? path_scurry_1.PathScurryPosix : path_scurry_1.PathScurry; - this.scurry = new Scurry(this.cwd, { - nocase: opts.nocase, - fs: opts.fs - }); + if (ignoreMatch) { + globber.resume(); + return; } - this.nocase = this.scurry.nocase; - const nocaseMagicOnly = this.platform === "darwin" || this.platform === "win32"; - const mmo = { - ...opts, - dot: this.dot, - matchBase: this.matchBase, - nobrace: this.nobrace, - nocase: this.nocase, - nocaseMagicOnly, - nocomment: true, - noext: this.noext, - nonegate: true, - optimizationLevel: 2, - platform: this.platform, - windowsPathsNoEscape: this.windowsPathsNoEscape, - debug: !!this.opts.debug - }; - const mms = this.pattern.map((p) => new minimatch_1.Minimatch(p, mmo)); - const [matchSet, globParts] = mms.reduce((set, m) => { - set[0].push(...m.set); - set[1].push(...m.globParts); - return set; - }, [[], []]); - this.patterns = matchSet.map((set, i) => { - const g = globParts[i]; - if (!g) - throw new Error("invalid pattern object"); - return new pattern_js_1.Pattern(set, g, 0, this.platform); - }); + this._append(match.absolute, entryData); } - async walk() { - return [ - ...await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { - ...this.opts, - maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, - platform: this.platform, - nocase: this.nocase, - includeChildMatches: this.includeChildMatches - }).walk() - ]; + var globber = glob(dirpath, globOptions); + globber.on("error", onGlobError.bind(this)); + globber.on("match", onGlobMatch.bind(this)); + globber.on("end", onGlobEnd.bind(this)); + return this; + }; + Archiver.prototype.file = function(filepath, data) { + if (this._state.finalize || this._state.aborted) { + this.emit("error", new ArchiverError("QUEUECLOSED")); + return this; } - walkSync() { - return [ - ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { - ...this.opts, - maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, - platform: this.platform, - nocase: this.nocase, - includeChildMatches: this.includeChildMatches - }).walkSync() - ]; + if (typeof filepath !== "string" || filepath.length === 0) { + this.emit("error", new ArchiverError("FILEFILEPATHREQUIRED")); + return this; } - stream() { - return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { - ...this.opts, - maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, - platform: this.platform, - nocase: this.nocase, - includeChildMatches: this.includeChildMatches - }).stream(); + this._append(filepath, data); + return this; + }; + Archiver.prototype.glob = function(pattern, options, data) { + this._pending++; + options = util2.defaults(options, { + stat: true, + pattern + }); + function onGlobEnd() { + this._pending--; + this._maybeFinalize(); } - streamSync() { - return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { - ...this.opts, - maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, - platform: this.platform, - nocase: this.nocase, - includeChildMatches: this.includeChildMatches - }).streamSync(); + function onGlobError(err) { + this.emit("error", err); } - iterateSync() { - return this.streamSync()[Symbol.iterator](); + function onGlobMatch(match) { + globber.pause(); + var entryData = Object.assign({}, data); + entryData.callback = globber.resume.bind(globber); + entryData.stats = match.stat; + entryData.name = match.relative; + this._append(match.absolute, entryData); } - [Symbol.iterator]() { - return this.iterateSync(); + var globber = glob(options.cwd || ".", options); + globber.on("error", onGlobError.bind(this)); + globber.on("match", onGlobMatch.bind(this)); + globber.on("end", onGlobEnd.bind(this)); + return this; + }; + Archiver.prototype.finalize = function() { + if (this._state.aborted) { + var abortedError = new ArchiverError("ABORTED"); + this.emit("error", abortedError); + return Promise.reject(abortedError); } - iterate() { - return this.stream()[Symbol.asyncIterator](); + if (this._state.finalize) { + var finalizingError = new ArchiverError("FINALIZING"); + this.emit("error", finalizingError); + return Promise.reject(finalizingError); } - [Symbol.asyncIterator]() { - return this.iterate(); + this._state.finalize = true; + if (this._pending === 0 && this._queue.idle() && this._statQueue.idle()) { + this._finalize(); } - } - exports.Glob = Glob; -}); - -// node_modules/glob/dist/commonjs/has-magic.js -var require_has_magic = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.hasMagic = undefined; - var minimatch_1 = require_commonjs(); - var hasMagic = (pattern, options = {}) => { - if (!Array.isArray(pattern)) { - pattern = [pattern]; + var self2 = this; + return new Promise(function(resolve, reject) { + var errored; + self2._module.on("end", function() { + if (!errored) { + resolve(); + } + }); + self2._module.on("error", function(err) { + errored = true; + reject(err); + }); + }); + }; + Archiver.prototype.setFormat = function(format) { + if (this._format) { + this.emit("error", new ArchiverError("FORMATSET")); + return this; } - for (const p of pattern) { - if (new minimatch_1.Minimatch(p, options).hasMagic()) - return true; + this._format = format; + return this; + }; + Archiver.prototype.setModule = function(module2) { + if (this._state.aborted) { + this.emit("error", new ArchiverError("ABORTED")); + return this; + } + if (this._state.module) { + this.emit("error", new ArchiverError("MODULESET")); + return this; + } + this._module = module2; + this._modulePipe(); + return this; + }; + Archiver.prototype.symlink = function(filepath, target, mode) { + if (this._state.finalize || this._state.aborted) { + this.emit("error", new ArchiverError("QUEUECLOSED")); + return this; + } + if (typeof filepath !== "string" || filepath.length === 0) { + this.emit("error", new ArchiverError("SYMLINKFILEPATHREQUIRED")); + return this; + } + if (typeof target !== "string" || target.length === 0) { + this.emit("error", new ArchiverError("SYMLINKTARGETREQUIRED", { filepath })); + return this; + } + if (!this._moduleSupports("symlink")) { + this.emit("error", new ArchiverError("SYMLINKNOTSUPPORTED", { filepath })); + return this; + } + var data = {}; + data.type = "symlink"; + data.name = filepath.replace(/\\/g, "/"); + data.linkname = target.replace(/\\/g, "/"); + data.sourceType = "buffer"; + if (typeof mode === "number") { + data.mode = mode; } - return false; + this._entriesCount++; + this._queue.push({ + data, + source: Buffer.concat([]) + }); + return this; }; - exports.hasMagic = hasMagic; + Archiver.prototype.pointer = function() { + return this._pointer; + }; + Archiver.prototype.use = function(plugin) { + this._streams.push(plugin); + return this; + }; + module.exports = Archiver; }); -// node_modules/glob/dist/commonjs/index.js -var require_commonjs5 = __commonJS((exports) => { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.glob = exports.sync = exports.iterate = exports.iterateSync = exports.stream = exports.streamSync = exports.Ignore = exports.hasMagic = exports.Glob = exports.unescape = exports.escape = undefined; - exports.globStreamSync = globStreamSync; - exports.globStream = globStream; - exports.globSync = globSync; - exports.globIterateSync = globIterateSync; - exports.globIterate = globIterate; - var minimatch_1 = require_commonjs(); - var glob_js_1 = require_glob(); - var has_magic_js_1 = require_has_magic(); - var minimatch_2 = require_commonjs(); - Object.defineProperty(exports, "escape", { enumerable: true, get: function() { - return minimatch_2.escape; - } }); - Object.defineProperty(exports, "unescape", { enumerable: true, get: function() { - return minimatch_2.unescape; - } }); - var glob_js_2 = require_glob(); - Object.defineProperty(exports, "Glob", { enumerable: true, get: function() { - return glob_js_2.Glob; - } }); - var has_magic_js_2 = require_has_magic(); - Object.defineProperty(exports, "hasMagic", { enumerable: true, get: function() { - return has_magic_js_2.hasMagic; - } }); - var ignore_js_1 = require_ignore(); - Object.defineProperty(exports, "Ignore", { enumerable: true, get: function() { - return ignore_js_1.Ignore; - } }); - function globStreamSync(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).streamSync(); - } - function globStream(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).stream(); - } - function globSync(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).walkSync(); - } - async function glob_(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).walk(); - } - function globIterateSync(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).iterateSync(); - } - function globIterate(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).iterate(); - } - exports.streamSync = globStreamSync; - exports.stream = Object.assign(globStream, { sync: globStreamSync }); - exports.iterateSync = globIterateSync; - exports.iterate = Object.assign(globIterate, { - sync: globIterateSync - }); - exports.sync = Object.assign(globSync, { - stream: globStreamSync, - iterate: globIterateSync - }); - exports.glob = Object.assign(glob_, { - glob: glob_, - globSync, - sync: exports.sync, - globStream, - stream: exports.stream, - globStreamSync, - streamSync: exports.streamSync, - globIterate, - iterate: exports.iterate, - globIterateSync, - iterateSync: exports.iterateSync, - Glob: glob_js_1.Glob, - hasMagic: has_magic_js_1.hasMagic, - escape: minimatch_1.escape, - unescape: minimatch_1.unescape - }); - exports.glob.glob = exports.glob; +// node_modules/compress-commons/lib/archivers/archive-entry.js +var require_archive_entry = __commonJS((exports, module) => { + var ArchiveEntry = module.exports = function() { + }; + ArchiveEntry.prototype.getName = function() { + }; + ArchiveEntry.prototype.getSize = function() { + }; + ArchiveEntry.prototype.getLastModifiedDate = function() { + }; + ArchiveEntry.prototype.isDirectory = function() { + }; }); -// node_modules/archiver-utils/file.js -var require_file2 = __commonJS((exports, module) => { - var fs3 = require_graceful_fs(); - var path3 = __require("path"); - var flatten = require_flatten(); - var difference = require_difference(); - var union = require_union(); - var isPlainObject2 = require_isPlainObject(); - var glob = require_commonjs5(); - var file = module.exports = {}; - var pathSeparatorRe = /[\/\\]/g; - var processPatterns = function(patterns, fn) { - var result = []; - flatten(patterns).forEach(function(pattern) { - var exclusion = pattern.indexOf("!") === 0; - if (exclusion) { - pattern = pattern.slice(1); - } - var matches = fn(pattern); - if (exclusion) { - result = difference(result, matches); - } else { - result = union(result, matches); - } - }); - return result; +// node_modules/compress-commons/lib/archivers/zip/util.js +var require_util3 = __commonJS((exports, module) => { + var util2 = module.exports = {}; + util2.dateToDos = function(d, forceLocalTime) { + forceLocalTime = forceLocalTime || false; + var year = forceLocalTime ? d.getFullYear() : d.getUTCFullYear(); + if (year < 1980) { + return 2162688; + } else if (year >= 2044) { + return 2141175677; + } + var val = { + year, + month: forceLocalTime ? d.getMonth() : d.getUTCMonth(), + date: forceLocalTime ? d.getDate() : d.getUTCDate(), + hours: forceLocalTime ? d.getHours() : d.getUTCHours(), + minutes: forceLocalTime ? d.getMinutes() : d.getUTCMinutes(), + seconds: forceLocalTime ? d.getSeconds() : d.getUTCSeconds() + }; + return val.year - 1980 << 25 | val.month + 1 << 21 | val.date << 16 | val.hours << 11 | val.minutes << 5 | val.seconds / 2; }; - file.exists = function() { - var filepath = path3.join.apply(path3, arguments); - return fs3.existsSync(filepath); + util2.dosToDate = function(dos) { + return new Date((dos >> 25 & 127) + 1980, (dos >> 21 & 15) - 1, dos >> 16 & 31, dos >> 11 & 31, dos >> 5 & 63, (dos & 31) << 1); }; - file.expand = function(...args) { - var options = isPlainObject2(args[0]) ? args.shift() : {}; - var patterns = Array.isArray(args[0]) ? args[0] : args; - if (patterns.length === 0) { - return []; - } - var matches = processPatterns(patterns, function(pattern) { - return glob.sync(pattern, options); - }); - if (options.filter) { - matches = matches.filter(function(filepath) { - filepath = path3.join(options.cwd || "", filepath); - try { - if (typeof options.filter === "function") { - return options.filter(filepath); - } else { - return fs3.statSync(filepath)[options.filter](); - } - } catch (e) { - return false; - } - }); - } - return matches; + util2.fromDosTime = function(buf) { + return util2.dosToDate(buf.readUInt32LE(0)); }; - file.expandMapping = function(patterns, destBase, options) { - options = Object.assign({ - rename: function(destBase2, destPath) { - return path3.join(destBase2 || "", destPath); - } - }, options); - var files = []; - var fileByDest = {}; - file.expand(options, patterns).forEach(function(src) { - var destPath = src; - if (options.flatten) { - destPath = path3.basename(destPath); - } - if (options.ext) { - destPath = destPath.replace(/(\.[^\/]*)?$/, options.ext); - } - var dest = options.rename(destBase, destPath, options); - if (options.cwd) { - src = path3.join(options.cwd, src); - } - dest = dest.replace(pathSeparatorRe, "/"); - src = src.replace(pathSeparatorRe, "/"); - if (fileByDest[dest]) { - fileByDest[dest].src.push(src); - } else { - files.push({ - src: [src], - dest - }); - fileByDest[dest] = files[files.length - 1]; - } - }); - return files; + util2.getEightBytes = function(v) { + var buf = Buffer.alloc(8); + buf.writeUInt32LE(v % 4294967296, 0); + buf.writeUInt32LE(v / 4294967296 | 0, 4); + return buf; }; - file.normalizeFilesArray = function(data) { - var files = []; - data.forEach(function(obj) { - var prop; - if ("src" in obj || "dest" in obj) { - files.push(obj); - } - }); - if (files.length === 0) { - return []; + util2.getShortBytes = function(v) { + var buf = Buffer.alloc(2); + buf.writeUInt16LE((v & 65535) >>> 0, 0); + return buf; + }; + util2.getShortBytesValue = function(buf, offset) { + return buf.readUInt16LE(offset); + }; + util2.getLongBytes = function(v) { + var buf = Buffer.alloc(4); + buf.writeUInt32LE((v & 4294967295) >>> 0, 0); + return buf; + }; + util2.getLongBytesValue = function(buf, offset) { + return buf.readUInt32LE(offset); + }; + util2.toDosTime = function(d) { + return util2.getLongBytes(util2.dateToDos(d)); + }; +}); + +// node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js +var require_general_purpose_bit = __commonJS((exports, module) => { + var zipUtil = require_util3(); + var DATA_DESCRIPTOR_FLAG = 1 << 3; + var ENCRYPTION_FLAG = 1 << 0; + var NUMBER_OF_SHANNON_FANO_TREES_FLAG = 1 << 2; + var SLIDING_DICTIONARY_SIZE_FLAG = 1 << 1; + var STRONG_ENCRYPTION_FLAG = 1 << 6; + var UFT8_NAMES_FLAG = 1 << 11; + var GeneralPurposeBit = module.exports = function() { + if (!(this instanceof GeneralPurposeBit)) { + return new GeneralPurposeBit; } - files = _(files).chain().forEach(function(obj) { - if (!("src" in obj) || !obj.src) { - return; - } - if (Array.isArray(obj.src)) { - obj.src = flatten(obj.src); - } else { - obj.src = [obj.src]; - } - }).map(function(obj) { - var expandOptions = Object.assign({}, obj); - delete expandOptions.src; - delete expandOptions.dest; - if (obj.expand) { - return file.expandMapping(obj.src, obj.dest, expandOptions).map(function(mapObj) { - var result2 = Object.assign({}, obj); - result2.orig = Object.assign({}, obj); - result2.src = mapObj.src; - result2.dest = mapObj.dest; - ["expand", "cwd", "flatten", "rename", "ext"].forEach(function(prop) { - delete result2[prop]; - }); - return result2; - }); - } - var result = Object.assign({}, obj); - result.orig = Object.assign({}, obj); - if ("src" in result) { - Object.defineProperty(result, "src", { - enumerable: true, - get: function fn() { - var src; - if (!("result" in fn)) { - src = obj.src; - src = Array.isArray(src) ? flatten(src) : [src]; - fn.result = file.expand(expandOptions, src); - } - return fn.result; - } - }); - } - if ("dest" in result) { - result.dest = obj.dest; - } - return result; - }).flatten().value(); - return files; + this.descriptor = false; + this.encryption = false; + this.utf8 = false; + this.numberOfShannonFanoTrees = 0; + this.strongEncryption = false; + this.slidingDictionarySize = 0; + return this; + }; + GeneralPurposeBit.prototype.encode = function() { + return zipUtil.getShortBytes((this.descriptor ? DATA_DESCRIPTOR_FLAG : 0) | (this.utf8 ? UFT8_NAMES_FLAG : 0) | (this.encryption ? ENCRYPTION_FLAG : 0) | (this.strongEncryption ? STRONG_ENCRYPTION_FLAG : 0)); + }; + GeneralPurposeBit.prototype.parse = function(buf, offset) { + var flag = zipUtil.getShortBytesValue(buf, offset); + var gbp = new GeneralPurposeBit; + gbp.useDataDescriptor((flag & DATA_DESCRIPTOR_FLAG) !== 0); + gbp.useUTF8ForNames((flag & UFT8_NAMES_FLAG) !== 0); + gbp.useStrongEncryption((flag & STRONG_ENCRYPTION_FLAG) !== 0); + gbp.useEncryption((flag & ENCRYPTION_FLAG) !== 0); + gbp.setSlidingDictionarySize((flag & SLIDING_DICTIONARY_SIZE_FLAG) !== 0 ? 8192 : 4096); + gbp.setNumberOfShannonFanoTrees((flag & NUMBER_OF_SHANNON_FANO_TREES_FLAG) !== 0 ? 3 : 2); + return gbp; + }; + GeneralPurposeBit.prototype.setNumberOfShannonFanoTrees = function(n) { + this.numberOfShannonFanoTrees = n; + }; + GeneralPurposeBit.prototype.getNumberOfShannonFanoTrees = function() { + return this.numberOfShannonFanoTrees; + }; + GeneralPurposeBit.prototype.setSlidingDictionarySize = function(n) { + this.slidingDictionarySize = n; + }; + GeneralPurposeBit.prototype.getSlidingDictionarySize = function() { + return this.slidingDictionarySize; + }; + GeneralPurposeBit.prototype.useDataDescriptor = function(b) { + this.descriptor = b; + }; + GeneralPurposeBit.prototype.usesDataDescriptor = function() { + return this.descriptor; + }; + GeneralPurposeBit.prototype.useEncryption = function(b) { + this.encryption = b; + }; + GeneralPurposeBit.prototype.usesEncryption = function() { + return this.encryption; + }; + GeneralPurposeBit.prototype.useStrongEncryption = function(b) { + this.strongEncryption = b; + }; + GeneralPurposeBit.prototype.usesStrongEncryption = function() { + return this.strongEncryption; + }; + GeneralPurposeBit.prototype.useUTF8ForNames = function(b) { + this.utf8 = b; + }; + GeneralPurposeBit.prototype.usesUTF8ForNames = function() { + return this.utf8; }; }); -// node_modules/archiver-utils/index.js -var require_archiver_utils = __commonJS((exports, module) => { - var fs3 = require_graceful_fs(); - var path3 = __require("path"); - var isStream = require_is_stream(); - var lazystream = require_lazystream(); - var normalizePath = require_normalize_path(); - var defaults = require_defaults(); - var Stream = __require("stream").Stream; - var PassThrough = require_ours().PassThrough; - var utils = module.exports = {}; - utils.file = require_file2(); - utils.collectStream = function(source, callback) { - var collection = []; - var size = 0; - source.on("error", callback); - source.on("data", function(chunk) { - collection.push(chunk); - size += chunk.length; - }); - source.on("end", function() { - var buf = Buffer.alloc(size); - var offset = 0; - collection.forEach(function(data) { - data.copy(buf, offset); - offset += data.length; - }); - callback(null, buf); - }); +// node_modules/compress-commons/lib/archivers/zip/unix-stat.js +var require_unix_stat = __commonJS((exports, module) => { + module.exports = { + PERM_MASK: 4095, + FILE_TYPE_FLAG: 61440, + LINK_FLAG: 40960, + FILE_FLAG: 32768, + DIR_FLAG: 16384, + DEFAULT_LINK_PERM: 511, + DEFAULT_DIR_PERM: 493, + DEFAULT_FILE_PERM: 420 }; - utils.dateify = function(dateish) { - dateish = dateish || new Date; - if (dateish instanceof Date) { - dateish = dateish; - } else if (typeof dateish === "string") { - dateish = new Date(dateish); - } else { - dateish = new Date; +}); + +// node_modules/compress-commons/lib/archivers/zip/constants.js +var require_constants = __commonJS((exports, module) => { + module.exports = { + WORD: 4, + DWORD: 8, + EMPTY: Buffer.alloc(0), + SHORT: 2, + SHORT_MASK: 65535, + SHORT_SHIFT: 16, + SHORT_ZERO: Buffer.from(Array(2)), + LONG: 4, + LONG_ZERO: Buffer.from(Array(4)), + MIN_VERSION_INITIAL: 10, + MIN_VERSION_DATA_DESCRIPTOR: 20, + MIN_VERSION_ZIP64: 45, + VERSION_MADEBY: 45, + METHOD_STORED: 0, + METHOD_DEFLATED: 8, + PLATFORM_UNIX: 3, + PLATFORM_FAT: 0, + SIG_LFH: 67324752, + SIG_DD: 134695760, + SIG_CFH: 33639248, + SIG_EOCD: 101010256, + SIG_ZIP64_EOCD: 101075792, + SIG_ZIP64_EOCD_LOC: 117853008, + ZIP64_MAGIC_SHORT: 65535, + ZIP64_MAGIC: 4294967295, + ZIP64_EXTRA_ID: 1, + ZLIB_NO_COMPRESSION: 0, + ZLIB_BEST_SPEED: 1, + ZLIB_BEST_COMPRESSION: 9, + ZLIB_DEFAULT_COMPRESSION: -1, + MODE_MASK: 4095, + DEFAULT_FILE_MODE: 33188, + DEFAULT_DIR_MODE: 16877, + EXT_FILE_ATTR_DIR: 1106051088, + EXT_FILE_ATTR_FILE: 2175008800, + S_IFMT: 61440, + S_IFIFO: 4096, + S_IFCHR: 8192, + S_IFDIR: 16384, + S_IFBLK: 24576, + S_IFREG: 32768, + S_IFLNK: 40960, + S_IFSOCK: 49152, + S_DOS_A: 32, + S_DOS_D: 16, + S_DOS_V: 8, + S_DOS_S: 4, + S_DOS_H: 2, + S_DOS_R: 1 + }; +}); + +// node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js +var require_zip_archive_entry = __commonJS((exports, module) => { + var inherits = __require("util").inherits; + var normalizePath = require_normalize_path(); + var ArchiveEntry = require_archive_entry(); + var GeneralPurposeBit = require_general_purpose_bit(); + var UnixStat = require_unix_stat(); + var constants = require_constants(); + var zipUtil = require_util3(); + var ZipArchiveEntry = module.exports = function(name) { + if (!(this instanceof ZipArchiveEntry)) { + return new ZipArchiveEntry(name); } - return dateish; + ArchiveEntry.call(this); + this.platform = constants.PLATFORM_FAT; + this.method = -1; + this.name = null; + this.size = 0; + this.csize = 0; + this.gpb = new GeneralPurposeBit; + this.crc = 0; + this.time = -1; + this.minver = constants.MIN_VERSION_INITIAL; + this.mode = -1; + this.extra = null; + this.exattr = 0; + this.inattr = 0; + this.comment = null; + if (name) { + this.setName(name); + } + }; + inherits(ZipArchiveEntry, ArchiveEntry); + ZipArchiveEntry.prototype.getCentralDirectoryExtra = function() { + return this.getExtra(); + }; + ZipArchiveEntry.prototype.getComment = function() { + return this.comment !== null ? this.comment : ""; + }; + ZipArchiveEntry.prototype.getCompressedSize = function() { + return this.csize; + }; + ZipArchiveEntry.prototype.getCrc = function() { + return this.crc; }; - utils.defaults = function(object, source, guard) { - var args = arguments; - args[0] = args[0] || {}; - return defaults(...args); + ZipArchiveEntry.prototype.getExternalAttributes = function() { + return this.exattr; }; - utils.isStream = function(source) { - return isStream(source); + ZipArchiveEntry.prototype.getExtra = function() { + return this.extra !== null ? this.extra : constants.EMPTY; }; - utils.lazyReadStream = function(filepath) { - return new lazystream.Readable(function() { - return fs3.createReadStream(filepath); - }); + ZipArchiveEntry.prototype.getGeneralPurposeBit = function() { + return this.gpb; }; - utils.normalizeInputSource = function(source) { - if (source === null) { - return Buffer.alloc(0); - } else if (typeof source === "string") { - return Buffer.from(source); - } else if (utils.isStream(source)) { - return source.pipe(new PassThrough); - } - return source; + ZipArchiveEntry.prototype.getInternalAttributes = function() { + return this.inattr; }; - utils.sanitizePath = function(filepath) { - return normalizePath(filepath, false).replace(/^\w+:/, "").replace(/^(\.\.\/|\/)+/, ""); + ZipArchiveEntry.prototype.getLastModifiedDate = function() { + return this.getTime(); }; - utils.trailingSlashIt = function(str) { - return str.slice(-1) !== "/" ? str + "/" : str; + ZipArchiveEntry.prototype.getLocalFileDataExtra = function() { + return this.getExtra(); }; - utils.unixifyPath = function(filepath) { - return normalizePath(filepath, false).replace(/^\w+:/, ""); + ZipArchiveEntry.prototype.getMethod = function() { + return this.method; }; - utils.walkdir = function(dirpath, base, callback) { - var results = []; - if (typeof base === "function") { - callback = base; - base = dirpath; - } - fs3.readdir(dirpath, function(err, list) { - var i = 0; - var file; - var filepath; - if (err) { - return callback(err); - } - (function next() { - file = list[i++]; - if (!file) { - return callback(null, results); - } - filepath = path3.join(dirpath, file); - fs3.stat(filepath, function(err2, stats) { - results.push({ - path: filepath, - relative: path3.relative(base, filepath).replace(/\\/g, "/"), - stats - }); - if (stats && stats.isDirectory()) { - utils.walkdir(filepath, base, function(err3, res) { - if (err3) { - return callback(err3); - } - res.forEach(function(dirEntry) { - results.push(dirEntry); - }); - next(); - }); - } else { - next(); - } - }); - })(); - }); + ZipArchiveEntry.prototype.getName = function() { + return this.name; }; -}); - -// node_modules/archiver/lib/error.js -var require_error2 = __commonJS((exports, module) => { - var util2 = __require("util"); - var ERROR_CODES = { - ABORTED: "archive was aborted", - DIRECTORYDIRPATHREQUIRED: "diretory dirpath argument must be a non-empty string value", - DIRECTORYFUNCTIONINVALIDDATA: "invalid data returned by directory custom data function", - ENTRYNAMEREQUIRED: "entry name must be a non-empty string value", - FILEFILEPATHREQUIRED: "file filepath argument must be a non-empty string value", - FINALIZING: "archive already finalizing", - QUEUECLOSED: "queue closed", - NOENDMETHOD: "no suitable finalize/end method defined by module", - DIRECTORYNOTSUPPORTED: "support for directory entries not defined by module", - FORMATSET: "archive format already set", - INPUTSTEAMBUFFERREQUIRED: "input source must be valid Stream or Buffer instance", - MODULESET: "module already set", - SYMLINKNOTSUPPORTED: "support for symlink entries not defined by module", - SYMLINKFILEPATHREQUIRED: "symlink filepath argument must be a non-empty string value", - SYMLINKTARGETREQUIRED: "symlink target argument must be a non-empty string value", - ENTRYNOTSUPPORTED: "entry not supported" + ZipArchiveEntry.prototype.getPlatform = function() { + return this.platform; }; - function ArchiverError(code, data) { - Error.captureStackTrace(this, this.constructor); - this.message = ERROR_CODES[code] || code; - this.code = code; - this.data = data; - } - util2.inherits(ArchiverError, Error); - exports = module.exports = ArchiverError; -}); - -// node_modules/archiver/lib/core.js -var require_core = __commonJS((exports, module) => { - var fs3 = __require("fs"); - var glob = require_readdir_glob(); - var async = require_async2(); - var path3 = __require("path"); - var util2 = require_archiver_utils(); - var inherits = __require("util").inherits; - var ArchiverError = require_error2(); - var Transform = require_ours().Transform; - var win32 = process.platform === "win32"; - var Archiver = function(format, options) { - if (!(this instanceof Archiver)) { - return new Archiver(format, options); - } - if (typeof format !== "string") { - options = format; - format = "zip"; - } - options = this.options = util2.defaults(options, { - highWaterMark: 1024 * 1024, - statConcurrency: 4 - }); - Transform.call(this, options); - this._format = false; - this._module = false; - this._pending = 0; - this._pointer = 0; - this._entriesCount = 0; - this._entriesProcessedCount = 0; - this._fsEntriesTotalBytes = 0; - this._fsEntriesProcessedBytes = 0; - this._queue = async.queue(this._onQueueTask.bind(this), 1); - this._queue.drain(this._onQueueDrain.bind(this)); - this._statQueue = async.queue(this._onStatQueueTask.bind(this), options.statConcurrency); - this._statQueue.drain(this._onQueueDrain.bind(this)); - this._state = { - aborted: false, - finalize: false, - finalizing: false, - finalized: false, - modulePiped: false - }; - this._streams = []; + ZipArchiveEntry.prototype.getSize = function() { + return this.size; }; - inherits(Archiver, Transform); - Archiver.prototype._abort = function() { - this._state.aborted = true; - this._queue.kill(); - this._statQueue.kill(); - if (this._queue.idle()) { - this._shutdown(); - } + ZipArchiveEntry.prototype.getTime = function() { + return this.time !== -1 ? zipUtil.dosToDate(this.time) : -1; }; - Archiver.prototype._append = function(filepath, data) { - data = data || {}; - var task = { - source: null, - filepath - }; - if (!data.name) { - data.name = filepath; - } - data.sourcePath = filepath; - task.data = data; - this._entriesCount++; - if (data.stats && data.stats instanceof fs3.Stats) { - task = this._updateQueueTaskWithStats(task, data.stats); - if (task) { - if (data.stats.size) { - this._fsEntriesTotalBytes += data.stats.size; - } - this._queue.push(task); - } - } else { - this._statQueue.push(task); - } + ZipArchiveEntry.prototype.getTimeDos = function() { + return this.time !== -1 ? this.time : 0; }; - Archiver.prototype._finalize = function() { - if (this._state.finalizing || this._state.finalized || this._state.aborted) { - return; - } - this._state.finalizing = true; - this._moduleFinalize(); - this._state.finalizing = false; - this._state.finalized = true; + ZipArchiveEntry.prototype.getUnixMode = function() { + return this.platform !== constants.PLATFORM_UNIX ? 0 : this.getExternalAttributes() >> constants.SHORT_SHIFT & constants.SHORT_MASK; }; - Archiver.prototype._maybeFinalize = function() { - if (this._state.finalizing || this._state.finalized || this._state.aborted) { - return false; - } - if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) { - this._finalize(); - return true; + ZipArchiveEntry.prototype.getVersionNeededToExtract = function() { + return this.minver; + }; + ZipArchiveEntry.prototype.setComment = function(comment) { + if (Buffer.byteLength(comment) !== comment.length) { + this.getGeneralPurposeBit().useUTF8ForNames(true); } - return false; + this.comment = comment; }; - Archiver.prototype._moduleAppend = function(source, data, callback) { - if (this._state.aborted) { - callback(); - return; + ZipArchiveEntry.prototype.setCompressedSize = function(size) { + if (size < 0) { + throw new Error("invalid entry compressed size"); } - this._module.append(source, data, function(err) { - this._task = null; - if (this._state.aborted) { - this._shutdown(); - return; - } - if (err) { - this.emit("error", err); - setImmediate(callback); - return; - } - this.emit("entry", data); - this._entriesProcessedCount++; - if (data.stats && data.stats.size) { - this._fsEntriesProcessedBytes += data.stats.size; - } - this.emit("progress", { - entries: { - total: this._entriesCount, - processed: this._entriesProcessedCount - }, - fs: { - totalBytes: this._fsEntriesTotalBytes, - processedBytes: this._fsEntriesProcessedBytes - } - }); - setImmediate(callback); - }.bind(this)); + this.csize = size; }; - Archiver.prototype._moduleFinalize = function() { - if (typeof this._module.finalize === "function") { - this._module.finalize(); - } else if (typeof this._module.end === "function") { - this._module.end(); - } else { - this.emit("error", new ArchiverError("NOENDMETHOD")); + ZipArchiveEntry.prototype.setCrc = function(crc) { + if (crc < 0) { + throw new Error("invalid entry crc32"); } + this.crc = crc; }; - Archiver.prototype._modulePipe = function() { - this._module.on("error", this._onModuleError.bind(this)); - this._module.pipe(this); - this._state.modulePiped = true; + ZipArchiveEntry.prototype.setExternalAttributes = function(attr) { + this.exattr = attr >>> 0; }; - Archiver.prototype._moduleSupports = function(key2) { - if (!this._module.supports || !this._module.supports[key2]) { - return false; + ZipArchiveEntry.prototype.setExtra = function(extra) { + this.extra = extra; + }; + ZipArchiveEntry.prototype.setGeneralPurposeBit = function(gpb) { + if (!(gpb instanceof GeneralPurposeBit)) { + throw new Error("invalid entry GeneralPurposeBit"); } - return this._module.supports[key2]; + this.gpb = gpb; }; - Archiver.prototype._moduleUnpipe = function() { - this._module.unpipe(this); - this._state.modulePiped = false; + ZipArchiveEntry.prototype.setInternalAttributes = function(attr) { + this.inattr = attr; }; - Archiver.prototype._normalizeEntryData = function(data, stats) { - data = util2.defaults(data, { - type: "file", - name: null, - date: null, - mode: null, - prefix: null, - sourcePath: null, - stats: false - }); - if (stats && data.stats === false) { - data.stats = stats; - } - var isDir = data.type === "directory"; - if (data.name) { - if (typeof data.prefix === "string" && data.prefix !== "") { - data.name = data.prefix + "/" + data.name; - data.prefix = null; - } - data.name = util2.sanitizePath(data.name); - if (data.type !== "symlink" && data.name.slice(-1) === "/") { - isDir = true; - data.type = "directory"; - } else if (isDir) { - data.name += "/"; - } + ZipArchiveEntry.prototype.setMethod = function(method) { + if (method < 0) { + throw new Error("invalid entry compression method"); } - if (typeof data.mode === "number") { - if (win32) { - data.mode &= 511; - } else { - data.mode &= 4095; - } - } else if (data.stats && data.mode === null) { - if (win32) { - data.mode = data.stats.mode & 511; - } else { - data.mode = data.stats.mode & 4095; - } - if (win32 && isDir) { - data.mode = 493; - } - } else if (data.mode === null) { - data.mode = isDir ? 493 : 420; + this.method = method; + }; + ZipArchiveEntry.prototype.setName = function(name, prependSlash = false) { + name = normalizePath(name, false).replace(/^\w+:/, "").replace(/^(\.\.\/|\/)+/, ""); + if (prependSlash) { + name = `/${name}`; } - if (data.stats && data.date === null) { - data.date = data.stats.mtime; - } else { - data.date = util2.dateify(data.date); + if (Buffer.byteLength(name) !== name.length) { + this.getGeneralPurposeBit().useUTF8ForNames(true); } - return data; + this.name = name; }; - Archiver.prototype._onModuleError = function(err) { - this.emit("error", err); + ZipArchiveEntry.prototype.setPlatform = function(platform) { + this.platform = platform; }; - Archiver.prototype._onQueueDrain = function() { - if (this._state.finalizing || this._state.finalized || this._state.aborted) { - return; - } - if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) { - this._finalize(); + ZipArchiveEntry.prototype.setSize = function(size) { + if (size < 0) { + throw new Error("invalid entry size"); } + this.size = size; }; - Archiver.prototype._onQueueTask = function(task, callback) { - var fullCallback = () => { - if (task.data.callback) { - task.data.callback(); - } - callback(); - }; - if (this._state.finalizing || this._state.finalized || this._state.aborted) { - fullCallback(); - return; + ZipArchiveEntry.prototype.setTime = function(time, forceLocalTime) { + if (!(time instanceof Date)) { + throw new Error("invalid entry time"); } - this._task = task; - this._moduleAppend(task.source, task.data, fullCallback); + this.time = zipUtil.dateToDos(time, forceLocalTime); }; - Archiver.prototype._onStatQueueTask = function(task, callback) { - if (this._state.finalizing || this._state.finalized || this._state.aborted) { - callback(); - return; - } - fs3.lstat(task.filepath, function(err, stats) { - if (this._state.aborted) { - setImmediate(callback); - return; - } - if (err) { - this._entriesCount--; - this.emit("warning", err); - setImmediate(callback); - return; - } - task = this._updateQueueTaskWithStats(task, stats); - if (task) { - if (stats.size) { - this._fsEntriesTotalBytes += stats.size; - } - this._queue.push(task); - } - setImmediate(callback); - }.bind(this)); + ZipArchiveEntry.prototype.setUnixMode = function(mode) { + mode |= this.isDirectory() ? constants.S_IFDIR : constants.S_IFREG; + var extattr = 0; + extattr |= mode << constants.SHORT_SHIFT | (this.isDirectory() ? constants.S_DOS_D : constants.S_DOS_A); + this.setExternalAttributes(extattr); + this.mode = mode & constants.MODE_MASK; + this.platform = constants.PLATFORM_UNIX; }; - Archiver.prototype._shutdown = function() { - this._moduleUnpipe(); - this.end(); + ZipArchiveEntry.prototype.setVersionNeededToExtract = function(minver) { + this.minver = minver; }; - Archiver.prototype._transform = function(chunk, encoding, callback) { - if (chunk) { - this._pointer += chunk.length; + ZipArchiveEntry.prototype.isDirectory = function() { + return this.getName().slice(-1) === "/"; + }; + ZipArchiveEntry.prototype.isUnixSymlink = function() { + return (this.getUnixMode() & UnixStat.FILE_TYPE_FLAG) === UnixStat.LINK_FLAG; + }; + ZipArchiveEntry.prototype.isZip64 = function() { + return this.csize > constants.ZIP64_MAGIC || this.size > constants.ZIP64_MAGIC; + }; +}); + +// node_modules/compress-commons/node_modules/is-stream/index.js +var require_is_stream2 = __commonJS((exports, module) => { + var isStream = (stream) => stream !== null && typeof stream === "object" && typeof stream.pipe === "function"; + isStream.writable = (stream) => isStream(stream) && stream.writable !== false && typeof stream._write === "function" && typeof stream._writableState === "object"; + isStream.readable = (stream) => isStream(stream) && stream.readable !== false && typeof stream._read === "function" && typeof stream._readableState === "object"; + isStream.duplex = (stream) => isStream.writable(stream) && isStream.readable(stream); + isStream.transform = (stream) => isStream.duplex(stream) && typeof stream._transform === "function"; + module.exports = isStream; +}); + +// node_modules/compress-commons/lib/util/index.js +var require_util4 = __commonJS((exports, module) => { + var Stream = __require("stream").Stream; + var PassThrough = require_ours().PassThrough; + var isStream = require_is_stream2(); + var util2 = module.exports = {}; + util2.normalizeInputSource = function(source) { + if (source === null) { + return Buffer.alloc(0); + } else if (typeof source === "string") { + return Buffer.from(source); + } else if (isStream(source) && !source._readableState) { + var normalized = new PassThrough; + source.pipe(normalized); + return normalized; } - callback(null, chunk); + return source; }; - Archiver.prototype._updateQueueTaskWithStats = function(task, stats) { - if (stats.isFile()) { - task.data.type = "file"; - task.data.sourceType = "stream"; - task.source = util2.lazyReadStream(task.filepath); - } else if (stats.isDirectory() && this._moduleSupports("directory")) { - task.data.name = util2.trailingSlashIt(task.data.name); - task.data.type = "directory"; - task.data.sourcePath = util2.trailingSlashIt(task.filepath); - task.data.sourceType = "buffer"; - task.source = Buffer.concat([]); - } else if (stats.isSymbolicLink() && this._moduleSupports("symlink")) { - var linkPath = fs3.readlinkSync(task.filepath); - var dirName = path3.dirname(task.filepath); - task.data.type = "symlink"; - task.data.linkname = path3.relative(dirName, path3.resolve(dirName, linkPath)); - task.data.sourceType = "buffer"; - task.source = Buffer.concat([]); - } else { - if (stats.isDirectory()) { - this.emit("warning", new ArchiverError("DIRECTORYNOTSUPPORTED", task.data)); - } else if (stats.isSymbolicLink()) { - this.emit("warning", new ArchiverError("SYMLINKNOTSUPPORTED", task.data)); - } else { - this.emit("warning", new ArchiverError("ENTRYNOTSUPPORTED", task.data)); - } - return null; +}); + +// node_modules/compress-commons/lib/archivers/archive-output-stream.js +var require_archive_output_stream = __commonJS((exports, module) => { + var inherits = __require("util").inherits; + var isStream = require_is_stream2(); + var Transform = require_ours().Transform; + var ArchiveEntry = require_archive_entry(); + var util2 = require_util4(); + var ArchiveOutputStream = module.exports = function(options) { + if (!(this instanceof ArchiveOutputStream)) { + return new ArchiveOutputStream(options); } - task.data = this._normalizeEntryData(task.data, stats); - return task; + Transform.call(this, options); + this.offset = 0; + this._archive = { + finish: false, + finished: false, + processing: false + }; }; - Archiver.prototype.abort = function() { - if (this._state.aborted || this._state.finalized) { - return this; + inherits(ArchiveOutputStream, Transform); + ArchiveOutputStream.prototype._appendBuffer = function(zae, source, callback) { + }; + ArchiveOutputStream.prototype._appendStream = function(zae, source, callback) { + }; + ArchiveOutputStream.prototype._emitErrorCallback = function(err) { + if (err) { + this.emit("error", err); } - this._abort(); - return this; }; - Archiver.prototype.append = function(source, data) { - if (this._state.finalize || this._state.aborted) { - this.emit("error", new ArchiverError("QUEUECLOSED")); - return this; + ArchiveOutputStream.prototype._finish = function(ae) { + }; + ArchiveOutputStream.prototype._normalizeEntry = function(ae) { + }; + ArchiveOutputStream.prototype._transform = function(chunk, encoding, callback) { + callback(null, chunk); + }; + ArchiveOutputStream.prototype.entry = function(ae, source, callback) { + source = source || null; + if (typeof callback !== "function") { + callback = this._emitErrorCallback.bind(this); } - data = this._normalizeEntryData(data); - if (typeof data.name !== "string" || data.name.length === 0) { - this.emit("error", new ArchiverError("ENTRYNAMEREQUIRED")); - return this; + if (!(ae instanceof ArchiveEntry)) { + callback(new Error("not a valid instance of ArchiveEntry")); + return; } - if (data.type === "directory" && !this._moduleSupports("directory")) { - this.emit("error", new ArchiverError("DIRECTORYNOTSUPPORTED", { name: data.name })); - return this; + if (this._archive.finish || this._archive.finished) { + callback(new Error("unacceptable entry after finish")); + return; + } + if (this._archive.processing) { + callback(new Error("already processing an entry")); + return; } + this._archive.processing = true; + this._normalizeEntry(ae); + this._entry = ae; source = util2.normalizeInputSource(source); if (Buffer.isBuffer(source)) { - data.sourceType = "buffer"; - } else if (util2.isStream(source)) { - data.sourceType = "stream"; + this._appendBuffer(ae, source, callback); + } else if (isStream(source)) { + this._appendStream(ae, source, callback); } else { - this.emit("error", new ArchiverError("INPUTSTEAMBUFFERREQUIRED", { name: data.name })); - return this; + this._archive.processing = false; + callback(new Error("input source must be valid Stream or Buffer instance")); + return; } - this._entriesCount++; - this._queue.push({ - data, - source - }); return this; }; - Archiver.prototype.directory = function(dirpath, destpath, data) { - if (this._state.finalize || this._state.aborted) { - this.emit("error", new ArchiverError("QUEUECLOSED")); - return this; - } - if (typeof dirpath !== "string" || dirpath.length === 0) { - this.emit("error", new ArchiverError("DIRECTORYDIRPATHREQUIRED")); - return this; - } - this._pending++; - if (destpath === false) { - destpath = ""; - } else if (typeof destpath !== "string") { - destpath = dirpath; - } - var dataFunction = false; - if (typeof data === "function") { - dataFunction = data; - data = {}; - } else if (typeof data !== "object") { - data = {}; - } - var globOptions = { - stat: true, - dot: true - }; - function onGlobEnd() { - this._pending--; - this._maybeFinalize(); + ArchiveOutputStream.prototype.finish = function() { + if (this._archive.processing) { + this._archive.finish = true; + return; } - function onGlobError(err) { - this.emit("error", err); + this._finish(); + }; + ArchiveOutputStream.prototype.getBytesWritten = function() { + return this.offset; + }; + ArchiveOutputStream.prototype.write = function(chunk, cb) { + if (chunk) { + this.offset += chunk.length; } - function onGlobMatch(match) { - globber.pause(); - var ignoreMatch = false; - var entryData = Object.assign({}, data); - entryData.name = match.relative; - entryData.prefix = destpath; - entryData.stats = match.stat; - entryData.callback = globber.resume.bind(globber); - try { - if (dataFunction) { - entryData = dataFunction(entryData); - if (entryData === false) { - ignoreMatch = true; - } else if (typeof entryData !== "object") { - throw new ArchiverError("DIRECTORYFUNCTIONINVALIDDATA", { dirpath }); - } - } - } catch (e) { - this.emit("error", e); - return; - } - if (ignoreMatch) { - globber.resume(); - return; + return Transform.prototype.write.call(this, chunk, cb); + }; +}); + +// node_modules/crc-32/crc32.js +var require_crc32 = __commonJS((exports) => { + /*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */ + var CRC32; + (function(factory) { + if (typeof DO_NOT_EXPORT_CRC === "undefined") { + if (typeof exports === "object") { + factory(exports); + } else if (typeof define === "function" && define.amd) { + define(function() { + var module2 = {}; + factory(module2); + return module2; + }); + } else { + factory(CRC32 = {}); } - this._append(match.absolute, entryData); + } else { + factory(CRC32 = {}); } - var globber = glob(dirpath, globOptions); - globber.on("error", onGlobError.bind(this)); - globber.on("match", onGlobMatch.bind(this)); - globber.on("end", onGlobEnd.bind(this)); - return this; - }; - Archiver.prototype.file = function(filepath, data) { - if (this._state.finalize || this._state.aborted) { - this.emit("error", new ArchiverError("QUEUECLOSED")); - return this; + })(function(CRC322) { + CRC322.version = "1.2.2"; + function signed_crc_table() { + var c = 0, table = new Array(256); + for (var n = 0;n != 256; ++n) { + c = n; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + table[n] = c; + } + return typeof Int32Array !== "undefined" ? new Int32Array(table) : table; } - if (typeof filepath !== "string" || filepath.length === 0) { - this.emit("error", new ArchiverError("FILEFILEPATHREQUIRED")); - return this; + var T0 = signed_crc_table(); + function slice_by_16_tables(T) { + var c = 0, v = 0, n = 0, table = typeof Int32Array !== "undefined" ? new Int32Array(4096) : new Array(4096); + for (n = 0;n != 256; ++n) + table[n] = T[n]; + for (n = 0;n != 256; ++n) { + v = T[n]; + for (c = 256 + n;c < 4096; c += 256) + v = table[c] = v >>> 8 ^ T[v & 255]; + } + var out = []; + for (n = 1;n != 16; ++n) + out[n - 1] = typeof Int32Array !== "undefined" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256); + return out; } - this._append(filepath, data); - return this; - }; - Archiver.prototype.glob = function(pattern, options, data) { - this._pending++; - options = util2.defaults(options, { - stat: true, - pattern - }); - function onGlobEnd() { - this._pending--; - this._maybeFinalize(); + var TT = slice_by_16_tables(T0); + var T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4]; + var T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9]; + var Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14]; + function crc32_bstr(bstr, seed) { + var C = seed ^ -1; + for (var i = 0, L = bstr.length;i < L; ) + C = C >>> 8 ^ T0[(C ^ bstr.charCodeAt(i++)) & 255]; + return ~C; } - function onGlobError(err) { - this.emit("error", err); + function crc32_buf(B, seed) { + var C = seed ^ -1, L = B.length - 15, i = 0; + for (;i < L; ) + C = Tf[B[i++] ^ C & 255] ^ Te[B[i++] ^ C >> 8 & 255] ^ Td[B[i++] ^ C >> 16 & 255] ^ Tc[B[i++] ^ C >>> 24] ^ Tb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^ T7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^ T3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]]; + L += 15; + while (i < L) + C = C >>> 8 ^ T0[(C ^ B[i++]) & 255]; + return ~C; } - function onGlobMatch(match) { - globber.pause(); - var entryData = Object.assign({}, data); - entryData.callback = globber.resume.bind(globber); - entryData.stats = match.stat; - entryData.name = match.relative; - this._append(match.absolute, entryData); + function crc32_str(str, seed) { + var C = seed ^ -1; + for (var i = 0, L = str.length, c = 0, d = 0;i < L; ) { + c = str.charCodeAt(i++); + if (c < 128) { + C = C >>> 8 ^ T0[(C ^ c) & 255]; + } else if (c < 2048) { + C = C >>> 8 ^ T0[(C ^ (192 | c >> 6 & 31)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } else if (c >= 55296 && c < 57344) { + c = (c & 1023) + 64; + d = str.charCodeAt(i++) & 1023; + C = C >>> 8 ^ T0[(C ^ (240 | c >> 8 & 7)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 2 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d & 63)) & 255]; + } else { + C = C >>> 8 ^ T0[(C ^ (224 | c >> 12 & 15)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 6 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } + } + return ~C; } - var globber = glob(options.cwd || ".", options); - globber.on("error", onGlobError.bind(this)); - globber.on("match", onGlobMatch.bind(this)); - globber.on("end", onGlobEnd.bind(this)); - return this; - }; - Archiver.prototype.finalize = function() { - if (this._state.aborted) { - var abortedError = new ArchiverError("ABORTED"); - this.emit("error", abortedError); - return Promise.reject(abortedError); + CRC322.table = T0; + CRC322.bstr = crc32_bstr; + CRC322.buf = crc32_buf; + CRC322.str = crc32_str; + }); +}); + +// node_modules/crc32-stream/lib/crc32-stream.js +var require_crc32_stream = __commonJS((exports, module) => { + var { Transform } = require_ours(); + var crc32 = require_crc32(); + + class CRC32Stream extends Transform { + constructor(options) { + super(options); + this.checksum = Buffer.allocUnsafe(4); + this.checksum.writeInt32BE(0, 0); + this.rawSize = 0; } - if (this._state.finalize) { - var finalizingError = new ArchiverError("FINALIZING"); - this.emit("error", finalizingError); - return Promise.reject(finalizingError); + _transform(chunk, encoding, callback) { + if (chunk) { + this.checksum = crc32.buf(chunk, this.checksum) >>> 0; + this.rawSize += chunk.length; + } + callback(null, chunk); } - this._state.finalize = true; - if (this._pending === 0 && this._queue.idle() && this._statQueue.idle()) { - this._finalize(); + digest(encoding) { + const checksum = Buffer.allocUnsafe(4); + checksum.writeUInt32BE(this.checksum >>> 0, 0); + return encoding ? checksum.toString(encoding) : checksum; } - var self2 = this; - return new Promise(function(resolve, reject) { - var errored; - self2._module.on("end", function() { - if (!errored) { - resolve(); - } - }); - self2._module.on("error", function(err) { - errored = true; - reject(err); - }); - }); - }; - Archiver.prototype.setFormat = function(format) { - if (this._format) { - this.emit("error", new ArchiverError("FORMATSET")); - return this; + hex() { + return this.digest("hex").toUpperCase(); } - this._format = format; - return this; - }; - Archiver.prototype.setModule = function(module2) { - if (this._state.aborted) { - this.emit("error", new ArchiverError("ABORTED")); - return this; + size() { + return this.rawSize; } - if (this._state.module) { - this.emit("error", new ArchiverError("MODULESET")); - return this; + } + module.exports = CRC32Stream; +}); + +// node_modules/crc32-stream/lib/deflate-crc32-stream.js +var require_deflate_crc32_stream = __commonJS((exports, module) => { + var { DeflateRaw } = __require("zlib"); + var crc32 = require_crc32(); + + class DeflateCRC32Stream extends DeflateRaw { + constructor(options) { + super(options); + this.checksum = Buffer.allocUnsafe(4); + this.checksum.writeInt32BE(0, 0); + this.rawSize = 0; + this.compressedSize = 0; } - this._module = module2; - this._modulePipe(); - return this; - }; - Archiver.prototype.symlink = function(filepath, target, mode) { - if (this._state.finalize || this._state.aborted) { - this.emit("error", new ArchiverError("QUEUECLOSED")); - return this; + push(chunk, encoding) { + if (chunk) { + this.compressedSize += chunk.length; + } + return super.push(chunk, encoding); } - if (typeof filepath !== "string" || filepath.length === 0) { - this.emit("error", new ArchiverError("SYMLINKFILEPATHREQUIRED")); - return this; + _transform(chunk, encoding, callback) { + if (chunk) { + this.checksum = crc32.buf(chunk, this.checksum) >>> 0; + this.rawSize += chunk.length; + } + super._transform(chunk, encoding, callback); } - if (typeof target !== "string" || target.length === 0) { - this.emit("error", new ArchiverError("SYMLINKTARGETREQUIRED", { filepath })); - return this; + digest(encoding) { + const checksum = Buffer.allocUnsafe(4); + checksum.writeUInt32BE(this.checksum >>> 0, 0); + return encoding ? checksum.toString(encoding) : checksum; } - if (!this._moduleSupports("symlink")) { - this.emit("error", new ArchiverError("SYMLINKNOTSUPPORTED", { filepath })); - return this; + hex() { + return this.digest("hex").toUpperCase(); } - var data = {}; - data.type = "symlink"; - data.name = filepath.replace(/\\/g, "/"); - data.linkname = target.replace(/\\/g, "/"); - data.sourceType = "buffer"; - if (typeof mode === "number") { - data.mode = mode; + size(compressed = false) { + if (compressed) { + return this.compressedSize; + } else { + return this.rawSize; + } } - this._entriesCount++; - this._queue.push({ - data, - source: Buffer.concat([]) - }); - return this; - }; - Archiver.prototype.pointer = function() { - return this._pointer; - }; - Archiver.prototype.use = function(plugin) { - this._streams.push(plugin); - return this; - }; - module.exports = Archiver; -}); - -// node_modules/compress-commons/lib/archivers/archive-entry.js -var require_archive_entry = __commonJS((exports, module) => { - var ArchiveEntry = module.exports = function() { - }; - ArchiveEntry.prototype.getName = function() { - }; - ArchiveEntry.prototype.getSize = function() { - }; - ArchiveEntry.prototype.getLastModifiedDate = function() { - }; - ArchiveEntry.prototype.isDirectory = function() { - }; + } + module.exports = DeflateCRC32Stream; }); -// node_modules/compress-commons/lib/archivers/zip/util.js -var require_util3 = __commonJS((exports, module) => { - var util2 = module.exports = {}; - util2.dateToDos = function(d, forceLocalTime) { - forceLocalTime = forceLocalTime || false; - var year = forceLocalTime ? d.getFullYear() : d.getUTCFullYear(); - if (year < 1980) { - return 2162688; - } else if (year >= 2044) { - return 2141175677; - } - var val = { - year, - month: forceLocalTime ? d.getMonth() : d.getUTCMonth(), - date: forceLocalTime ? d.getDate() : d.getUTCDate(), - hours: forceLocalTime ? d.getHours() : d.getUTCHours(), - minutes: forceLocalTime ? d.getMinutes() : d.getUTCMinutes(), - seconds: forceLocalTime ? d.getSeconds() : d.getUTCSeconds() - }; - return val.year - 1980 << 25 | val.month + 1 << 21 | val.date << 16 | val.hours << 11 | val.minutes << 5 | val.seconds / 2; - }; - util2.dosToDate = function(dos) { - return new Date((dos >> 25 & 127) + 1980, (dos >> 21 & 15) - 1, dos >> 16 & 31, dos >> 11 & 31, dos >> 5 & 63, (dos & 31) << 1); - }; - util2.fromDosTime = function(buf) { - return util2.dosToDate(buf.readUInt32LE(0)); - }; - util2.getEightBytes = function(v) { - var buf = Buffer.alloc(8); - buf.writeUInt32LE(v % 4294967296, 0); - buf.writeUInt32LE(v / 4294967296 | 0, 4); - return buf; - }; - util2.getShortBytes = function(v) { - var buf = Buffer.alloc(2); - buf.writeUInt16LE((v & 65535) >>> 0, 0); - return buf; - }; - util2.getShortBytesValue = function(buf, offset) { - return buf.readUInt16LE(offset); - }; - util2.getLongBytes = function(v) { - var buf = Buffer.alloc(4); - buf.writeUInt32LE((v & 4294967295) >>> 0, 0); - return buf; - }; - util2.getLongBytesValue = function(buf, offset) { - return buf.readUInt32LE(offset); - }; - util2.toDosTime = function(d) { - return util2.getLongBytes(util2.dateToDos(d)); +// node_modules/crc32-stream/lib/index.js +var require_lib3 = __commonJS((exports, module) => { + module.exports = { + CRC32Stream: require_crc32_stream(), + DeflateCRC32Stream: require_deflate_crc32_stream() }; }); -// node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js -var require_general_purpose_bit = __commonJS((exports, module) => { +// node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js +var require_zip_archive_output_stream = __commonJS((exports, module) => { + var inherits = __require("util").inherits; + var crc32 = require_crc32(); + var { CRC32Stream } = require_lib3(); + var { DeflateCRC32Stream } = require_lib3(); + var ArchiveOutputStream = require_archive_output_stream(); + var ZipArchiveEntry = require_zip_archive_entry(); + var GeneralPurposeBit = require_general_purpose_bit(); + var constants = require_constants(); + var util2 = require_util4(); var zipUtil = require_util3(); - var DATA_DESCRIPTOR_FLAG = 1 << 3; - var ENCRYPTION_FLAG = 1 << 0; - var NUMBER_OF_SHANNON_FANO_TREES_FLAG = 1 << 2; - var SLIDING_DICTIONARY_SIZE_FLAG = 1 << 1; - var STRONG_ENCRYPTION_FLAG = 1 << 6; - var UFT8_NAMES_FLAG = 1 << 11; - var GeneralPurposeBit = module.exports = function() { - if (!(this instanceof GeneralPurposeBit)) { - return new GeneralPurposeBit; + var ZipArchiveOutputStream = module.exports = function(options) { + if (!(this instanceof ZipArchiveOutputStream)) { + return new ZipArchiveOutputStream(options); } - this.descriptor = false; - this.encryption = false; - this.utf8 = false; - this.numberOfShannonFanoTrees = 0; - this.strongEncryption = false; - this.slidingDictionarySize = 0; - return this; + options = this.options = this._defaults(options); + ArchiveOutputStream.call(this, options); + this._entry = null; + this._entries = []; + this._archive = { + centralLength: 0, + centralOffset: 0, + comment: "", + finish: false, + finished: false, + processing: false, + forceZip64: options.forceZip64, + forceLocalTime: options.forceLocalTime + }; }; - GeneralPurposeBit.prototype.encode = function() { - return zipUtil.getShortBytes((this.descriptor ? DATA_DESCRIPTOR_FLAG : 0) | (this.utf8 ? UFT8_NAMES_FLAG : 0) | (this.encryption ? ENCRYPTION_FLAG : 0) | (this.strongEncryption ? STRONG_ENCRYPTION_FLAG : 0)); + inherits(ZipArchiveOutputStream, ArchiveOutputStream); + ZipArchiveOutputStream.prototype._afterAppend = function(ae) { + this._entries.push(ae); + if (ae.getGeneralPurposeBit().usesDataDescriptor()) { + this._writeDataDescriptor(ae); + } + this._archive.processing = false; + this._entry = null; + if (this._archive.finish && !this._archive.finished) { + this._finish(); + } }; - GeneralPurposeBit.prototype.parse = function(buf, offset) { - var flag = zipUtil.getShortBytesValue(buf, offset); - var gbp = new GeneralPurposeBit; - gbp.useDataDescriptor((flag & DATA_DESCRIPTOR_FLAG) !== 0); - gbp.useUTF8ForNames((flag & UFT8_NAMES_FLAG) !== 0); - gbp.useStrongEncryption((flag & STRONG_ENCRYPTION_FLAG) !== 0); - gbp.useEncryption((flag & ENCRYPTION_FLAG) !== 0); - gbp.setSlidingDictionarySize((flag & SLIDING_DICTIONARY_SIZE_FLAG) !== 0 ? 8192 : 4096); - gbp.setNumberOfShannonFanoTrees((flag & NUMBER_OF_SHANNON_FANO_TREES_FLAG) !== 0 ? 3 : 2); - return gbp; + ZipArchiveOutputStream.prototype._appendBuffer = function(ae, source, callback) { + if (source.length === 0) { + ae.setMethod(constants.METHOD_STORED); + } + var method = ae.getMethod(); + if (method === constants.METHOD_STORED) { + ae.setSize(source.length); + ae.setCompressedSize(source.length); + ae.setCrc(crc32.buf(source) >>> 0); + } + this._writeLocalFileHeader(ae); + if (method === constants.METHOD_STORED) { + this.write(source); + this._afterAppend(ae); + callback(null, ae); + return; + } else if (method === constants.METHOD_DEFLATED) { + this._smartStream(ae, callback).end(source); + return; + } else { + callback(new Error("compression method " + method + " not implemented")); + return; + } }; - GeneralPurposeBit.prototype.setNumberOfShannonFanoTrees = function(n) { - this.numberOfShannonFanoTrees = n; + ZipArchiveOutputStream.prototype._appendStream = function(ae, source, callback) { + ae.getGeneralPurposeBit().useDataDescriptor(true); + ae.setVersionNeededToExtract(constants.MIN_VERSION_DATA_DESCRIPTOR); + this._writeLocalFileHeader(ae); + var smart = this._smartStream(ae, callback); + source.once("error", function(err) { + smart.emit("error", err); + smart.end(); + }); + source.pipe(smart); }; - GeneralPurposeBit.prototype.getNumberOfShannonFanoTrees = function() { - return this.numberOfShannonFanoTrees; + ZipArchiveOutputStream.prototype._defaults = function(o) { + if (typeof o !== "object") { + o = {}; + } + if (typeof o.zlib !== "object") { + o.zlib = {}; + } + if (typeof o.zlib.level !== "number") { + o.zlib.level = constants.ZLIB_BEST_SPEED; + } + o.forceZip64 = !!o.forceZip64; + o.forceLocalTime = !!o.forceLocalTime; + return o; }; - GeneralPurposeBit.prototype.setSlidingDictionarySize = function(n) { - this.slidingDictionarySize = n; + ZipArchiveOutputStream.prototype._finish = function() { + this._archive.centralOffset = this.offset; + this._entries.forEach(function(ae) { + this._writeCentralFileHeader(ae); + }.bind(this)); + this._archive.centralLength = this.offset - this._archive.centralOffset; + if (this.isZip64()) { + this._writeCentralDirectoryZip64(); + } + this._writeCentralDirectoryEnd(); + this._archive.processing = false; + this._archive.finish = true; + this._archive.finished = true; + this.end(); }; - GeneralPurposeBit.prototype.getSlidingDictionarySize = function() { - return this.slidingDictionarySize; + ZipArchiveOutputStream.prototype._normalizeEntry = function(ae) { + if (ae.getMethod() === -1) { + ae.setMethod(constants.METHOD_DEFLATED); + } + if (ae.getMethod() === constants.METHOD_DEFLATED) { + ae.getGeneralPurposeBit().useDataDescriptor(true); + ae.setVersionNeededToExtract(constants.MIN_VERSION_DATA_DESCRIPTOR); + } + if (ae.getTime() === -1) { + ae.setTime(new Date, this._archive.forceLocalTime); + } + ae._offsets = { + file: 0, + data: 0, + contents: 0 + }; }; - GeneralPurposeBit.prototype.useDataDescriptor = function(b) { - this.descriptor = b; + ZipArchiveOutputStream.prototype._smartStream = function(ae, callback) { + var deflate = ae.getMethod() === constants.METHOD_DEFLATED; + var process11 = deflate ? new DeflateCRC32Stream(this.options.zlib) : new CRC32Stream; + var error = null; + function handleStuff() { + var digest = process11.digest().readUInt32BE(0); + ae.setCrc(digest); + ae.setSize(process11.size()); + ae.setCompressedSize(process11.size(true)); + this._afterAppend(ae); + callback(error, ae); + } + process11.once("end", handleStuff.bind(this)); + process11.once("error", function(err) { + error = err; + }); + process11.pipe(this, { end: false }); + return process11; }; - GeneralPurposeBit.prototype.usesDataDescriptor = function() { - return this.descriptor; + ZipArchiveOutputStream.prototype._writeCentralDirectoryEnd = function() { + var records = this._entries.length; + var size = this._archive.centralLength; + var offset = this._archive.centralOffset; + if (this.isZip64()) { + records = constants.ZIP64_MAGIC_SHORT; + size = constants.ZIP64_MAGIC; + offset = constants.ZIP64_MAGIC; + } + this.write(zipUtil.getLongBytes(constants.SIG_EOCD)); + this.write(constants.SHORT_ZERO); + this.write(constants.SHORT_ZERO); + this.write(zipUtil.getShortBytes(records)); + this.write(zipUtil.getShortBytes(records)); + this.write(zipUtil.getLongBytes(size)); + this.write(zipUtil.getLongBytes(offset)); + var comment = this.getComment(); + var commentLength = Buffer.byteLength(comment); + this.write(zipUtil.getShortBytes(commentLength)); + this.write(comment); }; - GeneralPurposeBit.prototype.useEncryption = function(b) { - this.encryption = b; + ZipArchiveOutputStream.prototype._writeCentralDirectoryZip64 = function() { + this.write(zipUtil.getLongBytes(constants.SIG_ZIP64_EOCD)); + this.write(zipUtil.getEightBytes(44)); + this.write(zipUtil.getShortBytes(constants.MIN_VERSION_ZIP64)); + this.write(zipUtil.getShortBytes(constants.MIN_VERSION_ZIP64)); + this.write(constants.LONG_ZERO); + this.write(constants.LONG_ZERO); + this.write(zipUtil.getEightBytes(this._entries.length)); + this.write(zipUtil.getEightBytes(this._entries.length)); + this.write(zipUtil.getEightBytes(this._archive.centralLength)); + this.write(zipUtil.getEightBytes(this._archive.centralOffset)); + this.write(zipUtil.getLongBytes(constants.SIG_ZIP64_EOCD_LOC)); + this.write(constants.LONG_ZERO); + this.write(zipUtil.getEightBytes(this._archive.centralOffset + this._archive.centralLength)); + this.write(zipUtil.getLongBytes(1)); }; - GeneralPurposeBit.prototype.usesEncryption = function() { - return this.encryption; + ZipArchiveOutputStream.prototype._writeCentralFileHeader = function(ae) { + var gpb = ae.getGeneralPurposeBit(); + var method = ae.getMethod(); + var fileOffset = ae._offsets.file; + var size = ae.getSize(); + var compressedSize = ae.getCompressedSize(); + if (ae.isZip64() || fileOffset > constants.ZIP64_MAGIC) { + size = constants.ZIP64_MAGIC; + compressedSize = constants.ZIP64_MAGIC; + fileOffset = constants.ZIP64_MAGIC; + ae.setVersionNeededToExtract(constants.MIN_VERSION_ZIP64); + var extraBuf = Buffer.concat([ + zipUtil.getShortBytes(constants.ZIP64_EXTRA_ID), + zipUtil.getShortBytes(24), + zipUtil.getEightBytes(ae.getSize()), + zipUtil.getEightBytes(ae.getCompressedSize()), + zipUtil.getEightBytes(ae._offsets.file) + ], 28); + ae.setExtra(extraBuf); + } + this.write(zipUtil.getLongBytes(constants.SIG_CFH)); + this.write(zipUtil.getShortBytes(ae.getPlatform() << 8 | constants.VERSION_MADEBY)); + this.write(zipUtil.getShortBytes(ae.getVersionNeededToExtract())); + this.write(gpb.encode()); + this.write(zipUtil.getShortBytes(method)); + this.write(zipUtil.getLongBytes(ae.getTimeDos())); + this.write(zipUtil.getLongBytes(ae.getCrc())); + this.write(zipUtil.getLongBytes(compressedSize)); + this.write(zipUtil.getLongBytes(size)); + var name = ae.getName(); + var comment = ae.getComment(); + var extra = ae.getCentralDirectoryExtra(); + if (gpb.usesUTF8ForNames()) { + name = Buffer.from(name); + comment = Buffer.from(comment); + } + this.write(zipUtil.getShortBytes(name.length)); + this.write(zipUtil.getShortBytes(extra.length)); + this.write(zipUtil.getShortBytes(comment.length)); + this.write(constants.SHORT_ZERO); + this.write(zipUtil.getShortBytes(ae.getInternalAttributes())); + this.write(zipUtil.getLongBytes(ae.getExternalAttributes())); + this.write(zipUtil.getLongBytes(fileOffset)); + this.write(name); + this.write(extra); + this.write(comment); }; - GeneralPurposeBit.prototype.useStrongEncryption = function(b) { - this.strongEncryption = b; + ZipArchiveOutputStream.prototype._writeDataDescriptor = function(ae) { + this.write(zipUtil.getLongBytes(constants.SIG_DD)); + this.write(zipUtil.getLongBytes(ae.getCrc())); + if (ae.isZip64()) { + this.write(zipUtil.getEightBytes(ae.getCompressedSize())); + this.write(zipUtil.getEightBytes(ae.getSize())); + } else { + this.write(zipUtil.getLongBytes(ae.getCompressedSize())); + this.write(zipUtil.getLongBytes(ae.getSize())); + } }; - GeneralPurposeBit.prototype.usesStrongEncryption = function() { - return this.strongEncryption; + ZipArchiveOutputStream.prototype._writeLocalFileHeader = function(ae) { + var gpb = ae.getGeneralPurposeBit(); + var method = ae.getMethod(); + var name = ae.getName(); + var extra = ae.getLocalFileDataExtra(); + if (ae.isZip64()) { + gpb.useDataDescriptor(true); + ae.setVersionNeededToExtract(constants.MIN_VERSION_ZIP64); + } + if (gpb.usesUTF8ForNames()) { + name = Buffer.from(name); + } + ae._offsets.file = this.offset; + this.write(zipUtil.getLongBytes(constants.SIG_LFH)); + this.write(zipUtil.getShortBytes(ae.getVersionNeededToExtract())); + this.write(gpb.encode()); + this.write(zipUtil.getShortBytes(method)); + this.write(zipUtil.getLongBytes(ae.getTimeDos())); + ae._offsets.data = this.offset; + if (gpb.usesDataDescriptor()) { + this.write(constants.LONG_ZERO); + this.write(constants.LONG_ZERO); + this.write(constants.LONG_ZERO); + } else { + this.write(zipUtil.getLongBytes(ae.getCrc())); + this.write(zipUtil.getLongBytes(ae.getCompressedSize())); + this.write(zipUtil.getLongBytes(ae.getSize())); + } + this.write(zipUtil.getShortBytes(name.length)); + this.write(zipUtil.getShortBytes(extra.length)); + this.write(name); + this.write(extra); + ae._offsets.contents = this.offset; }; - GeneralPurposeBit.prototype.useUTF8ForNames = function(b) { - this.utf8 = b; + ZipArchiveOutputStream.prototype.getComment = function(comment) { + return this._archive.comment !== null ? this._archive.comment : ""; }; - GeneralPurposeBit.prototype.usesUTF8ForNames = function() { - return this.utf8; + ZipArchiveOutputStream.prototype.isZip64 = function() { + return this._archive.forceZip64 || this._entries.length > constants.ZIP64_MAGIC_SHORT || this._archive.centralLength > constants.ZIP64_MAGIC || this._archive.centralOffset > constants.ZIP64_MAGIC; }; -}); - -// node_modules/compress-commons/lib/archivers/zip/unix-stat.js -var require_unix_stat = __commonJS((exports, module) => { - module.exports = { - PERM_MASK: 4095, - FILE_TYPE_FLAG: 61440, - LINK_FLAG: 40960, - FILE_FLAG: 32768, - DIR_FLAG: 16384, - DEFAULT_LINK_PERM: 511, - DEFAULT_DIR_PERM: 493, - DEFAULT_FILE_PERM: 420 + ZipArchiveOutputStream.prototype.setComment = function(comment) { + this._archive.comment = comment; }; }); -// node_modules/compress-commons/lib/archivers/zip/constants.js -var require_constants = __commonJS((exports, module) => { +// node_modules/compress-commons/lib/compress-commons.js +var require_compress_commons = __commonJS((exports, module) => { module.exports = { - WORD: 4, - DWORD: 8, - EMPTY: Buffer.alloc(0), - SHORT: 2, - SHORT_MASK: 65535, - SHORT_SHIFT: 16, - SHORT_ZERO: Buffer.from(Array(2)), - LONG: 4, - LONG_ZERO: Buffer.from(Array(4)), - MIN_VERSION_INITIAL: 10, - MIN_VERSION_DATA_DESCRIPTOR: 20, - MIN_VERSION_ZIP64: 45, - VERSION_MADEBY: 45, - METHOD_STORED: 0, - METHOD_DEFLATED: 8, - PLATFORM_UNIX: 3, - PLATFORM_FAT: 0, - SIG_LFH: 67324752, - SIG_DD: 134695760, - SIG_CFH: 33639248, - SIG_EOCD: 101010256, - SIG_ZIP64_EOCD: 101075792, - SIG_ZIP64_EOCD_LOC: 117853008, - ZIP64_MAGIC_SHORT: 65535, - ZIP64_MAGIC: 4294967295, - ZIP64_EXTRA_ID: 1, - ZLIB_NO_COMPRESSION: 0, - ZLIB_BEST_SPEED: 1, - ZLIB_BEST_COMPRESSION: 9, - ZLIB_DEFAULT_COMPRESSION: -1, - MODE_MASK: 4095, - DEFAULT_FILE_MODE: 33188, - DEFAULT_DIR_MODE: 16877, - EXT_FILE_ATTR_DIR: 1106051088, - EXT_FILE_ATTR_FILE: 2175008800, - S_IFMT: 61440, - S_IFIFO: 4096, - S_IFCHR: 8192, - S_IFDIR: 16384, - S_IFBLK: 24576, - S_IFREG: 32768, - S_IFLNK: 40960, - S_IFSOCK: 49152, - S_DOS_A: 32, - S_DOS_D: 16, - S_DOS_V: 8, - S_DOS_S: 4, - S_DOS_H: 2, - S_DOS_R: 1 + ArchiveEntry: require_archive_entry(), + ZipArchiveEntry: require_zip_archive_entry(), + ArchiveOutputStream: require_archive_output_stream(), + ZipArchiveOutputStream: require_zip_archive_output_stream() }; }); -// node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js -var require_zip_archive_entry = __commonJS((exports, module) => { +// node_modules/zip-stream/index.js +var require_zip_stream = __commonJS((exports, module) => { var inherits = __require("util").inherits; - var normalizePath = require_normalize_path(); - var ArchiveEntry = require_archive_entry(); - var GeneralPurposeBit = require_general_purpose_bit(); - var UnixStat = require_unix_stat(); - var constants = require_constants(); - var zipUtil = require_util3(); - var ZipArchiveEntry = module.exports = function(name) { - if (!(this instanceof ZipArchiveEntry)) { - return new ZipArchiveEntry(name); + var ZipArchiveOutputStream = require_compress_commons().ZipArchiveOutputStream; + var ZipArchiveEntry = require_compress_commons().ZipArchiveEntry; + var util2 = require_archiver_utils(); + var ZipStream = module.exports = function(options) { + if (!(this instanceof ZipStream)) { + return new ZipStream(options); } - ArchiveEntry.call(this); - this.platform = constants.PLATFORM_FAT; - this.method = -1; - this.name = null; - this.size = 0; - this.csize = 0; - this.gpb = new GeneralPurposeBit; - this.crc = 0; - this.time = -1; - this.minver = constants.MIN_VERSION_INITIAL; - this.mode = -1; - this.extra = null; - this.exattr = 0; - this.inattr = 0; - this.comment = null; - if (name) { - this.setName(name); + options = this.options = options || {}; + options.zlib = options.zlib || {}; + ZipArchiveOutputStream.call(this, options); + if (typeof options.level === "number" && options.level >= 0) { + options.zlib.level = options.level; + delete options.level; + } + if (!options.forceZip64 && typeof options.zlib.level === "number" && options.zlib.level === 0) { + options.store = true; + } + options.namePrependSlash = options.namePrependSlash || false; + if (options.comment && options.comment.length > 0) { + this.setComment(options.comment); } }; - inherits(ZipArchiveEntry, ArchiveEntry); - ZipArchiveEntry.prototype.getCentralDirectoryExtra = function() { - return this.getExtra(); - }; - ZipArchiveEntry.prototype.getComment = function() { - return this.comment !== null ? this.comment : ""; - }; - ZipArchiveEntry.prototype.getCompressedSize = function() { - return this.csize; - }; - ZipArchiveEntry.prototype.getCrc = function() { - return this.crc; - }; - ZipArchiveEntry.prototype.getExternalAttributes = function() { - return this.exattr; - }; - ZipArchiveEntry.prototype.getExtra = function() { - return this.extra !== null ? this.extra : constants.EMPTY; - }; - ZipArchiveEntry.prototype.getGeneralPurposeBit = function() { - return this.gpb; - }; - ZipArchiveEntry.prototype.getInternalAttributes = function() { - return this.inattr; - }; - ZipArchiveEntry.prototype.getLastModifiedDate = function() { - return this.getTime(); - }; - ZipArchiveEntry.prototype.getLocalFileDataExtra = function() { - return this.getExtra(); + inherits(ZipStream, ZipArchiveOutputStream); + ZipStream.prototype._normalizeFileData = function(data) { + data = util2.defaults(data, { + type: "file", + name: null, + namePrependSlash: this.options.namePrependSlash, + linkname: null, + date: null, + mode: null, + store: this.options.store, + comment: "" + }); + var isDir = data.type === "directory"; + var isSymlink = data.type === "symlink"; + if (data.name) { + data.name = util2.sanitizePath(data.name); + if (!isSymlink && data.name.slice(-1) === "/") { + isDir = true; + data.type = "directory"; + } else if (isDir) { + data.name += "/"; + } + } + if (isDir || isSymlink) { + data.store = true; + } + data.date = util2.dateify(data.date); + return data; }; - ZipArchiveEntry.prototype.getMethod = function() { - return this.method; + ZipStream.prototype.entry = function(source, data, callback) { + if (typeof callback !== "function") { + callback = this._emitErrorCallback.bind(this); + } + data = this._normalizeFileData(data); + if (data.type !== "file" && data.type !== "directory" && data.type !== "symlink") { + callback(new Error(data.type + " entries not currently supported")); + return; + } + if (typeof data.name !== "string" || data.name.length === 0) { + callback(new Error("entry name must be a non-empty string value")); + return; + } + if (data.type === "symlink" && typeof data.linkname !== "string") { + callback(new Error("entry linkname must be a non-empty string value when type equals symlink")); + return; + } + var entry = new ZipArchiveEntry(data.name); + entry.setTime(data.date, this.options.forceLocalTime); + if (data.namePrependSlash) { + entry.setName(data.name, true); + } + if (data.store) { + entry.setMethod(0); + } + if (data.comment.length > 0) { + entry.setComment(data.comment); + } + if (data.type === "symlink" && typeof data.mode !== "number") { + data.mode = 40960; + } + if (typeof data.mode === "number") { + if (data.type === "symlink") { + data.mode |= 40960; + } + entry.setUnixMode(data.mode); + } + if (data.type === "symlink" && typeof data.linkname === "string") { + source = Buffer.from(data.linkname); + } + return ZipArchiveOutputStream.prototype.entry.call(this, entry, source, callback); }; - ZipArchiveEntry.prototype.getName = function() { - return this.name; + ZipStream.prototype.finalize = function() { + this.finish(); }; - ZipArchiveEntry.prototype.getPlatform = function() { - return this.platform; +}); + +// node_modules/archiver/lib/plugins/zip.js +var require_zip3 = __commonJS((exports, module) => { + var engine = require_zip_stream(); + var util2 = require_archiver_utils(); + var Zip = function(options) { + if (!(this instanceof Zip)) { + return new Zip(options); + } + options = this.options = util2.defaults(options, { + comment: "", + forceUTC: false, + namePrependSlash: false, + store: false + }); + this.supports = { + directory: true, + symlink: true + }; + this.engine = new engine(options); }; - ZipArchiveEntry.prototype.getSize = function() { - return this.size; + Zip.prototype.append = function(source, data, callback) { + this.engine.entry(source, data, callback); }; - ZipArchiveEntry.prototype.getTime = function() { - return this.time !== -1 ? zipUtil.dosToDate(this.time) : -1; + Zip.prototype.finalize = function() { + this.engine.finalize(); }; - ZipArchiveEntry.prototype.getTimeDos = function() { - return this.time !== -1 ? this.time : 0; + Zip.prototype.on = function() { + return this.engine.on.apply(this.engine, arguments); }; - ZipArchiveEntry.prototype.getUnixMode = function() { - return this.platform !== constants.PLATFORM_UNIX ? 0 : this.getExternalAttributes() >> constants.SHORT_SHIFT & constants.SHORT_MASK; + Zip.prototype.pipe = function() { + return this.engine.pipe.apply(this.engine, arguments); }; - ZipArchiveEntry.prototype.getVersionNeededToExtract = function() { - return this.minver; + Zip.prototype.unpipe = function() { + return this.engine.unpipe.apply(this.engine, arguments); }; - ZipArchiveEntry.prototype.setComment = function(comment) { - if (Buffer.byteLength(comment) !== comment.length) { - this.getGeneralPurposeBit().useUTF8ForNames(true); + module.exports = Zip; +}); + +// node_modules/queue-tick/queue-microtask.js +var require_queue_microtask = __commonJS((exports, module) => { + module.exports = typeof queueMicrotask === "function" ? queueMicrotask : (fn) => Promise.resolve().then(fn); +}); + +// node_modules/queue-tick/process-next-tick.js +var require_process_next_tick = __commonJS((exports, module) => { + module.exports = typeof process !== "undefined" && typeof process.nextTick === "function" ? process.nextTick.bind(process) : require_queue_microtask(); +}); + +// node_modules/fast-fifo/fixed-size.js +var require_fixed_size = __commonJS((exports, module) => { + module.exports = class FixedFIFO { + constructor(hwm) { + if (!(hwm > 0) || (hwm - 1 & hwm) !== 0) + throw new Error("Max size for a FixedFIFO should be a power of two"); + this.buffer = new Array(hwm); + this.mask = hwm - 1; + this.top = 0; + this.btm = 0; + this.next = null; } - this.comment = comment; - }; - ZipArchiveEntry.prototype.setCompressedSize = function(size) { - if (size < 0) { - throw new Error("invalid entry compressed size"); + clear() { + this.top = this.btm = 0; + this.next = null; + this.buffer.fill(undefined); } - this.csize = size; - }; - ZipArchiveEntry.prototype.setCrc = function(crc) { - if (crc < 0) { - throw new Error("invalid entry crc32"); + push(data) { + if (this.buffer[this.top] !== undefined) + return false; + this.buffer[this.top] = data; + this.top = this.top + 1 & this.mask; + return true; } - this.crc = crc; - }; - ZipArchiveEntry.prototype.setExternalAttributes = function(attr) { - this.exattr = attr >>> 0; - }; - ZipArchiveEntry.prototype.setExtra = function(extra) { - this.extra = extra; - }; - ZipArchiveEntry.prototype.setGeneralPurposeBit = function(gpb) { - if (!(gpb instanceof GeneralPurposeBit)) { - throw new Error("invalid entry GeneralPurposeBit"); + shift() { + const last = this.buffer[this.btm]; + if (last === undefined) + return; + this.buffer[this.btm] = undefined; + this.btm = this.btm + 1 & this.mask; + return last; } - this.gpb = gpb; - }; - ZipArchiveEntry.prototype.setInternalAttributes = function(attr) { - this.inattr = attr; - }; - ZipArchiveEntry.prototype.setMethod = function(method) { - if (method < 0) { - throw new Error("invalid entry compression method"); + peek() { + return this.buffer[this.btm]; + } + isEmpty() { + return this.buffer[this.btm] === undefined; } - this.method = method; }; - ZipArchiveEntry.prototype.setName = function(name, prependSlash = false) { - name = normalizePath(name, false).replace(/^\w+:/, "").replace(/^(\.\.\/|\/)+/, ""); - if (prependSlash) { - name = `/${name}`; +}); + +// node_modules/fast-fifo/index.js +var require_fast_fifo = __commonJS((exports, module) => { + var FixedFIFO = require_fixed_size(); + module.exports = class FastFIFO { + constructor(hwm) { + this.hwm = hwm || 16; + this.head = new FixedFIFO(this.hwm); + this.tail = this.head; + this.length = 0; } - if (Buffer.byteLength(name) !== name.length) { - this.getGeneralPurposeBit().useUTF8ForNames(true); + clear() { + this.head = this.tail; + this.head.clear(); + this.length = 0; } - this.name = name; - }; - ZipArchiveEntry.prototype.setPlatform = function(platform) { - this.platform = platform; - }; - ZipArchiveEntry.prototype.setSize = function(size) { - if (size < 0) { - throw new Error("invalid entry size"); + push(val) { + this.length++; + if (!this.head.push(val)) { + const prev = this.head; + this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length); + this.head.push(val); + } } - this.size = size; - }; - ZipArchiveEntry.prototype.setTime = function(time, forceLocalTime) { - if (!(time instanceof Date)) { - throw new Error("invalid entry time"); + shift() { + if (this.length !== 0) + this.length--; + const val = this.tail.shift(); + if (val === undefined && this.tail.next) { + const next = this.tail.next; + this.tail.next = null; + this.tail = next; + return this.tail.shift(); + } + return val; + } + peek() { + const val = this.tail.peek(); + if (val === undefined && this.tail.next) + return this.tail.next.peek(); + return val; + } + isEmpty() { + return this.length === 0; } - this.time = zipUtil.dateToDos(time, forceLocalTime); - }; - ZipArchiveEntry.prototype.setUnixMode = function(mode) { - mode |= this.isDirectory() ? constants.S_IFDIR : constants.S_IFREG; - var extattr = 0; - extattr |= mode << constants.SHORT_SHIFT | (this.isDirectory() ? constants.S_DOS_D : constants.S_DOS_A); - this.setExternalAttributes(extattr); - this.mode = mode & constants.MODE_MASK; - this.platform = constants.PLATFORM_UNIX; - }; - ZipArchiveEntry.prototype.setVersionNeededToExtract = function(minver) { - this.minver = minver; - }; - ZipArchiveEntry.prototype.isDirectory = function() { - return this.getName().slice(-1) === "/"; }; - ZipArchiveEntry.prototype.isUnixSymlink = function() { - return (this.getUnixMode() & UnixStat.FILE_TYPE_FLAG) === UnixStat.LINK_FLAG; +}); + +// node_modules/b4a/index.js +var require_b4a = __commonJS((exports, module) => { + function isBuffer(value) { + return Buffer.isBuffer(value) || value instanceof Uint8Array; + } + function isEncoding(encoding) { + return Buffer.isEncoding(encoding); + } + function alloc(size, fill2, encoding) { + return Buffer.alloc(size, fill2, encoding); + } + function allocUnsafe(size) { + return Buffer.allocUnsafe(size); + } + function allocUnsafeSlow(size) { + return Buffer.allocUnsafeSlow(size); + } + function byteLength(string, encoding) { + return Buffer.byteLength(string, encoding); + } + function compare(a, b) { + return Buffer.compare(a, b); + } + function concat(buffers, totalLength) { + return Buffer.concat(buffers, totalLength); + } + function copy(source, target, targetStart, start, end) { + return toBuffer(source).copy(target, targetStart, start, end); + } + function equals(a, b) { + return toBuffer(a).equals(b); + } + function fill(buffer, value, offset, end, encoding) { + return toBuffer(buffer).fill(value, offset, end, encoding); + } + function from2(value, encodingOrOffset, length) { + return Buffer.from(value, encodingOrOffset, length); + } + function includes(buffer, value, byteOffset, encoding) { + return toBuffer(buffer).includes(value, byteOffset, encoding); + } + function indexOf(buffer, value, byfeOffset, encoding) { + return toBuffer(buffer).indexOf(value, byfeOffset, encoding); + } + function lastIndexOf(buffer, value, byteOffset, encoding) { + return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding); + } + function swap16(buffer) { + return toBuffer(buffer).swap16(); + } + function swap32(buffer) { + return toBuffer(buffer).swap32(); + } + function swap64(buffer) { + return toBuffer(buffer).swap64(); + } + function toBuffer(buffer) { + if (Buffer.isBuffer(buffer)) + return buffer; + return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength); + } + function toString(buffer, encoding, start, end) { + return toBuffer(buffer).toString(encoding, start, end); + } + function write(buffer, string, offset, length, encoding) { + return toBuffer(buffer).write(string, offset, length, encoding); + } + function writeDoubleLE(buffer, value, offset) { + return toBuffer(buffer).writeDoubleLE(value, offset); + } + function writeFloatLE(buffer, value, offset) { + return toBuffer(buffer).writeFloatLE(value, offset); + } + function writeUInt32LE(buffer, value, offset) { + return toBuffer(buffer).writeUInt32LE(value, offset); + } + function writeInt32LE(buffer, value, offset) { + return toBuffer(buffer).writeInt32LE(value, offset); + } + function readDoubleLE(buffer, offset) { + return toBuffer(buffer).readDoubleLE(offset); + } + function readFloatLE(buffer, offset) { + return toBuffer(buffer).readFloatLE(offset); + } + function readUInt32LE(buffer, offset) { + return toBuffer(buffer).readUInt32LE(offset); + } + function readInt32LE(buffer, offset) { + return toBuffer(buffer).readInt32LE(offset); + } + function writeDoubleBE(buffer, value, offset) { + return toBuffer(buffer).writeDoubleBE(value, offset); + } + function writeFloatBE(buffer, value, offset) { + return toBuffer(buffer).writeFloatBE(value, offset); + } + function writeUInt32BE(buffer, value, offset) { + return toBuffer(buffer).writeUInt32BE(value, offset); + } + function writeInt32BE(buffer, value, offset) { + return toBuffer(buffer).writeInt32BE(value, offset); + } + function readDoubleBE(buffer, offset) { + return toBuffer(buffer).readDoubleBE(offset); + } + function readFloatBE(buffer, offset) { + return toBuffer(buffer).readFloatBE(offset); + } + function readUInt32BE(buffer, offset) { + return toBuffer(buffer).readUInt32BE(offset); + } + function readInt32BE(buffer, offset) { + return toBuffer(buffer).readInt32BE(offset); + } + module.exports = { + isBuffer, + isEncoding, + alloc, + allocUnsafe, + allocUnsafeSlow, + byteLength, + compare, + concat, + copy, + equals, + fill, + from: from2, + includes, + indexOf, + lastIndexOf, + swap16, + swap32, + swap64, + toBuffer, + toString, + write, + writeDoubleLE, + writeFloatLE, + writeUInt32LE, + writeInt32LE, + readDoubleLE, + readFloatLE, + readUInt32LE, + readInt32LE, + writeDoubleBE, + writeFloatBE, + writeUInt32BE, + writeInt32BE, + readDoubleBE, + readFloatBE, + readUInt32BE, + readInt32BE }; - ZipArchiveEntry.prototype.isZip64 = function() { - return this.csize > constants.ZIP64_MAGIC || this.size > constants.ZIP64_MAGIC; +}); + +// node_modules/text-decoder/lib/pass-through-decoder.js +var require_pass_through_decoder = __commonJS((exports, module) => { + var b4a = require_b4a(); + module.exports = class PassThroughDecoder { + constructor(encoding) { + this.encoding = encoding; + } + get remaining() { + return 0; + } + decode(tail) { + return b4a.toString(tail, this.encoding); + } + flush() { + return ""; + } }; }); -// node_modules/compress-commons/node_modules/is-stream/index.js -var require_is_stream2 = __commonJS((exports, module) => { - var isStream = (stream) => stream !== null && typeof stream === "object" && typeof stream.pipe === "function"; - isStream.writable = (stream) => isStream(stream) && stream.writable !== false && typeof stream._write === "function" && typeof stream._writableState === "object"; - isStream.readable = (stream) => isStream(stream) && stream.readable !== false && typeof stream._read === "function" && typeof stream._readableState === "object"; - isStream.duplex = (stream) => isStream.writable(stream) && isStream.readable(stream); - isStream.transform = (stream) => isStream.duplex(stream) && typeof stream._transform === "function"; - module.exports = isStream; +// node_modules/text-decoder/lib/utf8-decoder.js +var require_utf8_decoder = __commonJS((exports, module) => { + var b4a = require_b4a(); + module.exports = class UTF8Decoder { + constructor() { + this.codePoint = 0; + this.bytesSeen = 0; + this.bytesNeeded = 0; + this.lowerBoundary = 128; + this.upperBoundary = 191; + } + get remaining() { + return this.bytesSeen; + } + decode(data) { + if (this.bytesNeeded === 0) { + let isBoundary = true; + for (let i = Math.max(0, data.byteLength - 4), n = data.byteLength;i < n && isBoundary; i++) { + isBoundary = data[i] <= 127; + } + if (isBoundary) + return b4a.toString(data, "utf8"); + } + let result = ""; + for (let i = 0, n = data.byteLength;i < n; i++) { + const byte = data[i]; + if (this.bytesNeeded === 0) { + if (byte <= 127) { + result += String.fromCharCode(byte); + } else { + this.bytesSeen = 1; + if (byte >= 194 && byte <= 223) { + this.bytesNeeded = 2; + this.codePoint = byte & 31; + } else if (byte >= 224 && byte <= 239) { + if (byte === 224) + this.lowerBoundary = 160; + else if (byte === 237) + this.upperBoundary = 159; + this.bytesNeeded = 3; + this.codePoint = byte & 15; + } else if (byte >= 240 && byte <= 244) { + if (byte === 240) + this.lowerBoundary = 144; + if (byte === 244) + this.upperBoundary = 143; + this.bytesNeeded = 4; + this.codePoint = byte & 7; + } else { + result += "ļæ½"; + } + } + continue; + } + if (byte < this.lowerBoundary || byte > this.upperBoundary) { + this.codePoint = 0; + this.bytesNeeded = 0; + this.bytesSeen = 0; + this.lowerBoundary = 128; + this.upperBoundary = 191; + result += "ļæ½"; + continue; + } + this.lowerBoundary = 128; + this.upperBoundary = 191; + this.codePoint = this.codePoint << 6 | byte & 63; + this.bytesSeen++; + if (this.bytesSeen !== this.bytesNeeded) + continue; + result += String.fromCodePoint(this.codePoint); + this.codePoint = 0; + this.bytesNeeded = 0; + this.bytesSeen = 0; + } + return result; + } + flush() { + const result = this.bytesNeeded > 0 ? "ļæ½" : ""; + this.codePoint = 0; + this.bytesNeeded = 0; + this.bytesSeen = 0; + this.lowerBoundary = 128; + this.upperBoundary = 191; + return result; + } + }; }); -// node_modules/compress-commons/lib/util/index.js -var require_util4 = __commonJS((exports, module) => { - var Stream = __require("stream").Stream; - var PassThrough = require_ours().PassThrough; - var isStream = require_is_stream2(); - var util2 = module.exports = {}; - util2.normalizeInputSource = function(source) { - if (source === null) { - return Buffer.alloc(0); - } else if (typeof source === "string") { - return Buffer.from(source); - } else if (isStream(source) && !source._readableState) { - var normalized = new PassThrough; - source.pipe(normalized); - return normalized; +// node_modules/text-decoder/index.js +var require_text_decoder = __commonJS((exports, module) => { + var PassThroughDecoder = require_pass_through_decoder(); + var UTF8Decoder = require_utf8_decoder(); + module.exports = class TextDecoder2 { + constructor(encoding = "utf8") { + this.encoding = normalizeEncoding(encoding); + switch (this.encoding) { + case "utf8": + this.decoder = new UTF8Decoder; + break; + case "utf16le": + case "base64": + throw new Error("Unsupported encoding: " + this.encoding); + default: + this.decoder = new PassThroughDecoder(this.encoding); + } + } + get remaining() { + return this.decoder.remaining; + } + push(data) { + if (typeof data === "string") + return data; + return this.decoder.decode(data); + } + write(data) { + return this.push(data); + } + end(data) { + let result = ""; + if (data) + result = this.push(data); + result += this.decoder.flush(); + return result; } - return source; }; + function normalizeEncoding(encoding) { + encoding = encoding.toLowerCase(); + switch (encoding) { + case "utf8": + case "utf-8": + return "utf8"; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return "utf16le"; + case "latin1": + case "binary": + return "latin1"; + case "base64": + case "ascii": + case "hex": + return encoding; + default: + throw new Error("Unknown encoding: " + encoding); + } + } }); -// node_modules/compress-commons/lib/archivers/archive-output-stream.js -var require_archive_output_stream = __commonJS((exports, module) => { - var inherits = __require("util").inherits; - var isStream = require_is_stream2(); - var Transform = require_ours().Transform; - var ArchiveEntry = require_archive_entry(); - var util2 = require_util4(); - var ArchiveOutputStream = module.exports = function(options) { - if (!(this instanceof ArchiveOutputStream)) { - return new ArchiveOutputStream(options); +// node_modules/streamx/index.js +var require_streamx = __commonJS((exports, module) => { + var { EventEmitter } = __require("events"); + var STREAM_DESTROYED = new Error("Stream was destroyed"); + var PREMATURE_CLOSE = new Error("Premature close"); + var queueTick = require_process_next_tick(); + var FIFO = require_fast_fifo(); + var TextDecoder2 = require_text_decoder(); + var MAX = (1 << 29) - 1; + var OPENING = 1; + var PREDESTROYING = 2; + var DESTROYING = 4; + var DESTROYED = 8; + var NOT_OPENING = MAX ^ OPENING; + var NOT_PREDESTROYING = MAX ^ PREDESTROYING; + var READ_ACTIVE = 1 << 4; + var READ_UPDATING = 2 << 4; + var READ_PRIMARY = 4 << 4; + var READ_QUEUED = 8 << 4; + var READ_RESUMED = 16 << 4; + var READ_PIPE_DRAINED = 32 << 4; + var READ_ENDING = 64 << 4; + var READ_EMIT_DATA = 128 << 4; + var READ_EMIT_READABLE = 256 << 4; + var READ_EMITTED_READABLE = 512 << 4; + var READ_DONE = 1024 << 4; + var READ_NEXT_TICK = 2048 << 4; + var READ_NEEDS_PUSH = 4096 << 4; + var READ_READ_AHEAD = 8192 << 4; + var READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED; + var READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH; + var READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE; + var READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED; + var READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD; + var READ_NOT_ACTIVE = MAX ^ READ_ACTIVE; + var READ_NON_PRIMARY = MAX ^ READ_PRIMARY; + var READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH); + var READ_PUSHED = MAX ^ READ_NEEDS_PUSH; + var READ_PAUSED = MAX ^ READ_RESUMED; + var READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE); + var READ_NOT_ENDING = MAX ^ READ_ENDING; + var READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING; + var READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK; + var READ_NOT_UPDATING = MAX ^ READ_UPDATING; + var READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD; + var READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD; + var WRITE_ACTIVE = 1 << 18; + var WRITE_UPDATING = 2 << 18; + var WRITE_PRIMARY = 4 << 18; + var WRITE_QUEUED = 8 << 18; + var WRITE_UNDRAINED = 16 << 18; + var WRITE_DONE = 32 << 18; + var WRITE_EMIT_DRAIN = 64 << 18; + var WRITE_NEXT_TICK = 128 << 18; + var WRITE_WRITING = 256 << 18; + var WRITE_FINISHING = 512 << 18; + var WRITE_CORKED = 1024 << 18; + var WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING); + var WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY; + var WRITE_NOT_FINISHING = MAX ^ (WRITE_ACTIVE | WRITE_FINISHING); + var WRITE_DRAINED = MAX ^ WRITE_UNDRAINED; + var WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED; + var WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK; + var WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING; + var WRITE_NOT_CORKED = MAX ^ WRITE_CORKED; + var ACTIVE = READ_ACTIVE | WRITE_ACTIVE; + var NOT_ACTIVE = MAX ^ ACTIVE; + var DONE = READ_DONE | WRITE_DONE; + var DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING; + var OPEN_STATUS = DESTROY_STATUS | OPENING; + var AUTO_DESTROY = DESTROY_STATUS | DONE; + var NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY; + var ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK; + var TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE; + var IS_OPENING = OPEN_STATUS | TICKING; + var READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE; + var READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED; + var READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED; + var READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE; + var SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD; + var READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE; + var READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY; + var READ_NEXT_TICK_OR_OPENING = READ_NEXT_TICK | OPENING; + var WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE; + var WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED; + var WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE; + var WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE; + var WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED; + var WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE; + var WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING; + var WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE; + var WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE; + var WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY; + var WRITE_DROP_DATA = WRITE_FINISHING | WRITE_DONE | DESTROY_STATUS; + var asyncIterator = Symbol.asyncIterator || Symbol("asyncIterator"); + + class WritableState { + constructor(stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) { + this.stream = stream; + this.queue = new FIFO; + this.highWaterMark = highWaterMark; + this.buffered = 0; + this.error = null; + this.pipeline = null; + this.drains = null; + this.byteLength = byteLengthWritable || byteLength || defaultByteLength; + this.map = mapWritable || map; + this.afterWrite = afterWrite.bind(this); + this.afterUpdateNextTick = updateWriteNT.bind(this); } - Transform.call(this, options); - this.offset = 0; - this._archive = { - finish: false, - finished: false, - processing: false - }; - }; - inherits(ArchiveOutputStream, Transform); - ArchiveOutputStream.prototype._appendBuffer = function(zae, source, callback) { - }; - ArchiveOutputStream.prototype._appendStream = function(zae, source, callback) { - }; - ArchiveOutputStream.prototype._emitErrorCallback = function(err) { - if (err) { - this.emit("error", err); + get ended() { + return (this.stream._duplexState & WRITE_DONE) !== 0; } - }; - ArchiveOutputStream.prototype._finish = function(ae) { - }; - ArchiveOutputStream.prototype._normalizeEntry = function(ae) { - }; - ArchiveOutputStream.prototype._transform = function(chunk, encoding, callback) { - callback(null, chunk); - }; - ArchiveOutputStream.prototype.entry = function(ae, source, callback) { - source = source || null; - if (typeof callback !== "function") { - callback = this._emitErrorCallback.bind(this); + push(data) { + if ((this.stream._duplexState & WRITE_DROP_DATA) !== 0) + return false; + if (this.map !== null) + data = this.map(data); + this.buffered += this.byteLength(data); + this.queue.push(data); + if (this.buffered < this.highWaterMark) { + this.stream._duplexState |= WRITE_QUEUED; + return true; + } + this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED; + return false; } - if (!(ae instanceof ArchiveEntry)) { - callback(new Error("not a valid instance of ArchiveEntry")); - return; + shift() { + const data = this.queue.shift(); + this.buffered -= this.byteLength(data); + if (this.buffered === 0) + this.stream._duplexState &= WRITE_NOT_QUEUED; + return data; } - if (this._archive.finish || this._archive.finished) { - callback(new Error("unacceptable entry after finish")); - return; + end(data) { + if (typeof data === "function") + this.stream.once("finish", data); + else if (data !== undefined && data !== null) + this.push(data); + this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY; } - if (this._archive.processing) { - callback(new Error("already processing an entry")); - return; + autoBatch(data, cb) { + const buffer = []; + const stream = this.stream; + buffer.push(data); + while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) { + buffer.push(stream._writableState.shift()); + } + if ((stream._duplexState & OPEN_STATUS) !== 0) + return cb(null); + stream._writev(buffer, cb); } - this._archive.processing = true; - this._normalizeEntry(ae); - this._entry = ae; - source = util2.normalizeInputSource(source); - if (Buffer.isBuffer(source)) { - this._appendBuffer(ae, source, callback); - } else if (isStream(source)) { - this._appendStream(ae, source, callback); - } else { - this._archive.processing = false; - callback(new Error("input source must be valid Stream or Buffer instance")); - return; + update() { + const stream = this.stream; + stream._duplexState |= WRITE_UPDATING; + do { + while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) { + const data = this.shift(); + stream._duplexState |= WRITE_ACTIVE_AND_WRITING; + stream._write(data, this.afterWrite); + } + if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) + this.updateNonPrimary(); + } while (this.continueUpdate() === true); + stream._duplexState &= WRITE_NOT_UPDATING; } - return this; - }; - ArchiveOutputStream.prototype.finish = function() { - if (this._archive.processing) { - this._archive.finish = true; - return; + updateNonPrimary() { + const stream = this.stream; + if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) { + stream._duplexState = stream._duplexState | WRITE_ACTIVE; + stream._final(afterFinal.bind(this)); + return; + } + if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) { + if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) { + stream._duplexState |= ACTIVE; + stream._destroy(afterDestroy.bind(this)); + } + return; + } + if ((stream._duplexState & IS_OPENING) === OPENING) { + stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING; + stream._open(afterOpen.bind(this)); + } } - this._finish(); - }; - ArchiveOutputStream.prototype.getBytesWritten = function() { - return this.offset; - }; - ArchiveOutputStream.prototype.write = function(chunk, cb) { - if (chunk) { - this.offset += chunk.length; + continueUpdate() { + if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) + return false; + this.stream._duplexState &= WRITE_NOT_NEXT_TICK; + return true; } - return Transform.prototype.write.call(this, chunk, cb); - }; -}); + updateCallback() { + if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) + this.update(); + else + this.updateNextTick(); + } + updateNextTick() { + if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) + return; + this.stream._duplexState |= WRITE_NEXT_TICK; + if ((this.stream._duplexState & WRITE_UPDATING) === 0) + queueTick(this.afterUpdateNextTick); + } + } -// node_modules/crc-32/crc32.js -var require_crc32 = __commonJS((exports) => { - /*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */ - var CRC32; - (function(factory) { - if (typeof DO_NOT_EXPORT_CRC === "undefined") { - if (typeof exports === "object") { - factory(exports); - } else if (typeof define === "function" && define.amd) { - define(function() { - var module2 = {}; - factory(module2); - return module2; - }); + class ReadableState { + constructor(stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) { + this.stream = stream; + this.queue = new FIFO; + this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark; + this.buffered = 0; + this.readAhead = highWaterMark > 0; + this.error = null; + this.pipeline = null; + this.byteLength = byteLengthReadable || byteLength || defaultByteLength; + this.map = mapReadable || map; + this.pipeTo = null; + this.afterRead = afterRead.bind(this); + this.afterUpdateNextTick = updateReadNT.bind(this); + } + get ended() { + return (this.stream._duplexState & READ_DONE) !== 0; + } + pipe(pipeTo, cb) { + if (this.pipeTo !== null) + throw new Error("Can only pipe to one destination"); + if (typeof cb !== "function") + cb = null; + this.stream._duplexState |= READ_PIPE_DRAINED; + this.pipeTo = pipeTo; + this.pipeline = new Pipeline(this.stream, pipeTo, cb); + if (cb) + this.stream.on("error", noop); + if (isStreamx(pipeTo)) { + pipeTo._writableState.pipeline = this.pipeline; + if (cb) + pipeTo.on("error", noop); + pipeTo.on("finish", this.pipeline.finished.bind(this.pipeline)); } else { - factory(CRC32 = {}); + const onerror = this.pipeline.done.bind(this.pipeline, pipeTo); + const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null); + pipeTo.on("error", onerror); + pipeTo.on("close", onclose); + pipeTo.on("finish", this.pipeline.finished.bind(this.pipeline)); } - } else { - factory(CRC32 = {}); + pipeTo.on("drain", afterDrain.bind(this)); + this.stream.emit("piping", pipeTo); + pipeTo.emit("pipe", this.stream); } - })(function(CRC322) { - CRC322.version = "1.2.2"; - function signed_crc_table() { - var c = 0, table = new Array(256); - for (var n = 0;n != 256; ++n) { - c = n; - c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; - c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; - c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; - c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; - c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; - c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; - c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; - c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; - table[n] = c; + push(data) { + const stream = this.stream; + if (data === null) { + this.highWaterMark = 0; + stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED; + return false; } - return typeof Int32Array !== "undefined" ? new Int32Array(table) : table; - } - var T0 = signed_crc_table(); - function slice_by_16_tables(T) { - var c = 0, v = 0, n = 0, table = typeof Int32Array !== "undefined" ? new Int32Array(4096) : new Array(4096); - for (n = 0;n != 256; ++n) - table[n] = T[n]; - for (n = 0;n != 256; ++n) { - v = T[n]; - for (c = 256 + n;c < 4096; c += 256) - v = table[c] = v >>> 8 ^ T[v & 255]; + if (this.map !== null) { + data = this.map(data); + if (data === null) { + stream._duplexState &= READ_PUSHED; + return this.buffered < this.highWaterMark; + } } - var out = []; - for (n = 1;n != 16; ++n) - out[n - 1] = typeof Int32Array !== "undefined" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256); - return out; + this.buffered += this.byteLength(data); + this.queue.push(data); + stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED; + return this.buffered < this.highWaterMark; } - var TT = slice_by_16_tables(T0); - var T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4]; - var T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9]; - var Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14]; - function crc32_bstr(bstr, seed) { - var C = seed ^ -1; - for (var i = 0, L = bstr.length;i < L; ) - C = C >>> 8 ^ T0[(C ^ bstr.charCodeAt(i++)) & 255]; - return ~C; + shift() { + const data = this.queue.shift(); + this.buffered -= this.byteLength(data); + if (this.buffered === 0) + this.stream._duplexState &= READ_NOT_QUEUED; + return data; } - function crc32_buf(B, seed) { - var C = seed ^ -1, L = B.length - 15, i = 0; - for (;i < L; ) - C = Tf[B[i++] ^ C & 255] ^ Te[B[i++] ^ C >> 8 & 255] ^ Td[B[i++] ^ C >> 16 & 255] ^ Tc[B[i++] ^ C >>> 24] ^ Tb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^ T7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^ T3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]]; - L += 15; - while (i < L) - C = C >>> 8 ^ T0[(C ^ B[i++]) & 255]; - return ~C; + unshift(data) { + const pending = [this.map !== null ? this.map(data) : data]; + while (this.buffered > 0) + pending.push(this.shift()); + for (let i = 0;i < pending.length - 1; i++) { + const data2 = pending[i]; + this.buffered += this.byteLength(data2); + this.queue.push(data2); + } + this.push(pending[pending.length - 1]); } - function crc32_str(str, seed) { - var C = seed ^ -1; - for (var i = 0, L = str.length, c = 0, d = 0;i < L; ) { - c = str.charCodeAt(i++); - if (c < 128) { - C = C >>> 8 ^ T0[(C ^ c) & 255]; - } else if (c < 2048) { - C = C >>> 8 ^ T0[(C ^ (192 | c >> 6 & 31)) & 255]; - C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; - } else if (c >= 55296 && c < 57344) { - c = (c & 1023) + 64; - d = str.charCodeAt(i++) & 1023; - C = C >>> 8 ^ T0[(C ^ (240 | c >> 8 & 7)) & 255]; - C = C >>> 8 ^ T0[(C ^ (128 | c >> 2 & 63)) & 255]; - C = C >>> 8 ^ T0[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255]; - C = C >>> 8 ^ T0[(C ^ (128 | d & 63)) & 255]; - } else { - C = C >>> 8 ^ T0[(C ^ (224 | c >> 12 & 15)) & 255]; - C = C >>> 8 ^ T0[(C ^ (128 | c >> 6 & 63)) & 255]; - C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; - } + read() { + const stream = this.stream; + if ((stream._duplexState & READ_STATUS) === READ_QUEUED) { + const data = this.shift(); + if (this.pipeTo !== null && this.pipeTo.write(data) === false) + stream._duplexState &= READ_PIPE_NOT_DRAINED; + if ((stream._duplexState & READ_EMIT_DATA) !== 0) + stream.emit("data", data); + return data; } - return ~C; + if (this.readAhead === false) { + stream._duplexState |= READ_READ_AHEAD; + this.updateNextTick(); + } + return null; } - CRC322.table = T0; - CRC322.bstr = crc32_bstr; - CRC322.buf = crc32_buf; - CRC322.str = crc32_str; - }); -}); - -// node_modules/crc32-stream/lib/crc32-stream.js -var require_crc32_stream = __commonJS((exports, module) => { - var { Transform } = require_ours(); - var crc32 = require_crc32(); - - class CRC32Stream extends Transform { - constructor(options) { - super(options); - this.checksum = Buffer.allocUnsafe(4); - this.checksum.writeInt32BE(0, 0); - this.rawSize = 0; + drain() { + const stream = this.stream; + while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) { + const data = this.shift(); + if (this.pipeTo !== null && this.pipeTo.write(data) === false) + stream._duplexState &= READ_PIPE_NOT_DRAINED; + if ((stream._duplexState & READ_EMIT_DATA) !== 0) + stream.emit("data", data); + } + } + update() { + const stream = this.stream; + stream._duplexState |= READ_UPDATING; + do { + this.drain(); + while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) { + stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH; + stream._read(this.afterRead); + this.drain(); + } + if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) { + stream._duplexState |= READ_EMITTED_READABLE; + stream.emit("readable"); + } + if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) + this.updateNonPrimary(); + } while (this.continueUpdate() === true); + stream._duplexState &= READ_NOT_UPDATING; } - _transform(chunk, encoding, callback) { - if (chunk) { - this.checksum = crc32.buf(chunk, this.checksum) >>> 0; - this.rawSize += chunk.length; + updateNonPrimary() { + const stream = this.stream; + if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) { + stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING; + stream.emit("end"); + if ((stream._duplexState & AUTO_DESTROY) === DONE) + stream._duplexState |= DESTROYING; + if (this.pipeTo !== null) + this.pipeTo.end(); + } + if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) { + if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) { + stream._duplexState |= ACTIVE; + stream._destroy(afterDestroy.bind(this)); + } + return; + } + if ((stream._duplexState & IS_OPENING) === OPENING) { + stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING; + stream._open(afterOpen.bind(this)); } - callback(null, chunk); } - digest(encoding) { - const checksum = Buffer.allocUnsafe(4); - checksum.writeUInt32BE(this.checksum >>> 0, 0); - return encoding ? checksum.toString(encoding) : checksum; + continueUpdate() { + if ((this.stream._duplexState & READ_NEXT_TICK) === 0) + return false; + this.stream._duplexState &= READ_NOT_NEXT_TICK; + return true; } - hex() { - return this.digest("hex").toUpperCase(); + updateCallback() { + if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) + this.update(); + else + this.updateNextTick(); } - size() { - return this.rawSize; + updateNextTickIfOpen() { + if ((this.stream._duplexState & READ_NEXT_TICK_OR_OPENING) !== 0) + return; + this.stream._duplexState |= READ_NEXT_TICK; + if ((this.stream._duplexState & READ_UPDATING) === 0) + queueTick(this.afterUpdateNextTick); + } + updateNextTick() { + if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) + return; + this.stream._duplexState |= READ_NEXT_TICK; + if ((this.stream._duplexState & READ_UPDATING) === 0) + queueTick(this.afterUpdateNextTick); } } - module.exports = CRC32Stream; -}); -// node_modules/crc32-stream/lib/deflate-crc32-stream.js -var require_deflate_crc32_stream = __commonJS((exports, module) => { - var { DeflateRaw } = __require("zlib"); - var crc32 = require_crc32(); + class TransformState { + constructor(stream) { + this.data = null; + this.afterTransform = afterTransform.bind(stream); + this.afterFinal = null; + } + } - class DeflateCRC32Stream extends DeflateRaw { - constructor(options) { - super(options); - this.checksum = Buffer.allocUnsafe(4); - this.checksum.writeInt32BE(0, 0); - this.rawSize = 0; - this.compressedSize = 0; + class Pipeline { + constructor(src, dst, cb) { + this.from = src; + this.to = dst; + this.afterPipe = cb; + this.error = null; + this.pipeToFinished = false; } - push(chunk, encoding) { - if (chunk) { - this.compressedSize += chunk.length; - } - return super.push(chunk, encoding); + finished() { + this.pipeToFinished = true; } - _transform(chunk, encoding, callback) { - if (chunk) { - this.checksum = crc32.buf(chunk, this.checksum) >>> 0; - this.rawSize += chunk.length; + done(stream, err) { + if (err) + this.error = err; + if (stream === this.to) { + this.to = null; + if (this.from !== null) { + if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) { + this.from.destroy(this.error || new Error("Writable stream closed prematurely")); + } + return; + } } - super._transform(chunk, encoding, callback); + if (stream === this.from) { + this.from = null; + if (this.to !== null) { + if ((stream._duplexState & READ_DONE) === 0) { + this.to.destroy(this.error || new Error("Readable stream closed before ending")); + } + return; + } + } + if (this.afterPipe !== null) + this.afterPipe(this.error); + this.to = this.from = this.afterPipe = null; } - digest(encoding) { - const checksum = Buffer.allocUnsafe(4); - checksum.writeUInt32BE(this.checksum >>> 0, 0); - return encoding ? checksum.toString(encoding) : checksum; + } + function afterDrain() { + this.stream._duplexState |= READ_PIPE_DRAINED; + this.updateCallback(); + } + function afterFinal(err) { + const stream = this.stream; + if (err) + stream.destroy(err); + if ((stream._duplexState & DESTROY_STATUS) === 0) { + stream._duplexState |= WRITE_DONE; + stream.emit("finish"); } - hex() { - return this.digest("hex").toUpperCase(); + if ((stream._duplexState & AUTO_DESTROY) === DONE) { + stream._duplexState |= DESTROYING; } - size(compressed = false) { - if (compressed) { - return this.compressedSize; - } else { - return this.rawSize; + stream._duplexState &= WRITE_NOT_FINISHING; + if ((stream._duplexState & WRITE_UPDATING) === 0) + this.update(); + else + this.updateNextTick(); + } + function afterDestroy(err) { + const stream = this.stream; + if (!err && this.error !== STREAM_DESTROYED) + err = this.error; + if (err) + stream.emit("error", err); + stream._duplexState |= DESTROYED; + stream.emit("close"); + const rs = stream._readableState; + const ws = stream._writableState; + if (rs !== null && rs.pipeline !== null) + rs.pipeline.done(stream, err); + if (ws !== null) { + while (ws.drains !== null && ws.drains.length > 0) + ws.drains.shift().resolve(false); + if (ws.pipeline !== null) + ws.pipeline.done(stream, err); + } + } + function afterWrite(err) { + const stream = this.stream; + if (err) + stream.destroy(err); + stream._duplexState &= WRITE_NOT_ACTIVE; + if (this.drains !== null) + tickDrains(this.drains); + if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) { + stream._duplexState &= WRITE_DRAINED; + if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) { + stream.emit("drain"); } } + this.updateCallback(); } - module.exports = DeflateCRC32Stream; -}); - -// node_modules/crc32-stream/lib/index.js -var require_lib4 = __commonJS((exports, module) => { - module.exports = { - CRC32Stream: require_crc32_stream(), - DeflateCRC32Stream: require_deflate_crc32_stream() - }; -}); - -// node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js -var require_zip_archive_output_stream = __commonJS((exports, module) => { - var inherits = __require("util").inherits; - var crc32 = require_crc32(); - var { CRC32Stream } = require_lib4(); - var { DeflateCRC32Stream } = require_lib4(); - var ArchiveOutputStream = require_archive_output_stream(); - var ZipArchiveEntry = require_zip_archive_entry(); - var GeneralPurposeBit = require_general_purpose_bit(); - var constants = require_constants(); - var util2 = require_util4(); - var zipUtil = require_util3(); - var ZipArchiveOutputStream = module.exports = function(options) { - if (!(this instanceof ZipArchiveOutputStream)) { - return new ZipArchiveOutputStream(options); + function afterRead(err) { + if (err) + this.stream.destroy(err); + this.stream._duplexState &= READ_NOT_ACTIVE; + if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) + this.stream._duplexState &= READ_NO_READ_AHEAD; + this.updateCallback(); + } + function updateReadNT() { + if ((this.stream._duplexState & READ_UPDATING) === 0) { + this.stream._duplexState &= READ_NOT_NEXT_TICK; + this.update(); } - options = this.options = this._defaults(options); - ArchiveOutputStream.call(this, options); - this._entry = null; - this._entries = []; - this._archive = { - centralLength: 0, - centralOffset: 0, - comment: "", - finish: false, - finished: false, - processing: false, - forceZip64: options.forceZip64, - forceLocalTime: options.forceLocalTime - }; - }; - inherits(ZipArchiveOutputStream, ArchiveOutputStream); - ZipArchiveOutputStream.prototype._afterAppend = function(ae) { - this._entries.push(ae); - if (ae.getGeneralPurposeBit().usesDataDescriptor()) { - this._writeDataDescriptor(ae); + } + function updateWriteNT() { + if ((this.stream._duplexState & WRITE_UPDATING) === 0) { + this.stream._duplexState &= WRITE_NOT_NEXT_TICK; + this.update(); } - this._archive.processing = false; - this._entry = null; - if (this._archive.finish && !this._archive.finished) { - this._finish(); + } + function tickDrains(drains) { + for (let i = 0;i < drains.length; i++) { + if (--drains[i].writes === 0) { + drains.shift().resolve(true); + i--; + } } - }; - ZipArchiveOutputStream.prototype._appendBuffer = function(ae, source, callback) { - if (source.length === 0) { - ae.setMethod(constants.METHOD_STORED); + } + function afterOpen(err) { + const stream = this.stream; + if (err) + stream.destroy(err); + if ((stream._duplexState & DESTROYING) === 0) { + if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) + stream._duplexState |= READ_PRIMARY; + if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) + stream._duplexState |= WRITE_PRIMARY; + stream.emit("open"); } - var method = ae.getMethod(); - if (method === constants.METHOD_STORED) { - ae.setSize(source.length); - ae.setCompressedSize(source.length); - ae.setCrc(crc32.buf(source) >>> 0); + stream._duplexState &= NOT_ACTIVE; + if (stream._writableState !== null) { + stream._writableState.updateCallback(); } - this._writeLocalFileHeader(ae); - if (method === constants.METHOD_STORED) { - this.write(source); - this._afterAppend(ae); - callback(null, ae); - return; - } else if (method === constants.METHOD_DEFLATED) { - this._smartStream(ae, callback).end(source); - return; - } else { - callback(new Error("compression method " + method + " not implemented")); - return; + if (stream._readableState !== null) { + stream._readableState.updateCallback(); } - }; - ZipArchiveOutputStream.prototype._appendStream = function(ae, source, callback) { - ae.getGeneralPurposeBit().useDataDescriptor(true); - ae.setVersionNeededToExtract(constants.MIN_VERSION_DATA_DESCRIPTOR); - this._writeLocalFileHeader(ae); - var smart = this._smartStream(ae, callback); - source.once("error", function(err) { - smart.emit("error", err); - smart.end(); - }); - source.pipe(smart); - }; - ZipArchiveOutputStream.prototype._defaults = function(o) { - if (typeof o !== "object") { - o = {}; + } + function afterTransform(err, data) { + if (data !== undefined && data !== null) + this.push(data); + this._writableState.afterWrite(err); + } + function newListener(name) { + if (this._readableState !== null) { + if (name === "data") { + this._duplexState |= READ_EMIT_DATA | READ_RESUMED_READ_AHEAD; + this._readableState.updateNextTick(); + } + if (name === "readable") { + this._duplexState |= READ_EMIT_READABLE; + this._readableState.updateNextTick(); + } } - if (typeof o.zlib !== "object") { - o.zlib = {}; + if (this._writableState !== null) { + if (name === "drain") { + this._duplexState |= WRITE_EMIT_DRAIN; + this._writableState.updateNextTick(); + } } - if (typeof o.zlib.level !== "number") { - o.zlib.level = constants.ZLIB_BEST_SPEED; + } + + class Stream extends EventEmitter { + constructor(opts) { + super(); + this._duplexState = 0; + this._readableState = null; + this._writableState = null; + if (opts) { + if (opts.open) + this._open = opts.open; + if (opts.destroy) + this._destroy = opts.destroy; + if (opts.predestroy) + this._predestroy = opts.predestroy; + if (opts.signal) { + opts.signal.addEventListener("abort", abort.bind(this)); + } + } + this.on("newListener", newListener); } - o.forceZip64 = !!o.forceZip64; - o.forceLocalTime = !!o.forceLocalTime; - return o; - }; - ZipArchiveOutputStream.prototype._finish = function() { - this._archive.centralOffset = this.offset; - this._entries.forEach(function(ae) { - this._writeCentralFileHeader(ae); - }.bind(this)); - this._archive.centralLength = this.offset - this._archive.centralOffset; - if (this.isZip64()) { - this._writeCentralDirectoryZip64(); + _open(cb) { + cb(null); } - this._writeCentralDirectoryEnd(); - this._archive.processing = false; - this._archive.finish = true; - this._archive.finished = true; - this.end(); - }; - ZipArchiveOutputStream.prototype._normalizeEntry = function(ae) { - if (ae.getMethod() === -1) { - ae.setMethod(constants.METHOD_DEFLATED); + _destroy(cb) { + cb(null); } - if (ae.getMethod() === constants.METHOD_DEFLATED) { - ae.getGeneralPurposeBit().useDataDescriptor(true); - ae.setVersionNeededToExtract(constants.MIN_VERSION_DATA_DESCRIPTOR); + _predestroy() { } - if (ae.getTime() === -1) { - ae.setTime(new Date, this._archive.forceLocalTime); + get readable() { + return this._readableState !== null ? true : undefined; } - ae._offsets = { - file: 0, - data: 0, - contents: 0 - }; - }; - ZipArchiveOutputStream.prototype._smartStream = function(ae, callback) { - var deflate = ae.getMethod() === constants.METHOD_DEFLATED; - var process11 = deflate ? new DeflateCRC32Stream(this.options.zlib) : new CRC32Stream; - var error = null; - function handleStuff() { - var digest = process11.digest().readUInt32BE(0); - ae.setCrc(digest); - ae.setSize(process11.size()); - ae.setCompressedSize(process11.size(true)); - this._afterAppend(ae); - callback(error, ae); + get writable() { + return this._writableState !== null ? true : undefined; } - process11.once("end", handleStuff.bind(this)); - process11.once("error", function(err) { - error = err; - }); - process11.pipe(this, { end: false }); - return process11; - }; - ZipArchiveOutputStream.prototype._writeCentralDirectoryEnd = function() { - var records = this._entries.length; - var size = this._archive.centralLength; - var offset = this._archive.centralOffset; - if (this.isZip64()) { - records = constants.ZIP64_MAGIC_SHORT; - size = constants.ZIP64_MAGIC; - offset = constants.ZIP64_MAGIC; + get destroyed() { + return (this._duplexState & DESTROYED) !== 0; } - this.write(zipUtil.getLongBytes(constants.SIG_EOCD)); - this.write(constants.SHORT_ZERO); - this.write(constants.SHORT_ZERO); - this.write(zipUtil.getShortBytes(records)); - this.write(zipUtil.getShortBytes(records)); - this.write(zipUtil.getLongBytes(size)); - this.write(zipUtil.getLongBytes(offset)); - var comment = this.getComment(); - var commentLength = Buffer.byteLength(comment); - this.write(zipUtil.getShortBytes(commentLength)); - this.write(comment); - }; - ZipArchiveOutputStream.prototype._writeCentralDirectoryZip64 = function() { - this.write(zipUtil.getLongBytes(constants.SIG_ZIP64_EOCD)); - this.write(zipUtil.getEightBytes(44)); - this.write(zipUtil.getShortBytes(constants.MIN_VERSION_ZIP64)); - this.write(zipUtil.getShortBytes(constants.MIN_VERSION_ZIP64)); - this.write(constants.LONG_ZERO); - this.write(constants.LONG_ZERO); - this.write(zipUtil.getEightBytes(this._entries.length)); - this.write(zipUtil.getEightBytes(this._entries.length)); - this.write(zipUtil.getEightBytes(this._archive.centralLength)); - this.write(zipUtil.getEightBytes(this._archive.centralOffset)); - this.write(zipUtil.getLongBytes(constants.SIG_ZIP64_EOCD_LOC)); - this.write(constants.LONG_ZERO); - this.write(zipUtil.getEightBytes(this._archive.centralOffset + this._archive.centralLength)); - this.write(zipUtil.getLongBytes(1)); - }; - ZipArchiveOutputStream.prototype._writeCentralFileHeader = function(ae) { - var gpb = ae.getGeneralPurposeBit(); - var method = ae.getMethod(); - var fileOffset = ae._offsets.file; - var size = ae.getSize(); - var compressedSize = ae.getCompressedSize(); - if (ae.isZip64() || fileOffset > constants.ZIP64_MAGIC) { - size = constants.ZIP64_MAGIC; - compressedSize = constants.ZIP64_MAGIC; - fileOffset = constants.ZIP64_MAGIC; - ae.setVersionNeededToExtract(constants.MIN_VERSION_ZIP64); - var extraBuf = Buffer.concat([ - zipUtil.getShortBytes(constants.ZIP64_EXTRA_ID), - zipUtil.getShortBytes(24), - zipUtil.getEightBytes(ae.getSize()), - zipUtil.getEightBytes(ae.getCompressedSize()), - zipUtil.getEightBytes(ae._offsets.file) - ], 28); - ae.setExtra(extraBuf); + get destroying() { + return (this._duplexState & DESTROY_STATUS) !== 0; } - this.write(zipUtil.getLongBytes(constants.SIG_CFH)); - this.write(zipUtil.getShortBytes(ae.getPlatform() << 8 | constants.VERSION_MADEBY)); - this.write(zipUtil.getShortBytes(ae.getVersionNeededToExtract())); - this.write(gpb.encode()); - this.write(zipUtil.getShortBytes(method)); - this.write(zipUtil.getLongBytes(ae.getTimeDos())); - this.write(zipUtil.getLongBytes(ae.getCrc())); - this.write(zipUtil.getLongBytes(compressedSize)); - this.write(zipUtil.getLongBytes(size)); - var name = ae.getName(); - var comment = ae.getComment(); - var extra = ae.getCentralDirectoryExtra(); - if (gpb.usesUTF8ForNames()) { - name = Buffer.from(name); - comment = Buffer.from(comment); + destroy(err) { + if ((this._duplexState & DESTROY_STATUS) === 0) { + if (!err) + err = STREAM_DESTROYED; + this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY; + if (this._readableState !== null) { + this._readableState.highWaterMark = 0; + this._readableState.error = err; + } + if (this._writableState !== null) { + this._writableState.highWaterMark = 0; + this._writableState.error = err; + } + this._duplexState |= PREDESTROYING; + this._predestroy(); + this._duplexState &= NOT_PREDESTROYING; + if (this._readableState !== null) + this._readableState.updateNextTick(); + if (this._writableState !== null) + this._writableState.updateNextTick(); + } + } + } + + class Readable extends Stream { + constructor(opts) { + super(opts); + this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD; + this._readableState = new ReadableState(this, opts); + if (opts) { + if (this._readableState.readAhead === false) + this._duplexState &= READ_NO_READ_AHEAD; + if (opts.read) + this._read = opts.read; + if (opts.eagerOpen) + this._readableState.updateNextTick(); + if (opts.encoding) + this.setEncoding(opts.encoding); + } } - this.write(zipUtil.getShortBytes(name.length)); - this.write(zipUtil.getShortBytes(extra.length)); - this.write(zipUtil.getShortBytes(comment.length)); - this.write(constants.SHORT_ZERO); - this.write(zipUtil.getShortBytes(ae.getInternalAttributes())); - this.write(zipUtil.getLongBytes(ae.getExternalAttributes())); - this.write(zipUtil.getLongBytes(fileOffset)); - this.write(name); - this.write(extra); - this.write(comment); - }; - ZipArchiveOutputStream.prototype._writeDataDescriptor = function(ae) { - this.write(zipUtil.getLongBytes(constants.SIG_DD)); - this.write(zipUtil.getLongBytes(ae.getCrc())); - if (ae.isZip64()) { - this.write(zipUtil.getEightBytes(ae.getCompressedSize())); - this.write(zipUtil.getEightBytes(ae.getSize())); - } else { - this.write(zipUtil.getLongBytes(ae.getCompressedSize())); - this.write(zipUtil.getLongBytes(ae.getSize())); + setEncoding(encoding) { + const dec = new TextDecoder2(encoding); + const map = this._readableState.map || echo; + this._readableState.map = mapOrSkip; + return this; + function mapOrSkip(data) { + const next = dec.push(data); + return next === "" && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next); + } } - }; - ZipArchiveOutputStream.prototype._writeLocalFileHeader = function(ae) { - var gpb = ae.getGeneralPurposeBit(); - var method = ae.getMethod(); - var name = ae.getName(); - var extra = ae.getLocalFileDataExtra(); - if (ae.isZip64()) { - gpb.useDataDescriptor(true); - ae.setVersionNeededToExtract(constants.MIN_VERSION_ZIP64); + _read(cb) { + cb(null); } - if (gpb.usesUTF8ForNames()) { - name = Buffer.from(name); + pipe(dest, cb) { + this._readableState.updateNextTick(); + this._readableState.pipe(dest, cb); + return dest; } - ae._offsets.file = this.offset; - this.write(zipUtil.getLongBytes(constants.SIG_LFH)); - this.write(zipUtil.getShortBytes(ae.getVersionNeededToExtract())); - this.write(gpb.encode()); - this.write(zipUtil.getShortBytes(method)); - this.write(zipUtil.getLongBytes(ae.getTimeDos())); - ae._offsets.data = this.offset; - if (gpb.usesDataDescriptor()) { - this.write(constants.LONG_ZERO); - this.write(constants.LONG_ZERO); - this.write(constants.LONG_ZERO); - } else { - this.write(zipUtil.getLongBytes(ae.getCrc())); - this.write(zipUtil.getLongBytes(ae.getCompressedSize())); - this.write(zipUtil.getLongBytes(ae.getSize())); + read() { + this._readableState.updateNextTick(); + return this._readableState.read(); } - this.write(zipUtil.getShortBytes(name.length)); - this.write(zipUtil.getShortBytes(extra.length)); - this.write(name); - this.write(extra); - ae._offsets.contents = this.offset; - }; - ZipArchiveOutputStream.prototype.getComment = function(comment) { - return this._archive.comment !== null ? this._archive.comment : ""; - }; - ZipArchiveOutputStream.prototype.isZip64 = function() { - return this._archive.forceZip64 || this._entries.length > constants.ZIP64_MAGIC_SHORT || this._archive.centralLength > constants.ZIP64_MAGIC || this._archive.centralOffset > constants.ZIP64_MAGIC; - }; - ZipArchiveOutputStream.prototype.setComment = function(comment) { - this._archive.comment = comment; - }; -}); - -// node_modules/compress-commons/lib/compress-commons.js -var require_compress_commons = __commonJS((exports, module) => { - module.exports = { - ArchiveEntry: require_archive_entry(), - ZipArchiveEntry: require_zip_archive_entry(), - ArchiveOutputStream: require_archive_output_stream(), - ZipArchiveOutputStream: require_zip_archive_output_stream() - }; -}); - -// node_modules/zip-stream/index.js -var require_zip_stream = __commonJS((exports, module) => { - var inherits = __require("util").inherits; - var ZipArchiveOutputStream = require_compress_commons().ZipArchiveOutputStream; - var ZipArchiveEntry = require_compress_commons().ZipArchiveEntry; - var util2 = require_archiver_utils(); - var ZipStream = module.exports = function(options) { - if (!(this instanceof ZipStream)) { - return new ZipStream(options); + push(data) { + this._readableState.updateNextTickIfOpen(); + return this._readableState.push(data); } - options = this.options = options || {}; - options.zlib = options.zlib || {}; - ZipArchiveOutputStream.call(this, options); - if (typeof options.level === "number" && options.level >= 0) { - options.zlib.level = options.level; - delete options.level; + unshift(data) { + this._readableState.updateNextTickIfOpen(); + return this._readableState.unshift(data); } - if (!options.forceZip64 && typeof options.zlib.level === "number" && options.zlib.level === 0) { - options.store = true; + resume() { + this._duplexState |= READ_RESUMED_READ_AHEAD; + this._readableState.updateNextTick(); + return this; } - options.namePrependSlash = options.namePrependSlash || false; - if (options.comment && options.comment.length > 0) { - this.setComment(options.comment); + pause() { + this._duplexState &= this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED; + return this; } - }; - inherits(ZipStream, ZipArchiveOutputStream); - ZipStream.prototype._normalizeFileData = function(data) { - data = util2.defaults(data, { - type: "file", - name: null, - namePrependSlash: this.options.namePrependSlash, - linkname: null, - date: null, - mode: null, - store: this.options.store, - comment: "" - }); - var isDir = data.type === "directory"; - var isSymlink = data.type === "symlink"; - if (data.name) { - data.name = util2.sanitizePath(data.name); - if (!isSymlink && data.name.slice(-1) === "/") { - isDir = true; - data.type = "directory"; - } else if (isDir) { - data.name += "/"; + static _fromAsyncIterator(ite, opts) { + let destroy; + const rs = new Readable({ + ...opts, + read(cb) { + ite.next().then(push).then(cb.bind(null, null)).catch(cb); + }, + predestroy() { + destroy = ite.return(); + }, + destroy(cb) { + if (!destroy) + return cb(null); + destroy.then(cb.bind(null, null)).catch(cb); + } + }); + return rs; + function push(data) { + if (data.done) + rs.push(null); + else + rs.push(data.value); } } - if (isDir || isSymlink) { - data.store = true; + static from(data, opts) { + if (isReadStreamx(data)) + return data; + if (data[asyncIterator]) + return this._fromAsyncIterator(data[asyncIterator](), opts); + if (!Array.isArray(data)) + data = data === undefined ? [] : [data]; + let i = 0; + return new Readable({ + ...opts, + read(cb) { + this.push(i === data.length ? null : data[i++]); + cb(null); + } + }); } - data.date = util2.dateify(data.date); - return data; - }; - ZipStream.prototype.entry = function(source, data, callback) { - if (typeof callback !== "function") { - callback = this._emitErrorCallback.bind(this); + static isBackpressured(rs) { + return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark; } - data = this._normalizeFileData(data); - if (data.type !== "file" && data.type !== "directory" && data.type !== "symlink") { - callback(new Error(data.type + " entries not currently supported")); - return; + static isPaused(rs) { + return (rs._duplexState & READ_RESUMED) === 0; } - if (typeof data.name !== "string" || data.name.length === 0) { - callback(new Error("entry name must be a non-empty string value")); - return; + [asyncIterator]() { + const stream = this; + let error = null; + let promiseResolve = null; + let promiseReject = null; + this.on("error", (err) => { + error = err; + }); + this.on("readable", onreadable); + this.on("close", onclose); + return { + [asyncIterator]() { + return this; + }, + next() { + return new Promise(function(resolve, reject) { + promiseResolve = resolve; + promiseReject = reject; + const data = stream.read(); + if (data !== null) + ondata(data); + else if ((stream._duplexState & DESTROYED) !== 0) + ondata(null); + }); + }, + return() { + return destroy(null); + }, + throw(err) { + return destroy(err); + } + }; + function onreadable() { + if (promiseResolve !== null) + ondata(stream.read()); + } + function onclose() { + if (promiseResolve !== null) + ondata(null); + } + function ondata(data) { + if (promiseReject === null) + return; + if (error) + promiseReject(error); + else if (data === null && (stream._duplexState & READ_DONE) === 0) + promiseReject(STREAM_DESTROYED); + else + promiseResolve({ value: data, done: data === null }); + promiseReject = promiseResolve = null; + } + function destroy(err) { + stream.destroy(err); + return new Promise((resolve, reject) => { + if (stream._duplexState & DESTROYED) + return resolve({ value: undefined, done: true }); + stream.once("close", function() { + if (err) + reject(err); + else + resolve({ value: undefined, done: true }); + }); + }); + } } - if (data.type === "symlink" && typeof data.linkname !== "string") { - callback(new Error("entry linkname must be a non-empty string value when type equals symlink")); - return; + } + + class Writable extends Stream { + constructor(opts) { + super(opts); + this._duplexState |= OPENING | READ_DONE; + this._writableState = new WritableState(this, opts); + if (opts) { + if (opts.writev) + this._writev = opts.writev; + if (opts.write) + this._write = opts.write; + if (opts.final) + this._final = opts.final; + if (opts.eagerOpen) + this._writableState.updateNextTick(); + } } - var entry = new ZipArchiveEntry(data.name); - entry.setTime(data.date, this.options.forceLocalTime); - if (data.namePrependSlash) { - entry.setName(data.name, true); + cork() { + this._duplexState |= WRITE_CORKED; } - if (data.store) { - entry.setMethod(0); + uncork() { + this._duplexState &= WRITE_NOT_CORKED; + this._writableState.updateNextTick(); } - if (data.comment.length > 0) { - entry.setComment(data.comment); + _writev(batch, cb) { + cb(null); } - if (data.type === "symlink" && typeof data.mode !== "number") { - data.mode = 40960; + _write(data, cb) { + this._writableState.autoBatch(data, cb); } - if (typeof data.mode === "number") { - if (data.type === "symlink") { - data.mode |= 40960; - } - entry.setUnixMode(data.mode); + _final(cb) { + cb(null); } - if (data.type === "symlink" && typeof data.linkname === "string") { - source = Buffer.from(data.linkname); + static isBackpressured(ws) { + return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0; } - return ZipArchiveOutputStream.prototype.entry.call(this, entry, source, callback); - }; - ZipStream.prototype.finalize = function() { - this.finish(); - }; -}); - -// node_modules/archiver/lib/plugins/zip.js -var require_zip3 = __commonJS((exports, module) => { - var engine = require_zip_stream(); - var util2 = require_archiver_utils(); - var Zip = function(options) { - if (!(this instanceof Zip)) { - return new Zip(options); + static drained(ws) { + if (ws.destroyed) + return Promise.resolve(false); + const state = ws._writableState; + const pending = isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length; + const writes = pending + (ws._duplexState & WRITE_WRITING ? 1 : 0); + if (writes === 0) + return Promise.resolve(true); + if (state.drains === null) + state.drains = []; + return new Promise((resolve) => { + state.drains.push({ writes, resolve }); + }); } - options = this.options = util2.defaults(options, { - comment: "", - forceUTC: false, - namePrependSlash: false, - store: false - }); - this.supports = { - directory: true, - symlink: true - }; - this.engine = new engine(options); - }; - Zip.prototype.append = function(source, data, callback) { - this.engine.entry(source, data, callback); - }; - Zip.prototype.finalize = function() { - this.engine.finalize(); - }; - Zip.prototype.on = function() { - return this.engine.on.apply(this.engine, arguments); - }; - Zip.prototype.pipe = function() { - return this.engine.pipe.apply(this.engine, arguments); - }; - Zip.prototype.unpipe = function() { - return this.engine.unpipe.apply(this.engine, arguments); - }; - module.exports = Zip; -}); - -// node_modules/queue-tick/queue-microtask.js -var require_queue_microtask = __commonJS((exports, module) => { - module.exports = typeof queueMicrotask === "function" ? queueMicrotask : (fn) => Promise.resolve().then(fn); -}); - -// node_modules/queue-tick/process-next-tick.js -var require_process_next_tick = __commonJS((exports, module) => { - module.exports = typeof process !== "undefined" && typeof process.nextTick === "function" ? process.nextTick.bind(process) : require_queue_microtask(); -}); + write(data) { + this._writableState.updateNextTick(); + return this._writableState.push(data); + } + end(data) { + this._writableState.updateNextTick(); + this._writableState.end(data); + return this; + } + } -// node_modules/fast-fifo/fixed-size.js -var require_fixed_size = __commonJS((exports, module) => { - module.exports = class FixedFIFO { - constructor(hwm) { - if (!(hwm > 0) || (hwm - 1 & hwm) !== 0) - throw new Error("Max size for a FixedFIFO should be a power of two"); - this.buffer = new Array(hwm); - this.mask = hwm - 1; - this.top = 0; - this.btm = 0; - this.next = null; + class Duplex extends Readable { + constructor(opts) { + super(opts); + this._duplexState = OPENING | this._duplexState & READ_READ_AHEAD; + this._writableState = new WritableState(this, opts); + if (opts) { + if (opts.writev) + this._writev = opts.writev; + if (opts.write) + this._write = opts.write; + if (opts.final) + this._final = opts.final; + } } - clear() { - this.top = this.btm = 0; - this.next = null; - this.buffer.fill(undefined); + cork() { + this._duplexState |= WRITE_CORKED; } - push(data) { - if (this.buffer[this.top] !== undefined) - return false; - this.buffer[this.top] = data; - this.top = this.top + 1 & this.mask; - return true; + uncork() { + this._duplexState &= WRITE_NOT_CORKED; + this._writableState.updateNextTick(); } - shift() { - const last2 = this.buffer[this.btm]; - if (last2 === undefined) - return; - this.buffer[this.btm] = undefined; - this.btm = this.btm + 1 & this.mask; - return last2; + _writev(batch, cb) { + cb(null); } - peek() { - return this.buffer[this.btm]; + _write(data, cb) { + this._writableState.autoBatch(data, cb); } - isEmpty() { - return this.buffer[this.btm] === undefined; + _final(cb) { + cb(null); } - }; -}); + write(data) { + this._writableState.updateNextTick(); + return this._writableState.push(data); + } + end(data) { + this._writableState.updateNextTick(); + this._writableState.end(data); + return this; + } + } -// node_modules/fast-fifo/index.js -var require_fast_fifo = __commonJS((exports, module) => { - var FixedFIFO = require_fixed_size(); - module.exports = class FastFIFO { - constructor(hwm) { - this.hwm = hwm || 16; - this.head = new FixedFIFO(this.hwm); - this.tail = this.head; - this.length = 0; + class Transform extends Duplex { + constructor(opts) { + super(opts); + this._transformState = new TransformState(this); + if (opts) { + if (opts.transform) + this._transform = opts.transform; + if (opts.flush) + this._flush = opts.flush; + } } - clear() { - this.head = this.tail; - this.head.clear(); - this.length = 0; + _write(data, cb) { + if (this._readableState.buffered >= this._readableState.highWaterMark) { + this._transformState.data = data; + } else { + this._transform(data, this._transformState.afterTransform); + } } - push(val) { - this.length++; - if (!this.head.push(val)) { - const prev = this.head; - this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length); - this.head.push(val); + _read(cb) { + if (this._transformState.data !== null) { + const data = this._transformState.data; + this._transformState.data = null; + cb(null); + this._transform(data, this._transformState.afterTransform); + } else { + cb(null); + } + } + destroy(err) { + super.destroy(err); + if (this._transformState.data !== null) { + this._transformState.data = null; + this._transformState.afterTransform(); } } - shift() { - if (this.length !== 0) - this.length--; - const val = this.tail.shift(); - if (val === undefined && this.tail.next) { - const next = this.tail.next; - this.tail.next = null; - this.tail = next; - return this.tail.shift(); - } - return val; + _transform(data, cb) { + cb(null, data); } - peek() { - const val = this.tail.peek(); - if (val === undefined && this.tail.next) - return this.tail.next.peek(); - return val; + _flush(cb) { + cb(null); } - isEmpty() { - return this.length === 0; + _final(cb) { + this._transformState.afterFinal = cb; + this._flush(transformAfterFlush.bind(this)); } - }; -}); - -// node_modules/b4a/index.js -var require_b4a = __commonJS((exports, module) => { - function isBuffer(value) { - return Buffer.isBuffer(value) || value instanceof Uint8Array; - } - function isEncoding(encoding) { - return Buffer.isEncoding(encoding); - } - function alloc(size, fill2, encoding) { - return Buffer.alloc(size, fill2, encoding); - } - function allocUnsafe(size) { - return Buffer.allocUnsafe(size); - } - function allocUnsafeSlow(size) { - return Buffer.allocUnsafeSlow(size); - } - function byteLength(string, encoding) { - return Buffer.byteLength(string, encoding); - } - function compare(a, b) { - return Buffer.compare(a, b); - } - function concat(buffers, totalLength) { - return Buffer.concat(buffers, totalLength); - } - function copy(source, target, targetStart, start, end) { - return toBuffer(source).copy(target, targetStart, start, end); - } - function equals(a, b) { - return toBuffer(a).equals(b); - } - function fill(buffer, value, offset, end, encoding) { - return toBuffer(buffer).fill(value, offset, end, encoding); } - function from2(value, encodingOrOffset, length) { - return Buffer.from(value, encodingOrOffset, length); + + class PassThrough extends Transform { } - function includes(buffer, value, byteOffset, encoding) { - return toBuffer(buffer).includes(value, byteOffset, encoding); + function transformAfterFlush(err, data) { + const cb = this._transformState.afterFinal; + if (err) + return cb(err); + if (data !== null && data !== undefined) + this.push(data); + this.push(null); + cb(null); } - function indexOf(buffer, value, byfeOffset, encoding) { - return toBuffer(buffer).indexOf(value, byfeOffset, encoding); + function pipelinePromise(...streams) { + return new Promise((resolve, reject) => { + return pipeline(...streams, (err) => { + if (err) + return reject(err); + resolve(); + }); + }); } - function lastIndexOf(buffer, value, byteOffset, encoding) { - return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding); + function pipeline(stream, ...streams) { + const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]; + const done = all.length && typeof all[all.length - 1] === "function" ? all.pop() : null; + if (all.length < 2) + throw new Error("Pipeline requires at least 2 streams"); + let src = all[0]; + let dest = null; + let error = null; + for (let i = 1;i < all.length; i++) { + dest = all[i]; + if (isStreamx(src)) { + src.pipe(dest, onerror); + } else { + errorHandle(src, true, i > 1, onerror); + src.pipe(dest); + } + src = dest; + } + if (done) { + let fin = false; + const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy); + dest.on("error", (err) => { + if (error === null) + error = err; + }); + dest.on("finish", () => { + fin = true; + if (!autoDestroy) + done(error); + }); + if (autoDestroy) { + dest.on("close", () => done(error || (fin ? null : PREMATURE_CLOSE))); + } + } + return dest; + function errorHandle(s, rd, wr, onerror2) { + s.on("error", onerror2); + s.on("close", onclose); + function onclose() { + if (rd && s._readableState && !s._readableState.ended) + return onerror2(PREMATURE_CLOSE); + if (wr && s._writableState && !s._writableState.ended) + return onerror2(PREMATURE_CLOSE); + } + } + function onerror(err) { + if (!err || error) + return; + error = err; + for (const s of all) { + s.destroy(err); + } + } } - function swap16(buffer) { - return toBuffer(buffer).swap16(); + function echo(s) { + return s; } - function swap32(buffer) { - return toBuffer(buffer).swap32(); + function isStream(stream) { + return !!stream._readableState || !!stream._writableState; } - function swap64(buffer) { - return toBuffer(buffer).swap64(); + function isStreamx(stream) { + return typeof stream._duplexState === "number" && isStream(stream); } - function toBuffer(buffer) { - if (Buffer.isBuffer(buffer)) - return buffer; - return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength); + function isEnded(stream) { + return !!stream._readableState && stream._readableState.ended; } - function toString(buffer, encoding, start, end) { - return toBuffer(buffer).toString(encoding, start, end); + function isFinished(stream) { + return !!stream._writableState && stream._writableState.ended; } - function write(buffer, string, offset, length, encoding) { - return toBuffer(buffer).write(string, offset, length, encoding); + function getStreamError(stream, opts = {}) { + const err = stream._readableState && stream._readableState.error || stream._writableState && stream._writableState.error; + return !opts.all && err === STREAM_DESTROYED ? null : err; } - function writeDoubleLE(buffer, value, offset) { - return toBuffer(buffer).writeDoubleLE(value, offset); + function isReadStreamx(stream) { + return isStreamx(stream) && stream.readable; } - function writeFloatLE(buffer, value, offset) { - return toBuffer(buffer).writeFloatLE(value, offset); + function isDisturbed(stream) { + return (stream._duplexState & OPENING) !== OPENING || (stream._duplexState & ACTIVE_OR_TICKING) !== 0; } - function writeUInt32LE(buffer, value, offset) { - return toBuffer(buffer).writeUInt32LE(value, offset); + function isTypedArray(data) { + return typeof data === "object" && data !== null && typeof data.byteLength === "number"; } - function writeInt32LE(buffer, value, offset) { - return toBuffer(buffer).writeInt32LE(value, offset); + function defaultByteLength(data) { + return isTypedArray(data) ? data.byteLength : 1024; } - function readDoubleLE(buffer, offset) { - return toBuffer(buffer).readDoubleLE(offset); + function noop() { } - function readFloatLE(buffer, offset) { - return toBuffer(buffer).readFloatLE(offset); + function abort() { + this.destroy(new Error("Stream aborted.")); } - function readUInt32LE(buffer, offset) { - return toBuffer(buffer).readUInt32LE(offset); + function isWritev(s) { + return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev; } - function readInt32LE(buffer, offset) { - return toBuffer(buffer).readInt32LE(offset); + module.exports = { + pipeline, + pipelinePromise, + isStream, + isStreamx, + isEnded, + isFinished, + isDisturbed, + getStreamError, + Stream, + Writable, + Readable, + Duplex, + Transform, + PassThrough + }; +}); + +// node_modules/tar-stream/headers.js +var require_headers = __commonJS((exports) => { + var b4a = require_b4a(); + var ZEROS = "0000000000000000000"; + var SEVENS = "7777777777777777777"; + var ZERO_OFFSET = 48; + var USTAR_MAGIC = b4a.from([117, 115, 116, 97, 114, 0]); + var USTAR_VER = b4a.from([ZERO_OFFSET, ZERO_OFFSET]); + var GNU_MAGIC = b4a.from([117, 115, 116, 97, 114, 32]); + var GNU_VER = b4a.from([32, 0]); + var MASK = 4095; + var MAGIC_OFFSET = 257; + var VERSION_OFFSET = 263; + exports.decodeLongPath = function decodeLongPath(buf, encoding) { + return decodeStr(buf, 0, buf.length, encoding); + }; + exports.encodePax = function encodePax(opts) { + let result = ""; + if (opts.name) + result += addLength(" path=" + opts.name + ` +`); + if (opts.linkname) + result += addLength(" linkpath=" + opts.linkname + ` +`); + const pax = opts.pax; + if (pax) { + for (const key2 in pax) { + result += addLength(" " + key2 + "=" + pax[key2] + ` +`); + } + } + return b4a.from(result); + }; + exports.decodePax = function decodePax(buf) { + const result = {}; + while (buf.length) { + let i = 0; + while (i < buf.length && buf[i] !== 32) + i++; + const len = parseInt(b4a.toString(buf.subarray(0, i)), 10); + if (!len) + return result; + const b = b4a.toString(buf.subarray(i + 1, len - 1)); + const keyIndex = b.indexOf("="); + if (keyIndex === -1) + return result; + result[b.slice(0, keyIndex)] = b.slice(keyIndex + 1); + buf = buf.subarray(len); + } + return result; + }; + exports.encode = function encode(opts) { + const buf = b4a.alloc(512); + let name = opts.name; + let prefix = ""; + if (opts.typeflag === 5 && name[name.length - 1] !== "/") + name += "/"; + if (b4a.byteLength(name) !== name.length) + return null; + while (b4a.byteLength(name) > 100) { + const i = name.indexOf("/"); + if (i === -1) + return null; + prefix += prefix ? "/" + name.slice(0, i) : name.slice(0, i); + name = name.slice(i + 1); + } + if (b4a.byteLength(name) > 100 || b4a.byteLength(prefix) > 155) + return null; + if (opts.linkname && b4a.byteLength(opts.linkname) > 100) + return null; + b4a.write(buf, name); + b4a.write(buf, encodeOct(opts.mode & MASK, 6), 100); + b4a.write(buf, encodeOct(opts.uid, 6), 108); + b4a.write(buf, encodeOct(opts.gid, 6), 116); + encodeSize(opts.size, buf, 124); + b4a.write(buf, encodeOct(opts.mtime.getTime() / 1000 | 0, 11), 136); + buf[156] = ZERO_OFFSET + toTypeflag(opts.type); + if (opts.linkname) + b4a.write(buf, opts.linkname, 157); + b4a.copy(USTAR_MAGIC, buf, MAGIC_OFFSET); + b4a.copy(USTAR_VER, buf, VERSION_OFFSET); + if (opts.uname) + b4a.write(buf, opts.uname, 265); + if (opts.gname) + b4a.write(buf, opts.gname, 297); + b4a.write(buf, encodeOct(opts.devmajor || 0, 6), 329); + b4a.write(buf, encodeOct(opts.devminor || 0, 6), 337); + if (prefix) + b4a.write(buf, prefix, 345); + b4a.write(buf, encodeOct(cksum(buf), 6), 148); + return buf; + }; + exports.decode = function decode(buf, filenameEncoding, allowUnknownFormat) { + let typeflag = buf[156] === 0 ? 0 : buf[156] - ZERO_OFFSET; + let name = decodeStr(buf, 0, 100, filenameEncoding); + const mode = decodeOct(buf, 100, 8); + const uid = decodeOct(buf, 108, 8); + const gid = decodeOct(buf, 116, 8); + const size = decodeOct(buf, 124, 12); + const mtime = decodeOct(buf, 136, 12); + const type = toType(typeflag); + const linkname = buf[157] === 0 ? null : decodeStr(buf, 157, 100, filenameEncoding); + const uname = decodeStr(buf, 265, 32); + const gname = decodeStr(buf, 297, 32); + const devmajor = decodeOct(buf, 329, 8); + const devminor = decodeOct(buf, 337, 8); + const c = cksum(buf); + if (c === 8 * 32) + return null; + if (c !== decodeOct(buf, 148, 8)) + throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?"); + if (isUSTAR(buf)) { + if (buf[345]) + name = decodeStr(buf, 345, 155, filenameEncoding) + "/" + name; + } else if (isGNU(buf)) { + } else { + if (!allowUnknownFormat) { + throw new Error("Invalid tar header: unknown format."); + } + } + if (typeflag === 0 && name && name[name.length - 1] === "/") + typeflag = 5; + return { + name, + mode, + uid, + gid, + size, + mtime: new Date(1000 * mtime), + type, + linkname, + uname, + gname, + devmajor, + devminor, + pax: null + }; + }; + function isUSTAR(buf) { + return b4a.equals(USTAR_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6)); } - function writeDoubleBE(buffer, value, offset) { - return toBuffer(buffer).writeDoubleBE(value, offset); + function isGNU(buf) { + return b4a.equals(GNU_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6)) && b4a.equals(GNU_VER, buf.subarray(VERSION_OFFSET, VERSION_OFFSET + 2)); } - function writeFloatBE(buffer, value, offset) { - return toBuffer(buffer).writeFloatBE(value, offset); + function clamp(index, len, defaultValue) { + if (typeof index !== "number") + return defaultValue; + index = ~~index; + if (index >= len) + return len; + if (index >= 0) + return index; + index += len; + if (index >= 0) + return index; + return 0; } - function writeUInt32BE(buffer, value, offset) { - return toBuffer(buffer).writeUInt32BE(value, offset); + function toType(flag) { + switch (flag) { + case 0: + return "file"; + case 1: + return "link"; + case 2: + return "symlink"; + case 3: + return "character-device"; + case 4: + return "block-device"; + case 5: + return "directory"; + case 6: + return "fifo"; + case 7: + return "contiguous-file"; + case 72: + return "pax-header"; + case 55: + return "pax-global-header"; + case 27: + return "gnu-long-link-path"; + case 28: + case 30: + return "gnu-long-path"; + } + return null; } - function writeInt32BE(buffer, value, offset) { - return toBuffer(buffer).writeInt32BE(value, offset); + function toTypeflag(flag) { + switch (flag) { + case "file": + return 0; + case "link": + return 1; + case "symlink": + return 2; + case "character-device": + return 3; + case "block-device": + return 4; + case "directory": + return 5; + case "fifo": + return 6; + case "contiguous-file": + return 7; + case "pax-header": + return 72; + } + return 0; } - function readDoubleBE(buffer, offset) { - return toBuffer(buffer).readDoubleBE(offset); + function indexOf(block, num, offset, end) { + for (;offset < end; offset++) { + if (block[offset] === num) + return offset; + } + return end; } - function readFloatBE(buffer, offset) { - return toBuffer(buffer).readFloatBE(offset); + function cksum(block) { + let sum = 8 * 32; + for (let i = 0;i < 148; i++) + sum += block[i]; + for (let j = 156;j < 512; j++) + sum += block[j]; + return sum; } - function readUInt32BE(buffer, offset) { - return toBuffer(buffer).readUInt32BE(offset); + function encodeOct(val, n) { + val = val.toString(8); + if (val.length > n) + return SEVENS.slice(0, n) + " "; + return ZEROS.slice(0, n - val.length) + val + " "; } - function readInt32BE(buffer, offset) { - return toBuffer(buffer).readInt32BE(offset); + function encodeSizeBin(num, buf, off) { + buf[off] = 128; + for (let i = 11;i > 0; i--) { + buf[off + i] = num & 255; + num = Math.floor(num / 256); + } } - module.exports = { - isBuffer, - isEncoding, - alloc, - allocUnsafe, - allocUnsafeSlow, - byteLength, - compare, - concat, - copy, - equals, - fill, - from: from2, - includes, - indexOf, - lastIndexOf, - swap16, - swap32, - swap64, - toBuffer, - toString, - write, - writeDoubleLE, - writeFloatLE, - writeUInt32LE, - writeInt32LE, - readDoubleLE, - readFloatLE, - readUInt32LE, - readInt32LE, - writeDoubleBE, - writeFloatBE, - writeUInt32BE, - writeInt32BE, - readDoubleBE, - readFloatBE, - readUInt32BE, - readInt32BE - }; -}); - -// node_modules/text-decoder/lib/pass-through-decoder.js -var require_pass_through_decoder = __commonJS((exports, module) => { - var b4a = require_b4a(); - module.exports = class PassThroughDecoder { - constructor(encoding) { - this.encoding = encoding; + function encodeSize(num, buf, off) { + if (num.toString(8).length > 11) { + encodeSizeBin(num, buf, off); + } else { + b4a.write(buf, encodeOct(num, 11), off); } - get remaining() { - return 0; + } + function parse256(buf) { + let positive; + if (buf[0] === 128) + positive = true; + else if (buf[0] === 255) + positive = false; + else + return null; + const tuple = []; + let i; + for (i = buf.length - 1;i > 0; i--) { + const byte = buf[i]; + if (positive) + tuple.push(byte); + else + tuple.push(255 - byte); } - decode(tail) { - return b4a.toString(tail, this.encoding); + let sum = 0; + const l = tuple.length; + for (i = 0;i < l; i++) { + sum += tuple[i] * Math.pow(256, i); } - flush() { - return ""; + return positive ? sum : -1 * sum; + } + function decodeOct(val, offset, length) { + val = val.subarray(offset, offset + length); + offset = 0; + if (val[offset] & 128) { + return parse256(val); + } else { + while (offset < val.length && val[offset] === 32) + offset++; + const end = clamp(indexOf(val, 32, offset, val.length), val.length, val.length); + while (offset < end && val[offset] === 0) + offset++; + if (end === offset) + return 0; + return parseInt(b4a.toString(val.subarray(offset, end)), 8); } - }; + } + function decodeStr(val, offset, length, encoding) { + return b4a.toString(val.subarray(offset, indexOf(val, 0, offset, offset + length)), encoding); + } + function addLength(str) { + const len = b4a.byteLength(str); + let digits = Math.floor(Math.log(len) / Math.log(10)) + 1; + if (len + digits >= Math.pow(10, digits)) + digits++; + return len + digits + str; + } }); -// node_modules/text-decoder/lib/utf8-decoder.js -var require_utf8_decoder = __commonJS((exports, module) => { +// node_modules/tar-stream/extract.js +var require_extract = __commonJS((exports, module) => { + var { Writable, Readable, getStreamError } = require_streamx(); + var FIFO = require_fast_fifo(); var b4a = require_b4a(); - module.exports = class UTF8Decoder { + var headers = require_headers(); + var EMPTY2 = b4a.alloc(0); + + class BufferList { constructor() { - this.codePoint = 0; - this.bytesSeen = 0; - this.bytesNeeded = 0; - this.lowerBoundary = 128; - this.upperBoundary = 191; + this.buffered = 0; + this.shifted = 0; + this.queue = new FIFO; + this._offset = 0; } - get remaining() { - return this.bytesSeen; + push(buffer) { + this.buffered += buffer.byteLength; + this.queue.push(buffer); } - decode(data) { - if (this.bytesNeeded === 0) { - let isBoundary = true; - for (let i = Math.max(0, data.byteLength - 4), n = data.byteLength;i < n && isBoundary; i++) { - isBoundary = data[i] <= 127; - } - if (isBoundary) - return b4a.toString(data, "utf8"); + shiftFirst(size) { + return this._buffered === 0 ? null : this._next(size); + } + shift(size) { + if (size > this.buffered) + return null; + if (size === 0) + return EMPTY2; + let chunk = this._next(size); + if (size === chunk.byteLength) + return chunk; + const chunks = [chunk]; + while ((size -= chunk.byteLength) > 0) { + chunk = this._next(size); + chunks.push(chunk); } - let result = ""; - for (let i = 0, n = data.byteLength;i < n; i++) { - const byte = data[i]; - if (this.bytesNeeded === 0) { - if (byte <= 127) { - result += String.fromCharCode(byte); - } else { - this.bytesSeen = 1; - if (byte >= 194 && byte <= 223) { - this.bytesNeeded = 2; - this.codePoint = byte & 31; - } else if (byte >= 224 && byte <= 239) { - if (byte === 224) - this.lowerBoundary = 160; - else if (byte === 237) - this.upperBoundary = 159; - this.bytesNeeded = 3; - this.codePoint = byte & 15; - } else if (byte >= 240 && byte <= 244) { - if (byte === 240) - this.lowerBoundary = 144; - if (byte === 244) - this.upperBoundary = 143; - this.bytesNeeded = 4; - this.codePoint = byte & 7; - } else { - result += "ļæ½"; - } - } - continue; - } - if (byte < this.lowerBoundary || byte > this.upperBoundary) { - this.codePoint = 0; - this.bytesNeeded = 0; - this.bytesSeen = 0; - this.lowerBoundary = 128; - this.upperBoundary = 191; - result += "ļæ½"; - continue; - } - this.lowerBoundary = 128; - this.upperBoundary = 191; - this.codePoint = this.codePoint << 6 | byte & 63; - this.bytesSeen++; - if (this.bytesSeen !== this.bytesNeeded) - continue; - result += String.fromCodePoint(this.codePoint); - this.codePoint = 0; - this.bytesNeeded = 0; - this.bytesSeen = 0; + return b4a.concat(chunks); + } + _next(size) { + const buf = this.queue.peek(); + const rem = buf.byteLength - this._offset; + if (size >= rem) { + const sub = this._offset ? buf.subarray(this._offset, buf.byteLength) : buf; + this.queue.shift(); + this._offset = 0; + this.buffered -= rem; + this.shifted += rem; + return sub; } - return result; + this.buffered -= size; + this.shifted += size; + return buf.subarray(this._offset, this._offset += size); } - flush() { - const result = this.bytesNeeded > 0 ? "ļæ½" : ""; - this.codePoint = 0; - this.bytesNeeded = 0; - this.bytesSeen = 0; - this.lowerBoundary = 128; - this.upperBoundary = 191; - return result; + } + + class Source extends Readable { + constructor(self2, header, offset) { + super(); + this.header = header; + this.offset = offset; + this._parent = self2; } - }; -}); + _read(cb) { + if (this.header.size === 0) { + this.push(null); + } + if (this._parent._stream === this) { + this._parent._update(); + } + cb(null); + } + _predestroy() { + this._parent.destroy(getStreamError(this)); + } + _detach() { + if (this._parent._stream === this) { + this._parent._stream = null; + this._parent._missing = overflow(this.header.size); + this._parent._update(); + } + } + _destroy(cb) { + this._detach(); + cb(null); + } + } -// node_modules/text-decoder/index.js -var require_text_decoder = __commonJS((exports, module) => { - var PassThroughDecoder = require_pass_through_decoder(); - var UTF8Decoder = require_utf8_decoder(); - module.exports = class TextDecoder2 { - constructor(encoding = "utf8") { - this.encoding = normalizeEncoding(encoding); - switch (this.encoding) { - case "utf8": - this.decoder = new UTF8Decoder; - break; - case "utf16le": - case "base64": - throw new Error("Unsupported encoding: " + this.encoding); - default: - this.decoder = new PassThroughDecoder(this.encoding); + class Extract extends Writable { + constructor(opts) { + super(opts); + if (!opts) + opts = {}; + this._buffer = new BufferList; + this._offset = 0; + this._header = null; + this._stream = null; + this._missing = 0; + this._longHeader = false; + this._callback = noop; + this._locked = false; + this._finished = false; + this._pax = null; + this._paxGlobal = null; + this._gnuLongPath = null; + this._gnuLongLinkPath = null; + this._filenameEncoding = opts.filenameEncoding || "utf-8"; + this._allowUnknownFormat = !!opts.allowUnknownFormat; + this._unlockBound = this._unlock.bind(this); + } + _unlock(err) { + this._locked = false; + if (err) { + this.destroy(err); + this._continueWrite(err); + return; } + this._update(); } - get remaining() { - return this.decoder.remaining; + _consumeHeader() { + if (this._locked) + return false; + this._offset = this._buffer.shifted; + try { + this._header = headers.decode(this._buffer.shift(512), this._filenameEncoding, this._allowUnknownFormat); + } catch (err) { + this._continueWrite(err); + return false; + } + if (!this._header) + return true; + switch (this._header.type) { + case "gnu-long-path": + case "gnu-long-link-path": + case "pax-global-header": + case "pax-header": + this._longHeader = true; + this._missing = this._header.size; + return true; + } + this._locked = true; + this._applyLongHeaders(); + if (this._header.size === 0 || this._header.type === "directory") { + this.emit("entry", this._header, this._createStream(), this._unlockBound); + return true; + } + this._stream = this._createStream(); + this._missing = this._header.size; + this.emit("entry", this._header, this._stream, this._unlockBound); + return true; } - push(data) { - if (typeof data === "string") - return data; - return this.decoder.decode(data); + _applyLongHeaders() { + if (this._gnuLongPath) { + this._header.name = this._gnuLongPath; + this._gnuLongPath = null; + } + if (this._gnuLongLinkPath) { + this._header.linkname = this._gnuLongLinkPath; + this._gnuLongLinkPath = null; + } + if (this._pax) { + if (this._pax.path) + this._header.name = this._pax.path; + if (this._pax.linkpath) + this._header.linkname = this._pax.linkpath; + if (this._pax.size) + this._header.size = parseInt(this._pax.size, 10); + this._header.pax = this._pax; + this._pax = null; + } } - write(data) { - return this.push(data); + _decodeLongHeader(buf) { + switch (this._header.type) { + case "gnu-long-path": + this._gnuLongPath = headers.decodeLongPath(buf, this._filenameEncoding); + break; + case "gnu-long-link-path": + this._gnuLongLinkPath = headers.decodeLongPath(buf, this._filenameEncoding); + break; + case "pax-global-header": + this._paxGlobal = headers.decodePax(buf); + break; + case "pax-header": + this._pax = this._paxGlobal === null ? headers.decodePax(buf) : Object.assign({}, this._paxGlobal, headers.decodePax(buf)); + break; + } } - end(data) { - let result = ""; - if (data) - result = this.push(data); - result += this.decoder.flush(); - return result; + _consumeLongHeader() { + this._longHeader = false; + this._missing = overflow(this._header.size); + const buf = this._buffer.shift(this._header.size); + try { + this._decodeLongHeader(buf); + } catch (err) { + this._continueWrite(err); + return false; + } + return true; } - }; - function normalizeEncoding(encoding) { - encoding = encoding.toLowerCase(); - switch (encoding) { - case "utf8": - case "utf-8": - return "utf8"; - case "ucs2": - case "ucs-2": - case "utf16le": - case "utf-16le": - return "utf16le"; - case "latin1": - case "binary": - return "latin1"; - case "base64": - case "ascii": - case "hex": - return encoding; - default: - throw new Error("Unknown encoding: " + encoding); + _consumeStream() { + const buf = this._buffer.shiftFirst(this._missing); + if (buf === null) + return false; + this._missing -= buf.byteLength; + const drained = this._stream.push(buf); + if (this._missing === 0) { + this._stream.push(null); + if (drained) + this._stream._detach(); + return drained && this._locked === false; + } + return drained; } - } -}); - -// node_modules/streamx/index.js -var require_streamx = __commonJS((exports, module) => { - var { EventEmitter: EventEmitter2 } = __require("events"); - var STREAM_DESTROYED = new Error("Stream was destroyed"); - var PREMATURE_CLOSE = new Error("Premature close"); - var queueTick = require_process_next_tick(); - var FIFO = require_fast_fifo(); - var TextDecoder2 = require_text_decoder(); - var MAX = (1 << 29) - 1; - var OPENING = 1; - var PREDESTROYING = 2; - var DESTROYING = 4; - var DESTROYED = 8; - var NOT_OPENING = MAX ^ OPENING; - var NOT_PREDESTROYING = MAX ^ PREDESTROYING; - var READ_ACTIVE = 1 << 4; - var READ_UPDATING = 2 << 4; - var READ_PRIMARY = 4 << 4; - var READ_QUEUED = 8 << 4; - var READ_RESUMED = 16 << 4; - var READ_PIPE_DRAINED = 32 << 4; - var READ_ENDING = 64 << 4; - var READ_EMIT_DATA = 128 << 4; - var READ_EMIT_READABLE = 256 << 4; - var READ_EMITTED_READABLE = 512 << 4; - var READ_DONE = 1024 << 4; - var READ_NEXT_TICK = 2048 << 4; - var READ_NEEDS_PUSH = 4096 << 4; - var READ_READ_AHEAD = 8192 << 4; - var READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED; - var READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH; - var READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE; - var READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED; - var READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD; - var READ_NOT_ACTIVE = MAX ^ READ_ACTIVE; - var READ_NON_PRIMARY = MAX ^ READ_PRIMARY; - var READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH); - var READ_PUSHED = MAX ^ READ_NEEDS_PUSH; - var READ_PAUSED = MAX ^ READ_RESUMED; - var READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE); - var READ_NOT_ENDING = MAX ^ READ_ENDING; - var READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING; - var READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK; - var READ_NOT_UPDATING = MAX ^ READ_UPDATING; - var READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD; - var READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD; - var WRITE_ACTIVE = 1 << 18; - var WRITE_UPDATING = 2 << 18; - var WRITE_PRIMARY = 4 << 18; - var WRITE_QUEUED = 8 << 18; - var WRITE_UNDRAINED = 16 << 18; - var WRITE_DONE = 32 << 18; - var WRITE_EMIT_DRAIN = 64 << 18; - var WRITE_NEXT_TICK = 128 << 18; - var WRITE_WRITING = 256 << 18; - var WRITE_FINISHING = 512 << 18; - var WRITE_CORKED = 1024 << 18; - var WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING); - var WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY; - var WRITE_NOT_FINISHING = MAX ^ (WRITE_ACTIVE | WRITE_FINISHING); - var WRITE_DRAINED = MAX ^ WRITE_UNDRAINED; - var WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED; - var WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK; - var WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING; - var WRITE_NOT_CORKED = MAX ^ WRITE_CORKED; - var ACTIVE = READ_ACTIVE | WRITE_ACTIVE; - var NOT_ACTIVE = MAX ^ ACTIVE; - var DONE = READ_DONE | WRITE_DONE; - var DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING; - var OPEN_STATUS = DESTROY_STATUS | OPENING; - var AUTO_DESTROY = DESTROY_STATUS | DONE; - var NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY; - var ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK; - var TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE; - var IS_OPENING = OPEN_STATUS | TICKING; - var READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE; - var READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED; - var READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED; - var READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE; - var SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD; - var READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE; - var READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY; - var READ_NEXT_TICK_OR_OPENING = READ_NEXT_TICK | OPENING; - var WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE; - var WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED; - var WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE; - var WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE; - var WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED; - var WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE; - var WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING; - var WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE; - var WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE; - var WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY; - var WRITE_DROP_DATA = WRITE_FINISHING | WRITE_DONE | DESTROY_STATUS; - var asyncIterator = Symbol.asyncIterator || Symbol("asyncIterator"); - - class WritableState { - constructor(stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) { - this.stream = stream; - this.queue = new FIFO; - this.highWaterMark = highWaterMark; - this.buffered = 0; - this.error = null; - this.pipeline = null; - this.drains = null; - this.byteLength = byteLengthWritable || byteLength || defaultByteLength; - this.map = mapWritable || map; - this.afterWrite = afterWrite.bind(this); - this.afterUpdateNextTick = updateWriteNT.bind(this); + _createStream() { + return new Source(this, this._header, this._offset); + } + _update() { + while (this._buffer.buffered > 0 && !this.destroying) { + if (this._missing > 0) { + if (this._stream !== null) { + if (this._consumeStream() === false) + return; + continue; + } + if (this._longHeader === true) { + if (this._missing > this._buffer.buffered) + break; + if (this._consumeLongHeader() === false) + return false; + continue; + } + const ignore = this._buffer.shiftFirst(this._missing); + if (ignore !== null) + this._missing -= ignore.byteLength; + continue; + } + if (this._buffer.buffered < 512) + break; + if (this._stream !== null || this._consumeHeader() === false) + return; + } + this._continueWrite(null); } - get ended() { - return (this.stream._duplexState & WRITE_DONE) !== 0; + _continueWrite(err) { + const cb = this._callback; + this._callback = noop; + cb(err); } - push(data) { - if ((this.stream._duplexState & WRITE_DROP_DATA) !== 0) - return false; - if (this.map !== null) - data = this.map(data); - this.buffered += this.byteLength(data); - this.queue.push(data); - if (this.buffered < this.highWaterMark) { - this.stream._duplexState |= WRITE_QUEUED; - return true; - } - this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED; - return false; + _write(data, cb) { + this._callback = cb; + this._buffer.push(data); + this._update(); } - shift() { - const data = this.queue.shift(); - this.buffered -= this.byteLength(data); - if (this.buffered === 0) - this.stream._duplexState &= WRITE_NOT_QUEUED; - return data; + _final(cb) { + this._finished = this._missing === 0 && this._buffer.buffered === 0; + cb(this._finished ? null : new Error("Unexpected end of data")); } - end(data) { - if (typeof data === "function") - this.stream.once("finish", data); - else if (data !== undefined && data !== null) - this.push(data); - this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY; + _predestroy() { + this._continueWrite(null); } - autoBatch(data, cb) { - const buffer = []; - const stream = this.stream; - buffer.push(data); - while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) { - buffer.push(stream._writableState.shift()); - } - if ((stream._duplexState & OPEN_STATUS) !== 0) - return cb(null); - stream._writev(buffer, cb); + _destroy(cb) { + if (this._stream) + this._stream.destroy(getStreamError(this)); + cb(null); } - update() { - const stream = this.stream; - stream._duplexState |= WRITE_UPDATING; - do { - while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) { - const data = this.shift(); - stream._duplexState |= WRITE_ACTIVE_AND_WRITING; - stream._write(data, this.afterWrite); + [Symbol.asyncIterator]() { + let error = null; + let promiseResolve = null; + let promiseReject = null; + let entryStream = null; + let entryCallback = null; + const extract = this; + this.on("entry", onentry); + this.on("error", (err) => { + error = err; + }); + this.on("close", onclose); + return { + [Symbol.asyncIterator]() { + return this; + }, + next() { + return new Promise(onnext); + }, + return() { + return destroy(null); + }, + throw(err) { + return destroy(err); } - if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) - this.updateNonPrimary(); - } while (this.continueUpdate() === true); - stream._duplexState &= WRITE_NOT_UPDATING; - } - updateNonPrimary() { - const stream = this.stream; - if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) { - stream._duplexState = stream._duplexState | WRITE_ACTIVE; - stream._final(afterFinal.bind(this)); - return; + }; + function consumeCallback(err) { + if (!entryCallback) + return; + const cb = entryCallback; + entryCallback = null; + cb(err); } - if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) { - if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) { - stream._duplexState |= ACTIVE; - stream._destroy(afterDestroy.bind(this)); + function onnext(resolve, reject) { + if (error) { + return reject(error); + } + if (entryStream) { + resolve({ value: entryStream, done: false }); + entryStream = null; + return; + } + promiseResolve = resolve; + promiseReject = reject; + consumeCallback(null); + if (extract._finished && promiseResolve) { + promiseResolve({ value: undefined, done: true }); + promiseResolve = promiseReject = null; } - return; } - if ((stream._duplexState & IS_OPENING) === OPENING) { - stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING; - stream._open(afterOpen.bind(this)); + function onentry(header, stream, callback) { + entryCallback = callback; + stream.on("error", noop); + if (promiseResolve) { + promiseResolve({ value: stream, done: false }); + promiseResolve = promiseReject = null; + } else { + entryStream = stream; + } + } + function onclose() { + consumeCallback(error); + if (!promiseResolve) + return; + if (error) + promiseReject(error); + else + promiseResolve({ value: undefined, done: true }); + promiseResolve = promiseReject = null; + } + function destroy(err) { + extract.destroy(err); + consumeCallback(err); + return new Promise((resolve, reject) => { + if (extract.destroyed) + return resolve({ value: undefined, done: true }); + extract.once("close", function() { + if (err) + reject(err); + else + resolve({ value: undefined, done: true }); + }); + }); } } - continueUpdate() { - if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) - return false; - this.stream._duplexState &= WRITE_NOT_NEXT_TICK; - return true; - } - updateCallback() { - if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) - this.update(); - else - this.updateNextTick(); - } - updateNextTick() { - if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) - return; - this.stream._duplexState |= WRITE_NEXT_TICK; - if ((this.stream._duplexState & WRITE_UPDATING) === 0) - queueTick(this.afterUpdateNextTick); - } } + module.exports = function extract(opts) { + return new Extract(opts); + }; + function noop() { + } + function overflow(size) { + size &= 511; + return size && 512 - size; + } +}); - class ReadableState { - constructor(stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) { - this.stream = stream; - this.queue = new FIFO; - this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark; - this.buffered = 0; - this.readAhead = highWaterMark > 0; - this.error = null; - this.pipeline = null; - this.byteLength = byteLengthReadable || byteLength || defaultByteLength; - this.map = mapReadable || map; - this.pipeTo = null; - this.afterRead = afterRead.bind(this); - this.afterUpdateNextTick = updateReadNT.bind(this); +// node_modules/tar-stream/constants.js +var require_constants2 = __commonJS((exports, module) => { + var constants = { + S_IFMT: 61440, + S_IFDIR: 16384, + S_IFCHR: 8192, + S_IFBLK: 24576, + S_IFIFO: 4096, + S_IFLNK: 40960 + }; + try { + module.exports = __require("fs").constants || constants; + } catch { + module.exports = constants; + } +}); + +// node_modules/tar-stream/pack.js +var require_pack = __commonJS((exports, module) => { + var { Readable, Writable, getStreamError } = require_streamx(); + var b4a = require_b4a(); + var constants = require_constants2(); + var headers = require_headers(); + var DMODE = 493; + var FMODE = 420; + var END_OF_TAR = b4a.alloc(1024); + + class Sink extends Writable { + constructor(pack, header, callback) { + super({ mapWritable, eagerOpen: true }); + this.written = 0; + this.header = header; + this._callback = callback; + this._linkname = null; + this._isLinkname = header.type === "symlink" && !header.linkname; + this._isVoid = header.type !== "file" && header.type !== "contiguous-file"; + this._finished = false; + this._pack = pack; + this._openCallback = null; + if (this._pack._stream === null) + this._pack._stream = this; + else + this._pack._pending.push(this); } - get ended() { - return (this.stream._duplexState & READ_DONE) !== 0; + _open(cb) { + this._openCallback = cb; + if (this._pack._stream === this) + this._continueOpen(); } - pipe(pipeTo, cb) { - if (this.pipeTo !== null) - throw new Error("Can only pipe to one destination"); - if (typeof cb !== "function") - cb = null; - this.stream._duplexState |= READ_PIPE_DRAINED; - this.pipeTo = pipeTo; - this.pipeline = new Pipeline(this.stream, pipeTo, cb); - if (cb) - this.stream.on("error", noop); - if (isStreamx(pipeTo)) { - pipeTo._writableState.pipeline = this.pipeline; - if (cb) - pipeTo.on("error", noop); - pipeTo.on("finish", this.pipeline.finished.bind(this.pipeline)); - } else { - const onerror = this.pipeline.done.bind(this.pipeline, pipeTo); - const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null); - pipeTo.on("error", onerror); - pipeTo.on("close", onclose); - pipeTo.on("finish", this.pipeline.finished.bind(this.pipeline)); + _continuePack(err) { + if (this._callback === null) + return; + const callback = this._callback; + this._callback = null; + callback(err); + } + _continueOpen() { + if (this._pack._stream === null) + this._pack._stream = this; + const cb = this._openCallback; + this._openCallback = null; + if (cb === null) + return; + if (this._pack.destroying) + return cb(new Error("pack stream destroyed")); + if (this._pack._finalized) + return cb(new Error("pack stream is already finalized")); + this._pack._stream = this; + if (!this._isLinkname) { + this._pack._encode(this.header); } - pipeTo.on("drain", afterDrain.bind(this)); - this.stream.emit("piping", pipeTo); - pipeTo.emit("pipe", this.stream); + if (this._isVoid) { + this._finish(); + this._continuePack(null); + } + cb(null); } - push(data) { - const stream = this.stream; - if (data === null) { - this.highWaterMark = 0; - stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED; - return false; + _write(data, cb) { + if (this._isLinkname) { + this._linkname = this._linkname ? b4a.concat([this._linkname, data]) : data; + return cb(null); } - if (this.map !== null) { - data = this.map(data); - if (data === null) { - stream._duplexState &= READ_PUSHED; - return this.buffered < this.highWaterMark; + if (this._isVoid) { + if (data.byteLength > 0) { + return cb(new Error("No body allowed for this entry")); } + return cb(); } - this.buffered += this.byteLength(data); - this.queue.push(data); - stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED; - return this.buffered < this.highWaterMark; + this.written += data.byteLength; + if (this._pack.push(data)) + return cb(); + this._pack._drain = cb; } - shift() { - const data = this.queue.shift(); - this.buffered -= this.byteLength(data); - if (this.buffered === 0) - this.stream._duplexState &= READ_NOT_QUEUED; - return data; + _finish() { + if (this._finished) + return; + this._finished = true; + if (this._isLinkname) { + this.header.linkname = this._linkname ? b4a.toString(this._linkname, "utf-8") : ""; + this._pack._encode(this.header); + } + overflow(this._pack, this.header.size); + this._pack._done(this); } - unshift(data) { - const pending = [this.map !== null ? this.map(data) : data]; - while (this.buffered > 0) - pending.push(this.shift()); - for (let i = 0;i < pending.length - 1; i++) { - const data2 = pending[i]; - this.buffered += this.byteLength(data2); - this.queue.push(data2); + _final(cb) { + if (this.written !== this.header.size) { + return cb(new Error("Size mismatch")); } - this.push(pending[pending.length - 1]); + this._finish(); + cb(null); } - read() { - const stream = this.stream; - if ((stream._duplexState & READ_STATUS) === READ_QUEUED) { - const data = this.shift(); - if (this.pipeTo !== null && this.pipeTo.write(data) === false) - stream._duplexState &= READ_PIPE_NOT_DRAINED; - if ((stream._duplexState & READ_EMIT_DATA) !== 0) - stream.emit("data", data); - return data; + _getError() { + return getStreamError(this) || new Error("tar entry destroyed"); + } + _predestroy() { + this._pack.destroy(this._getError()); + } + _destroy(cb) { + this._pack._done(this); + this._continuePack(this._finished ? null : this._getError()); + cb(); + } + } + + class Pack extends Readable { + constructor(opts) { + super(opts); + this._drain = noop; + this._finalized = false; + this._finalizing = false; + this._pending = []; + this._stream = null; + } + entry(header, buffer, callback) { + if (this._finalized || this.destroying) + throw new Error("already finalized or destroyed"); + if (typeof buffer === "function") { + callback = buffer; + buffer = null; } - if (this.readAhead === false) { - stream._duplexState |= READ_READ_AHEAD; - this.updateNextTick(); + if (!callback) + callback = noop; + if (!header.size || header.type === "symlink") + header.size = 0; + if (!header.type) + header.type = modeToType(header.mode); + if (!header.mode) + header.mode = header.type === "directory" ? DMODE : FMODE; + if (!header.uid) + header.uid = 0; + if (!header.gid) + header.gid = 0; + if (!header.mtime) + header.mtime = new Date; + if (typeof buffer === "string") + buffer = b4a.from(buffer); + const sink = new Sink(this, header, callback); + if (b4a.isBuffer(buffer)) { + header.size = buffer.byteLength; + sink.write(buffer); + sink.end(); + return sink; } - return null; + if (sink._isVoid) { + return sink; + } + return sink; } - drain() { - const stream = this.stream; - while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) { - const data = this.shift(); - if (this.pipeTo !== null && this.pipeTo.write(data) === false) - stream._duplexState &= READ_PIPE_NOT_DRAINED; - if ((stream._duplexState & READ_EMIT_DATA) !== 0) - stream.emit("data", data); + finalize() { + if (this._stream || this._pending.length > 0) { + this._finalizing = true; + return; } + if (this._finalized) + return; + this._finalized = true; + this.push(END_OF_TAR); + this.push(null); } - update() { - const stream = this.stream; - stream._duplexState |= READ_UPDATING; - do { - this.drain(); - while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) { - stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH; - stream._read(this.afterRead); - this.drain(); - } - if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) { - stream._duplexState |= READ_EMITTED_READABLE; - stream.emit("readable"); - } - if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) - this.updateNonPrimary(); - } while (this.continueUpdate() === true); - stream._duplexState &= READ_NOT_UPDATING; + _done(stream) { + if (stream !== this._stream) + return; + this._stream = null; + if (this._finalizing) + this.finalize(); + if (this._pending.length) + this._pending.shift()._continueOpen(); } - updateNonPrimary() { - const stream = this.stream; - if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) { - stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING; - stream.emit("end"); - if ((stream._duplexState & AUTO_DESTROY) === DONE) - stream._duplexState |= DESTROYING; - if (this.pipeTo !== null) - this.pipeTo.end(); - } - if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) { - if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) { - stream._duplexState |= ACTIVE; - stream._destroy(afterDestroy.bind(this)); + _encode(header) { + if (!header.pax) { + const buf = headers.encode(header); + if (buf) { + this.push(buf); + return; } - return; - } - if ((stream._duplexState & IS_OPENING) === OPENING) { - stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING; - stream._open(afterOpen.bind(this)); } + this._encodePax(header); } - continueUpdate() { - if ((this.stream._duplexState & READ_NEXT_TICK) === 0) - return false; - this.stream._duplexState &= READ_NOT_NEXT_TICK; - return true; - } - updateCallback() { - if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) - this.update(); - else - this.updateNextTick(); + _encodePax(header) { + const paxHeader = headers.encodePax({ + name: header.name, + linkname: header.linkname, + pax: header.pax + }); + const newHeader = { + name: "PaxHeader", + mode: header.mode, + uid: header.uid, + gid: header.gid, + size: paxHeader.byteLength, + mtime: header.mtime, + type: "pax-header", + linkname: header.linkname && "PaxHeader", + uname: header.uname, + gname: header.gname, + devmajor: header.devmajor, + devminor: header.devminor + }; + this.push(headers.encode(newHeader)); + this.push(paxHeader); + overflow(this, paxHeader.byteLength); + newHeader.size = header.size; + newHeader.type = header.type; + this.push(headers.encode(newHeader)); } - updateNextTickIfOpen() { - if ((this.stream._duplexState & READ_NEXT_TICK_OR_OPENING) !== 0) - return; - this.stream._duplexState |= READ_NEXT_TICK; - if ((this.stream._duplexState & READ_UPDATING) === 0) - queueTick(this.afterUpdateNextTick); + _doDrain() { + const drain = this._drain; + this._drain = noop; + drain(); } - updateNextTick() { - if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) - return; - this.stream._duplexState |= READ_NEXT_TICK; - if ((this.stream._duplexState & READ_UPDATING) === 0) - queueTick(this.afterUpdateNextTick); + _predestroy() { + const err = getStreamError(this); + if (this._stream) + this._stream.destroy(err); + while (this._pending.length) { + const stream = this._pending.shift(); + stream.destroy(err); + stream._continueOpen(); + } + this._doDrain(); + } + _read(cb) { + this._doDrain(); + cb(); } } - - class TransformState { - constructor(stream) { - this.data = null; - this.afterTransform = afterTransform.bind(stream); - this.afterFinal = null; + module.exports = function pack(opts) { + return new Pack(opts); + }; + function modeToType(mode) { + switch (mode & constants.S_IFMT) { + case constants.S_IFBLK: + return "block-device"; + case constants.S_IFCHR: + return "character-device"; + case constants.S_IFDIR: + return "directory"; + case constants.S_IFIFO: + return "fifo"; + case constants.S_IFLNK: + return "symlink"; } + return "file"; + } + function noop() { + } + function overflow(self2, size) { + size &= 511; + if (size) + self2.push(END_OF_TAR.subarray(0, 512 - size)); + } + function mapWritable(buf) { + return b4a.isBuffer(buf) ? buf : b4a.from(buf); } +}); - class Pipeline { - constructor(src, dst, cb) { - this.from = src; - this.to = dst; - this.afterPipe = cb; - this.error = null; - this.pipeToFinished = false; +// node_modules/tar-stream/index.js +var require_tar_stream = __commonJS((exports) => { + exports.extract = require_extract(); + exports.pack = require_pack(); +}); + +// node_modules/archiver/lib/plugins/tar.js +var require_tar = __commonJS((exports, module) => { + var zlib = __require("zlib"); + var engine = require_tar_stream(); + var util2 = require_archiver_utils(); + var Tar = function(options) { + if (!(this instanceof Tar)) { + return new Tar(options); } - finished() { - this.pipeToFinished = true; + options = this.options = util2.defaults(options, { + gzip: false + }); + if (typeof options.gzipOptions !== "object") { + options.gzipOptions = {}; } - done(stream, err) { - if (err) - this.error = err; - if (stream === this.to) { - this.to = null; - if (this.from !== null) { - if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) { - this.from.destroy(this.error || new Error("Writable stream closed prematurely")); - } - return; - } - } - if (stream === this.from) { - this.from = null; - if (this.to !== null) { - if ((stream._duplexState & READ_DONE) === 0) { - this.to.destroy(this.error || new Error("Readable stream closed before ending")); - } - return; - } - } - if (this.afterPipe !== null) - this.afterPipe(this.error); - this.to = this.from = this.afterPipe = null; + this.supports = { + directory: true, + symlink: true + }; + this.engine = engine.pack(options); + this.compressor = false; + if (options.gzip) { + this.compressor = zlib.createGzip(options.gzipOptions); + this.compressor.on("error", this._onCompressorError.bind(this)); } - } - function afterDrain() { - this.stream._duplexState |= READ_PIPE_DRAINED; - this.updateCallback(); - } - function afterFinal(err) { - const stream = this.stream; - if (err) - stream.destroy(err); - if ((stream._duplexState & DESTROY_STATUS) === 0) { - stream._duplexState |= WRITE_DONE; - stream.emit("finish"); + }; + Tar.prototype._onCompressorError = function(err) { + this.engine.emit("error", err); + }; + Tar.prototype.append = function(source, data, callback) { + var self2 = this; + data.mtime = data.date; + function append(err, sourceBuffer) { + if (err) { + callback(err); + return; + } + self2.engine.entry(data, sourceBuffer, function(err2) { + callback(err2, data); + }); } - if ((stream._duplexState & AUTO_DESTROY) === DONE) { - stream._duplexState |= DESTROYING; + if (data.sourceType === "buffer") { + append(null, source); + } else if (data.sourceType === "stream" && data.stats) { + data.size = data.stats.size; + var entry = self2.engine.entry(data, function(err) { + callback(err, data); + }); + source.pipe(entry); + } else if (data.sourceType === "stream") { + util2.collectStream(source, append); } - stream._duplexState &= WRITE_NOT_FINISHING; - if ((stream._duplexState & WRITE_UPDATING) === 0) - this.update(); - else - this.updateNextTick(); - } - function afterDestroy(err) { - const stream = this.stream; - if (!err && this.error !== STREAM_DESTROYED) - err = this.error; - if (err) - stream.emit("error", err); - stream._duplexState |= DESTROYED; - stream.emit("close"); - const rs = stream._readableState; - const ws = stream._writableState; - if (rs !== null && rs.pipeline !== null) - rs.pipeline.done(stream, err); - if (ws !== null) { - while (ws.drains !== null && ws.drains.length > 0) - ws.drains.shift().resolve(false); - if (ws.pipeline !== null) - ws.pipeline.done(stream, err); + }; + Tar.prototype.finalize = function() { + this.engine.finalize(); + }; + Tar.prototype.on = function() { + return this.engine.on.apply(this.engine, arguments); + }; + Tar.prototype.pipe = function(destination, options) { + if (this.compressor) { + return this.engine.pipe.apply(this.engine, [this.compressor]).pipe(destination, options); + } else { + return this.engine.pipe.apply(this.engine, arguments); } - } - function afterWrite(err) { - const stream = this.stream; - if (err) - stream.destroy(err); - stream._duplexState &= WRITE_NOT_ACTIVE; - if (this.drains !== null) - tickDrains(this.drains); - if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) { - stream._duplexState &= WRITE_DRAINED; - if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) { - stream.emit("drain"); - } + }; + Tar.prototype.unpipe = function() { + if (this.compressor) { + return this.compressor.unpipe.apply(this.compressor, arguments); + } else { + return this.engine.unpipe.apply(this.engine, arguments); } - this.updateCallback(); - } - function afterRead(err) { - if (err) - this.stream.destroy(err); - this.stream._duplexState &= READ_NOT_ACTIVE; - if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) - this.stream._duplexState &= READ_NO_READ_AHEAD; - this.updateCallback(); + }; + module.exports = Tar; +}); + +// node_modules/buffer-crc32/dist/index.cjs +var require_dist = __commonJS((exports, module) => { + function getDefaultExportFromCjs(x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } - function updateReadNT() { - if ((this.stream._duplexState & READ_UPDATING) === 0) { - this.stream._duplexState &= READ_NOT_NEXT_TICK; - this.update(); + var CRC_TABLE = new Int32Array([ + 0, + 1996959894, + 3993919788, + 2567524794, + 124634137, + 1886057615, + 3915621685, + 2657392035, + 249268274, + 2044508324, + 3772115230, + 2547177864, + 162941995, + 2125561021, + 3887607047, + 2428444049, + 498536548, + 1789927666, + 4089016648, + 2227061214, + 450548861, + 1843258603, + 4107580753, + 2211677639, + 325883990, + 1684777152, + 4251122042, + 2321926636, + 335633487, + 1661365465, + 4195302755, + 2366115317, + 997073096, + 1281953886, + 3579855332, + 2724688242, + 1006888145, + 1258607687, + 3524101629, + 2768942443, + 901097722, + 1119000684, + 3686517206, + 2898065728, + 853044451, + 1172266101, + 3705015759, + 2882616665, + 651767980, + 1373503546, + 3369554304, + 3218104598, + 565507253, + 1454621731, + 3485111705, + 3099436303, + 671266974, + 1594198024, + 3322730930, + 2970347812, + 795835527, + 1483230225, + 3244367275, + 3060149565, + 1994146192, + 31158534, + 2563907772, + 4023717930, + 1907459465, + 112637215, + 2680153253, + 3904427059, + 2013776290, + 251722036, + 2517215374, + 3775830040, + 2137656763, + 141376813, + 2439277719, + 3865271297, + 1802195444, + 476864866, + 2238001368, + 4066508878, + 1812370925, + 453092731, + 2181625025, + 4111451223, + 1706088902, + 314042704, + 2344532202, + 4240017532, + 1658658271, + 366619977, + 2362670323, + 4224994405, + 1303535960, + 984961486, + 2747007092, + 3569037538, + 1256170817, + 1037604311, + 2765210733, + 3554079995, + 1131014506, + 879679996, + 2909243462, + 3663771856, + 1141124467, + 855842277, + 2852801631, + 3708648649, + 1342533948, + 654459306, + 3188396048, + 3373015174, + 1466479909, + 544179635, + 3110523913, + 3462522015, + 1591671054, + 702138776, + 2966460450, + 3352799412, + 1504918807, + 783551873, + 3082640443, + 3233442989, + 3988292384, + 2596254646, + 62317068, + 1957810842, + 3939845945, + 2647816111, + 81470997, + 1943803523, + 3814918930, + 2489596804, + 225274430, + 2053790376, + 3826175755, + 2466906013, + 167816743, + 2097651377, + 4027552580, + 2265490386, + 503444072, + 1762050814, + 4150417245, + 2154129355, + 426522225, + 1852507879, + 4275313526, + 2312317920, + 282753626, + 1742555852, + 4189708143, + 2394877945, + 397917763, + 1622183637, + 3604390888, + 2714866558, + 953729732, + 1340076626, + 3518719985, + 2797360999, + 1068828381, + 1219638859, + 3624741850, + 2936675148, + 906185462, + 1090812512, + 3747672003, + 2825379669, + 829329135, + 1181335161, + 3412177804, + 3160834842, + 628085408, + 1382605366, + 3423369109, + 3138078467, + 570562233, + 1426400815, + 3317316542, + 2998733608, + 733239954, + 1555261956, + 3268935591, + 3050360625, + 752459403, + 1541320221, + 2607071920, + 3965973030, + 1969922972, + 40735498, + 2617837225, + 3943577151, + 1913087877, + 83908371, + 2512341634, + 3803740692, + 2075208622, + 213261112, + 2463272603, + 3855990285, + 2094854071, + 198958881, + 2262029012, + 4057260610, + 1759359992, + 534414190, + 2176718541, + 4139329115, + 1873836001, + 414664567, + 2282248934, + 4279200368, + 1711684554, + 285281116, + 2405801727, + 4167216745, + 1634467795, + 376229701, + 2685067896, + 3608007406, + 1308918612, + 956543938, + 2808555105, + 3495958263, + 1231636301, + 1047427035, + 2932959818, + 3654703836, + 1088359270, + 936918000, + 2847714899, + 3736837829, + 1202900863, + 817233897, + 3183342108, + 3401237130, + 1404277552, + 615818150, + 3134207493, + 3453421203, + 1423857449, + 601450431, + 3009837614, + 3294710456, + 1567103746, + 711928724, + 3020668471, + 3272380065, + 1510334235, + 755167117 + ]); + function ensureBuffer(input) { + if (Buffer.isBuffer(input)) { + return input; } - } - function updateWriteNT() { - if ((this.stream._duplexState & WRITE_UPDATING) === 0) { - this.stream._duplexState &= WRITE_NOT_NEXT_TICK; - this.update(); + if (typeof input === "number") { + return Buffer.alloc(input); + } else if (typeof input === "string") { + return Buffer.from(input); + } else { + throw new Error("input must be buffer, number, or string, received " + typeof input); } } - function tickDrains(drains) { - for (let i = 0;i < drains.length; i++) { - if (--drains[i].writes === 0) { - drains.shift().resolve(true); - i--; - } - } + function bufferizeInt(num) { + const tmp = ensureBuffer(4); + tmp.writeInt32BE(num, 0); + return tmp; } - function afterOpen(err) { - const stream = this.stream; - if (err) - stream.destroy(err); - if ((stream._duplexState & DESTROYING) === 0) { - if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) - stream._duplexState |= READ_PRIMARY; - if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) - stream._duplexState |= WRITE_PRIMARY; - stream.emit("open"); - } - stream._duplexState &= NOT_ACTIVE; - if (stream._writableState !== null) { - stream._writableState.updateCallback(); + function _crc32(buf, previous) { + buf = ensureBuffer(buf); + if (Buffer.isBuffer(previous)) { + previous = previous.readUInt32BE(0); } - if (stream._readableState !== null) { - stream._readableState.updateCallback(); + let crc = ~~previous ^ -1; + for (var n = 0;n < buf.length; n++) { + crc = CRC_TABLE[(crc ^ buf[n]) & 255] ^ crc >>> 8; } + return crc ^ -1; } - function afterTransform(err, data) { - if (data !== undefined && data !== null) - this.push(data); - this._writableState.afterWrite(err); - } - function newListener(name) { - if (this._readableState !== null) { - if (name === "data") { - this._duplexState |= READ_EMIT_DATA | READ_RESUMED_READ_AHEAD; - this._readableState.updateNextTick(); - } - if (name === "readable") { - this._duplexState |= READ_EMIT_READABLE; - this._readableState.updateNextTick(); - } - } - if (this._writableState !== null) { - if (name === "drain") { - this._duplexState |= WRITE_EMIT_DRAIN; - this._writableState.updateNextTick(); - } - } + function crc32() { + return bufferizeInt(_crc32.apply(null, arguments)); } + crc32.signed = function() { + return _crc32.apply(null, arguments); + }; + crc32.unsigned = function() { + return _crc32.apply(null, arguments) >>> 0; + }; + var bufferCrc32 = crc32; + var index = /* @__PURE__ */ getDefaultExportFromCjs(bufferCrc32); + module.exports = index; +}); - class Stream extends EventEmitter2 { - constructor(opts) { - super(); - this._duplexState = 0; - this._readableState = null; - this._writableState = null; - if (opts) { - if (opts.open) - this._open = opts.open; - if (opts.destroy) - this._destroy = opts.destroy; - if (opts.predestroy) - this._predestroy = opts.predestroy; - if (opts.signal) { - opts.signal.addEventListener("abort", abort.bind(this)); - } - } - this.on("newListener", newListener); - } - _open(cb) { - cb(null); +// node_modules/archiver/lib/plugins/json.js +var require_json = __commonJS((exports, module) => { + var inherits = __require("util").inherits; + var Transform = require_ours().Transform; + var crc32 = require_dist(); + var util2 = require_archiver_utils(); + var Json = function(options) { + if (!(this instanceof Json)) { + return new Json(options); } - _destroy(cb) { - cb(null); + options = this.options = util2.defaults(options, {}); + Transform.call(this, options); + this.supports = { + directory: true, + symlink: true + }; + this.files = []; + }; + inherits(Json, Transform); + Json.prototype._transform = function(chunk, encoding, callback) { + callback(null, chunk); + }; + Json.prototype._writeStringified = function() { + var fileString = JSON.stringify(this.files); + this.write(fileString); + }; + Json.prototype.append = function(source, data, callback) { + var self2 = this; + data.crc32 = 0; + function onend(err, sourceBuffer) { + if (err) { + callback(err); + return; + } + data.size = sourceBuffer.length || 0; + data.crc32 = crc32.unsigned(sourceBuffer); + self2.files.push(data); + callback(null, data); } - _predestroy() { + if (data.sourceType === "buffer") { + onend(null, source); + } else if (data.sourceType === "stream") { + util2.collectStream(source, onend); } - get readable() { - return this._readableState !== null ? true : undefined; + }; + Json.prototype.finalize = function() { + this._writeStringified(); + this.end(); + }; + module.exports = Json; +}); + +// node_modules/archiver/index.js +var require_archiver = __commonJS((exports, module) => { + var Archiver = require_core(); + var formats = {}; + var vending = function(format, options) { + return vending.create(format, options); + }; + vending.create = function(format, options) { + if (formats[format]) { + var instance = new Archiver(format, options); + instance.setFormat(format); + instance.setModule(new formats[format](options)); + return instance; + } else { + throw new Error("create(" + format + "): format not registered"); } - get writable() { - return this._writableState !== null ? true : undefined; + }; + vending.registerFormat = function(format, module2) { + if (formats[format]) { + throw new Error("register(" + format + "): format already registered"); } - get destroyed() { - return (this._duplexState & DESTROYED) !== 0; + if (typeof module2 !== "function") { + throw new Error("register(" + format + "): format module invalid"); } - get destroying() { - return (this._duplexState & DESTROY_STATUS) !== 0; + if (typeof module2.prototype.append !== "function" || typeof module2.prototype.finalize !== "function") { + throw new Error("register(" + format + "): format module missing methods"); } - destroy(err) { - if ((this._duplexState & DESTROY_STATUS) === 0) { - if (!err) - err = STREAM_DESTROYED; - this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY; - if (this._readableState !== null) { - this._readableState.highWaterMark = 0; - this._readableState.error = err; - } - if (this._writableState !== null) { - this._writableState.highWaterMark = 0; - this._writableState.error = err; - } - this._duplexState |= PREDESTROYING; - this._predestroy(); - this._duplexState &= NOT_PREDESTROYING; - if (this._readableState !== null) - this._readableState.updateNextTick(); - if (this._writableState !== null) - this._writableState.updateNextTick(); - } + formats[format] = module2; + }; + vending.isRegisteredFormat = function(format) { + if (formats[format]) { + return true; } - } + return false; + }; + vending.registerFormat("zip", require_zip3()); + vending.registerFormat("tar", require_tar()); + vending.registerFormat("json", require_json()); + module.exports = vending; +}); - class Readable extends Stream { - constructor(opts) { - super(opts); - this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD; - this._readableState = new ReadableState(this, opts); - if (opts) { - if (this._readableState.readAhead === false) - this._duplexState &= READ_NO_READ_AHEAD; - if (opts.read) - this._read = opts.read; - if (opts.eagerOpen) - this._readableState.updateNextTick(); - if (opts.encoding) - this.setEncoding(opts.encoding); +// node_modules/ignore/index.js +var require_ignore2 = __commonJS((exports, module) => { + function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; + } + var UNDEFINED = undefined; + var EMPTY2 = ""; + var SPACE = " "; + var ESCAPE = "\\"; + var REGEX_TEST_BLANK_LINE = /^\s+$/; + var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/; + var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; + var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; + var REGEX_SPLITALL_CRLF = /\r?\n/g; + var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; + var REGEX_TEST_TRAILING_SLASH = /\/$/; + var SLASH = "/"; + var TMP_KEY_IGNORE = "node-ignore"; + if (typeof Symbol !== "undefined") { + TMP_KEY_IGNORE = Symbol.for("node-ignore"); + } + var KEY_IGNORE = TMP_KEY_IGNORE; + var define2 = (object, key2, value) => { + Object.defineProperty(object, key2, { value }); + return value; + }; + var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; + var RETURN_FALSE = () => false; + var sanitizeRange = (range) => range.replace(REGEX_REGEXP_RANGE, (match, from2, to) => from2.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY2); + var cleanRangeBackSlash = (slashes) => { + const { length } = slashes; + return slashes.slice(0, length - length % 2); + }; + var REPLACERS = [ + [ + /^\uFEFF/, + () => EMPTY2 + ], + [ + /((?:\\\\)*?)(\\?\s+)$/, + (_3, m1, m2) => m1 + (m2.indexOf("\\") === 0 ? SPACE : EMPTY2) + ], + [ + /(\\+?)\s/g, + (_3, m1) => { + const { length } = m1; + return m1.slice(0, length - length % 2) + SPACE; } - } - setEncoding(encoding) { - const dec = new TextDecoder2(encoding); - const map = this._readableState.map || echo; - this._readableState.map = mapOrSkip; - return this; - function mapOrSkip(data) { - const next = dec.push(data); - return next === "" && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next); + ], + [ + /[\\$.|*+(){^]/g, + (match) => `\\${match}` + ], + [ + /(?!\\)\?/g, + () => "[^/]" + ], + [ + /^\//, + () => "^" + ], + [ + /\//g, + () => "\\/" + ], + [ + /^\^*\\\*\\\*\\\//, + () => "^(?:.*\\/)?" + ], + [ + /^(?=[^^])/, + function startingReplacer() { + return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^"; } - } - _read(cb) { - cb(null); - } - pipe(dest, cb) { - this._readableState.updateNextTick(); - this._readableState.pipe(dest, cb); - return dest; - } - read() { - this._readableState.updateNextTick(); - return this._readableState.read(); - } - push(data) { - this._readableState.updateNextTickIfOpen(); - return this._readableState.push(data); - } - unshift(data) { - this._readableState.updateNextTickIfOpen(); - return this._readableState.unshift(data); - } - resume() { - this._duplexState |= READ_RESUMED_READ_AHEAD; - this._readableState.updateNextTick(); - return this; - } - pause() { - this._duplexState &= this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED; - return this; - } - static _fromAsyncIterator(ite, opts) { - let destroy; - const rs = new Readable({ - ...opts, - read(cb) { - ite.next().then(push).then(cb.bind(null, null)).catch(cb); - }, - predestroy() { - destroy = ite.return(); - }, - destroy(cb) { - if (!destroy) - return cb(null); - destroy.then(cb.bind(null, null)).catch(cb); - } - }); - return rs; - function push(data) { - if (data.done) - rs.push(null); - else - rs.push(data.value); + ], + [ + /\\\/\\\*\\\*(?=\\\/|$)/g, + (_3, index, str) => index + 6 < str.length ? "(?:\\/[^\\/]+)*" : "\\/.+" + ], + [ + /(^|[^\\]+)(\\\*)+(?=.+)/g, + (_3, p1, p2) => { + const unescaped = p2.replace(/\\\*/g, "[^\\/]*"); + return p1 + unescaped; } + ], + [ + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], + [ + /\\\\/g, + () => ESCAPE + ], + [ + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]" + ], + [ + /(?:[^*])$/, + (match) => /\/$/.test(match) ? `${match}$` : `${match}(?=$|\\/$)` + ] + ]; + var REGEX_REPLACE_TRAILING_WILDCARD = /(^|\\\/)?\\\*$/; + var MODE_IGNORE = "regex"; + var MODE_CHECK_IGNORE = "checkRegex"; + var UNDERSCORE = "_"; + var TRAILING_WILD_CARD_REPLACERS = { + [MODE_IGNORE](_3, p1) { + const prefix = p1 ? `${p1}[^/]+` : "[^/]*"; + return `${prefix}(?=$|\\/$)`; + }, + [MODE_CHECK_IGNORE](_3, p1) { + const prefix = p1 ? `${p1}[^/]*` : "[^/]*"; + return `${prefix}(?=$|\\/$)`; } - static from(data, opts) { - if (isReadStreamx(data)) - return data; - if (data[asyncIterator]) - return this._fromAsyncIterator(data[asyncIterator](), opts); - if (!Array.isArray(data)) - data = data === undefined ? [] : [data]; - let i = 0; - return new Readable({ - ...opts, - read(cb) { - this.push(i === data.length ? null : data[i++]); - cb(null); - } - }); - } - static isBackpressured(rs) { - return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark; - } - static isPaused(rs) { - return (rs._duplexState & READ_RESUMED) === 0; - } - [asyncIterator]() { - const stream = this; - let error = null; - let promiseResolve = null; - let promiseReject = null; - this.on("error", (err) => { - error = err; - }); - this.on("readable", onreadable); - this.on("close", onclose); - return { - [asyncIterator]() { - return this; - }, - next() { - return new Promise(function(resolve, reject) { - promiseResolve = resolve; - promiseReject = reject; - const data = stream.read(); - if (data !== null) - ondata(data); - else if ((stream._duplexState & DESTROYED) !== 0) - ondata(null); - }); - }, - return() { - return destroy(null); - }, - throw(err) { - return destroy(err); - } - }; - function onreadable() { - if (promiseResolve !== null) - ondata(stream.read()); - } - function onclose() { - if (promiseResolve !== null) - ondata(null); - } - function ondata(data) { - if (promiseReject === null) - return; - if (error) - promiseReject(error); - else if (data === null && (stream._duplexState & READ_DONE) === 0) - promiseReject(STREAM_DESTROYED); - else - promiseResolve({ value: data, done: data === null }); - promiseReject = promiseResolve = null; - } - function destroy(err) { - stream.destroy(err); - return new Promise((resolve, reject) => { - if (stream._duplexState & DESTROYED) - return resolve({ value: undefined, done: true }); - stream.once("close", function() { - if (err) - reject(err); - else - resolve({ value: undefined, done: true }); - }); - }); - } + }; + var makeRegexPrefix = (pattern) => REPLACERS.reduce((prev, [matcher, replacer]) => prev.replace(matcher, replacer.bind(pattern)), pattern); + var isString = (subject) => typeof subject === "string"; + var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf("#") !== 0; + var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF).filter(Boolean); + + class IgnoreRule { + constructor(pattern, mark, body, ignoreCase, negative, prefix) { + this.pattern = pattern; + this.mark = mark; + this.negative = negative; + define2(this, "body", body); + define2(this, "ignoreCase", ignoreCase); + define2(this, "regexPrefix", prefix); } - } - - class Writable extends Stream { - constructor(opts) { - super(opts); - this._duplexState |= OPENING | READ_DONE; - this._writableState = new WritableState(this, opts); - if (opts) { - if (opts.writev) - this._writev = opts.writev; - if (opts.write) - this._write = opts.write; - if (opts.final) - this._final = opts.final; - if (opts.eagerOpen) - this._writableState.updateNextTick(); + get regex() { + const key2 = UNDERSCORE + MODE_IGNORE; + if (this[key2]) { + return this[key2]; } + return this._make(MODE_IGNORE, key2); } - cork() { - this._duplexState |= WRITE_CORKED; + get checkRegex() { + const key2 = UNDERSCORE + MODE_CHECK_IGNORE; + if (this[key2]) { + return this[key2]; + } + return this._make(MODE_CHECK_IGNORE, key2); } - uncork() { - this._duplexState &= WRITE_NOT_CORKED; - this._writableState.updateNextTick(); + _make(mode, key2) { + const str = this.regexPrefix.replace(REGEX_REPLACE_TRAILING_WILDCARD, TRAILING_WILD_CARD_REPLACERS[mode]); + const regex2 = this.ignoreCase ? new RegExp(str, "i") : new RegExp(str); + return define2(this, key2, regex2); } - _writev(batch, cb) { - cb(null); + } + var createRule = ({ + pattern, + mark + }, ignoreCase) => { + let negative = false; + let body = pattern; + if (body.indexOf("!") === 0) { + negative = true; + body = body.substr(1); } - _write(data, cb) { - this._writableState.autoBatch(data, cb); + body = body.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#"); + const regexPrefix = makeRegexPrefix(body); + return new IgnoreRule(pattern, mark, body, ignoreCase, negative, regexPrefix); + }; + + class RuleManager { + constructor(ignoreCase) { + this._ignoreCase = ignoreCase; + this._rules = []; } - _final(cb) { - cb(null); + _add(pattern) { + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules._rules); + this._added = true; + return; + } + if (isString(pattern)) { + pattern = { + pattern + }; + } + if (checkPattern(pattern.pattern)) { + const rule = createRule(pattern, this._ignoreCase); + this._added = true; + this._rules.push(rule); + } } - static isBackpressured(ws) { - return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0; + add(pattern) { + this._added = false; + makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._add, this); + return this._added; } - static drained(ws) { - if (ws.destroyed) - return Promise.resolve(false); - const state = ws._writableState; - const pending = isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length; - const writes = pending + (ws._duplexState & WRITE_WRITING ? 1 : 0); - if (writes === 0) - return Promise.resolve(true); - if (state.drains === null) - state.drains = []; - return new Promise((resolve) => { - state.drains.push({ writes, resolve }); + test(path2, checkUnignored, mode) { + let ignored = false; + let unignored = false; + let matchedRule; + this._rules.forEach((rule) => { + const { negative } = rule; + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } + const matched = rule[mode].test(path2); + if (!matched) { + return; + } + ignored = !negative; + unignored = negative; + matchedRule = negative ? UNDEFINED : rule; }); - } - write(data) { - this._writableState.updateNextTick(); - return this._writableState.push(data); - } - end(data) { - this._writableState.updateNextTick(); - this._writableState.end(data); - return this; + const ret = { + ignored, + unignored + }; + if (matchedRule) { + ret.rule = matchedRule; + } + return ret; } } - - class Duplex extends Readable { - constructor(opts) { - super(opts); - this._duplexState = OPENING | this._duplexState & READ_READ_AHEAD; - this._writableState = new WritableState(this, opts); - if (opts) { - if (opts.writev) - this._writev = opts.writev; - if (opts.write) - this._write = opts.write; - if (opts.final) - this._final = opts.final; - } + var throwError = (message, Ctor) => { + throw new Ctor(message); + }; + var checkPath = (path2, originalPath, doThrow) => { + if (!isString(path2)) { + return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError); } - cork() { - this._duplexState |= WRITE_CORKED; + if (!path2) { + return doThrow(`path must not be empty`, TypeError); } - uncork() { - this._duplexState &= WRITE_NOT_CORKED; - this._writableState.updateNextTick(); + if (checkPath.isNotRelative(path2)) { + const r = "`path.relative()`d"; + return doThrow(`path should be a ${r} string, but got "${originalPath}"`, RangeError); } - _writev(batch, cb) { - cb(null); + return true; + }; + var isNotRelative = (path2) => REGEX_TEST_INVALID_PATH.test(path2); + checkPath.isNotRelative = isNotRelative; + checkPath.convert = (p) => p; + + class Ignore { + constructor({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define2(this, KEY_IGNORE, true); + this._rules = new RuleManager(ignoreCase); + this._strictPathCheck = !allowRelativePaths; + this._initCache(); } - _write(data, cb) { - this._writableState.autoBatch(data, cb); + _initCache() { + this._ignoreCache = Object.create(null); + this._testCache = Object.create(null); } - _final(cb) { - cb(null); + add(pattern) { + if (this._rules.add(pattern)) { + this._initCache(); + } + return this; } - write(data) { - this._writableState.updateNextTick(); - return this._writableState.push(data); + addPattern(pattern) { + return this.add(pattern); } - end(data) { - this._writableState.updateNextTick(); - this._writableState.end(data); - return this; + _test(originalPath, cache, checkUnignored, slices) { + const path2 = originalPath && checkPath.convert(originalPath); + checkPath(path2, originalPath, this._strictPathCheck ? throwError : RETURN_FALSE); + return this._t(path2, cache, checkUnignored, slices); } - } - - class Transform extends Duplex { - constructor(opts) { - super(opts); - this._transformState = new TransformState(this); - if (opts) { - if (opts.transform) - this._transform = opts.transform; - if (opts.flush) - this._flush = opts.flush; + checkIgnore(path2) { + if (!REGEX_TEST_TRAILING_SLASH.test(path2)) { + return this.test(path2); } - } - _write(data, cb) { - if (this._readableState.buffered >= this._readableState.highWaterMark) { - this._transformState.data = data; - } else { - this._transform(data, this._transformState.afterTransform); + const slices = path2.split(SLASH).filter(Boolean); + slices.pop(); + if (slices.length) { + const parent = this._t(slices.join(SLASH) + SLASH, this._testCache, true, slices); + if (parent.ignored) { + return parent; + } } + return this._rules.test(path2, false, MODE_CHECK_IGNORE); } - _read(cb) { - if (this._transformState.data !== null) { - const data = this._transformState.data; - this._transformState.data = null; - cb(null); - this._transform(data, this._transformState.afterTransform); - } else { - cb(null); + _t(path2, cache, checkUnignored, slices) { + if (path2 in cache) { + return cache[path2]; } - } - destroy(err) { - super.destroy(err); - if (this._transformState.data !== null) { - this._transformState.data = null; - this._transformState.afterTransform(); + if (!slices) { + slices = path2.split(SLASH).filter(Boolean); } + slices.pop(); + if (!slices.length) { + return cache[path2] = this._rules.test(path2, checkUnignored, MODE_IGNORE); + } + const parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); + return cache[path2] = parent.ignored ? parent : this._rules.test(path2, checkUnignored, MODE_IGNORE); } - _transform(data, cb) { - cb(null, data); + ignores(path2) { + return this._test(path2, this._ignoreCache, false).ignored; } - _flush(cb) { - cb(null); + createFilter() { + return (path2) => !this.ignores(path2); } - _final(cb) { - this._transformState.afterFinal = cb; - this._flush(transformAfterFlush.bind(this)); + filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } + test(path2) { + return this._test(path2, this._testCache, true); } } - - class PassThrough extends Transform { - } - function transformAfterFlush(err, data) { - const cb = this._transformState.afterFinal; - if (err) - return cb(err); - if (data !== null && data !== undefined) - this.push(data); - this.push(null); - cb(null); + var factory = (options) => new Ignore(options); + var isPathValid = (path2) => checkPath(path2 && checkPath.convert(path2), path2, RETURN_FALSE); + if (typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32")) { + const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/"); + checkPath.convert = makePosix; + const REGEX_TEST_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + checkPath.isNotRelative = (path2) => REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path2) || isNotRelative(path2); } - function pipelinePromise(...streams) { + module.exports = factory; + factory.default = factory; + module.exports.isPathValid = isPathValid; +}); + +// node_modules/universalify/index.js +var require_universalify = __commonJS((exports) => { + exports.fromCallback = function(fn) { + return Object.defineProperty(function(...args) { + if (typeof args[args.length - 1] === "function") + fn.apply(this, args); + else { + return new Promise((resolve, reject) => { + args.push((err, res) => err != null ? reject(err) : resolve(res)); + fn.apply(this, args); + }); + } + }, "name", { value: fn.name }); + }; + exports.fromPromise = function(fn) { + return Object.defineProperty(function(...args) { + const cb = args[args.length - 1]; + if (typeof cb !== "function") + return fn.apply(this, args); + else { + args.pop(); + fn.apply(this, args).then((r) => cb(null, r), cb); + } + }, "name", { value: fn.name }); + }; +}); + +// node_modules/fs-extra/lib/fs/index.js +var require_fs = __commonJS((exports) => { + var u = require_universalify().fromCallback; + var fs4 = require_graceful_fs(); + var api = [ + "access", + "appendFile", + "chmod", + "chown", + "close", + "copyFile", + "cp", + "fchmod", + "fchown", + "fdatasync", + "fstat", + "fsync", + "ftruncate", + "futimes", + "glob", + "lchmod", + "lchown", + "lutimes", + "link", + "lstat", + "mkdir", + "mkdtemp", + "open", + "opendir", + "readdir", + "readFile", + "readlink", + "realpath", + "rename", + "rm", + "rmdir", + "stat", + "statfs", + "symlink", + "truncate", + "unlink", + "utimes", + "writeFile" + ].filter((key2) => { + return typeof fs4[key2] === "function"; + }); + Object.assign(exports, fs4); + api.forEach((method) => { + exports[method] = u(fs4[method]); + }); + exports.exists = function(filename, callback) { + if (typeof callback === "function") { + return fs4.exists(filename, callback); + } + return new Promise((resolve) => { + return fs4.exists(filename, resolve); + }); + }; + exports.read = function(fd, buffer, offset, length, position, callback) { + if (typeof callback === "function") { + return fs4.read(fd, buffer, offset, length, position, callback); + } return new Promise((resolve, reject) => { - return pipeline(...streams, (err) => { + fs4.read(fd, buffer, offset, length, position, (err, bytesRead, buffer2) => { if (err) return reject(err); - resolve(); + resolve({ bytesRead, buffer: buffer2 }); }); }); - } - function pipeline(stream, ...streams) { - const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]; - const done = all.length && typeof all[all.length - 1] === "function" ? all.pop() : null; - if (all.length < 2) - throw new Error("Pipeline requires at least 2 streams"); - let src = all[0]; - let dest = null; - let error = null; - for (let i = 1;i < all.length; i++) { - dest = all[i]; - if (isStreamx(src)) { - src.pipe(dest, onerror); - } else { - errorHandle(src, true, i > 1, onerror); - src.pipe(dest); - } - src = dest; + }; + exports.write = function(fd, buffer, ...args) { + if (typeof args[args.length - 1] === "function") { + return fs4.write(fd, buffer, ...args); } - if (done) { - let fin = false; - const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy); - dest.on("error", (err) => { - if (error === null) - error = err; - }); - dest.on("finish", () => { - fin = true; - if (!autoDestroy) - done(error); + return new Promise((resolve, reject) => { + fs4.write(fd, buffer, ...args, (err, bytesWritten, buffer2) => { + if (err) + return reject(err); + resolve({ bytesWritten, buffer: buffer2 }); }); - if (autoDestroy) { - dest.on("close", () => done(error || (fin ? null : PREMATURE_CLOSE))); - } + }); + }; + exports.readv = function(fd, buffers, ...args) { + if (typeof args[args.length - 1] === "function") { + return fs4.readv(fd, buffers, ...args); } - return dest; - function errorHandle(s, rd, wr, onerror2) { - s.on("error", onerror2); - s.on("close", onclose); - function onclose() { - if (rd && s._readableState && !s._readableState.ended) - return onerror2(PREMATURE_CLOSE); - if (wr && s._writableState && !s._writableState.ended) - return onerror2(PREMATURE_CLOSE); - } + return new Promise((resolve, reject) => { + fs4.readv(fd, buffers, ...args, (err, bytesRead, buffers2) => { + if (err) + return reject(err); + resolve({ bytesRead, buffers: buffers2 }); + }); + }); + }; + exports.writev = function(fd, buffers, ...args) { + if (typeof args[args.length - 1] === "function") { + return fs4.writev(fd, buffers, ...args); } - function onerror(err) { - if (!err || error) - return; - error = err; - for (const s of all) { - s.destroy(err); + return new Promise((resolve, reject) => { + fs4.writev(fd, buffers, ...args, (err, bytesWritten, buffers2) => { + if (err) + return reject(err); + resolve({ bytesWritten, buffers: buffers2 }); + }); + }); + }; + if (typeof fs4.realpath.native === "function") { + exports.realpath.native = u(fs4.realpath.native); + } else { + process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?", "Warning", "fs-extra-WARN0003"); + } +}); + +// node_modules/fs-extra/lib/mkdirs/utils.js +var require_utils2 = __commonJS((exports, module) => { + var path3 = __require("path"); + exports.checkPath = function checkPath(pth) { + if (process.platform === "win32") { + const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path3.parse(pth).root, "")); + if (pathHasInvalidWinCharacters) { + const error = new Error(`Path contains invalid characters: ${pth}`); + error.code = "EINVAL"; + throw error; } } - } - function echo(s) { - return s; - } - function isStream(stream) { - return !!stream._readableState || !!stream._writableState; - } - function isStreamx(stream) { - return typeof stream._duplexState === "number" && isStream(stream); - } - function isEnded(stream) { - return !!stream._readableState && stream._readableState.ended; - } - function isFinished(stream) { - return !!stream._writableState && stream._writableState.ended; - } - function getStreamError(stream, opts = {}) { - const err = stream._readableState && stream._readableState.error || stream._writableState && stream._writableState.error; - return !opts.all && err === STREAM_DESTROYED ? null : err; - } - function isReadStreamx(stream) { - return isStreamx(stream) && stream.readable; - } - function isDisturbed(stream) { - return (stream._duplexState & OPENING) !== OPENING || (stream._duplexState & ACTIVE_OR_TICKING) !== 0; - } - function isTypedArray(data) { - return typeof data === "object" && data !== null && typeof data.byteLength === "number"; - } - function defaultByteLength(data) { - return isTypedArray(data) ? data.byteLength : 1024; - } - function noop() { - } - function abort() { - this.destroy(new Error("Stream aborted.")); - } - function isWritev(s) { - return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev; + }; +}); + +// node_modules/fs-extra/lib/mkdirs/make-dir.js +var require_make_dir = __commonJS((exports, module) => { + var fs4 = require_fs(); + var { checkPath } = require_utils2(); + var getMode = (options) => { + const defaults = { mode: 511 }; + if (typeof options === "number") + return options; + return { ...defaults, ...options }.mode; + }; + exports.makeDir = async (dir, options) => { + checkPath(dir); + return fs4.mkdir(dir, { + mode: getMode(options), + recursive: true + }); + }; + exports.makeDirSync = (dir, options) => { + checkPath(dir); + return fs4.mkdirSync(dir, { + mode: getMode(options), + recursive: true + }); + }; +}); + +// node_modules/fs-extra/lib/mkdirs/index.js +var require_mkdirs = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + var { makeDir: _makeDir, makeDirSync } = require_make_dir(); + var makeDir = u(_makeDir); + module.exports = { + mkdirs: makeDir, + mkdirsSync: makeDirSync, + mkdirp: makeDir, + mkdirpSync: makeDirSync, + ensureDir: makeDir, + ensureDirSync: makeDirSync + }; +}); + +// node_modules/fs-extra/lib/path-exists/index.js +var require_path_exists = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + var fs4 = require_fs(); + function pathExists(path3) { + return fs4.access(path3).then(() => true).catch(() => false); } module.exports = { - pipeline, - pipelinePromise, - isStream, - isStreamx, - isEnded, - isFinished, - isDisturbed, - getStreamError, - Stream, - Writable, - Readable, - Duplex, - Transform, - PassThrough + pathExists: u(pathExists), + pathExistsSync: fs4.existsSync }; }); -// node_modules/tar-stream/headers.js -var require_headers = __commonJS((exports) => { - var b4a = require_b4a(); - var ZEROS = "0000000000000000000"; - var SEVENS = "7777777777777777777"; - var ZERO_OFFSET = 48; - var USTAR_MAGIC = b4a.from([117, 115, 116, 97, 114, 0]); - var USTAR_VER = b4a.from([ZERO_OFFSET, ZERO_OFFSET]); - var GNU_MAGIC = b4a.from([117, 115, 116, 97, 114, 32]); - var GNU_VER = b4a.from([32, 0]); - var MASK = 4095; - var MAGIC_OFFSET = 257; - var VERSION_OFFSET = 263; - exports.decodeLongPath = function decodeLongPath(buf, encoding) { - return decodeStr(buf, 0, buf.length, encoding); - }; - exports.encodePax = function encodePax(opts) { - let result = ""; - if (opts.name) - result += addLength(" path=" + opts.name + ` -`); - if (opts.linkname) - result += addLength(" linkpath=" + opts.linkname + ` -`); - const pax = opts.pax; - if (pax) { - for (const key2 in pax) { - result += addLength(" " + key2 + "=" + pax[key2] + ` -`); +// node_modules/fs-extra/lib/util/utimes.js +var require_utimes = __commonJS((exports, module) => { + var fs4 = require_fs(); + var u = require_universalify().fromPromise; + async function utimesMillis(path3, atime, mtime) { + const fd = await fs4.open(path3, "r+"); + let closeErr = null; + try { + await fs4.futimes(fd, atime, mtime); + } finally { + try { + await fs4.close(fd); + } catch (e) { + closeErr = e; } } - return b4a.from(result); - }; - exports.decodePax = function decodePax(buf) { - const result = {}; - while (buf.length) { - let i = 0; - while (i < buf.length && buf[i] !== 32) - i++; - const len = parseInt(b4a.toString(buf.subarray(0, i)), 10); - if (!len) - return result; - const b = b4a.toString(buf.subarray(i + 1, len - 1)); - const keyIndex = b.indexOf("="); - if (keyIndex === -1) - return result; - result[b.slice(0, keyIndex)] = b.slice(keyIndex + 1); - buf = buf.subarray(len); - } - return result; - }; - exports.encode = function encode(opts) { - const buf = b4a.alloc(512); - let name = opts.name; - let prefix = ""; - if (opts.typeflag === 5 && name[name.length - 1] !== "/") - name += "/"; - if (b4a.byteLength(name) !== name.length) - return null; - while (b4a.byteLength(name) > 100) { - const i = name.indexOf("/"); - if (i === -1) - return null; - prefix += prefix ? "/" + name.slice(0, i) : name.slice(0, i); - name = name.slice(i + 1); - } - if (b4a.byteLength(name) > 100 || b4a.byteLength(prefix) > 155) - return null; - if (opts.linkname && b4a.byteLength(opts.linkname) > 100) - return null; - b4a.write(buf, name); - b4a.write(buf, encodeOct(opts.mode & MASK, 6), 100); - b4a.write(buf, encodeOct(opts.uid, 6), 108); - b4a.write(buf, encodeOct(opts.gid, 6), 116); - encodeSize(opts.size, buf, 124); - b4a.write(buf, encodeOct(opts.mtime.getTime() / 1000 | 0, 11), 136); - buf[156] = ZERO_OFFSET + toTypeflag(opts.type); - if (opts.linkname) - b4a.write(buf, opts.linkname, 157); - b4a.copy(USTAR_MAGIC, buf, MAGIC_OFFSET); - b4a.copy(USTAR_VER, buf, VERSION_OFFSET); - if (opts.uname) - b4a.write(buf, opts.uname, 265); - if (opts.gname) - b4a.write(buf, opts.gname, 297); - b4a.write(buf, encodeOct(opts.devmajor || 0, 6), 329); - b4a.write(buf, encodeOct(opts.devminor || 0, 6), 337); - if (prefix) - b4a.write(buf, prefix, 345); - b4a.write(buf, encodeOct(cksum(buf), 6), 148); - return buf; - }; - exports.decode = function decode(buf, filenameEncoding, allowUnknownFormat) { - let typeflag = buf[156] === 0 ? 0 : buf[156] - ZERO_OFFSET; - let name = decodeStr(buf, 0, 100, filenameEncoding); - const mode = decodeOct(buf, 100, 8); - const uid = decodeOct(buf, 108, 8); - const gid = decodeOct(buf, 116, 8); - const size = decodeOct(buf, 124, 12); - const mtime = decodeOct(buf, 136, 12); - const type = toType(typeflag); - const linkname = buf[157] === 0 ? null : decodeStr(buf, 157, 100, filenameEncoding); - const uname = decodeStr(buf, 265, 32); - const gname = decodeStr(buf, 297, 32); - const devmajor = decodeOct(buf, 329, 8); - const devminor = decodeOct(buf, 337, 8); - const c = cksum(buf); - if (c === 8 * 32) - return null; - if (c !== decodeOct(buf, 148, 8)) - throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?"); - if (isUSTAR(buf)) { - if (buf[345]) - name = decodeStr(buf, 345, 155, filenameEncoding) + "/" + name; - } else if (isGNU(buf)) { - } else { - if (!allowUnknownFormat) { - throw new Error("Invalid tar header: unknown format."); - } + if (closeErr) { + throw closeErr; } - if (typeflag === 0 && name && name[name.length - 1] === "/") - typeflag = 5; - return { - name, - mode, - uid, - gid, - size, - mtime: new Date(1000 * mtime), - type, - linkname, - uname, - gname, - devmajor, - devminor, - pax: null - }; - }; - function isUSTAR(buf) { - return b4a.equals(USTAR_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6)); } - function isGNU(buf) { - return b4a.equals(GNU_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6)) && b4a.equals(GNU_VER, buf.subarray(VERSION_OFFSET, VERSION_OFFSET + 2)); + function utimesMillisSync(path3, atime, mtime) { + const fd = fs4.openSync(path3, "r+"); + fs4.futimesSync(fd, atime, mtime); + return fs4.closeSync(fd); } - function clamp(index, len, defaultValue) { - if (typeof index !== "number") - return defaultValue; - index = ~~index; - if (index >= len) - return len; - if (index >= 0) - return index; - index += len; - if (index >= 0) - return index; - return 0; + module.exports = { + utimesMillis: u(utimesMillis), + utimesMillisSync + }; +}); + +// node_modules/fs-extra/lib/util/stat.js +var require_stat = __commonJS((exports, module) => { + var fs4 = require_fs(); + var path3 = __require("path"); + var u = require_universalify().fromPromise; + function getStats(src, dest, opts) { + const statFunc = opts.dereference ? (file) => fs4.stat(file, { bigint: true }) : (file) => fs4.lstat(file, { bigint: true }); + return Promise.all([ + statFunc(src), + statFunc(dest).catch((err) => { + if (err.code === "ENOENT") + return null; + throw err; + }) + ]).then(([srcStat, destStat]) => ({ srcStat, destStat })); } - function toType(flag) { - switch (flag) { - case 0: - return "file"; - case 1: - return "link"; - case 2: - return "symlink"; - case 3: - return "character-device"; - case 4: - return "block-device"; - case 5: - return "directory"; - case 6: - return "fifo"; - case 7: - return "contiguous-file"; - case 72: - return "pax-header"; - case 55: - return "pax-global-header"; - case 27: - return "gnu-long-link-path"; - case 28: - case 30: - return "gnu-long-path"; + function getStatsSync(src, dest, opts) { + let destStat; + const statFunc = opts.dereference ? (file) => fs4.statSync(file, { bigint: true }) : (file) => fs4.lstatSync(file, { bigint: true }); + const srcStat = statFunc(src); + try { + destStat = statFunc(dest); + } catch (err) { + if (err.code === "ENOENT") + return { srcStat, destStat: null }; + throw err; } - return null; + return { srcStat, destStat }; } - function toTypeflag(flag) { - switch (flag) { - case "file": - return 0; - case "link": - return 1; - case "symlink": - return 2; - case "character-device": - return 3; - case "block-device": - return 4; - case "directory": - return 5; - case "fifo": - return 6; - case "contiguous-file": - return 7; - case "pax-header": - return 72; + async function checkPaths(src, dest, funcName, opts) { + const { srcStat, destStat } = await getStats(src, dest, opts); + if (destStat) { + if (areIdentical(srcStat, destStat)) { + const srcBaseName = path3.basename(src); + const destBaseName = path3.basename(dest); + if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) { + return { srcStat, destStat, isChangingCase: true }; + } + throw new Error("Source and destination must not be the same."); + } + if (srcStat.isDirectory() && !destStat.isDirectory()) { + throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`); + } + if (!srcStat.isDirectory() && destStat.isDirectory()) { + throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`); + } } - return 0; - } - function indexOf(block, num, offset, end) { - for (;offset < end; offset++) { - if (block[offset] === num) - return offset; + if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { + throw new Error(errMsg(src, dest, funcName)); } - return end; - } - function cksum(block) { - let sum = 8 * 32; - for (let i = 0;i < 148; i++) - sum += block[i]; - for (let j = 156;j < 512; j++) - sum += block[j]; - return sum; - } - function encodeOct(val, n) { - val = val.toString(8); - if (val.length > n) - return SEVENS.slice(0, n) + " "; - return ZEROS.slice(0, n - val.length) + val + " "; + return { srcStat, destStat }; } - function encodeSizeBin(num, buf, off) { - buf[off] = 128; - for (let i = 11;i > 0; i--) { - buf[off + i] = num & 255; - num = Math.floor(num / 256); + function checkPathsSync(src, dest, funcName, opts) { + const { srcStat, destStat } = getStatsSync(src, dest, opts); + if (destStat) { + if (areIdentical(srcStat, destStat)) { + const srcBaseName = path3.basename(src); + const destBaseName = path3.basename(dest); + if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) { + return { srcStat, destStat, isChangingCase: true }; + } + throw new Error("Source and destination must not be the same."); + } + if (srcStat.isDirectory() && !destStat.isDirectory()) { + throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`); + } + if (!srcStat.isDirectory() && destStat.isDirectory()) { + throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`); + } } - } - function encodeSize(num, buf, off) { - if (num.toString(8).length > 11) { - encodeSizeBin(num, buf, off); - } else { - b4a.write(buf, encodeOct(num, 11), off); + if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { + throw new Error(errMsg(src, dest, funcName)); } + return { srcStat, destStat }; } - function parse256(buf) { - let positive; - if (buf[0] === 128) - positive = true; - else if (buf[0] === 255) - positive = false; - else - return null; - const tuple = []; - let i; - for (i = buf.length - 1;i > 0; i--) { - const byte = buf[i]; - if (positive) - tuple.push(byte); - else - tuple.push(255 - byte); + async function checkParentPaths(src, srcStat, dest, funcName) { + const srcParent = path3.resolve(path3.dirname(src)); + const destParent = path3.resolve(path3.dirname(dest)); + if (destParent === srcParent || destParent === path3.parse(destParent).root) + return; + let destStat; + try { + destStat = await fs4.stat(destParent, { bigint: true }); + } catch (err) { + if (err.code === "ENOENT") + return; + throw err; } - let sum = 0; - const l = tuple.length; - for (i = 0;i < l; i++) { - sum += tuple[i] * Math.pow(256, i); + if (areIdentical(srcStat, destStat)) { + throw new Error(errMsg(src, dest, funcName)); } - return positive ? sum : -1 * sum; + return checkParentPaths(src, srcStat, destParent, funcName); } - function decodeOct(val, offset, length) { - val = val.subarray(offset, offset + length); - offset = 0; - if (val[offset] & 128) { - return parse256(val); - } else { - while (offset < val.length && val[offset] === 32) - offset++; - const end = clamp(indexOf(val, 32, offset, val.length), val.length, val.length); - while (offset < end && val[offset] === 0) - offset++; - if (end === offset) - return 0; - return parseInt(b4a.toString(val.subarray(offset, end)), 8); + function checkParentPathsSync(src, srcStat, dest, funcName) { + const srcParent = path3.resolve(path3.dirname(src)); + const destParent = path3.resolve(path3.dirname(dest)); + if (destParent === srcParent || destParent === path3.parse(destParent).root) + return; + let destStat; + try { + destStat = fs4.statSync(destParent, { bigint: true }); + } catch (err) { + if (err.code === "ENOENT") + return; + throw err; + } + if (areIdentical(srcStat, destStat)) { + throw new Error(errMsg(src, dest, funcName)); } + return checkParentPathsSync(src, srcStat, destParent, funcName); } - function decodeStr(val, offset, length, encoding) { - return b4a.toString(val.subarray(offset, indexOf(val, 0, offset, offset + length)), encoding); + function areIdentical(srcStat, destStat) { + return destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev; } - function addLength(str) { - const len = b4a.byteLength(str); - let digits = Math.floor(Math.log(len) / Math.log(10)) + 1; - if (len + digits >= Math.pow(10, digits)) - digits++; - return len + digits + str; + function isSrcSubdir(src, dest) { + const srcArr = path3.resolve(src).split(path3.sep).filter((i) => i); + const destArr = path3.resolve(dest).split(path3.sep).filter((i) => i); + return srcArr.every((cur, i) => destArr[i] === cur); + } + function errMsg(src, dest, funcName) { + return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`; } + module.exports = { + checkPaths: u(checkPaths), + checkPathsSync, + checkParentPaths: u(checkParentPaths), + checkParentPathsSync, + isSrcSubdir, + areIdentical + }; }); -// node_modules/tar-stream/extract.js -var require_extract = __commonJS((exports, module) => { - var { Writable, Readable, getStreamError } = require_streamx(); - var FIFO = require_fast_fifo(); - var b4a = require_b4a(); - var headers = require_headers(); - var EMPTY2 = b4a.alloc(0); +// node_modules/fs-extra/lib/copy/copy.js +var require_copy = __commonJS((exports, module) => { + var fs4 = require_fs(); + var path3 = __require("path"); + var { mkdirs } = require_mkdirs(); + var { pathExists } = require_path_exists(); + var { utimesMillis } = require_utimes(); + var stat = require_stat(); + async function copy(src, dest, opts = {}) { + if (typeof opts === "function") { + opts = { filter: opts }; + } + opts.clobber = "clobber" in opts ? !!opts.clobber : true; + opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber; + if (opts.preserveTimestamps && process.arch === "ia32") { + process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; - class BufferList { - constructor() { - this.buffered = 0; - this.shifted = 0; - this.queue = new FIFO; - this._offset = 0; +` + "\tsee https://github.com/jprichardson/node-fs-extra/issues/269", "Warning", "fs-extra-WARN0001"); } - push(buffer) { - this.buffered += buffer.byteLength; - this.queue.push(buffer); + const { srcStat, destStat } = await stat.checkPaths(src, dest, "copy", opts); + await stat.checkParentPaths(src, srcStat, dest, "copy"); + const include = await runFilter(src, dest, opts); + if (!include) + return; + const destParent = path3.dirname(dest); + const dirExists = await pathExists(destParent); + if (!dirExists) { + await mkdirs(destParent); } - shiftFirst(size) { - return this._buffered === 0 ? null : this._next(size); + await getStatsAndPerformCopy(destStat, src, dest, opts); + } + async function runFilter(src, dest, opts) { + if (!opts.filter) + return true; + return opts.filter(src, dest); + } + async function getStatsAndPerformCopy(destStat, src, dest, opts) { + const statFn = opts.dereference ? fs4.stat : fs4.lstat; + const srcStat = await statFn(src); + if (srcStat.isDirectory()) + return onDir(srcStat, destStat, src, dest, opts); + if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) + return onFile(srcStat, destStat, src, dest, opts); + if (srcStat.isSymbolicLink()) + return onLink(destStat, src, dest, opts); + if (srcStat.isSocket()) + throw new Error(`Cannot copy a socket file: ${src}`); + if (srcStat.isFIFO()) + throw new Error(`Cannot copy a FIFO pipe: ${src}`); + throw new Error(`Unknown file: ${src}`); + } + async function onFile(srcStat, destStat, src, dest, opts) { + if (!destStat) + return copyFile(srcStat, src, dest, opts); + if (opts.overwrite) { + await fs4.unlink(dest); + return copyFile(srcStat, src, dest, opts); } - shift(size) { - if (size > this.buffered) - return null; - if (size === 0) - return EMPTY2; - let chunk = this._next(size); - if (size === chunk.byteLength) - return chunk; - const chunks = [chunk]; - while ((size -= chunk.byteLength) > 0) { - chunk = this._next(size); - chunks.push(chunk); - } - return b4a.concat(chunks); + if (opts.errorOnExist) { + throw new Error(`'${dest}' already exists`); } - _next(size) { - const buf = this.queue.peek(); - const rem = buf.byteLength - this._offset; - if (size >= rem) { - const sub = this._offset ? buf.subarray(this._offset, buf.byteLength) : buf; - this.queue.shift(); - this._offset = 0; - this.buffered -= rem; - this.shifted += rem; - return sub; + } + async function copyFile(srcStat, src, dest, opts) { + await fs4.copyFile(src, dest); + if (opts.preserveTimestamps) { + if (fileIsNotWritable(srcStat.mode)) { + await makeFileWritable(dest, srcStat.mode); } - this.buffered -= size; - this.shifted += size; - return buf.subarray(this._offset, this._offset += size); + const updatedSrcStat = await fs4.stat(src); + await utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime); } + return fs4.chmod(dest, srcStat.mode); } - - class Source extends Readable { - constructor(self2, header, offset) { - super(); - this.header = header; - this.offset = offset; - this._parent = self2; + function fileIsNotWritable(srcMode) { + return (srcMode & 128) === 0; + } + function makeFileWritable(dest, srcMode) { + return fs4.chmod(dest, srcMode | 128); + } + async function onDir(srcStat, destStat, src, dest, opts) { + if (!destStat) { + await fs4.mkdir(dest); } - _read(cb) { - if (this.header.size === 0) { - this.push(null); - } - if (this._parent._stream === this) { - this._parent._update(); - } - cb(null); + const promises = []; + for await (const item of await fs4.opendir(src)) { + const srcItem = path3.join(src, item.name); + const destItem = path3.join(dest, item.name); + promises.push(runFilter(srcItem, destItem, opts).then((include) => { + if (include) { + return stat.checkPaths(srcItem, destItem, "copy", opts).then(({ destStat: destStat2 }) => { + return getStatsAndPerformCopy(destStat2, srcItem, destItem, opts); + }); + } + })); } - _predestroy() { - this._parent.destroy(getStreamError(this)); + await Promise.all(promises); + if (!destStat) { + await fs4.chmod(dest, srcStat.mode); } - _detach() { - if (this._parent._stream === this) { - this._parent._stream = null; - this._parent._missing = overflow(this.header.size); - this._parent._update(); - } + } + async function onLink(destStat, src, dest, opts) { + let resolvedSrc = await fs4.readlink(src); + if (opts.dereference) { + resolvedSrc = path3.resolve(process.cwd(), resolvedSrc); } - _destroy(cb) { - this._detach(); - cb(null); + if (!destStat) { + return fs4.symlink(resolvedSrc, dest); + } + let resolvedDest = null; + try { + resolvedDest = await fs4.readlink(dest); + } catch (e) { + if (e.code === "EINVAL" || e.code === "UNKNOWN") + return fs4.symlink(resolvedSrc, dest); + throw e; + } + if (opts.dereference) { + resolvedDest = path3.resolve(process.cwd(), resolvedDest); + } + if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { + throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`); + } + if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) { + throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`); } + await fs4.unlink(dest); + return fs4.symlink(resolvedSrc, dest); } + module.exports = copy; +}); - class Extract extends Writable { - constructor(opts) { - super(opts); - if (!opts) - opts = {}; - this._buffer = new BufferList; - this._offset = 0; - this._header = null; - this._stream = null; - this._missing = 0; - this._longHeader = false; - this._callback = noop; - this._locked = false; - this._finished = false; - this._pax = null; - this._paxGlobal = null; - this._gnuLongPath = null; - this._gnuLongLinkPath = null; - this._filenameEncoding = opts.filenameEncoding || "utf-8"; - this._allowUnknownFormat = !!opts.allowUnknownFormat; - this._unlockBound = this._unlock.bind(this); +// node_modules/fs-extra/lib/copy/copy-sync.js +var require_copy_sync = __commonJS((exports, module) => { + var fs4 = require_graceful_fs(); + var path3 = __require("path"); + var mkdirsSync = require_mkdirs().mkdirsSync; + var utimesMillisSync = require_utimes().utimesMillisSync; + var stat = require_stat(); + function copySync(src, dest, opts) { + if (typeof opts === "function") { + opts = { filter: opts }; } - _unlock(err) { - this._locked = false; - if (err) { - this.destroy(err); - this._continueWrite(err); - return; - } - this._update(); + opts = opts || {}; + opts.clobber = "clobber" in opts ? !!opts.clobber : true; + opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber; + if (opts.preserveTimestamps && process.arch === "ia32") { + process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; + +` + "\tsee https://github.com/jprichardson/node-fs-extra/issues/269", "Warning", "fs-extra-WARN0002"); } - _consumeHeader() { - if (this._locked) - return false; - this._offset = this._buffer.shifted; - try { - this._header = headers.decode(this._buffer.shift(512), this._filenameEncoding, this._allowUnknownFormat); - } catch (err) { - this._continueWrite(err); - return false; - } - if (!this._header) - return true; - switch (this._header.type) { - case "gnu-long-path": - case "gnu-long-link-path": - case "pax-global-header": - case "pax-header": - this._longHeader = true; - this._missing = this._header.size; - return true; - } - this._locked = true; - this._applyLongHeaders(); - if (this._header.size === 0 || this._header.type === "directory") { - this.emit("entry", this._header, this._createStream(), this._unlockBound); - return true; - } - this._stream = this._createStream(); - this._missing = this._header.size; - this.emit("entry", this._header, this._stream, this._unlockBound); - return true; + const { srcStat, destStat } = stat.checkPathsSync(src, dest, "copy", opts); + stat.checkParentPathsSync(src, srcStat, dest, "copy"); + if (opts.filter && !opts.filter(src, dest)) + return; + const destParent = path3.dirname(dest); + if (!fs4.existsSync(destParent)) + mkdirsSync(destParent); + return getStats(destStat, src, dest, opts); + } + function getStats(destStat, src, dest, opts) { + const statSync = opts.dereference ? fs4.statSync : fs4.lstatSync; + const srcStat = statSync(src); + if (srcStat.isDirectory()) + return onDir(srcStat, destStat, src, dest, opts); + else if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) + return onFile(srcStat, destStat, src, dest, opts); + else if (srcStat.isSymbolicLink()) + return onLink(destStat, src, dest, opts); + else if (srcStat.isSocket()) + throw new Error(`Cannot copy a socket file: ${src}`); + else if (srcStat.isFIFO()) + throw new Error(`Cannot copy a FIFO pipe: ${src}`); + throw new Error(`Unknown file: ${src}`); + } + function onFile(srcStat, destStat, src, dest, opts) { + if (!destStat) + return copyFile(srcStat, src, dest, opts); + return mayCopyFile(srcStat, src, dest, opts); + } + function mayCopyFile(srcStat, src, dest, opts) { + if (opts.overwrite) { + fs4.unlinkSync(dest); + return copyFile(srcStat, src, dest, opts); + } else if (opts.errorOnExist) { + throw new Error(`'${dest}' already exists`); } - _applyLongHeaders() { - if (this._gnuLongPath) { - this._header.name = this._gnuLongPath; - this._gnuLongPath = null; - } - if (this._gnuLongLinkPath) { - this._header.linkname = this._gnuLongLinkPath; - this._gnuLongLinkPath = null; - } - if (this._pax) { - if (this._pax.path) - this._header.name = this._pax.path; - if (this._pax.linkpath) - this._header.linkname = this._pax.linkpath; - if (this._pax.size) - this._header.size = parseInt(this._pax.size, 10); - this._header.pax = this._pax; - this._pax = null; + } + function copyFile(srcStat, src, dest, opts) { + fs4.copyFileSync(src, dest); + if (opts.preserveTimestamps) + handleTimestamps(srcStat.mode, src, dest); + return setDestMode(dest, srcStat.mode); + } + function handleTimestamps(srcMode, src, dest) { + if (fileIsNotWritable(srcMode)) + makeFileWritable(dest, srcMode); + return setDestTimestamps(src, dest); + } + function fileIsNotWritable(srcMode) { + return (srcMode & 128) === 0; + } + function makeFileWritable(dest, srcMode) { + return setDestMode(dest, srcMode | 128); + } + function setDestMode(dest, srcMode) { + return fs4.chmodSync(dest, srcMode); + } + function setDestTimestamps(src, dest) { + const updatedSrcStat = fs4.statSync(src); + return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime); + } + function onDir(srcStat, destStat, src, dest, opts) { + if (!destStat) + return mkDirAndCopy(srcStat.mode, src, dest, opts); + return copyDir(src, dest, opts); + } + function mkDirAndCopy(srcMode, src, dest, opts) { + fs4.mkdirSync(dest); + copyDir(src, dest, opts); + return setDestMode(dest, srcMode); + } + function copyDir(src, dest, opts) { + const dir = fs4.opendirSync(src); + try { + let dirent; + while ((dirent = dir.readSync()) !== null) { + copyDirItem(dirent.name, src, dest, opts); } + } finally { + dir.closeSync(); } - _decodeLongHeader(buf) { - switch (this._header.type) { - case "gnu-long-path": - this._gnuLongPath = headers.decodeLongPath(buf, this._filenameEncoding); - break; - case "gnu-long-link-path": - this._gnuLongLinkPath = headers.decodeLongPath(buf, this._filenameEncoding); - break; - case "pax-global-header": - this._paxGlobal = headers.decodePax(buf); - break; - case "pax-header": - this._pax = this._paxGlobal === null ? headers.decodePax(buf) : Object.assign({}, this._paxGlobal, headers.decodePax(buf)); - break; - } + } + function copyDirItem(item, src, dest, opts) { + const srcItem = path3.join(src, item); + const destItem = path3.join(dest, item); + if (opts.filter && !opts.filter(srcItem, destItem)) + return; + const { destStat } = stat.checkPathsSync(srcItem, destItem, "copy", opts); + return getStats(destStat, srcItem, destItem, opts); + } + function onLink(destStat, src, dest, opts) { + let resolvedSrc = fs4.readlinkSync(src); + if (opts.dereference) { + resolvedSrc = path3.resolve(process.cwd(), resolvedSrc); } - _consumeLongHeader() { - this._longHeader = false; - this._missing = overflow(this._header.size); - const buf = this._buffer.shift(this._header.size); + if (!destStat) { + return fs4.symlinkSync(resolvedSrc, dest); + } else { + let resolvedDest; try { - this._decodeLongHeader(buf); + resolvedDest = fs4.readlinkSync(dest); } catch (err) { - this._continueWrite(err); - return false; + if (err.code === "EINVAL" || err.code === "UNKNOWN") + return fs4.symlinkSync(resolvedSrc, dest); + throw err; } - return true; - } - _consumeStream() { - const buf = this._buffer.shiftFirst(this._missing); - if (buf === null) - return false; - this._missing -= buf.byteLength; - const drained = this._stream.push(buf); - if (this._missing === 0) { - this._stream.push(null); - if (drained) - this._stream._detach(); - return drained && this._locked === false; + if (opts.dereference) { + resolvedDest = path3.resolve(process.cwd(), resolvedDest); } - return drained; - } - _createStream() { - return new Source(this, this._header, this._offset); - } - _update() { - while (this._buffer.buffered > 0 && !this.destroying) { - if (this._missing > 0) { - if (this._stream !== null) { - if (this._consumeStream() === false) - return; - continue; - } - if (this._longHeader === true) { - if (this._missing > this._buffer.buffered) - break; - if (this._consumeLongHeader() === false) - return false; - continue; - } - const ignore = this._buffer.shiftFirst(this._missing); - if (ignore !== null) - this._missing -= ignore.byteLength; - continue; - } - if (this._buffer.buffered < 512) - break; - if (this._stream !== null || this._consumeHeader() === false) - return; + if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { + throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`); } - this._continueWrite(null); - } - _continueWrite(err) { - const cb = this._callback; - this._callback = noop; - cb(err); - } - _write(data, cb) { - this._callback = cb; - this._buffer.push(data); - this._update(); + if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) { + throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`); + } + return copyLink(resolvedSrc, dest); } - _final(cb) { - this._finished = this._missing === 0 && this._buffer.buffered === 0; - cb(this._finished ? null : new Error("Unexpected end of data")); + } + function copyLink(resolvedSrc, dest) { + fs4.unlinkSync(dest); + return fs4.symlinkSync(resolvedSrc, dest); + } + module.exports = copySync; +}); + +// node_modules/fs-extra/lib/copy/index.js +var require_copy2 = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + module.exports = { + copy: u(require_copy()), + copySync: require_copy_sync() + }; +}); + +// node_modules/fs-extra/lib/remove/index.js +var require_remove = __commonJS((exports, module) => { + var fs4 = require_graceful_fs(); + var u = require_universalify().fromCallback; + function remove(path3, callback) { + fs4.rm(path3, { recursive: true, force: true }, callback); + } + function removeSync(path3) { + fs4.rmSync(path3, { recursive: true, force: true }); + } + module.exports = { + remove: u(remove), + removeSync + }; +}); + +// node_modules/fs-extra/lib/empty/index.js +var require_empty2 = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + var fs4 = require_fs(); + var path3 = __require("path"); + var mkdir = require_mkdirs(); + var remove = require_remove(); + var emptyDir = u(async function emptyDir(dir) { + let items; + try { + items = await fs4.readdir(dir); + } catch { + return mkdir.mkdirs(dir); } - _predestroy() { - this._continueWrite(null); + return Promise.all(items.map((item) => remove.remove(path3.join(dir, item)))); + }); + function emptyDirSync(dir) { + let items; + try { + items = fs4.readdirSync(dir); + } catch { + return mkdir.mkdirsSync(dir); } - _destroy(cb) { - if (this._stream) - this._stream.destroy(getStreamError(this)); - cb(null); + items.forEach((item) => { + item = path3.join(dir, item); + remove.removeSync(item); + }); + } + module.exports = { + emptyDirSync, + emptydirSync: emptyDirSync, + emptyDir, + emptydir: emptyDir + }; +}); + +// node_modules/fs-extra/lib/ensure/file.js +var require_file2 = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + var path3 = __require("path"); + var fs4 = require_fs(); + var mkdir = require_mkdirs(); + async function createFile(file) { + let stats; + try { + stats = await fs4.stat(file); + } catch { } - [Symbol.asyncIterator]() { - let error = null; - let promiseResolve = null; - let promiseReject = null; - let entryStream = null; - let entryCallback = null; - const extract = this; - this.on("entry", onentry); - this.on("error", (err) => { - error = err; - }); - this.on("close", onclose); - return { - [Symbol.asyncIterator]() { - return this; - }, - next() { - return new Promise(onnext); - }, - return() { - return destroy(null); - }, - throw(err) { - return destroy(err); - } - }; - function consumeCallback(err) { - if (!entryCallback) - return; - const cb = entryCallback; - entryCallback = null; - cb(err); - } - function onnext(resolve, reject) { - if (error) { - return reject(error); - } - if (entryStream) { - resolve({ value: entryStream, done: false }); - entryStream = null; - return; - } - promiseResolve = resolve; - promiseReject = reject; - consumeCallback(null); - if (extract._finished && promiseResolve) { - promiseResolve({ value: undefined, done: true }); - promiseResolve = promiseReject = null; - } - } - function onentry(header, stream, callback) { - entryCallback = callback; - stream.on("error", noop); - if (promiseResolve) { - promiseResolve({ value: stream, done: false }); - promiseResolve = promiseReject = null; - } else { - entryStream = stream; - } - } - function onclose() { - consumeCallback(error); - if (!promiseResolve) - return; - if (error) - promiseReject(error); - else - promiseResolve({ value: undefined, done: true }); - promiseResolve = promiseReject = null; - } - function destroy(err) { - extract.destroy(err); - consumeCallback(err); - return new Promise((resolve, reject) => { - if (extract.destroyed) - return resolve({ value: undefined, done: true }); - extract.once("close", function() { - if (err) - reject(err); - else - resolve({ value: undefined, done: true }); - }); - }); + if (stats && stats.isFile()) + return; + const dir = path3.dirname(file); + let dirStats = null; + try { + dirStats = await fs4.stat(dir); + } catch (err) { + if (err.code === "ENOENT") { + await mkdir.mkdirs(dir); + await fs4.writeFile(file, ""); + return; + } else { + throw err; } } + if (dirStats.isDirectory()) { + await fs4.writeFile(file, ""); + } else { + await fs4.readdir(dir); + } } - module.exports = function extract(opts) { - return new Extract(opts); - }; - function noop() { - } - function overflow(size) { - size &= 511; - return size && 512 - size; + function createFileSync(file) { + let stats; + try { + stats = fs4.statSync(file); + } catch { + } + if (stats && stats.isFile()) + return; + const dir = path3.dirname(file); + try { + if (!fs4.statSync(dir).isDirectory()) { + fs4.readdirSync(dir); + } + } catch (err) { + if (err && err.code === "ENOENT") + mkdir.mkdirsSync(dir); + else + throw err; + } + fs4.writeFileSync(file, ""); } -}); - -// node_modules/tar-stream/constants.js -var require_constants2 = __commonJS((exports, module) => { - var constants = { - S_IFMT: 61440, - S_IFDIR: 16384, - S_IFCHR: 8192, - S_IFBLK: 24576, - S_IFIFO: 4096, - S_IFLNK: 40960 + module.exports = { + createFile: u(createFile), + createFileSync }; - try { - module.exports = __require("fs").constants || constants; - } catch { - module.exports = constants; - } }); -// node_modules/tar-stream/pack.js -var require_pack = __commonJS((exports, module) => { - var { Readable, Writable, getStreamError } = require_streamx(); - var b4a = require_b4a(); - var constants = require_constants2(); - var headers = require_headers(); - var DMODE = 493; - var FMODE = 420; - var END_OF_TAR = b4a.alloc(1024); - - class Sink extends Writable { - constructor(pack, header, callback) { - super({ mapWritable, eagerOpen: true }); - this.written = 0; - this.header = header; - this._callback = callback; - this._linkname = null; - this._isLinkname = header.type === "symlink" && !header.linkname; - this._isVoid = header.type !== "file" && header.type !== "contiguous-file"; - this._finished = false; - this._pack = pack; - this._openCallback = null; - if (this._pack._stream === null) - this._pack._stream = this; - else - this._pack._pending.push(this); - } - _open(cb) { - this._openCallback = cb; - if (this._pack._stream === this) - this._continueOpen(); +// node_modules/fs-extra/lib/ensure/link.js +var require_link = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + var path3 = __require("path"); + var fs4 = require_fs(); + var mkdir = require_mkdirs(); + var { pathExists } = require_path_exists(); + var { areIdentical } = require_stat(); + async function createLink(srcpath, dstpath) { + let dstStat; + try { + dstStat = await fs4.lstat(dstpath); + } catch { } - _continuePack(err) { - if (this._callback === null) - return; - const callback = this._callback; - this._callback = null; - callback(err); + let srcStat; + try { + srcStat = await fs4.lstat(srcpath); + } catch (err) { + err.message = err.message.replace("lstat", "ensureLink"); + throw err; } - _continueOpen() { - if (this._pack._stream === null) - this._pack._stream = this; - const cb = this._openCallback; - this._openCallback = null; - if (cb === null) - return; - if (this._pack.destroying) - return cb(new Error("pack stream destroyed")); - if (this._pack._finalized) - return cb(new Error("pack stream is already finalized")); - this._pack._stream = this; - if (!this._isLinkname) { - this._pack._encode(this.header); - } - if (this._isVoid) { - this._finish(); - this._continuePack(null); - } - cb(null); + if (dstStat && areIdentical(srcStat, dstStat)) + return; + const dir = path3.dirname(dstpath); + const dirExists = await pathExists(dir); + if (!dirExists) { + await mkdir.mkdirs(dir); } - _write(data, cb) { - if (this._isLinkname) { - this._linkname = this._linkname ? b4a.concat([this._linkname, data]) : data; - return cb(null); - } - if (this._isVoid) { - if (data.byteLength > 0) { - return cb(new Error("No body allowed for this entry")); - } - return cb(); - } - this.written += data.byteLength; - if (this._pack.push(data)) - return cb(); - this._pack._drain = cb; + await fs4.link(srcpath, dstpath); + } + function createLinkSync(srcpath, dstpath) { + let dstStat; + try { + dstStat = fs4.lstatSync(dstpath); + } catch { } - _finish() { - if (this._finished) + try { + const srcStat = fs4.lstatSync(srcpath); + if (dstStat && areIdentical(srcStat, dstStat)) return; - this._finished = true; - if (this._isLinkname) { - this.header.linkname = this._linkname ? b4a.toString(this._linkname, "utf-8") : ""; - this._pack._encode(this.header); - } - overflow(this._pack, this.header.size); - this._pack._done(this); + } catch (err) { + err.message = err.message.replace("lstat", "ensureLink"); + throw err; } - _final(cb) { - if (this.written !== this.header.size) { - return cb(new Error("Size mismatch")); + const dir = path3.dirname(dstpath); + const dirExists = fs4.existsSync(dir); + if (dirExists) + return fs4.linkSync(srcpath, dstpath); + mkdir.mkdirsSync(dir); + return fs4.linkSync(srcpath, dstpath); + } + module.exports = { + createLink: u(createLink), + createLinkSync + }; +}); + +// node_modules/fs-extra/lib/ensure/symlink-paths.js +var require_symlink_paths = __commonJS((exports, module) => { + var path3 = __require("path"); + var fs4 = require_fs(); + var { pathExists } = require_path_exists(); + var u = require_universalify().fromPromise; + async function symlinkPaths(srcpath, dstpath) { + if (path3.isAbsolute(srcpath)) { + try { + await fs4.lstat(srcpath); + } catch (err) { + err.message = err.message.replace("lstat", "ensureSymlink"); + throw err; } - this._finish(); - cb(null); + return { + toCwd: srcpath, + toDst: srcpath + }; } - _getError() { - return getStreamError(this) || new Error("tar entry destroyed"); + const dstdir = path3.dirname(dstpath); + const relativeToDst = path3.join(dstdir, srcpath); + const exists = await pathExists(relativeToDst); + if (exists) { + return { + toCwd: relativeToDst, + toDst: srcpath + }; } - _predestroy() { - this._pack.destroy(this._getError()); + try { + await fs4.lstat(srcpath); + } catch (err) { + err.message = err.message.replace("lstat", "ensureSymlink"); + throw err; } - _destroy(cb) { - this._pack._done(this); - this._continuePack(this._finished ? null : this._getError()); - cb(); + return { + toCwd: srcpath, + toDst: path3.relative(dstdir, srcpath) + }; + } + function symlinkPathsSync(srcpath, dstpath) { + if (path3.isAbsolute(srcpath)) { + const exists2 = fs4.existsSync(srcpath); + if (!exists2) + throw new Error("absolute srcpath does not exist"); + return { + toCwd: srcpath, + toDst: srcpath + }; + } + const dstdir = path3.dirname(dstpath); + const relativeToDst = path3.join(dstdir, srcpath); + const exists = fs4.existsSync(relativeToDst); + if (exists) { + return { + toCwd: relativeToDst, + toDst: srcpath + }; } + const srcExists = fs4.existsSync(srcpath); + if (!srcExists) + throw new Error("relative srcpath does not exist"); + return { + toCwd: srcpath, + toDst: path3.relative(dstdir, srcpath) + }; } + module.exports = { + symlinkPaths: u(symlinkPaths), + symlinkPathsSync + }; +}); - class Pack extends Readable { - constructor(opts) { - super(opts); - this._drain = noop; - this._finalized = false; - this._finalizing = false; - this._pending = []; - this._stream = null; +// node_modules/fs-extra/lib/ensure/symlink-type.js +var require_symlink_type = __commonJS((exports, module) => { + var fs4 = require_fs(); + var u = require_universalify().fromPromise; + async function symlinkType(srcpath, type) { + if (type) + return type; + let stats; + try { + stats = await fs4.lstat(srcpath); + } catch { + return "file"; } - entry(header, buffer, callback) { - if (this._finalized || this.destroying) - throw new Error("already finalized or destroyed"); - if (typeof buffer === "function") { - callback = buffer; - buffer = null; - } - if (!callback) - callback = noop; - if (!header.size || header.type === "symlink") - header.size = 0; - if (!header.type) - header.type = modeToType(header.mode); - if (!header.mode) - header.mode = header.type === "directory" ? DMODE : FMODE; - if (!header.uid) - header.uid = 0; - if (!header.gid) - header.gid = 0; - if (!header.mtime) - header.mtime = new Date; - if (typeof buffer === "string") - buffer = b4a.from(buffer); - const sink = new Sink(this, header, callback); - if (b4a.isBuffer(buffer)) { - header.size = buffer.byteLength; - sink.write(buffer); - sink.end(); - return sink; - } - if (sink._isVoid) { - return sink; - } - return sink; + return stats && stats.isDirectory() ? "dir" : "file"; + } + function symlinkTypeSync(srcpath, type) { + if (type) + return type; + let stats; + try { + stats = fs4.lstatSync(srcpath); + } catch { + return "file"; } - finalize() { - if (this._stream || this._pending.length > 0) { - this._finalizing = true; - return; - } - if (this._finalized) - return; - this._finalized = true; - this.push(END_OF_TAR); - this.push(null); + return stats && stats.isDirectory() ? "dir" : "file"; + } + module.exports = { + symlinkType: u(symlinkType), + symlinkTypeSync + }; +}); + +// node_modules/fs-extra/lib/ensure/symlink.js +var require_symlink = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + var path3 = __require("path"); + var fs4 = require_fs(); + var { mkdirs, mkdirsSync } = require_mkdirs(); + var { symlinkPaths, symlinkPathsSync } = require_symlink_paths(); + var { symlinkType, symlinkTypeSync } = require_symlink_type(); + var { pathExists } = require_path_exists(); + var { areIdentical } = require_stat(); + async function createSymlink(srcpath, dstpath, type) { + let stats; + try { + stats = await fs4.lstat(dstpath); + } catch { } - _done(stream) { - if (stream !== this._stream) + if (stats && stats.isSymbolicLink()) { + const [srcStat, dstStat] = await Promise.all([ + fs4.stat(srcpath), + fs4.stat(dstpath) + ]); + if (areIdentical(srcStat, dstStat)) return; - this._stream = null; - if (this._finalizing) - this.finalize(); - if (this._pending.length) - this._pending.shift()._continueOpen(); } - _encode(header) { - if (!header.pax) { - const buf = headers.encode(header); - if (buf) { - this.push(buf); - return; - } - } - this._encodePax(header); + const relative = await symlinkPaths(srcpath, dstpath); + srcpath = relative.toDst; + const toType = await symlinkType(relative.toCwd, type); + const dir = path3.dirname(dstpath); + if (!await pathExists(dir)) { + await mkdirs(dir); } - _encodePax(header) { - const paxHeader = headers.encodePax({ - name: header.name, - linkname: header.linkname, - pax: header.pax - }); - const newHeader = { - name: "PaxHeader", - mode: header.mode, - uid: header.uid, - gid: header.gid, - size: paxHeader.byteLength, - mtime: header.mtime, - type: "pax-header", - linkname: header.linkname && "PaxHeader", - uname: header.uname, - gname: header.gname, - devmajor: header.devmajor, - devminor: header.devminor - }; - this.push(headers.encode(newHeader)); - this.push(paxHeader); - overflow(this, paxHeader.byteLength); - newHeader.size = header.size; - newHeader.type = header.type; - this.push(headers.encode(newHeader)); + return fs4.symlink(srcpath, dstpath, toType); + } + function createSymlinkSync(srcpath, dstpath, type) { + let stats; + try { + stats = fs4.lstatSync(dstpath); + } catch { } - _doDrain() { - const drain = this._drain; - this._drain = noop; - drain(); + if (stats && stats.isSymbolicLink()) { + const srcStat = fs4.statSync(srcpath); + const dstStat = fs4.statSync(dstpath); + if (areIdentical(srcStat, dstStat)) + return; } - _predestroy() { - const err = getStreamError(this); - if (this._stream) - this._stream.destroy(err); - while (this._pending.length) { - const stream = this._pending.shift(); - stream.destroy(err); - stream._continueOpen(); + const relative = symlinkPathsSync(srcpath, dstpath); + srcpath = relative.toDst; + type = symlinkTypeSync(relative.toCwd, type); + const dir = path3.dirname(dstpath); + const exists = fs4.existsSync(dir); + if (exists) + return fs4.symlinkSync(srcpath, dstpath, type); + mkdirsSync(dir); + return fs4.symlinkSync(srcpath, dstpath, type); + } + module.exports = { + createSymlink: u(createSymlink), + createSymlinkSync + }; +}); + +// node_modules/fs-extra/lib/ensure/index.js +var require_ensure = __commonJS((exports, module) => { + var { createFile, createFileSync } = require_file2(); + var { createLink, createLinkSync } = require_link(); + var { createSymlink, createSymlinkSync } = require_symlink(); + module.exports = { + createFile, + createFileSync, + ensureFile: createFile, + ensureFileSync: createFileSync, + createLink, + createLinkSync, + ensureLink: createLink, + ensureLinkSync: createLinkSync, + createSymlink, + createSymlinkSync, + ensureSymlink: createSymlink, + ensureSymlinkSync: createSymlinkSync + }; +}); + +// node_modules/jsonfile/utils.js +var require_utils3 = __commonJS((exports, module) => { + function stringify(obj, { EOL = ` +`, finalEOL = true, replacer = null, spaces } = {}) { + const EOF = finalEOL ? EOL : ""; + const str = JSON.stringify(obj, replacer, spaces); + return str.replace(/\n/g, EOL) + EOF; + } + function stripBom(content) { + if (Buffer.isBuffer(content)) + content = content.toString("utf8"); + return content.replace(/^\uFEFF/, ""); + } + module.exports = { stringify, stripBom }; +}); + +// node_modules/jsonfile/index.js +var require_jsonfile = __commonJS((exports, module) => { + var _fs; + try { + _fs = require_graceful_fs(); + } catch (_3) { + _fs = __require("fs"); + } + var universalify = require_universalify(); + var { stringify, stripBom } = require_utils3(); + async function _readFile(file, options = {}) { + if (typeof options === "string") { + options = { encoding: options }; + } + const fs4 = options.fs || _fs; + const shouldThrow = "throws" in options ? options.throws : true; + let data = await universalify.fromCallback(fs4.readFile)(file, options); + data = stripBom(data); + let obj; + try { + obj = JSON.parse(data, options ? options.reviver : null); + } catch (err) { + if (shouldThrow) { + err.message = `${file}: ${err.message}`; + throw err; + } else { + return null; } - this._doDrain(); } - _read(cb) { - this._doDrain(); - cb(); + return obj; + } + var readFile = universalify.fromPromise(_readFile); + function readFileSync(file, options = {}) { + if (typeof options === "string") { + options = { encoding: options }; + } + const fs4 = options.fs || _fs; + const shouldThrow = "throws" in options ? options.throws : true; + try { + let content = fs4.readFileSync(file, options); + content = stripBom(content); + return JSON.parse(content, options.reviver); + } catch (err) { + if (shouldThrow) { + err.message = `${file}: ${err.message}`; + throw err; + } else { + return null; + } } } - module.exports = function pack(opts) { - return new Pack(opts); + async function _writeFile(file, obj, options = {}) { + const fs4 = options.fs || _fs; + const str = stringify(obj, options); + await universalify.fromCallback(fs4.writeFile)(file, str, options); + } + var writeFile = universalify.fromPromise(_writeFile); + function writeFileSync(file, obj, options = {}) { + const fs4 = options.fs || _fs; + const str = stringify(obj, options); + return fs4.writeFileSync(file, str, options); + } + var jsonfile = { + readFile, + readFileSync, + writeFile, + writeFileSync }; - function modeToType(mode) { - switch (mode & constants.S_IFMT) { - case constants.S_IFBLK: - return "block-device"; - case constants.S_IFCHR: - return "character-device"; - case constants.S_IFDIR: - return "directory"; - case constants.S_IFIFO: - return "fifo"; - case constants.S_IFLNK: - return "symlink"; + module.exports = jsonfile; +}); + +// node_modules/fs-extra/lib/json/jsonfile.js +var require_jsonfile2 = __commonJS((exports, module) => { + var jsonFile = require_jsonfile(); + module.exports = { + readJson: jsonFile.readFile, + readJsonSync: jsonFile.readFileSync, + writeJson: jsonFile.writeFile, + writeJsonSync: jsonFile.writeFileSync + }; +}); + +// node_modules/fs-extra/lib/output-file/index.js +var require_output_file = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + var fs4 = require_fs(); + var path3 = __require("path"); + var mkdir = require_mkdirs(); + var pathExists = require_path_exists().pathExists; + async function outputFile(file, data, encoding = "utf-8") { + const dir = path3.dirname(file); + if (!await pathExists(dir)) { + await mkdir.mkdirs(dir); } - return "file"; + return fs4.writeFile(file, data, encoding); } - function noop() { + function outputFileSync(file, ...args) { + const dir = path3.dirname(file); + if (!fs4.existsSync(dir)) { + mkdir.mkdirsSync(dir); + } + fs4.writeFileSync(file, ...args); } - function overflow(self2, size) { - size &= 511; - if (size) - self2.push(END_OF_TAR.subarray(0, 512 - size)); + module.exports = { + outputFile: u(outputFile), + outputFileSync + }; +}); + +// node_modules/fs-extra/lib/json/output-json.js +var require_output_json = __commonJS((exports, module) => { + var { stringify } = require_utils3(); + var { outputFile } = require_output_file(); + async function outputJson(file, data, options = {}) { + const str = stringify(data, options); + await outputFile(file, str, options); } - function mapWritable(buf) { - return b4a.isBuffer(buf) ? buf : b4a.from(buf); + module.exports = outputJson; +}); + +// node_modules/fs-extra/lib/json/output-json-sync.js +var require_output_json_sync = __commonJS((exports, module) => { + var { stringify } = require_utils3(); + var { outputFileSync } = require_output_file(); + function outputJsonSync(file, data, options) { + const str = stringify(data, options); + outputFileSync(file, str, options); } + module.exports = outputJsonSync; }); -// node_modules/tar-stream/index.js -var require_tar_stream = __commonJS((exports) => { - exports.extract = require_extract(); - exports.pack = require_pack(); +// node_modules/fs-extra/lib/json/index.js +var require_json2 = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + var jsonFile = require_jsonfile2(); + jsonFile.outputJson = u(require_output_json()); + jsonFile.outputJsonSync = require_output_json_sync(); + jsonFile.outputJSON = jsonFile.outputJson; + jsonFile.outputJSONSync = jsonFile.outputJsonSync; + jsonFile.writeJSON = jsonFile.writeJson; + jsonFile.writeJSONSync = jsonFile.writeJsonSync; + jsonFile.readJSON = jsonFile.readJson; + jsonFile.readJSONSync = jsonFile.readJsonSync; + module.exports = jsonFile; }); -// node_modules/archiver/lib/plugins/tar.js -var require_tar = __commonJS((exports, module) => { - var zlib = __require("zlib"); - var engine = require_tar_stream(); - var util2 = require_archiver_utils(); - var Tar = function(options) { - if (!(this instanceof Tar)) { - return new Tar(options); - } - options = this.options = util2.defaults(options, { - gzip: false - }); - if (typeof options.gzipOptions !== "object") { - options.gzipOptions = {}; +// node_modules/fs-extra/lib/move/move.js +var require_move = __commonJS((exports, module) => { + var fs4 = require_fs(); + var path3 = __require("path"); + var { copy } = require_copy2(); + var { remove } = require_remove(); + var { mkdirp } = require_mkdirs(); + var { pathExists } = require_path_exists(); + var stat = require_stat(); + async function move(src, dest, opts = {}) { + const overwrite = opts.overwrite || opts.clobber || false; + const { srcStat, isChangingCase = false } = await stat.checkPaths(src, dest, "move", opts); + await stat.checkParentPaths(src, srcStat, dest, "move"); + const destParent = path3.dirname(dest); + const parsedParentPath = path3.parse(destParent); + if (parsedParentPath.root !== destParent) { + await mkdirp(destParent); } - this.supports = { - directory: true, - symlink: true - }; - this.engine = engine.pack(options); - this.compressor = false; - if (options.gzip) { - this.compressor = zlib.createGzip(options.gzipOptions); - this.compressor.on("error", this._onCompressorError.bind(this)); + return doRename(src, dest, overwrite, isChangingCase); + } + async function doRename(src, dest, overwrite, isChangingCase) { + if (!isChangingCase) { + if (overwrite) { + await remove(dest); + } else if (await pathExists(dest)) { + throw new Error("dest already exists."); + } } - }; - Tar.prototype._onCompressorError = function(err) { - this.engine.emit("error", err); - }; - Tar.prototype.append = function(source, data, callback) { - var self2 = this; - data.mtime = data.date; - function append2(err, sourceBuffer) { - if (err) { - callback(err); - return; + try { + await fs4.rename(src, dest); + } catch (err) { + if (err.code !== "EXDEV") { + throw err; } - self2.engine.entry(data, sourceBuffer, function(err2) { - callback(err2, data); - }); + await moveAcrossDevice(src, dest, overwrite); } - if (data.sourceType === "buffer") { - append2(null, source); - } else if (data.sourceType === "stream" && data.stats) { - data.size = data.stats.size; - var entry = self2.engine.entry(data, function(err) { - callback(err, data); - }); - source.pipe(entry); - } else if (data.sourceType === "stream") { - util2.collectStream(source, append2); + } + async function moveAcrossDevice(src, dest, overwrite) { + const opts = { + overwrite, + errorOnExist: true, + preserveTimestamps: true + }; + await copy(src, dest, opts); + return remove(src); + } + module.exports = move; +}); + +// node_modules/fs-extra/lib/move/move-sync.js +var require_move_sync = __commonJS((exports, module) => { + var fs4 = require_graceful_fs(); + var path3 = __require("path"); + var copySync = require_copy2().copySync; + var removeSync = require_remove().removeSync; + var mkdirpSync = require_mkdirs().mkdirpSync; + var stat = require_stat(); + function moveSync(src, dest, opts) { + opts = opts || {}; + const overwrite = opts.overwrite || opts.clobber || false; + const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, "move", opts); + stat.checkParentPathsSync(src, srcStat, dest, "move"); + if (!isParentRoot(dest)) + mkdirpSync(path3.dirname(dest)); + return doRename(src, dest, overwrite, isChangingCase); + } + function isParentRoot(dest) { + const parent = path3.dirname(dest); + const parsedPath = path3.parse(parent); + return parsedPath.root === parent; + } + function doRename(src, dest, overwrite, isChangingCase) { + if (isChangingCase) + return rename(src, dest, overwrite); + if (overwrite) { + removeSync(dest); + return rename(src, dest, overwrite); } - }; - Tar.prototype.finalize = function() { - this.engine.finalize(); - }; - Tar.prototype.on = function() { - return this.engine.on.apply(this.engine, arguments); - }; - Tar.prototype.pipe = function(destination, options) { - if (this.compressor) { - return this.engine.pipe.apply(this.engine, [this.compressor]).pipe(destination, options); - } else { - return this.engine.pipe.apply(this.engine, arguments); + if (fs4.existsSync(dest)) + throw new Error("dest already exists."); + return rename(src, dest, overwrite); + } + function rename(src, dest, overwrite) { + try { + fs4.renameSync(src, dest); + } catch (err) { + if (err.code !== "EXDEV") + throw err; + return moveAcrossDevice(src, dest, overwrite); } + } + function moveAcrossDevice(src, dest, overwrite) { + const opts = { + overwrite, + errorOnExist: true, + preserveTimestamps: true + }; + copySync(src, dest, opts); + return removeSync(src); + } + module.exports = moveSync; +}); + +// node_modules/fs-extra/lib/move/index.js +var require_move2 = __commonJS((exports, module) => { + var u = require_universalify().fromPromise; + module.exports = { + move: u(require_move()), + moveSync: require_move_sync() }; - Tar.prototype.unpipe = function() { - if (this.compressor) { - return this.compressor.unpipe.apply(this.compressor, arguments); - } else { - return this.engine.unpipe.apply(this.engine, arguments); - } +}); + +// node_modules/fs-extra/lib/index.js +var require_lib4 = __commonJS((exports, module) => { + module.exports = { + ...require_fs(), + ...require_copy2(), + ...require_empty2(), + ...require_ensure(), + ...require_json2(), + ...require_mkdirs(), + ...require_move2(), + ...require_output_file(), + ...require_path_exists(), + ...require_remove() }; - module.exports = Tar; }); -// node_modules/buffer-crc32/dist/index.cjs -var require_dist3 = __commonJS((exports, module) => { - function getDefaultExportFromCjs(x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; - } - var CRC_TABLE = new Int32Array([ - 0, - 1996959894, - 3993919788, - 2567524794, - 124634137, - 1886057615, - 3915621685, - 2657392035, - 249268274, - 2044508324, - 3772115230, - 2547177864, - 162941995, - 2125561021, - 3887607047, - 2428444049, - 498536548, - 1789927666, - 4089016648, - 2227061214, - 450548861, - 1843258603, - 4107580753, - 2211677639, - 325883990, - 1684777152, - 4251122042, - 2321926636, - 335633487, - 1661365465, - 4195302755, - 2366115317, - 997073096, - 1281953886, - 3579855332, - 2724688242, - 1006888145, - 1258607687, - 3524101629, - 2768942443, - 901097722, - 1119000684, - 3686517206, - 2898065728, - 853044451, - 1172266101, - 3705015759, - 2882616665, - 651767980, - 1373503546, - 3369554304, - 3218104598, - 565507253, - 1454621731, - 3485111705, - 3099436303, - 671266974, - 1594198024, - 3322730930, - 2970347812, - 795835527, - 1483230225, - 3244367275, - 3060149565, - 1994146192, - 31158534, - 2563907772, - 4023717930, - 1907459465, - 112637215, - 2680153253, - 3904427059, - 2013776290, - 251722036, - 2517215374, - 3775830040, - 2137656763, - 141376813, - 2439277719, - 3865271297, - 1802195444, - 476864866, - 2238001368, - 4066508878, - 1812370925, - 453092731, - 2181625025, - 4111451223, - 1706088902, - 314042704, - 2344532202, - 4240017532, - 1658658271, - 366619977, - 2362670323, - 4224994405, - 1303535960, - 984961486, - 2747007092, - 3569037538, - 1256170817, - 1037604311, - 2765210733, - 3554079995, - 1131014506, - 879679996, - 2909243462, - 3663771856, - 1141124467, - 855842277, - 2852801631, - 3708648649, - 1342533948, - 654459306, - 3188396048, - 3373015174, - 1466479909, - 544179635, - 3110523913, - 3462522015, - 1591671054, - 702138776, - 2966460450, - 3352799412, - 1504918807, - 783551873, - 3082640443, - 3233442989, - 3988292384, - 2596254646, - 62317068, - 1957810842, - 3939845945, - 2647816111, - 81470997, - 1943803523, - 3814918930, - 2489596804, - 225274430, - 2053790376, - 3826175755, - 2466906013, - 167816743, - 2097651377, - 4027552580, - 2265490386, - 503444072, - 1762050814, - 4150417245, - 2154129355, - 426522225, - 1852507879, - 4275313526, - 2312317920, - 282753626, - 1742555852, - 4189708143, - 2394877945, - 397917763, - 1622183637, - 3604390888, - 2714866558, - 953729732, - 1340076626, - 3518719985, - 2797360999, - 1068828381, - 1219638859, - 3624741850, - 2936675148, - 906185462, - 1090812512, - 3747672003, - 2825379669, - 829329135, - 1181335161, - 3412177804, - 3160834842, - 628085408, - 1382605366, - 3423369109, - 3138078467, - 570562233, - 1426400815, - 3317316542, - 2998733608, - 733239954, - 1555261956, - 3268935591, - 3050360625, - 752459403, - 1541320221, - 2607071920, - 3965973030, - 1969922972, - 40735498, - 2617837225, - 3943577151, - 1913087877, - 83908371, - 2512341634, - 3803740692, - 2075208622, - 213261112, - 2463272603, - 3855990285, - 2094854071, - 198958881, - 2262029012, - 4057260610, - 1759359992, - 534414190, - 2176718541, - 4139329115, - 1873836001, - 414664567, - 2282248934, - 4279200368, - 1711684554, - 285281116, - 2405801727, - 4167216745, - 1634467795, - 376229701, - 2685067896, - 3608007406, - 1308918612, - 956543938, - 2808555105, - 3495958263, - 1231636301, - 1047427035, - 2932959818, - 3654703836, - 1088359270, - 936918000, - 2847714899, - 3736837829, - 1202900863, - 817233897, - 3183342108, - 3401237130, - 1404277552, - 615818150, - 3134207493, - 3453421203, - 1423857449, - 601450431, - 3009837614, - 3294710456, - 1567103746, - 711928724, - 3020668471, - 3272380065, - 1510334235, - 755167117 - ]); - function ensureBuffer(input) { - if (Buffer.isBuffer(input)) { - return input; +// node_modules/ms/index.js +var require_ms = __commonJS((exports, module) => { + var s = 1000; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; } - if (typeof input === "number") { - return Buffer.alloc(input); - } else if (typeof input === "string") { - return Buffer.from(input); - } else { - throw new Error("input must be buffer, number, or string, received " + typeof input); + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return; } } - function bufferizeInt(num) { - const tmp = ensureBuffer(4); - tmp.writeInt32BE(num, 0); - return tmp; + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; } - function _crc32(buf, previous) { - buf = ensureBuffer(buf); - if (Buffer.isBuffer(previous)) { - previous = previous.readUInt32BE(0); + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); } - let crc = ~~previous ^ -1; - for (var n = 0;n < buf.length; n++) { - crc = CRC_TABLE[(crc ^ buf[n]) & 255] ^ crc >>> 8; + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); } - return crc ^ -1; + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; } - function crc32() { - return bufferizeInt(_crc32.apply(null, arguments)); + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); } - crc32.signed = function() { - return _crc32.apply(null, arguments); - }; - crc32.unsigned = function() { - return _crc32.apply(null, arguments) >>> 0; - }; - var bufferCrc32 = crc32; - var index = /* @__PURE__ */ getDefaultExportFromCjs(bufferCrc32); - module.exports = index; }); -// node_modules/archiver/lib/plugins/json.js -var require_json2 = __commonJS((exports, module) => { - var inherits = __require("util").inherits; - var Transform = require_ours().Transform; - var crc32 = require_dist3(); - var util2 = require_archiver_utils(); - var Json = function(options) { - if (!(this instanceof Json)) { - return new Json(options); +// node_modules/debug/src/common.js +var require_common = __commonJS((exports, module) => { + function setup(env2) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce2; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env2).forEach((key2) => { + createDebug[key2] = env2[key2]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash = 0; + for (let i = 0;i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; } - options = this.options = util2.defaults(options, {}); - Transform.call(this, options); - this.supports = { - directory: true, - symlink: true - }; - this.files = []; - }; - inherits(Json, Transform); - Json.prototype._transform = function(chunk, encoding, callback) { - callback(null, chunk); - }; - Json.prototype._writeStringified = function() { - var fileString = JSON.stringify(this.files); - this.write(fileString); - }; - Json.prototype.append = function(source, data, callback) { - var self2 = this; - data.crc32 = 0; - function onend(err, sourceBuffer) { - if (err) { - callback(err); - return; + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug(...args) { + if (!debug.enabled) { + return; + } + const self2 = debug; + const curr = Number(new Date); + const ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self2, val); + args.splice(index, 1); + index--; + } + return match; + }); + createDebug.formatArgs.call(self2, args); + const logFn = self2.log || createDebug.log; + logFn.apply(self2, args); } - data.size = sourceBuffer.length || 0; - data.crc32 = crc32.unsigned(sourceBuffer); - self2.files.push(data); - callback(null, data); + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; + Object.defineProperty(debug, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, + set: (v) => { + enableOverride = v; + } + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug); + } + return debug; } - if (data.sourceType === "buffer") { - onend(null, source); - } else if (data.sourceType === "stream") { - util2.collectStream(source, onend); + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; } - }; - Json.prototype.finalize = function() { - this._writeStringified(); - this.end(); - }; - module.exports = Json; -}); - -// node_modules/archiver/index.js -var require_archiver = __commonJS((exports, module) => { - var Archiver = require_core(); - var formats = {}; - var vending = function(format, options) { - return vending.create(format, options); - }; - vending.create = function(format, options) { - if (formats[format]) { - var instance = new Archiver(format, options); - instance.setFormat(format); - instance.setModule(new formats[format](options)); - return instance; - } else { - throw new Error("create(" + format + "): format not registered"); + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + const split2 = (typeof namespaces === "string" ? namespaces : "").trim().replace(" ", ",").split(",").filter(Boolean); + for (const ns of split2) { + if (ns[0] === "-") { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } } - }; - vending.registerFormat = function(format, module2) { - if (formats[format]) { - throw new Error("register(" + format + "): format already registered"); + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) { + if (template[templateIndex] === "*") { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; + } + } + while (templateIndex < template.length && template[templateIndex] === "*") { + templateIndex++; + } + return templateIndex === template.length; } - if (typeof module2 !== "function") { - throw new Error("register(" + format + "): format module invalid"); + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; } - if (typeof module2.prototype.append !== "function" || typeof module2.prototype.finalize !== "function") { - throw new Error("register(" + format + "): format module missing methods"); + function enabled(name) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name, skip)) { + return false; + } + } + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; + } + } + return false; } - formats[format] = module2; - }; - vending.isRegisteredFormat = function(format) { - if (formats[format]) { - return true; + function coerce2(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; } - return false; - }; - vending.registerFormat("zip", require_zip3()); - vending.registerFormat("tar", require_tar()); - vending.registerFormat("json", require_json2()); - module.exports = vending; + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + module.exports = setup; }); -// node_modules/ignore/index.js -var require_ignore2 = __commonJS((exports, module) => { - function makeArray(subject) { - return Array.isArray(subject) ? subject : [subject]; - } - var UNDEFINED = undefined; - var EMPTY2 = ""; - var SPACE = " "; - var ESCAPE = "\\"; - var REGEX_TEST_BLANK_LINE = /^\s+$/; - var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/; - var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; - var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; - var REGEX_SPLITALL_CRLF = /\r?\n/g; - var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; - var REGEX_TEST_TRAILING_SLASH = /\/$/; - var SLASH = "/"; - var TMP_KEY_IGNORE = "node-ignore"; - if (typeof Symbol !== "undefined") { - TMP_KEY_IGNORE = Symbol.for("node-ignore"); - } - var KEY_IGNORE = TMP_KEY_IGNORE; - var define2 = (object, key2, value) => { - Object.defineProperty(object, key2, { value }); - return value; - }; - var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; - var RETURN_FALSE = () => false; - var sanitizeRange = (range) => range.replace(REGEX_REGEXP_RANGE, (match, from2, to) => from2.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY2); - var cleanRangeBackSlash = (slashes) => { - const { length } = slashes; - return slashes.slice(0, length - length % 2); - }; - var REPLACERS = [ - [ - /^\uFEFF/, - () => EMPTY2 - ], - [ - /((?:\\\\)*?)(\\?\s+)$/, - (_3, m1, m2) => m1 + (m2.indexOf("\\") === 0 ? SPACE : EMPTY2) - ], - [ - /(\\+?)\s/g, - (_3, m1) => { - const { length } = m1; - return m1.slice(0, length - length % 2) + SPACE; - } - ], - [ - /[\\$.|*+(){^]/g, - (match) => `\\${match}` - ], - [ - /(?!\\)\?/g, - () => "[^/]" - ], - [ - /^\//, - () => "^" - ], - [ - /\//g, - () => "\\/" - ], - [ - /^\^*\\\*\\\*\\\//, - () => "^(?:.*\\/)?" - ], - [ - /^(?=[^^])/, - function startingReplacer() { - return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^"; - } - ], - [ - /\\\/\\\*\\\*(?=\\\/|$)/g, - (_3, index, str) => index + 6 < str.length ? "(?:\\/[^\\/]+)*" : "\\/.+" - ], - [ - /(^|[^\\]+)(\\\*)+(?=.+)/g, - (_3, p1, p2) => { - const unescaped = p2.replace(/\\\*/g, "[^\\/]*"); - return p1 + unescaped; +// node_modules/debug/src/browser.js +var require_browser = __commonJS((exports, module) => { + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load2; + exports.useColors = useColors; + exports.storage = localstorage(); + exports.destroy = (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); } - ], - [ - /\\\\\\(?=[$.|*+(){^])/g, - () => ESCAPE - ], - [ - /\\\\/g, - () => ESCAPE - ], - [ - /(\\)?\[([^\]/]*?)(\\*)($|\])/g, - (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]" - ], - [ - /(?:[^*])$/, - (match) => /\/$/.test(match) ? `${match}$` : `${match}(?=$|\\/$)` - ] + }; + })(); + exports.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" ]; - var REGEX_REPLACE_TRAILING_WILDCARD = /(^|\\\/)?\\\*$/; - var MODE_IGNORE = "regex"; - var MODE_CHECK_IGNORE = "checkRegex"; - var UNDERSCORE = "_"; - var TRAILING_WILD_CARD_REPLACERS = { - [MODE_IGNORE](_3, p1) { - const prefix = p1 ? `${p1}[^/]+` : "[^/]*"; - return `${prefix}(?=$|\\/$)`; - }, - [MODE_CHECK_IGNORE](_3, p1) { - const prefix = p1 ? `${p1}[^/]*` : "[^/]*"; - return `${prefix}(?=$|\\/$)`; - } - }; - var makeRegexPrefix = (pattern) => REPLACERS.reduce((prev, [matcher, replacer]) => prev.replace(matcher, replacer.bind(pattern)), pattern); - var isString = (subject) => typeof subject === "string"; - var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf("#") !== 0; - var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF).filter(Boolean); - - class IgnoreRule { - constructor(pattern, mark, body, ignoreCase, negative, prefix) { - this.pattern = pattern; - this.mark = mark; - this.negative = negative; - define2(this, "body", body); - define2(this, "ignoreCase", ignoreCase); - define2(this, "regexPrefix", prefix); - } - get regex() { - const key2 = UNDERSCORE + MODE_IGNORE; - if (this[key2]) { - return this[key2]; - } - return this._make(MODE_IGNORE, key2); - } - get checkRegex() { - const key2 = UNDERSCORE + MODE_CHECK_IGNORE; - if (this[key2]) { - return this[key2]; - } - return this._make(MODE_CHECK_IGNORE, key2); + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; } - _make(mode, key2) { - const str = this.regexPrefix.replace(REGEX_REPLACE_TRAILING_WILDCARD, TRAILING_WILD_CARD_REPLACERS[mode]); - const regex2 = this.ignoreCase ? new RegExp(str, "i") : new RegExp(str); - return define2(this, key2, regex2); + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; } + let m; + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); } - var createRule = ({ - pattern, - mark - }, ignoreCase) => { - let negative = false; - let body = pattern; - if (body.indexOf("!") === 0) { - negative = true; - body = body.substr(1); - } - body = body.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#"); - const regexPrefix = makeRegexPrefix(body); - return new IgnoreRule(pattern, mark, body, ignoreCase, negative, regexPrefix); - }; - - class RuleManager { - constructor(ignoreCase) { - this._ignoreCase = ignoreCase; - this._rules = []; + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff); + if (!this.useColors) { + return; } - _add(pattern) { - if (pattern && pattern[KEY_IGNORE]) { - this._rules = this._rules.concat(pattern._rules._rules); - this._added = true; + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { return; } - if (isString(pattern)) { - pattern = { - pattern - }; + index++; + if (match === "%c") { + lastC = index; } - if (checkPattern(pattern.pattern)) { - const rule = createRule(pattern, this._ignoreCase); - this._added = true; - this._rules.push(rule); + }); + args.splice(lastC, 0, c); + } + exports.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem("debug", namespaces); + } else { + exports.storage.removeItem("debug"); } + } catch (error) { } - add(pattern) { - this._added = false; - makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._add, this); - return this._added; + } + function load2() { + let r; + try { + r = exports.storage.getItem("debug"); + } catch (error) { } - test(path3, checkUnignored, mode) { - let ignored = false; - let unignored = false; - let matchedRule; - this._rules.forEach((rule) => { - const { negative } = rule; - if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { - return; - } - const matched = rule[mode].test(path3); - if (!matched) { - return; - } - ignored = !negative; - unignored = negative; - matchedRule = negative ? UNDEFINED : rule; - }); - const ret = { - ignored, - unignored - }; - if (matchedRule) { - ret.rule = matchedRule; - } - return ret; + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; } + return r; } - var throwError = (message, Ctor) => { - throw new Ctor(message); - }; - var checkPath = (path3, originalPath, doThrow) => { - if (!isString(path3)) { - return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError); - } - if (!path3) { - return doThrow(`path must not be empty`, TypeError); + function localstorage() { + try { + return localStorage; + } catch (error) { } - if (checkPath.isNotRelative(path3)) { - const r = "`path.relative()`d"; - return doThrow(`path should be a ${r} string, but got "${originalPath}"`, RangeError); + } + module.exports = require_common()(exports); + var { formatters } = module.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; } - return true; }; - var isNotRelative = (path3) => REGEX_TEST_INVALID_PATH.test(path3); - checkPath.isNotRelative = isNotRelative; - checkPath.convert = (p) => p; +}); - class Ignore { - constructor({ - ignorecase = true, - ignoreCase = ignorecase, - allowRelativePaths = false - } = {}) { - define2(this, KEY_IGNORE, true); - this._rules = new RuleManager(ignoreCase); - this._strictPathCheck = !allowRelativePaths; - this._initCache(); +// node_modules/debug/src/node.js +var require_node2 = __commonJS((exports, module) => { + var tty2 = __require("tty"); + var util2 = __require("util"); + exports.init = init; + exports.log = log; + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load2; + exports.useColors = useColors; + exports.destroy = util2.deprecate(() => { + }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + exports.colors = [6, 2, 3, 4, 5, 1]; + try { + const supportsColor2 = (()=>{throw new Error("Cannot require module "+"supports-color");})(); + if (supportsColor2 && (supportsColor2.stderr || supportsColor2).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; } - _initCache() { - this._ignoreCache = Object.create(null); - this._testCache = Object.create(null); + } catch (error) { + } + exports.inspectOpts = Object.keys(process.env).filter((key2) => { + return /^debug_/i.test(key2); + }).reduce((obj, key2) => { + const prop = key2.substring(6).toLowerCase().replace(/_([a-z])/g, (_3, k) => { + return k.toUpperCase(); + }); + let val = process.env[key2]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === "null") { + val = null; + } else { + val = Number(val); } - add(pattern) { - if (this._rules.add(pattern)) { - this._initCache(); - } - return this; + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty2.isatty(process.stderr.fd); + } + function formatArgs(args) { + const { namespace: name, useColors: useColors2 } = this; + if (useColors2) { + const c = this.color; + const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); + const prefix = ` ${colorCode};1m${name} \x1B[0m`; + args[0] = prefix + args[0].split(` +`).join(` +` + prefix); + args.push(colorCode + "m+" + module.exports.humanize(this.diff) + "\x1B[0m"); + } else { + args[0] = getDate() + name + " " + args[0]; } - addPattern(pattern) { - return this.add(pattern); + } + function getDate() { + if (exports.inspectOpts.hideDate) { + return ""; } - _test(originalPath, cache2, checkUnignored, slices) { - const path3 = originalPath && checkPath.convert(originalPath); - checkPath(path3, originalPath, this._strictPathCheck ? throwError : RETURN_FALSE); - return this._t(path3, cache2, checkUnignored, slices); + return new Date().toISOString() + " "; + } + function log(...args) { + return process.stderr.write(util2.formatWithOptions(exports.inspectOpts, ...args) + ` +`); + } + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + delete process.env.DEBUG; } - checkIgnore(path3) { - if (!REGEX_TEST_TRAILING_SLASH.test(path3)) { - return this.test(path3); - } - const slices = path3.split(SLASH).filter(Boolean); - slices.pop(); - if (slices.length) { - const parent = this._t(slices.join(SLASH) + SLASH, this._testCache, true, slices); - if (parent.ignored) { - return parent; - } - } - return this._rules.test(path3, false, MODE_CHECK_IGNORE); + } + function load2() { + return process.env.DEBUG; + } + function init(debug) { + debug.inspectOpts = {}; + const keys = Object.keys(exports.inspectOpts); + for (let i = 0;i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; } - _t(path3, cache2, checkUnignored, slices) { - if (path3 in cache2) { - return cache2[path3]; + } + module.exports = require_common()(exports); + var { formatters } = module.exports; + formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util2.inspect(v, this.inspectOpts).split(` +`).map((str) => str.trim()).join(" "); + }; + formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util2.inspect(v, this.inspectOpts); + }; +}); + +// node_modules/debug/src/index.js +var require_src = __commonJS((exports, module) => { + if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) { + module.exports = require_browser(); + } else { + module.exports = require_node2(); + } +}); + +// node_modules/@kwsites/file-exists/dist/src/index.js +var require_src2 = __commonJS((exports) => { + var __importDefault = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + var fs_1 = __require("fs"); + var debug_1 = __importDefault(require_src()); + var log = debug_1.default("@kwsites/file-exists"); + function check2(path3, isFile, isDirectory) { + log(`checking %s`, path3); + try { + const stat = fs_1.statSync(path3); + if (stat.isFile() && isFile) { + log(`[OK] path represents a file`); + return true; } - if (!slices) { - slices = path3.split(SLASH).filter(Boolean); + if (stat.isDirectory() && isDirectory) { + log(`[OK] path represents a directory`); + return true; } - slices.pop(); - if (!slices.length) { - return cache2[path3] = this._rules.test(path3, checkUnignored, MODE_IGNORE); + log(`[FAIL] path represents something other than a file or directory`); + return false; + } catch (e) { + if (e.code === "ENOENT") { + log(`[FAIL] path is not accessible: %o`, e); + return false; } - const parent = this._t(slices.join(SLASH) + SLASH, cache2, checkUnignored, slices); - return cache2[path3] = parent.ignored ? parent : this._rules.test(path3, checkUnignored, MODE_IGNORE); - } - ignores(path3) { - return this._test(path3, this._ignoreCache, false).ignored; - } - createFilter() { - return (path3) => !this.ignores(path3); - } - filter(paths) { - return makeArray(paths).filter(this.createFilter()); - } - test(path3) { - return this._test(path3, this._testCache, true); + log(`[FATAL] %o`, e); + throw e; } } - var factory = (options) => new Ignore(options); - var isPathValid = (path3) => checkPath(path3 && checkPath.convert(path3), path3, RETURN_FALSE); - if (typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32")) { - const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/"); - checkPath.convert = makePosix; - const REGEX_TEST_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; - checkPath.isNotRelative = (path3) => REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path3) || isNotRelative(path3); + function exists(path3, type = exports.READABLE) { + return check2(path3, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); } - module.exports = factory; - factory.default = factory; - module.exports.isPathValid = isPathValid; + exports.exists = exists; + exports.FILE = 1; + exports.FOLDER = 2; + exports.READABLE = exports.FILE + exports.FOLDER; +}); + +// node_modules/@kwsites/file-exists/dist/index.js +var require_dist2 = __commonJS((exports) => { + function __export2(m) { + for (var p in m) + if (!exports.hasOwnProperty(p)) + exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export2(require_src2()); +}); + +// node_modules/@kwsites/promise-deferred/dist/index.js +var require_dist3 = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createDeferred = exports.deferred = undefined; + function deferred() { + let done; + let fail; + let status = "pending"; + const promise = new Promise((_done, _fail) => { + done = _done; + fail = _fail; + }); + return { + promise, + done(result) { + if (status === "pending") { + status = "resolved"; + done(result); + } + }, + fail(error) { + if (status === "pending") { + status = "rejected"; + fail(error); + } + }, + get fulfilled() { + return status !== "pending"; + }, + get status() { + return status; + } + }; + } + exports.deferred = deferred; + exports.createDeferred = deferred; + exports.default = deferred; }); // node_modules/deepmerge/dist/cjs.js @@ -52633,11 +52633,44 @@ var { Help } = import__.default; -// src/commands/create/index.ts -var import_fs_extra = __toESM(require_lib(), 1); -init_esm13(); +// src/constants.ts +var API_BASE_URL = process.env.SC_API_BASE_URL || "https://screenpi.pe"; + +// src/utils/credentials.ts +import os from "os"; +import fs from "fs"; import path from "path"; +class Credentials { + static configDir = path.join(os.homedir(), ".screenpipe"); + static configFile = path.join(this.configDir, "config-developer.json"); + static getApiKey() { + try { + if (!fs.existsSync(this.configFile)) { + return null; + } + const config = JSON.parse(fs.readFileSync(this.configFile, "utf-8")); + return config.apiKey || null; + } catch (error) { + return null; + } + } + static setApiKey(apiKey, developerId) { + if (!fs.existsSync(this.configDir)) { + fs.mkdirSync(this.configDir); + } + fs.writeFileSync(this.configFile, JSON.stringify({ + apiKey, + developerId + }, null, 2)); + } + static clearCredentials() { + if (fs.existsSync(this.configFile)) { + fs.unlinkSync(this.configFile); + } + } +} + // node_modules/chalk/source/vendor/ansi-styles/index.js var ANSI_BACKGROUND_OFFSET = 10; var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`; @@ -52816,16 +52849,16 @@ var ansiStyles = assembleStyles(); var ansi_styles_default = ansiStyles; // node_modules/chalk/source/vendor/supports-color/index.js -import process4 from "node:process"; -import os from "node:os"; +import process2 from "node:process"; +import os2 from "node:os"; import tty from "node:tty"; -function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process4.argv) { +function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) { const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; const position = argv.indexOf(prefix + flag); const terminatorPosition = argv.indexOf("--"); return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); } -var { env } = process4; +var { env } = process2; var flagForceColor; if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { flagForceColor = 0; @@ -52881,15 +52914,15 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) { if (env.TERM === "dumb") { return min; } - if (process4.platform === "win32") { - const osRelease = os.release().split("."); + if (process2.platform === "win32") { + const osRelease = os2.release().split("."); if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { return Number(osRelease[2]) >= 14931 ? 3 : 2; } return 1; } if ("CI" in env) { - if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key2) => (key2 in env))) { + if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => (key in env))) { return 3; } if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") { @@ -53122,14 +53155,39 @@ var chalk = createChalk(); var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 }); var source_default = chalk; +// src/utils/colors.ts +var colors = { + primary: source_default.cyan, + success: source_default.green, + error: source_default.red, + warning: source_default.yellow, + info: source_default.blue, + dim: source_default.gray, + highlight: source_default.magenta, + bold: source_default.bold, + header: (text) => source_default.bold.cyan(` +${text}`), + subHeader: (text) => source_default.dim(`${text}`), + listItem: (text) => source_default.cyan(` * ${text}`), + label: (text) => source_default.bold.blue(`${text}:`), + value: (text) => source_default.white(`${text}`) +}; +var symbols = { + success: "+", + error: "x", + warning: "!", + info: "i", + arrow: ">" +}; + // node_modules/ora/index.js -import process10 from "node:process"; +import process9 from "node:process"; // node_modules/cli-cursor/index.js -import process6 from "node:process"; +import process5 from "node:process"; // node_modules/restore-cursor/index.js -import process5 from "node:process"; +import process4 from "node:process"; // node_modules/mimic-function/index.js var copyProperty = (to, from, property, ignoreNonConfigurable) => { @@ -53210,7 +53268,7 @@ var onetime_default = onetime; // node_modules/restore-cursor/index.js init_mjs(); -var terminal = process5.stderr.isTTY ? process5.stderr : process5.stdout.isTTY ? process5.stdout : undefined; +var terminal = process4.stderr.isTTY ? process4.stderr : process4.stdout.isTTY ? process4.stdout : undefined; var restoreCursor = terminal ? onetime_default(() => { onExit(() => { terminal.write("\x1B[?25h"); @@ -53222,14 +53280,14 @@ var restore_cursor_default = restoreCursor; // node_modules/cli-cursor/index.js var isHidden = false; var cliCursor = {}; -cliCursor.show = (writableStream = process6.stderr) => { +cliCursor.show = (writableStream = process5.stderr) => { if (!writableStream.isTTY) { return; } isHidden = false; writableStream.write("\x1B[?25h"); }; -cliCursor.hide = (writableStream = process6.stderr) => { +cliCursor.hide = (writableStream = process5.stderr) => { if (!writableStream.isTTY) { return; } @@ -53253,12 +53311,12 @@ var cli_cursor_default = cliCursor; var import_cli_spinners = __toESM(require_cli_spinners(), 1); // node_modules/log-symbols/node_modules/is-unicode-supported/index.js -import process7 from "node:process"; -function isUnicodeSupported2() { - if (process7.platform !== "win32") { - return process7.env.TERM !== "linux"; +import process6 from "node:process"; +function isUnicodeSupported() { + if (process6.platform !== "win32") { + return process6.env.TERM !== "linux"; } - return Boolean(process7.env.CI) || Boolean(process7.env.WT_SESSION) || Boolean(process7.env.TERMINUS_SUBLIME) || process7.env.ConEmuTask === "{cmd::Cmder}" || process7.env.TERM_PROGRAM === "Terminus-Sublime" || process7.env.TERM_PROGRAM === "vscode" || process7.env.TERM === "xterm-256color" || process7.env.TERM === "alacritty" || process7.env.TERMINAL_EMULATOR === "JetBrains-JediTerm"; + return Boolean(process6.env.CI) || Boolean(process6.env.WT_SESSION) || Boolean(process6.env.TERMINUS_SUBLIME) || process6.env.ConEmuTask === "{cmd::Cmder}" || process6.env.TERM_PROGRAM === "Terminus-Sublime" || process6.env.TERM_PROGRAM === "vscode" || process6.env.TERM === "xterm-256color" || process6.env.TERM === "alacritty" || process6.env.TERMINAL_EMULATOR === "JetBrains-JediTerm"; } // node_modules/log-symbols/index.js @@ -53274,7 +53332,7 @@ var fallback = { warning: source_default.yellow("ā€¼"), error: source_default.red("Ɨ") }; -var logSymbols = isUnicodeSupported2() ? main : fallback; +var logSymbols = isUnicodeSupported() ? main : fallback; var log_symbols_default = logSymbols; // node_modules/ansi-regex/index.js @@ -53289,7 +53347,7 @@ function ansiRegex({ onlyFirst = false } = {}) { // node_modules/strip-ansi/index.js var regex = ansiRegex(); -function stripAnsi2(string) { +function stripAnsi(string) { if (typeof string !== "string") { throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``); } @@ -53322,7 +53380,7 @@ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) { } // node_modules/string-width/index.js -var import_emoji_regex = __toESM(require_emoji_regex2(), 1); +var import_emoji_regex = __toESM(require_emoji_regex(), 1); var segmenter = new Intl.Segmenter; var defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u; function stringWidth(string, options = {}) { @@ -53334,7 +53392,7 @@ function stringWidth(string, options = {}) { countAnsiEscapeCodes = false } = options; if (!countAnsiEscapeCodes) { - string = stripAnsi2(string); + string = stripAnsi(string); } if (string.length === 0) { return 0; @@ -53376,18 +53434,18 @@ function isInteractive({ stream = process.stdout } = {}) { } // node_modules/is-unicode-supported/index.js -import process8 from "node:process"; -function isUnicodeSupported3() { - const { env: env2 } = process8; +import process7 from "node:process"; +function isUnicodeSupported2() { + const { env: env2 } = process7; const { TERM, TERM_PROGRAM } = env2; - if (process8.platform !== "win32") { + if (process7.platform !== "win32") { return TERM !== "linux"; } return Boolean(env2.WT_SESSION) || Boolean(env2.TERMINUS_SUBLIME) || env2.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env2.TERMINAL_EMULATOR === "JetBrains-JediTerm"; } // node_modules/stdin-discarder/index.js -import process9 from "node:process"; +import process8 from "node:process"; var ASCII_ETX_CODE = 3; class StdinDiscarder { @@ -53408,24 +53466,24 @@ class StdinDiscarder { } } #realStart() { - if (process9.platform === "win32" || !process9.stdin.isTTY) { + if (process8.platform === "win32" || !process8.stdin.isTTY) { return; } - process9.stdin.setRawMode(true); - process9.stdin.on("data", this.#handleInput); - process9.stdin.resume(); + process8.stdin.setRawMode(true); + process8.stdin.on("data", this.#handleInput); + process8.stdin.resume(); } #realStop() { - if (!process9.stdin.isTTY) { + if (!process8.stdin.isTTY) { return; } - process9.stdin.off("data", this.#handleInput); - process9.stdin.pause(); - process9.stdin.setRawMode(false); + process8.stdin.off("data", this.#handleInput); + process8.stdin.pause(); + process8.stdin.setRawMode(false); } #handleInput(chunk) { if (chunk[0] === ASCII_ETX_CODE) { - process9.emit("SIGINT"); + process8.emit("SIGINT"); } } } @@ -53461,7 +53519,7 @@ class Ora { } this.#options = { color: "cyan", - stream: process10.stderr, + stream: process9.stderr, discardStdin: true, hideCursor: true, ...options @@ -53476,7 +53534,7 @@ class Ora { this.prefixText = this.#options.prefixText; this.suffixText = this.#options.suffixText; this.indent = this.#options.indent; - if (process10.env.NODE_ENV === "test") { + if (process9.env.NODE_ENV === "test") { this._stream = this.#stream; this._isEnabled = this.#isEnabled; Object.defineProperty(this, "_linesToClear", { @@ -53523,7 +53581,7 @@ class Ora { throw new Error("The given spinner must have a `frames` property"); } this.#spinner = spinner; - } else if (!isUnicodeSupported3()) { + } else if (!isUnicodeSupported2()) { this.#spinner = import_cli_spinners.default.line; } else if (spinner === undefined) { this.#spinner = import_cli_spinners.default.dots; @@ -53581,7 +53639,7 @@ class Ora { const fullSuffixText = this.#getFullSuffixText(this.#suffixText, "-"); const fullText = " ".repeat(this.#indent) + fullPrefixText + "--" + this.#text + "--" + fullSuffixText; this.#lineCount = 0; - for (const line of stripAnsi2(fullText).split(` + for (const line of stripAnsi(fullText).split(` `)) { this.#lineCount += Math.max(1, Math.ceil(stringWidth(line, { countAnsiEscapeCodes: true }) / columns)); } @@ -53608,8219 +53666,8614 @@ class Ora { const now = Date.now(); if (this.#frameIndex === -1 || now - this.#lastSpinnerFrameTime >= this.interval) { this.#frameIndex = ++this.#frameIndex % this.#spinner.frames.length; - this.#lastSpinnerFrameTime = now; - } - const { frames } = this.#spinner; - let frame = frames[this.#frameIndex]; - if (this.color) { - frame = source_default[this.color](frame); - } - const fullPrefixText = typeof this.#prefixText === "string" && this.#prefixText !== "" ? this.#prefixText + " " : ""; - const fullText = typeof this.text === "string" ? " " + this.text : ""; - const fullSuffixText = typeof this.#suffixText === "string" && this.#suffixText !== "" ? " " + this.#suffixText : ""; - return fullPrefixText + frame + fullText + fullSuffixText; - } - clear() { - if (!this.#isEnabled || !this.#stream.isTTY) { - return this; - } - this.#stream.cursorTo(0); - for (let index = 0;index < this.#linesToClear; index++) { - if (index > 0) { - this.#stream.moveCursor(0, -1); - } - this.#stream.clearLine(1); - } - if (this.#indent || this.lastIndent !== this.#indent) { - this.#stream.cursorTo(this.#indent); - } - this.lastIndent = this.#indent; - this.#linesToClear = 0; - return this; - } - render() { - if (this.#isSilent) { - return this; - } - this.clear(); - this.#stream.write(this.frame()); - this.#linesToClear = this.#lineCount; - return this; - } - start(text) { - if (text) { - this.text = text; - } - if (this.#isSilent) { - return this; - } - if (!this.#isEnabled) { - if (this.text) { - this.#stream.write(`- ${this.text} -`); - } - return this; - } - if (this.isSpinning) { - return this; - } - if (this.#options.hideCursor) { - cli_cursor_default.hide(this.#stream); - } - if (this.#options.discardStdin && process10.stdin.isTTY) { - this.#isDiscardingStdin = true; - stdin_discarder_default.start(); - } - this.render(); - this.#id = setInterval(this.render.bind(this), this.interval); - return this; - } - stop() { - if (!this.#isEnabled) { - return this; - } - clearInterval(this.#id); - this.#id = undefined; - this.#frameIndex = 0; - this.clear(); - if (this.#options.hideCursor) { - cli_cursor_default.show(this.#stream); - } - if (this.#options.discardStdin && process10.stdin.isTTY && this.#isDiscardingStdin) { - stdin_discarder_default.stop(); - this.#isDiscardingStdin = false; - } - return this; - } - succeed(text) { - return this.stopAndPersist({ symbol: log_symbols_default.success, text }); - } - fail(text) { - return this.stopAndPersist({ symbol: log_symbols_default.error, text }); - } - warn(text) { - return this.stopAndPersist({ symbol: log_symbols_default.warning, text }); - } - info(text) { - return this.stopAndPersist({ symbol: log_symbols_default.info, text }); - } - stopAndPersist(options = {}) { - if (this.#isSilent) { - return this; - } - const prefixText = options.prefixText ?? this.#prefixText; - const fullPrefixText = this.#getFullPrefixText(prefixText, " "); - const symbolText = options.symbol ?? " "; - const text = options.text ?? this.text; - const separatorText = symbolText ? " " : ""; - const fullText = typeof text === "string" ? separatorText + text : ""; - const suffixText = options.suffixText ?? this.#suffixText; - const fullSuffixText = this.#getFullSuffixText(suffixText, " "); - const textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + ` -`; - this.stop(); - this.#stream.write(textToWrite); - return this; - } -} -function ora(options) { - return new Ora(options); -} - -// src/utils/colors.ts -var colors8 = { - primary: source_default.cyan, - success: source_default.green, - error: source_default.red, - warning: source_default.yellow, - info: source_default.blue, - dim: source_default.gray, - highlight: source_default.magenta, - bold: source_default.bold, - header: (text) => source_default.bold.cyan(` -${text}`), - subHeader: (text) => source_default.dim(`${text}`), - listItem: (text) => source_default.cyan(` * ${text}`), - label: (text) => source_default.bold.blue(`${text}:`), - value: (text) => source_default.white(`${text}`) -}; -var symbols = { - success: "+", - error: "x", - warning: "!", - info: "i", - arrow: ">" -}; - -// src/commands/components/commands/add/utils/logger.ts -var highlighter = { - error: colors8.error, - warn: colors8.warning, - info: colors8.info, - success: colors8.success -}; -var logger = { - error(...args) { - console.log(highlighter.error(args.join(" ").toLowerCase())); - }, - warn(...args) { - console.log(highlighter.warn(args.join(" ").toLowerCase())); - }, - info(...args) { - console.log(highlighter.info(args.join(" ").toLowerCase())); - }, - success(...args) { - console.log(highlighter.success(args.join(" ").toLowerCase())); - }, - log(...args) { - console.log(args.join(" ").toLowerCase()); - }, - break() { - console.log(""); - } -}; -function spinner(text, options) { - return ora({ - text, - isSilent: options?.silent - }); -} - -// node_modules/simple-git/dist/esm/index.js -var import_file_exists = __toESM(require_dist(), 1); -var import_debug = __toESM(require_src(), 1); -var import_promise_deferred = __toESM(require_dist2(), 1); -var import_promise_deferred2 = __toESM(require_dist2(), 1); -import { spawn } from "child_process"; -import { EventEmitter } from "node:events"; -var __defProp2 = Object.defineProperty; -var __defProps = Object.defineProperties; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropDescs = Object.getOwnPropertyDescriptors; -var __getOwnPropNames2 = Object.getOwnPropertyNames; -var __getOwnPropSymbols = Object.getOwnPropertySymbols; -var __hasOwnProp2 = Object.prototype.hasOwnProperty; -var __propIsEnum = Object.prototype.propertyIsEnumerable; -var __defNormalProp = (obj, key2, value) => (key2 in obj) ? __defProp2(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; -var __spreadValues = (a, b) => { - for (var prop in b || (b = {})) - if (__hasOwnProp2.call(b, prop)) - __defNormalProp(a, prop, b[prop]); - if (__getOwnPropSymbols) - for (var prop of __getOwnPropSymbols(b)) { - if (__propIsEnum.call(b, prop)) - __defNormalProp(a, prop, b[prop]); - } - return a; -}; -var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); -var __esm2 = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; -}; -var __commonJS2 = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __export2 = (target, all) => { - for (var name in all) - __defProp2(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key2 of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key2) && key2 !== except) - __defProp2(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod); -var __async = (__this, __arguments, generator) => { - return new Promise((resolve, reject) => { - var fulfilled = (value) => { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - }; - var rejected = (value) => { - try { - step(generator.throw(value)); - } catch (e) { - reject(e); - } - }; - var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); - step((generator = generator.apply(__this, __arguments)).next()); - }); -}; -function pathspec(...paths) { - const key2 = new String(paths); - cache.set(key2, paths); - return key2; -} -function isPathSpec(path) { - return path instanceof String && cache.has(path); -} -function toPaths(pathSpec) { - return cache.get(pathSpec) || []; -} -var cache; -var init_pathspec = __esm2({ - "src/lib/args/pathspec.ts"() { - cache = /* @__PURE__ */ new WeakMap; - } -}); -var GitError; -var init_git_error = __esm2({ - "src/lib/errors/git-error.ts"() { - GitError = class extends Error { - constructor(task, message) { - super(message); - this.task = task; - Object.setPrototypeOf(this, new.target.prototype); - } - }; - } -}); -var GitResponseError; -var init_git_response_error = __esm2({ - "src/lib/errors/git-response-error.ts"() { - init_git_error(); - GitResponseError = class extends GitError { - constructor(git, message) { - super(undefined, message || String(git)); - this.git = git; - } - }; - } -}); -var TaskConfigurationError; -var init_task_configuration_error = __esm2({ - "src/lib/errors/task-configuration-error.ts"() { - init_git_error(); - TaskConfigurationError = class extends GitError { - constructor(message) { - super(undefined, message); - } - }; - } -}); -function asFunction(source) { - return typeof source === "function" ? source : NOOP; -} -function isUserFunction(source) { - return typeof source === "function" && source !== NOOP; -} -function splitOn(input, char) { - const index = input.indexOf(char); - if (index <= 0) { - return [input, ""]; - } - return [input.substr(0, index), input.substr(index + 1)]; -} -function first(input, offset = 0) { - return isArrayLike(input) && input.length > offset ? input[offset] : undefined; -} -function last(input, offset = 0) { - if (isArrayLike(input) && input.length > offset) { - return input[input.length - 1 - offset]; - } -} -function isArrayLike(input) { - return !!(input && typeof input.length === "number"); -} -function toLinesWithContent(input = "", trimmed2 = true, separator = ` -`) { - return input.split(separator).reduce((output, line) => { - const lineContent = trimmed2 ? line.trim() : line; - if (lineContent) { - output.push(lineContent); - } - return output; - }, []); -} -function forEachLineWithContent(input, callback) { - return toLinesWithContent(input, true).map((line) => callback(line)); -} -function folderExists(path) { - return import_file_exists.exists(path, import_file_exists.FOLDER); -} -function append(target, item) { - if (Array.isArray(target)) { - if (!target.includes(item)) { - target.push(item); - } - } else { - target.add(item); - } - return item; -} -function including(target, item) { - if (Array.isArray(target) && !target.includes(item)) { - target.push(item); - } - return target; -} -function remove(target, item) { - if (Array.isArray(target)) { - const index = target.indexOf(item); - if (index >= 0) { - target.splice(index, 1); - } - } else { - target.delete(item); - } - return item; -} -function asArray(source) { - return Array.isArray(source) ? source : [source]; -} -function asCamelCase(str) { - return str.replace(/[\s-]+(.)/g, (_all, chr) => { - return chr.toUpperCase(); - }); -} -function asStringArray(source) { - return asArray(source).map(String); -} -function asNumber(source, onNaN = 0) { - if (source == null) { - return onNaN; - } - const num = parseInt(source, 10); - return isNaN(num) ? onNaN : num; -} -function prefixedArray(input, prefix) { - const output = []; - for (let i = 0, max = input.length;i < max; i++) { - output.push(prefix, input[i]); - } - return output; -} -function bufferToString(input) { - return (Array.isArray(input) ? Buffer.concat(input) : input).toString("utf-8"); -} -function pick(source, properties) { - return Object.assign({}, ...properties.map((property) => (property in source) ? { [property]: source[property] } : {})); -} -function delay(duration = 0) { - return new Promise((done) => setTimeout(done, duration)); -} -function orVoid(input) { - if (input === false) { - return; - } - return input; -} -var NULL; -var NOOP; -var objectToString; -var init_util = __esm2({ - "src/lib/utils/util.ts"() { - NULL = "\x00"; - NOOP = () => { - }; - objectToString = Object.prototype.toString.call.bind(Object.prototype.toString); - } -}); -function filterType(input, filter, def) { - if (filter(input)) { - return input; - } - return arguments.length > 2 ? def : undefined; -} -function filterPrimitives(input, omit) { - const type = isPathSpec(input) ? "string" : typeof input; - return /number|string|boolean/.test(type) && (!omit || !omit.includes(type)); -} -function filterPlainObject(input) { - return !!input && objectToString(input) === "[object Object]"; -} -function filterFunction(input) { - return typeof input === "function"; -} -var filterArray; -var filterString; -var filterStringArray; -var filterStringOrStringArray; -var filterHasLength; -var init_argument_filters = __esm2({ - "src/lib/utils/argument-filters.ts"() { - init_util(); - init_pathspec(); - filterArray = (input) => { - return Array.isArray(input); - }; - filterString = (input) => { - return typeof input === "string"; - }; - filterStringArray = (input) => { - return Array.isArray(input) && input.every(filterString); - }; - filterStringOrStringArray = (input) => { - return filterString(input) || Array.isArray(input) && input.every(filterString); - }; - filterHasLength = (input) => { - if (input == null || "number|boolean|function".includes(typeof input)) { - return false; - } - return Array.isArray(input) || typeof input === "string" || typeof input.length === "number"; - }; - } -}); -var ExitCodes; -var init_exit_codes = __esm2({ - "src/lib/utils/exit-codes.ts"() { - ExitCodes = /* @__PURE__ */ ((ExitCodes2) => { - ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS"; - ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR"; - ExitCodes2[ExitCodes2["NOT_FOUND"] = -2] = "NOT_FOUND"; - ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN"; - return ExitCodes2; - })(ExitCodes || {}); - } -}); -var GitOutputStreams; -var init_git_output_streams = __esm2({ - "src/lib/utils/git-output-streams.ts"() { - GitOutputStreams = class { - constructor(stdOut, stdErr) { - this.stdOut = stdOut; - this.stdErr = stdErr; - } - asStrings() { - return new GitOutputStreams(this.stdOut.toString("utf8"), this.stdErr.toString("utf8")); - } - }; + this.#lastSpinnerFrameTime = now; + } + const { frames } = this.#spinner; + let frame = frames[this.#frameIndex]; + if (this.color) { + frame = source_default[this.color](frame); + } + const fullPrefixText = typeof this.#prefixText === "string" && this.#prefixText !== "" ? this.#prefixText + " " : ""; + const fullText = typeof this.text === "string" ? " " + this.text : ""; + const fullSuffixText = typeof this.#suffixText === "string" && this.#suffixText !== "" ? " " + this.#suffixText : ""; + return fullPrefixText + frame + fullText + fullSuffixText; } -}); -var LineParser; -var RemoteLineParser; -var init_line_parser = __esm2({ - "src/lib/utils/line-parser.ts"() { - LineParser = class { - constructor(regExp, useMatches) { - this.matches = []; - this.parse = (line, target) => { - this.resetMatches(); - if (!this._regExp.every((reg, index) => this.addMatch(reg, index, line(index)))) { - return false; - } - return this.useMatches(target, this.prepareMatches()) !== false; - }; - this._regExp = Array.isArray(regExp) ? regExp : [regExp]; - if (useMatches) { - this.useMatches = useMatches; - } - } - useMatches(target, match) { - throw new Error(`LineParser:useMatches not implemented`); - } - resetMatches() { - this.matches.length = 0; - } - prepareMatches() { - return this.matches; - } - addMatch(reg, index, line) { - const matched = line && reg.exec(line); - if (matched) { - this.pushMatch(index, matched); - } - return !!matched; - } - pushMatch(_index, matched) { - this.matches.push(...matched.slice(1)); - } - }; - RemoteLineParser = class extends LineParser { - addMatch(reg, index, line) { - return /^remote:\s/.test(String(line)) && super.addMatch(reg, index, line); - } - pushMatch(index, matched) { - if (index > 0 || matched.length > 1) { - super.pushMatch(index, matched); - } + clear() { + if (!this.#isEnabled || !this.#stream.isTTY) { + return this; + } + this.#stream.cursorTo(0); + for (let index = 0;index < this.#linesToClear; index++) { + if (index > 0) { + this.#stream.moveCursor(0, -1); } - }; + this.#stream.clearLine(1); + } + if (this.#indent || this.lastIndent !== this.#indent) { + this.#stream.cursorTo(this.#indent); + } + this.lastIndent = this.#indent; + this.#linesToClear = 0; + return this; } -}); -function createInstanceConfig(...options) { - const baseDir = process.cwd(); - const config = Object.assign(__spreadValues({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o)); - config.baseDir = config.baseDir || baseDir; - config.trimmed = config.trimmed === true; - return config; -} -var defaultOptions; -var init_simple_git_options = __esm2({ - "src/lib/utils/simple-git-options.ts"() { - defaultOptions = { - binary: "git", - maxConcurrentProcesses: 5, - config: [], - trimmed: false - }; + render() { + if (this.#isSilent) { + return this; + } + this.clear(); + this.#stream.write(this.frame()); + this.#linesToClear = this.#lineCount; + return this; } -}); -function appendTaskOptions(options, commands = []) { - if (!filterPlainObject(options)) { - return commands; + start(text) { + if (text) { + this.text = text; + } + if (this.#isSilent) { + return this; + } + if (!this.#isEnabled) { + if (this.text) { + this.#stream.write(`- ${this.text} +`); + } + return this; + } + if (this.isSpinning) { + return this; + } + if (this.#options.hideCursor) { + cli_cursor_default.hide(this.#stream); + } + if (this.#options.discardStdin && process9.stdin.isTTY) { + this.#isDiscardingStdin = true; + stdin_discarder_default.start(); + } + this.render(); + this.#id = setInterval(this.render.bind(this), this.interval); + return this; } - return Object.keys(options).reduce((commands2, key2) => { - const value = options[key2]; - if (isPathSpec(value)) { - commands2.push(value); - } else if (filterPrimitives(value, ["boolean"])) { - commands2.push(key2 + "=" + value); - } else { - commands2.push(key2); + stop() { + if (!this.#isEnabled) { + return this; } - return commands2; - }, commands); -} -function getTrailingOptions(args, initialPrimitive = 0, objectOnly = false) { - const command = []; - for (let i = 0, max = initialPrimitive < 0 ? args.length : initialPrimitive;i < max; i++) { - if ("string|number".includes(typeof args[i])) { - command.push(String(args[i])); + clearInterval(this.#id); + this.#id = undefined; + this.#frameIndex = 0; + this.clear(); + if (this.#options.hideCursor) { + cli_cursor_default.show(this.#stream); } + if (this.#options.discardStdin && process9.stdin.isTTY && this.#isDiscardingStdin) { + stdin_discarder_default.stop(); + this.#isDiscardingStdin = false; + } + return this; } - appendTaskOptions(trailingOptionsArgument(args), command); - if (!objectOnly) { - command.push(...trailingArrayArgument(args)); + succeed(text) { + return this.stopAndPersist({ symbol: log_symbols_default.success, text }); + } + fail(text) { + return this.stopAndPersist({ symbol: log_symbols_default.error, text }); + } + warn(text) { + return this.stopAndPersist({ symbol: log_symbols_default.warning, text }); + } + info(text) { + return this.stopAndPersist({ symbol: log_symbols_default.info, text }); + } + stopAndPersist(options = {}) { + if (this.#isSilent) { + return this; + } + const prefixText = options.prefixText ?? this.#prefixText; + const fullPrefixText = this.#getFullPrefixText(prefixText, " "); + const symbolText = options.symbol ?? " "; + const text = options.text ?? this.text; + const separatorText = symbolText ? " " : ""; + const fullText = typeof text === "string" ? separatorText + text : ""; + const suffixText = options.suffixText ?? this.#suffixText; + const fullSuffixText = this.#getFullSuffixText(suffixText, " "); + const textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + ` +`; + this.stop(); + this.#stream.write(textToWrite); + return this; } - return command; -} -function trailingArrayArgument(args) { - const hasTrailingCallback = typeof last(args) === "function"; - return filterType(last(args, hasTrailingCallback ? 1 : 0), filterArray, []); -} -function trailingOptionsArgument(args) { - const hasTrailingCallback = filterFunction(last(args)); - return filterType(last(args, hasTrailingCallback ? 1 : 0), filterPlainObject); } -function trailingFunctionArgument(args, includeNoop = true) { - const callback = asFunction(last(args)); - return includeNoop || isUserFunction(callback) ? callback : undefined; +function ora(options) { + return new Ora(options); } -var init_task_options = __esm2({ - "src/lib/utils/task-options.ts"() { - init_argument_filters(); - init_util(); - init_pathspec(); + +// src/commands/components/commands/add/utils/logger.ts +var highlighter = { + error: colors.error, + warn: colors.warning, + info: colors.info, + success: colors.success +}; +var logger = { + error(...args) { + console.log(highlighter.error(args.join(" ").toLowerCase())); + }, + warn(...args) { + console.log(highlighter.warn(args.join(" ").toLowerCase())); + }, + info(...args) { + console.log(highlighter.info(args.join(" ").toLowerCase())); + }, + success(...args) { + console.log(highlighter.success(args.join(" ").toLowerCase())); + }, + log(...args) { + console.log(args.join(" ").toLowerCase()); + }, + break() { + console.log(""); } -}); -function callTaskParser(parser4, streams) { - return parser4(streams.stdOut, streams.stdErr); -} -function parseStringResponse(result, parsers12, texts, trim = true) { - asArray(texts).forEach((text) => { - for (let lines2 = toLinesWithContent(text, trim), i = 0, max = lines2.length;i < max; i++) { - const line = (offset = 0) => { - if (i + offset >= max) { - return; - } - return lines2[i + offset]; - }; - parsers12.some(({ parse }) => parse(line, result)); - } +}; +function spinner(text, options) { + return ora({ + text, + isSilent: options?.silent }); - return result; } -var init_task_parser = __esm2({ - "src/lib/utils/task-parser.ts"() { - init_util(); - } -}); -var utils_exports = {}; -__export2(utils_exports, { - ExitCodes: () => ExitCodes, - GitOutputStreams: () => GitOutputStreams, - LineParser: () => LineParser, - NOOP: () => NOOP, - NULL: () => NULL, - RemoteLineParser: () => RemoteLineParser, - append: () => append, - appendTaskOptions: () => appendTaskOptions, - asArray: () => asArray, - asCamelCase: () => asCamelCase, - asFunction: () => asFunction, - asNumber: () => asNumber, - asStringArray: () => asStringArray, - bufferToString: () => bufferToString, - callTaskParser: () => callTaskParser, - createInstanceConfig: () => createInstanceConfig, - delay: () => delay, - filterArray: () => filterArray, - filterFunction: () => filterFunction, - filterHasLength: () => filterHasLength, - filterPlainObject: () => filterPlainObject, - filterPrimitives: () => filterPrimitives, - filterString: () => filterString, - filterStringArray: () => filterStringArray, - filterStringOrStringArray: () => filterStringOrStringArray, - filterType: () => filterType, - first: () => first, - folderExists: () => folderExists, - forEachLineWithContent: () => forEachLineWithContent, - getTrailingOptions: () => getTrailingOptions, - including: () => including, - isUserFunction: () => isUserFunction, - last: () => last, - objectToString: () => objectToString, - orVoid: () => orVoid, - parseStringResponse: () => parseStringResponse, - pick: () => pick, - prefixedArray: () => prefixedArray, - remove: () => remove, - splitOn: () => splitOn, - toLinesWithContent: () => toLinesWithContent, - trailingFunctionArgument: () => trailingFunctionArgument, - trailingOptionsArgument: () => trailingOptionsArgument -}); -var init_utils2 = __esm2({ - "src/lib/utils/index.ts"() { - init_argument_filters(); - init_exit_codes(); - init_git_output_streams(); - init_line_parser(); - init_simple_git_options(); - init_task_options(); - init_task_parser(); - init_util(); + +// node_modules/zod/lib/index.mjs +var util; +(function(util2) { + util2.assertEqual = (val) => val; + function assertIs(_arg) { } -}); -var check_is_repo_exports = {}; -__export2(check_is_repo_exports, { - CheckRepoActions: () => CheckRepoActions, - checkIsBareRepoTask: () => checkIsBareRepoTask, - checkIsRepoRootTask: () => checkIsRepoRootTask, - checkIsRepoTask: () => checkIsRepoTask -}); -function checkIsRepoTask(action) { - switch (action) { - case "bare": - return checkIsBareRepoTask(); - case "root": - return checkIsRepoRootTask(); + util2.assertIs = assertIs; + function assertNever(_x) { + throw new Error; } - const commands = ["rev-parse", "--is-inside-work-tree"]; - return { - commands, - format: "utf-8", - onError, - parser + util2.assertNever = assertNever; + util2.arrayToEnum = (items) => { + const obj = {}; + for (const item of items) { + obj[item] = item; + } + return obj; }; -} -function checkIsRepoRootTask() { - const commands = ["rev-parse", "--git-dir"]; - return { - commands, - format: "utf-8", - onError, - parser(path) { - return /^\.(git)?$/.test(path.trim()); + util2.getValidEnumValues = (obj) => { + const validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number"); + const filtered = {}; + for (const k of validKeys) { + filtered[k] = obj[k]; } + return util2.objectValues(filtered); }; -} -function checkIsBareRepoTask() { - const commands = ["rev-parse", "--is-bare-repository"]; - return { - commands, - format: "utf-8", - onError, - parser + util2.objectValues = (obj) => { + return util2.objectKeys(obj).map(function(e) { + return obj[e]; + }); }; -} -function isNotRepoMessage(error) { - return /(Not a git repository|Kein Git-Repository)/i.test(String(error)); -} -var CheckRepoActions; -var onError; -var parser; -var init_check_is_repo = __esm2({ - "src/lib/tasks/check-is-repo.ts"() { - init_utils2(); - CheckRepoActions = /* @__PURE__ */ ((CheckRepoActions2) => { - CheckRepoActions2["BARE"] = "bare"; - CheckRepoActions2["IN_TREE"] = "tree"; - CheckRepoActions2["IS_REPO_ROOT"] = "root"; - return CheckRepoActions2; - })(CheckRepoActions || {}); - onError = ({ exitCode }, error, done, fail) => { - if (exitCode === 128 && isNotRepoMessage(error)) { - return done(Buffer.from("false")); + util2.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => { + const keys = []; + for (const key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + keys.push(key); } - fail(error); + } + return keys; + }; + util2.find = (arr, checker) => { + for (const item of arr) { + if (checker(item)) + return item; + } + return; + }; + util2.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val; + function joinValues(array, separator = " | ") { + return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator); + } + util2.joinValues = joinValues; + util2.jsonStringifyReplacer = (_2, value) => { + if (typeof value === "bigint") { + return value.toString(); + } + return value; + }; +})(util || (util = {})); +var objectUtil; +(function(objectUtil2) { + objectUtil2.mergeShapes = (first, second) => { + return { + ...first, + ...second + }; + }; +})(objectUtil || (objectUtil = {})); +var ZodParsedType = util.arrayToEnum([ + "string", + "nan", + "number", + "integer", + "float", + "boolean", + "date", + "bigint", + "symbol", + "function", + "undefined", + "null", + "array", + "object", + "unknown", + "promise", + "void", + "never", + "map", + "set" +]); +var getParsedType = (data) => { + const t = typeof data; + switch (t) { + case "undefined": + return ZodParsedType.undefined; + case "string": + return ZodParsedType.string; + case "number": + return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number; + case "boolean": + return ZodParsedType.boolean; + case "function": + return ZodParsedType.function; + case "bigint": + return ZodParsedType.bigint; + case "symbol": + return ZodParsedType.symbol; + case "object": + if (Array.isArray(data)) { + return ZodParsedType.array; + } + if (data === null) { + return ZodParsedType.null; + } + if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { + return ZodParsedType.promise; + } + if (typeof Map !== "undefined" && data instanceof Map) { + return ZodParsedType.map; + } + if (typeof Set !== "undefined" && data instanceof Set) { + return ZodParsedType.set; + } + if (typeof Date !== "undefined" && data instanceof Date) { + return ZodParsedType.date; + } + return ZodParsedType.object; + default: + return ZodParsedType.unknown; + } +}; +var ZodIssueCode = util.arrayToEnum([ + "invalid_type", + "invalid_literal", + "custom", + "invalid_union", + "invalid_union_discriminator", + "invalid_enum_value", + "unrecognized_keys", + "invalid_arguments", + "invalid_return_type", + "invalid_date", + "invalid_string", + "too_small", + "too_big", + "invalid_intersection_types", + "not_multiple_of", + "not_finite" +]); +var quotelessJson = (obj) => { + const json = JSON.stringify(obj, null, 2); + return json.replace(/"([^"]+)":/g, "$1:"); +}; + +class ZodError extends Error { + get errors() { + return this.issues; + } + constructor(issues) { + super(); + this.issues = []; + this.addIssue = (sub) => { + this.issues = [...this.issues, sub]; }; - parser = (text) => { - return text.trim() === "true"; + this.addIssues = (subs = []) => { + this.issues = [...this.issues, ...subs]; }; + const actualProto = new.target.prototype; + if (Object.setPrototypeOf) { + Object.setPrototypeOf(this, actualProto); + } else { + this.__proto__ = actualProto; + } + this.name = "ZodError"; + this.issues = issues; } -}); -function cleanSummaryParser(dryRun, text) { - const summary = new CleanResponse(dryRun); - const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp; - toLinesWithContent(text).forEach((line) => { - const removed = line.replace(regexp, ""); - summary.paths.push(removed); - (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed); - }); - return summary; -} -var CleanResponse; -var removalRegexp; -var dryRunRemovalRegexp; -var isFolderRegexp; -var init_CleanSummary = __esm2({ - "src/lib/responses/CleanSummary.ts"() { - init_utils2(); - CleanResponse = class { - constructor(dryRun) { - this.dryRun = dryRun; - this.paths = []; - this.files = []; - this.folders = []; + format(_mapper) { + const mapper = _mapper || function(issue) { + return issue.message; + }; + const fieldErrors = { _errors: [] }; + const processError = (error) => { + for (const issue of error.issues) { + if (issue.code === "invalid_union") { + issue.unionErrors.map(processError); + } else if (issue.code === "invalid_return_type") { + processError(issue.returnTypeError); + } else if (issue.code === "invalid_arguments") { + processError(issue.argumentsError); + } else if (issue.path.length === 0) { + fieldErrors._errors.push(mapper(issue)); + } else { + let curr = fieldErrors; + let i = 0; + while (i < issue.path.length) { + const el = issue.path[i]; + const terminal2 = i === issue.path.length - 1; + if (!terminal2) { + curr[el] = curr[el] || { _errors: [] }; + } else { + curr[el] = curr[el] || { _errors: [] }; + curr[el]._errors.push(mapper(issue)); + } + curr = curr[el]; + i++; + } + } } }; - removalRegexp = /^[a-z]+\s*/i; - dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i; - isFolderRegexp = /\/$/; + processError(this); + return fieldErrors; } -}); -var task_exports = {}; -__export2(task_exports, { - EMPTY_COMMANDS: () => EMPTY_COMMANDS, - adhocExecTask: () => adhocExecTask, - configurationErrorTask: () => configurationErrorTask, - isBufferTask: () => isBufferTask, - isEmptyTask: () => isEmptyTask, - straightThroughBufferTask: () => straightThroughBufferTask, - straightThroughStringTask: () => straightThroughStringTask -}); -function adhocExecTask(parser4) { - return { - commands: EMPTY_COMMANDS, - format: "empty", - parser: parser4 - }; -} -function configurationErrorTask(error) { - return { - commands: EMPTY_COMMANDS, - format: "empty", - parser() { - throw typeof error === "string" ? new TaskConfigurationError(error) : error; - } - }; -} -function straightThroughStringTask(commands, trimmed2 = false) { - return { - commands, - format: "utf-8", - parser(text) { - return trimmed2 ? String(text).trim() : text; - } - }; -} -function straightThroughBufferTask(commands) { - return { - commands, - format: "buffer", - parser(buffer) { - return buffer; + static assert(value) { + if (!(value instanceof ZodError)) { + throw new Error(`Not a ZodError: ${value}`); } - }; -} -function isBufferTask(task) { - return task.format === "buffer"; -} -function isEmptyTask(task) { - return task.format === "empty" || !task.commands.length; -} -var EMPTY_COMMANDS; -var init_task = __esm2({ - "src/lib/tasks/task.ts"() { - init_task_configuration_error(); - EMPTY_COMMANDS = []; } -}); -var clean_exports = {}; -__export2(clean_exports, { - CONFIG_ERROR_INTERACTIVE_MODE: () => CONFIG_ERROR_INTERACTIVE_MODE, - CONFIG_ERROR_MODE_REQUIRED: () => CONFIG_ERROR_MODE_REQUIRED, - CONFIG_ERROR_UNKNOWN_OPTION: () => CONFIG_ERROR_UNKNOWN_OPTION, - CleanOptions: () => CleanOptions, - cleanTask: () => cleanTask, - cleanWithOptionsTask: () => cleanWithOptionsTask, - isCleanOptionsArray: () => isCleanOptionsArray -}); -function cleanWithOptionsTask(mode, customArgs) { - const { cleanMode, options, valid } = getCleanOptions(mode); - if (!cleanMode) { - return configurationErrorTask(CONFIG_ERROR_MODE_REQUIRED); + toString() { + return this.message; } - if (!valid.options) { - return configurationErrorTask(CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode)); + get message() { + return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2); } - options.push(...customArgs); - if (options.some(isInteractiveMode)) { - return configurationErrorTask(CONFIG_ERROR_INTERACTIVE_MODE); + get isEmpty() { + return this.issues.length === 0; } - return cleanTask(cleanMode, options); -} -function cleanTask(mode, customArgs) { - const commands = ["clean", `-${mode}`, ...customArgs]; - return { - commands, - format: "utf-8", - parser(text) { - return cleanSummaryParser(mode === "n", text); + flatten(mapper = (issue) => issue.message) { + const fieldErrors = {}; + const formErrors = []; + for (const sub of this.issues) { + if (sub.path.length > 0) { + fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || []; + fieldErrors[sub.path[0]].push(mapper(sub)); + } else { + formErrors.push(mapper(sub)); + } } - }; + return { formErrors, fieldErrors }; + } + get formErrors() { + return this.flatten(); + } } -function isCleanOptionsArray(input) { - return Array.isArray(input) && input.every((test) => CleanOptionValues.has(test)); +ZodError.create = (issues) => { + const error = new ZodError(issues); + return error; +}; +var errorMap = (issue, _ctx) => { + let message; + switch (issue.code) { + case ZodIssueCode.invalid_type: + if (issue.received === ZodParsedType.undefined) { + message = "Required"; + } else { + message = `Expected ${issue.expected}, received ${issue.received}`; + } + break; + case ZodIssueCode.invalid_literal: + message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`; + break; + case ZodIssueCode.unrecognized_keys: + message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`; + break; + case ZodIssueCode.invalid_union: + message = `Invalid input`; + break; + case ZodIssueCode.invalid_union_discriminator: + message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`; + break; + case ZodIssueCode.invalid_enum_value: + message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`; + break; + case ZodIssueCode.invalid_arguments: + message = `Invalid function arguments`; + break; + case ZodIssueCode.invalid_return_type: + message = `Invalid function return type`; + break; + case ZodIssueCode.invalid_date: + message = `Invalid date`; + break; + case ZodIssueCode.invalid_string: + if (typeof issue.validation === "object") { + if ("includes" in issue.validation) { + message = `Invalid input: must include "${issue.validation.includes}"`; + if (typeof issue.validation.position === "number") { + message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`; + } + } else if ("startsWith" in issue.validation) { + message = `Invalid input: must start with "${issue.validation.startsWith}"`; + } else if ("endsWith" in issue.validation) { + message = `Invalid input: must end with "${issue.validation.endsWith}"`; + } else { + util.assertNever(issue.validation); + } + } else if (issue.validation !== "regex") { + message = `Invalid ${issue.validation}`; + } else { + message = "Invalid"; + } + break; + case ZodIssueCode.too_small: + if (issue.type === "array") + message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`; + else if (issue.type === "string") + message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`; + else if (issue.type === "number") + message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`; + else if (issue.type === "date") + message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`; + else + message = "Invalid input"; + break; + case ZodIssueCode.too_big: + if (issue.type === "array") + message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`; + else if (issue.type === "string") + message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`; + else if (issue.type === "number") + message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; + else if (issue.type === "bigint") + message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; + else if (issue.type === "date") + message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`; + else + message = "Invalid input"; + break; + case ZodIssueCode.custom: + message = `Invalid input`; + break; + case ZodIssueCode.invalid_intersection_types: + message = `Intersection results could not be merged`; + break; + case ZodIssueCode.not_multiple_of: + message = `Number must be a multiple of ${issue.multipleOf}`; + break; + case ZodIssueCode.not_finite: + message = "Number must be finite"; + break; + default: + message = _ctx.defaultError; + util.assertNever(issue); + } + return { message }; +}; +var overrideErrorMap = errorMap; +function setErrorMap(map) { + overrideErrorMap = map; } -function getCleanOptions(input) { - let cleanMode; - let options = []; - let valid = { cleanMode: false, options: true }; - input.replace(/[^a-z]i/g, "").split("").forEach((char) => { - if (isCleanMode(char)) { - cleanMode = char; - valid.cleanMode = true; - } else { - valid.options = valid.options && isKnownOption(options[options.length] = `-${char}`); - } - }); +function getErrorMap() { + return overrideErrorMap; +} +var makeIssue = (params) => { + const { data, path: path2, errorMaps, issueData } = params; + const fullPath = [...path2, ...issueData.path || []]; + const fullIssue = { + ...issueData, + path: fullPath + }; + if (issueData.message !== undefined) { + return { + ...issueData, + path: fullPath, + message: issueData.message + }; + } + let errorMessage = ""; + const maps = errorMaps.filter((m) => !!m).slice().reverse(); + for (const map of maps) { + errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message; + } return { - cleanMode, - options, - valid + ...issueData, + path: fullPath, + message: errorMessage }; +}; +var EMPTY_PATH = []; +function addIssueToContext(ctx, issueData) { + const overrideMap = getErrorMap(); + const issue = makeIssue({ + issueData, + data: ctx.data, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + ctx.schemaErrorMap, + overrideMap, + overrideMap === errorMap ? undefined : errorMap + ].filter((x) => !!x) + }); + ctx.common.issues.push(issue); } -function isCleanMode(cleanMode) { - return cleanMode === "f" || cleanMode === "n"; -} -function isKnownOption(option) { - return /^-[a-z]$/i.test(option) && CleanOptionValues.has(option.charAt(1)); -} -function isInteractiveMode(option) { - if (/^-[^\-]/.test(option)) { - return option.indexOf("i") > 0; + +class ParseStatus { + constructor() { + this.value = "valid"; } - return option === "--interactive"; -} -var CONFIG_ERROR_INTERACTIVE_MODE; -var CONFIG_ERROR_MODE_REQUIRED; -var CONFIG_ERROR_UNKNOWN_OPTION; -var CleanOptions; -var CleanOptionValues; -var init_clean = __esm2({ - "src/lib/tasks/clean.ts"() { - init_CleanSummary(); - init_utils2(); - init_task(); - CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported"; - CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required'; - CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: "; - CleanOptions = /* @__PURE__ */ ((CleanOptions2) => { - CleanOptions2["DRY_RUN"] = "n"; - CleanOptions2["FORCE"] = "f"; - CleanOptions2["IGNORED_INCLUDED"] = "x"; - CleanOptions2["IGNORED_ONLY"] = "X"; - CleanOptions2["EXCLUDING"] = "e"; - CleanOptions2["QUIET"] = "q"; - CleanOptions2["RECURSIVE"] = "d"; - return CleanOptions2; - })(CleanOptions || {}); - CleanOptionValues = /* @__PURE__ */ new Set([ - "i", - ...asStringArray(Object.values(CleanOptions)) - ]); + dirty() { + if (this.value === "valid") + this.value = "dirty"; } -}); -function configListParser(text) { - const config = new ConfigList; - for (const item of configParser(text)) { - config.addValue(item.file, String(item.key), item.value); + abort() { + if (this.value !== "aborted") + this.value = "aborted"; } - return config; -} -function configGetParser(text, key2) { - let value = null; - const values = []; - const scopes = /* @__PURE__ */ new Map; - for (const item of configParser(text, key2)) { - if (item.key !== key2) { - continue; + static mergeArray(status, results) { + const arrayValue = []; + for (const s of results) { + if (s.status === "aborted") + return INVALID; + if (s.status === "dirty") + status.dirty(); + arrayValue.push(s.value); } - values.push(value = item.value); - if (!scopes.has(item.file)) { - scopes.set(item.file, []); + return { status: status.value, value: arrayValue }; + } + static async mergeObjectAsync(status, pairs) { + const syncPairs = []; + for (const pair of pairs) { + const key = await pair.key; + const value = await pair.value; + syncPairs.push({ + key, + value + }); } - scopes.get(item.file).push(value); + return ParseStatus.mergeObjectSync(status, syncPairs); + } + static mergeObjectSync(status, pairs) { + const finalObject = {}; + for (const pair of pairs) { + const { key, value } = pair; + if (key.status === "aborted") + return INVALID; + if (value.status === "aborted") + return INVALID; + if (key.status === "dirty") + status.dirty(); + if (value.status === "dirty") + status.dirty(); + if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) { + finalObject[key.value] = value.value; + } + } + return { status: status.value, value: finalObject }; } - return { - key: key2, - paths: Array.from(scopes.keys()), - scopes, - value, - values - }; } -function configFilePath(filePath) { - return filePath.replace(/^(file):/, ""); +var INVALID = Object.freeze({ + status: "aborted" +}); +var DIRTY = (value) => ({ status: "dirty", value }); +var OK = (value) => ({ status: "valid", value }); +var isAborted = (x) => x.status === "aborted"; +var isDirty = (x) => x.status === "dirty"; +var isValid = (x) => x.status === "valid"; +var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise; +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) + throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) + throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); } -function* configParser(text, requestedKey = null) { - const lines2 = text.split("\x00"); - for (let i = 0, max = lines2.length - 1;i < max; ) { - const file = configFilePath(lines2[i++]); - let value = lines2[i++]; - let key2 = requestedKey; - if (value.includes(` -`)) { - const line = splitOn(value, ` -`); - key2 = line[0]; - value = line[1]; +function __classPrivateFieldSet(receiver, state, value, kind, f) { + if (kind === "m") + throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) + throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) + throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value; +} +var errorUtil; +(function(errorUtil2) { + errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {}; + errorUtil2.toString = (message) => typeof message === "string" ? message : message === null || message === undefined ? undefined : message.message; +})(errorUtil || (errorUtil = {})); +var _ZodEnum_cache; +var _ZodNativeEnum_cache; + +class ParseInputLazyPath { + constructor(parent, value, path2, key) { + this._cachedPath = []; + this.parent = parent; + this.data = value; + this._path = path2; + this._key = key; + } + get path() { + if (!this._cachedPath.length) { + if (this._key instanceof Array) { + this._cachedPath.push(...this._path, ...this._key); + } else { + this._cachedPath.push(...this._path, this._key); + } } - yield { file, key: key2, value }; + return this._cachedPath; } } -var ConfigList; -var init_ConfigList = __esm2({ - "src/lib/responses/ConfigList.ts"() { - init_utils2(); - ConfigList = class { - constructor() { - this.files = []; - this.values = /* @__PURE__ */ Object.create(null); - } - get all() { - if (!this._all) { - this._all = this.files.reduce((all, file) => { - return Object.assign(all, this.values[file]); - }, {}); - } - return this._all; - } - addFile(file) { - if (!(file in this.values)) { - const latest = last(this.files); - this.values[file] = latest ? Object.create(this.values[latest]) : {}; - this.files.push(file); - } - return this.values[file]; - } - addValue(file, key2, value) { - const values = this.addFile(file); - if (!values.hasOwnProperty(key2)) { - values[key2] = value; - } else if (Array.isArray(values[key2])) { - values[key2].push(value); - } else { - values[key2] = [values[key2], value]; - } - this._all = undefined; +var handleResult = (ctx, result) => { + if (isValid(result)) { + return { success: true, data: result.value }; + } else { + if (!ctx.common.issues.length) { + throw new Error("Validation failed but no issues detected."); + } + return { + success: false, + get error() { + if (this._error) + return this._error; + const error = new ZodError(ctx.common.issues); + this._error = error; + return this._error; } }; } -}); -function asConfigScope(scope, fallback2) { - if (typeof scope === "string" && GitConfigScope.hasOwnProperty(scope)) { - return scope; - } - return fallback2; -} -function addConfigTask(key2, value, append2, scope) { - const commands = ["config", `--${scope}`]; - if (append2) { - commands.push("--add"); +}; +function processCreateParams(params) { + if (!params) + return {}; + const { errorMap: errorMap2, invalid_type_error, required_error, description } = params; + if (errorMap2 && (invalid_type_error || required_error)) { + throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); } - commands.push(key2, value); - return { - commands, - format: "utf-8", - parser(text) { - return text; + if (errorMap2) + return { errorMap: errorMap2, description }; + const customMap = (iss, ctx) => { + var _a, _b; + const { message } = params; + if (iss.code === "invalid_enum_value") { + return { message: message !== null && message !== undefined ? message : ctx.defaultError }; } - }; -} -function getConfigTask(key2, scope) { - const commands = ["config", "--null", "--show-origin", "--get-all", key2]; - if (scope) { - commands.splice(1, 0, `--${scope}`); - } - return { - commands, - format: "utf-8", - parser(text) { - return configGetParser(text, key2); + if (typeof ctx.data === "undefined") { + return { message: (_a = message !== null && message !== undefined ? message : required_error) !== null && _a !== undefined ? _a : ctx.defaultError }; } + if (iss.code !== "invalid_type") + return { message: ctx.defaultError }; + return { message: (_b = message !== null && message !== undefined ? message : invalid_type_error) !== null && _b !== undefined ? _b : ctx.defaultError }; }; + return { errorMap: customMap, description }; } -function listConfigTask(scope) { - const commands = ["config", "--list", "--show-origin", "--null"]; - if (scope) { - commands.push(`--${scope}`); + +class ZodType { + get description() { + return this._def.description; } - return { - commands, - format: "utf-8", - parser(text) { - return configListParser(text); - } - }; -} -function config_default() { - return { - addConfig(key2, value, ...rest) { - return this._runTask(addConfigTask(key2, value, rest[0] === true, asConfigScope(rest[1], "local")), trailingFunctionArgument(arguments)); - }, - getConfig(key2, scope) { - return this._runTask(getConfigTask(key2, asConfigScope(scope, undefined)), trailingFunctionArgument(arguments)); - }, - listConfig(...rest) { - return this._runTask(listConfigTask(asConfigScope(rest[0], undefined)), trailingFunctionArgument(arguments)); + _getType(input) { + return getParsedType(input.data); + } + _getOrReturnCtx(input, ctx) { + return ctx || { + common: input.parent.common, + data: input.data, + parsedType: getParsedType(input.data), + schemaErrorMap: this._def.errorMap, + path: input.path, + parent: input.parent + }; + } + _processInputParams(input) { + return { + status: new ParseStatus, + ctx: { + common: input.parent.common, + data: input.data, + parsedType: getParsedType(input.data), + schemaErrorMap: this._def.errorMap, + path: input.path, + parent: input.parent + } + }; + } + _parseSync(input) { + const result = this._parse(input); + if (isAsync(result)) { + throw new Error("Synchronous parse encountered promise."); } - }; -} -var GitConfigScope; -var init_config = __esm2({ - "src/lib/tasks/config.ts"() { - init_ConfigList(); - init_utils2(); - GitConfigScope = /* @__PURE__ */ ((GitConfigScope2) => { - GitConfigScope2["system"] = "system"; - GitConfigScope2["global"] = "global"; - GitConfigScope2["local"] = "local"; - GitConfigScope2["worktree"] = "worktree"; - return GitConfigScope2; - })(GitConfigScope || {}); + return result; } -}); -function isDiffNameStatus(input) { - return diffNameStatus.has(input); -} -var DiffNameStatus; -var diffNameStatus; -var init_diff_name_status = __esm2({ - "src/lib/tasks/diff-name-status.ts"() { - DiffNameStatus = /* @__PURE__ */ ((DiffNameStatus2) => { - DiffNameStatus2["ADDED"] = "A"; - DiffNameStatus2["COPIED"] = "C"; - DiffNameStatus2["DELETED"] = "D"; - DiffNameStatus2["MODIFIED"] = "M"; - DiffNameStatus2["RENAMED"] = "R"; - DiffNameStatus2["CHANGED"] = "T"; - DiffNameStatus2["UNMERGED"] = "U"; - DiffNameStatus2["UNKNOWN"] = "X"; - DiffNameStatus2["BROKEN"] = "B"; - return DiffNameStatus2; - })(DiffNameStatus || {}); - diffNameStatus = new Set(Object.values(DiffNameStatus)); + _parseAsync(input) { + const result = this._parse(input); + return Promise.resolve(result); } -}); -function grepQueryBuilder(...params) { - return new GrepQuery().param(...params); -} -function parseGrep(grep) { - const paths = /* @__PURE__ */ new Set; - const results = {}; - forEachLineWithContent(grep, (input) => { - const [path, line, preview] = input.split(NULL); - paths.add(path); - (results[path] = results[path] || []).push({ - line: asNumber(line), - path, - preview - }); - }); - return { - paths, - results - }; -} -function grep_default() { - return { - grep(searchTerm) { - const then = trailingFunctionArgument(arguments); - const options = getTrailingOptions(arguments); - for (const option of disallowedOptions) { - if (options.includes(option)) { - return this._runTask(configurationErrorTask(`git.grep: use of "${option}" is not supported.`), then); + parse(data, params) { + const result = this.safeParse(data, params); + if (result.success) + return result.data; + throw result.error; + } + safeParse(data, params) { + var _a; + const ctx = { + common: { + issues: [], + async: (_a = params === null || params === undefined ? undefined : params.async) !== null && _a !== undefined ? _a : false, + contextualErrorMap: params === null || params === undefined ? undefined : params.errorMap + }, + path: (params === null || params === undefined ? undefined : params.path) || [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }; + const result = this._parseSync({ data, path: ctx.path, parent: ctx }); + return handleResult(ctx, result); + } + "~validate"(data) { + var _a, _b; + const ctx = { + common: { + issues: [], + async: !!this["~standard"].async + }, + path: [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }; + if (!this["~standard"].async) { + try { + const result = this._parseSync({ data, path: [], parent: ctx }); + return isValid(result) ? { + value: result.value + } : { + issues: ctx.common.issues + }; + } catch (err) { + if ((_b = (_a = err === null || err === undefined ? undefined : err.message) === null || _a === undefined ? undefined : _a.toLowerCase()) === null || _b === undefined ? undefined : _b.includes("encountered")) { + this["~standard"].async = true; } + ctx.common = { + issues: [], + async: true + }; } - if (typeof searchTerm === "string") { - searchTerm = grepQueryBuilder().param(searchTerm); - } - const commands = ["grep", "--null", "-n", "--full-name", ...options, ...searchTerm]; - return this._runTask({ - commands, - format: "utf-8", - parser(stdOut) { - return parseGrep(stdOut); - } - }, then); } - }; -} -var disallowedOptions; -var Query; -var _a; -var GrepQuery; -var init_grep = __esm2({ - "src/lib/tasks/grep.ts"() { - init_utils2(); - init_task(); - disallowedOptions = ["-h"]; - Query = Symbol("grepQuery"); - GrepQuery = class { - constructor() { - this[_a] = []; + return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) ? { + value: result.value + } : { + issues: ctx.common.issues + }); + } + async parseAsync(data, params) { + const result = await this.safeParseAsync(data, params); + if (result.success) + return result.data; + throw result.error; + } + async safeParseAsync(data, params) { + const ctx = { + common: { + issues: [], + contextualErrorMap: params === null || params === undefined ? undefined : params.errorMap, + async: true + }, + path: (params === null || params === undefined ? undefined : params.path) || [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }; + const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx }); + const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); + return handleResult(ctx, result); + } + refine(check, message) { + const getIssueProperties = (val) => { + if (typeof message === "string" || typeof message === "undefined") { + return { message }; + } else if (typeof message === "function") { + return message(val); + } else { + return message; } - *[(_a = Query, Symbol.iterator)]() { - for (const query of this[Query]) { - yield query; - } + }; + return this._refinement((val, ctx) => { + const result = check(val); + const setError = () => ctx.addIssue({ + code: ZodIssueCode.custom, + ...getIssueProperties(val) + }); + if (typeof Promise !== "undefined" && result instanceof Promise) { + return result.then((data) => { + if (!data) { + setError(); + return false; + } else { + return true; + } + }); } - and(...and) { - and.length && this[Query].push("--and", "(", ...prefixedArray(and, "-e"), ")"); - return this; + if (!result) { + setError(); + return false; + } else { + return true; } - param(...param) { - this[Query].push(...prefixedArray(param, "-e")); - return this; + }); + } + refinement(check, refinementData) { + return this._refinement((val, ctx) => { + if (!check(val)) { + ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData); + return false; + } else { + return true; } + }); + } + _refinement(refinement) { + return new ZodEffects({ + schema: this, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect: { type: "refinement", refinement } + }); + } + superRefine(refinement) { + return this._refinement(refinement); + } + constructor(def) { + this.spa = this.safeParseAsync; + this._def = def; + this.parse = this.parse.bind(this); + this.safeParse = this.safeParse.bind(this); + this.parseAsync = this.parseAsync.bind(this); + this.safeParseAsync = this.safeParseAsync.bind(this); + this.spa = this.spa.bind(this); + this.refine = this.refine.bind(this); + this.refinement = this.refinement.bind(this); + this.superRefine = this.superRefine.bind(this); + this.optional = this.optional.bind(this); + this.nullable = this.nullable.bind(this); + this.nullish = this.nullish.bind(this); + this.array = this.array.bind(this); + this.promise = this.promise.bind(this); + this.or = this.or.bind(this); + this.and = this.and.bind(this); + this.transform = this.transform.bind(this); + this.brand = this.brand.bind(this); + this.default = this.default.bind(this); + this.catch = this.catch.bind(this); + this.describe = this.describe.bind(this); + this.pipe = this.pipe.bind(this); + this.readonly = this.readonly.bind(this); + this.isNullable = this.isNullable.bind(this); + this.isOptional = this.isOptional.bind(this); + this["~standard"] = { + version: 1, + vendor: "zod", + validate: (data) => this["~validate"](data) }; } -}); -var reset_exports = {}; -__export2(reset_exports, { - ResetMode: () => ResetMode, - getResetMode: () => getResetMode, - resetTask: () => resetTask -}); -function resetTask(mode, customArgs) { - const commands = ["reset"]; - if (isValidResetMode(mode)) { - commands.push(`--${mode}`); + optional() { + return ZodOptional.create(this, this._def); + } + nullable() { + return ZodNullable.create(this, this._def); + } + nullish() { + return this.nullable().optional(); + } + array() { + return ZodArray.create(this); + } + promise() { + return ZodPromise.create(this, this._def); + } + or(option) { + return ZodUnion.create([this, option], this._def); + } + and(incoming) { + return ZodIntersection.create(this, incoming, this._def); + } + transform(transform) { + return new ZodEffects({ + ...processCreateParams(this._def), + schema: this, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect: { type: "transform", transform } + }); + } + default(def) { + const defaultValueFunc = typeof def === "function" ? def : () => def; + return new ZodDefault({ + ...processCreateParams(this._def), + innerType: this, + defaultValue: defaultValueFunc, + typeName: ZodFirstPartyTypeKind.ZodDefault + }); + } + brand() { + return new ZodBranded({ + typeName: ZodFirstPartyTypeKind.ZodBranded, + type: this, + ...processCreateParams(this._def) + }); + } + catch(def) { + const catchValueFunc = typeof def === "function" ? def : () => def; + return new ZodCatch({ + ...processCreateParams(this._def), + innerType: this, + catchValue: catchValueFunc, + typeName: ZodFirstPartyTypeKind.ZodCatch + }); + } + describe(description) { + const This = this.constructor; + return new This({ + ...this._def, + description + }); + } + pipe(target) { + return ZodPipeline.create(this, target); + } + readonly() { + return ZodReadonly.create(this); + } + isOptional() { + return this.safeParse(undefined).success; + } + isNullable() { + return this.safeParse(null).success; + } +} +var cuidRegex = /^c[^\s-]{8,}$/i; +var cuid2Regex = /^[0-9a-z]+$/; +var ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i; +var uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i; +var nanoidRegex = /^[a-z0-9_-]{21}$/i; +var jwtRegex = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/; +var durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/; +var emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i; +var _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; +var emojiRegex2; +var ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; +var ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/; +var ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/; +var ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; +var base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/; +var base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/; +var dateRegexSource = `((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`; +var dateRegex = new RegExp(`^${dateRegexSource}$`); +function timeRegexSource(args) { + let regex2 = `([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d`; + if (args.precision) { + regex2 = `${regex2}\\.\\d{${args.precision}}`; + } else if (args.precision == null) { + regex2 = `${regex2}(\\.\\d+)?`; } - commands.push(...customArgs); - return straightThroughStringTask(commands); + return regex2; } -function getResetMode(mode) { - if (isValidResetMode(mode)) { - return mode; - } - switch (typeof mode) { - case "string": - case "undefined": - return "soft"; - } - return; +function timeRegex(args) { + return new RegExp(`^${timeRegexSource(args)}$`); } -function isValidResetMode(mode) { - return ResetModes.includes(mode); +function datetimeRegex(args) { + let regex2 = `${dateRegexSource}T${timeRegexSource(args)}`; + const opts = []; + opts.push(args.local ? `Z?` : `Z`); + if (args.offset) + opts.push(`([+-]\\d{2}:?\\d{2})`); + regex2 = `${regex2}(${opts.join("|")})`; + return new RegExp(`^${regex2}$`); } -var ResetMode; -var ResetModes; -var init_reset = __esm2({ - "src/lib/tasks/reset.ts"() { - init_task(); - ResetMode = /* @__PURE__ */ ((ResetMode2) => { - ResetMode2["MIXED"] = "mixed"; - ResetMode2["SOFT"] = "soft"; - ResetMode2["HARD"] = "hard"; - ResetMode2["MERGE"] = "merge"; - ResetMode2["KEEP"] = "keep"; - return ResetMode2; - })(ResetMode || {}); - ResetModes = Array.from(Object.values(ResetMode)); +function isValidIP(ip, version) { + if ((version === "v4" || !version) && ipv4Regex.test(ip)) { + return true; } -}); -function createLog() { - return import_debug.default("simple-git"); -} -function prefixedLogger(to, prefix, forward) { - if (!prefix || !String(prefix).replace(/\s*/, "")) { - return !forward ? to : (message, ...args) => { - to(message, ...args); - forward(message, ...args); - }; + if ((version === "v6" || !version) && ipv6Regex.test(ip)) { + return true; } - return (message, ...args) => { - to(`%s ${message}`, prefix, ...args); - if (forward) { - forward(message, ...args); - } - }; + return false; } -function childLoggerName(name, childDebugger, { namespace: parentNamespace }) { - if (typeof name === "string") { - return name; - } - const childNamespace = childDebugger && childDebugger.namespace || ""; - if (childNamespace.startsWith(parentNamespace)) { - return childNamespace.substr(parentNamespace.length + 1); +function isValidJWT(jwt, alg) { + if (!jwtRegex.test(jwt)) + return false; + try { + const [header] = jwt.split("."); + const base64 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "="); + const decoded = JSON.parse(atob(base64)); + if (typeof decoded !== "object" || decoded === null) + return false; + if (!decoded.typ || !decoded.alg) + return false; + if (alg && decoded.alg !== alg) + return false; + return true; + } catch (_a) { + return false; } - return childNamespace || parentNamespace; } -function createLogger(label, verbose, initialStep, infoDebugger = createLog()) { - const labelPrefix = label && `[${label}]` || ""; - const spawned = []; - const debugDebugger = typeof verbose === "string" ? infoDebugger.extend(verbose) : verbose; - const key2 = childLoggerName(filterType(verbose, filterString), debugDebugger, infoDebugger); - return step(initialStep); - function sibling(name, initial) { - return append(spawned, createLogger(label, key2.replace(/^[^:]+/, name), initial, infoDebugger)); +function isValidCidr(ip, version) { + if ((version === "v4" || !version) && ipv4CidrRegex.test(ip)) { + return true; } - function step(phase) { - const stepPrefix = phase && `[${phase}]` || ""; - const debug2 = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || NOOP; - const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug2); - return Object.assign(debugDebugger ? debug2 : info, { - label, - sibling, - info, - step - }); + if ((version === "v6" || !version) && ipv6CidrRegex.test(ip)) { + return true; } + return false; } -var init_git_logger = __esm2({ - "src/lib/git-logger.ts"() { - init_utils2(); - import_debug.default.formatters.L = (value) => String(filterHasLength(value) ? value.length : "-"); - import_debug.default.formatters.B = (value) => { - if (Buffer.isBuffer(value)) { - return value.toString("utf8"); - } - return objectToString(value); - }; - } -}); -var _TasksPendingQueue; -var TasksPendingQueue; -var init_tasks_pending_queue = __esm2({ - "src/lib/runners/tasks-pending-queue.ts"() { - init_git_error(); - init_git_logger(); - _TasksPendingQueue = class { - constructor(logLabel = "GitExecutor") { - this.logLabel = logLabel; - this._queue = /* @__PURE__ */ new Map; - } - withProgress(task) { - return this._queue.get(task); - } - createProgress(task) { - const name = _TasksPendingQueue.getName(task.commands[0]); - const logger2 = createLogger(this.logLabel, name); - return { - task, - logger: logger2, - name - }; - } - push(task) { - const progress = this.createProgress(task); - progress.logger("Adding task to the queue, commands = %o", task.commands); - this._queue.set(task, progress); - return progress; - } - fatal(err) { - for (const [task, { logger: logger2 }] of Array.from(this._queue.entries())) { - if (task === err.task) { - logger2.info(`Failed %o`, err); - logger2(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`); - } else { - logger2.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`, err.message); + +class ZodString extends ZodType { + _parse(input) { + if (this._def.coerce) { + input.data = String(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.string) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.string, + received: ctx2.parsedType + }); + return INVALID; + } + const status = new ParseStatus; + let ctx = undefined; + for (const check of this._def.checks) { + if (check.kind === "min") { + if (input.data.length < check.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check.value, + type: "string", + inclusive: true, + exact: false, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "max") { + if (input.data.length > check.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check.value, + type: "string", + inclusive: true, + exact: false, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "length") { + const tooBig = input.data.length > check.value; + const tooSmall = input.data.length < check.value; + if (tooBig || tooSmall) { + ctx = this._getOrReturnCtx(input, ctx); + if (tooBig) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check.value, + type: "string", + inclusive: true, + exact: true, + message: check.message + }); + } else if (tooSmall) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check.value, + type: "string", + inclusive: true, + exact: true, + message: check.message + }); } - this.complete(task); + status.dirty(); } - if (this._queue.size !== 0) { - throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`); + } else if (check.kind === "email") { + if (!emailRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "email", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); } - } - complete(task) { - const progress = this.withProgress(task); - if (progress) { - this._queue.delete(task); + } else if (check.kind === "emoji") { + if (!emojiRegex2) { + emojiRegex2 = new RegExp(_emojiRegex, "u"); } - } - attempt(task) { - const progress = this.withProgress(task); - if (!progress) { - throw new GitError(undefined, "TasksPendingQueue: attempt called for an unknown task"); + if (!emojiRegex2.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "emoji", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); } - progress.logger("Starting task"); - return progress; - } - static getName(name = "empty") { - return `task:${name}:${++_TasksPendingQueue.counter}`; - } - }; - TasksPendingQueue = _TasksPendingQueue; - TasksPendingQueue.counter = 0; - } -}); -function pluginContext(task, commands) { - return { - method: first(task.commands) || "", - commands - }; -} -function onErrorReceived(target, logger2) { - return (err) => { - logger2(`[ERROR] child process exception %o`, err); - target.push(Buffer.from(String(err.stack), "ascii")); - }; -} -function onDataReceived(target, name, logger2, output) { - return (buffer) => { - logger2(`%s received %L bytes`, name, buffer); - output(`%B`, buffer); - target.push(buffer); - }; -} -var GitExecutorChain; -var init_git_executor_chain = __esm2({ - "src/lib/runners/git-executor-chain.ts"() { - init_git_error(); - init_task(); - init_utils2(); - init_tasks_pending_queue(); - GitExecutorChain = class { - constructor(_executor, _scheduler, _plugins) { - this._executor = _executor; - this._scheduler = _scheduler; - this._plugins = _plugins; - this._chain = Promise.resolve(); - this._queue = new TasksPendingQueue; - } - get cwd() { - return this._cwd || this._executor.cwd; - } - set cwd(cwd) { - this._cwd = cwd; - } - get env() { - return this._executor.env; - } - get outputHandler() { - return this._executor.outputHandler; - } - chain() { - return this; - } - push(task) { - this._queue.push(task); - return this._chain = this._chain.then(() => this.attemptTask(task)); - } - attemptTask(task) { - return __async(this, null, function* () { - const onScheduleComplete = yield this._scheduler.next(); - const onQueueComplete = () => this._queue.complete(task); - try { - const { logger: logger2 } = this._queue.attempt(task); - return yield isEmptyTask(task) ? this.attemptEmptyTask(task, logger2) : this.attemptRemoteTask(task, logger2); - } catch (e) { - throw this.onFatalException(task, e); - } finally { - onQueueComplete(); - onScheduleComplete(); - } - }); - } - onFatalException(task, e) { - const gitError = e instanceof GitError ? Object.assign(e, { task }) : new GitError(task, e && String(e)); - this._chain = Promise.resolve(); - this._queue.fatal(gitError); - return gitError; - } - attemptRemoteTask(task, logger2) { - return __async(this, null, function* () { - const binary = this._plugins.exec("spawn.binary", "", pluginContext(task, task.commands)); - const args = this._plugins.exec("spawn.args", [...task.commands], pluginContext(task, task.commands)); - const raw = yield this.gitResponse(task, binary, args, this.outputHandler, logger2.step("SPAWN")); - const outputStreams = yield this.handleTaskData(task, args, raw, logger2.step("HANDLE")); - logger2(`passing response to task's parser as a %s`, task.format); - if (isBufferTask(task)) { - return callTaskParser(task.parser, outputStreams); - } - return callTaskParser(task.parser, outputStreams.asStrings()); - }); - } - attemptEmptyTask(task, logger2) { - return __async(this, null, function* () { - logger2(`empty task bypassing child process to call to task's parser`); - return task.parser(this); - }); - } - handleTaskData(task, args, result, logger2) { - const { exitCode, rejection, stdOut, stdErr } = result; - return new Promise((done, fail) => { - logger2(`Preparing to handle process response exitCode=%d stdOut=`, exitCode); - const { error } = this._plugins.exec("task.error", { error: rejection }, __spreadValues(__spreadValues({}, pluginContext(task, args)), result)); - if (error && task.onError) { - logger2.info(`exitCode=%s handling with custom error handler`); - return task.onError(result, error, (newStdOut) => { - logger2.info(`custom error handler treated as success`); - logger2(`custom error returned a %s`, objectToString(newStdOut)); - done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer.concat(newStdOut) : newStdOut, Buffer.concat(stdErr))); - }, fail); - } - if (error) { - logger2.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`, exitCode, stdErr.length, rejection); - return fail(error); - } - logger2.info(`retrieving task output complete`); - done(new GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr))); - }); - } - gitResponse(task, command, args, outputHandler, logger2) { - return __async(this, null, function* () { - const outputLogger = logger2.sibling("output"); - const spawnOptions = this._plugins.exec("spawn.options", { - cwd: this.cwd, - env: this.env, - windowsHide: true - }, pluginContext(task, task.commands)); - return new Promise((done) => { - const stdOut = []; - const stdErr = []; - logger2.info(`%s %o`, command, args); - logger2("%O", spawnOptions); - let rejection = this._beforeSpawn(task, args); - if (rejection) { - return done({ - stdOut, - stdErr, - exitCode: 9901, - rejection - }); - } - this._plugins.exec("spawn.before", undefined, __spreadProps(__spreadValues({}, pluginContext(task, args)), { - kill(reason) { - rejection = reason || rejection; - } - })); - const spawned = spawn(command, args, spawnOptions); - spawned.stdout.on("data", onDataReceived(stdOut, "stdOut", logger2, outputLogger.step("stdOut"))); - spawned.stderr.on("data", onDataReceived(stdErr, "stdErr", logger2, outputLogger.step("stdErr"))); - spawned.on("error", onErrorReceived(stdErr, logger2)); - if (outputHandler) { - logger2(`Passing child process stdOut/stdErr to custom outputHandler`); - outputHandler(command, spawned.stdout, spawned.stderr, [...args]); - } - this._plugins.exec("spawn.after", undefined, __spreadProps(__spreadValues({}, pluginContext(task, args)), { - spawned, - close(exitCode, reason) { - done({ - stdOut, - stdErr, - exitCode, - rejection: rejection || reason - }); - }, - kill(reason) { - if (spawned.killed) { - return; - } - rejection = reason; - spawned.kill("SIGINT"); - } - })); + } else if (check.kind === "uuid") { + if (!uuidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "uuid", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "nanoid") { + if (!nanoidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "nanoid", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "cuid") { + if (!cuidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "cuid", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "cuid2") { + if (!cuid2Regex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "cuid2", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "ulid") { + if (!ulidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "ulid", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "url") { + try { + new URL(input.data); + } catch (_a) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "url", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "regex") { + check.regex.lastIndex = 0; + const testResult = check.regex.test(input.data); + if (!testResult) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "regex", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "trim") { + input.data = input.data.trim(); + } else if (check.kind === "includes") { + if (!input.data.includes(check.value, check.position)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { includes: check.value, position: check.position }, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "toLowerCase") { + input.data = input.data.toLowerCase(); + } else if (check.kind === "toUpperCase") { + input.data = input.data.toUpperCase(); + } else if (check.kind === "startsWith") { + if (!input.data.startsWith(check.value)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { startsWith: check.value }, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "endsWith") { + if (!input.data.endsWith(check.value)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { endsWith: check.value }, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "datetime") { + const regex2 = datetimeRegex(check); + if (!regex2.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: "datetime", + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "date") { + const regex2 = dateRegex; + if (!regex2.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: "date", + message: check.message }); - }); - } - _beforeSpawn(task, args) { - let rejection; - this._plugins.exec("spawn.before", undefined, __spreadProps(__spreadValues({}, pluginContext(task, args)), { - kill(reason) { - rejection = reason || rejection; - } - })); - return rejection; + status.dirty(); + } + } else if (check.kind === "time") { + const regex2 = timeRegex(check); + if (!regex2.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: "time", + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "duration") { + if (!durationRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "duration", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "ip") { + if (!isValidIP(input.data, check.version)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "ip", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "jwt") { + if (!isValidJWT(input.data, check.alg)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "jwt", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "cidr") { + if (!isValidCidr(input.data, check.version)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "cidr", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "base64") { + if (!base64Regex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "base64", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "base64url") { + if (!base64urlRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "base64url", + code: ZodIssueCode.invalid_string, + message: check.message + }); + status.dirty(); + } + } else { + util.assertNever(check); } - }; + } + return { status: status.value, value: input.data }; } -}); -var git_executor_exports = {}; -__export2(git_executor_exports, { - GitExecutor: () => GitExecutor -}); -var GitExecutor; -var init_git_executor = __esm2({ - "src/lib/runners/git-executor.ts"() { - init_git_executor_chain(); - GitExecutor = class { - constructor(cwd, _scheduler, _plugins) { - this.cwd = cwd; - this._scheduler = _scheduler; - this._plugins = _plugins; - this._chain = new GitExecutorChain(this, this._scheduler, this._plugins); - } - chain() { - return new GitExecutorChain(this, this._scheduler, this._plugins); - } - push(task) { - return this._chain.push(task); - } - }; + _regex(regex2, validation, message) { + return this.refinement((data) => regex2.test(data), { + validation, + code: ZodIssueCode.invalid_string, + ...errorUtil.errToObj(message) + }); } -}); -function taskCallback(task, response, callback = NOOP) { - const onSuccess = (data) => { - callback(null, data); - }; - const onError2 = (err) => { - if ((err == null ? undefined : err.task) === task) { - callback(err instanceof GitResponseError ? addDeprecationNoticeToError(err) : err, undefined); - } - }; - response.then(onSuccess, onError2); -} -function addDeprecationNoticeToError(err) { - let log = (name) => { - console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`); - log = NOOP; - }; - return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {})); - function descriptorReducer(all, name) { - if (name in err) { - return all; - } - all[name] = { - enumerable: false, - configurable: false, - get() { - log(name); - return err.git[name]; - } - }; - return all; + _addCheck(check) { + return new ZodString({ + ...this._def, + checks: [...this._def.checks, check] + }); } -} -var init_task_callback = __esm2({ - "src/lib/task-callback.ts"() { - init_git_response_error(); - init_utils2(); + email(message) { + return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) }); } -}); -function changeWorkingDirectoryTask(directory, root) { - return adhocExecTask((instance) => { - if (!folderExists(directory)) { - throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`); - } - return (root || instance).cwd = directory; - }); -} -var init_change_working_directory = __esm2({ - "src/lib/tasks/change-working-directory.ts"() { - init_utils2(); - init_task(); + url(message) { + return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) }); } -}); -function checkoutTask(args) { - const commands = ["checkout", ...args]; - if (commands[1] === "-b" && commands.includes("-B")) { - commands[1] = remove(commands, "-B"); + emoji(message) { + return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) }); } - return straightThroughStringTask(commands); -} -function checkout_default() { - return { - checkout() { - return this._runTask(checkoutTask(getTrailingOptions(arguments, 1)), trailingFunctionArgument(arguments)); - }, - checkoutBranch(branchName, startPoint) { - return this._runTask(checkoutTask(["-b", branchName, startPoint, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); - }, - checkoutLocalBranch(branchName) { - return this._runTask(checkoutTask(["-b", branchName, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); - } - }; -} -var init_checkout = __esm2({ - "src/lib/tasks/checkout.ts"() { - init_utils2(); - init_task(); + uuid(message) { + return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) }); } -}); -function countObjectsResponse() { - return { - count: 0, - garbage: 0, - inPack: 0, - packs: 0, - prunePackable: 0, - size: 0, - sizeGarbage: 0, - sizePack: 0 - }; -} -function count_objects_default() { - return { - countObjects() { - return this._runTask({ - commands: ["count-objects", "--verbose"], - format: "utf-8", - parser(stdOut) { - return parseStringResponse(countObjectsResponse(), [parser2], stdOut); - } + nanoid(message) { + return this._addCheck({ kind: "nanoid", ...errorUtil.errToObj(message) }); + } + cuid(message) { + return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) }); + } + cuid2(message) { + return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) }); + } + ulid(message) { + return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) }); + } + base64(message) { + return this._addCheck({ kind: "base64", ...errorUtil.errToObj(message) }); + } + base64url(message) { + return this._addCheck({ + kind: "base64url", + ...errorUtil.errToObj(message) + }); + } + jwt(options) { + return this._addCheck({ kind: "jwt", ...errorUtil.errToObj(options) }); + } + ip(options) { + return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) }); + } + cidr(options) { + return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) }); + } + datetime(options) { + var _a, _b; + if (typeof options === "string") { + return this._addCheck({ + kind: "datetime", + precision: null, + offset: false, + local: false, + message: options }); } - }; -} -var parser2; -var init_count_objects = __esm2({ - "src/lib/tasks/count-objects.ts"() { - init_utils2(); - parser2 = new LineParser(/([a-z-]+): (\d+)$/, (result, [key2, value]) => { - const property = asCamelCase(key2); - if (result.hasOwnProperty(property)) { - result[property] = asNumber(value); - } + return this._addCheck({ + kind: "datetime", + precision: typeof (options === null || options === undefined ? undefined : options.precision) === "undefined" ? null : options === null || options === undefined ? undefined : options.precision, + offset: (_a = options === null || options === undefined ? undefined : options.offset) !== null && _a !== undefined ? _a : false, + local: (_b = options === null || options === undefined ? undefined : options.local) !== null && _b !== undefined ? _b : false, + ...errorUtil.errToObj(options === null || options === undefined ? undefined : options.message) }); } -}); -function parseCommitResult(stdOut) { - const result = { - author: null, - branch: "", - commit: "", - root: false, - summary: { - changes: 0, - insertions: 0, - deletions: 0 - } - }; - return parseStringResponse(result, parsers, stdOut); -} -var parsers; -var init_parse_commit = __esm2({ - "src/lib/parsers/parse-commit.ts"() { - init_utils2(); - parsers = [ - new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch, root, commit]) => { - result.branch = branch; - result.commit = commit; - result.root = !!root; - }), - new LineParser(/\s*Author:\s(.+)/i, (result, [author]) => { - const parts = author.split("<"); - const email = parts.pop(); - if (!email || !email.includes("@")) { - return; - } - result.author = { - email: email.substr(0, email.length - 1), - name: parts.join("<").trim() - }; - }), - new LineParser(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g, (result, [changes, insertions, deletions]) => { - result.summary.changes = parseInt(changes, 10) || 0; - result.summary.insertions = parseInt(insertions, 10) || 0; - result.summary.deletions = parseInt(deletions, 10) || 0; - }), - new LineParser(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/, (result, [changes, lines2, direction]) => { - result.summary.changes = parseInt(changes, 10) || 0; - const count = parseInt(lines2, 10) || 0; - if (direction === "-") { - result.summary.deletions = count; - } else if (direction === "+") { - result.summary.insertions = count; - } - }) - ]; + date(message) { + return this._addCheck({ kind: "date", message }); } -}); -function commitTask(message, files, customArgs) { - const commands = [ - "-c", - "core.abbrev=40", - "commit", - ...prefixedArray(message, "-m"), - ...files, - ...customArgs - ]; - return { - commands, - format: "utf-8", - parser: parseCommitResult - }; -} -function commit_default() { - return { - commit(message, ...rest) { - const next = trailingFunctionArgument(arguments); - const task = rejectDeprecatedSignatures(message) || commitTask(asArray(message), asArray(filterType(rest[0], filterStringOrStringArray, [])), [...filterType(rest[1], filterArray, []), ...getTrailingOptions(arguments, 0, true)]); - return this._runTask(task, next); + time(options) { + if (typeof options === "string") { + return this._addCheck({ + kind: "time", + precision: null, + message: options + }); } - }; - function rejectDeprecatedSignatures(message) { - return !filterStringOrStringArray(message) && configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`); + return this._addCheck({ + kind: "time", + precision: typeof (options === null || options === undefined ? undefined : options.precision) === "undefined" ? null : options === null || options === undefined ? undefined : options.precision, + ...errorUtil.errToObj(options === null || options === undefined ? undefined : options.message) + }); } -} -var init_commit = __esm2({ - "src/lib/tasks/commit.ts"() { - init_parse_commit(); - init_utils2(); - init_task(); + duration(message) { + return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) }); } -}); -function first_commit_default() { - return { - firstCommit() { - return this._runTask(straightThroughStringTask(["rev-list", "--max-parents=0", "HEAD"], true), trailingFunctionArgument(arguments)); - } - }; -} -var init_first_commit = __esm2({ - "src/lib/tasks/first-commit.ts"() { - init_utils2(); - init_task(); + regex(regex2, message) { + return this._addCheck({ + kind: "regex", + regex: regex2, + ...errorUtil.errToObj(message) + }); } -}); -function hashObjectTask(filePath, write) { - const commands = ["hash-object", filePath]; - if (write) { - commands.push("-w"); + includes(value, options) { + return this._addCheck({ + kind: "includes", + value, + position: options === null || options === undefined ? undefined : options.position, + ...errorUtil.errToObj(options === null || options === undefined ? undefined : options.message) + }); } - return straightThroughStringTask(commands, true); -} -var init_hash_object = __esm2({ - "src/lib/tasks/hash-object.ts"() { - init_task(); + startsWith(value, message) { + return this._addCheck({ + kind: "startsWith", + value, + ...errorUtil.errToObj(message) + }); } -}); -function parseInit(bare, path, text) { - const response = String(text).trim(); - let result; - if (result = initResponseRegex.exec(response)) { - return new InitSummary(bare, path, false, result[1]); + endsWith(value, message) { + return this._addCheck({ + kind: "endsWith", + value, + ...errorUtil.errToObj(message) + }); } - if (result = reInitResponseRegex.exec(response)) { - return new InitSummary(bare, path, true, result[1]); + min(minLength, message) { + return this._addCheck({ + kind: "min", + value: minLength, + ...errorUtil.errToObj(message) + }); } - let gitDir = ""; - const tokens = response.split(" "); - while (tokens.length) { - const token = tokens.shift(); - if (token === "in") { - gitDir = tokens.join(" "); - break; - } + max(maxLength, message) { + return this._addCheck({ + kind: "max", + value: maxLength, + ...errorUtil.errToObj(message) + }); } - return new InitSummary(bare, path, /^re/i.test(response), gitDir); -} -var InitSummary; -var initResponseRegex; -var reInitResponseRegex; -var init_InitSummary = __esm2({ - "src/lib/responses/InitSummary.ts"() { - InitSummary = class { - constructor(bare, path, existing, gitDir) { - this.bare = bare; - this.path = path; - this.existing = existing; - this.gitDir = gitDir; - } - }; - initResponseRegex = /^Init.+ repository in (.+)$/; - reInitResponseRegex = /^Rein.+ in (.+)$/; + length(len, message) { + return this._addCheck({ + kind: "length", + value: len, + ...errorUtil.errToObj(message) + }); + } + nonempty(message) { + return this.min(1, errorUtil.errToObj(message)); + } + trim() { + return new ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "trim" }] + }); + } + toLowerCase() { + return new ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "toLowerCase" }] + }); + } + toUpperCase() { + return new ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "toUpperCase" }] + }); + } + get isDatetime() { + return !!this._def.checks.find((ch) => ch.kind === "datetime"); + } + get isDate() { + return !!this._def.checks.find((ch) => ch.kind === "date"); + } + get isTime() { + return !!this._def.checks.find((ch) => ch.kind === "time"); + } + get isDuration() { + return !!this._def.checks.find((ch) => ch.kind === "duration"); + } + get isEmail() { + return !!this._def.checks.find((ch) => ch.kind === "email"); + } + get isURL() { + return !!this._def.checks.find((ch) => ch.kind === "url"); + } + get isEmoji() { + return !!this._def.checks.find((ch) => ch.kind === "emoji"); + } + get isUUID() { + return !!this._def.checks.find((ch) => ch.kind === "uuid"); + } + get isNANOID() { + return !!this._def.checks.find((ch) => ch.kind === "nanoid"); + } + get isCUID() { + return !!this._def.checks.find((ch) => ch.kind === "cuid"); + } + get isCUID2() { + return !!this._def.checks.find((ch) => ch.kind === "cuid2"); + } + get isULID() { + return !!this._def.checks.find((ch) => ch.kind === "ulid"); + } + get isIP() { + return !!this._def.checks.find((ch) => ch.kind === "ip"); + } + get isCIDR() { + return !!this._def.checks.find((ch) => ch.kind === "cidr"); } -}); -function hasBareCommand(command) { - return command.includes(bareCommand); -} -function initTask(bare = false, path, customArgs) { - const commands = ["init", ...customArgs]; - if (bare && !hasBareCommand(commands)) { - commands.splice(1, 0, bareCommand); + get isBase64() { + return !!this._def.checks.find((ch) => ch.kind === "base64"); } - return { - commands, - format: "utf-8", - parser(text) { - return parseInit(commands.includes("--bare"), path, text); + get isBase64url() { + return !!this._def.checks.find((ch) => ch.kind === "base64url"); + } + get minLength() { + let min = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; + } } - }; -} -var bareCommand; -var init_init = __esm2({ - "src/lib/tasks/init.ts"() { - init_InitSummary(); - bareCommand = "--bare"; + return min; } -}); -function logFormatFromCommand(customArgs) { - for (let i = 0;i < customArgs.length; i++) { - const format = logFormatRegex.exec(customArgs[i]); - if (format) { - return `--${format[1]}`; + get maxLength() { + let max = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; + } } + return max; } - return ""; } -function isLogFormat(customArg) { - return logFormatRegex.test(customArg); +ZodString.create = (params) => { + var _a; + return new ZodString({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodString, + coerce: (_a = params === null || params === undefined ? undefined : params.coerce) !== null && _a !== undefined ? _a : false, + ...processCreateParams(params) + }); +}; +function floatSafeRemainder(val, step) { + const valDecCount = (val.toString().split(".")[1] || "").length; + const stepDecCount = (step.toString().split(".")[1] || "").length; + const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; + const valInt = parseInt(val.toFixed(decCount).replace(".", "")); + const stepInt = parseInt(step.toFixed(decCount).replace(".", "")); + return valInt % stepInt / Math.pow(10, decCount); } -var logFormatRegex; -var init_log_format = __esm2({ - "src/lib/args/log-format.ts"() { - logFormatRegex = /^--(stat|numstat|name-only|name-status)(=|$)/; + +class ZodNumber extends ZodType { + constructor() { + super(...arguments); + this.min = this.gte; + this.max = this.lte; + this.step = this.multipleOf; } -}); -var DiffSummary; -var init_DiffSummary = __esm2({ - "src/lib/responses/DiffSummary.ts"() { - DiffSummary = class { - constructor() { - this.changed = 0; - this.deletions = 0; - this.insertions = 0; - this.files = []; + _parse(input) { + if (this._def.coerce) { + input.data = Number(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.number) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.number, + received: ctx2.parsedType + }); + return INVALID; + } + let ctx = undefined; + const status = new ParseStatus; + for (const check of this._def.checks) { + if (check.kind === "int") { + if (!util.isInteger(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: "integer", + received: "float", + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "min") { + const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value; + if (tooSmall) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check.value, + type: "number", + inclusive: check.inclusive, + exact: false, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "max") { + const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value; + if (tooBig) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check.value, + type: "number", + inclusive: check.inclusive, + exact: false, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "multipleOf") { + if (floatSafeRemainder(input.data, check.value) !== 0) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.not_multiple_of, + multipleOf: check.value, + message: check.message + }); + status.dirty(); + } + } else if (check.kind === "finite") { + if (!Number.isFinite(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.not_finite, + message: check.message + }); + status.dirty(); + } + } else { + util.assertNever(check); } - }; + } + return { status: status.value, value: input.data }; } -}); -function getDiffParser(format = "") { - const parser4 = diffSummaryParsers[format]; - return (stdOut) => parseStringResponse(new DiffSummary, parser4, stdOut, false); -} -var statParser; -var numStatParser; -var nameOnlyParser; -var nameStatusParser; -var diffSummaryParsers; -var init_parse_diff_summary = __esm2({ - "src/lib/parsers/parse-diff-summary.ts"() { - init_log_format(); - init_DiffSummary(); - init_diff_name_status(); - init_utils2(); - statParser = [ - new LineParser(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/, (result, [file, changes, alterations = ""]) => { - result.files.push({ - file: file.trim(), - changes: asNumber(changes), - insertions: alterations.replace(/[^+]/g, "").length, - deletions: alterations.replace(/[^-]/g, "").length, - binary: false - }); - }), - new LineParser(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/, (result, [file, before, after]) => { - result.files.push({ - file: file.trim(), - before: asNumber(before), - after: asNumber(after), - binary: true - }); - }), - new LineParser(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/, (result, [changed, summary]) => { - const inserted = /(\d+) i/.exec(summary); - const deleted = /(\d+) d/.exec(summary); - result.changed = asNumber(changed); - result.insertions = asNumber(inserted == null ? undefined : inserted[1]); - result.deletions = asNumber(deleted == null ? undefined : deleted[1]); - }) - ]; - numStatParser = [ - new LineParser(/(\d+)\t(\d+)\t(.+)$/, (result, [changesInsert, changesDelete, file]) => { - const insertions = asNumber(changesInsert); - const deletions = asNumber(changesDelete); - result.changed++; - result.insertions += insertions; - result.deletions += deletions; - result.files.push({ - file, - changes: insertions + deletions, - insertions, - deletions, - binary: false - }); - }), - new LineParser(/-\t-\t(.+)$/, (result, [file]) => { - result.changed++; - result.files.push({ - file, - after: 0, - before: 0, - binary: true - }); - }) - ]; - nameOnlyParser = [ - new LineParser(/(.+)$/, (result, [file]) => { - result.changed++; - result.files.push({ - file, - changes: 0, - insertions: 0, - deletions: 0, - binary: false - }); - }) - ]; - nameStatusParser = [ - new LineParser(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/, (result, [status, similarity, from, _to, to]) => { - result.changed++; - result.files.push({ - file: to != null ? to : from, - changes: 0, - insertions: 0, - deletions: 0, - binary: false, - status: orVoid(isDiffNameStatus(status) && status), - from: orVoid(!!to && from !== to && from), - similarity: asNumber(similarity) - }); - }) - ]; - diffSummaryParsers = { - [""]: statParser, - ["--stat"]: statParser, - ["--numstat"]: numStatParser, - ["--name-status"]: nameStatusParser, - ["--name-only"]: nameOnlyParser - }; + gte(value, message) { + return this.setLimit("min", value, true, errorUtil.toString(message)); } -}); -function lineBuilder(tokens, fields) { - return fields.reduce((line, field, index) => { - line[field] = tokens[index] || ""; - return line; - }, /* @__PURE__ */ Object.create({ diff: null })); -} -function createListLogSummaryParser(splitter = SPLITTER, fields = defaultFieldNames, logFormat = "") { - const parseDiffResult = getDiffParser(logFormat); - return function(stdOut) { - const all = toLinesWithContent(stdOut.trim(), false, START_BOUNDARY).map(function(item) { - const lineDetail = item.split(COMMIT_BOUNDARY); - const listLogLine = lineBuilder(lineDetail[0].split(splitter), fields); - if (lineDetail.length > 1 && !!lineDetail[1].trim()) { - listLogLine.diff = parseDiffResult(lineDetail[1]); - } - return listLogLine; - }); - return { - all, - latest: all.length && all[0] || null, - total: all.length - }; - }; -} -var START_BOUNDARY; -var COMMIT_BOUNDARY; -var SPLITTER; -var defaultFieldNames; -var init_parse_list_log_summary = __esm2({ - "src/lib/parsers/parse-list-log-summary.ts"() { - init_utils2(); - init_parse_diff_summary(); - init_log_format(); - START_BOUNDARY = "Ć²Ć²Ć²Ć²Ć²Ć² "; - COMMIT_BOUNDARY = " Ć²Ć²"; - SPLITTER = " Ć² "; - defaultFieldNames = ["hash", "date", "message", "refs", "author_name", "author_email"]; + gt(value, message) { + return this.setLimit("min", value, false, errorUtil.toString(message)); } -}); -var diff_exports = {}; -__export2(diff_exports, { - diffSummaryTask: () => diffSummaryTask, - validateLogFormatConfig: () => validateLogFormatConfig -}); -function diffSummaryTask(customArgs) { - let logFormat = logFormatFromCommand(customArgs); - const commands = ["diff"]; - if (logFormat === "") { - logFormat = "--stat"; - commands.push("--stat=4096"); + lte(value, message) { + return this.setLimit("max", value, true, errorUtil.toString(message)); } - commands.push(...customArgs); - return validateLogFormatConfig(commands) || { - commands, - format: "utf-8", - parser: getDiffParser(logFormat) - }; -} -function validateLogFormatConfig(customArgs) { - const flags = customArgs.filter(isLogFormat); - if (flags.length > 1) { - return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${flags.join(",")}`); + lt(value, message) { + return this.setLimit("max", value, false, errorUtil.toString(message)); } - if (flags.length && customArgs.includes("-z")) { - return configurationErrorTask(`Summary flag ${flags} parsing is not compatible with null termination option '-z'`); + setLimit(kind, value, inclusive, message) { + return new ZodNumber({ + ...this._def, + checks: [ + ...this._def.checks, + { + kind, + value, + inclusive, + message: errorUtil.toString(message) + } + ] + }); } -} -var init_diff = __esm2({ - "src/lib/tasks/diff.ts"() { - init_log_format(); - init_parse_diff_summary(); - init_task(); + _addCheck(check) { + return new ZodNumber({ + ...this._def, + checks: [...this._def.checks, check] + }); } -}); -function prettyFormat(format, splitter) { - const fields = []; - const formatStr = []; - Object.keys(format).forEach((field) => { - fields.push(field); - formatStr.push(String(format[field])); - }); - return [fields, formatStr.join(splitter)]; -} -function userOptions(input) { - return Object.keys(input).reduce((out, key2) => { - if (!(key2 in excludeOptions)) { - out[key2] = input[key2]; - } - return out; - }, {}); -} -function parseLogOptions(opt = {}, customArgs = []) { - const splitter = filterType(opt.splitter, filterString, SPLITTER); - const format = !filterPrimitives(opt.format) && opt.format ? opt.format : { - hash: "%H", - date: opt.strictDate === false ? "%ai" : "%aI", - message: "%s", - refs: "%D", - body: opt.multiLine ? "%B" : "%b", - author_name: opt.mailMap !== false ? "%aN" : "%an", - author_email: opt.mailMap !== false ? "%aE" : "%ae" - }; - const [fields, formatStr] = prettyFormat(format, splitter); - const suffix = []; - const command = [ - `--pretty=format:${START_BOUNDARY}${formatStr}${COMMIT_BOUNDARY}`, - ...customArgs - ]; - const maxCount = opt.n || opt["max-count"] || opt.maxCount; - if (maxCount) { - command.push(`--max-count=${maxCount}`); + int(message) { + return this._addCheck({ + kind: "int", + message: errorUtil.toString(message) + }); } - if (opt.from || opt.to) { - const rangeOperator = opt.symmetric !== false ? "..." : ".."; - suffix.push(`${opt.from || ""}${rangeOperator}${opt.to || ""}`); + positive(message) { + return this._addCheck({ + kind: "min", + value: 0, + inclusive: false, + message: errorUtil.toString(message) + }); } - if (filterString(opt.file)) { - command.push("--follow", pathspec(opt.file)); + negative(message) { + return this._addCheck({ + kind: "max", + value: 0, + inclusive: false, + message: errorUtil.toString(message) + }); } - appendTaskOptions(userOptions(opt), command); - return { - fields, - splitter, - commands: [...command, ...suffix] - }; -} -function logTask(splitter, fields, customArgs) { - const parser4 = createListLogSummaryParser(splitter, fields, logFormatFromCommand(customArgs)); - return { - commands: ["log", ...customArgs], - format: "utf-8", - parser: parser4 - }; -} -function log_default() { - return { - log(...rest) { - const next = trailingFunctionArgument(arguments); - const options = parseLogOptions(trailingOptionsArgument(arguments), filterType(arguments[0], filterArray)); - const task = rejectDeprecatedSignatures(...rest) || validateLogFormatConfig(options.commands) || createLogTask(options); - return this._runTask(task, next); - } - }; - function createLogTask(options) { - return logTask(options.splitter, options.fields, options.commands); + nonpositive(message) { + return this._addCheck({ + kind: "max", + value: 0, + inclusive: true, + message: errorUtil.toString(message) + }); } - function rejectDeprecatedSignatures(from, to) { - return filterString(from) && filterString(to) && configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`); + nonnegative(message) { + return this._addCheck({ + kind: "min", + value: 0, + inclusive: true, + message: errorUtil.toString(message) + }); } -} -var excludeOptions; -var init_log = __esm2({ - "src/lib/tasks/log.ts"() { - init_log_format(); - init_pathspec(); - init_parse_list_log_summary(); - init_utils2(); - init_task(); - init_diff(); - excludeOptions = /* @__PURE__ */ ((excludeOptions2) => { - excludeOptions2[excludeOptions2["--pretty"] = 0] = "--pretty"; - excludeOptions2[excludeOptions2["max-count"] = 1] = "max-count"; - excludeOptions2[excludeOptions2["maxCount"] = 2] = "maxCount"; - excludeOptions2[excludeOptions2["n"] = 3] = "n"; - excludeOptions2[excludeOptions2["file"] = 4] = "file"; - excludeOptions2[excludeOptions2["format"] = 5] = "format"; - excludeOptions2[excludeOptions2["from"] = 6] = "from"; - excludeOptions2[excludeOptions2["to"] = 7] = "to"; - excludeOptions2[excludeOptions2["splitter"] = 8] = "splitter"; - excludeOptions2[excludeOptions2["symmetric"] = 9] = "symmetric"; - excludeOptions2[excludeOptions2["mailMap"] = 10] = "mailMap"; - excludeOptions2[excludeOptions2["multiLine"] = 11] = "multiLine"; - excludeOptions2[excludeOptions2["strictDate"] = 12] = "strictDate"; - return excludeOptions2; - })(excludeOptions || {}); + multipleOf(value, message) { + return this._addCheck({ + kind: "multipleOf", + value, + message: errorUtil.toString(message) + }); } -}); -var MergeSummaryConflict; -var MergeSummaryDetail; -var init_MergeSummary = __esm2({ - "src/lib/responses/MergeSummary.ts"() { - MergeSummaryConflict = class { - constructor(reason, file = null, meta) { - this.reason = reason; - this.file = file; - this.meta = meta; - } - toString() { - return `${this.file}:${this.reason}`; - } - }; - MergeSummaryDetail = class { - constructor() { - this.conflicts = []; - this.merges = []; - this.result = "success"; - } - get failed() { - return this.conflicts.length > 0; - } - get reason() { - return this.result; - } - toString() { - if (this.conflicts.length) { - return `CONFLICTS: ${this.conflicts.join(", ")}`; - } - return "OK"; - } - }; + finite(message) { + return this._addCheck({ + kind: "finite", + message: errorUtil.toString(message) + }); + } + safe(message) { + return this._addCheck({ + kind: "min", + inclusive: true, + value: Number.MIN_SAFE_INTEGER, + message: errorUtil.toString(message) + })._addCheck({ + kind: "max", + inclusive: true, + value: Number.MAX_SAFE_INTEGER, + message: errorUtil.toString(message) + }); } -}); -var PullSummary; -var PullFailedSummary; -var init_PullSummary = __esm2({ - "src/lib/responses/PullSummary.ts"() { - PullSummary = class { - constructor() { - this.remoteMessages = { - all: [] - }; - this.created = []; - this.deleted = []; - this.files = []; - this.deletions = {}; - this.insertions = {}; - this.summary = { - changes: 0, - deletions: 0, - insertions: 0 - }; - } - }; - PullFailedSummary = class { - constructor() { - this.remote = ""; - this.hash = { - local: "", - remote: "" - }; - this.branch = { - local: "", - remote: "" - }; - this.message = ""; + get minValue() { + let min = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; } - toString() { - return this.message; + } + return min; + } + get maxValue() { + let max = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; } - }; + } + return max; } -}); -function objectEnumerationResult(remoteMessages) { - return remoteMessages.objects = remoteMessages.objects || { - compressing: 0, - counting: 0, - enumerating: 0, - packReused: 0, - reused: { count: 0, delta: 0 }, - total: { count: 0, delta: 0 } - }; -} -function asObjectCount(source) { - const count = /^\s*(\d+)/.exec(source); - const delta = /delta (\d+)/i.exec(source); - return { - count: asNumber(count && count[1] || "0"), - delta: asNumber(delta && delta[1] || "0") - }; -} -var remoteMessagesObjectParsers; -var init_parse_remote_objects = __esm2({ - "src/lib/parsers/parse-remote-objects.ts"() { - init_utils2(); - remoteMessagesObjectParsers = [ - new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => { - const key2 = action.toLowerCase(); - const enumeration = objectEnumerationResult(result.remoteMessages); - Object.assign(enumeration, { [key2]: asNumber(count) }); - }), - new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i, (result, [action, count]) => { - const key2 = action.toLowerCase(); - const enumeration = objectEnumerationResult(result.remoteMessages); - Object.assign(enumeration, { [key2]: asNumber(count) }); - }), - new RemoteLineParser(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i, (result, [total, reused, packReused]) => { - const objects = objectEnumerationResult(result.remoteMessages); - objects.total = asObjectCount(total); - objects.reused = asObjectCount(reused); - objects.packReused = asNumber(packReused); - }) - ]; + get isInt() { + return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value)); } -}); -function parseRemoteMessages(_stdOut, stdErr) { - return parseStringResponse({ remoteMessages: new RemoteMessageSummary }, parsers2, stdErr); -} -var parsers2; -var RemoteMessageSummary; -var init_parse_remote_messages = __esm2({ - "src/lib/parsers/parse-remote-messages.ts"() { - init_utils2(); - init_parse_remote_objects(); - parsers2 = [ - new RemoteLineParser(/^remote:\s*(.+)$/, (result, [text]) => { - result.remoteMessages.all.push(text.trim()); - return false; - }), - ...remoteMessagesObjectParsers, - new RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => { - result.remoteMessages.pullRequestUrl = pullRequestUrl; - }), - new RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => { - result.remoteMessages.vulnerabilities = { - count: asNumber(count), - summary, - url - }; - }) - ]; - RemoteMessageSummary = class { - constructor() { - this.all = []; + get isFinite() { + let max = null, min = null; + for (const ch of this._def.checks) { + if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") { + return true; + } else if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; + } else if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; } - }; + } + return Number.isFinite(min) && Number.isFinite(max); } -}); -function parsePullErrorResult(stdOut, stdErr) { - const pullError = parseStringResponse(new PullFailedSummary, errorParsers, [stdOut, stdErr]); - return pullError.message && pullError; } -var FILE_UPDATE_REGEX; -var SUMMARY_REGEX; -var ACTION_REGEX; -var parsers3; -var errorParsers; -var parsePullDetail; -var parsePullResult; -var init_parse_pull = __esm2({ - "src/lib/parsers/parse-pull.ts"() { - init_PullSummary(); - init_utils2(); - init_parse_remote_messages(); - FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/; - SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/; - ACTION_REGEX = /^(create|delete) mode \d+ (.+)/; - parsers3 = [ - new LineParser(FILE_UPDATE_REGEX, (result, [file, insertions, deletions]) => { - result.files.push(file); - if (insertions) { - result.insertions[file] = insertions.length; +ZodNumber.create = (params) => { + return new ZodNumber({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodNumber, + coerce: (params === null || params === undefined ? undefined : params.coerce) || false, + ...processCreateParams(params) + }); +}; + +class ZodBigInt extends ZodType { + constructor() { + super(...arguments); + this.min = this.gte; + this.max = this.lte; + } + _parse(input) { + if (this._def.coerce) { + try { + input.data = BigInt(input.data); + } catch (_a) { + return this._getInvalidInput(input); + } + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.bigint) { + return this._getInvalidInput(input); + } + let ctx = undefined; + const status = new ParseStatus; + for (const check of this._def.checks) { + if (check.kind === "min") { + const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value; + if (tooSmall) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + type: "bigint", + minimum: check.value, + inclusive: check.inclusive, + message: check.message + }); + status.dirty(); } - if (deletions) { - result.deletions[file] = deletions.length; + } else if (check.kind === "max") { + const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value; + if (tooBig) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + type: "bigint", + maximum: check.value, + inclusive: check.inclusive, + message: check.message + }); + status.dirty(); } - }), - new LineParser(SUMMARY_REGEX, (result, [changes, , insertions, , deletions]) => { - if (insertions !== undefined || deletions !== undefined) { - result.summary.changes = +changes || 0; - result.summary.insertions = +insertions || 0; - result.summary.deletions = +deletions || 0; - return true; + } else if (check.kind === "multipleOf") { + if (input.data % check.value !== BigInt(0)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.not_multiple_of, + multipleOf: check.value, + message: check.message + }); + status.dirty(); } - return false; - }), - new LineParser(ACTION_REGEX, (result, [action, file]) => { - append(result.files, file); - append(action === "create" ? result.created : result.deleted, file); - }) - ]; - errorParsers = [ - new LineParser(/^from\s(.+)$/i, (result, [remote]) => void (result.remote = remote)), - new LineParser(/^fatal:\s(.+)$/, (result, [message]) => void (result.message = message)), - new LineParser(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/, (result, [hashLocal, hashRemote, branchLocal, branchRemote]) => { - result.branch.local = branchLocal; - result.hash.local = hashLocal; - result.branch.remote = branchRemote; - result.hash.remote = hashRemote; - }) - ]; - parsePullDetail = (stdOut, stdErr) => { - return parseStringResponse(new PullSummary, parsers3, [stdOut, stdErr]); - }; - parsePullResult = (stdOut, stdErr) => { - return Object.assign(new PullSummary, parsePullDetail(stdOut, stdErr), parseRemoteMessages(stdOut, stdErr)); - }; + } else { + util.assertNever(check); + } + } + return { status: status.value, value: input.data }; } -}); -var parsers4; -var parseMergeResult; -var parseMergeDetail; -var init_parse_merge = __esm2({ - "src/lib/parsers/parse-merge.ts"() { - init_MergeSummary(); - init_utils2(); - init_parse_pull(); - parsers4 = [ - new LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => { - summary.merges.push(autoMerge); - }), - new LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { - summary.conflicts.push(new MergeSummaryConflict(reason, file)); - }), - new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef]) => { - summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef })); - }), - new LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { - summary.conflicts.push(new MergeSummaryConflict(reason, null)); - }), - new LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => { - summary.result = result; - }) - ]; - parseMergeResult = (stdOut, stdErr) => { - return Object.assign(parseMergeDetail(stdOut, stdErr), parsePullResult(stdOut, stdErr)); - }; - parseMergeDetail = (stdOut) => { - return parseStringResponse(new MergeSummaryDetail, parsers4, stdOut); - }; + _getInvalidInput(input) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.bigint, + received: ctx.parsedType + }); + return INVALID; } -}); -function mergeTask(customArgs) { - if (!customArgs.length) { - return configurationErrorTask("Git.merge requires at least one option"); + gte(value, message) { + return this.setLimit("min", value, true, errorUtil.toString(message)); } - return { - commands: ["merge", ...customArgs], - format: "utf-8", - parser(stdOut, stdErr) { - const merge = parseMergeResult(stdOut, stdErr); - if (merge.failed) { - throw new GitResponseError(merge); - } - return merge; - } - }; -} -var init_merge = __esm2({ - "src/lib/tasks/merge.ts"() { - init_git_response_error(); - init_parse_merge(); - init_task(); + gt(value, message) { + return this.setLimit("min", value, false, errorUtil.toString(message)); } -}); -function pushResultPushedItem(local, remote, status) { - const deleted = status.includes("deleted"); - const tag = status.includes("tag") || /^refs\/tags/.test(local); - const alreadyUpdated = !status.includes("new"); - return { - deleted, - tag, - branch: !tag, - new: !alreadyUpdated, - alreadyUpdated, - local, - remote - }; -} -var parsers5; -var parsePushResult; -var parsePushDetail; -var init_parse_push = __esm2({ - "src/lib/parsers/parse-push.ts"() { - init_utils2(); - init_parse_remote_messages(); - parsers5 = [ - new LineParser(/^Pushing to (.+)$/, (result, [repo]) => { - result.repo = repo; - }), - new LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { - result.ref = __spreadProps(__spreadValues({}, result.ref || {}), { - local - }); - }), - new LineParser(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { - result.pushed.push(pushResultPushedItem(local, remote, type)); - }), - new LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { - result.branch = __spreadProps(__spreadValues({}, result.branch || {}), { - local, - remote, - remoteName - }); - }), - new LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => { - result.update = { - head: { - local, - remote - }, - hash: { - from, - to - } - }; - }) - ]; - parsePushResult = (stdOut, stdErr) => { - const pushDetail = parsePushDetail(stdOut, stdErr); - const responseDetail = parseRemoteMessages(stdOut, stdErr); - return __spreadValues(__spreadValues({}, pushDetail), responseDetail); - }; - parsePushDetail = (stdOut, stdErr) => { - return parseStringResponse({ pushed: [] }, parsers5, [stdOut, stdErr]); - }; + lte(value, message) { + return this.setLimit("max", value, true, errorUtil.toString(message)); } -}); -var push_exports = {}; -__export2(push_exports, { - pushTagsTask: () => pushTagsTask, - pushTask: () => pushTask -}); -function pushTagsTask(ref = {}, customArgs) { - append(customArgs, "--tags"); - return pushTask(ref, customArgs); -} -function pushTask(ref = {}, customArgs) { - const commands = ["push", ...customArgs]; - if (ref.branch) { - commands.splice(1, 0, ref.branch); + lt(value, message) { + return this.setLimit("max", value, false, errorUtil.toString(message)); } - if (ref.remote) { - commands.splice(1, 0, ref.remote); + setLimit(kind, value, inclusive, message) { + return new ZodBigInt({ + ...this._def, + checks: [ + ...this._def.checks, + { + kind, + value, + inclusive, + message: errorUtil.toString(message) + } + ] + }); } - remove(commands, "-v"); - append(commands, "--verbose"); - append(commands, "--porcelain"); - return { - commands, - format: "utf-8", - parser: parsePushResult - }; -} -var init_push = __esm2({ - "src/lib/tasks/push.ts"() { - init_parse_push(); - init_utils2(); + _addCheck(check) { + return new ZodBigInt({ + ...this._def, + checks: [...this._def.checks, check] + }); } -}); -function show_default() { - return { - showBuffer() { - const commands = ["show", ...getTrailingOptions(arguments, 1)]; - if (!commands.includes("--binary")) { - commands.splice(1, 0, "--binary"); + positive(message) { + return this._addCheck({ + kind: "min", + value: BigInt(0), + inclusive: false, + message: errorUtil.toString(message) + }); + } + negative(message) { + return this._addCheck({ + kind: "max", + value: BigInt(0), + inclusive: false, + message: errorUtil.toString(message) + }); + } + nonpositive(message) { + return this._addCheck({ + kind: "max", + value: BigInt(0), + inclusive: true, + message: errorUtil.toString(message) + }); + } + nonnegative(message) { + return this._addCheck({ + kind: "min", + value: BigInt(0), + inclusive: true, + message: errorUtil.toString(message) + }); + } + multipleOf(value, message) { + return this._addCheck({ + kind: "multipleOf", + value, + message: errorUtil.toString(message) + }); + } + get minValue() { + let min = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; } - return this._runTask(straightThroughBufferTask(commands), trailingFunctionArgument(arguments)); - }, - show() { - const commands = ["show", ...getTrailingOptions(arguments, 1)]; - return this._runTask(straightThroughStringTask(commands), trailingFunctionArgument(arguments)); } - }; -} -var init_show = __esm2({ - "src/lib/tasks/show.ts"() { - init_utils2(); - init_task(); + return min; } -}); -var fromPathRegex; -var FileStatusSummary; -var init_FileStatusSummary = __esm2({ - "src/lib/responses/FileStatusSummary.ts"() { - fromPathRegex = /^(.+)\0(.+)$/; - FileStatusSummary = class { - constructor(path, index, working_dir) { - this.path = path; - this.index = index; - this.working_dir = working_dir; - if (index === "R" || working_dir === "R") { - const detail = fromPathRegex.exec(path) || [null, path, path]; - this.from = detail[2] || ""; - this.path = detail[1] || ""; - } + get maxValue() { + let max = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; } - }; + } + return max; } -}); -function renamedFile(line) { - const [to, from] = line.split(NULL); - return { - from: from || to, - to - }; -} -function parser3(indexX, indexY, handler) { - return [`${indexX}${indexY}`, handler]; -} -function conflicts(indexX, ...indexY) { - return indexY.map((y) => parser3(indexX, y, (result, file) => append(result.conflicted, file))); } -function splitLine(result, lineStr) { - const trimmed2 = lineStr.trim(); - switch (" ") { - case trimmed2.charAt(2): - return data(trimmed2.charAt(0), trimmed2.charAt(1), trimmed2.substr(3)); - case trimmed2.charAt(1): - return data(" ", trimmed2.charAt(0), trimmed2.substr(2)); - default: - return; - } - function data(index, workingDir, path) { - const raw = `${index}${workingDir}`; - const handler = parsers6.get(raw); - if (handler) { - handler(result, path); +ZodBigInt.create = (params) => { + var _a; + return new ZodBigInt({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodBigInt, + coerce: (_a = params === null || params === undefined ? undefined : params.coerce) !== null && _a !== undefined ? _a : false, + ...processCreateParams(params) + }); +}; + +class ZodBoolean extends ZodType { + _parse(input) { + if (this._def.coerce) { + input.data = Boolean(input.data); } - if (raw !== "##" && raw !== "!!") { - result.files.push(new FileStatusSummary(path, index, workingDir)); + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.boolean) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.boolean, + received: ctx.parsedType + }); + return INVALID; } + return OK(input.data); } } -var StatusSummary; -var parsers6; -var parseStatusSummary; -var init_StatusSummary = __esm2({ - "src/lib/responses/StatusSummary.ts"() { - init_utils2(); - init_FileStatusSummary(); - StatusSummary = class { - constructor() { - this.not_added = []; - this.conflicted = []; - this.created = []; - this.deleted = []; - this.ignored = undefined; - this.modified = []; - this.renamed = []; - this.files = []; - this.staged = []; - this.ahead = 0; - this.behind = 0; - this.current = null; - this.tracking = null; - this.detached = false; - this.isClean = () => { - return !this.files.length; - }; - } - }; - parsers6 = new Map([ - parser3(" ", "A", (result, file) => append(result.created, file)), - parser3(" ", "D", (result, file) => append(result.deleted, file)), - parser3(" ", "M", (result, file) => append(result.modified, file)), - parser3("A", " ", (result, file) => append(result.created, file) && append(result.staged, file)), - parser3("A", "M", (result, file) => append(result.created, file) && append(result.staged, file) && append(result.modified, file)), - parser3("D", " ", (result, file) => append(result.deleted, file) && append(result.staged, file)), - parser3("M", " ", (result, file) => append(result.modified, file) && append(result.staged, file)), - parser3("M", "M", (result, file) => append(result.modified, file) && append(result.staged, file)), - parser3("R", " ", (result, file) => { - append(result.renamed, renamedFile(file)); - }), - parser3("R", "M", (result, file) => { - const renamed = renamedFile(file); - append(result.renamed, renamed); - append(result.modified, renamed.to); - }), - parser3("!", "!", (_result, _file) => { - append(_result.ignored = _result.ignored || [], _file); - }), - parser3("?", "?", (result, file) => append(result.not_added, file)), - ...conflicts("A", "A", "U"), - ...conflicts("D", "D", "U"), - ...conflicts("U", "A", "D", "U"), - [ - "##", - (result, line) => { - const aheadReg = /ahead (\d+)/; - const behindReg = /behind (\d+)/; - const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; - const trackingReg = /\.{3}(\S*)/; - const onEmptyBranchReg = /\son\s([\S]+)$/; - let regexResult; - regexResult = aheadReg.exec(line); - result.ahead = regexResult && +regexResult[1] || 0; - regexResult = behindReg.exec(line); - result.behind = regexResult && +regexResult[1] || 0; - regexResult = currentReg.exec(line); - result.current = regexResult && regexResult[1]; - regexResult = trackingReg.exec(line); - result.tracking = regexResult && regexResult[1]; - regexResult = onEmptyBranchReg.exec(line); - result.current = regexResult && regexResult[1] || result.current; - result.detached = /\(no branch\)/.test(line); - } - ] - ]); - parseStatusSummary = function(text) { - const lines2 = text.split(NULL); - const status = new StatusSummary; - for (let i = 0, l = lines2.length;i < l; ) { - let line = lines2[i++].trim(); - if (!line) { - continue; +ZodBoolean.create = (params) => { + return new ZodBoolean({ + typeName: ZodFirstPartyTypeKind.ZodBoolean, + coerce: (params === null || params === undefined ? undefined : params.coerce) || false, + ...processCreateParams(params) + }); +}; + +class ZodDate extends ZodType { + _parse(input) { + if (this._def.coerce) { + input.data = new Date(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.date) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.date, + received: ctx2.parsedType + }); + return INVALID; + } + if (isNaN(input.data.getTime())) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_date + }); + return INVALID; + } + const status = new ParseStatus; + let ctx = undefined; + for (const check of this._def.checks) { + if (check.kind === "min") { + if (input.data.getTime() < check.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + message: check.message, + inclusive: true, + exact: false, + minimum: check.value, + type: "date" + }); + status.dirty(); } - if (line.charAt(0) === "R") { - line += NULL + (lines2[i++] || ""); + } else if (check.kind === "max") { + if (input.data.getTime() > check.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + message: check.message, + inclusive: true, + exact: false, + maximum: check.value, + type: "date" + }); + status.dirty(); } - splitLine(status, line); + } else { + util.assertNever(check); } - return status; + } + return { + status: status.value, + value: new Date(input.data.getTime()) }; } -}); -function statusTask(customArgs) { - const commands = [ - "status", - "--porcelain", - "-b", - "-u", - "--null", - ...customArgs.filter((arg) => !ignoredOptions.includes(arg)) - ]; - return { - format: "utf-8", - commands, - parser(text) { - return parseStatusSummary(text); + _addCheck(check) { + return new ZodDate({ + ...this._def, + checks: [...this._def.checks, check] + }); + } + min(minDate, message) { + return this._addCheck({ + kind: "min", + value: minDate.getTime(), + message: errorUtil.toString(message) + }); + } + max(maxDate, message) { + return this._addCheck({ + kind: "max", + value: maxDate.getTime(), + message: errorUtil.toString(message) + }); + } + get minDate() { + let min = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; + } } - }; -} -var ignoredOptions; -var init_status = __esm2({ - "src/lib/tasks/status.ts"() { - init_StatusSummary(); - ignoredOptions = ["--null", "-z"]; + return min != null ? new Date(min) : null; + } + get maxDate() { + let max = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; + } + } + return max != null ? new Date(max) : null; } -}); -function versionResponse(major = 0, minor = 0, patch = 0, agent = "", installed = true) { - return Object.defineProperty({ - major, - minor, - patch, - agent, - installed - }, "toString", { - value() { - return `${this.major}.${this.minor}.${this.patch}`; - }, - configurable: false, - enumerable: false - }); -} -function notInstalledResponse() { - return versionResponse(0, 0, 0, "", false); } -function version_default() { - return { - version() { - return this._runTask({ - commands: ["--version"], - format: "utf-8", - parser: versionParser, - onError(result, error, done, fail) { - if (result.exitCode === -2) { - return done(Buffer.from(NOT_INSTALLED)); - } - fail(error); - } +ZodDate.create = (params) => { + return new ZodDate({ + checks: [], + coerce: (params === null || params === undefined ? undefined : params.coerce) || false, + typeName: ZodFirstPartyTypeKind.ZodDate, + ...processCreateParams(params) + }); +}; + +class ZodSymbol extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.symbol) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.symbol, + received: ctx.parsedType }); + return INVALID; } - }; + return OK(input.data); + } } -function versionParser(stdOut) { - if (stdOut === NOT_INSTALLED) { - return notInstalledResponse(); +ZodSymbol.create = (params) => { + return new ZodSymbol({ + typeName: ZodFirstPartyTypeKind.ZodSymbol, + ...processCreateParams(params) + }); +}; + +class ZodUndefined extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.undefined) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.undefined, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); } - return parseStringResponse(versionResponse(0, 0, 0, stdOut), parsers7, stdOut); } -var NOT_INSTALLED; -var parsers7; -var init_version = __esm2({ - "src/lib/tasks/version.ts"() { - init_utils2(); - NOT_INSTALLED = "installed=false"; - parsers7 = [ - new LineParser(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/, (result, [major, minor, patch, agent = ""]) => { - Object.assign(result, versionResponse(asNumber(major), asNumber(minor), asNumber(patch), agent)); - }), - new LineParser(/version (\d+)\.(\d+)\.(\D+)(.+)?$/, (result, [major, minor, patch, agent = ""]) => { - Object.assign(result, versionResponse(asNumber(major), asNumber(minor), patch, agent)); - }) - ]; +ZodUndefined.create = (params) => { + return new ZodUndefined({ + typeName: ZodFirstPartyTypeKind.ZodUndefined, + ...processCreateParams(params) + }); +}; + +class ZodNull extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.null) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.null, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); } -}); -var simple_git_api_exports = {}; -__export2(simple_git_api_exports, { - SimpleGitApi: () => SimpleGitApi -}); -var SimpleGitApi; -var init_simple_git_api = __esm2({ - "src/lib/simple-git-api.ts"() { - init_task_callback(); - init_change_working_directory(); - init_checkout(); - init_count_objects(); - init_commit(); - init_config(); - init_first_commit(); - init_grep(); - init_hash_object(); - init_init(); - init_log(); - init_merge(); - init_push(); - init_show(); - init_status(); - init_task(); - init_version(); - init_utils2(); - SimpleGitApi = class { - constructor(_executor) { - this._executor = _executor; - } - _runTask(task, then) { - const chain = this._executor.chain(); - const promise = chain.push(task); - if (then) { - taskCallback(task, promise, then); - } - return Object.create(this, { - then: { value: promise.then.bind(promise) }, - catch: { value: promise.catch.bind(promise) }, - _executor: { value: chain } - }); - } - add(files) { - return this._runTask(straightThroughStringTask(["add", ...asArray(files)]), trailingFunctionArgument(arguments)); - } - cwd(directory) { - const next = trailingFunctionArgument(arguments); - if (typeof directory === "string") { - return this._runTask(changeWorkingDirectoryTask(directory, this._executor), next); - } - if (typeof (directory == null ? undefined : directory.path) === "string") { - return this._runTask(changeWorkingDirectoryTask(directory.path, directory.root && this._executor || undefined), next); - } - return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next); - } - hashObject(path, write) { - return this._runTask(hashObjectTask(path, write === true), trailingFunctionArgument(arguments)); - } - init(bare) { - return this._runTask(initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - } - merge() { - return this._runTask(mergeTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - } - mergeFromTo(remote, branch) { - if (!(filterString(remote) && filterString(branch))) { - return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`)); - } - return this._runTask(mergeTask([remote, branch, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false)); - } - outputHandler(handler) { - this._executor.outputHandler = handler; - return this; - } - push() { - const task = pushTask({ - remote: filterType(arguments[0], filterString), - branch: filterType(arguments[1], filterString) - }, getTrailingOptions(arguments)); - return this._runTask(task, trailingFunctionArgument(arguments)); - } - stash() { - return this._runTask(straightThroughStringTask(["stash", ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); - } - status() { - return this._runTask(statusTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - } - }; - Object.assign(SimpleGitApi.prototype, checkout_default(), commit_default(), config_default(), count_objects_default(), first_commit_default(), grep_default(), log_default(), show_default(), version_default()); +} +ZodNull.create = (params) => { + return new ZodNull({ + typeName: ZodFirstPartyTypeKind.ZodNull, + ...processCreateParams(params) + }); +}; + +class ZodAny extends ZodType { + constructor() { + super(...arguments); + this._any = true; } -}); -var scheduler_exports = {}; -__export2(scheduler_exports, { - Scheduler: () => Scheduler -}); -var createScheduledTask; -var Scheduler; -var init_scheduler = __esm2({ - "src/lib/runners/scheduler.ts"() { - init_utils2(); - init_git_logger(); - createScheduledTask = (() => { - let id = 0; - return () => { - id++; - const { promise, done } = import_promise_deferred.createDeferred(); - return { - promise, - done, - id - }; - }; - })(); - Scheduler = class { - constructor(concurrency = 2) { - this.concurrency = concurrency; - this.logger = createLogger("", "scheduler"); - this.pending = []; - this.running = []; - this.logger(`Constructed, concurrency=%s`, concurrency); - } - schedule() { - if (!this.pending.length || this.running.length >= this.concurrency) { - this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`, this.pending.length, this.running.length, this.concurrency); - return; - } - const task = append(this.running, this.pending.shift()); - this.logger(`Attempting id=%s`, task.id); - task.done(() => { - this.logger(`Completing id=`, task.id); - remove(this.running, task); - this.schedule(); - }); - } - next() { - const { promise, id } = append(this.pending, createScheduledTask()); - this.logger(`Scheduling id=%s`, id); - this.schedule(); - return promise; - } - }; + _parse(input) { + return OK(input.data); } -}); -var apply_patch_exports = {}; -__export2(apply_patch_exports, { - applyPatchTask: () => applyPatchTask -}); -function applyPatchTask(patches, customArgs) { - return straightThroughStringTask(["apply", ...customArgs, ...patches]); } -var init_apply_patch = __esm2({ - "src/lib/tasks/apply-patch.ts"() { - init_task(); +ZodAny.create = (params) => { + return new ZodAny({ + typeName: ZodFirstPartyTypeKind.ZodAny, + ...processCreateParams(params) + }); +}; + +class ZodUnknown extends ZodType { + constructor() { + super(...arguments); + this._unknown = true; + } + _parse(input) { + return OK(input.data); } -}); -function branchDeletionSuccess(branch, hash) { - return { - branch, - hash, - success: true - }; -} -function branchDeletionFailure(branch) { - return { - branch, - hash: null, - success: false - }; } -var BranchDeletionBatch; -var init_BranchDeleteSummary = __esm2({ - "src/lib/responses/BranchDeleteSummary.ts"() { - BranchDeletionBatch = class { - constructor() { - this.all = []; - this.branches = {}; - this.errors = []; - } - get success() { - return !this.errors.length; - } - }; +ZodUnknown.create = (params) => { + return new ZodUnknown({ + typeName: ZodFirstPartyTypeKind.ZodUnknown, + ...processCreateParams(params) + }); +}; + +class ZodNever extends ZodType { + _parse(input) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.never, + received: ctx.parsedType + }); + return INVALID; } -}); -function hasBranchDeletionError(data, processExitCode) { - return processExitCode === 1 && deleteErrorRegex.test(data); } -var deleteSuccessRegex; -var deleteErrorRegex; -var parsers8; -var parseBranchDeletions; -var init_parse_branch_delete = __esm2({ - "src/lib/parsers/parse-branch-delete.ts"() { - init_BranchDeleteSummary(); - init_utils2(); - deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; - deleteErrorRegex = /^error[^']+'([^']+)'/m; - parsers8 = [ - new LineParser(deleteSuccessRegex, (result, [branch, hash]) => { - const deletion = branchDeletionSuccess(branch, hash); - result.all.push(deletion); - result.branches[branch] = deletion; - }), - new LineParser(deleteErrorRegex, (result, [branch]) => { - const deletion = branchDeletionFailure(branch); - result.errors.push(deletion); - result.all.push(deletion); - result.branches[branch] = deletion; - }) - ]; - parseBranchDeletions = (stdOut, stdErr) => { - return parseStringResponse(new BranchDeletionBatch, parsers8, [stdOut, stdErr]); - }; +ZodNever.create = (params) => { + return new ZodNever({ + typeName: ZodFirstPartyTypeKind.ZodNever, + ...processCreateParams(params) + }); +}; + +class ZodVoid extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.undefined) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.void, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); } -}); -var BranchSummaryResult; -var init_BranchSummary = __esm2({ - "src/lib/responses/BranchSummary.ts"() { - BranchSummaryResult = class { - constructor() { - this.all = []; - this.branches = {}; - this.current = ""; - this.detached = false; +} +ZodVoid.create = (params) => { + return new ZodVoid({ + typeName: ZodFirstPartyTypeKind.ZodVoid, + ...processCreateParams(params) + }); +}; + +class ZodArray extends ZodType { + _parse(input) { + const { ctx, status } = this._processInputParams(input); + const def = this._def; + if (ctx.parsedType !== ZodParsedType.array) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.array, + received: ctx.parsedType + }); + return INVALID; + } + if (def.exactLength !== null) { + const tooBig = ctx.data.length > def.exactLength.value; + const tooSmall = ctx.data.length < def.exactLength.value; + if (tooBig || tooSmall) { + addIssueToContext(ctx, { + code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small, + minimum: tooSmall ? def.exactLength.value : undefined, + maximum: tooBig ? def.exactLength.value : undefined, + type: "array", + inclusive: true, + exact: true, + message: def.exactLength.message + }); + status.dirty(); } - push(status, detached, name, commit, label) { - if (status === "*") { - this.detached = detached; - this.current = name; - } - this.all.push(name); - this.branches[name] = { - current: status === "*", - linkedWorkTree: status === "+", - name, - commit, - label - }; + } + if (def.minLength !== null) { + if (ctx.data.length < def.minLength.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: def.minLength.value, + type: "array", + inclusive: true, + exact: false, + message: def.minLength.message + }); + status.dirty(); } - }; + } + if (def.maxLength !== null) { + if (ctx.data.length > def.maxLength.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: def.maxLength.value, + type: "array", + inclusive: true, + exact: false, + message: def.maxLength.message + }); + status.dirty(); + } + } + if (ctx.common.async) { + return Promise.all([...ctx.data].map((item, i) => { + return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i)); + })).then((result2) => { + return ParseStatus.mergeArray(status, result2); + }); + } + const result = [...ctx.data].map((item, i) => { + return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i)); + }); + return ParseStatus.mergeArray(status, result); + } + get element() { + return this._def.type; + } + min(minLength, message) { + return new ZodArray({ + ...this._def, + minLength: { value: minLength, message: errorUtil.toString(message) } + }); + } + max(maxLength, message) { + return new ZodArray({ + ...this._def, + maxLength: { value: maxLength, message: errorUtil.toString(message) } + }); + } + length(len, message) { + return new ZodArray({ + ...this._def, + exactLength: { value: len, message: errorUtil.toString(message) } + }); + } + nonempty(message) { + return this.min(1, message); } -}); -function branchStatus(input) { - return input ? input.charAt(0) : ""; -} -function parseBranchSummary(stdOut) { - return parseStringResponse(new BranchSummaryResult, parsers9, stdOut); } -var parsers9; -var init_parse_branch = __esm2({ - "src/lib/parsers/parse-branch.ts"() { - init_BranchSummary(); - init_utils2(); - parsers9 = [ - new LineParser(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit, label]) => { - result.push(branchStatus(current), true, name, commit, label); - }), - new LineParser(new RegExp("^([*+]\\s)?(\\S+)\\s+([a-z0-9]+)\\s?(.*)$", "s"), (result, [current, name, commit, label]) => { - result.push(branchStatus(current), false, name, commit, label); - }) - ]; +ZodArray.create = (schema, params) => { + return new ZodArray({ + type: schema, + minLength: null, + maxLength: null, + exactLength: null, + typeName: ZodFirstPartyTypeKind.ZodArray, + ...processCreateParams(params) + }); +}; +function deepPartialify(schema) { + if (schema instanceof ZodObject) { + const newShape = {}; + for (const key in schema.shape) { + const fieldSchema = schema.shape[key]; + newShape[key] = ZodOptional.create(deepPartialify(fieldSchema)); + } + return new ZodObject({ + ...schema._def, + shape: () => newShape + }); + } else if (schema instanceof ZodArray) { + return new ZodArray({ + ...schema._def, + type: deepPartialify(schema.element) + }); + } else if (schema instanceof ZodOptional) { + return ZodOptional.create(deepPartialify(schema.unwrap())); + } else if (schema instanceof ZodNullable) { + return ZodNullable.create(deepPartialify(schema.unwrap())); + } else if (schema instanceof ZodTuple) { + return ZodTuple.create(schema.items.map((item) => deepPartialify(item))); + } else { + return schema; } -}); -var branch_exports = {}; -__export2(branch_exports, { - branchLocalTask: () => branchLocalTask, - branchTask: () => branchTask, - containsDeleteBranchCommand: () => containsDeleteBranchCommand, - deleteBranchTask: () => deleteBranchTask, - deleteBranchesTask: () => deleteBranchesTask -}); -function containsDeleteBranchCommand(commands) { - const deleteCommands = ["-d", "-D", "--delete"]; - return commands.some((command) => deleteCommands.includes(command)); } -function branchTask(customArgs) { - const isDelete = containsDeleteBranchCommand(customArgs); - const commands = ["branch", ...customArgs]; - if (commands.length === 1) { - commands.push("-a"); + +class ZodObject extends ZodType { + constructor() { + super(...arguments); + this._cached = null; + this.nonstrict = this.passthrough; + this.augment = this.extend; } - if (!commands.includes("-v")) { - commands.splice(1, 0, "-v"); + _getCached() { + if (this._cached !== null) + return this._cached; + const shape = this._def.shape(); + const keys = util.objectKeys(shape); + return this._cached = { shape, keys }; } - return { - format: "utf-8", - commands, - parser(stdOut, stdErr) { - if (isDelete) { - return parseBranchDeletions(stdOut, stdErr).all[0]; - } - return parseBranchSummary(stdOut); + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.object) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx2.parsedType + }); + return INVALID; } - }; -} -function branchLocalTask() { - const parser4 = parseBranchSummary; - return { - format: "utf-8", - commands: ["branch", "-v"], - parser: parser4 - }; -} -function deleteBranchesTask(branches, forceDelete = false) { - return { - format: "utf-8", - commands: ["branch", "-v", forceDelete ? "-D" : "-d", ...branches], - parser(stdOut, stdErr) { - return parseBranchDeletions(stdOut, stdErr); - }, - onError({ exitCode, stdOut }, error, done, fail) { - if (!hasBranchDeletionError(String(error), exitCode)) { - return fail(error); + const { status, ctx } = this._processInputParams(input); + const { shape, keys: shapeKeys } = this._getCached(); + const extraKeys = []; + if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) { + for (const key in ctx.data) { + if (!shapeKeys.includes(key)) { + extraKeys.push(key); + } } - done(stdOut); } - }; -} -function deleteBranchTask(branch, forceDelete = false) { - const task = { - format: "utf-8", - commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch], - parser(stdOut, stdErr) { - return parseBranchDeletions(stdOut, stdErr).branches[branch]; - }, - onError({ exitCode, stdErr, stdOut }, error, _2, fail) { - if (!hasBranchDeletionError(String(error), exitCode)) { - return fail(error); + const pairs = []; + for (const key of shapeKeys) { + const keyValidator = shape[key]; + const value = ctx.data[key]; + pairs.push({ + key: { status: "valid", value: key }, + value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)), + alwaysSet: key in ctx.data + }); + } + if (this._def.catchall instanceof ZodNever) { + const unknownKeys = this._def.unknownKeys; + if (unknownKeys === "passthrough") { + for (const key of extraKeys) { + pairs.push({ + key: { status: "valid", value: key }, + value: { status: "valid", value: ctx.data[key] } + }); + } + } else if (unknownKeys === "strict") { + if (extraKeys.length > 0) { + addIssueToContext(ctx, { + code: ZodIssueCode.unrecognized_keys, + keys: extraKeys + }); + status.dirty(); + } + } else if (unknownKeys === "strip") + ; + else { + throw new Error(`Internal ZodObject error: invalid unknownKeys value.`); + } + } else { + const catchall = this._def.catchall; + for (const key of extraKeys) { + const value = ctx.data[key]; + pairs.push({ + key: { status: "valid", value: key }, + value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)), + alwaysSet: key in ctx.data + }); } - throw new GitResponseError(task.parser(bufferToString(stdOut), bufferToString(stdErr)), String(error)); } - }; - return task; -} -var init_branch = __esm2({ - "src/lib/tasks/branch.ts"() { - init_git_response_error(); - init_parse_branch_delete(); - init_parse_branch(); - init_utils2(); + if (ctx.common.async) { + return Promise.resolve().then(async () => { + const syncPairs = []; + for (const pair of pairs) { + const key = await pair.key; + const value = await pair.value; + syncPairs.push({ + key, + value, + alwaysSet: pair.alwaysSet + }); + } + return syncPairs; + }).then((syncPairs) => { + return ParseStatus.mergeObjectSync(status, syncPairs); + }); + } else { + return ParseStatus.mergeObjectSync(status, pairs); + } } -}); -var parseCheckIgnore; -var init_CheckIgnore = __esm2({ - "src/lib/responses/CheckIgnore.ts"() { - parseCheckIgnore = (text) => { - return text.split(/\n/g).map((line) => line.trim()).filter((file) => !!file); - }; + get shape() { + return this._def.shape(); } -}); -var check_ignore_exports = {}; -__export2(check_ignore_exports, { - checkIgnoreTask: () => checkIgnoreTask -}); -function checkIgnoreTask(paths) { - return { - commands: ["check-ignore", ...paths], - format: "utf-8", - parser: parseCheckIgnore - }; -} -var init_check_ignore = __esm2({ - "src/lib/tasks/check-ignore.ts"() { - init_CheckIgnore(); + strict(message) { + errorUtil.errToObj; + return new ZodObject({ + ...this._def, + unknownKeys: "strict", + ...message !== undefined ? { + errorMap: (issue, ctx) => { + var _a, _b, _c, _d; + const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === undefined ? undefined : _b.call(_a, issue, ctx).message) !== null && _c !== undefined ? _c : ctx.defaultError; + if (issue.code === "unrecognized_keys") + return { + message: (_d = errorUtil.errToObj(message).message) !== null && _d !== undefined ? _d : defaultError + }; + return { + message: defaultError + }; + } + } : {} + }); } -}); -var clone_exports = {}; -__export2(clone_exports, { - cloneMirrorTask: () => cloneMirrorTask, - cloneTask: () => cloneTask -}); -function disallowedCommand(command) { - return /^--upload-pack(=|$)/.test(command); -} -function cloneTask(repo, directory, customArgs) { - const commands = ["clone", ...customArgs]; - filterString(repo) && commands.push(repo); - filterString(directory) && commands.push(directory); - const banned = commands.find(disallowedCommand); - if (banned) { - return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + strip() { + return new ZodObject({ + ...this._def, + unknownKeys: "strip" + }); } - return straightThroughStringTask(commands); -} -function cloneMirrorTask(repo, directory, customArgs) { - append(customArgs, "--mirror"); - return cloneTask(repo, directory, customArgs); -} -var init_clone = __esm2({ - "src/lib/tasks/clone.ts"() { - init_task(); - init_utils2(); + passthrough() { + return new ZodObject({ + ...this._def, + unknownKeys: "passthrough" + }); + } + extend(augmentation) { + return new ZodObject({ + ...this._def, + shape: () => ({ + ...this._def.shape(), + ...augmentation + }) + }); } -}); -function parseFetchResult(stdOut, stdErr) { - const result = { - raw: stdOut, - remote: null, - branches: [], - tags: [], - updated: [], - deleted: [] - }; - return parseStringResponse(result, parsers10, [stdOut, stdErr]); -} -var parsers10; -var init_parse_fetch = __esm2({ - "src/lib/parsers/parse-fetch.ts"() { - init_utils2(); - parsers10 = [ - new LineParser(/From (.+)$/, (result, [remote]) => { - result.remote = remote; - }), - new LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { - result.branches.push({ - name, - tracking - }); - }), - new LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { - result.tags.push({ - name, - tracking - }); - }), - new LineParser(/- \[deleted]\s+\S+\s*-> (.+)$/, (result, [tracking]) => { - result.deleted.push({ - tracking - }); + merge(merging) { + const merged = new ZodObject({ + unknownKeys: merging._def.unknownKeys, + catchall: merging._def.catchall, + shape: () => ({ + ...this._def.shape(), + ...merging._def.shape() }), - new LineParser(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/, (result, [from, to, name, tracking]) => { - result.updated.push({ - name, - tracking, - to, - from - }); - }) - ]; + typeName: ZodFirstPartyTypeKind.ZodObject + }); + return merged; } -}); -var fetch_exports = {}; -__export2(fetch_exports, { - fetchTask: () => fetchTask -}); -function disallowedCommand2(command) { - return /^--upload-pack(=|$)/.test(command); -} -function fetchTask(remote, branch, customArgs) { - const commands = ["fetch", ...customArgs]; - if (remote && branch) { - commands.push(remote, branch); + setKey(key, schema) { + return this.augment({ [key]: schema }); } - const banned = commands.find(disallowedCommand2); - if (banned) { - return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + catchall(index) { + return new ZodObject({ + ...this._def, + catchall: index + }); } - return { - commands, - format: "utf-8", - parser: parseFetchResult - }; -} -var init_fetch = __esm2({ - "src/lib/tasks/fetch.ts"() { - init_parse_fetch(); - init_task(); + pick(mask) { + const shape = {}; + util.objectKeys(mask).forEach((key) => { + if (mask[key] && this.shape[key]) { + shape[key] = this.shape[key]; + } + }); + return new ZodObject({ + ...this._def, + shape: () => shape + }); } -}); -function parseMoveResult(stdOut) { - return parseStringResponse({ moves: [] }, parsers11, stdOut); -} -var parsers11; -var init_parse_move = __esm2({ - "src/lib/parsers/parse-move.ts"() { - init_utils2(); - parsers11 = [ - new LineParser(/^Renaming (.+) to (.+)$/, (result, [from, to]) => { - result.moves.push({ from, to }); - }) - ]; + omit(mask) { + const shape = {}; + util.objectKeys(this.shape).forEach((key) => { + if (!mask[key]) { + shape[key] = this.shape[key]; + } + }); + return new ZodObject({ + ...this._def, + shape: () => shape + }); } -}); -var move_exports = {}; -__export2(move_exports, { - moveTask: () => moveTask -}); -function moveTask(from, to) { - return { - commands: ["mv", "-v", ...asArray(from), to], - format: "utf-8", - parser: parseMoveResult - }; -} -var init_move = __esm2({ - "src/lib/tasks/move.ts"() { - init_parse_move(); - init_utils2(); + deepPartial() { + return deepPartialify(this); } -}); -var pull_exports = {}; -__export2(pull_exports, { - pullTask: () => pullTask -}); -function pullTask(remote, branch, customArgs) { - const commands = ["pull", ...customArgs]; - if (remote && branch) { - commands.splice(1, 0, remote, branch); + partial(mask) { + const newShape = {}; + util.objectKeys(this.shape).forEach((key) => { + const fieldSchema = this.shape[key]; + if (mask && !mask[key]) { + newShape[key] = fieldSchema; + } else { + newShape[key] = fieldSchema.optional(); + } + }); + return new ZodObject({ + ...this._def, + shape: () => newShape + }); } - return { - commands, - format: "utf-8", - parser(stdOut, stdErr) { - return parsePullResult(stdOut, stdErr); - }, - onError(result, _error, _done, fail) { - const pullError = parsePullErrorResult(bufferToString(result.stdOut), bufferToString(result.stdErr)); - if (pullError) { - return fail(new GitResponseError(pullError)); + required(mask) { + const newShape = {}; + util.objectKeys(this.shape).forEach((key) => { + if (mask && !mask[key]) { + newShape[key] = this.shape[key]; + } else { + const fieldSchema = this.shape[key]; + let newField = fieldSchema; + while (newField instanceof ZodOptional) { + newField = newField._def.innerType; + } + newShape[key] = newField; } - fail(_error); - } - }; -} -var init_pull = __esm2({ - "src/lib/tasks/pull.ts"() { - init_git_response_error(); - init_parse_pull(); - init_utils2(); + }); + return new ZodObject({ + ...this._def, + shape: () => newShape + }); + } + keyof() { + return createZodEnum(util.objectKeys(this.shape)); } -}); -function parseGetRemotes(text) { - const remotes = {}; - forEach(text, ([name]) => remotes[name] = { name }); - return Object.values(remotes); } -function parseGetRemotesVerbose(text) { - const remotes = {}; - forEach(text, ([name, url, purpose]) => { - if (!remotes.hasOwnProperty(name)) { - remotes[name] = { - name, - refs: { fetch: "", push: "" } - }; +ZodObject.create = (shape, params) => { + return new ZodObject({ + shape: () => shape, + unknownKeys: "strip", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) + }); +}; +ZodObject.strictCreate = (shape, params) => { + return new ZodObject({ + shape: () => shape, + unknownKeys: "strict", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) + }); +}; +ZodObject.lazycreate = (shape, params) => { + return new ZodObject({ + shape, + unknownKeys: "strip", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) + }); +}; + +class ZodUnion extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + const options = this._def.options; + function handleResults(results) { + for (const result of results) { + if (result.result.status === "valid") { + return result.result; + } + } + for (const result of results) { + if (result.result.status === "dirty") { + ctx.common.issues.push(...result.ctx.common.issues); + return result.result; + } + } + const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues)); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union, + unionErrors + }); + return INVALID; } - if (purpose && url) { - remotes[name].refs[purpose.replace(/[^a-z]/g, "")] = url; + if (ctx.common.async) { + return Promise.all(options.map(async (option) => { + const childCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + }, + parent: null + }; + return { + result: await option._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: childCtx + }), + ctx: childCtx + }; + })).then(handleResults); + } else { + let dirty = undefined; + const issues = []; + for (const option of options) { + const childCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + }, + parent: null + }; + const result = option._parseSync({ + data: ctx.data, + path: ctx.path, + parent: childCtx + }); + if (result.status === "valid") { + return result; + } else if (result.status === "dirty" && !dirty) { + dirty = { result, ctx: childCtx }; + } + if (childCtx.common.issues.length) { + issues.push(childCtx.common.issues); + } + } + if (dirty) { + ctx.common.issues.push(...dirty.ctx.common.issues); + return dirty.result; + } + const unionErrors = issues.map((issues2) => new ZodError(issues2)); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union, + unionErrors + }); + return INVALID; } - }); - return Object.values(remotes); -} -function forEach(text, handler) { - forEachLineWithContent(text, (line) => handler(line.split(/\s+/))); -} -var init_GetRemoteSummary = __esm2({ - "src/lib/responses/GetRemoteSummary.ts"() { - init_utils2(); - } -}); -var remote_exports = {}; -__export2(remote_exports, { - addRemoteTask: () => addRemoteTask, - getRemotesTask: () => getRemotesTask, - listRemotesTask: () => listRemotesTask, - remoteTask: () => remoteTask, - removeRemoteTask: () => removeRemoteTask -}); -function addRemoteTask(remoteName, remoteRepo, customArgs) { - return straightThroughStringTask(["remote", "add", ...customArgs, remoteName, remoteRepo]); -} -function getRemotesTask(verbose) { - const commands = ["remote"]; - if (verbose) { - commands.push("-v"); } - return { - commands, - format: "utf-8", - parser: verbose ? parseGetRemotesVerbose : parseGetRemotes - }; -} -function listRemotesTask(customArgs) { - const commands = [...customArgs]; - if (commands[0] !== "ls-remote") { - commands.unshift("ls-remote"); + get options() { + return this._def.options; } - return straightThroughStringTask(commands); } -function remoteTask(customArgs) { - const commands = [...customArgs]; - if (commands[0] !== "remote") { - commands.unshift("remote"); +ZodUnion.create = (types, params) => { + return new ZodUnion({ + options: types, + typeName: ZodFirstPartyTypeKind.ZodUnion, + ...processCreateParams(params) + }); +}; +var getDiscriminator = (type) => { + if (type instanceof ZodLazy) { + return getDiscriminator(type.schema); + } else if (type instanceof ZodEffects) { + return getDiscriminator(type.innerType()); + } else if (type instanceof ZodLiteral) { + return [type.value]; + } else if (type instanceof ZodEnum) { + return type.options; + } else if (type instanceof ZodNativeEnum) { + return util.objectValues(type.enum); + } else if (type instanceof ZodDefault) { + return getDiscriminator(type._def.innerType); + } else if (type instanceof ZodUndefined) { + return [undefined]; + } else if (type instanceof ZodNull) { + return [null]; + } else if (type instanceof ZodOptional) { + return [undefined, ...getDiscriminator(type.unwrap())]; + } else if (type instanceof ZodNullable) { + return [null, ...getDiscriminator(type.unwrap())]; + } else if (type instanceof ZodBranded) { + return getDiscriminator(type.unwrap()); + } else if (type instanceof ZodReadonly) { + return getDiscriminator(type.unwrap()); + } else if (type instanceof ZodCatch) { + return getDiscriminator(type._def.innerType); + } else { + return []; } - return straightThroughStringTask(commands); -} -function removeRemoteTask(remoteName) { - return straightThroughStringTask(["remote", "remove", remoteName]); -} -var init_remote = __esm2({ - "src/lib/tasks/remote.ts"() { - init_GetRemoteSummary(); - init_task(); +}; + +class ZodDiscriminatedUnion extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.object) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx.parsedType + }); + return INVALID; + } + const discriminator = this.discriminator; + const discriminatorValue = ctx.data[discriminator]; + const option = this.optionsMap.get(discriminatorValue); + if (!option) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union_discriminator, + options: Array.from(this.optionsMap.keys()), + path: [discriminator] + }); + return INVALID; + } + if (ctx.common.async) { + return option._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + } else { + return option._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + } } -}); -var stash_list_exports = {}; -__export2(stash_list_exports, { - stashListTask: () => stashListTask -}); -function stashListTask(opt = {}, customArgs) { - const options = parseLogOptions(opt); - const commands = ["stash", "list", ...options.commands, ...customArgs]; - const parser4 = createListLogSummaryParser(options.splitter, options.fields, logFormatFromCommand(commands)); - return validateLogFormatConfig(commands) || { - commands, - format: "utf-8", - parser: parser4 - }; -} -var init_stash_list = __esm2({ - "src/lib/tasks/stash-list.ts"() { - init_log_format(); - init_parse_list_log_summary(); - init_diff(); - init_log(); + get discriminator() { + return this._def.discriminator; } -}); -var sub_module_exports = {}; -__export2(sub_module_exports, { - addSubModuleTask: () => addSubModuleTask, - initSubModuleTask: () => initSubModuleTask, - subModuleTask: () => subModuleTask, - updateSubModuleTask: () => updateSubModuleTask -}); -function addSubModuleTask(repo, path) { - return subModuleTask(["add", repo, path]); -} -function initSubModuleTask(customArgs) { - return subModuleTask(["init", ...customArgs]); -} -function subModuleTask(customArgs) { - const commands = [...customArgs]; - if (commands[0] !== "submodule") { - commands.unshift("submodule"); + get options() { + return this._def.options; } - return straightThroughStringTask(commands); -} -function updateSubModuleTask(customArgs) { - return subModuleTask(["update", ...customArgs]); -} -var init_sub_module = __esm2({ - "src/lib/tasks/sub-module.ts"() { - init_task(); + get optionsMap() { + return this._def.optionsMap; } -}); -function singleSorted(a, b) { - const aIsNum = isNaN(a); - const bIsNum = isNaN(b); - if (aIsNum !== bIsNum) { - return aIsNum ? 1 : -1; + static create(discriminator, options, params) { + const optionsMap = new Map; + for (const type of options) { + const discriminatorValues = getDiscriminator(type.shape[discriminator]); + if (!discriminatorValues.length) { + throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`); + } + for (const value of discriminatorValues) { + if (optionsMap.has(value)) { + throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`); + } + optionsMap.set(value, type); + } + } + return new ZodDiscriminatedUnion({ + typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion, + discriminator, + options, + optionsMap, + ...processCreateParams(params) + }); } - return aIsNum ? sorted(a, b) : 0; -} -function sorted(a, b) { - return a === b ? 0 : a > b ? 1 : -1; -} -function trimmed(input) { - return input.trim(); } -function toNumber(input) { - if (typeof input === "string") { - return parseInt(input.replace(/^\D+/g, ""), 10) || 0; +function mergeValues(a, b) { + const aType = getParsedType(a); + const bType = getParsedType(b); + if (a === b) { + return { valid: true, data: a }; + } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) { + const bKeys = util.objectKeys(b); + const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1); + const newObj = { ...a, ...b }; + for (const key of sharedKeys) { + const sharedValue = mergeValues(a[key], b[key]); + if (!sharedValue.valid) { + return { valid: false }; + } + newObj[key] = sharedValue.data; + } + return { valid: true, data: newObj }; + } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) { + if (a.length !== b.length) { + return { valid: false }; + } + const newArray = []; + for (let index = 0;index < a.length; index++) { + const itemA = a[index]; + const itemB = b[index]; + const sharedValue = mergeValues(itemA, itemB); + if (!sharedValue.valid) { + return { valid: false }; + } + newArray.push(sharedValue.data); + } + return { valid: true, data: newArray }; + } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) { + return { valid: true, data: a }; + } else { + return { valid: false }; } - return 0; } -var TagList; -var parseTagList; -var init_TagList = __esm2({ - "src/lib/responses/TagList.ts"() { - TagList = class { - constructor(all, latest) { - this.all = all; - this.latest = latest; + +class ZodIntersection extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + const handleParsed = (parsedLeft, parsedRight) => { + if (isAborted(parsedLeft) || isAborted(parsedRight)) { + return INVALID; } - }; - parseTagList = function(data, customSort = false) { - const tags = data.split(` -`).map(trimmed).filter(Boolean); - if (!customSort) { - tags.sort(function(tagA, tagB) { - const partsA = tagA.split("."); - const partsB = tagB.split("."); - if (partsA.length === 1 || partsB.length === 1) { - return singleSorted(toNumber(partsA[0]), toNumber(partsB[0])); - } - for (let i = 0, l = Math.max(partsA.length, partsB.length);i < l; i++) { - const diff = sorted(toNumber(partsA[i]), toNumber(partsB[i])); - if (diff) { - return diff; - } - } - return 0; + const merged = mergeValues(parsedLeft.value, parsedRight.value); + if (!merged.valid) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_intersection_types }); + return INVALID; } - const latest = customSort ? tags[0] : [...tags].reverse().find((tag) => tag.indexOf(".") >= 0); - return new TagList(tags, latest); + if (isDirty(parsedLeft) || isDirty(parsedRight)) { + status.dirty(); + } + return { status: status.value, value: merged.data }; }; - } -}); -var tag_exports = {}; -__export2(tag_exports, { - addAnnotatedTagTask: () => addAnnotatedTagTask, - addTagTask: () => addTagTask, - tagListTask: () => tagListTask -}); -function tagListTask(customArgs = []) { - const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option)); - return { - format: "utf-8", - commands: ["tag", "-l", ...customArgs], - parser(text) { - return parseTagList(text, hasCustomSort); + if (ctx.common.async) { + return Promise.all([ + this._def.left._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }), + this._def.right._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }) + ]).then(([left, right]) => handleParsed(left, right)); + } else { + return handleParsed(this._def.left._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }), this._def.right._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + })); } - }; + } } -function addTagTask(name) { - return { - format: "utf-8", - commands: ["tag", name], - parser() { - return { name }; +ZodIntersection.create = (left, right, params) => { + return new ZodIntersection({ + left, + right, + typeName: ZodFirstPartyTypeKind.ZodIntersection, + ...processCreateParams(params) + }); +}; + +class ZodTuple extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.array) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.array, + received: ctx.parsedType + }); + return INVALID; } - }; -} -function addAnnotatedTagTask(name, tagMessage) { - return { - format: "utf-8", - commands: ["tag", "-a", "-m", tagMessage, name], - parser() { - return { name }; + if (ctx.data.length < this._def.items.length) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: this._def.items.length, + inclusive: true, + exact: false, + type: "array" + }); + return INVALID; } - }; + const rest = this._def.rest; + if (!rest && ctx.data.length > this._def.items.length) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: this._def.items.length, + inclusive: true, + exact: false, + type: "array" + }); + status.dirty(); + } + const items = [...ctx.data].map((item, itemIndex) => { + const schema = this._def.items[itemIndex] || this._def.rest; + if (!schema) + return null; + return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex)); + }).filter((x) => !!x); + if (ctx.common.async) { + return Promise.all(items).then((results) => { + return ParseStatus.mergeArray(status, results); + }); + } else { + return ParseStatus.mergeArray(status, items); + } + } + get items() { + return this._def.items; + } + rest(rest) { + return new ZodTuple({ + ...this._def, + rest + }); + } } -var init_tag = __esm2({ - "src/lib/tasks/tag.ts"() { - init_TagList(); +ZodTuple.create = (schemas, params) => { + if (!Array.isArray(schemas)) { + throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); } -}); -var require_git = __commonJS2({ - "src/git.js"(exports, module) { - var { GitExecutor: GitExecutor2 } = (init_git_executor(), __toCommonJS(git_executor_exports)); - var { SimpleGitApi: SimpleGitApi2 } = (init_simple_git_api(), __toCommonJS(simple_git_api_exports)); - var { Scheduler: Scheduler2 } = (init_scheduler(), __toCommonJS(scheduler_exports)); - var { configurationErrorTask: configurationErrorTask2 } = (init_task(), __toCommonJS(task_exports)); - var { - asArray: asArray2, - filterArray: filterArray2, - filterPrimitives: filterPrimitives2, - filterString: filterString2, - filterStringOrStringArray: filterStringOrStringArray2, - filterType: filterType2, - getTrailingOptions: getTrailingOptions2, - trailingFunctionArgument: trailingFunctionArgument2, - trailingOptionsArgument: trailingOptionsArgument2 - } = (init_utils2(), __toCommonJS(utils_exports)); - var { applyPatchTask: applyPatchTask2 } = (init_apply_patch(), __toCommonJS(apply_patch_exports)); - var { - branchTask: branchTask2, - branchLocalTask: branchLocalTask2, - deleteBranchesTask: deleteBranchesTask2, - deleteBranchTask: deleteBranchTask2 - } = (init_branch(), __toCommonJS(branch_exports)); - var { checkIgnoreTask: checkIgnoreTask2 } = (init_check_ignore(), __toCommonJS(check_ignore_exports)); - var { checkIsRepoTask: checkIsRepoTask2 } = (init_check_is_repo(), __toCommonJS(check_is_repo_exports)); - var { cloneTask: cloneTask2, cloneMirrorTask: cloneMirrorTask2 } = (init_clone(), __toCommonJS(clone_exports)); - var { cleanWithOptionsTask: cleanWithOptionsTask2, isCleanOptionsArray: isCleanOptionsArray2 } = (init_clean(), __toCommonJS(clean_exports)); - var { diffSummaryTask: diffSummaryTask2 } = (init_diff(), __toCommonJS(diff_exports)); - var { fetchTask: fetchTask2 } = (init_fetch(), __toCommonJS(fetch_exports)); - var { moveTask: moveTask2 } = (init_move(), __toCommonJS(move_exports)); - var { pullTask: pullTask2 } = (init_pull(), __toCommonJS(pull_exports)); - var { pushTagsTask: pushTagsTask2 } = (init_push(), __toCommonJS(push_exports)); - var { - addRemoteTask: addRemoteTask2, - getRemotesTask: getRemotesTask2, - listRemotesTask: listRemotesTask2, - remoteTask: remoteTask2, - removeRemoteTask: removeRemoteTask2 - } = (init_remote(), __toCommonJS(remote_exports)); - var { getResetMode: getResetMode2, resetTask: resetTask2 } = (init_reset(), __toCommonJS(reset_exports)); - var { stashListTask: stashListTask2 } = (init_stash_list(), __toCommonJS(stash_list_exports)); - var { - addSubModuleTask: addSubModuleTask2, - initSubModuleTask: initSubModuleTask2, - subModuleTask: subModuleTask2, - updateSubModuleTask: updateSubModuleTask2 - } = (init_sub_module(), __toCommonJS(sub_module_exports)); - var { addAnnotatedTagTask: addAnnotatedTagTask2, addTagTask: addTagTask2, tagListTask: tagListTask2 } = (init_tag(), __toCommonJS(tag_exports)); - var { straightThroughBufferTask: straightThroughBufferTask2, straightThroughStringTask: straightThroughStringTask2 } = (init_task(), __toCommonJS(task_exports)); - function Git2(options, plugins) { - this._plugins = plugins; - this._executor = new GitExecutor2(options.baseDir, new Scheduler2(options.maxConcurrentProcesses), plugins); - this._trimmed = options.trimmed; + return new ZodTuple({ + items: schemas, + typeName: ZodFirstPartyTypeKind.ZodTuple, + rest: null, + ...processCreateParams(params) + }); +}; + +class ZodRecord extends ZodType { + get keySchema() { + return this._def.keyType; + } + get valueSchema() { + return this._def.valueType; + } + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.object) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx.parsedType + }); + return INVALID; } - (Git2.prototype = Object.create(SimpleGitApi2.prototype)).constructor = Git2; - Git2.prototype.customBinary = function(command) { - this._plugins.reconfigure("binary", command); - return this; - }; - Git2.prototype.env = function(name, value) { - if (arguments.length === 1 && typeof name === "object") { - this._executor.env = name; - } else { - (this._executor.env = this._executor.env || {})[name] = value; - } - return this; - }; - Git2.prototype.stashList = function(options) { - return this._runTask(stashListTask2(trailingOptionsArgument2(arguments) || {}, filterArray2(options) && options || []), trailingFunctionArgument2(arguments)); - }; - function createCloneTask(api, task, repoPath, localPath) { - if (typeof repoPath !== "string") { - return configurationErrorTask2(`git.${api}() requires a string 'repoPath'`); - } - return task(repoPath, filterType2(localPath, filterString2), getTrailingOptions2(arguments)); + const pairs = []; + const keyType = this._def.keyType; + const valueType = this._def.valueType; + for (const key in ctx.data) { + pairs.push({ + key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)), + value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)), + alwaysSet: key in ctx.data + }); } - Git2.prototype.clone = function() { - return this._runTask(createCloneTask("clone", cloneTask2, ...arguments), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.mirror = function() { - return this._runTask(createCloneTask("mirror", cloneMirrorTask2, ...arguments), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.mv = function(from, to) { - return this._runTask(moveTask2(from, to), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.checkoutLatestTag = function(then) { - var git = this; - return this.pull(function() { - git.tags(function(err, tags) { - git.checkout(tags.latest, then); - }); + if (ctx.common.async) { + return ParseStatus.mergeObjectAsync(status, pairs); + } else { + return ParseStatus.mergeObjectSync(status, pairs); + } + } + get element() { + return this._def.valueType; + } + static create(first, second, third) { + if (second instanceof ZodType) { + return new ZodRecord({ + keyType: first, + valueType: second, + typeName: ZodFirstPartyTypeKind.ZodRecord, + ...processCreateParams(third) }); - }; - Git2.prototype.pull = function(remote, branch, options, then) { - return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.fetch = function(remote, branch) { - return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.silent = function(silence) { - console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"); - return this; - }; - Git2.prototype.tags = function(options, then) { - return this._runTask(tagListTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.rebase = function() { - return this._runTask(straightThroughStringTask2(["rebase", ...getTrailingOptions2(arguments)]), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.reset = function(mode) { - return this._runTask(resetTask2(getResetMode2(mode), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.revert = function(commit) { - const next = trailingFunctionArgument2(arguments); - if (typeof commit !== "string") { - return this._runTask(configurationErrorTask2("Commit must be a string"), next); - } - return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit]), next); - }; - Git2.prototype.addTag = function(name) { - const task = typeof name === "string" ? addTagTask2(name) : configurationErrorTask2("Git.addTag requires a tag name"); - return this._runTask(task, trailingFunctionArgument2(arguments)); - }; - Git2.prototype.addAnnotatedTag = function(tagName, tagMessage) { - return this._runTask(addAnnotatedTagTask2(tagName, tagMessage), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.deleteLocalBranch = function(branchName, forceDelete, then) { - return this._runTask(deleteBranchTask2(branchName, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.deleteLocalBranches = function(branchNames, forceDelete, then) { - return this._runTask(deleteBranchesTask2(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.branch = function(options, then) { - return this._runTask(branchTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.branchLocal = function(then) { - return this._runTask(branchLocalTask2(), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.raw = function(commands) { - const createRestCommands = !Array.isArray(commands); - const command = [].slice.call(createRestCommands ? arguments : commands, 0); - for (let i = 0;i < command.length && createRestCommands; i++) { - if (!filterPrimitives2(command[i])) { - command.splice(i, command.length - i); - break; - } - } - command.push(...getTrailingOptions2(arguments, 0, true)); - var next = trailingFunctionArgument2(arguments); - if (!command.length) { - return this._runTask(configurationErrorTask2("Raw: must supply one or more command to execute"), next); - } - return this._runTask(straightThroughStringTask2(command, this._trimmed), next); - }; - Git2.prototype.submoduleAdd = function(repo, path, then) { - return this._runTask(addSubModuleTask2(repo, path), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.submoduleUpdate = function(args, then) { - return this._runTask(updateSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.submoduleInit = function(args, then) { - return this._runTask(initSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.subModule = function(options, then) { - return this._runTask(subModuleTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.listRemote = function() { - return this._runTask(listRemotesTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.addRemote = function(remoteName, remoteRepo, then) { - return this._runTask(addRemoteTask2(remoteName, remoteRepo, getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.removeRemote = function(remoteName, then) { - return this._runTask(removeRemoteTask2(remoteName), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.getRemotes = function(verbose, then) { - return this._runTask(getRemotesTask2(verbose === true), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.remote = function(options, then) { - return this._runTask(remoteTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.tag = function(options, then) { - const command = getTrailingOptions2(arguments); - if (command[0] !== "tag") { - command.unshift("tag"); - } - return this._runTask(straightThroughStringTask2(command), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.updateServerInfo = function(then) { - return this._runTask(straightThroughStringTask2(["update-server-info"]), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.pushTags = function(remote, then) { - const task = pushTagsTask2({ remote: filterType2(remote, filterString2) }, getTrailingOptions2(arguments)); - return this._runTask(task, trailingFunctionArgument2(arguments)); - }; - Git2.prototype.rm = function(files) { - return this._runTask(straightThroughStringTask2(["rm", "-f", ...asArray2(files)]), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.rmKeepLocal = function(files) { - return this._runTask(straightThroughStringTask2(["rm", "--cached", ...asArray2(files)]), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.catFile = function(options, then) { - return this._catFile("utf-8", arguments); - }; - Git2.prototype.binaryCatFile = function() { - return this._catFile("buffer", arguments); - }; - Git2.prototype._catFile = function(format, args) { - var handler = trailingFunctionArgument2(args); - var command = ["cat-file"]; - var options = args[0]; - if (typeof options === "string") { - return this._runTask(configurationErrorTask2("Git.catFile: options must be supplied as an array of strings"), handler); - } - if (Array.isArray(options)) { - command.push.apply(command, options); - } - const task = format === "buffer" ? straightThroughBufferTask2(command) : straightThroughStringTask2(command); - return this._runTask(task, handler); - }; - Git2.prototype.diff = function(options, then) { - const task = filterString2(options) ? configurationErrorTask2("git.diff: supplying options as a single string is no longer supported, switch to an array of strings") : straightThroughStringTask2(["diff", ...getTrailingOptions2(arguments)]); - return this._runTask(task, trailingFunctionArgument2(arguments)); - }; - Git2.prototype.diffSummary = function() { - return this._runTask(diffSummaryTask2(getTrailingOptions2(arguments, 1)), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.applyPatch = function(patches) { - const task = !filterStringOrStringArray2(patches) ? configurationErrorTask2(`git.applyPatch requires one or more string patches as the first argument`) : applyPatchTask2(asArray2(patches), getTrailingOptions2([].slice.call(arguments, 1))); - return this._runTask(task, trailingFunctionArgument2(arguments)); - }; - Git2.prototype.revparse = function() { - const commands = ["rev-parse", ...getTrailingOptions2(arguments, true)]; - return this._runTask(straightThroughStringTask2(commands, true), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.clean = function(mode, options, then) { - const usingCleanOptionsArray = isCleanOptionsArray2(mode); - const cleanMode = usingCleanOptionsArray && mode.join("") || filterType2(mode, filterString2) || ""; - const customArgs = getTrailingOptions2([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0)); - return this._runTask(cleanWithOptionsTask2(cleanMode, customArgs), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.exec = function(then) { - const task = { - commands: [], - format: "utf-8", - parser() { - if (typeof then === "function") { - then(); - } - } - }; - return this._runTask(task); - }; - Git2.prototype.clearQueue = function() { - return this; - }; - Git2.prototype.checkIgnore = function(pathnames, then) { - return this._runTask(checkIgnoreTask2(asArray2(filterType2(pathnames, filterStringOrStringArray2, []))), trailingFunctionArgument2(arguments)); - }; - Git2.prototype.checkIsRepo = function(checkType, then) { - return this._runTask(checkIsRepoTask2(filterType2(checkType, filterString2)), trailingFunctionArgument2(arguments)); - }; - module.exports = Git2; + } + return new ZodRecord({ + keyType: ZodString.create(), + valueType: first, + typeName: ZodFirstPartyTypeKind.ZodRecord, + ...processCreateParams(second) + }); + } +} + +class ZodMap extends ZodType { + get keySchema() { + return this._def.keyType; } -}); -init_pathspec(); -init_git_error(); -var GitConstructError = class extends GitError { - constructor(config, message) { - super(undefined, message); - this.config = config; + get valueSchema() { + return this._def.valueType; } -}; -init_git_error(); -init_git_error(); -var GitPluginError = class extends GitError { - constructor(task, plugin, message) { - super(task, message); - this.task = task; - this.plugin = plugin; - Object.setPrototypeOf(this, new.target.prototype); + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.map) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.map, + received: ctx.parsedType + }); + return INVALID; + } + const keyType = this._def.keyType; + const valueType = this._def.valueType; + const pairs = [...ctx.data.entries()].map(([key, value], index) => { + return { + key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])), + value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"])) + }; + }); + if (ctx.common.async) { + const finalMap = new Map; + return Promise.resolve().then(async () => { + for (const pair of pairs) { + const key = await pair.key; + const value = await pair.value; + if (key.status === "aborted" || value.status === "aborted") { + return INVALID; + } + if (key.status === "dirty" || value.status === "dirty") { + status.dirty(); + } + finalMap.set(key.value, value.value); + } + return { status: status.value, value: finalMap }; + }); + } else { + const finalMap = new Map; + for (const pair of pairs) { + const key = pair.key; + const value = pair.value; + if (key.status === "aborted" || value.status === "aborted") { + return INVALID; + } + if (key.status === "dirty" || value.status === "dirty") { + status.dirty(); + } + finalMap.set(key.value, value.value); + } + return { status: status.value, value: finalMap }; + } } +} +ZodMap.create = (keyType, valueType, params) => { + return new ZodMap({ + valueType, + keyType, + typeName: ZodFirstPartyTypeKind.ZodMap, + ...processCreateParams(params) + }); }; -init_git_response_error(); -init_task_configuration_error(); -init_check_is_repo(); -init_clean(); -init_config(); -init_diff_name_status(); -init_grep(); -init_reset(); -function abortPlugin(signal) { - if (!signal) { - return; - } - const onSpawnAfter = { - type: "spawn.after", - action(_data, context) { - function kill() { - context.kill(new GitPluginError(undefined, "abort", "Abort signal received")); + +class ZodSet extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.set) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.set, + received: ctx.parsedType + }); + return INVALID; + } + const def = this._def; + if (def.minSize !== null) { + if (ctx.data.size < def.minSize.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: def.minSize.value, + type: "set", + inclusive: true, + exact: false, + message: def.minSize.message + }); + status.dirty(); } - signal.addEventListener("abort", kill); - context.spawned.on("close", () => signal.removeEventListener("abort", kill)); } - }; - const onSpawnBefore = { - type: "spawn.before", - action(_data, context) { - if (signal.aborted) { - context.kill(new GitPluginError(undefined, "abort", "Abort already signaled")); + if (def.maxSize !== null) { + if (ctx.data.size > def.maxSize.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: def.maxSize.value, + type: "set", + inclusive: true, + exact: false, + message: def.maxSize.message + }); + status.dirty(); } } - }; - return [onSpawnBefore, onSpawnAfter]; -} -function isConfigSwitch(arg) { - return typeof arg === "string" && arg.trim().toLowerCase() === "-c"; -} -function preventProtocolOverride(arg, next) { - if (!isConfigSwitch(arg)) { - return; + const valueType = this._def.valueType; + function finalizeSet(elements2) { + const parsedSet = new Set; + for (const element of elements2) { + if (element.status === "aborted") + return INVALID; + if (element.status === "dirty") + status.dirty(); + parsedSet.add(element.value); + } + return { status: status.value, value: parsedSet }; + } + const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i))); + if (ctx.common.async) { + return Promise.all(elements).then((elements2) => finalizeSet(elements2)); + } else { + return finalizeSet(elements); + } } - if (!/^\s*protocol(.[a-z]+)?.allow/.test(next)) { - return; + min(minSize, message) { + return new ZodSet({ + ...this._def, + minSize: { value: minSize, message: errorUtil.toString(message) } + }); } - throw new GitPluginError(undefined, "unsafe", "Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol"); -} -function preventUploadPack(arg, method) { - if (/^\s*--(upload|receive)-pack/.test(arg)) { - throw new GitPluginError(undefined, "unsafe", `Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack`); + max(maxSize, message) { + return new ZodSet({ + ...this._def, + maxSize: { value: maxSize, message: errorUtil.toString(message) } + }); } - if (method === "clone" && /^\s*-u\b/.test(arg)) { - throw new GitPluginError(undefined, "unsafe", `Use of clone with option -u is not permitted without enabling allowUnsafePack`); + size(size, message) { + return this.min(size, message).max(size, message); } - if (method === "push" && /^\s*--exec\b/.test(arg)) { - throw new GitPluginError(undefined, "unsafe", `Use of push with option --exec is not permitted without enabling allowUnsafePack`); + nonempty(message) { + return this.min(1, message); } } -function blockUnsafeOperationsPlugin({ - allowUnsafeProtocolOverride = false, - allowUnsafePack = false -} = {}) { - return { - type: "spawn.args", - action(args, context) { - args.forEach((current, index) => { - const next = index < args.length ? args[index + 1] : ""; - allowUnsafeProtocolOverride || preventProtocolOverride(current, next); - allowUnsafePack || preventUploadPack(current, context.method); +ZodSet.create = (valueType, params) => { + return new ZodSet({ + valueType, + minSize: null, + maxSize: null, + typeName: ZodFirstPartyTypeKind.ZodSet, + ...processCreateParams(params) + }); +}; + +class ZodFunction extends ZodType { + constructor() { + super(...arguments); + this.validate = this.implement; + } + _parse(input) { + const { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.function) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.function, + received: ctx.parsedType }); - return args; + return INVALID; } - }; -} -init_utils2(); -function commandConfigPrefixingPlugin(configuration) { - const prefix = prefixedArray(configuration, "-c"); - return { - type: "spawn.args", - action(data) { - return [...prefix, ...data]; + function makeArgsIssue(args, error) { + return makeIssue({ + data: args, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + ctx.schemaErrorMap, + getErrorMap(), + errorMap + ].filter((x) => !!x), + issueData: { + code: ZodIssueCode.invalid_arguments, + argumentsError: error + } + }); } - }; -} -init_utils2(); -var never = import_promise_deferred2.deferred().promise; -function completionDetectionPlugin({ - onClose = true, - onExit: onExit2 = 50 -} = {}) { - function createEvents() { - let exitCode = -1; - const events = { - close: import_promise_deferred2.deferred(), - closeTimeout: import_promise_deferred2.deferred(), - exit: import_promise_deferred2.deferred(), - exitTimeout: import_promise_deferred2.deferred() - }; - const result = Promise.race([ - onClose === false ? never : events.closeTimeout.promise, - onExit2 === false ? never : events.exitTimeout.promise - ]); - configureTimeout(onClose, events.close, events.closeTimeout); - configureTimeout(onExit2, events.exit, events.exitTimeout); - return { - close(code) { - exitCode = code; - events.close.done(); - }, - exit(code) { - exitCode = code; - events.exit.done(); - }, - get exitCode() { - return exitCode; - }, - result - }; - } - function configureTimeout(flag, event, timeout) { - if (flag === false) { - return; + function makeReturnsIssue(returns, error) { + return makeIssue({ + data: returns, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + ctx.schemaErrorMap, + getErrorMap(), + errorMap + ].filter((x) => !!x), + issueData: { + code: ZodIssueCode.invalid_return_type, + returnTypeError: error + } + }); } - (flag === true ? event.promise : event.promise.then(() => delay(flag))).then(timeout.done); - } - return { - type: "spawn.after", - action(_0, _1) { - return __async(this, arguments, function* (_data, { spawned, close }) { - var _a3, _b; - const events = createEvents(); - let deferClose = true; - let quickClose = () => void (deferClose = false); - (_a3 = spawned.stdout) == null || _a3.on("data", quickClose); - (_b = spawned.stderr) == null || _b.on("data", quickClose); - spawned.on("error", quickClose); - spawned.on("close", (code) => events.close(code)); - spawned.on("exit", (code) => events.exit(code)); - try { - yield events.result; - if (deferClose) { - yield delay(50); - } - close(events.exitCode); - } catch (err) { - close(events.exitCode, err); + const params = { errorMap: ctx.common.contextualErrorMap }; + const fn = ctx.data; + if (this._def.returns instanceof ZodPromise) { + const me = this; + return OK(async function(...args) { + const error = new ZodError([]); + const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => { + error.addIssue(makeArgsIssue(args, e)); + throw error; + }); + const result = await Reflect.apply(fn, this, parsedArgs); + const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => { + error.addIssue(makeReturnsIssue(result, e)); + throw error; + }); + return parsedReturns; + }); + } else { + const me = this; + return OK(function(...args) { + const parsedArgs = me._def.args.safeParse(args, params); + if (!parsedArgs.success) { + throw new ZodError([makeArgsIssue(args, parsedArgs.error)]); + } + const result = Reflect.apply(fn, this, parsedArgs.data); + const parsedReturns = me._def.returns.safeParse(result, params); + if (!parsedReturns.success) { + throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]); } + return parsedReturns.data; }); } - }; -} -init_utils2(); -var WRONG_NUMBER_ERR = `Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings`; -var WRONG_CHARS_ERR = `Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option`; -function isBadArgument(arg) { - return !arg || !/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test(arg); + } + parameters() { + return this._def.args; + } + returnType() { + return this._def.returns; + } + args(...items) { + return new ZodFunction({ + ...this._def, + args: ZodTuple.create(items).rest(ZodUnknown.create()) + }); + } + returns(returnType) { + return new ZodFunction({ + ...this._def, + returns: returnType + }); + } + implement(func) { + const validatedFunc = this.parse(func); + return validatedFunc; + } + strictImplement(func) { + const validatedFunc = this.parse(func); + return validatedFunc; + } + static create(args, returns, params) { + return new ZodFunction({ + args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()), + returns: returns || ZodUnknown.create(), + typeName: ZodFirstPartyTypeKind.ZodFunction, + ...processCreateParams(params) + }); + } } -function toBinaryConfig(input, allowUnsafe) { - if (input.length < 1 || input.length > 2) { - throw new GitPluginError(undefined, "binary", WRONG_NUMBER_ERR); + +class ZodLazy extends ZodType { + get schema() { + return this._def.getter(); } - const isBad = input.some(isBadArgument); - if (isBad) { - if (allowUnsafe) { - console.warn(WRONG_CHARS_ERR); - } else { - throw new GitPluginError(undefined, "binary", WRONG_CHARS_ERR); - } + _parse(input) { + const { ctx } = this._processInputParams(input); + const lazySchema = this._def.getter(); + return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx }); } - const [binary, prefix] = input; - return { - binary, - prefix - }; } -function customBinaryPlugin(plugins, input = ["git"], allowUnsafe = false) { - let config = toBinaryConfig(asArray(input), allowUnsafe); - plugins.on("binary", (input2) => { - config = toBinaryConfig(asArray(input2), allowUnsafe); +ZodLazy.create = (getter, params) => { + return new ZodLazy({ + getter, + typeName: ZodFirstPartyTypeKind.ZodLazy, + ...processCreateParams(params) }); - plugins.append("spawn.binary", () => { - return config.binary; +}; + +class ZodLiteral extends ZodType { + _parse(input) { + if (input.data !== this._def.value) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_literal, + expected: this._def.value + }); + return INVALID; + } + return { status: "valid", value: input.data }; + } + get value() { + return this._def.value; + } +} +ZodLiteral.create = (value, params) => { + return new ZodLiteral({ + value, + typeName: ZodFirstPartyTypeKind.ZodLiteral, + ...processCreateParams(params) }); - plugins.append("spawn.args", (data) => { - return config.prefix ? [config.prefix, ...data] : data; +}; +function createZodEnum(values, params) { + return new ZodEnum({ + values, + typeName: ZodFirstPartyTypeKind.ZodEnum, + ...processCreateParams(params) }); } -init_git_error(); -function isTaskError(result) { - return !!(result.exitCode && result.stdErr.length); -} -function getErrorMessage(result) { - return Buffer.concat([...result.stdOut, ...result.stdErr]); -} -function errorDetectionHandler(overwrite = false, isError = isTaskError, errorMessage = getErrorMessage) { - return (error, result) => { - if (!overwrite && error || !isError(result)) { - return error; + +class ZodEnum extends ZodType { + constructor() { + super(...arguments); + _ZodEnum_cache.set(this, undefined); + } + _parse(input) { + if (typeof input.data !== "string") { + const ctx = this._getOrReturnCtx(input); + const expectedValues = this._def.values; + addIssueToContext(ctx, { + expected: util.joinValues(expectedValues), + received: ctx.parsedType, + code: ZodIssueCode.invalid_type + }); + return INVALID; } - return errorMessage(result); - }; -} -function errorDetectionPlugin(config) { - return { - type: "task.error", - action(data, context) { - const error = config(data.error, { - stdErr: context.stdErr, - stdOut: context.stdOut, - exitCode: context.exitCode + if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f")) { + __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), "f"); + } + if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f").has(input.data)) { + const ctx = this._getOrReturnCtx(input); + const expectedValues = this._def.values; + addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_enum_value, + options: expectedValues }); - if (Buffer.isBuffer(error)) { - return { error: new GitError(undefined, error.toString("utf-8")) }; - } - return { - error - }; + return INVALID; + } + return OK(input.data); + } + get options() { + return this._def.values; + } + get enum() { + const enumValues = {}; + for (const val of this._def.values) { + enumValues[val] = val; } - }; -} -init_utils2(); -var PluginStore = class { - constructor() { - this.plugins = /* @__PURE__ */ new Set; - this.events = new EventEmitter; + return enumValues; } - on(type, listener) { - this.events.on(type, listener); + get Values() { + const enumValues = {}; + for (const val of this._def.values) { + enumValues[val] = val; + } + return enumValues; } - reconfigure(type, data) { - this.events.emit(type, data); + get Enum() { + const enumValues = {}; + for (const val of this._def.values) { + enumValues[val] = val; + } + return enumValues; } - append(type, action) { - const plugin = append(this.plugins, { type, action }); - return () => this.plugins.delete(plugin); + extract(values, newDef = this._def) { + return ZodEnum.create(values, { + ...this._def, + ...newDef + }); } - add(plugin) { - const plugins = []; - asArray(plugin).forEach((plugin2) => plugin2 && this.plugins.add(append(plugins, plugin2))); - return () => { - plugins.forEach((plugin2) => this.plugins.delete(plugin2)); - }; + exclude(values, newDef = this._def) { + return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), { + ...this._def, + ...newDef + }); } - exec(type, data, context) { - let output = data; - const contextual = Object.freeze(Object.create(context)); - for (const plugin of this.plugins) { - if (plugin.type === type) { - output = plugin.action(output, contextual); - } - } - return output; +} +_ZodEnum_cache = new WeakMap; +ZodEnum.create = createZodEnum; + +class ZodNativeEnum extends ZodType { + constructor() { + super(...arguments); + _ZodNativeEnum_cache.set(this, undefined); } -}; -init_utils2(); -function progressMonitorPlugin(progress) { - const progressCommand = "--progress"; - const progressMethods = ["checkout", "clone", "fetch", "pull", "push"]; - const onProgress = { - type: "spawn.after", - action(_data, context) { - var _a2; - if (!context.commands.includes(progressCommand)) { - return; - } - (_a2 = context.spawned.stderr) == null || _a2.on("data", (chunk) => { - const message = /^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(chunk.toString("utf8")); - if (!message) { - return; - } - progress({ - method: context.method, - stage: progressEventStage(message[1]), - progress: asNumber(message[2]), - processed: asNumber(message[3]), - total: asNumber(message[4]) - }); + _parse(input) { + const nativeEnumValues = util.getValidEnumValues(this._def.values); + const ctx = this._getOrReturnCtx(input); + if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) { + const expectedValues = util.objectValues(nativeEnumValues); + addIssueToContext(ctx, { + expected: util.joinValues(expectedValues), + received: ctx.parsedType, + code: ZodIssueCode.invalid_type }); + return INVALID; } - }; - const onArgs = { - type: "spawn.args", - action(args, context) { - if (!progressMethods.includes(context.method)) { - return args; - } - return including(args, progressCommand); + if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f")) { + __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), "f"); } - }; - return [onArgs, onProgress]; -} -function progressEventStage(input) { - return String(input.toLowerCase().split(" ", 1)) || "unknown"; + if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f").has(input.data)) { + const expectedValues = util.objectValues(nativeEnumValues); + addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_enum_value, + options: expectedValues + }); + return INVALID; + } + return OK(input.data); + } + get enum() { + return this._def.values; + } } -init_utils2(); -function spawnOptionsPlugin(spawnOptions) { - const options = pick(spawnOptions, ["uid", "gid"]); - return { - type: "spawn.options", - action(data) { - return __spreadValues(__spreadValues({}, options), data); +_ZodNativeEnum_cache = new WeakMap; +ZodNativeEnum.create = (values, params) => { + return new ZodNativeEnum({ + values, + typeName: ZodFirstPartyTypeKind.ZodNativeEnum, + ...processCreateParams(params) + }); +}; + +class ZodPromise extends ZodType { + unwrap() { + return this._def.type; + } + _parse(input) { + const { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.promise, + received: ctx.parsedType + }); + return INVALID; } - }; + const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data); + return OK(promisified.then((data) => { + return this._def.type.parseAsync(data, { + path: ctx.path, + errorMap: ctx.common.contextualErrorMap + }); + })); + } } -function timeoutPlugin({ - block, - stdErr = true, - stdOut = true -}) { - if (block > 0) { - return { - type: "spawn.after", - action(_data, context) { - var _a2, _b; - let timeout; - function wait() { - timeout && clearTimeout(timeout); - timeout = setTimeout(kill, block); - } - function stop() { - var _a3, _b2; - (_a3 = context.spawned.stdout) == null || _a3.off("data", wait); - (_b2 = context.spawned.stderr) == null || _b2.off("data", wait); - context.spawned.off("exit", stop); - context.spawned.off("close", stop); - timeout && clearTimeout(timeout); - } - function kill() { - stop(); - context.kill(new GitPluginError(undefined, "timeout", `block timeout reached`)); +ZodPromise.create = (schema, params) => { + return new ZodPromise({ + type: schema, + typeName: ZodFirstPartyTypeKind.ZodPromise, + ...processCreateParams(params) + }); +}; + +class ZodEffects extends ZodType { + innerType() { + return this._def.schema; + } + sourceType() { + return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema; + } + _parse(input) { + const { status, ctx } = this._processInputParams(input); + const effect = this._def.effect || null; + const checkCtx = { + addIssue: (arg) => { + addIssueToContext(ctx, arg); + if (arg.fatal) { + status.abort(); + } else { + status.dirty(); } - stdOut && ((_a2 = context.spawned.stdout) == null || _a2.on("data", wait)); - stdErr && ((_b = context.spawned.stderr) == null || _b.on("data", wait)); - context.spawned.on("exit", stop); - context.spawned.on("close", stop); - wait(); + }, + get path() { + return ctx.path; } }; - } -} -init_pathspec(); -function suffixPathsPlugin() { - return { - type: "spawn.args", - action(data) { - const prefix = []; - let suffix; - function append2(args) { - (suffix = suffix || []).push(...args); + checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx); + if (effect.type === "preprocess") { + const processed = effect.transform(ctx.data, checkCtx); + if (ctx.common.async) { + return Promise.resolve(processed).then(async (processed2) => { + if (status.value === "aborted") + return INVALID; + const result = await this._def.schema._parseAsync({ + data: processed2, + path: ctx.path, + parent: ctx + }); + if (result.status === "aborted") + return INVALID; + if (result.status === "dirty") + return DIRTY(result.value); + if (status.value === "dirty") + return DIRTY(result.value); + return result; + }); + } else { + if (status.value === "aborted") + return INVALID; + const result = this._def.schema._parseSync({ + data: processed, + path: ctx.path, + parent: ctx + }); + if (result.status === "aborted") + return INVALID; + if (result.status === "dirty") + return DIRTY(result.value); + if (status.value === "dirty") + return DIRTY(result.value); + return result; } - for (let i = 0;i < data.length; i++) { - const param = data[i]; - if (isPathSpec(param)) { - append2(toPaths(param)); - continue; + } + if (effect.type === "refinement") { + const executeRefinement = (acc) => { + const result = effect.refinement(acc, checkCtx); + if (ctx.common.async) { + return Promise.resolve(result); } - if (param === "--") { - append2(data.slice(i + 1).flatMap((item) => isPathSpec(item) && toPaths(item) || item)); - break; + if (result instanceof Promise) { + throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); } - prefix.push(param); + return acc; + }; + if (ctx.common.async === false) { + const inner = this._def.schema._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (inner.status === "aborted") + return INVALID; + if (inner.status === "dirty") + status.dirty(); + executeRefinement(inner.value); + return { status: status.value, value: inner.value }; + } else { + return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => { + if (inner.status === "aborted") + return INVALID; + if (inner.status === "dirty") + status.dirty(); + return executeRefinement(inner.value).then(() => { + return { status: status.value, value: inner.value }; + }); + }); } - return !suffix ? prefix : [...prefix, "--", ...suffix.map(String)]; } - }; -} -init_utils2(); -var Git = require_git(); -function gitInstanceFactory(baseDir, options) { - var _a2; - const plugins = new PluginStore; - const config = createInstanceConfig(baseDir && (typeof baseDir === "string" ? { baseDir } : baseDir) || {}, options); - if (!folderExists(config.baseDir)) { - throw new GitConstructError(config, `Cannot use simple-git on a directory that does not exist`); - } - if (Array.isArray(config.config)) { - plugins.add(commandConfigPrefixingPlugin(config.config)); + if (effect.type === "transform") { + if (ctx.common.async === false) { + const base = this._def.schema._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (!isValid(base)) + return base; + const result = effect.transform(base.value, checkCtx); + if (result instanceof Promise) { + throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`); + } + return { status: status.value, value: result }; + } else { + return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => { + if (!isValid(base)) + return base; + return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result })); + }); + } + } + util.assertNever(effect); } - plugins.add(blockUnsafeOperationsPlugin(config.unsafe)); - plugins.add(suffixPathsPlugin()); - plugins.add(completionDetectionPlugin(config.completion)); - config.abort && plugins.add(abortPlugin(config.abort)); - config.progress && plugins.add(progressMonitorPlugin(config.progress)); - config.timeout && plugins.add(timeoutPlugin(config.timeout)); - config.spawnOptions && plugins.add(spawnOptionsPlugin(config.spawnOptions)); - plugins.add(errorDetectionPlugin(errorDetectionHandler(true))); - config.errors && plugins.add(errorDetectionPlugin(config.errors)); - customBinaryPlugin(plugins, config.binary, (_a2 = config.unsafe) == null ? undefined : _a2.allowUnsafeCustomBinary); - return new Git(config, plugins); } -init_git_response_error(); -var esm_default12 = gitInstanceFactory; +ZodEffects.create = (schema, effect, params) => { + return new ZodEffects({ + schema, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect, + ...processCreateParams(params) + }); +}; +ZodEffects.createWithPreprocess = (preprocess, schema, params) => { + return new ZodEffects({ + schema, + effect: { type: "preprocess", transform: preprocess }, + typeName: ZodFirstPartyTypeKind.ZodEffects, + ...processCreateParams(params) + }); +}; -// node_modules/zod/lib/index.mjs -var util; -(function(util2) { - util2.assertEqual = (val) => val; - function assertIs(_arg) { - } - util2.assertIs = assertIs; - function assertNever(_x) { - throw new Error; - } - util2.assertNever = assertNever; - util2.arrayToEnum = (items) => { - const obj = {}; - for (const item of items) { - obj[item] = item; - } - return obj; - }; - util2.getValidEnumValues = (obj) => { - const validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number"); - const filtered = {}; - for (const k of validKeys) { - filtered[k] = obj[k]; - } - return util2.objectValues(filtered); - }; - util2.objectValues = (obj) => { - return util2.objectKeys(obj).map(function(e) { - return obj[e]; - }); - }; - util2.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => { - const keys = []; - for (const key2 in object) { - if (Object.prototype.hasOwnProperty.call(object, key2)) { - keys.push(key2); - } - } - return keys; - }; - util2.find = (arr, checker) => { - for (const item of arr) { - if (checker(item)) - return item; +class ZodOptional extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType === ZodParsedType.undefined) { + return OK(undefined); } - return; - }; - util2.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val; - function joinValues(array, separator = " | ") { - return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator); + return this._def.innerType._parse(input); } - util2.joinValues = joinValues; - util2.jsonStringifyReplacer = (_2, value) => { - if (typeof value === "bigint") { - return value.toString(); - } - return value; - }; -})(util || (util = {})); -var objectUtil; -(function(objectUtil2) { - objectUtil2.mergeShapes = (first2, second) => { - return { - ...first2, - ...second - }; - }; -})(objectUtil || (objectUtil = {})); -var ZodParsedType = util.arrayToEnum([ - "string", - "nan", - "number", - "integer", - "float", - "boolean", - "date", - "bigint", - "symbol", - "function", - "undefined", - "null", - "array", - "object", - "unknown", - "promise", - "void", - "never", - "map", - "set" -]); -var getParsedType = (data) => { - const t = typeof data; - switch (t) { - case "undefined": - return ZodParsedType.undefined; - case "string": - return ZodParsedType.string; - case "number": - return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number; - case "boolean": - return ZodParsedType.boolean; - case "function": - return ZodParsedType.function; - case "bigint": - return ZodParsedType.bigint; - case "symbol": - return ZodParsedType.symbol; - case "object": - if (Array.isArray(data)) { - return ZodParsedType.array; - } - if (data === null) { - return ZodParsedType.null; - } - if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { - return ZodParsedType.promise; - } - if (typeof Map !== "undefined" && data instanceof Map) { - return ZodParsedType.map; - } - if (typeof Set !== "undefined" && data instanceof Set) { - return ZodParsedType.set; - } - if (typeof Date !== "undefined" && data instanceof Date) { - return ZodParsedType.date; - } - return ZodParsedType.object; - default: - return ZodParsedType.unknown; + unwrap() { + return this._def.innerType; } +} +ZodOptional.create = (type, params) => { + return new ZodOptional({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodOptional, + ...processCreateParams(params) + }); }; -var ZodIssueCode = util.arrayToEnum([ - "invalid_type", - "invalid_literal", - "custom", - "invalid_union", - "invalid_union_discriminator", - "invalid_enum_value", - "unrecognized_keys", - "invalid_arguments", - "invalid_return_type", - "invalid_date", - "invalid_string", - "too_small", - "too_big", - "invalid_intersection_types", - "not_multiple_of", - "not_finite" -]); -var quotelessJson = (obj) => { - const json = JSON.stringify(obj, null, 2); - return json.replace(/"([^"]+)":/g, "$1:"); + +class ZodNullable extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType === ZodParsedType.null) { + return OK(null); + } + return this._def.innerType._parse(input); + } + unwrap() { + return this._def.innerType; + } +} +ZodNullable.create = (type, params) => { + return new ZodNullable({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodNullable, + ...processCreateParams(params) + }); }; -class ZodError extends Error { - get errors() { - return this.issues; +class ZodDefault extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + let data = ctx.data; + if (ctx.parsedType === ZodParsedType.undefined) { + data = this._def.defaultValue(); + } + return this._def.innerType._parse({ + data, + path: ctx.path, + parent: ctx + }); } - constructor(issues) { - super(); - this.issues = []; - this.addIssue = (sub) => { - this.issues = [...this.issues, sub]; - }; - this.addIssues = (subs = []) => { - this.issues = [...this.issues, ...subs]; + removeDefault() { + return this._def.innerType; + } +} +ZodDefault.create = (type, params) => { + return new ZodDefault({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodDefault, + defaultValue: typeof params.default === "function" ? params.default : () => params.default, + ...processCreateParams(params) + }); +}; + +class ZodCatch extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + const newCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + } }; - const actualProto = new.target.prototype; - if (Object.setPrototypeOf) { - Object.setPrototypeOf(this, actualProto); + const result = this._def.innerType._parse({ + data: newCtx.data, + path: newCtx.path, + parent: { + ...newCtx + } + }); + if (isAsync(result)) { + return result.then((result2) => { + return { + status: "valid", + value: result2.status === "valid" ? result2.value : this._def.catchValue({ + get error() { + return new ZodError(newCtx.common.issues); + }, + input: newCtx.data + }) + }; + }); } else { - this.__proto__ = actualProto; + return { + status: "valid", + value: result.status === "valid" ? result.value : this._def.catchValue({ + get error() { + return new ZodError(newCtx.common.issues); + }, + input: newCtx.data + }) + }; } - this.name = "ZodError"; - this.issues = issues; } - format(_mapper) { - const mapper = _mapper || function(issue) { - return issue.message; - }; - const fieldErrors = { _errors: [] }; - const processError = (error) => { - for (const issue of error.issues) { - if (issue.code === "invalid_union") { - issue.unionErrors.map(processError); - } else if (issue.code === "invalid_return_type") { - processError(issue.returnTypeError); - } else if (issue.code === "invalid_arguments") { - processError(issue.argumentsError); - } else if (issue.path.length === 0) { - fieldErrors._errors.push(mapper(issue)); + removeCatch() { + return this._def.innerType; + } +} +ZodCatch.create = (type, params) => { + return new ZodCatch({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodCatch, + catchValue: typeof params.catch === "function" ? params.catch : () => params.catch, + ...processCreateParams(params) + }); +}; + +class ZodNaN extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.nan) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.nan, + received: ctx.parsedType + }); + return INVALID; + } + return { status: "valid", value: input.data }; + } +} +ZodNaN.create = (params) => { + return new ZodNaN({ + typeName: ZodFirstPartyTypeKind.ZodNaN, + ...processCreateParams(params) + }); +}; +var BRAND = Symbol("zod_brand"); + +class ZodBranded extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + const data = ctx.data; + return this._def.type._parse({ + data, + path: ctx.path, + parent: ctx + }); + } + unwrap() { + return this._def.type; + } +} + +class ZodPipeline extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.common.async) { + const handleAsync = async () => { + const inResult = await this._def.in._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (inResult.status === "aborted") + return INVALID; + if (inResult.status === "dirty") { + status.dirty(); + return DIRTY(inResult.value); } else { - let curr = fieldErrors; - let i = 0; - while (i < issue.path.length) { - const el = issue.path[i]; - const terminal2 = i === issue.path.length - 1; - if (!terminal2) { - curr[el] = curr[el] || { _errors: [] }; - } else { - curr[el] = curr[el] || { _errors: [] }; - curr[el]._errors.push(mapper(issue)); - } - curr = curr[el]; - i++; - } + return this._def.out._parseAsync({ + data: inResult.value, + path: ctx.path, + parent: ctx + }); } + }; + return handleAsync(); + } else { + const inResult = this._def.in._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (inResult.status === "aborted") + return INVALID; + if (inResult.status === "dirty") { + status.dirty(); + return { + status: "dirty", + value: inResult.value + }; + } else { + return this._def.out._parseSync({ + data: inResult.value, + path: ctx.path, + parent: ctx + }); } - }; - processError(this); - return fieldErrors; - } - static assert(value) { - if (!(value instanceof ZodError)) { - throw new Error(`Not a ZodError: ${value}`); } } - toString() { - return this.message; + static create(a, b) { + return new ZodPipeline({ + in: a, + out: b, + typeName: ZodFirstPartyTypeKind.ZodPipeline + }); } - get message() { - return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2); +} + +class ZodReadonly extends ZodType { + _parse(input) { + const result = this._def.innerType._parse(input); + const freeze = (data) => { + if (isValid(data)) { + data.value = Object.freeze(data.value); + } + return data; + }; + return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result); } - get isEmpty() { - return this.issues.length === 0; + unwrap() { + return this._def.innerType; + } +} +ZodReadonly.create = (type, params) => { + return new ZodReadonly({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodReadonly, + ...processCreateParams(params) + }); +}; +function custom(check, params = {}, fatal) { + if (check) + return ZodAny.create().superRefine((data, ctx) => { + var _a, _b; + if (!check(data)) { + const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params; + const _fatal = (_b = (_a = p.fatal) !== null && _a !== undefined ? _a : fatal) !== null && _b !== undefined ? _b : true; + const p2 = typeof p === "string" ? { message: p } : p; + ctx.addIssue({ code: "custom", ...p2, fatal: _fatal }); + } + }); + return ZodAny.create(); +} +var late = { + object: ZodObject.lazycreate +}; +var ZodFirstPartyTypeKind; +(function(ZodFirstPartyTypeKind2) { + ZodFirstPartyTypeKind2["ZodString"] = "ZodString"; + ZodFirstPartyTypeKind2["ZodNumber"] = "ZodNumber"; + ZodFirstPartyTypeKind2["ZodNaN"] = "ZodNaN"; + ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt"; + ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean"; + ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate"; + ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol"; + ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined"; + ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull"; + ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny"; + ZodFirstPartyTypeKind2["ZodUnknown"] = "ZodUnknown"; + ZodFirstPartyTypeKind2["ZodNever"] = "ZodNever"; + ZodFirstPartyTypeKind2["ZodVoid"] = "ZodVoid"; + ZodFirstPartyTypeKind2["ZodArray"] = "ZodArray"; + ZodFirstPartyTypeKind2["ZodObject"] = "ZodObject"; + ZodFirstPartyTypeKind2["ZodUnion"] = "ZodUnion"; + ZodFirstPartyTypeKind2["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion"; + ZodFirstPartyTypeKind2["ZodIntersection"] = "ZodIntersection"; + ZodFirstPartyTypeKind2["ZodTuple"] = "ZodTuple"; + ZodFirstPartyTypeKind2["ZodRecord"] = "ZodRecord"; + ZodFirstPartyTypeKind2["ZodMap"] = "ZodMap"; + ZodFirstPartyTypeKind2["ZodSet"] = "ZodSet"; + ZodFirstPartyTypeKind2["ZodFunction"] = "ZodFunction"; + ZodFirstPartyTypeKind2["ZodLazy"] = "ZodLazy"; + ZodFirstPartyTypeKind2["ZodLiteral"] = "ZodLiteral"; + ZodFirstPartyTypeKind2["ZodEnum"] = "ZodEnum"; + ZodFirstPartyTypeKind2["ZodEffects"] = "ZodEffects"; + ZodFirstPartyTypeKind2["ZodNativeEnum"] = "ZodNativeEnum"; + ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional"; + ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable"; + ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault"; + ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch"; + ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise"; + ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded"; + ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline"; + ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly"; +})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); +var instanceOfType = (cls, params = { + message: `Input not instance of ${cls.name}` +}) => custom((data) => data instanceof cls, params); +var stringType = ZodString.create; +var numberType = ZodNumber.create; +var nanType = ZodNaN.create; +var bigIntType = ZodBigInt.create; +var booleanType = ZodBoolean.create; +var dateType = ZodDate.create; +var symbolType = ZodSymbol.create; +var undefinedType = ZodUndefined.create; +var nullType = ZodNull.create; +var anyType = ZodAny.create; +var unknownType = ZodUnknown.create; +var neverType = ZodNever.create; +var voidType = ZodVoid.create; +var arrayType = ZodArray.create; +var objectType = ZodObject.create; +var strictObjectType = ZodObject.strictCreate; +var unionType = ZodUnion.create; +var discriminatedUnionType = ZodDiscriminatedUnion.create; +var intersectionType = ZodIntersection.create; +var tupleType = ZodTuple.create; +var recordType = ZodRecord.create; +var mapType = ZodMap.create; +var setType = ZodSet.create; +var functionType = ZodFunction.create; +var lazyType = ZodLazy.create; +var literalType = ZodLiteral.create; +var enumType = ZodEnum.create; +var nativeEnumType = ZodNativeEnum.create; +var promiseType = ZodPromise.create; +var effectsType = ZodEffects.create; +var optionalType = ZodOptional.create; +var nullableType = ZodNullable.create; +var preprocessType = ZodEffects.createWithPreprocess; +var pipelineType = ZodPipeline.create; +var ostring = () => stringType().optional(); +var onumber = () => numberType().optional(); +var oboolean = () => booleanType().optional(); +var coerce = { + string: (arg) => ZodString.create({ ...arg, coerce: true }), + number: (arg) => ZodNumber.create({ ...arg, coerce: true }), + boolean: (arg) => ZodBoolean.create({ + ...arg, + coerce: true + }), + bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }), + date: (arg) => ZodDate.create({ ...arg, coerce: true }) +}; +var NEVER = INVALID; +var z = /* @__PURE__ */ Object.freeze({ + __proto__: null, + defaultErrorMap: errorMap, + setErrorMap, + getErrorMap, + makeIssue, + EMPTY_PATH, + addIssueToContext, + ParseStatus, + INVALID, + DIRTY, + OK, + isAborted, + isDirty, + isValid, + isAsync, + get util() { + return util; + }, + get objectUtil() { + return objectUtil; + }, + ZodParsedType, + getParsedType, + ZodType, + datetimeRegex, + ZodString, + ZodNumber, + ZodBigInt, + ZodBoolean, + ZodDate, + ZodSymbol, + ZodUndefined, + ZodNull, + ZodAny, + ZodUnknown, + ZodNever, + ZodVoid, + ZodArray, + ZodObject, + ZodUnion, + ZodDiscriminatedUnion, + ZodIntersection, + ZodTuple, + ZodRecord, + ZodMap, + ZodSet, + ZodFunction, + ZodLazy, + ZodLiteral, + ZodEnum, + ZodNativeEnum, + ZodPromise, + ZodEffects, + ZodTransformer: ZodEffects, + ZodOptional, + ZodNullable, + ZodDefault, + ZodCatch, + ZodNaN, + BRAND, + ZodBranded, + ZodPipeline, + ZodReadonly, + custom, + Schema: ZodType, + ZodSchema: ZodType, + late, + get ZodFirstPartyTypeKind() { + return ZodFirstPartyTypeKind; + }, + coerce, + any: anyType, + array: arrayType, + bigint: bigIntType, + boolean: booleanType, + date: dateType, + discriminatedUnion: discriminatedUnionType, + effect: effectsType, + enum: enumType, + function: functionType, + instanceof: instanceOfType, + intersection: intersectionType, + lazy: lazyType, + literal: literalType, + map: mapType, + nan: nanType, + nativeEnum: nativeEnumType, + never: neverType, + null: nullType, + nullable: nullableType, + number: numberType, + object: objectType, + oboolean, + onumber, + optional: optionalType, + ostring, + pipeline: pipelineType, + preprocess: preprocessType, + promise: promiseType, + record: recordType, + set: setType, + strictObject: strictObjectType, + string: stringType, + symbol: symbolType, + transformer: effectsType, + tuple: tupleType, + undefined: undefinedType, + union: unionType, + unknown: unknownType, + void: voidType, + NEVER, + ZodIssueCode, + quotelessJson, + ZodError +}); + +// src/commands/components/commands/add/utils/handle-error.ts +function handleError(error) { + logger.error(`something went wrong. please check the error below for more details.`); + logger.error(`if the problem persists, please open an issue on github.`); + logger.error(""); + if (typeof error === "string") { + logger.error(error); + logger.break(); + process.exit(1); } - flatten(mapper = (issue) => issue.message) { - const fieldErrors = {}; - const formErrors = []; - for (const sub of this.issues) { - if (sub.path.length > 0) { - fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || []; - fieldErrors[sub.path[0]].push(mapper(sub)); - } else { - formErrors.push(mapper(sub)); - } + if (error instanceof z.ZodError) { + logger.error("validation failed:"); + for (const [key, value] of Object.entries(error.flatten().fieldErrors)) { + logger.error(`- ${highlighter.info(key)}: ${value}`); } - return { formErrors, fieldErrors }; + logger.break(); + process.exit(1); } - get formErrors() { - return this.flatten(); + if (error instanceof Error) { + logger.error(error.message); + logger.break(); + process.exit(1); } + logger.break(); + process.exit(1); } -ZodError.create = (issues) => { - const error = new ZodError(issues); - return error; +var ERRORS = { + MISSING_DIR_OR_EMPTY_PIPE: "1", + COMPONENT_NOT_FOUND: "2", + BUILD_MISSING_REGISTRY_FILE: "3" }; -var errorMap = (issue, _ctx) => { - let message; - switch (issue.code) { - case ZodIssueCode.invalid_type: - if (issue.received === ZodParsedType.undefined) { - message = "Required"; - } else { - message = `Expected ${issue.expected}, received ${issue.received}`; + +// src/commands/login.ts +var loginCommand = new Command().name("login").description("login with an API key").requiredOption("--apiKey ", "API key to login with").action(async (opts) => { + try { + logger.info(` +${symbols.info} validating API key...`); + const response = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { + method: "GET", + headers: { + Authorization: `Bearer ${opts.apiKey}`, + "Content-Type": "application/json" } - break; - case ZodIssueCode.invalid_literal: - message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`; - break; - case ZodIssueCode.unrecognized_keys: - message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`; - break; - case ZodIssueCode.invalid_union: - message = `Invalid input`; - break; - case ZodIssueCode.invalid_union_discriminator: - message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`; - break; - case ZodIssueCode.invalid_enum_value: - message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`; - break; - case ZodIssueCode.invalid_arguments: - message = `Invalid function arguments`; - break; - case ZodIssueCode.invalid_return_type: - message = `Invalid function return type`; - break; - case ZodIssueCode.invalid_date: - message = `Invalid date`; - break; - case ZodIssueCode.invalid_string: - if (typeof issue.validation === "object") { - if ("includes" in issue.validation) { - message = `Invalid input: must include "${issue.validation.includes}"`; - if (typeof issue.validation.position === "number") { - message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`; + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(`Failed to validate API key ${error.error}`); + } + const data = await response.json(); + if (data.data.needs_name) { + const inquirer2 = (await Promise.resolve().then(() => (init_esm14(), exports_esm))).default; + const { developerName } = await inquirer2.prompt([ + { + type: "input", + name: "developerName", + message: "enter your developer name:", + validate: (input) => { + if (input.length < 2) { + return "developer name must be at least 2 characters"; + } + if (input.length > 50) { + return "developer name must be less than 50 characters"; + } + return true; } - } else if ("startsWith" in issue.validation) { - message = `Invalid input: must start with "${issue.validation.startsWith}"`; - } else if ("endsWith" in issue.validation) { - message = `Invalid input: must end with "${issue.validation.endsWith}"`; - } else { - util.assertNever(issue.validation); } - } else if (issue.validation !== "regex") { - message = `Invalid ${issue.validation}`; - } else { - message = "Invalid"; + ]); + const updateResponse = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { + method: "POST", + headers: { + Authorization: `Bearer ${opts.apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ developer_name: developerName }) + }); + if (!updateResponse.ok) { + const error = await updateResponse.json(); + throw new Error(`failed to set developer name: ${error.error}`); } - break; - case ZodIssueCode.too_small: - if (issue.type === "array") - message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`; - else if (issue.type === "string") - message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`; - else if (issue.type === "number") - message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`; - else if (issue.type === "date") - message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`; - else - message = "Invalid input"; - break; - case ZodIssueCode.too_big: - if (issue.type === "array") - message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`; - else if (issue.type === "string") - message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`; - else if (issue.type === "number") - message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; - else if (issue.type === "bigint") - message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; - else if (issue.type === "date") - message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`; - else - message = "Invalid input"; - break; - case ZodIssueCode.custom: - message = `Invalid input`; - break; - case ZodIssueCode.invalid_intersection_types: - message = `Intersection results could not be merged`; - break; - case ZodIssueCode.not_multiple_of: - message = `Number must be a multiple of ${issue.multipleOf}`; - break; - case ZodIssueCode.not_finite: - message = "Number must be finite"; - break; - default: - message = _ctx.defaultError; - util.assertNever(issue); - } - return { message }; -}; -var overrideErrorMap = errorMap; -function setErrorMap(map) { - overrideErrorMap = map; -} -function getErrorMap() { - return overrideErrorMap; -} -var makeIssue = (params) => { - const { data, path, errorMaps, issueData } = params; - const fullPath = [...path, ...issueData.path || []]; - const fullIssue = { - ...issueData, - path: fullPath - }; - if (issueData.message !== undefined) { - return { - ...issueData, - path: fullPath, - message: issueData.message - }; + const updateData = await updateResponse.json(); + data.data.developer_name = updateData.data.developer_name; + } + logger.info(` +${symbols.success} successfully logged in!`); + console.log(colors.listItem(`${colors.label("developer id")} ${data.data.developer_id}`)); + console.log(colors.listItem(`${colors.label("developer name")} ${data.data.developer_name}`)); + Credentials.setApiKey(opts.apiKey, data.data.developer_id); + } catch (error) { + if (error instanceof Error) { + handleError(` +${symbols.error} login failed: ${error.message}`); + } else { + handleError(` +${symbols.error} login failed with unexpected error`); + } + process.exit(1); } - let errorMessage = ""; - const maps = errorMaps.filter((m) => !!m).slice().reverse(); - for (const map of maps) { - errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message; +}); +// src/commands/logout.ts +var logoutCommand = new Command().name("logout").description("end current session").action(async () => { + Credentials.clearCredentials(); + logger.success(` +${symbols.success} successfully logged out`); + logger.info(`${symbols.info} thanks for using screenpipe! come back soon.`); +}); +// src/commands/pipe/register.ts +import fs2 from "fs"; +var registerCommand = new Command().name("register").description("register a new pipe").requiredOption("--name ", "name of the pipe").option("--paid", "set this flag to create a paid pipe").option("--price ", "price in usd (required for paid pipes)", parseFloat).option("--source ", "source code url (e.g., github repository)").action(async (opts) => { + if (opts.paid && opts.price == null) { + handleError("error: price is required for paid pipes, i.e., --price "); } - return { - ...issueData, - path: fullPath, - message: errorMessage - }; -}; -var EMPTY_PATH = []; -function addIssueToContext(ctx, issueData) { - const overrideMap = getErrorMap(); - const issue = makeIssue({ - issueData, - data: ctx.data, - path: ctx.path, - errorMaps: [ - ctx.common.contextualErrorMap, - ctx.schemaErrorMap, - overrideMap, - overrideMap === errorMap ? undefined : errorMap - ].filter((x) => !!x) - }); - ctx.common.issues.push(issue); -} - -class ParseStatus { - constructor() { - this.value = "valid"; + if (opts.paid && opts.price <= 0) { + handleError("error: price must be positive for paid pipes"); } - dirty() { - if (this.value === "valid") - this.value = "dirty"; + try { + const apiKey = Credentials.getApiKey(); + if (!apiKey) { + handleError(symbols.error + " not logged in. please login first using" + colors.highlight("screenpipe login")); + } + let packageJson; + try { + packageJson = JSON.parse(fs2.readFileSync("package.json", "utf-8")); + } catch (error) { + handleError(`${symbols.error} failed to read package.json. make sure you're in the correct directory.`); + } + const isPaid = opts.paid || false; + const price = opts.price; + let description = null; + try { + const readmeContent = fs2.readFileSync("README.md", "utf-8"); + if (readmeContent) { + description = readmeContent; + } + } catch (error) { + logger.warn(`${symbols.arrow} no README.md found, required for description`); + } + const response = await fetch(`${API_BASE_URL}/api/plugins/create`, { + method: "POST", + headers: { + Authorization: `Bearer ${apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name, + description, + is_paid: isPaid, + price: isPaid ? price : null, + source_url: opts.source || null + }) + }); + if (!response.ok) { + const errorData = await response.json(); + handleError(errorData.error || "failed to create plugin"); + } + const data = await response.json(); + logger.success(` +${symbols.success} successfully created pipe: ${colors.highlight(opts.name)}`); + logger.info(` +${symbols.info} plugin details:`); + console.log(colors.listItem(`${colors.label("name")} ${opts.name}`)); + console.log(colors.listItem(`${colors.label("type")} ${isPaid ? `paid ($${price})` : "free"}`)); + if (opts.source) { + console.log(colors.listItem(`${colors.label("source")} ${opts.source}`)); + } + } catch (error) { + if (error instanceof Error) { + handleError(` +${symbols.error} creating failed: ${error.message}`); + } else { + handleError(` +${symbols.error} creating failed with unexpected error`); + } } - abort() { - if (this.value !== "aborted") - this.value = "aborted"; +}); + +// src/commands/pipe/publish.ts +import fs3 from "fs"; +import path2 from "path"; +var import_archiver = __toESM(require_archiver(), 1); +var import_ignore = __toESM(require_ignore2(), 1); +import crypto from "crypto"; +var NEXTJS_FILES = { + required: ["package.json", ".next"], + optional: [ + "package-lock.json", + "bun.lockb", + "next.config.js", + "next.config.mjs" + ] +}; +var MAX_FILE_SIZE = 500 * 1024 * 1024; +async function archiveNextJsProject(archive) { + const { required, optional } = NEXTJS_FILES; + const missingFiles = required.filter((file) => !fs3.existsSync(file)); + if (missingFiles.length > 0) { + throw new Error(`Required files not found: ${missingFiles.join(", ")}. ` + "Make sure you're in the correct directory and the project is built."); } - static mergeArray(status, results) { - const arrayValue = []; - for (const s of results) { - if (s.status === "aborted") - return INVALID; - if (s.status === "dirty") - status.dirty(); - arrayValue.push(s.value); + for (const file of required) { + if (file === ".next") { + archive.directory(".next", ".next", (entry) => { + return entry.name.startsWith(".next/cache/") ? false : entry; + }); + } else { + archive.file(file, { name: file }); } - return { status: status.value, value: arrayValue }; } - static async mergeObjectAsync(status, pairs) { - const syncPairs = []; - for (const pair of pairs) { - const key2 = await pair.key; - const value = await pair.value; - syncPairs.push({ - key: key2, - value - }); + optional.filter((file) => fs3.existsSync(file)).forEach((file) => { + archive.file(file, { name: file }); + }); +} +function archiveStandardProject(archive, ig) { + archive.glob("**/*", { + ignore: [".git/**", "node_modules/**", ".next/cache/**"], + dot: true, + nodir: false, + mark: true + }); +} +async function retryFetch(url, options, maxRetries = 3, baseDelay = 1000) { + for (let attempt = 1;attempt <= maxRetries; attempt++) { + try { + const response = await fetch(url, options); + if (response.ok) + return response; + if (attempt === maxRetries) { + throw new Error(`Failed after ${maxRetries} attempts: ${await response.text()}`); + } + } catch (error) { + if (attempt === maxRetries) + throw error; } - return ParseStatus.mergeObjectSync(status, syncPairs); + const delay = baseDelay * Math.pow(2, attempt - 1); + await new Promise((resolve) => setTimeout(resolve, delay)); } - static mergeObjectSync(status, pairs) { - const finalObject = {}; - for (const pair of pairs) { - const { key: key2, value } = pair; - if (key2.status === "aborted") - return INVALID; - if (value.status === "aborted") - return INVALID; - if (key2.status === "dirty") - status.dirty(); - if (value.status === "dirty") - status.dirty(); - if (key2.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) { - finalObject[key2.value] = value.value; + throw new Error("Retry failed"); +} +var publishCommand = new Command("publish").description("publish or update a pipe to the store").requiredOption("-n, --name ", "name of the pipe").option("-v, --verbose", "enable verbose logging", false).action(async (opts) => { + try { + if (opts.verbose) { + console.log(colors.dim(`${symbols.arrow} starting publish command...`)); + } + const apiKey = Credentials.getApiKey(); + if (!apiKey) { + console.error(colors.error(`${symbols.error} Not logged in. Please login first using ${colors.highlight("screenpipe login")}`)); + process.exit(1); + } + if (opts.verbose) { + console.log(colors.dim(`${symbols.arrow} reading package.json...`)); + } + let packageJson; + try { + packageJson = JSON.parse(fs3.readFileSync("package.json", "utf-8")); + } catch (error) { + console.error(colors.error(`${symbols.error} Failed to read package.json. Make sure you're in the correct directory.`)); + process.exit(1); + } + if (!packageJson.name || !packageJson.version) { + console.error(colors.error(`${symbols.error} Package name and version are required in package.json`)); + process.exit(1); + } + console.log(colors.info(` +${symbols.info} Publishing ${colors.highlight(packageJson.name)} v${packageJson.version}...`)); + console.log(colors.dim(`${symbols.arrow} Creating package archive...`)); + const zipPath = path2.join(process.cwd(), `${packageJson.name}-${packageJson.version}.zip`); + const output = fs3.createWriteStream(zipPath); + const archive = import_archiver.default("zip", { zlib: { level: 9 } }); + const ig = import_ignore.default(); + if (fs3.existsSync(".gitignore")) { + ig.add(fs3.readFileSync(".gitignore").toString()); + } + const isNextProject = fs3.existsSync("next.config.js") || fs3.existsSync("next.config.mjs") || fs3.existsSync("next.config.ts"); + archive.pipe(output); + if (isNextProject) { + await archiveNextJsProject(archive); + } else { + archiveStandardProject(archive, ig); + } + await new Promise((resolve, reject) => { + output.on("close", resolve); + archive.on("error", reject); + archive.finalize(); + }); + if (opts.verbose) { + console.log(colors.dim(`${symbols.arrow} detected project type: ${isNextProject ? "nextjs" : "standard"}`)); + console.log(colors.dim(`${symbols.arrow} starting archive creation...`)); + } + const fileBuffer = fs3.readFileSync(zipPath); + const hashSum = crypto.createHash("sha256"); + hashSum.update(fileBuffer); + const fileHash = hashSum.digest("hex"); + const fileSize = fs3.statSync(zipPath).size; + if (fileSize > MAX_FILE_SIZE) { + console.error(colors.error(`${symbols.error} Package size (${(fileSize / 1024 / 1024).toFixed(2)}MB) exceeds maximum allowed size (${MAX_FILE_SIZE / 1024 / 1024}MB)`)); + fs3.unlinkSync(zipPath); + process.exit(1); + } + let description = null; + try { + const readmeContent = fs3.readFileSync("README.md", "utf-8"); + if (readmeContent) { + description = readmeContent; + } + } catch (error) { + console.log(colors.dim(`${symbols.arrow} No README.md found, required for description`)); + } + if (!description) { + console.error(colors.error(`${symbols.error} Description is required`)); + process.exit(1); + } + if (opts.verbose) { + console.log(colors.dim(`${symbols.arrow} calculating file hash...`)); + } + try { + console.log(colors.dim(`${symbols.arrow} Getting upload URL...`)); + const urlResponse = await fetch(`${API_BASE_URL}/api/plugins/publish`, { + method: "POST", + headers: { + Authorization: `Bearer ${apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name, + version: packageJson.version, + fileSize, + fileHash, + description + }) + }); + if (!urlResponse.ok) { + throw new Error(`Failed to get upload URL: ${await urlResponse.text()}`); + } + const { uploadUrl, path: path3 } = await urlResponse.json(); + console.log(colors.dim(`${symbols.arrow} Uploading to storage...`)); + const uploadResponse = await retryFetch(uploadUrl, { + method: "PUT", + headers: { + "Content-Type": "application/zip" + }, + body: fileBuffer + }); + if (!uploadResponse.ok) { + const text = await uploadResponse.text(); + throw new Error(`Failed to upload file to storage: ${text}`); + } + console.log(colors.dim(`${symbols.arrow} Finalizing upload...`)); + const finalizeResponse = await fetch(`${API_BASE_URL}/api/plugins/publish/finalize`, { + method: "POST", + headers: { + Authorization: `Bearer ${apiKey}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name, + version: packageJson.version, + fileHash, + storagePath: path3, + description, + fileSize + }) + }); + if (!finalizeResponse.ok) { + const text = await finalizeResponse.text(); + throw new Error(`Failed to finalize upload: ${text}`); + } + const data = await finalizeResponse.json(); + console.log(colors.success(` +${symbols.success} Successfully published plugin!`)); + console.log(colors.listItem(`${colors.label("Name")} ${packageJson.name}`)); + console.log(colors.listItem(`${colors.label("Version")} ${packageJson.version}`)); + console.log(colors.listItem(`${colors.label("Size")} ${(fileSize / 1024).toFixed(2)} KB`)); + if (data.message) { + console.log(colors.info(` +${symbols.info} ${data.message}`)); + } + fs3.unlinkSync(zipPath); + if (opts.verbose) { + console.log(colors.dim(`${symbols.arrow} cleaned up temporary zip file`)); + } + } catch (error) { + if (fs3.existsSync(zipPath)) { + fs3.unlinkSync(zipPath); + if (opts.verbose) { + console.log(colors.dim(`${symbols.arrow} cleaned up temporary zip file`)); + } } + if (error instanceof Error) { + console.error(colors.error(` +${symbols.error} Publishing failed: ${error.message}`)); + } + process.exit(1); + } + } catch (error) { + if (error instanceof Error) { + console.error(colors.error(` +${symbols.error} Publishing failed: ${error.message}`)); + } else { + console.error(colors.error(` +${symbols.error} Publishing failed with unexpected error`)); } - return { status: status.value, value: finalObject }; + process.exit(1); } -} -var INVALID = Object.freeze({ - status: "aborted" }); -var DIRTY = (value) => ({ status: "dirty", value }); -var OK = (value) => ({ status: "valid", value }); -var isAborted = (x) => x.status === "aborted"; -var isDirty = (x) => x.status === "dirty"; -var isValid = (x) => x.status === "valid"; -var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise; -function __classPrivateFieldGet(receiver, state, kind, f) { - if (kind === "a" && !f) - throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) - throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); -} -function __classPrivateFieldSet(receiver, state, value, kind, f) { - if (kind === "m") - throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) - throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) - throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value; -} -var errorUtil; -(function(errorUtil2) { - errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {}; - errorUtil2.toString = (message) => typeof message === "string" ? message : message === null || message === undefined ? undefined : message.message; -})(errorUtil || (errorUtil = {})); -var _ZodEnum_cache; -var _ZodNativeEnum_cache; -class ParseInputLazyPath { - constructor(parent, value, path, key2) { - this._cachedPath = []; - this.parent = parent; - this.data = value; - this._path = path; - this._key = key2; - } - get path() { - if (!this._cachedPath.length) { - if (this._key instanceof Array) { - this._cachedPath.push(...this._path, ...this._key); - } else { - this._cachedPath.push(...this._path, this._key); +// src/commands/pipe/list-versions.ts +var listVersionsCommand = new Command().name("list-versions").description("List all versions of a pipe").requiredOption("--name ", "name of the pipe").action(async (opts) => { + try { + const response = await fetch(`${API_BASE_URL}/api/plugins/list-versions`, { + method: "POST", + headers: { + Authorization: `Bearer ${Credentials.getApiKey()}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + name: opts.name + }) + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(`failed to list versions ${error.error}`); + } + const data = await response.json(); + console.log(colors.header(`plugin Information`)); + console.log(colors.listItem(`${colors.label("Name")} ${opts.name}`)); + console.log(colors.listItem(`${colors.label("ID")} ${data.plugin_id}`)); + console.log(colors.header("version History")); + data.versions.forEach((version) => { + const status = version.status === "published" ? colors.success(version.status) : colors.warning(version.status); + console.log(colors.primary(` + ${symbols.arrow} version ${colors.bold(version.version)} ${colors.dim(`(${status})`)}`)); + console.log(colors.listItem(`${colors.label("created")} ${new Date(version.created_at).toLocaleString()}`)); + console.log(colors.listItem(`${colors.label("size")} ${(version.file_size / 1024).toFixed(2)} KB`)); + console.log(colors.listItem(`${colors.label("hash")} ${colors.dim(version.file_hash)}`)); + if (version.changelog) { + console.log(colors.listItem(`${colors.label("changelog")} ${version.changelog}`)); } + }); + } catch (error) { + if (error instanceof Error) { + handleError(` +${symbols.error} list versions failed: ${error.message}`); + } else { + handleError(` +${symbols.error} list versions failed with unexpected error`); } - return this._cachedPath; } -} -var handleResult = (ctx, result) => { - if (isValid(result)) { - return { success: true, data: result.value }; - } else { - if (!ctx.common.issues.length) { - throw new Error("Validation failed but no issues detected."); +}); + +// src/commands/pipe/create.ts +var import_fs_extra = __toESM(require_lib4(), 1); +init_esm13(); +import path3 from "path"; + +// node_modules/simple-git/dist/esm/index.js +var import_file_exists = __toESM(require_dist2(), 1); +var import_debug = __toESM(require_src(), 1); +var import_promise_deferred = __toESM(require_dist3(), 1); +var import_promise_deferred2 = __toESM(require_dist3(), 1); +import { spawn } from "child_process"; +import { EventEmitter } from "node:events"; +var __defProp2 = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames2 = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp2 = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key2, value) => (key2 in obj) ? __defProp2(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp2.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); } - return { - success: false, - get error() { - if (this._error) - return this._error; - const error = new ZodError(ctx.common.issues); - this._error = error; - return this._error; - } - }; - } + return a; }; -function processCreateParams(params) { - if (!params) - return {}; - const { errorMap: errorMap2, invalid_type_error, required_error, description } = params; - if (errorMap2 && (invalid_type_error || required_error)) { - throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); - } - if (errorMap2) - return { errorMap: errorMap2, description }; - const customMap = (iss, ctx) => { - var _a2, _b; - const { message } = params; - if (iss.code === "invalid_enum_value") { - return { message: message !== null && message !== undefined ? message : ctx.defaultError }; - } - if (typeof ctx.data === "undefined") { - return { message: (_a2 = message !== null && message !== undefined ? message : required_error) !== null && _a2 !== undefined ? _a2 : ctx.defaultError }; - } - if (iss.code !== "invalid_type") - return { message: ctx.defaultError }; - return { message: (_b = message !== null && message !== undefined ? message : invalid_type_error) !== null && _b !== undefined ? _b : ctx.defaultError }; - }; - return { errorMap: customMap, description }; -} - -class ZodType { - get description() { - return this._def.description; - } - _getType(input) { - return getParsedType(input.data); - } - _getOrReturnCtx(input, ctx) { - return ctx || { - common: input.parent.common, - data: input.data, - parsedType: getParsedType(input.data), - schemaErrorMap: this._def.errorMap, - path: input.path, - parent: input.parent - }; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __esm2 = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; +}; +var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export2 = (target, all) => { + for (var name in all) + __defProp2(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from2, except, desc) => { + if (from2 && typeof from2 === "object" || typeof from2 === "function") { + for (let key2 of __getOwnPropNames2(from2)) + if (!__hasOwnProp2.call(to, key2) && key2 !== except) + __defProp2(to, key2, { get: () => from2[key2], enumerable: !(desc = __getOwnPropDesc(from2, key2)) || desc.enumerable }); } - _processInputParams(input) { - return { - status: new ParseStatus, - ctx: { - common: input.parent.common, - data: input.data, - parsedType: getParsedType(input.data), - schemaErrorMap: this._def.errorMap, - path: input.path, - parent: input.parent + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod); +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); } }; - } - _parseSync(input) { - const result = this._parse(input); - if (isAsync(result)) { - throw new Error("Synchronous parse encountered promise."); - } - return result; - } - _parseAsync(input) { - const result = this._parse(input); - return Promise.resolve(result); - } - parse(data, params) { - const result = this.safeParse(data, params); - if (result.success) - return result.data; - throw result.error; - } - safeParse(data, params) { - var _a2; - const ctx = { - common: { - issues: [], - async: (_a2 = params === null || params === undefined ? undefined : params.async) !== null && _a2 !== undefined ? _a2 : false, - contextualErrorMap: params === null || params === undefined ? undefined : params.errorMap - }, - path: (params === null || params === undefined ? undefined : params.path) || [], - schemaErrorMap: this._def.errorMap, - parent: null, - data, - parsedType: getParsedType(data) - }; - const result = this._parseSync({ data, path: ctx.path, parent: ctx }); - return handleResult(ctx, result); - } - "~validate"(data) { - var _a2, _b; - const ctx = { - common: { - issues: [], - async: !!this["~standard"].async - }, - path: [], - schemaErrorMap: this._def.errorMap, - parent: null, - data, - parsedType: getParsedType(data) - }; - if (!this["~standard"].async) { + var rejected = (value) => { try { - const result = this._parseSync({ data, path: [], parent: ctx }); - return isValid(result) ? { - value: result.value - } : { - issues: ctx.common.issues - }; - } catch (err) { - if ((_b = (_a2 = err === null || err === undefined ? undefined : err.message) === null || _a2 === undefined ? undefined : _a2.toLowerCase()) === null || _b === undefined ? undefined : _b.includes("encountered")) { - this["~standard"].async = true; - } - ctx.common = { - issues: [], - async: true - }; + step(generator.throw(value)); + } catch (e) { + reject(e); } - } - return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) ? { - value: result.value - } : { - issues: ctx.common.issues - }); - } - async parseAsync(data, params) { - const result = await this.safeParseAsync(data, params); - if (result.success) - return result.data; - throw result.error; - } - async safeParseAsync(data, params) { - const ctx = { - common: { - issues: [], - contextualErrorMap: params === null || params === undefined ? undefined : params.errorMap, - async: true - }, - path: (params === null || params === undefined ? undefined : params.path) || [], - schemaErrorMap: this._def.errorMap, - parent: null, - data, - parsedType: getParsedType(data) }; - const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx }); - const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); - return handleResult(ctx, result); + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; +function pathspec(...paths) { + const key2 = new String(paths); + cache.set(key2, paths); + return key2; +} +function isPathSpec(path3) { + return path3 instanceof String && cache.has(path3); +} +function toPaths(pathSpec) { + return cache.get(pathSpec) || []; +} +var cache; +var init_pathspec = __esm2({ + "src/lib/args/pathspec.ts"() { + cache = /* @__PURE__ */ new WeakMap; } - refine(check2, message) { - const getIssueProperties = (val) => { - if (typeof message === "string" || typeof message === "undefined") { - return { message }; - } else if (typeof message === "function") { - return message(val); - } else { - return message; +}); +var GitError; +var init_git_error = __esm2({ + "src/lib/errors/git-error.ts"() { + GitError = class extends Error { + constructor(task, message) { + super(message); + this.task = task; + Object.setPrototypeOf(this, new.target.prototype); } }; - return this._refinement((val, ctx) => { - const result = check2(val); - const setError = () => ctx.addIssue({ - code: ZodIssueCode.custom, - ...getIssueProperties(val) - }); - if (typeof Promise !== "undefined" && result instanceof Promise) { - return result.then((data) => { - if (!data) { - setError(); - return false; - } else { - return true; - } - }); - } - if (!result) { - setError(); - return false; - } else { - return true; - } - }); } - refinement(check2, refinementData) { - return this._refinement((val, ctx) => { - if (!check2(val)) { - ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData); - return false; - } else { - return true; +}); +var GitResponseError; +var init_git_response_error = __esm2({ + "src/lib/errors/git-response-error.ts"() { + init_git_error(); + GitResponseError = class extends GitError { + constructor(git, message) { + super(undefined, message || String(git)); + this.git = git; } - }); - } - _refinement(refinement) { - return new ZodEffects({ - schema: this, - typeName: ZodFirstPartyTypeKind.ZodEffects, - effect: { type: "refinement", refinement } - }); - } - superRefine(refinement) { - return this._refinement(refinement); - } - constructor(def) { - this.spa = this.safeParseAsync; - this._def = def; - this.parse = this.parse.bind(this); - this.safeParse = this.safeParse.bind(this); - this.parseAsync = this.parseAsync.bind(this); - this.safeParseAsync = this.safeParseAsync.bind(this); - this.spa = this.spa.bind(this); - this.refine = this.refine.bind(this); - this.refinement = this.refinement.bind(this); - this.superRefine = this.superRefine.bind(this); - this.optional = this.optional.bind(this); - this.nullable = this.nullable.bind(this); - this.nullish = this.nullish.bind(this); - this.array = this.array.bind(this); - this.promise = this.promise.bind(this); - this.or = this.or.bind(this); - this.and = this.and.bind(this); - this.transform = this.transform.bind(this); - this.brand = this.brand.bind(this); - this.default = this.default.bind(this); - this.catch = this.catch.bind(this); - this.describe = this.describe.bind(this); - this.pipe = this.pipe.bind(this); - this.readonly = this.readonly.bind(this); - this.isNullable = this.isNullable.bind(this); - this.isOptional = this.isOptional.bind(this); - this["~standard"] = { - version: 1, - vendor: "zod", - validate: (data) => this["~validate"](data) }; } - optional() { - return ZodOptional.create(this, this._def); - } - nullable() { - return ZodNullable.create(this, this._def); - } - nullish() { - return this.nullable().optional(); - } - array() { - return ZodArray.create(this); - } - promise() { - return ZodPromise.create(this, this._def); - } - or(option) { - return ZodUnion.create([this, option], this._def); - } - and(incoming) { - return ZodIntersection.create(this, incoming, this._def); - } - transform(transform) { - return new ZodEffects({ - ...processCreateParams(this._def), - schema: this, - typeName: ZodFirstPartyTypeKind.ZodEffects, - effect: { type: "transform", transform } - }); - } - default(def) { - const defaultValueFunc = typeof def === "function" ? def : () => def; - return new ZodDefault({ - ...processCreateParams(this._def), - innerType: this, - defaultValue: defaultValueFunc, - typeName: ZodFirstPartyTypeKind.ZodDefault - }); - } - brand() { - return new ZodBranded({ - typeName: ZodFirstPartyTypeKind.ZodBranded, - type: this, - ...processCreateParams(this._def) - }); - } - catch(def) { - const catchValueFunc = typeof def === "function" ? def : () => def; - return new ZodCatch({ - ...processCreateParams(this._def), - innerType: this, - catchValue: catchValueFunc, - typeName: ZodFirstPartyTypeKind.ZodCatch - }); - } - describe(description) { - const This = this.constructor; - return new This({ - ...this._def, - description - }); +}); +var TaskConfigurationError; +var init_task_configuration_error = __esm2({ + "src/lib/errors/task-configuration-error.ts"() { + init_git_error(); + TaskConfigurationError = class extends GitError { + constructor(message) { + super(undefined, message); + } + }; } - pipe(target) { - return ZodPipeline.create(this, target); +}); +function asFunction(source) { + return typeof source === "function" ? source : NOOP; +} +function isUserFunction(source) { + return typeof source === "function" && source !== NOOP; +} +function splitOn(input, char) { + const index = input.indexOf(char); + if (index <= 0) { + return [input, ""]; } - readonly() { - return ZodReadonly.create(this); + return [input.substr(0, index), input.substr(index + 1)]; +} +function first(input, offset = 0) { + return isArrayLike(input) && input.length > offset ? input[offset] : undefined; +} +function last(input, offset = 0) { + if (isArrayLike(input) && input.length > offset) { + return input[input.length - 1 - offset]; } - isOptional() { - return this.safeParse(undefined).success; +} +function isArrayLike(input) { + return !!(input && typeof input.length === "number"); +} +function toLinesWithContent(input = "", trimmed2 = true, separator = ` +`) { + return input.split(separator).reduce((output, line) => { + const lineContent = trimmed2 ? line.trim() : line; + if (lineContent) { + output.push(lineContent); + } + return output; + }, []); +} +function forEachLineWithContent(input, callback) { + return toLinesWithContent(input, true).map((line) => callback(line)); +} +function folderExists(path3) { + return import_file_exists.exists(path3, import_file_exists.FOLDER); +} +function append(target, item) { + if (Array.isArray(target)) { + if (!target.includes(item)) { + target.push(item); + } + } else { + target.add(item); } - isNullable() { - return this.safeParse(null).success; + return item; +} +function including(target, item) { + if (Array.isArray(target) && !target.includes(item)) { + target.push(item); } + return target; } -var cuidRegex = /^c[^\s-]{8,}$/i; -var cuid2Regex = /^[0-9a-z]+$/; -var ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i; -var uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i; -var nanoidRegex = /^[a-z0-9_-]{21}$/i; -var jwtRegex = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/; -var durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/; -var emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i; -var _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; -var emojiRegex2; -var ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; -var ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/; -var ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/; -var ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; -var base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/; -var base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/; -var dateRegexSource = `((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`; -var dateRegex = new RegExp(`^${dateRegexSource}$`); -function timeRegexSource(args) { - let regex2 = `([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d`; - if (args.precision) { - regex2 = `${regex2}\\.\\d{${args.precision}}`; - } else if (args.precision == null) { - regex2 = `${regex2}(\\.\\d+)?`; +function remove(target, item) { + if (Array.isArray(target)) { + const index = target.indexOf(item); + if (index >= 0) { + target.splice(index, 1); + } + } else { + target.delete(item); } - return regex2; + return item; } -function timeRegex(args) { - return new RegExp(`^${timeRegexSource(args)}$`); +function asArray(source) { + return Array.isArray(source) ? source : [source]; } -function datetimeRegex(args) { - let regex2 = `${dateRegexSource}T${timeRegexSource(args)}`; - const opts = []; - opts.push(args.local ? `Z?` : `Z`); - if (args.offset) - opts.push(`([+-]\\d{2}:?\\d{2})`); - regex2 = `${regex2}(${opts.join("|")})`; - return new RegExp(`^${regex2}$`); +function asCamelCase(str) { + return str.replace(/[\s-]+(.)/g, (_all, chr) => { + return chr.toUpperCase(); + }); } -function isValidIP(ip, version) { - if ((version === "v4" || !version) && ipv4Regex.test(ip)) { - return true; +function asStringArray(source) { + return asArray(source).map(String); +} +function asNumber(source, onNaN = 0) { + if (source == null) { + return onNaN; } - if ((version === "v6" || !version) && ipv6Regex.test(ip)) { - return true; + const num = parseInt(source, 10); + return isNaN(num) ? onNaN : num; +} +function prefixedArray(input, prefix) { + const output = []; + for (let i = 0, max = input.length;i < max; i++) { + output.push(prefix, input[i]); } - return false; + return output; } -function isValidJWT(jwt, alg) { - if (!jwtRegex.test(jwt)) - return false; - try { - const [header] = jwt.split("."); - const base64 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "="); - const decoded = JSON.parse(atob(base64)); - if (typeof decoded !== "object" || decoded === null) - return false; - if (!decoded.typ || !decoded.alg) - return false; - if (alg && decoded.alg !== alg) - return false; - return true; - } catch (_a2) { - return false; +function bufferToString(input) { + return (Array.isArray(input) ? Buffer.concat(input) : input).toString("utf-8"); +} +function pick(source, properties) { + return Object.assign({}, ...properties.map((property) => (property in source) ? { [property]: source[property] } : {})); +} +function delay(duration = 0) { + return new Promise((done) => setTimeout(done, duration)); +} +function orVoid(input) { + if (input === false) { + return; } + return input; } -function isValidCidr(ip, version) { - if ((version === "v4" || !version) && ipv4CidrRegex.test(ip)) { - return true; +var NULL; +var NOOP; +var objectToString; +var init_util = __esm2({ + "src/lib/utils/util.ts"() { + NULL = "\x00"; + NOOP = () => { + }; + objectToString = Object.prototype.toString.call.bind(Object.prototype.toString); } - if ((version === "v6" || !version) && ipv6CidrRegex.test(ip)) { - return true; +}); +function filterType(input, filter2, def) { + if (filter2(input)) { + return input; } - return false; + return arguments.length > 2 ? def : undefined; } - -class ZodString extends ZodType { - _parse(input) { - if (this._def.coerce) { - input.data = String(input.data); - } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.string) { - const ctx2 = this._getOrReturnCtx(input); - addIssueToContext(ctx2, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.string, - received: ctx2.parsedType - }); - return INVALID; - } - const status = new ParseStatus; - let ctx = undefined; - for (const check2 of this._def.checks) { - if (check2.kind === "min") { - if (input.data.length < check2.value) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: check2.value, - type: "string", - inclusive: true, - exact: false, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "max") { - if (input.data.length > check2.value) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: check2.value, - type: "string", - inclusive: true, - exact: false, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "length") { - const tooBig = input.data.length > check2.value; - const tooSmall = input.data.length < check2.value; - if (tooBig || tooSmall) { - ctx = this._getOrReturnCtx(input, ctx); - if (tooBig) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: check2.value, - type: "string", - inclusive: true, - exact: true, - message: check2.message - }); - } else if (tooSmall) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: check2.value, - type: "string", - inclusive: true, - exact: true, - message: check2.message - }); +function filterPrimitives(input, omit) { + const type = isPathSpec(input) ? "string" : typeof input; + return /number|string|boolean/.test(type) && (!omit || !omit.includes(type)); +} +function filterPlainObject(input) { + return !!input && objectToString(input) === "[object Object]"; +} +function filterFunction(input) { + return typeof input === "function"; +} +var filterArray; +var filterString; +var filterStringArray; +var filterStringOrStringArray; +var filterHasLength; +var init_argument_filters = __esm2({ + "src/lib/utils/argument-filters.ts"() { + init_util(); + init_pathspec(); + filterArray = (input) => { + return Array.isArray(input); + }; + filterString = (input) => { + return typeof input === "string"; + }; + filterStringArray = (input) => { + return Array.isArray(input) && input.every(filterString); + }; + filterStringOrStringArray = (input) => { + return filterString(input) || Array.isArray(input) && input.every(filterString); + }; + filterHasLength = (input) => { + if (input == null || "number|boolean|function".includes(typeof input)) { + return false; + } + return Array.isArray(input) || typeof input === "string" || typeof input.length === "number"; + }; + } +}); +var ExitCodes; +var init_exit_codes = __esm2({ + "src/lib/utils/exit-codes.ts"() { + ExitCodes = /* @__PURE__ */ ((ExitCodes2) => { + ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS"; + ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR"; + ExitCodes2[ExitCodes2["NOT_FOUND"] = -2] = "NOT_FOUND"; + ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN"; + return ExitCodes2; + })(ExitCodes || {}); + } +}); +var GitOutputStreams; +var init_git_output_streams = __esm2({ + "src/lib/utils/git-output-streams.ts"() { + GitOutputStreams = class { + constructor(stdOut, stdErr) { + this.stdOut = stdOut; + this.stdErr = stdErr; + } + asStrings() { + return new GitOutputStreams(this.stdOut.toString("utf8"), this.stdErr.toString("utf8")); + } + }; + } +}); +var LineParser; +var RemoteLineParser; +var init_line_parser = __esm2({ + "src/lib/utils/line-parser.ts"() { + LineParser = class { + constructor(regExp, useMatches) { + this.matches = []; + this.parse = (line, target) => { + this.resetMatches(); + if (!this._regExp.every((reg, index) => this.addMatch(reg, index, line(index)))) { + return false; } - status.dirty(); - } - } else if (check2.kind === "email") { - if (!emailRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "email", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "emoji") { - if (!emojiRegex2) { - emojiRegex2 = new RegExp(_emojiRegex, "u"); - } - if (!emojiRegex2.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "emoji", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "uuid") { - if (!uuidRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "uuid", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "nanoid") { - if (!nanoidRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "nanoid", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "cuid") { - if (!cuidRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "cuid", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "cuid2") { - if (!cuid2Regex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "cuid2", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "ulid") { - if (!ulidRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "ulid", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "url") { - try { - new URL(input.data); - } catch (_a2) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "url", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "regex") { - check2.regex.lastIndex = 0; - const testResult = check2.regex.test(input.data); - if (!testResult) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "regex", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "trim") { - input.data = input.data.trim(); - } else if (check2.kind === "includes") { - if (!input.data.includes(check2.value, check2.position)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: { includes: check2.value, position: check2.position }, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "toLowerCase") { - input.data = input.data.toLowerCase(); - } else if (check2.kind === "toUpperCase") { - input.data = input.data.toUpperCase(); - } else if (check2.kind === "startsWith") { - if (!input.data.startsWith(check2.value)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: { startsWith: check2.value }, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "endsWith") { - if (!input.data.endsWith(check2.value)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: { endsWith: check2.value }, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "datetime") { - const regex2 = datetimeRegex(check2); - if (!regex2.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: "datetime", - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "date") { - const regex2 = dateRegex; - if (!regex2.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: "date", - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "time") { - const regex2 = timeRegex(check2); - if (!regex2.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: "time", - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "duration") { - if (!durationRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "duration", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "ip") { - if (!isValidIP(input.data, check2.version)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "ip", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "jwt") { - if (!isValidJWT(input.data, check2.alg)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "jwt", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "cidr") { - if (!isValidCidr(input.data, check2.version)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "cidr", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); + return this.useMatches(target, this.prepareMatches()) !== false; + }; + this._regExp = Array.isArray(regExp) ? regExp : [regExp]; + if (useMatches) { + this.useMatches = useMatches; } - } else if (check2.kind === "base64") { - if (!base64Regex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "base64", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); + } + useMatches(target, match) { + throw new Error(`LineParser:useMatches not implemented`); + } + resetMatches() { + this.matches.length = 0; + } + prepareMatches() { + return this.matches; + } + addMatch(reg, index, line) { + const matched = line && reg.exec(line); + if (matched) { + this.pushMatch(index, matched); } - } else if (check2.kind === "base64url") { - if (!base64urlRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "base64url", - code: ZodIssueCode.invalid_string, - message: check2.message - }); - status.dirty(); + return !!matched; + } + pushMatch(_index, matched) { + this.matches.push(...matched.slice(1)); + } + }; + RemoteLineParser = class extends LineParser { + addMatch(reg, index, line) { + return /^remote:\s/.test(String(line)) && super.addMatch(reg, index, line); + } + pushMatch(index, matched) { + if (index > 0 || matched.length > 1) { + super.pushMatch(index, matched); } - } else { - util.assertNever(check2); } - } - return { status: status.value, value: input.data }; - } - _regex(regex2, validation, message) { - return this.refinement((data) => regex2.test(data), { - validation, - code: ZodIssueCode.invalid_string, - ...errorUtil.errToObj(message) - }); - } - _addCheck(check2) { - return new ZodString({ - ...this._def, - checks: [...this._def.checks, check2] - }); - } - email(message) { - return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) }); - } - url(message) { - return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) }); - } - emoji(message) { - return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) }); - } - uuid(message) { - return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) }); - } - nanoid(message) { - return this._addCheck({ kind: "nanoid", ...errorUtil.errToObj(message) }); + }; } - cuid(message) { - return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) }); +}); +function createInstanceConfig(...options) { + const baseDir = process.cwd(); + const config = Object.assign(__spreadValues({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o)); + config.baseDir = config.baseDir || baseDir; + config.trimmed = config.trimmed === true; + return config; +} +var defaultOptions; +var init_simple_git_options = __esm2({ + "src/lib/utils/simple-git-options.ts"() { + defaultOptions = { + binary: "git", + maxConcurrentProcesses: 5, + config: [], + trimmed: false + }; } - cuid2(message) { - return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) }); +}); +function appendTaskOptions(options, commands = []) { + if (!filterPlainObject(options)) { + return commands; } - ulid(message) { - return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) }); + return Object.keys(options).reduce((commands2, key2) => { + const value = options[key2]; + if (isPathSpec(value)) { + commands2.push(value); + } else if (filterPrimitives(value, ["boolean"])) { + commands2.push(key2 + "=" + value); + } else { + commands2.push(key2); + } + return commands2; + }, commands); +} +function getTrailingOptions(args, initialPrimitive = 0, objectOnly = false) { + const command = []; + for (let i = 0, max = initialPrimitive < 0 ? args.length : initialPrimitive;i < max; i++) { + if ("string|number".includes(typeof args[i])) { + command.push(String(args[i])); + } } - base64(message) { - return this._addCheck({ kind: "base64", ...errorUtil.errToObj(message) }); + appendTaskOptions(trailingOptionsArgument(args), command); + if (!objectOnly) { + command.push(...trailingArrayArgument(args)); } - base64url(message) { - return this._addCheck({ - kind: "base64url", - ...errorUtil.errToObj(message) - }); + return command; +} +function trailingArrayArgument(args) { + const hasTrailingCallback = typeof last(args) === "function"; + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterArray, []); +} +function trailingOptionsArgument(args) { + const hasTrailingCallback = filterFunction(last(args)); + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterPlainObject); +} +function trailingFunctionArgument(args, includeNoop = true) { + const callback = asFunction(last(args)); + return includeNoop || isUserFunction(callback) ? callback : undefined; +} +var init_task_options = __esm2({ + "src/lib/utils/task-options.ts"() { + init_argument_filters(); + init_util(); + init_pathspec(); } - jwt(options) { - return this._addCheck({ kind: "jwt", ...errorUtil.errToObj(options) }); +}); +function callTaskParser(parser4, streams) { + return parser4(streams.stdOut, streams.stdErr); +} +function parseStringResponse(result, parsers12, texts, trim = true) { + asArray(texts).forEach((text) => { + for (let lines2 = toLinesWithContent(text, trim), i = 0, max = lines2.length;i < max; i++) { + const line = (offset = 0) => { + if (i + offset >= max) { + return; + } + return lines2[i + offset]; + }; + parsers12.some(({ parse }) => parse(line, result)); + } + }); + return result; +} +var init_task_parser = __esm2({ + "src/lib/utils/task-parser.ts"() { + init_util(); } - ip(options) { - return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) }); +}); +var utils_exports = {}; +__export2(utils_exports, { + ExitCodes: () => ExitCodes, + GitOutputStreams: () => GitOutputStreams, + LineParser: () => LineParser, + NOOP: () => NOOP, + NULL: () => NULL, + RemoteLineParser: () => RemoteLineParser, + append: () => append, + appendTaskOptions: () => appendTaskOptions, + asArray: () => asArray, + asCamelCase: () => asCamelCase, + asFunction: () => asFunction, + asNumber: () => asNumber, + asStringArray: () => asStringArray, + bufferToString: () => bufferToString, + callTaskParser: () => callTaskParser, + createInstanceConfig: () => createInstanceConfig, + delay: () => delay, + filterArray: () => filterArray, + filterFunction: () => filterFunction, + filterHasLength: () => filterHasLength, + filterPlainObject: () => filterPlainObject, + filterPrimitives: () => filterPrimitives, + filterString: () => filterString, + filterStringArray: () => filterStringArray, + filterStringOrStringArray: () => filterStringOrStringArray, + filterType: () => filterType, + first: () => first, + folderExists: () => folderExists, + forEachLineWithContent: () => forEachLineWithContent, + getTrailingOptions: () => getTrailingOptions, + including: () => including, + isUserFunction: () => isUserFunction, + last: () => last, + objectToString: () => objectToString, + orVoid: () => orVoid, + parseStringResponse: () => parseStringResponse, + pick: () => pick, + prefixedArray: () => prefixedArray, + remove: () => remove, + splitOn: () => splitOn, + toLinesWithContent: () => toLinesWithContent, + trailingFunctionArgument: () => trailingFunctionArgument, + trailingOptionsArgument: () => trailingOptionsArgument +}); +var init_utils2 = __esm2({ + "src/lib/utils/index.ts"() { + init_argument_filters(); + init_exit_codes(); + init_git_output_streams(); + init_line_parser(); + init_simple_git_options(); + init_task_options(); + init_task_parser(); + init_util(); } - cidr(options) { - return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) }); +}); +var check_is_repo_exports = {}; +__export2(check_is_repo_exports, { + CheckRepoActions: () => CheckRepoActions, + checkIsBareRepoTask: () => checkIsBareRepoTask, + checkIsRepoRootTask: () => checkIsRepoRootTask, + checkIsRepoTask: () => checkIsRepoTask +}); +function checkIsRepoTask(action) { + switch (action) { + case "bare": + return checkIsBareRepoTask(); + case "root": + return checkIsRepoRootTask(); } - datetime(options) { - var _a2, _b; - if (typeof options === "string") { - return this._addCheck({ - kind: "datetime", - precision: null, - offset: false, - local: false, - message: options - }); + const commands = ["rev-parse", "--is-inside-work-tree"]; + return { + commands, + format: "utf-8", + onError, + parser + }; +} +function checkIsRepoRootTask() { + const commands = ["rev-parse", "--git-dir"]; + return { + commands, + format: "utf-8", + onError, + parser(path3) { + return /^\.(git)?$/.test(path3.trim()); } - return this._addCheck({ - kind: "datetime", - precision: typeof (options === null || options === undefined ? undefined : options.precision) === "undefined" ? null : options === null || options === undefined ? undefined : options.precision, - offset: (_a2 = options === null || options === undefined ? undefined : options.offset) !== null && _a2 !== undefined ? _a2 : false, - local: (_b = options === null || options === undefined ? undefined : options.local) !== null && _b !== undefined ? _b : false, - ...errorUtil.errToObj(options === null || options === undefined ? undefined : options.message) - }); + }; +} +function checkIsBareRepoTask() { + const commands = ["rev-parse", "--is-bare-repository"]; + return { + commands, + format: "utf-8", + onError, + parser + }; +} +function isNotRepoMessage(error) { + return /(Not a git repository|Kein Git-Repository)/i.test(String(error)); +} +var CheckRepoActions; +var onError; +var parser; +var init_check_is_repo = __esm2({ + "src/lib/tasks/check-is-repo.ts"() { + init_utils2(); + CheckRepoActions = /* @__PURE__ */ ((CheckRepoActions2) => { + CheckRepoActions2["BARE"] = "bare"; + CheckRepoActions2["IN_TREE"] = "tree"; + CheckRepoActions2["IS_REPO_ROOT"] = "root"; + return CheckRepoActions2; + })(CheckRepoActions || {}); + onError = ({ exitCode }, error, done, fail) => { + if (exitCode === 128 && isNotRepoMessage(error)) { + return done(Buffer.from("false")); + } + fail(error); + }; + parser = (text) => { + return text.trim() === "true"; + }; } - date(message) { - return this._addCheck({ kind: "date", message }); +}); +function cleanSummaryParser(dryRun, text) { + const summary = new CleanResponse(dryRun); + const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp; + toLinesWithContent(text).forEach((line) => { + const removed = line.replace(regexp, ""); + summary.paths.push(removed); + (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed); + }); + return summary; +} +var CleanResponse; +var removalRegexp; +var dryRunRemovalRegexp; +var isFolderRegexp; +var init_CleanSummary = __esm2({ + "src/lib/responses/CleanSummary.ts"() { + init_utils2(); + CleanResponse = class { + constructor(dryRun) { + this.dryRun = dryRun; + this.paths = []; + this.files = []; + this.folders = []; + } + }; + removalRegexp = /^[a-z]+\s*/i; + dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i; + isFolderRegexp = /\/$/; } - time(options) { - if (typeof options === "string") { - return this._addCheck({ - kind: "time", - precision: null, - message: options - }); +}); +var task_exports = {}; +__export2(task_exports, { + EMPTY_COMMANDS: () => EMPTY_COMMANDS, + adhocExecTask: () => adhocExecTask, + configurationErrorTask: () => configurationErrorTask, + isBufferTask: () => isBufferTask, + isEmptyTask: () => isEmptyTask, + straightThroughBufferTask: () => straightThroughBufferTask, + straightThroughStringTask: () => straightThroughStringTask +}); +function adhocExecTask(parser4) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser: parser4 + }; +} +function configurationErrorTask(error) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser() { + throw typeof error === "string" ? new TaskConfigurationError(error) : error; } - return this._addCheck({ - kind: "time", - precision: typeof (options === null || options === undefined ? undefined : options.precision) === "undefined" ? null : options === null || options === undefined ? undefined : options.precision, - ...errorUtil.errToObj(options === null || options === undefined ? undefined : options.message) - }); - } - duration(message) { - return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) }); + }; +} +function straightThroughStringTask(commands, trimmed2 = false) { + return { + commands, + format: "utf-8", + parser(text) { + return trimmed2 ? String(text).trim() : text; + } + }; +} +function straightThroughBufferTask(commands) { + return { + commands, + format: "buffer", + parser(buffer) { + return buffer; + } + }; +} +function isBufferTask(task) { + return task.format === "buffer"; +} +function isEmptyTask(task) { + return task.format === "empty" || !task.commands.length; +} +var EMPTY_COMMANDS; +var init_task = __esm2({ + "src/lib/tasks/task.ts"() { + init_task_configuration_error(); + EMPTY_COMMANDS = []; } - regex(regex2, message) { - return this._addCheck({ - kind: "regex", - regex: regex2, - ...errorUtil.errToObj(message) - }); +}); +var clean_exports = {}; +__export2(clean_exports, { + CONFIG_ERROR_INTERACTIVE_MODE: () => CONFIG_ERROR_INTERACTIVE_MODE, + CONFIG_ERROR_MODE_REQUIRED: () => CONFIG_ERROR_MODE_REQUIRED, + CONFIG_ERROR_UNKNOWN_OPTION: () => CONFIG_ERROR_UNKNOWN_OPTION, + CleanOptions: () => CleanOptions, + cleanTask: () => cleanTask, + cleanWithOptionsTask: () => cleanWithOptionsTask, + isCleanOptionsArray: () => isCleanOptionsArray +}); +function cleanWithOptionsTask(mode, customArgs) { + const { cleanMode, options, valid } = getCleanOptions(mode); + if (!cleanMode) { + return configurationErrorTask(CONFIG_ERROR_MODE_REQUIRED); } - includes(value, options) { - return this._addCheck({ - kind: "includes", - value, - position: options === null || options === undefined ? undefined : options.position, - ...errorUtil.errToObj(options === null || options === undefined ? undefined : options.message) - }); + if (!valid.options) { + return configurationErrorTask(CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode)); } - startsWith(value, message) { - return this._addCheck({ - kind: "startsWith", - value, - ...errorUtil.errToObj(message) - }); + options.push(...customArgs); + if (options.some(isInteractiveMode)) { + return configurationErrorTask(CONFIG_ERROR_INTERACTIVE_MODE); } - endsWith(value, message) { - return this._addCheck({ - kind: "endsWith", - value, - ...errorUtil.errToObj(message) - }); + return cleanTask(cleanMode, options); +} +function cleanTask(mode, customArgs) { + const commands = ["clean", `-${mode}`, ...customArgs]; + return { + commands, + format: "utf-8", + parser(text) { + return cleanSummaryParser(mode === "n", text); + } + }; +} +function isCleanOptionsArray(input) { + return Array.isArray(input) && input.every((test) => CleanOptionValues.has(test)); +} +function getCleanOptions(input) { + let cleanMode; + let options = []; + let valid = { cleanMode: false, options: true }; + input.replace(/[^a-z]i/g, "").split("").forEach((char) => { + if (isCleanMode(char)) { + cleanMode = char; + valid.cleanMode = true; + } else { + valid.options = valid.options && isKnownOption(options[options.length] = `-${char}`); + } + }); + return { + cleanMode, + options, + valid + }; +} +function isCleanMode(cleanMode) { + return cleanMode === "f" || cleanMode === "n"; +} +function isKnownOption(option) { + return /^-[a-z]$/i.test(option) && CleanOptionValues.has(option.charAt(1)); +} +function isInteractiveMode(option) { + if (/^-[^\-]/.test(option)) { + return option.indexOf("i") > 0; } - min(minLength, message) { - return this._addCheck({ - kind: "min", - value: minLength, - ...errorUtil.errToObj(message) - }); + return option === "--interactive"; +} +var CONFIG_ERROR_INTERACTIVE_MODE; +var CONFIG_ERROR_MODE_REQUIRED; +var CONFIG_ERROR_UNKNOWN_OPTION; +var CleanOptions; +var CleanOptionValues; +var init_clean = __esm2({ + "src/lib/tasks/clean.ts"() { + init_CleanSummary(); + init_utils2(); + init_task(); + CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported"; + CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required'; + CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: "; + CleanOptions = /* @__PURE__ */ ((CleanOptions2) => { + CleanOptions2["DRY_RUN"] = "n"; + CleanOptions2["FORCE"] = "f"; + CleanOptions2["IGNORED_INCLUDED"] = "x"; + CleanOptions2["IGNORED_ONLY"] = "X"; + CleanOptions2["EXCLUDING"] = "e"; + CleanOptions2["QUIET"] = "q"; + CleanOptions2["RECURSIVE"] = "d"; + return CleanOptions2; + })(CleanOptions || {}); + CleanOptionValues = /* @__PURE__ */ new Set([ + "i", + ...asStringArray(Object.values(CleanOptions)) + ]); } - max(maxLength, message) { - return this._addCheck({ - kind: "max", - value: maxLength, - ...errorUtil.errToObj(message) - }); +}); +function configListParser(text) { + const config = new ConfigList; + for (const item of configParser(text)) { + config.addValue(item.file, String(item.key), item.value); } - length(len, message) { - return this._addCheck({ - kind: "length", - value: len, - ...errorUtil.errToObj(message) - }); + return config; +} +function configGetParser(text, key2) { + let value = null; + const values = []; + const scopes = /* @__PURE__ */ new Map; + for (const item of configParser(text, key2)) { + if (item.key !== key2) { + continue; + } + values.push(value = item.value); + if (!scopes.has(item.file)) { + scopes.set(item.file, []); + } + scopes.get(item.file).push(value); } - nonempty(message) { - return this.min(1, errorUtil.errToObj(message)); + return { + key: key2, + paths: Array.from(scopes.keys()), + scopes, + value, + values + }; +} +function configFilePath(filePath) { + return filePath.replace(/^(file):/, ""); +} +function* configParser(text, requestedKey = null) { + const lines2 = text.split("\x00"); + for (let i = 0, max = lines2.length - 1;i < max; ) { + const file = configFilePath(lines2[i++]); + let value = lines2[i++]; + let key2 = requestedKey; + if (value.includes(` +`)) { + const line = splitOn(value, ` +`); + key2 = line[0]; + value = line[1]; + } + yield { file, key: key2, value }; } - trim() { - return new ZodString({ - ...this._def, - checks: [...this._def.checks, { kind: "trim" }] - }); +} +var ConfigList; +var init_ConfigList = __esm2({ + "src/lib/responses/ConfigList.ts"() { + init_utils2(); + ConfigList = class { + constructor() { + this.files = []; + this.values = /* @__PURE__ */ Object.create(null); + } + get all() { + if (!this._all) { + this._all = this.files.reduce((all, file) => { + return Object.assign(all, this.values[file]); + }, {}); + } + return this._all; + } + addFile(file) { + if (!(file in this.values)) { + const latest = last(this.files); + this.values[file] = latest ? Object.create(this.values[latest]) : {}; + this.files.push(file); + } + return this.values[file]; + } + addValue(file, key2, value) { + const values = this.addFile(file); + if (!values.hasOwnProperty(key2)) { + values[key2] = value; + } else if (Array.isArray(values[key2])) { + values[key2].push(value); + } else { + values[key2] = [values[key2], value]; + } + this._all = undefined; + } + }; } - toLowerCase() { - return new ZodString({ - ...this._def, - checks: [...this._def.checks, { kind: "toLowerCase" }] - }); +}); +function asConfigScope(scope, fallback2) { + if (typeof scope === "string" && GitConfigScope.hasOwnProperty(scope)) { + return scope; } - toUpperCase() { - return new ZodString({ - ...this._def, - checks: [...this._def.checks, { kind: "toUpperCase" }] - }); + return fallback2; +} +function addConfigTask(key2, value, append2, scope) { + const commands = ["config", `--${scope}`]; + if (append2) { + commands.push("--add"); } - get isDatetime() { - return !!this._def.checks.find((ch) => ch.kind === "datetime"); + commands.push(key2, value); + return { + commands, + format: "utf-8", + parser(text) { + return text; + } + }; +} +function getConfigTask(key2, scope) { + const commands = ["config", "--null", "--show-origin", "--get-all", key2]; + if (scope) { + commands.splice(1, 0, `--${scope}`); } - get isDate() { - return !!this._def.checks.find((ch) => ch.kind === "date"); + return { + commands, + format: "utf-8", + parser(text) { + return configGetParser(text, key2); + } + }; +} +function listConfigTask(scope) { + const commands = ["config", "--list", "--show-origin", "--null"]; + if (scope) { + commands.push(`--${scope}`); } - get isTime() { - return !!this._def.checks.find((ch) => ch.kind === "time"); + return { + commands, + format: "utf-8", + parser(text) { + return configListParser(text); + } + }; +} +function config_default() { + return { + addConfig(key2, value, ...rest) { + return this._runTask(addConfigTask(key2, value, rest[0] === true, asConfigScope(rest[1], "local")), trailingFunctionArgument(arguments)); + }, + getConfig(key2, scope) { + return this._runTask(getConfigTask(key2, asConfigScope(scope, undefined)), trailingFunctionArgument(arguments)); + }, + listConfig(...rest) { + return this._runTask(listConfigTask(asConfigScope(rest[0], undefined)), trailingFunctionArgument(arguments)); + } + }; +} +var GitConfigScope; +var init_config = __esm2({ + "src/lib/tasks/config.ts"() { + init_ConfigList(); + init_utils2(); + GitConfigScope = /* @__PURE__ */ ((GitConfigScope2) => { + GitConfigScope2["system"] = "system"; + GitConfigScope2["global"] = "global"; + GitConfigScope2["local"] = "local"; + GitConfigScope2["worktree"] = "worktree"; + return GitConfigScope2; + })(GitConfigScope || {}); } - get isDuration() { - return !!this._def.checks.find((ch) => ch.kind === "duration"); +}); +function isDiffNameStatus(input) { + return diffNameStatus.has(input); +} +var DiffNameStatus; +var diffNameStatus; +var init_diff_name_status = __esm2({ + "src/lib/tasks/diff-name-status.ts"() { + DiffNameStatus = /* @__PURE__ */ ((DiffNameStatus2) => { + DiffNameStatus2["ADDED"] = "A"; + DiffNameStatus2["COPIED"] = "C"; + DiffNameStatus2["DELETED"] = "D"; + DiffNameStatus2["MODIFIED"] = "M"; + DiffNameStatus2["RENAMED"] = "R"; + DiffNameStatus2["CHANGED"] = "T"; + DiffNameStatus2["UNMERGED"] = "U"; + DiffNameStatus2["UNKNOWN"] = "X"; + DiffNameStatus2["BROKEN"] = "B"; + return DiffNameStatus2; + })(DiffNameStatus || {}); + diffNameStatus = new Set(Object.values(DiffNameStatus)); } - get isEmail() { - return !!this._def.checks.find((ch) => ch.kind === "email"); +}); +function grepQueryBuilder(...params) { + return new GrepQuery().param(...params); +} +function parseGrep(grep) { + const paths = /* @__PURE__ */ new Set; + const results = {}; + forEachLineWithContent(grep, (input) => { + const [path3, line, preview] = input.split(NULL); + paths.add(path3); + (results[path3] = results[path3] || []).push({ + line: asNumber(line), + path: path3, + preview + }); + }); + return { + paths, + results + }; +} +function grep_default() { + return { + grep(searchTerm) { + const then = trailingFunctionArgument(arguments); + const options = getTrailingOptions(arguments); + for (const option of disallowedOptions) { + if (options.includes(option)) { + return this._runTask(configurationErrorTask(`git.grep: use of "${option}" is not supported.`), then); + } + } + if (typeof searchTerm === "string") { + searchTerm = grepQueryBuilder().param(searchTerm); + } + const commands = ["grep", "--null", "-n", "--full-name", ...options, ...searchTerm]; + return this._runTask({ + commands, + format: "utf-8", + parser(stdOut) { + return parseGrep(stdOut); + } + }, then); + } + }; +} +var disallowedOptions; +var Query; +var _a; +var GrepQuery; +var init_grep = __esm2({ + "src/lib/tasks/grep.ts"() { + init_utils2(); + init_task(); + disallowedOptions = ["-h"]; + Query = Symbol("grepQuery"); + GrepQuery = class { + constructor() { + this[_a] = []; + } + *[(_a = Query, Symbol.iterator)]() { + for (const query of this[Query]) { + yield query; + } + } + and(...and) { + and.length && this[Query].push("--and", "(", ...prefixedArray(and, "-e"), ")"); + return this; + } + param(...param) { + this[Query].push(...prefixedArray(param, "-e")); + return this; + } + }; } - get isURL() { - return !!this._def.checks.find((ch) => ch.kind === "url"); +}); +var reset_exports = {}; +__export2(reset_exports, { + ResetMode: () => ResetMode, + getResetMode: () => getResetMode, + resetTask: () => resetTask +}); +function resetTask(mode, customArgs) { + const commands = ["reset"]; + if (isValidResetMode(mode)) { + commands.push(`--${mode}`); } - get isEmoji() { - return !!this._def.checks.find((ch) => ch.kind === "emoji"); + commands.push(...customArgs); + return straightThroughStringTask(commands); +} +function getResetMode(mode) { + if (isValidResetMode(mode)) { + return mode; } - get isUUID() { - return !!this._def.checks.find((ch) => ch.kind === "uuid"); + switch (typeof mode) { + case "string": + case "undefined": + return "soft"; } - get isNANOID() { - return !!this._def.checks.find((ch) => ch.kind === "nanoid"); + return; +} +function isValidResetMode(mode) { + return ResetModes.includes(mode); +} +var ResetMode; +var ResetModes; +var init_reset = __esm2({ + "src/lib/tasks/reset.ts"() { + init_task(); + ResetMode = /* @__PURE__ */ ((ResetMode2) => { + ResetMode2["MIXED"] = "mixed"; + ResetMode2["SOFT"] = "soft"; + ResetMode2["HARD"] = "hard"; + ResetMode2["MERGE"] = "merge"; + ResetMode2["KEEP"] = "keep"; + return ResetMode2; + })(ResetMode || {}); + ResetModes = Array.from(Object.values(ResetMode)); } - get isCUID() { - return !!this._def.checks.find((ch) => ch.kind === "cuid"); +}); +function createLog() { + return import_debug.default("simple-git"); +} +function prefixedLogger(to, prefix, forward) { + if (!prefix || !String(prefix).replace(/\s*/, "")) { + return !forward ? to : (message, ...args) => { + to(message, ...args); + forward(message, ...args); + }; } - get isCUID2() { - return !!this._def.checks.find((ch) => ch.kind === "cuid2"); + return (message, ...args) => { + to(`%s ${message}`, prefix, ...args); + if (forward) { + forward(message, ...args); + } + }; +} +function childLoggerName(name, childDebugger, { namespace: parentNamespace }) { + if (typeof name === "string") { + return name; } - get isULID() { - return !!this._def.checks.find((ch) => ch.kind === "ulid"); + const childNamespace = childDebugger && childDebugger.namespace || ""; + if (childNamespace.startsWith(parentNamespace)) { + return childNamespace.substr(parentNamespace.length + 1); } - get isIP() { - return !!this._def.checks.find((ch) => ch.kind === "ip"); + return childNamespace || parentNamespace; +} +function createLogger(label, verbose, initialStep, infoDebugger = createLog()) { + const labelPrefix = label && `[${label}]` || ""; + const spawned = []; + const debugDebugger = typeof verbose === "string" ? infoDebugger.extend(verbose) : verbose; + const key2 = childLoggerName(filterType(verbose, filterString), debugDebugger, infoDebugger); + return step(initialStep); + function sibling(name, initial) { + return append(spawned, createLogger(label, key2.replace(/^[^:]+/, name), initial, infoDebugger)); } - get isCIDR() { - return !!this._def.checks.find((ch) => ch.kind === "cidr"); + function step(phase) { + const stepPrefix = phase && `[${phase}]` || ""; + const debug2 = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || NOOP; + const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug2); + return Object.assign(debugDebugger ? debug2 : info, { + label, + sibling, + info, + step + }); } - get isBase64() { - return !!this._def.checks.find((ch) => ch.kind === "base64"); +} +var init_git_logger = __esm2({ + "src/lib/git-logger.ts"() { + init_utils2(); + import_debug.default.formatters.L = (value) => String(filterHasLength(value) ? value.length : "-"); + import_debug.default.formatters.B = (value) => { + if (Buffer.isBuffer(value)) { + return value.toString("utf8"); + } + return objectToString(value); + }; } - get isBase64url() { - return !!this._def.checks.find((ch) => ch.kind === "base64url"); +}); +var _TasksPendingQueue; +var TasksPendingQueue; +var init_tasks_pending_queue = __esm2({ + "src/lib/runners/tasks-pending-queue.ts"() { + init_git_error(); + init_git_logger(); + _TasksPendingQueue = class { + constructor(logLabel = "GitExecutor") { + this.logLabel = logLabel; + this._queue = /* @__PURE__ */ new Map; + } + withProgress(task) { + return this._queue.get(task); + } + createProgress(task) { + const name = _TasksPendingQueue.getName(task.commands[0]); + const logger2 = createLogger(this.logLabel, name); + return { + task, + logger: logger2, + name + }; + } + push(task) { + const progress = this.createProgress(task); + progress.logger("Adding task to the queue, commands = %o", task.commands); + this._queue.set(task, progress); + return progress; + } + fatal(err) { + for (const [task, { logger: logger2 }] of Array.from(this._queue.entries())) { + if (task === err.task) { + logger2.info(`Failed %o`, err); + logger2(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`); + } else { + logger2.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`, err.message); + } + this.complete(task); + } + if (this._queue.size !== 0) { + throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`); + } + } + complete(task) { + const progress = this.withProgress(task); + if (progress) { + this._queue.delete(task); + } + } + attempt(task) { + const progress = this.withProgress(task); + if (!progress) { + throw new GitError(undefined, "TasksPendingQueue: attempt called for an unknown task"); + } + progress.logger("Starting task"); + return progress; + } + static getName(name = "empty") { + return `task:${name}:${++_TasksPendingQueue.counter}`; + } + }; + TasksPendingQueue = _TasksPendingQueue; + TasksPendingQueue.counter = 0; } - get minLength() { - let min = null; - for (const ch of this._def.checks) { - if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; +}); +function pluginContext(task, commands) { + return { + method: first(task.commands) || "", + commands + }; +} +function onErrorReceived(target, logger2) { + return (err) => { + logger2(`[ERROR] child process exception %o`, err); + target.push(Buffer.from(String(err.stack), "ascii")); + }; +} +function onDataReceived(target, name, logger2, output) { + return (buffer) => { + logger2(`%s received %L bytes`, name, buffer); + output(`%B`, buffer); + target.push(buffer); + }; +} +var GitExecutorChain; +var init_git_executor_chain = __esm2({ + "src/lib/runners/git-executor-chain.ts"() { + init_git_error(); + init_task(); + init_utils2(); + init_tasks_pending_queue(); + GitExecutorChain = class { + constructor(_executor, _scheduler, _plugins) { + this._executor = _executor; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = Promise.resolve(); + this._queue = new TasksPendingQueue; + } + get cwd() { + return this._cwd || this._executor.cwd; + } + set cwd(cwd) { + this._cwd = cwd; + } + get env() { + return this._executor.env; + } + get outputHandler() { + return this._executor.outputHandler; + } + chain() { + return this; + } + push(task) { + this._queue.push(task); + return this._chain = this._chain.then(() => this.attemptTask(task)); + } + attemptTask(task) { + return __async(this, null, function* () { + const onScheduleComplete = yield this._scheduler.next(); + const onQueueComplete = () => this._queue.complete(task); + try { + const { logger: logger2 } = this._queue.attempt(task); + return yield isEmptyTask(task) ? this.attemptEmptyTask(task, logger2) : this.attemptRemoteTask(task, logger2); + } catch (e) { + throw this.onFatalException(task, e); + } finally { + onQueueComplete(); + onScheduleComplete(); + } + }); + } + onFatalException(task, e) { + const gitError = e instanceof GitError ? Object.assign(e, { task }) : new GitError(task, e && String(e)); + this._chain = Promise.resolve(); + this._queue.fatal(gitError); + return gitError; + } + attemptRemoteTask(task, logger2) { + return __async(this, null, function* () { + const binary = this._plugins.exec("spawn.binary", "", pluginContext(task, task.commands)); + const args = this._plugins.exec("spawn.args", [...task.commands], pluginContext(task, task.commands)); + const raw = yield this.gitResponse(task, binary, args, this.outputHandler, logger2.step("SPAWN")); + const outputStreams = yield this.handleTaskData(task, args, raw, logger2.step("HANDLE")); + logger2(`passing response to task's parser as a %s`, task.format); + if (isBufferTask(task)) { + return callTaskParser(task.parser, outputStreams); + } + return callTaskParser(task.parser, outputStreams.asStrings()); + }); + } + attemptEmptyTask(task, logger2) { + return __async(this, null, function* () { + logger2(`empty task bypassing child process to call to task's parser`); + return task.parser(this); + }); + } + handleTaskData(task, args, result, logger2) { + const { exitCode, rejection, stdOut, stdErr } = result; + return new Promise((done, fail) => { + logger2(`Preparing to handle process response exitCode=%d stdOut=`, exitCode); + const { error } = this._plugins.exec("task.error", { error: rejection }, __spreadValues(__spreadValues({}, pluginContext(task, args)), result)); + if (error && task.onError) { + logger2.info(`exitCode=%s handling with custom error handler`); + return task.onError(result, error, (newStdOut) => { + logger2.info(`custom error handler treated as success`); + logger2(`custom error returned a %s`, objectToString(newStdOut)); + done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer.concat(newStdOut) : newStdOut, Buffer.concat(stdErr))); + }, fail); + } + if (error) { + logger2.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`, exitCode, stdErr.length, rejection); + return fail(error); + } + logger2.info(`retrieving task output complete`); + done(new GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr))); + }); + } + gitResponse(task, command, args, outputHandler, logger2) { + return __async(this, null, function* () { + const outputLogger = logger2.sibling("output"); + const spawnOptions = this._plugins.exec("spawn.options", { + cwd: this.cwd, + env: this.env, + windowsHide: true + }, pluginContext(task, task.commands)); + return new Promise((done) => { + const stdOut = []; + const stdErr = []; + logger2.info(`%s %o`, command, args); + logger2("%O", spawnOptions); + let rejection = this._beforeSpawn(task, args); + if (rejection) { + return done({ + stdOut, + stdErr, + exitCode: 9901, + rejection + }); + } + this._plugins.exec("spawn.before", undefined, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + const spawned = spawn(command, args, spawnOptions); + spawned.stdout.on("data", onDataReceived(stdOut, "stdOut", logger2, outputLogger.step("stdOut"))); + spawned.stderr.on("data", onDataReceived(stdErr, "stdErr", logger2, outputLogger.step("stdErr"))); + spawned.on("error", onErrorReceived(stdErr, logger2)); + if (outputHandler) { + logger2(`Passing child process stdOut/stdErr to custom outputHandler`); + outputHandler(command, spawned.stdout, spawned.stderr, [...args]); + } + this._plugins.exec("spawn.after", undefined, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + spawned, + close(exitCode, reason) { + done({ + stdOut, + stdErr, + exitCode, + rejection: rejection || reason + }); + }, + kill(reason) { + if (spawned.killed) { + return; + } + rejection = reason; + spawned.kill("SIGINT"); + } + })); + }); + }); } - } - return min; - } - get maxLength() { - let max = null; - for (const ch of this._def.checks) { - if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; + _beforeSpawn(task, args) { + let rejection; + this._plugins.exec("spawn.before", undefined, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + return rejection; } - } - return max; + }; } -} -ZodString.create = (params) => { - var _a2; - return new ZodString({ - checks: [], - typeName: ZodFirstPartyTypeKind.ZodString, - coerce: (_a2 = params === null || params === undefined ? undefined : params.coerce) !== null && _a2 !== undefined ? _a2 : false, - ...processCreateParams(params) - }); -}; -function floatSafeRemainder(val, step) { - const valDecCount = (val.toString().split(".")[1] || "").length; - const stepDecCount = (step.toString().split(".")[1] || "").length; - const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; - const valInt = parseInt(val.toFixed(decCount).replace(".", "")); - const stepInt = parseInt(step.toFixed(decCount).replace(".", "")); - return valInt % stepInt / Math.pow(10, decCount); -} - -class ZodNumber extends ZodType { - constructor() { - super(...arguments); - this.min = this.gte; - this.max = this.lte; - this.step = this.multipleOf; +}); +var git_executor_exports = {}; +__export2(git_executor_exports, { + GitExecutor: () => GitExecutor +}); +var GitExecutor; +var init_git_executor = __esm2({ + "src/lib/runners/git-executor.ts"() { + init_git_executor_chain(); + GitExecutor = class { + constructor(cwd, _scheduler, _plugins) { + this.cwd = cwd; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = new GitExecutorChain(this, this._scheduler, this._plugins); + } + chain() { + return new GitExecutorChain(this, this._scheduler, this._plugins); + } + push(task) { + return this._chain.push(task); + } + }; } - _parse(input) { - if (this._def.coerce) { - input.data = Number(input.data); +}); +function taskCallback(task, response, callback = NOOP) { + const onSuccess = (data) => { + callback(null, data); + }; + const onError2 = (err) => { + if ((err == null ? undefined : err.task) === task) { + callback(err instanceof GitResponseError ? addDeprecationNoticeToError(err) : err, undefined); } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.number) { - const ctx2 = this._getOrReturnCtx(input); - addIssueToContext(ctx2, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.number, - received: ctx2.parsedType - }); - return INVALID; + }; + response.then(onSuccess, onError2); +} +function addDeprecationNoticeToError(err) { + let log = (name) => { + console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`); + log = NOOP; + }; + return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {})); + function descriptorReducer(all, name) { + if (name in err) { + return all; } - let ctx = undefined; - const status = new ParseStatus; - for (const check2 of this._def.checks) { - if (check2.kind === "int") { - if (!util.isInteger(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: "integer", - received: "float", - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "min") { - const tooSmall = check2.inclusive ? input.data < check2.value : input.data <= check2.value; - if (tooSmall) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: check2.value, - type: "number", - inclusive: check2.inclusive, - exact: false, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "max") { - const tooBig = check2.inclusive ? input.data > check2.value : input.data >= check2.value; - if (tooBig) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: check2.value, - type: "number", - inclusive: check2.inclusive, - exact: false, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "multipleOf") { - if (floatSafeRemainder(input.data, check2.value) !== 0) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.not_multiple_of, - multipleOf: check2.value, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "finite") { - if (!Number.isFinite(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.not_finite, - message: check2.message - }); - status.dirty(); - } - } else { - util.assertNever(check2); + all[name] = { + enumerable: false, + configurable: false, + get() { + log(name); + return err.git[name]; } - } - return { status: status.value, value: input.data }; + }; + return all; } - gte(value, message) { - return this.setLimit("min", value, true, errorUtil.toString(message)); +} +var init_task_callback = __esm2({ + "src/lib/task-callback.ts"() { + init_git_response_error(); + init_utils2(); } - gt(value, message) { - return this.setLimit("min", value, false, errorUtil.toString(message)); +}); +function changeWorkingDirectoryTask(directory, root) { + return adhocExecTask((instance) => { + if (!folderExists(directory)) { + throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`); + } + return (root || instance).cwd = directory; + }); +} +var init_change_working_directory = __esm2({ + "src/lib/tasks/change-working-directory.ts"() { + init_utils2(); + init_task(); } - lte(value, message) { - return this.setLimit("max", value, true, errorUtil.toString(message)); +}); +function checkoutTask(args) { + const commands = ["checkout", ...args]; + if (commands[1] === "-b" && commands.includes("-B")) { + commands[1] = remove(commands, "-B"); } - lt(value, message) { - return this.setLimit("max", value, false, errorUtil.toString(message)); + return straightThroughStringTask(commands); +} +function checkout_default() { + return { + checkout() { + return this._runTask(checkoutTask(getTrailingOptions(arguments, 1)), trailingFunctionArgument(arguments)); + }, + checkoutBranch(branchName, startPoint) { + return this._runTask(checkoutTask(["-b", branchName, startPoint, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + }, + checkoutLocalBranch(branchName) { + return this._runTask(checkoutTask(["-b", branchName, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + }; +} +var init_checkout = __esm2({ + "src/lib/tasks/checkout.ts"() { + init_utils2(); + init_task(); } - setLimit(kind, value, inclusive, message) { - return new ZodNumber({ - ...this._def, - checks: [ - ...this._def.checks, - { - kind, - value, - inclusive, - message: errorUtil.toString(message) +}); +function countObjectsResponse() { + return { + count: 0, + garbage: 0, + inPack: 0, + packs: 0, + prunePackable: 0, + size: 0, + sizeGarbage: 0, + sizePack: 0 + }; +} +function count_objects_default() { + return { + countObjects() { + return this._runTask({ + commands: ["count-objects", "--verbose"], + format: "utf-8", + parser(stdOut) { + return parseStringResponse(countObjectsResponse(), [parser2], stdOut); } - ] - }); - } - _addCheck(check2) { - return new ZodNumber({ - ...this._def, - checks: [...this._def.checks, check2] - }); - } - int(message) { - return this._addCheck({ - kind: "int", - message: errorUtil.toString(message) - }); - } - positive(message) { - return this._addCheck({ - kind: "min", - value: 0, - inclusive: false, - message: errorUtil.toString(message) - }); - } - negative(message) { - return this._addCheck({ - kind: "max", - value: 0, - inclusive: false, - message: errorUtil.toString(message) - }); - } - nonpositive(message) { - return this._addCheck({ - kind: "max", - value: 0, - inclusive: true, - message: errorUtil.toString(message) - }); - } - nonnegative(message) { - return this._addCheck({ - kind: "min", - value: 0, - inclusive: true, - message: errorUtil.toString(message) - }); - } - multipleOf(value, message) { - return this._addCheck({ - kind: "multipleOf", - value, - message: errorUtil.toString(message) - }); - } - finite(message) { - return this._addCheck({ - kind: "finite", - message: errorUtil.toString(message) - }); - } - safe(message) { - return this._addCheck({ - kind: "min", - inclusive: true, - value: Number.MIN_SAFE_INTEGER, - message: errorUtil.toString(message) - })._addCheck({ - kind: "max", - inclusive: true, - value: Number.MAX_SAFE_INTEGER, - message: errorUtil.toString(message) - }); - } - get minValue() { - let min = null; - for (const ch of this._def.checks) { - if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; - } + }); } - return min; - } - get maxValue() { - let max = null; - for (const ch of this._def.checks) { - if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; + }; +} +var parser2; +var init_count_objects = __esm2({ + "src/lib/tasks/count-objects.ts"() { + init_utils2(); + parser2 = new LineParser(/([a-z-]+): (\d+)$/, (result, [key2, value]) => { + const property = asCamelCase(key2); + if (result.hasOwnProperty(property)) { + result[property] = asNumber(value); } - } - return max; - } - get isInt() { - return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value)); + }); } - get isFinite() { - let max = null, min = null; - for (const ch of this._def.checks) { - if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") { - return true; - } else if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; - } else if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; - } +}); +function parseCommitResult(stdOut) { + const result = { + author: null, + branch: "", + commit: "", + root: false, + summary: { + changes: 0, + insertions: 0, + deletions: 0 } - return Number.isFinite(min) && Number.isFinite(max); - } + }; + return parseStringResponse(result, parsers, stdOut); } -ZodNumber.create = (params) => { - return new ZodNumber({ - checks: [], - typeName: ZodFirstPartyTypeKind.ZodNumber, - coerce: (params === null || params === undefined ? undefined : params.coerce) || false, - ...processCreateParams(params) - }); -}; - -class ZodBigInt extends ZodType { - constructor() { - super(...arguments); - this.min = this.gte; - this.max = this.lte; - } - _parse(input) { - if (this._def.coerce) { - try { - input.data = BigInt(input.data); - } catch (_a2) { - return this._getInvalidInput(input); - } - } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.bigint) { - return this._getInvalidInput(input); - } - let ctx = undefined; - const status = new ParseStatus; - for (const check2 of this._def.checks) { - if (check2.kind === "min") { - const tooSmall = check2.inclusive ? input.data < check2.value : input.data <= check2.value; - if (tooSmall) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - type: "bigint", - minimum: check2.value, - inclusive: check2.inclusive, - message: check2.message - }); - status.dirty(); - } - } else if (check2.kind === "max") { - const tooBig = check2.inclusive ? input.data > check2.value : input.data >= check2.value; - if (tooBig) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - type: "bigint", - maximum: check2.value, - inclusive: check2.inclusive, - message: check2.message - }); - status.dirty(); +var parsers; +var init_parse_commit = __esm2({ + "src/lib/parsers/parse-commit.ts"() { + init_utils2(); + parsers = [ + new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch, root, commit]) => { + result.branch = branch; + result.commit = commit; + result.root = !!root; + }), + new LineParser(/\s*Author:\s(.+)/i, (result, [author]) => { + const parts = author.split("<"); + const email = parts.pop(); + if (!email || !email.includes("@")) { + return; } - } else if (check2.kind === "multipleOf") { - if (input.data % check2.value !== BigInt(0)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.not_multiple_of, - multipleOf: check2.value, - message: check2.message - }); - status.dirty(); + result.author = { + email: email.substr(0, email.length - 1), + name: parts.join("<").trim() + }; + }), + new LineParser(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g, (result, [changes, insertions, deletions]) => { + result.summary.changes = parseInt(changes, 10) || 0; + result.summary.insertions = parseInt(insertions, 10) || 0; + result.summary.deletions = parseInt(deletions, 10) || 0; + }), + new LineParser(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/, (result, [changes, lines2, direction]) => { + result.summary.changes = parseInt(changes, 10) || 0; + const count = parseInt(lines2, 10) || 0; + if (direction === "-") { + result.summary.deletions = count; + } else if (direction === "+") { + result.summary.insertions = count; } - } else { - util.assertNever(check2); - } + }) + ]; + } +}); +function commitTask(message, files, customArgs) { + const commands = [ + "-c", + "core.abbrev=40", + "commit", + ...prefixedArray(message, "-m"), + ...files, + ...customArgs + ]; + return { + commands, + format: "utf-8", + parser: parseCommitResult + }; +} +function commit_default() { + return { + commit(message, ...rest) { + const next = trailingFunctionArgument(arguments); + const task = rejectDeprecatedSignatures(message) || commitTask(asArray(message), asArray(filterType(rest[0], filterStringOrStringArray, [])), [...filterType(rest[1], filterArray, []), ...getTrailingOptions(arguments, 0, true)]); + return this._runTask(task, next); } - return { status: status.value, value: input.data }; + }; + function rejectDeprecatedSignatures(message) { + return !filterStringOrStringArray(message) && configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`); } - _getInvalidInput(input) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.bigint, - received: ctx.parsedType - }); - return INVALID; +} +var init_commit = __esm2({ + "src/lib/tasks/commit.ts"() { + init_parse_commit(); + init_utils2(); + init_task(); } - gte(value, message) { - return this.setLimit("min", value, true, errorUtil.toString(message)); +}); +function first_commit_default() { + return { + firstCommit() { + return this._runTask(straightThroughStringTask(["rev-list", "--max-parents=0", "HEAD"], true), trailingFunctionArgument(arguments)); + } + }; +} +var init_first_commit = __esm2({ + "src/lib/tasks/first-commit.ts"() { + init_utils2(); + init_task(); } - gt(value, message) { - return this.setLimit("min", value, false, errorUtil.toString(message)); +}); +function hashObjectTask(filePath, write) { + const commands = ["hash-object", filePath]; + if (write) { + commands.push("-w"); } - lte(value, message) { - return this.setLimit("max", value, true, errorUtil.toString(message)); + return straightThroughStringTask(commands, true); +} +var init_hash_object = __esm2({ + "src/lib/tasks/hash-object.ts"() { + init_task(); } - lt(value, message) { - return this.setLimit("max", value, false, errorUtil.toString(message)); +}); +function parseInit(bare, path3, text) { + const response = String(text).trim(); + let result; + if (result = initResponseRegex.exec(response)) { + return new InitSummary(bare, path3, false, result[1]); } - setLimit(kind, value, inclusive, message) { - return new ZodBigInt({ - ...this._def, - checks: [ - ...this._def.checks, - { - kind, - value, - inclusive, - message: errorUtil.toString(message) - } - ] - }); + if (result = reInitResponseRegex.exec(response)) { + return new InitSummary(bare, path3, true, result[1]); } - _addCheck(check2) { - return new ZodBigInt({ - ...this._def, - checks: [...this._def.checks, check2] - }); + let gitDir = ""; + const tokens = response.split(" "); + while (tokens.length) { + const token = tokens.shift(); + if (token === "in") { + gitDir = tokens.join(" "); + break; + } } - positive(message) { - return this._addCheck({ - kind: "min", - value: BigInt(0), - inclusive: false, - message: errorUtil.toString(message) - }); + return new InitSummary(bare, path3, /^re/i.test(response), gitDir); +} +var InitSummary; +var initResponseRegex; +var reInitResponseRegex; +var init_InitSummary = __esm2({ + "src/lib/responses/InitSummary.ts"() { + InitSummary = class { + constructor(bare, path3, existing, gitDir) { + this.bare = bare; + this.path = path3; + this.existing = existing; + this.gitDir = gitDir; + } + }; + initResponseRegex = /^Init.+ repository in (.+)$/; + reInitResponseRegex = /^Rein.+ in (.+)$/; } - negative(message) { - return this._addCheck({ - kind: "max", - value: BigInt(0), - inclusive: false, - message: errorUtil.toString(message) - }); +}); +function hasBareCommand(command) { + return command.includes(bareCommand); +} +function initTask(bare = false, path3, customArgs) { + const commands = ["init", ...customArgs]; + if (bare && !hasBareCommand(commands)) { + commands.splice(1, 0, bareCommand); } - nonpositive(message) { - return this._addCheck({ - kind: "max", - value: BigInt(0), - inclusive: true, - message: errorUtil.toString(message) - }); + return { + commands, + format: "utf-8", + parser(text) { + return parseInit(commands.includes("--bare"), path3, text); + } + }; +} +var bareCommand; +var init_init = __esm2({ + "src/lib/tasks/init.ts"() { + init_InitSummary(); + bareCommand = "--bare"; } - nonnegative(message) { - return this._addCheck({ - kind: "min", - value: BigInt(0), - inclusive: true, - message: errorUtil.toString(message) - }); +}); +function logFormatFromCommand(customArgs) { + for (let i = 0;i < customArgs.length; i++) { + const format = logFormatRegex.exec(customArgs[i]); + if (format) { + return `--${format[1]}`; + } } - multipleOf(value, message) { - return this._addCheck({ - kind: "multipleOf", - value, - message: errorUtil.toString(message) - }); + return ""; +} +function isLogFormat(customArg) { + return logFormatRegex.test(customArg); +} +var logFormatRegex; +var init_log_format = __esm2({ + "src/lib/args/log-format.ts"() { + logFormatRegex = /^--(stat|numstat|name-only|name-status)(=|$)/; } - get minValue() { - let min = null; - for (const ch of this._def.checks) { - if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; +}); +var DiffSummary; +var init_DiffSummary = __esm2({ + "src/lib/responses/DiffSummary.ts"() { + DiffSummary = class { + constructor() { + this.changed = 0; + this.deletions = 0; + this.insertions = 0; + this.files = []; } - } - return min; + }; } - get maxValue() { - let max = null; - for (const ch of this._def.checks) { - if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; +}); +function getDiffParser(format = "") { + const parser4 = diffSummaryParsers[format]; + return (stdOut) => parseStringResponse(new DiffSummary, parser4, stdOut, false); +} +var statParser; +var numStatParser; +var nameOnlyParser; +var nameStatusParser; +var diffSummaryParsers; +var init_parse_diff_summary = __esm2({ + "src/lib/parsers/parse-diff-summary.ts"() { + init_log_format(); + init_DiffSummary(); + init_diff_name_status(); + init_utils2(); + statParser = [ + new LineParser(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/, (result, [file, changes, alterations = ""]) => { + result.files.push({ + file: file.trim(), + changes: asNumber(changes), + insertions: alterations.replace(/[^+]/g, "").length, + deletions: alterations.replace(/[^-]/g, "").length, + binary: false + }); + }), + new LineParser(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/, (result, [file, before, after]) => { + result.files.push({ + file: file.trim(), + before: asNumber(before), + after: asNumber(after), + binary: true + }); + }), + new LineParser(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/, (result, [changed, summary]) => { + const inserted = /(\d+) i/.exec(summary); + const deleted = /(\d+) d/.exec(summary); + result.changed = asNumber(changed); + result.insertions = asNumber(inserted == null ? undefined : inserted[1]); + result.deletions = asNumber(deleted == null ? undefined : deleted[1]); + }) + ]; + numStatParser = [ + new LineParser(/(\d+)\t(\d+)\t(.+)$/, (result, [changesInsert, changesDelete, file]) => { + const insertions = asNumber(changesInsert); + const deletions = asNumber(changesDelete); + result.changed++; + result.insertions += insertions; + result.deletions += deletions; + result.files.push({ + file, + changes: insertions + deletions, + insertions, + deletions, + binary: false + }); + }), + new LineParser(/-\t-\t(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + after: 0, + before: 0, + binary: true + }); + }) + ]; + nameOnlyParser = [ + new LineParser(/(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + changes: 0, + insertions: 0, + deletions: 0, + binary: false + }); + }) + ]; + nameStatusParser = [ + new LineParser(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/, (result, [status, similarity, from2, _to, to]) => { + result.changed++; + result.files.push({ + file: to != null ? to : from2, + changes: 0, + insertions: 0, + deletions: 0, + binary: false, + status: orVoid(isDiffNameStatus(status) && status), + from: orVoid(!!to && from2 !== to && from2), + similarity: asNumber(similarity) + }); + }) + ]; + diffSummaryParsers = { + [""]: statParser, + ["--stat"]: statParser, + ["--numstat"]: numStatParser, + ["--name-status"]: nameStatusParser, + ["--name-only"]: nameOnlyParser + }; + } +}); +function lineBuilder(tokens, fields) { + return fields.reduce((line, field, index) => { + line[field] = tokens[index] || ""; + return line; + }, /* @__PURE__ */ Object.create({ diff: null })); +} +function createListLogSummaryParser(splitter = SPLITTER, fields = defaultFieldNames, logFormat = "") { + const parseDiffResult = getDiffParser(logFormat); + return function(stdOut) { + const all = toLinesWithContent(stdOut.trim(), false, START_BOUNDARY).map(function(item) { + const lineDetail = item.split(COMMIT_BOUNDARY); + const listLogLine = lineBuilder(lineDetail[0].split(splitter), fields); + if (lineDetail.length > 1 && !!lineDetail[1].trim()) { + listLogLine.diff = parseDiffResult(lineDetail[1]); } - } - return max; + return listLogLine; + }); + return { + all, + latest: all.length && all[0] || null, + total: all.length + }; + }; +} +var START_BOUNDARY; +var COMMIT_BOUNDARY; +var SPLITTER; +var defaultFieldNames; +var init_parse_list_log_summary = __esm2({ + "src/lib/parsers/parse-list-log-summary.ts"() { + init_utils2(); + init_parse_diff_summary(); + init_log_format(); + START_BOUNDARY = "Ć²Ć²Ć²Ć²Ć²Ć² "; + COMMIT_BOUNDARY = " Ć²Ć²"; + SPLITTER = " Ć² "; + defaultFieldNames = ["hash", "date", "message", "refs", "author_name", "author_email"]; + } +}); +var diff_exports = {}; +__export2(diff_exports, { + diffSummaryTask: () => diffSummaryTask, + validateLogFormatConfig: () => validateLogFormatConfig +}); +function diffSummaryTask(customArgs) { + let logFormat = logFormatFromCommand(customArgs); + const commands = ["diff"]; + if (logFormat === "") { + logFormat = "--stat"; + commands.push("--stat=4096"); } + commands.push(...customArgs); + return validateLogFormatConfig(commands) || { + commands, + format: "utf-8", + parser: getDiffParser(logFormat) + }; } -ZodBigInt.create = (params) => { - var _a2; - return new ZodBigInt({ - checks: [], - typeName: ZodFirstPartyTypeKind.ZodBigInt, - coerce: (_a2 = params === null || params === undefined ? undefined : params.coerce) !== null && _a2 !== undefined ? _a2 : false, - ...processCreateParams(params) - }); -}; - -class ZodBoolean extends ZodType { - _parse(input) { - if (this._def.coerce) { - input.data = Boolean(input.data); - } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.boolean) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.boolean, - received: ctx.parsedType - }); - return INVALID; - } - return OK(input.data); +function validateLogFormatConfig(customArgs) { + const flags = customArgs.filter(isLogFormat); + if (flags.length > 1) { + return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${flags.join(",")}`); + } + if (flags.length && customArgs.includes("-z")) { + return configurationErrorTask(`Summary flag ${flags} parsing is not compatible with null termination option '-z'`); } } -ZodBoolean.create = (params) => { - return new ZodBoolean({ - typeName: ZodFirstPartyTypeKind.ZodBoolean, - coerce: (params === null || params === undefined ? undefined : params.coerce) || false, - ...processCreateParams(params) +var init_diff = __esm2({ + "src/lib/tasks/diff.ts"() { + init_log_format(); + init_parse_diff_summary(); + init_task(); + } +}); +function prettyFormat(format, splitter) { + const fields = []; + const formatStr = []; + Object.keys(format).forEach((field) => { + fields.push(field); + formatStr.push(String(format[field])); }); -}; - -class ZodDate extends ZodType { - _parse(input) { - if (this._def.coerce) { - input.data = new Date(input.data); - } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.date) { - const ctx2 = this._getOrReturnCtx(input); - addIssueToContext(ctx2, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.date, - received: ctx2.parsedType - }); - return INVALID; + return [fields, formatStr.join(splitter)]; +} +function userOptions(input) { + return Object.keys(input).reduce((out, key2) => { + if (!(key2 in excludeOptions)) { + out[key2] = input[key2]; } - if (isNaN(input.data.getTime())) { - const ctx2 = this._getOrReturnCtx(input); - addIssueToContext(ctx2, { - code: ZodIssueCode.invalid_date - }); - return INVALID; + return out; + }, {}); +} +function parseLogOptions(opt = {}, customArgs = []) { + const splitter = filterType(opt.splitter, filterString, SPLITTER); + const format = !filterPrimitives(opt.format) && opt.format ? opt.format : { + hash: "%H", + date: opt.strictDate === false ? "%ai" : "%aI", + message: "%s", + refs: "%D", + body: opt.multiLine ? "%B" : "%b", + author_name: opt.mailMap !== false ? "%aN" : "%an", + author_email: opt.mailMap !== false ? "%aE" : "%ae" + }; + const [fields, formatStr] = prettyFormat(format, splitter); + const suffix = []; + const command = [ + `--pretty=format:${START_BOUNDARY}${formatStr}${COMMIT_BOUNDARY}`, + ...customArgs + ]; + const maxCount = opt.n || opt["max-count"] || opt.maxCount; + if (maxCount) { + command.push(`--max-count=${maxCount}`); + } + if (opt.from || opt.to) { + const rangeOperator = opt.symmetric !== false ? "..." : ".."; + suffix.push(`${opt.from || ""}${rangeOperator}${opt.to || ""}`); + } + if (filterString(opt.file)) { + command.push("--follow", pathspec(opt.file)); + } + appendTaskOptions(userOptions(opt), command); + return { + fields, + splitter, + commands: [...command, ...suffix] + }; +} +function logTask(splitter, fields, customArgs) { + const parser4 = createListLogSummaryParser(splitter, fields, logFormatFromCommand(customArgs)); + return { + commands: ["log", ...customArgs], + format: "utf-8", + parser: parser4 + }; +} +function log_default() { + return { + log(...rest) { + const next = trailingFunctionArgument(arguments); + const options = parseLogOptions(trailingOptionsArgument(arguments), filterType(arguments[0], filterArray)); + const task = rejectDeprecatedSignatures(...rest) || validateLogFormatConfig(options.commands) || createLogTask(options); + return this._runTask(task, next); } - const status = new ParseStatus; - let ctx = undefined; - for (const check2 of this._def.checks) { - if (check2.kind === "min") { - if (input.data.getTime() < check2.value) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - message: check2.message, - inclusive: true, - exact: false, - minimum: check2.value, - type: "date" - }); - status.dirty(); - } - } else if (check2.kind === "max") { - if (input.data.getTime() > check2.value) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - message: check2.message, - inclusive: true, - exact: false, - maximum: check2.value, - type: "date" - }); - status.dirty(); + }; + function createLogTask(options) { + return logTask(options.splitter, options.fields, options.commands); + } + function rejectDeprecatedSignatures(from2, to) { + return filterString(from2) && filterString(to) && configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`); + } +} +var excludeOptions; +var init_log = __esm2({ + "src/lib/tasks/log.ts"() { + init_log_format(); + init_pathspec(); + init_parse_list_log_summary(); + init_utils2(); + init_task(); + init_diff(); + excludeOptions = /* @__PURE__ */ ((excludeOptions2) => { + excludeOptions2[excludeOptions2["--pretty"] = 0] = "--pretty"; + excludeOptions2[excludeOptions2["max-count"] = 1] = "max-count"; + excludeOptions2[excludeOptions2["maxCount"] = 2] = "maxCount"; + excludeOptions2[excludeOptions2["n"] = 3] = "n"; + excludeOptions2[excludeOptions2["file"] = 4] = "file"; + excludeOptions2[excludeOptions2["format"] = 5] = "format"; + excludeOptions2[excludeOptions2["from"] = 6] = "from"; + excludeOptions2[excludeOptions2["to"] = 7] = "to"; + excludeOptions2[excludeOptions2["splitter"] = 8] = "splitter"; + excludeOptions2[excludeOptions2["symmetric"] = 9] = "symmetric"; + excludeOptions2[excludeOptions2["mailMap"] = 10] = "mailMap"; + excludeOptions2[excludeOptions2["multiLine"] = 11] = "multiLine"; + excludeOptions2[excludeOptions2["strictDate"] = 12] = "strictDate"; + return excludeOptions2; + })(excludeOptions || {}); + } +}); +var MergeSummaryConflict; +var MergeSummaryDetail; +var init_MergeSummary = __esm2({ + "src/lib/responses/MergeSummary.ts"() { + MergeSummaryConflict = class { + constructor(reason, file = null, meta) { + this.reason = reason; + this.file = file; + this.meta = meta; + } + toString() { + return `${this.file}:${this.reason}`; + } + }; + MergeSummaryDetail = class { + constructor() { + this.conflicts = []; + this.merges = []; + this.result = "success"; + } + get failed() { + return this.conflicts.length > 0; + } + get reason() { + return this.result; + } + toString() { + if (this.conflicts.length) { + return `CONFLICTS: ${this.conflicts.join(", ")}`; } - } else { - util.assertNever(check2); + return "OK"; } - } - return { - status: status.value, - value: new Date(input.data.getTime()) }; } - _addCheck(check2) { - return new ZodDate({ - ...this._def, - checks: [...this._def.checks, check2] - }); - } - min(minDate, message) { - return this._addCheck({ - kind: "min", - value: minDate.getTime(), - message: errorUtil.toString(message) - }); - } - max(maxDate, message) { - return this._addCheck({ - kind: "max", - value: maxDate.getTime(), - message: errorUtil.toString(message) - }); - } - get minDate() { - let min = null; - for (const ch of this._def.checks) { - if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; +}); +var PullSummary; +var PullFailedSummary; +var init_PullSummary = __esm2({ + "src/lib/responses/PullSummary.ts"() { + PullSummary = class { + constructor() { + this.remoteMessages = { + all: [] + }; + this.created = []; + this.deleted = []; + this.files = []; + this.deletions = {}; + this.insertions = {}; + this.summary = { + changes: 0, + deletions: 0, + insertions: 0 + }; } - } - return min != null ? new Date(min) : null; - } - get maxDate() { - let max = null; - for (const ch of this._def.checks) { - if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; + }; + PullFailedSummary = class { + constructor() { + this.remote = ""; + this.hash = { + local: "", + remote: "" + }; + this.branch = { + local: "", + remote: "" + }; + this.message = ""; } - } - return max != null ? new Date(max) : null; - } -} -ZodDate.create = (params) => { - return new ZodDate({ - checks: [], - coerce: (params === null || params === undefined ? undefined : params.coerce) || false, - typeName: ZodFirstPartyTypeKind.ZodDate, - ...processCreateParams(params) - }); -}; - -class ZodSymbol extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.symbol) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.symbol, - received: ctx.parsedType - }); - return INVALID; - } - return OK(input.data); + toString() { + return this.message; + } + }; } +}); +function objectEnumerationResult(remoteMessages) { + return remoteMessages.objects = remoteMessages.objects || { + compressing: 0, + counting: 0, + enumerating: 0, + packReused: 0, + reused: { count: 0, delta: 0 }, + total: { count: 0, delta: 0 } + }; } -ZodSymbol.create = (params) => { - return new ZodSymbol({ - typeName: ZodFirstPartyTypeKind.ZodSymbol, - ...processCreateParams(params) - }); -}; - -class ZodUndefined extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.undefined) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.undefined, - received: ctx.parsedType - }); - return INVALID; - } - return OK(input.data); - } +function asObjectCount(source) { + const count = /^\s*(\d+)/.exec(source); + const delta = /delta (\d+)/i.exec(source); + return { + count: asNumber(count && count[1] || "0"), + delta: asNumber(delta && delta[1] || "0") + }; } -ZodUndefined.create = (params) => { - return new ZodUndefined({ - typeName: ZodFirstPartyTypeKind.ZodUndefined, - ...processCreateParams(params) - }); -}; - -class ZodNull extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.null) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.null, - received: ctx.parsedType - }); - return INVALID; - } - return OK(input.data); +var remoteMessagesObjectParsers; +var init_parse_remote_objects = __esm2({ + "src/lib/parsers/parse-remote-objects.ts"() { + init_utils2(); + remoteMessagesObjectParsers = [ + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i, (result, [total, reused, packReused]) => { + const objects = objectEnumerationResult(result.remoteMessages); + objects.total = asObjectCount(total); + objects.reused = asObjectCount(reused); + objects.packReused = asNumber(packReused); + }) + ]; } +}); +function parseRemoteMessages(_stdOut, stdErr) { + return parseStringResponse({ remoteMessages: new RemoteMessageSummary }, parsers2, stdErr); } -ZodNull.create = (params) => { - return new ZodNull({ - typeName: ZodFirstPartyTypeKind.ZodNull, - ...processCreateParams(params) - }); -}; - -class ZodAny extends ZodType { - constructor() { - super(...arguments); - this._any = true; - } - _parse(input) { - return OK(input.data); +var parsers2; +var RemoteMessageSummary; +var init_parse_remote_messages = __esm2({ + "src/lib/parsers/parse-remote-messages.ts"() { + init_utils2(); + init_parse_remote_objects(); + parsers2 = [ + new RemoteLineParser(/^remote:\s*(.+)$/, (result, [text]) => { + result.remoteMessages.all.push(text.trim()); + return false; + }), + ...remoteMessagesObjectParsers, + new RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => { + result.remoteMessages.pullRequestUrl = pullRequestUrl; + }), + new RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => { + result.remoteMessages.vulnerabilities = { + count: asNumber(count), + summary, + url + }; + }) + ]; + RemoteMessageSummary = class { + constructor() { + this.all = []; + } + }; } +}); +function parsePullErrorResult(stdOut, stdErr) { + const pullError = parseStringResponse(new PullFailedSummary, errorParsers, [stdOut, stdErr]); + return pullError.message && pullError; } -ZodAny.create = (params) => { - return new ZodAny({ - typeName: ZodFirstPartyTypeKind.ZodAny, - ...processCreateParams(params) - }); -}; - -class ZodUnknown extends ZodType { - constructor() { - super(...arguments); - this._unknown = true; +var FILE_UPDATE_REGEX; +var SUMMARY_REGEX; +var ACTION_REGEX; +var parsers3; +var errorParsers; +var parsePullDetail; +var parsePullResult; +var init_parse_pull = __esm2({ + "src/lib/parsers/parse-pull.ts"() { + init_PullSummary(); + init_utils2(); + init_parse_remote_messages(); + FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/; + SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/; + ACTION_REGEX = /^(create|delete) mode \d+ (.+)/; + parsers3 = [ + new LineParser(FILE_UPDATE_REGEX, (result, [file, insertions, deletions]) => { + result.files.push(file); + if (insertions) { + result.insertions[file] = insertions.length; + } + if (deletions) { + result.deletions[file] = deletions.length; + } + }), + new LineParser(SUMMARY_REGEX, (result, [changes, , insertions, , deletions]) => { + if (insertions !== undefined || deletions !== undefined) { + result.summary.changes = +changes || 0; + result.summary.insertions = +insertions || 0; + result.summary.deletions = +deletions || 0; + return true; + } + return false; + }), + new LineParser(ACTION_REGEX, (result, [action, file]) => { + append(result.files, file); + append(action === "create" ? result.created : result.deleted, file); + }) + ]; + errorParsers = [ + new LineParser(/^from\s(.+)$/i, (result, [remote]) => void (result.remote = remote)), + new LineParser(/^fatal:\s(.+)$/, (result, [message]) => void (result.message = message)), + new LineParser(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/, (result, [hashLocal, hashRemote, branchLocal, branchRemote]) => { + result.branch.local = branchLocal; + result.hash.local = hashLocal; + result.branch.remote = branchRemote; + result.hash.remote = hashRemote; + }) + ]; + parsePullDetail = (stdOut, stdErr) => { + return parseStringResponse(new PullSummary, parsers3, [stdOut, stdErr]); + }; + parsePullResult = (stdOut, stdErr) => { + return Object.assign(new PullSummary, parsePullDetail(stdOut, stdErr), parseRemoteMessages(stdOut, stdErr)); + }; } - _parse(input) { - return OK(input.data); +}); +var parsers4; +var parseMergeResult; +var parseMergeDetail; +var init_parse_merge = __esm2({ + "src/lib/parsers/parse-merge.ts"() { + init_MergeSummary(); + init_utils2(); + init_parse_pull(); + parsers4 = [ + new LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => { + summary.merges.push(autoMerge); + }), + new LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file)); + }), + new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef })); + }), + new LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, null)); + }), + new LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => { + summary.result = result; + }) + ]; + parseMergeResult = (stdOut, stdErr) => { + return Object.assign(parseMergeDetail(stdOut, stdErr), parsePullResult(stdOut, stdErr)); + }; + parseMergeDetail = (stdOut) => { + return parseStringResponse(new MergeSummaryDetail, parsers4, stdOut); + }; } -} -ZodUnknown.create = (params) => { - return new ZodUnknown({ - typeName: ZodFirstPartyTypeKind.ZodUnknown, - ...processCreateParams(params) - }); -}; - -class ZodNever extends ZodType { - _parse(input) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.never, - received: ctx.parsedType - }); - return INVALID; +}); +function mergeTask(customArgs) { + if (!customArgs.length) { + return configurationErrorTask("Git.merge requires at least one option"); } -} -ZodNever.create = (params) => { - return new ZodNever({ - typeName: ZodFirstPartyTypeKind.ZodNever, - ...processCreateParams(params) - }); -}; - -class ZodVoid extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.undefined) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.void, - received: ctx.parsedType - }); - return INVALID; + return { + commands: ["merge", ...customArgs], + format: "utf-8", + parser(stdOut, stdErr) { + const merge = parseMergeResult(stdOut, stdErr); + if (merge.failed) { + throw new GitResponseError(merge); + } + return merge; } - return OK(input.data); + }; +} +var init_merge = __esm2({ + "src/lib/tasks/merge.ts"() { + init_git_response_error(); + init_parse_merge(); + init_task(); } +}); +function pushResultPushedItem(local, remote, status) { + const deleted = status.includes("deleted"); + const tag = status.includes("tag") || /^refs\/tags/.test(local); + const alreadyUpdated = !status.includes("new"); + return { + deleted, + tag, + branch: !tag, + new: !alreadyUpdated, + alreadyUpdated, + local, + remote + }; } -ZodVoid.create = (params) => { - return new ZodVoid({ - typeName: ZodFirstPartyTypeKind.ZodVoid, - ...processCreateParams(params) - }); -}; - -class ZodArray extends ZodType { - _parse(input) { - const { ctx, status } = this._processInputParams(input); - const def = this._def; - if (ctx.parsedType !== ZodParsedType.array) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.array, - received: ctx.parsedType - }); - return INVALID; - } - if (def.exactLength !== null) { - const tooBig = ctx.data.length > def.exactLength.value; - const tooSmall = ctx.data.length < def.exactLength.value; - if (tooBig || tooSmall) { - addIssueToContext(ctx, { - code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small, - minimum: tooSmall ? def.exactLength.value : undefined, - maximum: tooBig ? def.exactLength.value : undefined, - type: "array", - inclusive: true, - exact: true, - message: def.exactLength.message - }); - status.dirty(); - } - } - if (def.minLength !== null) { - if (ctx.data.length < def.minLength.value) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: def.minLength.value, - type: "array", - inclusive: true, - exact: false, - message: def.minLength.message - }); - status.dirty(); - } - } - if (def.maxLength !== null) { - if (ctx.data.length > def.maxLength.value) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: def.maxLength.value, - type: "array", - inclusive: true, - exact: false, - message: def.maxLength.message +var parsers5; +var parsePushResult; +var parsePushDetail; +var init_parse_push = __esm2({ + "src/lib/parsers/parse-push.ts"() { + init_utils2(); + init_parse_remote_messages(); + parsers5 = [ + new LineParser(/^Pushing to (.+)$/, (result, [repo]) => { + result.repo = repo; + }), + new LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { + result.ref = __spreadProps(__spreadValues({}, result.ref || {}), { + local }); - status.dirty(); - } - } - if (ctx.common.async) { - return Promise.all([...ctx.data].map((item, i) => { - return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i)); - })).then((result2) => { - return ParseStatus.mergeArray(status, result2); - }); - } - const result = [...ctx.data].map((item, i) => { - return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i)); - }); - return ParseStatus.mergeArray(status, result); - } - get element() { - return this._def.type; - } - min(minLength, message) { - return new ZodArray({ - ...this._def, - minLength: { value: minLength, message: errorUtil.toString(message) } - }); - } - max(maxLength, message) { - return new ZodArray({ - ...this._def, - maxLength: { value: maxLength, message: errorUtil.toString(message) } - }); + }), + new LineParser(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { + result.pushed.push(pushResultPushedItem(local, remote, type)); + }), + new LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { + result.branch = __spreadProps(__spreadValues({}, result.branch || {}), { + local, + remote, + remoteName + }); + }), + new LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from2, to]) => { + result.update = { + head: { + local, + remote + }, + hash: { + from: from2, + to + } + }; + }) + ]; + parsePushResult = (stdOut, stdErr) => { + const pushDetail = parsePushDetail(stdOut, stdErr); + const responseDetail = parseRemoteMessages(stdOut, stdErr); + return __spreadValues(__spreadValues({}, pushDetail), responseDetail); + }; + parsePushDetail = (stdOut, stdErr) => { + return parseStringResponse({ pushed: [] }, parsers5, [stdOut, stdErr]); + }; } - length(len, message) { - return new ZodArray({ - ...this._def, - exactLength: { value: len, message: errorUtil.toString(message) } - }); +}); +var push_exports = {}; +__export2(push_exports, { + pushTagsTask: () => pushTagsTask, + pushTask: () => pushTask +}); +function pushTagsTask(ref = {}, customArgs) { + append(customArgs, "--tags"); + return pushTask(ref, customArgs); +} +function pushTask(ref = {}, customArgs) { + const commands = ["push", ...customArgs]; + if (ref.branch) { + commands.splice(1, 0, ref.branch); } - nonempty(message) { - return this.min(1, message); + if (ref.remote) { + commands.splice(1, 0, ref.remote); } + remove(commands, "-v"); + append(commands, "--verbose"); + append(commands, "--porcelain"); + return { + commands, + format: "utf-8", + parser: parsePushResult + }; } -ZodArray.create = (schema, params) => { - return new ZodArray({ - type: schema, - minLength: null, - maxLength: null, - exactLength: null, - typeName: ZodFirstPartyTypeKind.ZodArray, - ...processCreateParams(params) - }); -}; -function deepPartialify(schema) { - if (schema instanceof ZodObject) { - const newShape = {}; - for (const key2 in schema.shape) { - const fieldSchema = schema.shape[key2]; - newShape[key2] = ZodOptional.create(deepPartialify(fieldSchema)); - } - return new ZodObject({ - ...schema._def, - shape: () => newShape - }); - } else if (schema instanceof ZodArray) { - return new ZodArray({ - ...schema._def, - type: deepPartialify(schema.element) - }); - } else if (schema instanceof ZodOptional) { - return ZodOptional.create(deepPartialify(schema.unwrap())); - } else if (schema instanceof ZodNullable) { - return ZodNullable.create(deepPartialify(schema.unwrap())); - } else if (schema instanceof ZodTuple) { - return ZodTuple.create(schema.items.map((item) => deepPartialify(item))); - } else { - return schema; +var init_push = __esm2({ + "src/lib/tasks/push.ts"() { + init_parse_push(); + init_utils2(); } +}); +function show_default() { + return { + showBuffer() { + const commands = ["show", ...getTrailingOptions(arguments, 1)]; + if (!commands.includes("--binary")) { + commands.splice(1, 0, "--binary"); + } + return this._runTask(straightThroughBufferTask(commands), trailingFunctionArgument(arguments)); + }, + show() { + const commands = ["show", ...getTrailingOptions(arguments, 1)]; + return this._runTask(straightThroughStringTask(commands), trailingFunctionArgument(arguments)); + } + }; } - -class ZodObject extends ZodType { - constructor() { - super(...arguments); - this._cached = null; - this.nonstrict = this.passthrough; - this.augment = this.extend; - } - _getCached() { - if (this._cached !== null) - return this._cached; - const shape = this._def.shape(); - const keys = util.objectKeys(shape); - return this._cached = { shape, keys }; +var init_show = __esm2({ + "src/lib/tasks/show.ts"() { + init_utils2(); + init_task(); } - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.object) { - const ctx2 = this._getOrReturnCtx(input); - addIssueToContext(ctx2, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.object, - received: ctx2.parsedType - }); - return INVALID; - } - const { status, ctx } = this._processInputParams(input); - const { shape, keys: shapeKeys } = this._getCached(); - const extraKeys = []; - if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) { - for (const key2 in ctx.data) { - if (!shapeKeys.includes(key2)) { - extraKeys.push(key2); +}); +var fromPathRegex; +var FileStatusSummary; +var init_FileStatusSummary = __esm2({ + "src/lib/responses/FileStatusSummary.ts"() { + fromPathRegex = /^(.+)\0(.+)$/; + FileStatusSummary = class { + constructor(path3, index, working_dir) { + this.path = path3; + this.index = index; + this.working_dir = working_dir; + if (index === "R" || working_dir === "R") { + const detail = fromPathRegex.exec(path3) || [null, path3, path3]; + this.from = detail[2] || ""; + this.path = detail[1] || ""; } } + }; + } +}); +function renamedFile(line) { + const [to, from2] = line.split(NULL); + return { + from: from2 || to, + to + }; +} +function parser3(indexX, indexY, handler) { + return [`${indexX}${indexY}`, handler]; +} +function conflicts(indexX, ...indexY) { + return indexY.map((y) => parser3(indexX, y, (result, file) => append(result.conflicted, file))); +} +function splitLine(result, lineStr) { + const trimmed2 = lineStr.trim(); + switch (" ") { + case trimmed2.charAt(2): + return data(trimmed2.charAt(0), trimmed2.charAt(1), trimmed2.substr(3)); + case trimmed2.charAt(1): + return data(" ", trimmed2.charAt(0), trimmed2.substr(2)); + default: + return; + } + function data(index, workingDir, path3) { + const raw = `${index}${workingDir}`; + const handler = parsers6.get(raw); + if (handler) { + handler(result, path3); } - const pairs = []; - for (const key2 of shapeKeys) { - const keyValidator = shape[key2]; - const value = ctx.data[key2]; - pairs.push({ - key: { status: "valid", value: key2 }, - value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key2)), - alwaysSet: key2 in ctx.data - }); + if (raw !== "##" && raw !== "!!") { + result.files.push(new FileStatusSummary(path3, index, workingDir)); } - if (this._def.catchall instanceof ZodNever) { - const unknownKeys = this._def.unknownKeys; - if (unknownKeys === "passthrough") { - for (const key2 of extraKeys) { - pairs.push({ - key: { status: "valid", value: key2 }, - value: { status: "valid", value: ctx.data[key2] } - }); + } +} +var StatusSummary; +var parsers6; +var parseStatusSummary; +var init_StatusSummary = __esm2({ + "src/lib/responses/StatusSummary.ts"() { + init_utils2(); + init_FileStatusSummary(); + StatusSummary = class { + constructor() { + this.not_added = []; + this.conflicted = []; + this.created = []; + this.deleted = []; + this.ignored = undefined; + this.modified = []; + this.renamed = []; + this.files = []; + this.staged = []; + this.ahead = 0; + this.behind = 0; + this.current = null; + this.tracking = null; + this.detached = false; + this.isClean = () => { + return !this.files.length; + }; + } + }; + parsers6 = new Map([ + parser3(" ", "A", (result, file) => append(result.created, file)), + parser3(" ", "D", (result, file) => append(result.deleted, file)), + parser3(" ", "M", (result, file) => append(result.modified, file)), + parser3("A", " ", (result, file) => append(result.created, file) && append(result.staged, file)), + parser3("A", "M", (result, file) => append(result.created, file) && append(result.staged, file) && append(result.modified, file)), + parser3("D", " ", (result, file) => append(result.deleted, file) && append(result.staged, file)), + parser3("M", " ", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser3("M", "M", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser3("R", " ", (result, file) => { + append(result.renamed, renamedFile(file)); + }), + parser3("R", "M", (result, file) => { + const renamed = renamedFile(file); + append(result.renamed, renamed); + append(result.modified, renamed.to); + }), + parser3("!", "!", (_result, _file) => { + append(_result.ignored = _result.ignored || [], _file); + }), + parser3("?", "?", (result, file) => append(result.not_added, file)), + ...conflicts("A", "A", "U"), + ...conflicts("D", "D", "U"), + ...conflicts("U", "A", "D", "U"), + [ + "##", + (result, line) => { + const aheadReg = /ahead (\d+)/; + const behindReg = /behind (\d+)/; + const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; + const trackingReg = /\.{3}(\S*)/; + const onEmptyBranchReg = /\son\s([\S]+)$/; + let regexResult; + regexResult = aheadReg.exec(line); + result.ahead = regexResult && +regexResult[1] || 0; + regexResult = behindReg.exec(line); + result.behind = regexResult && +regexResult[1] || 0; + regexResult = currentReg.exec(line); + result.current = regexResult && regexResult[1]; + regexResult = trackingReg.exec(line); + result.tracking = regexResult && regexResult[1]; + regexResult = onEmptyBranchReg.exec(line); + result.current = regexResult && regexResult[1] || result.current; + result.detached = /\(no branch\)/.test(line); } - } else if (unknownKeys === "strict") { - if (extraKeys.length > 0) { - addIssueToContext(ctx, { - code: ZodIssueCode.unrecognized_keys, - keys: extraKeys - }); - status.dirty(); + ] + ]); + parseStatusSummary = function(text) { + const lines2 = text.split(NULL); + const status = new StatusSummary; + for (let i = 0, l = lines2.length;i < l; ) { + let line = lines2[i++].trim(); + if (!line) { + continue; } - } else if (unknownKeys === "strip") - ; - else { - throw new Error(`Internal ZodObject error: invalid unknownKeys value.`); - } - } else { - const catchall = this._def.catchall; - for (const key2 of extraKeys) { - const value = ctx.data[key2]; - pairs.push({ - key: { status: "valid", value: key2 }, - value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key2)), - alwaysSet: key2 in ctx.data - }); + if (line.charAt(0) === "R") { + line += NULL + (lines2[i++] || ""); + } + splitLine(status, line); } + return status; + }; + } +}); +function statusTask(customArgs) { + const commands = [ + "status", + "--porcelain", + "-b", + "-u", + "--null", + ...customArgs.filter((arg) => !ignoredOptions.includes(arg)) + ]; + return { + format: "utf-8", + commands, + parser(text) { + return parseStatusSummary(text); } - if (ctx.common.async) { - return Promise.resolve().then(async () => { - const syncPairs = []; - for (const pair of pairs) { - const key2 = await pair.key; - const value = await pair.value; - syncPairs.push({ - key: key2, - value, - alwaysSet: pair.alwaysSet - }); + }; +} +var ignoredOptions; +var init_status = __esm2({ + "src/lib/tasks/status.ts"() { + init_StatusSummary(); + ignoredOptions = ["--null", "-z"]; + } +}); +function versionResponse(major = 0, minor = 0, patch = 0, agent = "", installed = true) { + return Object.defineProperty({ + major, + minor, + patch, + agent, + installed + }, "toString", { + value() { + return `${this.major}.${this.minor}.${this.patch}`; + }, + configurable: false, + enumerable: false + }); +} +function notInstalledResponse() { + return versionResponse(0, 0, 0, "", false); +} +function version_default() { + return { + version() { + return this._runTask({ + commands: ["--version"], + format: "utf-8", + parser: versionParser, + onError(result, error, done, fail) { + if (result.exitCode === -2) { + return done(Buffer.from(NOT_INSTALLED)); + } + fail(error); } - return syncPairs; - }).then((syncPairs) => { - return ParseStatus.mergeObjectSync(status, syncPairs); }); - } else { - return ParseStatus.mergeObjectSync(status, pairs); } + }; +} +function versionParser(stdOut) { + if (stdOut === NOT_INSTALLED) { + return notInstalledResponse(); } - get shape() { - return this._def.shape(); - } - strict(message) { - errorUtil.errToObj; - return new ZodObject({ - ...this._def, - unknownKeys: "strict", - ...message !== undefined ? { - errorMap: (issue, ctx) => { - var _a2, _b, _c, _d; - const defaultError = (_c = (_b = (_a2 = this._def).errorMap) === null || _b === undefined ? undefined : _b.call(_a2, issue, ctx).message) !== null && _c !== undefined ? _c : ctx.defaultError; - if (issue.code === "unrecognized_keys") - return { - message: (_d = errorUtil.errToObj(message).message) !== null && _d !== undefined ? _d : defaultError - }; - return { - message: defaultError - }; - } - } : {} - }); - } - strip() { - return new ZodObject({ - ...this._def, - unknownKeys: "strip" - }); - } - passthrough() { - return new ZodObject({ - ...this._def, - unknownKeys: "passthrough" - }); - } - extend(augmentation) { - return new ZodObject({ - ...this._def, - shape: () => ({ - ...this._def.shape(), - ...augmentation - }) - }); - } - merge(merging) { - const merged = new ZodObject({ - unknownKeys: merging._def.unknownKeys, - catchall: merging._def.catchall, - shape: () => ({ - ...this._def.shape(), - ...merging._def.shape() + return parseStringResponse(versionResponse(0, 0, 0, stdOut), parsers7, stdOut); +} +var NOT_INSTALLED; +var parsers7; +var init_version = __esm2({ + "src/lib/tasks/version.ts"() { + init_utils2(); + NOT_INSTALLED = "installed=false"; + parsers7 = [ + new LineParser(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), asNumber(patch), agent)); }), - typeName: ZodFirstPartyTypeKind.ZodObject - }); - return merged; - } - setKey(key2, schema) { - return this.augment({ [key2]: schema }); - } - catchall(index) { - return new ZodObject({ - ...this._def, - catchall: index - }); - } - pick(mask) { - const shape = {}; - util.objectKeys(mask).forEach((key2) => { - if (mask[key2] && this.shape[key2]) { - shape[key2] = this.shape[key2]; - } - }); - return new ZodObject({ - ...this._def, - shape: () => shape - }); - } - omit(mask) { - const shape = {}; - util.objectKeys(this.shape).forEach((key2) => { - if (!mask[key2]) { - shape[key2] = this.shape[key2]; - } - }); - return new ZodObject({ - ...this._def, - shape: () => shape - }); - } - deepPartial() { - return deepPartialify(this); + new LineParser(/version (\d+)\.(\d+)\.(\D+)(.+)?$/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), patch, agent)); + }) + ]; } - partial(mask) { - const newShape = {}; - util.objectKeys(this.shape).forEach((key2) => { - const fieldSchema = this.shape[key2]; - if (mask && !mask[key2]) { - newShape[key2] = fieldSchema; - } else { - newShape[key2] = fieldSchema.optional(); +}); +var simple_git_api_exports = {}; +__export2(simple_git_api_exports, { + SimpleGitApi: () => SimpleGitApi +}); +var SimpleGitApi; +var init_simple_git_api = __esm2({ + "src/lib/simple-git-api.ts"() { + init_task_callback(); + init_change_working_directory(); + init_checkout(); + init_count_objects(); + init_commit(); + init_config(); + init_first_commit(); + init_grep(); + init_hash_object(); + init_init(); + init_log(); + init_merge(); + init_push(); + init_show(); + init_status(); + init_task(); + init_version(); + init_utils2(); + SimpleGitApi = class { + constructor(_executor) { + this._executor = _executor; } - }); - return new ZodObject({ - ...this._def, - shape: () => newShape - }); - } - required(mask) { - const newShape = {}; - util.objectKeys(this.shape).forEach((key2) => { - if (mask && !mask[key2]) { - newShape[key2] = this.shape[key2]; - } else { - const fieldSchema = this.shape[key2]; - let newField = fieldSchema; - while (newField instanceof ZodOptional) { - newField = newField._def.innerType; + _runTask(task, then) { + const chain = this._executor.chain(); + const promise = chain.push(task); + if (then) { + taskCallback(task, promise, then); } - newShape[key2] = newField; + return Object.create(this, { + then: { value: promise.then.bind(promise) }, + catch: { value: promise.catch.bind(promise) }, + _executor: { value: chain } + }); } - }); - return new ZodObject({ - ...this._def, - shape: () => newShape - }); - } - keyof() { - return createZodEnum(util.objectKeys(this.shape)); - } -} -ZodObject.create = (shape, params) => { - return new ZodObject({ - shape: () => shape, - unknownKeys: "strip", - catchall: ZodNever.create(), - typeName: ZodFirstPartyTypeKind.ZodObject, - ...processCreateParams(params) - }); -}; -ZodObject.strictCreate = (shape, params) => { - return new ZodObject({ - shape: () => shape, - unknownKeys: "strict", - catchall: ZodNever.create(), - typeName: ZodFirstPartyTypeKind.ZodObject, - ...processCreateParams(params) - }); -}; -ZodObject.lazycreate = (shape, params) => { - return new ZodObject({ - shape, - unknownKeys: "strip", - catchall: ZodNever.create(), - typeName: ZodFirstPartyTypeKind.ZodObject, - ...processCreateParams(params) - }); -}; - -class ZodUnion extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - const options = this._def.options; - function handleResults(results) { - for (const result of results) { - if (result.result.status === "valid") { - return result.result; + add(files) { + return this._runTask(straightThroughStringTask(["add", ...asArray(files)]), trailingFunctionArgument(arguments)); + } + cwd(directory) { + const next = trailingFunctionArgument(arguments); + if (typeof directory === "string") { + return this._runTask(changeWorkingDirectoryTask(directory, this._executor), next); } + if (typeof (directory == null ? undefined : directory.path) === "string") { + return this._runTask(changeWorkingDirectoryTask(directory.path, directory.root && this._executor || undefined), next); + } + return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next); } - for (const result of results) { - if (result.result.status === "dirty") { - ctx.common.issues.push(...result.ctx.common.issues); - return result.result; + hashObject(path3, write) { + return this._runTask(hashObjectTask(path3, write === true), trailingFunctionArgument(arguments)); + } + init(bare) { + return this._runTask(initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + merge() { + return this._runTask(mergeTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + mergeFromTo(remote, branch) { + if (!(filterString(remote) && filterString(branch))) { + return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`)); } + return this._runTask(mergeTask([remote, branch, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false)); } - const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues)); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_union, - unionErrors - }); - return INVALID; - } - if (ctx.common.async) { - return Promise.all(options.map(async (option) => { - const childCtx = { - ...ctx, - common: { - ...ctx.common, - issues: [] - }, - parent: null - }; + outputHandler(handler) { + this._executor.outputHandler = handler; + return this; + } + push() { + const task = pushTask({ + remote: filterType(arguments[0], filterString), + branch: filterType(arguments[1], filterString) + }, getTrailingOptions(arguments)); + return this._runTask(task, trailingFunctionArgument(arguments)); + } + stash() { + return this._runTask(straightThroughStringTask(["stash", ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + status() { + return this._runTask(statusTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + }; + Object.assign(SimpleGitApi.prototype, checkout_default(), commit_default(), config_default(), count_objects_default(), first_commit_default(), grep_default(), log_default(), show_default(), version_default()); + } +}); +var scheduler_exports = {}; +__export2(scheduler_exports, { + Scheduler: () => Scheduler +}); +var createScheduledTask; +var Scheduler; +var init_scheduler = __esm2({ + "src/lib/runners/scheduler.ts"() { + init_utils2(); + init_git_logger(); + createScheduledTask = (() => { + let id = 0; + return () => { + id++; + const { promise, done } = import_promise_deferred.createDeferred(); return { - result: await option._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: childCtx - }), - ctx: childCtx - }; - })).then(handleResults); - } else { - let dirty = undefined; - const issues = []; - for (const option of options) { - const childCtx = { - ...ctx, - common: { - ...ctx.common, - issues: [] - }, - parent: null + promise, + done, + id }; - const result = option._parseSync({ - data: ctx.data, - path: ctx.path, - parent: childCtx - }); - if (result.status === "valid") { - return result; - } else if (result.status === "dirty" && !dirty) { - dirty = { result, ctx: childCtx }; - } - if (childCtx.common.issues.length) { - issues.push(childCtx.common.issues); + }; + })(); + Scheduler = class { + constructor(concurrency = 2) { + this.concurrency = concurrency; + this.logger = createLogger("", "scheduler"); + this.pending = []; + this.running = []; + this.logger(`Constructed, concurrency=%s`, concurrency); + } + schedule() { + if (!this.pending.length || this.running.length >= this.concurrency) { + this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`, this.pending.length, this.running.length, this.concurrency); + return; } + const task = append(this.running, this.pending.shift()); + this.logger(`Attempting id=%s`, task.id); + task.done(() => { + this.logger(`Completing id=`, task.id); + remove(this.running, task); + this.schedule(); + }); } - if (dirty) { - ctx.common.issues.push(...dirty.ctx.common.issues); - return dirty.result; + next() { + const { promise, id } = append(this.pending, createScheduledTask()); + this.logger(`Scheduling id=%s`, id); + this.schedule(); + return promise; } - const unionErrors = issues.map((issues2) => new ZodError(issues2)); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_union, - unionErrors - }); - return INVALID; - } - } - get options() { - return this._def.options; + }; } +}); +var apply_patch_exports = {}; +__export2(apply_patch_exports, { + applyPatchTask: () => applyPatchTask +}); +function applyPatchTask(patches, customArgs) { + return straightThroughStringTask(["apply", ...customArgs, ...patches]); } -ZodUnion.create = (types, params) => { - return new ZodUnion({ - options: types, - typeName: ZodFirstPartyTypeKind.ZodUnion, - ...processCreateParams(params) - }); -}; -var getDiscriminator = (type) => { - if (type instanceof ZodLazy) { - return getDiscriminator(type.schema); - } else if (type instanceof ZodEffects) { - return getDiscriminator(type.innerType()); - } else if (type instanceof ZodLiteral) { - return [type.value]; - } else if (type instanceof ZodEnum) { - return type.options; - } else if (type instanceof ZodNativeEnum) { - return util.objectValues(type.enum); - } else if (type instanceof ZodDefault) { - return getDiscriminator(type._def.innerType); - } else if (type instanceof ZodUndefined) { - return [undefined]; - } else if (type instanceof ZodNull) { - return [null]; - } else if (type instanceof ZodOptional) { - return [undefined, ...getDiscriminator(type.unwrap())]; - } else if (type instanceof ZodNullable) { - return [null, ...getDiscriminator(type.unwrap())]; - } else if (type instanceof ZodBranded) { - return getDiscriminator(type.unwrap()); - } else if (type instanceof ZodReadonly) { - return getDiscriminator(type.unwrap()); - } else if (type instanceof ZodCatch) { - return getDiscriminator(type._def.innerType); - } else { - return []; - } -}; - -class ZodDiscriminatedUnion extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.object) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.object, - received: ctx.parsedType - }); - return INVALID; - } - const discriminator = this.discriminator; - const discriminatorValue = ctx.data[discriminator]; - const option = this.optionsMap.get(discriminatorValue); - if (!option) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_union_discriminator, - options: Array.from(this.optionsMap.keys()), - path: [discriminator] - }); - return INVALID; - } - if (ctx.common.async) { - return option._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: ctx - }); - } else { - return option._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx - }); - } - } - get discriminator() { - return this._def.discriminator; +var init_apply_patch = __esm2({ + "src/lib/tasks/apply-patch.ts"() { + init_task(); } - get options() { - return this._def.options; +}); +function branchDeletionSuccess(branch, hash) { + return { + branch, + hash, + success: true + }; +} +function branchDeletionFailure(branch) { + return { + branch, + hash: null, + success: false + }; +} +var BranchDeletionBatch; +var init_BranchDeleteSummary = __esm2({ + "src/lib/responses/BranchDeleteSummary.ts"() { + BranchDeletionBatch = class { + constructor() { + this.all = []; + this.branches = {}; + this.errors = []; + } + get success() { + return !this.errors.length; + } + }; } - get optionsMap() { - return this._def.optionsMap; +}); +function hasBranchDeletionError(data, processExitCode) { + return processExitCode === 1 && deleteErrorRegex.test(data); +} +var deleteSuccessRegex; +var deleteErrorRegex; +var parsers8; +var parseBranchDeletions; +var init_parse_branch_delete = __esm2({ + "src/lib/parsers/parse-branch-delete.ts"() { + init_BranchDeleteSummary(); + init_utils2(); + deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; + deleteErrorRegex = /^error[^']+'([^']+)'/m; + parsers8 = [ + new LineParser(deleteSuccessRegex, (result, [branch, hash]) => { + const deletion = branchDeletionSuccess(branch, hash); + result.all.push(deletion); + result.branches[branch] = deletion; + }), + new LineParser(deleteErrorRegex, (result, [branch]) => { + const deletion = branchDeletionFailure(branch); + result.errors.push(deletion); + result.all.push(deletion); + result.branches[branch] = deletion; + }) + ]; + parseBranchDeletions = (stdOut, stdErr) => { + return parseStringResponse(new BranchDeletionBatch, parsers8, [stdOut, stdErr]); + }; } - static create(discriminator, options, params) { - const optionsMap = new Map; - for (const type of options) { - const discriminatorValues = getDiscriminator(type.shape[discriminator]); - if (!discriminatorValues.length) { - throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`); +}); +var BranchSummaryResult; +var init_BranchSummary = __esm2({ + "src/lib/responses/BranchSummary.ts"() { + BranchSummaryResult = class { + constructor() { + this.all = []; + this.branches = {}; + this.current = ""; + this.detached = false; } - for (const value of discriminatorValues) { - if (optionsMap.has(value)) { - throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`); + push(status, detached, name, commit, label) { + if (status === "*") { + this.detached = detached; + this.current = name; } - optionsMap.set(value, type); + this.all.push(name); + this.branches[name] = { + current: status === "*", + linkedWorkTree: status === "+", + name, + commit, + label + }; } - } - return new ZodDiscriminatedUnion({ - typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion, - discriminator, - options, - optionsMap, - ...processCreateParams(params) - }); + }; } +}); +function branchStatus(input) { + return input ? input.charAt(0) : ""; } -function mergeValues(a, b) { - const aType = getParsedType(a); - const bType = getParsedType(b); - if (a === b) { - return { valid: true, data: a }; - } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) { - const bKeys = util.objectKeys(b); - const sharedKeys = util.objectKeys(a).filter((key2) => bKeys.indexOf(key2) !== -1); - const newObj = { ...a, ...b }; - for (const key2 of sharedKeys) { - const sharedValue = mergeValues(a[key2], b[key2]); - if (!sharedValue.valid) { - return { valid: false }; +function parseBranchSummary(stdOut) { + return parseStringResponse(new BranchSummaryResult, parsers9, stdOut); +} +var parsers9; +var init_parse_branch = __esm2({ + "src/lib/parsers/parse-branch.ts"() { + init_BranchSummary(); + init_utils2(); + parsers9 = [ + new LineParser(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit, label]) => { + result.push(branchStatus(current), true, name, commit, label); + }), + new LineParser(new RegExp("^([*+]\\s)?(\\S+)\\s+([a-z0-9]+)\\s?(.*)$", "s"), (result, [current, name, commit, label]) => { + result.push(branchStatus(current), false, name, commit, label); + }) + ]; + } +}); +var branch_exports = {}; +__export2(branch_exports, { + branchLocalTask: () => branchLocalTask, + branchTask: () => branchTask, + containsDeleteBranchCommand: () => containsDeleteBranchCommand, + deleteBranchTask: () => deleteBranchTask, + deleteBranchesTask: () => deleteBranchesTask +}); +function containsDeleteBranchCommand(commands) { + const deleteCommands = ["-d", "-D", "--delete"]; + return commands.some((command) => deleteCommands.includes(command)); +} +function branchTask(customArgs) { + const isDelete = containsDeleteBranchCommand(customArgs); + const commands = ["branch", ...customArgs]; + if (commands.length === 1) { + commands.push("-a"); + } + if (!commands.includes("-v")) { + commands.splice(1, 0, "-v"); + } + return { + format: "utf-8", + commands, + parser(stdOut, stdErr) { + if (isDelete) { + return parseBranchDeletions(stdOut, stdErr).all[0]; } - newObj[key2] = sharedValue.data; + return parseBranchSummary(stdOut); } - return { valid: true, data: newObj }; - } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) { - if (a.length !== b.length) { - return { valid: false }; + }; +} +function branchLocalTask() { + const parser4 = parseBranchSummary; + return { + format: "utf-8", + commands: ["branch", "-v"], + parser: parser4 + }; +} +function deleteBranchesTask(branches, forceDelete = false) { + return { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", ...branches], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr); + }, + onError({ exitCode, stdOut }, error, done, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + done(stdOut); } - const newArray = []; - for (let index = 0;index < a.length; index++) { - const itemA = a[index]; - const itemB = b[index]; - const sharedValue = mergeValues(itemA, itemB); - if (!sharedValue.valid) { - return { valid: false }; + }; +} +function deleteBranchTask(branch, forceDelete = false) { + const task = { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr).branches[branch]; + }, + onError({ exitCode, stdErr, stdOut }, error, _3, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); } - newArray.push(sharedValue.data); + throw new GitResponseError(task.parser(bufferToString(stdOut), bufferToString(stdErr)), String(error)); } - return { valid: true, data: newArray }; - } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) { - return { valid: true, data: a }; - } else { - return { valid: false }; + }; + return task; +} +var init_branch = __esm2({ + "src/lib/tasks/branch.ts"() { + init_git_response_error(); + init_parse_branch_delete(); + init_parse_branch(); + init_utils2(); + } +}); +var parseCheckIgnore; +var init_CheckIgnore = __esm2({ + "src/lib/responses/CheckIgnore.ts"() { + parseCheckIgnore = (text) => { + return text.split(/\n/g).map((line) => line.trim()).filter((file) => !!file); + }; } +}); +var check_ignore_exports = {}; +__export2(check_ignore_exports, { + checkIgnoreTask: () => checkIgnoreTask +}); +function checkIgnoreTask(paths) { + return { + commands: ["check-ignore", ...paths], + format: "utf-8", + parser: parseCheckIgnore + }; } - -class ZodIntersection extends ZodType { - _parse(input) { - const { status, ctx } = this._processInputParams(input); - const handleParsed = (parsedLeft, parsedRight) => { - if (isAborted(parsedLeft) || isAborted(parsedRight)) { - return INVALID; - } - const merged = mergeValues(parsedLeft.value, parsedRight.value); - if (!merged.valid) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_intersection_types +var init_check_ignore = __esm2({ + "src/lib/tasks/check-ignore.ts"() { + init_CheckIgnore(); + } +}); +var clone_exports = {}; +__export2(clone_exports, { + cloneMirrorTask: () => cloneMirrorTask, + cloneTask: () => cloneTask +}); +function disallowedCommand(command) { + return /^--upload-pack(=|$)/.test(command); +} +function cloneTask(repo, directory, customArgs) { + const commands = ["clone", ...customArgs]; + filterString(repo) && commands.push(repo); + filterString(directory) && commands.push(directory); + const banned = commands.find(disallowedCommand); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return straightThroughStringTask(commands); +} +function cloneMirrorTask(repo, directory, customArgs) { + append(customArgs, "--mirror"); + return cloneTask(repo, directory, customArgs); +} +var init_clone = __esm2({ + "src/lib/tasks/clone.ts"() { + init_task(); + init_utils2(); + } +}); +function parseFetchResult(stdOut, stdErr) { + const result = { + raw: stdOut, + remote: null, + branches: [], + tags: [], + updated: [], + deleted: [] + }; + return parseStringResponse(result, parsers10, [stdOut, stdErr]); +} +var parsers10; +var init_parse_fetch = __esm2({ + "src/lib/parsers/parse-fetch.ts"() { + init_utils2(); + parsers10 = [ + new LineParser(/From (.+)$/, (result, [remote]) => { + result.remote = remote; + }), + new LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.branches.push({ + name, + tracking }); - return INVALID; - } - if (isDirty(parsedLeft) || isDirty(parsedRight)) { - status.dirty(); - } - return { status: status.value, value: merged.data }; - }; - if (ctx.common.async) { - return Promise.all([ - this._def.left._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: ctx - }), - this._def.right._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: ctx - }) - ]).then(([left, right]) => handleParsed(left, right)); - } else { - return handleParsed(this._def.left._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx - }), this._def.right._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx - })); - } + }), + new LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.tags.push({ + name, + tracking + }); + }), + new LineParser(/- \[deleted]\s+\S+\s*-> (.+)$/, (result, [tracking]) => { + result.deleted.push({ + tracking + }); + }), + new LineParser(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/, (result, [from2, to, name, tracking]) => { + result.updated.push({ + name, + tracking, + to, + from: from2 + }); + }) + ]; } +}); +var fetch_exports = {}; +__export2(fetch_exports, { + fetchTask: () => fetchTask +}); +function disallowedCommand2(command) { + return /^--upload-pack(=|$)/.test(command); } -ZodIntersection.create = (left, right, params) => { - return new ZodIntersection({ - left, - right, - typeName: ZodFirstPartyTypeKind.ZodIntersection, - ...processCreateParams(params) - }); -}; - -class ZodTuple extends ZodType { - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.array) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.array, - received: ctx.parsedType - }); - return INVALID; - } - if (ctx.data.length < this._def.items.length) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: this._def.items.length, - inclusive: true, - exact: false, - type: "array" - }); - return INVALID; - } - const rest = this._def.rest; - if (!rest && ctx.data.length > this._def.items.length) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: this._def.items.length, - inclusive: true, - exact: false, - type: "array" - }); - status.dirty(); - } - const items = [...ctx.data].map((item, itemIndex) => { - const schema = this._def.items[itemIndex] || this._def.rest; - if (!schema) - return null; - return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex)); - }).filter((x) => !!x); - if (ctx.common.async) { - return Promise.all(items).then((results) => { - return ParseStatus.mergeArray(status, results); - }); - } else { - return ParseStatus.mergeArray(status, items); - } +function fetchTask(remote, branch, customArgs) { + const commands = ["fetch", ...customArgs]; + if (remote && branch) { + commands.push(remote, branch); } - get items() { - return this._def.items; + const banned = commands.find(disallowedCommand2); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); } - rest(rest) { - return new ZodTuple({ - ...this._def, - rest - }); + return { + commands, + format: "utf-8", + parser: parseFetchResult + }; +} +var init_fetch = __esm2({ + "src/lib/tasks/fetch.ts"() { + init_parse_fetch(); + init_task(); } +}); +function parseMoveResult(stdOut) { + return parseStringResponse({ moves: [] }, parsers11, stdOut); } -ZodTuple.create = (schemas, params) => { - if (!Array.isArray(schemas)) { - throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); +var parsers11; +var init_parse_move = __esm2({ + "src/lib/parsers/parse-move.ts"() { + init_utils2(); + parsers11 = [ + new LineParser(/^Renaming (.+) to (.+)$/, (result, [from2, to]) => { + result.moves.push({ from: from2, to }); + }) + ]; } - return new ZodTuple({ - items: schemas, - typeName: ZodFirstPartyTypeKind.ZodTuple, - rest: null, - ...processCreateParams(params) - }); -}; - -class ZodRecord extends ZodType { - get keySchema() { - return this._def.keyType; +}); +var move_exports = {}; +__export2(move_exports, { + moveTask: () => moveTask +}); +function moveTask(from2, to) { + return { + commands: ["mv", "-v", ...asArray(from2), to], + format: "utf-8", + parser: parseMoveResult + }; +} +var init_move = __esm2({ + "src/lib/tasks/move.ts"() { + init_parse_move(); + init_utils2(); } - get valueSchema() { - return this._def.valueType; +}); +var pull_exports = {}; +__export2(pull_exports, { + pullTask: () => pullTask +}); +function pullTask(remote, branch, customArgs) { + const commands = ["pull", ...customArgs]; + if (remote && branch) { + commands.splice(1, 0, remote, branch); } - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.object) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.object, - received: ctx.parsedType - }); - return INVALID; + return { + commands, + format: "utf-8", + parser(stdOut, stdErr) { + return parsePullResult(stdOut, stdErr); + }, + onError(result, _error, _done, fail) { + const pullError = parsePullErrorResult(bufferToString(result.stdOut), bufferToString(result.stdErr)); + if (pullError) { + return fail(new GitResponseError(pullError)); + } + fail(_error); } - const pairs = []; - const keyType = this._def.keyType; - const valueType = this._def.valueType; - for (const key2 in ctx.data) { - pairs.push({ - key: keyType._parse(new ParseInputLazyPath(ctx, key2, ctx.path, key2)), - value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key2], ctx.path, key2)), - alwaysSet: key2 in ctx.data - }); + }; +} +var init_pull = __esm2({ + "src/lib/tasks/pull.ts"() { + init_git_response_error(); + init_parse_pull(); + init_utils2(); + } +}); +function parseGetRemotes(text) { + const remotes = {}; + forEach(text, ([name]) => remotes[name] = { name }); + return Object.values(remotes); +} +function parseGetRemotesVerbose(text) { + const remotes = {}; + forEach(text, ([name, url, purpose]) => { + if (!remotes.hasOwnProperty(name)) { + remotes[name] = { + name, + refs: { fetch: "", push: "" } + }; } - if (ctx.common.async) { - return ParseStatus.mergeObjectAsync(status, pairs); - } else { - return ParseStatus.mergeObjectSync(status, pairs); + if (purpose && url) { + remotes[name].refs[purpose.replace(/[^a-z]/g, "")] = url; } + }); + return Object.values(remotes); +} +function forEach(text, handler) { + forEachLineWithContent(text, (line) => handler(line.split(/\s+/))); +} +var init_GetRemoteSummary = __esm2({ + "src/lib/responses/GetRemoteSummary.ts"() { + init_utils2(); } - get element() { - return this._def.valueType; +}); +var remote_exports = {}; +__export2(remote_exports, { + addRemoteTask: () => addRemoteTask, + getRemotesTask: () => getRemotesTask, + listRemotesTask: () => listRemotesTask, + remoteTask: () => remoteTask, + removeRemoteTask: () => removeRemoteTask +}); +function addRemoteTask(remoteName, remoteRepo, customArgs) { + return straightThroughStringTask(["remote", "add", ...customArgs, remoteName, remoteRepo]); +} +function getRemotesTask(verbose) { + const commands = ["remote"]; + if (verbose) { + commands.push("-v"); } - static create(first2, second, third) { - if (second instanceof ZodType) { - return new ZodRecord({ - keyType: first2, - valueType: second, - typeName: ZodFirstPartyTypeKind.ZodRecord, - ...processCreateParams(third) - }); - } - return new ZodRecord({ - keyType: ZodString.create(), - valueType: first2, - typeName: ZodFirstPartyTypeKind.ZodRecord, - ...processCreateParams(second) - }); + return { + commands, + format: "utf-8", + parser: verbose ? parseGetRemotesVerbose : parseGetRemotes + }; +} +function listRemotesTask(customArgs) { + const commands = [...customArgs]; + if (commands[0] !== "ls-remote") { + commands.unshift("ls-remote"); } + return straightThroughStringTask(commands); } - -class ZodMap extends ZodType { - get keySchema() { - return this._def.keyType; +function remoteTask(customArgs) { + const commands = [...customArgs]; + if (commands[0] !== "remote") { + commands.unshift("remote"); } - get valueSchema() { - return this._def.valueType; + return straightThroughStringTask(commands); +} +function removeRemoteTask(remoteName) { + return straightThroughStringTask(["remote", "remove", remoteName]); +} +var init_remote = __esm2({ + "src/lib/tasks/remote.ts"() { + init_GetRemoteSummary(); + init_task(); } - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.map) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.map, - received: ctx.parsedType - }); - return INVALID; - } - const keyType = this._def.keyType; - const valueType = this._def.valueType; - const pairs = [...ctx.data.entries()].map(([key2, value], index) => { - return { - key: keyType._parse(new ParseInputLazyPath(ctx, key2, ctx.path, [index, "key"])), - value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"])) - }; - }); - if (ctx.common.async) { - const finalMap = new Map; - return Promise.resolve().then(async () => { - for (const pair of pairs) { - const key2 = await pair.key; - const value = await pair.value; - if (key2.status === "aborted" || value.status === "aborted") { - return INVALID; - } - if (key2.status === "dirty" || value.status === "dirty") { - status.dirty(); - } - finalMap.set(key2.value, value.value); - } - return { status: status.value, value: finalMap }; - }); - } else { - const finalMap = new Map; - for (const pair of pairs) { - const key2 = pair.key; - const value = pair.value; - if (key2.status === "aborted" || value.status === "aborted") { - return INVALID; - } - if (key2.status === "dirty" || value.status === "dirty") { - status.dirty(); - } - finalMap.set(key2.value, value.value); - } - return { status: status.value, value: finalMap }; - } +}); +var stash_list_exports = {}; +__export2(stash_list_exports, { + stashListTask: () => stashListTask +}); +function stashListTask(opt = {}, customArgs) { + const options = parseLogOptions(opt); + const commands = ["stash", "list", ...options.commands, ...customArgs]; + const parser4 = createListLogSummaryParser(options.splitter, options.fields, logFormatFromCommand(commands)); + return validateLogFormatConfig(commands) || { + commands, + format: "utf-8", + parser: parser4 + }; +} +var init_stash_list = __esm2({ + "src/lib/tasks/stash-list.ts"() { + init_log_format(); + init_parse_list_log_summary(); + init_diff(); + init_log(); + } +}); +var sub_module_exports = {}; +__export2(sub_module_exports, { + addSubModuleTask: () => addSubModuleTask, + initSubModuleTask: () => initSubModuleTask, + subModuleTask: () => subModuleTask, + updateSubModuleTask: () => updateSubModuleTask +}); +function addSubModuleTask(repo, path3) { + return subModuleTask(["add", repo, path3]); +} +function initSubModuleTask(customArgs) { + return subModuleTask(["init", ...customArgs]); +} +function subModuleTask(customArgs) { + const commands = [...customArgs]; + if (commands[0] !== "submodule") { + commands.unshift("submodule"); + } + return straightThroughStringTask(commands); +} +function updateSubModuleTask(customArgs) { + return subModuleTask(["update", ...customArgs]); +} +var init_sub_module = __esm2({ + "src/lib/tasks/sub-module.ts"() { + init_task(); + } +}); +function singleSorted(a, b) { + const aIsNum = isNaN(a); + const bIsNum = isNaN(b); + if (aIsNum !== bIsNum) { + return aIsNum ? 1 : -1; } + return aIsNum ? sorted(a, b) : 0; } -ZodMap.create = (keyType, valueType, params) => { - return new ZodMap({ - valueType, - keyType, - typeName: ZodFirstPartyTypeKind.ZodMap, - ...processCreateParams(params) - }); -}; - -class ZodSet extends ZodType { - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.set) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.set, - received: ctx.parsedType - }); - return INVALID; - } - const def = this._def; - if (def.minSize !== null) { - if (ctx.data.size < def.minSize.value) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: def.minSize.value, - type: "set", - inclusive: true, - exact: false, - message: def.minSize.message - }); - status.dirty(); +function sorted(a, b) { + return a === b ? 0 : a > b ? 1 : -1; +} +function trimmed(input) { + return input.trim(); +} +function toNumber(input) { + if (typeof input === "string") { + return parseInt(input.replace(/^\D+/g, ""), 10) || 0; + } + return 0; +} +var TagList; +var parseTagList; +var init_TagList = __esm2({ + "src/lib/responses/TagList.ts"() { + TagList = class { + constructor(all, latest) { + this.all = all; + this.latest = latest; } - } - if (def.maxSize !== null) { - if (ctx.data.size > def.maxSize.value) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: def.maxSize.value, - type: "set", - inclusive: true, - exact: false, - message: def.maxSize.message + }; + parseTagList = function(data, customSort = false) { + const tags = data.split(` +`).map(trimmed).filter(Boolean); + if (!customSort) { + tags.sort(function(tagA, tagB) { + const partsA = tagA.split("."); + const partsB = tagB.split("."); + if (partsA.length === 1 || partsB.length === 1) { + return singleSorted(toNumber(partsA[0]), toNumber(partsB[0])); + } + for (let i = 0, l = Math.max(partsA.length, partsB.length);i < l; i++) { + const diff = sorted(toNumber(partsA[i]), toNumber(partsB[i])); + if (diff) { + return diff; + } + } + return 0; }); - status.dirty(); } + const latest = customSort ? tags[0] : [...tags].reverse().find((tag) => tag.indexOf(".") >= 0); + return new TagList(tags, latest); + }; + } +}); +var tag_exports = {}; +__export2(tag_exports, { + addAnnotatedTagTask: () => addAnnotatedTagTask, + addTagTask: () => addTagTask, + tagListTask: () => tagListTask +}); +function tagListTask(customArgs = []) { + const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option)); + return { + format: "utf-8", + commands: ["tag", "-l", ...customArgs], + parser(text) { + return parseTagList(text, hasCustomSort); } - const valueType = this._def.valueType; - function finalizeSet(elements2) { - const parsedSet = new Set; - for (const element of elements2) { - if (element.status === "aborted") - return INVALID; - if (element.status === "dirty") - status.dirty(); - parsedSet.add(element.value); - } - return { status: status.value, value: parsedSet }; + }; +} +function addTagTask(name) { + return { + format: "utf-8", + commands: ["tag", name], + parser() { + return { name }; } - const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i))); - if (ctx.common.async) { - return Promise.all(elements).then((elements2) => finalizeSet(elements2)); - } else { - return finalizeSet(elements); + }; +} +function addAnnotatedTagTask(name, tagMessage) { + return { + format: "utf-8", + commands: ["tag", "-a", "-m", tagMessage, name], + parser() { + return { name }; } - } - min(minSize, message) { - return new ZodSet({ - ...this._def, - minSize: { value: minSize, message: errorUtil.toString(message) } - }); - } - max(maxSize, message) { - return new ZodSet({ - ...this._def, - maxSize: { value: maxSize, message: errorUtil.toString(message) } - }); - } - size(size, message) { - return this.min(size, message).max(size, message); - } - nonempty(message) { - return this.min(1, message); - } + }; } -ZodSet.create = (valueType, params) => { - return new ZodSet({ - valueType, - minSize: null, - maxSize: null, - typeName: ZodFirstPartyTypeKind.ZodSet, - ...processCreateParams(params) - }); -}; - -class ZodFunction extends ZodType { - constructor() { - super(...arguments); - this.validate = this.implement; +var init_tag = __esm2({ + "src/lib/tasks/tag.ts"() { + init_TagList(); } - _parse(input) { - const { ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.function) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.function, - received: ctx.parsedType - }); - return INVALID; - } - function makeArgsIssue(args, error) { - return makeIssue({ - data: args, - path: ctx.path, - errorMaps: [ - ctx.common.contextualErrorMap, - ctx.schemaErrorMap, - getErrorMap(), - errorMap - ].filter((x) => !!x), - issueData: { - code: ZodIssueCode.invalid_arguments, - argumentsError: error - } - }); +}); +var require_git = __commonJS2({ + "src/git.js"(exports, module) { + var { GitExecutor: GitExecutor2 } = (init_git_executor(), __toCommonJS(git_executor_exports)); + var { SimpleGitApi: SimpleGitApi2 } = (init_simple_git_api(), __toCommonJS(simple_git_api_exports)); + var { Scheduler: Scheduler2 } = (init_scheduler(), __toCommonJS(scheduler_exports)); + var { configurationErrorTask: configurationErrorTask2 } = (init_task(), __toCommonJS(task_exports)); + var { + asArray: asArray2, + filterArray: filterArray2, + filterPrimitives: filterPrimitives2, + filterString: filterString2, + filterStringOrStringArray: filterStringOrStringArray2, + filterType: filterType2, + getTrailingOptions: getTrailingOptions2, + trailingFunctionArgument: trailingFunctionArgument2, + trailingOptionsArgument: trailingOptionsArgument2 + } = (init_utils2(), __toCommonJS(utils_exports)); + var { applyPatchTask: applyPatchTask2 } = (init_apply_patch(), __toCommonJS(apply_patch_exports)); + var { + branchTask: branchTask2, + branchLocalTask: branchLocalTask2, + deleteBranchesTask: deleteBranchesTask2, + deleteBranchTask: deleteBranchTask2 + } = (init_branch(), __toCommonJS(branch_exports)); + var { checkIgnoreTask: checkIgnoreTask2 } = (init_check_ignore(), __toCommonJS(check_ignore_exports)); + var { checkIsRepoTask: checkIsRepoTask2 } = (init_check_is_repo(), __toCommonJS(check_is_repo_exports)); + var { cloneTask: cloneTask2, cloneMirrorTask: cloneMirrorTask2 } = (init_clone(), __toCommonJS(clone_exports)); + var { cleanWithOptionsTask: cleanWithOptionsTask2, isCleanOptionsArray: isCleanOptionsArray2 } = (init_clean(), __toCommonJS(clean_exports)); + var { diffSummaryTask: diffSummaryTask2 } = (init_diff(), __toCommonJS(diff_exports)); + var { fetchTask: fetchTask2 } = (init_fetch(), __toCommonJS(fetch_exports)); + var { moveTask: moveTask2 } = (init_move(), __toCommonJS(move_exports)); + var { pullTask: pullTask2 } = (init_pull(), __toCommonJS(pull_exports)); + var { pushTagsTask: pushTagsTask2 } = (init_push(), __toCommonJS(push_exports)); + var { + addRemoteTask: addRemoteTask2, + getRemotesTask: getRemotesTask2, + listRemotesTask: listRemotesTask2, + remoteTask: remoteTask2, + removeRemoteTask: removeRemoteTask2 + } = (init_remote(), __toCommonJS(remote_exports)); + var { getResetMode: getResetMode2, resetTask: resetTask2 } = (init_reset(), __toCommonJS(reset_exports)); + var { stashListTask: stashListTask2 } = (init_stash_list(), __toCommonJS(stash_list_exports)); + var { + addSubModuleTask: addSubModuleTask2, + initSubModuleTask: initSubModuleTask2, + subModuleTask: subModuleTask2, + updateSubModuleTask: updateSubModuleTask2 + } = (init_sub_module(), __toCommonJS(sub_module_exports)); + var { addAnnotatedTagTask: addAnnotatedTagTask2, addTagTask: addTagTask2, tagListTask: tagListTask2 } = (init_tag(), __toCommonJS(tag_exports)); + var { straightThroughBufferTask: straightThroughBufferTask2, straightThroughStringTask: straightThroughStringTask2 } = (init_task(), __toCommonJS(task_exports)); + function Git2(options, plugins) { + this._plugins = plugins; + this._executor = new GitExecutor2(options.baseDir, new Scheduler2(options.maxConcurrentProcesses), plugins); + this._trimmed = options.trimmed; } - function makeReturnsIssue(returns, error) { - return makeIssue({ - data: returns, - path: ctx.path, - errorMaps: [ - ctx.common.contextualErrorMap, - ctx.schemaErrorMap, - getErrorMap(), - errorMap - ].filter((x) => !!x), - issueData: { - code: ZodIssueCode.invalid_return_type, - returnTypeError: error - } - }); + (Git2.prototype = Object.create(SimpleGitApi2.prototype)).constructor = Git2; + Git2.prototype.customBinary = function(command) { + this._plugins.reconfigure("binary", command); + return this; + }; + Git2.prototype.env = function(name, value) { + if (arguments.length === 1 && typeof name === "object") { + this._executor.env = name; + } else { + (this._executor.env = this._executor.env || {})[name] = value; + } + return this; + }; + Git2.prototype.stashList = function(options) { + return this._runTask(stashListTask2(trailingOptionsArgument2(arguments) || {}, filterArray2(options) && options || []), trailingFunctionArgument2(arguments)); + }; + function createCloneTask(api, task, repoPath, localPath) { + if (typeof repoPath !== "string") { + return configurationErrorTask2(`git.${api}() requires a string 'repoPath'`); + } + return task(repoPath, filterType2(localPath, filterString2), getTrailingOptions2(arguments)); } - const params = { errorMap: ctx.common.contextualErrorMap }; - const fn = ctx.data; - if (this._def.returns instanceof ZodPromise) { - const me = this; - return OK(async function(...args) { - const error = new ZodError([]); - const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => { - error.addIssue(makeArgsIssue(args, e)); - throw error; - }); - const result = await Reflect.apply(fn, this, parsedArgs); - const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => { - error.addIssue(makeReturnsIssue(result, e)); - throw error; + Git2.prototype.clone = function() { + return this._runTask(createCloneTask("clone", cloneTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mirror = function() { + return this._runTask(createCloneTask("mirror", cloneMirrorTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mv = function(from2, to) { + return this._runTask(moveTask2(from2, to), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutLatestTag = function(then) { + var git = this; + return this.pull(function() { + git.tags(function(err, tags) { + git.checkout(tags.latest, then); }); - return parsedReturns; }); - } else { - const me = this; - return OK(function(...args) { - const parsedArgs = me._def.args.safeParse(args, params); - if (!parsedArgs.success) { - throw new ZodError([makeArgsIssue(args, parsedArgs.error)]); - } - const result = Reflect.apply(fn, this, parsedArgs.data); - const parsedReturns = me._def.returns.safeParse(result, params); - if (!parsedReturns.success) { - throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]); + }; + Git2.prototype.pull = function(remote, branch, options, then) { + return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.fetch = function(remote, branch) { + return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.silent = function(silence) { + console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"); + return this; + }; + Git2.prototype.tags = function(options, then) { + return this._runTask(tagListTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rebase = function() { + return this._runTask(straightThroughStringTask2(["rebase", ...getTrailingOptions2(arguments)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.reset = function(mode) { + return this._runTask(resetTask2(getResetMode2(mode), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revert = function(commit) { + const next = trailingFunctionArgument2(arguments); + if (typeof commit !== "string") { + return this._runTask(configurationErrorTask2("Commit must be a string"), next); + } + return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit]), next); + }; + Git2.prototype.addTag = function(name) { + const task = typeof name === "string" ? addTagTask2(name) : configurationErrorTask2("Git.addTag requires a tag name"); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addAnnotatedTag = function(tagName, tagMessage) { + return this._runTask(addAnnotatedTagTask2(tagName, tagMessage), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranch = function(branchName, forceDelete, then) { + return this._runTask(deleteBranchTask2(branchName, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranches = function(branchNames, forceDelete, then) { + return this._runTask(deleteBranchesTask2(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branch = function(options, then) { + return this._runTask(branchTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branchLocal = function(then) { + return this._runTask(branchLocalTask2(), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.raw = function(commands) { + const createRestCommands = !Array.isArray(commands); + const command = [].slice.call(createRestCommands ? arguments : commands, 0); + for (let i = 0;i < command.length && createRestCommands; i++) { + if (!filterPrimitives2(command[i])) { + command.splice(i, command.length - i); + break; } - return parsedReturns.data; - }); - } - } - parameters() { - return this._def.args; - } - returnType() { - return this._def.returns; - } - args(...items) { - return new ZodFunction({ - ...this._def, - args: ZodTuple.create(items).rest(ZodUnknown.create()) - }); - } - returns(returnType) { - return new ZodFunction({ - ...this._def, - returns: returnType - }); - } - implement(func) { - const validatedFunc = this.parse(func); - return validatedFunc; - } - strictImplement(func) { - const validatedFunc = this.parse(func); - return validatedFunc; - } - static create(args, returns, params) { - return new ZodFunction({ - args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()), - returns: returns || ZodUnknown.create(), - typeName: ZodFirstPartyTypeKind.ZodFunction, - ...processCreateParams(params) - }); - } -} - -class ZodLazy extends ZodType { - get schema() { - return this._def.getter(); + } + command.push(...getTrailingOptions2(arguments, 0, true)); + var next = trailingFunctionArgument2(arguments); + if (!command.length) { + return this._runTask(configurationErrorTask2("Raw: must supply one or more command to execute"), next); + } + return this._runTask(straightThroughStringTask2(command, this._trimmed), next); + }; + Git2.prototype.submoduleAdd = function(repo, path3, then) { + return this._runTask(addSubModuleTask2(repo, path3), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleUpdate = function(args, then) { + return this._runTask(updateSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleInit = function(args, then) { + return this._runTask(initSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.subModule = function(options, then) { + return this._runTask(subModuleTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.listRemote = function() { + return this._runTask(listRemotesTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addRemote = function(remoteName, remoteRepo, then) { + return this._runTask(addRemoteTask2(remoteName, remoteRepo, getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.removeRemote = function(remoteName, then) { + return this._runTask(removeRemoteTask2(remoteName), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.getRemotes = function(verbose, then) { + return this._runTask(getRemotesTask2(verbose === true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.remote = function(options, then) { + return this._runTask(remoteTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.tag = function(options, then) { + const command = getTrailingOptions2(arguments); + if (command[0] !== "tag") { + command.unshift("tag"); + } + return this._runTask(straightThroughStringTask2(command), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.updateServerInfo = function(then) { + return this._runTask(straightThroughStringTask2(["update-server-info"]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.pushTags = function(remote, then) { + const task = pushTagsTask2({ remote: filterType2(remote, filterString2) }, getTrailingOptions2(arguments)); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rm = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "-f", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rmKeepLocal = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "--cached", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.catFile = function(options, then) { + return this._catFile("utf-8", arguments); + }; + Git2.prototype.binaryCatFile = function() { + return this._catFile("buffer", arguments); + }; + Git2.prototype._catFile = function(format, args) { + var handler = trailingFunctionArgument2(args); + var command = ["cat-file"]; + var options = args[0]; + if (typeof options === "string") { + return this._runTask(configurationErrorTask2("Git.catFile: options must be supplied as an array of strings"), handler); + } + if (Array.isArray(options)) { + command.push.apply(command, options); + } + const task = format === "buffer" ? straightThroughBufferTask2(command) : straightThroughStringTask2(command); + return this._runTask(task, handler); + }; + Git2.prototype.diff = function(options, then) { + const task = filterString2(options) ? configurationErrorTask2("git.diff: supplying options as a single string is no longer supported, switch to an array of strings") : straightThroughStringTask2(["diff", ...getTrailingOptions2(arguments)]); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.diffSummary = function() { + return this._runTask(diffSummaryTask2(getTrailingOptions2(arguments, 1)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.applyPatch = function(patches) { + const task = !filterStringOrStringArray2(patches) ? configurationErrorTask2(`git.applyPatch requires one or more string patches as the first argument`) : applyPatchTask2(asArray2(patches), getTrailingOptions2([].slice.call(arguments, 1))); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revparse = function() { + const commands = ["rev-parse", ...getTrailingOptions2(arguments, true)]; + return this._runTask(straightThroughStringTask2(commands, true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.clean = function(mode, options, then) { + const usingCleanOptionsArray = isCleanOptionsArray2(mode); + const cleanMode = usingCleanOptionsArray && mode.join("") || filterType2(mode, filterString2) || ""; + const customArgs = getTrailingOptions2([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0)); + return this._runTask(cleanWithOptionsTask2(cleanMode, customArgs), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.exec = function(then) { + const task = { + commands: [], + format: "utf-8", + parser() { + if (typeof then === "function") { + then(); + } + } + }; + return this._runTask(task); + }; + Git2.prototype.clearQueue = function() { + return this; + }; + Git2.prototype.checkIgnore = function(pathnames, then) { + return this._runTask(checkIgnoreTask2(asArray2(filterType2(pathnames, filterStringOrStringArray2, []))), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkIsRepo = function(checkType, then) { + return this._runTask(checkIsRepoTask2(filterType2(checkType, filterString2)), trailingFunctionArgument2(arguments)); + }; + module.exports = Git2; } - _parse(input) { - const { ctx } = this._processInputParams(input); - const lazySchema = this._def.getter(); - return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx }); +}); +init_pathspec(); +init_git_error(); +var GitConstructError = class extends GitError { + constructor(config, message) { + super(undefined, message); + this.config = config; } -} -ZodLazy.create = (getter, params) => { - return new ZodLazy({ - getter, - typeName: ZodFirstPartyTypeKind.ZodLazy, - ...processCreateParams(params) - }); }; - -class ZodLiteral extends ZodType { - _parse(input) { - if (input.data !== this._def.value) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - received: ctx.data, - code: ZodIssueCode.invalid_literal, - expected: this._def.value - }); - return INVALID; - } - return { status: "valid", value: input.data }; - } - get value() { - return this._def.value; +init_git_error(); +init_git_error(); +var GitPluginError = class extends GitError { + constructor(task, plugin, message) { + super(task, message); + this.task = task; + this.plugin = plugin; + Object.setPrototypeOf(this, new.target.prototype); } -} -ZodLiteral.create = (value, params) => { - return new ZodLiteral({ - value, - typeName: ZodFirstPartyTypeKind.ZodLiteral, - ...processCreateParams(params) - }); }; -function createZodEnum(values, params) { - return new ZodEnum({ - values, - typeName: ZodFirstPartyTypeKind.ZodEnum, - ...processCreateParams(params) - }); -} - -class ZodEnum extends ZodType { - constructor() { - super(...arguments); - _ZodEnum_cache.set(this, undefined); +init_git_response_error(); +init_task_configuration_error(); +init_check_is_repo(); +init_clean(); +init_config(); +init_diff_name_status(); +init_grep(); +init_reset(); +function abortPlugin(signal) { + if (!signal) { + return; } - _parse(input) { - if (typeof input.data !== "string") { - const ctx = this._getOrReturnCtx(input); - const expectedValues = this._def.values; - addIssueToContext(ctx, { - expected: util.joinValues(expectedValues), - received: ctx.parsedType, - code: ZodIssueCode.invalid_type - }); - return INVALID; - } - if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f")) { - __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), "f"); - } - if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f").has(input.data)) { - const ctx = this._getOrReturnCtx(input); - const expectedValues = this._def.values; - addIssueToContext(ctx, { - received: ctx.data, - code: ZodIssueCode.invalid_enum_value, - options: expectedValues - }); - return INVALID; + const onSpawnAfter = { + type: "spawn.after", + action(_data, context) { + function kill() { + context.kill(new GitPluginError(undefined, "abort", "Abort signal received")); + } + signal.addEventListener("abort", kill); + context.spawned.on("close", () => signal.removeEventListener("abort", kill)); } - return OK(input.data); - } - get options() { - return this._def.values; - } - get enum() { - const enumValues = {}; - for (const val of this._def.values) { - enumValues[val] = val; + }; + const onSpawnBefore = { + type: "spawn.before", + action(_data, context) { + if (signal.aborted) { + context.kill(new GitPluginError(undefined, "abort", "Abort already signaled")); + } } - return enumValues; + }; + return [onSpawnBefore, onSpawnAfter]; +} +function isConfigSwitch(arg) { + return typeof arg === "string" && arg.trim().toLowerCase() === "-c"; +} +function preventProtocolOverride(arg, next) { + if (!isConfigSwitch(arg)) { + return; } - get Values() { - const enumValues = {}; - for (const val of this._def.values) { - enumValues[val] = val; - } - return enumValues; + if (!/^\s*protocol(.[a-z]+)?.allow/.test(next)) { + return; } - get Enum() { - const enumValues = {}; - for (const val of this._def.values) { - enumValues[val] = val; - } - return enumValues; + throw new GitPluginError(undefined, "unsafe", "Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol"); +} +function preventUploadPack(arg, method) { + if (/^\s*--(upload|receive)-pack/.test(arg)) { + throw new GitPluginError(undefined, "unsafe", `Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack`); } - extract(values, newDef = this._def) { - return ZodEnum.create(values, { - ...this._def, - ...newDef - }); + if (method === "clone" && /^\s*-u\b/.test(arg)) { + throw new GitPluginError(undefined, "unsafe", `Use of clone with option -u is not permitted without enabling allowUnsafePack`); } - exclude(values, newDef = this._def) { - return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), { - ...this._def, - ...newDef - }); + if (method === "push" && /^\s*--exec\b/.test(arg)) { + throw new GitPluginError(undefined, "unsafe", `Use of push with option --exec is not permitted without enabling allowUnsafePack`); } } -_ZodEnum_cache = new WeakMap; -ZodEnum.create = createZodEnum; - -class ZodNativeEnum extends ZodType { - constructor() { - super(...arguments); - _ZodNativeEnum_cache.set(this, undefined); - } - _parse(input) { - const nativeEnumValues = util.getValidEnumValues(this._def.values); - const ctx = this._getOrReturnCtx(input); - if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) { - const expectedValues = util.objectValues(nativeEnumValues); - addIssueToContext(ctx, { - expected: util.joinValues(expectedValues), - received: ctx.parsedType, - code: ZodIssueCode.invalid_type - }); - return INVALID; - } - if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f")) { - __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), "f"); - } - if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f").has(input.data)) { - const expectedValues = util.objectValues(nativeEnumValues); - addIssueToContext(ctx, { - received: ctx.data, - code: ZodIssueCode.invalid_enum_value, - options: expectedValues +function blockUnsafeOperationsPlugin({ + allowUnsafeProtocolOverride = false, + allowUnsafePack = false +} = {}) { + return { + type: "spawn.args", + action(args, context) { + args.forEach((current, index) => { + const next = index < args.length ? args[index + 1] : ""; + allowUnsafeProtocolOverride || preventProtocolOverride(current, next); + allowUnsafePack || preventUploadPack(current, context.method); }); - return INVALID; + return args; } - return OK(input.data); - } - get enum() { - return this._def.values; - } + }; } -_ZodNativeEnum_cache = new WeakMap; -ZodNativeEnum.create = (values, params) => { - return new ZodNativeEnum({ - values, - typeName: ZodFirstPartyTypeKind.ZodNativeEnum, - ...processCreateParams(params) - }); -}; - -class ZodPromise extends ZodType { - unwrap() { - return this._def.type; - } - _parse(input) { - const { ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.promise, - received: ctx.parsedType - }); - return INVALID; +init_utils2(); +function commandConfigPrefixingPlugin(configuration) { + const prefix = prefixedArray(configuration, "-c"); + return { + type: "spawn.args", + action(data) { + return [...prefix, ...data]; } - const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data); - return OK(promisified.then((data) => { - return this._def.type.parseAsync(data, { - path: ctx.path, - errorMap: ctx.common.contextualErrorMap - }); - })); - } + }; } -ZodPromise.create = (schema, params) => { - return new ZodPromise({ - type: schema, - typeName: ZodFirstPartyTypeKind.ZodPromise, - ...processCreateParams(params) - }); -}; - -class ZodEffects extends ZodType { - innerType() { - return this._def.schema; - } - sourceType() { - return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema; - } - _parse(input) { - const { status, ctx } = this._processInputParams(input); - const effect = this._def.effect || null; - const checkCtx = { - addIssue: (arg) => { - addIssueToContext(ctx, arg); - if (arg.fatal) { - status.abort(); - } else { - status.dirty(); - } +init_utils2(); +var never = import_promise_deferred2.deferred().promise; +function completionDetectionPlugin({ + onClose = true, + onExit: onExit2 = 50 +} = {}) { + function createEvents() { + let exitCode = -1; + const events = { + close: import_promise_deferred2.deferred(), + closeTimeout: import_promise_deferred2.deferred(), + exit: import_promise_deferred2.deferred(), + exitTimeout: import_promise_deferred2.deferred() + }; + const result = Promise.race([ + onClose === false ? never : events.closeTimeout.promise, + onExit2 === false ? never : events.exitTimeout.promise + ]); + configureTimeout(onClose, events.close, events.closeTimeout); + configureTimeout(onExit2, events.exit, events.exitTimeout); + return { + close(code) { + exitCode = code; + events.close.done(); }, - get path() { - return ctx.path; - } + exit(code) { + exitCode = code; + events.exit.done(); + }, + get exitCode() { + return exitCode; + }, + result }; - checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx); - if (effect.type === "preprocess") { - const processed = effect.transform(ctx.data, checkCtx); - if (ctx.common.async) { - return Promise.resolve(processed).then(async (processed2) => { - if (status.value === "aborted") - return INVALID; - const result = await this._def.schema._parseAsync({ - data: processed2, - path: ctx.path, - parent: ctx - }); - if (result.status === "aborted") - return INVALID; - if (result.status === "dirty") - return DIRTY(result.value); - if (status.value === "dirty") - return DIRTY(result.value); - return result; - }); - } else { - if (status.value === "aborted") - return INVALID; - const result = this._def.schema._parseSync({ - data: processed, - path: ctx.path, - parent: ctx - }); - if (result.status === "aborted") - return INVALID; - if (result.status === "dirty") - return DIRTY(result.value); - if (status.value === "dirty") - return DIRTY(result.value); - return result; - } - } - if (effect.type === "refinement") { - const executeRefinement = (acc) => { - const result = effect.refinement(acc, checkCtx); - if (ctx.common.async) { - return Promise.resolve(result); - } - if (result instanceof Promise) { - throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); - } - return acc; - }; - if (ctx.common.async === false) { - const inner = this._def.schema._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx - }); - if (inner.status === "aborted") - return INVALID; - if (inner.status === "dirty") - status.dirty(); - executeRefinement(inner.value); - return { status: status.value, value: inner.value }; - } else { - return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => { - if (inner.status === "aborted") - return INVALID; - if (inner.status === "dirty") - status.dirty(); - return executeRefinement(inner.value).then(() => { - return { status: status.value, value: inner.value }; - }); - }); - } + } + function configureTimeout(flag, event, timeout) { + if (flag === false) { + return; } - if (effect.type === "transform") { - if (ctx.common.async === false) { - const base = this._def.schema._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx - }); - if (!isValid(base)) - return base; - const result = effect.transform(base.value, checkCtx); - if (result instanceof Promise) { - throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`); + (flag === true ? event.promise : event.promise.then(() => delay(flag))).then(timeout.done); + } + return { + type: "spawn.after", + action(_0, _1) { + return __async(this, arguments, function* (_data, { spawned, close }) { + var _a3, _b; + const events = createEvents(); + let deferClose = true; + let quickClose = () => void (deferClose = false); + (_a3 = spawned.stdout) == null || _a3.on("data", quickClose); + (_b = spawned.stderr) == null || _b.on("data", quickClose); + spawned.on("error", quickClose); + spawned.on("close", (code) => events.close(code)); + spawned.on("exit", (code) => events.exit(code)); + try { + yield events.result; + if (deferClose) { + yield delay(50); + } + close(events.exitCode); + } catch (err) { + close(events.exitCode, err); } - return { status: status.value, value: result }; - } else { - return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => { - if (!isValid(base)) - return base; - return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result })); - }); - } + }); } - util.assertNever(effect); - } + }; } -ZodEffects.create = (schema, effect, params) => { - return new ZodEffects({ - schema, - typeName: ZodFirstPartyTypeKind.ZodEffects, - effect, - ...processCreateParams(params) - }); -}; -ZodEffects.createWithPreprocess = (preprocess, schema, params) => { - return new ZodEffects({ - schema, - effect: { type: "preprocess", transform: preprocess }, - typeName: ZodFirstPartyTypeKind.ZodEffects, - ...processCreateParams(params) - }); -}; - -class ZodOptional extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType === ZodParsedType.undefined) { - return OK(undefined); - } - return this._def.innerType._parse(input); - } - unwrap() { - return this._def.innerType; - } +init_utils2(); +var WRONG_NUMBER_ERR = `Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings`; +var WRONG_CHARS_ERR = `Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option`; +function isBadArgument(arg) { + return !arg || !/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test(arg); } -ZodOptional.create = (type, params) => { - return new ZodOptional({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodOptional, - ...processCreateParams(params) - }); -}; - -class ZodNullable extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType === ZodParsedType.null) { - return OK(null); - } - return this._def.innerType._parse(input); +function toBinaryConfig(input, allowUnsafe) { + if (input.length < 1 || input.length > 2) { + throw new GitPluginError(undefined, "binary", WRONG_NUMBER_ERR); } - unwrap() { - return this._def.innerType; + const isBad = input.some(isBadArgument); + if (isBad) { + if (allowUnsafe) { + console.warn(WRONG_CHARS_ERR); + } else { + throw new GitPluginError(undefined, "binary", WRONG_CHARS_ERR); + } } + const [binary, prefix] = input; + return { + binary, + prefix + }; } -ZodNullable.create = (type, params) => { - return new ZodNullable({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodNullable, - ...processCreateParams(params) +function customBinaryPlugin(plugins, input = ["git"], allowUnsafe = false) { + let config = toBinaryConfig(asArray(input), allowUnsafe); + plugins.on("binary", (input2) => { + config = toBinaryConfig(asArray(input2), allowUnsafe); }); -}; - -class ZodDefault extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - let data = ctx.data; - if (ctx.parsedType === ZodParsedType.undefined) { - data = this._def.defaultValue(); + plugins.append("spawn.binary", () => { + return config.binary; + }); + plugins.append("spawn.args", (data) => { + return config.prefix ? [config.prefix, ...data] : data; + }); +} +init_git_error(); +function isTaskError(result) { + return !!(result.exitCode && result.stdErr.length); +} +function getErrorMessage(result) { + return Buffer.concat([...result.stdOut, ...result.stdErr]); +} +function errorDetectionHandler(overwrite = false, isError = isTaskError, errorMessage = getErrorMessage) { + return (error, result) => { + if (!overwrite && error || !isError(result)) { + return error; } - return this._def.innerType._parse({ - data, - path: ctx.path, - parent: ctx - }); - } - removeDefault() { - return this._def.innerType; - } + return errorMessage(result); + }; } -ZodDefault.create = (type, params) => { - return new ZodDefault({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodDefault, - defaultValue: typeof params.default === "function" ? params.default : () => params.default, - ...processCreateParams(params) - }); -}; - -class ZodCatch extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - const newCtx = { - ...ctx, - common: { - ...ctx.common, - issues: [] - } - }; - const result = this._def.innerType._parse({ - data: newCtx.data, - path: newCtx.path, - parent: { - ...newCtx - } - }); - if (isAsync(result)) { - return result.then((result2) => { - return { - status: "valid", - value: result2.status === "valid" ? result2.value : this._def.catchValue({ - get error() { - return new ZodError(newCtx.common.issues); - }, - input: newCtx.data - }) - }; +function errorDetectionPlugin(config) { + return { + type: "task.error", + action(data, context) { + const error = config(data.error, { + stdErr: context.stdErr, + stdOut: context.stdOut, + exitCode: context.exitCode }); - } else { + if (Buffer.isBuffer(error)) { + return { error: new GitError(undefined, error.toString("utf-8")) }; + } return { - status: "valid", - value: result.status === "valid" ? result.value : this._def.catchValue({ - get error() { - return new ZodError(newCtx.common.issues); - }, - input: newCtx.data - }) + error }; } - } - removeCatch() { - return this._def.innerType; - } -} -ZodCatch.create = (type, params) => { - return new ZodCatch({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodCatch, - catchValue: typeof params.catch === "function" ? params.catch : () => params.catch, - ...processCreateParams(params) - }); -}; - -class ZodNaN extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.nan) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.nan, - received: ctx.parsedType - }); - return INVALID; - } - return { status: "valid", value: input.data }; - } + }; } -ZodNaN.create = (params) => { - return new ZodNaN({ - typeName: ZodFirstPartyTypeKind.ZodNaN, - ...processCreateParams(params) - }); -}; -var BRAND = Symbol("zod_brand"); - -class ZodBranded extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - const data = ctx.data; - return this._def.type._parse({ - data, - path: ctx.path, - parent: ctx - }); +init_utils2(); +var PluginStore = class { + constructor() { + this.plugins = /* @__PURE__ */ new Set; + this.events = new EventEmitter; } - unwrap() { - return this._def.type; + on(type, listener) { + this.events.on(type, listener); } -} - -class ZodPipeline extends ZodType { - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.common.async) { - const handleAsync = async () => { - const inResult = await this._def.in._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: ctx - }); - if (inResult.status === "aborted") - return INVALID; - if (inResult.status === "dirty") { - status.dirty(); - return DIRTY(inResult.value); - } else { - return this._def.out._parseAsync({ - data: inResult.value, - path: ctx.path, - parent: ctx - }); - } - }; - return handleAsync(); - } else { - const inResult = this._def.in._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx - }); - if (inResult.status === "aborted") - return INVALID; - if (inResult.status === "dirty") { - status.dirty(); - return { - status: "dirty", - value: inResult.value - }; - } else { - return this._def.out._parseSync({ - data: inResult.value, - path: ctx.path, - parent: ctx - }); - } - } + reconfigure(type, data) { + this.events.emit(type, data); } - static create(a, b) { - return new ZodPipeline({ - in: a, - out: b, - typeName: ZodFirstPartyTypeKind.ZodPipeline - }); + append(type, action) { + const plugin = append(this.plugins, { type, action }); + return () => this.plugins.delete(plugin); } -} - -class ZodReadonly extends ZodType { - _parse(input) { - const result = this._def.innerType._parse(input); - const freeze = (data) => { - if (isValid(data)) { - data.value = Object.freeze(data.value); - } - return data; + add(plugin) { + const plugins = []; + asArray(plugin).forEach((plugin2) => plugin2 && this.plugins.add(append(plugins, plugin2))); + return () => { + plugins.forEach((plugin2) => this.plugins.delete(plugin2)); }; - return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result); } - unwrap() { - return this._def.innerType; + exec(type, data, context) { + let output = data; + const contextual = Object.freeze(Object.create(context)); + for (const plugin of this.plugins) { + if (plugin.type === type) { + output = plugin.action(output, contextual); + } + } + return output; } -} -ZodReadonly.create = (type, params) => { - return new ZodReadonly({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodReadonly, - ...processCreateParams(params) - }); }; -function custom(check2, params = {}, fatal) { - if (check2) - return ZodAny.create().superRefine((data, ctx) => { - var _a2, _b; - if (!check2(data)) { - const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params; - const _fatal = (_b = (_a2 = p.fatal) !== null && _a2 !== undefined ? _a2 : fatal) !== null && _b !== undefined ? _b : true; - const p2 = typeof p === "string" ? { message: p } : p; - ctx.addIssue({ code: "custom", ...p2, fatal: _fatal }); +init_utils2(); +function progressMonitorPlugin(progress) { + const progressCommand = "--progress"; + const progressMethods = ["checkout", "clone", "fetch", "pull", "push"]; + const onProgress = { + type: "spawn.after", + action(_data, context) { + var _a2; + if (!context.commands.includes(progressCommand)) { + return; } - }); - return ZodAny.create(); -} -var late = { - object: ZodObject.lazycreate -}; -var ZodFirstPartyTypeKind; -(function(ZodFirstPartyTypeKind2) { - ZodFirstPartyTypeKind2["ZodString"] = "ZodString"; - ZodFirstPartyTypeKind2["ZodNumber"] = "ZodNumber"; - ZodFirstPartyTypeKind2["ZodNaN"] = "ZodNaN"; - ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt"; - ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean"; - ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate"; - ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol"; - ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined"; - ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull"; - ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny"; - ZodFirstPartyTypeKind2["ZodUnknown"] = "ZodUnknown"; - ZodFirstPartyTypeKind2["ZodNever"] = "ZodNever"; - ZodFirstPartyTypeKind2["ZodVoid"] = "ZodVoid"; - ZodFirstPartyTypeKind2["ZodArray"] = "ZodArray"; - ZodFirstPartyTypeKind2["ZodObject"] = "ZodObject"; - ZodFirstPartyTypeKind2["ZodUnion"] = "ZodUnion"; - ZodFirstPartyTypeKind2["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion"; - ZodFirstPartyTypeKind2["ZodIntersection"] = "ZodIntersection"; - ZodFirstPartyTypeKind2["ZodTuple"] = "ZodTuple"; - ZodFirstPartyTypeKind2["ZodRecord"] = "ZodRecord"; - ZodFirstPartyTypeKind2["ZodMap"] = "ZodMap"; - ZodFirstPartyTypeKind2["ZodSet"] = "ZodSet"; - ZodFirstPartyTypeKind2["ZodFunction"] = "ZodFunction"; - ZodFirstPartyTypeKind2["ZodLazy"] = "ZodLazy"; - ZodFirstPartyTypeKind2["ZodLiteral"] = "ZodLiteral"; - ZodFirstPartyTypeKind2["ZodEnum"] = "ZodEnum"; - ZodFirstPartyTypeKind2["ZodEffects"] = "ZodEffects"; - ZodFirstPartyTypeKind2["ZodNativeEnum"] = "ZodNativeEnum"; - ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional"; - ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable"; - ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault"; - ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch"; - ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise"; - ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded"; - ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline"; - ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly"; -})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); -var instanceOfType = (cls, params = { - message: `Input not instance of ${cls.name}` -}) => custom((data) => data instanceof cls, params); -var stringType = ZodString.create; -var numberType = ZodNumber.create; -var nanType = ZodNaN.create; -var bigIntType = ZodBigInt.create; -var booleanType = ZodBoolean.create; -var dateType = ZodDate.create; -var symbolType = ZodSymbol.create; -var undefinedType = ZodUndefined.create; -var nullType = ZodNull.create; -var anyType = ZodAny.create; -var unknownType = ZodUnknown.create; -var neverType = ZodNever.create; -var voidType = ZodVoid.create; -var arrayType = ZodArray.create; -var objectType = ZodObject.create; -var strictObjectType = ZodObject.strictCreate; -var unionType = ZodUnion.create; -var discriminatedUnionType = ZodDiscriminatedUnion.create; -var intersectionType = ZodIntersection.create; -var tupleType = ZodTuple.create; -var recordType = ZodRecord.create; -var mapType = ZodMap.create; -var setType = ZodSet.create; -var functionType = ZodFunction.create; -var lazyType = ZodLazy.create; -var literalType = ZodLiteral.create; -var enumType = ZodEnum.create; -var nativeEnumType = ZodNativeEnum.create; -var promiseType = ZodPromise.create; -var effectsType = ZodEffects.create; -var optionalType = ZodOptional.create; -var nullableType = ZodNullable.create; -var preprocessType = ZodEffects.createWithPreprocess; -var pipelineType = ZodPipeline.create; -var ostring = () => stringType().optional(); -var onumber = () => numberType().optional(); -var oboolean = () => booleanType().optional(); -var coerce = { - string: (arg) => ZodString.create({ ...arg, coerce: true }), - number: (arg) => ZodNumber.create({ ...arg, coerce: true }), - boolean: (arg) => ZodBoolean.create({ - ...arg, - coerce: true - }), - bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }), - date: (arg) => ZodDate.create({ ...arg, coerce: true }) -}; -var NEVER = INVALID; -var z = /* @__PURE__ */ Object.freeze({ - __proto__: null, - defaultErrorMap: errorMap, - setErrorMap, - getErrorMap, - makeIssue, - EMPTY_PATH, - addIssueToContext, - ParseStatus, - INVALID, - DIRTY, - OK, - isAborted, - isDirty, - isValid, - isAsync, - get util() { - return util; - }, - get objectUtil() { - return objectUtil; - }, - ZodParsedType, - getParsedType, - ZodType, - datetimeRegex, - ZodString, - ZodNumber, - ZodBigInt, - ZodBoolean, - ZodDate, - ZodSymbol, - ZodUndefined, - ZodNull, - ZodAny, - ZodUnknown, - ZodNever, - ZodVoid, - ZodArray, - ZodObject, - ZodUnion, - ZodDiscriminatedUnion, - ZodIntersection, - ZodTuple, - ZodRecord, - ZodMap, - ZodSet, - ZodFunction, - ZodLazy, - ZodLiteral, - ZodEnum, - ZodNativeEnum, - ZodPromise, - ZodEffects, - ZodTransformer: ZodEffects, - ZodOptional, - ZodNullable, - ZodDefault, - ZodCatch, - ZodNaN, - BRAND, - ZodBranded, - ZodPipeline, - ZodReadonly, - custom, - Schema: ZodType, - ZodSchema: ZodType, - late, - get ZodFirstPartyTypeKind() { - return ZodFirstPartyTypeKind; - }, - coerce, - any: anyType, - array: arrayType, - bigint: bigIntType, - boolean: booleanType, - date: dateType, - discriminatedUnion: discriminatedUnionType, - effect: effectsType, - enum: enumType, - function: functionType, - instanceof: instanceOfType, - intersection: intersectionType, - lazy: lazyType, - literal: literalType, - map: mapType, - nan: nanType, - nativeEnum: nativeEnumType, - never: neverType, - null: nullType, - nullable: nullableType, - number: numberType, - object: objectType, - oboolean, - onumber, - optional: optionalType, - ostring, - pipeline: pipelineType, - preprocess: preprocessType, - promise: promiseType, - record: recordType, - set: setType, - strictObject: strictObjectType, - string: stringType, - symbol: symbolType, - transformer: effectsType, - tuple: tupleType, - undefined: undefinedType, - union: unionType, - unknown: unknownType, - void: voidType, - NEVER, - ZodIssueCode, - quotelessJson, - ZodError -}); - -// src/commands/components/commands/add/utils/handle-error.ts -function handleError(error) { - logger.error(`something went wrong. please check the error below for more details.`); - logger.error(`if the problem persists, please open an issue on github.`); - logger.error(""); - if (typeof error === "string") { - logger.error(error); - logger.break(); - process.exit(1); + (_a2 = context.spawned.stderr) == null || _a2.on("data", (chunk) => { + const message = /^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(chunk.toString("utf8")); + if (!message) { + return; + } + progress({ + method: context.method, + stage: progressEventStage(message[1]), + progress: asNumber(message[2]), + processed: asNumber(message[3]), + total: asNumber(message[4]) + }); + }); + } + }; + const onArgs = { + type: "spawn.args", + action(args, context) { + if (!progressMethods.includes(context.method)) { + return args; + } + return including(args, progressCommand); + } + }; + return [onArgs, onProgress]; +} +function progressEventStage(input) { + return String(input.toLowerCase().split(" ", 1)) || "unknown"; +} +init_utils2(); +function spawnOptionsPlugin(spawnOptions) { + const options = pick(spawnOptions, ["uid", "gid"]); + return { + type: "spawn.options", + action(data) { + return __spreadValues(__spreadValues({}, options), data); + } + }; +} +function timeoutPlugin({ + block, + stdErr = true, + stdOut = true +}) { + if (block > 0) { + return { + type: "spawn.after", + action(_data, context) { + var _a2, _b; + let timeout; + function wait() { + timeout && clearTimeout(timeout); + timeout = setTimeout(kill, block); + } + function stop() { + var _a3, _b2; + (_a3 = context.spawned.stdout) == null || _a3.off("data", wait); + (_b2 = context.spawned.stderr) == null || _b2.off("data", wait); + context.spawned.off("exit", stop); + context.spawned.off("close", stop); + timeout && clearTimeout(timeout); + } + function kill() { + stop(); + context.kill(new GitPluginError(undefined, "timeout", `block timeout reached`)); + } + stdOut && ((_a2 = context.spawned.stdout) == null || _a2.on("data", wait)); + stdErr && ((_b = context.spawned.stderr) == null || _b.on("data", wait)); + context.spawned.on("exit", stop); + context.spawned.on("close", stop); + wait(); + } + }; } - if (error instanceof z.ZodError) { - logger.error("validation failed:"); - for (const [key2, value] of Object.entries(error.flatten().fieldErrors)) { - logger.error(`- ${highlighter.info(key2)}: ${value}`); +} +init_pathspec(); +function suffixPathsPlugin() { + return { + type: "spawn.args", + action(data) { + const prefix = []; + let suffix; + function append2(args) { + (suffix = suffix || []).push(...args); + } + for (let i = 0;i < data.length; i++) { + const param = data[i]; + if (isPathSpec(param)) { + append2(toPaths(param)); + continue; + } + if (param === "--") { + append2(data.slice(i + 1).flatMap((item) => isPathSpec(item) && toPaths(item) || item)); + break; + } + prefix.push(param); + } + return !suffix ? prefix : [...prefix, "--", ...suffix.map(String)]; } - logger.break(); - process.exit(1); + }; +} +init_utils2(); +var Git = require_git(); +function gitInstanceFactory(baseDir, options) { + var _a2; + const plugins = new PluginStore; + const config = createInstanceConfig(baseDir && (typeof baseDir === "string" ? { baseDir } : baseDir) || {}, options); + if (!folderExists(config.baseDir)) { + throw new GitConstructError(config, `Cannot use simple-git on a directory that does not exist`); } - if (error instanceof Error) { - logger.error(error.message); - logger.break(); - process.exit(1); + if (Array.isArray(config.config)) { + plugins.add(commandConfigPrefixingPlugin(config.config)); } - logger.break(); - process.exit(1); + plugins.add(blockUnsafeOperationsPlugin(config.unsafe)); + plugins.add(suffixPathsPlugin()); + plugins.add(completionDetectionPlugin(config.completion)); + config.abort && plugins.add(abortPlugin(config.abort)); + config.progress && plugins.add(progressMonitorPlugin(config.progress)); + config.timeout && plugins.add(timeoutPlugin(config.timeout)); + config.spawnOptions && plugins.add(spawnOptionsPlugin(config.spawnOptions)); + plugins.add(errorDetectionPlugin(errorDetectionHandler(true))); + config.errors && plugins.add(errorDetectionPlugin(config.errors)); + customBinaryPlugin(plugins, config.binary, (_a2 = config.unsafe) == null ? undefined : _a2.allowUnsafeCustomBinary); + return new Git(config, plugins); } -var ERRORS = { - MISSING_DIR_OR_EMPTY_PIPE: "1", - COMPONENT_NOT_FOUND: "2", - BUILD_MISSING_REGISTRY_FILE: "3" -}; +init_git_response_error(); +var esm_default13 = gitInstanceFactory; -// src/commands/create/index.ts +// src/commands/pipe/create.ts process.removeAllListeners("warning"); var PIPE_ADDITIONS = { dependencies: { @@ -61831,10 +62284,10 @@ var PIPE_ADDITIONS = { } }; async function downloadAndExtractSubdir(subdir, destPath) { - const tempDir = path.join(destPath, "_temp"); + const tempDir = path3.join(destPath, "_temp"); await import_fs_extra.default.ensureDir(tempDir); - await esm_default12().clone("https://github.com/mediar-ai/screenpipe", tempDir); - const sourcePath = path.join(tempDir, subdir); + await esm_default13().clone("https://github.com/mediar-ai/screenpipe", tempDir); + const sourcePath = path3.join(tempDir, subdir); await import_fs_extra.default.copy(sourcePath, destPath); await import_fs_extra.default.remove(tempDir); } @@ -61863,7 +62316,7 @@ welcome to screenpipe! \uD83D\uDE80 const spinner2 = ora("creating your pipe...").start(); try { await downloadAndExtractSubdir("pipes/obsidian", directory); - const pkgPath = path.join(process.cwd(), directory, "package.json"); + const pkgPath = path3.join(process.cwd(), directory, "package.json"); const pkg = await import_fs_extra.default.readJson(pkgPath); pkg.name = pipeName; pkg.dependencies = { @@ -61889,6 +62342,13 @@ when you're ready, you can ship your pipe to the app by adding it to the pipe st handleError(error); } }); + +// src/commands/pipe/index.ts +var pipeCommands = new Command().name("pipe").description("create and manage pipes"); +pipeCommands.addCommand(createPipeCommand); +pipeCommands.addCommand(registerCommand); +pipeCommands.addCommand(publishCommand); +pipeCommands.addCommand(listVersionsCommand); // src/commands/app/create.ts init_esm13(); init_esm14(); @@ -61899,7 +62359,7 @@ var TEMPLATE_REPOS = { var createAppCommand = new Command().name("create").description("create a new desktop app project").option("-a, --name ", "the name of your app (optional)").option("-t, --appType ", "the type of desktop app (electron or tauri)").action(async (options) => { let { name, appType } = options; if (!appType) { - let { appTypePrompt } = await esm_default13.prompt({ + let { appTypePrompt } = await esm_default12.prompt({ name: "appTypePrompt", type: "select", message: "what type of desktop app would you like to create?", @@ -61925,7 +62385,7 @@ var createAppCommand = new Command().name("create").description("create a new de const loadingSpinner = spinner("creating your desktop app..."); try { loadingSpinner.start(); - await esm_default12().clone(TEMPLATE_REPOS[appType], name); + await esm_default13().clone(TEMPLATE_REPOS[appType], name); loadingSpinner.succeed("Project created successfully! \uD83C\uDF89"); logger.info(` credits to the template authors:`); @@ -61951,456 +62411,6 @@ when you're ready, you can deploy your app following the documentation for the r // src/commands/app/index.ts var appCommands = new Command().name("app").description("create a new screenpipe application using default templates"); appCommands.addCommand(createAppCommand); -// src/constants.ts -var API_BASE_URL = process.env.SC_API_BASE_URL || "https://screenpi.pe"; - -// src/utils/credentials.ts -import os2 from "os"; -import fs2 from "fs"; -import path2 from "path"; - -class Credentials { - static configDir = path2.join(os2.homedir(), ".screenpipe"); - static configFile = path2.join(this.configDir, "config-developer.json"); - static getApiKey() { - try { - if (!fs2.existsSync(this.configFile)) { - return null; - } - const config = JSON.parse(fs2.readFileSync(this.configFile, "utf-8")); - return config.apiKey || null; - } catch (error) { - return null; - } - } - static setApiKey(apiKey, developerId) { - if (!fs2.existsSync(this.configDir)) { - fs2.mkdirSync(this.configDir); - } - fs2.writeFileSync(this.configFile, JSON.stringify({ - apiKey, - developerId - }, null, 2)); - } - static clearCredentials() { - if (fs2.existsSync(this.configFile)) { - fs2.unlinkSync(this.configFile); - } - } -} - -// src/commands/login.ts -var loginCommand = new Command().name("login").description("login with an API key").requiredOption("--apiKey ", "API key to login with").action(async (opts) => { - try { - logger.info(` -${symbols.info} validating API key...`); - const response = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { - method: "GET", - headers: { - Authorization: `Bearer ${opts.apiKey}`, - "Content-Type": "application/json" - } - }); - if (!response.ok) { - const error = await response.json(); - throw new Error(`Failed to validate API key ${error.error}`); - } - const data = await response.json(); - if (data.data.needs_name) { - const inquirer2 = (await Promise.resolve().then(() => (init_esm14(), exports_esm))).default; - const { developerName } = await inquirer2.prompt([ - { - type: "input", - name: "developerName", - message: "enter your developer name:", - validate: (input) => { - if (input.length < 2) { - return "developer name must be at least 2 characters"; - } - if (input.length > 50) { - return "developer name must be less than 50 characters"; - } - return true; - } - } - ]); - const updateResponse = await fetch(`${API_BASE_URL}/api/plugins/dev-status`, { - method: "POST", - headers: { - Authorization: `Bearer ${opts.apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ developer_name: developerName }) - }); - if (!updateResponse.ok) { - const error = await updateResponse.json(); - throw new Error(`failed to set developer name: ${error.error}`); - } - const updateData = await updateResponse.json(); - data.data.developer_name = updateData.data.developer_name; - } - logger.info(` -${symbols.success} successfully logged in!`); - console.log(colors8.listItem(`${colors8.label("developer id")} ${data.data.developer_id}`)); - console.log(colors8.listItem(`${colors8.label("developer name")} ${data.data.developer_name}`)); - Credentials.setApiKey(opts.apiKey, data.data.developer_id); - } catch (error) { - if (error instanceof Error) { - handleError(` -${symbols.error} login failed: ${error.message}`); - } else { - handleError(` -${symbols.error} login failed with unexpected error`); - } - process.exit(1); - } -}); -// src/commands/logout.ts -var logoutCommand = new Command().name("logout").description("end current session").action(async () => { - Credentials.clearCredentials(); - logger.success(` -${symbols.success} successfully logged out`); - logger.info(`${symbols.info} thanks for using screenpipe! come back soon.`); -}); -// src/commands/publish.ts -import fs3 from "fs"; -import path3 from "path"; -var import_archiver = __toESM(require_archiver(), 1); -var import_ignore = __toESM(require_ignore2(), 1); -import crypto from "crypto"; -var NEXTJS_FILES = { - required: ["package.json", ".next"], - optional: [ - "package-lock.json", - "bun.lockb", - "next.config.js", - "next.config.mjs" - ] -}; -var MAX_FILE_SIZE = 500 * 1024 * 1024; -async function archiveNextJsProject(archive) { - const { required, optional } = NEXTJS_FILES; - const missingFiles = required.filter((file) => !fs3.existsSync(file)); - if (missingFiles.length > 0) { - throw new Error(`Required files not found: ${missingFiles.join(", ")}. ` + "Make sure you're in the correct directory and the project is built."); - } - for (const file of required) { - if (file === ".next") { - archive.directory(".next", ".next", (entry) => { - return entry.name.startsWith(".next/cache/") ? false : entry; - }); - } else { - archive.file(file, { name: file }); - } - } - optional.filter((file) => fs3.existsSync(file)).forEach((file) => { - archive.file(file, { name: file }); - }); -} -function archiveStandardProject(archive, ig) { - archive.glob("**/*", { - ignore: [".git/**", "node_modules/**", ".next/cache/**"], - dot: true, - nodir: false, - mark: true - }); -} -async function retryFetch(url, options, maxRetries = 3, baseDelay = 1000) { - for (let attempt = 1;attempt <= maxRetries; attempt++) { - try { - const response = await fetch(url, options); - if (response.ok) - return response; - if (attempt === maxRetries) { - throw new Error(`Failed after ${maxRetries} attempts: ${await response.text()}`); - } - } catch (error) { - if (attempt === maxRetries) - throw error; - } - const delay2 = baseDelay * Math.pow(2, attempt - 1); - await new Promise((resolve) => setTimeout(resolve, delay2)); - } - throw new Error("Retry failed"); -} -var publishCommand = new Command("publish").description("publish or update a pipe to the store").requiredOption("-n, --name ", "name of the pipe").option("-v, --verbose", "enable verbose logging", false).action(async (opts) => { - try { - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} starting publish command...`)); - } - const apiKey = Credentials.getApiKey(); - if (!apiKey) { - console.error(colors8.error(`${symbols.error} Not logged in. Please login first using ${colors8.highlight("screenpipe login")}`)); - process.exit(1); - } - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} reading package.json...`)); - } - let packageJson; - try { - packageJson = JSON.parse(fs3.readFileSync("package.json", "utf-8")); - } catch (error) { - console.error(colors8.error(`${symbols.error} Failed to read package.json. Make sure you're in the correct directory.`)); - process.exit(1); - } - if (!packageJson.name || !packageJson.version) { - console.error(colors8.error(`${symbols.error} Package name and version are required in package.json`)); - process.exit(1); - } - console.log(colors8.info(` -${symbols.info} Publishing ${colors8.highlight(packageJson.name)} v${packageJson.version}...`)); - console.log(colors8.dim(`${symbols.arrow} Creating package archive...`)); - const zipPath = path3.join(process.cwd(), `${packageJson.name}-${packageJson.version}.zip`); - const output = fs3.createWriteStream(zipPath); - const archive = import_archiver.default("zip", { zlib: { level: 9 } }); - const ig = import_ignore.default(); - if (fs3.existsSync(".gitignore")) { - ig.add(fs3.readFileSync(".gitignore").toString()); - } - const isNextProject = fs3.existsSync("next.config.js") || fs3.existsSync("next.config.mjs") || fs3.existsSync("next.config.ts"); - archive.pipe(output); - if (isNextProject) { - await archiveNextJsProject(archive); - } else { - archiveStandardProject(archive, ig); - } - await new Promise((resolve, reject) => { - output.on("close", resolve); - archive.on("error", reject); - archive.finalize(); - }); - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} detected project type: ${isNextProject ? "nextjs" : "standard"}`)); - console.log(colors8.dim(`${symbols.arrow} starting archive creation...`)); - } - const fileBuffer = fs3.readFileSync(zipPath); - const hashSum = crypto.createHash("sha256"); - hashSum.update(fileBuffer); - const fileHash = hashSum.digest("hex"); - const fileSize = fs3.statSync(zipPath).size; - if (fileSize > MAX_FILE_SIZE) { - console.error(colors8.error(`${symbols.error} Package size (${(fileSize / 1024 / 1024).toFixed(2)}MB) exceeds maximum allowed size (${MAX_FILE_SIZE / 1024 / 1024}MB)`)); - fs3.unlinkSync(zipPath); - process.exit(1); - } - let description = null; - try { - const readmeContent = fs3.readFileSync("README.md", "utf-8"); - if (readmeContent) { - description = readmeContent; - } - } catch (error) { - console.log(colors8.dim(`${symbols.arrow} No README.md found, required for description`)); - } - if (!description) { - console.error(colors8.error(`${symbols.error} Description is required`)); - process.exit(1); - } - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} calculating file hash...`)); - } - try { - console.log(colors8.dim(`${symbols.arrow} Getting upload URL...`)); - const urlResponse = await fetch(`${API_BASE_URL}/api/plugins/publish`, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name, - version: packageJson.version, - fileSize, - fileHash, - description - }) - }); - if (!urlResponse.ok) { - throw new Error(`Failed to get upload URL: ${await urlResponse.text()}`); - } - const { uploadUrl, path: path4 } = await urlResponse.json(); - console.log(colors8.dim(`${symbols.arrow} Uploading to storage...`)); - const uploadResponse = await retryFetch(uploadUrl, { - method: "PUT", - headers: { - "Content-Type": "application/zip" - }, - body: fileBuffer - }); - if (!uploadResponse.ok) { - const text = await uploadResponse.text(); - throw new Error(`Failed to upload file to storage: ${text}`); - } - console.log(colors8.dim(`${symbols.arrow} Finalizing upload...`)); - const finalizeResponse = await fetch(`${API_BASE_URL}/api/plugins/publish/finalize`, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name, - version: packageJson.version, - fileHash, - storagePath: path4, - description, - fileSize - }) - }); - if (!finalizeResponse.ok) { - const text = await finalizeResponse.text(); - throw new Error(`Failed to finalize upload: ${text}`); - } - const data = await finalizeResponse.json(); - console.log(colors8.success(` -${symbols.success} Successfully published plugin!`)); - console.log(colors8.listItem(`${colors8.label("Name")} ${packageJson.name}`)); - console.log(colors8.listItem(`${colors8.label("Version")} ${packageJson.version}`)); - console.log(colors8.listItem(`${colors8.label("Size")} ${(fileSize / 1024).toFixed(2)} KB`)); - if (data.message) { - console.log(colors8.info(` -${symbols.info} ${data.message}`)); - } - fs3.unlinkSync(zipPath); - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} cleaned up temporary zip file`)); - } - } catch (error) { - if (fs3.existsSync(zipPath)) { - fs3.unlinkSync(zipPath); - if (opts.verbose) { - console.log(colors8.dim(`${symbols.arrow} cleaned up temporary zip file`)); - } - } - if (error instanceof Error) { - console.error(colors8.error(` -${symbols.error} Publishing failed: ${error.message}`)); - } - process.exit(1); - } - } catch (error) { - if (error instanceof Error) { - console.error(colors8.error(` -${symbols.error} Publishing failed: ${error.message}`)); - } else { - console.error(colors8.error(` -${symbols.error} Publishing failed with unexpected error`)); - } - process.exit(1); - } -}); -// src/commands/register.ts -import fs4 from "fs"; -var registerCommand = new Command().name("register").description("register a new pipe").requiredOption("--name ", "name of the pipe").option("--paid", "set this flag to create a paid pipe").option("--price ", "price in usd (required for paid pipes)", parseFloat).option("--source ", "source code url (e.g., github repository)").action(async (opts) => { - if (opts.paid && opts.price == null) { - handleError("error: price is required for paid pipes, i.e., --price "); - } - if (opts.paid && opts.price <= 0) { - handleError("error: price must be positive for paid pipes"); - } - try { - const apiKey = Credentials.getApiKey(); - if (!apiKey) { - handleError(symbols.error + " not logged in. please login first using" + colors8.highlight("screenpipe login")); - } - let packageJson; - try { - packageJson = JSON.parse(fs4.readFileSync("package.json", "utf-8")); - } catch (error) { - handleError(`${symbols.error} failed to read package.json. make sure you're in the correct directory.`); - } - const isPaid = opts.paid || false; - const price = opts.price; - let description = null; - try { - const readmeContent = fs4.readFileSync("README.md", "utf-8"); - if (readmeContent) { - description = readmeContent; - } - } catch (error) { - logger.warn(`${symbols.arrow} no README.md found, required for description`); - } - const response = await fetch(`${API_BASE_URL}/api/plugins/create`, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name, - description, - is_paid: isPaid, - price: isPaid ? price : null, - source_url: opts.source || null - }) - }); - if (!response.ok) { - const errorData = await response.json(); - handleError(errorData.error || "failed to create plugin"); - } - const data = await response.json(); - logger.success(` -${symbols.success} successfully created pipe: ${colors8.highlight(opts.name)}`); - logger.info(` -${symbols.info} plugin details:`); - console.log(colors8.listItem(`${colors8.label("name")} ${opts.name}`)); - console.log(colors8.listItem(`${colors8.label("type")} ${isPaid ? `paid ($${price})` : "free"}`)); - if (opts.source) { - console.log(colors8.listItem(`${colors8.label("source")} ${opts.source}`)); - } - } catch (error) { - if (error instanceof Error) { - handleError(` -${symbols.error} creating failed: ${error.message}`); - } else { - handleError(` -${symbols.error} creating failed with unexpected error`); - } - } -}); -// src/commands/list-versions.ts -var listVersionsCommand = new Command().name("list-versions").description("List all versions of a pipe").requiredOption("--name ", "name of the pipe").action(async (opts) => { - try { - const response = await fetch(`${API_BASE_URL}/api/plugins/list-versions`, { - method: "POST", - headers: { - Authorization: `Bearer ${Credentials.getApiKey()}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ - name: opts.name - }) - }); - if (!response.ok) { - const error = await response.json(); - throw new Error(`failed to list versions ${error.error}`); - } - const data = await response.json(); - console.log(colors8.header(`plugin Information`)); - console.log(colors8.listItem(`${colors8.label("Name")} ${opts.name}`)); - console.log(colors8.listItem(`${colors8.label("ID")} ${data.plugin_id}`)); - console.log(colors8.header("version History")); - data.versions.forEach((version) => { - const status = version.status === "published" ? colors8.success(version.status) : colors8.warning(version.status); - console.log(colors8.primary(` - ${symbols.arrow} version ${colors8.bold(version.version)} ${colors8.dim(`(${status})`)}`)); - console.log(colors8.listItem(`${colors8.label("created")} ${new Date(version.created_at).toLocaleString()}`)); - console.log(colors8.listItem(`${colors8.label("size")} ${(version.file_size / 1024).toFixed(2)} KB`)); - console.log(colors8.listItem(`${colors8.label("hash")} ${colors8.dim(version.file_hash)}`)); - if (version.changelog) { - console.log(colors8.listItem(`${colors8.label("changelog")} ${version.changelog}`)); - } - }); - } catch (error) { - if (error instanceof Error) { - handleError(` -${symbols.error} list versions failed: ${error.message}`); - } else { - handleError(` -${symbols.error} list versions failed with unexpected error`); - } - } -}); // src/commands/components/commands/add/registry/schema.ts var registryComponentSchema = z.object({ name: z.string(), @@ -62585,7 +62595,7 @@ async function promptForRegistryComponents(all) { if (all) { return Object.values(registryIndex).map((entry) => entry.name); } - const { components } = await esm_default13.prompt([ + const { components } = await esm_default12.prompt([ { type: "checkbox", name: "components", @@ -63234,7 +63244,7 @@ var specialFallbackSymbols2 = { }; var mainSymbols2 = { ...common2, ...specialMainSymbols2 }; var fallbackSymbols2 = { ...common2, ...specialFallbackSymbols2 }; -var shouldUseMain2 = isUnicodeSupported3(); +var shouldUseMain2 = isUnicodeSupported2(); var figures2 = shouldUseMain2 ? mainSymbols2 : fallbackSymbols2; var figures_default = figures2; var replacements2 = Object.entries(specialMainSymbols2); @@ -69155,12 +69165,12 @@ async function updateDependencies(dependencies, cwd, options) { } // src/commands/components/commands/add/utils/updaters/update-files.ts -var import_fs_extra3 = __toESM(require_lib(), 1); +var import_fs_extra3 = __toESM(require_lib4(), 1); import path10 from "path"; import { existsSync } from "fs"; // src/commands/components/commands/add/utils/download-file-from-github.ts -var import_fs_extra2 = __toESM(require_lib(), 1); +var import_fs_extra2 = __toESM(require_lib4(), 1); async function fetchFileFromGitHubAPI(apiUrl, outputPath) { try { const response = await fetch(apiUrl); @@ -69201,7 +69211,7 @@ async function updateFiles(componentLocations, options) { const existingFile = existsSync(location.target); if (existingFile && !options.overwrite) { filesCreatedSpinner.stop(); - const { overwrite } = await esm_default13.prompt([ + const { overwrite } = await esm_default12.prompt([ { type: "confirm", name: "overwrite", @@ -69315,7 +69325,7 @@ var addComponentCommand = new Command().name("add").description("add components }); // src/commands/components/commands/register.ts -var import_fs_extra4 = __toESM(require_lib(), 1); +var import_fs_extra4 = __toESM(require_lib4(), 1); init_esm14(); async function writeJsonToFile(filePath, data) { try { @@ -69339,7 +69349,7 @@ async function writeJsonToFile(filePath, data) { var registerComponentCommand = new Command().name("register").description("register a new component in screenpipe's component registry").option("-n, --name ", "name of the component").option("-s, --src", "github url for the component").option("-t, --target", "path where file should be created").action(async (opts) => { try { if (!opts.name) { - const { name } = await esm_default13.prompt([ + const { name } = await esm_default12.prompt([ { type: "input", name: "name", @@ -69349,7 +69359,7 @@ var registerComponentCommand = new Command().name("register").description("regis opts.name = name; } if (!opts.src) { - const { src } = await esm_default13.prompt([ + const { src } = await esm_default12.prompt([ { type: "input", name: "src", @@ -69363,7 +69373,7 @@ visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/c opts.src = src; } if (!opts.target) { - const { target } = await esm_default13.prompt([ + const { target } = await esm_default12.prompt([ { type: "input", name: "target", @@ -69377,7 +69387,7 @@ visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/c handleError("invalid component"); process.exit(1); } - const { deps } = await esm_default13.prompt([ + const { deps } = await esm_default12.prompt([ { type: "input", name: "deps", @@ -69385,7 +69395,7 @@ visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/c filter: (input) => input.split(",").map((item) => item.trim()).filter((item) => item !== "") } ]); - const { devDeps } = await esm_default13.prompt([ + const { devDeps } = await esm_default12.prompt([ { type: "input", name: "devDeps", @@ -69393,7 +69403,7 @@ visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/c filter: (input) => input.split(",").map((item) => item.trim()).filter((item) => item !== "") } ]); - const { registryDeps } = await esm_default13.prompt([ + const { registryDeps } = await esm_default12.prompt([ { type: "input", name: "registryDeps", @@ -69425,7 +69435,7 @@ visit: https://github.com/mediar-ai/screenpipe/blob/main/screenpipe-js/cli/src/c }); // src/commands/components/index.ts -var componentsCommands = new Command().name("components").description("commands to interact with screenpipe's components"); +var componentsCommands = new Command().name("components").description("easily add screenpipe components to your project"); componentsCommands.addCommand(addComponentCommand); componentsCommands.addCommand(registerComponentCommand); // src/index.ts @@ -69437,11 +69447,8 @@ async function main2() { program2.addCommand(loginCommand); program2.addCommand(logoutCommand); program2.addCommand(appCommands); - program2.addCommand(createPipeCommand); + program2.addCommand(pipeCommands); program2.addCommand(componentsCommands); - program2.addCommand(registerCommand); - program2.addCommand(publishCommand); - program2.addCommand(listVersionsCommand); program2.parse(); } main2(); diff --git a/screenpipe-js/cli/src/commands/components/index.ts b/screenpipe-js/cli/src/commands/components/index.ts index 431f23d11..2d19d272e 100644 --- a/screenpipe-js/cli/src/commands/components/index.ts +++ b/screenpipe-js/cli/src/commands/components/index.ts @@ -4,7 +4,7 @@ import { Command } from "commander"; export const componentsCommands = new Command() .name("components") - .description("commands to interact with screenpipe's components") + .description("easily add screenpipe components to your project") componentsCommands.addCommand(addComponentCommand) diff --git a/screenpipe-js/cli/src/commands/index.ts b/screenpipe-js/cli/src/commands/index.ts index 070835b7e..13c62555d 100644 --- a/screenpipe-js/cli/src/commands/index.ts +++ b/screenpipe-js/cli/src/commands/index.ts @@ -1,8 +1,5 @@ -export { createPipeCommand } from './create'; -export { appCommands } from './app'; export { loginCommand } from './login'; export { logoutCommand } from './logout'; -export { publishCommand } from './publish'; -export { registerCommand } from './register'; -export { listVersionsCommand } from './list-versions'; +export { pipeCommands } from "./pipe" +export { appCommands } from './app'; export { componentsCommands } from "./components" \ No newline at end of file diff --git a/screenpipe-js/cli/src/commands/create/index.ts b/screenpipe-js/cli/src/commands/pipe/create.ts similarity index 100% rename from screenpipe-js/cli/src/commands/create/index.ts rename to screenpipe-js/cli/src/commands/pipe/create.ts diff --git a/screenpipe-js/cli/src/commands/pipe/index.ts b/screenpipe-js/cli/src/commands/pipe/index.ts new file mode 100644 index 000000000..57f35c3c5 --- /dev/null +++ b/screenpipe-js/cli/src/commands/pipe/index.ts @@ -0,0 +1,14 @@ +import { Command } from "commander"; +import { registerCommand } from "./register"; +import { publishCommand } from "./publish"; +import { listVersionsCommand } from "./list-versions"; +import { createPipeCommand } from "./create"; + +export const pipeCommands = new Command() + .name("pipe") + .description("create and manage pipes") + + pipeCommands.addCommand(createPipeCommand) + pipeCommands.addCommand(registerCommand) + pipeCommands.addCommand(publishCommand) + pipeCommands.addCommand(listVersionsCommand) \ No newline at end of file diff --git a/screenpipe-js/cli/src/commands/list-versions.ts b/screenpipe-js/cli/src/commands/pipe/list-versions.ts similarity index 91% rename from screenpipe-js/cli/src/commands/list-versions.ts rename to screenpipe-js/cli/src/commands/pipe/list-versions.ts index 7a7907c29..71c872c71 100644 --- a/screenpipe-js/cli/src/commands/list-versions.ts +++ b/screenpipe-js/cli/src/commands/pipe/list-versions.ts @@ -1,8 +1,8 @@ -import { API_BASE_URL } from "../constants"; -import { Credentials } from "../utils/credentials"; -import { colors, symbols } from "../utils/colors"; +import { API_BASE_URL } from "../../constants"; +import { Credentials } from "../../utils/credentials"; +import { colors, symbols } from "../../utils/colors"; import { Command } from "commander"; -import { handleError } from "./components/commands/add/utils/handle-error"; +import { handleError } from "../components/commands/add/utils/handle-error"; export const listVersionsCommand = new Command() .name('list-versions') diff --git a/screenpipe-js/cli/src/commands/publish.ts b/screenpipe-js/cli/src/commands/pipe/publish.ts similarity index 98% rename from screenpipe-js/cli/src/commands/publish.ts rename to screenpipe-js/cli/src/commands/pipe/publish.ts index 80bf77236..55c649f9c 100644 --- a/screenpipe-js/cli/src/commands/publish.ts +++ b/screenpipe-js/cli/src/commands/pipe/publish.ts @@ -1,11 +1,11 @@ import fs from "fs"; import path from "path"; -import { Credentials } from "../utils/credentials"; -import { API_BASE_URL } from "../constants"; +import { Credentials } from "../../utils/credentials"; +import { API_BASE_URL } from "../../constants"; import archiver from "archiver"; import crypto from "crypto"; import ignore from "ignore"; -import { colors, symbols } from "../utils/colors"; +import { colors, symbols } from "../../utils/colors"; import { Command } from "commander"; interface ProjectFiles { diff --git a/screenpipe-js/cli/src/commands/register.ts b/screenpipe-js/cli/src/commands/pipe/register.ts similarity index 91% rename from screenpipe-js/cli/src/commands/register.ts rename to screenpipe-js/cli/src/commands/pipe/register.ts index b9b43b9d2..2d5a1d5a5 100644 --- a/screenpipe-js/cli/src/commands/register.ts +++ b/screenpipe-js/cli/src/commands/pipe/register.ts @@ -1,10 +1,10 @@ import fs from "fs"; -import { Credentials } from "../utils/credentials"; -import { API_BASE_URL } from "../constants"; -import { colors, symbols } from "../utils/colors"; +import { Credentials } from "../../utils/credentials"; +import { API_BASE_URL } from "../../constants"; +import { colors, symbols } from "../../utils/colors"; import { Command } from "commander"; -import { logger } from "./components/commands/add/utils/logger"; -import { handleError } from "./components/commands/add/utils/handle-error"; +import { logger } from "../components/commands/add/utils/logger"; +import { handleError } from "../components/commands/add/utils/handle-error"; export const registerCommand = new Command() .name('register') diff --git a/screenpipe-js/cli/src/index.ts b/screenpipe-js/cli/src/index.ts index 056cb52ee..ebe0f7d9b 100644 --- a/screenpipe-js/cli/src/index.ts +++ b/screenpipe-js/cli/src/index.ts @@ -3,11 +3,8 @@ import { appCommands, loginCommand, componentsCommands, - registerCommand, - publishCommand, - listVersionsCommand, logoutCommand, - createPipeCommand + pipeCommands } from "./commands"; process.on("SIGINT", () => process.exit(0)) @@ -24,11 +21,8 @@ async function main() { program.addCommand(loginCommand) program.addCommand(logoutCommand) program.addCommand(appCommands) - program.addCommand(createPipeCommand) + program.addCommand(pipeCommands) program.addCommand(componentsCommands) - program.addCommand(registerCommand) - program.addCommand(publishCommand) - program.addCommand(listVersionsCommand) program.parse()