@langchain/langgraph 0.2.56 → 0.2.58

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.
Files changed (54) hide show
  1. package/dist/constants.cjs +99 -12
  2. package/dist/constants.d.ts +52 -6
  3. package/dist/constants.js +97 -11
  4. package/dist/constants.js.map +1 -1
  5. package/dist/graph/graph.d.ts +1 -1
  6. package/dist/graph/state.cjs +90 -11
  7. package/dist/graph/state.d.ts +23 -5
  8. package/dist/graph/state.js +90 -11
  9. package/dist/graph/state.js.map +1 -1
  10. package/dist/graph/zod/index.cjs +7 -0
  11. package/dist/graph/zod/index.d.ts +2 -0
  12. package/dist/graph/zod/index.js +3 -0
  13. package/dist/graph/zod/index.js.map +1 -0
  14. package/dist/graph/zod/plugin.cjs +41 -0
  15. package/dist/graph/zod/plugin.d.ts +15 -0
  16. package/dist/graph/zod/plugin.js +39 -0
  17. package/dist/graph/zod/plugin.js.map +1 -0
  18. package/dist/graph/zod/schema.cjs +79 -0
  19. package/dist/graph/zod/schema.d.ts +9 -0
  20. package/dist/graph/zod/schema.js +73 -0
  21. package/dist/graph/zod/schema.js.map +1 -0
  22. package/dist/graph/zod/state.cjs +73 -0
  23. package/dist/graph/zod/state.d.ts +30 -0
  24. package/dist/graph/zod/state.js +64 -0
  25. package/dist/graph/zod/state.js.map +1 -0
  26. package/dist/pregel/algo.cjs +26 -3
  27. package/dist/pregel/algo.js +27 -4
  28. package/dist/pregel/algo.js.map +1 -1
  29. package/dist/pregel/debug.cjs +2 -1
  30. package/dist/pregel/debug.d.ts +1 -1
  31. package/dist/pregel/debug.js +2 -1
  32. package/dist/pregel/debug.js.map +1 -1
  33. package/dist/pregel/index.cjs +133 -27
  34. package/dist/pregel/index.d.ts +19 -1
  35. package/dist/pregel/index.js +135 -29
  36. package/dist/pregel/index.js.map +1 -1
  37. package/dist/pregel/loop.cjs +48 -24
  38. package/dist/pregel/loop.d.ts +1 -0
  39. package/dist/pregel/loop.js +48 -24
  40. package/dist/pregel/loop.js.map +1 -1
  41. package/dist/pregel/retry.cjs +3 -1
  42. package/dist/pregel/retry.js +3 -1
  43. package/dist/pregel/retry.js.map +1 -1
  44. package/dist/pregel/runner.cjs +26 -17
  45. package/dist/pregel/runner.d.ts +4 -0
  46. package/dist/pregel/runner.js +26 -17
  47. package/dist/pregel/runner.js.map +1 -1
  48. package/dist/pregel/utils/index.d.ts +2 -0
  49. package/dist/pregel/utils/index.js.map +1 -1
  50. package/package.json +22 -3
  51. package/zod.cjs +1 -0
  52. package/zod.d.cts +1 -0
  53. package/zod.d.ts +1 -0
  54. package/zod.js +1 -0
