@withgraphite/graphite-cli 1.4.0 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.CHANGELOG.md +27 -2
- package/16.js +1 -1
- package/16.js.map +1 -1
- package/build/index.html +5 -1
- package/graphite.js +1 -1
- package/package.json +1 -1
package/16.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"16.js","mappings":"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","sources":["webpack://@withgraphite/graphite-cli/../../src/analytics.ts","webpack://@withgraphite/graphite-cli/../../src/cute_string.ts","webpack://@withgraphite/graphite-cli/../../src/errors.ts","webpack://@withgraphite/graphite-cli/../../src/index.ts","webpack://@withgraphite/graphite-cli/../../src/request.ts","webpack://@withgraphite/graphite-cli/../../src/spiffy.ts","webpack://@withgraphite/graphite-cli/../../src/user_config_spf.ts","webpack://@withgraphite/graphite-cli/../../src/xdg_base_dir.ts","webpack://@withgraphite/graphite-cli/../../../src/git-module/client.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/absorb_patches.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/add.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/branch_ops.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/clean.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/clean_rebase.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/commit.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/commit_info.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/commit_range.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/commit_tree.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/config.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/diff.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/fetch_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/file_contents.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/files_changed.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/find_remote_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/get_hook_executable_path.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/get_sha.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/git_version.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/index_file.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/is_merged.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/log.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/merge_base.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/merge_conflict_help.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/plumbing.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/prune_remote.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/pull_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/push_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/range_diff.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/rebase.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/rebase_in_progress.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/reconcile.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/remote_url.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/repo_paths.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/reset_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/set_remote_tracking.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/show_commits.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/sorted_branch_names.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/status.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/track.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/diff/computations.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/diff/compute_patch_from_hunks.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/diff/parse_hunks_from_diff.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/diff/reduce_hunks_to_zero_context.ts","webpack://@withgraphite/graphite-cli/../../../src/git-module/git_repo.ts","webpack://@withgraphite/graphite-cli/../../../src/git-module/index.ts","webpack://@withgraphite/graphite-cli/../../../src/git-module/runner.ts","webpack://@withgraphite/graphite-cli/../../src/tracer.ts","webpack://@withgraphite/graphite-cli/../../src/Comparison.ts","webpack://@withgraphite/graphite-cli/../../src/LRU.ts","webpack://@withgraphite/graphite-cli/../../../src/analytics/index.ts","webpack://@withgraphite/graphite-cli/../../../src/analytics/tracker.ts","webpack://@withgraphite/graphite-cli/../../src/debounce.ts","webpack://@withgraphite/graphite-cli/../../../src/patch/parse.ts","webpack://@withgraphite/graphite-cli/../../src/serialize.ts","webpack://@withgraphite/graphite-cli/../../../src/types/client.ts","webpack://@withgraphite/graphite-cli/../../../src/types/constants.ts","webpack://@withgraphite/graphite-cli/../../../src/types/index.ts","webpack://@withgraphite/graphite-cli/../../src/utils.ts","webpack://@withgraphite/graphite-cli/../../../src/github/is_approver.ts","webpack://@withgraphite/graphite-cli/../../../src/github/pr_has_minimum_approvals.ts","webpack://@withgraphite/graphite-cli/../../../src/github/pr_metastatus.ts","webpack://@withgraphite/graphite-cli/../../../src/github/types.ts","webpack://@withgraphite/graphite-cli/../../src/graphite_check.ts","webpack://@withgraphite/graphite-cli/../../../src/merge-rules/compute_blocking_reasons.ts","webpack://@withgraphite/graphite-cli/../../../src/merge-rules/filter.ts","webpack://@withgraphite/graphite-cli/../../../src/merge-rules/required_approvers.ts","webpack://@withgraphite/graphite-cli/../../src/test_data_generators.ts","webpack://@withgraphite/graphite-cli/../index.ts","webpack://@withgraphite/graphite-cli/../src/index.ts","webpack://@withgraphite/graphite-cli/../src/request.ts","webpack://@withgraphite/graphite-cli/../../src/bind.ts","webpack://@withgraphite/graphite-cli/../../src/dedup.ts","webpack://@withgraphite/graphite-cli/../../src/difference.ts","webpack://@withgraphite/graphite-cli/../../src/empty_object.ts","webpack://@withgraphite/graphite-cli/../../src/find_index_or_fail.ts","webpack://@withgraphite/graphite-cli/../../src/glob.ts","webpack://@withgraphite/graphite-cli/../../src/heartbeat.ts","webpack://@withgraphite/graphite-cli/../../src/lookup_table.ts","webpack://@withgraphite/graphite-cli/../../src/map_reduce.ts","webpack://@withgraphite/graphite-cli/../../src/retry.ts","webpack://@withgraphite/graphite-cli/../../src/semaphore.ts","webpack://@withgraphite/graphite-cli/../../src/sleep.ts","webpack://@withgraphite/graphite-cli/../../src/strings.ts","webpack://@withgraphite/graphite-cli/../../src/timeout.ts","webpack://@withgraphite/graphite-cli/../../src/types.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/analytics.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/analytics/environment.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/analytics/serverSideTracker.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/logger.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/TypedEventEmitter.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/github/githubCodeReviewProvider.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/OperationQueue.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/PageFocusTracker.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/RateLimiter.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/utils.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/Repository.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/fs.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/serverPlatform.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/RepositoryCache.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/ServerToClientAPI.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/proxy/existingServerStateFiles.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/proxy/proxyUtils.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/index.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/proxy/server.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import {\n composeUserConfigFactory,\n sendAnalyticsEvent as sendAnalyticsEventGeneric,\n} from \"@withgraphite/cli-shared\";\nimport { composeGit } from \"@withgraphite/gt-engine\";\nimport type { Logger } from \"@withgraphite/gti-shared\";\nimport { v4 } from \"uuid\";\n\ntype TEvent = \"gti-server-startup\";\n\nexport const sendAnalyticsEvent = sendAnalyticsEventGeneric<TEvent>;\n\nexport async function logStartup(logger: Logger) {\n // At the time of writing, this is the only place in GTI server where we\n // access the user config and git directly instead of through the CLI. This is\n // because we want to log analytics about installs, and don't want to be\n // blocked on CLI installation.\n // We should consider elevating userConfig (and a git client/Graphite engine)\n // to a context in ServerToClientAPI and using that instead of shelling to\n // the CLI for all configs going forward -- essentially, this function\n // should serve as a proof of concept for that way of doing things.\n // When we do this, we should also pull in the config keys from\n // libs/public/gti-shared/src/types/client.ts\n const userConfig = await composeUserConfigFactory().load();\n let installUuid = userConfig.data.gtiConfigs?.find(\n (config) => config.key === \"gti.install-uuid\"\n )?.value;\n if (!installUuid) {\n const value = v4();\n await userConfig.update((data) => {\n if (!data.gtiConfigs) {\n data.gtiConfigs = [];\n }\n data.gtiConfigs.push({\n key: \"gti.install-uuid\",\n value,\n });\n });\n installUuid = value;\n }\n\n const gitEmail = await getGitEmail(logger);\n\n sendAnalyticsEvent({\n event: \"gti-server-startup\",\n timestampISOString: new Date().toISOString(),\n logger,\n details: { installUuid, gitEmail },\n });\n}\n\nasync function getGitEmail(logger: Logger) {\n try {\n const git = await composeGit({\n debug: (s: string) => logger.info(s),\n });\n\n return await git.config(\"user.email\");\n } catch (e) {\n try {\n logger.error(\"Failed to get git email\", e);\n } catch {\n // ignore\n }\n return undefined;\n }\n}\n","import type { ApplicationInfo } from \"@withgraphite/gti-shared\";\nimport { randomId, unwrap } from \"@withgraphite/gti-shared\";\nimport os from \"os\";\n\nexport function getUsername(): string {\n try {\n return os.userInfo().username;\n } catch (osInfoError) {\n try {\n const { env } = process;\n return unwrap(env.LOGNAME || env.USER || env.LNAME || env.USERNAME);\n } catch (processEnvError) {\n throw new Error(String(processEnvError) + String(osInfoError));\n }\n }\n}\n\nexport function generateAnalyticsInfo(\n platformName: string,\n version: string\n): ApplicationInfo {\n return {\n platform: platformName,\n version,\n repo: undefined,\n /**\n * Random id for this GTI session, created at startup.\n * Note: this is only generated on the server, so client-logged events share the ID with the server.\n */\n sessionId: randomId(),\n unixname: getUsername(),\n osArch: os.arch(),\n osType: os.platform(),\n osRelease: os.release(),\n hostname: os.hostname(),\n };\n}\n","import type {\n ApplicationInfo,\n FullTrackData,\n Logger,\n TrackDataWithEventName,\n} from \"@withgraphite/gti-shared\";\nimport { Tracker } from \"@withgraphite/gti-shared\";\n\nimport type { Repository } from \"../Repository\";\nimport type { ServerPlatform } from \"../serverPlatform\";\nimport { generateAnalyticsInfo } from \"./environment\";\n\nexport type ServerSideTracker = Tracker<ServerSideContext>;\n\nclass ServerSideContext {\n constructor(public logger: Logger, public data: ApplicationInfo) {}\n\n public setRepo(repo: Repository | undefined): void {\n this.data.repo = repo?.codeReviewProvider?.getSummaryName();\n }\n}\n\nconst noOp = (_data: FullTrackData): Promise<unknown> | void => {\n /* In open source builds, analytics tracking is completely disabled/removed. */\n};\n\n/**\n * Creates a Tracker which includes server-side-only cached application data like platform, username, etc,\n * and sends data to the underlying analytics engine outside of GTI.\n * This can not be global since two client connections may have different cached data.\n */\nexport function makeServerSideTracker(\n logger: Logger,\n platform: ServerPlatform,\n version: string,\n // prettier-ignore\n writeToServer = noOp\n): ServerSideTracker {\n return new Tracker(\n (data: TrackDataWithEventName, context: ServerSideContext) => {\n const { logger } = context;\n // log track event, since tracking events can be used as datapoints when reviewing logs\n logger.log(\n \"[track]\",\n data.eventName,\n data.errorName ?? \"\",\n data.errorMessage ?? \"\",\n data.extras != null ? JSON.stringify(data.extras) : \"\"\n );\n try {\n Promise.resolve(writeToServer({ ...data, ...context.data })).catch(\n (err) => void err\n );\n } catch {\n // pass\n }\n },\n new ServerSideContext(\n logger,\n generateAnalyticsInfo(platform.platformName, version)\n )\n );\n}\n","import type { Logger } from \"@withgraphite/gti-shared\";\nimport fs from \"fs\";\nimport util from \"util\";\n\nexport const stdoutLogger = console;\n\nexport function fileLogger(filename: string): Logger {\n const log = (...args: Parameters<typeof console.log>) => {\n const str = util.format(...args) + \"\\n\";\n void fs.promises.appendFile(filename, str);\n };\n\n return {\n info: log,\n log,\n warn: log,\n error: log,\n\n getLogFileContents: () => {\n return fs.promises.readFile(filename, \"utf-8\");\n },\n };\n}\n","import { EventEmitter } from \"events\";\n\n/**\n * Like {@link EventEmitter}, but with type checking for one particular subscription type,\n * plus errors.\n * ```\n * const myEmitter = new TypedEventEmitter<'data', number>();\n * myEmitter.on('data', (data: number) => ...); // typechecks 'data' param and callback\n * myEmitter.on('error', (error: Error) => ...); // errors are always allowed too\n * // Fields other than 'data' and 'error' are type errors.\n * ```\n */\nexport declare interface TypedEventEmitter<\n EventName extends string,\n EventType\n> {\n on(event: EventName, listener: (data: EventType) => void): this;\n on(event: \"error\", listener: (error: Error) => void): this;\n off(event: EventName, listener: (data: EventType) => void): this;\n off(event: \"error\", listener: (error: Error) => void): this;\n\n emit(\n ...args: EventType extends undefined\n ? [event: EventName] | [event: EventName, data: EventType]\n : [event: EventName, data: EventType]\n ): boolean;\n emit(event: \"error\", error: Error): boolean;\n}\n\nexport class TypedEventEmitter<\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n EventName extends string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n EventType\n> extends EventEmitter {}\n","import type { PRInfo, PRNumber } from \"@withgraphite/gti-cli-shared-types\";\nimport type {\n CodeReviewSystem,\n Disposable,\n GitHubDiffSummary,\n OperationCommandProgressReporter,\n Result,\n TypeaheadKind,\n TypeaheadResult,\n} from \"@withgraphite/gti-shared\";\nimport type execa from \"execa\";\n\nimport { TypedEventEmitter } from \"../TypedEventEmitter\";\n\ntype GitHubCodeReviewSystem = CodeReviewSystem & { type: \"github\" };\nexport class GitHubCodeReviewProvider {\n constructor(\n private codeReviewSystem: GitHubCodeReviewSystem,\n private runCommand: (\n args: Array<string>,\n cwd?: string,\n options?: execa.Options\n ) => execa.ExecaChildProcess<string>\n ) {}\n private diffSummaries = new TypedEventEmitter<\"data\", GitHubDiffSummary[]>();\n\n onChangeDiffSummaries(\n callback: (result: Result<GitHubDiffSummary[]>) => unknown\n ): Disposable {\n const handleData = (data: GitHubDiffSummary[]) => callback({ value: data });\n const handleError = (error: Error) => callback({ error });\n this.diffSummaries.on(\"data\", handleData);\n this.diffSummaries.on(\"error\", handleError);\n return {\n dispose: () => {\n this.diffSummaries.off(\"data\", handleData);\n this.diffSummaries.off(\"error\", handleError);\n },\n };\n }\n\n public async triggerDiffSummariesFetch(_diffs: Array<PRNumber>) {\n const value = await this.runCommand([\"internal-only\", \"prs\"]);\n const prs = JSON.parse(value.stdout) as PRInfo[];\n this.diffSummaries.emit(\"data\", prs);\n }\n\n public dispose() {\n this.diffSummaries.removeAllListeners();\n }\n\n public getSummaryName(): string {\n return `github:${this.codeReviewSystem.hostname}/${this.codeReviewSystem.owner}/${this.codeReviewSystem.repo}`;\n }\n\n /** Run a command not handled within graphite, such as a separate submit handler */\n public runExternalCommand(\n _cwd: string,\n _args: Array<string>,\n _onProgress: OperationCommandProgressReporter,\n _signal: AbortSignal\n ): Promise<void> {\n throw new Error(\n \"GitHub code review provider does not support running external commands\"\n );\n }\n\n public async typeahead(\n _kind: TypeaheadKind,\n _query: string\n ): Promise<Array<TypeaheadResult>> {\n return Promise.resolve([]);\n }\n}\n\n// function githubCheckSuitesToCIStatus(\n// checkSuites: CheckSuiteConnection | undefined | null,\n// ): DiffSignalSummary {\n// let anyInProgress = false;\n// let anyWarning = false;\n// for (const checkSuite of checkSuites?.nodes ?? []) {\n// switch (checkSuite?.status) {\n// case CheckStatusState.Completed:\n// {\n// switch (checkSuite?.conclusion) {\n// case CheckConclusionState.Success:\n// break;\n// case CheckConclusionState.Neutral:\n// case CheckConclusionState.Stale:\n// case CheckConclusionState.Skipped:\n// anyWarning = true;\n// break;\n// case CheckConclusionState.ActionRequired:\n// case CheckConclusionState.StartupFailure:\n// case CheckConclusionState.Cancelled:\n// case CheckConclusionState.TimedOut:\n// case CheckConclusionState.Failure:\n// return 'failed'; // no need to look at other signals\n// }\n// }\n// break;\n// case CheckStatusState.Waiting:\n// case CheckStatusState.Requested:\n// case CheckStatusState.Queued:\n// case CheckStatusState.Pending:\n// case CheckStatusState.InProgress:\n// anyInProgress = true;\n// break;\n// }\n// }\n// return anyWarning ? 'warning' : anyInProgress ? 'running' : 'pass';\n// }\n","import type {\n Logger,\n OperationCommandProgressReporter,\n OperationProgress,\n RunnableOperation,\n} from \"@withgraphite/gti-shared\";\n\nimport type { ServerSideTracker } from \"./analytics/serverSideTracker\";\n\n/**\n * Handle running & queueing all Operations so that only one Operation runs at once.\n * Operations may be run by gt in the Repository or other providers like ghstack in the RemoteRepository.\n */\nexport class OperationQueue {\n constructor(\n private logger: Logger,\n private runCallback: (\n operation: RunnableOperation,\n cwd: string,\n handleProgress: OperationCommandProgressReporter,\n signal: AbortSignal\n ) => Promise<void>\n ) {}\n\n private queuedOperations: Array<\n RunnableOperation & { tracker: ServerSideTracker }\n > = [];\n private runningOperation: RunnableOperation | undefined = undefined;\n private abortController: AbortController | undefined = undefined;\n\n async runOrQueueOperation(\n operation: RunnableOperation,\n onProgress: (progress: OperationProgress) => void,\n tracker: ServerSideTracker,\n cwd: string\n ): Promise<void> {\n if (this.runningOperation != null) {\n this.queuedOperations.push({ ...operation, tracker });\n onProgress({\n id: operation.id,\n kind: \"queue\",\n queue: this.queuedOperations.map((o) => o.id),\n });\n return;\n }\n this.runningOperation = operation;\n\n const handleCommandProgress: OperationCommandProgressReporter = (\n ...args\n ) => {\n switch (args[0]) {\n case \"spawn\":\n onProgress({\n id: operation.id,\n kind: \"spawn\",\n queue: this.queuedOperations.map((op) => op.id),\n });\n break;\n\n case \"stdout\":\n onProgress({ id: operation.id, kind: \"stdout\", message: args[1] });\n break;\n\n case \"stderr\":\n onProgress({ id: operation.id, kind: \"stderr\", message: args[1] });\n break;\n\n case \"exit\":\n onProgress({\n id: operation.id,\n kind: \"exit\",\n exitCode: args[1],\n timestamp: Date.now(),\n });\n break;\n }\n };\n\n try {\n const controller = new AbortController();\n this.abortController = controller;\n await tracker.operation(\n operation.trackEventName,\n \"RunOperationError\",\n { extras: { args: operation.args, runner: operation.runner } },\n (_p) =>\n this.runCallback(\n operation,\n cwd,\n handleCommandProgress,\n controller.signal\n )\n );\n this.runningOperation = undefined;\n\n // now that we successfully ran this operation, dequeue the next\n if (this.queuedOperations.length > 0) {\n const op = this.queuedOperations.shift();\n if (op != null) {\n // don't await this, the caller should resolve when the original operation finishes.\n void this.runOrQueueOperation(\n op,\n // TODO (GT-11368): we're using the onProgress from the LAST `runOperation`... should we be keeping the newer onProgress in the queued operation?\n onProgress,\n op.tracker,\n cwd\n );\n }\n }\n } catch (err) {\n const errString = (err as Error).toString();\n this.logger.log(\n \"error running operation: \",\n operation.args[0],\n errString\n );\n onProgress({ id: operation.id, kind: \"error\", error: errString });\n // clear queue to run when we hit an error\n this.queuedOperations = [];\n this.runningOperation = undefined;\n }\n }\n\n /**\n * Send kill signal to the running operation if the operationId matches.\n * If the process exits, the exit event will be noticed by the queue.\n * This function does not block on waiting for the operation process to exit.\n */\n abortRunningOperation(operationId: string) {\n if (this.runningOperation?.id == operationId) {\n this.abortController?.abort();\n }\n }\n}\n","import type { PageVisibility } from \"@withgraphite/gti-shared\";\n\n/**\n * Aggregates if any GTI page has focus or visibility.\n */\nexport class PageFocusTracker {\n private focusedPages = new Set();\n private visiblePages = new Set();\n\n private onChangeHandlers = new Set<(state: PageVisibility) => unknown>();\n\n setState(page: string, state: PageVisibility) {\n switch (state) {\n case \"focused\":\n this.focusedPages.add(page);\n this.visiblePages.add(page);\n break;\n\n case \"visible\":\n this.focusedPages.delete(page);\n this.visiblePages.add(page);\n break;\n\n case \"hidden\":\n this.focusedPages.delete(page);\n this.visiblePages.delete(page);\n break;\n }\n for (const handler of this.onChangeHandlers) {\n handler(state);\n }\n }\n\n public disposePage(page: string) {\n this.focusedPages.delete(page);\n this.visiblePages.delete(page);\n }\n\n public hasPageWithFocus() {\n return this.focusedPages.size > 0;\n }\n public hasVisiblePage() {\n return this.visiblePages.size > 0;\n }\n\n public onChange(callback: () => unknown): () => void {\n this.onChangeHandlers.add(callback);\n return () => this.onChangeHandlers.delete(callback);\n }\n}\n","import { TypedEventEmitter } from \"./TypedEventEmitter\";\n\ntype Id = number;\n\n/**\n * Rate limits requests to run an arbitrary task.\n * Up to `maxSimultaneousRunning` tasks can run at once,\n * futher requests will be queued and run when a running task finishes.\n *\n * Usage:\n * ```\n * const rateLimiter = new RateLimiter(5);\n * const result = await rateLimiter.enqueueRun(() => {\n * // ...do arbitrary async work...\n * });\n * ```\n */\nexport class RateLimiter {\n private queued: Array<Id> = [];\n private running: Array<Id> = [];\n private runs = new TypedEventEmitter<\"run\", Id>();\n\n constructor(\n private maxSimultaneousRunning: number,\n private log?: (s: string) => unknown\n ) {}\n\n private nextId = 1;\n private generateId(): Id {\n return this.nextId++;\n }\n\n async enqueueRun<T>(runner: () => Promise<T>): Promise<T> {\n const id = this.generateId();\n\n this.queued.push(id);\n this.tryDequeueNext();\n\n if (!this.running.includes(id)) {\n this.log?.(\n `${this.running.length} tasks are already running, enqueuing ID:${id}`\n );\n await new Promise((res) => {\n this.runs.on(\"run\", (ran) => {\n if (ran === id) {\n this.log?.(`now allowing ID:${id} to run`);\n res(undefined);\n }\n });\n });\n }\n\n try {\n return await runner();\n } finally {\n this.notifyFinished(id);\n }\n }\n\n private notifyFinished(id: Id): void {\n this.running = this.running.filter((running) => running !== id);\n this.tryDequeueNext();\n }\n\n private tryDequeueNext() {\n if (this.running.length < this.maxSimultaneousRunning) {\n const toRun = this.queued.shift();\n if (toRun != null) {\n this.run(toRun);\n }\n }\n }\n\n private run(id: Id) {\n this.running.push(id);\n this.runs.emit(\"run\", id);\n }\n}\n","import type { BranchInfo } from \"@withgraphite/gti-cli-shared-types\";\nimport {\n type Comparison,\n type SmartlogCommits,\n ComparisonType,\n truncate,\n} from \"@withgraphite/gti-shared\";\nimport type { ExecaChildProcess } from \"execa\";\nimport type execa from \"execa\";\nimport os from \"os\";\n\nexport function sleep(timeMs: number): Promise<void> {\n return new Promise((res) => setTimeout(res, timeMs));\n}\n\nexport function firstOfIterable<T>(\n iterable: IterableIterator<T>\n): T | undefined {\n return iterable.next().value;\n}\n\n/**\n * Limits async function execution parallelism to only one at a time.\n * Hence, if a call is already running, it will wait for it to finish,\n * then start the next async execution, but if called again while not finished,\n * it will return the scheduled execution promise.\n *\n * Sample Usage:\n * ```\n * let i = 1;\n * const oneExecAtATime = serializeAsyncCall(() => {\n * return new Promise((resolve, reject) => {\n * setTimeout(200, () => resolve(i++));\n * });\n * });\n *\n * const result1Promise = oneExecAtATime(); // Start an async, and resolve to 1 in 200 ms.\n * const result2Promise = oneExecAtATime(); // Schedule the next async, and resolve to 2 in 400 ms.\n * const result3Promise = oneExecAtATime(); // Reuse scheduled promise and resolve to 2 in 400 ms.\n * ```\n */\nexport function serializeAsyncCall<T>(\n asyncFun: () => Promise<T>\n): () => Promise<T> {\n let scheduledCall: Promise<T> | undefined = undefined;\n let pendingCall: Promise<undefined> | undefined = undefined;\n const startAsyncCall = () => {\n const resultPromise = asyncFun();\n pendingCall = resultPromise.then(\n () => (pendingCall = undefined),\n () => (pendingCall = undefined)\n );\n return resultPromise;\n };\n const callNext = () => {\n scheduledCall = undefined;\n return startAsyncCall();\n };\n const scheduleNextCall = () => {\n if (scheduledCall == null) {\n if (pendingCall == null) {\n throw new Error(\"pendingCall must not be null!\");\n }\n scheduledCall = pendingCall.then(callNext, callNext);\n }\n return scheduledCall;\n };\n return () => {\n if (pendingCall == null) {\n return startAsyncCall();\n } else {\n return scheduleNextCall();\n }\n };\n}\n\n/**\n * Kill `child` on `AbortSignal`.\n *\n * This is slightly more robust than execa 6.0 and nodejs' `signal` support:\n * if a process was stopped (by `SIGTSTP` or `SIGSTOP`), it can still be killed.\n */\nexport function handleAbortSignalOnProcess(\n child: ExecaChildProcess,\n signal: AbortSignal\n) {\n signal.addEventListener(\"abort\", () => {\n if (os.platform() == \"win32\") {\n // Signals are ignored on Windows.\n // execa's default forceKillAfterTimeout behavior does not\n // make sense for Windows. Disable it explicitly.\n child.kill(\"SIGKILL\", { forceKillAfterTimeout: false });\n } else {\n // If the process is stopped (ex. Ctrl+Z, kill -STOP), make it\n // continue first so it can respond to signals including SIGKILL.\n child.kill(\"SIGCONT\");\n // A good citizen process should exit soon after recieving SIGTERM.\n // In case it doesn't, send SIGKILL after 5 seconds.\n child.kill(\"SIGTERM\", { forceKillAfterTimeout: 5000 });\n }\n });\n}\n\n/**\n * Given a list of commits and a starting commit,\n * traverse up the chain of `parents` until we find a public commit\n */\nexport function findPublicAncestor(\n allCommits: SmartlogCommits | undefined,\n from: BranchInfo\n): BranchInfo | undefined {\n let publicCommit: BranchInfo | undefined;\n if (allCommits != null) {\n const map = new Map(allCommits.map((commit) => [commit.branch, commit]));\n\n let current: BranchInfo | undefined = from;\n while (current != null) {\n if (current.partOfTrunk) {\n publicCommit = current;\n break;\n }\n if (current.parents[0] == null) {\n break;\n }\n current = map.get(current.parents[0]);\n }\n }\n\n return publicCommit;\n}\n\n/**\n * Run a command that is expected to produce JSON output.\n * Return a JSON object. On error, the JSON object has property \"error\".\n */\nexport function parseExecJson<T>(\n exec: execa.ExecaChildProcess,\n reply: (parsed?: T, error?: string) => void\n) {\n exec\n .then((result) => {\n const stdout = result.stdout;\n try {\n const parsed = JSON.parse(stdout);\n if (parsed.error != null) {\n reply(undefined, parsed.error);\n } else {\n reply(parsed as T);\n }\n } catch (err) {\n const msg = `Cannot parse ${truncate(\n result.escapedCommand\n )} output. (error: ${err}, stdout: ${stdout})`;\n reply(undefined, msg);\n }\n })\n .catch((err) => {\n // Try extracting error from stdout '{error: message}'.\n try {\n const parsed = JSON.parse(err.stdout);\n if (parsed.error != null) {\n reply(undefined, parsed.error);\n return;\n }\n } catch {\n // pass\n }\n // Fallback to general error.\n const msg = `Cannot run ${truncate(err.escapedCommand)}. (error: ${err})`;\n reply(undefined, msg);\n });\n}\n\nexport function internalOnlyDiffArgsForComparison(\n comparison: Comparison\n): Array<string> {\n switch (comparison.type) {\n case ComparisonType.UncommittedChanges:\n return [\"uncommitted\"];\n\n case ComparisonType.HeadChanges:\n return [\"head\"];\n\n case ComparisonType.StackChanges:\n return [\"stack\"];\n\n case ComparisonType.Committed:\n return [\"stack\", \"--ref\", comparison.hash];\n\n default:\n throw new Error(\"Unsupported comparison type: \" + comparison.type);\n }\n}\n","import type {\n BranchInfo,\n PRNumber,\n RepoInfo as RepoInfoFromCLI,\n RepoRelativePath,\n Status,\n} from \"@withgraphite/gti-cli-shared-types\";\nimport type {\n AbsolutePath,\n CodeReviewSystem,\n CommandArg,\n Comparison,\n Disposable,\n FetchedCommits,\n FetchedUncommittedChanges,\n Logger,\n MergeConflicts,\n OperationCommandProgressReporter,\n OperationProgress,\n PageVisibility,\n RepoInfo,\n RunnableOperation,\n SmartlogCommits,\n SuccessorInfo,\n ValidatedRepoInfo,\n} from \"@withgraphite/gti-shared\";\nimport {\n CommandRunner,\n ComparisonType,\n debounce,\n DEFAULT_DAYS_OF_COMMITS_TO_LOAD,\n ErrorShortMessages,\n notEmpty,\n unwrap,\n} from \"@withgraphite/gti-shared\";\nimport execa from \"execa\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport semver from \"semver\";\n\nimport type { ServerSideTracker } from \"./analytics/serverSideTracker\";\nimport { exists, removeLeadingPathSep } from \"./fs\";\nimport { GitHubCodeReviewProvider } from \"./github/githubCodeReviewProvider\";\nimport { OperationQueue } from \"./OperationQueue\";\nimport { PageFocusTracker } from \"./PageFocusTracker\";\nimport { RateLimiter } from \"./RateLimiter\";\nimport type { ServerPlatform } from \"./serverPlatform\";\nimport { TypedEventEmitter } from \"./TypedEventEmitter\";\nimport { handleAbortSignalOnProcess, serializeAsyncCall } from \"./utils\";\n\nexport const COMMIT_END_MARK = \"<<COMMIT_END_MARK>>\";\nexport const NULL_CHAR = \"\\0\";\nconst MAX_SIMULTANEOUS_CAT_CALLS = 4;\n\nconst MIN_REQUIRED_CLI_VERSION = \"1.0.14\";\n\ntype ConflictFileData = {\n contents: string;\n exists: boolean;\n isexec: boolean;\n issymlink: boolean;\n};\nexport type ResolveCommandConflictOutput = [\n | {\n command: null;\n conflicts: [];\n pathconflicts: [];\n }\n | {\n command: string;\n command_details: { cmd: string; to_abort: string; to_continue: string };\n conflicts: Array<{\n base: ConflictFileData;\n local: ConflictFileData;\n output: ConflictFileData;\n other: ConflictFileData;\n path: string;\n }>;\n pathconflicts: Array<never>;\n }\n];\n\ntype ComparisonForRelativeCat = Exclude<\n Comparison,\n { type: ComparisonType.Commit } | { type: ComparisonType.Range }\n>;\n/**\n * This class is responsible for providing information about the working copy\n * for a Graphite repository.\n *\n * A Repository may be reused by multiple connections, not just one GTI window.\n * This is so we don't duplicate watchman subscriptions and calls to status/log.\n * A Repository does not have a pre-defined `cwd`, so it may be re-used across cwds.\n *\n * Prefer using `RepositoryCache.getOrCreate()` to access and dispose `Repository`s.\n */\nexport class Repository {\n public IGNORE_COMMIT_MESSAGE_LINES_REGEX = /^((?:HG|SL):.*)/gm;\n\n private mergeConflicts: MergeConflicts | undefined = undefined;\n private uncommittedChanges: FetchedUncommittedChanges | null = null;\n private smartlogCommits: FetchedCommits | null = null;\n\n private mergeConflictsEmitter = new TypedEventEmitter<\n \"change\",\n MergeConflicts | undefined\n >();\n private uncommittedChangesEmitter = new TypedEventEmitter<\n \"change\",\n FetchedUncommittedChanges\n >();\n private smartlogCommitsChangesEmitter = new TypedEventEmitter<\n \"change\",\n FetchedCommits\n >();\n\n private smartlogCommitsBeginFetchingEmitter = new TypedEventEmitter<\n \"start\",\n undefined\n >();\n private uncommittedChangesBeginFetchingEmitter = new TypedEventEmitter<\n \"start\",\n undefined\n >();\n\n private disposables: Array<() => void> = [\n () => this.mergeConflictsEmitter.removeAllListeners(),\n () => this.uncommittedChangesEmitter.removeAllListeners(),\n () => this.smartlogCommitsChangesEmitter.removeAllListeners(),\n () => this.smartlogCommitsBeginFetchingEmitter.removeAllListeners(),\n () => this.uncommittedChangesBeginFetchingEmitter.removeAllListeners(),\n ];\n public onDidDispose(callback: () => unknown): void {\n this.disposables.push(callback);\n }\n\n private operationQueue: OperationQueue;\n private watchForChangesDisposer: undefined | (() => void);\n private pageFocusTracker = new PageFocusTracker();\n public codeReviewProvider?: GitHubCodeReviewProvider;\n\n private currentVisibleCommitRangeIndex = 0;\n private visibleCommitRanges: Array<number | undefined> = [\n DEFAULT_DAYS_OF_COMMITS_TO_LOAD,\n 60,\n undefined,\n ];\n\n /** Prefer using `RepositoryCache.getOrCreate()` to access and dispose `Repository`s. */\n constructor(\n public info: ValidatedRepoInfo,\n public platform: ServerPlatform,\n public logger: Logger\n ) {\n const remote = info.codeReviewSystem;\n if (remote.type === \"github\") {\n this.codeReviewProvider = new GitHubCodeReviewProvider(\n remote,\n this.runCommand.bind(this)\n );\n }\n\n this.watchForChangesDisposer = platform.watchForChanges(\n info,\n logger,\n (kind) => {\n if (kind === \"uncommitted changes\") {\n void this.fetchUncommittedChanges();\n void this.checkForMergeConflicts();\n } else if (kind === \"branches\") {\n void this.fetchSmartlogCommits();\n } else if (kind === \"merge conflicts\") {\n void this.checkForMergeConflicts();\n } else if (kind === \"everything\") {\n void this.fetchUncommittedChanges();\n void this.fetchSmartlogCommits();\n void this.checkForMergeConflicts();\n }\n }\n );\n\n this.operationQueue = new OperationQueue(\n this.logger,\n (\n operation: RunnableOperation,\n cwd: string,\n handleCommandProgress,\n signal: AbortSignal\n ): Promise<void> => {\n if (operation.runner === CommandRunner.Graphite) {\n return this.runOperation(\n operation,\n handleCommandProgress,\n cwd,\n signal\n );\n } else if (operation.runner === CommandRunner.CodeReviewProvider) {\n const normalizedArgs = this.normalizeOperationArgs(\n cwd,\n operation.args\n );\n\n if (this.codeReviewProvider?.runExternalCommand == null) {\n return Promise.reject(\n Error(\n \"CodeReviewProvider does not support running external commands\"\n )\n );\n }\n\n return (\n this.codeReviewProvider?.runExternalCommand(\n cwd,\n normalizedArgs,\n handleCommandProgress,\n signal\n ) ?? Promise.resolve()\n );\n }\n return Promise.resolve();\n }\n );\n\n // refetch summaries whenever we see new diffIds\n const seenDiffs = new Set();\n const subscription = this.subscribeToSmartlogCommitsChanges((fetched) => {\n if (fetched.commits.value) {\n const newDiffs = [];\n const diffIds = fetched.commits.value\n .filter((commit) => commit.pr)\n .map((commit) => commit.pr?.number);\n for (const diffId of diffIds) {\n if (!seenDiffs.has(diffId)) {\n newDiffs.push(diffId);\n seenDiffs.add(diffId);\n }\n }\n if (newDiffs.length > 0) {\n void this.codeReviewProvider?.triggerDiffSummariesFetch(\n // We could choose to only fetch the diffs that changed (`newDiffs`) rather than all diffs,\n // but our UI doesn't cache old values, thus all other diffs would appear empty\n this.getAllDiffIds()\n );\n }\n }\n });\n\n // the repo may already be in a conflict state on startup\n void this.checkForMergeConflicts();\n\n this.disposables.push(() => subscription.dispose());\n }\n\n public nextVisibleCommitRangeInDays(): number | undefined {\n if (\n this.currentVisibleCommitRangeIndex + 1 <\n this.visibleCommitRanges.length\n ) {\n this.currentVisibleCommitRangeIndex++;\n }\n return this.visibleCommitRanges[this.currentVisibleCommitRangeIndex];\n }\n\n /**\n * Typically, disposing is handled by `RepositoryCache` and not used directly.\n */\n public dispose() {\n this.disposables.forEach((dispose) => dispose());\n this.codeReviewProvider?.dispose();\n this.watchForChangesDisposer?.();\n }\n\n public onChangeConflictState(\n callback: (conflicts: MergeConflicts | undefined) => unknown\n ): Disposable {\n this.mergeConflictsEmitter.on(\"change\", callback);\n\n if (this.mergeConflicts) {\n // if we're already in merge conflicts, let the client know right away\n callback(this.mergeConflicts);\n }\n\n return {\n dispose: () => this.mergeConflictsEmitter.off(\"change\", callback),\n };\n }\n\n checkForMergeConflicts = debounce(\n serializeAsyncCall(async () => {\n this.logger.info(\"checking for merge conflicts\");\n // Fast path: check if .git/merge dir changed\n const wasAlreadyInConflicts = this.mergeConflicts != null;\n if (!wasAlreadyInConflicts) {\n const mergeDirExists = await exists(\n path.join(this.info.dotdir, \"rebase-merge\")\n );\n if (!mergeDirExists) {\n // Not in a conflict\n this.logger.info(\n `conflict state still the same (${\n wasAlreadyInConflicts ? \"IN merge conflict\" : \"NOT in conflict\"\n })`\n );\n return;\n }\n }\n\n if (this.mergeConflicts == null) {\n // notify UI that merge conflicts were detected and full details are loading\n this.mergeConflicts = { state: \"loading\" };\n this.mergeConflictsEmitter.emit(\"change\", this.mergeConflicts);\n }\n\n // More expensive full check for conflicts. Necessary if we see .gt/merge change, or if\n // we're already in a conflict and need to re-check if a conflict was resolved.\n\n const fetchStartTimestamp = Date.now();\n let output: Status;\n try {\n const proc = await this.runCommand([\"internal-only\", \"status\"]);\n output = JSON.parse(proc.stdout) as Status;\n } catch (err) {\n this.logger.error(`failed to check for merge conflicts: ${err}`);\n // To avoid being stuck in \"loading\" state forever, let's pretend there's no conflicts.\n this.mergeConflicts = undefined;\n this.mergeConflictsEmitter.emit(\"change\", this.mergeConflicts);\n return;\n }\n const branchName = await fs.promises\n .readFile(path.join(this.info.dotdir, \"rebase-merge\", \"head-name\"))\n .then(\n (contents) => {\n const contentsString = contents.toString();\n return contentsString.startsWith(\"refs/heads/\")\n ? contentsString.slice(\"refs/heads/\".length).trimEnd()\n : undefined;\n },\n () => undefined\n );\n\n this.mergeConflicts = computeNewConflicts(\n this.mergeConflicts,\n branchName,\n output,\n fetchStartTimestamp\n );\n this.logger.info(\n `repo ${this.mergeConflicts ? \"IS\" : \"IS NOT\"} in merge conflicts`,\n {\n mergeConflicts: this.mergeConflicts,\n files: this.mergeConflicts?.files,\n }\n );\n if (this.mergeConflicts) {\n const maxConflictsToLog = 20;\n const remainingConflicts = (this.mergeConflicts.files ?? [])\n .filter((conflict) => conflict.status === \"UNRESOLVED\")\n .map((conflict) => conflict.path)\n .slice(0, maxConflictsToLog);\n this.logger.info(\"remaining files with conflicts: \", {\n branchName,\n remainingConflicts,\n });\n }\n this.mergeConflictsEmitter.emit(\"change\", this.mergeConflicts);\n }),\n 100\n );\n\n public getMergeConflicts(): MergeConflicts | undefined {\n return this.mergeConflicts;\n }\n\n /**\n * Determine basic repo info including the root and important config values.\n * Resulting RepoInfo may have null fields if cwd is not a valid repo root.\n * Throws if `command` is not found.\n */\n static async getRepoInfo(\n command: string | undefined,\n logger: Logger,\n cwd: string\n ): Promise<RepoInfo> {\n const repoVersion = await findVersion(command, logger, cwd).catch(\n (err: Error) => err\n );\n if (repoVersion instanceof Error) {\n return { type: \"invalidCommand\", command: command ?? \"gt\" };\n }\n if (\n repoVersion !== \"local\" &&\n repoVersion !== \"dev\" &&\n semver.lt(repoVersion, MIN_REQUIRED_CLI_VERSION)\n ) {\n return {\n type: \"invalidVersion\",\n command: command ?? \"gt\",\n versionFound: repoVersion,\n versionRequired: MIN_REQUIRED_CLI_VERSION,\n };\n }\n\n const [profile, repoInfoRaw, preferredBranchEdit, createPrsAs] =\n await Promise.all([\n findRepoProfile(command, logger, cwd),\n findRepoInfo(command, logger, cwd),\n getConfig(command, logger, cwd, \"graphite.branch_edit\").then(\n (value) => (value as \"commit\" | \"amend\") ?? (\"amend\" as const)\n ),\n getConfig(command, logger, cwd, \"graphite.create_prs_as\").then(\n (value) => (value as \"draft\" | \"publish\") ?? (\"draft\" as const)\n ),\n ]);\n if (repoInfoRaw == null) {\n return { type: \"cwdNotARepository\", cwd };\n }\n\n let codeReviewSystem: CodeReviewSystem;\n if (typeof repoInfoRaw.remote === \"undefined\") {\n codeReviewSystem = { type: \"none\" };\n } else {\n const { owner, name, hostname } = repoInfoRaw.remote;\n codeReviewSystem = {\n type: \"github\",\n owner,\n repo: name,\n hostname,\n };\n }\n\n const result: RepoInfo = {\n type: \"success\",\n command,\n dotdir: repoInfoRaw.dotDir,\n repoRoot: repoInfoRaw.rootDir,\n codeReviewSystem,\n preferredBranchEdit,\n createPrsAs,\n profile,\n trunkBranch: repoInfoRaw.trunkBranch,\n };\n logger.info(\"repo info: \", result);\n return result;\n }\n\n /**\n * Run long-lived command which mutates the repository state.\n * Progress is streamed back as it comes in.\n * Operations are run immediately. For queueing, see OperationQueue.\n */\n async runOrQueueOperation(\n operation: RunnableOperation,\n onProgress: (progress: OperationProgress) => void,\n tracker: ServerSideTracker,\n cwd: string\n ): Promise<void> {\n await this.operationQueue.runOrQueueOperation(\n operation,\n onProgress,\n tracker,\n cwd\n );\n }\n\n /**\n * Abort the running operation if it matches the given id.\n */\n abortRunningOpeation(operationId: string) {\n this.operationQueue.abortRunningOperation(operationId);\n }\n\n /**\n * Called by this.operationQueue in response to runOrQueueOperation when an operation is ready to actually run.\n */\n private normalizeOperationArgs(\n cwd: string,\n args: Array<CommandArg>\n ): Array<string> {\n const repoRoot = unwrap(this.info.repoRoot);\n\n return args.map((arg) => {\n if (typeof arg === \"object\") {\n switch (arg.type) {\n case \"repo-relative-file\":\n return path.normalize(\n path.relative(cwd, path.join(repoRoot, arg.path))\n );\n\n case \"succeedable-revset\":\n return `max(successors(${arg.revset}))`;\n }\n }\n return arg;\n });\n }\n\n /**\n * Called by this.operationQueue in response to runOrQueueOperation when an operation is ready to actually run.\n */\n private async runOperation(\n operation: {\n id: string;\n args: Array<CommandArg>;\n stdin?: string;\n },\n onProgress: OperationCommandProgressReporter,\n cwd: string,\n signal: AbortSignal\n ): Promise<void> {\n const cwdRelativeArgs = this.normalizeOperationArgs(cwd, operation.args);\n const { stdin } = operation;\n const { command, args, options } = getExecParams(\n this.info.command,\n cwdRelativeArgs,\n cwd,\n stdin ? { input: stdin } : undefined\n );\n\n this.logger.log(\"run operation: \", command, cwdRelativeArgs.join(\" \"));\n\n const execution = execa(command, args, {\n ...options,\n stdout: \"pipe\",\n stderr: \"pipe\",\n });\n // It would be more appropriate to call this in reponse to execution.on('spawn'), but\n // this seems to be inconsistent about firing in all versions of node.\n // Just send spawn immediately. Errors during spawn like ENOENT will still be reported by `exit`.\n onProgress(\"spawn\");\n execution.stdout?.on(\"data\", (data) => {\n onProgress(\"stdout\", data.toString());\n });\n execution.stderr?.on(\"data\", (data) => {\n onProgress(\"stderr\", data.toString());\n });\n void execution.on(\"exit\", (exitCode) => {\n onProgress(\"exit\", exitCode || 0);\n });\n signal.addEventListener(\"abort\", () => {\n this.logger.log(\"kill operation: \", command, cwdRelativeArgs.join(\" \"));\n });\n handleAbortSignalOnProcess(execution, signal);\n await execution;\n }\n\n setPageFocus(page: string, state: PageVisibility) {\n this.pageFocusTracker.setState(page, state);\n }\n\n /** Return the latest fetched value for UncommittedChanges. */\n getUncommittedChanges(): FetchedUncommittedChanges | null {\n return this.uncommittedChanges;\n }\n\n subscribeToUncommittedChanges(\n callback: (result: FetchedUncommittedChanges) => unknown\n ): Disposable {\n this.uncommittedChangesEmitter.on(\"change\", callback);\n return {\n dispose: () => {\n this.uncommittedChangesEmitter.off(\"change\", callback);\n },\n };\n }\n\n fetchUncommittedChanges = debounce(\n serializeAsyncCall(async () => {\n const fetchStartTimestamp = Date.now();\n try {\n this.uncommittedChangesBeginFetchingEmitter.emit(\"start\");\n const proc = await this.runCommand([\"internal-only\", \"status\"]);\n const files = (JSON.parse(proc.stdout) as Status).files.map(\n (change) => ({\n ...change,\n path: removeLeadingPathSep(change.path),\n })\n );\n\n this.uncommittedChanges = {\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n files: { value: files },\n };\n this.uncommittedChangesEmitter.emit(\"change\", this.uncommittedChanges);\n } catch (err) {\n this.logger.error(\"Error fetching files: \", err);\n if (isProcessError(err)) {\n if (err.stderr.includes(\"checkout is currently in progress\")) {\n this.logger.info(\n \"Ignoring `hg status` error caused by in-progress checkout\"\n );\n return;\n }\n }\n // emit an error, but don't save it to this.uncommittedChanges\n this.uncommittedChangesEmitter.emit(\"change\", {\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n files: {\n error: err instanceof Error ? err : new Error(err as string),\n },\n });\n }\n }),\n 100\n );\n\n /** Return the latest fetched value for SmartlogCommits. */\n getSmartlogCommits(): FetchedCommits | null {\n return this.smartlogCommits;\n }\n\n subscribeToSmartlogCommitsChanges(\n callback: (result: FetchedCommits) => unknown\n ) {\n this.smartlogCommitsChangesEmitter.on(\"change\", callback);\n return {\n dispose: () => {\n this.smartlogCommitsChangesEmitter.off(\"change\", callback);\n },\n };\n }\n\n subscribeToSmartlogCommitsBeginFetching(\n callback: (isFetching: boolean) => unknown\n ) {\n const onStart = () => callback(true);\n this.smartlogCommitsBeginFetchingEmitter.on(\"start\", onStart);\n return {\n dispose: () => {\n this.smartlogCommitsBeginFetchingEmitter.off(\"start\", onStart);\n },\n };\n }\n\n subscribeToUncommittedChangesBeginFetching(\n callback: (isFetching: boolean) => unknown\n ) {\n const onStart = () => callback(true);\n this.uncommittedChangesBeginFetchingEmitter.on(\"start\", onStart);\n return {\n dispose: () => {\n this.uncommittedChangesBeginFetchingEmitter.off(\"start\", onStart);\n },\n };\n }\n\n fetchSmartlogCommits = debounce(\n serializeAsyncCall(async () => {\n const fetchStartTimestamp = Date.now();\n try {\n this.smartlogCommitsBeginFetchingEmitter.emit(\"start\");\n const proc = await this.runCommand([\"internal-only\", \"log\"]);\n const commits = parseCommitInfoOutput(this.logger, proc.stdout.trim());\n if (commits.length === 0) {\n throw new Error(ErrorShortMessages.NoCommitsFetched);\n }\n this.smartlogCommits = {\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n commits: { value: commits },\n };\n this.smartlogCommitsChangesEmitter.emit(\"change\", this.smartlogCommits);\n } catch (err) {\n this.logger.error(\"Error fetching commits: \", err);\n this.smartlogCommitsChangesEmitter.emit(\"change\", {\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n commits: {\n error: err instanceof Error ? err : new Error(err as string),\n },\n });\n }\n }),\n 100\n );\n\n /** Watch for changes to the head commit, e.g. from checking out a new commit */\n subscribeToHeadCommit(callback: (head: BranchInfo) => unknown) {\n let headCommit = this.smartlogCommits?.commits.value?.find(\n (commit) => commit.isHead\n );\n if (headCommit != null) {\n callback(headCommit);\n }\n const onData = (data: FetchedCommits) => {\n const newHead = data?.commits.value?.find((commit) => commit.isHead);\n if (newHead != null && newHead.branch !== headCommit?.branch) {\n callback(newHead);\n headCommit = newHead;\n }\n };\n this.smartlogCommitsChangesEmitter.on(\"change\", onData);\n return {\n dispose: () => {\n this.smartlogCommitsChangesEmitter.off(\"change\", onData);\n },\n };\n }\n\n private catLimiter = new RateLimiter(MAX_SIMULTANEOUS_CAT_CALLS, (s) =>\n this.logger.info(\"[cat]\", s)\n );\n /** Return file content for the parent of a given revset, e.g. hash or `.` */\n public relativeCat(\n file: AbsolutePath,\n comparison: ComparisonForRelativeCat\n ): Promise<string> {\n const relativePath = path.relative(this.info.repoRoot, file);\n\n return this.catLimiter.enqueueRun(async () => {\n // For `gt relative-cat`, we want the output of the command verbatim.\n const options = { stripFinalNewline: false };\n return (\n await this.runCommand(\n [\n \"internal-only\",\n \"relative-cat\",\n ...this.catArgs(comparison, relativePath),\n ],\n /*cwd=*/ undefined,\n options\n )\n ).stdout;\n });\n }\n\n public cat(file: AbsolutePath, ref: string): Promise<string> {\n const relativePath = path.relative(this.info.repoRoot, file);\n\n return this.catLimiter.enqueueRun(async () => {\n // For `gt cat`, we want the output of the command verbatim.\n const options = { stripFinalNewline: false };\n return (\n await this.runCommand(\n [\"internal-only\", \"cat\", ref, relativePath],\n /*cwd=*/ undefined,\n options\n )\n ).stdout;\n });\n }\n\n private catArgs(\n comparison: ComparisonForRelativeCat,\n file: string\n ): Array<string> {\n switch (comparison.type) {\n case ComparisonType.UncommittedChanges:\n return [\"uncommitted\", file];\n\n case ComparisonType.HeadChanges:\n return [\"head\", file];\n\n case ComparisonType.StackChanges:\n return [\"stack\", file];\n\n case ComparisonType.Committed:\n return [\"stack\", file, \"--ref\", comparison.hash];\n }\n }\n\n public getAllDiffIds(): Array<PRNumber> {\n return (\n this.getSmartlogCommits()\n ?.commits.value?.map((commit) => commit.pr?.number)\n .filter(notEmpty) ?? []\n );\n }\n\n public runCommand(\n args: Array<string>,\n cwd?: string,\n options?: execa.Options\n ): execa.ExecaChildProcess<string> {\n return runCommand({\n command: this.info.command,\n args,\n logger: this.logger,\n cwd: unwrap(cwd ?? this.info.repoRoot),\n options,\n });\n }\n\n public getConfig(configName: string): Promise<string | undefined> {\n return getConfig(\n this.info.command,\n this.logger,\n this.info.repoRoot,\n configName\n );\n }\n public setConfig(\n level: ConfigLevel,\n configName: string,\n configValue: string\n ): Promise<void> {\n return setConfig({\n command: this.info.command,\n logger: this.logger,\n cwd: this.info.repoRoot,\n level,\n configName,\n configValue,\n });\n }\n}\n\nexport function runCommand({\n command: command_,\n args: args_,\n logger,\n cwd,\n options: options_,\n}: {\n command?: string;\n args: Array<string>;\n logger?: Logger;\n cwd: string;\n options?: execa.Options;\n}): execa.ExecaChildProcess {\n const { command, args, options } = getExecParams(\n command_,\n args_,\n cwd,\n options_\n );\n if (logger) {\n logger.log(\"run command: \", command, ...args, options);\n }\n\n return execa(command, args, options);\n}\n\nasync function findVersion(\n command: string | undefined,\n logger: Logger,\n cwd: string\n): Promise<string> {\n try {\n return (\n await runCommand({\n command,\n args: [\"--version\"],\n logger,\n cwd,\n })\n ).stdout;\n } catch (error) {\n logger.error(`Failed to find gt version in ${cwd}`, error);\n throw error;\n }\n}\n\nasync function findRepoInfo(\n command: string | undefined,\n logger: Logger,\n cwd: string\n): Promise<RepoInfoFromCLI | undefined> {\n try {\n return JSON.parse(\n (\n await runCommand({\n command,\n args: [\"internal-only\", \"repo-info\"],\n logger,\n cwd,\n })\n ).stdout\n );\n } catch (error) {\n logger.error(`Failed to find repository info in ${cwd}`, error);\n return undefined;\n }\n}\n\nasync function findRepoProfile(\n command: string | undefined,\n logger: Logger,\n cwd: string\n): Promise<{\n appUrl: string;\n}> {\n try {\n return JSON.parse(\n (\n await runCommand({\n command,\n args: [\"internal-only\", \"profile\"],\n logger,\n cwd,\n })\n ).stdout\n );\n } catch (error) {\n logger.error(`Failed to find repository profile in ${cwd}`, error);\n return {\n appUrl: \"https://app.graphite.dev/\",\n };\n }\n}\n\nasync function getConfig(\n command: string | undefined,\n logger: Logger,\n cwd: string,\n configName: string\n): Promise<string | undefined> {\n try {\n return (\n await runCommand({\n command,\n args: [\"internal-only\", \"config\", configName],\n logger,\n cwd,\n })\n ).stdout.trim();\n } catch {\n // `config` exits with status 1 if config is not set. This is not an error.\n return undefined;\n }\n}\n\n// Eventually add repo\ntype ConfigLevel = \"user\";\nasync function setConfig({\n command,\n logger,\n cwd,\n level,\n configName,\n configValue,\n}: {\n command?: string;\n logger: Logger;\n cwd: string;\n level: ConfigLevel;\n configName: string;\n configValue: string;\n}): Promise<void> {\n await runCommand({\n command,\n args: [\n \"internal-only\",\n \"set-config\",\n `--level`,\n level,\n configName,\n configValue,\n ],\n logger,\n cwd,\n });\n}\n\nfunction getExecParams(\n command: string | undefined,\n args_: Array<string>,\n cwd: string,\n options_?: execa.Options\n): {\n command: string;\n args: Array<string>;\n options: execa.Options;\n} {\n let args = [...args_];\n // expandHomeDir is not supported on windows\n if (process.platform !== \"win32\") {\n // commit/amend have unconventional ways of escaping slashes from messages.\n // We have to 'unescape' to make it work correctly.\n args = args.map((arg) => arg.replace(/\\\\\\\\/g, \"\\\\\"));\n }\n const options = {\n ...options_,\n env: {\n LANG: \"en_US.utf-8\", // make sure to use unicode if user hasn't set LANG themselves\n EDITOR: undefined,\n GRAPHITE_INTERACTIVE: \"true\",\n GIT_OPTIONAL_LOCKS: \"0\", // workaround for not grabbing index.lock until cli change lands\n },\n cwd,\n };\n\n // Hack: for pkg'd CLI, pointing to the executable at itself doesn't work. We need to treat it like a node script.\n if (!command && process.argv[1].startsWith(\"/snapshot/\")) {\n command = process.argv[0];\n args = [\"/snapshot/monologue/apps/public/cli/dist/graphite.js\", ...args];\n } else if (!command) {\n command = \"gt\";\n }\n\n // TODO (GT-11365): we could run with systemd for better OOM protection when on linux\n return { command, args, options };\n}\n\n/**\n * Extract CommitInfos from log calls that use FETCH_TEMPLATE.\n */\nexport function parseCommitInfoOutput(\n logger: Logger,\n output: string\n): SmartlogCommits {\n let commitInfos: Array<BranchInfo> = [];\n try {\n commitInfos = JSON.parse(output);\n } catch (err) {\n logger.error(\"failed to parse branch info\", err);\n }\n return commitInfos;\n}\nexport function parseSuccessorData(\n successorData: string\n): SuccessorInfo | undefined {\n const [successorString] = successorData.split(\",\", 1); // we're only interested in the first available mutation\n if (!successorString) {\n return undefined;\n }\n const successor = successorString.split(\":\");\n return {\n hash: successor[1],\n type: successor[0],\n };\n}\n\n/**\n * Returns absolute path for a repo-relative file path.\n * If the path \"escapes\" the repository's root dir, returns null\n * Used to validate that a file path does not \"escape\" the repo, and the file can safely be modified on the filesystem.\n * absolutePathForFileInRepo(\"foo/bar/file.txt\", repo) -> /path/to/repo/foo/bar/file.txt\n * absolutePathForFileInRepo(\"../file.txt\", repo) -> null\n */\nexport function absolutePathForFileInRepo(\n filePath: RepoRelativePath,\n repo: Repository,\n pathMod = path\n): AbsolutePath | null {\n // Note that resolve() is contractually obligated to return an absolute path.\n const fullPath = pathMod.resolve(repo.info.repoRoot, filePath);\n // Prefix checks on paths can be footguns on Windows for C:\\\\ vs c:\\\\, but since\n // we use the same exact path check here and in the resolve, there should be\n // no incompatibility here.\n if (fullPath.startsWith(repo.info.repoRoot + pathMod.sep)) {\n return fullPath;\n } else {\n return null;\n }\n}\n\nexport function repoRelativePathForAbsolutePath(\n absolutePath: AbsolutePath,\n repo: Repository,\n pathMod = path\n): RepoRelativePath {\n return pathMod.relative(repo.info.repoRoot, absolutePath);\n}\n\nfunction isProcessError(s: unknown): s is { stderr: string } {\n return s != null && typeof s === \"object\" && \"stderr\" in s;\n}\n\nfunction computeNewConflicts(\n previousConflicts: MergeConflicts,\n branchName: string | undefined,\n commandOutput: Status,\n fetchStartTimestamp: number\n): MergeConflicts | undefined {\n const newConflictData = commandOutput;\n if (!newConflictData?.conflicts || !branchName) {\n return undefined;\n }\n\n const newConflicts = newConflictData.files.filter(\n (file) => file.status === \"UNRESOLVED\"\n );\n const conflicts: MergeConflicts = {\n state: \"loaded\",\n branchName,\n files: [],\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n };\n if (previousConflicts?.files != null && previousConflicts.files.length > 0) {\n // we saw conflicts before, some of which might now be resolved. Preserve previous ordering.\n const newConflictSet = new Set(\n newConflicts.map((conflict) => conflict.path)\n );\n conflicts.files = previousConflicts.files.map((conflict) =>\n newConflictSet.has(conflict.path)\n ? { path: conflict.path, status: \"UNRESOLVED\" }\n : // 'R' is overloaded to mean \"removed\" for `gt status` but 'Resolved' for `gt resolve --list`\n // let's re-write this to make the UI layer simpler.\n { path: conflict.path, status: \"RESOLVED\" }\n );\n } else {\n conflicts.files = newConflicts.map((conflict) => ({\n path: conflict.path,\n status: \"UNRESOLVED\",\n }));\n }\n\n return conflicts;\n}\n","import fs from \"fs\";\nimport path from \"path\";\n\n/**\n * Check if file path exists.\n * May still throw non-ENOENT fs access errors.\n * Note: this works on Node 10.x\n */\nexport function exists(file: string): Promise<boolean> {\n return fs.promises\n .stat(file)\n .then(() => true)\n .catch((error: NodeJS.ErrnoException) => {\n if (error.code === \"ENOENT\") {\n return false;\n } else {\n throw error;\n }\n });\n}\n\n/**\n * Add a trailing path sep (/ or \\) if one does not exist\n */\nexport function ensureTrailingPathSep(p: string): string {\n if (p.endsWith(path.sep)) {\n return p;\n }\n return p + path.sep;\n}\n\n/**\n * Add a trailing path sep (/ or \\) if one does not exist\n */\nexport function removeLeadingPathSep(p: string): string {\n if (p.startsWith(path.sep)) {\n return p.slice(1);\n }\n return p;\n}\n","import type {\n AbsolutePath,\n Logger,\n PlatformSpecificClientToServerMessages,\n ServerToClientMessage,\n ValidatedRepoInfo,\n} from \"@withgraphite/gti-shared\";\nimport { unwrap } from \"@withgraphite/gti-shared\";\nimport { spawn } from \"child_process\";\nimport chokidar from \"chokidar\";\nimport { default as path, default as pathModule } from \"path\";\n\nimport type { Repository } from \"./Repository\";\n\nexport type KindOfChange =\n | \"uncommitted changes\"\n | \"branches\"\n | \"merge conflicts\"\n | \"everything\";\n\n/**\n * Platform-specific server-side API for each target: vscode extension host, electron standalone, browser, ...\n * See also platform.ts\n */\nexport interface ServerPlatform {\n platformName: string;\n handleMessageFromClient(\n repo: Repository | undefined,\n message: PlatformSpecificClientToServerMessages,\n postMessage: (message: ServerToClientMessage) => void,\n onDispose: (disapose: () => unknown) => void\n ): void | Promise<void>;\n watchForChanges(\n repoInfo: ValidatedRepoInfo,\n logger: Logger,\n changeCallback: (kind: KindOfChange) => unknown\n ): (() => void) | undefined;\n}\n\nexport const browserServerPlatform: ServerPlatform = {\n platformName: \"browser\",\n watchForChanges: (\n repoInfo: ValidatedRepoInfo,\n logger: Logger,\n changeCallback: (kind: KindOfChange) => unknown\n ) => {\n const { repoRoot, dotdir } = repoInfo;\n\n const dotDirWatcher = chokidar.watch(dotdir, { cwd: dotdir });\n dotDirWatcher.on(\"ready\", () => {\n // if the repo changes, also recheck files. E.g. if you commit, your uncommitted changes will also change.\n changeCallback(\"everything\");\n });\n dotDirWatcher.on(\"all\", (_event, path) => {\n if (path.startsWith(\"rebase-merge\")) {\n changeCallback(\"merge conflicts\");\n }\n if (path.startsWith(\"index\") || path.startsWith(\"HEAD\")) {\n changeCallback(\"uncommitted changes\");\n }\n if (\n path.startsWith(\"refs/heads\") ||\n path.startsWith(\"refs/branch-metadata\") ||\n path.startsWith(\"HEAD\")\n ) {\n changeCallback(\"branches\");\n }\n });\n\n const relativeDotDir = path.relative(repoRoot, dotdir);\n\n const worktreeWatcher = chokidar.watch(repoRoot, {\n cwd: repoRoot,\n ignored: `${relativeDotDir}/**`,\n });\n worktreeWatcher.on(\"all\", () => {\n changeCallback(\"uncommitted changes\");\n });\n return () => {\n worktreeWatcher\n .close()\n .catch(() =>\n logger.error(\n `failed to close chokidar worktree watcher for ${repoRoot}`\n )\n );\n dotDirWatcher\n .close()\n .catch(() =>\n logger.error(`failed to close chokidar dotdir watcher for ${dotdir}`)\n );\n };\n },\n handleMessageFromClient: (\n repo: Repository | undefined,\n message: PlatformSpecificClientToServerMessages\n ) => {\n switch (message.type) {\n case \"platform/openFile\": {\n const path: AbsolutePath = pathModule.join(\n unwrap(repo?.info.repoRoot),\n message.path\n );\n let command;\n if (command == null) {\n // use OS-builtin open command to open files\n // (which may open different file extensions with different programs)\n // TODO (GT-11363): add a config option to determine which program to launch\n switch (process.platform) {\n case \"darwin\":\n command = \"/usr/bin/open\";\n break;\n\n case \"win32\":\n command = \"notepad.exe\";\n break;\n\n case \"linux\":\n command = \"xdg-open\";\n break;\n\n default:\n }\n }\n if (command) {\n // Because the GTI server is likely running in the background and is\n // no longer attached to a terminal, this is designed for the case\n // where the user opens the file in a windowed editor (hence\n // `windowsHide: false`, which is the default for\n // `child_process.spawn()`, but not for `execa()`):\n //\n // - For users using a simple one-window-per-file graphical text\n // editor, like notepad.exe, this is relatively straightforward.\n // - For users who prefer a terminal-based editor, like Emacs,\n // a conduit like EmacsClient would be required.\n //\n // Further, killing GTI should not kill the editor, so this follows\n // the pattern for spawning an independent, long-running process in\n // Node.js as described here:\n //\n // https://nodejs.org/docs/latest-v10.x/api/child_process.html#child_process_options_detached\n repo?.logger.log(\"open file\", path);\n // TODO (GT-11364): Report error if spawn() fails?\n const proc = spawn(command, [path], {\n detached: true,\n stdio: \"ignore\",\n windowsHide: false,\n windowsVerbatimArguments: true,\n });\n // Silent error. Don't crash the server process.\n proc.on(\"error\", (err) => {\n repo?.logger.log(\"failed to open\", path, err);\n });\n proc.unref();\n }\n break;\n }\n\n default:\n }\n },\n};\n","import type {\n AbsolutePath,\n Logger,\n RepositoryError,\n ValidatedRepoInfo,\n} from \"@withgraphite/gti-shared\";\n\nimport { ensureTrailingPathSep } from \"./fs\";\nimport { Repository } from \"./Repository\";\nimport type { ServerPlatform } from \"./serverPlatform\";\nimport { TypedEventEmitter } from \"./TypedEventEmitter\";\n\n/**\n * Reference-counting access to a {@link Repository}, via a Promise.\n * Be sure to `unref()` when no longer needed.\n */\nexport interface RepositoryReference {\n promise: Promise<Repository | RepositoryError>;\n unref: () => unknown;\n}\n\n/**\n * We return `RepositoryReference`s synchronously before we have the Repository,\n * but reference counts should be associated with the actual async constructed Repository,\n * which is why we can't return RefCounted<Repository> directly.\n */\nclass RepositoryReferenceImpl implements RepositoryReference {\n constructor(\n public promise: Promise<Repository | RepositoryError>,\n private disposeFunc: () => void\n ) {}\n public unref() {\n if (!this.disposed) {\n this.disposed = true;\n this.disposeFunc();\n }\n }\n\n internalReference: RefCounted<Repository> | undefined;\n disposed = false;\n}\n\nclass RefCounted<T extends { dispose: () => void }> {\n constructor(public value: T) {}\n private references = 0;\n\n public isDisposed = false;\n public ref() {\n this.references++;\n }\n public getNumberOfReferences() {\n return this.references;\n }\n public dispose() {\n this.references--;\n if (!this.isDisposed && this.references === 0) {\n this.isDisposed = true;\n this.value.dispose();\n }\n }\n}\n\n/**\n * Allow re-using Repository instances by storing instances by path,\n * and controlling how Repositories are created.\n *\n * Some async work is needed to construct repositories (finding repo root dir),\n * so it's possible to duplicate some work if multiple repos are constructed at similar times.\n * We still enable Repository re-use in this case by double checking for pre-existing Repos at the last second.\n */\nclass RepositoryCache {\n // allow mocking Repository in tests\n constructor(private RepositoryType = Repository) {}\n\n /**\n * Previously distributed RepositoryReferences, keyed by repository root path\n * Note that Repositories do not define their own `cwd`, and can be re-used across cwds.\n */\n private reposByRoot = new Map<AbsolutePath, RefCounted<Repository>>();\n private activeReposEmitter = new TypedEventEmitter<\"change\", undefined>();\n\n private lookup(dirGuess: AbsolutePath): RefCounted<Repository> | undefined {\n for (const repo of this.reposByRoot.values()) {\n if (\n dirGuess === repo.value.info.repoRoot ||\n dirGuess.startsWith(ensureTrailingPathSep(repo.value.info.repoRoot))\n ) {\n if (!repo.isDisposed) {\n return repo;\n }\n }\n }\n return undefined;\n }\n\n /**\n * Create a new Repository, or re-use if one already exists.\n * Repositories are reference-counted to ensure they can be disposed when no longer needed.\n */\n getOrCreate(\n cmd: string | undefined,\n platform: ServerPlatform,\n logger: Logger,\n cwd: string\n ): RepositoryReference {\n // Fast path: if this cwd is already a known repo root, we can use it directly.\n // This only works if the cwd happens to be the repo root.\n const found = this.lookup(cwd);\n if (found) {\n found.ref();\n return new RepositoryReferenceImpl(Promise.resolve(found.value), () =>\n found.dispose()\n );\n }\n\n // More typically, we can re-use a Repository among different cwds:\n\n // eslint-disable-next-line prefer-const\n let ref: RepositoryReferenceImpl;\n const lookupRepoInfoAndReuseIfPossible = async (): Promise<\n Repository | RepositoryError\n > => {\n // TODO (GT-11369): we should rate limit how many getRepoInfos we run at a time, and make other callers just wait.\n // this would guard against querying lots of redundant paths within the same repo.\n // This is probably not necessary right now, but would be useful for a VS Code extension where we need to query\n // individual file paths to add diff gutters.\n const repoInfo = await this.RepositoryType.getRepoInfo(cmd, logger, cwd);\n logger.info(\"repoInfo\", repoInfo);\n // important: there should be no `await` points after here, to ensure there is no race when re-using Repositories.\n if (repoInfo.type !== \"success\") {\n // No repository found at this root, or some other error prevents the repo from being created\n return repoInfo;\n }\n\n if (ref.disposed) {\n // If the reference is disposed, the caller gave up while waiting for the repo to be created.\n // make sure we don't create a dangling Repository.\n return {\n type: \"unknownError\",\n error: new Error(\"Repository already disposed\"),\n };\n }\n\n // Now that we've spent some async time to determine this repo's actual root,\n // we can check if we already have a reference to it saved.\n // This way, we can still re-use a Repository, and only risk duplicating `getRepoInfo` work.\n const newlyFound = this.lookup(repoInfo.repoRoot);\n if (newlyFound) {\n // if it is found now, it means either the cwd differs from the repo root (lookup fails), or\n // another instance was created at the same time and finished faster than this one (lookup failed before, but succeeds now).\n\n newlyFound.ref();\n ref.internalReference = newlyFound;\n return newlyFound.value;\n }\n\n // This is where we actually start new subscriptions and trigger work, so we should only do this\n // once we're sure we don't have a repository to re-use.\n const repo = new this.RepositoryType(\n repoInfo as ValidatedRepoInfo, // repoInfo is now guaranteed to have these root/dotdir set\n platform,\n logger\n );\n\n const internalRef = new RefCounted(repo);\n internalRef.ref();\n ref.internalReference = internalRef;\n this.reposByRoot.set(repoInfo.repoRoot, internalRef);\n this.activeReposEmitter.emit(\"change\");\n return repo;\n };\n ref = new RepositoryReferenceImpl(\n lookupRepoInfoAndReuseIfPossible(),\n () => {\n if (ref.internalReference) {\n ref.internalReference.dispose();\n }\n ref.unref();\n }\n );\n return ref;\n }\n\n /**\n * Lookup a cached repository without creating a new one if it doens't exist\n */\n public cachedRepositoryForPath(path: AbsolutePath): Repository | undefined {\n const ref = this.lookup(path);\n return ref?.value;\n }\n\n public onChangeActiveRepos(\n cb: (repos: Array<Repository>) => unknown\n ): () => unknown {\n const onChange = () => {\n cb([...this.reposByRoot.values()].map((ref) => ref.value));\n };\n this.activeReposEmitter.on(\"change\", onChange);\n // start with initial repos set\n onChange();\n return () => this.activeReposEmitter.off(\"change\", onChange);\n }\n\n /** Clean up all known repos. Mostly useful for testing. */\n clearCache() {\n this.reposByRoot.forEach((value) => value.dispose());\n this.reposByRoot = new Map();\n this.activeReposEmitter.removeAllListeners();\n }\n\n public numberOfActiveServers(): number {\n let numActive = 0;\n for (const repo of this.reposByRoot.values()) {\n numActive += repo.getNumberOfReferences();\n }\n return numActive;\n }\n}\n\nexport const __TEST__ = { RepositoryCache };\n\nexport const repositoryCache = new RepositoryCache();\n","import type {\n AuthInfo,\n ChangedFiles,\n} from \"@withgraphite/gti-cli-shared-types\";\nimport {\n type ClientToServerMessage,\n type ClientToServerMessageWithPayload,\n type Disposable,\n type FetchedCommits,\n type FetchedUncommittedChanges,\n type Logger,\n type MergeConflicts,\n type PlatformSpecificClientToServerMessages,\n type RepositoryError,\n type Result,\n type ServerToClientMessage,\n ComparisonType,\n deserializeFromString,\n randomId,\n serializeToString,\n unwrap,\n} from \"@withgraphite/gti-shared\";\nimport execa from \"execa\";\nimport fs from \"fs\";\nimport { realpath } from \"fs/promises\";\nimport which from \"which\";\n\nimport type { ClientConnection } from \".\";\nimport type { ServerSideTracker } from \"./analytics/serverSideTracker\";\nimport {\n absolutePathForFileInRepo,\n Repository,\n runCommand,\n} from \"./Repository\";\nimport type { RepositoryReference } from \"./RepositoryCache\";\nimport { repositoryCache } from \"./RepositoryCache\";\nimport type { ServerPlatform } from \"./serverPlatform\";\nimport { findPublicAncestor, internalOnlyDiffArgsForComparison } from \"./utils\";\n\ntype IncomingMessageWithPayload = ClientToServerMessageWithPayload;\nexport type IncomingMessage = ClientToServerMessage;\nexport type OutgoingMessage = ServerToClientMessage;\n\ntype GeneralMessage = IncomingMessage &\n (\n | { type: \"changeCwd\" }\n | { type: \"requestRepoInfo\" }\n | { type: \"requestApplicationInfo\" }\n | { type: \"fileBugReport\" }\n | { type: \"track\" }\n | { type: \"installCli\" }\n | { type: \"updateCli\" }\n | { type: \"fetchAllBranches\" }\n | { type: \"initializeRepository\" }\n );\ntype WithRepoMessage = Exclude<IncomingMessage, GeneralMessage>;\n\n/**\n * Return true if a ClientToServerMessage is a ClientToServerMessageWithPayload\n */\nfunction expectsBinaryPayload(\n message: unknown\n): message is ClientToServerMessageWithPayload {\n return (\n message != null &&\n typeof message === \"object\" &&\n (message as ClientToServerMessageWithPayload).hasBinaryPayload === true\n );\n}\n\n/**\n * Message passing channel built on top of ClientConnection.\n * Use to send and listen for well-typed events with the client\n *\n * Note: you must set the current repository to start sending data back to the client.\n */\nexport class ServerToClientAPI {\n private listenersByType = new Map<\n string,\n Set<(message: IncomingMessage) => void | Promise<void>>\n >();\n private incomingListener: Disposable;\n\n /** Disposables that must be disposed whenever the current repo is changed */\n private repoDisposables: Array<Disposable> = [];\n private subscriptions = new Map<string, Disposable>();\n private activeRepoRef: RepositoryReference | undefined;\n\n private queuedMessages: Array<IncomingMessage> = [];\n private currentState:\n | { type: \"loading\" }\n | { type: \"repo\"; repo: Repository; cwd: string }\n | { type: \"error\"; error: RepositoryError } = { type: \"loading\" };\n\n private pageId = randomId();\n\n constructor(\n private platform: ServerPlatform,\n private connection: ClientConnection,\n private tracker: ServerSideTracker,\n private logger: Logger\n ) {\n // messages with binary payloads are sent as two post calls. We first get the JSON message, then the binary payload,\n // which we will reconstruct together.\n let messageExpectingBinaryFollowup: ClientToServerMessageWithPayload | null =\n null;\n this.incomingListener = this.connection.onDidReceiveMessage(\n (buf, isBinary) => {\n if (isBinary) {\n if (messageExpectingBinaryFollowup == null) {\n connection.logger?.error(\n \"Error: got a binary message when not expecting one\"\n );\n return;\n }\n // TODO (GT-11366): we don't handle queueing up messages with payloads...\n this.handleIncomingMessageWithPayload(\n messageExpectingBinaryFollowup,\n buf\n );\n messageExpectingBinaryFollowup = null;\n return;\n } else if (messageExpectingBinaryFollowup != null) {\n connection.logger?.error(\n \"Error: didnt get binary payload after a message that requires one\"\n );\n messageExpectingBinaryFollowup = null;\n return;\n }\n const message = buf.toString(\"utf-8\");\n const data = deserializeFromString(message) as IncomingMessage;\n if (expectsBinaryPayload(data)) {\n // remember this message, and wait to get the binary payload before handling it\n messageExpectingBinaryFollowup = data;\n return;\n }\n\n // When the client is connected, we want to immediately start listening to messages.\n // However, we can't properly respond to these messages until we have a repository set up.\n // Queue up messages until a repository is set.\n if (this.currentState.type === \"loading\") {\n this.queuedMessages.push(data);\n } else {\n try {\n this.handleIncomingMessage(data);\n } catch (err) {\n connection.logger?.error(\n \"error handling incoming message: \",\n data,\n err\n );\n }\n }\n }\n );\n }\n\n private setRepoError(error: RepositoryError) {\n this.disposeRepoDisposables();\n\n this.currentState = { type: \"error\", error };\n\n this.tracker.context.setRepo(undefined);\n\n this.processQueuedMessages();\n }\n\n private setCurrentRepo(repo: Repository, cwd: string) {\n this.disposeRepoDisposables();\n\n this.currentState = { type: \"repo\", repo, cwd };\n\n this.tracker.context.setRepo(repo);\n\n if (repo.codeReviewProvider != null) {\n this.repoDisposables.push(\n repo.codeReviewProvider.onChangeDiffSummaries((value) => {\n this.postMessage({ type: \"fetchedDiffSummaries\", summaries: value });\n })\n );\n }\n\n this.repoDisposables.push(\n repo.subscribeToHeadCommit((head) => {\n const allCommits = repo.getSmartlogCommits();\n const ancestor = findPublicAncestor(allCommits?.commits.value, head);\n this.tracker.track(\"HeadCommitChanged\", {\n extras: {\n hash: head.branch,\n public: ancestor?.branch,\n },\n });\n })\n );\n\n this.processQueuedMessages();\n }\n\n postMessage(message: OutgoingMessage) {\n void this.connection.postMessage(serializeToString(message)).catch(() => {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to post message to client\");\n });\n }\n\n /** Get a repository reference for a given cwd, and set that as the active repo. */\n setActiveRepoForCwd(newCwd: string) {\n if (this.activeRepoRef !== undefined) {\n this.activeRepoRef.unref();\n }\n this.logger.info(`Setting active repo cwd to ${newCwd}`);\n // Set as loading right away while we determine the new cwd's repo\n // This ensures new messages coming in will be queued and handled only with the new repository\n this.currentState = { type: \"loading\" };\n const command = this.connection.command;\n this.activeRepoRef = repositoryCache.getOrCreate(\n command,\n this.platform,\n this.logger,\n newCwd\n );\n void this.activeRepoRef.promise.then((repoOrError) => {\n if (repoOrError instanceof Repository) {\n this.setCurrentRepo(repoOrError, newCwd);\n } else {\n this.setRepoError(repoOrError);\n }\n });\n }\n\n dispose() {\n this.incomingListener.dispose();\n this.disposeRepoDisposables();\n\n if (this.activeRepoRef !== undefined) {\n this.activeRepoRef.unref();\n }\n }\n\n private disposeRepoDisposables() {\n this.repoDisposables.forEach((disposable) => disposable.dispose());\n this.repoDisposables = [];\n\n this.subscriptions.forEach((sub) => sub.dispose());\n this.subscriptions.clear();\n }\n\n private processQueuedMessages() {\n for (const message of this.queuedMessages) {\n try {\n this.handleIncomingMessage(message);\n } catch (err) {\n this.connection.logger?.error(\n \"error handling queued message: \",\n message,\n err\n );\n }\n }\n this.queuedMessages = [];\n }\n\n private handleIncomingMessageWithPayload(\n message: IncomingMessageWithPayload,\n payload: ArrayBuffer\n ) {\n switch (message.type) {\n case \"uploadFile\": {\n const { id, filename } = message;\n const uploadFile: null | ((value: any, opts: any) => Promise<string>) =\n null as null | ((value: any) => Promise<string>);\n if (uploadFile == null) {\n return;\n }\n this.tracker\n .operation(\"UploadImage\", \"UploadImageError\", {}, () =>\n uploadFile(unwrap(this.connection.logger), {\n filename,\n data: payload,\n })\n )\n .then((result: string) => {\n this.connection.logger?.info(\n \"sucessfully uploaded file\",\n filename,\n result\n );\n this.postMessage({\n type: \"uploadFileResult\",\n id,\n result: { value: result },\n });\n })\n .catch((error: Error) => {\n this.connection.logger?.info(\n \"error uploading file\",\n filename,\n error\n );\n this.postMessage({\n type: \"uploadFileResult\",\n id,\n result: { error },\n });\n });\n break;\n }\n }\n }\n\n private handleIncomingMessage(data: IncomingMessage) {\n this.handleIncomingGeneralMessage(data as GeneralMessage);\n const { currentState } = this;\n switch (currentState.type) {\n case \"repo\": {\n const { repo, cwd } = currentState;\n this.handleIncomingMessageWithRepo(data as WithRepoMessage, repo, cwd);\n break;\n }\n\n // If the repo is in the loading or error state, the client may still send\n // platform messages such as `platform/openExternal` that should be processed.\n case \"loading\":\n case \"error\":\n if (data.type.startsWith(\"platform/\")) {\n void this.platform.handleMessageFromClient(\n /*repo=*/ undefined,\n data as PlatformSpecificClientToServerMessages,\n (message) => this.postMessage(message),\n (dispose: () => unknown) => {\n this.repoDisposables.push({ dispose });\n }\n );\n this.notifyListeners(data);\n }\n break;\n }\n }\n\n /**\n * Handle messages which can be handled regardless of if a repo was successfully created or not\n */\n private handleIncomingGeneralMessage(data: GeneralMessage) {\n this.logger.info(\"GeneralMessage\", data);\n switch (data.type) {\n case \"installCli\": {\n const execution =\n data.method === \"brew\"\n ? execa(\"brew\", [\"install\", \"withgraphite/tap/graphite\"])\n : execa(\"npm\", [\n \"install\",\n \"-g\",\n \"@withgraphite/graphite-cli@stable\",\n ]);\n execution\n .then(() => {\n this.postMessage({\n type: \"installCliResult\",\n result: \"success\",\n });\n })\n .catch((err: unknown) => {\n const error = err instanceof Error ? err.message : \"Unknown error\";\n this.postMessage({\n type: \"installCliResult\",\n result: \"error\",\n error,\n });\n });\n break;\n }\n\n case \"updateCli\": {\n which(\"gt\")\n .then(async (whichResult) => {\n const path = await realpath(whichResult);\n\n const pathFromNodeFolder =\n \"lib/node_modules/@withgraphite/graphite-cli/graphite.js\";\n if (path.endsWith(pathFromNodeFolder)) {\n const pathToNpm = path.replace(pathFromNodeFolder, \"bin/npm\");\n return execa(pathToNpm, [\n \"install\",\n \"-g\",\n \"@withgraphite/graphite-cli@stable\",\n ]);\n }\n\n if (path.endsWith(\"/bin/gt\") && path.includes(\"Cellar\")) {\n await execa(\"brew\", [\"update\"]);\n return execa(\"brew\", [\"upgrade\", \"withgraphite/tap/graphite\"]);\n }\n\n throw new Error(\"Couldn't determine installation method\");\n })\n .then(() => {\n this.postMessage({\n type: \"updateCliResult\",\n result: \"success\",\n });\n })\n .catch((err) => {\n this.postMessage({\n type: \"updateCliResult\",\n result: \"error\",\n error: err instanceof Error ? err.message : \"Unknown error\",\n });\n });\n\n break;\n }\n\n case \"fetchAllBranches\": {\n const allBranches: Promise<Result<{ branches: string[] }>> = runCommand(\n {\n command: this.connection.command || \"gt\",\n args: [\"internal-only\", \"all-branches\"],\n cwd: this.connection.cwd,\n }\n )\n .then((o) => ({\n value: JSON.parse(o.stdout) as { branches: string[] },\n }))\n .catch((error) => {\n this.logger?.error(\"error fetching auth status\", error.toString());\n return { error };\n });\n void allBranches.then((data) => {\n if (!data.value) return;\n this.postMessage({\n type: \"fetchedAllBranches\",\n message: data.value,\n });\n });\n break;\n }\n\n case \"initializeRepository\": {\n this.logger.info(\"init\");\n void runCommand({\n command: this.connection.command || \"gt\",\n args: [\"init\", \"--trunk\", data.trunkBranch],\n cwd: this.connection.cwd,\n })\n .then((o) => {\n this.logger.info(\"initializeRepository\", o);\n if (o.exitCode) {\n this.postMessage({ type: \"failedToInitializeRepository\" });\n }\n this.postMessage({\n type: \"initializedRepository\",\n });\n })\n .catch(() => {\n this.postMessage({ type: \"failedToInitializeRepository\" });\n });\n\n break;\n }\n\n case \"track\": {\n this.tracker.trackData(data.data);\n break;\n }\n\n case \"changeCwd\": {\n this.setActiveRepoForCwd(data.cwd);\n break;\n }\n\n case \"requestRepoInfo\": {\n switch (this.currentState.type) {\n case \"repo\":\n this.postMessage({\n type: \"repoInfo\",\n info: this.currentState.repo.info,\n cwd: this.currentState.cwd,\n });\n break;\n\n case \"error\":\n this.postMessage({\n type: \"repoInfo\",\n info: this.currentState.error,\n });\n break;\n\n case \"loading\":\n }\n break;\n }\n\n case \"requestApplicationInfo\": {\n this.postMessage({\n type: \"applicationInfo\",\n platformName: this.platform.platformName,\n version: this.connection.version,\n });\n break;\n }\n\n case \"fileBugReport\": {\n // Internal.fileABug?.(\n // data.data,\n // data.uiState,\n // this.tracker,\n // this.logger,\n // (progress: FileABugProgress) => {\n // this.connection.logger?.info('file a bug progress: ', JSON.stringify(progress));\n // this.postMessage({type: 'fileBugReportProgress', ...progress});\n // },\n // );\n break;\n }\n }\n }\n\n /**\n * Handle messages which require a repository to have been successfully set up to run\n */\n private handleIncomingMessageWithRepo(\n data: WithRepoMessage,\n repo: Repository,\n cwd: string\n ) {\n const { logger } = repo;\n switch (data.type) {\n case \"subscribe\": {\n const { subscriptionID, kind } = data;\n switch (kind) {\n case \"uncommittedChanges\": {\n const postUncommittedChanges = (\n result: FetchedUncommittedChanges\n ) => {\n this.postMessage({\n type: \"subscriptionResult\",\n kind: \"uncommittedChanges\",\n subscriptionID,\n data: result,\n });\n };\n\n const uncommittedChanges = repo.getUncommittedChanges();\n if (uncommittedChanges != null) {\n postUncommittedChanges(uncommittedChanges);\n }\n const disposables: Array<Disposable> = [];\n\n // send changes as they come in from watchman\n disposables.push(\n repo.subscribeToUncommittedChanges(postUncommittedChanges)\n );\n // trigger a fetch on startup\n void repo.fetchUncommittedChanges();\n\n disposables.push(\n repo.subscribeToUncommittedChangesBeginFetching(() =>\n this.postMessage({\n type: \"beganFetchingUncommittedChangesEvent\",\n })\n )\n );\n this.subscriptions.set(subscriptionID, {\n dispose: () => {\n disposables.forEach((d) => d.dispose());\n },\n });\n break;\n }\n\n case \"smartlogCommits\": {\n const postSmartlogCommits = (result: FetchedCommits) => {\n this.postMessage({\n type: \"subscriptionResult\",\n kind: \"smartlogCommits\",\n subscriptionID,\n data: result,\n });\n };\n\n const smartlogCommits = repo.getSmartlogCommits();\n if (smartlogCommits != null) {\n postSmartlogCommits(smartlogCommits);\n }\n const disposables: Array<Disposable> = [];\n // send changes as they come from file watcher\n disposables.push(\n repo.subscribeToSmartlogCommitsChanges(postSmartlogCommits)\n );\n // trigger a fetch on startup\n void repo.fetchSmartlogCommits();\n\n disposables.push(\n repo.subscribeToSmartlogCommitsBeginFetching(() =>\n this.postMessage({ type: \"beganFetchingSmartlogCommitsEvent\" })\n )\n );\n\n this.subscriptions.set(subscriptionID, {\n dispose: () => {\n disposables.forEach((d) => d.dispose());\n },\n });\n break;\n }\n\n case \"mergeConflicts\": {\n const postMergeConflicts = (\n conflicts: MergeConflicts | undefined\n ) => {\n this.postMessage({\n type: \"subscriptionResult\",\n kind: \"mergeConflicts\",\n subscriptionID,\n data: conflicts,\n });\n };\n\n const mergeConflicts = repo.getMergeConflicts();\n if (mergeConflicts != null) {\n postMergeConflicts(mergeConflicts);\n }\n this.subscriptions.set(\n subscriptionID,\n repo.onChangeConflictState(postMergeConflicts)\n );\n break;\n }\n }\n break;\n }\n\n case \"unsubscribe\": {\n const subscription = this.subscriptions.get(data.subscriptionID);\n subscription?.dispose();\n this.subscriptions.delete(data.subscriptionID);\n break;\n }\n\n case \"runOperation\": {\n const { operation } = data;\n void repo.runOrQueueOperation(\n operation,\n (progress) => {\n this.postMessage({ type: \"operationProgress\", ...progress });\n if (progress.kind === \"queue\") {\n this.tracker.track(\"QueueOperation\", {\n extras: { operation: operation.trackEventName },\n });\n }\n },\n this.tracker,\n cwd\n );\n break;\n }\n\n case \"abortRunningOperation\": {\n const { operationId } = data;\n repo.abortRunningOpeation(operationId);\n break;\n }\n\n case \"getConfig\": {\n void repo\n .getConfig(data.name)\n .catch(() => undefined)\n .then((value) => {\n logger.info(\"got config\", data.name, value);\n this.postMessage({ type: \"gotConfig\", name: data.name, value });\n });\n break;\n }\n\n case \"getPersistentViewState\": {\n this.postMessage({\n type: \"gotPersistentViewState\",\n name: data.name,\n value: this.connection.persistentClientSideViewState[data.name],\n });\n break;\n }\n\n case \"fetchRepoMessage\": {\n const repoMessage: Promise<Result<string>> = repo\n .runCommand([\"internal-only\", \"repo-message\"])\n .then((o) => ({ value: o.stdout }))\n .catch((error) => {\n logger?.error(\"error fetching repo message\", error.toString());\n return { error };\n });\n void repoMessage.then((data) =>\n this.postMessage({\n type: \"fetchedRepoMessage\",\n message: data.value || \"\",\n })\n );\n break;\n }\n\n case \"fetchUpgradePrompt\": {\n logger.info(\"fetchUpgradePrompt\");\n const upgradePrompt: Promise<Result<string>> = repo\n .runCommand([\"internal-only\", \"upgrade-prompt\"])\n .then((o) => ({ value: o.stdout }))\n .catch((error) => {\n logger?.error(\"error fetching upgrade prompt\", error.toString());\n return { error };\n });\n void upgradePrompt.then((data) =>\n this.postMessage({\n type: \"fetchedUpgradePrompt\",\n message: data.value || \"\",\n })\n );\n break;\n }\n\n case \"fetchAuthStatus\": {\n const upgradePrompt: Promise<Result<AuthInfo>> = repo\n .runCommand([\"internal-only\", \"check-auth\"])\n .then((o) => ({ value: JSON.parse(o.stdout) as AuthInfo }))\n .catch((error) => {\n logger?.error(\"error fetching auth status\", error.toString());\n return { error };\n });\n void upgradePrompt.then((data) => {\n if (!data.value) return;\n this.postMessage({\n type: \"fetchedAuthStatus\",\n message: data.value,\n });\n });\n break;\n }\n\n case \"fetchPotentialParents\": {\n const { branchToTrack } = data;\n const potentialParents: Promise<\n Result<{ potentialParents: string[] }>\n > = repo\n .runCommand([\"internal-only\", \"potential-parents\", branchToTrack])\n .then((o) => ({\n value: JSON.parse(o.stdout) as { potentialParents: string[] },\n }))\n .catch((error) => {\n logger?.error(\"error fetching potential parents\", error.toString());\n return { error };\n });\n void potentialParents.then((data) => {\n if (!data.value) return;\n this.postMessage({\n type: \"fetchedPotentialParents\",\n message: data.value,\n });\n });\n break;\n }\n\n case \"setConfig\": {\n logger.info(\"set config\", data.name, data.value);\n repo.setConfig(\"user\", data.name, data.value).catch((err) => {\n logger.error(\"error setting config\", data.name, data.value, err);\n });\n break;\n }\n\n case \"setPersistentViewState\": {\n this.connection.persistentClientSideViewState[data.name] = data.value;\n break;\n }\n\n case \"deleteFile\": {\n const { filePath } = data;\n const absolutePath = absolutePathForFileInRepo(filePath, repo);\n // security: don't trust client messages to allow us to delete files outside the repository\n if (absolutePath == null) {\n logger.warn(\"can't delete file outside of the repo\", filePath);\n return;\n }\n\n fs.promises\n .rm(absolutePath)\n .then(() => {\n logger.info(\"deleted file from filesystem\", absolutePath);\n })\n .catch((err) => {\n logger.error(\"unable to delete file\", absolutePath, err);\n });\n break;\n }\n\n case \"requestComparison\": {\n const { comparison } = data;\n const diff: Promise<Result<string>> = repo\n .runCommand([\n \"internal-only\",\n \"diff\",\n ...internalOnlyDiffArgsForComparison(comparison),\n ])\n .then((o) => ({ value: o.stdout }))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void diff.then((data) =>\n this.postMessage({\n type: \"comparison\",\n comparison,\n data: { diff: data },\n })\n );\n break;\n }\n\n case \"requestChangedFiles\": {\n const { branch } = data;\n const resultPromise: Promise<ChangedFiles> = repo\n .runCommand([\"internal-only\", \"changed-files\", branch])\n .then((o) => JSON.parse(o.stdout))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void resultPromise.then((result) =>\n this.postMessage({\n type: \"changedFiles\",\n branch,\n data: result,\n })\n );\n break;\n }\n\n case \"requestComparisonContextLines\": {\n const {\n id: { path: relativePath, comparison },\n start,\n numLines,\n } = data;\n\n // TODO (GT-11367): For context lines, before/after sides of the comparison\n // are identical... except for line numbers.\n // Typical comparisons with '.' would be much faster (nearly instant)\n // by reading from the filesystem rather than using cat,\n // we just need the caller to ask with \"after\" line numbers instead of \"before\".\n // Note: we would still need to fall back to cat for comparisons that do not involve\n // the working copy.\n if (\n comparison.type === ComparisonType.Commit ||\n comparison.type === ComparisonType.Range\n ) {\n throw new Error(\"Not implemented\");\n }\n const cat: Promise<string> = repo\n .relativeCat(relativePath, comparison)\n .catch(() => \"\");\n\n void cat.then((content) =>\n this.postMessage({\n type: \"comparisonContextLines\",\n lines: content.split(\"\\n\").slice(start - 1, start - 1 + numLines),\n path: relativePath,\n })\n );\n break;\n }\n\n case \"requestChangedFilesInRange\": {\n const { fromSha, toSha } = data;\n const resultPromise: Promise<ChangedFiles> = repo\n .runCommand([\n \"internal-only\",\n \"changed-files\",\n toSha,\n \"--from\",\n fromSha,\n ])\n .then((o) => JSON.parse(o.stdout))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void resultPromise.then((result) =>\n this.postMessage({\n type: \"changedFilesInRange\",\n fromSha,\n toSha,\n data: result,\n })\n );\n break;\n }\n\n case \"requestCommitsInBranch\": {\n const { branch } = data;\n const resultPromise: Promise<{\n commits: { sha: string; message: string }[];\n }> = repo\n .runCommand([\"internal-only\", \"list-commits\", branch])\n .then((o) => JSON.parse(o.stdout))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void resultPromise.then((result) =>\n this.postMessage({\n type: \"commitsInBranch\",\n branch,\n data: result,\n })\n );\n break;\n }\n\n case \"requestChangedFilesInCommit\": {\n const { commitSha } = data;\n const resultPromise: Promise<ChangedFiles> = repo\n .runCommand([\n \"internal-only\",\n \"changed-files\",\n commitSha,\n \"--from\",\n `${commitSha}~`,\n ])\n .then((o) => JSON.parse(o.stdout))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void resultPromise.then((result) =>\n this.postMessage({\n type: \"changedFilesInCommit\",\n commitSha,\n data: result,\n })\n );\n break;\n }\n\n case \"refresh\": {\n logger?.log(\"refresh requested\");\n void repo.fetchSmartlogCommits();\n void repo.fetchUncommittedChanges();\n void repo.codeReviewProvider?.triggerDiffSummariesFetch(\n repo.getAllDiffIds()\n );\n break;\n }\n\n case \"pageVisibility\": {\n repo.setPageFocus(this.pageId, data.state);\n break;\n }\n\n case \"fetchCommitMessageTemplate\": {\n repo\n .runCommand([\"internal-only\", \"templates\"])\n .then((result) => {\n const templates: Record<string, string> = JSON.parse(result.stdout);\n this.postMessage({\n type: \"fetchedCommitMessageTemplate\",\n templates: Object.fromEntries(\n Object.entries(templates).map(([path, contents]) => [\n path,\n contents.replace(repo.IGNORE_COMMIT_MESSAGE_LINES_REGEX, \"\"),\n ])\n ),\n });\n })\n .catch((err) => {\n logger?.error(\"Could not fetch commit message template\", err);\n });\n break;\n }\n\n case \"typeahead\": {\n // Current repo's code review provider should be able to handle all\n // TypeaheadKinds for the fields in its defined schema.\n void repo.codeReviewProvider\n ?.typeahead?.(data.kind, data.query)\n ?.then((result) =>\n this.postMessage({\n type: \"typeaheadResult\",\n id: data.id,\n result,\n })\n );\n break;\n }\n\n case \"fetchDiffSummaries\": {\n void repo.codeReviewProvider?.triggerDiffSummariesFetch(\n repo.getAllDiffIds()\n );\n break;\n }\n\n case \"loadMoreCommits\": {\n const rangeInDays = repo.nextVisibleCommitRangeInDays();\n this.postMessage({ type: \"commitsShownRange\", rangeInDays });\n this.postMessage({ type: \"beganLoadingMoreCommits\" });\n void repo.fetchSmartlogCommits();\n this.tracker.track(\"LoadMoreCommits\", {\n extras: { daysToFetch: rangeInDays ?? \"Infinity\" },\n });\n return;\n }\n\n default: {\n void this.platform.handleMessageFromClient(\n repo,\n data,\n (message) => this.postMessage(message),\n (dispose: () => unknown) => {\n this.repoDisposables.push({ dispose });\n }\n );\n break;\n }\n }\n\n this.notifyListeners(data);\n }\n\n private notifyListeners(data: IncomingMessage): void {\n const listeners = this.listenersByType.get(data.type);\n if (listeners) {\n listeners.forEach((handle) => handle(data));\n }\n }\n}\n","import { unwrap } from \"@withgraphite/gti-shared\";\nimport fs from \"fs\";\nimport os from \"os\";\nimport path from \"path\";\n\nimport rmtree from \"./rmtree\";\n\nexport type ExistingServerInfo = {\n sensitiveToken: string;\n challengeToken: string;\n logFileLocation: string;\n /** Which command name was used to launch this server instance,\n * so it can be propagated to run further gt commands by the server.\n * Usually, \"gt\". */\n command?: string;\n /**\n * `gt version` string. If the version of gt changes, we shouldn't re-use that server instance,\n * due to potential incompatibilities between the old running server javascript and the new client javascript.\n */\n gtVersion: string;\n};\n\nconst cacheDir =\n process.platform == \"win32\"\n ? path.join(unwrap(process.env.LOCALAPPDATA), \"cache\")\n : process.platform == \"darwin\"\n ? path.join(os.homedir(), \"Library/Caches\")\n : process.env.XDG_CACHE_HOME || path.join(os.homedir(), \".cache\");\n\n/**\n * Per-user cache dir with restrictive permissions.\n * Inside this folder will be a number of files, one per port for an active GTI server.\n */\nconst savedActiveServerUrlsDirectory = path.join(cacheDir, \"graphite-gti\");\n\nfunction fileNameForPort(port: number): string {\n return `reusable_server_${port}`;\n}\n\nfunction isMode700(stat: fs.Stats): boolean {\n // eslint-disable-next-line no-bitwise\n return (stat.mode & 0o777) === 0o700;\n}\n\n/**\n * Make a temp directory with restrictive permissions where we can write existing server information.\n * Ensures directory has proper restrictive mode if the directory already exists.\n */\nexport async function ensureExistingServerFolder(): Promise<void> {\n await fs.promises.mkdir(savedActiveServerUrlsDirectory, {\n // directory needs rwx\n mode: 0o700,\n recursive: true,\n });\n\n const stat = await fs.promises.stat(savedActiveServerUrlsDirectory);\n if (process.platform !== \"win32\" && !isMode700(stat)) {\n throw new Error(\n `active servers folder ${savedActiveServerUrlsDirectory} has the wrong permissions: ${stat.mode}`\n );\n }\n if (stat.isSymbolicLink()) {\n throw new Error(\n `active servers folder ${savedActiveServerUrlsDirectory} is a symlink`\n );\n }\n}\n\nexport function deleteExistingServerFile(port: number): Promise<void> {\n const folder = path.join(\n savedActiveServerUrlsDirectory,\n fileNameForPort(port)\n );\n if (typeof fs.promises.rm === \"function\") {\n return fs.promises.rm(folder, { force: true });\n } else {\n return rmtree(folder);\n }\n}\n\nexport async function writeExistingServerFile(\n port: number,\n data: ExistingServerInfo\n): Promise<void> {\n await fs.promises.writeFile(\n path.join(savedActiveServerUrlsDirectory, fileNameForPort(port)),\n JSON.stringify(data),\n { encoding: \"utf-8\", flag: \"w\", mode: 0o600 }\n );\n}\n\nexport async function readExistingServerFile(\n port: number\n): Promise<ExistingServerInfo> {\n // TODO: do we need to verify the permissions of this file?\n const data: string = await fs.promises.readFile(\n path.join(savedActiveServerUrlsDirectory, fileNameForPort(port)),\n { encoding: \"utf-8\", flag: \"r\" }\n );\n return JSON.parse(data) as ExistingServerInfo;\n}\n","import { timingSafeEqual } from \"crypto\";\n\n/**\n * Timing safe comparison of tokens coming from strings.\n */\nexport function areTokensEqual(a: string, b: string): boolean {\n const aBuf = Buffer.from(a);\n const bBuf = Buffer.from(b);\n return aBuf.length === bBuf.length && timingSafeEqual(aBuf, bBuf);\n}\n","import type { Logger } from \"@withgraphite/gti-shared\";\n\nimport { logStartup } from \"./analytics\";\nimport { makeServerSideTracker } from \"./analytics/serverSideTracker\";\nimport { fileLogger, stdoutLogger } from \"./logger\";\nimport { runCommand } from \"./Repository\";\nimport type { ServerPlatform } from \"./serverPlatform\";\nimport { browserServerPlatform } from \"./serverPlatform\";\nimport { ServerToClientAPI } from \"./ServerToClientAPI\";\n\nexport { DEFAULT_PORT, runProxyMain } from \"../proxy/startServer\";\n\nexport interface ClientConnection {\n /**\n * Used to send a message from the server to the client.\n *\n * Designed to match\n * https://code.visualstudio.com/api/references/vscode-api#Webview.postMessage\n */\n postMessage(message: string): Promise<boolean>;\n\n /**\n * Designed to match\n * https://code.visualstudio.com/api/references/vscode-api#Webview.onDidReceiveMessage\n */\n onDidReceiveMessage(\n hander: (event: Buffer, isBinary: boolean) => void | Promise<void>\n ): {\n dispose(): void;\n };\n\n /**\n * Which command to use to run `gt`\n */\n command?: string;\n /**\n * Platform-specific version string.\n * For `gt interactive web`, this is the `gt` version.\n * For the VS Code extension, this is the extension version.\n */\n version: string;\n logFileLocation?: string;\n logger?: Logger;\n cwd: string;\n\n platform?: ServerPlatform;\n\n /**\n * Place for the server to store user preferences that should persist\n * closing and reopening the client connection.\n */\n persistentClientSideViewState: Record<string, any>;\n}\n\nexport function onClientConnection(connection: ClientConnection): () => void {\n const logger =\n connection.logger ??\n (connection.logFileLocation\n ? fileLogger(connection.logFileLocation)\n : stdoutLogger);\n connection.logger = logger;\n const platform = connection?.platform ?? browserServerPlatform;\n const version = connection?.version ?? \"unknown\";\n logger.log(`establish client connection for ${connection.cwd}`);\n logger.log(\n `platform '${platform.platformName}', version '${version}', command '${connection.command}'`\n );\n\n void logStartup(logger).catch((e) => {\n logger.error(\"Failed to log startup\", e);\n });\n\n // See comment in analytics.ts -- we can migrate this to not depend on CLI\n const tracker = makeServerSideTracker(logger, platform, version, (data) => {\n return runCommand({\n command: connection.command || \"gt\",\n args: [\n \"internal-only\",\n \"log-action\",\n data.eventName || data.errorName || \"UNKNOWN_CLI_EVENT\",\n (data.timestamp ? new Date(data.timestamp) : new Date()).toISOString(),\n JSON.stringify(data),\n ],\n cwd: connection.cwd,\n });\n });\n tracker.track(\"ClientConnection\", { extras: { cwd: connection.cwd } });\n\n // start listening to messages\n let api: ServerToClientAPI | null = new ServerToClientAPI(\n platform,\n connection,\n tracker,\n logger\n );\n api.setActiveRepoForCwd(connection.cwd);\n\n return () => {\n api?.dispose();\n api = null;\n };\n}\n","import type { PlatformName } from \"@withgraphite/gti-shared\";\nimport { CLOSED_AND_SHOULD_NOT_RECONNECT_CODE } from \"@withgraphite/gti-shared\";\nimport fs from \"fs\";\nimport http from \"http\";\nimport type { AddressInfo } from \"net\";\nimport path from \"path\";\nimport urlModule from \"url\";\nimport WebSocket from \"ws\";\n\nimport { onClientConnection } from \"../src/index\";\nimport { repositoryCache } from \"../src/RepositoryCache\";\nimport type { ServerPlatform } from \"../src/serverPlatform\";\nimport { areTokensEqual } from \"./proxyUtils\";\n\nexport type StartServerArgs = {\n port: number;\n sensitiveToken: string;\n challengeToken: string;\n logFileLocation: string;\n logInfo: (...args: Parameters<typeof console.log>) => void;\n command?: string;\n gtVersion: string;\n foreground: boolean;\n frontendDir: string;\n};\n\nexport type StartServerResult =\n | { type: \"addressInUse\" }\n | { type: \"success\"; port: number; pid: number }\n | { type: \"error\"; error: string };\n\nexport type ServerChallengeResponse = {\n challengeToken: string;\n /** Process ID for the server. */\n pid: number;\n};\n\nexport function startServer({\n port,\n sensitiveToken,\n challengeToken,\n logFileLocation,\n logInfo,\n command,\n gtVersion,\n foreground,\n frontendDir,\n}: StartServerArgs): Promise<StartServerResult> {\n return new Promise((resolve) => {\n try {\n const manifest = JSON.parse(\n fs.readFileSync(\n path.join(frontendDir, \"build/asset-manifest.json\"),\n \"utf-8\"\n )\n ) as { files: Array<string> };\n for (const file of Object.values(manifest.files)) {\n if (!file.startsWith(\"/\")) {\n resolve({\n type: \"error\",\n error: `expected entry to start with / but was: \\`${file}\\``,\n });\n }\n\n requestUrlToResource[file] = file.slice(1);\n }\n } catch (e) {\n // ignore...\n }\n\n // Anything not part of the asset-manifest we need to explicitly serve\n requestUrlToResource[`/favicon.ico`] = \"favicon.ico\";\n\n /**\n * Event listener for HTTP server \"error\" event.\n */\n function onError(error: { syscall?: string; code?: string }) {\n if (error.syscall !== \"listen\") {\n resolve({ type: \"error\", error: error.toString() });\n throw error;\n }\n\n // handle specific listen errors with friendly messages\n switch (error.code) {\n case \"EACCES\": {\n resolve({\n type: \"error\",\n error: `Port ${port} requires elevated privileges`,\n });\n throw error;\n }\n\n case \"EADDRINUSE\": {\n resolve({ type: \"addressInUse\" });\n return;\n }\n\n default:\n resolve({ type: \"error\", error: error.toString() });\n throw error;\n }\n }\n\n /**\n * Create HTTP server.\n */\n const server = http.createServer(async (req, res) => {\n if (req.url) {\n // Only the websocket is sensitive and requires the token.\n // Normal resource requests don't need to check the token.\n const { pathname } = urlModule.parse(req.url);\n // eslint-disable-next-line no-prototype-builtins\n if (pathname != null && requestUrlToResource.hasOwnProperty(pathname)) {\n const relativePath = requestUrlToResource[pathname];\n let contents: string | Buffer;\n try {\n contents = await fs.promises.readFile(\n path.join(frontendDir, \"build\", relativePath)\n );\n } catch (e: unknown) {\n res.writeHead(500, { \"Content-Type\": \"text/plain\" });\n res.end(htmlEscape((e as Error).toString()));\n return;\n }\n\n const lastDot = relativePath.lastIndexOf(\".\");\n const ext = relativePath.slice(lastDot + 1);\n const contentType = extensionToMIMEType[ext] ?? \"text/plain\";\n\n res.writeHead(200, { \"Content-Type\": contentType });\n res.end(contents);\n return;\n } else if (pathname === \"/challenge_authenticity\") {\n // requests to /challenge_authenticity?token=... allow using the sensistive token to ask\n // for the secondary challenge token.\n const requestToken = getSearchParams(req.url).get(\"token\");\n if (requestToken && areTokensEqual(requestToken, sensitiveToken)) {\n // they know the original token, we can tell them our challenge token\n res.writeHead(200, { \"Content-Type\": \"text/json\" });\n const response: ServerChallengeResponse = {\n challengeToken,\n pid: process.pid,\n };\n res.end(JSON.stringify(response));\n } else {\n res.writeHead(401, { \"Content-Type\": \"text/json\" });\n res.end(JSON.stringify({ error: \"invalid token\" }));\n }\n return;\n }\n }\n\n res.writeHead(404, { \"Content-Type\": \"text/html\" });\n res.end(\"<html><body>Not Found!</body></html>\");\n });\n\n /**\n * Listen on provided port, on all network interfaces.\n */\n const httpServer = server.listen(port);\n const wsServer = new WebSocket.Server({ noServer: true, path: \"/ws\" });\n wsServer.on(\"connection\", (socket, connectionRequest) => {\n // We require websocket connections to contain the token as a URL search parameter.\n let providedToken: string | undefined;\n let cwd: string | undefined;\n let platform: string | undefined;\n if (connectionRequest.url) {\n const searchParams = getSearchParams(connectionRequest.url);\n providedToken = searchParams.get(\"token\");\n const cwdParam = searchParams.get(\"cwd\");\n platform = searchParams.get(\"platform\") as string;\n if (cwdParam) {\n cwd = decodeURIComponent(cwdParam);\n }\n }\n if (!providedToken) {\n const reason = \"No token provided in websocket request\";\n logInfo(\"closing ws:\", reason);\n socket.close(CLOSED_AND_SHOULD_NOT_RECONNECT_CODE, reason);\n return;\n }\n if (!areTokensEqual(providedToken, sensitiveToken)) {\n const reason = \"Invalid token\";\n logInfo(\"closing ws:\", reason);\n socket.close(CLOSED_AND_SHOULD_NOT_RECONNECT_CODE, reason);\n return;\n }\n\n const platformImpl: ServerPlatform | undefined = undefined;\n switch (platform as PlatformName) {\n default:\n case undefined:\n break;\n }\n\n const dispose = onClientConnection({\n postMessage(message: string | ArrayBuffer) {\n socket.send(message);\n return Promise.resolve(true);\n },\n onDidReceiveMessage(handler) {\n const emitter = socket.on(\"message\", handler);\n const dispose = () => emitter.off(\"message\", handler);\n return { dispose };\n },\n cwd: cwd ?? process.cwd(),\n logFileLocation:\n logFileLocation === \"stdout\" ? undefined : logFileLocation,\n command,\n version: gtVersion,\n persistentClientSideViewState: {},\n\n platform: platformImpl,\n });\n socket.on(\"close\", () => {\n dispose();\n\n // After disposing, we may not have anymore servers alive anymore.\n // We can proactively clean up the server so you get the latest version next time you try.\n // This way, we only re-use servers if you keep the tab open.\n // Note: since we trigger this cleanup on dispose, if you start a server with `--no-open`,\n // it won't clean itself up until you connect at least once.\n if (!foreground) {\n // We do this on a 1-minute delay in case you close a tab and quickly re-open it.\n setTimeout(() => {\n checkIfServerShouldCleanItselfUp();\n }, 60_000);\n }\n });\n });\n httpServer.on(\"upgrade\", (request, socket, head) => {\n wsServer.handleUpgrade(request, socket, head, (socket) => {\n wsServer.emit(\"connection\", socket, request);\n });\n });\n\n server.on(\"error\", onError);\n\n // return succesful result when the server is successfully listening\n server.on(\"listening\", () =>\n resolve({\n type: \"success\",\n port: (server.address() as AddressInfo).port,\n pid: process.pid,\n })\n );\n });\n}\n\nfunction checkIfServerShouldCleanItselfUp() {\n if (repositoryCache.numberOfActiveServers() === 0) {\n process.exit(0);\n }\n}\n\nfunction getSearchParams(url: string): Map<string, string> {\n const searchParamsArray = urlModule\n .parse(url)\n .search?.replace(/^\\?/, \"\")\n .split(\"&\")\n .map(\n (pair: string): [string, string] => pair.split(\"=\") as [string, string]\n );\n\n return new Map(searchParamsArray);\n}\n\nconst extensionToMIMEType: { [key: string]: string } = {\n css: \"text/css\",\n html: \"text/html\",\n js: \"text/javascript\",\n ttf: \"font/ttf\",\n};\n\nconst requestUrlToResource: { [key: string]: string } = {\n \"/\": \"index.html\",\n};\n\nfunction htmlEscape(str: string): string {\n return str\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"\");\n}\n"],"names":["exports","event","timestampISOString","logger","details","__awaiter","userConfig","load","request","route","graphite_cli_routes_1","logActions","params","actions","name","timestamp","innerPromise","catch","err","error","s","JSON","stringify","ExitFailedError","Error","constructor","message","PreconditionsFailedError","__exportStar","auth","getAuthToken","apiServer","getApiServerUrl","queryParams","urlParams","headers","retyped_routes_1","requestWithArgs","Object","authorization","undefined","template","loadHandler","_data","filePath","oldFilepath","schema","initialize","removeIfInvalid","debug","spfExists","fs_extra_1","pathExists","removeSync","moveSync","parsedFile","readJson","logFailures","remove","errors_1","readOrInitSpf","filepath","options","_a","removeIfEmpty","update","mutator","_b","outputFile","mode","data","path","delete","helperFunctions","loadIfExists","t","shape","branchPrefix","optional","string","branchDate","boolean","branchReplacement","unionMany","literal","skipApplyingPrefixToNonGeneratedBranchNames","allowSlashesInGeneratedBranchNames","allowUpperCaseInGeneratedBranchNames","authToken","tips","yubikey","editor","pager","restackCommitterDateIsAuthorDate","submitIncludeCommitMessages","excludeTemplatesWithCommitMessages","submitViaCli","connectCliToLocalServer","gtiConfigs","array","key","value","alternativeProfiles","hostPrefix","systemTrayConfig","sections","sectionId","display","debugExpiryMs","number","path_1","join","os_1","homedir","getProfile","process","env","GRAPHITE_PROFILE","find","p","profile","_c","getAppServerUrl","getCLIAuthUrl","getBranchReplacement","getEditor","getEditorFromGitConfig","GT_EDITOR","_d","GIT_EDITOR","_e","VISUAL","_f","EDITOR","_g","getPager","getPagerFromGitConfig","GT_PAGER","_h","_j","_k","GIT_PAGER","_l","PAGER","_m","NODE_TLS_REJECT_UNAUTHORIZED","setAuthToken","profileNameToUpdate","profileToUpdate","getProfileName","authTokenPrecondition","token","length","getDefaultPrDescriptionBehavior","getSubmitViaCli","setSectionConfig","filter","section","getSectionConfig","getDebugExpiryMs","MS_IN_A_DAY","initialized","XDG_CONFIG_HOME","XDG_DATA_HOME","pullRequestInfoParams","repoOwner","repoName","prNumbers","prHeadRefNames","trunkBranchNames","consistent","prNumber","title","body","state","literals","reviewDecision","headRefName","baseRefName","url","isDraft","versions","headSha","baseSha","baseName","createdAt","authorGithubHandle","dependentPrNumber","mergeCommitSha","cliTrunk","method","logCommand","commandName","durationMiliSeconds","user","version","stackTrace","debugContext","downstackDependencies","org","repo","trunkName","branchName","response","downstackBranchNames","upgradePrompt","currentVersion","installationMethod","prompt","blocking","featureFlags","flags","flagName","flagValue","feedback","generateBranchNameAndCommitMessage","diff","owner","result","union","commitMessage","generateTitleAndDescription","description","traces","jsonTraces","cliVersion","submitPullRequests","trunkBranchName","targetTrunkBranchName","mergeWhenReady","rerequestReview","comment","gti","useWebSubmit","prs","action","head","base","draft","reviewers","webSubmitAnalytics","eligible","usedWebSubmit","prompted","suppressedPrompt","submitViaCliSetting","prURL","status","pullRequestInfo__DEPRECATED","pullRequestInfo","taggedUnion","ok","mergeabilityStatus","mergeabilityStatuses","mergeability_1","merge","getRepoMessage","nullable","text","getSectionsSummary","first","includeInTotalCount","totalUnpaginatedPrs","updatedAt","author","login","avatarUrl","checkAuth","githubLogin","canSubmitPrs","checkIsRepoSynced","addSyncedRepo","cwd","quiet","runner","repoPaths","gitVersion","Promise","all","config","addAll","add_1","addUpdates","addPatch","findUntrackedFiles","track_1","trackFiles","trackAllNewFiles","getCommitAuthor","commit_info_1","getCommitDate","getFilesChanged","files_changed_1","getStatus","status_1","getCurrentBranchName","branch_ops_1","getPreviousBranchName","moveBranch","deleteBranch","switchBranch","getDiff","diff_1","getDiffOfStagedChanges","forceCheckoutNewBranch","forceCreateBranch","getNumberOfCommitsInRange","commit_range_1","getFormattedCommitOrRange","getCommitTree","commit_tree_1","commit","commit_1","revert","detectStagedChanges","getUnstagedChanges","showDiff","isDiffEmpty","fetchBranches","fetch_branch_1","readFetchHead","findRemoteHeadBranch","find_remote_branch_1","getShaOrThrow","get_sha_1","getSha","detectUntrackedChanges","trackedUnstagedChanges","isMerged","is_merged_1","logLong","log_1","getMergeBase","merge_base_1","isAncestor","getUnmergedFiles","getRebaseHead","merge_conflict_help_1","gitDir","pruneRemote","prune_remote_1","getRemoteUrl","remote_url_1","showCommits","show_commits_1","getFileContents","file_contents_1","fetchRemoteTrackingBranch","pull_branch_1","fastForwardBranchToRemoteTracking","pushBranch","push_branch_1","gitConfig","gitCommonDir","repoRoot","getHookExecutablePath","get_hook_executable_path_1","getCleanlyReconciledSquashedHead","reconcile_1","rebaseInProgress","rebase_in_progress_1","cleanRebase","clean_rebase_1","rebase","rebase_1","rebaseContinue","rebaseAbort","rebaseInteractive","softReset","reset_branch_1","mixedReset","keepReset","trackedReset","setRemoteTracking","set_remote_tracking_1","getBranchNamesAndRevisions","sorted_branch_names_1","clean","clean_1","createNewObject","plumbing_1","updateRef","readRef","doesObjectExist","deleteRef","getShaForEachRefWithPrefix","commitRangesAreEquivalent","range_diff_1","getBranchesInCommitRange","absorbPatchesIntoCommitStack","absorb_patches_1","refreshIndex","createPatchedTree","sha","patch","indexFile","pid","Date","now","treeish","patchedTree","rmSync","shas","patches","gpgSignValue","gpgSign","output","parentSha","ref","hasBeenPatched","i","push","metadataPromise","authorDate","authorEmail","authorName","newCommit","runGitCommand","args","onError","resource","GIT_AUTHOR_NAME","GIT_AUTHOR_EMAIL","GIT_AUTHOR_DATE","GIT_COMMITTER_DATE","stdio","newName","branch","newBranch","detach","force","onto","from","format","reverse","map","reduce","resultPromise","parentResult","parentTree","tree","ontoTreeCommit","runner_1","exitCode","commitPromise","resolve","amend","noEdit","edit","noVerify","Number","FORMAT","READABLE","SUBJECT","MESSAGE","REBASE_METADATA","AUTHOR_METADATA","COMMITTER_DATE_RELATIVE","SHA","AUTHOR_NAME","COMMITTER_DATE","commitRangeHashes","runGitCommandAndSplitLines","results","chunkOfHashes","lodash_1","chunk","chunkResults","line","split","flat","replace","Boolean","then","metadata","messageLines","branchNames","parentOfMergeBase","ret","l","forEach","slice","cachedValues","Map","get","newValue","getConfigValueFromGit","set","left","right","stat","DIFF_ARGS","noTrim","getFetchHeadRefName","remote","file","statusFromStatusCode","code","to","files","tokens","prefix","startsWith","hook","coreHooksPath","hooksPath","hookExecutablePath","pathExistsSync","remoteShas","populateRemoteShas","lineSplit","every","fetchRemoteShas","getRemoteSha","input","GIT_INDEX_FILE","mergeBase","branchCommits","acc","nextCommit","currentBase","testCommit","e","rebaseHeadPath","readFile","encoding","trim","content","refName","substring","includes","forcePush","prePushHookInput","localSha","remoteSha","prePushExecutablePath","remoteUrl","stdioInput","runPrePushHook","forceOption","base1","head1","base2","head2","shasToFetch","toFetch","range1","range2","rebaseInternal","e2","parentBranchRevision","getRebasedTree","oldBase","oldHead","newBase","newHead","updatedBase","updatedHead","rebasedOldTree","rebasedUpdatedTree","oldTreeTempCommit","updatedTreeTempCommit","newHeadTempCommit","newTree","firstSha","at","branches","getRawStatus","rawStatus","indexStatus","workingTreeStatus","isValidStatusCharacter","some","staged","validStatusCharacters","character","filePaths","newFilePaths","getBoundsOfHunk","hunk","oldStart","newStart","removeLines","lines","type","addLines","oldEnd","newEnd","translateHunk","offset","getNetChangeInHunk","originalBeforeHunk","originalAfterHunk","originalBeforeHunkStart","originalBeforeHunkEnd","originalAfterHunkStart","originalAfterHunkEnd","computePatchFromHunk","removedLines","addedLines","oldNoNewlineAtEndOfFile","newNoNewlineAtEndOfFile","hunks","sort","a","b","parseDiffFile","prefixLines","firstLine","oldFilename","newFilename","h","parseDiffHunk","header","ranges","oldRange","newRange","oldCount","newCount","lastLineType","oldLine","newLine","lineType","oldEndLineExclusive","newEndLineExclusive","trimStart","flatMap","newHunks","curOldStart","curNewStart","curLines","TEXT_FILE_NAME","dir","opts","DEBUG","console","log","userConfigPath","existingRepo","repoUrl","createChange","textValue","unstaged","writeFileSync","readFileContents","readFileSync","createChangeAndCommit","createChangeAndAmend","hasStagedChanges","createPrecommitHook","contents","mkdirpSync","createAndCheckoutBranch","checkoutBranch","existsSync","resolveMergeConflicts","markMergeConflictsAsResolved","currentBranchName","getBranchSha","listCurrentBranchCommitMessages","enumerable","internalCwd","internalParams","tracer_1","currentSpanId","span","meta","runCommandArgs","runGitCommandInternal","MAX_INDEX_LOCK_RETRIES","INDEX_LOCK_RETRY_DELAY_MS","numIndexLockRetries","reject","proc","windowsHide","stdin","write","end","stdout","setEncoding","on","toString","stderr","addListener","signal","CommandKilledError","command","ms","setTimeout","CommandFailedError","failure","errno","concat","traceId","generateId","Math","ceil","random","notUndefined","START_UNIXTIME_MINUS_HRTIME_NS","BigInt","hrtime","bigint","currentNanoSeconds","Span","parentId","spanId","start","endedSpan","stack","metrics","service","span_id","trace_id","duration","parent_id","startSpan","allSpans","handler","flushJson","trace","rootSpanId","ComparisonType","comparison","UncommittedChanges","HeadChanges","StackChanges","Committed","hash","Commit","Range","fromSha","toSha","LRU","maxItems","maxHashCollision","hashKey","getHashKey","valueMap","cache","maybeValue","k","v","size","next","keys","done","clear","hashCodeFunc","hashCode","apply","cachedFunction","func","cacheSize","getExtraKeys","cachedFunc","stats","isCachable","skip","cacheKey","cachedValue","hit","miss","arg1","arg2","values","_target","_propertyKey","descriptor","originalFunc","cacheDecorator","cachableTypeNames","Set","arg","typeName","has","Tracker","sendData","context","eventName","errorName","errorMessage","String","track","operation","startTime","id","finalResult","trackAsParent","trackData","childData","ctx","wait","leading","timeout","shouldCallLeading","debouncer","callback","clearTimeout","reset","isPending","DiffType","DIFF","RENAME_FROM","RENAME_TO","COPY_FROM","COPY_TO","NEW_FILE_MODE","DELETED_FILE_MODE","OLD_MODE","NEW_MODE","HUNK_HEADER","OLD_FILE_HEADER","NEW_FILE_HEADER","DELIMITERS","assert","condition","msg","diffstr","delimiters","match","list","parseIndex","index","exec","oldFileName","newFileName","parseHeader","test","parseOldMode","parseNewMode","parseDeletedFileMode","parseNewFileMode","parseCopy","parseRename","parseFileHeader","parseHunk","parseHunks","arr","oldMode","Modified","newMode","Removed","Added","Copied","Renamed","hunkHeader","oldLines","newLines","linedelimiters","addCount","removeCount","indexOf","UNDEFINED_SERIALIZED","__rpcType","serialize","Array","entries","val","valueOf","isArray","newObj","propertyName","propertyValue","deserialize","specific","standardObject","parse","CommandRunner","revset","ErrorShortMessages","deferred","promise","delimiter","foundIndex","lastIndexOf","className","el","classList","contains","parentElement","o","fromEntries","gen","iter1","iter2","iterator1","Symbol","iterator","iterator2","result1","result2","maxLength","max","review","decision","hasWritePermission","previousReviewers","numRequiredApproversBaseBranchRules","numRequiredApproversRestrictions","is_approver_1","numRequiredApprovers","getFilesMissingCodeownersApproval","authorLogin","approverLogins","r","username","toLowerCase","owners","codeowners","kind","memberLogins","email","fileHasCodeownersApproval","authorIsOnlyCodeowner","mapCodeownerToKey","codeowner","team","doesPrHaveMissingCodeownerReviews","getPrMetastatus","pr","downstackExclusivePrs","baseBranchRules","ignoreMergeStates","enableNeedsRestack","isQueuedToMerge","isWaitingToMerge","blockingReasons","parentPr","isInFailureHandling","reason","lockBranch","parentBranch","lastPushedAt","lastBaseRefChangedAt","hasMergeConflicts","ciRollup","requiresApprovingReviews","requiresCodeOwnerReviews","mergeRulesNeedsRequiredApprover","mergeRules","computeNeedsRequiredApproverBlockingReason","approvers","requiredApprovingReviewCount","mergeRulesNeedsApprovals","computeNeedsApprovalBlockingReason","requiresConversationResolution","unresolvedThreadCount","parentMetastatus","handleParentMetastatusResult","hasThirdPartyMergeQueueLabel","hasActiveEntryInGithubMergeQueue","ciRollupStatus","handleParentMetastatus","missingCodeowners","c","requestedReviewers","reviewer","closedReviewUsername","CALCULATING","MERGED","QUEUED_TO_MERGE","WAITING_TO_MERGE","HANDED_OFF_TO_EXTERNAL_MERGE_QUEUE","CLOSED","DRAFT","CHANGES_REQUESTED","NEEDS_APPROVALS","GT_NEEDS_APPROVALS","NEEDS_CODEOWNER_APPROVALS","GT_NEEDS_REQUIRED_APPROVER","MERGE_CONFLICTS","BRANCH_LOCKED","RUNNING","FAILING_REQUIRED","READY_TO_MERGE","MERGED_AND_DELETED","READY_TO_MERGE_AS_STACK","READY_TO_MERGE_WITHOUT_CI","READY_TO_MERGE_AS_STACK_WITHOUT_CI","WAITING_ON_DOWNSTACK","HARD_WAITING_ON_DOWNSTACK","UNRESOLVED_COMMENTS","NEEDS_RESTACK__BASE_BRANCH_MERGED","NEEDS_RESTACK__DOWNSTACK_MERGING","NEEDS_RESTACK__BASE_REF_CHANGED","FAILURE_HANDLING","mergeRestrictions","blockingRestrictions","restriction","payload","blockingMergeRestrictions","numberOfApprovalsNeeded","computeFailingRequiredBlockingReason","ciMergeRestrictionsStatus","failingRequiredChecks","failedChecks","computePendingRequiredBlockingReason","pendingRequiredChecks","pendingChecks","blockingFiles","blockingMergeRestrictionsByFilePath","filename","requiredApproversMergeRestrictions","ts_helpers_1","isApprovedByRequiredApprover","requiredApprover","approverUsernames","isUserRequiredApprover","userLogin","requiredApprovers","prAuthorIsRequiredApproverForFile","createTestCiRollup","mergeRuleId","skipRequiredCi","mergeRestrictionsDeprecated","literalWithoutGenericCheck","inner","shapeValidatorImpl","childMatches","matches","tag","schemas","member","idx","inners","require","formatReqDetails","pathToRegexp","compile","urlArgs","obj","sortArgs","str","encodeURIComponent","serializeURLArgs","sortQueryParams","rawBody","verb","fetch","credentials","json","_response","fn","bound","getId","added","deduped","item","add","itemIdentity","bItems","bItem","aItem","errorFn","ENTIRE_STRING_IS_GLOBSTAR","GLOBSTAR_AT_END","GLOBSTAR_FOLLOWED_BY_FORWARD_SLASH","STAR","DOT","pattern","replaceAll","heartbeat","heartbeatInterval","waitForHeartbeatOnExit","fnComplete","hbComplete","heartbeatCnt","race","heartbeatWrapper","milliseconds","items","getKey","serializeKey","lookup","inputs","reducer","defaultReturn","res","onRetry","retryCount","range","maxRetries","sleepDuration","jobs","workToBeDone","running","nextJob","shift","finally","sleep","sleepMs","sleepDurationInMs","label","timeoutMs","minutes","seconds","singularNoun","n","pluralSuffix","prependAIfSingular","date","toLocaleString","month","day","hour","minute","timeZone","timeZoneName","includeTimeZone","num","isNaN","durationSec","includeSecondsIfLessThanMinute","luxon_1","fromObject","rescale","humanizedParts","years","months","days","hours","TimeoutError","filterNull","filterUndefined","object","possibleValue","sendAnalyticsEvent","getUsername","osInfoError","unwrap","LOGNAME","USER","LNAME","USERNAME","processEnvError","ServerSideContext","setRepo","this","codeReviewProvider","getSummaryName","noOp","stdoutLogger","TypedEventEmitter","EventEmitter","GitHubCodeReviewProvider","codeReviewSystem","runCommand","diffSummaries","onChangeDiffSummaries","handleData","handleError","dispose","off","triggerDiffSummariesFetch","_diffs","emit","removeAllListeners","hostname","runExternalCommand","_cwd","_args","_onProgress","_signal","typeahead","_kind","_query","OperationQueue","runCallback","queuedOperations","runningOperation","abortController","runOrQueueOperation","onProgress","tracker","queue","handleCommandProgress","op","controller","AbortController","trackEventName","extras","_p","errString","abortRunningOperation","operationId","abort","PageFocusTracker","focusedPages","visiblePages","onChangeHandlers","setState","page","disposePage","hasPageWithFocus","hasVisiblePage","onChange","RateLimiter","maxSimultaneousRunning","queued","runs","nextId","enqueueRun","tryDequeueNext","ran","notifyFinished","toRun","run","serializeAsyncCall","asyncFun","scheduledCall","pendingCall","startAsyncCall","callNext","scheduleNextCall","internalOnlyDiffArgsForComparison","MIN_REQUIRED_CLI_VERSION","Repository","onDidDispose","disposables","info","platform","IGNORE_COMMIT_MESSAGE_LINES_REGEX","mergeConflicts","uncommittedChanges","smartlogCommits","mergeConflictsEmitter","uncommittedChangesEmitter","smartlogCommitsChangesEmitter","smartlogCommitsBeginFetchingEmitter","uncommittedChangesBeginFetchingEmitter","pageFocusTracker","currentVisibleCommitRangeIndex","visibleCommitRanges","DEFAULT_DAYS_OF_COMMITS_TO_LOAD","checkForMergeConflicts","debounce","wasAlreadyInConflicts","dotdir","fetchStartTimestamp","contentsString","trimEnd","previousConflicts","commandOutput","newConflictData","conflicts","newConflicts","fetchCompletedTimestamp","newConflictSet","conflict","computeNewConflicts","maxConflictsToLog","remainingConflicts","fetchUncommittedChanges","change","fetchSmartlogCommits","commits","commitInfos","parseCommitInfoOutput","NoCommitsFetched","catLimiter","bind","watchForChangesDisposer","watchForChanges","operationQueue","Graphite","runOperation","CodeReviewProvider","normalizedArgs","normalizeOperationArgs","seenDiffs","subscription","subscribeToSmartlogCommitsChanges","fetched","newDiffs","diffIds","diffId","getAllDiffIds","nextVisibleCommitRangeInDays","onChangeConflictState","getMergeConflicts","getRepoInfo","repoVersion","findVersion","versionFound","versionRequired","repoInfoRaw","preferredBranchEdit","createPrsAs","findRepoProfile","findRepoInfo","getConfig","dotDir","rootDir","trunkBranch","abortRunningOpeation","cwdRelativeArgs","getExecParams","execution","addEventListener","child","kill","forceKillAfterTimeout","handleAbortSignalOnProcess","setPageFocus","getUncommittedChanges","subscribeToUncommittedChanges","getSmartlogCommits","subscribeToSmartlogCommitsBeginFetching","onStart","subscribeToUncommittedChangesBeginFetching","subscribeToHeadCommit","headCommit","isHead","onData","relativeCat","relativePath","catArgs","stripFinalNewline","cat","notEmpty","configName","setConfig","level","configValue","command_","args_","options_","appUrl","LANG","GRAPHITE_INTERACTIVE","GIT_OPTIONAL_LOCKS","argv","browserServerPlatform","platformName","repoInfo","changeCallback","dotDirWatcher","chokidar","watch","_event","relativeDotDir","worktreeWatcher","ignored","close","handleMessageFromClient","spawn","detached","windowsVerbatimArguments","unref","RepositoryReferenceImpl","disposeFunc","disposed","RefCounted","references","isDisposed","getNumberOfReferences","repositoryCache","RepositoryType","reposByRoot","activeReposEmitter","dirGuess","endsWith","getOrCreate","cmd","found","newlyFound","internalReference","internalRef","lookupRepoInfoAndReuseIfPossible","cachedRepositoryForPath","onChangeActiveRepos","cb","clearCache","numberOfActiveServers","numActive","ServerToClientAPI","connection","listenersByType","repoDisposables","subscriptions","queuedMessages","currentState","pageId","randomId","messageExpectingBinaryFollowup","incomingListener","onDidReceiveMessage","buf","isBinary","handleIncomingMessageWithPayload","deserializeFromString","hasBinaryPayload","expectsBinaryPayload","handleIncomingMessage","setRepoError","disposeRepoDisposables","processQueuedMessages","setCurrentRepo","postMessage","summaries","allCommits","ancestor","publicCommit","current","partOfTrunk","parents","findPublicAncestor","public","serializeToString","warn","setActiveRepoForCwd","newCwd","activeRepoRef","repoOrError","disposable","sub","uploadFile","handleIncomingGeneralMessage","handleIncomingMessageWithRepo","notifyListeners","whichResult","realpath","pathFromNodeFolder","pathToNpm","subscriptionID","postUncommittedChanges","d","postSmartlogCommits","postMergeConflicts","progress","persistentClientSideViewState","branchToTrack","absolutePath","pathMod","fullPath","sep","absolutePathForFileInRepo","rm","numLines","commitSha","templates","query","rangeInDays","daysToFetch","listeners","handle","cacheDir","LOCALAPPDATA","XDG_CACHE_HOME","aBuf","Buffer","bBuf","timingSafeEqual","onClientConnection","logFileLocation","appendFile","getLogFileContents","fileLogger","composeUserConfigFactory","installUuid","v4","gitEmail","git","composeGit","getGitEmail","toISOString","logStartup","writeToServer","sessionId","unixname","osArch","osType","osRelease","generateAnalyticsInfo","makeServerSideTracker","api","startServer","port","sensitiveToken","challengeToken","logInfo","gtVersion","foreground","frontendDir","manifest","requestUrlToResource","server","req","pathname","hasOwnProperty","writeHead","lastDot","ext","contentType","extensionToMIMEType","requestToken","getSearchParams","httpServer","listen","wsServer","noServer","socket","connectionRequest","providedToken","searchParams","cwdParam","decodeURIComponent","CLOSED_AND_SHOULD_NOT_RECONNECT_CODE","send","emitter","exit","handleUpgrade","syscall","address","searchParamsArray","search","pair","css","html","js","ttf"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"16.js","mappings":";geAAA,iBAEA,WACA,WAEAA,EAAAA,mBAAA,UAA0D,MACxDC,EADwD,mBAExDC,EAFwD,OAGxDC,EAHwD,QAIxDC,IAOqB,KAAWC,EAAAA,UAAAA,OAAAA,GAAAA,YAC9B,MAAMC,QAAmB,gCAA2BC,OAC9CC,GAAU,oBAAe,CAAEF,qBAC3BE,EAAQ,CACZC,MAAOC,EAAAA,WAAkBC,WACzBC,OAAQ,CACNC,QAAS,CAAC,CAAET,UAASU,KAAMb,EAAOc,UAAWb,MAGlD,IAEDc,GAAeC,OAAOC,IAEpBf,EAAOgB,MAAM,sCAAsCD,IAAnD,GAEH,C,oFC/BYlB,EAAAA,WAAcoB,GAAuBC,KAAKC,UAAUF,EAAG,KAAM,E,qHCA1E,MAAaG,UAAwBC,MACnCC,WAAAA,CAAYC,GACV,MAAMA,GACN,KAAKZ,KAAO,YACb,EAJHd,EAAAA,gBAAAA,EAOA,MAAa2B,UAAiCH,MAC5CC,WAAAA,CAAYC,GACV,MAAMA,GACN,KAAKZ,KAAO,qBACb,EAJHd,EAAAA,yBAAAA,C,6fCPA4B,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,MAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,E,iaCLA,iBAMA5B,EAAAA,eAAA,UAA+B,WAAEM,IAC/B,MAAMuB,EAAOvB,EAAWwB,eAClBC,EAAYzB,EAAW0B,kBAE7B,MAAO,EACLvB,QACAG,SACAqB,cACAC,YACAC,aAIG9B,EAAAA,UAAAA,OAAAA,GAAAA,YAYH,aAXqB+B,EAAAA,QAAQC,gBAAgB,CAC3CN,YACAtB,QACAG,SACAqB,cACAC,YACAC,QAASG,OAAAA,OAAAA,CACPC,cAAeV,EAAO,SAASA,SAASW,GACrCL,IAIR,GACF,C,yeCjCD,oBAEA,UACA,WAMAnC,EAAAA,OAAA,SACEyC,GAEA,MAAMC,EAAc,IAAWrC,EAAAA,UAAAA,OAAAA,GAAAA,Y,MAC7B,MAAMsC,QA0EV,UAAuC,SACrCC,EADqC,YAErCC,EAFqC,OAGrCC,EAHqC,WAIrCC,EAJqC,gBAKrCC,EALqC,MAMrCC,I,yCASAA,SAAA,EAAQ,oBAAoBL,KAC5B,MAAMM,EAAYN,UAAmBO,EAAAA,QAAGC,WAAWR,IAC7BC,UAAsBM,EAAAA,QAAGC,WAAWP,MAKxDI,SAAA,EAAQ,0BAA0BL,KAC9BM,EACFC,EAAAA,QAAGE,WAAWR,GAGdM,EAAAA,QAAGG,SAAST,EAAaD,IAI7B,IACE,MAAMW,EAAaL,QAAkBC,EAAAA,QAAGK,SAASZ,GAAYG,IAE7D,IADmBD,EAAOS,EAAY,CAAEE,aAAa,IAEnD,MAAM,IAAIjC,MAAM,kBAGlB,OADAyB,SAAA,EAAQ,+BAA+BL,KAChCW,CACR,CAAC,SAEA,GADAN,SAAA,EAAQ,2BAA2BL,KAC/BI,EAGF,OAFAC,SAAA,EAAQ,6CAA6CL,WAC/CO,EAAAA,QAAGO,OAAOd,GACTG,IAEP,MAAM,IAAIY,EAAAA,gBAAgB,qBAAqBf,IAElD,CACF,IA3HuBgB,CAAwB,CAC1ChB,SAAUH,EAASoB,SACnBhB,YAAaJ,EAASI,YACtBC,OAAQL,EAASK,OACjBC,WAAYN,EAASM,WACrBC,iBAAiC,QAAhB,IAASc,eAAOC,IAAAA,OAAA,EAAAA,EAAEC,iBAAiB,EACpDf,MAAOR,EAASQ,QAEZgB,EAAgBC,GAAkC7D,EAAAA,UAAAA,OAAAA,GAAAA,Y,MACtD6D,EAAQvB,IAEU,QAAhB,IAASmB,eAAOK,IAAAA,OAAA,EAAAA,EAAEH,iBAAiB,gBAAWrB,MAAW,gBAAW,UAE9DQ,EAAAA,QAAGO,OAAOjB,EAASoB,gBAEnBV,EAAAA,QAAGiB,WAAW3B,EAASoB,UAAU,gBAAWlB,GAAQ,CACxD0B,KAAM,KAGX,IACD,sBACEC,KAAM3B,EACNsB,SACAM,KAAM9B,EAASoB,SACfW,OAAQ,IAAWnE,EAAAA,UAAAA,OAAAA,GAAAA,mBACP8C,EAAAA,QAAGC,WAAWX,EAASoB,mBACzBV,EAAAA,QAAGO,OAAOjB,EAASoB,UAE5B,KACEpB,EAASgC,gBAAgB9B,EAAOsB,GAEtC,IACD,MAAO,CACL1D,KAAMmC,EACNgC,aAAc,IAAWrE,EAAAA,UAAAA,OAAAA,GAAAA,YACvB,SAAU8C,EAAAA,QAAGC,WAAWX,EAASoB,UAC/B,OAAOnB,GAGV,IAEJ,C,2rCCvDD,iBACA,aACA,cACA,cAEA,WACA,WACA,WAEMI,EAAS6B,EAAEC,MAAM,CACrBC,aAAcF,EAAEG,SAASH,EAAEI,QAC3BC,WAAYL,EAAEG,SAASH,EAAEM,SACzBC,kBAAmBP,EAAEG,SACnBH,EAAEQ,UAAU,CAACR,EAAES,QAAQ,KAAMT,EAAES,QAAQ,KAAMT,EAAES,QAAQ,OAEzDC,4CAA6CV,EAAEG,SAASH,EAAEM,SAC1DK,mCAAoCX,EAAEG,SAASH,EAAEM,SACjDM,qCAAsCZ,EAAEG,SAASH,EAAEM,SACnDO,UAAWb,EAAEG,SAASH,EAAEI,QACxBU,KAAMd,EAAEG,SAASH,EAAEM,SACnBS,QAASf,EAAEG,SAASH,EAAEM,SACtBU,OAAQhB,EAAEG,SAASH,EAAEI,QACrBa,MAAOjB,EAAEG,SAASH,EAAEI,QACpBc,iCAAkClB,EAAEG,SAASH,EAAEM,SAC/Ca,4BAA6BnB,EAAEG,SAASH,EAAEM,SAC1Cc,mCAAoCpB,EAAEG,SAASH,EAAEM,SACjDe,aAAcrB,EAAEG,SAASH,EAAEM,SAC3BgB,wBAAyBtB,EAAEG,SAASH,EAAEM,SACtCiB,WAAYvB,EAAEG,SACZH,EAAEwB,MACAxB,EAAEC,MAAM,CACNwB,IAAKzB,EAAEI,OACPsB,MAAO1B,EAAEI,WAIfuB,oBAAqB3B,EAAEG,SACrBH,EAAEwB,MACAxB,EAAEC,MAAM,CACN9D,KAAM6D,EAAEI,OACRwB,WAAY5B,EAAEI,OACdS,UAAWb,EAAEG,SAASH,EAAEI,YAI9ByB,iBAAkB7B,EAAEG,SAClBH,EAAEC,MAAM,CACN6B,SAAU9B,EAAEwB,MAAMxB,EAAEC,MAAM,CAAE8B,UAAW/B,EAAEI,OAAQ4B,QAAShC,EAAEM,cAGhE2B,cAAejC,EAAEG,SAASH,EAAEkC,UASjB7G,EAAAA,4BACX,8BAEWA,EAAAA,4BACX,2BAEWA,EAAAA,yBAA2B,KACtC,YAAO,CACL8C,SACAD,YAAaiE,EAAAA,QAAKC,KAAKC,EAAAA,QAAGC,UAAW,yBACrCpD,SAAUiD,EAAAA,QAAKC,MAAK,sBAAkB,eACtChE,WAAY,KACH,IAET0B,gBAAiB,CAACH,EAAML,KAGtB,MAAMiD,EAAa,K,UACjB,IAAKC,QAAQC,IAAIC,iBACf,OAC6D,QAA3D,EAAwB,QAAxB,IAAKf,2BAAmBvC,IAAAA,OAAA,EAAAA,EAAEuD,MAAMC,GAAiB,YAAXA,EAAEzG,cAAmBqD,IAAAA,EAAAA,EAAI,KAGnE,MAAMqD,EAAkC,QAAxB,IAAKlB,2BAAmBmB,IAAAA,OAAA,EAAAA,EAAEH,MACvCC,GAAMA,EAAEzG,OAASqG,QAAQC,IAAIC,mBAEhC,IAAKG,EACH,MAAM,IAAIhG,MAAM,mBAAmB2F,QAAQC,IAAIC,oBAEjD,OAAOG,CAAP,EAcIE,EAAkB,K,MACtB,MAAMnB,EAAyB,QAAZ,aAAYxC,IAAAA,OAAA,EAAAA,EAAEwC,WACjC,OAAOA,EACH,eAAeA,iBACfvG,EAAAA,2BAFJ,EAKI2H,EAAgB,IACb,GAAGD,eAqBN5F,EAAe,K,QACnB,OAA8B,QAAvB,EAAY,QAAZ,aAAYiC,IAAAA,OAAA,EAAAA,EAAEyB,iBAASrB,IAAAA,EAAAA,EAAIG,EAAKkB,SAAvC,EAmGF,MAAO,CACLoC,qBA/C2B,KAAK,MAAC,OAAsB,QAAtB,IAAK1C,yBAAiBnB,IAAAA,EAAAA,EAAI,GAA1B,EAgDjC8D,UAxFAC,GACEzH,OAAAA,OAAAA,OAAAA,GAAAA,Y,gBACF,OAOoB,QANlB,EAKkB,QALlB,EAIsB,QAJtB,EAGgC,QAHhC,EACW,QADX,EAAqB,QAArB,UAAQ+G,IAAIW,iBAAS5D,IAAAA,EAAAA,EACrBG,EAAKqB,cAAM8B,IAAAA,EAAAA,QAEJK,WAAyBE,IAAAA,EAAAA,EAChCb,QAAQC,IAAIa,kBAAUC,IAAAA,EAAAA,EACtBf,QAAQC,IAAIe,cAAMC,IAAAA,EAAAA,EAClBjB,QAAQC,IAAIiB,cAAMC,IAAAA,EAAAA,EAClB,IAEH,IA6ECC,SA1EAC,GACEnI,OAAAA,OAAAA,OAAAA,GAAAA,Y,cACF,MAAMuF,EAMa,QALjB,EAIqB,QAJrB,EAG+B,QAH/B,EACU,QADV,EAAoB,QAApB,UAAQwB,IAAIqB,gBAAQC,IAAAA,EAAAA,EACpBpE,EAAKsB,aAAK+C,IAAAA,EAAAA,QAEHH,WAAwBI,IAAAA,EAAAA,EAC/BzB,QAAQC,IAAIyB,iBAASC,IAAAA,EAAAA,EACrB3B,QAAQC,IAAI2B,aAAKC,IAAAA,EAAAA,EACjB,OACF,MAAiB,KAAVpD,OAAepD,EAAYoD,CACnC,IAgEC5D,gBAhJsB,K,MACtB,GAAIsC,EAAK2B,wBAEP,OADAkB,QAAQC,IAAI6B,6BAA+B,IACpC,4BAET,MAAM1C,EAAyB,QAAZ,aAAYxC,IAAAA,OAAA,EAAAA,EAAEwC,WACjC,OAAOA,EACH,eAAeA,oBACfvG,EAAAA,2BAFJ,EA2IA0H,kBACA5F,eACAoH,aA7H0B1D,GAAqBnF,OAAAA,OAAAA,OAAAA,GAAAA,Y,MAC/C,MAAM8I,EAAkC,QAAZ,aAAYpF,IAAAA,OAAA,EAAAA,EAAEjD,WACpCmD,EACJkF,EACK7E,I,MAEC,MAAM8E,EAA0C,QAAxB,IAAK9C,2BAAmBvC,IAAAA,OAAA,EAAAA,EAAEuD,MAChD,EAAGxG,UAAWA,IAASqI,IAEzB,IAAKC,EACH,MAAM,IAAI5H,MAAM,mBAAmB2H,KAErCC,EAAgB5D,UAAYA,CAA5B,EAEDlB,GAAUA,EAAKkB,UAAYA,EAEnC,IA8GC6D,eAAgB,KAAK,MAAC,OAAY,QAAZ,aAAYtF,IAAAA,OAAA,EAAAA,EAAEjD,IAAd,EACtBwI,sBAzG4B,KAC5B,MAAMC,EAAQzH,IACd,IAAKyH,GAA0B,IAAjBA,EAAMC,OAClB,MAAM,IAAI7F,EAAAA,yBACR,qDAAqDgE,MAExD,EAoGD8B,gCApEsC,IAC9BnF,EAAKwB,4BAETxB,EAAKyB,mCACL,WACA,OAHA,WAmEJ2D,gBA7DsB,K,MACtB,OAAwB,QAAjB,IAAK1D,oBAAYjC,IAAAA,GAAAA,CAAxB,EA6DA4D,gBACAgC,iBAzDuB,EACvBjD,YACAC,aAIGtG,OAAAA,OAAAA,OAAAA,GAAAA,kBACG4D,GAAQK,I,UAERA,EAAKkC,mBACPlC,EAAKkC,iBAAiBC,SACC,QAArB,IAAKD,wBAAgBzC,IAAAA,OAAA,EAAAA,EAAE0C,SAASmD,QAC7BC,GAAYA,EAAQnD,YAAcA,KAKzCpC,EAAKkC,iBAAmB,CACtBC,SAAU,IAC2B,QAA/B,EAAqB,QAArB,IAAKD,wBAAgBrC,IAAAA,OAAA,EAAAA,EAAEsC,gBAAQgB,IAAAA,EAAAA,EAAI,GACvC,CACEf,YACAC,YALN,GAUH,IA+BCmD,iBA7BwBpD,I,MACxB,MAAMmD,EAA+B,QAArB,IAAKrD,wBAAgBzC,IAAAA,OAAA,EAAAA,EAAE0C,SAASa,MAC7CuC,GAAYnD,IAAcmD,EAAQnD,YAGrC,OACEmD,QAAA,EAAW,CACTnD,YACAC,SAAS,EAHb,EAyBAoD,iBAAkB,KAAK,MAAC,OAAkB,QAAlB,IAAKnD,qBAAa7C,IAAAA,EAAAA,EAAIiG,CAAtB,EACxBC,YAlBkB,MAAO,mBAAc3F,GAEzC,IAyBN,MAAM0F,EAAc,K,0GChQpB,iBACA,WAIahK,EAAAA,eAAiB,KAAK,MACjC,iBAAgC,QAA3B,UAAQoH,IAAI8C,uBAAenG,IAAAA,EAAAA,GAAI,WAAK,eAAW,WAAY,WAAhE,EAEW/D,EAAAA,aAAe,K,MAC1B,iBAC2B,QAAzB,UAAQoH,IAAI+C,qBAAapG,IAAAA,EAAAA,GAAI,WAAK,eAAW,SAAU,SACvD,WAFF,C,4vBJTF,iBACA,aAGMqG,EAAwB,CAC5BC,UAAW1F,EAAEI,OACbuF,SAAU3F,EAAEI,OACZwF,UAAW5F,EAAEwB,MAAMxB,EAAEkC,QACrB2D,eAAgB7F,EAAEG,SAASH,EAAEwB,MAAMxB,EAAEI,SACrC0F,iBAAkB9F,EAAEG,SAASH,EAAEwB,MAAMxB,EAAEI,SACvC2F,WAAY/F,EAAEG,SAASH,EAAEM,UAGdjF,EAAAA,qBAAuB2E,EAAEC,MAAM,CAC1C+F,SAAUhG,EAAEkC,OACZ+D,MAAOjG,EAAEI,OACT8F,KAAMlG,EAAEI,OACR+F,MAAOnG,EAAEoG,SAAS,CAAC,OAAQ,SAAU,WACrCC,eAAgBrG,EAAEoG,SAAS,CACzB,oBACA,WACA,kBACA,UACAvI,IAEFyI,YAAatG,EAAEI,OACfmG,YAAavG,EAAEI,OACfoG,IAAKxG,EAAEI,OACPqG,QAASzG,EAAEM,QACXoG,SAAU1G,EAAEwB,MACVxB,EAAEC,MAAM,CACN0G,QAAS3G,EAAEI,OACXwG,QAAS5G,EAAEI,OACXyG,SAAU7G,EAAEI,OACZ0G,UAAW9G,EAAEI,OACb2G,mBAAoB/G,EAAEG,SAASH,EAAEI,WAGrC4G,kBAAmBhH,EAAEG,SAASH,EAAEkC,QAChC+E,eAAgBjH,EAAEG,SAASH,EAAEI,QAC7B8G,SAAUlH,EAAEG,SAASH,EAAEI,UAMZ/E,EAAAA,WAAa,CAKxBW,WAAY,CACVmL,OAAQ,OACRX,IAAK,4BACLvK,OAAQ,CACNC,QAAS8D,EAAEwB,MACTxB,EAAEC,MAAM,CAUN9D,KAAM6D,EAAEI,OAER3E,QAASuE,EAAEG,SAASH,EAAEC,MAAM,KAC5B7D,UAAW4D,EAAEI,YAKrBgH,WAAY,CACVD,OAAQ,OACRX,IAAK,wBACLvK,OAAQ,CACNoL,YAAarH,EAAEI,OAEfkH,oBAAqBtH,EAAEkC,OAEvBqF,KAAMvH,EAAEI,OACRoH,QAASxH,EAAEG,SAASH,EAAEI,QACtB7D,IAAKyD,EAAEG,SACLH,EAAEC,MAAM,CACN9D,KAAM6D,EAAEI,OACRrD,QAASiD,EAAEI,OACXqH,WAAYzH,EAAEI,OACdsH,aAAc1H,EAAEG,SAASH,EAAEI,aAKnCuH,sBAAuB,CACrBR,OAAQ,MACRX,IAAK,mCACLlJ,YAAa,CACXsK,IAAK5H,EAAEI,OACPyH,KAAM7H,EAAEI,OACR0H,UAAW9H,EAAEI,OACb2H,WAAY/H,EAAEI,QAEhB4H,SAAU,CACRC,qBAAsBjI,EAAEwB,MAAMxB,EAAEI,UAGpC8H,cAAe,CACbf,OAAQ,MACRX,IAAK,oBACLlJ,YAAa,CACX6K,eAAgBnI,EAAEI,OAElBgI,mBAAoBpI,EAAEG,SAASH,EAAEI,SAEnC4H,SAAU,CACRK,OAAQrI,EAAEG,SACRH,EAAEC,MAAM,CACNlD,QAASiD,EAAEI,OACXkI,SAAUtI,EAAEM,aAKpBiI,aAAc,CACZpB,OAAQ,MACRX,IAAK,0BACLlJ,YAAa,CACX6K,eAAgBnI,EAAEI,QAEpB4H,SAAU,CACRQ,MAAOxI,EAAEwB,MAAMxB,EAAEC,MAAM,CAAEwI,SAAUzI,EAAEI,OAAQsI,UAAW1I,EAAEM,aAG9DqI,SAAU,CACRxB,OAAQ,OACRX,IAAK,qBACLvK,OAAQ,CACNsL,KAAMvH,EAAEI,OACRrD,QAASiD,EAAEI,OACXsH,aAAc1H,EAAEG,SAASH,EAAEI,UAG/BwI,mCAAoC,CAClCzB,OAAQ,OACRX,IAAK,oDACLvK,OAAQ,CACN4M,KAAM7I,EAAEI,OACRtC,SAAUkC,EAAEG,SAASH,EAAEI,QACvB0I,MAAO9I,EAAEG,SAASH,EAAEI,QACpByH,KAAM7H,EAAEG,SAASH,EAAEI,SAErB4H,SAAU,CACRe,OAAQ/I,EAAEgJ,MACRhJ,EAAEC,MAAM,CACN8H,WAAY/H,EAAEI,OACd6I,cAAejJ,EAAEI,SAEnBJ,EAAEC,MAAM,CACNzD,MAAOwD,EAAEI,YAKjB8I,4BAA6B,CAC3B/B,OAAQ,OACRX,IAAK,2CACLvK,OAAQ,CACN4M,KAAM7I,EAAEI,OACRtC,SAAUkC,EAAEG,SAASH,EAAEI,QACvB0I,MAAO9I,EAAEI,OACTyH,KAAM7H,EAAEI,QAEV4H,SAAU,CACRe,OAAQ/I,EAAEgJ,MACRhJ,EAAEC,MAAM,CACNgG,MAAOjG,EAAEI,OACT+I,YAAanJ,EAAEI,SAEjBJ,EAAEC,MAAM,CACNzD,MAAOwD,EAAEI,YAKjBgJ,OAAQ,CACNjC,OAAQ,OACRX,IAAK,mBACLvK,OAAQ,CACNoN,WAAYrJ,EAAEI,OACdkJ,WAAYtJ,EAAEI,SAGlBmJ,mBAAoB,CAClBpC,OAAQ,OACRX,IAAK,iCACLvK,OAAQ,CACNyJ,UAAW1F,EAAEI,OACbuF,SAAU3F,EAAEI,OAEZoJ,gBAAiBxJ,EAAEG,SAASH,EAAEI,QAE9BqJ,sBAAuBzJ,EAAEG,SAASH,EAAEI,QACpCsJ,eAAgB1J,EAAEG,SAASH,EAAEM,SAC7BqJ,gBAAiB3J,EAAEG,SAASH,EAAEM,SAC9BsJ,QAAS5J,EAAEG,SAASH,EAAEI,QACtByJ,IAAK7J,EAAEG,SAASH,EAAEM,SAClBwJ,aAAc9J,EAAEG,SAASH,EAAEM,SAC3ByJ,IAAK/J,EAAEwB,MACLxB,EAAEQ,UAAU,CACVR,EAAEC,MAAM,CACN+J,OAAQhK,EAAEoG,SAAS,CAAC,WACpB6D,KAAMjK,EAAEI,OACRuG,QAAS3G,EAAEG,SAASH,EAAEI,QACtB8J,KAAMlK,EAAEI,OACRwG,QAAS5G,EAAEG,SAASH,EAAEI,QACtB6F,MAAOjG,EAAEI,OACT8F,KAAMlG,EAAEG,SAASH,EAAEI,QACnB+J,MAAOnK,EAAEG,SAASH,EAAEM,SACpB8J,UAAWpK,EAAEG,SAASH,EAAEwB,MAAMxB,EAAEI,WAElCJ,EAAEC,MAAM,CACN+J,OAAQhK,EAAEoG,SAAS,CAAC,WACpB6D,KAAMjK,EAAEI,OACRuG,QAAS3G,EAAEG,SAASH,EAAEI,QACtB8J,KAAMlK,EAAEI,OACRwG,QAAS5G,EAAEG,SAASH,EAAEI,QACtB6F,MAAOjG,EAAEG,SAASH,EAAEI,QACpB8F,KAAMlG,EAAEG,SAASH,EAAEI,QACnB4F,SAAUhG,EAAEkC,OACZiI,MAAOnK,EAAEG,SAASH,EAAEM,SACpB8J,UAAWpK,EAAEG,SAASH,EAAEwB,MAAMxB,EAAEI,cAItCiK,mBAAoBrK,EAAEG,SACpBH,EAAEC,MAAM,CACNqK,SAAUtK,EAAEM,QACZiK,cAAevK,EAAEM,QACjBkK,SAAUxK,EAAEM,QACZmK,iBAAkBzK,EAAEM,QACpBoK,oBAAqB1K,EAAEG,SAASH,EAAEM,aAIxC0H,SAAU,CACR+B,IAAK/J,EAAEwB,MACLxB,EAAEQ,UAAU,CACVR,EAAEC,MAAM,CACNgK,KAAMjK,EAAEI,OACR4F,SAAUhG,EAAEkC,OACZyI,MAAO3K,EAAEI,OACTwK,OAAQ5K,EAAEoG,SAAS,CAAC,UAAW,YAC/BV,UAAW1F,EAAEI,OACbuF,SAAU3F,EAAEI,SAEdJ,EAAEC,MAAM,CACNgK,KAAMjK,EAAEI,OACR5D,MAAOwD,EAAEI,OACTwK,OAAQ5K,EAAEoG,SAAS,CAAC,iBAM9ByE,4BAA6B,CAI3B1D,OAAQ,OACRX,IAAK,0BACLvK,OAAQwJ,EACRuC,SAAU,CACR+B,IAAK/J,EAAEwB,MAAMnG,EAAAA,wBAGjByP,gBAAiB,CAIf3D,OAAQ,OACRX,IAAK,kCACLvK,OAAQwJ,EACRuC,SAAU,CACRe,OAAQ/I,EAAE+K,YAAY,SAAU,CAC9BC,GAAI,CACFJ,OAAQ5K,EAAES,QAAQ,MAClBsJ,IAAK/J,EAAEwB,MAAMnG,EAAAA,uBAEfmB,MAAO,CACLoO,OAAQ5K,EAAES,QAAQ,SAClB1D,QAASiD,EAAEI,YAKnB6K,mBAAoB,CAClB9D,OAAQ,OACRX,IAAK,gCACLvK,OAAQ,CACNyJ,UAAW1F,EAAEI,OACbuF,SAAU3F,EAAEI,OACZwF,UAAW5F,EAAEwB,MAAMxB,EAAEkC,SAEvB8F,SAAU,CACRkD,qBAAsBlL,EAAEwB,MACtBxB,EAAEC,MAAM,CACN+F,SAAUhG,EAAEkC,OACZ+I,mBAAoBjL,EAAEoG,SAAS+E,EAAAA,qBAKvCC,MAAO,CACLjE,OAAQ,OACRX,IAAK,kBACLvK,OAAQ,CACNyJ,UAAW1F,EAAEI,OACbuF,SAAU3F,EAAEI,OACZoJ,gBAAiBxJ,EAAEI,OACnBwF,UAAW5F,EAAEwB,MAAMxB,EAAEkC,UAGzBmJ,eAAgB,CACdlE,OAAQ,MACRX,IAAK,6BACLlJ,YAAa,CACXsK,IAAK5H,EAAEI,OACPyH,KAAM7H,EAAEI,QAEV4H,SAAU,CACRjL,QAASiD,EAAEsL,SACTtL,EAAEC,MAAM,CACNsL,KAAMvL,EAAEI,OACRwK,OAAQ5K,EAAEoG,SAAS,CAAC,UAAW,OAAQ,eAO/CoF,mBAAoB,CAClBrE,OAAQ,MACRX,IAAK,6BACLlJ,YAAa,CACXmO,MAAOzL,EAAEI,QAEX5C,QAAS,CACP,aAAcwC,EAAEI,QAElB4H,SAAU,CACRlG,SAAU9B,EAAEwB,MACVxB,EAAEC,MAAM,CACN9D,KAAM6D,EAAEI,OACR2B,UAAW/B,EAAEI,OACbsL,oBAAqB1L,EAAEM,QACvBqL,oBAAqB3L,EAAEkC,OACvB6H,IAAK/J,EAAEwB,MACLxB,EAAEC,MAAM,CACNiC,OAAQlC,EAAEkC,OACV+D,MAAOjG,EAAEI,OACT+F,MAAOnG,EAAEoG,SAAS,CAAC,OAAQ,SAAU,WACrCU,UAAW9G,EAAEI,OACbwL,UAAW5L,EAAEI,OACbyH,KAAM7H,EAAEC,MAAM,CACZ9D,KAAM6D,EAAEI,OACR0I,MAAO9I,EAAEI,SAEXyL,OAAQ7L,EAAEsL,SACRtL,EAAEC,MAAM,CACN9D,KAAM6D,EAAEsL,SAAStL,EAAEI,QACnB0L,MAAO9L,EAAEI,OACT2L,UAAW/L,EAAEI,UAGjBiG,eAAgBrG,EAAEoG,SAAS,CACzB,oBACA,WACA,4BAQd4F,UAAW,CACT7E,OAAQ,OACRX,IAAK,uBACLvK,OAAQ,CACNyJ,UAAW1F,EAAEG,SAASH,EAAEI,QACxBuF,SAAU3F,EAAEG,SAASH,EAAEI,SAEzB4H,SAAU,CACRiE,YAAajM,EAAEG,SAASH,EAAEI,QAC1B8L,aAAclM,EAAEG,SAASH,EAAEM,WAG/B6L,kBAAmB,CACjBhF,OAAQ,MACRX,IAAK,+BACLlJ,YAAa,CACXoI,UAAW1F,EAAEI,OACbuF,SAAU3F,EAAEI,QAEd4H,SAAU,CACRe,OAAQ/I,EAAEQ,UAAU,CAClBR,EAAEC,MAAM,CACN2K,OAAQ5K,EAAEoG,SAAS,CAAC,SAAU,yBAEhCpG,EAAEC,MAAM,CACN2K,OAAQ5K,EAAEoG,SAAS,CAAC,yBACpBrJ,QAASiD,EAAEI,aAKnBgM,cAAe,CACbjF,OAAQ,OACRX,IAAK,gCACLvK,OAAQ,CACNyJ,UAAW1F,EAAEI,OACbuF,SAAU3F,EAAEI,QAEd4H,SAAU,CACRzL,IAAKyD,EAAEG,SAASH,EAAEI,UAGtBiM,kCAAmC,CACjClF,OAAQ,OACRX,IAAK,uDACLvK,OAAQ,CACNqQ,KAAMtM,EAAEoG,SAAS,CAAC,gBAAiB,uB,4ZKhbzC,iBAEA,UACA,WACA,WASA,WACA,WACA,WACA,WACA,WAKA,WACA,WACA,WAOA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WAQA,WACA,WAIA,UACA,WACA,WAMA,UACA,WACA,WACA,WACA,WAMA,WACA,WACA,WACA,WAQA,WAKA,WAKA/K,EAAAA,WAAA,UAAiC,IAC/BkR,EAD+B,MAE/BjO,EAF+B,MAG/BkO,I,yCAMA,MAAMC,GAAS,sBAAiB,CAAEF,MAAKjO,WAEhCoO,EAAWC,SAAoBC,QAAQC,IAAI,EAChD,kBAAa,CAAEJ,YACf,mBAAc,CAAEA,aAEZK,GAAS,sBAAiBL,GAChC,OAAQC,EAML/O,OAAAA,OAAAA,OAAAA,OAAAA,OAAAA,OAAAA,CACGgP,aACA9E,MAAM,EACNiF,UACGJ,IACA,yBAAoBD,IAAO,CAC9BM,QAAQ,0BAAoB,UAAKC,EAAAA,OAAQ,CAAEP,YAC3CQ,YAAY,0BAAoB,UAAKD,EAAAA,WAAY,CAAEP,YACnDS,UAAU,0BAAoB,UAAKF,EAAAA,SAAU,CAAEP,YAC/CU,oBAAoB,0BAClB,UAAKC,EAAAA,mBAAoB,CAAEX,YAE7BY,YAAY,UAAKD,EAAAA,WAAY,CAAEX,WAC/Ba,kBAAkB,0BAChB,UAAKF,EAAAA,iBAAkB,CAAEX,YAE3Bc,iBAAiB,UAAKC,EAAAA,gBAAiB,CAAEf,WACzCgB,eAAe,UAAKD,EAAAA,cAAe,CAAEf,WACrCiB,iBAAiB,UAAKC,EAAAA,gBAAiB,CAAElB,WACzCmB,WAAW,0BAAoB,UAAKC,EAAAA,UAAW,CAAEpB,YACjDqB,sBAAsB,0BACpB,UAAKC,EAAAA,qBAAsB,CAAEtB,YAE/BuB,uBAAuB,0BACrB,UAAKD,EAAAA,sBAAuB,CAAEtB,YAEhCwB,YAAY,UAAKF,EAAAA,WAAY,CAAEtB,WAC/ByB,cAAc,UAAKH,EAAAA,aAAc,CAAEtB,WACnC0B,cAAc,UAAKJ,EAAAA,aAAc,CAAEtB,WACnC2B,SAAS,UAAKC,EAAAA,QAAS,CAAE5B,WACzB6B,wBAAwB,0BACtB,UAAKD,EAAAA,uBAAwB,CAAE5B,YAEjC8B,wBAAwB,UAAKR,EAAAA,uBAAwB,CAAEtB,WACvD+B,mBAAmB,UAAKT,EAAAA,kBAAmB,CAAEtB,WAC7CgC,2BAA2B,UAAKC,EAAAA,0BAA2B,CAAEjC,WAC7DkC,2BAA2B,UAAKD,EAAAA,0BAA2B,CAAEjC,WAC7DmC,eAAe,UAAKC,EAAAA,cAAe,CAAEpC,WACrCqC,QAAQ,UAAKC,EAAAA,OAAQ,CAAEvC,QAAOC,WAC9BuC,QAAQ,UAAKD,EAAAA,OAAQ,CAAEvC,QAAOC,WAC9BwC,qBAAqB,0BACnB,UAAKpB,EAAAA,oBAAqB,CAAEpB,YAE9ByC,oBAAoB,0BAClB,UAAKb,EAAAA,mBAAoB,CAAE5B,YAE7B0C,UAAU,UAAKd,EAAAA,SAAU,CAAE5B,WAC3B2C,aAAa,UAAKf,EAAAA,YAAa,CAAE5B,WACjC4C,eAAe,UAAKC,EAAAA,cAAe,CAAE7C,WACrC8C,eAAe,UAAKD,EAAAA,cAAe,CAAE7C,WACrC+C,sBAAsB,UAAKC,EAAAA,qBAAsB,CAAEhD,WACnDiD,eAAe,UAAKC,EAAAA,cAAe,CAAElD,WACrCmD,QAAQ,UAAKD,EAAAA,OAAQ,CAAElD,WACvBoD,wBAAwB,0BACtB,UAAKhC,EAAAA,uBAAwB,CAAEpB,YAEjCqD,wBAAwB,0BACtB,UAAKjC,EAAAA,uBAAwB,CAAEpB,YAEjCsD,UAAU,UAAKC,EAAAA,SAAU,CAAEvD,WAC3BwD,SAAS,0BAAoB,UAAKC,EAAAA,QAAS,CAAEzD,YAC7C0D,cAAc,UAAKC,EAAAA,aAAc,CAAE3D,WACnC4D,YAAY,UAAKD,EAAAA,WAAY,CAAE3D,WAC/B6D,kBAAkB,0BAChB,UAAKzC,EAAAA,iBAAkB,CAAEpB,YAE3B8D,eAAe,0BACb,UAAKC,EAAAA,cAAe,CAAEC,OAAQ/D,EAAU+D,UAE1CC,aAAa,UAAKC,EAAAA,YAAa,CAAElE,WACjCmE,cAAc,UAAKC,EAAAA,aAAc,CAAEpE,WACnCqE,aAAa,UAAKC,EAAAA,YAAa,CAAEtE,WACjCuE,iBAAiB,UAAKC,EAAAA,gBAAiB,CAAExE,WACzCyE,2BAA2B,UAAKC,EAAAA,0BAA2B,CAAE1E,WAC7D2E,mCAAmC,UACjCD,EAAAA,kCACA,CACE1E,WAGJ4E,YAAY,UAAKC,EAAAA,WAAY,CAC3B7E,SACA8E,UAAWzE,EACX0E,aAAc9E,EAAU8E,aACxBC,SAAU/E,EAAU+E,WAEtBC,uBAAuB,UAAKC,EAAAA,sBAAuB,CACjDJ,UAAWzE,EACX0E,aAAc9E,EAAU8E,aACxBC,SAAU/E,EAAU+E,WAEtBG,kCAAkC,UAChCC,EAAAA,iCACA,CACEpF,SACA8E,UAAWzE,IAGfgF,kBAAkB,0BAChB,UAAKC,EAAAA,iBAAkB,CAAEtB,OAAQ/D,EAAU+D,UAE7CuB,aAAa,UAAKC,EAAAA,YAAa,CAC7BxF,SACA8E,UAAWzE,IAEboF,QAAQ,UAAKC,EAAAA,OAAQ,CAAE1B,OAAQ/D,EAAU+D,OAAQhE,WACjD2F,gBAAgB,UAAKD,EAAAA,eAAgB,CACnC1B,OAAQ/D,EAAU+D,OAClBhE,WAEF4F,aAAa,0BAAoB,UAAKF,EAAAA,YAAa,CAAE1F,YACrD6F,mBAAmB,UAAKH,EAAAA,kBAAmB,CACzC1B,OAAQ/D,EAAU+D,OAClBhE,WAEF8F,WAAW,UAAKC,EAAAA,UAAW,CAAE/F,WAC7BgG,YAAY,UAAKD,EAAAA,WAAY,CAAE/F,WAC/BiG,WAAW,UAAKF,EAAAA,UAAW,CAAE/F,WAC7BkG,cAAc,UAAKH,EAAAA,aAAc,CAAE/F,WACnCmG,mBAAmB,UAAKC,EAAAA,kBAAmB,CAAEpG,WAC7CqG,4BAA4B,0BAC1B,UAAKC,EAAAA,2BAA4B,CAAEtG,YAErCuG,OAAO,0BAAoB,UAAKC,EAAAA,MAAO,CAAExG,YACzCyG,iBAAiB,UAAKC,EAAAA,gBAAiB,CAAE1G,WACzC2G,WAAW,UAAKD,EAAAA,UAAW,CAAE1G,WAC7B4G,SAAS,UAAKF,EAAAA,QAAS,CAAE1G,WACzB6G,iBAAiB,UAAKH,EAAAA,gBAAiB,CAAE1G,WACzC8G,WAAW,UAAKJ,EAAAA,UAAW,CAAE1G,WAC7B+G,4BAA4B,UAAKL,EAAAA,2BAA4B,CAC3D1G,WAEFgH,2BAA2B,UAAKC,EAAAA,0BAA2B,CAAEjH,WAC7DkH,0BAA0B,UAAKjF,EAAAA,yBAA0B,CAAEjC,WAC3DmH,8BAA8B,UAAKC,EAAAA,6BAA8B,CAC/DpC,SAAU/E,EAAU+E,SACpBD,aAAc9E,EAAU8E,aACxB/E,SACA8E,UAAWzE,IAEbgH,cAAc,0BAAoB,UAAKjG,EAAAA,aAAc,CAAEpB,cAjJzD,CACEE,aACA9E,MAAM,EACNiF,SAgJP,I,8fClQD,oBACA,cAGA,WAEA,WACA,WA8FA,SAAeiH,GAAkB,IAC/BC,EAD+B,MAE/BC,EAF+B,OAG/BxH,EAH+B,SAI/BgF,EAJ+B,aAK/BD,I,yCAWA,MAAM0C,EAAY/R,EAAAA,QAAKC,KACrBoP,EACA,OAAOhP,QAAQ2R,OAAOC,KAAKC,qBAEvB,2BAAsB,CAC1BC,QAASN,EACTE,YACAzH,SACAgF,mBAEI,2BAAsB,CAC1BwC,QACAC,YACAzH,SACAgF,aAEF,MAAM8C,QAAoB,4BAAuB,CAC/CL,YACAzH,SACAgF,aAIF,OAFAjT,EAAAA,QAAGgW,OAAON,GAEHK,CACR,IA5HDlZ,EAAAA,6BAAA,UAAmD,KACjDoZ,EADiD,QAEjDC,EAFiD,OAGjDjI,EAHiD,iCAIjDvL,EAJiD,UAKjDqQ,EALiD,aAMjDC,EANiD,SAOjDC,I,yCAUA,MAAMkD,QAAqBpD,EAAU,kBAC/BqD,EACJD,GAAiC,UAAjBA,GAA6C,MAAjBA,EAExCE,EAAS,GACf,IAAIC,QAAkB,YAAO,CAAErI,SAAQsI,IAAK,GAAGN,EAAK,QAChDO,GAAiB,EACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAAQ7P,OAAQoQ,IAAK,CACvC,MAAMjB,EAAMS,EAAKQ,GACXhB,EAAQS,EAAQO,GAGtB,IAAKD,GAA4B,OAAVf,EAAgB,CACrCY,EAAOK,KAAKlB,GACZc,EAAYd,EACZ,QACD,CAGDgB,GAAiB,EAEjB,MAAMG,GAAkB,gCAA2B,CAAE1I,SAAQuH,QACvDO,EACM,OAAVN,EACI,GAAGD,iBACGD,EAAkB,CACtBvC,eACAC,WACAuC,MACAC,QACAxH,YAGF,QAAE1P,EAAF,WAAWqY,EAAX,YAAuBC,EAAvB,WAAoCC,SAClCH,EACFI,QAAkB9I,EAAO+I,cAAc,CAC3CC,KAAM,CACJ,cACAlB,EACA,KACAO,EACA,KACA/X,KACI6X,EAAU,CAAC,MAAQ,IAEzBc,QAAS,QACTC,SAAU,yCACVxW,QAAS,CACPsD,IAAG,6CACED,QAAQC,KAAG,CACdmT,gBAAiBN,EACjBO,iBAAkBR,EAClBS,gBAAiBV,IACblU,GAAoC,CACtC6U,mBAAoBX,KAI1B7I,IAAKkF,IAGPoD,EAAOK,KAAKK,GACZT,EAAYS,CACb,CACD,OAAOV,CACR,I,+aCjGDxZ,EAAAA,OAAA,UAA6B,OAAEoR,I,+CACvBA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,MAAO,SACdC,QAAS,QACTC,SAAU,UAEb,KAEDta,EAAAA,WAAA,UAAiC,OAAEoR,I,+CAC3BA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,MAAO,YACdC,QAAS,QACTC,SAAU,cAEb,KAEDta,EAAAA,SAAA,UAA+B,OAAEoR,I,+CACzBA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,MAAO,WACdtW,QAAS,CAAE6W,MAAO,WAClBN,QAAS,QACTC,SAAU,YAEb,I,qhBCvBDta,EAAAA,qBAAA,UAA2C,OAAEoR,I,yCAC3C,MAAM1E,QAAmB0E,EAAO+I,cAAc,CAC5CC,KAAM,CAAC,SAAU,kBACjBC,QAAS,SACTC,SAAU,yBAGZ,OAAO5N,EAAWlD,OAAS,EAAIkD,OAAalK,CAC7C,KAEDxC,EAAAA,sBAAA,UAA4C,OAC1CoR,I,yCAIA,MAAM1E,QAAmB0E,EAAO+I,cAAc,CAC5CC,KAAM,CAAC,YAAa,uBAAwB,qBAAsB,SAClEC,QAAS,SACTC,SAAU,0BAEZ,OAAO5N,EAAWlD,OAAS,EAAIkD,OAAalK,CAC7C,KAEDxC,EAAAA,WAAA,UAAiC,OAC/BoR,EAD+B,QAE/BwJ,I,+CAKMxJ,EAAO+I,cAAc,CACzBC,KAAM,CAAC,SAAU,KAAMQ,GACvB9W,QAAS,CAAE6W,MAAO,QAClBN,QAAS,QACTC,SAAU,cAEb,KAEDta,EAAAA,aAAA,UAAmC,OACjCoR,EADiC,WAEjC1E,I,+CAKM0E,EAAO+I,cAAc,CACzBC,KAAM,CAAC,SAAU,KAAM1N,GACvB5I,QAAS,CAAE6W,MAAO,QAClBN,QAAS,QACTC,SAAU,gBAEb,KAEDta,EAAAA,aAAA,UAAmC,OACjC6a,EADiC,UAEjCC,EAFiC,OAGjCC,EAHiC,MAIjCC,EAJiC,OAKjC5J,I,+CAQMA,EAAO+I,cAAc,CACzBC,KAAM,CACJ,SACA,QACIW,EAAS,CAAC,MAAQ,MAClBC,EAAQ,CAAC,MAAQ,MACjBF,EAAY,CAAC,MAAQ,GACzBD,GAEF/W,QAAS,CAEP6W,MAAO,WAETN,QAAS,QACTC,SAAU,gBAEb,KAEDta,EAAAA,uBAAA,UAA6C,WAC3C0M,EAD2C,IAE3CiM,EAF2C,OAG3CvH,I,+CAMMA,EAAO+I,cAAc,CACzBC,KAAM,CACJ,SACA,KACA,KACA1N,EACAiM,GAEF7U,QAAS,CAEP6W,MAAO,WAETN,QAAS,QACTC,SAAU,0BAEb,KAEDta,EAAAA,kBAAA,UAAwC,WACtC0M,EADsC,IAEtCiM,EAFsC,OAGtCvH,I,+CAMMA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,SAAU,KAAM1N,EAAYiM,GACnC7U,QAAS,CAAE6W,MAAO,QAClBN,QAAS,QACTC,SAAU,qBAEb,I,sZC7HDta,EAAAA,MAAA,UAA4B,OAAEoR,I,+CACtBA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,QAAS,WAChBtW,QAAS,CAAE6W,MAAO,UAClBN,QAAS,QACTC,SAAU,SAEb,I,8ZCTD,iBACA,WAUAta,EAAAA,YAAA,UAAkC,KAChCib,EADgC,KAEhCC,EAFgC,KAGhCtM,EAHgC,iCAIhC/I,EAJgC,OAKhCuL,EALgC,UAMhC8E,I,iDASA,MAAMoD,QAAqBpD,EAAU,kBAC/BqD,EACJD,GAAiC,UAAjBA,GAA6C,MAAjBA,EAC9C,OAgGkB,QA/FhB,EA+FC,QA/FD,cAEU,+BAA0B,CAC9BzK,KAAMqM,EACNtM,OACAuM,OAAQ,MACR/J,YAGDgK,UACAC,KAAK1C,IAAD,CACHA,MACAmB,iBAAiB,gCAA2B,CAAE1I,SAAQuH,YAEvD2C,QAGC,CAAOC,GAAiB5C,MAAKmB,qBAAqBzZ,EAAAA,UAAAA,OAAAA,GAAAA,YAChD,MACEmb,GACA,QAAE9Z,EAAF,WAAWqY,EAAX,YAAuBC,EAAvB,WAAoCC,UAC5B1I,QAAQC,IAAI,CAAC+J,EAAezB,IAGtC,IAAK0B,EACH,OAAO,KAGT,MAAMC,EAAaD,EAAaE,KAK1BC,QAAuBvK,EAAO+I,cAAc,CAChDC,KAAM,CAAC,cAAeqB,EAAY,KAAM,GAAG9C,KAAQ,KAAM,KACzD0B,QAAS,QACTC,SAAU,8BAINoB,QAAatK,EAChB+I,cAAc,CACbC,KAAM,CAAC,aAAcuB,EAAgBhD,GACrC0B,QAAS,QACTC,SAAU,yBAEXrZ,OAAOC,IACN,GAAIA,aAAe0a,EAAAA,oBAAuC,IAAjB1a,EAAI2a,SAC3C,OAAO,KACT,MAAM3a,CAAN,IAIJ,OAAKwa,EAKDA,GAAQD,EACHD,EAGF,CACLE,OACAI,cAAe1K,EAAO+I,cAAc,CAClCC,KAAM,CACJ,cACAsB,EACA,WACMF,EAAaM,cACnB,KACApa,KACI6X,EAAU,CAAC,MAAQ,IAEzBzV,QAAS,CACPsD,IAAG,6CACED,QAAQC,KAAG,CACdmT,gBAAiBN,EACjBO,iBAAkBR,EAClBS,gBAAiBV,IACblU,GAAoC,CACtC6U,mBAAoBX,KAI1BM,QAAS,QACTC,SAAU,2BAhCL,IAmCV,KACD/I,QAAQwK,QAAQ,CACdD,cAAevK,QAAQwK,QAAQd,GAC/BS,KAAM,GAAGT,qBAGhBlX,IAAAA,OAAA,EAAAA,EAAE+X,qBAAa3X,IAAAA,EAAAA,EAAI,I,GAEvB,C,gaCnHDnE,EAAAA,OAAA,UAA6B,MAC3Bgc,EAD2B,QAE3Bta,EAF2B,OAG3Bua,EAH2B,KAI3BC,EAJ2B,MAK3BtD,EAL2B,MAM3BzH,EAN2B,aAO3BgL,EAP2B,SAQ3BC,EAR2B,OAS3BhL,I,+CAEMA,EAAO+I,cAAc,CACzBC,KAAM,CACJ,YACI4B,EAAQ,CAAC,WAAa,MACtBta,EAAU,CAAC,KAAMA,GAAW,MAC5Bua,EAAS,CAAC,aAAe,MACzBC,EAAO,CAAC,MAAQ,MAChBtD,EAAQ,CAAC,MAAQ,MACjBwD,EAAW,CAAC,MAAQ,MACpBjL,EAAQ,CAAC,MAAQ,MACjBgL,EAAeE,MAAMF,GAAcG,KAAK,MAAQ,IAEtDxY,QAAS,CACP6W,MAAO,WAETN,QAAS,QACTC,SAAU,UAEb,KAEDta,EAAAA,OAAA,UAA6B,OAC3BoR,EAD2B,IAE3BuH,EAF2B,KAG3BuD,EAH2B,MAI3B/K,I,+CAOMC,EAAO+I,cAAc,CACzBC,KAAM,CACJ,SACAzB,KACIxH,EAAQ,CAAC,MAAQ,MACjB+K,EAAO,GAAK,CAAC,cAEnBpY,QAAS,CACP6W,MAAO,WAETN,QAAS,QACTC,SAAU,UAEb,I,gbC/DDta,EAAAA,gBAAA,UAAgC,IAC9B0Z,EAD8B,OAE9BtI,IAKA,OAAOA,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,MAAO,eAAgB,KAAM,IAAKV,EAAK,MAC9CW,QAAS,QACTC,SAAU,oBAEb,EAEDta,EAAAA,cAAA,UAAoC,IAClC0Z,EADkC,OAElCtI,I,yCAKA,MAAM1D,QAAe0D,EAAO+I,cAAc,CACxCC,KAAM,CAAC,MAAO,eAAgB,KAAM,IAAKV,EAAK,MAC9CW,QAAS,QACTC,SAAU,mBAEZ,OAAO,IAAIvB,KAAKrL,EACjB,I,glBC/BD,oBAIA1N,EAAAA,0BAAA,UAAgD,OAC9CoR,EAD8C,KAE9CvC,EAF8C,KAG9CD,I,yCAMA,OAAO2N,aACCnL,EAAO+I,cAAc,CACzBC,KAAM,CAAC,WAAY,UAAW,GAAGvL,MAASD,IAAQ,MAClDyL,QAAS,QACTC,SAAU,8BAGf,KAED,MAEMkC,EAAS,CACbC,SAAU,UACVC,QAAS,KACTC,QAAS,OACTC,gBAAiB,oBACjBC,gBAAiB,gBACjBC,wBAAyB,MACzBC,IAAK,KACLC,YAAa,MACbC,eAAgB,OAIlB,SAAsB3J,GAA0B,OAC9ClC,EAD8C,KAE9CvC,EAF8C,KAG9CD,EAH8C,OAI9CuM,I,yCAQA,IAAKtM,EACH,MAAO,OACCuC,EAAO+I,cAAc,CACzBC,KAAM,CACJ,aACA,MACA,KACA,mBAAmBoC,EAAOrB,KAC1BvM,EACA,MAEFyL,QAAS,QACTC,SAAU,6BAKhB,MAAM4C,QAA0B9L,EAAO+L,2BAA2B,CAChE/C,KAAM,CAAC,aAAc,MAAO,qBAAsB,GAAGvL,MAASD,IAAQ,MACtEyL,QAAS,QACTC,SAAU,yBAWN8C,EAAoB,GAC1B,IAAK,MAAMC,KAAiBC,EAAAA,QAAEC,MAC5BL,EA5DyC,KA8DxC,CACD,MAAMM,QAAqBjM,QAAQC,IACjC6L,EAAchC,KAAK1C,GACN,QAAXwC,EACIxC,EACAvH,EAAO+I,cAAc,CACnBC,KAAM,CACJ,aACA,MACA,KACA,mBAAmBoC,EAAOrB,KAC1BxC,EACA,MAEF0B,QAAS,QACTC,SAAU,+BAIpB8C,EAAQvD,QAAQ2D,EACjB,CACD,OAAOJ,CACR,IArEDpd,EAAAA,0BAAAA,EAuEAA,EAAAA,yBAAA,UAA+C,OAC7CoR,EAD6C,KAE7CvC,EAF6C,KAG7CD,I,yCAcA,aALqBwC,EAAO+L,2BAA2B,CACrD/C,KAAM,CAAC,aAAc,MAAO,cAAe,GAAGvL,MAASD,IAAQ,MAC/DyL,QAAS,QACTC,SAAU,8BAGTe,KAAKoC,GAASA,EAAKC,MAAM,QACzBC,OACAtC,KAAKR,GAAWA,EAAO+C,QAAQ,WAAY,MAC3ChU,OAAOiU,QACX,KAED7d,EAAAA,2BAAA,UAAiD,OAC/CoR,EAD+C,IAE/CuH,I,yCAKA,OAAOrF,EAA0B,CAC/BlC,SACAvC,UAAMrM,EACNoM,KAAM+J,EACNwC,OAAQ,oBAEP2C,MAAK,EAAEC,KAAcA,EAASL,MAAM,QACpCI,MAAK,EAAE7D,EAAYD,EAAaD,KAAeiE,MAA1C,CACJ/D,aACAD,cACAD,aACArY,QAASsc,EAAajX,KAAK,SAEhC,I,gaCvJD,iBAEA/G,EAAAA,cAAA,UAAoC,OAClCoR,EADkC,YAElC6M,I,yCAKA,MAAMC,QAA0B,YAAO,CACrC9M,SACAsI,IAAK,SAAStI,EAAO+I,cAAc,CACjCC,KAAM,CAAC,aAAc,eAAgB6D,GACrC5D,QAAS,SACTC,SAAU,2BAGR6D,EAAgC,GAiBtC,aAfQ/M,EAAO+L,2BAA2B,CACtC/C,KAAM,CACJ,WACA,eACI8D,EACA,CAAC,IAAIA,OAAwBD,GAC7B,CAAC,SACL,MAEF5D,QAAS,QACTC,SAAU,mBAGXe,KAAK+C,GAAMA,EAAEV,MAAM,OACnBW,SAASD,GAAOD,EAAIC,EAAE,IAAMA,EAAEE,MAAM,KAChCH,CACR,I,iaCjCYne,EAAAA,iBAAoBoR,IAC/B,MAAMmN,EAAe,IAAIC,IACzB,OAAcpY,GAA4B/F,OAAAA,OAAAA,OAAAA,GAAAA,YACxC,MAAMgG,EAAQkY,EAAaE,IAAIrY,GAC/B,QAAc5D,IAAV6D,EACF,OAAOA,EAGT,MAAMqY,QAeV,UAAqC,OACnCtN,EADmC,IAEnChL,I,yCAKA,aACSgL,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,SAAU,QAAShU,GAC1BiU,QAAS,SACTC,SAAU,0BACL,IAEV,IA7B0BqE,CAAsB,CAAEvN,SAAQhL,QAEvD,OADAmY,EAAaK,IAAIxY,EAAKsY,GACfA,CACR,GATD,C,+dCHF1e,EAAAA,mBAAA,UAAyC,OAAEoR,I,yCACzC,OAAOA,EAAO+I,cAAc,CAC1BC,KAAM,CACJ,KACA,kBACA,aACA,OACA,gBACA,UAEFC,QAAS,QACTC,SAAU,sBAEb,KAEDta,EAAAA,SAAA,UAAyB,OACvBoR,EADuB,KAEvByN,EAFuB,MAGvBC,EAHuB,KAIvBC,EAJuB,UAKvBC,EALuB,QAMvBC,IASA,OAAO7N,EAAO+I,cAAc,CAC1BC,KAAM,CACJ,KACA,kBACA,aACA,OACA,gBACAyE,EACAC,KACIC,EAAO,CAAC,UAAY,MACpBC,EAAY,CAAC,eAAiB,MAC9BC,EAAU,CAAC,aAAe,GAC9B,MAEF5E,QAAS,QACTC,SAAU,YAEb,EAEDta,EAAAA,YAAA,UAAkC,OAChCoR,EADgC,KAEhCyN,EAFgC,MAGhCC,I,yCAMA,OAee,WAbL1N,EAAO+I,cAAc,CACzBC,KAAM,CACJ,aACA,OACA,gBACA,cACAyE,EACAC,EACA,MAEFzE,QAAS,QACTC,SAAU,iBAEZ9Q,MAEL,KAED,MAAM0V,EAAY,CAEhB,aAGA,KACA,oBACA,OAEA,gBAEA,cAEA,aAGFlf,EAAAA,QAAA,UAAwB,OACtBoR,EADsB,KAEtByN,EAFsB,MAGtBC,IAMA,OAAO1N,EAAO+I,cAAc,CAC1BC,KAAM,IAAI8E,EAAWL,KAAUC,EAAQ,CAACA,GAAS,GAAK,MACtDK,QAAQ,EACR9E,QAAS,QACTC,SAAU,WAEb,EAEDta,EAAAA,uBAAA,UAAuC,OAAEoR,IACvC,OAAOA,EAAO+I,cAAc,CAC1BC,KAAM,IAAI8E,EAAW,WAAY,MACjCC,QAAQ,EACR9E,QAAS,QACTC,SAAU,0BAEb,C,gbCtHD,iBAGM8E,EAAuB1S,GAC3B,sBAAuBA,IAEzB1M,EAAAA,cAAA,UAAoC,OAClCoR,EADkC,OAElCiO,EAFkC,YAGlCpB,I,yCAM2B,IAAvBA,EAAYzU,eAGV4H,EAAO+I,cAAc,CACzBC,KAAM,CACJ,QACA,wBACA,KACAiF,KACGpB,EAAY5C,KACZ3O,GACC,cAAcA,KAAc0S,EAAoB1S,QAGtD5I,QAAS,CAAE6W,MAAO,QAClBN,QAAS,QACTC,SAAU,gBAEb,KACDta,EAAAA,cAAA,UAAoC,OAClCoR,EADkC,WAElC1E,I,yCAKA,OAAO,mBAAc,CAAE0E,SAAQsI,IAAK0F,EAAoB1S,IACzD,I,gaCzCD1M,EAAAA,gBAAA,UAAsC,OACpCoR,EADoC,IAEpCsI,EAFoC,KAGpC4F,I,yCAMA,OAAOlO,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,OAAQ,GAAGV,KAAO4F,KACzBjF,QAAS,QACTC,SAAU,gBAEb,I,sVCkCD,SAASiF,EAAqBC,GAC5B,OAAQA,GACN,IAAK,IACH,MAAO,QAET,IAAK,IACH,MAAO,SAET,IAAK,IACH,MAAO,UAET,IAAK,IAML,QACE,MAAO,WAJT,IAAK,IACH,MAAO,UAKZ,C,0EAhEDxf,EAAAA,gBAAA,UAAsC,OACpCoR,EADoC,KAEpC8J,EAFoC,GAGpCuE,I,yCAMA,MAMMC,EAAwB,GAExBC,SARevO,EAAO+I,cAAc,CACxCC,KAAM,CAAC,OAAQ,KAAM,gBAAiBc,EAAMuE,GAC5CpF,QAAS,SACTC,SAAU,qBAKUoD,MAAM,MAE5B,IAAK,IAAI9D,EAAI,EAAGA,EAAI+F,EAAOnW,OAAS,EAAGoQ,EAAG,CACxC,MAMMrK,EAASgQ,EANGI,EAAO/F,GAMqB,IAG9C,GAAe,WAAXrK,GAAkC,YAAXA,EAAsB,CAC/C,MAAM2L,EAAOyE,EAAO/F,EAAI,GAClBrV,EAAOob,EAAO/F,EAAI,GACxB8F,EAAM7F,KAAK,CAAEtV,OAAMgL,SAAQ2L,SAC3BtB,GAAK,CACN,KAAM,CACL,MAAMrV,EAAOob,EAAO/F,EAAI,GACxB8F,EAAM7F,KAAK,CAAEtV,OAAMgL,SAAQ2L,UAAM1Y,IACjCoX,GAAK,CACN,CACF,CAED,OAAO8F,CACR,I,qaC9CD1f,EAAAA,qBAAA,UAA2C,OACzCoR,EADyC,OAEzCiO,I,yCAKA,MAAM7F,QAAepI,EAAO+I,cAAc,CACxCC,KAAM,CAAC,YAAa,eAAgB,gBAAgBiF,UACpDhF,QAAS,SACTC,SAAU,yBAIZ,IAAKd,EACH,OAAO,KAET,MAAMoG,EAAS,GAAGP,KAClB,OAAK7F,EAAOqG,WAAWD,GAGhBpG,EAAO8E,MAAMsB,EAAOpW,QAFlB,IAGV,I,wfCxBD,oBACA,cAmBAxJ,EAAAA,sBAAA,UAA4C,KAC1C8f,EAD0C,UAE1C5J,EAF0C,SAG1CE,EAH0C,aAI1CD,I,yCAOA,MAAM4J,QAAsB7J,EAAU,kBAChC8J,EAAYD,EACdjZ,EAAAA,QAAKC,KAAKqP,EAAU2J,GACpBjZ,EAAAA,QAAKC,KAAKoP,EAAc,SACtB8J,EAAqBnZ,EAAAA,QAAKC,KAAKiZ,EAAWF,GAChD,OAAK3c,EAAAA,QAAG+c,eAAeD,GAIhBA,EAHE,IAIV,I,6bCvCDjgB,EAAAA,cAAA,UAAoC,IAClC0Z,EADkC,OAElCtI,I,yCAKA,OAAOA,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,YAAaV,GACpBW,QAAS,QACTC,SAAU,iBAEb,KAEDta,EAAAA,OAAA,UAA6B,IAC3B0Z,EAD2B,OAE3BtI,I,yCAKA,OAAOA,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,YAAaV,GACpBW,QAAS,SACTC,SAAU,UAEb,KAGDta,EAAAA,oBAAA,SAAoCoR,GAIlC,IAAI+O,EAOJ,MAAO,CAAEC,mBALyBf,GAAkBhf,EAAAA,UAAAA,OAAAA,GAAAA,YAClD8f,QAOJ,UAA+B,OAC7Bd,EAD6B,OAE7BjO,I,yCAKA,MAAM+O,EAAqC,GAsB3C,aAnBQ/O,EAAO+L,2BAA2B,CACtC/C,KAAM,CAAC,YAAa,UAAWiF,GAC/BhF,QAAS,SACTC,SAAU,qBAKXe,KAAKoC,GAASA,EAAKC,MAAM,SACzB9T,QACEyW,GACsB,IAArBA,EAAU7W,QACV6W,EAAUC,OAAOlf,GAAMA,EAAEoI,OAAS,KAClC6W,EAAU,GAAGR,WAAW,iBAE3BxB,SACC,EAAE1F,EAAKe,KAAUyG,EAAWzG,EAAI4E,MAAM,KAAyB3F,IAG5DwH,CACR,IArCsBI,CAAgB,CAAElB,SAAQjO,UAC9C,IAG4BoP,aADP9T,GAAuByT,aAAU,EAAV,EAAazT,GAE3D,C,8ZCzCD1M,EAAAA,cAAA,UAAoC,OAAEoR,I,yCACpC,aACQA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,aACPC,QAAS,QACTC,SAAU,mBAEZoD,MAAM,KAAK,EACd,I,udCRD1d,EAAAA,sBAAA,UAA4C,QAC1CiZ,EAD0C,UAE1CJ,EAF0C,OAG1CzH,EAH0C,SAI1CgF,I,+CAOMhF,EAAO+I,cAAc,CACzBC,KAAM,CAAC,YAAa,iBAAkBvB,EAAWI,GACjD/H,IAAKkF,EACLiE,QAAS,QACTC,SAAU,yBAEb,KAEDta,EAAAA,sBAAA,UAA4C,MAC1C4Y,EAD0C,OAE1CxH,EAF0C,UAG1CyH,EAH0C,SAI1CzC,I,+CAOMhF,EAAO+I,cAAc,CACzBC,KAAM,CAAC,QAAS,YAAa,WAAY,MAAO,iBAAkB,KAClEqG,MAAO7H,EACP9U,QAAS,CACPsD,IAAG,+BACED,QAAQC,KAAG,CACdsZ,eAAgB7H,KAGpB3H,IAAKkF,EACLiE,QAAS,QACTC,SAAU,yBAEb,KAEDta,EAAAA,uBAAA,UAA6C,UAC3C6Y,EAD2C,OAE3CzH,EAF2C,SAG3CgF,I,yCAMA,OAAOhF,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,cACPtW,QAAS,CACPsD,IAAG,+BACED,QAAQC,KAAG,CACdsZ,eAAgB7H,KAGpB3H,IAAKkF,EACLiE,QAAS,QACTC,SAAU,0BAEb,I,2ZCnED,iBACA,WACA,WAEAta,EAAAA,SAAA,UAA+B,WAC7B0M,EAD6B,UAE7BD,EAF6B,OAG7B2E,I,yCAMA,MAAMuP,GAAY,kBAAa,CAC7BvP,SACAyN,KAAMnS,EACNoS,MAAOrS,IAEHmU,SACE,+BAA0B,CAC9B/R,KAAMpC,EACNmC,KAAMlC,EACNyO,OAAQ,MACR/J,YAEFgK,UAmCF,aAhCkCwF,EAActF,QAC9C,CAAOuF,EAAKC,IAAczgB,EAAAA,UAAAA,OAAAA,GAAAA,YACxB,MAAM0gB,QAAoBF,EAEpBG,QAAmB5P,EAAO+I,cAAc,CAC5CC,KAAM,CACJ,cACA,GAAG0G,WACH,KACAC,EACA,KACA,KAEF1G,QAAS,SACTC,SAAU,wBAaZ,aARQlJ,EAAO+I,cAAc,CACzBC,KAAM,CAAC,SAAU3N,EAAWuU,EAAYD,GACxC1G,QAAS,SACTC,SAAU,cAEZuF,WAAW,KAGKiB,EAAaC,CAChC,KACDxP,QAAQwK,QAAQ4E,cAGoB,YAAO,CAAEvP,SAAQsI,IAAKhN,IAC7D,I,wZC5DD1M,EAAAA,QAAA,UAA8B,OAAEoR,I,+CACxBA,EAAO+I,cAAc,CACzBC,KAAM,CACJ,MACA,UACA,kBACA,aACA,8IACA,cAEFtW,QAAS,CAAE6W,MAAO,WAClBN,QAAS,QACTC,SAAU,WAEb,I,4aChBD,iBAEAta,EAAAA,aAAA,UAA6B,OAC3BoR,EAD2B,KAE3ByN,EAF2B,MAG3BC,IAMA,OAAO1N,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,aAAcyE,EAAMC,GAC3BzE,QAAS,QACTC,SAAU,gBAEb,EAKDta,EAAAA,WAAA,UAAiC,OAC/BoR,EAD+B,KAE/ByN,EAF+B,MAG/BC,I,yCAMA,IAME,aALM1N,EAAO+I,cAAc,CACzBC,KAAM,CAAC,aAAc,gBAAiByE,EAAMC,GAC5CzE,QAAS,QACTC,SAAU,kBAEL,CACR,CAAC,MAAO2G,GACP,GAAIA,aAAarF,EAAAA,oBAAqC,IAAfqF,EAAEpF,SACvC,OAAO,EAET,MAAMoF,CACP,CACF,I,gfC3CD,oBACA,cAEAjhB,EAAAA,cAAA,UAAoC,OAAEoV,I,yCACpC,MAAM8L,EAAiBpa,EAAAA,QAAKC,KAAK,GAAGqO,IAAU,eAAgB,aAE9D,SAAYjS,EAAAA,QAAGC,WAAW8d,GAI1B,aACQ/d,EAAAA,QAAGge,SAASD,EAAgB,CAChCE,SAAU,WAGXC,OACA/C,MAAM,GACV,I,sVCkCD,SAAsBtG,GAAQ,IAC5B0B,EAD4B,OAE5BtI,I,yCAKA,OAAOA,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,WAAY,KAAMV,GACzBW,QAAS,QACTC,SAAU,WAEb,I,2JA7DDta,EAAAA,gBAAA,UAAgC,QAC9BshB,EAD8B,OAE9BlQ,IAKA,OAAOA,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,cAAe,KAAM,WAC5BqG,MAAOa,EACPjH,QAAS,QACTC,SAAU,mBAEb,EAEDta,EAAAA,UAAA,UAAgC,IAC9B0Z,EAD8B,IAE9Bf,EAF8B,OAG9BvH,I,+CAMMA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,aAAcV,EAAKf,GAC1B7U,QAAS,CACP6W,MAAO,QAETN,QAAS,QACTC,SAAU,aAEb,KAEDta,EAAAA,gBAAA,UAAsC,IACpC0Z,EADoC,OAEpCtI,I,yCAKA,IAEE,aADM4G,EAAQ,CAAE0B,MAAKtI,YACd,CACR,CAAC,SACA,OAAO,CACR,CACF,KAEDpR,EAAAA,QAAAA,EAcAA,EAAAA,UAAA,UAAgC,IAC9B0Z,EAD8B,OAE9BtI,I,+CAKMA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,aAAc,KAAMV,GAC3BW,QAAS,QACTC,SAAU,aAEb,KAEDta,EAAAA,2BAAA,UAAiD,OAC/CoR,EAD+C,OAE/CwO,I,yCAKA,MAAMxG,EAA+B,GAerC,aAbQhI,EAAO+L,2BAA2B,CACtC/C,KAAM,CAAC,eAAgB,oCAAqCwF,GAC5DvF,QAAS,QACTC,SAAU,gCAGXe,KAAKoC,GAASA,EAAKC,MAAM,OACzB9T,QACEyW,GAAkE,IAArBA,EAAU7W,SAEzD6U,SACC,EAAEkD,EAAS5I,KAAUS,EAAKmI,EAAQC,UAAU5B,EAAOpW,SAAWmP,IAE3DS,CACR,I,4ZCpGDpZ,EAAAA,YAAA,UAAkC,OAChCoR,EADgC,OAEhCiO,I,+CAKMjO,EAAO+I,cAAc,CACzBC,KAAM,CAAC,SAAU,QAASiF,GAC1BhF,QAAS,SACTC,SAAU,eAEb,I,gdCdD,iBAEAta,EAAAA,0BAAA,UAAgD,OAC9CoR,EAD8C,OAE9CiO,EAF8C,WAG9C3S,I,+CAMM0E,EAAO+I,cAAc,CACzBC,KAAM,CAAC,QAASiF,EAAQ3S,GACxB2N,QAAS,QACTC,SAAU,6BAEb,KAMDta,EAAAA,kCAAA,UAAwD,OACtDoR,EADsD,OAEtDiO,EAFsD,WAGtD3S,I,yCAMA,IAME,aALM0E,EAAO+I,cAAc,CACzBC,KAAM,CAAC,QAAS,YAAa,GAAGiF,KAAU3S,KAC1C2N,QAAS,QACTC,SAAU,sCAEL,IACR,CAAC,MAAO2G,GACP,GACEA,aAAarF,EAAAA,oBACbqF,EAAEvf,QAAQ+f,SAAS,kDAEnB,MAAO,WAET,MAAMR,CACP,CACF,I,4ZC/CD,iBAIA,WACA,WAIAjhB,EAAAA,WAAA,UAAiC,OAC/Bqf,EAD+B,WAE/B3S,EAF+B,SAG/B0P,EAH+B,UAI/BsF,EAJ+B,OAK/BtQ,EAL+B,UAM/B8E,EAN+B,aAO/BC,EAP+B,SAQ/BC,EAR+B,iBAS/BuL,I,0CAeKvF,GAAYuF,UAoBnB,UAA8B,OAC5BvQ,EAD4B,UAE5B8E,EAF4B,OAG5BmJ,EAH4B,SAI5BjJ,EAJ4B,aAK5BD,EAL4B,WAM5BzJ,EAN4B,SAO5BkV,EAP4B,UAQ5BC,I,yCAgBA,MAAMC,QAA8B,2BAAsB,CACxDhC,KAAM,WACN5J,YACAE,WACAD,iBAEF,IAAK2L,EACH,OAGF,MAAMC,QAAkB,kBAAa,CAAE3Q,SAAQiO,WACzC3F,EAAM,cAAchN,IAIpBsV,EAAa,GAAGtI,KAAOkI,KAAYlI,KAAOmI,GArFhC,+CAwFhB,KACE,cACE,OAAOzL,QAAe0L,MAA0BzC,KAAU0C,KAC1D,CACEpH,MAAO,CAAC,OAAQ,UAAW,WAC3B8F,MAAOuB,EACPZ,SAAU,SAGf,CAAC,MAAOlgB,GACP,MAAM,IAAIM,MACR,iDAAiDkL,MAC/CxL,aAAeM,MAAQN,EAAIQ,QAAUL,KAAKC,UAAUJ,KAGzD,CAGF,IA/ES+gB,CAAc,6BAClB7Q,SACAiO,SACAnJ,YACAC,eACAC,YACGuL,GAAgB,CACnBjV,iBAIJ,MAAMwV,EAAcR,EAAY,UAAY,2BACtCtQ,EAAO+I,cAAc,CACzBC,KAAM,CAAC,OAAQ,KAAMiF,EAAQ6C,EAAaxV,EAAY,eACtD2N,QAAS,QACTC,SAAU,cAEb,I,0aCjDDta,EAAAA,0BAAA,UAAgD,OAC9CoR,EAD8C,MAE9C+Q,EAF8C,MAG9CC,EAH8C,MAI9CC,EAJ8C,MAK9CC,EAL8C,OAM9CjD,I,yCASA,GAAI8C,IAAUC,GAASC,IAAUC,EAC/B,OAAOH,IAAUC,GAASC,IAAUC,EAItC,MAAMC,SACEhR,QAAQC,IACZ,CAAC2Q,EAAOC,EAAOC,EAAOC,GAAOjH,KAAW1C,GAAOtY,EAAAA,UAAAA,OAAAA,GAAAA,YAC7C,IAME,aALM+Q,EAAO+I,cAAc,CACzBC,KAAM,CAAC,OAAQzB,EAAK,MACpB0B,QAAS,QACTC,SAAU,kBAEL,CAAE3B,MAAK6J,SAAS,EACxB,CAAC,SACA,MAAO,CAAE7J,MAAK6J,SAAS,EACxB,CACF,QAGF5Y,QAAO,EAAG4Y,aAAcA,IACxBnH,KAAI,EAAG1C,SAAUA,IAEhB4J,EAAY/Y,OAAS,UACjB4H,EAAO+I,cAAc,CACzBC,KAAM,CAAC,QAAS,wBAAyBiF,KAAWkD,GACpDlI,QAAS,QACTC,SAAU,oBAId,MAAMmI,EAAS,GAAGN,MAAUC,IACtBM,EAAS,GAAGL,MAAUC,IACtB5U,QAAe0D,EAAO+L,2BAA2B,CACrD/C,KAAM,CAAC,aAAcqI,EAAQC,GAC7BrI,QAAS,QACTC,SAAU,cAOZ,IAAK,MAAMmD,KAAQ/P,EAAQ,CACzB,MAAMF,EAAOiQ,EAAK4D,OAAO3D,MAAM,OAC/B,GAAIlQ,EAAKhE,OAAS,EAChB,OAAO,EAET,GAAgB,MAAZgE,EAAK,GACP,OAAO,CAEV,CAED,OAAO,CACR,I,4cCtED,iBACA,UAyDA,SAAsBwJ,GAAY,OAAE5F,I,+CAC5BA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,SAAU,WACjBtW,QAAS,CAAE6W,MAAO,QAClBN,QAAS,QACTC,SAAU,eAEb,IAsBD,SAAeqI,GAAe,KAC5BvI,EAD4B,QAE5BtW,EAF4B,SAG5BwW,EAH4B,OAI5BlJ,EAJ4B,OAK5BgE,I,yCAQA,UACQhE,EAAO+I,cAAc,CACzBC,KAAM,CAAC,YAAaA,GACpBtW,QAAO,eAAI6W,MAAO,QAAW7W,GAC7BuW,QAAS,QACTC,SAAUA,GAEb,CAAC,MAAO2G,GAMP,GACEA,aAAarF,EAAAA,oBACbqF,EAAEvf,QAAQ+f,SACR,2DAEF,CACA,UACQzK,EAAY,CAAE5F,UACrB,CAAC,MAAOwR,GACP,MAAM3B,CACP,CAED,OAAO0B,EAAe,CAAEvR,SAAQgJ,OAAMtW,UAASwW,WAAUlF,UAC1D,CAED,SAAU,sBAAiB,CAAEA,WAC3B,MAAO,kBAGT,MAAM6L,CACP,CACD,MAAO,aACR,IApIDjhB,EAAAA,OAAA,UAA6B,KAC3Bib,EAD2B,KAE3BC,EAF2B,WAG3BxO,EAH2B,iCAI3B7G,EAJ2B,OAK3BuL,EAL2B,OAM3BgE,I,yCASA,OAAOuN,EAAe,CACpBvR,SACAgJ,KAAM,IACAvU,EACA,CAAC,mCACD,GACJ,SACAoV,EACAC,EACAxO,GAEF4N,SAAU,SACVlF,UAEH,KAEDpV,EAAAA,eAAA,UAAqC,OACnCoR,EADmC,OAEnCgE,EACAtR,SAAS,aAAE+e,GAAiB,CAAEA,cAAc,K,yCAQ5C,OAAOF,EAAe,CACpBvR,SAEAgJ,KAAM,CAAC,cACPtW,QAAS,CACPsD,IAAG,+BAAOD,QAAQC,KAAG,CAAEa,WAAY,SACnC0S,MAAOkI,EAAe,UAAY,QAEpCvI,SAAU,iBACVlF,UAEH,KAEDpV,EAAAA,YAAAA,EASAA,EAAAA,kBAAA,UAAwC,OACtCoR,EADsC,qBAEtC0R,EAFsC,WAGtCpW,EAHsC,OAItC0I,I,yCAOA,OAAOuN,EAAe,CACpBvR,SACAgJ,KAAM,CAAC,KAAM0I,EAAsBpW,GACnC4N,SAAU,oBACVxW,QAAS,CAAE6W,MAAO,WAClBvF,UAEH,I,kfCvFD,oBACA,cAEApV,EAAAA,iBAAA,UAAuC,OAAEoV,I,yCACvC,OAAOjS,EAAAA,QAAGC,WAAW0D,EAAAA,QAAKC,KAAKqO,EAAQ,gBACxC,I,mbCLD,iBACA,WA4IA,SAAe2N,GAAe,KAC5B9H,EAD4B,KAE5BC,EAF4B,KAG5BtM,EAH4B,OAI5BwC,I,yCAUA,MAAMuK,QAAuBvK,EAAO+I,cAAc,CAChDC,KAAM,CAAC,cAAe,GAAGa,WAAe,KAAMC,EAAM,KAAM,KAC1Db,QAAS,QACTC,SAAU,iCAEZ,OAAOlJ,EACJ+I,cAAc,CACbC,KAAM,CAAC,aAAcuB,EAAgB/M,GACrCyL,QAAS,QACTC,SAAU,4BAEXrZ,OAAOC,IACN,GAAIA,aAAe0a,EAAAA,oBAAuC,IAAjB1a,EAAI2a,SAAgB,OAAO,KACpE,MAAM3a,CAAN,GAEL,IAhKDlB,EAAAA,iCAAA,UAAuD,QACrDgjB,EADqD,QAErDC,EAFqD,QAGrDC,EAHqD,QAIrDC,EAJqD,YAKrDC,EALqD,YAMrDC,EANqD,iCAOrDxd,EAPqD,OAQrDuL,EARqD,UASrD8E,I,yCAYA,MAAMoD,QAAqBpD,EAAU,kBAC/BqD,EACJD,GAAiC,UAAjBA,GAA6C,MAAjBA,EAGxCgK,QAAuBP,EAAe,CAC1C3R,SACA6J,KAAMiI,EACNhI,KAAM8H,EACNpU,KAAMqU,IAER,GAAuB,OAAnBK,EACF,OAAO,KAET,MAAMC,QAA2BR,EAAe,CAC9C3R,SACA6J,KAAMiI,EACNhI,KAAMkI,EACNxU,KAAMyU,IAER,GAA2B,OAAvBE,EACF,OAAO,KAIT,MAAMC,QAA0BpS,EAAO+I,cAAc,CACnDC,KAAM,CAAC,cAAekJ,EAAgB,KAAMJ,EAAS,KAAM,KAC3D7I,QAAS,QACTC,SAAU,kDAENmJ,QAA8BrS,EAAO+I,cAAc,CACvDC,KAAM,CACJ,cACAmJ,EACA,KACAC,EACA,KACA,KAEFnJ,QAAS,QACTC,SAAU,sDAENoJ,QAA0BtS,EAAO+I,cAAc,CACnDC,KAAM,CACJ,cACA,GAAG+I,WACH,KACAK,EACA,KACA,KAEFnJ,QAAS,QACTC,SAAU,kDAGNqJ,QAAgBvS,EACnB+I,cAAc,CACbC,KAAM,CAAC,aAAcsJ,EAAmBD,GACxCpJ,QAAS,QACTC,SAAU,8CAEXrZ,OAAOC,IACN,GAAIA,aAAe0a,EAAAA,oBAAuC,IAAjB1a,EAAI2a,SAAgB,OAAO,KACpE,MAAM3a,CAAN,IAEJ,GAAgB,OAAZyiB,EACF,OAAO,KAGT,MAAMC,SACE,+BAA0B,CAC9BzI,OAAQ,MACR/J,SACAxC,KAAMuU,EACNtU,KAAMqU,KAERW,IAAI,GACN,IAAKD,EACH,OAAO,KAGT,MAAM,WAAE3J,EAAF,YAAcD,EAAd,WAA2BD,EAA3B,QAAuCrY,SACrC,gCAA2B,CAAE0P,SAAQuH,IAAKiL,IAElD,OAAOxS,EAAO+I,cAAc,CAC1BC,KAAM,CACJ,cACAuJ,EACA,KACAT,EACA,KACAxhB,KACI6X,EAAU,CAAC,MAAQ,IAEzBc,QAAS,QACTC,SAAU,6CACVxW,QAAS,CACPsD,IAAG,6CACED,QAAQC,KAAG,CACdmT,gBAAiBN,EACjBO,iBAAkBR,EAClBS,gBAAiBV,IACblU,GAAoC,CACtC6U,mBAAoBX,MAK7B,I,6ZCzID/Z,EAAAA,aAAA,UAAmC,OACjCoR,EADiC,OAEjCiO,I,yCAKA,OAAOjO,EAAO+I,cAAc,CAC1BC,KAAM,CAAC,SAAU,UAAWiF,EAAQ,UACpChF,QAAS,QACTC,SAAU,gBAEb,I,6ZCZDta,EAAAA,aAAA,UAAmC,OAAEoR,I,yCACnC,IACE,MAAOgF,EAAUD,EAAcf,SACvBhE,EAAO+L,2BAA2B,CACtC/C,KAAM,CACJ,YACA,yBACA,kBACA,mBACA,aAEFC,QAAS,QACTC,SAAU,iBAEd,MAAO,CAAElE,WAAUD,eAAcf,SAClC,CAAC,SACA,MACD,CACF,I,kcClBDpV,EAAAA,UAAA,UAAgC,IAC9B2Y,EAD8B,OAE9BvH,I,+CAKMA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,QAAS,KAAM,SAAUzB,EAAK,MACrC0B,QAAS,QACTC,SAAU,aAEb,KAEDta,EAAAA,WAAA,UAAiC,IAC/B2Y,EAD+B,OAE/BvH,I,+CAKMA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,QAAS,KAAM,aAAezB,EAAM,CAACA,EAAK,MAAQ,IACzD0B,QAAS,QACTC,SAAU,cAEb,KAEDta,EAAAA,UAAA,UAAgC,IAC9B2Y,EAD8B,OAE9BvH,I,+CAKMA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,QAAS,KAAM,SAAUzB,EAAK,MACrC0B,QAAS,QACTC,SAAU,aAEb,KAEDta,EAAAA,aAAA,UAAmC,IACjC2Y,EADiC,OAEjCvH,I,+CAKMA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,QAAS,MAAOzB,EAAK,MAC5B0B,QAAS,QACTC,SAAU,gBAEb,I,kaCtDDta,EAAAA,kBAAA,UAAwC,OACtCqf,EADsC,WAEtC3S,EAFsC,IAGtCiM,EAHsC,OAItCvH,I,+CAOMA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,aAAc,gBAAgBiF,KAAU3S,IAAciM,GAC7D0B,QAAS,QACTC,SAAU,4BAENlJ,EAAO+I,cAAc,CACzBC,KAAM,CAAC,SAAU,KAAM,GAAGiF,KAAU3S,IAAcA,GAGlD2N,QAAS,SACTC,SAAU,6BAEb,I,4ZCvBDta,EAAAA,YAAA,UAAkC,KAChC6O,EADgC,KAEhCD,EAFgC,MAGhCgK,EAHgC,OAIhCxH,I,yCAOA,OAAOA,EAAO+I,cAAc,CAC1BC,KAAM,CACJ,KACA,kBACA,aACA,SACc,UAAVxB,EAAoB,CAAC,MAAkB,SAAVA,EAAmB,CAAC,UAAY,GACjE,GAAG/J,MAASD,IACZ,MAEFyL,QAAS,QACTC,SAAU,eAEb,I,2aCxBDta,EAAAA,2BAAA,UAAiD,OAC/CoR,I,yCAIA,MAAM0S,EAAmC,GAqBzC,aAlBQ1S,EAAO+L,2BAA2B,CACtC/C,KAAM,CACJ,eACA,0CACA,wBACA,eAEFC,QAAS,QACTC,SAAU,gCAGXe,KAAKoC,GAASA,EAAKC,MAAM,OACzB9T,QACEyW,GACsB,IAArBA,EAAU7W,QAAgB6W,EAAUC,OAAOlf,GAAMA,EAAEoI,OAAS,MAE/D6U,SAAQ,EAAE3R,EAAYiM,KAAUmL,EAASpX,GAAciM,IAEnDmL,CACR,I,sVCoCD,SAAeC,GAAa,OAAE3S,I,yCAC5B,MAAMoI,QAAepI,EAAO+I,cAAc,CACxCC,KAAM,CAAC,sBAAuB,SAAU,MACxCC,QAAS,QACTC,SAAU,eACV6E,QAAQ,IAGJQ,EAASnG,EAAOkE,MAAM,MACtBgC,EAAQ,GAEd,IAAK,IAAI9F,EAAI,EAAGA,EAAI+F,EAAOnW,OAAS,EAAGoQ,IAAK,CAC1C,MAAMoK,EAAYrE,EAAO/F,GAEnBqK,EAAcD,EAAU,GACxBE,EAAoBF,EAAU,GAEpC,IACGG,EAAuBF,KACvBE,EAAuBD,GAExB,MAAM,IAAI1iB,MAAM,2BAA6BgY,GAG/C,MAAMjV,EAAOyf,EAAU1F,MAAM,GACvBpD,EACJ,CAAC,IAAK,KAAKuG,SAASwC,IAAgB,CAAC,IAAK,KAAKxC,SAASyC,GACpDvE,IAAS/F,QACTpX,EAENkd,EAAM7F,KAAK,CACTtV,OACA2W,OACA+I,cACAC,qBAEH,CACD,OAAOxE,CACR,I,8KAhGD1f,EAAAA,aAAA,UAAmC,OAAEoR,I,+CAC7BA,EAAO+I,cAAc,CACzBC,KAAM,CAAC,UACPC,QAAS,SACTC,SAAU,gBAEb,KAKDta,EAAAA,oBAAA,UAA0C,OAAEoR,I,yCAC1C,aAAc2S,EAAa,CAAE3S,YAAWgT,MACtC,EAAGH,cAAaC,uBACd,CAAC,IAAK,IAAK,IAAK,KAAKzC,SAASwC,IAC7B,CAAC,IAAK,KAAKxC,SAASwC,IAGnBA,IAAgBC,GAEvB,KAEDlkB,EAAAA,uBAAA,UAA6C,OAC3CoR,I,yCAIA,aAAc2S,EAAa,CAAE3S,YAAWgT,MACtC,EAAGH,cAAaC,uBAEE,MAAhBD,GACA,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAKxC,SAASyC,IAElD,KAEDlkB,EAAAA,uBAAA,UAA6C,OAC3CoR,I,yCAIA,aAAc2S,EAAa,CAAE3S,YAAWgT,MACtC,EAAGH,cAAaC,uBACE,MAAhBD,GAA6C,MAAtBC,GAE5B,KAEDlkB,EAAAA,iBAAA,UAAuC,OAAEoR,I,yCACvC,aAAc2S,EAAa,CAAE3S,YAC1BxH,QACC,EAAGqa,cAAaC,uBACE,MAAhBD,GACsB,MAAtBC,GACiB,MAAhBD,GAA6C,MAAtBC,GACP,MAAhBD,GAA6C,MAAtBC,IAE3B7I,KAAI,EAAG9W,UAAWA,GACtB,KA0CDvE,EAAAA,UAAA,UAAgC,OAAEoR,I,yCAChC,aAAc2S,EAAa,CAAE3S,YAAWiK,KACtC,EAAG4I,cAAaC,oBAAmB3f,OAAM2W,UAAW5Y,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EA2BxD,SACE2hB,EACAC,GAEA,GACmB,MAAhBD,GAA6C,MAAtBC,GACP,MAAhBD,GAA6C,MAAtBC,GACR,MAAhBD,GACsB,MAAtBC,EAEA,MAAO,CACL3U,OAAQ,aACR8U,OAAQ,QAIZ,GAA0B,MAAtBH,EACF,MAAO,CACL3U,OAAQ,QACR8U,OAAQ,QAIZ,GAAoB,MAAhBJ,EAAqB,CACvB,GAA0B,MAAtBC,GAAmD,MAAtBA,EAC/B,MAAO,CACL3U,OAAQ,WACR8U,OAAQ,QAIZ,GAA0B,MAAtBH,EACF,MAAO,CACL3U,OAAQ,UACR8U,OAAQ,QAIZ,GAA0B,MAAtBH,EACF,MAAO,CACL3U,OAAQ,SACR8U,OAAQ,QAIZ,GAA0B,MAAtBH,EACF,MAAO,CACL3U,OAAQ,UACR8U,OAAQ,QAIZ,GAA0B,MAAtBH,EACF,MAAO,CACL3U,OAAQ,QACR8U,OAAQ,OAGb,CAED,MAAoB,MAAhBJ,GAAuC,MAAhBA,EAClB,CACL1U,OAAQ,WACR8U,OAA8B,MAAtBH,EAA4B,OAAS,WAI7B,MAAhBD,EACK,CACL1U,OAAQ,QACR8U,OAA8B,MAAtBH,EAA4B,OAAS,WAI7B,MAAhBD,EACK,CACL1U,OAAQ,UACR8U,OAA8B,MAAtBH,EAA4B,OAAS,WAI7B,MAAhBD,EACK,CACL1U,OAAQ,SACR8U,OAA8B,MAAtBH,EAA4B,OAAS,WAI7B,MAAhBD,EACK,CACL1U,OAAQ,UACR8U,OAA8B,MAAtBH,EAA4B,OAAS,WAI1C,CACL3U,OAAQ,WACR8U,OAAQ,OAEX,CA7HQ9E,CAAqB0E,EAAaC,IAAkB,CACvD3f,OACA2W,UAGL,KAED,MAAMoJ,EAAwB,CAC5B,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGF,SAASH,EACPI,GAEA,OAAOD,EAAsB7C,SAAS8C,EACvC,C,sVClID,SAAsBzS,GAAmB,OAAEV,I,yCACzC,aACQA,EAAO+L,2BAA2B,CACtC/C,KAAM,CAAC,KAAM,iBAAkB,SAAU,MACzCC,QAAS,QACTC,SAAU,wBAGX1Q,QAAQ6T,GAASA,EAAKoC,WAAW,QACjCxE,KAAKoC,GAASA,EAAK+D,UAAU,IACjC,IAED,SAAsBxP,GAAW,OAC/BZ,EAD+B,UAE/BoT,I,+CAKMpT,EAAO+L,2BAA2B,CACtC/C,KAAM,CAAC,MAAO,qBAAsBoK,GACpCnK,QAAS,QACTC,SAAU,cAEb,I,6GAxBDta,EAAAA,mBAAAA,EAYAA,EAAAA,WAAAA,EAcAA,EAAAA,iBAAA,UAAuC,OAAEoR,I,yCACvC,MAAMqT,QAAqB3S,EAAmB,CAAEV,iBAC1CY,EAAW,CAAEZ,SAAQoT,UAAWC,GACvC,I,+KC/BD,iBAeA,SAAgBC,EAAgBC,GAC9B,MAAM,SAAEC,EAAF,SAAYC,GAAaF,EAEzBG,EAAcH,EAAKI,MAAMnb,QAAO,EAAGob,UAAoB,WAATA,IAC9CC,EAAWN,EAAKI,MAAMnb,QAAO,EAAGob,UAAoB,QAATA,IAOjD,MAAO,CAAEJ,WAAUM,OALJJ,EAAYtb,OACvBob,EAAWE,EAAYtb,OAAS,OAChChH,EAGuBqiB,WAAUM,OAFtBF,EAASzb,OAASqb,EAAWI,EAASzb,OAAS,OAAIhH,EAGnE,CAKD,SAAgB4iB,EAAcT,EAAaU,GACzC,sCACKV,GAAI,CACPC,SAAUD,EAAKC,SAAWS,EAC1BR,SAAUF,EAAKE,SAAWQ,GAE7B,CAYD,SAAgBC,EAAmBX,GACjC,OAAOA,EAAKI,MAAMzJ,QAAO,CAACuF,EAAKpD,KAC7B,OAAQA,EAAKuH,MACX,IAAK,SACH,OAAOnE,EAAM,EAEf,IAAK,MACH,OAAOA,EAAM,EAEf,SACE,uBAAkBpD,GARtB,GAUC,EACJ,CAhDDzd,EAAAA,gBAAAA,EAiBAA,EAAAA,cAAAA,EAWAA,EAAAA,wBAAA,SAAwC2kB,EAAaU,GACnD,sCAAYV,GAAI,CAAEE,SAAUF,EAAKE,SAAWQ,GAC7C,EAKDrlB,EAAAA,mBAAAA,EAuBAA,EAAAA,kBAAA,UAAkC,mBAChCulB,EADgC,kBAEhCC,IAQA,MAAQX,SAAUY,EAAyBN,OAAQO,GACjDhB,EAAgBa,IACVX,SAAUe,EAAwBT,OAAQU,GAChDlB,EAAgBc,GAElB,OACGI,QAAA,EAAwBD,GACvBF,QAIyBjjB,IAA1BkjB,QAC0BljB,IAAzBojB,GACAA,IAAyBH,EAGpBD,GAINE,QAAA,EAAyBD,GACxBE,QAIyBnjB,IAA1BkjB,QAC0BljB,IAAzBojB,GACAF,IAA0BC,EAOrBP,EAAcI,GAAoB,EAJLF,EAAmBC,SAXzD,CAgCD,C,gBC3GD,SAAgBM,GAAqB,KAAElB,IACrC,MAAMmB,EAAenB,EAAKI,MAAMnb,QAAQ6T,GAAuB,WAAdA,EAAKuH,OAChDe,EAAapB,EAAKI,MAAMnb,QAAQ6T,GAAuB,QAAdA,EAAKuH,OAEpD,MAAO,CACL,OAAOL,EAAKC,YAAYkB,EAAatc,WAAWmb,EAAKE,YAAYkB,EAAWvc,eACzEsc,EAAazK,KAAKoC,GAAS,IAAIA,EAAKvN,YACnCyU,EAAKqB,wBAA0B,CAAC,gCAAkC,MACnED,EAAW1K,KAAKoC,GAAS,IAAIA,EAAKvN,YACjCyU,EAAKsB,wBAA0B,CAAC,gCAAkC,IACtElf,KAAK,KACR,C,uGA/BD/G,EAAAA,sBAAA,UAAsC,KACpCuE,EADoC,MAEpC2hB,IAKA,OAAqB,IAAjBA,EAAM1c,OACD,KAEF,CACL,cAAcjF,KAAQA,IACtB,OAAOA,IACP,OAAOA,OACJ2hB,EACAC,MAAK,CAACC,EAAGC,IAAMD,EAAExB,SAAWyB,EAAEzB,WAC9BvJ,KAAKsJ,GAASkB,EAAqB,CAAElB,YACxC5d,KAAK,KACR,EAED/G,EAAAA,qBAAAA,C,eCjBA,SAASsmB,EAAc7F,GACrB,MAAOb,KAAWsG,GAASzF,EAAM/C,MAAM,QACvC,IAAKkC,EACH,MAAM,IAAIpe,MAAM,mBAElB,MAAM+kB,EAAc3G,EAAOlC,MAAM,MAC3B8I,EAAYD,EAAY,GAC9B,IAAKC,EACH,MAAM,IAAIhlB,MAAM,0BAElB,IAAKilB,EAAaC,GAAeF,EAAU9I,MAAM,KACjD,IAAK+I,IAAgBC,EACnB,MAAM,IAAIllB,MAAM,iCAAmCglB,GAErD,IAAK,MAAM/I,KAAQ8I,EAAYjI,MAAM,GACnC,GAAIb,EAAKoC,WAAW,YAClB4G,EAAc,iBAGhB,GAAIhJ,EAAKoC,WAAW,gBAClB6G,EAAc,iBAIhB,KACEjJ,EAAKoC,WAAW,QAChBpC,EAAKoC,WAAW,QAChBpC,EAAKoC,WAAW,aAChBpC,EAAKoC,WAAW,aAChBpC,EAAKoC,WAAW,UAChBpC,EAAKoC,WAAW,WAChBpC,EAAKoC,WAAW,eAChBpC,EAAKoC,WAAW,kBAChBpC,EAAKoC,WAAW,WACP,KAATpC,GAIF,MAAM,IAAIjc,MAAM,iCAAmCic,GAErD,MAAO,CACLgJ,cACAC,cACAR,MAAOA,EAAM7K,KAAKsL,IAChB,IACE,OAAOC,EAAcD,EACtB,CAAC,MAAO1F,GACP,MAAM,IAAIzf,MACR,+BAA+BilB,KAAeC,OAC/B,iBAANzF,GAAkBA,GAAK,YAAaA,GAAKA,EAAEvf,YAC/CilB,IAER,KAGN,CAGD,SAASC,EAAcnG,GACrB,MAAOoG,KAAW9B,GAAStE,EAAM/C,MAAM,MACvC,IAAKmJ,EACH,MAAM,IAAIrlB,MAAM,cAElB,MAAOslB,GAAUD,EAAOnJ,MAAM,MAC9B,IAAKoJ,EACH,MAAM,IAAItlB,MAAM,uBAAyBqlB,GAE3C,MAAOE,EAAUC,GAAYF,EAAOzF,OAAO3D,MAAM,KACjD,IAAKqJ,IAAaC,EAChB,MAAM,IAAIxlB,MAAM,uBAAyBqlB,GAE3C,MAAOjC,EAAUqC,GAAYF,EAASzI,MAAM,GAAGZ,MAAM,MAC9CmH,EAAUqC,GAAYF,EAAS1I,MAAM,GAAGZ,MAAM,KACrD,IAAKkH,IAAaC,EAChB,MAAM,IAAIrjB,MAAM,uBAAyBqlB,GAE3C,IAIIM,EAJAC,GAAWxC,EACXyC,GAAWxC,EAIXmB,GAA0B,EAC1BC,GAA0B,EAE9B,MAAMzM,EAAS,GACf,IAAK,MAAMiE,KAAQsH,EAAO,CACxB,GAAoB,IAAhBtH,EAAKjU,OACP,SAEF,MAAM8d,EAAW7J,EAAK,GAChBvN,EAAOuN,EAAKa,MAAM,GACxB,OAAQgJ,GACN,IAAK,IACHF,IACA5N,EAAOK,KAAK,CACVmL,KAAM,SACN9U,SAEF,MAEF,IAAK,IACHmX,IACA7N,EAAOK,KAAK,CACVmL,KAAM,MACN9U,SAEF,MAEF,IAAK,IACHkX,IACAC,IACA7N,EAAOK,KAAK,CACVmL,KAAM,UACN9U,SAEF,MAEF,IAAK,KACH,IAAKiX,GAAyB,+BAATjX,EACnB,MAAM,IAAI1O,MAAM,qBAAuBic,GAGzC,OAAQ0J,GACN,IAAK,IACHnB,GAA0B,EAC1B,MAEF,IAAK,IACHC,GAA0B,EAC1B,MAEF,IAAK,IACHD,GAA0B,EAC1BC,GAA0B,EAC1B,MAEF,QACE,MAAM,IAAIzkB,MAAM,qBAAuBic,GAE3C,MAEF,QACE,MAAM,IAAIjc,MAAM,qBAAuBic,GAE3C0J,EAAeG,CAChB,CACD,MAAMC,GAAuB3C,GAAYqC,GAAYA,EAAW,GAChE,GAAIG,IAAYG,EACd,MAAM,IAAI/lB,MACR,+BACE4lB,EADF,cAIEG,GAGN,MAAMC,GAAuB3C,GAAYqC,GAAYA,EAAW,GAChE,GAAIG,IAAYG,EACd,MAAM,IAAIhmB,MACR,+BACE6lB,EADF,cAIEG,GAGN,MAAO,CACLxB,0BACAC,0BACArB,UAAWA,EACXC,UAAWA,EACXE,MAAOvL,EAEV,C,oGAvLDxZ,EAAAA,mBAAA,SAAmCygB,GACjC,OAAKA,GAGG,KAAOA,EAAMgH,aAClB/J,MAAM,iBACN9T,OAAOiU,SACPxC,IAAIiL,GALE,EAMV,EA2DyBtmB,EAAAA,qBAAAA,C,qGCnE1B,iBA8BAA,EAAAA,yBAAA,SACEwN,GAEA,OAAOA,EAAK6N,KAAKiE,IAAD,CACdmH,YAAanH,EAAKmH,YAClBC,YAAapH,EAAKoH,YAClBR,MAAO5G,EAAK4G,MAAMwB,SAAS/C,IACzB,MAAMgD,EAAW,GACjB,IAAIP,EAAUzC,EAAKC,SACfyC,EAAU1C,EAAKE,SACf+C,EAAcR,EACdS,EAAcR,EACdS,EAAW,GACf,IAAK,MAAMrK,KAAQkH,EAAKI,MACtB,GAAkB,YAAdtH,EAAKuH,KAgBT,OAAQvH,EAAKuH,MACX,IAAK,SACH8C,EAASjO,KAAK,CAAEmL,KAAM,SAAU9U,KAAMuN,EAAKvN,OAC3CkX,IACA,MAEF,IAAK,MACHU,EAASjO,KAAK,CAAEmL,KAAM,MAAO9U,KAAMuN,EAAKvN,OACxCmX,IACA,MAEF,SACE,uBAAkB5J,QA1BhBqK,EAASte,OAAS,GACpBme,EAAS9N,KAAK,CACZ+K,SAAUgD,EACV/C,SAAUgD,EACV9C,MAAO+C,EACP9B,yBAAyB,EACzBC,yBAAyB,IAG7B2B,IAAgBR,EAChBS,IAAgBR,EAChBS,EAAW,GA8Bf,OAZIA,EAASte,OAAS,GACpBme,EAAS9N,KAAK,CACZ+K,SAAUgD,EACV/C,SAAUgD,EACV9C,MAAO+C,EAIP9B,wBAAyBrB,EAAKqB,wBAC9BC,wBAAyBtB,EAAKsB,0BAG3B0B,EAAStM,KAAKsJ,IACnB,GAA0B,IAAtBA,EAAKI,MAAMvb,OACb,MAAM,IAAIhI,MAAM,cAKlB,OACEmjB,EAAKC,SAAW,IACfD,EAAKI,MAAMX,MAAM3G,GAAuB,WAAdA,EAAKuH,OAEhC,+BAAYL,GAAI,CAAEC,SAAUD,EAAKC,SAAW,IAG5CD,EAAKE,SAAW,IACfF,EAAKI,MAAMX,MAAM3G,GAAuB,QAAdA,EAAKuH,OAEhC,+BAAYL,GAAI,CAAEE,SAAUF,EAAKE,SAAW,IAEvCF,CAAP,GAnBF,OAuBL,C,yeC9GD,iBACA,cACA,cAEA,WAEMoD,EAAiB,WAKvB/nB,EAAAA,QAAA,MAIEyB,WAAAA,CACEumB,EACAC,GAEA,KAAKD,IAAMA,EACX,KAAK5W,QAAS,sBAAiB,CAC7BF,IAAK8W,EAEL/kB,MAAOkE,QAAQC,IAAI8gB,MAAS9mB,GAAM+mB,QAAQC,IAAIhnB,GAAK,KAHtB,IAK/B,KAAKinB,eAAiBvhB,EAAAA,QAAKC,KAAKihB,EAAK,+BAChCC,aAAI,EAAJ,EAAMK,gBACT,eACE,OACA,aAAI,EAAJ,EAAMC,SACF,CAAC,QAASN,EAAKM,QAASP,GACxB,CAAC,OAAQA,EAAK,KAAM,UAI5B,eAAU,MAAO,CAAC,SAAU,aAAc,qBAAsB,CAC9D9W,IAAK8W,KAEP,eAAU,MAAO,CAAC,SAAU,YAAa,iBAAkB,CACzD9W,IAAK8W,GAER,CAEK7N,aAAAA,CAAcC,G,yCAClB,OAAO,KAAKhJ,OAAO+I,cAAc,CAC/BC,OACAC,QAAS,QACTC,SAAU,QAEb,IAEKkO,YAAAA,CACJC,EACA7I,EACA8I,G,yCAEA,MAAM9lB,EAAWkE,EAAAA,QAAKC,KACpB,GAAG,KAAKihB,MACR,GAAGpI,EAASA,EAAS,IAAM,KAAKmI,KAElC5kB,EAAAA,QAAGwlB,cAAc/lB,EAAU6lB,GACtBC,UACG,KAAKvO,cAAc,CAAC,MAAOvX,IAEpC,IAEDgmB,gBAAAA,CAAiBhJ,GACf,MAAMhd,EAAWkE,EAAAA,QAAKC,KACpB,GAAG,KAAKihB,MACR,GAAGpI,EAASA,EAAS,IAAM,KAAKmI,KAElC,OAAO5kB,EAAAA,QAAG0lB,aAAajmB,EAAU,OAClC,CAEKkmB,qBAAAA,CACJL,EACA7I,G,+CAEM,KAAK4I,aAAaC,EAAW7I,SAC7B,KAAKzF,cAAc,CAAC,MAAO,YAC3B,KAAKA,cAAc,CAAC,SAAU,KAAMsO,GAC3C,IAEKM,oBAAAA,CACJN,EACA7I,G,+CAEM,KAAK4I,aAAaC,EAAW7I,SAC7B,KAAKzF,cAAc,CAAC,MAAO,YAC3B,KAAKA,cAAc,CAAC,SAAU,UAAW,aAChD,IAEKtH,YAAAA,CAAa/R,G,+CACX,KAAKqZ,cAAc,CAAC,SAAU,KAAMrZ,GAC3C,IAEKkoB,gBAAAA,G,yCACJ,aAAc,KAAK7O,cAAc,CAAC,OAAQ,cAAc3Q,OAAS,CAClE,IAEDyf,mBAAAA,CAAoBC,GAClB/lB,EAAAA,QAAGgmB,WAAW,GAAG,KAAKnB,kBACtB7kB,EAAAA,QAAGwlB,cAAc,GAAG,KAAKX,4BAA6BkB,IACtD,eAAU,QAAS,CAAC,KAAM,GAAG,KAAKlB,6BACnC,CAEKoB,uBAAAA,CAAwBtoB,G,+CACtB,KAAKqZ,cAAc,CAAC,WAAY,KAAMrZ,GAC7C,IAEKuoB,cAAAA,CAAevoB,G,+CACb,KAAKqZ,cAAc,CAAC,WAAYrZ,GACvC,IAED2V,gBAAAA,GACE,OAAOtT,EAAAA,QAAGmmB,WAAWxiB,EAAAA,QAAKC,KAAK,KAAKihB,IAAK,OAAQ,gBAClD,CAEKuB,qBAAAA,G,+CACE,KAAKpP,cAAc,CAAC,WAAY,WAAY,KACnD,IAEKqP,4BAAAA,G,+CACE,KAAKrP,cAAc,CAAC,MAAO,KAClC,IAEKsP,iBAAAA,G,yCACJ,OAAO,KAAKtP,cAAc,CAAC,SAAU,kBACtC,IAEKuP,YAAAA,CAAahd,G,yCACjB,OAAO,KAAKyN,cAAc,CAAC,YAAa,cAAczN,KACvD,IAEKid,+BAAAA,G,yCACJ,aAAc,KAAKxP,cAAc,CAAC,MAAO,YAAa,iBACnDuD,MAAM,MACN9T,QAAQwU,GAAMA,EAAE5U,OAAS,GAC7B,K,yXCzIH,cAASlH,OAAAA,eAAAA,EAAAA,aAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,mBAAU,IAInB,eAASnc,OAAAA,eAAAA,EAAAA,mBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,yBAAgB,IAEzB,eAGEnc,OAAAA,eAAAA,EAAAA,oBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,0BAAiB,IACjBnc,OAAAA,eAAAA,EAAAA,kBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,wBAAe,IACfnc,OAAAA,eAAAA,EAAAA,qBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,2BAAkB,IAClBnc,OAAAA,eAAAA,EAAAA,gBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,sBAAa,IACbnc,OAAAA,eAAAA,EAAAA,0BAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,gCAAuB,IAEzB,eACEnc,OAAAA,eAAAA,EAAAA,uBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,6BAAoB,IACpBnc,OAAAA,eAAAA,EAAAA,wBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,8BAAqB,IAEvB,cACEnc,OAAAA,eAAAA,EAAAA,uBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,6BAAoB,IACpBnc,OAAAA,eAAAA,EAAAA,qBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,2BAAkB,IAEpB,eAASnc,OAAAA,eAAAA,EAAAA,2BAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,iCAAwB,IAEjC,eAASnc,OAAAA,eAAAA,EAAAA,qBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,2BAAkB,IAAEnc,OAAAA,eAAAA,EAAAA,qBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,2BAAkB,IAG/C,cAASnc,OAAAA,eAAAA,EAAAA,UAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,gBAAO,G,6cC7BhB,iBAEA,WAmBaze,EAAAA,iBAAmB,EAC9BkR,MACAjO,YAKA,MAAMkX,EAAuBvZ,GAAoCP,OAAAA,OAAAA,OAAAA,GAAAA,Y,MAE/D,MAAMwpB,EAAwB,QAAV,IAAO3Y,WAAGnN,IAAAA,EAAAA,EAAImN,EAC5B4Y,EAAc,6CACflpB,GACCipB,EAAc,CAAEzP,KAAM,CAAC,KAAMyP,KAAgBjpB,EAAOwZ,OAAU,IAAG,CACrEnX,UAGF,OAAOrC,EAAO0Z,UAAYyP,EAAAA,OAAOC,cAC7BD,EAAAA,OAAOE,KACL,CACEnpB,KAAM,iBACNwZ,SAAU1Z,EAAO0Z,SACjB4P,KAAM,CAAEC,eAAgB9oB,KAAKC,UAAUV,EAAQ,KAAM,MAEvD,IACSwpB,EAAsBN,KAGjCM,EAAsBN,EAC3B,IAED,MAAO,CACL3P,gBACAgD,2BAAmCvc,GAAoCP,OAAAA,OAAAA,OAAAA,GAAAA,YACrE,aAAO8Z,EAAcvZ,IAAS8c,MAAM,MAAM9T,QAAQwU,GAAMA,EAAE5U,OAAS,GAAE,IAHzE,EAUF,MAAM6gB,EAAyB,EACzBC,EAA4B,GAKlC,SAASF,GAAsB,KAC7BhQ,EAD6B,QAE7BtW,EAF6B,MAG7Bb,EAH6B,OAI7Bkc,EAJ6B,QAK7B9E,EAL6B,MAM7BoG,EAN6B,SAO7BnG,EAP6B,oBAQ7BiQ,IAKA,OAFAtnB,SAAA,EAAQ,YAAYqX,UAAiBF,EAAKrT,KAAK,QAC/CwjB,IAAuBtnB,SAAA,EAAQ,qBAAqBsnB,MAC7C,IAAIhZ,SAAQ,CAACwK,EAASyO,K,QAC3B,MAAMC,GAAO,WAAM,MAAOrQ,EAAI9X,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EACzBwB,GAAO,CACV4mB,aAAa,KAGXjK,IACQ,QAAV,IAAKkK,aAAK5mB,IAAAA,GAAAA,EAAE6mB,MAAMnK,GACR,QAAV,IAAKkK,aAAKxmB,IAAAA,GAAAA,EAAE0mB,OAGd,IAAIC,EAAS,GACTL,EAAKK,SACPL,EAAKK,OAAOC,YAAY,QACxBN,EAAKK,OAAOE,GAAG,QAAQ,SAAU1mB,GAC/BwmB,GAAUxmB,EAAK2mB,UAChB,KAGH,IAAIC,EAAS,GACTT,EAAKS,SACPT,EAAKS,OAAOH,YAAY,QACxBN,EAAKS,OAAOF,GAAG,QAAQ,SAAU1mB,GAC/B4mB,GAAU5mB,EAAK2mB,UAChB,KAGHR,EAAKU,YAAY,SAAS,CAAC3L,EAAM4L,KAa/B,OAZAnoB,SAAA,EACE,YAAYqX,UAAiBF,EAAKrT,KAAK,SAAS1F,KAAKC,UACnD,CACEke,OACA4L,SACAN,SACAI,UAEF,KACA,MAGAE,EACKZ,EACL,IAAIa,EAAmB,CACrBC,QAAS,MACTlR,OACAgR,OAAQA,EACRN,OAAQA,EACRI,OAAQA,KAKD,IAAT1L,EACKzD,EAAQoD,EAAS2L,EAASA,EAAOzJ,SAKvCkJ,QAAA,EAAuB,GAAKF,GAC7Ba,EAAOzJ,SAAS,cAET1F,GA9EAwP,EA+ECjB,EA9EP,IAAI/Y,SAASwK,GAAYyP,WAAWzP,EAASwP,MA8EXzN,MAAK,IACpCsM,EAAsB,CACpBhQ,OACAtW,UACAb,QACAoX,UACAC,WACAiQ,qBAAsBA,QAAA,EAAuB,GAAK,OAM1C,WAAZlQ,EACK0B,EAAQ,IAGVyO,EACL,IAAIiB,EAAmB,CACrBH,QAAS,MACTlR,OACA7K,OAAQiQ,GAAQ,EAChBsL,SACAI,YAtGV,IAAeK,CAgGT,GApDF,GA+DH,CAED,MAAaE,UAA2BjqB,MAEtCC,WAAAA,CAAYiqB,GASV,MACE,CACEA,EAAQC,OAASD,EAAQlM,KACrB,6BAA6BkM,EAAQlM,SAASkM,EAAQC,qBAAqBD,EAAQnc,UACnF,uCAAuCmc,EAAQnc,UACnD,CAACmc,EAAQJ,SAASM,OAAOF,EAAQtR,MAAMrT,KAAK,KAC5C2kB,EAAQZ,OACRY,EAAQR,QACRnkB,KAAK,OAET,KAAK8U,SAAW6P,EAAQnc,OACxB,KAAKzO,KAAO,eACb,EAvBHd,EAAAA,mBAAAA,EA0BA,MAAaqrB,UAA2B7pB,MACtCC,WAAAA,CAAYiqB,GAOV,MACE,CACE,8BAA8BA,EAAQN,UACtC,CAACM,EAAQJ,SAASM,OAAOF,EAAQtR,MAAMrT,KAAK,KAC5C2kB,EAAQZ,OACRY,EAAQR,QACRnkB,KAAK,OAET,KAAKjG,KAAO,eACb,EAjBHd,EAAAA,mBAAAA,C,sCnDtMA,eAMEsC,OAAAA,eAAAA,EAAAA,aAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,mBAAU,IAWZ,SAWA,Q,uZoDPA,MAAMoN,EAAUC,IAEhB,SAASA,IACP,OAAOC,KAAKC,KAAqB,IAAhBD,KAAKE,SACvB,CAED,SAASC,EACP7lB,GAEA,OAAOA,OACR,CAID,MAAM8lB,EACJC,OAAOrT,KAAKC,OAASoT,OAAO,KAAWjlB,QAAQklB,OAAOC,SACxD,SAASC,IACP,OAAOplB,QAAQklB,OAAOC,SAAWH,CAClC,CAED,MAAMK,EAUJ/qB,WAAAA,CAAYwmB,GAMV,KAAKnnB,KAAOmnB,EAAKnnB,KACjB,KAAK2rB,SAAWxE,EAAKwE,SACrB,KAAKnS,SAAW2N,EAAK3N,SACrB,KAAK4P,KAAOjC,EAAKiC,KACjB,KAAKwC,OAASZ,IACd,KAAKa,MAAQJ,GACd,CAED1B,GAAAA,CAAInd,EAAsBxM,GACxB,KAAK0rB,UAAStqB,OAAAA,OAAAA,CACZnB,MAAOD,EAAM,EAAI,EACjBgpB,KAAI,6CACoB,iBAAXxc,EAAsB,CAAEA,UAAUpL,OAAAA,OAAAA,CAAAA,EAAMoL,IAC/CxM,EACDoB,OAAAA,OAAAA,CACG,YAAapB,EAAIQ,QACjB,aAAcR,EAAIO,YAAYX,MAC1BI,EAAI2rB,MAAQ,CAAE,cAAe3rB,EAAI2rB,OAAU,IAEjD,IACD,KAAK3C,MAEV4C,QAAS,GACThsB,KAAM,KAAKA,KACXwZ,SAAU,KAAKA,SACfyS,QAAS,eACTC,QAAS,KAAKN,OAEdC,MAAOpQ,OAAO,KAAKoQ,OACnBM,SAAUpB,EACV7G,KAAM,SACNkI,SAAU3Q,OAAOgQ,IAAuB,KAAKI,QACzC,KAAKF,SAAW,CAAEU,UAAW,KAAKV,UAAa,CAAEU,UAAW,GAEnE,EAkEUntB,EAAAA,OAAS,IA/DtB,MAAAyB,WAAAA,GAEE,cAAmB,EA2DpB,CAzDQ2rB,SAAAA,CAAUnF,GAKf,MAAMgC,EAAO,IAAIuC,EAAIlqB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAChB2lB,GACC,KAAK+B,cAAgB,CAAEyC,SAAU,KAAKzC,eAAkB,KAG9D,OADA,KAAKqD,SAASxT,KAAKoQ,GACZA,CACR,CAEYA,IAAAA,CACXhC,EAKAqF,G,yCAEA,MAAMrD,EAAO,KAAKmD,UAAUnF,GAE5B,IAAIva,EADJ,KAAKsc,cAAgBC,EAAKyC,OAE1B,IACEhf,QAAe4f,GAChB,CAAC,MAAOpsB,GAEP,MADA+oB,EAAKY,IAAInd,EAAQxM,aAAeM,MAAQN,EAAM,IAAIM,MAAM,kBAClDN,CACP,CAGD,OAFA+oB,EAAKY,IAAInd,GACT,KAAKsc,cAAgBC,EAAKwC,SACnB/e,CACR,IAEM6f,SAAAA,GACL,IAAIC,EAAiB,KAAKH,SACvBhS,KAAKja,GAAMA,EAAEwrB,YACbhjB,OAAOsiB,GAGV,MAAMuB,EAAaD,EAAMlmB,MAAM2iB,GAAsB,WAAbA,EAAKnpB,OACzC2sB,IACFD,EAAQA,EAAMnS,KAAKja,GACjB,+BACKA,GACgBoB,MAAfpB,EAAE+rB,UACF,CAAEA,UAAW/rB,EAAE+rB,WACf,CAAEA,UAAWM,EAAWT,aAKlC,MAAMjf,EAAS,CAACyf,GAEhB,OADA,KAAKH,SAAW,KAAKA,SAASzjB,QAAQxI,IAAOA,EAAEwrB,YACxCvrB,KAAKC,UAAUyM,EACvB,E,gBC1JH,IAAY2f,E,8FAAZ,SAAYA,GACVA,EAAAA,mBAAAA,cACAA,EAAAA,YAAAA,OACAA,EAAAA,aAAAA,QAGAA,EAAAA,UAAAA,WACAA,EAAAA,OAAAA,SACAA,EAAAA,MAAAA,OARF,EAAYA,EAAA1tB,EAAAA,iBAAAA,EAAAA,eAAc,KA4B1BA,EAAAA,mBAAA,SAAmC2tB,GACjC,OAAQA,EAAW3I,MACjB,KAAK0I,EAAeE,mBAClB,MAAO,sBAET,KAAKF,EAAeG,YAClB,MAAO,4BAET,KAAKH,EAAeI,aAClB,MAAO,4BAET,KAAKJ,EAAeK,UAClB,MAAO,cAAcJ,EAAWK,OAElC,KAAKN,EAAeO,OAClB,MAAO,MAAMN,EAAWhV,MAE1B,KAAK+U,EAAeQ,MAClB,MAAO,QAAQP,EAAWQ,cAAcR,EAAWS,QAExD,C,wFC/CD,iBAiBA,MAAaC,EAMX5sB,WAAAA,CAAoB6sB,EAA0BC,EAAmB,GAA7C,gBAA0B,wBAFtC,WAAQ,IAAI/P,GAEkD,CAEtEC,GAAAA,CAAIrY,GACF,IAAIsH,EACJ,MAAM8gB,EAAUC,EAAWroB,GACrBsoB,EAAW,KAAKC,MAAMlQ,IAAI+P,GAChC,QAAiBhsB,IAAbksB,EAAwB,CAE1B,MAAME,EAAaF,EAASjQ,IAAIrY,GAChC,QAAmB5D,IAAfosB,EACFlhB,EAASkhB,OAGT,IAAK,MAAOC,EAAGC,KAAMJ,EAGnB,IAAI,QAAGtoB,EAAKyoB,GAAI,CACdnhB,EAASohB,EACT,KACD,CAGL,KAAKH,MAAMnqB,OAAOgqB,GAClB,KAAKG,MAAM/P,IAAI4P,EAASE,EACzB,CACD,OAAOhhB,CACR,CAEDkR,GAAAA,CAAIxY,EAAQC,GACV,MAAMmoB,EAAUC,EAAWroB,GAC3B,IAAIsoB,EAAW,KAAKC,MAAMlQ,IAAI+P,GAS9B,QARiBhsB,IAAbksB,GAA0BA,EAASK,MAAQ,KAAKR,iBAClDG,EAAW,IAAIlQ,IAAI,CAAC,CAACpY,EAAKC,KAE1BqoB,EAAS9P,IAAIxY,EAAKC,GAGpB,KAAKsoB,MAAMnqB,OAAOgqB,QAEJhsB,IAAV6D,IACF,KAAKsoB,MAAM/P,IAAI4P,EAASE,GACpB,KAAKC,MAAMI,KAAO,KAAKT,UAAU,CAGnC,MAAMU,EAAO,KAAKL,MAAMM,OAAOD,OAE1BA,EAAKE,MACR,KAAKP,MAAMnqB,OAAOwqB,EAAK3oB,MAE1B,CAEJ,CAED7B,OAAO4B,GACL,MAAMooB,EAAUC,EAAWroB,GAC3B,KAAKuoB,MAAMnqB,OAAOgqB,EACnB,CAEDW,KAAAA,GACE,KAAKR,MAAMQ,OACZ,EAGH,SAASV,EAA6BroB,GAEpC,MAAMgpB,EAAehpB,aAAG,EAAH,EAAKipB,SAC1B,YAAqB7sB,IAAjB4sB,EACKA,EAAaE,MAAMlpB,GAErBA,CACR,CA4FD,SAASmpB,EACPC,EACAvH,G,QAEA,MAAM0G,EAAiC,QAAX,eAAI,EAAJ,EAAMA,aAAK5qB,IAAAA,EAAAA,EAAI,IAAIsqB,EAAmB,QAAf,eAAI,EAAJ,EAAMoB,iBAAStrB,IAAAA,EAAAA,EAAI,IAChEurB,EAAezH,aAAI,EAAJ,EAAMyH,aACrBC,EAAa,YAAsBvV,G,UACvC,MAAMwV,EAAQjB,EAAMiB,MACpB,IAAKxV,EAAKkG,MAAMuP,GAId,OAHa,MAATD,IACFA,EAAME,MAAkB,QAAV,IAAMA,YAAI/rB,IAAAA,EAAAA,EAAI,GAAK,GAE5ByrB,EAAKF,MAAM,KAAMlV,GAE1B,MAAM2V,GAAW,UACfL,EAAe,IAAIA,EAAaJ,MAAM,SAAUlV,GAAQA,GAEpD4V,EAAcrB,EAAMlQ,IAAIsR,GAC9B,QAAoBvtB,IAAhBwtB,EAIF,OAHa,MAATJ,IACFA,EAAMK,KAAgB,QAAT,IAAMA,WAAG9rB,IAAAA,EAAAA,EAAI,GAAK,GAE1B6rB,EAEI,MAATJ,IACFA,EAAMM,MAAkB,QAAV,IAAMA,YAAIzoB,IAAAA,EAAAA,EAAI,GAAK,GAEnC,MAAMiG,EAAS8hB,EAAKF,MAAM,KAAMlV,GAEhC,OADAuU,EAAM/P,IAAImR,EAAUriB,GACbA,CACR,EAED,OADAiiB,EAAWhB,MAAQA,EACZgB,CACR,CAzMD3vB,EAAAA,IAAAA,EA2JAA,EAAAA,OAAA,SACEmwB,EACAC,GAEA,MAAoB,mBAATD,EAEFZ,EAAeY,EAAMC,GA2ChC,SAA2BnI,G,MACzB,MAAMyH,EACc,QAAlB,eAAI,EAAJ,EAAMA,oBAAY3rB,IAAAA,EAAAA,EAClB,WAEE,OAAI,mBAAc,MACT,CAAC,MAGE,MAAR,MAAgC,iBAAT,KAClBzB,OAAO+tB,OAAO,MAAMzmB,OAAOimB,GAG7B,EACR,EACH,OAAO,SACLS,EACAC,EACAC,GAEA,MAAMC,EAAeD,EAAWnqB,MAChCmqB,EAAWnqB,MAAQkpB,EAAekB,EAAYnuB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAO2lB,GAAI,CAAEyH,iBAC5D,CACF,CA/DUgB,CAAeP,EAEzB,EA+DD,MAAMQ,EAAoB,IAAIC,IAAI,CAChC,SACA,SACA,UACA,SACA,SACA,YACA,SASF,SAASf,EAAWgB,GAElB,GAAW,MAAPA,EACF,OAAO,EAET,MAAMC,SAAkBD,EACxB,QAAIF,EAAkBI,IAAID,MAGT,WAAbA,KAAyB,mBAAcD,GAI5C,C,4jBCpRDjvB,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,E,oJCHA,iBAYA,MAAaovB,EACXvvB,WAAAA,CAAoBwvB,EAA8BC,GAA9B,gBAA8B,cAAc,CAMhE/vB,KAAAA,CACEgwB,EACAC,EACAjwB,EACAmD,GAEA,MAAM+sB,EACJlwB,aAAiBK,MAAQL,EAAMO,SAAW4vB,OAAOnwB,GAASA,EAC5D,OAAO,KAAKowB,MAAMJ,EAAS7uB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAQgC,QAAA,EAAQ,IAAG,CAAE+sB,eAAcD,cAC/D,CAOMI,SAAAA,CACLL,EACAC,EACA9sB,EACAktB,G,MAEA,MAAMC,EAAY1Y,KAAKC,MACjB0Y,EAAa,QAAR,eAAI,EAAJ,EAAMA,UAAE3tB,IAAAA,EAAAA,GAAI,gBACvB,IACE,MAAM2J,EAAS8jB,EAAU,CAAE/E,SAAUiF,IACrC,IAAI,eAAUhkB,GACZ,OAAOA,EACJoQ,MAAM6T,IACL,MACMzE,EADUnU,KAAKC,MACMyY,EAE3B,OADA,KAAKF,MAAMJ,EAAS7uB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAQgC,QAAA,EAAQ,IAAG,CAAE4oB,WAAUwE,QAC5CC,CAAP,IAED1wB,OAAOC,IACN,MACMgsB,EADUnU,KAAKC,MACMyY,EAM3B,OALA,KAAKtwB,MAAMgwB,EAAWC,EAAWlwB,EAAGoB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAC9BgC,QAAA,EAAQ,IAAG,CACf4oB,WACAwE,QAEKngB,QAAQiZ,OAAOtpB,EAAtB,IAEC,CACL,MACMgsB,EADUnU,KAAKC,MACMyY,EAE3B,OADA,KAAKF,MAAMJ,EAAS7uB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAQgC,QAAA,EAAQ,IAAG,CAAE4oB,WAAUwE,QAC5ChkB,CACR,CACF,CAAC,MAAOxM,GACP,MACMgsB,EADUnU,KAAKC,MACMyY,EAM3B,MALA,KAAKtwB,MAAMgwB,EAAWC,EAAWlwB,EAAqBoB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAChDgC,QAAA,EAAQ,IAAG,CACf4oB,WACAwE,QAEIxwB,CACP,CACF,CAMM0wB,aAAAA,CACLT,EACA7sB,G,MAEA,MAAMotB,EAAa,QAAR,eAAI,EAAJ,EAAMA,UAAE3tB,IAAAA,EAAAA,GAAI,gBAQvB,OAPA,KAAK8tB,UAASvvB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAMgC,GAAI,CAAE6sB,YAAWO,QAChB,IAAIV,GACvB,CAACc,EAAWC,IAAQ,KAAKF,UAASvvB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAMwvB,GAAcC,KACtD,CACEtF,SAAUiF,GAIf,CAMMH,KAAAA,CAAMJ,EAA2B7sB,GACtC,OAAO,KAAKutB,UAASvvB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAMgC,GAAI,CAAE6sB,cAClC,CAMMU,SAAAA,CAAUvtB,G,QACf,MAAMotB,EAAa,QAAR,eAAI,EAAJ,EAAMA,UAAE3tB,IAAAA,EAAAA,GAAI,gBACjBhD,EAA2B,QAAf,eAAI,EAAJ,EAAMA,iBAASoD,IAAAA,EAAAA,EAAI4U,KAAKC,MACpC6Y,EAAS,eACb9wB,YACA2wB,MACIptB,QAAA,EAAQ,IAEd,KAAK2sB,SAASY,EAAW,KAAKX,QAC/B,EA7GHlxB,EAAAA,QAAAA,C,mJCoBAA,EAAAA,SAAA,SACEwvB,EACAwC,EACAd,OAAmB1uB,EACnByvB,GAAU,GAEV,IAAIC,EACAC,GAAoB,EAExB,SAASC,KAAahY,GACpB,IAAIiY,EAEJ,GAAIJ,EAAS,CAMX,GALAI,EAAW,WACTF,GAAoB,EACpBD,OAAU1vB,CACX,GAEI2vB,EAGH,OAFAG,aAAaJ,QACbA,EAAU1G,WAAW6G,EAAUL,IAIjCG,GAAoB,EACpB3C,EAAKF,MAAM4B,EAAS9W,EACrB,MACCgY,EAAUG,QACVF,EAAW,WACTH,OAAU1vB,EACVgtB,EAAKF,MAAM4B,EAAS9W,EACrB,EAGH8X,EAAU1G,WAAW6G,EAAUL,EAChC,CAYD,OAVAI,EAAUG,MAAQ,WAChBD,aAAaJ,GACbA,OAAU1vB,EACV2vB,GAAoB,CACrB,EAEDC,EAAUI,UAAY,WACpB,OAAkB,MAAXN,CACR,EAEME,CACR,C,6fzDhFDxwB,EAAAA,EAAAA,MAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,MAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,E,gB0DAA,IAAY6wB,E,gFAAZ,SAAYA,GACVA,EAAAA,SAAAA,WACAA,EAAAA,MAAAA,QACAA,EAAAA,QAAAA,UACAA,EAAAA,QAAAA,UACAA,EAAAA,OAAAA,QALF,EAAYA,EAAAzyB,EAAAA,WAAAA,EAAAA,SAAQ,KAiBpB,MAAM0yB,EAAO,yBACPC,EAAc,qBACdC,EAAY,mBACZC,EAAY,mBACZC,EAAU,iBACVC,EAAgB,0BAChBC,EAAoB,8BACpBC,EAAW,qBACXC,EAAW,qBACXC,EAAc,6CACdC,EAAkB,aAClBC,EAAkB,gBAElBC,EAAa,uBAEnB,SAASC,EAAOC,EAAoBC,GAClC,IAAkB,IAAdD,EACF,MAAM,IAAIhyB,MAAMiyB,EAEnB,CAYDzzB,EAAAA,WAAA,SAA2B4Y,GACzB,MAAM8a,EAAoB9a,EAAM8E,MAAM4V,GAChCK,EAAuB/a,EAAMgb,MAAMN,IAAe,GAClDO,EAAqB,GAC3B,IAAIja,EAAI,EAER,SAASka,IACP,MAAMC,EAAoB,CAAE7N,MAAO,IAMnC,IALA2N,EAAKha,KAAKka,GAkCZ,SAAqBA,GACnB,KAAOna,EAAI8Z,EAAQlqB,QAAQ,CACzB,MAAMiU,EAAOiW,EAAQ9Z,GAEfiN,EAAS6L,EAAKsB,KAAKvW,GACzB,GAAIoJ,EAAQ,CACVkN,EAAME,YAAcpN,EAAO,GAC3BkN,EAAMG,YAAcrN,EAAO,GAC3BjN,IACA,KACD,CACDA,GACD,CACF,CA7CCua,CAAYJ,GAGLna,EAAI8Z,EAAQlqB,QAAQ,CACzB,MAAMiU,EAAOiW,EAAQ9Z,GACrB,GAAI,YAAYwa,KAAK3W,GACnB4W,EAAaN,QACR,GAAI,YAAYK,KAAK3W,GAC1B6W,EAAaP,QACR,GAAI,qBAAqBK,KAAK3W,GACnC8W,EAAqBR,QAChB,GAAI,iBAAiBK,KAAK3W,GAC/B+W,EAAiBT,QACZ,GAAI,SAASK,KAAK3W,GACvBgX,EAAUV,QACL,GAAI,WAAWK,KAAK3W,GACzBiX,EAAYX,OACP,IAAI,QAAQK,KAAK3W,GAAO,CAC7BkX,EAAgBZ,GAChB,KACD,CAAM,GAAI,cAAcK,KAAK3W,GAE5B,MAGA7D,GACD,CACF,EAiFH,SAAoBma,GAClB,KAAOna,EAAI8Z,EAAQlqB,QAAQ,CACzB,MAAMiU,EAAOiW,EAAQ9Z,GACrB,GAAI8Y,EAAK0B,KAAK3W,GACZ,MACS,MAAM2W,KAAK3W,GACpBsW,EAAM7N,MAAMrM,KAAK+a,KAGjBhb,GAEH,CACF,CA3FCib,CAAWd,EACZ,CAiBD,SAASM,EAAaN,GACpB,MAAMe,EAAM7B,EAASe,KAAKN,EAAQ9Z,IAClC2Z,EAAe,OAARuB,EAAc,mBAAmBpB,EAAQ9Z,OAChDma,EAAMgB,QAAUD,EAAI,GACpBf,EAAM/O,KAAOyN,EAASuC,SACtBpb,GACD,CAED,SAAS0a,EAAaP,GACpB,MAAMe,EAAM5B,EAASc,KAAKN,EAAQ9Z,IAClC2Z,EAAe,OAARuB,EAAc,mBAAmBpB,EAAQ9Z,OAChDma,EAAMkB,QAAUH,EAAI,GACpBf,EAAM/O,KAAOyN,EAASuC,SACtBpb,GACD,CAED,SAAS2a,EAAqBR,GAC5B,MAAMe,EAAM9B,EAAkBgB,KAAKN,EAAQ9Z,IAC3C2Z,EAAe,OAARuB,EAAc,mBAAmBpB,EAAQ9Z,OAChDma,EAAMkB,QAAUH,EAAI,GACpBf,EAAM/O,KAAOyN,EAASyC,QACtBtb,GACD,CAED,SAAS4a,EAAiBT,GACxB,MAAMe,EAAM/B,EAAciB,KAAKN,EAAQ9Z,IACvC2Z,EAAe,OAARuB,EAAc,mBAAmBpB,EAAQ9Z,OAChDma,EAAMkB,QAAUH,EAAI,GACpBf,EAAM/O,KAAOyN,EAAS0C,MACtBvb,GACD,CAED,SAAS6a,EAAUV,GACjBR,EAAOV,EAAUuB,KAAKV,EAAQ9Z,IAAK,mBAAmB8Z,EAAQ9Z,OAC9D2Z,EAAOT,EAAQsB,KAAKV,EAAQ9Z,EAAI,IAAK,mBAAmB8Z,EAAQ9Z,EAAI,OACpEma,EAAM/O,KAAOyN,EAAS2C,OACtBxb,GAAK,CACN,CAED,SAAS8a,EAAYX,GACnBR,EAAOZ,EAAYyB,KAAKV,EAAQ9Z,IAAK,mBAAmB8Z,EAAQ9Z,OAChE2Z,EACEX,EAAUwB,KAAKV,EAAQ9Z,EAAI,IAC3B,mBAAmB8Z,EAAQ9Z,EAAI,OAEjCma,EAAM/O,KAAOyN,EAAS4C,QACtBzb,GAAK,CACN,CAED,SAAS+a,EAAgBZ,GACvBR,EAAOH,EAAgBgB,KAAKV,EAAQ9Z,IAAK,mBAAmB8Z,EAAQ9Z,OACpE2Z,EACEF,EAAgBe,KAAKV,EAAQ9Z,EAAI,IACjC,mBAAmB8Z,EAAQ9Z,EAAI,YAEdpX,IAAfuxB,EAAM/O,OACR+O,EAAM/O,KAAOyN,EAASuC,UAExBpb,GAAK,CACN,CAoBD,SAASgb,IACP,MACMU,EADiB5B,EAAQ9Z,KACG8D,MAAMyV,GAElCxO,EAAa,CACjBC,UAAW0Q,EAAW,GACtBC,cAAmC,IAAlBD,EAAW,GAAqB,GAAKA,EAAW,GACjEzQ,UAAWyQ,EAAW,GACtBE,cAAmC,IAAlBF,EAAW,GAAqB,GAAKA,EAAW,GACjEvQ,MAAO,GACP0Q,eAAgB,IAMI,IAAlB9Q,EAAK4Q,WACP5Q,EAAKC,UAAY,GAEG,IAAlBD,EAAK6Q,WACP7Q,EAAKE,UAAY,GAGnB,IAAI6Q,EAAW,EACbC,EAAc,EAChB,KAAO/b,EAAI8Z,EAAQlqB,UAIgB,IAA/BkqB,EAAQ9Z,GAAGgc,QAAQ,SACnBhc,EAAI,EAAI8Z,EAAQlqB,QACmB,IAAnCkqB,EAAQ9Z,EAAI,GAAGgc,QAAQ,SACU,IAAjClC,EAAQ9Z,EAAI,GAAGgc,QAAQ,OAPAhc,IAAK,CAW9B,MAAM4X,EACiB,GAArBkC,EAAQ9Z,GAAGpQ,QAAeoQ,GAAK8Z,EAAQlqB,OAAS,EAAI,IAAMkqB,EAAQ9Z,GAAG,GAEvE,GACgB,MAAd4X,GACc,MAAdA,GACc,MAAdA,GACc,OAAdA,EAcA,MAZA7M,EAAKI,MAAMlL,KAAK6Z,EAAQ9Z,IACxB+K,EAAK8Q,eAAe5b,KAAK8Z,EAAW/Z,IAAM,MAExB,MAAd4X,EACFkE,IACuB,MAAdlE,EACTmE,IACuB,MAAdnE,IACTkE,IACAC,IAKL,CAUD,OAPKD,GAA8B,IAAlB/Q,EAAK6Q,WACpB7Q,EAAK6Q,SAAW,GAEbG,GAAiC,IAAlBhR,EAAK4Q,WACvB5Q,EAAK4Q,SAAW,GAGX5Q,CACR,CAED,KAAO/K,EAAI8Z,EAAQlqB,QACjBsqB,IAGF,OAAOD,CACR,C,8IC5OD,MAAMgC,EAAuB,CAAEC,UAAW,aAM1C,SAAgBC,EAAUlF,GAGxB,QAAYruB,IAARquB,EACF,OAAOgF,EAGT,GACiB,iBAARhF,GACQ,kBAARA,GACQ,iBAARA,GACC,OAARA,EAEA,OAAOA,EAGT,GAAIA,aAAerS,IACjB,MAAO,CACLsX,UAAW,MACXxxB,KAAM+X,MAAMnB,KAAK2V,EAAImF,WAAW3a,KAAI,EAAEjV,EAAK6vB,KAAS,CAClDF,EAAU3vB,GACV2vB,EAAUE,OAGT,GAAIpF,aAAeD,IACxB,MAAO,CACLkF,UAAW,MACXxxB,KAAM+X,MAAMnB,KAAK2V,EAAIR,UAAUhV,IAAI0a,IAEhC,GAAIlF,aAAervB,MACxB,MAAO,CACLs0B,UAAW,QACXxxB,KAAM,CAAE5C,QAASmvB,EAAInvB,QAASmrB,MAAOgE,EAAIhE,QAEtC,GAAIgE,aAAe9X,KACxB,MAAO,CAAE+c,UAAW,OAAQxxB,KAAMusB,EAAIqF,WACjC,GAAI7Z,MAAM8Z,QAAQtF,GACvB,OAAOA,EAAIxV,KAAK+K,GAAM2P,EAAU3P,KAC3B,GAAmB,iBAARyK,EAAkB,CAClC,MAAMuF,EAAqD,CACzDN,UAAW,UAEb,IAAK,MAAOO,EAAcC,KAAkBh0B,OAAO0zB,QAAQnF,GACzDuF,EAAOC,GAAgBN,EAAUO,GAGnC,OAAOF,CACR,CAED,MAAM,IAAI50B,MAAM,6BAA6BqvB,IAC9C,CASD,SAAgB0F,EAAY1F,GAC1B,GAAmB,iBAARA,GAA2B,MAAPA,EAC7B,OAAOA,EAGT,GAAIxU,MAAM8Z,QAAQtF,GAChB,OAAOA,EAAIxV,KAAK+K,GAAMmQ,EAAYnQ,KAGpC,MAAMoQ,EAAW3F,EACjB,OAAQ2F,EAASV,WACf,IAAK,YACH,OAEF,IAAK,MACH,OAAO,IAAItX,IACTgY,EAASlyB,KAAK+W,KAAI,EAAEjV,EAAKC,KAAW,CAClCkwB,EAAYnwB,GACZmwB,EAAYlwB,OAIlB,IAAK,MACH,OAAO,IAAIuqB,IAAI4F,EAASlyB,KAAK+W,IAAIkb,IAEnC,IAAK,QAAS,CACZ,MAAMtV,EAAI,IAAIzf,MAGd,OAFAyf,EAAE4L,MAAQ2J,EAASlyB,KAAKuoB,MACxB5L,EAAEvf,QAAU80B,EAASlyB,KAAK5C,QACnBuf,CACR,CAED,IAAK,OACH,OAAO,IAAIlI,KAAKyd,EAASlyB,MAE3B,IAAK,SAAU,CACb,MAAMmyB,EAAiB5F,EACjBuF,EAA0C,GAChD,IAAK,MAAOC,EAAcC,KAAkBh0B,OAAO0zB,QACjDS,GAEqB,cAAjBJ,IACFD,EAAOC,GAAgBE,EAAYD,IAGvC,OAAOF,CACR,CAED,QACE,MAAM,IAAI50B,MAAM,mCAAmCg1B,KAGxD,CA/GDx2B,EAAAA,UAAAA,EAoDAA,EAAAA,kBAAA,SAAkCsE,GAChC,OAAOjD,KAAKC,UAAUy0B,EAAUzxB,GACjC,EAKDtE,EAAAA,YAAAA,EAsDAA,EAAAA,sBAAA,SAAsCsE,GACpC,OAAOiyB,EAAYl1B,KAAKq1B,MAAMpyB,GAC/B,C,gJCLD,IAAYqyB,E,6FAAAA,EAAA32B,EAAAA,gBAAAA,EAAAA,cAAa,KACvB22B,SAAAA,KAKAA,EAAAA,mBAAAA,qBASF32B,EAAAA,kBAAA,SAAkC42B,GAChC,MAAO,CAAE5R,KAAM,qBAAsB4R,SACtC,C,qTCnKY52B,EAAAA,qCAAuC,KAEvCA,EAAAA,cAAgB,IAEhBA,EAAAA,qCAAkCwC,GAMnCxC,EAAAA,qBAAAA,EAAAA,mBAAkB,KAC5B62B,iBAAAA,kB,6jBCfFj1B,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,MAAAA,GACAA,EAAAA,EAAAA,OAAAA,GACAA,EAAAA,EAAAA,OAAAA,E,iRCLA5B,EAAAA,SAAA,SAA4BqG,GAC1B,OAAOA,OACR,EAKDrG,EAAAA,OAAA,SAA0BqG,GACxB,GAAa,MAATA,EACF,MAAM,IAAI7E,MAAM,4BAA4B6E,KAE9C,OAAOA,CACR,EAMDrG,EAAAA,SAAA,WACE,OAAO+Y,KAAKC,MAAMiS,SAAS,IAAMc,KAAKE,SAAShB,SAAS,GACzD,EAWDjrB,EAAAA,MAAA,WACE,MAAM82B,EAAW,CACfC,aAASv0B,EACTuZ,aAASvZ,EACTgoB,YAAQhoB,GAQV,OANAs0B,EAASC,QAAU,IAAIxlB,SACrB,CAACwK,EAAyByO,KACxBsM,EAAS/a,QAAUA,EACnB+a,EAAStM,OAASA,CAAlB,IAGGsM,CACR,EAaD92B,EAAAA,SAAA,SAAyBoB,EAAW41B,EAAY,KAC9C,MAAMC,EAAa71B,EAAE81B,YAAYF,GACjC,OAAoB,IAAhBC,EACK71B,EAEFA,EAAEkd,MAAM2Y,EAAa,EAC7B,EAEDj3B,EAAAA,wBAAA,SACE2sB,EACAwK,G,MAEA,IAAIC,EAAKzK,EACT,KAAOyK,GAAI,CACT,GAAgB,QAAZ,IAAGC,iBAAStzB,IAAAA,OAAA,EAAAA,EAAEuzB,SAASH,GACzB,OAAOC,EAEPA,EAAKA,EAAGG,aAEX,CAEF,EAYDv3B,EAAAA,UAAA,SAKEw3B,EAAmBhI,GACnB,OAAOltB,OAAOm1B,YACXn1B,OAAO0zB,QAAQwB,GAAuBnc,IAAImU,GAE9C,EAMDxvB,EAAAA,kBAAA,SACE03B,EACArxB,GAEA,MAAM+tB,EACa,mBAAV/tB,EACFA,EACAyoB,GAASA,IAAMzoB,EACtB,IAAK,MAAMyoB,KAAK4I,EACd,GAAItD,EAAKtF,GACP,OAAO,EAGX,OAAO,CACR,EAKD9uB,EAAAA,IAAA,UACE23B,EACAC,GAEA,MAAMC,EAAYF,EAAMG,OAAOC,YACzBC,EAAYJ,EAAME,OAAOC,YAC/B,OAAa,CACX,MAAME,EAAUJ,EAAU7I,OACpBkJ,EAAUF,EAAUhJ,OAC1B,GAAIiJ,EAAQ/I,MAAQgJ,EAAQhJ,KAC1B,WAEI,CAAC+I,EAAQ5xB,MAAO6xB,EAAQ7xB,MAC/B,CACF,EAGDrG,EAAAA,SAAA,SAAyBkQ,EAAcioB,EAAY,KACjD,OAAOjoB,EAAK1G,OAAS2uB,EACjBjoB,EAAKsR,UAAU,EAAGuK,KAAKqM,IAAI,EAAGD,EAAY,IAAM,IAChDjoB,CACL,EAEDlQ,EAAAA,UAAA,SAA6Bw3B,GAC3B,MAAqD,mBAAtCA,aAAC,EAAD,EAA6B1Z,KAC7C,C,qWCrJD,iBAEA,WAQA,SAAgBua,GAAkC,kBAChDC,EADgD,YAEhDC,EAFgD,MAGhD7Y,IAMA,OAAOA,EAAM9V,QAAQ0V,IACXkZ,EAAoC,CAC1CC,GAAI,CACFH,oBACAC,eAEFjZ,UAGL,CAED,SAAgBkZ,GAAoC,GAClDC,EADkD,KAElDnZ,I,QAUA,OACoB,KAHgC,QAAvB,EAAe,QAAf,IAAKoZ,kBAAU30B,IAAAA,OAAA,EAAAA,EAAE40B,cAAMx0B,IAAAA,EAAAA,EAAI,IAG/CqF,QACPovB,EAA0B,CACxBtZ,OACAmZ,QAEFI,EAAsB,CACpBN,YAAaE,EAAGF,YAChBjZ,QAGL,CAED,SAAgBwZ,EAAwBrrB,GACtC,OAAQA,EAAMsrB,MACZ,IAAK,OACH,sCACKtrB,GAAK,CACRgD,MAAOhD,EAAMgD,MAAMuoB,gBAGvB,IAAK,OACH,sCACKvrB,GAAK,CACRwrB,aAAcxrB,EAAMwrB,aAAa5d,KAAK5K,GAAUA,EAAMuoB,kBAG1D,IAAK,QACH,sCACKvrB,GAAK,CACRyrB,MAAOzrB,EAAMyrB,MAAMF,gBAGvB,SACE,uBAAkBvrB,GAEvB,CAED,SAAgBmrB,GAA0B,KACxCtZ,EADwC,GAExCmZ,I,QAOA,MAAMU,EAAiB,IAAIvI,IACzB6H,EAAGH,kBAAkB1uB,OAAOwvB,EAAAA,YAAY/d,KAAKge,GAAMA,EAAEC,YAEjDX,EAA8C,QAAvB,EAAe,QAAf,IAAKD,kBAAU30B,IAAAA,OAAA,EAAAA,EAAE40B,cAAMx0B,IAAAA,EAAAA,EAAI,GAExD,MAAO,IAAIg1B,GAAgB/U,MAAMmV,GAC/BC,EAAuB,CAAED,YAAWZ,YAEvC,CAcD,SAAgBa,GAAuB,UACrCD,EADqC,OAErCZ,IAKA,OAAOA,EAAOvU,MAAM3W,GAAUgsB,EAAsB,CAAEF,YAAW9rB,WAClE,CAED,SAASgsB,GAAsB,UAC7BF,EAD6B,MAE7B9rB,IAMA,MAAMisB,EAAkBZ,EAAwBrrB,GAC1CksB,EAAqBJ,EAAUP,cAErC,OAAQU,EAAgBX,MACtB,IAAK,OACH,OAAOY,IAAuBD,EAAgBjpB,MAEhD,IAAK,OACH,OAAOipB,EAAgBT,aAAa7U,MACjC3T,GAAUkpB,IAAuBlpB,IAGtC,IAAK,QACH,OAAO,EAET,SACE,uBAAkBipB,GAEvB,CAED,SAAgBb,GAAsB,YACpCN,EADoC,KAEpCjZ,I,QAKA,MAAMsa,EAAuBrB,aAAW,EAAX,EAAaS,cACpCU,GAA0C,QAAvB,EAAe,QAAf,IAAKhB,kBAAU30B,IAAAA,OAAA,EAAAA,EAAE40B,cAAMx0B,IAAAA,EAAAA,EAAI,IAAIkX,IACtDyd,GAGF,QAA6Bt2B,IAAzBo3B,GAAiE,IAA3BF,EAAgBlwB,OACxD,OAAO,EAET,MAAMiE,EAAQisB,EAAgB,GAC9B,MAAmB,SAAfjsB,EAAMsrB,MAAmBtrB,EAAMgD,QAAUmpB,KAG5B,SAAfnsB,EAAMsrB,MACwB,IAA9BtrB,EAAMwrB,aAAazvB,SACnBiE,EAAMwrB,aAAaxX,SAASmY,GAM/B,CAkCD,SAAgBC,EAAkBC,GAChC,OAAQA,EAAUf,MAChB,IAAK,OACH,OAAOe,EAAUrpB,MAEnB,IAAK,OACH,MAAO,GAAGqpB,EAAUvtB,OAAOutB,EAAUC,OAEvC,IAAK,QACH,OAAOD,EAAUZ,MAEnB,SACE,uBAAkBY,GAEvB,CAtND95B,EAAAA,kCAAAA,EAoBAA,EAAAA,oCAAAA,EAyBAA,EAAAA,wBAAAA,EAyBAA,EAAAA,0BAAAA,EAmBAA,EAAAA,uBAAA,UAAuC,MACrCyN,EADqC,eAErC0rB,IAKA,MAAO,IAAIA,GAAgB/U,MAAMmV,GAC/BE,EAAsB,CAAEF,YAAW9rB,WAEtC,EAEDzN,EAAAA,uBAAAA,EAsCAA,EAAAA,sBAAAA,EA6BAA,EAAAA,uBAAA,UAAuC,kBACrCs4B,EADqC,YAErCC,EAFqC,MAGrC7Y,IAMA,MAKMsa,EALyB3B,EAAkC,CAC/DC,oBACAC,cACA7Y,UAGCrE,KAAKiE,GACCA,EAAKoZ,WAIHpZ,EAAKoZ,WAAWC,OAHd,KAKVhb,OAQH,MANuC,IAClC,IAAIa,IACLwb,EAAkB3e,KAAK4e,GAAM,CAACJ,EAAkBI,GAAIA,MACpD5J,SAIL,EACDrwB,EAAAA,kBAAAA,EAgBAA,EAAAA,kCAAA,UAAkD,kBAChDs4B,EADgD,YAEhDC,EAFgD,MAGhD7Y,IAMA,OACE2Y,EAAkC,CAAEC,oBAAmBC,cAAa7Y,UACjElW,OAAS,CAEf,C,qFC7ODxJ,EAAAA,WAAA,SAA2Bk6B,GACzB,MACsB,aAApBA,EAAOC,WAEND,EAAOE,oBAAoD,OAA9BF,EAAOE,mBAExC,C,+GCPD,iBAGAp6B,EAAAA,mCAAA,UAAmD,kBACjDs4B,EADiD,oCAEjD+B,EAFiD,iCAGjDC,IAMA,OACEhC,EAAkB1uB,OAAOwvB,EAAAA,YAAY5vB,QACrCuiB,KAAKqM,IACHiC,QAAA,EAAuC,KACpCC,EAAiCjf,KAClC,EAAGkf,0BAA2BA,IAIrC,C,w4BCtBD,iBAIA,cACA,WACA,WAUav6B,EAAAA,4BAA8B,gBAO3CA,EAAAA,gBAAA,SAAgBw6B,GAAgB,GAC9B/B,EAD8B,sBAE9BgC,EAF8B,gBAG9BC,EAH8B,kBAI9BC,EAJ8B,mBAK9BC,I,UAQA,GAAiB,SAAbnC,EAAG3tB,MACL,MAAO,CAAEH,SAAU8tB,EAAG5xB,OAAQ0I,OAAQkpB,EAAG3tB,OAG3C,GAAI2tB,EAAGrtB,QACL,MAAO,CAAET,SAAU8tB,EAAG5xB,OAAQ0I,OAAQ,SAGxC,GAAIkpB,EAAGoC,kBAAoBF,EACzB,MAAO,CAAEhwB,SAAU8tB,EAAG5xB,OAAQ0I,OAAQ,mBAGxC,GAAIkpB,EAAGqC,mBAAqBH,EAC1B,MAAO,CAAEhwB,SAAU8tB,EAAG5xB,OAAQ0I,OAAQ,oBAGxC,GAAIkpB,EAAGsC,WACL,MAAO,CAAEpwB,SAAU8tB,EAAG5xB,OAAQ0I,OAAQ,YAGxC,MAAMyrB,EAAqC,GAErCC,EAAWR,EAAsB,GAIvC,IAAKE,GAAqBlC,EAAGyC,oBAC3B,MAAO,CACLvwB,SAAU8tB,EAAG5xB,OACb0I,OAAQ,UACRyrB,gBAAiB,CAAC,CAAEG,OAAQ,uBAI5BT,aAAe,EAAf,EAAiBU,aACnBJ,EAAgBnhB,KAAK,CAAEshB,OAAQ,kBAI/BF,GACmB,WAAnBA,EAASnwB,QACR2tB,EAAG4C,eAAiBJ,EAASpgB,SACb,QAAf,IAAGwgB,oBAAYt3B,IAAAA,OAAA,EAAAA,EAAE8b,WAAW,GAAG7f,EAAAA,mCAEjCg7B,EAAgBnhB,KAAK,CAAEshB,OAAQ,sCAI/BP,GACAnC,EAAG6C,cACH7C,EAAG8C,sBACH9C,EAAG6C,aAAe7C,EAAG8C,sBAErBP,EAAgBnhB,KAAK,CAAEshB,OAAQ,oCAG7B1C,EAAG+C,mBACLR,EAAgBnhB,KAAK,CAAEshB,OAAQ,oBAGN,qBAAvB1C,EAAGgD,SAASlsB,QACdyrB,EAAgBnhB,KAAK,CAAEshB,OAAQ,qBAYjC,MAAMO,EACqC,QAAzC,eAAe,EAAf,EAAiBA,gCAAwBv3B,IAAAA,EAAAA,EAAI,MAIhB,OAA7Bu3B,GAAqCA,IAGrCjD,EAAGH,kBAAkBlU,MAClB8V,IAEEA,EAAOE,oBAAoD,OAA9BF,EAAOE,qBACjB,sBAApBF,EAAOC,YAGXa,EAAgBnhB,KAAK,CAAEshB,OAAQ,uBAI/B,aAAe,EAAf,EAAiBQ,4BACjB,uCAAkClD,IAElCuC,EAAgBnhB,KAAK,CAAEshB,OAAQ,8BAGjC,MAAMS,EACJC,EAAWC,2CAA2CrD,GACpDmD,GACFZ,EAAgBnhB,KAAK+hB,GAGvB,MAAMG,EAAYtD,EAAGH,kBAAkB1uB,OAAOwvB,EAAAA,aAGC,QAA7C,eAAe,EAAf,EAAiB4C,oCAA4Bv0B,IAAAA,EAAAA,EAAI,GACvBs0B,EAAUvyB,QACpCwxB,EAAgBnhB,KAAK,CAAEshB,OAAQ,oBAGjC,MAAMc,EACJJ,EAAWK,mCAAmCzD,GAC5CwD,GACFjB,EAAgBnhB,KAAKoiB,GAGI,YAAvBxD,EAAGgD,SAASlsB,QACdyrB,EAAgBnhB,KAAK,CAAEshB,OAAQ,aAI/B,aAAe,EAAf,EAAiBgB,iCACjB1D,EAAG2D,sBAAwB,GAE3BpB,EAAgBnhB,KAAK,CAAEshB,OAAQ,wBAGjC,MAAMkB,EAC6B,IAAjC5B,EAAsBjxB,YAClBhH,EACAg4B,EAAgB,CACd/B,GAAIgC,EAAsB,GAC1BA,sBAAuBA,EAAsBnc,MAAM,GACnDoc,kBACAC,sBAGF2B,EAiCR,UAAgC,iBAC9BD,EAD8B,6BAE9BE,EAF8B,iCAG9BC,EAH8B,eAI9BC,IAOA,OAAQJ,GACN,IAAK,UAKL,IAAK,qCACH,MAAO,uBAET,IAAK,eACL,IAAK,SACL,IAAK,QACL,IAAK,mBACL,IAAK,WACH,MAAO,4BAET,UAAK75B,EACL,IAAK,SACH,OAAO+5B,GAAgCC,EAClC,qCACkB,yBAAnBC,EACC,4BACA,iBAEP,IAAK,kBACH,MAAO,iBAET,IAAK,iBACL,IAAK,0BACH,MAA0B,yBAAnBA,EACF,qCACA,0BAEP,IAAK,4BACL,IAAK,qCACH,MAAO,qCAET,SACE,uBAAkBJ,GAEvB,CApFsCK,CAAuB,CAC1DL,iBAAkBA,aAAgB,EAAhB,EAAkB9sB,OACpCgtB,6BAA8B9D,EAAG8D,6BACjCC,iCAAkC/D,EAAG+D,iCACrCC,eAAgBhE,EAAGgD,SAASlsB,SAG9B,GACmC,8BAAjC+sB,GACiC,yBAAjCA,EAEAtB,EAAgBnhB,KAAK,CAAEshB,OAAQmB,SAC1B,GAA+B,IAA3BtB,EAAgBxxB,OACzB,MAAO,CACLmB,SAAU8tB,EAAG5xB,OACb0I,OAAQ+sB,GAIZ,sBACE3xB,SAAU8tB,EAAG5xB,OACb0I,OACEyrB,EAAgB3f,KAAI,EAAG8f,YAAaA,IAAQ1Z,SAAS,oBACrDuZ,EACG3f,KAAI,EAAG8f,YAAaA,IACpB1Z,SAAS,6BACR,eACA,UACNuZ,gBAAiB,CAACA,EAAgB,MAAOA,EAAgB1c,MAAM,KAC3D+d,EAAmB,CAAEA,oBAAqB,GAEjD,EAuDDr8B,EAAAA,+BAAA,UAA+C,kBAC7Cs4B,EAD6C,mBAE7CqE,IAUA,OAL8BrE,EAC3B1uB,QAAQgzB,GAAmC,sBAAtBA,EAASzC,WAC9B9e,KAAKuhB,GAAaA,EAAStD,WAGDlV,MAC1BkV,IAAcqD,EAAmBlb,SAAS6X,IAE9C,EAEDt5B,EAAAA,+BAAA,UAA+C,kBAC7Cs4B,EAD6C,mBAE7CqE,IAeA,OATwBrE,EACrB1uB,QACEgzB,GACC,CAAC,oBAAqB,aAAanb,SAASmb,EAASzC,YACpDyC,EAASC,QAEbxhB,KAAKuhB,GAAaA,EAAStD,WAGPlV,MACpB0Y,IAA0BH,EAAmBlb,SAASqb,IAE1D,EAED98B,EAAAA,6BAAA,UAA6C,mBAC3C28B,IAIA,OAAOA,EAAmBnzB,OAAS,CACpC,EAEYxJ,EAAAA,6BAGT,CACF+8B,YAAa,iBACbC,OAAQ,SACRC,gBAAiB,qBACjBC,iBAAkB,sBAClBC,SAAU,cACVC,mCAAoC,+BACpCC,OAAQ,SACRC,MAAO,QACPC,kBAAmB,oBACnBC,gBAAiB,uBACjBC,mBAAoB,uBACpBC,0BAA2B,mCAC3BC,2BAA4B,mCAC5BC,gBAAiB,kBACjBC,cAAe,sBACfC,QAAS,mBACTC,iBAAkB,qBAClBC,eAAgB,iBAChBC,mBAAoB,qBACpBC,wBAAyB,0BACzBC,0BAA2B,iBAC3BC,mCAAoC,0BACpCC,qBAAsB,uBACtBC,0BAA2B,uBAC3BC,oBAAqB,sBACrBC,kCAAmC,gBACnCC,iCAAkC,gBAClCC,gCAAiC,gBACjCC,iBAAkB,+B,8GC7SP3+B,EAAAA,eAAiB,CAC5B,cACA,SACA,qBACA,SACA,QACA,kBACA,mBACA,WACA,qCACA,iBACA,0BACA,4BACA,qCA/BA,oBACA,kBACA,qBACA,4BACA,UACA,mBACA,uBACA,4BACA,sBACA,kBACA,gBACA,oCACA,mCACA,kCAtBA,qBACA,6BAwByB,oBAyCdA,EAAAA,mBAAqB,CAbhC,oDACA,8FACA,uEAIA,oCACA,yDACA,6BACA,8DACA,+C,iPC3EWA,EAAAA,iCAAmC,gCACnCA,EAAAA,0CACX,+BACWA,EAAAA,+BAAiC,+BACjCA,EAAAA,gCAAkC,+BAClCA,EAAAA,qBAAuB,CAClCA,EAAAA,iCACAA,EAAAA,+BACAA,EAAAA,gCACAA,EAAAA,0C,yiCrETF,eACEsC,OAAAA,eAAAA,EAAAA,wBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,8BAAqB,IACrBnc,OAAAA,eAAAA,EAAAA,sCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,4CAAmC,IACnCnc,OAAAA,eAAAA,EAAAA,oCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,0CAAiC,IACjCnc,OAAAA,eAAAA,EAAAA,4BAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,kCAAyB,IACzBnc,OAAAA,eAAAA,EAAAA,yBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,+BAAsB,IACtBnc,OAAAA,eAAAA,EAAAA,yBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,+BAAsB,IACtBnc,OAAAA,eAAAA,EAAAA,yBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,+BAAsB,IAExB,eAASnc,OAAAA,eAAAA,EAAAA,aAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,mBAAU,IACnB,eAASnc,OAAAA,eAAAA,EAAAA,qCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,2CAAkC,IAC3C,eACEnc,OAAAA,eAAAA,EAAAA,iCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,uCAA8B,IAC9Bnc,OAAAA,eAAAA,EAAAA,iCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,uCAA8B,IAC9Bnc,OAAAA,eAAAA,EAAAA,+BAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,qCAA4B,IAC5Bnc,OAAAA,eAAAA,EAAAA,+BAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,qCAA4B,IAC5Bnc,OAAAA,eAAAA,EAAAA,kBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,wBAAe,IACfnc,OAAAA,eAAAA,EAAAA,8BAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,oCAA2B,IAE7B,eACEnc,OAAAA,eAAAA,EAAAA,qBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,2BAAkB,IAElBnc,OAAAA,eAAAA,EAAAA,iBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,uBAAc,IAKhB,eACEnc,OAAAA,eAAAA,EAAAA,kCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,wCAA+B,IAC/Bnc,OAAAA,eAAAA,EAAAA,uBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,6BAAoB,IACpBnc,OAAAA,eAAAA,EAAAA,iCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,uCAA8B,IAC9Bnc,OAAAA,eAAAA,EAAAA,mCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,yCAAgC,IAElC,eAASnc,OAAAA,eAAAA,EAAAA,mCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,yCAAgC,IACzC,eACEnc,OAAAA,eAAAA,EAAAA,oCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,0CAAiC,IACjCnc,OAAAA,eAAAA,EAAAA,gDAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,sDAA6C,IAC7Cnc,OAAAA,eAAAA,EAAAA,oCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,0CAAiC,IAEnC,eACEnc,OAAAA,eAAAA,EAAAA,mCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,yCAAgC,IAChCnc,OAAAA,eAAAA,EAAAA,yCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,+CAAsC,IACtCnc,OAAAA,eAAAA,EAAAA,+BAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,qCAA4B,IAC5Bnc,OAAAA,eAAAA,EAAAA,0CAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,gDAAuC,IACvCnc,OAAAA,eAAAA,EAAAA,gCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,sCAA6B,IAC7Bnc,OAAAA,eAAAA,EAAAA,oCAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,0CAAiC,IAanC,eAASnc,OAAAA,eAAAA,EAAAA,6BAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,mCAA0B,G,6QsE1DnC,iBAEA,WAEA,WAwBA,SAAgByd,EACdzD,GAEA,MAAM,kBAAEH,EAAF,kBAAqBsG,GAAsBnG,EAE3CsD,EAAYzD,EAAkB1uB,OAAOwvB,EAAAA,YAOrCyF,EALmCD,EAAkBh1B,QACxDk1B,GAC8B,2BAA7BA,EAAYC,QAAQhG,OAGsCnvB,QAC3Dk1B,GAAgBA,EAAYC,QAAQxE,qBAAuBwB,EAAUvyB,SAGxE,OAAOq1B,EAAqBr1B,OAAS,EACjC,CACE2xB,OAAQ,qBACR6D,0BAA2BH,EAC3BI,wBACElT,KAAKqM,OACAyG,EAAqBxjB,KAAKge,GAAMA,EAAE0F,QAAQxE,wBAC3CwB,EAAUvyB,QAElB,IACL,CAED,SAAgB01B,EACdzG,G,MAEA,MAAMoG,GACiC,QAArC,IAAGpD,SAAS0D,iCAAyBp7B,IAAAA,EAAAA,EAAI,IACzC6F,QAEEk1B,GAOiC,WAA9BA,EAAYvvB,OAAOA,SAG1B,OAAOsvB,EAAqBr1B,OAAS,EACjC,CACE2xB,OAAQ,sBACR6D,0BAA2BH,EAAqBxjB,KAC9C,EAAGyjB,iBAAkBA,KAGzB,IACL,CAED,SAAgBM,EACd3G,G,MAEA,MAAMoG,GACiC,QAArC,IAAGpD,SAAS0D,iCAAyBp7B,IAAAA,EAAAA,EAAI,IACzC6F,QAEEk1B,GAOiC,YAA9BA,EAAYvvB,OAAOA,SAG1B,OAAOsvB,EAAqBr1B,OAAS,EACjC,CACE2xB,OAAQ,sBACR6D,0BAA2BH,EAAqBxjB,KAC9C,EAAGyjB,iBAAkBA,KAGzB,IACL,CAED,SAAgBhD,EACdrD,GAEA,MAAM,MAAE/Y,GAAU+Y,EAEZ4G,EAAgB3f,EAAM9V,QACzB0V,KACE,sCAAiC,CAChCA,OACAmZ,SAIN,OAAO4G,EAAc71B,OAAS,EAC1B,CACE2xB,OAAQ,6BACRmE,oCAAqCD,EAAc/jB,QACjD,CAACuF,GAAO0e,WAAUC,yCAChB3e,EAAI0e,GAAYC,EACT3e,IAET,KAGJ,IACL,CAvHD7gB,EAAAA,iCAAA,SACEy4B,GAGA,MAAO,CACLyD,EAAmCzD,GACnCyG,EAAqCzG,GACrC2G,EAAqC3G,GACrCqD,EAA2CrD,IAC3C7uB,OAAO61B,EAAAA,WACV,EAEDz/B,EAAAA,mCAAAA,EA4BAA,EAAAA,qCAAAA,EA2BAA,EAAAA,qCAAAA,EA2BAA,EAAAA,2CAAAA,C,gMCtGAA,EAAAA,kCAAA,SACE++B,GAEA,MAAwB,2BAAjBA,EAAQhG,IAChB,EAED/4B,EAAAA,kCAAA,SACE++B,GAEA,MAAwB,2BAAjBA,EAAQhG,IAChB,EAED/4B,EAAAA,8CAAA,SACE++B,GAEA,MAAwB,uBAAjBA,EAAQhG,IAChB,C,4TCxBD,iBAEA,WAQA,SAAgB2G,GAA6B,iBAC3CC,EAD2C,UAE3C5D,IAKA,MAAM6D,EAAoB7D,EAAU1gB,KAAI,EAAGie,cAAeA,IAE1D,OAAQqG,EAAiB5G,MACvB,IAAK,OACH,OAAO6G,EAAkBne,SAASke,EAAiBlvB,OAErD,IAAK,OACH,OAAOkvB,EAAiB1G,aAAa7U,MAAM3T,GACzCmvB,EAAkBne,SAAShR,KAG/B,SACE,uBAAkBkvB,GAEvB,CAED,SAAgBE,GAAuB,UACrCtG,EADqC,QAErCwF,IAWA,OANgCA,EAAQe,kBAAkBpY,SACvDiY,GAC2B,SAA1BA,EAAiB5G,KACb4G,EAAiB1G,aACjB,CAAC0G,EAAiBlvB,SAEKgR,SAAS8X,EACzC,CAED,SAAgBwG,GAAkC,YAChDxH,EADgD,KAEhDjZ,IAOA,SACEiZ,IACAyH,EAA8B,CAC5BzG,UAAWhB,EACXjZ,SAGL,CAED,SAAgB0gB,GAA8B,UAC5CzG,EAD4C,KAE5Cja,IAOA,OAAOA,EAAKkgB,mCAAmCpb,MAAK,EAAG2a,aACrDc,EAAuB,CAAEtG,YAAWwF,aAEvC,CA+BD,SAAgBkB,GAAuC,KACrD3gB,EADqD,GAErDmZ,IASA,MAAM,mCAAE+G,GAAuClgB,GACzC,kBAAEgZ,GAAsBG,EAE9B,OAAO+G,EAAmCpb,MAAK,EAAG2a,aAChDmB,EAAwC,CACtC5H,oBACAyG,aAGL,CAED,SAAgBmB,GAAwC,kBACtD5H,EADsD,QAEtDyG,IAKA,MAAMhD,EAAYzD,EAAkB1uB,OAAOwvB,EAAAA,YAErC0G,EAAoBf,EAAQe,kBAKlC,OAC+B,IAA7BA,EAAkBt2B,QAClBs2B,EAAkB1b,MAAMub,GACtBD,EAA6B,CAC3BC,mBACA5D,eAIP,CAjJD/7B,EAAAA,6BAAAA,EAuBAA,EAAAA,uBAAAA,EAgBAA,EAAAA,kCAAAA,EAkBAA,EAAAA,8BAAAA,EAcAA,EAAAA,iCAAA,UAAiD,KAC/Csf,EAD+C,GAE/CmZ,IAUA,MAAM,mCAAE+G,GAAuClgB,GACzC,YAAEiZ,GAAgBE,EAMxB,OACgD,IAA9C+G,EAAmCh2B,QACnCu2B,EAAkC,CAChCxH,cACAjZ,UAEF2gB,EAAuC,CAAE3gB,OAAMmZ,MAElD,EAEDz4B,EAAAA,uCAAAA,EAsBAA,EAAAA,wCAAAA,C,gBC9DA,SAAgBmgC,GAAmB,OACjC5wB,EAAS,UADwB,0BAEjC4vB,EAA4B,KAK5B,MAAO,CACL5vB,SACA4vB,4BAEH,C,+JArEDn/B,EAAAA,mBAAA,UAAmC,SACjCs5B,EAAW,WADsB,SAEjCa,EAAW,WAFsB,mBAGjCC,EAAqB,KAHY,MAIjCyC,GAAQ,IAOR,MAAO,CACLvD,WACAa,WACAC,qBACAyC,QAEH,EAED78B,EAAAA,eAAA,UAA+B,SAC7Bu/B,EAAW,WADkB,WAE7B7G,EAAa,KAFgB,mCAG7B8G,EAAqC,KAQrC,MAAO,CACLD,WACA7G,aACA8G,qCAEH,EAEDx/B,EAAAA,2BAAA,UAEE,GACA0xB,EAAK,IADL,YAEA0O,EAAc,IAFd,QAGArB,EAAU,CACRhG,KAAM,yBACNwB,qBAAsB,KAOxB,MAAO,CACL7I,KACA0O,cACArB,UAEH,EAED/+B,EAAAA,mBAAAA,EAaAA,EAAAA,aAAA,UAA6B,OAC3B6G,EAAS,EADkB,MAE3BiE,EAAQ,OAFmB,QAG3BM,GAAU,EAHiB,YAI3BmtB,EAAc,cAJa,kBAK3BD,EAAoB,GALO,kBAM3BkD,GAAoB,EANO,gBAO3BX,GAAkB,EAPS,oBAQ3BK,GAAsB,EARK,iBAS3BJ,GAAmB,EATQ,WAU3BC,GAAa,EAVc,SAW3BU,EAAW0E,EAAmB,IAXH,eAY3BE,GAAiB,EAZU,OAa3BxlB,EAAS,SAbkB,aAc3BwgB,EAAe,KAdY,sBAe3Be,EAAwB,EAfG,MAgB3B1c,EAAQ,GAhBmB,4BAiB3B4gB,EAA8B,GAjBH,kBAkB3B1B,EAAoB,GAlBO,aAmB3BtD,EAAe,IAAIviB,KAnBQ,qBAoB3BwiB,EAAuB,IAAIxiB,OAuB3B,MAAO,CACLlS,SACAiE,QACAM,UACAmtB,cACAD,oBACAkD,oBACAX,kBACAK,sBACAJ,mBACAC,aACAwB,8BAA8B,EAC9BC,kCAAkC,EAClCf,WACA4E,iBACAxlB,SACAwgB,aAAcA,EACde,wBACA1c,QACA4gB,8BACA1B,oBACAtD,eACAC,uBAEH,C,eC9FD,SAASgF,EAAmCC,GAC1C,OAAQn6B,GAEChF,KAAKC,UAAUk/B,KAAWn/B,KAAKC,UAAU+E,EAEnD,C,iRAvBYrG,EAAAA,cAAiBqG,QACJ,IAAVA,EAwBhBrG,EAAAA,QAAA,SACEwgC,GAEA,OAAOD,EAA2BC,EACnC,EAIYxgC,EAAAA,OAAUqG,GACG,iBAAVA,EAGHrG,EAAAA,OAAUqG,GACG,iBAAVA,EAGHrG,EAAAA,QAAWqG,GACE,kBAAVA,EAGHrG,EAAAA,SAAYqG,GACN,OAAVA,EAqCTrG,EAAAA,MAAA,SAIE8C,GACA,MAAO,CACLuD,EACA4hB,IAIOwY,EAAmB39B,EAAQuD,EAAO4hB,EAE5C,EASDjoB,EAAAA,4BAAA,SAIE8C,GACA,MAAO,CACLuD,EACA4hB,IAIOwY,EAAmB39B,EAAQuD,EAAO4hB,EAE5C,EAED,MAAMwY,EAAqB,CAKzB39B,EACAuD,EACA4hB,IAMmB,iBAAV5hB,GACG,OAAVA,GACA/D,OAAO2sB,KAAKnsB,GAAQwd,OAAOla,IACzB,MAAMs6B,EACJ59B,EAAOsD,IACPtD,EAAOsD,GAAMC,EAAkCD,GAAM6hB,GAQvD,OAPKyY,IAAgBzY,aAAI,EAAJ,EAAMxkB,cACzB0kB,QAAQC,IACN,mBAAmB/mB,KAAKC,UACrB+E,EAAkCD,WAC5BA,kCAGNs6B,CAAP,IAyHN,SAAgB/yB,EACdkR,EACAC,GAEA,MAAO,CAACzY,EAAgB4hB,KACtB,MAAM0Y,EAAU9hB,EAAKxY,EAAO4hB,IAASnJ,EAAMzY,EAAO4hB,GAQlD,OAPK0Y,IAAW1Y,aAAI,EAAJ,EAAMxkB,cACpB0kB,QAAQC,IACN,oBAAoB/mB,KAAKC,UACvB+E,oCAICs6B,CAAP,CAEH,CAmBD,SAAgBx7B,EAA2Cq7B,GACzD,MAAO,CAACn6B,EAAgB4hB,KACtB,MAAM0Y,EAAUH,EAAMpc,MAAMthB,GACnBA,EAAOuD,EAAO4hB,KAOvB,OALK0Y,IAAW1Y,aAAI,EAAJ,EAAMxkB,cACpB0kB,QAAQC,IACN,wBAAwB/mB,KAAKC,UAAU+E,6BAGpCs6B,CAAP,CAEH,CAjJD3gC,EAAAA,YAAA,SAGE4gC,EAAWC,GACX,MAAO,CACLx6B,EACA4hB,KAEA,GAAqB,iBAAV5hB,GAAgC,OAAVA,KAAoBu6B,KAAOv6B,GAI1D,OAHI4hB,aAAI,EAAJ,EAAMxkB,cACR0kB,QAAQC,IAAI,iDAEP,EAGT,MAAMtlB,EAAS+9B,EAASx6B,EAAiCu6B,IAEzD,QAAK99B,GAIER,OAAO2sB,KAAKnsB,GAAQwd,OAAOla,IAChC,MAAMs6B,EACJ59B,EAAOsD,IACPtD,EAAOsD,GAAMC,EAAkCD,GAAM6hB,GAQvD,OAPKyY,IAAgBzY,aAAI,EAAJ,EAAMxkB,cACzB0kB,QAAQC,IACN,mBAAmB/mB,KAAKC,UACrB+E,EAAkCD,WAC5BA,kCAGNs6B,CAAP,GAXF,CAcH,EAED1gC,EAAAA,MAAA,SAA+B8gC,GAC7B,MAAO,CAACz6B,EAAgB4hB,IAEpB5L,MAAM8Z,QAAQ9vB,IACdA,EAAMia,OAAOwO,IACX,MAAM4R,EAAeI,EAAOhS,EAAG7G,GAQ/B,OAPKyY,IAAgBzY,aAAI,EAAJ,EAAMxkB,cACzB0kB,QAAQC,IACN,oBAAoB/mB,KAAKC,UACvBwtB,oCAIC4R,CAAP,GAIP,EAaD1gC,EAAAA,MAAA,SAGE8C,GACA,MAAO,CACLuD,EACA4hB,IAOE5L,MAAM8Z,QAAQ9vB,IACdA,EAAMmD,SAAW1G,EAAO0G,QACxBnD,EAAMia,OAAM,CAACwO,EAAGiS,KACd,MAAML,EAAe59B,EAAOi+B,GAAKjS,EAAG7G,GAQpC,OAPKyY,IAAgBzY,aAAI,EAAJ,EAAMxkB,cACzB0kB,QAAQC,IACN,oBAAoB/mB,KAAKC,UACvBwtB,oCAIC4R,CAAP,GAIP,EAID1gC,EAAAA,MAAAA,EAiBAA,EAAAA,aAAA,SACE6e,EACAC,GAEA,MAAO,CAACzY,EAAgB4hB,KACtB,MAAM0Y,EAAU9hB,EAAKxY,EAAO4hB,IAASnJ,EAAMzY,EAAO4hB,GAQlD,OAPK0Y,IAAW1Y,aAAI,EAAJ,EAAMxkB,cACpB0kB,QAAQC,IACN,2BAA2B/mB,KAAKC,UAC9B+E,oCAICs6B,CAAP,CAEH,EAED3gC,EAAAA,UAAAA,EAsBAA,EAAAA,cAAA,SACEwgC,GAEA,MAAO,CACLn6B,EACA4hB,KAEA,MAAM0Y,EAAUH,EAAMlgB,OAAOxd,GACpBA,EAAOuD,EAAO4hB,KASvB,OAPK0Y,IAAW1Y,aAAI,EAAJ,EAAMxkB,cACpB0kB,QAAQC,IACN,+BAA+B/mB,KAAKC,UAClC+E,6BAICs6B,CAAP,CAEH,EAID3gC,EAAAA,SAAA,SAEEghC,GAKA,OAAO77B,EACL67B,EAAO3lB,KAAKhV,GAYHk6B,EAA2Bl6B,KAGvC,EAEDrG,EAAAA,SAAA,SACEwgC,GAEA,OAAO7yB,EAAM6yB,EAAOxgC,EAAAA,cACrB,EAEDA,EAAAA,SAAA,SACEwgC,GAEA,OAAO7yB,EAAM6yB,EAAOxgC,EAAAA,SACrB,C,kuBCnaDA,EAAAA,QAAAA,EAAAA,EAAAA,O,6vBCAAihC,EAAAA,OAGA,oBAmDA,SAAgBC,GAA8C,UAC5Dn/B,EAD4D,MAE5DtB,EAF4D,OAG5DG,EAH4D,YAI5DqB,EAJ4D,UAK5DC,EAL4D,QAM5DC,EAN4D,KAO5D8lB,IAuBA,IAAI9c,EAAMpJ,GAHGG,EACTi/B,EAAaC,QAAQ3gC,EAAM0K,IAA3Bg2B,CAAgCj/B,GAChCzB,EAAM0K,KAENN,EAAsC,KAE1C,GAAoB,OAAhBpK,EAAMqL,QACR,GAAI7J,EAAa,CACf,MAAMo/B,EAjFZ,SACEC,EACAC,GAEA,MAAMC,EAAM,GAENpnB,EAAO9X,OAAO2sB,KAAKqS,GACrBC,GACFnnB,EAAK+L,OAGP,IAAK,MAAM5e,KAAK6S,EAAM,CACpB,MAAM0U,EAAIwS,EAAI/5B,QACJ/E,IAANssB,GAOF0S,EAAI3nB,KAAK4nB,mBAAmBl6B,GAAK,IAAMk6B,mBAAmB3S,GAE7D,CACD,OAAO0S,EAAIz6B,KAAK,IACjB,CAyDqB26B,CAAiBz/B,EAAagmB,aAAI,EAAJ,EAAM0Z,iBACrC,IAAXN,IACFl2B,GAAO,IAAMk2B,EAEhB,OAEDx2B,EAAOpK,EAAMmhC,QAAWhhC,EAAoBS,KAAKC,UAAUV,GAG7D,MAAO,CACLuK,MACA02B,KAAMphC,EAAMqL,OACZ3J,QAASG,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EACJH,GAAO,CACV,eAAgB,eAElB0I,OAEH,CArDD7K,EAAAA,iBAAAA,EAuDAA,EAAAA,gBAAA,UAA6D,UAC3D+B,EAD2D,MAE3DtB,EAF2D,OAG3DG,EAH2D,YAI3DqB,EAJ2D,UAK3DC,EAL2D,QAM3DC,IAqBA,OAtGF,UAAiB,IACfgJ,EADe,KAEf02B,EAFe,QAGf1/B,EAHe,KAIf0I,IAOA,OAAOi3B,MAAM32B,EAAG7I,OAAAA,OAAAA,CACdwJ,OAAQ+1B,EACRx9B,KAAM,OACN09B,YAAa,UACb5/B,QAASA,GACL0I,EAAO,CAAEA,KAAMA,GAAS,IAE/B,CAoFQrK,CARY0gC,EAAiB,CAClCn/B,YACAtB,QACAG,SACAqB,cACAC,YACAC,aAEyB2b,MAAMnR,GAEzBlM,EAAMkM,UAAgC,MAApBA,EAAS4C,OACxB5C,EAASq1B,OAAOlkB,MAAMjT,GAC3B,+BACKA,GAAI,CACPo3B,UAAWt1B,MAKV,CAAEs1B,UAAWt1B,IAEvB,C,qGC5ID3M,EAAAA,KAAA,SAKEkiC,EACAC,GAEA,OAAQla,GACCia,EAAG5/B,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EACL6/B,GACAla,GAGR,EAEDjoB,EAAAA,oBAAA,SACEkiC,GAEA,MAAO,IAAMA,EAAG,GACjB,C,gFC7BDliC,EAAAA,MAAA,SACE6zB,EACAuO,GAEA,MAAMC,EAAgB,IAAIzR,IACpB0R,EAAe,GAUrB,OARAzO,EAAKxV,SAASkkB,IACZ,MAAM7Q,EAAK0Q,EAAMG,GACZF,EAAMtR,IAAIW,KACb4Q,EAAQzoB,KAAK0oB,GACbF,EAAMG,IAAI9Q,GACX,IAGI4Q,CACR,C,wFCfDtiC,EAAAA,cAAA,UAAiC,EAC/BomB,EAD+B,EAE/BC,EAF+B,aAG/Boc,IAMA,MAAMC,EAAS,IAAI9R,IAEnB,OADAvK,EAAEhI,SAASskB,GAAUD,EAAOF,IAAIC,EAAaE,MACtCvc,EAAExc,QAAQg5B,IAAWF,EAAO3R,IAAI0R,EAAaG,KACrD,C,uFCbD5iC,EAAAA,cAAA,SAA8BshC,GAC5B,OAAmC,IAA5Bh/B,OAAO2sB,KAAKqS,GAAK93B,MACzB,C,0FCFYxJ,EAAAA,gBAAkB,EAC7BmG,QACAE,QACAw8B,cAMA,MAAM9B,EAAM56B,EAAMyvB,QAAQvvB,GAC1B,IAAa,IAAT06B,EACF,MAAM8B,IAER,OAAO9B,CAAP,C,6FCbF,MAAM+B,EAA4B,gCAC5BC,EAAkB,sBAClBC,EACJ,yCACIC,EAAO,WACPC,EAAM,UACZljC,EAAAA,mBAAA,SAAmCmjC,GAsBjC,MAAO,CArBiC1iB,GACrB,OAAVA,EAAiBqiB,EAA4BriB,EAEvBA,GACtBA,EAAM7C,QAAQ,QAASmlB,GAEgBtiB,GACvCA,EAAM2iB,WAAW,MAAOJ,GAEXviB,GAAkBA,EAAM2iB,WAAW,IAAKH,GACzCxiB,GAAkBA,EAAM2iB,WAAW,IAAKF,GACtBziB,GACrCA,EAAM2iB,WAAWN,EAA2B,MAChBriB,GAC5BA,EAAM2iB,WAAWL,EAAiB,MACWtiB,GAC7CA,EAAM2iB,WAAWJ,EAAoC,aAClCviB,GAAkBA,EAAM2iB,WAAWH,EAAM,SAC1CxiB,GAAkBA,EAAM2iB,WAAWF,EAAK,OACrBziB,GAAkB,IAAIA,IAC5BA,GAAkB,GAAGA,MAiBpDnF,QAAO,CAAC5N,EAAQw0B,IAAOA,EAAGx0B,IAASy1B,EACtC,C,maC7CD,iBAcAnjC,EAAAA,iBAAA,SAAsC+D,G,2CAAC,GACrCm+B,EADqC,UAErCmB,EAFqC,kBAGrCC,EAHqC,uBAIrCC,IASA,IAAIC,GAAa,EACbC,GAAa,EACbC,EAAe,EAanB,SAFMnyB,QAAQoyB,KAAK,CAACzB,IATK,KAAW7hC,EAAAA,UAAAA,OAAAA,GAAAA,YAClC,MAAQmjC,SACAH,IACNK,UACM,WAAMJ,GAEdG,GAAa,CACd,IAEyBG,KAC1BJ,GAAa,EACTD,EACF,MAAQE,SACA,WAAM,CAAEI,aAAc,IAIhC,MAAO,CACLH,aAAcA,EAEjB,I,y2BnFlDD9hC,EAAAA,EAAAA,OAAAA,GAGA,eAASU,OAAAA,eAAAA,EAAAA,OAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,aAAI,IAAEnc,OAAAA,eAAAA,EAAAA,sBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,4BAAmB,IAClC,eAASnc,OAAAA,eAAAA,EAAAA,QAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,cAAK,IACd,eAASnc,OAAAA,eAAAA,EAAAA,gBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,sBAAa,IACtB,cAASnc,OAAAA,eAAAA,EAAAA,gBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,sBAAa,IACtB,eAASnc,OAAAA,eAAAA,EAAAA,kBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,wBAAe,IACxB,eAASnc,OAAAA,eAAAA,EAAAA,qBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,2BAAkB,IAC3B,eAASnc,OAAAA,eAAAA,EAAAA,mBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,yBAAgB,IACzB,cAASnc,OAAAA,eAAAA,EAAAA,oBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,0BAAiB,IAC1B,eAASnc,OAAAA,eAAAA,EAAAA,YAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,kBAAS,IAClB,eAASnc,OAAAA,eAAAA,EAAAA,iBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,uBAAc,IACvB,eAASnc,OAAAA,eAAAA,EAAAA,YAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,kBAAS,IAClB,eAASnc,OAAAA,eAAAA,EAAAA,QAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,cAAK,IAAEnc,OAAAA,eAAAA,EAAAA,UAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,gBAAO,IACvB,eACEnc,OAAAA,eAAAA,EAAAA,qBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,2BAAkB,IAClBnc,OAAAA,eAAAA,EAAAA,8BAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,oCAA2B,IAC3Bnc,OAAAA,eAAAA,EAAAA,eAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,qBAAY,IACZnc,OAAAA,eAAAA,EAAAA,mBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,yBAAgB,IAChBnc,OAAAA,eAAAA,EAAAA,MAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,YAAG,IACHnc,OAAAA,eAAAA,EAAAA,mBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,yBAAgB,IAChBnc,OAAAA,eAAAA,EAAAA,SAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,eAAM,IAER,eAASnc,OAAAA,eAAAA,EAAAA,eAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,qBAAY,IAAEnc,OAAAA,eAAAA,EAAAA,iBAAAA,CAAAsnB,YAAAA,EAAAnL,IAAAA,WAAA,uBAAc,G,2FoFzBrCze,EAAAA,kBAAA,UAAwC,MACtC8jC,EADsC,OAEtCC,EAFsC,aAGtCC,IAMA,MAAMC,EAA4B,GAIlC,OAHAH,EAAMzlB,SAASkkB,IACb0B,EAAOD,EAAaD,EAAOxB,KAAUA,CAArC,IAEMn8B,GAAQ69B,EAAOD,EAAa59B,GACrC,C,0ZCdDpG,EAAAA,UAAA,SAA+B+D,G,2CAAiB,GAC9Cm+B,EAD8C,OAE9CgC,EAF8C,QAG9CC,EAH8C,cAI9CC,IAQA,aADwC7yB,QAAQC,IAAI0yB,EAAO7oB,IAAI6mB,KACzC5mB,QAAO,CAACuF,EAAKwjB,IAAQF,EAAQtjB,EAAKwjB,IAAMD,EAC/D,I,ifCbD,oBAEA,WAEapkC,EAAAA,eAAiB+D,GAWzB1D,OAAAA,EAAAA,CAAAA,QAAAA,GAAAA,WAXmC,GACtC6hC,EADsC,QAEtCoC,EAFsC,QAGtCxgC,IASA,IAAK,MAAMygC,KAAcjnB,EAAAA,QAAEknB,MAAM1gC,EAAQ2gC,YACvC,IACE,aAAavC,GACd,CAAC,MAAOhhC,GACP,GAAIqjC,EAAa,GAAKzgC,EAAQ2gC,WAC5B,MAAMvjC,EAGRojC,SAAA,EAAU,CAAEC,aAAYrjC,cAClB,WAAM4C,EAAQ4gC,cACrB,CAGH,MAAM,IAAIljC,MAAM,cACjB,G,oFC9BDxB,EAAAA,UAAA,SAA0Bo4B,EAAauM,GACrC,IAAIzV,EACJ,MAAM6H,EAAU,IAAIxlB,SAASwK,IAC3BmT,EAAOnT,CAAP,IAEI6oB,EAAe,IAAID,GACzB,IAAIE,EAAU,EAsBd,OArBA,SAAS7V,IACP,MAAM8V,EAAUF,EAAaG,aACN,IAAZD,GAMXD,IACeC,IAGR7jC,MAAMknB,QAAQhnB,OAAO6jC,SAAQ,KAClCH,IACA7V,GAAI,IAEF6V,EAAUzM,GACZpJ,KAdgB,IAAZ6V,GACF3V,OAAK1sB,EAeV,CACDwsB,GACO+H,CACR,C,sVCzBD,SAAsBkO,EAAM7qB,G,yCAC1B,MAAM8qB,EAAUC,EAAkB/qB,SAE5B,IAAI7I,SAASwK,IACjByP,WAAWzP,EAASmpB,EAApB,GAEH,I,0EANDllC,EAAAA,MAAAA,EAQaA,EAAAA,QAAU+D,GAUlB1D,OAAAA,EAAAA,CAAAA,QAAAA,GAAAA,WAVyB,UAC5BmzB,EAD4B,cAE5BkR,EAF4B,QAG5BxS,EAH4B,MAI5BkT,IAOA,MAAMF,EAAUC,EAAkBT,GAC5BW,EAAYF,EAAkBjT,QAAA,EAAW,CAAEoT,QAAS,IAE1D,IAAK,MAAM7T,EAAY1Y,KAAKC,MAAOD,KAAKC,MAAQyY,EAAY4T,GAAa,CACvE,SAAU7R,IACR,aAGIyR,EAAM,CAAEpB,aAAcqB,GAC7B,CAED,MAAM,IAAI1jC,MAAM,uBAAuB4jC,QAAA,EAAS,cACjD,IAED,MAAMD,EAAqBT,GACrB,YAAaA,EACgB,GAAxBA,EAAcY,QAAe,IAGlC,YAAaZ,EACgB,IAAxBA,EAAca,QAGhBb,EAAcb,Y,iMC9CvB,iBAsBa7jC,EAAAA,OAAS,CACpBwlC,EACAC,EACAxd,KAEA,MAAMyd,GAAe,aAAI,EAAJ,EAAMA,eAAgB,IAE3C,MAAO,IAAG,aAAI,EAAJ,EAAMC,qBAA4B,IAANF,EAAU,KAAO,KAAKD,IACpD,IAANC,EAAUC,EAAe,IAD3B,EAOW1lC,EAAAA,aAAe,CAC1B4lC,EACA9hC,IAEA8hC,EAAKC,eAAe,QAAS,CAC3BC,MAAO,QACPC,IAAK,UACLC,KAAM,UACNC,OAAQ,UACRC,SAAUpiC,aAAO,EAAP,EAASoiC,SACnBC,aAAcriC,aAAO,EAAP,EAASsiC,kBAGdpmC,EAAAA,4BAA+B+E,IAC1C,GAAe,KAAXA,EACF,OAAO,KAET,MAAMshC,GAAOthC,EACb,OAAOuhC,MAAMD,GAAO,KAAOA,CAA3B,EAGWrmC,EAAAA,iBAAmB,CAC9BumC,EACAC,KAEA,MAAMtZ,EAAWuZ,EAAAA,SAASC,WAAW,CAAEnB,QAASgB,IAAeI,UAEzDC,EAAiB,GAqBvB,OApBI1Z,EAAS2Z,MAAQ,GACnBD,EAAe/sB,KAAK,GAAGqT,EAAS2Z,UAE9B3Z,EAAS4Z,OAAS,GACpBF,EAAe/sB,KAAK,GAAGqT,EAAS4Z,YAE9B5Z,EAAS6Z,KAAO,GAClBH,EAAe/sB,KAAK,GAAGqT,EAAS6Z,SAE9B7Z,EAAS8Z,MAAQ,GACnBJ,EAAe/sB,KAAK,GAAGqT,EAAS8Z,UAE9B9Z,EAASoY,QAAU,GACrBsB,EAAe/sB,KAAK,GAAGqT,EAASoY,YAG9BkB,GAA4D,IAA1BI,EAAep9B,QACnDo9B,EAAe/sB,KAAK,GAAGqT,EAASqY,YAG3BqB,EAAe7/B,KAAK,IAA3B,EAGW/G,EAAAA,mBAAsBqwB,I,MACjC,OAAsB,IAAlBA,EAAO7mB,OACF,GAGa,IAAlB6mB,EAAO7mB,OACO,QAAT,IAAO,UAAEzF,IAAAA,EAAAA,EAAI,GAGf,GAAGssB,EAAO/R,MAAM,GAAI,GAAGvX,KAAK,aAAaspB,EAAOxM,IAAI,IAA3D,EAGF7jB,EAAAA,iBAAA,SAAiCqmC,GAC/B,OAAOA,EAAIpb,WAAWrN,QAAQ,wBAAyB,IACxD,EAkCY5d,EAAAA,IAAOylC,GACT,GAALA,EACK,SAELA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAChB,GAALA,EAAS,QAAU,GAAGA,MACpBA,EAAI,IAAM,GAAKA,EAAI,KAAO,GACvB,GAALA,EAAS,SAAW,GAAGA,MACrBA,EAAI,IAAM,GAAKA,EAAI,KAAO,GACvB,GAALA,EAAS,QAAU,GAAGA,MAGxB,GAAGA,K,wGCnJZ,MAAawB,UAAqBzlC,OAAlCxB,EAAAA,aAAAA,EAEaA,EAAAA,eAAiB,EAC5B+2B,UACAsO,eAKO9zB,QAAQoyB,KAAK,CAClB5M,EACA,IAAIxlB,SAASwK,GAAYyP,WAAWzP,EAASspB,KAAYvnB,MAAK,KAC5D,MAAM,IAAImpB,EAAa,iBAAiB5B,MAAxC,K,gBC4BN,SAAgB6B,EAAcpY,GAC5B,OAAa,OAANA,CACR,CAED,SAAgBqY,EAAmBrY,GACjC,YAAatsB,IAANssB,CACR,C,+PA3CD9uB,EAAAA,kBAAA,SAAkC6wB,GAChC,MAAM,IAAIrvB,MAAM,mCAAmCH,KAAKC,UAAUuvB,KACnE,EAcD7wB,EAAAA,gBAAA,SACEonC,EACAC,GAEA,OAAO/kC,OAAO+tB,OAAO+W,GAAe3lB,SAAS4lB,EAC9C,EAIDrnC,EAAAA,UAAA,SAA6BomB,EAAWC,GACtC,GAAID,EAAE2I,OAAS1I,EAAE0I,KACf,OAAO,EAET,IAAK,MAAMwT,KAAQnc,EACjB,IAAKC,EAAE0K,IAAIwR,GACT,OAAO,EAGX,OAAO,CACR,EAEDviC,EAAAA,WAAAA,EAIAA,EAAAA,gBAAAA,EAIAA,EAAAA,oBAAA,SAAuC8uB,GACrC,OAAOoY,EAAWpY,IAAMqY,EAAgBrY,EACzC,EAYD9uB,EAAAA,gBAAA,SACE80B,GAEA,YAAkBtyB,IAAXsyB,EAAI,EACZ,EAED90B,EAAAA,iBAAA,SACE80B,EACAoN,GAEA,OAAOpN,EAAIzZ,IAAI6mB,EAChB,EAEDliC,EAAAA,qBAAA,SACE80B,EACAoN,GAEA,OAAOpN,EAAIpN,QAAQwa,EACpB,EAEDliC,EAAAA,kCAAA,SACE80B,GAEA,OAAOA,EAAInX,MACZ,C,8eC5EM,MAAM2pB,EAAqB,EAAiC,mB,wBCN5D,SAASC,IACd,IACE,OAAO,eAAcjO,Q,CACrB,MAAOkO,GACP,IACE,MAAM,IAAEpgC,GAAQD,QAChB,OAAO,IAAAsgC,QAAOrgC,EAAIsgC,SAAWtgC,EAAIugC,MAAQvgC,EAAIwgC,OAASxgC,EAAIygC,S,CAC1D,MAAOC,GACP,MAAM,IAAItmC,MAAM8vB,OAAOwW,GAAmBxW,OAAOkW,G,EAGvD,CCDA,MAAMO,EACJ,WAAAtmC,CAAmBtB,EAAuBmE,GAAvB,KAAAnE,OAAAA,EAAuB,KAAAmE,KAAAA,CAAwB,CAE3D,OAAA0jC,CAAQx7B,G,MACby7B,KAAK3jC,KAAKkI,KAA+B,QAAxB,EAAAA,aAAI,EAAJA,EAAM07B,0BAAkB,eAAEC,gBAC7C,EAGF,MAAMC,EAAQzlC,IAAD,E,wBClBN,MAAM0lC,EAAelgB,Q,uDCyBrB,MAAMmgB,UAKH,EAAAC,c,0SCnBH,MAAMC,EACX,WAAA/mC,CACUgnC,EACAC,GADA,KAAAD,iBAAAA,EACA,KAAAC,WAAAA,EAMF,KAAAC,cAAgB,IAAIL,CADzB,CAGH,qBAAAM,CACEvW,GAEA,MAAMwW,EAAcvkC,GAA8B+tB,EAAS,CAAEhsB,MAAO/B,IAC9DwkC,EAAe3nC,GAAiBkxB,EAAS,CAAElxB,UAGjD,OAFA8mC,KAAKU,cAAc3d,GAAG,OAAQ6d,GAC9BZ,KAAKU,cAAc3d,GAAG,QAAS8d,GACxB,CACLC,QAAS,KACPd,KAAKU,cAAcK,IAAI,OAAQH,GAC/BZ,KAAKU,cAAcK,IAAI,QAASF,EAAY,EAGlD,CAEa,yBAAAG,CAA0BC,G,yCACrC,MAAM7iC,QAAc4hC,KAAKS,WAAW,CAAC,gBAAiB,QAChDh6B,EAAMrN,KAAKq1B,MAAMrwB,EAAMykB,QAC7Bmd,KAAKU,cAAcQ,KAAK,OAAQz6B,EAClC,G,CAEO,OAAAq6B,GACLd,KAAKU,cAAcS,oBACrB,CAEO,cAAAjB,GACL,MAAO,UAAUF,KAAKQ,iBAAiBY,YAAYpB,KAAKQ,iBAAiBh7B,SAASw6B,KAAKQ,iBAAiBj8B,MAC1G,CAGO,kBAAA88B,CACLC,EACAC,EACAC,EACAC,GAEA,MAAM,IAAIloC,MACR,yEAEJ,CAEa,SAAAmoC,CACXC,EACAC,G,yCAEA,OAAOt4B,QAAQwK,QAAQ,GACzB,G,EC3DK,MAAM+tB,EACX,WAAAroC,CACUtB,EACA4pC,GADA,KAAA5pC,OAAAA,EACA,KAAA4pC,YAAAA,EAQF,KAAAC,iBAEJ,GACI,KAAAC,sBAAkDznC,EAClD,KAAA0nC,qBAA+C1nC,CANpD,CAQG,mBAAA2nC,CACJ3Y,EACA4Y,EACAC,EACAn5B,G,qCAEA,GAA6B,MAAzB+2B,KAAKgC,iBAOP,OANAhC,KAAK+B,iBAAiBnwB,KAAK,OAAD,wBAAM2X,GAAS,CAAE6Y,kBAC3CD,EAAW,CACT1Y,GAAIF,EAAUE,GACdqH,KAAM,QACNuR,MAAOrC,KAAK+B,iBAAiB3uB,KAAKmc,GAAMA,EAAE9F,OAI9CuW,KAAKgC,iBAAmBzY,EAExB,MAAM+Y,EAA0D,IAC3DnwB,KAEH,OAAQA,EAAK,IACX,IAAK,QACHgwB,EAAW,CACT1Y,GAAIF,EAAUE,GACdqH,KAAM,QACNuR,MAAOrC,KAAK+B,iBAAiB3uB,KAAKmvB,GAAOA,EAAG9Y,OAE9C,MAEF,IAAK,SACH0Y,EAAW,CAAE1Y,GAAIF,EAAUE,GAAIqH,KAAM,SAAUr3B,QAAS0Y,EAAK,KAC7D,MAEF,IAAK,SACHgwB,EAAW,CAAE1Y,GAAIF,EAAUE,GAAIqH,KAAM,SAAUr3B,QAAS0Y,EAAK,KAC7D,MAEF,IAAK,OACHgwB,EAAW,CACT1Y,GAAIF,EAAUE,GACdqH,KAAM,OACNld,SAAUzB,EAAK,GACfrZ,UAAWgY,KAAKC,Q,EAMxB,IACE,MAAMyxB,EAAa,IAAIC,gBAiBvB,GAhBAzC,KAAKiC,gBAAkBO,QACjBJ,EAAQ7Y,UACZA,EAAUmZ,eACV,oBACA,CAAEC,OAAQ,CAAExwB,KAAMoX,EAAUpX,KAAMhJ,OAAQogB,EAAUpgB,UACnDy5B,GACC5C,KAAK8B,YACHvY,EACAtgB,EACAq5B,EACAE,EAAWrf,UAGjB6c,KAAKgC,sBAAmBznC,EAGpBylC,KAAK+B,iBAAiBxgC,OAAS,EAAG,CACpC,MAAMghC,EAAKvC,KAAK+B,iBAAiBjF,QACvB,MAANyF,GAEGvC,KAAKkC,oBACRK,EAEAJ,EACAI,EAAGH,QACHn5B,E,EAIN,MAAOhQ,GACP,MAAM4pC,EAAa5pC,EAAc+pB,WACjCgd,KAAK9nC,OAAOioB,IACV,4BACAoJ,EAAUpX,KAAK,GACf0wB,GAEFV,EAAW,CAAE1Y,GAAIF,EAAUE,GAAIqH,KAAM,QAAS53B,MAAO2pC,IAErD7C,KAAK+B,iBAAmB,GACxB/B,KAAKgC,sBAAmBznC,C,CAE5B,E,+RAOA,qBAAAuoC,CAAsBC,G,SACK,QAArB,EAAA/C,KAAKgC,wBAAgB,eAAEvY,KAAMsZ,IACX,QAApB,EAAA/C,KAAKiC,uBAAe,SAAEe,QAE1B,EC/HK,MAAMC,EAAb,cACU,KAAAC,aAAe,IAAIva,IACnB,KAAAwa,aAAe,IAAIxa,IAEnB,KAAAya,iBAAmB,IAAIza,GAwCjC,CAtCE,QAAA0a,CAASC,EAAczgC,GACrB,OAAQA,GACN,IAAK,UACHm9B,KAAKkD,aAAa3I,IAAI+I,GACtBtD,KAAKmD,aAAa5I,IAAI+I,GACtB,MAEF,IAAK,UACHtD,KAAKkD,aAAa3mC,OAAO+mC,GACzBtD,KAAKmD,aAAa5I,IAAI+I,GACtB,MAEF,IAAK,SACHtD,KAAKkD,aAAa3mC,OAAO+mC,GACzBtD,KAAKmD,aAAa5mC,OAAO+mC,GAG7B,IAAK,MAAMje,KAAW2a,KAAKoD,iBACzB/d,EAAQxiB,EAEZ,CAEO,WAAA0gC,CAAYD,GACjBtD,KAAKkD,aAAa3mC,OAAO+mC,GACzBtD,KAAKmD,aAAa5mC,OAAO+mC,EAC3B,CAEO,gBAAAE,GACL,OAAOxD,KAAKkD,aAAapc,KAAO,CAClC,CACO,cAAA2c,GACL,OAAOzD,KAAKmD,aAAarc,KAAO,CAClC,CAEO,QAAA4c,CAAStZ,GAEd,OADA4V,KAAKoD,iBAAiB7I,IAAInQ,GACnB,IAAM4V,KAAKoD,iBAAiB7mC,OAAO6tB,EAC5C,EC/BK,MAAMuZ,EAKX,WAAAnqC,CACUoqC,EACAzjB,GADA,KAAAyjB,uBAAAA,EACA,KAAAzjB,IAAAA,EANF,KAAA0jB,OAAoB,GACpB,KAAAjH,QAAqB,GACrB,KAAAkH,KAAO,IAAIzD,EAOX,KAAA0D,OAAS,CAFd,CAGK,UAAAlgB,GACN,OAAOmc,KAAK+D,QACd,CAEM,UAAAC,CAAc76B,G,mDAClB,MAAMsgB,EAAKuW,KAAKnc,aAEhBmc,KAAK6D,OAAOjyB,KAAK6X,GACjBuW,KAAKiE,iBAEAjE,KAAKpD,QAAQpjB,SAASiQ,KACjB,QAAR,EAAAuW,KAAK7f,WAAG,mBACN,GAAG6f,KAAKpD,QAAQr7B,kDAAkDkoB,WAE9D,IAAIngB,SAAS8yB,IACjB4D,KAAK8D,KAAK/gB,GAAG,OAAQmhB,I,MACfA,IAAQza,IACF,QAAR,EAAAuW,KAAK7f,WAAG,mBAAG,mBAAmBsJ,YAC9B2S,OAAI7hC,G,GAEN,KAIN,IACE,aAAa4O,G,SAEb62B,KAAKmE,eAAe1a,E,sRAIhB,cAAA0a,CAAe1a,GACrBuW,KAAKpD,QAAUoD,KAAKpD,QAAQj7B,QAAQi7B,GAAYA,IAAYnT,IAC5DuW,KAAKiE,gBACP,CAEQ,cAAAA,GACN,GAAIjE,KAAKpD,QAAQr7B,OAASy+B,KAAK4D,uBAAwB,CACrD,MAAMQ,EAAQpE,KAAK6D,OAAO/G,QACb,MAATsH,GACFpE,KAAKqE,IAAID,E,CAGf,CAEQ,GAAAC,CAAI5a,GACVuW,KAAKpD,QAAQhrB,KAAK6X,GAClBuW,KAAK8D,KAAK5C,KAAK,MAAOzX,EACxB,ECnCK,SAAS6a,EACdC,GAEA,IAAIC,EACAC,EACJ,MAAMC,EAAiB,KACrB,MAAMpxB,EAAgBixB,IAKtB,OAJAE,EAAcnxB,EAAcuC,MAC1B,IAAO4uB,OAAclqC,IACrB,IAAOkqC,OAAclqC,IAEhB+Y,CAAa,EAEhBqxB,EAAW,KACfH,OAAgBjqC,EACTmqC,KAWT,MAAO,IACc,MAAfD,EACKC,IAXc,MACvB,GAAqB,MAAjBF,EAAuB,CACzB,GAAmB,MAAfC,EACF,MAAM,IAAIlrC,MAAM,iCAElBirC,EAAgBC,EAAY5uB,KAAK8uB,EAAUA,E,CAE7C,OAAOH,CAAa,EAMXI,EAGb,CAmGO,SAASC,EACdnf,GAEA,OAAQA,EAAW3I,MACjB,KAAK,EAAA0I,eAAeE,mBAClB,MAAO,CAAC,eAEV,KAAK,EAAAF,eAAeG,YAClB,MAAO,CAAC,QAEV,KAAK,EAAAH,eAAeI,aAClB,MAAO,CAAC,SAEV,KAAK,EAAAJ,eAAeK,UAClB,MAAO,CAAC,QAAS,QAASJ,EAAWK,MAEvC,QACE,MAAM,IAAIxsB,MAAM,gCAAkCmsB,EAAW3I,MAEnE,C,0SC9IO,MAID+nB,EAA2B,SA0C1B,MAAMC,EAoCJ,YAAAC,CAAa5a,GAClB4V,KAAKiF,YAAYrzB,KAAKwY,EACxB,CAeA,WAAA5wB,CACS0rC,EACAC,EACAjtC,GAFA,KAAAgtC,KAAAA,EACA,KAAAC,SAAAA,EACA,KAAAjtC,OAAAA,EAvDF,KAAAktC,kCAAoC,oBAEnC,KAAAC,oBAA6C9qC,EAC7C,KAAA+qC,mBAAuD,KACvD,KAAAC,gBAAyC,KAEzC,KAAAC,sBAAwB,IAAInF,EAI5B,KAAAoF,0BAA4B,IAAIpF,EAIhC,KAAAqF,8BAAgC,IAAIrF,EAKpC,KAAAsF,oCAAsC,IAAItF,EAI1C,KAAAuF,uCAAyC,IAAIvF,EAK7C,KAAA4E,YAAiC,CACvC,IAAMjF,KAAKwF,sBAAsBrE,qBACjC,IAAMnB,KAAKyF,0BAA0BtE,qBACrC,IAAMnB,KAAK0F,8BAA8BvE,qBACzC,IAAMnB,KAAK2F,oCAAoCxE,qBAC/C,IAAMnB,KAAK4F,uCAAuCzE,sBAQ5C,KAAA0E,iBAAmB,IAAI5C,EAGvB,KAAA6C,+BAAiC,EACjC,KAAAC,oBAAiD,CACvD,EAAAC,gCACA,QACAzrC,GA8IF,KAAA0rC,wBAAyB,IAAAC,UACvB5B,GAAmB,IAAY,kC,QAC7BtE,KAAK9nC,OAAOgtC,KAAK,gCAEjB,MAAMiB,EAA+C,MAAvBnG,KAAKqF,eACnC,IAAKc,WC5RY9uB,ED8Rb,SAAU2oB,KAAKkF,KAAKkB,OAAQ,gBC7R7B,aACJtvB,KAAKO,GACLxB,MAAK,KAAM,IACX7c,OAAOE,IACN,GAAmB,WAAfA,EAAMqe,KACR,OAAO,EAEP,MAAMre,C,MD+RJ,YALA8mC,KAAK9nC,OAAOgtC,KACV,kCACEiB,EAAwB,oBAAsB,sBCpSrD,IAAgB9uB,ED2SU,MAAvB2oB,KAAKqF,iBAEPrF,KAAKqF,eAAiB,CAAExiC,MAAO,WAC/Bm9B,KAAKwF,sBAAsBtE,KAAK,SAAUlB,KAAKqF,iBAMjD,MAAMgB,EAAsBv1B,KAAKC,MACjC,IAAIQ,EACJ,IACE,MAAMiR,QAAawd,KAAKS,WAAW,CAAC,gBAAiB,WACrDlvB,EAASnY,KAAKq1B,MAAMjM,EAAKK,O,CACzB,MAAO5pB,GAKP,OAJA+mC,KAAK9nC,OAAOgB,MAAM,wCAAwCD,KAE1D+mC,KAAKqF,oBAAiB9qC,OACtBylC,KAAKwF,sBAAsBtE,KAAK,SAAUlB,KAAKqF,e,CAGjD,MAAM5gC,QAAmB,aACtByU,SAAS,SAAU8mB,KAAKkF,KAAKkB,OAAQ,eAAgB,cACrDvwB,MACEoL,IACC,MAAMqlB,EAAiBrlB,EAAS+B,WAChC,OAAOsjB,EAAe1uB,WAAW,eAC7B0uB,EAAejwB,MAAM,IAAsBkwB,eAC3ChsC,CAAS,IAEf,KAAe,IAgBnB,GAbAylC,KAAKqF,eAgtBX,SACEmB,EACA/hC,EACAgiC,EACAJ,GAEA,MAAMK,EAAkBD,EACxB,KAAKC,aAAe,EAAfA,EAAiBC,aAAcliC,EAClC,OAGF,MAAMmiC,EAAeF,EAAgBjvB,MAAM9V,QACxC0V,GAAyB,eAAhBA,EAAK/P,SAEXq/B,EAA4B,CAChC9jC,MAAO,SACP4B,aACAgT,MAAO,GACP4uB,sBACAQ,wBAAyB/1B,KAAKC,OAEhC,GAAgC,OAA5By1B,aAAiB,EAAjBA,EAAmB/uB,QAAiB+uB,EAAkB/uB,MAAMlW,OAAS,EAAG,CAE1E,MAAMulC,EAAiB,IAAIne,IACzBie,EAAaxzB,KAAK2zB,GAAaA,EAASzqC,QAE1CqqC,EAAUlvB,MAAQ+uB,EAAkB/uB,MAAMrE,KAAK2zB,GAC7CD,EAAehe,IAAIie,EAASzqC,MACxB,CAAEA,KAAMyqC,EAASzqC,KAAMgL,OAAQ,cAG/B,CAAEhL,KAAMyqC,EAASzqC,KAAMgL,OAAQ,a,MAGrCq/B,EAAUlvB,MAAQmvB,EAAaxzB,KAAK2zB,IAAa,CAC/CzqC,KAAMyqC,EAASzqC,KACfgL,OAAQ,iBAIZ,OAAOq/B,CACT,CAzvB4BK,CACpBhH,KAAKqF,eACL5gC,EACA8M,EACA80B,GAEFrG,KAAK9nC,OAAOgtC,KACV,QAAQlF,KAAKqF,eAAiB,KAAO,8BACrC,CACEA,eAAgBrF,KAAKqF,eACrB5tB,MAA0B,QAAnB,EAAAuoB,KAAKqF,sBAAc,eAAE5tB,QAG5BuoB,KAAKqF,eAAgB,CACvB,MAAM4B,EAAoB,GACpBC,GAA+C,QAAzB,EAAAlH,KAAKqF,eAAe5tB,aAAK,QAAI,IACtD9V,QAAQolC,GAAiC,eAApBA,EAASz/B,SAC9B8L,KAAK2zB,GAAaA,EAASzqC,OAC3B+Z,MAAM,EAAG4wB,GACZjH,KAAK9nC,OAAOgtC,KAAK,mCAAoC,CACnDzgC,aACAyiC,sB,CAGJlH,KAAKwF,sBAAsBtE,KAAK,SAAUlB,KAAKqF,eACjD,MACA,KAuMF,KAAA8B,yBAA0B,IAAAjB,UACxB5B,GAAmB,IAAY,kCAC7B,MAAM+B,EAAsBv1B,KAAKC,MACjC,IACEivB,KAAK4F,uCAAuC1E,KAAK,SACjD,MAAM1e,QAAawd,KAAKS,WAAW,CAAC,gBAAiB,WAC/ChpB,EAASre,KAAKq1B,MAAMjM,EAAKK,QAAmBpL,MAAMrE,KACrDg0B,IAAW,OAAC,OAAD,wBACPA,GAAM,CACT9qC,MC5hByBgD,ED4hBE8nC,EAAO9qC,KC3hBxCgD,EAAEsY,WAAW,SACRtY,EAAE+W,MAAM,GAEV/W,KAJF,IAA8BA,CD6hBzB,IAGJ0gC,KAAKsF,mBAAqB,CACxBe,sBACAQ,wBAAyB/1B,KAAKC,MAC9B0G,MAAO,CAAErZ,MAAOqZ,IAElBuoB,KAAKyF,0BAA0BvE,KAAK,SAAUlB,KAAKsF,mB,CACnD,MAAOrsC,GAEP,GADA+mC,KAAK9nC,OAAOgB,MAAM,yBAA0BD,GAwdtC,OADUE,EAtdGF,IAudQ,iBAANE,GAAkB,WAAYA,GAtd7CF,EAAIgqB,OAAOzJ,SAAS,qCAItB,YAHAwmB,KAAK9nC,OAAOgtC,KACV,6DAMNlF,KAAKyF,0BAA0BvE,KAAK,SAAU,CAC5CmF,sBACAQ,wBAAyB/1B,KAAKC,MAC9B0G,MAAO,CACLve,MAAOD,aAAeM,MAAQN,EAAM,IAAIM,MAAMN,K,CAyc1D,IAAwBE,CArcpB,MACA,KA2CF,KAAAkuC,sBAAuB,IAAAnB,UACrB5B,GAAmB,IAAY,kCAC7B,MAAM+B,EAAsBv1B,KAAKC,MACjC,IACEivB,KAAK2F,oCAAoCzE,KAAK,SAC9C,MAAM1e,QAAawd,KAAKS,WAAW,CAAC,gBAAiB,QAC/C6G,EAyVP,SACLpvC,EACAqZ,GAEA,IAAIg2B,EAAiC,GACrC,IACEA,EAAcnuC,KAAKq1B,MAAMld,E,CACzB,MAAOtY,GACPf,EAAOgB,MAAM,8BAA+BD,E,CAE9C,OAAOsuC,CACT,CApWwBC,CAAsBxH,KAAK9nC,OAAQsqB,EAAKK,OAAOzJ,QAC/D,GAAuB,IAAnBkuB,EAAQ/lC,OACV,MAAM,IAAIhI,MAAM,EAAAq1B,mBAAmB6Y,kBAErCzH,KAAKuF,gBAAkB,CACrBc,sBACAQ,wBAAyB/1B,KAAKC,MAC9Bu2B,QAAS,CAAElpC,MAAOkpC,IAEpBtH,KAAK0F,8BAA8BxE,KAAK,SAAUlB,KAAKuF,gB,CACvD,MAAOtsC,GACP+mC,KAAK9nC,OAAOgB,MAAM,2BAA4BD,GAC9C+mC,KAAK0F,8BAA8BxE,KAAK,SAAU,CAChDmF,sBACAQ,wBAAyB/1B,KAAKC,MAC9Bu2B,QAAS,CACPpuC,MAAOD,aAAeM,MAAQN,EAAM,IAAIM,MAAMN,K,CAItD,MACA,KA0BM,KAAAyuC,WAAa,IAAI/D,EAxoBQ,GAwoBiCxqC,GAChE6mC,KAAK9nC,OAAOgtC,KAAK,QAAS/rC,KAniB1B,MAAMie,EAAS8tB,EAAK1E,iBACA,WAAhBppB,EAAO2F,OACTijB,KAAKC,mBAAqB,IAAIM,EAC5BnpB,EACA4oB,KAAKS,WAAWkH,KAAK3H,QAIzBA,KAAK4H,wBAA0BzC,EAAS0C,gBACtC3C,EACAhtC,GACC44B,IACc,wBAATA,GACGkP,KAAKmH,0BACLnH,KAAKiG,0BACQ,aAATnV,EACJkP,KAAKqH,uBACQ,oBAATvW,EACJkP,KAAKiG,yBACQ,eAATnV,IACJkP,KAAKmH,0BACLnH,KAAKqH,uBACLrH,KAAKiG,yB,IAKhBjG,KAAK8H,eAAiB,IAAIjG,EACxB7B,KAAK9nC,QACL,CACEqxB,EACAtgB,EACAq5B,EACAnf,K,UAEA,GAAIoG,EAAUpgB,SAAW,EAAAulB,cAAcqZ,SACrC,OAAO/H,KAAKgI,aACVze,EACA+Y,EACAr5B,EACAka,GAEG,GAAIoG,EAAUpgB,SAAW,EAAAulB,cAAcuZ,mBAAoB,CAChE,MAAMC,EAAiBlI,KAAKmI,uBAC1Bl/B,EACAsgB,EAAUpX,MAGZ,OAAmD,OAAxB,QAAvB,EAAA6tB,KAAKC,0BAAkB,eAAEoB,oBACpB/3B,QAAQiZ,OACbhpB,MACE,kEAWH,QALD,EAAuB,QAAvB,EAAAymC,KAAKC,0BAAkB,eAAEoB,mBACvBp4B,EACAi/B,EACA5F,EACAnf,UACD,QAAI7Z,QAAQwK,S,CAGjB,OAAOxK,QAAQwK,SAAS,IAK5B,MAAMs0B,EAAY,IAAIzf,IAChB0f,EAAerI,KAAKsI,mCAAmCC,I,MAC3D,GAAIA,EAAQjB,QAAQlpC,MAAO,CACzB,MAAMoqC,EAAW,GACXC,EAAUF,EAAQjB,QAAQlpC,MAC7BuD,QAAQ6J,GAAWA,EAAOglB,KAC1Bpd,KAAK5H,IAAU,MAAC,OAAS,QAAT,EAAAA,EAAOglB,UAAE,eAAE5xB,MAAM,IACpC,IAAK,MAAM8pC,KAAUD,EACdL,EAAUtf,IAAI4f,KACjBF,EAAS52B,KAAK82B,GACdN,EAAU7N,IAAImO,IAGdF,EAASjnC,OAAS,IACQ,QAAvB,EAAAy+B,KAAKC,0BAAkB,SAAEe,0BAG5BhB,KAAK2I,iB,KAOR3I,KAAKiG,yBAEVjG,KAAKiF,YAAYrzB,MAAK,IAAMy2B,EAAavH,WAC3C,CAEO,4BAAA8H,GAOL,OALE5I,KAAK8F,+BAAiC,EACtC9F,KAAK+F,oBAAoBxkC,QAEzBy+B,KAAK8F,iCAEA9F,KAAK+F,oBAAoB/F,KAAK8F,+BACvC,CAKO,OAAAhF,G,QACLd,KAAKiF,YAAY7uB,SAAS0qB,GAAYA,MACf,QAAvB,EAAAd,KAAKC,0BAAkB,SAAEa,UACG,QAA5B,EAAAd,KAAK4H,+BAAuB,mBAC9B,CAEO,qBAAAiB,CACLze,GASA,OAPA4V,KAAKwF,sBAAsBziB,GAAG,SAAUqH,GAEpC4V,KAAKqF,gBAEPjb,EAAS4V,KAAKqF,gBAGT,CACLvE,QAAS,IAAMd,KAAKwF,sBAAsBzE,IAAI,SAAU3W,GAE5D,CAoFO,iBAAA0e,GACL,OAAO9I,KAAKqF,cACd,CAOA,kBAAa0D,CACX1lB,EACAnrB,EACA+Q,G,yCAEA,MAAM+/B,QAmcV,SACE3lB,EACAnrB,EACA+Q,G,yCAEA,IACE,aACQw3B,EAAW,CACfpd,UACAlR,KAAM,CAAC,aACPja,SACA+Q,SAEF4Z,M,CACF,MAAO3pB,GAEP,MADAhB,EAAOgB,MAAM,gCAAgC+P,IAAO/P,GAC9CA,C,CAEV,G,CArd8B+vC,CAAY5lB,EAASnrB,EAAQ+Q,GAAKjQ,OACzDC,GAAeA,IAElB,GAAI+vC,aAAuBzvC,MACzB,MAAO,CAAEwjB,KAAM,iBAAkBsG,QAASA,QAAAA,EAAW,MAEvD,GACkB,UAAhB2lB,GACgB,QAAhBA,GACA,OAAUA,EAAalE,GAEvB,MAAO,CACL/nB,KAAM,iBACNsG,QAASA,QAAAA,EAAW,KACpB6lB,aAAcF,EACdG,gBAAiBrE,GAIrB,MAAOvlC,EAAS6pC,EAAaC,EAAqBC,SAC1ChgC,QAAQC,IAAI,CAChBggC,EAAgBlmB,EAASnrB,EAAQ+Q,GACjCugC,EAAanmB,EAASnrB,EAAQ+Q,GAC9BwgC,EAAUpmB,EAASnrB,EAAQ+Q,EAAK,wBAAwB4M,MACrDzX,IAAS,MAAC,OAA6B,QAA7B,EAACA,SAA4B,QAAK,OAAiB,IAEhEqrC,EAAUpmB,EAASnrB,EAAQ+Q,EAAK,0BAA0B4M,MACvDzX,IAAS,MAAC,OAA8B,QAA9B,EAACA,SAA6B,QAAK,OAAiB,MAGrE,GAAmB,MAAfgrC,EACF,MAAO,CAAErsB,KAAM,oBAAqB9T,OAGtC,IAAIu3B,EACJ,QAAkC,IAAvB4I,EAAYhyB,OACrBopB,EAAmB,CAAEzjB,KAAM,YACtB,CACL,MAAM,MAAEvX,EAAK,KAAE3M,EAAI,SAAEuoC,GAAagI,EAAYhyB,OAC9CopB,EAAmB,CACjBzjB,KAAM,SACNvX,QACAjB,KAAM1L,EACNuoC,W,CAIJ,MAAM37B,EAAmB,CACvBsX,KAAM,UACNsG,UACA+iB,OAAQgD,EAAYM,OACpBv7B,SAAUi7B,EAAYO,QACtBnJ,mBACA6I,sBACAC,cACA/pC,UACAqqC,YAAaR,EAAYQ,aAG3B,OADA1xC,EAAOgtC,KAAK,cAAez/B,GACpBA,CACT,G,CAOM,mBAAAy8B,CACJ3Y,EACA4Y,EACAC,EACAn5B,G,+CAEM+2B,KAAK8H,eAAe5F,oBACxB3Y,EACA4Y,EACAC,EACAn5B,EAEJ,G,CAKA,oBAAA4gC,CAAqB9G,GACnB/C,KAAK8H,eAAehF,sBAAsBC,EAC5C,CAKQ,sBAAAoF,CACNl/B,EACAkJ,GAEA,MAAMhE,GAAW,IAAAqxB,QAAOQ,KAAKkF,KAAK/2B,UAElC,OAAOgE,EAAKiB,KAAKwV,IACf,GAAmB,iBAARA,EACT,OAAQA,EAAI7L,MACV,IAAK,qBACH,OAAO,cACL,aAAc9T,EAAK,SAAUkF,EAAUya,EAAItsB,QAG/C,IAAK,qBACH,MAAO,kBAAkBssB,EAAI+F,WAGnC,OAAO/F,CAAG,GAEd,CAKc,YAAAof,CACZze,EAKA4Y,EACAl5B,EACAka,G,iDAEA,MAAM2mB,EAAkB9J,KAAKmI,uBAAuBl/B,EAAKsgB,EAAUpX,OAC7D,MAAEuQ,GAAU6G,GACZ,QAAElG,EAAO,KAAElR,EAAI,QAAEtW,GAAYkuC,EACjC/J,KAAKkF,KAAK7hB,QACVymB,EACA7gC,EACAyZ,EAAQ,CAAElK,MAAOkK,QAAUnoB,GAG7BylC,KAAK9nC,OAAOioB,IAAI,kBAAmBkD,EAASymB,EAAgBhrC,KAAK,MAEjE,MAAMkrC,EAAY,IAAM3mB,EAASlR,EAAM,OAAF,wBAChCtW,GAAO,CACVgnB,OAAQ,OACRI,OAAQ,UAKVkf,EAAW,SACK,QAAhB,EAAA6H,EAAUnnB,cAAM,SAAEE,GAAG,QAAS1mB,IAC5B8lC,EAAW,SAAU9lC,EAAK2mB,WAAW,IAEvB,QAAhB,EAAAgnB,EAAU/mB,cAAM,SAAEF,GAAG,QAAS1mB,IAC5B8lC,EAAW,SAAU9lC,EAAK2mB,WAAW,IAElCgnB,EAAUjnB,GAAG,QAASnP,IACzBuuB,EAAW,OAAQvuB,GAAY,EAAE,IAEnCuP,EAAO8mB,iBAAiB,SAAS,KAC/BjK,KAAK9nC,OAAOioB,IAAI,mBAAoBkD,EAASymB,EAAgBhrC,KAAK,KAAK,IDzctE,SACLorC,EACA/mB,GAEAA,EAAO8mB,iBAAiB,SAAS,KACV,SAAjB,eAIFC,EAAMC,KAAK,UAAW,CAAEC,uBAAuB,KAI/CF,EAAMC,KAAK,WAGXD,EAAMC,KAAK,UAAW,CAAEC,sBAAuB,M,GAGrD,CCwbIC,CAA2BL,EAAW7mB,SAChC6mB,C,IAGR,YAAAM,CAAahH,EAAczgC,GACzBm9B,KAAK6F,iBAAiBxC,SAASC,EAAMzgC,EACvC,CAGA,qBAAA0nC,GACE,OAAOvK,KAAKsF,kBACd,CAEA,6BAAAkF,CACEpgB,GAGA,OADA4V,KAAKyF,0BAA0B1iB,GAAG,SAAUqH,GACrC,CACL0W,QAAS,KACPd,KAAKyF,0BAA0B1E,IAAI,SAAU3W,EAAS,EAG5D,CA6CA,kBAAAqgB,GACE,OAAOzK,KAAKuF,eACd,CAEA,iCAAA+C,CACEle,GAGA,OADA4V,KAAK0F,8BAA8B3iB,GAAG,SAAUqH,GACzC,CACL0W,QAAS,KACPd,KAAK0F,8BAA8B3E,IAAI,SAAU3W,EAAS,EAGhE,CAEA,uCAAAsgB,CACEtgB,GAEA,MAAMugB,EAAU,IAAMvgB,GAAS,GAE/B,OADA4V,KAAK2F,oCAAoC5iB,GAAG,QAAS4nB,GAC9C,CACL7J,QAAS,KACPd,KAAK2F,oCAAoC5E,IAAI,QAAS4J,EAAQ,EAGpE,CAEA,0CAAAC,CACExgB,GAEA,MAAMugB,EAAU,IAAMvgB,GAAS,GAE/B,OADA4V,KAAK4F,uCAAuC7iB,GAAG,QAAS4nB,GACjD,CACL7J,QAAS,KACPd,KAAK4F,uCAAuC7E,IAAI,QAAS4J,EAAQ,EAGvE,CAiCA,qBAAAE,CAAsBzgB,G,QACpB,IAAI0gB,EAAgD,QAAnC,EAAoB,QAApB,EAAA9K,KAAKuF,uBAAe,eAAE+B,QAAQlpC,aAAK,eAAEiB,MACnDmM,GAAWA,EAAOu/B,SAEH,MAAdD,GACF1gB,EAAS0gB,GAEX,MAAME,EAAU3uC,I,MACd,MAAM6e,EAA6B,QAAnB,EAAA7e,aAAI,EAAJA,EAAMirC,QAAQlpC,aAAK,eAAEiB,MAAMmM,GAAWA,EAAOu/B,SAC9C,MAAX7vB,GAAmBA,EAAQtI,UAAWk4B,aAAU,EAAVA,EAAYl4B,UACpDwX,EAASlP,GACT4vB,EAAa5vB,E,EAIjB,OADA8kB,KAAK0F,8BAA8B3iB,GAAG,SAAUioB,GACzC,CACLlK,QAAS,KACPd,KAAK0F,8BAA8B3E,IAAI,SAAUiK,EAAO,EAG9D,CAMO,WAAAC,CACL5zB,EACAqO,GAEA,MAAMwlB,EAAe,aAAclL,KAAKkF,KAAK/2B,SAAUkJ,GAEvD,OAAO2oB,KAAK0H,WAAW1D,YAAW,IAAY,kCAG5C,aACQhE,KAAKS,WACT,CACE,gBACA,kBACGT,KAAKmL,QAAQzlB,EAAYwlB,SAErB3wC,EARG,CAAE6wC,mBAAmB,KAWnCvoB,MACJ,KACF,CAEO,GAAAwoB,CAAIh0B,EAAoB5F,GAC7B,MAAMy5B,EAAe,aAAclL,KAAKkF,KAAK/2B,SAAUkJ,GAEvD,OAAO2oB,KAAK0H,WAAW1D,YAAW,IAAY,kCAG5C,aACQhE,KAAKS,WACT,CAAC,gBAAiB,MAAOhvB,EAAKy5B,QACrB3wC,EAJG,CAAE6wC,mBAAmB,KAOnCvoB,MACJ,KACF,CAEQ,OAAAsoB,CACNzlB,EACArO,GAEA,OAAQqO,EAAW3I,MACjB,KAAK,EAAA0I,eAAeE,mBAClB,MAAO,CAAC,cAAetO,GAEzB,KAAK,EAAAoO,eAAeG,YAClB,MAAO,CAAC,OAAQvO,GAElB,KAAK,EAAAoO,eAAeI,aAClB,MAAO,CAAC,QAASxO,GAEnB,KAAK,EAAAoO,eAAeK,UAClB,MAAO,CAAC,QAASzO,EAAM,QAASqO,EAAWK,MAEjD,CAEO,aAAA4iB,G,UACL,OAGqB,QAFnB,EACiB,QADjB,EAAyB,QAAzB,EAAA3I,KAAKyK,4BAAoB,eACrBnD,QAAQlpC,aAAK,eAAEgV,KAAK5H,IAAU,MAAC,OAAS,QAAT,EAAAA,EAAOglB,UAAE,eAAE5xB,MAAM,IACjD+C,OAAO,EAAA2pC,iBAAS,QAAI,EAE3B,CAEO,UAAA7K,CACLtuB,EACAlJ,EACApN,GAEA,OAAO4kC,EAAW,CAChBpd,QAAS2c,KAAKkF,KAAK7hB,QACnBlR,OACAja,OAAQ8nC,KAAK9nC,OACb+Q,KAAK,IAAAu2B,QAAOv2B,QAAAA,EAAO+2B,KAAKkF,KAAK/2B,UAC7BtS,WAEJ,CAEO,SAAA4tC,CAAU8B,GACf,OAAO9B,EACLzJ,KAAKkF,KAAK7hB,QACV2c,KAAK9nC,OACL8nC,KAAKkF,KAAK/2B,SACVo9B,EAEJ,CACO,SAAAC,CACLC,EACAF,EACAG,GAEA,OAgIJ,UAAyB,QACvBroB,EAAO,OACPnrB,EAAM,IACN+Q,EAAG,MACHwiC,EAAK,WACLF,EAAU,YACVG,I,+CASMjL,EAAW,CACfpd,UACAlR,KAAM,CACJ,gBACA,aACA,UACAs5B,EACAF,EACAG,GAEFxzC,SACA+Q,OAEJ,G,CA5JWuiC,CAAU,CACfnoB,QAAS2c,KAAKkF,KAAK7hB,QACnBnrB,OAAQ8nC,KAAK9nC,OACb+Q,IAAK+2B,KAAKkF,KAAK/2B,SACfs9B,QACAF,aACAG,eAEJ,EAGK,SAASjL,GACdpd,QAASsoB,EACTx5B,KAAMy5B,EAAK,OACX1zC,EAAM,IACN+Q,EACApN,QAASgwC,IAQT,MAAM,QAAExoB,EAAO,KAAElR,EAAI,QAAEtW,GAAYkuC,EACjC4B,EACAC,EACA3iC,EACA4iC,GAMF,OAJI3zC,GACFA,EAAOioB,IAAI,gBAAiBkD,KAAYlR,EAAMtW,GAGzC,IAAMwnB,EAASlR,EAAMtW,EAC9B,CAsBA,SAAe2tC,EACbnmB,EACAnrB,EACA+Q,G,yCAEA,IACE,OAAO7P,KAAKq1B,aAEFgS,EAAW,CACfpd,UACAlR,KAAM,CAAC,gBAAiB,aACxBja,SACA+Q,SAEF4Z,O,CAEJ,MAAO3pB,GAEP,YADAhB,EAAOgB,MAAM,qCAAqC+P,IAAO/P,E,CAG7D,G,CAEA,SAAeqwC,EACblmB,EACAnrB,EACA+Q,G,yCAIA,IACE,OAAO7P,KAAKq1B,aAEFgS,EAAW,CACfpd,UACAlR,KAAM,CAAC,gBAAiB,WACxBja,SACA+Q,SAEF4Z,O,CAEJ,MAAO3pB,GAEP,OADAhB,EAAOgB,MAAM,wCAAwC+P,IAAO/P,GACrD,CACL4yC,OAAQ,4B,CAGd,G,CAEA,SAAerC,EACbpmB,EACAnrB,EACA+Q,EACAsiC,G,yCAEA,IACE,aACQ9K,EAAW,CACfpd,UACAlR,KAAM,CAAC,gBAAiB,SAAUo5B,GAClCrzC,SACA+Q,SAEF4Z,OAAOzJ,M,CACT,SAEA,M,CAEJ,G,CAkCA,SAAS2wB,EACP1mB,EACAuoB,EACA3iC,EACA4iC,GAMA,IAAI15B,EAAO,IAAIy5B,GAEU,UAArB1sC,QAAQimC,WAGVhzB,EAAOA,EAAKiB,KAAKwV,GAAQA,EAAIjT,QAAQ,QAAS,SAEhD,MAAM9Z,EAAU,OAAH,wBACRgwC,GAAQ,CACX1sC,IAAK,CACH4sC,KAAM,cACN3rC,YAAQ7F,EACRyxC,qBAAsB,OACtBC,mBAAoB,KAEtBhjC,QAYF,OARKoa,GAAWnkB,QAAQgtC,KAAK,GAAGt0B,WAAW,eACzCyL,EAAUnkB,QAAQgtC,KAAK,GACvB/5B,EAAO,CAAC,0DAA2DA,IACzDkR,IACVA,EAAU,MAIL,CAAEA,UAASlR,OAAMtW,UAC1B,C,0BE17BO,MAAMswC,EAAwC,CACnDC,aAAc,UACdvE,gBAAiB,CACfwE,EACAn0C,EACAo0C,KAEA,MAAM,SAAEn+B,EAAQ,OAAEi4B,GAAWiG,EAEvBE,EAAgBC,EAASC,MAAMrG,EAAQ,CAAEn9B,IAAKm9B,IACpDmG,EAAcxpB,GAAG,SAAS,KAExBupB,EAAe,aAAa,IAE9BC,EAAcxpB,GAAG,OAAO,CAAC2pB,EAAQpwC,KAC3BA,EAAKsb,WAAW,iBAClB00B,EAAe,oBAEbhwC,EAAKsb,WAAW,UAAYtb,EAAKsb,WAAW,UAC9C00B,EAAe,wBAGfhwC,EAAKsb,WAAW,eAChBtb,EAAKsb,WAAW,yBAChBtb,EAAKsb,WAAW,UAEhB00B,EAAe,W,IAInB,MAAMK,EAAiB,aAAcx+B,EAAUi4B,GAEzCwG,EAAkBJ,EAASC,MAAMt+B,EAAU,CAC/ClF,IAAKkF,EACL0+B,QAAS,GAAGF,SAKd,OAHAC,EAAgB7pB,GAAG,OAAO,KACxBupB,EAAe,sBAAsB,IAEhC,KACLM,EACGE,QACA9zC,OAAM,IACLd,EAAOgB,MACL,iDAAiDiV,OAGvDo+B,EACGO,QACA9zC,OAAM,IACLd,EAAOgB,MAAM,+CAA+CktC,MAC7D,CACJ,EAEH2G,wBAAyB,CACvBxoC,EACA9K,KAEA,OAAQA,EAAQsjB,MACd,IAAK,oBAAqB,CACxB,MAAMzgB,EAAqB,UACzB,IAAAkjC,QAAOj7B,aAAI,EAAJA,EAAM2gC,KAAK/2B,UAClB1U,EAAQ6C,MAEV,IAAI+mB,EACJ,GAAe,MAAXA,EAIF,OAAQnkB,QAAQimC,UACd,IAAK,SACH9hB,EAAU,gBACV,MAEF,IAAK,QACHA,EAAU,cACV,MAEF,IAAK,QACHA,EAAU,WAMhB,GAAIA,EAAS,CAiBX9e,SAAAA,EAAMrM,OAAOioB,IAAI,YAAa7jB,GAE9B,MAAMkmB,GAAO,IAAAwqB,OAAM3pB,EAAS,CAAC/mB,GAAO,CAClC2wC,UAAU,EACVv6B,MAAO,SACP+P,aAAa,EACbyqB,0BAA0B,IAG5B1qB,EAAKO,GAAG,SAAU9pB,IAChBsL,SAAAA,EAAMrM,OAAOioB,IAAI,iBAAkB7jB,EAAMrD,EAAI,IAE/CupB,EAAK2qB,O,CAEP,K,uCCjIR,MAAMC,GACJ,WAAA5zC,CACSs1B,EACCue,GADD,KAAAve,QAAAA,EACC,KAAAue,YAAAA,EAUV,KAAAC,UAAW,CATR,CACI,KAAAH,GACAnN,KAAKsN,WACRtN,KAAKsN,UAAW,EAChBtN,KAAKqN,cAET,EAMF,MAAME,GACJ,WAAA/zC,CAAmB4E,GAAA,KAAAA,MAAAA,EACX,KAAAovC,WAAa,EAEd,KAAAC,YAAa,CAHU,CAIvB,GAAAh8B,GACLuuB,KAAKwN,YACP,CACO,qBAAAE,GACL,OAAO1N,KAAKwN,UACd,CACO,OAAA1M,GACLd,KAAKwN,aACAxN,KAAKyN,YAAkC,IAApBzN,KAAKwN,aAC3BxN,KAAKyN,YAAa,EAClBzN,KAAK5hC,MAAM0iC,UAEf,EAgKK,MAEM6M,GAAkB,IAvJ/B,MAEE,WAAAn0C,CAAoBo0C,EAAiB7I,GAAjB,KAAA6I,eAAAA,EAMZ,KAAAC,YAAc,IAAIt3B,IAClB,KAAAu3B,mBAAqB,IAAIzN,CAPiB,CAS1C,MAAArE,CAAO+R,GACb,IAAK,MAAMxpC,KAAQy7B,KAAK6N,YAAYzlB,SAClC,IACE2lB,IAAaxpC,EAAKnG,MAAM8mC,KAAK/2B,UAC7B4/B,EAASn2B,YF7DqBtY,EE6DYiF,EAAKnG,MAAM8mC,KAAK/2B,UF5D1D6/B,SAAS,SACN1uC,EAEFA,EAAI,YE2DAiF,EAAKkpC,WACR,OAAOlpC,EFhEV,IAA+BjF,CEqEpC,CAMA,WAAA2uC,CACEC,EACA/I,EACAjtC,EACA+Q,GAIA,MAAMklC,EAAQnO,KAAKhE,OAAO/yB,GAC1B,GAAIklC,EAEF,OADAA,EAAM18B,MACC,IAAI27B,GAAwB9jC,QAAQwK,QAAQq6B,EAAM/vC,QAAQ,IAC/D+vC,EAAMrN,YAOV,IAAIrvB,EA8DJ,OATAA,EAAM,IAAI27B,GApD+B,MAEpC,O,EAAA,K,OAAA,E,EAAA,YAKH,MAAMf,QAAiBrM,KAAK4N,eAAe7E,YAAYmF,EAAKh2C,EAAQ+Q,GAGpE,GAFA/Q,EAAOgtC,KAAK,WAAYmH,GAEF,YAAlBA,EAAStvB,KAEX,OAAOsvB,EAGT,GAAI56B,EAAI67B,SAGN,MAAO,CACLvwB,KAAM,eACN7jB,MAAO,IAAIK,MAAM,gCAOrB,MAAM60C,EAAapO,KAAKhE,OAAOqQ,EAASl+B,UACxC,GAAIigC,EAMF,OAFAA,EAAW38B,MACXA,EAAI48B,kBAAoBD,EACjBA,EAAWhwC,MAKpB,MAAMmG,EAAO,IAAIy7B,KAAK4N,eACpBvB,EACAlH,EACAjtC,GAGIo2C,EAAc,IAAIf,GAAWhpC,GAKnC,OAJA+pC,EAAY78B,MACZA,EAAI48B,kBAAoBC,EACxBtO,KAAK6N,YAAYl3B,IAAI01B,EAASl+B,SAAUmgC,GACxCtO,KAAK8N,mBAAmB5M,KAAK,UACtB38B,CACT,E,YAjDK,K,6QAiDJ,EAECgqC,IACA,KACM98B,EAAI48B,mBACN58B,EAAI48B,kBAAkBvN,UAExBrvB,EAAI07B,OAAO,IAGR17B,CACT,CAKO,uBAAA+8B,CAAwBlyC,GAC7B,MAAMmV,EAAMuuB,KAAKhE,OAAO1/B,GACxB,OAAOmV,aAAG,EAAHA,EAAKrT,KACd,CAEO,mBAAAqwC,CACLC,GAEA,MAAMhL,EAAW,KACfgL,EAAG,IAAI1O,KAAK6N,YAAYzlB,UAAUhV,KAAK3B,GAAQA,EAAIrT,QAAO,EAK5D,OAHA4hC,KAAK8N,mBAAmB/qB,GAAG,SAAU2gB,GAErCA,IACO,IAAM1D,KAAK8N,mBAAmB/M,IAAI,SAAU2C,EACrD,CAGA,UAAAiL,GACE3O,KAAK6N,YAAYz3B,SAAShY,GAAUA,EAAM0iC,YAC1Cd,KAAK6N,YAAc,IAAIt3B,IACvBypB,KAAK8N,mBAAmB3M,oBAC1B,CAEO,qBAAAyN,GACL,IAAIC,EAAY,EAChB,IAAK,MAAMtqC,KAAQy7B,KAAK6N,YAAYzlB,SAClCymB,GAAatqC,EAAKmpC,wBAEpB,OAAOmB,CACT,GC5IK,MAAMC,GAoBX,WAAAt1C,CACU2rC,EACA4J,EACA3M,EACAlqC,GAHA,KAAAitC,SAAAA,EACA,KAAA4J,WAAAA,EACA,KAAA3M,QAAAA,EACA,KAAAlqC,OAAAA,EAvBF,KAAA82C,gBAAkB,IAAIz4B,IAOtB,KAAA04B,gBAAqC,GACrC,KAAAC,cAAgB,IAAI34B,IAGpB,KAAA44B,eAAyC,GACzC,KAAAC,aAGwC,CAAEryB,KAAM,WAEhD,KAAAsyB,QAAS,IAAAC,YAUf,IAAIC,EACF,KACFvP,KAAKwP,iBAAmBxP,KAAK+O,WAAWU,qBACtC,CAACC,EAAKC,K,UACJ,GAAIA,EACF,OAAsC,MAAlCJ,OACe,QAAjB,EAAAR,EAAW72C,cAAM,SAAEgB,MACjB,wDAKJ8mC,KAAK4P,iCACHL,EACAG,QAEFH,EAAiC,OAE5B,GAAsC,MAAlCA,EAKT,OAJiB,QAAjB,EAAAR,EAAW72C,cAAM,SAAEgB,MACjB,0EAEFq2C,EAAiC,MAGnC,MAAM91C,EAAUi2C,EAAI1sB,SAAS,SACvB3mB,GAAO,IAAAwzC,uBAAsBp2C,GACnC,GAvER,SACEA,GAEA,OACa,MAAXA,GACmB,iBAAZA,IAC4D,IAAlEA,EAA6Cq2C,gBAElD,CA+DYC,CAAqB1zC,GAEvBkzC,EAAiClzC,OAOnC,GAA+B,YAA3B2jC,KAAKoP,aAAaryB,KACpBijB,KAAKmP,eAAev9B,KAAKvV,QAEzB,IACE2jC,KAAKgQ,sBAAsB3zC,E,CAC3B,MAAOpD,GACU,QAAjB,EAAA81C,EAAW72C,cAAM,SAAEgB,MACjB,oCACAmD,EACApD,E,IAMZ,CAEQ,YAAAg3C,CAAa/2C,GACnB8mC,KAAKkQ,yBAELlQ,KAAKoP,aAAe,CAAEryB,KAAM,QAAS7jB,SAErC8mC,KAAKoC,QAAQnZ,QAAQ8W,aAAQxlC,GAE7BylC,KAAKmQ,uBACP,CAEQ,cAAAC,CAAe7rC,EAAkB0E,GACvC+2B,KAAKkQ,yBAELlQ,KAAKoP,aAAe,CAAEryB,KAAM,OAAQxY,OAAM0E,OAE1C+2B,KAAKoC,QAAQnZ,QAAQ8W,QAAQx7B,GAEE,MAA3BA,EAAK07B,oBACPD,KAAKiP,gBAAgBr9B,KACnBrN,EAAK07B,mBAAmBU,uBAAuBviC,IAC7C4hC,KAAKqQ,YAAY,CAAEtzB,KAAM,uBAAwBuzB,UAAWlyC,GAAQ,KAK1E4hC,KAAKiP,gBAAgBr9B,KACnBrN,EAAKsmC,uBAAuBlkC,IAC1B,MAAM4pC,EAAahsC,EAAKkmC,qBAClB+F,EL9EP,SACLD,EACAt9B,GAEA,IAAIw9B,EACJ,GAAkB,MAAdF,EAAoB,CACtB,MAAMn9B,EAAM,IAAImD,IAAIg6B,EAAWn9B,KAAK5H,GAAW,CAACA,EAAOoH,OAAQpH,MAE/D,IAAIklC,EAAkCz9B,EACtC,KAAkB,MAAXy9B,GAAiB,CACtB,GAAIA,EAAQC,YAAa,CACvBF,EAAeC,EACf,K,CAEF,GAA0B,MAAtBA,EAAQE,QAAQ,GAClB,MAEFF,EAAUt9B,EAAIoD,IAAIk6B,EAAQE,QAAQ,G,EAItC,OAAOH,CACT,CKwDyBI,CAAmBN,aAAU,EAAVA,EAAYjJ,QAAQlpC,MAAOuI,GAC/Dq5B,KAAKoC,QAAQ9Y,MAAM,oBAAqB,CACtCqZ,OAAQ,CACN5c,KAAMpf,EAAKiM,OACXk+B,OAAQN,aAAQ,EAARA,EAAU59B,SAEpB,KAINotB,KAAKmQ,uBACP,CAEA,WAAAE,CAAY52C,GACLumC,KAAK+O,WAAWsB,aAAY,IAAAU,mBAAkBt3C,IAAUT,OAAM,KAEjEknB,QAAQ8wB,KAAK,mCAAmC,GAEpD,CAGA,mBAAAC,CAAoBC,QACS32C,IAAvBylC,KAAKmR,eACPnR,KAAKmR,cAAchE,QAErBnN,KAAK9nC,OAAOgtC,KAAK,8BAA8BgM,KAG/ClR,KAAKoP,aAAe,CAAEryB,KAAM,WAC5B,MAAMsG,EAAU2c,KAAK+O,WAAW1rB,QAChC2c,KAAKmR,cAAgBxD,GAAgBM,YACnC5qB,EACA2c,KAAKmF,SACLnF,KAAK9nC,OACLg5C,GAEGlR,KAAKmR,cAAcriB,QAAQjZ,MAAMu7B,IAChCA,aAAuBrM,EACzB/E,KAAKoQ,eAAegB,EAAaF,GAEjClR,KAAKiQ,aAAamB,E,GAGxB,CAEA,OAAAtQ,GACEd,KAAKwP,iBAAiB1O,UACtBd,KAAKkQ,8BAEsB31C,IAAvBylC,KAAKmR,eACPnR,KAAKmR,cAAchE,OAEvB,CAEQ,sBAAA+C,GACNlQ,KAAKiP,gBAAgB74B,SAASi7B,GAAeA,EAAWvQ,YACxDd,KAAKiP,gBAAkB,GAEvBjP,KAAKkP,cAAc94B,SAASk7B,GAAQA,EAAIxQ,YACxCd,KAAKkP,cAAchoB,OACrB,CAEQ,qBAAAipB,G,MACN,IAAK,MAAM12C,KAAWumC,KAAKmP,eACzB,IACEnP,KAAKgQ,sBAAsBv2C,E,CAC3B,MAAOR,GACe,QAAtB,EAAA+mC,KAAK+O,WAAW72C,cAAM,SAAEgB,MACtB,kCACAO,EACAR,E,CAIN+mC,KAAKmP,eAAiB,EACxB,CAEQ,gCAAAS,CACNn2C,EACAq9B,GAEA,OAAQr9B,EAAQsjB,MACd,IAAK,aAAc,CACjB,MAAM,GAAE0M,EAAE,SAAE6N,GAAa79B,EACnB83C,EACJ,KACF,GAAkB,MAAdA,EACF,OAEFvR,KAAKoC,QACF7Y,UAAU,cAAe,mBAAoB,CAAC,GAAG,IAChDgoB,GAAW,IAAA/R,QAAOQ,KAAK+O,WAAW72C,QAAS,CACzCo/B,WACAj7B,KAAMy6B,MAGTjhB,MAAMpQ,I,MACiB,QAAtB,EAAAu6B,KAAK+O,WAAW72C,cAAM,SAAEgtC,KACtB,4BACA5N,EACA7xB,GAEFu6B,KAAKqQ,YAAY,CACftzB,KAAM,mBACN0M,KACAhkB,OAAQ,CAAErH,MAAOqH,IACjB,IAEHzM,OAAOE,I,MACgB,QAAtB,EAAA8mC,KAAK+O,WAAW72C,cAAM,SAAEgtC,KACtB,uBACA5N,EACAp+B,GAEF8mC,KAAKqQ,YAAY,CACftzB,KAAM,mBACN0M,KACAhkB,OAAQ,CAAEvM,UACV,IAEN,K,EAGN,CAEQ,qBAAA82C,CAAsB3zC,GAC5B2jC,KAAKwR,6BAA6Bn1C,GAClC,MAAM,aAAE+yC,GAAiBpP,KACzB,OAAQoP,EAAaryB,MACnB,IAAK,OAAQ,CACX,MAAM,KAAExY,EAAI,IAAE0E,GAAQmmC,EACtBpP,KAAKyR,8BAA8Bp1C,EAAyBkI,EAAM0E,GAClE,K,CAKF,IAAK,UACL,IAAK,QACC5M,EAAK0gB,KAAKnF,WAAW,eAClBooB,KAAKmF,SAAS4H,6BACPxyC,EACV8B,GACC5C,GAAYumC,KAAKqQ,YAAY52C,KAC7BqnC,IACCd,KAAKiP,gBAAgBr9B,KAAK,CAAEkvB,WAAU,IAG1Cd,KAAK0R,gBAAgBr1C,IAI7B,CAKQ,4BAAAm1C,CAA6Bn1C,GAEnC,OADA2jC,KAAK9nC,OAAOgtC,KAAK,iBAAkB7oC,GAC3BA,EAAK0gB,MACX,IAAK,cAEe,SAAhB1gB,EAAKwH,OACD,IAAM,OAAQ,CAAC,UAAW,8BAC1B,IAAM,MAAO,CACX,UACA,KACA,uCAGLgS,MAAK,KACJmqB,KAAKqQ,YAAY,CACftzB,KAAM,mBACNtX,OAAQ,WACR,IAEHzM,OAAOC,IACN,MAAMC,EAAQD,aAAeM,MAAQN,EAAIQ,QAAU,gBACnDumC,KAAKqQ,YAAY,CACftzB,KAAM,mBACNtX,OAAQ,QACRvM,SACA,IAEN,MAGF,IAAK,YACH,IAAM,MACH2c,MAAY87B,IAAgB,O,EAAA,K,OAAA,E,EAAA,YAC3B,MAAMr1C,QAAa,IAAAs1C,UAASD,GAEtBE,EACJ,0DACF,GAAIv1C,EAAK0xC,SAAS6D,GAAqB,CACrC,MAAMC,EAAYx1C,EAAKqZ,QAAQk8B,EAAoB,WACnD,OAAO,IAAMC,EAAW,CACtB,UACA,KACA,qC,CAIJ,GAAIx1C,EAAK0xC,SAAS,YAAc1xC,EAAKkd,SAAS,UAE5C,aADM,IAAM,OAAQ,CAAC,WACd,IAAM,OAAQ,CAAC,UAAW,8BAGnC,MAAM,IAAIjgB,MAAM,yCAClB,E,YApB6B,K,6QAoB3B,IACDsc,MAAK,KACJmqB,KAAKqQ,YAAY,CACftzB,KAAM,kBACNtX,OAAQ,WACR,IAEHzM,OAAOC,IACN+mC,KAAKqQ,YAAY,CACftzB,KAAM,kBACNtX,OAAQ,QACRvM,MAAOD,aAAeM,MAAQN,EAAIQ,QAAU,iBAC5C,IAGN,MAGF,IAAK,mBAC0DgnC,EAC3D,CACEpd,QAAS2c,KAAK+O,WAAW1rB,SAAW,KACpClR,KAAM,CAAC,gBAAiB,gBACxBlJ,IAAK+2B,KAAK+O,WAAW9lC,MAGtB4M,MAAM0Z,IAAM,CACXnxB,MAAOhF,KAAKq1B,MAAMc,EAAE1M,YAErB7pB,OAAOE,I,MAEN,OADW,QAAX,EAAA8mC,KAAK9nC,cAAM,SAAEgB,MAAM,6BAA8BA,EAAM8pB,YAChD,CAAE9pB,QAAO,IAEH2c,MAAMxZ,IAChBA,EAAK+B,OACV4hC,KAAKqQ,YAAY,CACftzB,KAAM,qBACNtjB,QAAS4C,EAAK+B,OACd,IAEJ,MAGF,IAAK,uBACH4hC,KAAK9nC,OAAOgtC,KAAK,QACZzE,EAAW,CACdpd,QAAS2c,KAAK+O,WAAW1rB,SAAW,KACpClR,KAAM,CAAC,OAAQ,UAAW9V,EAAKutC,aAC/B3gC,IAAK+2B,KAAK+O,WAAW9lC,MAEpB4M,MAAM0Z,IACLyQ,KAAK9nC,OAAOgtC,KAAK,uBAAwB3V,GACrCA,EAAE3b,UACJosB,KAAKqQ,YAAY,CAAEtzB,KAAM,iCAE3BijB,KAAKqQ,YAAY,CACftzB,KAAM,yBACN,IAEH/jB,OAAM,KACLgnC,KAAKqQ,YAAY,CAAEtzB,KAAM,gCAAiC,IAG9D,MAGF,IAAK,QACHijB,KAAKoC,QAAQxY,UAAUvtB,EAAKA,MAC5B,MAGF,IAAK,YACH2jC,KAAKiR,oBAAoB50C,EAAK4M,KAC9B,MAGF,IAAK,kBACH,OAAQ+2B,KAAKoP,aAAaryB,MACxB,IAAK,OACHijB,KAAKqQ,YAAY,CACftzB,KAAM,WACNmoB,KAAMlF,KAAKoP,aAAa7qC,KAAK2gC,KAC7Bj8B,IAAK+2B,KAAKoP,aAAanmC,MAEzB,MAEF,IAAK,QACH+2B,KAAKqQ,YAAY,CACftzB,KAAM,WACNmoB,KAAMlF,KAAKoP,aAAal2C,QAM9B,MAGF,IAAK,yBACH8mC,KAAKqQ,YAAY,CACftzB,KAAM,kBACNqvB,aAAcpM,KAAKmF,SAASiH,aAC5BloC,QAAS87B,KAAK+O,WAAW7qC,UAmBjC,CAKQ,6BAAAutC,CACNp1C,EACAkI,EACA0E,G,cAEA,MAAM,OAAE/Q,GAAWqM,EACnB,OAAQlI,EAAK0gB,MACX,IAAK,YAAa,CAChB,MAAM,eAAEg1B,EAAc,KAAEjhB,GAASz0B,EACjC,OAAQy0B,GACN,IAAK,qBAAsB,CACzB,MAAMkhB,EACJvsC,IAEAu6B,KAAKqQ,YAAY,CACftzB,KAAM,qBACN+T,KAAM,qBACNihB,iBACA11C,KAAMoJ,GACN,EAGE6/B,EAAqB/gC,EAAKgmC,wBACN,MAAtBjF,GACF0M,EAAuB1M,GAEzB,MAAML,EAAiC,GAGvCA,EAAYrzB,KACVrN,EAAKimC,8BAA8BwH,IAGhCztC,EAAK4iC,0BAEVlC,EAAYrzB,KACVrN,EAAKqmC,4CAA2C,IAC9C5K,KAAKqQ,YAAY,CACftzB,KAAM,4CAIZijB,KAAKkP,cAAcv4B,IAAIo7B,EAAgB,CACrCjR,QAAS,KACPmE,EAAY7uB,SAAS67B,GAAMA,EAAEnR,WAAU,IAG3C,K,CAGF,IAAK,kBAAmB,CACtB,MAAMoR,EAAuBzsC,IAC3Bu6B,KAAKqQ,YAAY,CACftzB,KAAM,qBACN+T,KAAM,kBACNihB,iBACA11C,KAAMoJ,GACN,EAGE8/B,EAAkBhhC,EAAKkmC,qBACN,MAAnBlF,GACF2M,EAAoB3M,GAEtB,MAAMN,EAAiC,GAEvCA,EAAYrzB,KACVrN,EAAK+jC,kCAAkC4J,IAGpC3tC,EAAK8iC,uBAEVpC,EAAYrzB,KACVrN,EAAKmmC,yCAAwC,IAC3C1K,KAAKqQ,YAAY,CAAEtzB,KAAM,yCAI7BijB,KAAKkP,cAAcv4B,IAAIo7B,EAAgB,CACrCjR,QAAS,KACPmE,EAAY7uB,SAAS67B,GAAMA,EAAEnR,WAAU,IAG3C,K,CAGF,IAAK,iBAAkB,CACrB,MAAMqR,EACJxL,IAEA3G,KAAKqQ,YAAY,CACftzB,KAAM,qBACN+T,KAAM,iBACNihB,iBACA11C,KAAMsqC,GACN,EAGEtB,EAAiB9gC,EAAKukC,oBACN,MAAlBzD,GACF8M,EAAmB9M,GAErBrF,KAAKkP,cAAcv4B,IACjBo7B,EACAxtC,EAAKskC,sBAAsBsJ,IAE7B,K,EAGJ,K,CAGF,IAAK,cAAe,CAClB,MAAM9J,EAAerI,KAAKkP,cAAc14B,IAAIna,EAAK01C,gBACjD1J,SAAAA,EAAcvH,UACdd,KAAKkP,cAAc3yC,OAAOF,EAAK01C,gBAC/B,K,CAGF,IAAK,eAAgB,CACnB,MAAM,UAAExoB,GAAcltB,EACjBkI,EAAK29B,oBACR3Y,GACC6oB,IACCpS,KAAKqQ,YAAY,OAAD,QAAGtzB,KAAM,qBAAwBq1B,IAC3B,UAAlBA,EAASthB,MACXkP,KAAKoC,QAAQ9Y,MAAM,iBAAkB,CACnCqZ,OAAQ,CAAEpZ,UAAWA,EAAUmZ,iB,GAIrC1C,KAAKoC,QACLn5B,GAEF,K,CAGF,IAAK,wBAAyB,CAC5B,MAAM,YAAE85B,GAAgB1mC,EACxBkI,EAAKslC,qBAAqB9G,GAC1B,K,CAGF,IAAK,YACEx+B,EACFklC,UAAUptC,EAAKxD,MACfG,OAAM,KAAe,IACrB6c,MAAMzX,IACLlG,EAAOgtC,KAAK,aAAc7oC,EAAKxD,KAAMuF,GACrC4hC,KAAKqQ,YAAY,CAAEtzB,KAAM,YAAalkB,KAAMwD,EAAKxD,KAAMuF,SAAQ,IAEnE,MAGF,IAAK,yBACH4hC,KAAKqQ,YAAY,CACftzB,KAAM,yBACNlkB,KAAMwD,EAAKxD,KACXuF,MAAO4hC,KAAK+O,WAAWsD,8BAA8Bh2C,EAAKxD,QAE5D,MAGF,IAAK,mBAC0C0L,EAC1Ck8B,WAAW,CAAC,gBAAiB,iBAC7B5qB,MAAM0Z,IAAM,CAAGnxB,MAAOmxB,EAAE1M,WACxB7pB,OAAOE,IACNhB,SAAAA,EAAQgB,MAAM,8BAA+BA,EAAM8pB,YAC5C,CAAE9pB,YAEI2c,MAAMxZ,GACrB2jC,KAAKqQ,YAAY,CACftzB,KAAM,qBACNtjB,QAAS4C,EAAK+B,OAAS,OAG3B,MAGF,IAAK,qBACHlG,EAAOgtC,KAAK,sBACmC3gC,EAC5Ck8B,WAAW,CAAC,gBAAiB,mBAC7B5qB,MAAM0Z,IAAM,CAAGnxB,MAAOmxB,EAAE1M,WACxB7pB,OAAOE,IACNhB,SAAAA,EAAQgB,MAAM,gCAAiCA,EAAM8pB,YAC9C,CAAE9pB,YAEM2c,MAAMxZ,GACvB2jC,KAAKqQ,YAAY,CACftzB,KAAM,uBACNtjB,QAAS4C,EAAK+B,OAAS,OAG3B,MAGF,IAAK,kBAC8CmG,EAC9Ck8B,WAAW,CAAC,gBAAiB,eAC7B5qB,MAAM0Z,IAAM,CAAGnxB,MAAOhF,KAAKq1B,MAAMc,EAAE1M,YACnC7pB,OAAOE,IACNhB,SAAAA,EAAQgB,MAAM,6BAA8BA,EAAM8pB,YAC3C,CAAE9pB,YAEM2c,MAAMxZ,IAClBA,EAAK+B,OACV4hC,KAAKqQ,YAAY,CACftzB,KAAM,oBACNtjB,QAAS4C,EAAK+B,OACd,IAEJ,MAGF,IAAK,wBAAyB,CAC5B,MAAM,cAAEk0C,GAAkBj2C,EAGtBkI,EACDk8B,WAAW,CAAC,gBAAiB,oBAAqB6R,IAClDz8B,MAAM0Z,IAAM,CACXnxB,MAAOhF,KAAKq1B,MAAMc,EAAE1M,YAErB7pB,OAAOE,IACNhB,SAAAA,EAAQgB,MAAM,mCAAoCA,EAAM8pB,YACjD,CAAE9pB,YAES2c,MAAMxZ,IACrBA,EAAK+B,OACV4hC,KAAKqQ,YAAY,CACftzB,KAAM,0BACNtjB,QAAS4C,EAAK+B,OACd,IAEJ,K,CAGF,IAAK,YACHlG,EAAOgtC,KAAK,aAAc7oC,EAAKxD,KAAMwD,EAAK+B,OAC1CmG,EAAKinC,UAAU,OAAQnvC,EAAKxD,KAAMwD,EAAK+B,OAAOpF,OAAOC,IACnDf,EAAOgB,MAAM,uBAAwBmD,EAAKxD,KAAMwD,EAAK+B,MAAOnF,EAAI,IAElE,MAGF,IAAK,yBACH+mC,KAAK+O,WAAWsD,8BAA8Bh2C,EAAKxD,MAAQwD,EAAK+B,MAChE,MAGF,IAAK,aAAc,CACjB,MAAM,SAAEzD,GAAa0B,EACfk2C,EJiQP,SACL53C,EACA4J,EACAiuC,EAAU,KAGV,MAAMC,EAAWD,EAAQ1+B,QAAQvP,EAAK2gC,KAAK/2B,SAAUxT,GAIrD,OAAI83C,EAAS76B,WAAWrT,EAAK2gC,KAAK/2B,SAAWqkC,EAAQE,KAC5CD,EAEA,IAEX,CIhR6BE,CAA0Bh4C,EAAU4J,GAEzD,GAAoB,MAAhBguC,EAEF,YADAr6C,EAAO84C,KAAK,wCAAyCr2C,GAIvD,aACGi4C,GAAGL,GACH18B,MAAK,KACJ3d,EAAOgtC,KAAK,+BAAgCqN,EAAa,IAE1Dv5C,OAAOC,IACNf,EAAOgB,MAAM,wBAAyBq5C,EAAct5C,EAAI,IAE5D,K,CAGF,IAAK,oBAAqB,CACxB,MAAM,WAAEysB,GAAerpB,EACekI,EACnCk8B,WAAW,CACV,gBACA,UACGoE,EAAkCnf,KAEtC7P,MAAM0Z,IAAM,CAAGnxB,MAAOmxB,EAAE1M,WACxB7pB,OAAOE,IACNhB,SAAAA,EAAQgB,MAAM,qBAAsBA,EAAM8pB,YACnC,CAAE9pB,YAEH2c,MAAMxZ,GACd2jC,KAAKqQ,YAAY,CACftzB,KAAM,aACN2I,aACArpB,KAAM,CAAEkJ,KAAMlJ,OAGlB,K,CAGF,IAAK,sBAAuB,CAC1B,MAAM,OAAEuW,GAAWvW,EAC0BkI,EAC1Ck8B,WAAW,CAAC,gBAAiB,gBAAiB7tB,IAC9CiD,MAAM0Z,GAAMn2B,KAAKq1B,MAAMc,EAAE1M,UACzB7pB,OAAOE,IACNhB,SAAAA,EAAQgB,MAAM,qBAAsBA,EAAM8pB,YACnC,CAAE9pB,YAEM2c,MAAMpQ,GACvBu6B,KAAKqQ,YAAY,CACftzB,KAAM,eACNnK,SACAvW,KAAMoJ,MAGV,K,CAGF,IAAK,gCAAiC,CACpC,MACEgkB,IAAMntB,KAAM4uC,EAAY,WAAExlB,GAAY,MACtChB,EAAK,SACLmuB,GACEx2C,EASJ,GACEqpB,EAAW3I,OAAS,EAAA0I,eAAeO,QACnCN,EAAW3I,OAAS,EAAA0I,eAAeQ,MAEnC,MAAM,IAAI1sB,MAAM,mBAEWgL,EAC1B0mC,YAAYC,EAAcxlB,GAC1B1sB,OAAM,IAAM,KAEN6c,MAAMwD,GACb2mB,KAAKqQ,YAAY,CACftzB,KAAM,yBACND,MAAOzD,EAAQ5D,MAAM,MAAMY,MAAMqO,EAAQ,EAAGA,EAAQ,EAAImuB,GACxDv2C,KAAM4uC,MAGV,K,CAGF,IAAK,6BAA8B,CACjC,MAAM,QAAEhlB,EAAO,MAAEC,GAAU9pB,EACkBkI,EAC1Ck8B,WAAW,CACV,gBACA,gBACAta,EACA,SACAD,IAEDrQ,MAAM0Z,GAAMn2B,KAAKq1B,MAAMc,EAAE1M,UACzB7pB,OAAOE,IACNhB,SAAAA,EAAQgB,MAAM,qBAAsBA,EAAM8pB,YACnC,CAAE9pB,YAEM2c,MAAMpQ,GACvBu6B,KAAKqQ,YAAY,CACftzB,KAAM,sBACNmJ,UACAC,QACA9pB,KAAMoJ,MAGV,K,CAGF,IAAK,yBAA0B,CAC7B,MAAM,OAAEmN,GAAWvW,EAGdkI,EACFk8B,WAAW,CAAC,gBAAiB,eAAgB7tB,IAC7CiD,MAAM0Z,GAAMn2B,KAAKq1B,MAAMc,EAAE1M,UACzB7pB,OAAOE,IACNhB,SAAAA,EAAQgB,MAAM,qBAAsBA,EAAM8pB,YACnC,CAAE9pB,YAEM2c,MAAMpQ,GACvBu6B,KAAKqQ,YAAY,CACftzB,KAAM,kBACNnK,SACAvW,KAAMoJ,MAGV,K,CAGF,IAAK,8BAA+B,CAClC,MAAM,UAAEqtC,GAAcz2C,EACuBkI,EAC1Ck8B,WAAW,CACV,gBACA,gBACAqS,EACA,SACA,GAAGA,OAEJj9B,MAAM0Z,GAAMn2B,KAAKq1B,MAAMc,EAAE1M,UACzB7pB,OAAOE,IACNhB,SAAAA,EAAQgB,MAAM,qBAAsBA,EAAM8pB,YACnC,CAAE9pB,YAEM2c,MAAMpQ,GACvBu6B,KAAKqQ,YAAY,CACftzB,KAAM,uBACN+1B,YACAz2C,KAAMoJ,MAGV,K,CAGF,IAAK,UACHvN,SAAAA,EAAQioB,IAAI,qBACP5b,EAAK8iC,uBACL9iC,EAAK4iC,0BACkB,QAAvB,EAAA5iC,EAAK07B,0BAAkB,SAAEe,0BAC5Bz8B,EAAKokC,iBAEP,MAGF,IAAK,iBACHpkC,EAAK+lC,aAAatK,KAAKqP,OAAQhzC,EAAKwG,OACpC,MAGF,IAAK,6BACH0B,EACGk8B,WAAW,CAAC,gBAAiB,cAC7B5qB,MAAMpQ,IACL,MAAMstC,EAAoC35C,KAAKq1B,MAAMhpB,EAAOod,QAC5Dmd,KAAKqQ,YAAY,CACftzB,KAAM,+BACNg2B,UAAW14C,OAAOm1B,YAChBn1B,OAAO0zB,QAAQglB,GAAW3/B,KAAI,EAAE9W,EAAM2kB,KAAc,CAClD3kB,EACA2kB,EAAStL,QAAQpR,EAAK6gC,kCAAmC,SAG7D,IAEHpsC,OAAOC,IACNf,SAAAA,EAAQgB,MAAM,0CAA2CD,EAAI,IAEjE,MAGF,IAAK,YAImC,QADjC,EACQ,QADR,EAAuB,QAAvB,EAAAsL,EAAK07B,0BAAkB,eACxByB,iBAAS,sBAAGrlC,EAAKy0B,KAAMz0B,EAAK22C,cAAM,SAClCn9B,MAAMpQ,GACNu6B,KAAKqQ,YAAY,CACftzB,KAAM,kBACN0M,GAAIptB,EAAKotB,GACThkB,aAGN,MAGF,IAAK,qBACyB,QAAvB,EAAAlB,EAAK07B,0BAAkB,SAAEe,0BAC5Bz8B,EAAKokC,iBAEP,MAGF,IAAK,kBAAmB,CACtB,MAAMsK,EAAc1uC,EAAKqkC,+BAOzB,OANA5I,KAAKqQ,YAAY,CAAEtzB,KAAM,oBAAqBk2B,gBAC9CjT,KAAKqQ,YAAY,CAAEtzB,KAAM,4BACpBxY,EAAK8iC,4BACVrH,KAAKoC,QAAQ9Y,MAAM,kBAAmB,CACpCqZ,OAAQ,CAAEuQ,YAAaD,QAAAA,EAAe,a,CAK1C,QACOjT,KAAKmF,SAAS4H,wBACjBxoC,EACAlI,GACC5C,GAAYumC,KAAKqQ,YAAY52C,KAC7BqnC,IACCd,KAAKiP,gBAAgBr9B,KAAK,CAAEkvB,WAAU,IAO9Cd,KAAK0R,gBAAgBr1C,EACvB,CAEQ,eAAAq1C,CAAgBr1C,GACtB,MAAM82C,EAAYnT,KAAKgP,gBAAgBx4B,IAAIna,EAAK0gB,MAC5Co2B,GACFA,EAAU/8B,SAASg9B,GAAWA,EAAO/2C,IAEzC,E,eCh/BF,MAAMg3C,GACgB,SAApBn0C,QAAQimC,SACJ,UAAU,IAAA3F,QAAOtgC,QAAQC,IAAIm0C,cAAe,SACxB,UAApBp0C,QAAQimC,SACR,SAAU,cAAc,kBACxBjmC,QAAQC,IAAIo0C,gBAAkB,SAAU,cAAc,UCtBrD,SAAS,GAAep1B,EAAWC,GACxC,MAAMo1B,EAAOC,OAAOxgC,KAAKkL,GACnBu1B,EAAOD,OAAOxgC,KAAKmL,GACzB,OAAOo1B,EAAKjyC,SAAWmyC,EAAKnyC,SAAU,KAAAoyC,iBAAgBH,EAAME,EAC9D,CC6CO,SAASE,GAAmB7E,G,UACjC,MAAM72C,EACa,QAAjB,EAAA62C,EAAW72C,cAAM,QAChB62C,EAAW8E,gBdnDT,SAAoBvc,GACzB,MAAMnX,EAAM,IAAIhO,KACd,MAAMonB,EAAM,cAAepnB,GAAQ,KAC9B,aAAY2hC,WAAWxc,EAAUiC,EAAI,EAG5C,MAAO,CACL2L,KAAM/kB,EACNA,MACA6wB,KAAM7wB,EACNjnB,MAAOinB,EAEP4zB,mBAAoB,IACX,aAAY76B,SAASoe,EAAU,SAG5C,CcoCQ0c,CAAWjF,EAAW8E,iBACtBzT,EACN2O,EAAW72C,OAASA,EACpB,MAAMitC,EAA+B,QAApB,EAAA4J,aAAU,EAAVA,EAAY5J,gBAAQ,QAAIgH,EACnCjoC,EAA6B,QAAnB,EAAA6qC,aAAU,EAAVA,EAAY7qC,eAAO,QAAI,UACvChM,EAAOioB,IAAI,mCAAmC4uB,EAAW9lC,OACzD/Q,EAAOioB,IACL,aAAaglB,EAASiH,2BAA2BloC,gBAAsB6qC,EAAW1rB,YjBrD/E,SAA0BnrB,G,iDAW/B,MAAMG,QAAmB,IAAA47C,4BAA2B37C,OACpD,IAAI47C,EAEH,QAFiB,EAA0B,QAA1B,EAAA77C,EAAWgE,KAAK4B,kBAAU,eAAEoB,MAC3CmK,GAA0B,qBAAfA,EAAOrL,aACpB,eAAEC,MACH,IAAK81C,EAAa,CAChB,MAAM91C,GAAQ,EAAA+1C,EAAA,WACR97C,EAAW2D,QAAQK,IAClBA,EAAK4B,aACR5B,EAAK4B,WAAa,IAEpB5B,EAAK4B,WAAW2T,KAAK,CACnBzT,IAAK,mBACLC,SACA,IAEJ81C,EAAc91C,C,CAGhB,MAAMg2C,QAUR,SAA2Bl8C,G,yCACzB,IACE,MAAMm8C,QAAY,IAAAC,YAAW,CAC3Bt5C,MAAQ7B,GAAcjB,EAAOgtC,KAAK/rC,KAGpC,aAAak7C,EAAI7qC,OAAO,a,CACxB,MAAOwP,GACP,IACE9gB,EAAOgB,MAAM,0BAA2B8f,E,CACxC,S,CAGF,M,CAEJ,G,CAzByBu7B,CAAYr8C,GAEnCmnC,EAAmB,CACjBrnC,MAAO,qBACPC,oBAAoB,IAAI6Y,MAAO0jC,cAC/Bt8C,SACAC,QAAS,CAAE+7C,cAAaE,a,IiBqBrBK,CAAWv8C,GAAQc,OAAOggB,IAC7B9gB,EAAOgB,MAAM,wBAAyB8f,EAAE,IAI1C,MAAMopB,Ef1CD,SACLlqC,EACAitC,EACAjhC,EAEAwwC,EAAgBvU,GAEhB,OAAO,IAAI,EAAApX,SACT,CAAC1sB,EAA8B4sB,K,QAC7B,MAAM,OAAE/wB,GAAW+wB,EAEnB/wB,EAAOioB,IACL,UACA9jB,EAAK6sB,UACS,QAAd,EAAA7sB,EAAK8sB,iBAAS,QAAI,GACD,QAAjB,EAAA9sB,EAAK+sB,oBAAY,QAAI,GACN,MAAf/sB,EAAKsmC,OAAiBvpC,KAAKC,UAAUgD,EAAKsmC,QAAU,IAEtD,IACEr5B,QAAQwK,QAAQ4gC,EAAc,OAAD,wBAAMr4C,GAAS4sB,EAAQ5sB,QAASrD,OAC1DC,IAAgB,G,CAEnB,S,IAIJ,IAAI6mC,EACF5nC,EDzCC,SACLk0C,EACAloC,GAEA,MAAO,CACLihC,SAAUiH,EACVloC,UACAK,UAAMhK,EAKNo6C,WAAW,IAAArF,YACXsF,SAAUtV,IACVuV,OAAQ,WACRC,OAAQ,eACRC,UAAW,cACX3T,SAAU,eAEd,CCuBM4T,CAAsB7P,EAASiH,aAAcloC,IAGnD,CeWkB+wC,CAAsB/8C,EAAQitC,EAAUjhC,GAAU7H,GACzDokC,EAAW,CAChBpd,QAAS0rB,EAAW1rB,SAAW,KAC/BlR,KAAM,CACJ,gBACA,aACA9V,EAAK6sB,WAAa7sB,EAAK8sB,WAAa,qBACnC9sB,EAAKvD,UAAY,IAAIgY,KAAKzU,EAAKvD,WAAa,IAAIgY,MAAQ0jC,cACzDp7C,KAAKC,UAAUgD,IAEjB4M,IAAK8lC,EAAW9lC,QAGpBm5B,EAAQ9Y,MAAM,mBAAoB,CAAEqZ,OAAQ,CAAE15B,IAAK8lC,EAAW9lC,OAG9D,IAAIisC,EAAgC,IAAIpG,GACtC3J,EACA4J,EACA3M,EACAlqC,GAIF,OAFAg9C,EAAIjE,oBAAoBlC,EAAW9lC,KAE5B,KACLisC,SAAAA,EAAKpU,UACLoU,EAAM,IAAI,CAEd,CFpEuC,SAAU7B,GAAU,gB,2SGIpD,SAAS8B,IAAY,KAC1BC,EAAI,eACJC,EAAc,eACdC,EAAc,gBACdzB,EAAe,QACf0B,EAAO,QACPlyB,EAAO,UACPmyB,EAAS,WACTC,EAAU,YACVC,IAEA,OAAO,IAAIpsC,SAASwK,IAClB,IACE,MAAM6hC,EAAWv8C,KAAKq1B,MACpB,iBACE,SAAUinB,EAAa,6BACvB,UAGJ,IAAK,MAAMr+B,KAAQhd,OAAO+tB,OAAOutB,EAASl+B,OACnCJ,EAAKO,WAAW,MACnB9D,EAAQ,CACNiJ,KAAM,QACN7jB,MAAO,6CAA6Cme,QAIxDu+B,GAAqBv+B,GAAQA,EAAKhB,MAAM,E,CAE1C,MAAO2C,G,CAKT48B,GAAqB,gBAAkB,cAmCvC,MAAMC,EAAS,kBAAkB,CAAOC,EAAK1Z,IAAQ,mC,MA4KrC7C,EA3Kd,GAAIuc,EAAI5yC,IAAK,CAGX,MAAM,SAAE6yC,GAAa,UAAgBD,EAAI5yC,KAEzC,GAAgB,MAAZ6yC,GAAoBH,GAAqBI,eAAeD,GAAW,CACrE,MAAM7K,EAAe0K,GAAqBG,GAC1C,IAAI90B,EACJ,IACEA,QAAiB,aAAY/H,SAC3B,SAAUw8B,EAAa,QAASxK,G,CAElC,MAAOlyB,GAGP,OAFAojB,EAAI6Z,UAAU,IAAK,CAAE,eAAgB,oBACrC7Z,EAAIxZ,KA6JI2W,EA7JYvgB,EAAYgK,WA8JnCuW,EACJ5jB,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,U,CA/JT,MAAMugC,EAAUhL,EAAajc,YAAY,KACnCknB,EAAMjL,EAAa70B,MAAM6/B,EAAU,GACnCE,EAAsC,QAAxB,EAAAC,GAAoBF,UAAI,QAAI,aAIhD,OAFA/Z,EAAI6Z,UAAU,IAAK,CAAE,eAAgBG,SACrCha,EAAIxZ,IAAI3B,E,CAEH,GAAiB,4BAAb80B,EAAwC,CAGjD,MAAMO,EAAeC,GAAgBT,EAAI5yC,KAAKsT,IAAI,SAClD,GAAI8/B,GAAgB,GAAeA,EAAcjB,GAAiB,CAEhEjZ,EAAI6Z,UAAU,IAAK,CAAE,eAAgB,cACrC,MAAMvxC,EAAoC,CACxC4wC,iBACAzkC,IAAK3R,QAAQ2R,KAEfurB,EAAIxZ,IAAIxpB,KAAKC,UAAUqL,G,MAEvB03B,EAAI6Z,UAAU,IAAK,CAAE,eAAgB,cACrC7Z,EAAIxZ,IAAIxpB,KAAKC,UAAU,CAAEH,MAAO,mBAElC,M,EAIJkjC,EAAI6Z,UAAU,IAAK,CAAE,eAAgB,cACrC7Z,EAAIxZ,IAAI,uCACV,MAKM4zB,EAAaX,EAAOY,OAAOrB,GAC3BsB,EAAW,IAAI,YAAiB,CAAEC,UAAU,EAAMr6C,KAAM,QAC9Do6C,EAAS3zB,GAAG,cAAc,CAAC6zB,EAAQC,KAEjC,IAAIC,EACA7tC,EACAk8B,EACJ,GAAI0R,EAAkB3zC,IAAK,CACzB,MAAM6zC,EAAeR,GAAgBM,EAAkB3zC,KACvD4zC,EAAgBC,EAAavgC,IAAI,SACjC,MAAMwgC,EAAWD,EAAavgC,IAAI,OAClC2uB,EAAW4R,EAAavgC,IAAI,YACxBwgC,IACF/tC,EAAMguC,mBAAmBD,G,CAG7B,IAAKF,EAAe,CAClB,MAAM5jB,EAAS,yCAGf,OAFAqiB,EAAQ,cAAeriB,QACvB0jB,EAAO9J,MAAM,EAAAoK,qCAAsChkB,E,CAGrD,IAAK,GAAe4jB,EAAezB,GAAiB,CAClD,MAAMniB,EAAS,gBAGf,OAFAqiB,EAAQ,cAAeriB,QACvB0jB,EAAO9J,MAAM,EAAAoK,qCAAsChkB,E,CAWrD,MAAM4N,EAAU8S,GAAmB,CACjCvD,YAAY52C,IACVm9C,EAAOO,KAAK19C,GACL6P,QAAQwK,SAAQ,IAEzB,mBAAA27B,CAAoBpqB,GAClB,MAAM+xB,EAAUR,EAAO7zB,GAAG,UAAWsC,GAErC,MAAO,CAAEyb,QADO,IAAMsW,EAAQrW,IAAI,UAAW1b,GAE/C,EACApc,IAAKA,QAAAA,EAAO/J,QAAQ+J,MACpB4qC,gBACsB,WAApBA,OAA+Bt5C,EAAYs5C,EAC7CxwB,UACAnf,QAASsxC,EACTnD,8BAA+B,CAAC,EAEhClN,cAxB+C5qC,IA0BjDq8C,EAAO7zB,GAAG,SAAS,KACjB+d,IAOK2U,GAEHlyB,YAAW,KA0B6B,IAA5CoqB,GAAgBiB,yBAClB1vC,QAAQm4C,KAAK,EA1B6B,GACjC,I,GAEL,IAEJb,EAAWzzB,GAAG,WAAW,CAACxqB,EAASq+C,EAAQjwC,KACzC+vC,EAASY,cAAc/+C,EAASq+C,EAAQjwC,GAAOiwC,IAC7CF,EAASxV,KAAK,aAAc0V,EAAQr+C,EAAQ,GAC5C,IAGJs9C,EAAO9yB,GAAG,SAhKV,SAAiB7pB,GACf,GAAsB,WAAlBA,EAAMq+C,QAER,MADAzjC,EAAQ,CAAEiJ,KAAM,QAAS7jB,MAAOA,EAAM8pB,aAChC9pB,EAIR,OAAQA,EAAMqe,MACZ,IAAK,SAKH,MAJAzD,EAAQ,CACNiJ,KAAM,QACN7jB,MAAO,QAAQk8C,mCAEXl8C,EAGR,IAAK,aAEH,YADA4a,EAAQ,CAAEiJ,KAAM,iBAIlB,QAEE,MADAjJ,EAAQ,CAAEiJ,KAAM,QAAS7jB,MAAOA,EAAM8pB,aAChC9pB,EAEZ,IA0IA28C,EAAO9yB,GAAG,aAAa,IACrBjP,EAAQ,CACNiJ,KAAM,UACNq4B,KAAOS,EAAO2B,UAA0BpC,KACxCvkC,IAAK3R,QAAQ2R,OAEhB,GAEL,CAQA,SAAS0lC,GAAgBrzC,G,MACvB,MAAMu0C,EAEG,QAFiB,YACjBv0C,GACNw0C,cAAM,eAAE/hC,QAAQ,MAAO,IACvBF,MAAM,KACNrC,KACEukC,GAAmCA,EAAKliC,MAAM,OAGnD,OAAO,IAAIc,IAAIkhC,EACjB,CAEA,MAAMpB,GAAiD,CACrDuB,IAAK,WACLC,KAAM,YACNC,GAAI,kBACJC,IAAK,YAGDnC,GAAkD,CACtD,IAAK,a","sources":["webpack://@withgraphite/graphite-cli/../../src/analytics.ts","webpack://@withgraphite/graphite-cli/../../src/cute_string.ts","webpack://@withgraphite/graphite-cli/../../src/errors.ts","webpack://@withgraphite/graphite-cli/../../src/index.ts","webpack://@withgraphite/graphite-cli/../../src/request.ts","webpack://@withgraphite/graphite-cli/../../src/spiffy.ts","webpack://@withgraphite/graphite-cli/../../src/user_config_spf.ts","webpack://@withgraphite/graphite-cli/../../src/xdg_base_dir.ts","webpack://@withgraphite/graphite-cli/../../../src/git-module/client.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/absorb_patches.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/add.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/branch_ops.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/clean.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/clean_rebase.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/commit.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/commit_info.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/commit_range.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/commit_tree.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/config.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/diff.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/fetch_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/file_contents.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/files_changed.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/find_remote_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/get_hook_executable_path.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/get_sha.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/git_version.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/index_file.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/is_merged.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/log.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/merge_base.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/merge_conflict_help.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/plumbing.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/prune_remote.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/pull_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/push_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/range_diff.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/rebase.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/rebase_in_progress.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/reconcile.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/remote_url.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/repo_paths.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/reset_branch.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/set_remote_tracking.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/show_commits.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/sorted_branch_names.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/status.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/commands/track.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/diff/computations.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/diff/compute_patch_from_hunks.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/diff/parse_hunks_from_diff.ts","webpack://@withgraphite/graphite-cli/../../../../src/git-module/diff/reduce_hunks_to_zero_context.ts","webpack://@withgraphite/graphite-cli/../../../src/git-module/git_repo.ts","webpack://@withgraphite/graphite-cli/../../../src/git-module/index.ts","webpack://@withgraphite/graphite-cli/../../../src/git-module/runner.ts","webpack://@withgraphite/graphite-cli/../../src/tracer.ts","webpack://@withgraphite/graphite-cli/../../src/Comparison.ts","webpack://@withgraphite/graphite-cli/../../src/LRU.ts","webpack://@withgraphite/graphite-cli/../../../src/analytics/index.ts","webpack://@withgraphite/graphite-cli/../../../src/analytics/tracker.ts","webpack://@withgraphite/graphite-cli/../../src/debounce.ts","webpack://@withgraphite/graphite-cli/../../../src/patch/parse.ts","webpack://@withgraphite/graphite-cli/../../src/serialize.ts","webpack://@withgraphite/graphite-cli/../../../src/types/client.ts","webpack://@withgraphite/graphite-cli/../../../src/types/constants.ts","webpack://@withgraphite/graphite-cli/../../../src/types/index.ts","webpack://@withgraphite/graphite-cli/../../src/utils.ts","webpack://@withgraphite/graphite-cli/../../../src/github/codeowners.ts","webpack://@withgraphite/graphite-cli/../../../src/github/is_approver.ts","webpack://@withgraphite/graphite-cli/../../../src/github/pr_has_minimum_approvals.ts","webpack://@withgraphite/graphite-cli/../../../src/github/pr_metastatus.ts","webpack://@withgraphite/graphite-cli/../../../src/github/types.ts","webpack://@withgraphite/graphite-cli/../../src/graphite_checks.ts","webpack://@withgraphite/graphite-cli/../../../src/merge-rules/compute_blocking_reasons.ts","webpack://@withgraphite/graphite-cli/../../../src/merge-rules/filter.ts","webpack://@withgraphite/graphite-cli/../../../src/merge-rules/required_approvers.ts","webpack://@withgraphite/graphite-cli/../../src/test_data_generators.ts","webpack://@withgraphite/graphite-cli/../index.ts","webpack://@withgraphite/graphite-cli/../src/index.ts","webpack://@withgraphite/graphite-cli/../src/request.ts","webpack://@withgraphite/graphite-cli/../../src/bind.ts","webpack://@withgraphite/graphite-cli/../../src/dedup.ts","webpack://@withgraphite/graphite-cli/../../src/difference.ts","webpack://@withgraphite/graphite-cli/../../src/empty_object.ts","webpack://@withgraphite/graphite-cli/../../src/find_index_or_fail.ts","webpack://@withgraphite/graphite-cli/../../src/glob.ts","webpack://@withgraphite/graphite-cli/../../src/heartbeat.ts","webpack://@withgraphite/graphite-cli/../../src/lookup_table.ts","webpack://@withgraphite/graphite-cli/../../src/map_reduce.ts","webpack://@withgraphite/graphite-cli/../../src/retry.ts","webpack://@withgraphite/graphite-cli/../../src/semaphore.ts","webpack://@withgraphite/graphite-cli/../../src/sleep.ts","webpack://@withgraphite/graphite-cli/../../src/strings.ts","webpack://@withgraphite/graphite-cli/../../src/timeout.ts","webpack://@withgraphite/graphite-cli/../../src/types.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/analytics.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/analytics/environment.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/analytics/serverSideTracker.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/logger.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/TypedEventEmitter.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/github/githubCodeReviewProvider.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/OperationQueue.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/PageFocusTracker.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/RateLimiter.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/utils.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/Repository.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/fs.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/serverPlatform.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/RepositoryCache.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/ServerToClientAPI.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/proxy/existingServerStateFiles.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/proxy/proxyUtils.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/src/index.ts","webpack://@withgraphite/graphite-cli/../../../libs/public/gti-server/proxy/server.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import {\n composeUserConfigFactory,\n sendAnalyticsEvent as sendAnalyticsEventGeneric,\n} from \"@withgraphite/cli-shared\";\nimport { composeGit } from \"@withgraphite/gt-engine\";\nimport type { Logger } from \"@withgraphite/gti-shared\";\nimport { v4 } from \"uuid\";\n\ntype TEvent = \"gti-server-startup\";\n\nexport const sendAnalyticsEvent = sendAnalyticsEventGeneric<TEvent>;\n\nexport async function logStartup(logger: Logger) {\n // At the time of writing, this is the only place in GTI server where we\n // access the user config and git directly instead of through the CLI. This is\n // because we want to log analytics about installs, and don't want to be\n // blocked on CLI installation.\n // We should consider elevating userConfig (and a git client/Graphite engine)\n // to a context in ServerToClientAPI and using that instead of shelling to\n // the CLI for all configs going forward -- essentially, this function\n // should serve as a proof of concept for that way of doing things.\n // When we do this, we should also pull in the config keys from\n // libs/public/gti-shared/src/types/client.ts\n const userConfig = await composeUserConfigFactory().load();\n let installUuid = userConfig.data.gtiConfigs?.find(\n (config) => config.key === \"gti.install-uuid\"\n )?.value;\n if (!installUuid) {\n const value = v4();\n await userConfig.update((data) => {\n if (!data.gtiConfigs) {\n data.gtiConfigs = [];\n }\n data.gtiConfigs.push({\n key: \"gti.install-uuid\",\n value,\n });\n });\n installUuid = value;\n }\n\n const gitEmail = await getGitEmail(logger);\n\n sendAnalyticsEvent({\n event: \"gti-server-startup\",\n timestampISOString: new Date().toISOString(),\n logger,\n details: { installUuid, gitEmail },\n });\n}\n\nasync function getGitEmail(logger: Logger) {\n try {\n const git = await composeGit({\n debug: (s: string) => logger.info(s),\n });\n\n return await git.config(\"user.email\");\n } catch (e) {\n try {\n logger.error(\"Failed to get git email\", e);\n } catch {\n // ignore\n }\n return undefined;\n }\n}\n","import type { ApplicationInfo } from \"@withgraphite/gti-shared\";\nimport { randomId, unwrap } from \"@withgraphite/gti-shared\";\nimport os from \"os\";\n\nexport function getUsername(): string {\n try {\n return os.userInfo().username;\n } catch (osInfoError) {\n try {\n const { env } = process;\n return unwrap(env.LOGNAME || env.USER || env.LNAME || env.USERNAME);\n } catch (processEnvError) {\n throw new Error(String(processEnvError) + String(osInfoError));\n }\n }\n}\n\nexport function generateAnalyticsInfo(\n platformName: string,\n version: string\n): ApplicationInfo {\n return {\n platform: platformName,\n version,\n repo: undefined,\n /**\n * Random id for this GTI session, created at startup.\n * Note: this is only generated on the server, so client-logged events share the ID with the server.\n */\n sessionId: randomId(),\n unixname: getUsername(),\n osArch: os.arch(),\n osType: os.platform(),\n osRelease: os.release(),\n hostname: os.hostname(),\n };\n}\n","import type {\n ApplicationInfo,\n FullTrackData,\n Logger,\n TrackDataWithEventName,\n} from \"@withgraphite/gti-shared\";\nimport { Tracker } from \"@withgraphite/gti-shared\";\n\nimport type { Repository } from \"../Repository\";\nimport type { ServerPlatform } from \"../serverPlatform\";\nimport { generateAnalyticsInfo } from \"./environment\";\n\nexport type ServerSideTracker = Tracker<ServerSideContext>;\n\nclass ServerSideContext {\n constructor(public logger: Logger, public data: ApplicationInfo) {}\n\n public setRepo(repo: Repository | undefined): void {\n this.data.repo = repo?.codeReviewProvider?.getSummaryName();\n }\n}\n\nconst noOp = (_data: FullTrackData): Promise<unknown> | void => {\n /* In open source builds, analytics tracking is completely disabled/removed. */\n};\n\n/**\n * Creates a Tracker which includes server-side-only cached application data like platform, username, etc,\n * and sends data to the underlying analytics engine outside of GTI.\n * This can not be global since two client connections may have different cached data.\n */\nexport function makeServerSideTracker(\n logger: Logger,\n platform: ServerPlatform,\n version: string,\n // prettier-ignore\n writeToServer = noOp\n): ServerSideTracker {\n return new Tracker(\n (data: TrackDataWithEventName, context: ServerSideContext) => {\n const { logger } = context;\n // log track event, since tracking events can be used as datapoints when reviewing logs\n logger.log(\n \"[track]\",\n data.eventName,\n data.errorName ?? \"\",\n data.errorMessage ?? \"\",\n data.extras != null ? JSON.stringify(data.extras) : \"\"\n );\n try {\n Promise.resolve(writeToServer({ ...data, ...context.data })).catch(\n (err) => void err\n );\n } catch {\n // pass\n }\n },\n new ServerSideContext(\n logger,\n generateAnalyticsInfo(platform.platformName, version)\n )\n );\n}\n","import type { Logger } from \"@withgraphite/gti-shared\";\nimport fs from \"fs\";\nimport util from \"util\";\n\nexport const stdoutLogger = console;\n\nexport function fileLogger(filename: string): Logger {\n const log = (...args: Parameters<typeof console.log>) => {\n const str = util.format(...args) + \"\\n\";\n void fs.promises.appendFile(filename, str);\n };\n\n return {\n info: log,\n log,\n warn: log,\n error: log,\n\n getLogFileContents: () => {\n return fs.promises.readFile(filename, \"utf-8\");\n },\n };\n}\n","import { EventEmitter } from \"events\";\n\n/**\n * Like {@link EventEmitter}, but with type checking for one particular subscription type,\n * plus errors.\n * ```\n * const myEmitter = new TypedEventEmitter<'data', number>();\n * myEmitter.on('data', (data: number) => ...); // typechecks 'data' param and callback\n * myEmitter.on('error', (error: Error) => ...); // errors are always allowed too\n * // Fields other than 'data' and 'error' are type errors.\n * ```\n */\nexport declare interface TypedEventEmitter<\n EventName extends string,\n EventType\n> {\n on(event: EventName, listener: (data: EventType) => void): this;\n on(event: \"error\", listener: (error: Error) => void): this;\n off(event: EventName, listener: (data: EventType) => void): this;\n off(event: \"error\", listener: (error: Error) => void): this;\n\n emit(\n ...args: EventType extends undefined\n ? [event: EventName] | [event: EventName, data: EventType]\n : [event: EventName, data: EventType]\n ): boolean;\n emit(event: \"error\", error: Error): boolean;\n}\n\nexport class TypedEventEmitter<\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n EventName extends string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n EventType\n> extends EventEmitter {}\n","import type { PRInfo, PRNumber } from \"@withgraphite/gti-cli-shared-types\";\nimport type {\n CodeReviewSystem,\n Disposable,\n GitHubDiffSummary,\n OperationCommandProgressReporter,\n Result,\n TypeaheadKind,\n TypeaheadResult,\n} from \"@withgraphite/gti-shared\";\nimport type execa from \"execa\";\n\nimport { TypedEventEmitter } from \"../TypedEventEmitter\";\n\ntype GitHubCodeReviewSystem = CodeReviewSystem & { type: \"github\" };\nexport class GitHubCodeReviewProvider {\n constructor(\n private codeReviewSystem: GitHubCodeReviewSystem,\n private runCommand: (\n args: Array<string>,\n cwd?: string,\n options?: execa.Options\n ) => execa.ExecaChildProcess<string>\n ) {}\n private diffSummaries = new TypedEventEmitter<\"data\", GitHubDiffSummary[]>();\n\n onChangeDiffSummaries(\n callback: (result: Result<GitHubDiffSummary[]>) => unknown\n ): Disposable {\n const handleData = (data: GitHubDiffSummary[]) => callback({ value: data });\n const handleError = (error: Error) => callback({ error });\n this.diffSummaries.on(\"data\", handleData);\n this.diffSummaries.on(\"error\", handleError);\n return {\n dispose: () => {\n this.diffSummaries.off(\"data\", handleData);\n this.diffSummaries.off(\"error\", handleError);\n },\n };\n }\n\n public async triggerDiffSummariesFetch(_diffs: Array<PRNumber>) {\n const value = await this.runCommand([\"internal-only\", \"prs\"]);\n const prs = JSON.parse(value.stdout) as PRInfo[];\n this.diffSummaries.emit(\"data\", prs);\n }\n\n public dispose() {\n this.diffSummaries.removeAllListeners();\n }\n\n public getSummaryName(): string {\n return `github:${this.codeReviewSystem.hostname}/${this.codeReviewSystem.owner}/${this.codeReviewSystem.repo}`;\n }\n\n /** Run a command not handled within graphite, such as a separate submit handler */\n public runExternalCommand(\n _cwd: string,\n _args: Array<string>,\n _onProgress: OperationCommandProgressReporter,\n _signal: AbortSignal\n ): Promise<void> {\n throw new Error(\n \"GitHub code review provider does not support running external commands\"\n );\n }\n\n public async typeahead(\n _kind: TypeaheadKind,\n _query: string\n ): Promise<Array<TypeaheadResult>> {\n return Promise.resolve([]);\n }\n}\n\n// function githubCheckSuitesToCIStatus(\n// checkSuites: CheckSuiteConnection | undefined | null,\n// ): DiffSignalSummary {\n// let anyInProgress = false;\n// let anyWarning = false;\n// for (const checkSuite of checkSuites?.nodes ?? []) {\n// switch (checkSuite?.status) {\n// case CheckStatusState.Completed:\n// {\n// switch (checkSuite?.conclusion) {\n// case CheckConclusionState.Success:\n// break;\n// case CheckConclusionState.Neutral:\n// case CheckConclusionState.Stale:\n// case CheckConclusionState.Skipped:\n// anyWarning = true;\n// break;\n// case CheckConclusionState.ActionRequired:\n// case CheckConclusionState.StartupFailure:\n// case CheckConclusionState.Cancelled:\n// case CheckConclusionState.TimedOut:\n// case CheckConclusionState.Failure:\n// return 'failed'; // no need to look at other signals\n// }\n// }\n// break;\n// case CheckStatusState.Waiting:\n// case CheckStatusState.Requested:\n// case CheckStatusState.Queued:\n// case CheckStatusState.Pending:\n// case CheckStatusState.InProgress:\n// anyInProgress = true;\n// break;\n// }\n// }\n// return anyWarning ? 'warning' : anyInProgress ? 'running' : 'pass';\n// }\n","import type {\n Logger,\n OperationCommandProgressReporter,\n OperationProgress,\n RunnableOperation,\n} from \"@withgraphite/gti-shared\";\n\nimport type { ServerSideTracker } from \"./analytics/serverSideTracker\";\n\n/**\n * Handle running & queueing all Operations so that only one Operation runs at once.\n * Operations may be run by gt in the Repository or other providers like ghstack in the RemoteRepository.\n */\nexport class OperationQueue {\n constructor(\n private logger: Logger,\n private runCallback: (\n operation: RunnableOperation,\n cwd: string,\n handleProgress: OperationCommandProgressReporter,\n signal: AbortSignal\n ) => Promise<void>\n ) {}\n\n private queuedOperations: Array<\n RunnableOperation & { tracker: ServerSideTracker }\n > = [];\n private runningOperation: RunnableOperation | undefined = undefined;\n private abortController: AbortController | undefined = undefined;\n\n async runOrQueueOperation(\n operation: RunnableOperation,\n onProgress: (progress: OperationProgress) => void,\n tracker: ServerSideTracker,\n cwd: string\n ): Promise<void> {\n if (this.runningOperation != null) {\n this.queuedOperations.push({ ...operation, tracker });\n onProgress({\n id: operation.id,\n kind: \"queue\",\n queue: this.queuedOperations.map((o) => o.id),\n });\n return;\n }\n this.runningOperation = operation;\n\n const handleCommandProgress: OperationCommandProgressReporter = (\n ...args\n ) => {\n switch (args[0]) {\n case \"spawn\":\n onProgress({\n id: operation.id,\n kind: \"spawn\",\n queue: this.queuedOperations.map((op) => op.id),\n });\n break;\n\n case \"stdout\":\n onProgress({ id: operation.id, kind: \"stdout\", message: args[1] });\n break;\n\n case \"stderr\":\n onProgress({ id: operation.id, kind: \"stderr\", message: args[1] });\n break;\n\n case \"exit\":\n onProgress({\n id: operation.id,\n kind: \"exit\",\n exitCode: args[1],\n timestamp: Date.now(),\n });\n break;\n }\n };\n\n try {\n const controller = new AbortController();\n this.abortController = controller;\n await tracker.operation(\n operation.trackEventName,\n \"RunOperationError\",\n { extras: { args: operation.args, runner: operation.runner } },\n (_p) =>\n this.runCallback(\n operation,\n cwd,\n handleCommandProgress,\n controller.signal\n )\n );\n this.runningOperation = undefined;\n\n // now that we successfully ran this operation, dequeue the next\n if (this.queuedOperations.length > 0) {\n const op = this.queuedOperations.shift();\n if (op != null) {\n // don't await this, the caller should resolve when the original operation finishes.\n void this.runOrQueueOperation(\n op,\n // TODO (GT-11368): we're using the onProgress from the LAST `runOperation`... should we be keeping the newer onProgress in the queued operation?\n onProgress,\n op.tracker,\n cwd\n );\n }\n }\n } catch (err) {\n const errString = (err as Error).toString();\n this.logger.log(\n \"error running operation: \",\n operation.args[0],\n errString\n );\n onProgress({ id: operation.id, kind: \"error\", error: errString });\n // clear queue to run when we hit an error\n this.queuedOperations = [];\n this.runningOperation = undefined;\n }\n }\n\n /**\n * Send kill signal to the running operation if the operationId matches.\n * If the process exits, the exit event will be noticed by the queue.\n * This function does not block on waiting for the operation process to exit.\n */\n abortRunningOperation(operationId: string) {\n if (this.runningOperation?.id == operationId) {\n this.abortController?.abort();\n }\n }\n}\n","import type { PageVisibility } from \"@withgraphite/gti-shared\";\n\n/**\n * Aggregates if any GTI page has focus or visibility.\n */\nexport class PageFocusTracker {\n private focusedPages = new Set();\n private visiblePages = new Set();\n\n private onChangeHandlers = new Set<(state: PageVisibility) => unknown>();\n\n setState(page: string, state: PageVisibility) {\n switch (state) {\n case \"focused\":\n this.focusedPages.add(page);\n this.visiblePages.add(page);\n break;\n\n case \"visible\":\n this.focusedPages.delete(page);\n this.visiblePages.add(page);\n break;\n\n case \"hidden\":\n this.focusedPages.delete(page);\n this.visiblePages.delete(page);\n break;\n }\n for (const handler of this.onChangeHandlers) {\n handler(state);\n }\n }\n\n public disposePage(page: string) {\n this.focusedPages.delete(page);\n this.visiblePages.delete(page);\n }\n\n public hasPageWithFocus() {\n return this.focusedPages.size > 0;\n }\n public hasVisiblePage() {\n return this.visiblePages.size > 0;\n }\n\n public onChange(callback: () => unknown): () => void {\n this.onChangeHandlers.add(callback);\n return () => this.onChangeHandlers.delete(callback);\n }\n}\n","import { TypedEventEmitter } from \"./TypedEventEmitter\";\n\ntype Id = number;\n\n/**\n * Rate limits requests to run an arbitrary task.\n * Up to `maxSimultaneousRunning` tasks can run at once,\n * futher requests will be queued and run when a running task finishes.\n *\n * Usage:\n * ```\n * const rateLimiter = new RateLimiter(5);\n * const result = await rateLimiter.enqueueRun(() => {\n * // ...do arbitrary async work...\n * });\n * ```\n */\nexport class RateLimiter {\n private queued: Array<Id> = [];\n private running: Array<Id> = [];\n private runs = new TypedEventEmitter<\"run\", Id>();\n\n constructor(\n private maxSimultaneousRunning: number,\n private log?: (s: string) => unknown\n ) {}\n\n private nextId = 1;\n private generateId(): Id {\n return this.nextId++;\n }\n\n async enqueueRun<T>(runner: () => Promise<T>): Promise<T> {\n const id = this.generateId();\n\n this.queued.push(id);\n this.tryDequeueNext();\n\n if (!this.running.includes(id)) {\n this.log?.(\n `${this.running.length} tasks are already running, enqueuing ID:${id}`\n );\n await new Promise((res) => {\n this.runs.on(\"run\", (ran) => {\n if (ran === id) {\n this.log?.(`now allowing ID:${id} to run`);\n res(undefined);\n }\n });\n });\n }\n\n try {\n return await runner();\n } finally {\n this.notifyFinished(id);\n }\n }\n\n private notifyFinished(id: Id): void {\n this.running = this.running.filter((running) => running !== id);\n this.tryDequeueNext();\n }\n\n private tryDequeueNext() {\n if (this.running.length < this.maxSimultaneousRunning) {\n const toRun = this.queued.shift();\n if (toRun != null) {\n this.run(toRun);\n }\n }\n }\n\n private run(id: Id) {\n this.running.push(id);\n this.runs.emit(\"run\", id);\n }\n}\n","import type { BranchInfo } from \"@withgraphite/gti-cli-shared-types\";\nimport {\n type Comparison,\n type SmartlogCommits,\n ComparisonType,\n truncate,\n} from \"@withgraphite/gti-shared\";\nimport type { ExecaChildProcess } from \"execa\";\nimport type execa from \"execa\";\nimport os from \"os\";\n\nexport function sleep(timeMs: number): Promise<void> {\n return new Promise((res) => setTimeout(res, timeMs));\n}\n\nexport function firstOfIterable<T>(\n iterable: IterableIterator<T>\n): T | undefined {\n return iterable.next().value;\n}\n\n/**\n * Limits async function execution parallelism to only one at a time.\n * Hence, if a call is already running, it will wait for it to finish,\n * then start the next async execution, but if called again while not finished,\n * it will return the scheduled execution promise.\n *\n * Sample Usage:\n * ```\n * let i = 1;\n * const oneExecAtATime = serializeAsyncCall(() => {\n * return new Promise((resolve, reject) => {\n * setTimeout(200, () => resolve(i++));\n * });\n * });\n *\n * const result1Promise = oneExecAtATime(); // Start an async, and resolve to 1 in 200 ms.\n * const result2Promise = oneExecAtATime(); // Schedule the next async, and resolve to 2 in 400 ms.\n * const result3Promise = oneExecAtATime(); // Reuse scheduled promise and resolve to 2 in 400 ms.\n * ```\n */\nexport function serializeAsyncCall<T>(\n asyncFun: () => Promise<T>\n): () => Promise<T> {\n let scheduledCall: Promise<T> | undefined = undefined;\n let pendingCall: Promise<undefined> | undefined = undefined;\n const startAsyncCall = () => {\n const resultPromise = asyncFun();\n pendingCall = resultPromise.then(\n () => (pendingCall = undefined),\n () => (pendingCall = undefined)\n );\n return resultPromise;\n };\n const callNext = () => {\n scheduledCall = undefined;\n return startAsyncCall();\n };\n const scheduleNextCall = () => {\n if (scheduledCall == null) {\n if (pendingCall == null) {\n throw new Error(\"pendingCall must not be null!\");\n }\n scheduledCall = pendingCall.then(callNext, callNext);\n }\n return scheduledCall;\n };\n return () => {\n if (pendingCall == null) {\n return startAsyncCall();\n } else {\n return scheduleNextCall();\n }\n };\n}\n\n/**\n * Kill `child` on `AbortSignal`.\n *\n * This is slightly more robust than execa 6.0 and nodejs' `signal` support:\n * if a process was stopped (by `SIGTSTP` or `SIGSTOP`), it can still be killed.\n */\nexport function handleAbortSignalOnProcess(\n child: ExecaChildProcess,\n signal: AbortSignal\n) {\n signal.addEventListener(\"abort\", () => {\n if (os.platform() == \"win32\") {\n // Signals are ignored on Windows.\n // execa's default forceKillAfterTimeout behavior does not\n // make sense for Windows. Disable it explicitly.\n child.kill(\"SIGKILL\", { forceKillAfterTimeout: false });\n } else {\n // If the process is stopped (ex. Ctrl+Z, kill -STOP), make it\n // continue first so it can respond to signals including SIGKILL.\n child.kill(\"SIGCONT\");\n // A good citizen process should exit soon after recieving SIGTERM.\n // In case it doesn't, send SIGKILL after 5 seconds.\n child.kill(\"SIGTERM\", { forceKillAfterTimeout: 5000 });\n }\n });\n}\n\n/**\n * Given a list of commits and a starting commit,\n * traverse up the chain of `parents` until we find a public commit\n */\nexport function findPublicAncestor(\n allCommits: SmartlogCommits | undefined,\n from: BranchInfo\n): BranchInfo | undefined {\n let publicCommit: BranchInfo | undefined;\n if (allCommits != null) {\n const map = new Map(allCommits.map((commit) => [commit.branch, commit]));\n\n let current: BranchInfo | undefined = from;\n while (current != null) {\n if (current.partOfTrunk) {\n publicCommit = current;\n break;\n }\n if (current.parents[0] == null) {\n break;\n }\n current = map.get(current.parents[0]);\n }\n }\n\n return publicCommit;\n}\n\n/**\n * Run a command that is expected to produce JSON output.\n * Return a JSON object. On error, the JSON object has property \"error\".\n */\nexport function parseExecJson<T>(\n exec: execa.ExecaChildProcess,\n reply: (parsed?: T, error?: string) => void\n) {\n exec\n .then((result) => {\n const stdout = result.stdout;\n try {\n const parsed = JSON.parse(stdout);\n if (parsed.error != null) {\n reply(undefined, parsed.error);\n } else {\n reply(parsed as T);\n }\n } catch (err) {\n const msg = `Cannot parse ${truncate(\n result.escapedCommand\n )} output. (error: ${err}, stdout: ${stdout})`;\n reply(undefined, msg);\n }\n })\n .catch((err) => {\n // Try extracting error from stdout '{error: message}'.\n try {\n const parsed = JSON.parse(err.stdout);\n if (parsed.error != null) {\n reply(undefined, parsed.error);\n return;\n }\n } catch {\n // pass\n }\n // Fallback to general error.\n const msg = `Cannot run ${truncate(err.escapedCommand)}. (error: ${err})`;\n reply(undefined, msg);\n });\n}\n\nexport function internalOnlyDiffArgsForComparison(\n comparison: Comparison\n): Array<string> {\n switch (comparison.type) {\n case ComparisonType.UncommittedChanges:\n return [\"uncommitted\"];\n\n case ComparisonType.HeadChanges:\n return [\"head\"];\n\n case ComparisonType.StackChanges:\n return [\"stack\"];\n\n case ComparisonType.Committed:\n return [\"stack\", \"--ref\", comparison.hash];\n\n default:\n throw new Error(\"Unsupported comparison type: \" + comparison.type);\n }\n}\n","import type {\n BranchInfo,\n PRNumber,\n RepoInfo as RepoInfoFromCLI,\n RepoRelativePath,\n Status,\n} from \"@withgraphite/gti-cli-shared-types\";\nimport type {\n AbsolutePath,\n CodeReviewSystem,\n CommandArg,\n Comparison,\n Disposable,\n FetchedCommits,\n FetchedUncommittedChanges,\n Logger,\n MergeConflicts,\n OperationCommandProgressReporter,\n OperationProgress,\n PageVisibility,\n RepoInfo,\n RunnableOperation,\n SmartlogCommits,\n SuccessorInfo,\n ValidatedRepoInfo,\n} from \"@withgraphite/gti-shared\";\nimport {\n CommandRunner,\n ComparisonType,\n debounce,\n DEFAULT_DAYS_OF_COMMITS_TO_LOAD,\n ErrorShortMessages,\n notEmpty,\n unwrap,\n} from \"@withgraphite/gti-shared\";\nimport execa from \"execa\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport semver from \"semver\";\n\nimport type { ServerSideTracker } from \"./analytics/serverSideTracker\";\nimport { exists, removeLeadingPathSep } from \"./fs\";\nimport { GitHubCodeReviewProvider } from \"./github/githubCodeReviewProvider\";\nimport { OperationQueue } from \"./OperationQueue\";\nimport { PageFocusTracker } from \"./PageFocusTracker\";\nimport { RateLimiter } from \"./RateLimiter\";\nimport type { ServerPlatform } from \"./serverPlatform\";\nimport { TypedEventEmitter } from \"./TypedEventEmitter\";\nimport { handleAbortSignalOnProcess, serializeAsyncCall } from \"./utils\";\n\nexport const COMMIT_END_MARK = \"<<COMMIT_END_MARK>>\";\nexport const NULL_CHAR = \"\\0\";\nconst MAX_SIMULTANEOUS_CAT_CALLS = 4;\n\nconst MIN_REQUIRED_CLI_VERSION = \"1.0.14\";\n\ntype ConflictFileData = {\n contents: string;\n exists: boolean;\n isexec: boolean;\n issymlink: boolean;\n};\nexport type ResolveCommandConflictOutput = [\n | {\n command: null;\n conflicts: [];\n pathconflicts: [];\n }\n | {\n command: string;\n command_details: { cmd: string; to_abort: string; to_continue: string };\n conflicts: Array<{\n base: ConflictFileData;\n local: ConflictFileData;\n output: ConflictFileData;\n other: ConflictFileData;\n path: string;\n }>;\n pathconflicts: Array<never>;\n }\n];\n\ntype ComparisonForRelativeCat = Exclude<\n Comparison,\n { type: ComparisonType.Commit } | { type: ComparisonType.Range }\n>;\n/**\n * This class is responsible for providing information about the working copy\n * for a Graphite repository.\n *\n * A Repository may be reused by multiple connections, not just one GTI window.\n * This is so we don't duplicate watchman subscriptions and calls to status/log.\n * A Repository does not have a pre-defined `cwd`, so it may be re-used across cwds.\n *\n * Prefer using `RepositoryCache.getOrCreate()` to access and dispose `Repository`s.\n */\nexport class Repository {\n public IGNORE_COMMIT_MESSAGE_LINES_REGEX = /^((?:HG|SL):.*)/gm;\n\n private mergeConflicts: MergeConflicts | undefined = undefined;\n private uncommittedChanges: FetchedUncommittedChanges | null = null;\n private smartlogCommits: FetchedCommits | null = null;\n\n private mergeConflictsEmitter = new TypedEventEmitter<\n \"change\",\n MergeConflicts | undefined\n >();\n private uncommittedChangesEmitter = new TypedEventEmitter<\n \"change\",\n FetchedUncommittedChanges\n >();\n private smartlogCommitsChangesEmitter = new TypedEventEmitter<\n \"change\",\n FetchedCommits\n >();\n\n private smartlogCommitsBeginFetchingEmitter = new TypedEventEmitter<\n \"start\",\n undefined\n >();\n private uncommittedChangesBeginFetchingEmitter = new TypedEventEmitter<\n \"start\",\n undefined\n >();\n\n private disposables: Array<() => void> = [\n () => this.mergeConflictsEmitter.removeAllListeners(),\n () => this.uncommittedChangesEmitter.removeAllListeners(),\n () => this.smartlogCommitsChangesEmitter.removeAllListeners(),\n () => this.smartlogCommitsBeginFetchingEmitter.removeAllListeners(),\n () => this.uncommittedChangesBeginFetchingEmitter.removeAllListeners(),\n ];\n public onDidDispose(callback: () => unknown): void {\n this.disposables.push(callback);\n }\n\n private operationQueue: OperationQueue;\n private watchForChangesDisposer: undefined | (() => void);\n private pageFocusTracker = new PageFocusTracker();\n public codeReviewProvider?: GitHubCodeReviewProvider;\n\n private currentVisibleCommitRangeIndex = 0;\n private visibleCommitRanges: Array<number | undefined> = [\n DEFAULT_DAYS_OF_COMMITS_TO_LOAD,\n 60,\n undefined,\n ];\n\n /** Prefer using `RepositoryCache.getOrCreate()` to access and dispose `Repository`s. */\n constructor(\n public info: ValidatedRepoInfo,\n public platform: ServerPlatform,\n public logger: Logger\n ) {\n const remote = info.codeReviewSystem;\n if (remote.type === \"github\") {\n this.codeReviewProvider = new GitHubCodeReviewProvider(\n remote,\n this.runCommand.bind(this)\n );\n }\n\n this.watchForChangesDisposer = platform.watchForChanges(\n info,\n logger,\n (kind) => {\n if (kind === \"uncommitted changes\") {\n void this.fetchUncommittedChanges();\n void this.checkForMergeConflicts();\n } else if (kind === \"branches\") {\n void this.fetchSmartlogCommits();\n } else if (kind === \"merge conflicts\") {\n void this.checkForMergeConflicts();\n } else if (kind === \"everything\") {\n void this.fetchUncommittedChanges();\n void this.fetchSmartlogCommits();\n void this.checkForMergeConflicts();\n }\n }\n );\n\n this.operationQueue = new OperationQueue(\n this.logger,\n (\n operation: RunnableOperation,\n cwd: string,\n handleCommandProgress,\n signal: AbortSignal\n ): Promise<void> => {\n if (operation.runner === CommandRunner.Graphite) {\n return this.runOperation(\n operation,\n handleCommandProgress,\n cwd,\n signal\n );\n } else if (operation.runner === CommandRunner.CodeReviewProvider) {\n const normalizedArgs = this.normalizeOperationArgs(\n cwd,\n operation.args\n );\n\n if (this.codeReviewProvider?.runExternalCommand == null) {\n return Promise.reject(\n Error(\n \"CodeReviewProvider does not support running external commands\"\n )\n );\n }\n\n return (\n this.codeReviewProvider?.runExternalCommand(\n cwd,\n normalizedArgs,\n handleCommandProgress,\n signal\n ) ?? Promise.resolve()\n );\n }\n return Promise.resolve();\n }\n );\n\n // refetch summaries whenever we see new diffIds\n const seenDiffs = new Set();\n const subscription = this.subscribeToSmartlogCommitsChanges((fetched) => {\n if (fetched.commits.value) {\n const newDiffs = [];\n const diffIds = fetched.commits.value\n .filter((commit) => commit.pr)\n .map((commit) => commit.pr?.number);\n for (const diffId of diffIds) {\n if (!seenDiffs.has(diffId)) {\n newDiffs.push(diffId);\n seenDiffs.add(diffId);\n }\n }\n if (newDiffs.length > 0) {\n void this.codeReviewProvider?.triggerDiffSummariesFetch(\n // We could choose to only fetch the diffs that changed (`newDiffs`) rather than all diffs,\n // but our UI doesn't cache old values, thus all other diffs would appear empty\n this.getAllDiffIds()\n );\n }\n }\n });\n\n // the repo may already be in a conflict state on startup\n void this.checkForMergeConflicts();\n\n this.disposables.push(() => subscription.dispose());\n }\n\n public nextVisibleCommitRangeInDays(): number | undefined {\n if (\n this.currentVisibleCommitRangeIndex + 1 <\n this.visibleCommitRanges.length\n ) {\n this.currentVisibleCommitRangeIndex++;\n }\n return this.visibleCommitRanges[this.currentVisibleCommitRangeIndex];\n }\n\n /**\n * Typically, disposing is handled by `RepositoryCache` and not used directly.\n */\n public dispose() {\n this.disposables.forEach((dispose) => dispose());\n this.codeReviewProvider?.dispose();\n this.watchForChangesDisposer?.();\n }\n\n public onChangeConflictState(\n callback: (conflicts: MergeConflicts | undefined) => unknown\n ): Disposable {\n this.mergeConflictsEmitter.on(\"change\", callback);\n\n if (this.mergeConflicts) {\n // if we're already in merge conflicts, let the client know right away\n callback(this.mergeConflicts);\n }\n\n return {\n dispose: () => this.mergeConflictsEmitter.off(\"change\", callback),\n };\n }\n\n checkForMergeConflicts = debounce(\n serializeAsyncCall(async () => {\n this.logger.info(\"checking for merge conflicts\");\n // Fast path: check if .git/merge dir changed\n const wasAlreadyInConflicts = this.mergeConflicts != null;\n if (!wasAlreadyInConflicts) {\n const mergeDirExists = await exists(\n path.join(this.info.dotdir, \"rebase-merge\")\n );\n if (!mergeDirExists) {\n // Not in a conflict\n this.logger.info(\n `conflict state still the same (${\n wasAlreadyInConflicts ? \"IN merge conflict\" : \"NOT in conflict\"\n })`\n );\n return;\n }\n }\n\n if (this.mergeConflicts == null) {\n // notify UI that merge conflicts were detected and full details are loading\n this.mergeConflicts = { state: \"loading\" };\n this.mergeConflictsEmitter.emit(\"change\", this.mergeConflicts);\n }\n\n // More expensive full check for conflicts. Necessary if we see .gt/merge change, or if\n // we're already in a conflict and need to re-check if a conflict was resolved.\n\n const fetchStartTimestamp = Date.now();\n let output: Status;\n try {\n const proc = await this.runCommand([\"internal-only\", \"status\"]);\n output = JSON.parse(proc.stdout) as Status;\n } catch (err) {\n this.logger.error(`failed to check for merge conflicts: ${err}`);\n // To avoid being stuck in \"loading\" state forever, let's pretend there's no conflicts.\n this.mergeConflicts = undefined;\n this.mergeConflictsEmitter.emit(\"change\", this.mergeConflicts);\n return;\n }\n const branchName = await fs.promises\n .readFile(path.join(this.info.dotdir, \"rebase-merge\", \"head-name\"))\n .then(\n (contents) => {\n const contentsString = contents.toString();\n return contentsString.startsWith(\"refs/heads/\")\n ? contentsString.slice(\"refs/heads/\".length).trimEnd()\n : undefined;\n },\n () => undefined\n );\n\n this.mergeConflicts = computeNewConflicts(\n this.mergeConflicts,\n branchName,\n output,\n fetchStartTimestamp\n );\n this.logger.info(\n `repo ${this.mergeConflicts ? \"IS\" : \"IS NOT\"} in merge conflicts`,\n {\n mergeConflicts: this.mergeConflicts,\n files: this.mergeConflicts?.files,\n }\n );\n if (this.mergeConflicts) {\n const maxConflictsToLog = 20;\n const remainingConflicts = (this.mergeConflicts.files ?? [])\n .filter((conflict) => conflict.status === \"UNRESOLVED\")\n .map((conflict) => conflict.path)\n .slice(0, maxConflictsToLog);\n this.logger.info(\"remaining files with conflicts: \", {\n branchName,\n remainingConflicts,\n });\n }\n this.mergeConflictsEmitter.emit(\"change\", this.mergeConflicts);\n }),\n 100\n );\n\n public getMergeConflicts(): MergeConflicts | undefined {\n return this.mergeConflicts;\n }\n\n /**\n * Determine basic repo info including the root and important config values.\n * Resulting RepoInfo may have null fields if cwd is not a valid repo root.\n * Throws if `command` is not found.\n */\n static async getRepoInfo(\n command: string | undefined,\n logger: Logger,\n cwd: string\n ): Promise<RepoInfo> {\n const repoVersion = await findVersion(command, logger, cwd).catch(\n (err: Error) => err\n );\n if (repoVersion instanceof Error) {\n return { type: \"invalidCommand\", command: command ?? \"gt\" };\n }\n if (\n repoVersion !== \"local\" &&\n repoVersion !== \"dev\" &&\n semver.lt(repoVersion, MIN_REQUIRED_CLI_VERSION)\n ) {\n return {\n type: \"invalidVersion\",\n command: command ?? \"gt\",\n versionFound: repoVersion,\n versionRequired: MIN_REQUIRED_CLI_VERSION,\n };\n }\n\n const [profile, repoInfoRaw, preferredBranchEdit, createPrsAs] =\n await Promise.all([\n findRepoProfile(command, logger, cwd),\n findRepoInfo(command, logger, cwd),\n getConfig(command, logger, cwd, \"graphite.branch_edit\").then(\n (value) => (value as \"commit\" | \"amend\") ?? (\"amend\" as const)\n ),\n getConfig(command, logger, cwd, \"graphite.create_prs_as\").then(\n (value) => (value as \"draft\" | \"publish\") ?? (\"draft\" as const)\n ),\n ]);\n if (repoInfoRaw == null) {\n return { type: \"cwdNotARepository\", cwd };\n }\n\n let codeReviewSystem: CodeReviewSystem;\n if (typeof repoInfoRaw.remote === \"undefined\") {\n codeReviewSystem = { type: \"none\" };\n } else {\n const { owner, name, hostname } = repoInfoRaw.remote;\n codeReviewSystem = {\n type: \"github\",\n owner,\n repo: name,\n hostname,\n };\n }\n\n const result: RepoInfo = {\n type: \"success\",\n command,\n dotdir: repoInfoRaw.dotDir,\n repoRoot: repoInfoRaw.rootDir,\n codeReviewSystem,\n preferredBranchEdit,\n createPrsAs,\n profile,\n trunkBranch: repoInfoRaw.trunkBranch,\n };\n logger.info(\"repo info: \", result);\n return result;\n }\n\n /**\n * Run long-lived command which mutates the repository state.\n * Progress is streamed back as it comes in.\n * Operations are run immediately. For queueing, see OperationQueue.\n */\n async runOrQueueOperation(\n operation: RunnableOperation,\n onProgress: (progress: OperationProgress) => void,\n tracker: ServerSideTracker,\n cwd: string\n ): Promise<void> {\n await this.operationQueue.runOrQueueOperation(\n operation,\n onProgress,\n tracker,\n cwd\n );\n }\n\n /**\n * Abort the running operation if it matches the given id.\n */\n abortRunningOpeation(operationId: string) {\n this.operationQueue.abortRunningOperation(operationId);\n }\n\n /**\n * Called by this.operationQueue in response to runOrQueueOperation when an operation is ready to actually run.\n */\n private normalizeOperationArgs(\n cwd: string,\n args: Array<CommandArg>\n ): Array<string> {\n const repoRoot = unwrap(this.info.repoRoot);\n\n return args.map((arg) => {\n if (typeof arg === \"object\") {\n switch (arg.type) {\n case \"repo-relative-file\":\n return path.normalize(\n path.relative(cwd, path.join(repoRoot, arg.path))\n );\n\n case \"succeedable-revset\":\n return `max(successors(${arg.revset}))`;\n }\n }\n return arg;\n });\n }\n\n /**\n * Called by this.operationQueue in response to runOrQueueOperation when an operation is ready to actually run.\n */\n private async runOperation(\n operation: {\n id: string;\n args: Array<CommandArg>;\n stdin?: string;\n },\n onProgress: OperationCommandProgressReporter,\n cwd: string,\n signal: AbortSignal\n ): Promise<void> {\n const cwdRelativeArgs = this.normalizeOperationArgs(cwd, operation.args);\n const { stdin } = operation;\n const { command, args, options } = getExecParams(\n this.info.command,\n cwdRelativeArgs,\n cwd,\n stdin ? { input: stdin } : undefined\n );\n\n this.logger.log(\"run operation: \", command, cwdRelativeArgs.join(\" \"));\n\n const execution = execa(command, args, {\n ...options,\n stdout: \"pipe\",\n stderr: \"pipe\",\n });\n // It would be more appropriate to call this in reponse to execution.on('spawn'), but\n // this seems to be inconsistent about firing in all versions of node.\n // Just send spawn immediately. Errors during spawn like ENOENT will still be reported by `exit`.\n onProgress(\"spawn\");\n execution.stdout?.on(\"data\", (data) => {\n onProgress(\"stdout\", data.toString());\n });\n execution.stderr?.on(\"data\", (data) => {\n onProgress(\"stderr\", data.toString());\n });\n void execution.on(\"exit\", (exitCode) => {\n onProgress(\"exit\", exitCode || 0);\n });\n signal.addEventListener(\"abort\", () => {\n this.logger.log(\"kill operation: \", command, cwdRelativeArgs.join(\" \"));\n });\n handleAbortSignalOnProcess(execution, signal);\n await execution;\n }\n\n setPageFocus(page: string, state: PageVisibility) {\n this.pageFocusTracker.setState(page, state);\n }\n\n /** Return the latest fetched value for UncommittedChanges. */\n getUncommittedChanges(): FetchedUncommittedChanges | null {\n return this.uncommittedChanges;\n }\n\n subscribeToUncommittedChanges(\n callback: (result: FetchedUncommittedChanges) => unknown\n ): Disposable {\n this.uncommittedChangesEmitter.on(\"change\", callback);\n return {\n dispose: () => {\n this.uncommittedChangesEmitter.off(\"change\", callback);\n },\n };\n }\n\n fetchUncommittedChanges = debounce(\n serializeAsyncCall(async () => {\n const fetchStartTimestamp = Date.now();\n try {\n this.uncommittedChangesBeginFetchingEmitter.emit(\"start\");\n const proc = await this.runCommand([\"internal-only\", \"status\"]);\n const files = (JSON.parse(proc.stdout) as Status).files.map(\n (change) => ({\n ...change,\n path: removeLeadingPathSep(change.path),\n })\n );\n\n this.uncommittedChanges = {\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n files: { value: files },\n };\n this.uncommittedChangesEmitter.emit(\"change\", this.uncommittedChanges);\n } catch (err) {\n this.logger.error(\"Error fetching files: \", err);\n if (isProcessError(err)) {\n if (err.stderr.includes(\"checkout is currently in progress\")) {\n this.logger.info(\n \"Ignoring `hg status` error caused by in-progress checkout\"\n );\n return;\n }\n }\n // emit an error, but don't save it to this.uncommittedChanges\n this.uncommittedChangesEmitter.emit(\"change\", {\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n files: {\n error: err instanceof Error ? err : new Error(err as string),\n },\n });\n }\n }),\n 100\n );\n\n /** Return the latest fetched value for SmartlogCommits. */\n getSmartlogCommits(): FetchedCommits | null {\n return this.smartlogCommits;\n }\n\n subscribeToSmartlogCommitsChanges(\n callback: (result: FetchedCommits) => unknown\n ) {\n this.smartlogCommitsChangesEmitter.on(\"change\", callback);\n return {\n dispose: () => {\n this.smartlogCommitsChangesEmitter.off(\"change\", callback);\n },\n };\n }\n\n subscribeToSmartlogCommitsBeginFetching(\n callback: (isFetching: boolean) => unknown\n ) {\n const onStart = () => callback(true);\n this.smartlogCommitsBeginFetchingEmitter.on(\"start\", onStart);\n return {\n dispose: () => {\n this.smartlogCommitsBeginFetchingEmitter.off(\"start\", onStart);\n },\n };\n }\n\n subscribeToUncommittedChangesBeginFetching(\n callback: (isFetching: boolean) => unknown\n ) {\n const onStart = () => callback(true);\n this.uncommittedChangesBeginFetchingEmitter.on(\"start\", onStart);\n return {\n dispose: () => {\n this.uncommittedChangesBeginFetchingEmitter.off(\"start\", onStart);\n },\n };\n }\n\n fetchSmartlogCommits = debounce(\n serializeAsyncCall(async () => {\n const fetchStartTimestamp = Date.now();\n try {\n this.smartlogCommitsBeginFetchingEmitter.emit(\"start\");\n const proc = await this.runCommand([\"internal-only\", \"log\"]);\n const commits = parseCommitInfoOutput(this.logger, proc.stdout.trim());\n if (commits.length === 0) {\n throw new Error(ErrorShortMessages.NoCommitsFetched);\n }\n this.smartlogCommits = {\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n commits: { value: commits },\n };\n this.smartlogCommitsChangesEmitter.emit(\"change\", this.smartlogCommits);\n } catch (err) {\n this.logger.error(\"Error fetching commits: \", err);\n this.smartlogCommitsChangesEmitter.emit(\"change\", {\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n commits: {\n error: err instanceof Error ? err : new Error(err as string),\n },\n });\n }\n }),\n 100\n );\n\n /** Watch for changes to the head commit, e.g. from checking out a new commit */\n subscribeToHeadCommit(callback: (head: BranchInfo) => unknown) {\n let headCommit = this.smartlogCommits?.commits.value?.find(\n (commit) => commit.isHead\n );\n if (headCommit != null) {\n callback(headCommit);\n }\n const onData = (data: FetchedCommits) => {\n const newHead = data?.commits.value?.find((commit) => commit.isHead);\n if (newHead != null && newHead.branch !== headCommit?.branch) {\n callback(newHead);\n headCommit = newHead;\n }\n };\n this.smartlogCommitsChangesEmitter.on(\"change\", onData);\n return {\n dispose: () => {\n this.smartlogCommitsChangesEmitter.off(\"change\", onData);\n },\n };\n }\n\n private catLimiter = new RateLimiter(MAX_SIMULTANEOUS_CAT_CALLS, (s) =>\n this.logger.info(\"[cat]\", s)\n );\n /** Return file content for the parent of a given revset, e.g. hash or `.` */\n public relativeCat(\n file: AbsolutePath,\n comparison: ComparisonForRelativeCat\n ): Promise<string> {\n const relativePath = path.relative(this.info.repoRoot, file);\n\n return this.catLimiter.enqueueRun(async () => {\n // For `gt relative-cat`, we want the output of the command verbatim.\n const options = { stripFinalNewline: false };\n return (\n await this.runCommand(\n [\n \"internal-only\",\n \"relative-cat\",\n ...this.catArgs(comparison, relativePath),\n ],\n /*cwd=*/ undefined,\n options\n )\n ).stdout;\n });\n }\n\n public cat(file: AbsolutePath, ref: string): Promise<string> {\n const relativePath = path.relative(this.info.repoRoot, file);\n\n return this.catLimiter.enqueueRun(async () => {\n // For `gt cat`, we want the output of the command verbatim.\n const options = { stripFinalNewline: false };\n return (\n await this.runCommand(\n [\"internal-only\", \"cat\", ref, relativePath],\n /*cwd=*/ undefined,\n options\n )\n ).stdout;\n });\n }\n\n private catArgs(\n comparison: ComparisonForRelativeCat,\n file: string\n ): Array<string> {\n switch (comparison.type) {\n case ComparisonType.UncommittedChanges:\n return [\"uncommitted\", file];\n\n case ComparisonType.HeadChanges:\n return [\"head\", file];\n\n case ComparisonType.StackChanges:\n return [\"stack\", file];\n\n case ComparisonType.Committed:\n return [\"stack\", file, \"--ref\", comparison.hash];\n }\n }\n\n public getAllDiffIds(): Array<PRNumber> {\n return (\n this.getSmartlogCommits()\n ?.commits.value?.map((commit) => commit.pr?.number)\n .filter(notEmpty) ?? []\n );\n }\n\n public runCommand(\n args: Array<string>,\n cwd?: string,\n options?: execa.Options\n ): execa.ExecaChildProcess<string> {\n return runCommand({\n command: this.info.command,\n args,\n logger: this.logger,\n cwd: unwrap(cwd ?? this.info.repoRoot),\n options,\n });\n }\n\n public getConfig(configName: string): Promise<string | undefined> {\n return getConfig(\n this.info.command,\n this.logger,\n this.info.repoRoot,\n configName\n );\n }\n public setConfig(\n level: ConfigLevel,\n configName: string,\n configValue: string\n ): Promise<void> {\n return setConfig({\n command: this.info.command,\n logger: this.logger,\n cwd: this.info.repoRoot,\n level,\n configName,\n configValue,\n });\n }\n}\n\nexport function runCommand({\n command: command_,\n args: args_,\n logger,\n cwd,\n options: options_,\n}: {\n command?: string;\n args: Array<string>;\n logger?: Logger;\n cwd: string;\n options?: execa.Options;\n}): execa.ExecaChildProcess {\n const { command, args, options } = getExecParams(\n command_,\n args_,\n cwd,\n options_\n );\n if (logger) {\n logger.log(\"run command: \", command, ...args, options);\n }\n\n return execa(command, args, options);\n}\n\nasync function findVersion(\n command: string | undefined,\n logger: Logger,\n cwd: string\n): Promise<string> {\n try {\n return (\n await runCommand({\n command,\n args: [\"--version\"],\n logger,\n cwd,\n })\n ).stdout;\n } catch (error) {\n logger.error(`Failed to find gt version in ${cwd}`, error);\n throw error;\n }\n}\n\nasync function findRepoInfo(\n command: string | undefined,\n logger: Logger,\n cwd: string\n): Promise<RepoInfoFromCLI | undefined> {\n try {\n return JSON.parse(\n (\n await runCommand({\n command,\n args: [\"internal-only\", \"repo-info\"],\n logger,\n cwd,\n })\n ).stdout\n );\n } catch (error) {\n logger.error(`Failed to find repository info in ${cwd}`, error);\n return undefined;\n }\n}\n\nasync function findRepoProfile(\n command: string | undefined,\n logger: Logger,\n cwd: string\n): Promise<{\n appUrl: string;\n}> {\n try {\n return JSON.parse(\n (\n await runCommand({\n command,\n args: [\"internal-only\", \"profile\"],\n logger,\n cwd,\n })\n ).stdout\n );\n } catch (error) {\n logger.error(`Failed to find repository profile in ${cwd}`, error);\n return {\n appUrl: \"https://app.graphite.dev/\",\n };\n }\n}\n\nasync function getConfig(\n command: string | undefined,\n logger: Logger,\n cwd: string,\n configName: string\n): Promise<string | undefined> {\n try {\n return (\n await runCommand({\n command,\n args: [\"internal-only\", \"config\", configName],\n logger,\n cwd,\n })\n ).stdout.trim();\n } catch {\n // `config` exits with status 1 if config is not set. This is not an error.\n return undefined;\n }\n}\n\n// Eventually add repo\ntype ConfigLevel = \"user\";\nasync function setConfig({\n command,\n logger,\n cwd,\n level,\n configName,\n configValue,\n}: {\n command?: string;\n logger: Logger;\n cwd: string;\n level: ConfigLevel;\n configName: string;\n configValue: string;\n}): Promise<void> {\n await runCommand({\n command,\n args: [\n \"internal-only\",\n \"set-config\",\n `--level`,\n level,\n configName,\n configValue,\n ],\n logger,\n cwd,\n });\n}\n\nfunction getExecParams(\n command: string | undefined,\n args_: Array<string>,\n cwd: string,\n options_?: execa.Options\n): {\n command: string;\n args: Array<string>;\n options: execa.Options;\n} {\n let args = [...args_];\n // expandHomeDir is not supported on windows\n if (process.platform !== \"win32\") {\n // commit/amend have unconventional ways of escaping slashes from messages.\n // We have to 'unescape' to make it work correctly.\n args = args.map((arg) => arg.replace(/\\\\\\\\/g, \"\\\\\"));\n }\n const options = {\n ...options_,\n env: {\n LANG: \"en_US.utf-8\", // make sure to use unicode if user hasn't set LANG themselves\n EDITOR: undefined,\n GRAPHITE_INTERACTIVE: \"true\",\n GIT_OPTIONAL_LOCKS: \"0\", // workaround for not grabbing index.lock until cli change lands\n },\n cwd,\n };\n\n // Hack: for pkg'd CLI, pointing to the executable at itself doesn't work. We need to treat it like a node script.\n if (!command && process.argv[1].startsWith(\"/snapshot/\")) {\n command = process.argv[0];\n args = [\"/snapshot/monologue/apps/public/cli/dist/graphite.js\", ...args];\n } else if (!command) {\n command = \"gt\";\n }\n\n // TODO (GT-11365): we could run with systemd for better OOM protection when on linux\n return { command, args, options };\n}\n\n/**\n * Extract CommitInfos from log calls that use FETCH_TEMPLATE.\n */\nexport function parseCommitInfoOutput(\n logger: Logger,\n output: string\n): SmartlogCommits {\n let commitInfos: Array<BranchInfo> = [];\n try {\n commitInfos = JSON.parse(output);\n } catch (err) {\n logger.error(\"failed to parse branch info\", err);\n }\n return commitInfos;\n}\nexport function parseSuccessorData(\n successorData: string\n): SuccessorInfo | undefined {\n const [successorString] = successorData.split(\",\", 1); // we're only interested in the first available mutation\n if (!successorString) {\n return undefined;\n }\n const successor = successorString.split(\":\");\n return {\n hash: successor[1],\n type: successor[0],\n };\n}\n\n/**\n * Returns absolute path for a repo-relative file path.\n * If the path \"escapes\" the repository's root dir, returns null\n * Used to validate that a file path does not \"escape\" the repo, and the file can safely be modified on the filesystem.\n * absolutePathForFileInRepo(\"foo/bar/file.txt\", repo) -> /path/to/repo/foo/bar/file.txt\n * absolutePathForFileInRepo(\"../file.txt\", repo) -> null\n */\nexport function absolutePathForFileInRepo(\n filePath: RepoRelativePath,\n repo: Repository,\n pathMod = path\n): AbsolutePath | null {\n // Note that resolve() is contractually obligated to return an absolute path.\n const fullPath = pathMod.resolve(repo.info.repoRoot, filePath);\n // Prefix checks on paths can be footguns on Windows for C:\\\\ vs c:\\\\, but since\n // we use the same exact path check here and in the resolve, there should be\n // no incompatibility here.\n if (fullPath.startsWith(repo.info.repoRoot + pathMod.sep)) {\n return fullPath;\n } else {\n return null;\n }\n}\n\nexport function repoRelativePathForAbsolutePath(\n absolutePath: AbsolutePath,\n repo: Repository,\n pathMod = path\n): RepoRelativePath {\n return pathMod.relative(repo.info.repoRoot, absolutePath);\n}\n\nfunction isProcessError(s: unknown): s is { stderr: string } {\n return s != null && typeof s === \"object\" && \"stderr\" in s;\n}\n\nfunction computeNewConflicts(\n previousConflicts: MergeConflicts,\n branchName: string | undefined,\n commandOutput: Status,\n fetchStartTimestamp: number\n): MergeConflicts | undefined {\n const newConflictData = commandOutput;\n if (!newConflictData?.conflicts || !branchName) {\n return undefined;\n }\n\n const newConflicts = newConflictData.files.filter(\n (file) => file.status === \"UNRESOLVED\"\n );\n const conflicts: MergeConflicts = {\n state: \"loaded\",\n branchName,\n files: [],\n fetchStartTimestamp,\n fetchCompletedTimestamp: Date.now(),\n };\n if (previousConflicts?.files != null && previousConflicts.files.length > 0) {\n // we saw conflicts before, some of which might now be resolved. Preserve previous ordering.\n const newConflictSet = new Set(\n newConflicts.map((conflict) => conflict.path)\n );\n conflicts.files = previousConflicts.files.map((conflict) =>\n newConflictSet.has(conflict.path)\n ? { path: conflict.path, status: \"UNRESOLVED\" }\n : // 'R' is overloaded to mean \"removed\" for `gt status` but 'Resolved' for `gt resolve --list`\n // let's re-write this to make the UI layer simpler.\n { path: conflict.path, status: \"RESOLVED\" }\n );\n } else {\n conflicts.files = newConflicts.map((conflict) => ({\n path: conflict.path,\n status: \"UNRESOLVED\",\n }));\n }\n\n return conflicts;\n}\n","import fs from \"fs\";\nimport path from \"path\";\n\n/**\n * Check if file path exists.\n * May still throw non-ENOENT fs access errors.\n * Note: this works on Node 10.x\n */\nexport function exists(file: string): Promise<boolean> {\n return fs.promises\n .stat(file)\n .then(() => true)\n .catch((error: NodeJS.ErrnoException) => {\n if (error.code === \"ENOENT\") {\n return false;\n } else {\n throw error;\n }\n });\n}\n\n/**\n * Add a trailing path sep (/ or \\) if one does not exist\n */\nexport function ensureTrailingPathSep(p: string): string {\n if (p.endsWith(path.sep)) {\n return p;\n }\n return p + path.sep;\n}\n\n/**\n * Add a trailing path sep (/ or \\) if one does not exist\n */\nexport function removeLeadingPathSep(p: string): string {\n if (p.startsWith(path.sep)) {\n return p.slice(1);\n }\n return p;\n}\n","import type {\n AbsolutePath,\n Logger,\n PlatformSpecificClientToServerMessages,\n ServerToClientMessage,\n ValidatedRepoInfo,\n} from \"@withgraphite/gti-shared\";\nimport { unwrap } from \"@withgraphite/gti-shared\";\nimport { spawn } from \"child_process\";\nimport chokidar from \"chokidar\";\nimport { default as path, default as pathModule } from \"path\";\n\nimport type { Repository } from \"./Repository\";\n\nexport type KindOfChange =\n | \"uncommitted changes\"\n | \"branches\"\n | \"merge conflicts\"\n | \"everything\";\n\n/**\n * Platform-specific server-side API for each target: vscode extension host, electron standalone, browser, ...\n * See also platform.ts\n */\nexport interface ServerPlatform {\n platformName: string;\n handleMessageFromClient(\n repo: Repository | undefined,\n message: PlatformSpecificClientToServerMessages,\n postMessage: (message: ServerToClientMessage) => void,\n onDispose: (disapose: () => unknown) => void\n ): void | Promise<void>;\n watchForChanges(\n repoInfo: ValidatedRepoInfo,\n logger: Logger,\n changeCallback: (kind: KindOfChange) => unknown\n ): (() => void) | undefined;\n}\n\nexport const browserServerPlatform: ServerPlatform = {\n platformName: \"browser\",\n watchForChanges: (\n repoInfo: ValidatedRepoInfo,\n logger: Logger,\n changeCallback: (kind: KindOfChange) => unknown\n ) => {\n const { repoRoot, dotdir } = repoInfo;\n\n const dotDirWatcher = chokidar.watch(dotdir, { cwd: dotdir });\n dotDirWatcher.on(\"ready\", () => {\n // if the repo changes, also recheck files. E.g. if you commit, your uncommitted changes will also change.\n changeCallback(\"everything\");\n });\n dotDirWatcher.on(\"all\", (_event, path) => {\n if (path.startsWith(\"rebase-merge\")) {\n changeCallback(\"merge conflicts\");\n }\n if (path.startsWith(\"index\") || path.startsWith(\"HEAD\")) {\n changeCallback(\"uncommitted changes\");\n }\n if (\n path.startsWith(\"refs/heads\") ||\n path.startsWith(\"refs/branch-metadata\") ||\n path.startsWith(\"HEAD\")\n ) {\n changeCallback(\"branches\");\n }\n });\n\n const relativeDotDir = path.relative(repoRoot, dotdir);\n\n const worktreeWatcher = chokidar.watch(repoRoot, {\n cwd: repoRoot,\n ignored: `${relativeDotDir}/**`,\n });\n worktreeWatcher.on(\"all\", () => {\n changeCallback(\"uncommitted changes\");\n });\n return () => {\n worktreeWatcher\n .close()\n .catch(() =>\n logger.error(\n `failed to close chokidar worktree watcher for ${repoRoot}`\n )\n );\n dotDirWatcher\n .close()\n .catch(() =>\n logger.error(`failed to close chokidar dotdir watcher for ${dotdir}`)\n );\n };\n },\n handleMessageFromClient: (\n repo: Repository | undefined,\n message: PlatformSpecificClientToServerMessages\n ) => {\n switch (message.type) {\n case \"platform/openFile\": {\n const path: AbsolutePath = pathModule.join(\n unwrap(repo?.info.repoRoot),\n message.path\n );\n let command;\n if (command == null) {\n // use OS-builtin open command to open files\n // (which may open different file extensions with different programs)\n // TODO (GT-11363): add a config option to determine which program to launch\n switch (process.platform) {\n case \"darwin\":\n command = \"/usr/bin/open\";\n break;\n\n case \"win32\":\n command = \"notepad.exe\";\n break;\n\n case \"linux\":\n command = \"xdg-open\";\n break;\n\n default:\n }\n }\n if (command) {\n // Because the GTI server is likely running in the background and is\n // no longer attached to a terminal, this is designed for the case\n // where the user opens the file in a windowed editor (hence\n // `windowsHide: false`, which is the default for\n // `child_process.spawn()`, but not for `execa()`):\n //\n // - For users using a simple one-window-per-file graphical text\n // editor, like notepad.exe, this is relatively straightforward.\n // - For users who prefer a terminal-based editor, like Emacs,\n // a conduit like EmacsClient would be required.\n //\n // Further, killing GTI should not kill the editor, so this follows\n // the pattern for spawning an independent, long-running process in\n // Node.js as described here:\n //\n // https://nodejs.org/docs/latest-v10.x/api/child_process.html#child_process_options_detached\n repo?.logger.log(\"open file\", path);\n // TODO (GT-11364): Report error if spawn() fails?\n const proc = spawn(command, [path], {\n detached: true,\n stdio: \"ignore\",\n windowsHide: false,\n windowsVerbatimArguments: true,\n });\n // Silent error. Don't crash the server process.\n proc.on(\"error\", (err) => {\n repo?.logger.log(\"failed to open\", path, err);\n });\n proc.unref();\n }\n break;\n }\n\n default:\n }\n },\n};\n","import type {\n AbsolutePath,\n Logger,\n RepositoryError,\n ValidatedRepoInfo,\n} from \"@withgraphite/gti-shared\";\n\nimport { ensureTrailingPathSep } from \"./fs\";\nimport { Repository } from \"./Repository\";\nimport type { ServerPlatform } from \"./serverPlatform\";\nimport { TypedEventEmitter } from \"./TypedEventEmitter\";\n\n/**\n * Reference-counting access to a {@link Repository}, via a Promise.\n * Be sure to `unref()` when no longer needed.\n */\nexport interface RepositoryReference {\n promise: Promise<Repository | RepositoryError>;\n unref: () => unknown;\n}\n\n/**\n * We return `RepositoryReference`s synchronously before we have the Repository,\n * but reference counts should be associated with the actual async constructed Repository,\n * which is why we can't return RefCounted<Repository> directly.\n */\nclass RepositoryReferenceImpl implements RepositoryReference {\n constructor(\n public promise: Promise<Repository | RepositoryError>,\n private disposeFunc: () => void\n ) {}\n public unref() {\n if (!this.disposed) {\n this.disposed = true;\n this.disposeFunc();\n }\n }\n\n internalReference: RefCounted<Repository> | undefined;\n disposed = false;\n}\n\nclass RefCounted<T extends { dispose: () => void }> {\n constructor(public value: T) {}\n private references = 0;\n\n public isDisposed = false;\n public ref() {\n this.references++;\n }\n public getNumberOfReferences() {\n return this.references;\n }\n public dispose() {\n this.references--;\n if (!this.isDisposed && this.references === 0) {\n this.isDisposed = true;\n this.value.dispose();\n }\n }\n}\n\n/**\n * Allow re-using Repository instances by storing instances by path,\n * and controlling how Repositories are created.\n *\n * Some async work is needed to construct repositories (finding repo root dir),\n * so it's possible to duplicate some work if multiple repos are constructed at similar times.\n * We still enable Repository re-use in this case by double checking for pre-existing Repos at the last second.\n */\nclass RepositoryCache {\n // allow mocking Repository in tests\n constructor(private RepositoryType = Repository) {}\n\n /**\n * Previously distributed RepositoryReferences, keyed by repository root path\n * Note that Repositories do not define their own `cwd`, and can be re-used across cwds.\n */\n private reposByRoot = new Map<AbsolutePath, RefCounted<Repository>>();\n private activeReposEmitter = new TypedEventEmitter<\"change\", undefined>();\n\n private lookup(dirGuess: AbsolutePath): RefCounted<Repository> | undefined {\n for (const repo of this.reposByRoot.values()) {\n if (\n dirGuess === repo.value.info.repoRoot ||\n dirGuess.startsWith(ensureTrailingPathSep(repo.value.info.repoRoot))\n ) {\n if (!repo.isDisposed) {\n return repo;\n }\n }\n }\n return undefined;\n }\n\n /**\n * Create a new Repository, or re-use if one already exists.\n * Repositories are reference-counted to ensure they can be disposed when no longer needed.\n */\n getOrCreate(\n cmd: string | undefined,\n platform: ServerPlatform,\n logger: Logger,\n cwd: string\n ): RepositoryReference {\n // Fast path: if this cwd is already a known repo root, we can use it directly.\n // This only works if the cwd happens to be the repo root.\n const found = this.lookup(cwd);\n if (found) {\n found.ref();\n return new RepositoryReferenceImpl(Promise.resolve(found.value), () =>\n found.dispose()\n );\n }\n\n // More typically, we can re-use a Repository among different cwds:\n\n // eslint-disable-next-line prefer-const\n let ref: RepositoryReferenceImpl;\n const lookupRepoInfoAndReuseIfPossible = async (): Promise<\n Repository | RepositoryError\n > => {\n // TODO (GT-11369): we should rate limit how many getRepoInfos we run at a time, and make other callers just wait.\n // this would guard against querying lots of redundant paths within the same repo.\n // This is probably not necessary right now, but would be useful for a VS Code extension where we need to query\n // individual file paths to add diff gutters.\n const repoInfo = await this.RepositoryType.getRepoInfo(cmd, logger, cwd);\n logger.info(\"repoInfo\", repoInfo);\n // important: there should be no `await` points after here, to ensure there is no race when re-using Repositories.\n if (repoInfo.type !== \"success\") {\n // No repository found at this root, or some other error prevents the repo from being created\n return repoInfo;\n }\n\n if (ref.disposed) {\n // If the reference is disposed, the caller gave up while waiting for the repo to be created.\n // make sure we don't create a dangling Repository.\n return {\n type: \"unknownError\",\n error: new Error(\"Repository already disposed\"),\n };\n }\n\n // Now that we've spent some async time to determine this repo's actual root,\n // we can check if we already have a reference to it saved.\n // This way, we can still re-use a Repository, and only risk duplicating `getRepoInfo` work.\n const newlyFound = this.lookup(repoInfo.repoRoot);\n if (newlyFound) {\n // if it is found now, it means either the cwd differs from the repo root (lookup fails), or\n // another instance was created at the same time and finished faster than this one (lookup failed before, but succeeds now).\n\n newlyFound.ref();\n ref.internalReference = newlyFound;\n return newlyFound.value;\n }\n\n // This is where we actually start new subscriptions and trigger work, so we should only do this\n // once we're sure we don't have a repository to re-use.\n const repo = new this.RepositoryType(\n repoInfo as ValidatedRepoInfo, // repoInfo is now guaranteed to have these root/dotdir set\n platform,\n logger\n );\n\n const internalRef = new RefCounted(repo);\n internalRef.ref();\n ref.internalReference = internalRef;\n this.reposByRoot.set(repoInfo.repoRoot, internalRef);\n this.activeReposEmitter.emit(\"change\");\n return repo;\n };\n ref = new RepositoryReferenceImpl(\n lookupRepoInfoAndReuseIfPossible(),\n () => {\n if (ref.internalReference) {\n ref.internalReference.dispose();\n }\n ref.unref();\n }\n );\n return ref;\n }\n\n /**\n * Lookup a cached repository without creating a new one if it doens't exist\n */\n public cachedRepositoryForPath(path: AbsolutePath): Repository | undefined {\n const ref = this.lookup(path);\n return ref?.value;\n }\n\n public onChangeActiveRepos(\n cb: (repos: Array<Repository>) => unknown\n ): () => unknown {\n const onChange = () => {\n cb([...this.reposByRoot.values()].map((ref) => ref.value));\n };\n this.activeReposEmitter.on(\"change\", onChange);\n // start with initial repos set\n onChange();\n return () => this.activeReposEmitter.off(\"change\", onChange);\n }\n\n /** Clean up all known repos. Mostly useful for testing. */\n clearCache() {\n this.reposByRoot.forEach((value) => value.dispose());\n this.reposByRoot = new Map();\n this.activeReposEmitter.removeAllListeners();\n }\n\n public numberOfActiveServers(): number {\n let numActive = 0;\n for (const repo of this.reposByRoot.values()) {\n numActive += repo.getNumberOfReferences();\n }\n return numActive;\n }\n}\n\nexport const __TEST__ = { RepositoryCache };\n\nexport const repositoryCache = new RepositoryCache();\n","import type {\n AuthInfo,\n ChangedFiles,\n} from \"@withgraphite/gti-cli-shared-types\";\nimport {\n type ClientToServerMessage,\n type ClientToServerMessageWithPayload,\n type Disposable,\n type FetchedCommits,\n type FetchedUncommittedChanges,\n type Logger,\n type MergeConflicts,\n type PlatformSpecificClientToServerMessages,\n type RepositoryError,\n type Result,\n type ServerToClientMessage,\n ComparisonType,\n deserializeFromString,\n randomId,\n serializeToString,\n unwrap,\n} from \"@withgraphite/gti-shared\";\nimport execa from \"execa\";\nimport fs from \"fs\";\nimport { realpath } from \"fs/promises\";\nimport which from \"which\";\n\nimport type { ClientConnection } from \".\";\nimport type { ServerSideTracker } from \"./analytics/serverSideTracker\";\nimport {\n absolutePathForFileInRepo,\n Repository,\n runCommand,\n} from \"./Repository\";\nimport type { RepositoryReference } from \"./RepositoryCache\";\nimport { repositoryCache } from \"./RepositoryCache\";\nimport type { ServerPlatform } from \"./serverPlatform\";\nimport { findPublicAncestor, internalOnlyDiffArgsForComparison } from \"./utils\";\n\ntype IncomingMessageWithPayload = ClientToServerMessageWithPayload;\nexport type IncomingMessage = ClientToServerMessage;\nexport type OutgoingMessage = ServerToClientMessage;\n\ntype GeneralMessage = IncomingMessage &\n (\n | { type: \"changeCwd\" }\n | { type: \"requestRepoInfo\" }\n | { type: \"requestApplicationInfo\" }\n | { type: \"fileBugReport\" }\n | { type: \"track\" }\n | { type: \"installCli\" }\n | { type: \"updateCli\" }\n | { type: \"fetchAllBranches\" }\n | { type: \"initializeRepository\" }\n );\ntype WithRepoMessage = Exclude<IncomingMessage, GeneralMessage>;\n\n/**\n * Return true if a ClientToServerMessage is a ClientToServerMessageWithPayload\n */\nfunction expectsBinaryPayload(\n message: unknown\n): message is ClientToServerMessageWithPayload {\n return (\n message != null &&\n typeof message === \"object\" &&\n (message as ClientToServerMessageWithPayload).hasBinaryPayload === true\n );\n}\n\n/**\n * Message passing channel built on top of ClientConnection.\n * Use to send and listen for well-typed events with the client\n *\n * Note: you must set the current repository to start sending data back to the client.\n */\nexport class ServerToClientAPI {\n private listenersByType = new Map<\n string,\n Set<(message: IncomingMessage) => void | Promise<void>>\n >();\n private incomingListener: Disposable;\n\n /** Disposables that must be disposed whenever the current repo is changed */\n private repoDisposables: Array<Disposable> = [];\n private subscriptions = new Map<string, Disposable>();\n private activeRepoRef: RepositoryReference | undefined;\n\n private queuedMessages: Array<IncomingMessage> = [];\n private currentState:\n | { type: \"loading\" }\n | { type: \"repo\"; repo: Repository; cwd: string }\n | { type: \"error\"; error: RepositoryError } = { type: \"loading\" };\n\n private pageId = randomId();\n\n constructor(\n private platform: ServerPlatform,\n private connection: ClientConnection,\n private tracker: ServerSideTracker,\n private logger: Logger\n ) {\n // messages with binary payloads are sent as two post calls. We first get the JSON message, then the binary payload,\n // which we will reconstruct together.\n let messageExpectingBinaryFollowup: ClientToServerMessageWithPayload | null =\n null;\n this.incomingListener = this.connection.onDidReceiveMessage(\n (buf, isBinary) => {\n if (isBinary) {\n if (messageExpectingBinaryFollowup == null) {\n connection.logger?.error(\n \"Error: got a binary message when not expecting one\"\n );\n return;\n }\n // TODO (GT-11366): we don't handle queueing up messages with payloads...\n this.handleIncomingMessageWithPayload(\n messageExpectingBinaryFollowup,\n buf\n );\n messageExpectingBinaryFollowup = null;\n return;\n } else if (messageExpectingBinaryFollowup != null) {\n connection.logger?.error(\n \"Error: didnt get binary payload after a message that requires one\"\n );\n messageExpectingBinaryFollowup = null;\n return;\n }\n const message = buf.toString(\"utf-8\");\n const data = deserializeFromString(message) as IncomingMessage;\n if (expectsBinaryPayload(data)) {\n // remember this message, and wait to get the binary payload before handling it\n messageExpectingBinaryFollowup = data;\n return;\n }\n\n // When the client is connected, we want to immediately start listening to messages.\n // However, we can't properly respond to these messages until we have a repository set up.\n // Queue up messages until a repository is set.\n if (this.currentState.type === \"loading\") {\n this.queuedMessages.push(data);\n } else {\n try {\n this.handleIncomingMessage(data);\n } catch (err) {\n connection.logger?.error(\n \"error handling incoming message: \",\n data,\n err\n );\n }\n }\n }\n );\n }\n\n private setRepoError(error: RepositoryError) {\n this.disposeRepoDisposables();\n\n this.currentState = { type: \"error\", error };\n\n this.tracker.context.setRepo(undefined);\n\n this.processQueuedMessages();\n }\n\n private setCurrentRepo(repo: Repository, cwd: string) {\n this.disposeRepoDisposables();\n\n this.currentState = { type: \"repo\", repo, cwd };\n\n this.tracker.context.setRepo(repo);\n\n if (repo.codeReviewProvider != null) {\n this.repoDisposables.push(\n repo.codeReviewProvider.onChangeDiffSummaries((value) => {\n this.postMessage({ type: \"fetchedDiffSummaries\", summaries: value });\n })\n );\n }\n\n this.repoDisposables.push(\n repo.subscribeToHeadCommit((head) => {\n const allCommits = repo.getSmartlogCommits();\n const ancestor = findPublicAncestor(allCommits?.commits.value, head);\n this.tracker.track(\"HeadCommitChanged\", {\n extras: {\n hash: head.branch,\n public: ancestor?.branch,\n },\n });\n })\n );\n\n this.processQueuedMessages();\n }\n\n postMessage(message: OutgoingMessage) {\n void this.connection.postMessage(serializeToString(message)).catch(() => {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to post message to client\");\n });\n }\n\n /** Get a repository reference for a given cwd, and set that as the active repo. */\n setActiveRepoForCwd(newCwd: string) {\n if (this.activeRepoRef !== undefined) {\n this.activeRepoRef.unref();\n }\n this.logger.info(`Setting active repo cwd to ${newCwd}`);\n // Set as loading right away while we determine the new cwd's repo\n // This ensures new messages coming in will be queued and handled only with the new repository\n this.currentState = { type: \"loading\" };\n const command = this.connection.command;\n this.activeRepoRef = repositoryCache.getOrCreate(\n command,\n this.platform,\n this.logger,\n newCwd\n );\n void this.activeRepoRef.promise.then((repoOrError) => {\n if (repoOrError instanceof Repository) {\n this.setCurrentRepo(repoOrError, newCwd);\n } else {\n this.setRepoError(repoOrError);\n }\n });\n }\n\n dispose() {\n this.incomingListener.dispose();\n this.disposeRepoDisposables();\n\n if (this.activeRepoRef !== undefined) {\n this.activeRepoRef.unref();\n }\n }\n\n private disposeRepoDisposables() {\n this.repoDisposables.forEach((disposable) => disposable.dispose());\n this.repoDisposables = [];\n\n this.subscriptions.forEach((sub) => sub.dispose());\n this.subscriptions.clear();\n }\n\n private processQueuedMessages() {\n for (const message of this.queuedMessages) {\n try {\n this.handleIncomingMessage(message);\n } catch (err) {\n this.connection.logger?.error(\n \"error handling queued message: \",\n message,\n err\n );\n }\n }\n this.queuedMessages = [];\n }\n\n private handleIncomingMessageWithPayload(\n message: IncomingMessageWithPayload,\n payload: ArrayBuffer\n ) {\n switch (message.type) {\n case \"uploadFile\": {\n const { id, filename } = message;\n const uploadFile: null | ((value: any, opts: any) => Promise<string>) =\n null as null | ((value: any) => Promise<string>);\n if (uploadFile == null) {\n return;\n }\n this.tracker\n .operation(\"UploadImage\", \"UploadImageError\", {}, () =>\n uploadFile(unwrap(this.connection.logger), {\n filename,\n data: payload,\n })\n )\n .then((result: string) => {\n this.connection.logger?.info(\n \"sucessfully uploaded file\",\n filename,\n result\n );\n this.postMessage({\n type: \"uploadFileResult\",\n id,\n result: { value: result },\n });\n })\n .catch((error: Error) => {\n this.connection.logger?.info(\n \"error uploading file\",\n filename,\n error\n );\n this.postMessage({\n type: \"uploadFileResult\",\n id,\n result: { error },\n });\n });\n break;\n }\n }\n }\n\n private handleIncomingMessage(data: IncomingMessage) {\n this.handleIncomingGeneralMessage(data as GeneralMessage);\n const { currentState } = this;\n switch (currentState.type) {\n case \"repo\": {\n const { repo, cwd } = currentState;\n this.handleIncomingMessageWithRepo(data as WithRepoMessage, repo, cwd);\n break;\n }\n\n // If the repo is in the loading or error state, the client may still send\n // platform messages such as `platform/openExternal` that should be processed.\n case \"loading\":\n case \"error\":\n if (data.type.startsWith(\"platform/\")) {\n void this.platform.handleMessageFromClient(\n /*repo=*/ undefined,\n data as PlatformSpecificClientToServerMessages,\n (message) => this.postMessage(message),\n (dispose: () => unknown) => {\n this.repoDisposables.push({ dispose });\n }\n );\n this.notifyListeners(data);\n }\n break;\n }\n }\n\n /**\n * Handle messages which can be handled regardless of if a repo was successfully created or not\n */\n private handleIncomingGeneralMessage(data: GeneralMessage) {\n this.logger.info(\"GeneralMessage\", data);\n switch (data.type) {\n case \"installCli\": {\n const execution =\n data.method === \"brew\"\n ? execa(\"brew\", [\"install\", \"withgraphite/tap/graphite\"])\n : execa(\"npm\", [\n \"install\",\n \"-g\",\n \"@withgraphite/graphite-cli@stable\",\n ]);\n execution\n .then(() => {\n this.postMessage({\n type: \"installCliResult\",\n result: \"success\",\n });\n })\n .catch((err: unknown) => {\n const error = err instanceof Error ? err.message : \"Unknown error\";\n this.postMessage({\n type: \"installCliResult\",\n result: \"error\",\n error,\n });\n });\n break;\n }\n\n case \"updateCli\": {\n which(\"gt\")\n .then(async (whichResult) => {\n const path = await realpath(whichResult);\n\n const pathFromNodeFolder =\n \"lib/node_modules/@withgraphite/graphite-cli/graphite.js\";\n if (path.endsWith(pathFromNodeFolder)) {\n const pathToNpm = path.replace(pathFromNodeFolder, \"bin/npm\");\n return execa(pathToNpm, [\n \"install\",\n \"-g\",\n \"@withgraphite/graphite-cli@stable\",\n ]);\n }\n\n if (path.endsWith(\"/bin/gt\") && path.includes(\"Cellar\")) {\n await execa(\"brew\", [\"update\"]);\n return execa(\"brew\", [\"upgrade\", \"withgraphite/tap/graphite\"]);\n }\n\n throw new Error(\"Couldn't determine installation method\");\n })\n .then(() => {\n this.postMessage({\n type: \"updateCliResult\",\n result: \"success\",\n });\n })\n .catch((err) => {\n this.postMessage({\n type: \"updateCliResult\",\n result: \"error\",\n error: err instanceof Error ? err.message : \"Unknown error\",\n });\n });\n\n break;\n }\n\n case \"fetchAllBranches\": {\n const allBranches: Promise<Result<{ branches: string[] }>> = runCommand(\n {\n command: this.connection.command || \"gt\",\n args: [\"internal-only\", \"all-branches\"],\n cwd: this.connection.cwd,\n }\n )\n .then((o) => ({\n value: JSON.parse(o.stdout) as { branches: string[] },\n }))\n .catch((error) => {\n this.logger?.error(\"error fetching auth status\", error.toString());\n return { error };\n });\n void allBranches.then((data) => {\n if (!data.value) return;\n this.postMessage({\n type: \"fetchedAllBranches\",\n message: data.value,\n });\n });\n break;\n }\n\n case \"initializeRepository\": {\n this.logger.info(\"init\");\n void runCommand({\n command: this.connection.command || \"gt\",\n args: [\"init\", \"--trunk\", data.trunkBranch],\n cwd: this.connection.cwd,\n })\n .then((o) => {\n this.logger.info(\"initializeRepository\", o);\n if (o.exitCode) {\n this.postMessage({ type: \"failedToInitializeRepository\" });\n }\n this.postMessage({\n type: \"initializedRepository\",\n });\n })\n .catch(() => {\n this.postMessage({ type: \"failedToInitializeRepository\" });\n });\n\n break;\n }\n\n case \"track\": {\n this.tracker.trackData(data.data);\n break;\n }\n\n case \"changeCwd\": {\n this.setActiveRepoForCwd(data.cwd);\n break;\n }\n\n case \"requestRepoInfo\": {\n switch (this.currentState.type) {\n case \"repo\":\n this.postMessage({\n type: \"repoInfo\",\n info: this.currentState.repo.info,\n cwd: this.currentState.cwd,\n });\n break;\n\n case \"error\":\n this.postMessage({\n type: \"repoInfo\",\n info: this.currentState.error,\n });\n break;\n\n case \"loading\":\n }\n break;\n }\n\n case \"requestApplicationInfo\": {\n this.postMessage({\n type: \"applicationInfo\",\n platformName: this.platform.platformName,\n version: this.connection.version,\n });\n break;\n }\n\n case \"fileBugReport\": {\n // Internal.fileABug?.(\n // data.data,\n // data.uiState,\n // this.tracker,\n // this.logger,\n // (progress: FileABugProgress) => {\n // this.connection.logger?.info('file a bug progress: ', JSON.stringify(progress));\n // this.postMessage({type: 'fileBugReportProgress', ...progress});\n // },\n // );\n break;\n }\n }\n }\n\n /**\n * Handle messages which require a repository to have been successfully set up to run\n */\n private handleIncomingMessageWithRepo(\n data: WithRepoMessage,\n repo: Repository,\n cwd: string\n ) {\n const { logger } = repo;\n switch (data.type) {\n case \"subscribe\": {\n const { subscriptionID, kind } = data;\n switch (kind) {\n case \"uncommittedChanges\": {\n const postUncommittedChanges = (\n result: FetchedUncommittedChanges\n ) => {\n this.postMessage({\n type: \"subscriptionResult\",\n kind: \"uncommittedChanges\",\n subscriptionID,\n data: result,\n });\n };\n\n const uncommittedChanges = repo.getUncommittedChanges();\n if (uncommittedChanges != null) {\n postUncommittedChanges(uncommittedChanges);\n }\n const disposables: Array<Disposable> = [];\n\n // send changes as they come in from watchman\n disposables.push(\n repo.subscribeToUncommittedChanges(postUncommittedChanges)\n );\n // trigger a fetch on startup\n void repo.fetchUncommittedChanges();\n\n disposables.push(\n repo.subscribeToUncommittedChangesBeginFetching(() =>\n this.postMessage({\n type: \"beganFetchingUncommittedChangesEvent\",\n })\n )\n );\n this.subscriptions.set(subscriptionID, {\n dispose: () => {\n disposables.forEach((d) => d.dispose());\n },\n });\n break;\n }\n\n case \"smartlogCommits\": {\n const postSmartlogCommits = (result: FetchedCommits) => {\n this.postMessage({\n type: \"subscriptionResult\",\n kind: \"smartlogCommits\",\n subscriptionID,\n data: result,\n });\n };\n\n const smartlogCommits = repo.getSmartlogCommits();\n if (smartlogCommits != null) {\n postSmartlogCommits(smartlogCommits);\n }\n const disposables: Array<Disposable> = [];\n // send changes as they come from file watcher\n disposables.push(\n repo.subscribeToSmartlogCommitsChanges(postSmartlogCommits)\n );\n // trigger a fetch on startup\n void repo.fetchSmartlogCommits();\n\n disposables.push(\n repo.subscribeToSmartlogCommitsBeginFetching(() =>\n this.postMessage({ type: \"beganFetchingSmartlogCommitsEvent\" })\n )\n );\n\n this.subscriptions.set(subscriptionID, {\n dispose: () => {\n disposables.forEach((d) => d.dispose());\n },\n });\n break;\n }\n\n case \"mergeConflicts\": {\n const postMergeConflicts = (\n conflicts: MergeConflicts | undefined\n ) => {\n this.postMessage({\n type: \"subscriptionResult\",\n kind: \"mergeConflicts\",\n subscriptionID,\n data: conflicts,\n });\n };\n\n const mergeConflicts = repo.getMergeConflicts();\n if (mergeConflicts != null) {\n postMergeConflicts(mergeConflicts);\n }\n this.subscriptions.set(\n subscriptionID,\n repo.onChangeConflictState(postMergeConflicts)\n );\n break;\n }\n }\n break;\n }\n\n case \"unsubscribe\": {\n const subscription = this.subscriptions.get(data.subscriptionID);\n subscription?.dispose();\n this.subscriptions.delete(data.subscriptionID);\n break;\n }\n\n case \"runOperation\": {\n const { operation } = data;\n void repo.runOrQueueOperation(\n operation,\n (progress) => {\n this.postMessage({ type: \"operationProgress\", ...progress });\n if (progress.kind === \"queue\") {\n this.tracker.track(\"QueueOperation\", {\n extras: { operation: operation.trackEventName },\n });\n }\n },\n this.tracker,\n cwd\n );\n break;\n }\n\n case \"abortRunningOperation\": {\n const { operationId } = data;\n repo.abortRunningOpeation(operationId);\n break;\n }\n\n case \"getConfig\": {\n void repo\n .getConfig(data.name)\n .catch(() => undefined)\n .then((value) => {\n logger.info(\"got config\", data.name, value);\n this.postMessage({ type: \"gotConfig\", name: data.name, value });\n });\n break;\n }\n\n case \"getPersistentViewState\": {\n this.postMessage({\n type: \"gotPersistentViewState\",\n name: data.name,\n value: this.connection.persistentClientSideViewState[data.name],\n });\n break;\n }\n\n case \"fetchRepoMessage\": {\n const repoMessage: Promise<Result<string>> = repo\n .runCommand([\"internal-only\", \"repo-message\"])\n .then((o) => ({ value: o.stdout }))\n .catch((error) => {\n logger?.error(\"error fetching repo message\", error.toString());\n return { error };\n });\n void repoMessage.then((data) =>\n this.postMessage({\n type: \"fetchedRepoMessage\",\n message: data.value || \"\",\n })\n );\n break;\n }\n\n case \"fetchUpgradePrompt\": {\n logger.info(\"fetchUpgradePrompt\");\n const upgradePrompt: Promise<Result<string>> = repo\n .runCommand([\"internal-only\", \"upgrade-prompt\"])\n .then((o) => ({ value: o.stdout }))\n .catch((error) => {\n logger?.error(\"error fetching upgrade prompt\", error.toString());\n return { error };\n });\n void upgradePrompt.then((data) =>\n this.postMessage({\n type: \"fetchedUpgradePrompt\",\n message: data.value || \"\",\n })\n );\n break;\n }\n\n case \"fetchAuthStatus\": {\n const upgradePrompt: Promise<Result<AuthInfo>> = repo\n .runCommand([\"internal-only\", \"check-auth\"])\n .then((o) => ({ value: JSON.parse(o.stdout) as AuthInfo }))\n .catch((error) => {\n logger?.error(\"error fetching auth status\", error.toString());\n return { error };\n });\n void upgradePrompt.then((data) => {\n if (!data.value) return;\n this.postMessage({\n type: \"fetchedAuthStatus\",\n message: data.value,\n });\n });\n break;\n }\n\n case \"fetchPotentialParents\": {\n const { branchToTrack } = data;\n const potentialParents: Promise<\n Result<{ potentialParents: string[] }>\n > = repo\n .runCommand([\"internal-only\", \"potential-parents\", branchToTrack])\n .then((o) => ({\n value: JSON.parse(o.stdout) as { potentialParents: string[] },\n }))\n .catch((error) => {\n logger?.error(\"error fetching potential parents\", error.toString());\n return { error };\n });\n void potentialParents.then((data) => {\n if (!data.value) return;\n this.postMessage({\n type: \"fetchedPotentialParents\",\n message: data.value,\n });\n });\n break;\n }\n\n case \"setConfig\": {\n logger.info(\"set config\", data.name, data.value);\n repo.setConfig(\"user\", data.name, data.value).catch((err) => {\n logger.error(\"error setting config\", data.name, data.value, err);\n });\n break;\n }\n\n case \"setPersistentViewState\": {\n this.connection.persistentClientSideViewState[data.name] = data.value;\n break;\n }\n\n case \"deleteFile\": {\n const { filePath } = data;\n const absolutePath = absolutePathForFileInRepo(filePath, repo);\n // security: don't trust client messages to allow us to delete files outside the repository\n if (absolutePath == null) {\n logger.warn(\"can't delete file outside of the repo\", filePath);\n return;\n }\n\n fs.promises\n .rm(absolutePath)\n .then(() => {\n logger.info(\"deleted file from filesystem\", absolutePath);\n })\n .catch((err) => {\n logger.error(\"unable to delete file\", absolutePath, err);\n });\n break;\n }\n\n case \"requestComparison\": {\n const { comparison } = data;\n const diff: Promise<Result<string>> = repo\n .runCommand([\n \"internal-only\",\n \"diff\",\n ...internalOnlyDiffArgsForComparison(comparison),\n ])\n .then((o) => ({ value: o.stdout }))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void diff.then((data) =>\n this.postMessage({\n type: \"comparison\",\n comparison,\n data: { diff: data },\n })\n );\n break;\n }\n\n case \"requestChangedFiles\": {\n const { branch } = data;\n const resultPromise: Promise<ChangedFiles> = repo\n .runCommand([\"internal-only\", \"changed-files\", branch])\n .then((o) => JSON.parse(o.stdout))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void resultPromise.then((result) =>\n this.postMessage({\n type: \"changedFiles\",\n branch,\n data: result,\n })\n );\n break;\n }\n\n case \"requestComparisonContextLines\": {\n const {\n id: { path: relativePath, comparison },\n start,\n numLines,\n } = data;\n\n // TODO (GT-11367): For context lines, before/after sides of the comparison\n // are identical... except for line numbers.\n // Typical comparisons with '.' would be much faster (nearly instant)\n // by reading from the filesystem rather than using cat,\n // we just need the caller to ask with \"after\" line numbers instead of \"before\".\n // Note: we would still need to fall back to cat for comparisons that do not involve\n // the working copy.\n if (\n comparison.type === ComparisonType.Commit ||\n comparison.type === ComparisonType.Range\n ) {\n throw new Error(\"Not implemented\");\n }\n const cat: Promise<string> = repo\n .relativeCat(relativePath, comparison)\n .catch(() => \"\");\n\n void cat.then((content) =>\n this.postMessage({\n type: \"comparisonContextLines\",\n lines: content.split(\"\\n\").slice(start - 1, start - 1 + numLines),\n path: relativePath,\n })\n );\n break;\n }\n\n case \"requestChangedFilesInRange\": {\n const { fromSha, toSha } = data;\n const resultPromise: Promise<ChangedFiles> = repo\n .runCommand([\n \"internal-only\",\n \"changed-files\",\n toSha,\n \"--from\",\n fromSha,\n ])\n .then((o) => JSON.parse(o.stdout))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void resultPromise.then((result) =>\n this.postMessage({\n type: \"changedFilesInRange\",\n fromSha,\n toSha,\n data: result,\n })\n );\n break;\n }\n\n case \"requestCommitsInBranch\": {\n const { branch } = data;\n const resultPromise: Promise<{\n commits: { sha: string; message: string }[];\n }> = repo\n .runCommand([\"internal-only\", \"list-commits\", branch])\n .then((o) => JSON.parse(o.stdout))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void resultPromise.then((result) =>\n this.postMessage({\n type: \"commitsInBranch\",\n branch,\n data: result,\n })\n );\n break;\n }\n\n case \"requestChangedFilesInCommit\": {\n const { commitSha } = data;\n const resultPromise: Promise<ChangedFiles> = repo\n .runCommand([\n \"internal-only\",\n \"changed-files\",\n commitSha,\n \"--from\",\n `${commitSha}~`,\n ])\n .then((o) => JSON.parse(o.stdout))\n .catch((error) => {\n logger?.error(\"error running diff\", error.toString());\n return { error };\n });\n void resultPromise.then((result) =>\n this.postMessage({\n type: \"changedFilesInCommit\",\n commitSha,\n data: result,\n })\n );\n break;\n }\n\n case \"refresh\": {\n logger?.log(\"refresh requested\");\n void repo.fetchSmartlogCommits();\n void repo.fetchUncommittedChanges();\n void repo.codeReviewProvider?.triggerDiffSummariesFetch(\n repo.getAllDiffIds()\n );\n break;\n }\n\n case \"pageVisibility\": {\n repo.setPageFocus(this.pageId, data.state);\n break;\n }\n\n case \"fetchCommitMessageTemplate\": {\n repo\n .runCommand([\"internal-only\", \"templates\"])\n .then((result) => {\n const templates: Record<string, string> = JSON.parse(result.stdout);\n this.postMessage({\n type: \"fetchedCommitMessageTemplate\",\n templates: Object.fromEntries(\n Object.entries(templates).map(([path, contents]) => [\n path,\n contents.replace(repo.IGNORE_COMMIT_MESSAGE_LINES_REGEX, \"\"),\n ])\n ),\n });\n })\n .catch((err) => {\n logger?.error(\"Could not fetch commit message template\", err);\n });\n break;\n }\n\n case \"typeahead\": {\n // Current repo's code review provider should be able to handle all\n // TypeaheadKinds for the fields in its defined schema.\n void repo.codeReviewProvider\n ?.typeahead?.(data.kind, data.query)\n ?.then((result) =>\n this.postMessage({\n type: \"typeaheadResult\",\n id: data.id,\n result,\n })\n );\n break;\n }\n\n case \"fetchDiffSummaries\": {\n void repo.codeReviewProvider?.triggerDiffSummariesFetch(\n repo.getAllDiffIds()\n );\n break;\n }\n\n case \"loadMoreCommits\": {\n const rangeInDays = repo.nextVisibleCommitRangeInDays();\n this.postMessage({ type: \"commitsShownRange\", rangeInDays });\n this.postMessage({ type: \"beganLoadingMoreCommits\" });\n void repo.fetchSmartlogCommits();\n this.tracker.track(\"LoadMoreCommits\", {\n extras: { daysToFetch: rangeInDays ?? \"Infinity\" },\n });\n return;\n }\n\n default: {\n void this.platform.handleMessageFromClient(\n repo,\n data,\n (message) => this.postMessage(message),\n (dispose: () => unknown) => {\n this.repoDisposables.push({ dispose });\n }\n );\n break;\n }\n }\n\n this.notifyListeners(data);\n }\n\n private notifyListeners(data: IncomingMessage): void {\n const listeners = this.listenersByType.get(data.type);\n if (listeners) {\n listeners.forEach((handle) => handle(data));\n }\n }\n}\n","import { unwrap } from \"@withgraphite/gti-shared\";\nimport fs from \"fs\";\nimport os from \"os\";\nimport path from \"path\";\n\nimport rmtree from \"./rmtree\";\n\nexport type ExistingServerInfo = {\n sensitiveToken: string;\n challengeToken: string;\n logFileLocation: string;\n /** Which command name was used to launch this server instance,\n * so it can be propagated to run further gt commands by the server.\n * Usually, \"gt\". */\n command?: string;\n /**\n * `gt version` string. If the version of gt changes, we shouldn't re-use that server instance,\n * due to potential incompatibilities between the old running server javascript and the new client javascript.\n */\n gtVersion: string;\n};\n\nconst cacheDir =\n process.platform == \"win32\"\n ? path.join(unwrap(process.env.LOCALAPPDATA), \"cache\")\n : process.platform == \"darwin\"\n ? path.join(os.homedir(), \"Library/Caches\")\n : process.env.XDG_CACHE_HOME || path.join(os.homedir(), \".cache\");\n\n/**\n * Per-user cache dir with restrictive permissions.\n * Inside this folder will be a number of files, one per port for an active GTI server.\n */\nconst savedActiveServerUrlsDirectory = path.join(cacheDir, \"graphite-gti\");\n\nfunction fileNameForPort(port: number): string {\n return `reusable_server_${port}`;\n}\n\nfunction isMode700(stat: fs.Stats): boolean {\n // eslint-disable-next-line no-bitwise\n return (stat.mode & 0o777) === 0o700;\n}\n\n/**\n * Make a temp directory with restrictive permissions where we can write existing server information.\n * Ensures directory has proper restrictive mode if the directory already exists.\n */\nexport async function ensureExistingServerFolder(): Promise<void> {\n await fs.promises.mkdir(savedActiveServerUrlsDirectory, {\n // directory needs rwx\n mode: 0o700,\n recursive: true,\n });\n\n const stat = await fs.promises.stat(savedActiveServerUrlsDirectory);\n if (process.platform !== \"win32\" && !isMode700(stat)) {\n throw new Error(\n `active servers folder ${savedActiveServerUrlsDirectory} has the wrong permissions: ${stat.mode}`\n );\n }\n if (stat.isSymbolicLink()) {\n throw new Error(\n `active servers folder ${savedActiveServerUrlsDirectory} is a symlink`\n );\n }\n}\n\nexport function deleteExistingServerFile(port: number): Promise<void> {\n const folder = path.join(\n savedActiveServerUrlsDirectory,\n fileNameForPort(port)\n );\n if (typeof fs.promises.rm === \"function\") {\n return fs.promises.rm(folder, { force: true });\n } else {\n return rmtree(folder);\n }\n}\n\nexport async function writeExistingServerFile(\n port: number,\n data: ExistingServerInfo\n): Promise<void> {\n await fs.promises.writeFile(\n path.join(savedActiveServerUrlsDirectory, fileNameForPort(port)),\n JSON.stringify(data),\n { encoding: \"utf-8\", flag: \"w\", mode: 0o600 }\n );\n}\n\nexport async function readExistingServerFile(\n port: number\n): Promise<ExistingServerInfo> {\n // TODO: do we need to verify the permissions of this file?\n const data: string = await fs.promises.readFile(\n path.join(savedActiveServerUrlsDirectory, fileNameForPort(port)),\n { encoding: \"utf-8\", flag: \"r\" }\n );\n return JSON.parse(data) as ExistingServerInfo;\n}\n","import { timingSafeEqual } from \"crypto\";\n\n/**\n * Timing safe comparison of tokens coming from strings.\n */\nexport function areTokensEqual(a: string, b: string): boolean {\n const aBuf = Buffer.from(a);\n const bBuf = Buffer.from(b);\n return aBuf.length === bBuf.length && timingSafeEqual(aBuf, bBuf);\n}\n","import type { Logger } from \"@withgraphite/gti-shared\";\n\nimport { logStartup } from \"./analytics\";\nimport { makeServerSideTracker } from \"./analytics/serverSideTracker\";\nimport { fileLogger, stdoutLogger } from \"./logger\";\nimport { runCommand } from \"./Repository\";\nimport type { ServerPlatform } from \"./serverPlatform\";\nimport { browserServerPlatform } from \"./serverPlatform\";\nimport { ServerToClientAPI } from \"./ServerToClientAPI\";\n\nexport { DEFAULT_PORT, runProxyMain } from \"../proxy/startServer\";\n\nexport interface ClientConnection {\n /**\n * Used to send a message from the server to the client.\n *\n * Designed to match\n * https://code.visualstudio.com/api/references/vscode-api#Webview.postMessage\n */\n postMessage(message: string): Promise<boolean>;\n\n /**\n * Designed to match\n * https://code.visualstudio.com/api/references/vscode-api#Webview.onDidReceiveMessage\n */\n onDidReceiveMessage(\n hander: (event: Buffer, isBinary: boolean) => void | Promise<void>\n ): {\n dispose(): void;\n };\n\n /**\n * Which command to use to run `gt`\n */\n command?: string;\n /**\n * Platform-specific version string.\n * For `gt interactive web`, this is the `gt` version.\n * For the VS Code extension, this is the extension version.\n */\n version: string;\n logFileLocation?: string;\n logger?: Logger;\n cwd: string;\n\n platform?: ServerPlatform;\n\n /**\n * Place for the server to store user preferences that should persist\n * closing and reopening the client connection.\n */\n persistentClientSideViewState: Record<string, any>;\n}\n\nexport function onClientConnection(connection: ClientConnection): () => void {\n const logger =\n connection.logger ??\n (connection.logFileLocation\n ? fileLogger(connection.logFileLocation)\n : stdoutLogger);\n connection.logger = logger;\n const platform = connection?.platform ?? browserServerPlatform;\n const version = connection?.version ?? \"unknown\";\n logger.log(`establish client connection for ${connection.cwd}`);\n logger.log(\n `platform '${platform.platformName}', version '${version}', command '${connection.command}'`\n );\n\n void logStartup(logger).catch((e) => {\n logger.error(\"Failed to log startup\", e);\n });\n\n // See comment in analytics.ts -- we can migrate this to not depend on CLI\n const tracker = makeServerSideTracker(logger, platform, version, (data) => {\n return runCommand({\n command: connection.command || \"gt\",\n args: [\n \"internal-only\",\n \"log-action\",\n data.eventName || data.errorName || \"UNKNOWN_CLI_EVENT\",\n (data.timestamp ? new Date(data.timestamp) : new Date()).toISOString(),\n JSON.stringify(data),\n ],\n cwd: connection.cwd,\n });\n });\n tracker.track(\"ClientConnection\", { extras: { cwd: connection.cwd } });\n\n // start listening to messages\n let api: ServerToClientAPI | null = new ServerToClientAPI(\n platform,\n connection,\n tracker,\n logger\n );\n api.setActiveRepoForCwd(connection.cwd);\n\n return () => {\n api?.dispose();\n api = null;\n };\n}\n","import type { PlatformName } from \"@withgraphite/gti-shared\";\nimport { CLOSED_AND_SHOULD_NOT_RECONNECT_CODE } from \"@withgraphite/gti-shared\";\nimport fs from \"fs\";\nimport http from \"http\";\nimport type { AddressInfo } from \"net\";\nimport path from \"path\";\nimport urlModule from \"url\";\nimport WebSocket from \"ws\";\n\nimport { onClientConnection } from \"../src/index\";\nimport { repositoryCache } from \"../src/RepositoryCache\";\nimport type { ServerPlatform } from \"../src/serverPlatform\";\nimport { areTokensEqual } from \"./proxyUtils\";\n\nexport type StartServerArgs = {\n port: number;\n sensitiveToken: string;\n challengeToken: string;\n logFileLocation: string;\n logInfo: (...args: Parameters<typeof console.log>) => void;\n command?: string;\n gtVersion: string;\n foreground: boolean;\n frontendDir: string;\n};\n\nexport type StartServerResult =\n | { type: \"addressInUse\" }\n | { type: \"success\"; port: number; pid: number }\n | { type: \"error\"; error: string };\n\nexport type ServerChallengeResponse = {\n challengeToken: string;\n /** Process ID for the server. */\n pid: number;\n};\n\nexport function startServer({\n port,\n sensitiveToken,\n challengeToken,\n logFileLocation,\n logInfo,\n command,\n gtVersion,\n foreground,\n frontendDir,\n}: StartServerArgs): Promise<StartServerResult> {\n return new Promise((resolve) => {\n try {\n const manifest = JSON.parse(\n fs.readFileSync(\n path.join(frontendDir, \"build/asset-manifest.json\"),\n \"utf-8\"\n )\n ) as { files: Array<string> };\n for (const file of Object.values(manifest.files)) {\n if (!file.startsWith(\"/\")) {\n resolve({\n type: \"error\",\n error: `expected entry to start with / but was: \\`${file}\\``,\n });\n }\n\n requestUrlToResource[file] = file.slice(1);\n }\n } catch (e) {\n // ignore...\n }\n\n // Anything not part of the asset-manifest we need to explicitly serve\n requestUrlToResource[`/favicon.ico`] = \"favicon.ico\";\n\n /**\n * Event listener for HTTP server \"error\" event.\n */\n function onError(error: { syscall?: string; code?: string }) {\n if (error.syscall !== \"listen\") {\n resolve({ type: \"error\", error: error.toString() });\n throw error;\n }\n\n // handle specific listen errors with friendly messages\n switch (error.code) {\n case \"EACCES\": {\n resolve({\n type: \"error\",\n error: `Port ${port} requires elevated privileges`,\n });\n throw error;\n }\n\n case \"EADDRINUSE\": {\n resolve({ type: \"addressInUse\" });\n return;\n }\n\n default:\n resolve({ type: \"error\", error: error.toString() });\n throw error;\n }\n }\n\n /**\n * Create HTTP server.\n */\n const server = http.createServer(async (req, res) => {\n if (req.url) {\n // Only the websocket is sensitive and requires the token.\n // Normal resource requests don't need to check the token.\n const { pathname } = urlModule.parse(req.url);\n // eslint-disable-next-line no-prototype-builtins\n if (pathname != null && requestUrlToResource.hasOwnProperty(pathname)) {\n const relativePath = requestUrlToResource[pathname];\n let contents: string | Buffer;\n try {\n contents = await fs.promises.readFile(\n path.join(frontendDir, \"build\", relativePath)\n );\n } catch (e: unknown) {\n res.writeHead(500, { \"Content-Type\": \"text/plain\" });\n res.end(htmlEscape((e as Error).toString()));\n return;\n }\n\n const lastDot = relativePath.lastIndexOf(\".\");\n const ext = relativePath.slice(lastDot + 1);\n const contentType = extensionToMIMEType[ext] ?? \"text/plain\";\n\n res.writeHead(200, { \"Content-Type\": contentType });\n res.end(contents);\n return;\n } else if (pathname === \"/challenge_authenticity\") {\n // requests to /challenge_authenticity?token=... allow using the sensistive token to ask\n // for the secondary challenge token.\n const requestToken = getSearchParams(req.url).get(\"token\");\n if (requestToken && areTokensEqual(requestToken, sensitiveToken)) {\n // they know the original token, we can tell them our challenge token\n res.writeHead(200, { \"Content-Type\": \"text/json\" });\n const response: ServerChallengeResponse = {\n challengeToken,\n pid: process.pid,\n };\n res.end(JSON.stringify(response));\n } else {\n res.writeHead(401, { \"Content-Type\": \"text/json\" });\n res.end(JSON.stringify({ error: \"invalid token\" }));\n }\n return;\n }\n }\n\n res.writeHead(404, { \"Content-Type\": \"text/html\" });\n res.end(\"<html><body>Not Found!</body></html>\");\n });\n\n /**\n * Listen on provided port, on all network interfaces.\n */\n const httpServer = server.listen(port);\n const wsServer = new WebSocket.Server({ noServer: true, path: \"/ws\" });\n wsServer.on(\"connection\", (socket, connectionRequest) => {\n // We require websocket connections to contain the token as a URL search parameter.\n let providedToken: string | undefined;\n let cwd: string | undefined;\n let platform: string | undefined;\n if (connectionRequest.url) {\n const searchParams = getSearchParams(connectionRequest.url);\n providedToken = searchParams.get(\"token\");\n const cwdParam = searchParams.get(\"cwd\");\n platform = searchParams.get(\"platform\") as string;\n if (cwdParam) {\n cwd = decodeURIComponent(cwdParam);\n }\n }\n if (!providedToken) {\n const reason = \"No token provided in websocket request\";\n logInfo(\"closing ws:\", reason);\n socket.close(CLOSED_AND_SHOULD_NOT_RECONNECT_CODE, reason);\n return;\n }\n if (!areTokensEqual(providedToken, sensitiveToken)) {\n const reason = \"Invalid token\";\n logInfo(\"closing ws:\", reason);\n socket.close(CLOSED_AND_SHOULD_NOT_RECONNECT_CODE, reason);\n return;\n }\n\n const platformImpl: ServerPlatform | undefined = undefined;\n switch (platform as PlatformName) {\n default:\n case undefined:\n break;\n }\n\n const dispose = onClientConnection({\n postMessage(message: string | ArrayBuffer) {\n socket.send(message);\n return Promise.resolve(true);\n },\n onDidReceiveMessage(handler) {\n const emitter = socket.on(\"message\", handler);\n const dispose = () => emitter.off(\"message\", handler);\n return { dispose };\n },\n cwd: cwd ?? process.cwd(),\n logFileLocation:\n logFileLocation === \"stdout\" ? undefined : logFileLocation,\n command,\n version: gtVersion,\n persistentClientSideViewState: {},\n\n platform: platformImpl,\n });\n socket.on(\"close\", () => {\n dispose();\n\n // After disposing, we may not have anymore servers alive anymore.\n // We can proactively clean up the server so you get the latest version next time you try.\n // This way, we only re-use servers if you keep the tab open.\n // Note: since we trigger this cleanup on dispose, if you start a server with `--no-open`,\n // it won't clean itself up until you connect at least once.\n if (!foreground) {\n // We do this on a 1-minute delay in case you close a tab and quickly re-open it.\n setTimeout(() => {\n checkIfServerShouldCleanItselfUp();\n }, 60_000);\n }\n });\n });\n httpServer.on(\"upgrade\", (request, socket, head) => {\n wsServer.handleUpgrade(request, socket, head, (socket) => {\n wsServer.emit(\"connection\", socket, request);\n });\n });\n\n server.on(\"error\", onError);\n\n // return succesful result when the server is successfully listening\n server.on(\"listening\", () =>\n resolve({\n type: \"success\",\n port: (server.address() as AddressInfo).port,\n pid: process.pid,\n })\n );\n });\n}\n\nfunction checkIfServerShouldCleanItselfUp() {\n if (repositoryCache.numberOfActiveServers() === 0) {\n process.exit(0);\n }\n}\n\nfunction getSearchParams(url: string): Map<string, string> {\n const searchParamsArray = urlModule\n .parse(url)\n .search?.replace(/^\\?/, \"\")\n .split(\"&\")\n .map(\n (pair: string): [string, string] => pair.split(\"=\") as [string, string]\n );\n\n return new Map(searchParamsArray);\n}\n\nconst extensionToMIMEType: { [key: string]: string } = {\n css: \"text/css\",\n html: \"text/html\",\n js: \"text/javascript\",\n ttf: \"font/ttf\",\n};\n\nconst requestUrlToResource: { [key: string]: string } = {\n \"/\": \"index.html\",\n};\n\nfunction htmlEscape(str: string): string {\n return str\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"\");\n}\n"],"names":["exports","event","timestampISOString","logger","details","__awaiter","userConfig","load","request","route","graphite_cli_routes_1","logActions","params","actions","name","timestamp","innerPromise","catch","err","error","s","JSON","stringify","ExitFailedError","Error","constructor","message","PreconditionsFailedError","__exportStar","auth","getAuthToken","apiServer","getApiServerUrl","queryParams","urlParams","headers","retyped_routes_1","requestWithArgs","Object","authorization","undefined","template","loadHandler","_data","filePath","oldFilepath","schema","initialize","removeIfInvalid","debug","spfExists","fs_extra_1","pathExists","removeSync","moveSync","parsedFile","readJson","logFailures","remove","errors_1","readOrInitSpf","filepath","options","_a","removeIfEmpty","update","mutator","_b","outputFile","mode","data","path","delete","helperFunctions","loadIfExists","t","shape","branchPrefix","optional","string","branchDate","boolean","branchReplacement","unionMany","literal","skipApplyingPrefixToNonGeneratedBranchNames","allowSlashesInGeneratedBranchNames","allowUpperCaseInGeneratedBranchNames","authToken","tips","yubikey","editor","pager","restackCommitterDateIsAuthorDate","submitIncludeCommitMessages","excludeTemplatesWithCommitMessages","submitViaCli","connectCliToLocalServer","gtiConfigs","array","key","value","alternativeProfiles","hostPrefix","systemTrayConfig","sections","sectionId","display","debugExpiryMs","number","path_1","join","os_1","homedir","getProfile","process","env","GRAPHITE_PROFILE","find","p","profile","_c","getAppServerUrl","getCLIAuthUrl","getBranchReplacement","getEditor","getEditorFromGitConfig","GT_EDITOR","_d","GIT_EDITOR","_e","VISUAL","_f","EDITOR","_g","getPager","getPagerFromGitConfig","GT_PAGER","_h","_j","_k","GIT_PAGER","_l","PAGER","_m","NODE_TLS_REJECT_UNAUTHORIZED","setAuthToken","profileNameToUpdate","profileToUpdate","getProfileName","authTokenPrecondition","token","length","getDefaultPrDescriptionBehavior","getSubmitViaCli","setSectionConfig","filter","section","getSectionConfig","getDebugExpiryMs","MS_IN_A_DAY","initialized","XDG_CONFIG_HOME","XDG_DATA_HOME","pullRequestInfoParams","repoOwner","repoName","prNumbers","prHeadRefNames","trunkBranchNames","consistent","prNumber","title","body","state","literals","reviewDecision","headRefName","baseRefName","url","isDraft","versions","headSha","baseSha","baseName","createdAt","authorGithubHandle","dependentPrNumber","mergeCommitSha","cliTrunk","method","logCommand","commandName","durationMiliSeconds","user","version","stackTrace","debugContext","downstackDependencies","org","repo","trunkName","branchName","response","downstackBranchNames","upgradePrompt","currentVersion","installationMethod","prompt","blocking","featureFlags","flags","flagName","flagValue","feedback","generateBranchNameAndCommitMessage","diff","owner","result","union","commitMessage","generateTitleAndDescription","description","traces","jsonTraces","cliVersion","submitPullRequests","trunkBranchName","targetTrunkBranchName","mergeWhenReady","rerequestReview","comment","gti","useWebSubmit","prs","action","head","base","draft","reviewers","webSubmitAnalytics","eligible","usedWebSubmit","prompted","suppressedPrompt","submitViaCliSetting","prURL","status","pullRequestInfo__DEPRECATED","pullRequestInfo","taggedUnion","ok","mergeabilityStatus","mergeabilityStatuses","mergeability_1","merge","getRepoMessage","nullable","text","getSectionsSummary","first","includeInTotalCount","totalUnpaginatedPrs","updatedAt","author","login","avatarUrl","checkAuth","githubLogin","canSubmitPrs","checkIsRepoSynced","addSyncedRepo","markNewUserChecklistStepCompleted","step","cwd","quiet","runner","repoPaths","gitVersion","Promise","all","config","addAll","add_1","addUpdates","addPatch","findUntrackedFiles","track_1","trackFiles","trackAllNewFiles","getCommitAuthor","commit_info_1","getCommitDate","getFilesChanged","files_changed_1","getStatus","status_1","getCurrentBranchName","branch_ops_1","getPreviousBranchName","moveBranch","deleteBranch","switchBranch","getDiff","diff_1","getDiffOfStagedChanges","forceCheckoutNewBranch","forceCreateBranch","getNumberOfCommitsInRange","commit_range_1","getFormattedCommitOrRange","getCommitTree","commit_tree_1","commit","commit_1","revert","detectStagedChanges","getUnstagedChanges","showDiff","isDiffEmpty","fetchBranches","fetch_branch_1","readFetchHead","findRemoteHeadBranch","find_remote_branch_1","getShaOrThrow","get_sha_1","getSha","detectUntrackedChanges","trackedUnstagedChanges","isMerged","is_merged_1","logLong","log_1","getMergeBase","merge_base_1","isAncestor","getUnmergedFiles","getRebaseHead","merge_conflict_help_1","gitDir","pruneRemote","prune_remote_1","getRemoteUrl","remote_url_1","showCommits","show_commits_1","getFileContents","file_contents_1","fetchRemoteTrackingBranch","pull_branch_1","fastForwardBranchToRemoteTracking","pushBranch","push_branch_1","gitConfig","gitCommonDir","repoRoot","getHookExecutablePath","get_hook_executable_path_1","getCleanlyReconciledSquashedHead","reconcile_1","rebaseInProgress","rebase_in_progress_1","cleanRebase","clean_rebase_1","rebase","rebase_1","rebaseContinue","rebaseAbort","rebaseInteractive","softReset","reset_branch_1","mixedReset","keepReset","trackedReset","setRemoteTracking","set_remote_tracking_1","getBranchNamesAndRevisions","sorted_branch_names_1","clean","clean_1","createNewObject","plumbing_1","updateRef","readRef","doesObjectExist","deleteRef","getShaForEachRefWithPrefix","commitRangesAreEquivalent","range_diff_1","getBranchesInCommitRange","absorbPatchesIntoCommitStack","absorb_patches_1","refreshIndex","createPatchedTree","sha","patch","indexFile","pid","Date","now","treeish","patchedTree","rmSync","shas","patches","gpgSignValue","gpgSign","output","parentSha","ref","hasBeenPatched","i","push","metadataPromise","authorDate","authorEmail","authorName","newCommit","runGitCommand","args","onError","resource","GIT_AUTHOR_NAME","GIT_AUTHOR_EMAIL","GIT_AUTHOR_DATE","GIT_COMMITTER_DATE","stdio","newName","branch","newBranch","detach","force","onto","from","format","reverse","map","reduce","resultPromise","parentResult","parentTree","tree","ontoTreeCommit","runner_1","exitCode","commitPromise","resolve","amend","noEdit","edit","verboseCount","noVerify","Array","fill","Number","FORMAT","READABLE","SUBJECT","MESSAGE","REBASE_METADATA","AUTHOR_METADATA","COMMITTER_DATE_RELATIVE","SHA","AUTHOR_NAME","COMMITTER_DATE","commitRangeHashes","runGitCommandAndSplitLines","results","chunkOfHashes","lodash_1","chunk","chunkResults","line","split","flat","replace","Boolean","then","metadata","messageLines","branchNames","parentOfMergeBase","ret","l","forEach","slice","cachedValues","Map","get","newValue","getConfigValueFromGit","set","left","right","stat","shortStat","summary","DIFF_ARGS","noTrim","getFetchHeadRefName","remote","file","statusFromStatusCode","code","to","files","tokens","prefix","startsWith","hook","coreHooksPath","hooksPath","hookExecutablePath","pathExistsSync","remoteShas","populateRemoteShas","lineSplit","every","fetchRemoteShas","getRemoteSha","input","GIT_INDEX_FILE","mergeBase","branchCommits","acc","nextCommit","currentBase","testCommit","e","rebaseHeadPath","readFile","encoding","trim","content","refName","substring","includes","forcePush","prePushHookInput","localSha","remoteSha","prePushExecutablePath","remoteUrl","stdioInput","runPrePushHook","forceOption","base1","head1","base2","head2","shasToFetch","toFetch","range1","range2","rebaseInternal","e2","runWithStdio","parentBranchRevision","getRebasedTree","oldBase","oldHead","newBase","newHead","updatedBase","updatedHead","rebasedOldTree","rebasedUpdatedTree","oldTreeTempCommit","updatedTreeTempCommit","newHeadTempCommit","newTree","firstSha","at","branches","getRawStatus","rawStatus","indexStatus","workingTreeStatus","isValidStatusCharacter","some","staged","validStatusCharacters","character","filePaths","newFilePaths","getBoundsOfHunk","hunk","oldStart","newStart","removeLines","lines","type","addLines","oldEnd","newEnd","translateHunk","offset","getNetChangeInHunk","originalBeforeHunk","originalAfterHunk","originalBeforeHunkStart","originalBeforeHunkEnd","originalAfterHunkStart","originalAfterHunkEnd","computePatchFromHunk","removedLines","addedLines","oldNoNewlineAtEndOfFile","newNoNewlineAtEndOfFile","hunks","sort","a","b","parseDiffFile","prefixLines","firstLine","oldFilename","newFilename","h","parseDiffHunk","header","ranges","oldRange","newRange","oldCount","newCount","lastLineType","oldLine","newLine","lineType","oldEndLineExclusive","newEndLineExclusive","trimStart","flatMap","newHunks","curOldStart","curNewStart","curLines","TEXT_FILE_NAME","dir","opts","DEBUG","console","log","userConfigPath","existingRepo","repoUrl","createChange","textValue","unstaged","writeFileSync","readFileContents","readFileSync","createChangeAndCommit","createChangeAndAmend","hasStagedChanges","createPrecommitHook","contents","mkdirpSync","createAndCheckoutBranch","checkoutBranch","existsSync","resolveMergeConflicts","markMergeConflictsAsResolved","currentBranchName","getBranchSha","listCurrentBranchCommitMessages","enumerable","internalCwd","internalParams","tracer_1","currentSpanId","span","meta","runCommandArgs","runGitCommandInternal","MAX_INDEX_LOCK_RETRIES","INDEX_LOCK_RETRY_DELAY_MS","numIndexLockRetries","reject","proc","windowsHide","stdin","write","end","stdout","setEncoding","on","toString","stderr","addListener","signal","CommandKilledError","command","ms","setTimeout","CommandFailedError","failure","errno","concat","traceId","generateId","Math","ceil","random","notUndefined","START_UNIXTIME_MINUS_HRTIME_NS","BigInt","hrtime","bigint","currentNanoSeconds","Span","parentId","spanId","start","endedSpan","stack","metrics","service","span_id","trace_id","duration","parent_id","startSpan","allSpans","handler","flushJson","trace","rootSpanId","ComparisonType","comparison","UncommittedChanges","HeadChanges","StackChanges","Committed","hash","Commit","Range","fromSha","toSha","LRU","maxItems","maxHashCollision","hashKey","getHashKey","valueMap","cache","maybeValue","k","v","size","next","keys","done","clear","hashCodeFunc","hashCode","apply","cachedFunction","func","cacheSize","getExtraKeys","cachedFunc","stats","isCachable","skip","cacheKey","cachedValue","hit","miss","arg1","arg2","values","_target","_propertyKey","descriptor","originalFunc","cacheDecorator","cachableTypeNames","Set","arg","typeName","has","Tracker","sendData","context","eventName","errorName","errorMessage","String","track","operation","startTime","id","finalResult","trackAsParent","trackData","childData","ctx","wait","leading","timeout","shouldCallLeading","debouncer","callback","clearTimeout","reset","isPending","DiffType","DIFF","RENAME_FROM","RENAME_TO","COPY_FROM","COPY_TO","NEW_FILE_MODE","DELETED_FILE_MODE","OLD_MODE","NEW_MODE","HUNK_HEADER","OLD_FILE_HEADER","NEW_FILE_HEADER","DELIMITERS","assert","condition","msg","diffstr","delimiters","match","list","parseIndex","index","exec","oldFileName","newFileName","parseHeader","test","parseOldMode","parseNewMode","parseDeletedFileMode","parseNewFileMode","parseCopy","parseRename","parseFileHeader","parseHunk","parseHunks","arr","oldMode","Modified","newMode","Removed","Added","Copied","Renamed","hunkHeader","oldLines","newLines","linedelimiters","addCount","removeCount","indexOf","UNDEFINED_SERIALIZED","__rpcType","serialize","entries","val","valueOf","isArray","newObj","propertyName","propertyValue","deserialize","specific","standardObject","parse","CommandRunner","revset","ErrorShortMessages","deferred","promise","delimiter","foundIndex","lastIndexOf","className","el","classList","contains","parentElement","o","fromEntries","gen","iter1","iter2","iterator1","Symbol","iterator","iterator2","result1","result2","maxLength","max","getFilesMissingCodeownersApproval","previousReviewers","authorLogin","doesFileSatisfyCodeownerRequirement","pr","codeowners","owners","fileHasCodeownersApproval","authorIsOnlyCodeowner","convertOwnerToLowerCase","kind","toLowerCase","memberLogins","email","approverLogins","is_approver_1","r","username","userLogin","isUserCodeownerForFile","isUserPartOfCodeowner","ownersLowerCase","userLoginLowerCase","authorLoginLowerCase","mapCodeownerToKey","codeowner","team","missingCodeowners","c","review","decision","hasWritePermission","numRequiredApproversBaseBranchRules","numRequiredApproversRestrictions","numRequiredApprovers","getPrMetastatus","downstackExclusivePrs","baseBranchRules","ignoreMergeStates","enableNeedsRestack","isQueuedToMerge","isWaitingToMerge","isRebasing","blockingReasons","parentPr","isInFailureHandling","reason","lockBranch","parentBranch","lastPushedAt","lastBaseRefChangedAt","hasMergeConflicts","ciRollup","requiresApprovingReviews","requiresCodeOwnerReviews","mergeRulesNeedsRequiredApprover","mergeRules","computeNeedsRequiredApproverBlockingReason","approvers","requiredApprovingReviewCount","mergeRulesNeedsApprovals","computeNeedsApprovalBlockingReason","requiresConversationResolution","unresolvedThreadCount","parentMetastatus","handleParentMetastatusResult","hasThirdPartyMergeQueueLabel","hasActiveEntryInGithubMergeQueue","ciRollupStatus","handleParentMetastatus","requestedReviewers","reviewer","isBot","closedReviewUsername","CALCULATING","MERGED","QUEUED_TO_MERGE","WAITING_TO_MERGE","REBASING","HANDED_OFF_TO_EXTERNAL_MERGE_QUEUE","CLOSED","DRAFT","CHANGES_REQUESTED","NEEDS_APPROVALS","GT_NEEDS_APPROVALS","NEEDS_CODEOWNER_APPROVALS","GT_NEEDS_REQUIRED_APPROVER","MERGE_CONFLICTS","BRANCH_LOCKED","RUNNING","FAILING_REQUIRED","READY_TO_MERGE","MERGED_AND_DELETED","READY_TO_MERGE_AS_STACK","READY_TO_MERGE_WITHOUT_CI","READY_TO_MERGE_AS_STACK_WITHOUT_CI","WAITING_ON_DOWNSTACK","HARD_WAITING_ON_DOWNSTACK","UNRESOLVED_COMMENTS","NEEDS_RESTACK__BASE_BRANCH_MERGED","NEEDS_RESTACK__DOWNSTACK_MERGING","NEEDS_RESTACK__BASE_REF_CHANGED","FAILURE_HANDLING","mergeRestrictions","blockingRestrictions","restriction","payload","blockingMergeRestrictions","numberOfApprovalsNeeded","computeFailingRequiredBlockingReason","ciMergeRestrictionsStatus","computePendingRequiredBlockingReason","blockingFiles","blockingMergeRestrictionsByFilePath","filename","requiredApproversMergeRestrictions","ts_helpers_1","isApprovedByRequiredApprover","requiredApprover","approverUsernames","isUserRequiredApprover","requiredApprovers","prAuthorIsRequiredApproverForFile","isUserRequiredApproverForFile","hasFileBeenApprovedByRequiredApprovers","isRequiredApproversRestrictionSatisfied","createTestCiRollup","mergeRuleId","skipRequiredCi","mergeRestrictionsDeprecated","literalWithoutGenericCheck","inner","shapeValidatorImpl","childMatches","matches","tag","schemas","member","idx","inners","require","formatReqDetails","pathToRegexp","compile","urlArgs","obj","sortArgs","str","encodeURIComponent","serializeURLArgs","sortQueryParams","rawBody","verb","fetch","credentials","json","_response","fn","bound","getId","added","deduped","item","add","itemIdentity","bItems","bItem","aItem","errorFn","ENTIRE_STRING_IS_GLOBSTAR","GLOBSTAR_AT_END","GLOBSTAR_FOLLOWED_BY_FORWARD_SLASH","STAR","DOT","pattern","replaceAll","heartbeat","heartbeatInterval","waitForHeartbeatOnExit","fnComplete","hbComplete","heartbeatCnt","race","heartbeatWrapper","milliseconds","items","getKey","serializeKey","lookup","inputs","reducer","defaultReturn","res","onRetry","retryCount","range","maxRetries","sleepDuration","jobs","workToBeDone","running","nextJob","shift","finally","sleep","sleepMs","sleepDurationInMs","label","timeoutMs","minutes","seconds","singularNoun","n","pluralSuffix","prependAIfSingular","date","toLocaleString","month","day","hour","minute","timeZone","timeZoneName","includeTimeZone","num","isNaN","durationSec","includeSecondsIfLessThanMinute","luxon_1","fromObject","rescale","humanizedParts","years","months","days","hours","TimeoutError","filterNull","filterUndefined","object","possibleValue","sendAnalyticsEvent","getUsername","osInfoError","unwrap","LOGNAME","USER","LNAME","USERNAME","processEnvError","ServerSideContext","setRepo","this","codeReviewProvider","getSummaryName","noOp","stdoutLogger","TypedEventEmitter","EventEmitter","GitHubCodeReviewProvider","codeReviewSystem","runCommand","diffSummaries","onChangeDiffSummaries","handleData","handleError","dispose","off","triggerDiffSummariesFetch","_diffs","emit","removeAllListeners","hostname","runExternalCommand","_cwd","_args","_onProgress","_signal","typeahead","_kind","_query","OperationQueue","runCallback","queuedOperations","runningOperation","abortController","runOrQueueOperation","onProgress","tracker","queue","handleCommandProgress","op","controller","AbortController","trackEventName","extras","_p","errString","abortRunningOperation","operationId","abort","PageFocusTracker","focusedPages","visiblePages","onChangeHandlers","setState","page","disposePage","hasPageWithFocus","hasVisiblePage","onChange","RateLimiter","maxSimultaneousRunning","queued","runs","nextId","enqueueRun","tryDequeueNext","ran","notifyFinished","toRun","run","serializeAsyncCall","asyncFun","scheduledCall","pendingCall","startAsyncCall","callNext","scheduleNextCall","internalOnlyDiffArgsForComparison","MIN_REQUIRED_CLI_VERSION","Repository","onDidDispose","disposables","info","platform","IGNORE_COMMIT_MESSAGE_LINES_REGEX","mergeConflicts","uncommittedChanges","smartlogCommits","mergeConflictsEmitter","uncommittedChangesEmitter","smartlogCommitsChangesEmitter","smartlogCommitsBeginFetchingEmitter","uncommittedChangesBeginFetchingEmitter","pageFocusTracker","currentVisibleCommitRangeIndex","visibleCommitRanges","DEFAULT_DAYS_OF_COMMITS_TO_LOAD","checkForMergeConflicts","debounce","wasAlreadyInConflicts","dotdir","fetchStartTimestamp","contentsString","trimEnd","previousConflicts","commandOutput","newConflictData","conflicts","newConflicts","fetchCompletedTimestamp","newConflictSet","conflict","computeNewConflicts","maxConflictsToLog","remainingConflicts","fetchUncommittedChanges","change","fetchSmartlogCommits","commits","commitInfos","parseCommitInfoOutput","NoCommitsFetched","catLimiter","bind","watchForChangesDisposer","watchForChanges","operationQueue","Graphite","runOperation","CodeReviewProvider","normalizedArgs","normalizeOperationArgs","seenDiffs","subscription","subscribeToSmartlogCommitsChanges","fetched","newDiffs","diffIds","diffId","getAllDiffIds","nextVisibleCommitRangeInDays","onChangeConflictState","getMergeConflicts","getRepoInfo","repoVersion","findVersion","versionFound","versionRequired","repoInfoRaw","preferredBranchEdit","createPrsAs","findRepoProfile","findRepoInfo","getConfig","dotDir","rootDir","trunkBranch","abortRunningOpeation","cwdRelativeArgs","getExecParams","execution","addEventListener","child","kill","forceKillAfterTimeout","handleAbortSignalOnProcess","setPageFocus","getUncommittedChanges","subscribeToUncommittedChanges","getSmartlogCommits","subscribeToSmartlogCommitsBeginFetching","onStart","subscribeToUncommittedChangesBeginFetching","subscribeToHeadCommit","headCommit","isHead","onData","relativeCat","relativePath","catArgs","stripFinalNewline","cat","notEmpty","configName","setConfig","level","configValue","command_","args_","options_","appUrl","LANG","GRAPHITE_INTERACTIVE","GIT_OPTIONAL_LOCKS","argv","browserServerPlatform","platformName","repoInfo","changeCallback","dotDirWatcher","chokidar","watch","_event","relativeDotDir","worktreeWatcher","ignored","close","handleMessageFromClient","spawn","detached","windowsVerbatimArguments","unref","RepositoryReferenceImpl","disposeFunc","disposed","RefCounted","references","isDisposed","getNumberOfReferences","repositoryCache","RepositoryType","reposByRoot","activeReposEmitter","dirGuess","endsWith","getOrCreate","cmd","found","newlyFound","internalReference","internalRef","lookupRepoInfoAndReuseIfPossible","cachedRepositoryForPath","onChangeActiveRepos","cb","clearCache","numberOfActiveServers","numActive","ServerToClientAPI","connection","listenersByType","repoDisposables","subscriptions","queuedMessages","currentState","pageId","randomId","messageExpectingBinaryFollowup","incomingListener","onDidReceiveMessage","buf","isBinary","handleIncomingMessageWithPayload","deserializeFromString","hasBinaryPayload","expectsBinaryPayload","handleIncomingMessage","setRepoError","disposeRepoDisposables","processQueuedMessages","setCurrentRepo","postMessage","summaries","allCommits","ancestor","publicCommit","current","partOfTrunk","parents","findPublicAncestor","public","serializeToString","warn","setActiveRepoForCwd","newCwd","activeRepoRef","repoOrError","disposable","sub","uploadFile","handleIncomingGeneralMessage","handleIncomingMessageWithRepo","notifyListeners","whichResult","realpath","pathFromNodeFolder","pathToNpm","subscriptionID","postUncommittedChanges","d","postSmartlogCommits","postMergeConflicts","progress","persistentClientSideViewState","branchToTrack","absolutePath","pathMod","fullPath","sep","absolutePathForFileInRepo","rm","numLines","commitSha","templates","query","rangeInDays","daysToFetch","listeners","handle","cacheDir","LOCALAPPDATA","XDG_CACHE_HOME","aBuf","Buffer","bBuf","timingSafeEqual","onClientConnection","logFileLocation","appendFile","getLogFileContents","fileLogger","composeUserConfigFactory","installUuid","v4","gitEmail","git","composeGit","getGitEmail","toISOString","logStartup","writeToServer","sessionId","unixname","osArch","osType","osRelease","generateAnalyticsInfo","makeServerSideTracker","api","startServer","port","sensitiveToken","challengeToken","logInfo","gtVersion","foreground","frontendDir","manifest","requestUrlToResource","server","req","pathname","hasOwnProperty","writeHead","lastDot","ext","contentType","extensionToMIMEType","requestToken","getSearchParams","httpServer","listen","wsServer","noServer","socket","connectionRequest","providedToken","searchParams","cwdParam","decodeURIComponent","CLOSED_AND_SHOULD_NOT_RECONNECT_CODE","send","emitter","exit","handleUpgrade","syscall","address","searchParamsArray","search","pair","css","html","js","ttf"],"sourceRoot":""}
|