glide-mq 0.15.2 → 0.15.3

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.
@@ -9,6 +9,7 @@ const errors_1 = require("./errors");
9
9
  const index_1 = require("./functions/index");
10
10
  const telemetry_1 = require("./telemetry");
11
11
  const dag_utils_1 = require("./dag-utils");
12
+ const speedkey_1 = require("@glidemq/speedkey");
12
13
  /**
13
14
  * Race-condition constants for late-parent reconciliation in addFlowRecursive.
14
15
  *
@@ -304,197 +305,294 @@ class FlowProducer {
304
305
  * bottom-up (leaves first). For nodes with multiple parents, registers each
305
306
  * parent dependency.
306
307
  *
308
+ * Submission is pipelined by topological level: within a level, all primary
309
+ * FCALLs are sent in one Batch (non-atomic pipeline), then a second Batch
310
+ * wires cross-level edges (registerParent) and persists parentIds metadata.
311
+ * RTT is O(levels) instead of O(N).
312
+ *
307
313
  * Returns a map of node name to Job instance.
308
314
  */
309
315
  async addDAG(dag) {
310
316
  return (0, telemetry_1.withSpan)('glide-mq.flow.addDAG', {
311
317
  'glide-mq.flow.nodeCount': dag.nodes.length,
312
318
  }, async () => {
313
- // Validate the DAG and get submission order (leaves first)
319
+ // Validate the DAG and get topo order (no-deps first)
314
320
  (0, dag_utils_1.validateDAG)(dag.nodes);
315
321
  const sorted = (0, dag_utils_1.topoSort)(dag.nodes);
316
322
  const client = await this.getClient();
317
323
  const prefix = this.opts.prefix ?? 'glide';
324
+ const isCluster = (0, connection_1.isClusterClient)(client);
318
325
  const result = new Map();
319
- // Track which nodes have dependents (children) - they become "parents" in waiting-children
320
- const hasChildren = new Set();
326
+ const nodeByName = new Map();
327
+ for (const node of dag.nodes)
328
+ nodeByName.set(node.name, node);
329
+ // Semantic: DAGNode.deps means "nodes that must complete before this
330
+ // node runs". Mapping to BullMQ flow primitives:
331
+ // - A node WITH deps is a state=waiting-children PARENT that
332
+ // aggregates its deps as CHILDREN.
333
+ // - A node WITHOUT deps is a leaf-or-root that runs immediately.
334
+ //
335
+ // dependents[X] = nodes whose deps contain X (= X's BullMQ-parents).
336
+ const dependents = new Map();
337
+ for (const node of dag.nodes)
338
+ dependents.set(node.name, []);
321
339
  for (const node of dag.nodes) {
322
340
  if (node.deps) {
323
- for (const dep of node.deps) {
324
- hasChildren.add(dep);
325
- }
341
+ for (const dep of node.deps)
342
+ dependents.get(dep).push(node.name);
326
343
  }
327
344
  }
328
- // Submit nodes in topological order (leaves first)
329
- // Nodes with 0 deps: simple addJob
330
- // Nodes with 1 dep: addJob with parent (traditional single-parent)
331
- // Nodes with 2+ deps: addJob with first parent, then registerParent for rest
332
- // Nodes that ARE parents (have children depending on them): created in waiting-children
345
+ // Level = longest dep chain depth. Nodes share a level iff there is no
346
+ // edge between them, so all FCALLs within a level can be pipelined.
347
+ // We process levels from highest (no dependents at higher level) down
348
+ // to 0 so each node's dependents already exist when we wire it.
349
+ const levels = new Map();
350
+ let maxLevel = 0;
333
351
  for (const node of sorted) {
334
- (0, utils_1.validateQueueName)(node.queueName);
335
- const queueKeys = (0, utils_1.buildKeys)(node.queueName, prefix);
336
- const opts = node.opts ?? {};
337
- const timestamp = Date.now();
338
- const serializedData = this.serializer.serialize(node.data);
339
- const dataByteLen = Buffer.byteLength(serializedData, 'utf8');
340
- if (dataByteLen > utils_1.MAX_JOB_DATA_SIZE) {
341
- throw new Error(`Job data exceeds maximum size (${dataByteLen} bytes > ${utils_1.MAX_JOB_DATA_SIZE} bytes). Use smaller payloads or store large data externally.`);
342
- }
343
- const customJobId = opts.jobId ?? '';
344
- if (customJobId !== '') {
345
- if (customJobId.length > 256)
346
- throw new Error('jobId must be at most 256 characters');
347
- if (/[\x00-\x1f\x7f{}:]/.test(customJobId)) {
348
- throw new Error('jobId must not contain control characters, curly braces, or colons');
352
+ let lvl = 0;
353
+ if (node.deps) {
354
+ for (const dep of node.deps) {
355
+ lvl = Math.max(lvl, (levels.get(dep) ?? 0) + 1);
349
356
  }
350
357
  }
351
- const deps = node.deps ?? [];
352
- const isParent = hasChildren.has(node.name);
353
- if (opts.lifo && opts.ordering?.key) {
354
- throw new errors_1.GlideMQError('lifo and ordering.key cannot be combined in a DAG node');
355
- }
356
- // Validate ordering.key if present (reserved chars: {, }, :)
357
- const orderingKey = opts.ordering?.key;
358
- if (orderingKey) {
359
- (0, utils_1.validateQueueName)(orderingKey);
360
- if (orderingKey === '__') {
361
- throw new errors_1.GlideMQError("Ordering key '__' is reserved as an internal sentinel.");
358
+ levels.set(node.name, lvl);
359
+ if (lvl > maxLevel)
360
+ maxLevel = lvl;
361
+ }
362
+ const byLevel = new Map();
363
+ for (const node of sorted) {
364
+ const lvl = levels.get(node.name);
365
+ if (!byLevel.has(lvl))
366
+ byLevel.set(lvl, []);
367
+ byLevel.get(lvl).push(node);
368
+ }
369
+ for (let lvl = maxLevel; lvl >= 0; lvl--) {
370
+ const levelNodes = byLevel.get(lvl) ?? [];
371
+ if (levelNodes.length === 0)
372
+ continue;
373
+ // Phase A: pipeline primary submissions (addFlow or addJob per node).
374
+ const batchA = isCluster ? new speedkey_1.ClusterBatch(false) : new speedkey_1.Batch(false);
375
+ const submits = [];
376
+ for (const node of levelNodes) {
377
+ (0, utils_1.validateQueueName)(node.queueName);
378
+ const queueKeys = (0, utils_1.buildKeys)(node.queueName, prefix);
379
+ const opts = node.opts ?? {};
380
+ const timestamp = Date.now();
381
+ const serializedData = this.serializer.serialize(node.data);
382
+ const dataByteLen = Buffer.byteLength(serializedData, 'utf8');
383
+ if (dataByteLen > utils_1.MAX_JOB_DATA_SIZE) {
384
+ throw new Error(`Job data exceeds maximum size (${dataByteLen} bytes > ${utils_1.MAX_JOB_DATA_SIZE} bytes). Use smaller payloads or store large data externally.`);
362
385
  }
363
- }
364
- // Extract rate-limit and token bucket params
365
- let groupConcurrency = opts.ordering?.concurrency ?? 0;
366
- if (opts.ordering?.key && groupConcurrency < 1) {
367
- groupConcurrency = 1;
368
- }
369
- const groupRateMax = opts.ordering?.rateLimit?.max ?? 0;
370
- const groupRateDuration = opts.ordering?.rateLimit?.duration ?? 0;
371
- const tbCapacity = opts.ordering?.tokenBucket ? Math.round(opts.ordering.tokenBucket.capacity * 1000) : 0;
372
- const tbRefillRate = opts.ordering?.tokenBucket ? Math.round(opts.ordering.tokenBucket.refillRate * 1000) : 0;
373
- const jobCost = opts.cost != null ? Math.round(opts.cost * 1000) : 0;
374
- if (isParent && deps.length === 0) {
375
- // Node is a parent with no deps of its own - use addFlow with no children (empty flow)
376
- // Actually, we create it as waiting-children and let children register later
377
- // Use addFlow with 0 children to set state=waiting-children
378
- const ids = await (0, index_1.addFlow)(client, queueKeys, node.name, serializedData, JSON.stringify(opts), timestamp, opts.delay ?? 0, opts.priority ?? 0, opts.attempts ?? 0, [], [], customJobId);
379
- if (ids[0] === 'duplicate')
380
- throw new Error('Duplicate job ID in DAG');
381
- if (ids[0] === 'ERR:ID_EXHAUSTED')
382
- throw new Error('Failed to generate job ID');
383
- const job = new job_1.Job(client, queueKeys, ids[0], node.name, node.data, opts, this.serializer);
384
- job.timestamp = timestamp;
385
- result.set(node.name, job);
386
- }
387
- else if (isParent && deps.length > 0) {
388
- // Node is both a child (has deps) and a parent (has dependents)
389
- // Create as waiting-children via addFlow with 0 children
390
- const ids = await (0, index_1.addFlow)(client, queueKeys, node.name, serializedData, JSON.stringify(opts), timestamp, opts.delay ?? 0, opts.priority ?? 0, opts.attempts ?? 0, [], [], customJobId);
391
- if (ids[0] === 'duplicate')
392
- throw new Error('Duplicate job ID in DAG');
393
- if (ids[0] === 'ERR:ID_EXHAUSTED')
394
- throw new Error('Failed to generate job ID');
395
- const jobId = ids[0];
396
- const job = new job_1.Job(client, queueKeys, jobId, node.name, node.data, opts, this.serializer);
397
- job.timestamp = timestamp;
398
- result.set(node.name, job);
399
- // Register all parent dependencies
400
- for (const depName of deps) {
401
- const parentJob = result.get(depName);
402
- const parentNode = dag.nodes.find((n) => n.name === depName);
403
- const parentQueueKeys = (0, utils_1.buildKeys)(parentNode.queueName, prefix);
404
- const depsMember = `${(0, utils_1.keyPrefix)(prefix, node.queueName)}:${jobId}`;
405
- let registerResult;
406
- try {
407
- registerResult = await (0, index_1.registerParent)(client, queueKeys, jobId, parentJob.id, (0, utils_1.keyPrefix)(prefix, parentNode.queueName), parentQueueKeys, depsMember);
408
- }
409
- catch (regErr) {
410
- const msg = regErr instanceof Error ? regErr.message : String(regErr);
411
- throw new errors_1.GlideMQError(`DAG partially submitted: registerParent failed for ${depName}->${node.name}: ${msg}. Graph may be in inconsistent state.`);
386
+ const customJobId = opts.jobId ?? '';
387
+ if (customJobId !== '') {
388
+ if (customJobId.length > 256)
389
+ throw new Error('jobId must be at most 256 characters');
390
+ if (/[\x00-\x1f\x7f{}:]/.test(customJobId)) {
391
+ throw new Error('jobId must not contain control characters, curly braces, or colons');
412
392
  }
413
- if (registerResult.startsWith('error:')) {
414
- throw new errors_1.GlideMQError(`Failed to register parent ${depName} for node ${node.name}: ${registerResult}`);
393
+ }
394
+ if (opts.lifo && opts.ordering?.key) {
395
+ throw new errors_1.GlideMQError('lifo and ordering.key cannot be combined in a DAG node');
396
+ }
397
+ const orderingKey = opts.ordering?.key;
398
+ if (orderingKey) {
399
+ (0, utils_1.validateQueueName)(orderingKey);
400
+ if (orderingKey === '__') {
401
+ throw new errors_1.GlideMQError("Ordering key '__' is reserved as an internal sentinel.");
415
402
  }
416
403
  }
417
- // Store parent info on the job
418
- const pIds = deps.map((d) => result.get(d).id);
419
- const pQueues = deps.map((d) => dag.nodes.find((n) => n.name === d).queueName);
420
- job.parentId = pIds[0];
421
- job.parentQueue = pQueues[0];
422
- if (deps.length > 1) {
423
- job.parentIds = pIds;
424
- job.parentQueues = pQueues;
425
- await client.hset(queueKeys.job(jobId), {
426
- parentId: pIds[0],
427
- parentQueue: pQueues[0],
428
- parentIds: JSON.stringify(pIds),
429
- parentQueues: JSON.stringify(pQueues),
404
+ let groupConcurrency = opts.ordering?.concurrency ?? 0;
405
+ if (opts.ordering?.key && groupConcurrency < 1)
406
+ groupConcurrency = 1;
407
+ const groupRateMax = opts.ordering?.rateLimit?.max ?? 0;
408
+ const groupRateDuration = opts.ordering?.rateLimit?.duration ?? 0;
409
+ const tbCapacity = opts.ordering?.tokenBucket ? Math.round(opts.ordering.tokenBucket.capacity * 1000) : 0;
410
+ const tbRefillRate = opts.ordering?.tokenBucket
411
+ ? Math.round(opts.ordering.tokenBucket.refillRate * 1000)
412
+ : 0;
413
+ const jobCost = opts.cost != null ? Math.round(opts.cost * 1000) : 0;
414
+ const deps = node.deps ?? [];
415
+ const myDependents = dependents.get(node.name) ?? [];
416
+ if (deps.length > 0) {
417
+ // Waiting-children parent: addFlow with 0 children, 0 extraDeps.
418
+ const flowArgs = [
419
+ node.name,
420
+ serializedData,
421
+ JSON.stringify(opts),
422
+ timestamp.toString(),
423
+ String(opts.delay ?? 0),
424
+ String(opts.priority ?? 0),
425
+ String(opts.attempts ?? 0),
426
+ '0',
427
+ customJobId,
428
+ '0',
429
+ ];
430
+ batchA.fcall('glidemq_addFlow', [queueKeys.id, queueKeys.stream, queueKeys.scheduled, queueKeys.events], flowArgs);
431
+ submits.push({ node, kind: 'addFlow', timestamp, opts });
432
+ }
433
+ else if (myDependents.length === 1) {
434
+ // Leaf with a single dependent: piggyback on addJob's
435
+ // parentId/parentDepsKey so the leaf atomically registers as
436
+ // child of that dependent. No second dependent, so no race
437
+ // between addJob enqueueing and parents-SET wiring.
438
+ const firstDepName = myDependents[0];
439
+ const firstParentJob = result.get(firstDepName);
440
+ const firstParentNode = nodeByName.get(firstDepName);
441
+ const firstParentKeys = (0, utils_1.buildKeys)(firstParentNode.queueName, prefix);
442
+ const { keys, args } = (0, index_1.addJobArgs)(queueKeys, node.name, serializedData, JSON.stringify(opts), timestamp, opts.delay ?? 0, opts.priority ?? 0, firstParentJob.id, opts.attempts ?? 0, orderingKey ?? '', groupConcurrency, groupRateMax, groupRateDuration, tbCapacity, tbRefillRate, jobCost, opts.ttl ?? 0, customJobId, opts.lifo ? 1 : 0, firstParentNode.queueName, firstParentKeys.deps(firstParentJob.id), '');
443
+ batchA.fcall('glidemq_addJob', keys, args);
444
+ submits.push({
445
+ node,
446
+ kind: 'addJob',
447
+ timestamp,
448
+ opts,
449
+ firstParentJobId: firstParentJob.id,
450
+ firstParentQueue: firstParentNode.queueName,
430
451
  });
431
452
  }
453
+ else if (myDependents.length > 1) {
454
+ // Leaf with multiple dependents: do NOT piggyback the first
455
+ // dependent on addJob. If we did, a worker could pick up this
456
+ // job between Phase A and Phase B, complete it, and notify only
457
+ // the first dependent via the explicit parentId path - while
458
+ // SMEMBERS parents would be skipped (hasParents is read from a
459
+ // pre-Phase-B job hash where parentIds is not yet set). The
460
+ // result is "partial notification": some dependents' deps SETs
461
+ // are decremented, others are not.
462
+ //
463
+ // Submitting with no parent fields makes the race all-or-nothing:
464
+ // either Phase B's registerParent runs before completion (so
465
+ // parents SET and deps SETs are populated and SMEMBERS notifies
466
+ // all dependents), or it runs after (so registerParent's
467
+ // already_completed path notifies each dependent it wires).
468
+ const { keys, args } = (0, index_1.addJobArgs)(queueKeys, node.name, serializedData, JSON.stringify(opts), timestamp, opts.delay ?? 0, opts.priority ?? 0, '', opts.attempts ?? 0, orderingKey ?? '', groupConcurrency, groupRateMax, groupRateDuration, tbCapacity, tbRefillRate, jobCost, opts.ttl ?? 0, customJobId, opts.lifo ? 1 : 0, '', '', '');
469
+ batchA.fcall('glidemq_addJob', keys, args);
470
+ submits.push({ node, kind: 'addJob', timestamp, opts });
471
+ }
432
472
  else {
433
- await client.hset(queueKeys.job(jobId), {
434
- parentId: pIds[0],
435
- parentQueue: pQueues[0],
436
- });
473
+ // Standalone node: no deps, no dependents.
474
+ const { keys, args } = (0, index_1.addJobArgs)(queueKeys, node.name, serializedData, JSON.stringify(opts), timestamp, opts.delay ?? 0, opts.priority ?? 0, '', opts.attempts ?? 0, orderingKey ?? '', groupConcurrency, groupRateMax, groupRateDuration, tbCapacity, tbRefillRate, jobCost, opts.ttl ?? 0, customJobId, opts.lifo ? 1 : 0, '', '', '');
475
+ batchA.fcall('glidemq_addJob', keys, args);
476
+ submits.push({ node, kind: 'addJob', timestamp, opts });
437
477
  }
438
478
  }
439
- else if (deps.length === 0) {
440
- // Leaf node with no deps and no children - simple addJob
441
- const jobId = await (0, index_1.addJob)(client, queueKeys, node.name, serializedData, JSON.stringify(opts), timestamp, opts.delay ?? 0, opts.priority ?? 0, '', opts.attempts ?? 0, orderingKey ?? '', groupConcurrency, groupRateMax, groupRateDuration, tbCapacity, tbRefillRate, jobCost, opts.ttl ?? 0, customJobId, opts.lifo ? 1 : 0, '', '', '');
442
- if (String(jobId) === 'duplicate')
443
- throw new Error('Duplicate job ID in DAG');
444
- if (String(jobId) === 'ERR:ID_EXHAUSTED')
445
- throw new Error('Failed to generate job ID');
446
- const job = new job_1.Job(client, queueKeys, String(jobId), node.name, node.data, opts, this.serializer);
447
- job.timestamp = timestamp;
448
- result.set(node.name, job);
479
+ const rawA = isCluster
480
+ ? await client.exec(batchA, true)
481
+ : await client.exec(batchA, true);
482
+ if (!rawA || !Array.isArray(rawA) || rawA.length !== submits.length) {
483
+ throw new errors_1.GlideMQError('addDAG batch returned unexpected result length');
484
+ }
485
+ for (let i = 0; i < submits.length; i++) {
486
+ const sub = submits[i];
487
+ const raw = rawA[i];
488
+ let jobId;
489
+ if (sub.kind === 'addFlow') {
490
+ const ids = JSON.parse(String(raw));
491
+ if (ids[0] === 'duplicate')
492
+ throw new Error('Duplicate job ID in DAG');
493
+ if (ids[0] === 'ERR:ID_EXHAUSTED')
494
+ throw new Error('Failed to generate job ID');
495
+ jobId = ids[0];
496
+ }
497
+ else {
498
+ const r = String(raw);
499
+ if (r === 'duplicate')
500
+ throw new Error('Duplicate job ID in DAG');
501
+ if (r === 'ERR:ID_EXHAUSTED')
502
+ throw new Error('Failed to generate job ID');
503
+ if (r === 'ERR:COST_EXCEEDS_CAPACITY')
504
+ throw new Error('Job cost exceeds token bucket capacity');
505
+ jobId = r;
506
+ }
507
+ const qk = (0, utils_1.buildKeys)(sub.node.queueName, prefix);
508
+ const job = new job_1.Job(client, qk, jobId, sub.node.name, sub.node.data, sub.opts, this.serializer);
509
+ job.timestamp = sub.timestamp;
510
+ if (sub.firstParentJobId) {
511
+ job.parentId = sub.firstParentJobId;
512
+ job.parentQueue = sub.firstParentQueue;
513
+ }
514
+ result.set(sub.node.name, job);
449
515
  }
450
- else {
451
- // Non-parent node with deps (terminal/sink node) - add as regular job
452
- // Dependency semantics: deps are the PARENTS this child waits for.
453
- // The child (current node) becomes a dependency of the parent via the deps SET.
454
- // Use first dep as the primary parent for backward compatibility
455
- const firstDepName = deps[0];
456
- const firstParentJob = result.get(firstDepName);
457
- const firstParentNode = dag.nodes.find((n) => n.name === firstDepName);
458
- const firstParentKeys = (0, utils_1.buildKeys)(firstParentNode.queueName, prefix);
516
+ // Phase B: pipeline cross-level wiring (registerParent + parentIds hset).
517
+ const batchB = isCluster ? new speedkey_1.ClusterBatch(false) : new speedkey_1.Batch(false);
518
+ let phaseBCount = 0;
519
+ // Track each batched registerParent's edge so we can report failures.
520
+ const phaseBRegEdges = [];
521
+ for (const sub of submits) {
522
+ const node = sub.node;
523
+ const job = result.get(node.name);
524
+ const jid = job.id;
525
+ const myDependents = dependents.get(node.name) ?? [];
526
+ const deps = node.deps ?? [];
527
+ const queueKeys = (0, utils_1.buildKeys)(node.queueName, prefix);
459
528
  const queuePrefix = (0, utils_1.keyPrefix)(prefix, node.queueName);
460
- const jobId = await (0, index_1.addJob)(client, queueKeys, node.name, serializedData, JSON.stringify(opts), timestamp, opts.delay ?? 0, opts.priority ?? 0, firstParentJob.id, opts.attempts ?? 0, orderingKey ?? '', groupConcurrency, groupRateMax, groupRateDuration, tbCapacity, tbRefillRate, jobCost, opts.ttl ?? 0, customJobId, 0, firstParentNode.queueName, firstParentKeys.deps(firstParentJob.id));
461
- if (String(jobId) === 'duplicate')
462
- throw new Error('Duplicate job ID in DAG');
463
- if (String(jobId) === 'ERR:ID_EXHAUSTED')
464
- throw new Error('Failed to generate job ID');
465
- const jid = String(jobId);
466
- const job = new job_1.Job(client, queueKeys, jid, node.name, node.data, opts, this.serializer);
467
- job.timestamp = timestamp;
468
- job.parentId = firstParentJob.id;
469
- job.parentQueue = firstParentNode.queueName;
470
- result.set(node.name, job);
471
- // Register additional parents (2nd, 3rd, etc.)
472
- if (deps.length > 1) {
473
- const pIds = deps.map((d) => result.get(d).id);
474
- const pQueues = deps.map((d) => dag.nodes.find((n) => n.name === d).queueName);
529
+ // Determine which dependents still need registerParent.
530
+ // - addFlow waiting-children parent: all dependents (addFlow does
531
+ // not touch parent deps sets).
532
+ // - addJob leaf with one dependent: skipped (addJob piggybacked
533
+ // the single dependent atomically).
534
+ // - addJob leaf with multiple dependents: all dependents (addJob
535
+ // was submitted with no parent fields to avoid the partial-
536
+ // notification race; registerParent wires every dependent here
537
+ // and its already_completed path covers late wiring).
538
+ let registerStart = -1;
539
+ if (deps.length > 0 && myDependents.length > 0) {
540
+ registerStart = 0;
541
+ }
542
+ else if (deps.length === 0 && myDependents.length > 1) {
543
+ registerStart = 0;
544
+ }
545
+ if (registerStart >= 0) {
546
+ const pIds = myDependents.map((d) => result.get(d).id);
547
+ const pQueues = myDependents.map((d) => nodeByName.get(d).queueName);
475
548
  job.parentIds = pIds;
476
549
  job.parentQueues = pQueues;
477
- await client.hset(queueKeys.job(jid), {
550
+ batchB.hset(queueKeys.job(jid), {
478
551
  parentIds: JSON.stringify(pIds),
479
552
  parentQueues: JSON.stringify(pQueues),
480
553
  });
481
- for (let p = 1; p < deps.length; p++) {
482
- const depName = deps[p];
554
+ phaseBCount++;
555
+ phaseBRegEdges.push({ node: '', dep: '' }); // placeholder for hset slot
556
+ for (let p = registerStart; p < myDependents.length; p++) {
557
+ const depName = myDependents[p];
483
558
  const parentJob = result.get(depName);
484
- const parentNode = dag.nodes.find((n) => n.name === depName);
559
+ const parentNode = nodeByName.get(depName);
485
560
  const parentQueueKeys = (0, utils_1.buildKeys)(parentNode.queueName, prefix);
486
561
  const depsMember = `${queuePrefix}:${jid}`;
487
- let registerResult;
488
- try {
489
- registerResult = await (0, index_1.registerParent)(client, queueKeys, jid, parentJob.id, (0, utils_1.keyPrefix)(prefix, parentNode.queueName), parentQueueKeys, depsMember);
490
- }
491
- catch (regErr) {
492
- const msg = regErr instanceof Error ? regErr.message : String(regErr);
493
- throw new errors_1.GlideMQError(`DAG partially submitted: registerParent failed for ${depName}->${node.name}: ${msg}. Graph may be in inconsistent state.`);
494
- }
495
- if (registerResult.startsWith('error:')) {
496
- throw new errors_1.GlideMQError(`Failed to register parent ${depName} for node ${node.name}: ${registerResult}`);
497
- }
562
+ batchB.fcall('glidemq_registerParent', [
563
+ queueKeys.job(jid),
564
+ queueKeys.parents(jid),
565
+ parentQueueKeys.deps(parentJob.id),
566
+ parentQueueKeys.job(parentJob.id),
567
+ parentQueueKeys.stream,
568
+ parentQueueKeys.events,
569
+ ], [jid, parentJob.id, (0, utils_1.keyPrefix)(prefix, parentNode.queueName), depsMember]);
570
+ phaseBCount++;
571
+ phaseBRegEdges.push({ node: node.name, dep: depName });
572
+ }
573
+ }
574
+ }
575
+ if (phaseBCount > 0) {
576
+ let rawB;
577
+ try {
578
+ rawB = isCluster
579
+ ? await client.exec(batchB, true)
580
+ : await client.exec(batchB, true);
581
+ }
582
+ catch (regErr) {
583
+ const msg = regErr instanceof Error ? regErr.message : String(regErr);
584
+ throw new errors_1.GlideMQError(`DAG partially submitted: cross-level wiring batch failed: ${msg}. Graph may be in inconsistent state.`);
585
+ }
586
+ if (!Array.isArray(rawB) || rawB.length !== phaseBCount) {
587
+ throw new errors_1.GlideMQError('addDAG cross-level batch returned unexpected result length');
588
+ }
589
+ for (let i = 0; i < phaseBCount; i++) {
590
+ const edge = phaseBRegEdges[i];
591
+ if (edge.node === '')
592
+ continue; // hset slot
593
+ const res = String(rawB[i]);
594
+ if (res.startsWith('error:')) {
595
+ throw new errors_1.GlideMQError(`Failed to register dependent ${edge.dep} for node ${edge.node}: ${res}`);
498
596
  }
499
597
  }
500
598
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flow-producer.js","sourceRoot":"","sources":["../src/flow-producer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-producer.js","sourceRoot":"","sources":["../src/flow-producer.ts"],"names":[],"mappings":";;;AACA,mCAA0C;AAC1C,+BAA4B;AAC5B,mCAAoG;AACpG,6CAA+G;AAC/G,qCAAwC;AACxC,6CAA+F;AAC/F,2CAAuC;AACvC,2CAAoD;AACpD,gDAAmG;AAOnG;;;;;;;;;GASG;AACH,MAAM,8BAA8B,GAAG,CAAC,CAAC;AACzC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C;;;GAGG;AACH,MAAa,YAAY;IACf,IAAI,CAAsB;IAC1B,MAAM,GAAkB,IAAI,CAAC;IAC7B,WAAW,GAAG,IAAI,CAAC;IACnB,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,CAAa;IAE/B,YAAY,IAAyB;QACnC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,qBAAY,CAAC,mDAAmD,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,uBAAe,CAAC;IACvD,CAAC;IAED,gBAAgB;IACR,KAAK,CAAC,SAAS;QACrB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,qBAAY,CAAC,yBAAyB,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,IAAI,IAAA,4BAAe,EAAC,QAAQ,CAAC,CAAC;gBACnF,MAAM,IAAA,sCAAyB,EAAC,QAAQ,EAAE,sBAAc,EAAE,WAAW,CAAC,CAAC;gBACvE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,GAAG,MAAM,IAAA,yBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;gBACxD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,MAAM,IAAA,kCAAqB,EAAC,IAAI,CAAC,MAAM,EAAE,sBAAc,EAAE,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,GAAG,CAAC,IAAa,EAAE,QAAqC;QAC5D,OAAO,IAAA,oBAAQ,EACb,mBAAmB,EACnB;YACE,gBAAgB,EAAE,IAAI,CAAC,SAAS;YAChC,oBAAoB,EAAE,IAAI,CAAC,IAAI;YAC/B,0BAA0B,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;SACvD,EACD,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEzD,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;gBAC3C,MAAM,SAAS,GAAG,GAAG,MAAM,KAAK,IAAI,CAAC,SAAS,YAAY,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC1E,MAAM,YAAY,GAA2B;oBAC3C,UAAU,EAAE,GAAG;oBACf,QAAQ,EAAE,GAAG;oBACb,QAAQ,EAAE,GAAG;oBACb,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM;iBACjD,CAAC;gBACF,IAAI,QAAQ,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;oBAC3C,YAAY,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC1E,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;oBACtC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;oBACzC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC3E,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;oBACzC,YAAY,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACtE,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;oBACrC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;oBACrC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnD,CAAC;gBACD,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAE3C,0CAA0C;gBAC1C,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACzE,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAC9B,MAAc,EACd,IAAa,EACb,OAAgB,EAChB,SAAiB,EACjB,MAAc;QAEd,MAAM,IAAI,GAAG,IAAA,iBAAS,EAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAAgB;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,IAAa;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;QAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QACvC,MAAM,UAAU,GAAG,IAAA,iBAAS,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAEtD,qEAAqE;QACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YACxD,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1G,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9G,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBAC/C,gBAAgB,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC9D,IAAI,WAAW,GAAG,yBAAiB,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CACb,kCAAkC,WAAW,YAAY,yBAAiB,+DAA+D,CAC1I,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACrC,IAAI,WAAW,KAAK,EAAE;gBAAE,IAAA,qBAAa,EAAC,WAAW,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAA,cAAM,EACxB,MAAM,EACN,UAAU,EACV,IAAI,CAAC,IAAI,EACT,cAAc,EACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACpB,SAAS,EACT,IAAI,CAAC,KAAK,IAAI,CAAC,EACf,IAAI,CAAC,QAAQ,IAAI,CAAC,EAClB,EAAE,EACF,IAAI,CAAC,QAAQ,IAAI,CAAC,EAClB,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,EACxB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CAAC,GAAG,IAAI,CAAC,EACb,WAAW,EACX,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjB,EAAE,EACF,EAAE,EACF,EAAE,CACH,CAAC;YACF,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,kBAAkB,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,2BAA2B,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACpG,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;YAC1B,OAAO,EAAE,GAAG,EAAE,CAAC;QACjB,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;YAC1B,IAAA,qBAAa,EAAC,cAAc,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,MAAM,YAAY,GAAyB,IAAI,GAAG,EAAE,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YACnC,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,kDAAkD,CAAC,CAAC;YAC/F,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC1D,IAAI,YAAY,GAAG,yBAAiB,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CACb,kCAAkC,YAAY,YAAY,yBAAiB,+DAA+D,CAC3I,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,IAAI,aAAa,KAAK,EAAE;gBAAE,IAAA,qBAAa,EAAC,aAAa,CAAC,CAAC;YACvD,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC/B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;gBAC3B,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,CAAC;gBACjC,WAAW,EAAE,SAAS,CAAC,QAAQ,IAAI,CAAC;gBACpC,IAAI,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;gBACxC,WAAW,EAAE,IAAA,iBAAS,EAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;gBAC/C,eAAe,EAAE,eAAe;gBAChC,QAAQ,EAAE,aAAa;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,uEAAuE;QACvE,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,IAAA,iBAAS,EAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,aAAa,GAAG,yBAAiB,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,kCAAkC,aAAa,YAAY,yBAAiB,+DAA+D,CAC5I,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAA,eAAO,EACvB,MAAM,EACN,UAAU,EACV,IAAI,CAAC,IAAI,EACT,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAC1B,SAAS,EACT,UAAU,CAAC,KAAK,IAAI,CAAC,EACrB,UAAU,CAAC,QAAQ,IAAI,CAAC,EACxB,UAAU,CAAC,QAAQ,IAAI,CAAC,EACxB,cAAc,EACd,SAAS,EACT,cAAc,CACf,CAAC;QAEF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAExB,iEAAiE;QACjE,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,IAAA,iBAAS,EAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAC7E,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC/C,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,eAAe;aAC7B,CAAC,CAAC;YACH,IAAI,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACtE,KACE,IAAI,OAAO,GAAG,CAAC,EACf,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,OAAO,GAAG,8BAA8B,EAClF,OAAO,EAAE,EACT,CAAC;gBACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAC;gBAC1F,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE,CAAC;gBAC3C,MAAM,IAAA,qBAAa,EAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,eAAe,CAAC;QAC5C,CAAC;QAED,kFAAkF;QAClF,MAAM,UAAU,GAAc,EAAE,CAAC;QACjC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,QAAQ,GAAG,IAAI,SAAG,CACtB,MAAM,EACN,IAAA,iBAAS,EAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,EAClC,OAAO,EACP,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,IAAI,EAAE,EAChB,IAAI,CAAC,UAAU,CAChB,CAAC;gBACF,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC7B,QAAQ,CAAC,WAAW,GAAG,eAAe,CAAC;gBACvC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACnC,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,SAAG,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3G,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;QAEhC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,CAAC,GAAY;QACvB,OAAO,IAAA,oBAAQ,EACb,sBAAsB,EACtB;YACE,yBAAyB,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;SAC5C,EACD,KAAK,IAAI,EAAE;YACT,sDAAsD;YACtD,IAAA,uBAAW,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,IAAA,oBAAQ,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;YAC3C,MAAM,SAAS,GAAG,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;YACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;YAC9C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK;gBAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE9D,qEAAqE;YACrE,iDAAiD;YACjD,+DAA+D;YAC/D,uCAAuC;YACvC,mEAAmE;YACnE,EAAE;YACF,qEAAqE;YACrE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;YAC/C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK;gBAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5D,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI;wBAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YAED,uEAAuE;YACvE,oEAAoE;YACpE,sEAAsE;YACtE,gEAAgE;YAChE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;YACzC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC5B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC3B,IAAI,GAAG,GAAG,QAAQ;oBAAE,QAAQ,GAAG,GAAG,CAAC;YACrC,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YAWD,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAEtC,sEAAsE;gBACtE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,uBAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAK,CAAC,KAAK,CAAC,CAAC;gBACtE,MAAM,OAAO,GAAa,EAAE,CAAC;gBAE7B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,IAAA,yBAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAClC,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;oBAC9D,IAAI,WAAW,GAAG,yBAAiB,EAAE,CAAC;wBACpC,MAAM,IAAI,KAAK,CACb,kCAAkC,WAAW,YAAY,yBAAiB,+DAA+D,CAC1I,CAAC;oBACJ,CAAC;oBAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACrC,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;wBACvB,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG;4BAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;wBACtF,IAAI,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;4BAC3C,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;wBACxF,CAAC;oBACH,CAAC;oBAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;wBACpC,MAAM,IAAI,qBAAY,CAAC,wDAAwD,CAAC,CAAC;oBACnF,CAAC;oBAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;oBACvC,IAAI,WAAW,EAAE,CAAC;wBAChB,IAAA,yBAAiB,EAAC,WAAW,CAAC,CAAC;wBAC/B,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;4BACzB,MAAM,IAAI,qBAAY,CAAC,wDAAwD,CAAC,CAAC;wBACnF,CAAC;oBACH,CAAC;oBAED,IAAI,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,CAAC;oBACvD,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,gBAAgB,GAAG,CAAC;wBAAE,gBAAgB,GAAG,CAAC,CAAC;oBACrE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;oBACxD,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC,CAAC;oBAClE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1G,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW;wBAC7C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;wBACzD,CAAC,CAAC,CAAC,CAAC;oBACN,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAErE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC7B,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAErD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpB,iEAAiE;wBACjE,MAAM,QAAQ,GAAa;4BACzB,IAAI,CAAC,IAAI;4BACT,cAAc;4BACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;4BACpB,SAAS,CAAC,QAAQ,EAAE;4BACpB,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;4BACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;4BAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;4BAC1B,GAAG;4BACH,WAAW;4BACX,GAAG;yBACJ,CAAC;wBACF,MAAM,CAAC,KAAK,CACV,iBAAiB,EACjB,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EACvE,QAAQ,CACT,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3D,CAAC;yBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACrC,sDAAsD;wBACtD,6DAA6D;wBAC7D,2DAA2D;wBAC3D,oDAAoD;wBACpD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBACrC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC;wBACjD,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC;wBACtD,MAAM,eAAe,GAAG,IAAA,iBAAS,EAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;wBACrE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,kBAAU,EAC/B,SAAS,EACT,IAAI,CAAC,IAAI,EACT,cAAc,EACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACpB,SAAS,EACT,IAAI,CAAC,KAAK,IAAI,CAAC,EACf,IAAI,CAAC,QAAQ,IAAI,CAAC,EAClB,cAAc,CAAC,EAAE,EACjB,IAAI,CAAC,QAAQ,IAAI,CAAC,EAClB,WAAW,IAAI,EAAE,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CAAC,GAAG,IAAI,CAAC,EACb,WAAW,EACX,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjB,eAAe,CAAC,SAAS,EACzB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EACvC,EAAE,CACH,CAAC;wBACF,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC3C,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI;4BACJ,IAAI,EAAE,QAAQ;4BACd,SAAS;4BACT,IAAI;4BACJ,gBAAgB,EAAE,cAAc,CAAC,EAAE;4BACnC,gBAAgB,EAAE,eAAe,CAAC,SAAS;yBAC5C,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnC,4DAA4D;wBAC5D,8DAA8D;wBAC9D,gEAAgE;wBAChE,6DAA6D;wBAC7D,+DAA+D;wBAC/D,4DAA4D;wBAC5D,+DAA+D;wBAC/D,mCAAmC;wBACnC,EAAE;wBACF,kEAAkE;wBAClE,6DAA6D;wBAC7D,gEAAgE;wBAChE,yDAAyD;wBACzD,4DAA4D;wBAC5D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,kBAAU,EAC/B,SAAS,EACT,IAAI,CAAC,IAAI,EACT,cAAc,EACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACpB,SAAS,EACT,IAAI,CAAC,KAAK,IAAI,CAAC,EACf,IAAI,CAAC,QAAQ,IAAI,CAAC,EAClB,EAAE,EACF,IAAI,CAAC,QAAQ,IAAI,CAAC,EAClB,WAAW,IAAI,EAAE,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CAAC,GAAG,IAAI,CAAC,EACb,WAAW,EACX,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjB,EAAE,EACF,EAAE,EACF,EAAE,CACH,CAAC;wBACF,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC1D,CAAC;yBAAM,CAAC;wBACN,2CAA2C;wBAC3C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,kBAAU,EAC/B,SAAS,EACT,IAAI,CAAC,IAAI,EACT,cAAc,EACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACpB,SAAS,EACT,IAAI,CAAC,KAAK,IAAI,CAAC,EACf,IAAI,CAAC,QAAQ,IAAI,CAAC,EAClB,EAAE,EACF,IAAI,CAAC,QAAQ,IAAI,CAAC,EAClB,WAAW,IAAI,EAAE,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CAAC,GAAG,IAAI,CAAC,EACb,WAAW,EACX,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjB,EAAE,EACF,EAAE,EACF,EAAE,CACH,CAAC;wBACF,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;gBAED,MAAM,IAAI,GAAG,SAAS;oBACpB,CAAC,CAAC,MAAO,MAA6B,CAAC,IAAI,CAAC,MAAsB,EAAE,IAAI,CAAC;oBACzE,CAAC,CAAC,MAAO,MAAsB,CAAC,IAAI,CAAC,MAAe,EAAE,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;oBACpE,MAAM,IAAI,qBAAY,CAAC,gDAAgD,CAAC,CAAC;gBAC3E,CAAC;gBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,KAAa,CAAC;oBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAa,CAAC;wBAChD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW;4BAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;wBACvE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,kBAAkB;4BAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;wBAChF,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;wBACtB,IAAI,CAAC,KAAK,WAAW;4BAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;wBAClE,IAAI,CAAC,KAAK,kBAAkB;4BAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;wBAC3E,IAAI,CAAC,KAAK,2BAA2B;4BAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;wBACjG,KAAK,GAAG,CAAC,CAAC;oBACZ,CAAC;oBACD,MAAM,EAAE,GAAG,IAAA,iBAAS,EAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBACjD,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAChG,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;oBAC9B,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;wBACzB,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC;wBACpC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC;oBACzC,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACjC,CAAC;gBAED,0EAA0E;gBAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,uBAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAK,CAAC,KAAK,CAAC,CAAC;gBACtE,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,sEAAsE;gBACtE,MAAM,cAAc,GAAoC,EAAE,CAAC;gBAE3D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;oBACtB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;oBACnC,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC7B,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBACpD,MAAM,WAAW,GAAG,IAAA,iBAAS,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBAEtD,wDAAwD;oBACxD,mEAAmE;oBACnE,kCAAkC;oBAClC,iEAAiE;oBACjE,uCAAuC;oBACvC,kEAAkE;oBAClE,+DAA+D;oBAC/D,kEAAkE;oBAClE,yDAAyD;oBACzD,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;oBACvB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC/C,aAAa,GAAG,CAAC,CAAC;oBACpB,CAAC;yBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxD,aAAa,GAAG,CAAC,CAAC;oBACpB,CAAC;oBAED,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;wBACvB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC;wBACxD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC;wBACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;wBACrB,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC;wBAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;4BAC9B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;4BAC/B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;yBACtC,CAAC,CAAC;wBACH,WAAW,EAAE,CAAC;wBACd,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,4BAA4B;wBAExE,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACzD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;4BAChC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;4BACvC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;4BAC5C,MAAM,eAAe,GAAG,IAAA,iBAAS,EAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;4BAChE,MAAM,UAAU,GAAG,GAAG,WAAW,IAAI,GAAG,EAAE,CAAC;4BAC3C,MAAM,CAAC,KAAK,CACV,wBAAwB,EACxB;gCACE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gCAClB,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;gCACtB,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gCAClC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gCACjC,eAAe,CAAC,MAAM;gCACtB,eAAe,CAAC,MAAM;6BACvB,EACD,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,IAAA,iBAAS,EAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CACzE,CAAC;4BACF,WAAW,EAAE,CAAC;4BACd,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;oBACpB,IAAI,IAAa,CAAC;oBAClB,IAAI,CAAC;wBACH,IAAI,GAAG,SAAS;4BACd,CAAC,CAAC,MAAO,MAA6B,CAAC,IAAI,CAAC,MAAsB,EAAE,IAAI,CAAC;4BACzE,CAAC,CAAC,MAAO,MAAsB,CAAC,IAAI,CAAC,MAAe,EAAE,IAAI,CAAC,CAAC;oBAChE,CAAC;oBAAC,OAAO,MAAM,EAAE,CAAC;wBAChB,MAAM,GAAG,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACtE,MAAM,IAAI,qBAAY,CACpB,6DAA6D,GAAG,uCAAuC,CACxG,CAAC;oBACJ,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;wBACxD,MAAM,IAAI,qBAAY,CAAC,4DAA4D,CAAC,CAAC;oBACvF,CAAC;oBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;wBAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE;4BAAE,SAAS,CAAC,YAAY;wBAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5B,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC7B,MAAM,IAAI,qBAAY,CAAC,gCAAgC,IAAI,CAAC,GAAG,aAAa,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;wBACnG,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AA/vBD,oCA+vBC"}