@michaelrwalker/stagehand 0.6.1 → 0.8.0

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/dist/script.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
- import type { Awaitable, CacheMode, CacheSource, CleanField, Cleaned, Merge, PhaseOptions, RunResult, ScriptOptions, SlotValue, StepDef, UnknownSlots, InheritedKeyStepDef } from "./types.js";
2
+ import type { Awaitable, BooleanFlagOptions, CacheMode, CacheSource, CleanField, Cleaned, Merge, PhaseOptions, RunResult, ScriptOptions, SlotValue, StepDef, StringFlagOptions, UnknownFlags, UnknownSlots, InheritedKeyStepDef } from "./types.js";
3
3
  /**
4
4
  * Keys for the phantom markers on {@link Script} and {@link Routine}. Exported
5
5
  * only because declaration emit has to name them; there is no runtime value
@@ -48,20 +48,22 @@ export interface MountOptions {
48
48
  }
49
49
  /**
50
50
  * What a mount feeds its fragment instead of the host's own input — either a
51
- * fixed value or a function of the host's input and context, resolved once
52
- * when the mount is reached.
51
+ * fixed value or a function of the host's input, context, and flags, resolved
52
+ * once when the mount is reached. This is the native way to project a flag
53
+ * onto a routine's input: `use(routine, { input: ({ flags }) => ({ env: flags.environment }) })`.
53
54
  */