@@ -4,10 +4,10 @@ import { compareChannelVersions, copyCheckpoint, emptyCheckpoint, SCHEDULED, uui
4
4
  import { createCheckpoint, emptyChannels, isBaseChannel, } from "../channels/base.js";
5
5
  import { PregelNode } from "./read.js";
6
6
  import { validateGraph, validateKeys } from "./validate.js";
7
- import { readChannels } from "./io.js";
7
+ import { mapInput, readChannels } from "./io.js";
8
8
  import { printStepCheckpoint, printStepTasks, printStepWrites, tasksWithWrites, } from "./debug.js";
9
9
  import { ChannelWrite, PASSTHROUGH } from "./write.js";
10
- import { CONFIG_KEY_CHECKPOINTER, CONFIG_KEY_READ, CONFIG_KEY_SEND, ERROR, INTERRUPT, CHECKPOINT_NAMESPACE_SEPARATOR, CHECKPOINT_NAMESPACE_END, CONFIG_KEY_STREAM, CONFIG_KEY_TASK_ID, NULL_TASK_ID, INPUT, PUSH, } from "../constants.js";
10
+ import { CONFIG_KEY_CHECKPOINTER, CONFIG_KEY_READ, CONFIG_KEY_SEND, CONFIG_KEY_TASK_ID, ERROR, INPUT, INTERRUPT, PUSH, CHECKPOINT_NAMESPACE_SEPARATOR, CHECKPOINT_NAMESPACE_END, CONFIG_KEY_STREAM, NULL_TASK_ID, COPY, END, CONFIG_KEY_NODE_FINISHED, } from "../constants.js";
11
11
  import { GraphRecursionError, GraphValueError, InvalidUpdateError, } from "../errors.js";
12
12
  import { _prepareNextTasks, _localRead, _applyWrites, } from "./algo.js";
13
13
  import { _coerceToDict, getNewChannelVersions, patchCheckpointMap, } from "./utils/index.js";
@@ -515,10 +515,11 @@ export class Pregel extends Runnable {
515
515
  * @param config - Configuration for preparing the snapshot
516
516
  * @param saved - Optional saved checkpoint data
517
517
  * @param subgraphCheckpointer - Optional checkpointer for subgraphs
518
+ * @param applyPendingWrites - Whether to apply pending writes to tasks and then to channels
518
519
  * @returns A snapshot of the graph state
519
520
  * @internal
520
521
  */
521
- async _prepareStateSnapshot({ config, saved, subgraphCheckpointer, }) {
522
+ async _prepareStateSnapshot({ config, saved, subgraphCheckpointer, applyPendingWrites = false, }) {
522
523
  if (saved === undefined) {
523
524
  return {
524
525
  values: {},
@@ -527,20 +528,40 @@ export class Pregel extends Runnable {
527
528
  tasks: [],
528
529
  };
529
530
  }
530
- // Pass `skipManaged: true` as managed values should not be returned in get state calls.
531
- const { managed } = await this.prepareSpecs(config, { skipManaged: true });
531
+ // Create all channels
532
+ const { managed } = await this.prepareSpecs(config, {
533
+ skipManaged: true,
534
+ });
532
535
  const channels = emptyChannels(this.channels, saved.checkpoint);
533
- const nextTasks = Object.values(_prepareNextTasks(saved.checkpoint, saved.pendingWrites, this.nodes, channels, managed, saved.config, false, { step: (saved.metadata?.step ?? -1) + 1 }));
536
+ // Apply null writes first (from NULL_TASK_ID)
537
+ if (saved.pendingWrites?.length) {
538
+ const nullWrites = saved.pendingWrites
539
+ .filter(([taskId, _]) => taskId === NULL_TASK_ID)
540
+ .map(([_, channel, value]) => [String(channel), value]);
541
+ if (nullWrites.length > 0) {
542
+ _applyWrites(saved.checkpoint, channels, [
543
+ {
544
+ name: INPUT,
545
+ writes: nullWrites,
546
+ triggers: [],
547
+ },
548
+ ]);
549
+ }
550
+ }
551
+ // Prepare next tasks
552
+ const nextTasks = Object.values(_prepareNextTasks(saved.checkpoint, saved.pendingWrites, this.nodes, channels, managed, saved.config, true, { step: (saved.metadata?.step ?? -1) + 1, store: this.store }));
553
+ // Find subgraphs
534
554
  const subgraphs = await gatherIterator(this.getSubgraphsAsync());
535
555
  const parentNamespace = saved.config.configurable?.checkpoint_ns ?? "";
536
556
  const taskStates = {};
557
+ // Prepare task states for subgraphs
537
558
  for (const task of nextTasks) {
538
559
  const matchingSubgraph = subgraphs.find(([name]) => name === task.name);
539
560
  if (!matchingSubgraph) {
540
561
  continue;
541
562
  }
542
563
  // assemble checkpoint_ns for this task
543
- let taskNs = `${task.name}${CHECKPOINT_NAMESPACE_END}${task.id}`;
564
+ let taskNs = `${String(task.name)}${CHECKPOINT_NAMESPACE_END}${task.id}`;
544
565
  if (parentNamespace) {
545
566
  taskNs = `${parentNamespace}${CHECKPOINT_NAMESPACE_SEPARATOR}${taskNs}`;
546
567
  }
@@ -556,37 +577,59 @@ export class Pregel extends Runnable {
556
577
  }
557
578
  else {
558
579
  // get the state of the subgraph
559
- const config = {
580
+ const subgraphConfig = {
560
581
  configurable: {
561
582
  [CONFIG_KEY_CHECKPOINTER]: subgraphCheckpointer,
562
583
  thread_id: saved.config.configurable?.thread_id,
563
584
  checkpoint_ns: taskNs,
564
585
  },
565
586
  };
566
- taskStates[task.id] = await matchingSubgraph[1].getState(config, {
587
+ const pregel = matchingSubgraph[1];
588
+ taskStates[task.id] = await pregel.getState(subgraphConfig, {
567
589
  subgraphs: true,
568
590
  });
569
591
  }
570
592
  }
571
- // apply pending writes
572
- const nullWrites = (saved.pendingWrites ?? [])
573
- .filter((w) => w[0] === NULL_TASK_ID)
574
- .map((w) => w.slice(1));
575
- if (nullWrites.length > 0) {
576
- _applyWrites(saved.checkpoint, channels, [
577
- {
578
- name: INPUT,
579
- writes: nullWrites,
580
- triggers: [],
581
- },
582
- ]);
593
+ // Apply pending writes to tasks and then to channels if applyPendingWrites is true
594
+ if (applyPendingWrites && saved.pendingWrites?.length) {
595
+ // Map task IDs to task objects for easy lookup
596
+ const nextTaskById = Object.fromEntries(nextTasks.map((task) => [task.id, task]));
597
+ // Apply pending writes to the appropriate tasks
598
+ for (const [taskId, channel, value] of saved.pendingWrites) {
599
+ // Skip special channels and tasks not in nextTasks
600
+ if ([ERROR, INTERRUPT, SCHEDULED].includes(channel)) {
601
+ continue;
602
+ }
603
+ if (!(taskId in nextTaskById)) {
604
+ continue;
605
+ }
606
+ // Add the write to the task
607
+ nextTaskById[taskId].writes.push([String(channel), value]);
608
+ }
609
+ // Apply writes from tasks that have writes
610
+ const tasksWithWrites = nextTasks.filter((task) => task.writes.length > 0);
611
+ if (tasksWithWrites.length > 0) {
612
+ _applyWrites(saved.checkpoint, channels, tasksWithWrites);
613
+ }
583
614
  }
615
+ // Preserve thread_id from the config in metadata
616
+ let metadata = saved?.metadata;
617
+ if (metadata && saved?.config?.configurable?.thread_id) {
618
+ metadata = {
619
+ ...metadata,
620
+ thread_id: saved.config.configurable.thread_id,
621
+ };
622
+ }
623
+ // Filter next tasks - only include tasks without writes
624
+ const nextList = nextTasks
625
+ .filter((task) => task.writes.length === 0)
626
+ .map((task) => task.name);
584
627
  // assemble the state snapshot
585
628
  return {
586
629
  values: readChannels(channels, this.streamChannelsAsIs),
587
- next: nextTasks.map((task) => task.name),
630
+ next: nextList,
588
631
  tasks: tasksWithWrites(nextTasks, saved?.pendingWrites ?? [], taskStates),
589
- metadata: saved.metadata,
632
+ metadata,
590
633
  config: patchCheckpointMap(saved.config, saved.metadata),
591
634
  createdAt: saved.checkpoint.ts,
592
635
  parentConfig: saved.parentConfig,
@@ -626,6 +669,7 @@ export class Pregel extends Runnable {
626
669
  config: mergedConfig,
627
670
  saved,
628
671
  subgraphCheckpointer: options?.subgraphs ? checkpointer : undefined,
672
+ applyPendingWrites: !config.configurable?.checkpoint_id,
629
673
  });
630
674
  return snapshot;
631
675
  }
@@ -680,6 +724,8 @@ export class Pregel extends Runnable {
680
724
  * from a list of updates, especially if a checkpoint
681
725
  * is created as a result of multiple tasks.
682
726
  *
727
+ * @internal The API might change in the future.
728
+ *
683
729
  * @param startConfig - Configuration for the update
684
730
  * @param updates - The list of updates to apply to graph state
685
731
  * @returns Updated configuration
@@ -757,7 +803,7 @@ export class Pregel extends Runnable {
757
803
  const { managed } = await this.prepareSpecs(config, {
758
804
  skipManaged: true,
759
805
  });
760
- if (values === null && asNode === "__end__") {
806
+ if (values === null && asNode === END) {
761
807
  if (updates.length > 1) {
762
808
  throw new InvalidUpdateError(`Cannot apply multiple updates when clearing state`);
763
809
  }
@@ -804,7 +850,7 @@ export class Pregel extends Runnable {
804
850
  }, {});
805
851
  return patchCheckpointMap(nextConfig, saved ? saved.metadata : undefined);
806
852
  }
807
- if (values == null && asNode === "__copy__") {
853
+ if (values == null && asNode === COPY) {
808
854
  if (updates.length > 1) {
809
855
  throw new InvalidUpdateError(`Cannot copy checkpoint with multiple updates`);
810
856
  }
@@ -816,6 +862,34 @@ export class Pregel extends Runnable {
816
862
  }, {});
817
863
  return patchCheckpointMap(nextConfig, saved ? saved.metadata : undefined);
818
864
  }
865
+ if (asNode === INPUT) {
866
+ if (updates.length > 1) {
867
+ throw new InvalidUpdateError(`Cannot apply multiple updates when updating as input`);
868
+ }
869
+ const inputWrites = await gatherIterator(mapInput(this.inputChannels, values));
870
+ if (inputWrites.length === 0) {
871
+ throw new InvalidUpdateError(`Received no input writes for ${JSON.stringify(this.inputChannels, null, 2)}`);
872
+ }
873
+ // apply to checkpoint
874
+ _applyWrites(checkpoint, channels, [
875
+ {
876
+ name: INPUT,
877
+ writes: inputWrites,
878
+ triggers: [],
879
+ },
880
+ ], checkpointer.getNextVersion.bind(this.checkpointer));
881
+ // apply input write to channels
882
+ const nextStep = saved?.metadata?.step != null ? saved.metadata.step + 1 : -1;
883
+ const nextConfig = await checkpointer.put(checkpointConfig, createCheckpoint(checkpoint, channels, nextStep), {
884
+ source: "input",
885
+ step: nextStep,
886
+ writes: Object.fromEntries(inputWrites),
887
+ parents: saved?.metadata?.parents ?? {},
888
+ }, getNewChannelVersions(checkpointPreviousVersions, checkpoint.channel_versions));
889
+ // Store the writes
890
+ await checkpointer.putWrites(nextConfig, inputWrites, uuid5(INPUT, checkpoint.id));
891
+ return patchCheckpointMap(nextConfig, saved ? saved.metadata : undefined);
892
+ }
819
893
  // apply pending writes, if not on specific checkpoint
820
894
  if (config.configurable?.checkpoint_id === undefined &&
821
895
  saved?.pendingWrites !== undefined &&
@@ -1159,6 +1233,24 @@ export class Pregel extends Runnable {
1159
1233
  managed,
1160
1234
  };
1161
1235
  }
1236
+ /**
1237
+ * Validates the input for the graph.
1238
+ * @param input - The input to validate
1239
+ * @returns The validated input
1240
+ * @internal
1241
+ */
1242
+ async _validateInput(input) {
1243
+ return input;
1244
+ }
1245
+ /**
1246
+ * Validates the configurable options for the graph.
1247
+ * @param config - The configurable options to validate
1248
+ * @returns The validated configurable options
1249
+ * @internal
1250
+ */
1251
+ async _validateConfigurable(config) {
1252
+ return config;
1253
+ }
1162
1254
  /**
1163
1255
  * Internal iterator used by stream() to generate state updates.
1164
1256
  * This method handles the core logic of graph execution and streaming.
@@ -1180,9 +1272,11 @@ export class Pregel extends Runnable {
1180
1272
  inputConfig.configurable === undefined) {
1181
1273
  throw new Error(`Checkpointer requires one or more of the following "configurable" keys: "thread_id", "checkpoint_ns", "checkpoint_id"`);
1182
1274
  }
1275
+ const validInput = await this._validateInput(input);
1183
1276
  const { runId, ...restConfig } = inputConfig;
1184
1277
  // assign defaults
1185
1278
  const [debug, streamMode, , outputKeys, config, interruptBefore, interruptAfter, checkpointer, store, streamModeSingle,] = this._defaults(restConfig);
1279
+ config.configurable = await this._validateConfigurable(config.configurable);
1186
1280
  const stream = new IterableReadableWritableStream({
1187
1281
  modes: new Set(streamMode),
1188
1282
  });
@@ -1207,7 +1301,14 @@ export class Pregel extends Runnable {
1207
1301
  config.writer = (chunk) => stream.push([[], "custom", chunk]);
1208
1302
  }
1209
1303
  const callbackManager = await getCallbackManagerForConfig(config);
1210
- const runManager = await callbackManager?.handleChainStart(this.toJSON(), _coerceToDict(input, "input"), runId, undefined, undefined, undefined, config?.runName ?? this.getName());
1304
+ const runManager = await callbackManager?.handleChainStart(this.toJSON(), // chain
1305
+ _coerceToDict(input, "input"), // inputs
1306
+ runId, // run_id
1307
+ undefined, // run_type
1308
+ undefined, // tags
1309
+ undefined, // metadata
1310
+ config?.runName ?? this.getName() // run_name
1311
+ );
1211
1312
  const { channelSpecs, managed } = await this.prepareSpecs(config);
1212
1313
  let loop;
1213
1314
  let loopError;
@@ -1222,7 +1323,7 @@ export class Pregel extends Runnable {
1222
1323
  const createAndRunLoop = async () => {
1223
1324
  try {
1224
1325
  loop = await PregelLoop.initialize({
1225
- input,
1326
+ input: validInput,
1226
1327
  config,
1227
1328
  checkpointer,
1228
1329
  nodes: this.nodes,
@@ -1239,7 +1340,7 @@ export class Pregel extends Runnable {
1239
1340
  });
1240
1341
  const runner = new PregelRunner({
1241
1342
  loop,
1242
- nodeFinished: config.configurable?.nodeFinished,
1343
+ nodeFinished: config.configurable?.[CONFIG_KEY_NODE_FINISHED],
1243
1344
  });
1244
1345
  if (options?.subgraphs) {
1245
1346
  loop.config.configurable = {
@@ -1311,7 +1412,11 @@ export class Pregel extends Runnable {
1311
1412
  finally {
1312
1413
  await runLoopPromise;
1313
1414
  }
1314
- await runManager?.handleChainEnd(loop?.output ?? {});
1415
+ await runManager?.handleChainEnd(loop?.output ?? {}, runId, // run_id
1416
+ undefined, // run_type
1417
+ undefined, // tags
1418
+ undefined // metadata
1419
+ );
1315
1420
  }
1316
1421
  /**
1317
1422
  * Run the graph with a single input and config.
@@ -1356,6 +1461,7 @@ export class Pregel extends Runnable {
1356
1461
  printStepWrites(step, writes, this.streamChannelsList);
1357
1462
  }
1358
1463
  },
1464
+ maxConcurrency: config.maxConcurrency,
1359
1465
  signal: config.signal,
1360
1466
  });
1361
1467
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pregel/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,QAAQ,EAGR,gBAAgB,EAChB,2BAA2B,EAC3B,YAAY,EACZ,WAAW,EACX,iBAAiB,GAElB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAML,sBAAsB,EACtB,cAAc,EACd,eAAe,EAEf,SAAS,EACT,KAAK,GACN,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,gBAAgB,EAChB,aAAa,EACb,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAqB,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,KAAK,EACL,SAAS,EACT,8BAA8B,EAC9B,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAElB,YAAY,EACZ,KAAK,EACL,IAAI,GACL,MAAM,iBAAiB,CAAC;AAczB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,YAAY,GAGb,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EAExB,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EACL,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAI7D,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,OAAO;IAqDlB,MAAM,CAAC,WAAW,CAChB,QAA2B,EAC3B,OAEsC;QAEtC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;YACpB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACnB,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,SAAS,EAAE;YAChD,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;SACH;QAED,IAAI,qBAAwD,CAAC;QAE7D,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACtB,IAAI,GAAG,EAAE;gBACP,qBAAqB,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;aAC7C;iBAAM;gBACL,qBAAqB,GAAG,CAAC,QAAQ,CAAC,CAAC;aACpC;SACF;aAAM;YACL,qBAAqB,GAAG,MAAM,CAAC,WAAW,CACxC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACrC,CAAC;SACH;QAED,MAAM,QAAQ,GAAa,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE3E,OAAO,IAAI,UAAU,CAAC;YACpB,QAAQ,EAAE,qBAAqB;YAC/B,QAAQ;YACR,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,OAAO,CACZ,QAAkB,EAClB,MAAmC;QAEnC,MAAM,mBAAmB,GAA6B,EAAE,CAAC;QAEzD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,mBAAmB,CAAC,IAAI,CAAC;gBACvB,OAAO;gBACP,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;SACJ;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;YACvD,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBAC7D,mBAAmB,CAAC,IAAI,CAAC;oBACvB,OAAO,EAAE,GAAG;oBACZ,KAAK,EAAE,WAAW;oBAClB,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,iBAAiB,CAAC,KAAqB,CAAC;iBACjD,CAAC,CAAC;aACJ;iBAAM;gBACL,mBAAmB,CAAC,IAAI,CAAC;oBACvB,OAAO,EAAE,GAAG;oBACZ,KAAK;oBACL,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;aACJ;SACF;QAED,OAAO,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC;CACF;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,OAAO,MAQX,SAAQ,QAIP;IAKD;;;OAGG;IACH,MAAM,CAAC,OAAO;QACZ,OAAO,WAAW,CAAC;IACrB,CAAC;IAwFD;;;;OAIG;IACH,YAAY,MAAqC;QAC/C,KAAK,CAAC,MAAM,CAAC,CAAC;QAtFhB,gGAAgG;QAChG;;;;mBAAe,CAAC,WAAW,EAAE,QAAQ,CAAC;WAAC;QAEvC,wFAAwF;QACxF;;;;mBAAe,IAAI;WAAC;QAEpB,+EAA+E;QAC/E;;;;;WAAa;QAEb,0GAA0G;QAC1G;;;;;WAAmB;QAEnB;;;WAGG;QACH;;;;;WAAsD;QAEtD;;;WAGG;QACH;;;;;WAAuD;QAEvD,mGAAmG;QACnG;;;;mBAAwB,IAAI;WAAC;QAE7B;;;;;;;;WAQG;QACH;;;;mBAA2B,CAAC,QAAQ,CAAC;WAAC;QAEtC;;;WAGG;QACH;;;;;WAAwD;QAExD;;;WAGG;QACH;;;;;WAA0C;QAE1C;;;WAGG;QACH;;;;;WAA2C;QAE3C,2EAA2E;QAC3E;;;;;WAAqB;QAErB,0DAA0D;QAC1D;;;;mBAAiB,KAAK;WAAC;QAEvB;;;;WAIG;QACH;;;;;WAA2C;QAE3C,oEAAoE;QACpE;;;;;WAA0B;QAE1B,iGAAiG;QACjG;;;;;WAAiC;QAEjC;;WAEG;QACH;;;;;WAAkB;QAUhB,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAC5B,IAAI,UAAU,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;SAC3B;QAED,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;QACnE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,6DAA6D;IAC7D,2EAA2E;IAClE,UAAU,CAAC,MAAsB;QACxC,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,8DAA8D;QAC9D,OAAO,IAAK,IAAI,CAAC,WAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ;QACN,aAAa,CAAkB;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI,CAAC,cAAc;YACxC,oBAAoB,EAAE,IAAI,CAAC,eAAe;SAC3C,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,IAAI,kBAAkB;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,cAAc,EAAE;YAC9B,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACnC;IACH,CAAC;IAED;;;;;;OAMG;IACH,IAAI,kBAAkB;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACnC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,MAAsB;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;OAQG;IACH,CAAC,YAAY,CACX,SAAkB,EAClB,OAAiB;IACjB,8DAA8D;;QAE9D,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACrD,mBAAmB;YACnB,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBAC/B,SAAS;iBACV;aACF;YAKD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE1E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;gBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAuB,CAAC;gBAElE,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,IAAI,IAAI,KAAK,SAAS,EAAE;wBACtB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACpB,OAAO;qBACR;oBAED,IAAI,SAAS,KAAK,SAAS,EAAE;wBAC3B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;qBACrB;oBAED,IAAI,OAAO,EAAE;wBACX,IAAI,YAAY,GAAG,SAAS,CAAC;wBAC7B,IAAI,SAAS,KAAK,SAAS,EAAE;4BAC3B,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;yBACjD;wBACD,KAAK,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,YAAY,CACvD,YAAY,EACZ,OAAO,CACR,EAAE;4BACD,MAAM;gCACJ,GAAG,IAAI,GAAG,8BAA8B,GAAG,YAAY,EAAE;gCACzD,QAAQ;6BACT,CAAC;yBACH;qBACF;iBACF;aACF;SACF;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,iBAAiB,CACtB,SAAkB,EAClB,OAAiB;IACjB,8DAA8D;;QAE9D,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;OASG;IACO,KAAK,CAAC,qBAAqB,CAAC,EACpC,MAAM,EACN,KAAK,EACL,oBAAoB,GAKrB;QACC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,EAAE;gBACR,MAAM;gBACN,KAAK,EAAE,EAAE;aACV,CAAC;SACH;QACD,wFAAwF;QACxF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3E,MAAM,QAAQ,GAAG,aAAa,CAC5B,IAAI,CAAC,QAAuC,EAC5C,KAAK,CAAC,UAAU,CACjB,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAC7B,iBAAiB,CACf,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,aAAa,EACnB,IAAI,CAAC,KAAK,EACV,QAAQ,EACR,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,KAAK,EACL,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAC3C,CACF,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,IAAI,EAAE,CAAC;QACvE,MAAM,UAAU,GAAmD,EAAE,CAAC;QACtE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;YAC5B,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,CAAC,gBAAgB,EAAE;gBACrB,SAAS;aACV;YACD,uCAAuC;YACvC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,wBAAwB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACjE,IAAI,eAAe,EAAE;gBACnB,MAAM,GAAG,GAAG,eAAe,GAAG,8BAA8B,GAAG,MAAM,EAAE,CAAC;aACzE;YACD,IAAI,oBAAoB,KAAK,SAAS,EAAE;gBACtC,uDAAuD;gBACvD,MAAM,MAAM,GAAmB;oBAC7B,YAAY,EAAE;wBACZ,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS;wBAC/C,aAAa,EAAE,MAAM;qBACtB;iBACF,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;aAC9B;iBAAM;gBACL,gCAAgC;gBAChC,MAAM,MAAM,GAAmB;oBAC7B,YAAY,EAAE;wBACZ,CAAC,uBAAuB,CAAC,EAAE,oBAAoB;wBAC/C,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS;wBAC/C,aAAa,EAAE,MAAM;qBACtB;iBACF,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE;oBAC/D,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;aACJ;SACF;QACD,uBAAuB;QACvB,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;aAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAA2B,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE;gBACvC;oBACE,IAAI,EAAE,KAAK;oBACX,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,EAAE;iBACb;aACF,CAAC,CAAC;SACJ;QACD,8BAA8B;QAC9B,OAAO;YACL,MAAM,EAAE,YAAY,CAClB,QAAQ,EACR,IAAI,CAAC,kBAAuC,CAC7C;YACD,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YACxC,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,IAAI,EAAE,EAAE,UAAU,CAAC;YACzE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;YACxD,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAsB,EACtB,OAAyB;QAEzB,MAAM,YAAY,GAChB,MAAM,CAAC,YAAY,EAAE,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACtE,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,eAAe,CAAC,qBAAqB,CAAC,CAAC;SAClD;QAED,MAAM,mBAAmB,GACvB,MAAM,CAAC,YAAY,EAAE,aAAa,IAAI,EAAE,CAAC;QAC3C,IACE,mBAAmB,KAAK,EAAE;YAC1B,MAAM,CAAC,YAAY,EAAE,CAAC,uBAAuB,CAAC,KAAK,SAAS,EAC5D;YACA,qCAAqC;YACrC,MAAM,eAAe,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;YACvE,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,iBAAiB,CACzD,eAAe,EACf,IAAI,CACL,EAAE;gBACD,IAAI,IAAI,KAAK,eAAe,EAAE;oBAC5B,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAC5B,iBAAiB,CAAC,MAAM,EAAE;wBACxB,CAAC,uBAAuB,CAAC,EAAE,YAAY;qBACxC,CAAC,EACF,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAClC,CAAC;iBACH;aACF;YACD,MAAM,IAAI,KAAK,CACb,4BAA4B,eAAe,cAAc,CAC1D,CAAC;SACH;QAED,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YAChD,MAAM,EAAE,YAAY;YACpB,KAAK;YACL,oBAAoB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;SACpE,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,CAAC,eAAe,CACpB,MAAsB,EACtB,OAA+B;QAE/B,MAAM,YAAY,GAChB,MAAM,CAAC,YAAY,EAAE,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACtE,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QAED,MAAM,mBAAmB,GACvB,MAAM,CAAC,YAAY,EAAE,aAAa,IAAI,EAAE,CAAC;QAC3C,IACE,mBAAmB,KAAK,EAAE;YAC1B,MAAM,CAAC,YAAY,EAAE,CAAC,uBAAuB,CAAC,KAAK,SAAS,EAC5D;YACA,MAAM,eAAe,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;YAEvE,2CAA2C;YAC3C,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB,CACvD,eAAe,EACf,IAAI,CACL,EAAE;gBACD,IAAI,IAAI,KAAK,eAAe,EAAE;oBAC5B,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAC3B,iBAAiB,CAAC,MAAM,EAAE;wBACxB,CAAC,uBAAuB,CAAC,EAAE,YAAY;qBACxC,CAAC,EACF,OAAO,CACR,CAAC;oBACF,OAAO;iBACR;aACF;YACD,MAAM,IAAI,KAAK,CACb,4BAA4B,eAAe,cAAc,CAC1D,CAAC;SACH;QAED,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;YACrD,YAAY,EAAE,EAAE,aAAa,EAAE,mBAAmB,EAAE;SACrD,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,eAAe,IAAI,YAAY,CAAC,IAAI,CACnD,YAAY,EACZ,OAAO,CACR,EAAE;YACD,MAAM,IAAI,CAAC,qBAAqB,CAAC;gBAC/B,MAAM,EAAE,eAAe,CAAC,MAAM;gBAC9B,KAAK,EAAE,eAAe;aACvB,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,eAAe,CACnB,WAAoC,EACpC,UAKE;QAEF,MAAM,YAAY,GAChB,WAAW,CAAC,YAAY,EAAE,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAC3E,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,eAAe,CAAC,qBAAqB,CAAC,CAAC;SAClD;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QAED,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YAClD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QAED,uBAAuB;QACvB,MAAM,mBAAmB,GACvB,WAAW,CAAC,YAAY,EAAE,aAAa,IAAI,EAAE,CAAC;QAChD,IACE,mBAAmB,KAAK,EAAE;YAC1B,WAAW,CAAC,YAAY,EAAE,CAAC,uBAAuB,CAAC,KAAK,SAAS,EACjE;YACA,qCAAqC;YACrC,MAAM,eAAe,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;YACvE,2CAA2C;YAC3C,+CAA+C;YAC/C,IAAI,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB,CACnD,eAAe,EACf,IAAI,CACL,EAAE;gBACD,OAAO,MAAM,MAAM,CAAC,eAAe,CACjC,iBAAiB,CAAC,WAAW,EAAE;oBAC7B,CAAC,uBAAuB,CAAC,EAAE,YAAY;iBACxC,CAAC,EACF,UAAU,CACX,CAAC;aACH;YACD,MAAM,IAAI,KAAK,CAAC,aAAa,eAAe,aAAa,CAAC,CAAC;SAC5D;QAED,MAAM,eAAe,GAAG,KAAK,EAC3B,WAAoC,EACpC,OAGG,EACH,EAAE;YACF,sBAAsB;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;gBACxB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;gBACxC,CAAC,CAAC,WAAW,CAAC;YAChB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,UAAU,GACd,KAAK,KAAK,SAAS;gBACjB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC;gBAClC,CAAC,CAAC,eAAe,EAAE,CAAC;YACxB,MAAM,0BAA0B,GAAG;gBACjC,GAAG,KAAK,EAAE,UAAU,CAAC,gBAAgB;aACtC,CAAC;YACF,MAAM,IAAI,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;YACzC,4DAA4D;YAC5D,IAAI,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,EAAE;gBAC/C,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,IAAI,EAAE;aACxD,CAAC,CAAC;YACH,IAAI,kBAAkB,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC/C,IAAI,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE;gBAC9B,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACxE,kBAAkB,GAAG;oBACnB,GAAG,KAAK,CAAC,QAAQ;oBACjB,GAAG,kBAAkB;iBACtB,CAAC;aACH;YAED,yDAAyD;YACzD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;gBAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtB,MAAM,IAAI,kBAAkB,CAC1B,sDAAsD,CACvD,CAAC;iBACH;gBAED,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,GAAG,CACvC,gBAAgB,EAChB,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAC7C;oBACE,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,IAAI,GAAG,CAAC;oBACd,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE;iBACxC,EACD,EAAE,CACH,CAAC;gBACF,OAAO,kBAAkB,CACvB,UAAU,EACV,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACnC,CAAC;aACH;YAED,kBAAkB;YAClB,MAAM,QAAQ,GAAG,aAAa,CAC5B,IAAI,CAAC,QAAuC,EAC5C,UAAU,CACX,CAAC;YAEF,0FAA0F;YAC1F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBAClD,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;gBAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtB,MAAM,IAAI,kBAAkB,CAC1B,mDAAmD,CACpD,CAAC;iBACH;gBAED,IAAI,KAAK,EAAE;oBACT,4BAA4B;oBAC5B,MAAM,SAAS,GAAG,iBAAiB,CACjC,UAAU,EACV,KAAK,CAAC,aAAa,IAAI,EAAE,EACzB,IAAI,CAAC,KAAK,EACV,QAAQ,EACR,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,IAAI,EACJ;wBACE,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;wBACtC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,SAAS;wBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB,CACF,CAAC;oBAEF,oBAAoB;oBACpB,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;yBAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC;yBACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAA2B,CAAC;oBACpD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBACzB,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE;4BACvC;gCACE,IAAI,EAAE,KAAK;gCACX,MAAM,EAAE,UAAU;gCAClB,QAAQ,EAAE,EAAE;6BACb;yBACF,CAAC,CAAC;qBACJ;oBACD,2CAA2C;oBAC3C,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE;wBACtD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;4BAC7C,SAAS;yBACV;wBACD,IAAI,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;4BAC1B,SAAS;yBACV;wBACD,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;qBACvC;oBACD,0BAA0B;oBAC1B,YAAY,CACV,UAAU,EACV,QAAQ,EACR,MAAM,CAAC,MAAM,CAAC,SAAS,CAA6B,CACrD,CAAC;iBACH;gBACD,kBAAkB;gBAClB,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,GAAG,CACvC,gBAAgB,EAChB,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAC7C;oBACE,GAAG,kBAAkB;oBACrB,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,IAAI,GAAG,CAAC;oBACd,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE;iBACxC,EACD,EAAE,CACH,CAAC;gBACF,OAAO,kBAAkB,CACvB,UAAU,EACV,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACnC,CAAC;aACH;YACD,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,UAAU,EAAE;gBAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtB,MAAM,IAAI,kBAAkB,CAC1B,8CAA8C,CAC/C,CAAC;iBACH;gBAED,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,GAAG,CACvC,KAAK,EAAE,YAAY,IAAI,gBAAgB,EACvC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAC7C;oBACE,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,IAAI,GAAG,CAAC;oBACd,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE;iBACxC,EACD,EAAE,CACH,CAAC;gBACF,OAAO,kBAAkB,CACvB,UAAU,EACV,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACnC,CAAC;aACH;YACD,sDAAsD;YACtD,IACE,MAAM,CAAC,YAAY,EAAE,aAAa,KAAK,SAAS;gBAChD,KAAK,EAAE,aAAa,KAAK,SAAS;gBAClC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAC9B;gBACA,4BAA4B;gBAC5B,MAAM,SAAS,GAAG,iBAAiB,CACjC,UAAU,EACV,KAAK,CAAC,aAAa,EACnB,IAAI,CAAC,KAAK,EACV,QAAQ,EACR,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,IAAI,EACJ;oBACE,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,8DAA8D;oBAC9D,YAAY,EAAE,IAAI,CAAC,YAAmB;oBACtC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;iBACvC,CACF,CAAC;gBACF,oBAAoB;gBACpB,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;qBAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC;qBACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAA2B,CAAC;gBACpD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE;wBACvC;4BACE,IAAI,EAAE,KAAK;4BACX,MAAM,EAAE,UAAU;4BAClB,QAAQ,EAAE,EAAE;yBACb;qBACF,CAAC,CAAC;iBACJ;gBACD,eAAe;gBACf,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE;oBAC7C,IACE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACzC,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,EAC5B;wBACA,SAAS;qBACV;oBACD,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBACpC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAyB,CAAC,CAAC;iBAC/D;aACF;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;iBAC3D,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;gBACpB,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC,CAAC;iBACD,IAAI,EAAE;iBACN,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpB,MAAM,YAAY,GAGb,EAAE,CAAC;YAER,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,wCAAwC;gBACxC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,MAAM,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE;oBACxD,IACE,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;wBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,SAAS,EAC5C;wBACA,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;qBAC7B;iBACF;qBAAM,IAAI,MAAM,KAAK,SAAS,EAAE;oBAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;yBAC5D,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;wBACjB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACnC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAU,CAAC;wBACzB,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC;yBACD,IAAI,EAAE;yBACN,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAC7B,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CACzC,CAAC;oBACJ,kEAAkE;oBAClE,IAAI,cAAc,EAAE;wBAClB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC/B,gDAAgD;4BAChD,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC/B;6BAAM,IACL,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC5C,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5C;4BACA,gDAAgD;4BAChD,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBACvD;qBACF;iBACF;gBAED,IAAI,MAAM,KAAK,SAAS,EAAE;oBACxB,MAAM,IAAI,kBAAkB,CAAC,oCAAoC,CAAC,CAAC;iBACpE;gBAED,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;aACvC;iBAAM;gBACL,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE;oBACxC,IAAI,MAAM,IAAI,IAAI,EAAE;wBAClB,MAAM,IAAI,kBAAkB,CAC1B,qDAAqD,CACtD,CAAC;qBACH;oBAED,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;iBACvC;aACF;YAED,MAAM,KAAK,GAAwD,EAAE,CAAC;YACtE,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,YAAY,EAAE;gBAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;oBACpC,MAAM,IAAI,kBAAkB,CAC1B,SAAS,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAC7C,CAAC;iBACH;gBAED,qCAAqC;gBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;oBACnB,MAAM,IAAI,kBAAkB,CAC1B,8BAA8B,MAAM,CAAC,QAAQ,EAAE,GAAG,CACnD,CAAC;iBACH;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,MAAM;oBACb,IAAI,EACF,OAAO,CAAC,MAAM,GAAG,CAAC;wBAChB,CAAC,CAAC,8DAA8D;4BAC9D,gBAAgB,CAAC,IAAI,CAAC,OAAc,EAAE;gCACpC,gBAAgB,EAAE,IAAI;6BACvB,CAAC;wBACJ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBAChB,MAAM,EAAE,EAAE;oBACV,QAAQ,EAAE,CAAC,SAAS,CAAC;oBACrB,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;oBACnC,OAAO,EAAE,EAAE;iBACZ,CAAC,CAAC;aACJ;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,eAAe;gBACf,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CACpB,IAAI,CAAC,KAAK,EACV,WAAW,CACT;oBACE,GAAG,MAAM;oBACT,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK;iBACnC,EACD;oBACE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa;oBACzD,YAAY,EAAE;wBACZ,CAAC,eAAe,CAAC,EAAE,CAAC,KAAkC,EAAE,EAAE,CACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;wBAC5B,CAAC,eAAe,CAAC,EAAE,CACjB,OAA+C,EAC/C,SAAkB,KAAK,EACvB,EAAE,CACF,UAAU,CACR,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,OAAO;wBACP,0DAA0D;wBAC1D,IAA4C,EAC5C,OAA4B,EAC5B,MAAM,CACP;qBACJ;iBACF,CACF,CACF,CAAC;aACH;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,iDAAiD;gBACjD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC/D,mBAAmB;gBACnB,IAAI,KAAK,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnD,MAAM,YAAY,CAAC,SAAS,CAC1B,gBAAgB,EAChB,aAA+B,EAC/B,IAAI,CAAC,EAAE,CACR,CAAC;iBACH;aACF;YAED,sBAAsB;YACtB,0DAA0D;YAC1D,YAAY,CACV,UAAU,EACV,QAAQ,EACR,KAA+C,EAC/C,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CACpD,CAAC;YAEF,MAAM,WAAW,GAAG,qBAAqB,CACvC,0BAA0B,EAC1B,UAAU,CAAC,gBAAgB,CAC5B,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,GAAG,CACvC,gBAAgB,EAChB,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,EAChD;gBACE,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,IAAI,GAAG,CAAC;gBACd,MAAM,EAAE,MAAM,CAAC,WAAW,CACxB,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAC7D;gBACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE;aACxC,EACD,WAAW,CACZ,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,2CAA2C;gBAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBAE5D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,MAAM,YAAY,CAAC,SAAS,CAC1B,UAAU,EACV,UAA4B,EAC5B,IAAI,CAAC,EAAE,CACR,CAAC;iBACH;aACF;YAED,OAAO,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5E,CAAC,CAAC;QAEF,IAAI,aAAa,GAAG,WAAW,CAAC;QAChC,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,UAAU,EAAE;YACpC,aAAa,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;SAC/D;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,WAAW,CACf,WAAoC,EACpC,MAAyC,EACzC,MAA6B;QAE7B,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YACvC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE;SAClC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,MAAsC;QAY9C,MAAM,EACJ,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,cAAc,EACd,eAAe,EACf,GAAG,IAAI,EACR,GAAG,MAAM,CAAC;QACX,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAE9D,IAAI,iBAAiB,GAAG,UAAU,CAAC;QACnC,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;SAC7C;aAAM;YACL,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChD;QAED,IAAI,gBAAgB,GAAG,SAAS,CAAC;QACjC,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;SACvC;aAAM;YACL,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/C;QAED,MAAM,sBAAsB,GAC1B,eAAe,IAAI,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;QAEhD,MAAM,qBAAqB,GAAG,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QAE1E,IAAI,iBAA+B,CAAC;QACpC,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1E,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC;SACnD;aAAM;YACL,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;YACpC,gBAAgB,GAAG,IAAI,CAAC;SACzB;QAED,qEAAqE;QACrE,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE;YAC3D,iBAAiB,GAAG,CAAC,QAAQ,CAAC,CAAC;SAChC;QAED,IAAI,mBAAoD,CAAC;QACzD,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YAC/B,mBAAmB,GAAG,SAAS,CAAC;SACjC;aAAM,IACL,MAAM,KAAK,SAAS;YACpB,MAAM,CAAC,YAAY,EAAE,CAAC,uBAAuB,CAAC,KAAK,SAAS,EAC5D;YACA,mBAAmB,GAAG,MAAM,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;SACpE;aAAM;YACL,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC;SACzC;QACD,MAAM,YAAY,GAA0B,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QAEvE,OAAO;YACL,YAAY;YACZ,iBAAiB;YACjB,gBAAqC;YACrC,iBAAsC;YACtC,IAAI;YACJ,sBAAwC;YACxC,qBAAuC;YACvC,mBAAmB;YACnB,YAAY;YACZ,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACM,KAAK,CAAC,MAAM,CACnB,KAAiC,EACjC,OAAwE;QAExE,iFAAiF;QACjF,gCAAgC;QAChC,6EAA6E;QAC7E,qFAAqF;QACrF,kEAAkE;QAClE,MAAM,MAAM,GAAG;YACb,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc;YAC3C,GAAG,OAAO;SACX,CAAC;QACF,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;;OAUG;IACO,KAAK,CAAC,YAAY,CAC1B,MAAsB,EACtB,OAEC;QAED,MAAM,gBAAgB,GAA4B;YAChD,GAAG,MAAM;YACT,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QACF,MAAM,YAAY,GAAgC,EAAE,CAAC;QACrD,MAAM,YAAY,GAAqC,EAAE,CAAC;QAE1D,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACxD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;gBACvB,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;aAC3B;iBAAM,IAAI,OAAO,EAAE,WAAW,EAAE;gBAC/B,YAAY,CAAC,IAAI,CAAC,GAAG;oBACnB,GAAG,EAAE,gBAAgB;oBACrB,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;iBACvB,CAAC;aACH;iBAAM;gBACL,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;aAC3B;SACF;QACD,MAAM,OAAO,GAAG,IAAI,mBAAmB,CACrC,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACvC,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;YAC7B,IAAI,gBAAgB,CAAC;YAErB,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE;gBACnC,IACE,KAAK,IAAI,KAAK,CAAC,MAAM;oBACrB,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,qBAAqB,EAC1C;oBACA,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;iBACxB;gBACD,gBAAgB,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,CAC3C,gBAAgB,EAChB,KAAK,CAAC,MAAM,CACb,CAAC;aACH;iBAAM;gBACL,gBAAgB,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;aAC7D;YAED,IAAI,gBAAgB,KAAK,SAAS,EAAE;gBAClC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;aACnC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EACD,OAAO,CAAC,OAAO,CAAC,EAA8B,CAAC,CAChD,CACF,CAAC;QACF,OAAO;YACL,YAAY;YACZ,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACM,KAAK,CAAC,CAAC,eAAe,CAC7B,KAAgC,EAChC,OAAiD;QAEjD,MAAM,eAAe,GAAG,OAAO,EAAE,SAAS,CAAC;QAC3C,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChE,IACE,WAAW,CAAC,cAAc,KAAK,SAAS;YACxC,WAAW,CAAC,cAAc,GAAG,CAAC,EAC9B;YACA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;QACD,IACE,IAAI,CAAC,YAAY,KAAK,SAAS;YAC/B,IAAI,CAAC,YAAY,KAAK,KAAK;YAC3B,WAAW,CAAC,YAAY,KAAK,SAAS,EACtC;YACA,MAAM,IAAI,KAAK,CACb,uHAAuH,CACxH,CAAC;SACH;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC;QAC7C,kBAAkB;QAClB,MAAM,CACJ,KAAK,EACL,UAAU,EACV,AADW,EAEX,UAAU,EACV,MAAM,EACN,eAAe,EACf,cAAc,EACd,YAAY,EACZ,KAAK,EACL,gBAAgB,EACjB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/B,MAAM,MAAM,GAAG,IAAI,8BAA8B,CAAC;YAChD,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC;SAC3B,CAAC,CAAC;QAEH,8BAA8B;QAC9B,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YACnC,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CACnB,CAAC;YACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAC7B,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,MAAM,CAAC,SAAS,GAAG,CAAC,eAAe,CAAC,CAAC;aACtC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACnC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;aACtD;iBAAM;gBACL,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;gBACzC,eAAe,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;gBAClD,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC;aACpC;SACF;QAED,2BAA2B;QAC3B,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACjC,MAAM,CAAC,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;SACxE;QAED,MAAM,eAAe,GAAG,MAAM,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,gBAAgB,CACxD,IAAI,CAAC,MAAM,EAAE,EACb,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAClC,CAAC;QAEF,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,IAA4B,CAAC;QACjC,IAAI,SAAkB,CAAC;QAEvB;;;;;;;WAOG;QACH,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;YAClC,IAAI;gBACF,IAAI,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC;oBACjC,KAAK;oBACL,MAAM;oBACN,YAAY;oBACZ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,YAAY;oBACZ,OAAO;oBACP,UAAU;oBACV,UAAU,EAAE,IAAI,CAAC,kBAAuC;oBACxD,KAAK;oBACL,MAAM;oBACN,cAAc;oBACd,eAAe;oBACf,OAAO,EAAE,UAAU;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;oBAC9B,IAAI;oBACJ,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,YAAY;iBAChD,CAAC,CAAC;gBAEH,IAAI,OAAO,EAAE,SAAS,EAAE;oBACtB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG;wBACzB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY;wBAC3B,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,MAAM;qBACjC,CAAC;iBACH;gBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;aACtD;YAAC,OAAO,CAAC,EAAE;gBACV,SAAS,GAAG,CAAC,CAAC;aACf;oBAAS;gBACR,IAAI;oBACF,kFAAkF;oBAClF,IAAI,IAAI,EAAE;wBACR,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;qBAC1B;oBACD,MAAM,OAAO,CAAC,GAAG,CAAC;wBAChB,GAAG,CAAC,IAAI,EAAE,oBAAoB,IAAI,EAAE,CAAC;wBACrC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;qBAC3D,CAAC,CAAC;iBACJ;gBAAC,OAAO,CAAC,EAAE;oBACV,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC;iBAC5B;gBACD,IAAI,SAAS,EAAE;oBACb,wEAAwE;oBACxE,+CAA+C;oBAC/C,yFAAyF;oBACzF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;iBACzB;qBAAM;oBACL,gDAAgD;oBAChD,sCAAsC;oBACtC,+CAA+C;oBAC/C,yFAAyF;oBACzF,MAAM,CAAC,KAAK,EAAE,CAAC;iBAChB;aACF;QACH,CAAC,CAAC;QACF,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC;QAE1C,IAAI;YACF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE;gBAChC,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;iBAC1C;gBACD,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;gBACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC7B,IAAI,eAAe,IAAI,CAAC,gBAAgB,EAAE;wBACxC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;qBAClC;yBAAM,IAAI,CAAC,gBAAgB,EAAE;wBAC5B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;qBACvB;yBAAM,IAAI,eAAe,EAAE;wBAC1B,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;qBAC5B;yBAAM;wBACL,MAAM,OAAO,CAAC;qBACf;iBACF;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC;SACT;gBAAS;YACR,MAAM,cAAc,CAAC;SACtB;QACD,MAAM,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACM,KAAK,CAAC,MAAM,CACnB,KAAiC,EACjC,OAAwE;QAExE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,QAAQ,CAAC;QACnD,MAAM,MAAM,GAAG;YACb,GAAG,OAAO;YACV,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,cAAc;YACtD,UAAU;SACX,CAAC;QACF,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE;YAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;QACD,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAClC;QACD,OAAO,MAAoB,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,MAKtB;QACC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC/C,IAAI,SAAS,CAAC;QACd,IAAI;YACF,OACE,MAAM,IAAI,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,aAAkC;aACnD,CAAC,EACF;gBACA,IAAI,KAAK,EAAE;oBACT,mBAAmB,CACjB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAC5B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,kBAA8B,CACpC,CAAC;iBACH;gBACD,IAAI,KAAK,EAAE;oBACT,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;iBACtD;gBACD,MAAM,MAAM,CAAC,IAAI,CAAC;oBAChB,OAAO,EAAE,IAAI,CAAC,WAAW;oBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;wBAC5B,IAAI,KAAK,EAAE;4BACT,eAAe,CACb,IAAI,EACJ,MAAM,EACN,IAAI,CAAC,kBAA8B,CACpC,CAAC;yBACH;oBACH,CAAC;oBACD,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;aACJ;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc,EAAE;gBAClC,MAAM,IAAI,mBAAmB,CAC3B;oBACE,sBAAsB,MAAM,CAAC,cAAc,UAAU;oBACrD,wDAAwD;oBACxD,mDAAmD;iBACpD,CAAC,IAAI,CAAC,GAAG,CAAC,EACX;oBACE,aAAa,EAAE,uBAAuB;iBACvC,CACF,CAAC;aACH;SACF;QAAC,OAAO,CAAC,EAAE;YACV,SAAS,GAAG,CAAU,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,CAAC,CAAC;aACT;SACF;gBAAS;YACR,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;aACnC;SACF;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pregel/index.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,19 @@ function createDuplexStream(...streams) {
27
27
  });
28
28
  }
29
29
  class PregelLoop {
30
+ get isResuming() {
31
+ const hasChannelVersions = Object.keys(this.checkpoint.channel_versions).length !== 0;
32
+ const configHasResumingFlag = this.config.configurable?.[constants_js_1.CONFIG_KEY_RESUMING] !== undefined;
33
+ const configIsResuming = configHasResumingFlag && this.config.configurable?.[constants_js_1.CONFIG_KEY_RESUMING];
34
+ const inputIsNullOrUndefined = this.input === null || this.input === undefined;
35
+ const inputIsCommand = (0, constants_js_1.isCommand)(this.input);
36
+ const inputIsResuming = this.input === INPUT_RESUMING;
37
+ return (hasChannelVersions &&
38
+ (configIsResuming ||
39
+ inputIsNullOrUndefined ||
40
+ inputIsCommand ||
41
+ inputIsResuming));
42
+ }
30
43
  constructor(params) {
31
44
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
45
  Object.defineProperty(this, "input", {
@@ -444,7 +457,12 @@ class PregelLoop {
444
457
  if (![INPUT_DONE, INPUT_RESUMING].includes(this.input)) {
445
458
  await this._first(inputKeys);
446
459
  }
447
- else if (Object.values(this.tasks).every((task) => task.writes.filter(([c]) => !(c in langgraph_checkpoint_1.WRITES_IDX_MAP)).length > 0)) {
460
+ else if (this.toInterrupt.length > 0) {
461
+ this.status = "interrupt_before";
462
+ throw new errors_js_1.GraphInterrupt();
463
+ }
464
+ else if (Object.values(this.tasks).every((task) => task.writes.length > 0)) {
465
+ // finish superstep
448
466
  const writes = Object.values(this.tasks).flatMap((t) => t.writes);
449
467
  // All tasks have finished
450
468
  const managedValueWrites = (0, algo_js_1._applyWrites)(this.checkpoint, this.channels, Object.values(this.tasks), this.checkpointerGetNextVersion);
@@ -465,6 +483,10 @@ class PregelLoop {
465
483
  this.status = "interrupt_after";
466
484
  throw new errors_js_1.GraphInterrupt();
467
485
  }
486
+ // unset resuming flag
487
+ if (this.config.configurable?.[constants_js_1.CONFIG_KEY_RESUMING] !== undefined) {
488
+ delete this.config.configurable?.[constants_js_1.CONFIG_KEY_RESUMING];
489
+ }
468
490
  }
469
491
  else {
470
492
  return false;
@@ -476,7 +498,7 @@ class PregelLoop {
476
498
  const nextTasks = (0, algo_js_1._prepareNextTasks)(this.checkpoint, this.checkpointPendingWrites, this.nodes, this.channels, this.managed, this.config, true, {
477
499
  step: this.step,
478
500
  checkpointer: this.checkpointer,
479
- isResuming: this.input === INPUT_RESUMING,
501
+ isResuming: this.isResuming,
480
502
  manager: this.manager,
481
503
  store: this.store,
482
504
  stream: this.stream,
@@ -590,10 +612,6 @@ class PregelLoop {
590
612
  * - receiving null input (outer graph) or RESUMING flag (subgraph)
591
613
  */
592
614
  const { configurable } = this.config;
593
- const isResuming = Object.keys(this.checkpoint.channel_versions).length !== 0 &&
594
- (this.config.configurable?.[constants_js_1.CONFIG_KEY_RESUMING] !== undefined ||
595
- this.input === null ||
596
- (0, constants_js_1.isCommand)(this.input));
597
615
  // take resume value from parent
598
616
  const scratchpad = configurable?.[constants_js_1.CONFIG_KEY_SCRATCHPAD];
599
617
  if (scratchpad && scratchpad.nullResume !== undefined) {
@@ -632,7 +650,7 @@ class PregelLoop {
632
650
  },
633
651
  ], this.checkpointerGetNextVersion);
634
652
  }
635
- if (isResuming) {
653
+ if (this.isResuming) {
636
654
  for (const channelName of Object.keys(this.channels)) {
637
655
  if (this.checkpoint.channel_versions[channelName] !== undefined) {
638
656
  const version = this.checkpoint.channel_versions[channelName];
@@ -645,32 +663,38 @@ class PregelLoop {
645
663
  // produce values output
646
664
  const valuesOutput = await (0, utils_js_1.gatherIterator)((0, utils_js_1.prefixGenerator)((0, io_js_1.mapOutputValues)(this.outputKeys, true, this.channels), "values"));
647
665
  this._emit(valuesOutput);
666
+ this.input = INPUT_RESUMING;
648
667
  }
649
668
  else {
650
669
  // map inputs to channel updates
651
670
  const inputWrites = await (0, utils_js_1.gatherIterator)((0, io_js_1.mapInput)(inputKeys, this.input));
652
- if (inputWrites.length === 0) {
671
+ if (inputWrites.length > 0) {
672
+ const discardTasks = (0, algo_js_1._prepareNextTasks)(this.checkpoint, this.checkpointPendingWrites, this.nodes, this.channels, this.managed, this.config, true, { step: this.step });
673
+ (0, algo_js_1._applyWrites)(this.checkpoint, this.channels, Object.values(discardTasks).concat([
674
+ {
675
+ name: constants_js_1.INPUT,
676
+ writes: inputWrites,
677
+ triggers: [],
678
+ },
679
+ ]), this.checkpointerGetNextVersion);
680
+ // save input checkpoint
681
+ await this._putCheckpoint({
682
+ source: "input",
683
+ writes: Object.fromEntries(inputWrites),
684
+ });
685
+ this.input = INPUT_DONE;
686
+ }
687
+ else if (!(constants_js_1.CONFIG_KEY_RESUMING in (this.config.configurable ?? {}))) {
653
688
  throw new errors_js_1.EmptyInputError(`Received no input writes for ${JSON.stringify(inputKeys, null, 2)}`);
654
689
  }
655
- const discardTasks = (0, algo_js_1._prepareNextTasks)(this.checkpoint, this.checkpointPendingWrites, this.nodes, this.channels, this.managed, this.config, true, { step: this.step });
656
- (0, algo_js_1._applyWrites)(this.checkpoint, this.channels, Object.values(discardTasks).concat([
657
- {
658
- name: constants_js_1.INPUT,
659
- writes: inputWrites,
660
- triggers: [],
661
- },
662
- ]), this.checkpointerGetNextVersion);
663
- // save input checkpoint
664
- await this._putCheckpoint({
665
- source: "input",
666
- writes: Object.fromEntries(inputWrites),
667
- });
690
+ else {
691
+ // done with input
692
+ this.input = INPUT_DONE;
693
+ }
668
694
  }
669
- // done with input
670
- this.input = this.input === INPUT_RESUMING ? INPUT_RESUMING : INPUT_DONE;
671
695
  if (!this.isNested) {
672
696
  this.config = (0, index_js_1.patchConfigurable)(this.config, {
673
- [constants_js_1.CONFIG_KEY_RESUMING]: this.input === INPUT_RESUMING,
697
+ [constants_js_1.CONFIG_KEY_RESUMING]: this.isResuming,
674
698
  });
675
699
  }
676
700
  }
@@ -84,6 +84,7 @@ export declare class PregelLoop {
84
84
  interruptBefore: string[] | All;
85
85
  toInterrupt: PregelExecutableTask<string, string>[];
86
86
  debug: boolean;
87
+ get isResuming(): any;
87
88
  constructor(params: PregelLoopParams);
88
89
  static initialize(params: PregelLoopInitializeParams): Promise<PregelLoop>;
89
90
  protected _checkpointerPutAfterPrevious(input: {