54
- export type MountInput<In, Ctx, SubIn> = SubIn | ((context: {
55
+ export type MountInput<In, Ctx, SubIn, Flags = UnknownFlags> = SubIn | ((context: {
55
56
  input: In;
56
57
  ctx: Ctx;
58
+ flags: Flags;
57
59
  }) => Awaitable<SubIn>);
58
60
  /**
59
61
  * The phase currently being built, carried so its slot can be committed once
60
62
  * the phase closes — which is the first moment its delta is fully known.
61
63
  *
62
64
  * `name` is `never` for a phase that declared no cache, so committing it adds
63
- * nothing: `Record<never, V>` is `{}`. That is also the starting state, which
64
- * is why no separate "is anything open" flag is needed.
65
+ * nothing — see {@link Commit}. That is also the starting state, which is why
66
+ * no separate "is anything open" flag is needed.
65
67
  */
66
68
  export interface OpenPhase {
67
69
  /** The phase's cache slot, or `never` when the phase declared no cache. */
@@ -83,11 +85,20 @@ export type ClosedPhase = {
83
85
  schema: unknown;
84
86
  delta: {};
85
87
  };
86
- /** Fold the open phase's slot into the map. A no-op for uncached phases. */
87
- export type Commit<Slots, Open extends OpenPhase> = Slots & Record<Open["name"], SlotValue<Open["schema"], Open["delta"]>>;
88
+ /**
89
+ * Fold the open phase's slot into the map. A no-op for uncached phases.
90
+ *
91
+ * The `never` case is written out rather than left to `Record<never, V>`
92
+ * resolving to `{}`: `Record` is a mapped type, and — for the reason
93
+ * {@link Merge} explains at length — a mapped type in an accumulated
94
+ * intersection is a chain link the compiler has to walk on every later call,
95
+ * while a plain intersection of leaves is free. Uncached phases are the
96
+ * common case, and this keeps them from spending a script's depth budget.
97
+ */
98
+ export type Commit<Slots, Open extends OpenPhase> = [Open["name"]] extends [never] ? Slots : Slots & Record<Open["name"], SlotValue<Open["schema"], Open["delta"]>>;
88
99
  /** Phase options with `cache` required, so the cached overload is unambiguous. */
89
- export type CachedPhaseOptions<In, Ctx, Value> = Omit<PhaseOptions<In, Ctx>, "cache"> & {
90
- cache: CacheSource<In, Ctx, Value>;
100
+ export type CachedPhaseOptions<In, Ctx, Value, Flags = UnknownFlags> = Omit<PhaseOptions<In, Ctx, Flags>, "cache"> & {
101
+ cache: CacheSource<In, Ctx, Value, Flags>;
91
102
  };
92
103
  export interface RunOptions {
93
104
  /** Cancel the run from the outside. */
@@ -98,6 +109,12 @@ export interface RunOptions {
98
109
  * to control caching without touching the script.
99
110
  */
100
111
  cache?: CacheMode;
112
+ /**
113
+ * Argv to parse `defineFlag`'s flags out of. Default `process.argv.slice(2)`
114
+ * — override it in a test, or when this script is one subcommand of a
115
+ * larger CLI that has already sliced its own argv apart.
116
+ */
117
+ argv?: readonly string[];
101
118
  }
102
119
  /**
103
120
  * A saga-style script: phases of steps, each step optionally compensating when
@@ -126,7 +143,7 @@ export interface RunOptions {
126
143
  * The third parameter is inferred too: it collects the keys steps reserved
127
144
  * through `rollbackKeys`, which is how `clean` knows what it may not remove.
128
145
  */
129
- export declare class Script<In = void, Ctx extends object = {}, Reserved extends PropertyKey = never, Slots = {}, Open extends OpenPhase = ClosedPhase> {
146
+ export declare class Script<In = void, Ctx extends object = {}, Reserved extends PropertyKey = never, Slots = {}, Open extends OpenPhase = ClosedPhase, Flags extends object = {}> {
130
147
  /**
131
148
  * Phantom, erased at compile time. `run` is a *method*, so its parameter
132
149
  * compares bivariantly and `In` would otherwise carry no safety across two
@@ -142,6 +159,10 @@ export declare class Script<In = void, Ctx extends object = {}, Reserved extends
142
159
  /** False right after `use()`, so a bare `addStep` cannot land in a fragment. */
143
160
  private openPhase;
144
161
  private _schema;
162
+ private readonly flagDefs;
163
+ private readonly flagNames;
164
+ private readonly flagLongs;
165
+ private readonly flagShorts;
145
166
  constructor(options?: ScriptOptions | string);
146
167
  /**
147
168
  * Provide a [Standard Schema](https://standardschema.dev) describing the run
@@ -163,30 +184,67 @@ export declare class Script<In = void, Ctx extends object = {}, Reserved extends
163
184
  * });
164
185
  * ```
165
186
  */
166
- defineInput<TSchema>(schema: StandardSchemaV1<unknown, TSchema>): Script<TSchema, Ctx, Reserved>;
187
+ defineInput<TSchema>(schema: StandardSchemaV1<unknown, TSchema>): Script<TSchema, Ctx, Reserved, {}, ClosedPhase, Flags>;
167
188
  /** Validate `input` against the schema from `defineInput`, if any. */
168
189
  private validateInput;
190
+ /**
191
+ * Declare a flag this script reads off the command line. `name` is both the
192
+ * property `context.flags` exposes it under and — kebab-cased — the default
193
+ * long `--` form; `short` adds a single-letter `-` alias, and `long`
194
+ * overrides the derived one when it should read differently from `name`.
195
+ *
196
+ * A `boolean: true` flag is present or absent (`myScript --force`) and
197
+ * always resolves to a `boolean`, defaulting to `false` unless
198
+ * `default: true`. Anything else is a string: `myScript --env prod` or
199
+ * `myScript -e prod`, resolving to `string` when a `default` is given, or
200
+ * `string | undefined` otherwise. Values are parsed from `process.argv`
201
+ * (or `run(input, { argv })`) once, before any phase executes.
202
+ *
203
+ * ```ts
204
+ * new Script({ name: "deploy" })
205
+ * .defineFlag({ name: "environment", long: "env", short: "e", default: "staging" })
206
+ * .defineFlag({ name: "force", short: "f", boolean: true })
207
+ * .addStep({
208
+ * name: "deploy",
209
+ * // flags.environment: string, flags.force: boolean
210
+ * handler: async ({ flags }) => { ... },
211
+ * });
212
+ * ```
213
+ *
214
+ * @throws {DuplicateNameError} if `name`, the resolved long flag, or `short`
215
+ * is already used by another flag on this script.
216
+ */
217
+ defineFlag<const Name extends string>(options: BooleanFlagOptions<Name>): Script<In, Ctx, Reserved, Slots, Open, Flags & Record<Name, boolean>>;
218
+ defineFlag<const Name extends string, const Default extends string | undefined = undefined>(options: StringFlagOptions<Name, Default>): Script<In, Ctx, Reserved, Slots, Open, Flags & Record<Name, Default extends string ? string : string | undefined>>;
219
+ /**
220
+ * Flag identities have to be unique the same way phase and step names do —
221
+ * `name` is the property key on `context.flags`, and the long/short forms
222
+ * are what argv is matched against.
223
+ */
224
+ private claimFlagIdentity;
225
+ /** Parse `argv` against this script's declared flags — `{}` when none are. */
226
+ private resolveFlags;
169
227
  /**
170
228
  * Open a cached phase. Its name becomes a slot addressable through
171
229
  * `context.cache` in every step declared after it — typed as the phase's own
172
230
  * delta, or as the `schema`'s output when one is given.
173
231
  */
174
- addPhase<const Name extends string, Value = unknown>(name: Name, options: CachedPhaseOptions<In, Ctx, Value>): Script<In, Ctx, Reserved, Commit<Slots, Open>, {
232
+ addPhase<const Name extends string, Value = unknown>(name: Name, options: CachedPhaseOptions<In, Ctx, Value, Flags>): Script<In, Ctx, Reserved, Commit<Slots, Open>, {
175
233
  name: Name;
176
234
  phase: Name;
177
235
  schema: Value;
178
236
  delta: {};
179
- }>;
237
+ }, Flags>;
180
238
  /** Open a new phase. Subsequent `addStep` calls land in it. */
181
- addPhase<const Name extends string>(name: Name, options?: PhaseOptions<In, Ctx>): Script<In, Ctx, Reserved, Commit<Slots, Open>, {
239
+ addPhase<const Name extends string>(name: Name, options?: PhaseOptions<In, Ctx, Flags>): Script<In, Ctx, Reserved, Commit<Slots, Open>, {
182
240
  name: never;
183
241
  phase: Name;
184
242
  schema: unknown;
185
243
  delta: {};
186
- }>;
244
+ }, Flags>;
187
245
  /** Open a phase and populate it inside a callback, keeping the type flow. */
188
- addPhase<Next extends object, NextReserved extends PropertyKey, NextSlots, NextOpen extends OpenPhase>(name: string, build: (script: Script<In, Ctx, Reserved, Commit<Slots, Open>, ClosedPhase>) => Script<In, Next, NextReserved, NextSlots, NextOpen>): Script<In, Next, NextReserved, NextSlots, NextOpen>;
189
- addPhase<Next extends object, NextReserved extends PropertyKey, NextSlots, NextOpen extends OpenPhase>(name: string, options: PhaseOptions<In, Ctx>, build: (script: Script<In, Ctx, Reserved, Commit<Slots, Open>, ClosedPhase>) => Script<In, Next, NextReserved, NextSlots, NextOpen>): Script<In, Next, NextReserved, NextSlots, NextOpen>;
246
+ addPhase<Next extends object, NextReserved extends PropertyKey, NextSlots, NextOpen extends OpenPhase, NextFlags extends object>(name: string, build: (script: Script<In, Ctx, Reserved, Commit<Slots, Open>, ClosedPhase, Flags>) => Script<In, Next, NextReserved, NextSlots, NextOpen, NextFlags>): Script<In, Next, NextReserved, NextSlots, NextOpen, NextFlags>;
247
+ addPhase<Next extends object, NextReserved extends PropertyKey, NextSlots, NextOpen extends OpenPhase, NextFlags extends object>(name: string, options: PhaseOptions<In, Ctx, Flags>, build: (script: Script<In, Ctx, Reserved, Commit<Slots, Open>, ClosedPhase, Flags>) => Script<In, Next, NextReserved, NextSlots, NextOpen, NextFlags>): Script<In, Next, NextReserved, NextSlots, NextOpen, NextFlags>;
190
248
  /**
191
249
  * Append a step to the current phase. Whatever the handler resolves to is
192
250
  * merged into the context and becomes visible to every later step; whatever
@@ -212,39 +270,39 @@ export declare class Script<In = void, Ctx extends object = {}, Reserved extends
212
270
  * step's `rollbackKeys`.
213
271
  */
214
272
  /** Cached, `rollbackKeys` inherited. See {@link InheritedKeyStepDef}. */
215
- addStep<Out extends object | void = void, const Name extends string = string, const RollbackKeys extends readonly (keyof Ctx)[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: Omit<InheritedKeyStepDef<In, Ctx, Out, RollbackKeys, Slots>, "name"> & CleanField<Ctx, Reserved, CleanKeys> & {
273
+ addStep<Out extends object | void = void, const Name extends string = string, const RollbackKeys extends readonly (keyof Ctx)[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: Omit<InheritedKeyStepDef<In, Ctx, Out, RollbackKeys, Slots, Flags>, "name"> & CleanField<Ctx, Reserved, CleanKeys> & {
216
274
  name: Name;
217
- cache: CacheSource<In, Ctx>;
275
+ cache: CacheSource<In, Ctx, unknown, Flags>;
218
276
  }): Script<In, Cleaned<Merge<Ctx, Out>, CleanKeys[number]>, Reserved | RollbackKeys[number], Slots & Record<`${Open["phase"]}::${Name}`, Out>, {
219
277
  name: Open["name"];
220
278
  phase: Open["phase"];
221
279
  schema: Open["schema"];
222
280
  delta: Cleaned<Merge<Open["delta"], Out>, CleanKeys[number]>;
223
- }>;
281
+ }, Flags>;
224
282
  /** Plain, `rollbackKeys` inherited. See {@link InheritedKeyStepDef}. */
225
- addStep<Out extends object | void = void, const RollbackKeys extends readonly (keyof Ctx)[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: InheritedKeyStepDef<In, Ctx, Out, RollbackKeys, Slots> & CleanField<Ctx, Reserved, CleanKeys>): Script<In, Cleaned<Merge<Ctx, Out>, CleanKeys[number]>, Reserved | RollbackKeys[number], Slots, {
283
+ addStep<Out extends object | void = void, const RollbackKeys extends readonly (keyof Ctx)[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: InheritedKeyStepDef<In, Ctx, Out, RollbackKeys, Slots, Flags> & CleanField<Ctx, Reserved, CleanKeys>): Script<In, Cleaned<Merge<Ctx, Out>, CleanKeys[number]>, Reserved | RollbackKeys[number], Slots, {
226
284
  name: Open["name"];
227
285
  phase: Open["phase"];
228
286
  schema: Open["schema"];
229
287
  delta: Cleaned<Merge<Open["delta"], Out>, CleanKeys[number]>;
230
- }>;
288
+ }, Flags>;
231
289
  /** Cached, general form. See {@link StepDef}. */
232
- addStep<Out extends object | void, const Name extends string, const RollbackKeys extends readonly PropertyKey[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: Omit<StepDef<In, Ctx, Out, RollbackKeys, Slots>, "name"> & CleanField<Ctx, Reserved, CleanKeys> & {
290
+ addStep<Out extends object | void, const Name extends string, const RollbackKeys extends readonly PropertyKey[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: Omit<StepDef<In, Ctx, Out, RollbackKeys, Slots, Flags>, "name"> & CleanField<Ctx, Reserved, CleanKeys> & {
233
291
  name: Name;
234
- cache: CacheSource<In, Ctx>;
292
+ cache: CacheSource<In, Ctx, unknown, Flags>;
235
293
  }): Script<In, Cleaned<Merge<Ctx, Out>, CleanKeys[number]>, Reserved | RollbackKeys[number], Slots & Record<`${Open["phase"]}::${Name}`, Out>, {
236
294
  name: Open["name"];
237
295
  phase: Open["phase"];
238
296
  schema: Open["schema"];
239
297
  delta: Cleaned<Merge<Open["delta"], Out>, CleanKeys[number]>;
240
- }>;
298
+ }, Flags>;
241
299
  /** Plain, general form. See {@link StepDef}. */
242
- addStep<Out extends object | void, const RollbackKeys extends readonly PropertyKey[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: StepDef<In, Ctx, Out, RollbackKeys, Slots> & CleanField<Ctx, Reserved, CleanKeys>): Script<In, Cleaned<Merge<Ctx, Out>, CleanKeys[number]>, Reserved | RollbackKeys[number], Slots, {
300
+ addStep<Out extends object | void, const RollbackKeys extends readonly PropertyKey[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: StepDef<In, Ctx, Out, RollbackKeys, Slots, Flags> & CleanField<Ctx, Reserved, CleanKeys>): Script<In, Cleaned<Merge<Ctx, Out>, CleanKeys[number]>, Reserved | RollbackKeys[number], Slots, {
243
301
  name: Open["name"];
244
302
  phase: Open["phase"];
245
303
  schema: Open["schema"];
246
304
  delta: Cleaned<Merge<Open["delta"], Out>, CleanKeys[number]>;
247
- }>;
305
+ }, Flags>;
248
306
  /**
249
307
  * Splice a reusable fragment into this script. Its phases land here in
250
308
  * order, and everything it produced is merged into the context — so the
@@ -273,18 +331,18 @@ export declare class Script<In = void, Ctx extends object = {}, Reserved extends
273
331
  */
274
332
  use<SubIn, Out extends object, R extends PropertyKey, RS, const As extends string | undefined = undefined>(routine: Routine<SubIn, Ctx, Out, R, RS>, options: {
275
333
  as?: As;
276
- input: MountInput<In, Ctx, SubIn>;
277
- }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, RS>, ClosedPhase>;
278
- use<SubIn, Out extends object, R extends PropertyKey, SS, SO extends OpenPhase, const As extends string | undefined = undefined>(script: Script<SubIn, Out, R, SS, SO>, options: {
334
+ input: MountInput<In, Ctx, SubIn, Flags>;
335
+ }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, RS>, ClosedPhase, Flags>;
336
+ use<SubIn, Out extends object, R extends PropertyKey, SS, SO extends OpenPhase, MF extends object, const As extends string | undefined = undefined>(script: Script<SubIn, Out, R, SS, SO, MF>, options: {
279
337
  as?: As;
280
- input: MountInput<In, Ctx, SubIn>;
281
- }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, Commit<SS, SO>>, ClosedPhase>;
282
- use<Out extends object, R extends PropertyKey, SS, SO extends OpenPhase, const As extends string | undefined = undefined>(script: Script<In, Out, R, SS, SO>, options?: {
338
+ input: MountInput<In, Ctx, SubIn, Flags>;
339
+ }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, Commit<SS, SO>>, ClosedPhase, Flags>;
340
+ use<Out extends object, R extends PropertyKey, SS, SO extends OpenPhase, MF extends object, const As extends string | undefined = undefined>(script: Script<In, Out, R, SS, SO, MF>, options?: {
283
341
  as?: As;
284
- }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, Commit<SS, SO>>, ClosedPhase>;
342
+ }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, Commit<SS, SO>>, ClosedPhase, Flags>;
285
343
  use<Out extends object, R extends PropertyKey, RS, const As extends string | undefined = undefined>(routine: Routine<In, Ctx, Out, R, RS>, options?: {
286
344
  as?: As;
287
- }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, RS>, ClosedPhase>;
345
+ }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, RS>, ClosedPhase, Flags>;
288
346
  /** Every step name, in execution order — handy for tests and docs. */
289
347
  outline(): Array<{
290
348
  phase: string;
@@ -323,9 +381,9 @@ export declare class Script<In = void, Ctx extends object = {}, Reserved extends
323
381
  * `rollbackKeys` works the same here, and the keys it names stay reserved once
324
382
  * the step is handed to `addStep`.
325
383
  */
326
- export declare function stepFor<In, Ctx extends object = {}, Slots = UnknownSlots>(): {
327
- <Out extends object | void = void, const RollbackKeys extends readonly (keyof Ctx)[] = readonly []>(def: InheritedKeyStepDef<In, Ctx, Out, RollbackKeys, Slots>): StepDef<In, Ctx, Out, RollbackKeys, Slots>;
328
- <Out extends object | void, const RollbackKeys extends readonly PropertyKey[] = readonly []>(def: StepDef<In, Ctx, Out, RollbackKeys, Slots>): StepDef<In, Ctx, Out, RollbackKeys, Slots>;
384
+ export declare function stepFor<In, Ctx extends object = {}, Slots = UnknownSlots, Flags = UnknownFlags>(): {
385
+ <Out extends object | void = void, const RollbackKeys extends readonly (keyof Ctx)[] = readonly []>(def: InheritedKeyStepDef<In, Ctx, Out, RollbackKeys, Slots, Flags>): StepDef<In, Ctx, Out, RollbackKeys, Slots, Flags>;
386
+ <Out extends object | void, const RollbackKeys extends readonly PropertyKey[] = readonly []>(def: StepDef<In, Ctx, Out, RollbackKeys, Slots, Flags>): StepDef<In, Ctx, Out, RollbackKeys, Slots, Flags>;
329
387
  };
330
388
  /**
331
389
  * Declare phases and steps away from any particular script, then mount them
@@ -351,7 +409,7 @@ export declare function stepFor<In, Ctx extends object = {}, Slots = UnknownSlot
351
409
  * A routine owns whole phases, so phase-level options — `when`, `cache` —
352
410
  * travel with it.
353
411
  */
354
- export declare function routineFor<In, Ctx extends object = {}>(): <Out extends object, R extends PropertyKey, S, O extends OpenPhase>(name: string, build: (script: Script<In, Ctx, never>) => Script<In, Out, R, S, O>) => Routine<In, Ctx, Out, R, Commit<S, O>>;
412
+ export declare function routineFor<In, Ctx extends object = {}>(): <Out extends object, R extends PropertyKey, S, O extends OpenPhase>(name: string, build: (script: Script<In, Ctx, never, {}, ClosedPhase, UnknownFlags>) => Script<In, Out, R, S, O>) => Routine<In, Ctx, Out, R, Commit<S, O>>;
355
413
  /** Convenience factory so callers can skip `new`. */
356
414
  export declare function script<In = void>(options?: ScriptOptions | string): Script<In, {}>;
357
415
  //# sourceMappingURL=script.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
package/dist/script.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createCacheHandle, normalizeCache, phaseSlot, readCache, stepSlot, writeCache, } from "./cache.js";
2
2
  import { createRollbackContext, createStepContext } from "./context.js";
3
3
  import { DuplicateNameError, ScriptAbortedError, SchemaValidationError, StepDefinitionError, StepTimeoutError, isAbort, } from "./errors.js";
4
+ import { kebabCase, parseFlags } from "./flags.js";
4
5
  import { errorMessage } from "./state.js";
5
6
  import { createRenderer } from "./ui/renderer.js";
6
7
  /**
@@ -46,6 +47,10 @@ export class Script {
46
47
  /** False right after `use()`, so a bare `addStep` cannot land in a fragment. */
47
48
  openPhase = false;
48
49
  _schema;
50
+ flagDefs = [];
51
+ flagNames = new Set();
52
+ flagLongs = new Set();
53
+ flagShorts = new Set();
49
54
  constructor(options = {}) {
50
55
  this.options = typeof options === "string" ? { name: options } : options;
51
56
  bodies.set(this, {
@@ -87,6 +92,48 @@ export class Script {
87
92
  throw new SchemaValidationError(result.issues);
88
93
  return result.value;
89
94
  }
95
+ defineFlag(options) {
96
+ const long = options.long ?? kebabCase(options.name);
97
+ this.claimFlagIdentity(options.name, long, options.short);
98
+ const boolean = options.boolean === true;
99
+ const hasDefault = "default" in options && options.default !== undefined;
100
+ this.flagDefs.push({
101
+ name: options.name,
102
+ long,
103
+ ...(options.short !== undefined ? { short: options.short } : {}),
104
+ ...(options.description !== undefined ? { description: options.description } : {}),
105
+ boolean,
106
+ hasDefault,
107
+ default: options.default,
108
+ });
109
+ return this;
110
+ }
111
+ /**
112
+ * Flag identities have to be unique the same way phase and step names do —
113
+ * `name` is the property key on `context.flags`, and the long/short forms
114
+ * are what argv is matched against.
115
+ */
116
+ claimFlagIdentity(name, long, short) {
117
+ if (this.flagNames.has(name)) {
118
+ throw new DuplicateNameError("flag", name, `Flag "${name}" is already defined on this script.`);
119
+ }
120
+ if (this.flagLongs.has(long)) {
121
+ throw new DuplicateNameError("flag", long, `Flag "--${long}" is already defined on this script.`);
122
+ }
123
+ if (short !== undefined && this.flagShorts.has(short)) {
124
+ throw new DuplicateNameError("flag", short, `Flag "-${short}" is already defined on this script.`);
125
+ }
126
+ this.flagNames.add(name);
127
+ this.flagLongs.add(long);
128
+ if (short !== undefined)
129
+ this.flagShorts.add(short);
130
+ }
131
+ /** Parse `argv` against this script's declared flags — `{}` when none are. */
132
+ resolveFlags(argv) {
133
+ if (this.flagDefs.length === 0)
134
+ return {};
135
+ return parseFlags(argv ?? process.argv.slice(2), this.flagDefs);
136
+ }
90
137
  addPhase(name, optionsOrBuild, maybeBuild) {
91
138
  const build = typeof optionsOrBuild === "function" ? optionsOrBuild : maybeBuild;
92
139
  const options = typeof optionsOrBuild === "function" ? {} : (optionsOrBuild ?? {});
@@ -193,6 +240,7 @@ export class Script {
193
240
  /* ------------------------------------------------------------------------ */
194
241
  async run(input, runOptions = {}) {
195
242
  input = await this.validateInput(input);
243
+ const flags = this.resolveFlags(runOptions.argv);
196
244
  const runtime = [];
197
245
  const phases = this.definition.map((phase, phaseIndex) => {
198
246
  const steps = phase.steps.map((def) => {
@@ -283,12 +331,12 @@ export class Script {
283
331
  if (!mountInputs.has(phase.mount)) {
284
332
  const source = phase.mount.source;
285
333
  mountInputs.set(phase.mount, (typeof source === "function"
286
- ? await source({ input, ctx })
334
+ ? await source({ input, ctx, flags })
287
335
  : source));
288
336
  }
289
337
  phaseInput = mountInputs.get(phase.mount);
290
338
  }
291
- if (phase.options.when && !(await phase.options.when({ input: phaseInput, ctx }))) {
339
+ if (phase.options.when && !(await phase.options.when({ input: phaseInput, ctx, flags }))) {
292
340
  for (const item of phaseSteps) {
293
341
  item.state.status = "skipped";
294
342
  drop(ctx, item.def.clean);
@@ -300,7 +348,7 @@ export class Script {
300
348
  const phaseCache = normalizeCache(phase.options.cache);
301
349
  const slot = phaseSlot(phase.name);
302
350
  if (phaseCache) {
303
- const hit = await safely(() => readCache(phaseCache, slot, phaseInput, ctx, cacheMode), { hit: false }, `read for phase "${phase.name}"`, renderer);
351
+ const hit = await safely(() => readCache(phaseCache, slot, phaseInput, ctx, cacheMode, flags), { hit: false }, `read for phase "${phase.name}"`, renderer);
304
352
  if (hit.hit) {
305
353
  // The delta was recorded *after* this phase's own cleans, so
306
354
  // applying it and then replaying those cleans reproduces exactly
@@ -331,7 +379,7 @@ export class Script {
331
379
  };
332
380
  break phaseLoop;
333
381
  }
334
- if (item.def.when && !(await item.def.when({ input: phaseInput, ctx }))) {
382
+ if (item.def.when && !(await item.def.when({ input: phaseInput, ctx, flags }))) {
335
383
  item.state.status = "skipped";
336
384
  drop(ctx, item.def.clean);
337
385
  drop(delta, item.def.clean);
@@ -342,7 +390,7 @@ export class Script {
342
390
  const stepCache = normalizeCache(item.def.cache);
343
391
  const stepKey = stepSlot(phase.name, item.state.name);
344
392
  if (stepCache) {
345
- const hit = await safely(() => readCache(stepCache, stepKey, phaseInput, ctx, cacheMode), { hit: false }, `read for step "${item.state.name}"`, renderer);
393
+ const hit = await safely(() => readCache(stepCache, stepKey, phaseInput, ctx, cacheMode, flags), { hit: false }, `read for step "${item.state.name}"`, renderer);
346
394
  if (hit.hit) {
347
395
  // Never entered `completed`, so this step's rollback cannot fire
348
396
  // during a later unwind — the side effect belongs to the run that
@@ -364,7 +412,7 @@ export class Script {
364
412
  renderer.refresh();
365
413
  let output;
366
414
  try {
367
- output = await this.executeStep(item, phaseInput, ctx, runController.signal, renderer, cache);
415
+ output = await this.executeStep(item, phaseInput, ctx, runController.signal, renderer, cache, flags);
368
416
  item.state.status = "success";
369
417
  item.state.endedAt = performance.now();
370
418
  delete item.state.statusText;
@@ -404,7 +452,7 @@ export class Script {
404
452
  if (failure) {
405
453
  state.status = isAbort(failure.error) ? "aborted" : "failed";
406
454
  state.failure = failure;
407
- await this.unwind(completed, failure, ctx, cache, state, rollbacks, rollbackController.signal, renderer);
455
+ await this.unwind(completed, failure, ctx, cache, state, rollbacks, rollbackController.signal, renderer, flags);
408
456
  }
409
457
  else {
410
458
  state.status = "success";
@@ -453,7 +501,7 @@ export class Script {
453
501
  };
454
502
  }
455
503
  /** Retry + timeout wrapper around a single handler invocation. */
456
- async executeStep(item, input, ctx, runSignal, renderer, cache) {
504
+ async executeStep(item, input, ctx, runSignal, renderer, cache, flags) {
457
505
  const retry = item.def.retry;
458
506
  const maxAttempts = Math.max(1, retry?.attempts ?? 1);
459
507
  let lastError;
@@ -473,7 +521,7 @@ export class Script {
473
521
  : setTimeout(() => controller.abort(new StepTimeoutError(item.def.name, timeoutMs)), timeoutMs);
474
522
  const bail = abortRejection(controller.signal);
475
523
  try {
476
- const context = createStepContext({ renderer, step: item.state, phaseName: item.phaseName, cache }, input, ctx, controller.signal, attempt);
524
+ const context = createStepContext({ renderer, step: item.state, phaseName: item.phaseName, cache, flags }, input, ctx, controller.signal, attempt);
477
525
  return await Promise.race([
478
526
  Promise.resolve(item.def.handler(context)),
479
527
  bail.promise,
@@ -501,7 +549,7 @@ export class Script {
501
549
  throw lastError;
502
550
  }
503
551
  /** Compensate completed steps in reverse order. */
504
- async unwind(completed, failure, ctx, cache, state, rollbacks, signal, renderer) {
552
+ async unwind(completed, failure, ctx, cache, state, rollbacks, signal, renderer, flags) {
505
553
  const mode = this.options.rollback ?? "all";
506
554
  if (mode === "none")
507
555
  return;
@@ -517,7 +565,7 @@ export class Script {
517
565
  entry.runtime.state.status = "rolling-back";
518
566
  renderer.refresh();
519
567
  try {
520
- const context = createRollbackContext({ renderer, step: entry.runtime.state, phaseName: entry.runtime.phaseName, cache },
568
+ const context = createRollbackContext({ renderer, step: entry.runtime.state, phaseName: entry.runtime.phaseName, cache, flags },
521
569
  // The input this step actually ran with — a mounted fragment's
522
570
  // rollback sees its mount's input, not the host's.
523
571
  entry.input,
@@ -704,7 +752,14 @@ export function stepFor() {
704
752
  * travel with it.
705
753
  */
706
754
  export function routineFor() {
707
- return (name, build) => {
755
+ return (name,
756
+ // `UnknownFlags`, not the class's own `{}` default: a routine is written
757
+ // away from any particular script, so it cannot know what flags the host
758
+ // that eventually mounts it will have declared — same reasoning as
759
+ // `stepFor`'s default. A mount does not merge flags in either way; see
760
+ // `use()`. The actual values still reach a routine's steps at runtime,
761
+ // since a mounted routine's steps run through the host's own `run()`.
762
+ build) => {
708
763
  const built = build(new Script(name));
709
764
  const body = bodies.get(built);
710
765
  if (!body)
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,SAAS,EAET,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAoB,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,OAAO,EAAgB,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,YAAY,EAAkD,MAAM,YAAY,CAAC;AAuB1F,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAC;AA4FjE;;;GAGG;AACH,MAAM,MAAM,GAAG,IAAI,OAAO,EAAuB,CAAC;AA2FlD,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,MAAM;IAiBA,OAAO,CAAgB;IACvB,UAAU,GAAsB,EAAE,CAAC;IACnC,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7B,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAChD,gFAAgF;IACxE,SAAS,GAAG,KAAK,CAAC;IAClB,OAAO,CAA+B;IAC7B,QAAQ,GAAc,EAAE,CAAC;IACzB,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhD,YAAY,UAAkC,EAAE;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;YACf,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ;YACnC,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,WAAW,CACT,MAA0C;QAE1C,IAAI,CAAC,OAAO,GAAG,MAA0B,CAAC;QAC1C,OAAO,IAAyE,CAAC;IACnF,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,aAAa,CAAC,KAAS;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,KAAW,CAAC;IAC5B,CAAC;IA0CD,UAAU,CAAC,OAA+C;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;QACzC,MAAM,UAAU,GAAG,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC;QACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI;YACJ,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,OAAO;YACP,UAAU;YACV,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,IAAY,EAAE,IAAY,EAAE,KAAyB;QAC7E,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,IAAI,sCAAsC,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,IAAI,sCAAsC,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,sCAAsC,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,8EAA8E;IACtE,YAAY,CAAC,IAAmC;QACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAyDD,QAAQ,CACN,IAAY,EACZ,cAA4E,EAC5E,UAAuC;QAEvC,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;QACrE,MAAM,OAAO,GACX,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI;YACJ,OAAO,EAAE,OAAyC;YAClD,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,IAAa,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAiHD,OAAO,CAAC,GAAW;QACjB,MAAM,IAAI,GAAG,GAA4B,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAE7C,2EAA2E;QAC3E,qDAAqD;QACrD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC9D,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,mBAAmB,CAC3B,IAAI,CAAC,IAAI,EACT,SAAS,IAAI,CAAC,IAAI,kBAAkB,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACnF,0BAA0B,CAC7B,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,YAAY;YAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,0EAA0E;QAC1E,sEAAsE;QACtE,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,kBAAkB,CAC1B,MAAM,EACN,IAAI,CAAC,IAAI,EACT,SAAS,IAAI,CAAC,IAAI,kCAAkC,KAAK,CAAC,IAAI,IAAI,CACnE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IA2FD,GAAG,CAAC,MAAc,EAAE,UAA8C,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,mBAAmB,CAC3B,KAAK,EACL,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,gEAAgE;QAChE,MAAM,KAAK,GACT,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,sEAAsE;YACtE,kEAAkE;YAClE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,IAAI;gBACJ,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,uEAAuE;QACvE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAExD,0EAA0E;QAC1E,mCAAmC;QACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IACtE,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5C,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,YAAY;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,mBAAmB,CAC3B,SAAS,EACT,mCAAmC,IAAI,CAAC,IAAI,mCAAmC;gBAC7E,iDAAiD,CACpD,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,IAAY,EAAE,IAAa;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,kBAAkB,CAC1B,OAAO,EACP,IAAI,EACJ,IAAI;YACF,CAAC,CAAC,UAAU,IAAI,WAAW,IAAI,uCAAuC;gBAClE,qEAAqE;YACzE,CAAC,CAAC,UAAU,IAAI,sCAAsC,CACzD,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAE9E,KAAK,CAAC,GAAG,CAAC,KAAS,EAAE,aAAyB,EAAE;QAC9C,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAiB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YACrE,MAAM,KAAK,GAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjD,MAAM,KAAK,GAAc;oBACvB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,UAAU;oBACV,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU;iBAChD,CAAC;gBACF,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;oBAAE,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5C,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YACrD,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAa;YACtB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ;YACnC,MAAM;YACN,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE;YAC5B,aAAa,EAAE,CAAC;YAChB,gBAAgB,EAAE,CAAC;YACnB,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAEzF,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBAC/B,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;wBACzC,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;qBAClC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,cAAc,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChG,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;QAC5C,MAAM,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,kBAAkB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAE7F,MAAM,GAAG,GAAG,EAAmC,CAAC;QAChD,yEAAyE;QACzE,uEAAuE;QACvE,mBAAmB;QACnB,MAAM,SAAS,GAAgE,EAAE,CAAC;QAClF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;QAChD,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,IAAI,OAAO,GAA2D,IAAI,CAAC;QAE3E,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtB,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,MAAM,SAAS,GAAc,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC;YAEtD,SAAS,EAAE,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;gBACtC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7B,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAE1B,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAElC,sEAAsE;gBACtE,uDAAuD;gBACvD,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAClC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;wBAClC,WAAW,CAAC,GAAG,CACb,KAAK,CAAC,KAAK,EACX,CAAC,OAAO,MAAM,KAAK,UAAU;4BAC3B,CAAC,CAAC,MACE,MACD,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;4BAC1B,CAAC,CAAC,MAAM,CAAO,CAClB,CAAC;oBACJ,CAAC;oBACD,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAO,CAAC;gBAClD,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;oBACzF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;wBAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;wBAC9B,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC1B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;oBACD,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEnC,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,EACpE,EAAE,GAAG,EAAE,KAAK,EAAW,EACvB,mBAAmB,KAAK,CAAC,IAAI,GAAG,EAChC,QAAQ,CACT,CAAC;oBACF,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;wBACZ,6DAA6D;wBAC7D,iEAAiE;wBACjE,mEAAmE;wBACnE,mCAAmC;wBACnC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;wBACtB,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;wBAClC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;4BAC9B,gEAAgE;4BAChE,mCAAmC;4BACnC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;4BAC7B,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;4BAC1B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACjC,CAAC;wBACD,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,sEAAsE;gBACtE,4BAA4B;gBAC5B,MAAM,KAAK,GAAmC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAErE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjC,OAAO,GAAG;4BACR,KAAK,EAAE,KAAK,CAAC,IAAI;4BACjB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;4BACrB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,kBAAkB,CAAC,WAAW,CAAC;yBAC1E,CAAC;wBACF,MAAM,SAAS,CAAC;oBAClB,CAAC;oBAED,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;wBAC/E,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;wBAC9B,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC1B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC5B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;oBAED,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAEtD,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,EACtE,EAAE,GAAG,EAAE,KAAK,EAAW,EACvB,kBAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EACpC,QAAQ,CACT,CAAC;wBACF,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;4BACZ,iEAAiE;4BACjE,kEAAkE;4BAClE,yCAAyC;4BACzC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;4BAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;4BAClC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;4BACtB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;4BACxB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;4BAC1B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;4BAC5B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;4BACnB,SAAS;wBACX,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;oBACzC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAEnB,IAAI,MAAe,CAAC;oBACpB,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAC7B,IAAI,EACJ,UAAU,EACV,GAAG,EACH,aAAa,CAAC,MAAM,EACpB,QAAQ,EACR,KAAK,EACL,KAAK,CACN,CAAC;wBACF,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;wBAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wBACvC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;wBAC7B,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBACnB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBACrB,+DAA+D;wBAC/D,gEAAgE;wBAChE,6DAA6D;wBAC7D,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC1B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC5B,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;wBAC7D,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;wBAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wBACvC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;wBACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;wBAC7B,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;wBAC9D,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,SAAS,CAAC;oBAClB,CAAC;oBAED,mEAAmE;oBACnE,mEAAmE;oBACnE,qCAAqC;oBACrC,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,MAAM,CACV,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EACvD,SAAS,EACT,mBAAmB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EACrC,QAAQ,CACT,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,gEAAgE;gBAChE,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;oBACxB,MAAM,MAAM,CACV,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EACpD,SAAS,EACT,oBAAoB,KAAK,CAAC,IAAI,GAAG,EACjC,QAAQ,CACT,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7D,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBACxB,MAAM,IAAI,CAAC,MAAM,CACf,SAAS,EACT,OAAO,EACP,GAAG,EACH,KAAK,EACL,KAAK,EACL,SAAS,EACT,kBAAkB,CAAC,MAAM,EACzB,QAAQ,EACR,KAAK,CACN,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAe;gBACzB,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBACzB,UAAU,EACR,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;oBAChC,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;gBACtE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;aAC9B,CAAC;YACF,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACpE,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;QAE1E,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY;gBAAE,MAAM,OAAO,CAAC,KAAK,CAAC;YACnD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;gBACzD,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;gBACtD,GAAG,EAAE,GAA6B;gBAClC,UAAU;gBACV,KAAK;gBACL,SAAS;aACV,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,GAAoB;YACzB,UAAU;YACV,KAAK;SACN,CAAC;IACJ,CAAC;IAED,kEAAkE;IAC1D,KAAK,CAAC,WAAW,CACvB,IAAiB,EACjB,KAAS,EACT,GAAQ,EACR,SAAsB,EACtB,QAAkB,EAClB,KAA2B,EAC3B,KAA2B;QAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,SAAkB,CAAC;QAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEnB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,SAAS,CAAC,OAAO;gBAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;;gBACrD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAElE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YACrC,MAAM,KAAK,GACT,SAAS,KAAK,SAAS;gBACrB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAEpG,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAE/C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,iBAAiB,CAC/B,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EACvE,KAAK,EACL,GAAG,EACH,UAAU,CAAC,MAAM,EACjB,OAAO,CACR,CAAC;gBACF,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;oBACxB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAgB,CAAC,CAAC;oBACnD,IAAI,CAAC,OAAO;iBACb,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAK,CAAC;gBAClB,IAAI,OAAO,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAEhC,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;gBACzD,IAAI,OAAO,IAAI,WAAW,IAAI,CAAC,OAAO;oBAAE,MAAM,KAAK,CAAC;gBAEpD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,WAAW,OAAO,wBAAwB,OAAO,IAAI,CAAC;gBAC9E,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAClC,CAAC;oBAAS,CAAC;gBACT,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/B,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC;IAClB,CAAC;IAED,mDAAmD;IAC3C,KAAK,CAAC,MAAM,CAClB,SAAsE,EACtE,OAAwD,EACxD,GAAQ,EACR,KAA2B,EAC3B,KAAe,EACf,SAA2B,EAC3B,MAAmB,EACnB,QAAkB,EAClB,KAA2B;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC5C,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO;QAE5B,MAAM,OAAO,GAAG,SAAS;aACtB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,KAAK,CAAC;aAC9E,OAAO,EAAE,CAAC;QAEb,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM;YAE1B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;YAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEnB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,qBAAqB,CACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;gBACzF,+DAA+D;gBAC/D,mDAAmD;gBACnD,KAAK,CAAC,KAAK;gBACX,mEAAmE;gBACnE,oDAAoD;gBACpD,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EACzC,KAAK,CAAC,MAAM,EACZ,OAAO,CAAC,KAAK,EACb,MAAM,CACP,CAAC;gBACF,MAAM,QAAQ,CAAC,OAAgB,CAAC,CAAC;gBACjC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;gBAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;gBACtC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;gBACzB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC;gBAC/C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBAClC,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC5B,SAAS,CAAC,IAAI,CAAC;oBACb,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;oBAC9B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;oBAC9B,EAAE,EAAE,KAAK;oBACT,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YACD,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB,CACxB,GAAoB,EACpB,QAAyB,EACzB,QAAsB;QAEtB,MAAM,SAAS,GAAsB,EAAE,CAAC;QAExC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,QAAQ,CAAC,OAAO;gBAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;;gBAC5C,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACzC,KAAK,MAAM,UAAU,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,GAAS,EAAE;oBACzB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;wBAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,GAAG,UAAU,WAAW,CAAC,CAAC,CAAC;;wBACpF,GAAG,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC;gBACF,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;oBAClB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,OAAO,IAAI,SAAS;gBAAE,OAAO,EAAE,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;CACF;AAED,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAEhF,oEAAoE;AACpE,SAAS,IAAI,CAAC,GAAkB,EAAE,IAAmC;IACnE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;QAAE,OAAO;IAC1B,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,OAAQ,GAA+B,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAED,6EAA6E;AAC7E,SAAS,KAAK,CAAC,MAAqB,EAAE,KAAc;IAClD,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IACnE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,MAAM,CACnB,MAAwB,EACxB,QAAW,EACX,IAAY,EACZ,QAAkB;IAElB,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,IAAI,YAAY,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzF,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,IAAI,CAAC,GAAW,EAAE,IAAmC;IAC5D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,GAAG;YAAE,MAAM,CAAC,GAAG,CAAC,GAAI,GAA+B,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAA8B,EAAE,OAAe;IACnE,MAAM,KAAK,GAAG,KAAK,EAAE,OAAO,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAmB;IAC5C,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrC,SAAS,MAAM;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB;IACzC,IAAI,QAAkC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,GAAS,EAAE,CACtB,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO;QACP,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,QAAQ;gBAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO;IAuBrB,SAAS,MAAM,CAAC,GAAW;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,CACL,IAAY;IACZ,yEAAyE;IACzE,yEAAyE;IACzE,mEAAmE;IACnE,uEAAuE;IACvE,uEAAuE;IACvE,sEAAsE;IACtE,KAAkG,EAC1D,EAAE;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,MAAM,CAAgD,IAAI,CAAC,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,eAAe,IAAI,wCAAwC,CAAC,CAAC;QAE5G,MAAM,OAAO,GAAG,EAAE,IAAI,EAAuD,CAAC;QAC9E,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAAY,OAAgC;IAChE,OAAO,IAAI,MAAM,CAAS,OAAO,CAAC,CAAC;AACrC,CAAC"}