instar 1.3.395 → 1.3.396
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lifeline/MessageQueue.d.ts +25 -1
- package/dist/lifeline/MessageQueue.d.ts.map +1 -1
- package/dist/lifeline/MessageQueue.js +30 -0
- package/dist/lifeline/MessageQueue.js.map +1 -1
- package/dist/lifeline/TelegramLifeline.d.ts +12 -2
- package/dist/lifeline/TelegramLifeline.d.ts.map +1 -1
- package/dist/lifeline/TelegramLifeline.js +83 -70
- package/dist/lifeline/TelegramLifeline.js.map +1 -1
- package/dist/lifeline/replayPolicy.d.ts +66 -0
- package/dist/lifeline/replayPolicy.d.ts.map +1 -0
- package/dist/lifeline/replayPolicy.js +86 -0
- package/dist/lifeline/replayPolicy.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +3 -3
- package/upgrades/1.3.396.md +31 -0
- package/upgrades/side-effects/lifeline-replay-budget-classification.md +97 -0
|
@@ -16,8 +16,14 @@ export interface QueuedMessage {
|
|
|
16
16
|
photoPath?: string;
|
|
17
17
|
documentPath?: string;
|
|
18
18
|
documentName?: string;
|
|
19
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Strikes from genuine HTTP-400 rejections (message-specific / "poison").
|
|
21
|
+
* Named `replayFailures` for on-disk back-compat with queues written before
|
|
22
|
+
* the transient/poison split (2026-06-06); semantically the poison counter.
|
|
23
|
+
*/
|
|
20
24
|
replayFailures?: number;
|
|
25
|
+
/** Strikes from transient capacity/availability failures (timeout/5xx/down). */
|
|
26
|
+
transientReplayFailures?: number;
|
|
21
27
|
}
|
|
22
28
|
export declare class MessageQueue {
|
|
23
29
|
private queuePath;
|
|
@@ -35,6 +41,24 @@ export declare class MessageQueue {
|
|
|
35
41
|
* Peek at the queue without draining.
|
|
36
42
|
*/
|
|
37
43
|
peek(): QueuedMessage[];
|
|
44
|
+
/**
|
|
45
|
+
* Remove a single message by id and persist. Used by durable replay: a
|
|
46
|
+
* message is removed from the persisted queue ONLY after it has been
|
|
47
|
+
* delivered or deliberately dropped — so a process exit mid-replay can never
|
|
48
|
+
* lose an undelivered message (the 2026-06-06 topic-21487 untracked-loss bug,
|
|
49
|
+
* where drain() emptied the disk queue before delivery confirmed).
|
|
50
|
+
* Returns true if a message was removed.
|
|
51
|
+
*/
|
|
52
|
+
remove(id: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Patch the replay-strike counters of a queued message in place and persist.
|
|
55
|
+
* Leaves the message ON DISK (durable) — used when a forward fails and the
|
|
56
|
+
* message must be retried on the next replay tick. No-op if the id is gone.
|
|
57
|
+
*/
|
|
58
|
+
updateReplayCounters(id: string, counters: {
|
|
59
|
+
replayFailures: number;
|
|
60
|
+
transientReplayFailures: number;
|
|
61
|
+
}): void;
|
|
38
62
|
get length(): number;
|
|
39
63
|
private load;
|
|
40
64
|
private save;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageQueue.d.ts","sourceRoot":"","sources":["../../src/lifeline/MessageQueue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"MessageQueue.d.ts","sourceRoot":"","sources":["../../src/lifeline/MessageQueue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAuB;gBAExB,QAAQ,EAAE,MAAM;IAK5B;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAKjC;;OAEG;IACH,KAAK,IAAI,aAAa,EAAE;IAOxB;;OAEG;IACH,IAAI,IAAI,aAAa,EAAE;IAIvB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAU3B;;;;OAIG;IACH,oBAAoB,CAClB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,uBAAuB,EAAE,MAAM,CAAA;KAAE,GACpE,IAAI;IAQP,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,IAAI;CASb"}
|
|
@@ -35,6 +35,36 @@ export class MessageQueue {
|
|
|
35
35
|
peek() {
|
|
36
36
|
return [...this.queue];
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Remove a single message by id and persist. Used by durable replay: a
|
|
40
|
+
* message is removed from the persisted queue ONLY after it has been
|
|
41
|
+
* delivered or deliberately dropped — so a process exit mid-replay can never
|
|
42
|
+
* lose an undelivered message (the 2026-06-06 topic-21487 untracked-loss bug,
|
|
43
|
+
* where drain() emptied the disk queue before delivery confirmed).
|
|
44
|
+
* Returns true if a message was removed.
|
|
45
|
+
*/
|
|
46
|
+
remove(id) {
|
|
47
|
+
const before = this.queue.length;
|
|
48
|
+
this.queue = this.queue.filter(m => m.id !== id);
|
|
49
|
+
if (this.queue.length !== before) {
|
|
50
|
+
this.save();
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Patch the replay-strike counters of a queued message in place and persist.
|
|
57
|
+
* Leaves the message ON DISK (durable) — used when a forward fails and the
|
|
58
|
+
* message must be retried on the next replay tick. No-op if the id is gone.
|
|
59
|
+
*/
|
|
60
|
+
updateReplayCounters(id, counters) {
|
|
61
|
+
const msg = this.queue.find(m => m.id === id);
|
|
62
|
+
if (!msg)
|
|
63
|
+
return;
|
|
64
|
+
msg.replayFailures = counters.replayFailures;
|
|
65
|
+
msg.transientReplayFailures = counters.transientReplayFailures;
|
|
66
|
+
this.save();
|
|
67
|
+
}
|
|
38
68
|
get length() {
|
|
39
69
|
return this.queue.length;
|
|
40
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageQueue.js","sourceRoot":"","sources":["../../src/lifeline/MessageQueue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageQueue.js","sourceRoot":"","sources":["../../src/lifeline/MessageQueue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAwB7B,MAAM,OAAO,YAAY;IACf,SAAS,CAAS;IAClB,KAAK,GAAoB,EAAE,CAAC;IAEpC,YAAY,QAAgB;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,GAAkB;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAClB,EAAU,EACV,QAAqE;QAErE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;QAC7C,GAAG,CAAC,uBAAuB,GAAG,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEO,IAAI;QACV,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,IAAI;QACV,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;YACvD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
|
|
@@ -172,7 +172,19 @@ export declare class TelegramLifeline {
|
|
|
172
172
|
* (awake) this is a single `existsSync` no-op per forward.
|
|
173
173
|
*/
|
|
174
174
|
private requestWakeIfSlept;
|
|
175
|
+
/**
|
|
176
|
+
* Boolean façade kept for the inbound-handler callers that only care whether
|
|
177
|
+
* the forward landed. Replay uses {@link forwardToServerClassified} so it can
|
|
178
|
+
* tell a message-specific rejection (poison) from a transient outage.
|
|
179
|
+
*/
|
|
175
180
|
private forwardToServer;
|
|
181
|
+
/**
|
|
182
|
+
* Forward a message to the server and classify the result so replay can
|
|
183
|
+
* budget correctly: only a genuine HTTP-400 rejection ('poison') burns the
|
|
184
|
+
* drop budget; timeout / 5xx / 503-boot / network refusal are 'transient'
|
|
185
|
+
* (never drop a real message), and 426 is 'skew' (coordinated restart).
|
|
186
|
+
*/
|
|
187
|
+
private forwardToServerClassified;
|
|
176
188
|
/**
|
|
177
189
|
* Resolve the destination topic for update-class alerts (version-skew,
|
|
178
190
|
* delivery-health). Reads `agent-updates-topic` from server state. If
|
|
@@ -232,8 +244,6 @@ export declare class TelegramLifeline {
|
|
|
232
244
|
private driftPromoter;
|
|
233
245
|
private watchdog;
|
|
234
246
|
private handleLifelineCommand;
|
|
235
|
-
/** Max times a message can fail replay before being dropped. */
|
|
236
|
-
private static readonly MAX_REPLAY_FAILURES;
|
|
237
247
|
private replayQueue;
|
|
238
248
|
/** Whether we've already notified for the current outage. Reset on recovery. */
|
|
239
249
|
private hasNotifiedServerDown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelegramLifeline.d.ts","sourceRoot":"","sources":["../../src/lifeline/TelegramLifeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"TelegramLifeline.d.ts","sourceRoot":"","sources":["../../src/lifeline/TelegramLifeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,7 @@ import { SessionRecoveryConsumer } from '../core/SessionRecoveryConsumer.js';
|
|
|
47
47
|
import { retryWithBackoff } from './retryWithBackoff.js';
|
|
48
48
|
import { notifyMessageDropped } from './droppedMessages.js';
|
|
49
49
|
import { ForwardTransientError, ForwardBadRequestError, ForwardServerBootError, ForwardVersionSkewError, isTerminalForwardError, } from './forwardErrors.js';
|
|
50
|
+
import { decideReplay } from './replayPolicy.js';
|
|
50
51
|
import { writeStartupMarker } from './startupMarker.js';
|
|
51
52
|
import { shouldOwnTelegramPoll } from './telegramPollOwnership.js';
|
|
52
53
|
import { writeLease as writePollOwnerLease } from './TelegramPollOwnerLease.js';
|
|
@@ -1273,7 +1274,21 @@ export class TelegramLifeline {
|
|
|
1273
1274
|
console.log('[Lifeline] Server is asleep — wrote wake-request; message will replay once it boots');
|
|
1274
1275
|
}
|
|
1275
1276
|
}
|
|
1277
|
+
/**
|
|
1278
|
+
* Boolean façade kept for the inbound-handler callers that only care whether
|
|
1279
|
+
* the forward landed. Replay uses {@link forwardToServerClassified} so it can
|
|
1280
|
+
* tell a message-specific rejection (poison) from a transient outage.
|
|
1281
|
+
*/
|
|
1276
1282
|
async forwardToServer(topicId, text, rawMsg) {
|
|
1283
|
+
return (await this.forwardToServerClassified(topicId, text, rawMsg)) === 'ok';
|
|
1284
|
+
}
|
|
1285
|
+
/**
|
|
1286
|
+
* Forward a message to the server and classify the result so replay can
|
|
1287
|
+
* budget correctly: only a genuine HTTP-400 rejection ('poison') burns the
|
|
1288
|
+
* drop budget; timeout / 5xx / 503-boot / network refusal are 'transient'
|
|
1289
|
+
* (never drop a real message), and 426 is 'skew' (coordinated restart).
|
|
1290
|
+
*/
|
|
1291
|
+
async forwardToServerClassified(topicId, text, rawMsg) {
|
|
1277
1292
|
// a2a spoof-defense fields (MENTOR-LIVE-READINESS-SPEC §Recipient side). The
|
|
1278
1293
|
// server's /internal/telegram-forward handler passes these to
|
|
1279
1294
|
// `TelegramAdapter.dispatchAgentMessageHook` so the a2a hook can distinguish
|
|
@@ -1371,16 +1386,23 @@ export class TelegramLifeline {
|
|
|
1371
1386
|
// gets its own user-visible notification.
|
|
1372
1387
|
this.versionSkewActive = false;
|
|
1373
1388
|
this.versionSkewAlertSentAt = 0;
|
|
1374
|
-
return
|
|
1389
|
+
return 'ok';
|
|
1375
1390
|
}
|
|
1376
1391
|
catch (err) {
|
|
1377
1392
|
// Version-skew handler: emit signal + request restart via orchestrator.
|
|
1378
1393
|
if (err instanceof ForwardVersionSkewError) {
|
|
1379
1394
|
this.handleVersionSkew(err, topicId);
|
|
1380
|
-
return
|
|
1395
|
+
return 'skew';
|
|
1381
1396
|
}
|
|
1382
1397
|
this.consecutiveForwardFailures++;
|
|
1383
|
-
|
|
1398
|
+
// A genuine HTTP-400 is the ONLY message-specific ("poison") failure —
|
|
1399
|
+
// the server looked at this message and refused it. Everything else
|
|
1400
|
+
// (transient 5xx, 503 boot, fetch timeout/AbortError, network refusal)
|
|
1401
|
+
// is a capacity/availability failure that says nothing about the message
|
|
1402
|
+
// and must NOT burn the replay drop budget.
|
|
1403
|
+
if (err instanceof ForwardBadRequestError)
|
|
1404
|
+
return 'poison';
|
|
1405
|
+
return 'transient';
|
|
1384
1406
|
}
|
|
1385
1407
|
}
|
|
1386
1408
|
/**
|
|
@@ -1628,35 +1650,52 @@ export class TelegramLifeline {
|
|
|
1628
1650
|
await this.sendToTopic(topicId, 'Unknown lifeline command. Try /lifeline help');
|
|
1629
1651
|
}
|
|
1630
1652
|
// ── Queue Replay ──────────────────────────────────────────
|
|
1631
|
-
/** Max times a message can fail replay before being dropped. */
|
|
1632
|
-
static MAX_REPLAY_FAILURES = 3;
|
|
1633
1653
|
async replayQueue() {
|
|
1634
|
-
|
|
1654
|
+
// Durable consume: work from a SNAPSHOT and remove a message from the
|
|
1655
|
+
// PERSISTED queue only after it is delivered or deliberately dropped. The
|
|
1656
|
+
// old drain() emptied the on-disk queue up front, so a process exit
|
|
1657
|
+
// mid-replay (update / version-skew / launchd restart — all common during
|
|
1658
|
+
// the very episodes that trigger queuing) lost the in-memory messages with
|
|
1659
|
+
// no trace. That is the 2026-06-06 topic-21487 untracked-loss: a real user
|
|
1660
|
+
// question vanished without even a dropped-messages.json record.
|
|
1661
|
+
const messages = this.queue.peek();
|
|
1635
1662
|
if (messages.length === 0)
|
|
1636
1663
|
return;
|
|
1637
1664
|
console.log(`[Lifeline] Replaying ${messages.length} queued messages`);
|
|
1638
1665
|
let replayed = 0;
|
|
1639
1666
|
let failed = 0;
|
|
1640
1667
|
let dropped = 0;
|
|
1668
|
+
const deliveredByTopic = new Map();
|
|
1641
1669
|
for (const msg of messages) {
|
|
1642
|
-
//
|
|
1643
|
-
|
|
1644
|
-
//
|
|
1645
|
-
//
|
|
1646
|
-
//
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1670
|
+
// CRITICAL: never drop while a version-skew episode is in flight. A hard
|
|
1671
|
+
// incompatibility (HTTP 426) makes EVERY forward fail for a reason
|
|
1672
|
+
// unrelated to the message; the coordinated restart resolves it. Stop
|
|
1673
|
+
// replaying and leave every remaining message safely on disk (the
|
|
1674
|
+
// 2026-05-20 b2lead-insights silent-drop failure mode).
|
|
1675
|
+
if (this.versionSkewActive)
|
|
1676
|
+
break;
|
|
1677
|
+
const outcome = await this.forwardToServerClassified(msg.topicId, msg.text, {
|
|
1678
|
+
message_id: parseInt(msg.id.replace('tg-', ''), 10) || 0,
|
|
1679
|
+
from: {
|
|
1680
|
+
id: msg.fromUserId,
|
|
1681
|
+
first_name: msg.fromFirstName,
|
|
1682
|
+
username: msg.fromUsername,
|
|
1683
|
+
},
|
|
1684
|
+
chat: { id: parseInt(this.config.chatId, 10) },
|
|
1685
|
+
message_thread_id: msg.topicId,
|
|
1686
|
+
text: msg.text,
|
|
1687
|
+
date: Math.floor(new Date(msg.timestamp).getTime() / 1000),
|
|
1688
|
+
});
|
|
1689
|
+
const decision = decideReplay(outcome, {
|
|
1690
|
+
poisonFailures: msg.replayFailures ?? 0,
|
|
1691
|
+
transientFailures: msg.transientReplayFailures ?? 0,
|
|
1692
|
+
});
|
|
1693
|
+
if (decision.action === 'delivered') {
|
|
1694
|
+
this.queue.remove(msg.id);
|
|
1695
|
+
replayed++;
|
|
1696
|
+
deliveredByTopic.set(msg.topicId, (deliveredByTopic.get(msg.topicId) ?? 0) + 1);
|
|
1658
1697
|
}
|
|
1659
|
-
if (
|
|
1698
|
+
else if (decision.action === 'drop') {
|
|
1660
1699
|
dropped++;
|
|
1661
1700
|
// Before the drop becomes silent: persist the record, report a
|
|
1662
1701
|
// degradation, and tell the original sender their message was lost.
|
|
@@ -1667,8 +1706,8 @@ export class TelegramLifeline {
|
|
|
1667
1706
|
messageId: msg.id,
|
|
1668
1707
|
senderName: msg.fromFirstName ?? msg.fromUsername ?? String(msg.fromUserId),
|
|
1669
1708
|
text: msg.text,
|
|
1670
|
-
retryCount:
|
|
1671
|
-
reason:
|
|
1709
|
+
retryCount: decision.poisonFailures + decision.transientFailures,
|
|
1710
|
+
reason: decision.dropReason ?? 'Message could not be delivered',
|
|
1672
1711
|
sendToTopic: (topicId, body) => this.sendToTopic(topicId, body),
|
|
1673
1712
|
});
|
|
1674
1713
|
}
|
|
@@ -1678,50 +1717,27 @@ export class TelegramLifeline {
|
|
|
1678
1717
|
// the queue doesn't stall.
|
|
1679
1718
|
console.error(`[Lifeline] notifyMessageDropped threw for ${msg.id}:`, err instanceof Error ? err.message : err);
|
|
1680
1719
|
}
|
|
1681
|
-
console.warn(`[Lifeline] Dropping message ${msg.id}
|
|
1682
|
-
|
|
1683
|
-
}
|
|
1684
|
-
const forwarded = await this.forwardToServer(msg.topicId, msg.text, {
|
|
1685
|
-
message_id: parseInt(msg.id.replace('tg-', ''), 10) || 0,
|
|
1686
|
-
from: {
|
|
1687
|
-
id: msg.fromUserId,
|
|
1688
|
-
first_name: msg.fromFirstName,
|
|
1689
|
-
username: msg.fromUsername,
|
|
1690
|
-
},
|
|
1691
|
-
chat: { id: parseInt(this.config.chatId, 10) },
|
|
1692
|
-
message_thread_id: msg.topicId,
|
|
1693
|
-
text: msg.text,
|
|
1694
|
-
date: Math.floor(new Date(msg.timestamp).getTime() / 1000),
|
|
1695
|
-
});
|
|
1696
|
-
if (forwarded) {
|
|
1697
|
-
replayed++;
|
|
1720
|
+
console.warn(`[Lifeline] Dropping message ${msg.id}: ${decision.dropReason} — ${msg.text.slice(0, 80)}`);
|
|
1721
|
+
this.queue.remove(msg.id);
|
|
1698
1722
|
}
|
|
1699
1723
|
else {
|
|
1700
|
-
//
|
|
1701
|
-
//
|
|
1702
|
-
//
|
|
1703
|
-
//
|
|
1704
|
-
//
|
|
1705
|
-
//
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
this.queue.enqueue(msg);
|
|
1724
|
+
// requeue — persist the updated strike counters IN PLACE; the message
|
|
1725
|
+
// stays on disk for the next replay tick. A transient failure NEVER
|
|
1726
|
+
// burns the poison budget, so a slow / overloaded / restarting server
|
|
1727
|
+
// can no longer drop a real message (the 2026-06-06 topic-21487
|
|
1728
|
+
// false-drop bug, where a CPU-starved-but-up server burned all 3
|
|
1729
|
+
// attempts in ~90s and dropped the user's question).
|
|
1730
|
+
this.queue.updateReplayCounters(msg.id, {
|
|
1731
|
+
replayFailures: decision.poisonFailures,
|
|
1732
|
+
transientReplayFailures: decision.transientFailures,
|
|
1733
|
+
});
|
|
1711
1734
|
failed++;
|
|
1712
|
-
// If the server
|
|
1713
|
-
//
|
|
1714
|
-
|
|
1735
|
+
// If the server is unavailable, stop replaying — the remaining messages
|
|
1736
|
+
// are already safely persisted (we only remove on delivery/drop) and
|
|
1737
|
+
// will be retried on the next recovery.
|
|
1738
|
+
if (outcome === 'transient' && !this.supervisor.healthy) {
|
|
1715
1739
|
const remaining = messages.length - replayed - failed - dropped;
|
|
1716
|
-
|
|
1717
|
-
console.log(`[Lifeline] Server went down during replay — re-queuing ${remaining} remaining messages`);
|
|
1718
|
-
// Re-queue remaining unprocessed messages (preserve their failure counts)
|
|
1719
|
-
const currentIndex = messages.indexOf(msg);
|
|
1720
|
-
for (let i = currentIndex + 1; i < messages.length; i++) {
|
|
1721
|
-
this.queue.enqueue(messages[i]);
|
|
1722
|
-
}
|
|
1723
|
-
failed += remaining;
|
|
1724
|
-
}
|
|
1740
|
+
console.log(`[Lifeline] Server unavailable during replay — ${remaining} message(s) remain queued`);
|
|
1725
1741
|
break;
|
|
1726
1742
|
}
|
|
1727
1743
|
}
|
|
@@ -1731,13 +1747,10 @@ export class TelegramLifeline {
|
|
|
1731
1747
|
if (replayed > 0 || failed > 0 || dropped > 0) {
|
|
1732
1748
|
console.log(`[Lifeline] Replay complete: ${replayed} delivered, ${failed} re-queued, ${dropped} dropped`);
|
|
1733
1749
|
}
|
|
1734
|
-
// Notify the user that their queued messages were delivered
|
|
1750
|
+
// Notify the user that their queued messages were delivered.
|
|
1735
1751
|
if (replayed > 0) {
|
|
1736
|
-
|
|
1737
|
-
const replayedTopics = new Set(messages.filter((_, i) => i < replayed + failed + dropped).map(m => m.topicId));
|
|
1738
|
-
for (const topicId of replayedTopics) {
|
|
1752
|
+
for (const [topicId, count] of deliveredByTopic) {
|
|
1739
1753
|
try {
|
|
1740
|
-
const count = messages.filter(m => m.topicId === topicId).length;
|
|
1741
1754
|
await this.sendToTopic(topicId, count === 1
|
|
1742
1755
|
? '✓ Server recovered — your queued message has been delivered.'
|
|
1743
1756
|
: `✓ Server recovered — ${count} queued messages delivered.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelegramLifeline.js","sourceRoot":"","sources":["../../src/lifeline/TelegramLifeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TelegramLifeline.js","sourceRoot":"","sources":["../../src/lifeline/TelegramLifeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,6DAA6D;AAC7D,uEAAuE;AACvE,2DAA2D;AAC3D,OAAO,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAG5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,MAAM,IAAI,eAAe,EACzB,mBAAmB,EACnB,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,CAAC;QACH,0DAA0D;QAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,uDAAuD;oBACvD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAE1B,oDAAoD;oBACpD,0CAA0C;oBAC1C,gEAAgE;oBAChE,+DAA+D;oBAC/D,gEAAgE;oBAChE,8DAA8D;oBAC9D,6DAA6D;oBAC7D,yDAAyD;oBACzD,gEAAgE;oBAChE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;wBAChE,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC;wBAC/B,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;4BAC1B,sBAAsB;4BACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;gCAC7E,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI;6BACjC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;4BAExB,iDAAiD;4BACjD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BAE3E,yDAAyD;4BACzD,yDAAyD;4BACzD,yDAAyD;4BACzD,0DAA0D;4BAC1D,0DAA0D;4BAC1D,wDAAwD;4BACxD,uDAAuD;4BACvD,wDAAwD;4BACxD,yDAAyD;4BACzD,+CAA+C;4BAC/C,MAAM,gBAAgB,GACpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,GAAG,WAAW,CAAC;4BAEhD,IAAI,iBAAiB,EAAE,CAAC;gCACtB,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,GAAG,8BAA8B,QAAQ,iBAAiB,CAAC,CAAC;gCAC3G,IAAI,CAAC;oCAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gCAAC,CAAC;gCAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;4BACnE,CAAC;iCAAM,IAAI,gBAAgB,EAAE,CAAC;gCAC5B,uDAAuD;gCACvD,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,GAAG,4CAA4C,QAAQ,qBAAqB,CAAC,CAAC;gCAC7H,IAAI,CAAC;oCAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gCAAC,CAAC;gCAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gCACjE,sDAAsD;gCACtD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gCACvC,IAAI,KAAK,GAAG,IAAI,CAAC;gCACjB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;oCACjC,IAAI,CAAC;wCACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;wCAC1B,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;oCACtD,CAAC;oCAAC,MAAM,CAAC;wCACP,KAAK,GAAG,KAAK,CAAC;wCACd,MAAM;oCACR,CAAC;gCACH,CAAC;gCACD,IAAI,KAAK,EAAE,CAAC;oCACV,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,GAAG,mCAAmC,CAAC,CAAC;oCAC3E,IAAI,CAAC;wCAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oCAAC,CAAC;oCAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gCACnE,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,wEAAwE;gCACxE,OAAO,KAAK,CAAC;4BACf,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,8CAA8C;4BAC9C,OAAO,KAAK,CAAC;wBACf,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,yCAAyC;wBACzC,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,iDAAiD;oBACjD,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;QACjD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACrG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,SAAS,SAAS,CAAC,GAAW,EAAE,OAAO,GAAG,IAAI;IAC5C,OAAO,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,2BAA2B;YAC3B,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC7B,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC/B,CAAC;AAoCD,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAiB;IACvB,aAAa,CAAgC;IAC7C,KAAK,CAAe;IACpB,UAAU,CAAmB;IAC7B,OAAO,GAAG,KAAK,CAAC;IAChB,YAAY,GAAG,CAAC,CAAC;IACjB,WAAW,GAAyC,IAAI,CAAC;IACzD,UAAU,CAAS;IACnB,aAAa,GAAwB,IAAI,CAAC;IAC1C,cAAc,GAA0C,IAAI,CAAC;IAC7D,qBAAqB,GAA0C,IAAI,CAAC;IACpE,uBAAuB,GAA0C,IAAI,CAAC;IACtE,eAAe,GAAkB,IAAI,CAAC;IACtC,QAAQ,CAAS;IACjB,eAAe,GAAG,CAAC,CAAC;IACpB,eAAe,GAAG,CAAC,CAAC;IACpB,aAAa,GAAG,IAAI,CAAC,CAAC,0BAA0B;IAExD,8CAA8C;IACtC,mBAAmB,GAAkB,IAAI,CAAC;IAC1C,kBAAkB,GAAkB,IAAI,CAAC;IACzC,oBAAoB,GAAyC,IAAI,CAAC;IAE1E,YAAY,UAAmB;QAC7B,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE5C,uBAAuB;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CACtD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,CACxC,CAAC;QACF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAmC,CAAC;QACjE,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QACtF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAExE,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC;YACrC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU;YACzC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YAC3C,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YAC7B,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;SACtC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,yBAAyB;QACzB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC/B,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;gBACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAc,EAAE,EAAE;YAClD,OAAO,CAAC,GAAG,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,OAAe,EAAE,EAAE;YACzD,OAAO,CAAC,GAAG,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,aAAqB,EAAE,eAAuB,EAAE,EAAE;YACrF,OAAO,CAAC,KAAK,CAAC,8CAA8C,aAAa,WAAW,CAAC,CAAC;YACtF,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,yEAAyE;QACzE,wEAAwE;QACxE,sDAAsD;QACtD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAA0D,EAAE,EAAE;YACnG,OAAO,CAAC,KAAK,CAAC,0CAA0C,IAAI,CAAC,YAAY,8CAA8C,CAAC,CAAC;YACzH,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,aAAqB,EAAE,EAAE;YAC5D,OAAO,CAAC,GAAG,CAAC,yBAAyB,aAAa,wDAAwD,CAAC,CAAC;YAC5G,wEAAwE;YACxE,8EAA8E;YAC9E,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,CAAC,GAAG,CAAC,mCAAmC,aAAa,KAAK,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,OAAwD,EAAE,EAAE;YACvG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,EACxC,mCAAmC,OAAO,CAAC,cAAc,KAAK;gBAC9D,sEAAsE;gBACtE,sBAAsB,CACvB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,IAAgD,EAAE,EAAE;YAC7F,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,EACxC,wDAAwD,IAAI,CAAC,cAAc,GAAG,CAC/E,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;YACjD,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAE,CAAC;gBACrG,OAAO,CAAC,KAAK,CAAC,4EAA4E,GAAG,EAAE,CAAC,CAAC;gBACjG,OAAO,CAAC,oDAAoD;YAC9D,CAAC;YACD,qDAAqD;YACrD,OAAO,CAAC,KAAK,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;YACnE,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtE,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAE,CAAC;gBAC/E,OAAO,CAAC,KAAK,CAAC,gEAAgE,GAAG,EAAE,CAAC,CAAC;gBACrF,OAAO;YACT,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,+CAA+C,GAAG,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAClG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,wEAAwE;QACxE,wEAAwE;QACxE,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEtE,qEAAqE;QACrE,wEAAwE;QACxE,sEAAsE;QACtE,sEAAsE;QACtE,0EAA0E;QAC1E,qCAAqC;QACrC,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,0HAA0H,CAAC,CAAC,CAAC;YAClJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iFAAiF;QACpG,CAAC;QAED,uFAAuF;QACvF,kFAAkF;QAClF,iFAAiF;QACjF,qDAAqD;QACrD,IAAI,CAAC;YACH,aAAa,CACX,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,EAC3C,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,WAAW,EAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAC/B,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,wEAAwE;YACxE,oEAAoE;YACpE,gEAAgE;YAChE,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;gBAC/F,aAAa,CACX,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,EAC3C,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,WAAW,EAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAC/B,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iEAAiE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7H,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,0BAA0B;QAC1B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACpD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,gEAAgE;QAChE,4EAA4E;QAC5E,uEAAuE;QACvE,wEAAwE;QACxE,6EAA6E;QAC7E,uEAAuE;QACvE,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzE,IAAI,sBAAsB,EAAE,CAAC;YAC3B,8DAA8D;YAC9D,+EAA+E;YAC/E,oEAAoE;YACpE,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAElC,yBAAyB;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,uEAAuE;YACvE,yEAAyE;YACzE,mEAAmE;YACnE,iDAAiD;YACjD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,wHAAwH,CAAC,CAAC,CAAC;QACnJ,CAAC;QAED,gFAAgF;QAChF,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,kCAAkC;QAClC,yDAAyD;QACzD,IAAI,CAAC,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5C,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACpC,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,qEAAqE;QACrE,oEAAoE;QACpE,oBAAoB;QACpB,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,8EAA8E;QAC9E,mEAAmE;QACnE,kDAAkD;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,kBAAkB,CAAC;QACxE,IAAI,aAAa,EAAE,OAAO,EAAE,CAAC;YAC3B,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,IAAI,uBAAuB,CAAC;gBAC3C,OAAO,EAAE,eAAe;gBACxB,OAAO,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC;gBAC3E,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACrC,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,IAAI;gBACpC,UAAU,EAAE,aAAa,CAAC,iBAAiB,IAAI,OAAO;aACvD,CAAC,CAAC;YACH,IAAI,CAAC,uBAAuB,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC9C,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAA+C,CAAC,CAAC,CAAC;YAC/E,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,wCAAwC,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACzH,CAAC;QAED,iEAAiE;QACjE,uEAAuE;QACvE,kEAAkE;QAClE,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAEtC,kEAAkE;QAClE,wDAAwD;QACxD,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAExC,yDAAyD;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,oCAAoC,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC5B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,iCAAiC;YAC/E,CAAC;QACH,CAAC;QAED,uFAAuF;QACvF,uFAAuF;QACvF,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBACjC,8EAA8E;gBAC9E,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBAClE,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACxG,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,uCAAuC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBACpI,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,6EAA6E;gBAC7E,0FAA0F;gBAC1F,8FAA8F;gBAC9F,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;QAED,6DAA6D;QAC7D,0EAA0E;QAC1E,yEAAyE;QACzE,kCAAkC;QAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,uEAAuE;QACvE,4EAA4E;QAC5E,iEAAiE;QACjE,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;YAClC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;oBACrC,MAAM,EAAE,iBAAiB;oBACzB,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,6EAA6E;gBAC7E,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;gBAC7D,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACvC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,WAAW;YAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAAC,CAAC;QAC5F,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAAC,CAAC;QACjH,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAAC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QAAC,CAAC;QACvH,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC;YAAC,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAClF,kEAAkE;QAClE,yEAAyE;QACzE,kEAAkE;QAClE,IAAI,CAAC;YAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC9H,IAAI,CAAC;YAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACpE,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;OAMG;IACK,8BAA8B;QACpC,sEAAsE;QACtE,wEAAwE;QACxE,qEAAqE;QACrE,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,YAAY,GAAG,uBAAuB,EAAE,CAAC;QAE/C,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAmB,CAAC;YAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACvC,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,oEAAoE;gBACpE,MAAM,OAAO,CAAC,GAAG,CAAC;oBAChB,IAAI,CAAC,oBAAoB,EAAE;oBAC3B,+DAA+D;oBAC/D,iEAAiE;oBACjE,gEAAgE;oBAChE,+CAA+C;oBAC/C,OAAO,CAAC,OAAO,EAAE;iBAClB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,YAAY;YACZ,uBAAuB,EAAE,GAAG,EAAE;gBAC5B,mEAAmE;gBACnE,uEAAuE;gBACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EACzC,gBAAgB,EAChB,WAAW,CACZ,CAAC;gBACF,IAAI,CAAC;oBAAC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,KAAK,CAAC;gBAAC,CAAC;YACjE,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,CAAC,MAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE;gBAC5D,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAsB,CAAC;YACzC,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE;YACzC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;gBACf,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,EAAE;gBAC3D,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;gBAC3D,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAC/C,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,OAAO;aACnD,CAAC;YACF,MAAM;YACN,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBACjB,mBAAmB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;oBACvC,OAAO,EAAE,kCAAkC;oBAC3C,OAAO,EAAE,2BAA2B;oBACpC,QAAQ,EAAE,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,wBAAwB;oBACpE,MAAM,EAAE,qCAAqC;oBAC7C,MAAM,EAAE,uEAAuE;iBAChF,CAAC,CAAC;YACL,CAAC;YACD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;SAC3C,CAAC,CAAC;QAEH,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,gCAAgC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACnD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAC5C;gBACE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAChD,kBAAkB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;oBAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;wBACvB,OAAO,CAAC,IAAI,CAAC,sDAAsD,MAAM,iCAAiC,CAAC,CAAC;wBAC5G,OAAO;oBACT,CAAC;oBACD,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;wBACrC,MAAM;wBACN,MAAM,EAAE,aAAa;wBACrB,OAAO,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE;qBAC1C,CAAC,CAAC;gBACL,CAAC;gBACD,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC;gBACxE,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,EAAE,CAAC;aACtE,EACD,WAAW,CACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,uBAAuB;QAC7B,MAAM,GAAG,GAAI,IAAI,CAAC,aAEhB,CAAC,QAAQ,EAAE,aAAa,IAAI,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,QAAgB,EAAU,EAAE,CACnD,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtE,OAAO;YACL,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC9D,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;YACjC,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC;YAC/C,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM;SAC9E,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,oBAAoB;QAC1B,IAAI,IAAI,CAAC,0BAA0B,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAChE,IAAI,gBAAgB,GAAG,MAAM;gBAAE,OAAO,KAAK,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,8BAA8B,CAAC,IAAkE;QACvG,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG;YACd,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;YAC7C,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,gCAAgC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;QAC3F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO;QACrC,IAAI,OAAO,GAAgF,IAAI,CAAC;QAChG,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;QACD,IAAI,CAAC;YAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,mDAAmD,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAChJ,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;YAAE,OAAO;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACxG,KAAK,IAAI,CAAC,WAAW,CACnB,OAAO,EACP,gCAAgC,OAAO,CAAC,YAAY,uCAAuC,IAAI,aAAa,IAAI,CAAC,eAAe,KAAK;YACrI,oDAAoD,CACrD,CAAC,KAAK,CAAC,GAAG,EAAE,GAAiD,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACK,iCAAiC,CAAC,QAAkB;QAC1D,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YACxE,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IAED,mEAAmE;IAC3D,yBAAyB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,qDAAqD;IAC7C,sBAAsB;QAC5B,MAAM,GAAG,GAAI,IAAI,CAAC,aAEhB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACtB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,CAAC,CAAU,EAAe,EAAE,CACxC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,GAAG,GAAgC,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,cAAwB,CAAC;QACjF,IAAI,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAAE,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAA0B,CAAC;QACvF,IAAI,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAAE,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC,qBAA+B,CAAC;QACtG,IAAI,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAAE,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,kBAA4B,CAAC;QAC7F,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,CAAC,IAAI,2BAA2B,CAAC;gBAAE,UAAU,GAAG,IAAI,CAAC;iBACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAqB,CAAC,CAAC;gBAAE,UAAU,GAAG,IAAI,CAAC;QACjE,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,mBAAmB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;gBACvC,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE,oCAAoC;gBAC7C,QAAQ,EAAE,2CAA2C;gBACrD,MAAM,EAAE,wEAAwE;gBAChF,MAAM,EAAE,sEAAsE;aAC/E,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,0EAA0E;IAClE,KAAK,CAAC,oBAAoB;QAChC,qEAAqE;QACrE,qEAAqE;QACrE,4DAA4D;QAC5D,OAAO;IACT,CAAC;IAED;;;;OAIG;IACK,eAAe,CACrB,MAAqB,EACrB,MAAc,EACd,OAAiC;QAEjC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,gDAAgD,GAAG,CAAC,MAAM,YAAY,MAAM,WAAW,MAAM,GAAG,CAAC,CAAC;YAC9G,OAAO;QACT,CAAC;QACD,mEAAmE;QACnE,iEAAiE;QACjE,IAAI,GAAG,CAAC,WAAW,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACpF,mBAAmB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;gBACvC,OAAO,EAAE,+BAA+B;gBACxC,OAAO,EAAE,2CAA2C;gBACpD,QAAQ,EAAE,qDAAqD;gBAC/D,MAAM,EAAE,qDAAqD,MAAM,WAAW,MAAM,EAAE;gBACtF,MAAM,EAAE,2DAA2D;aACpE,CAAC,CAAC;QACL,CAAC;QACD,0EAA0E;QAC1E,yEAAyE;QACzE,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gDAAgD,GAAG,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QACD,KAAK,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,4DAA4D;IAE5D;;;;;;;OAOG;IACK,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC;YACH,2CAA2C;YAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;YAErE,kFAAkF;YAClF,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;gBAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC;gBAC7B,OAAO,EAAE,CAAC;gBACV,eAAe,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;aAC/C,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1D,8DAA8D;gBAC9D,4EAA4E;gBAC5E,6DAA6D;gBAC7D,MAAM,UAAU,GAAG,CAAC,CAAC;gBACrB,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,uBAAuB;gBAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,GAAG,CAAC,IAAI,UAAU,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;oBAC9F,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;4BAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC;4BAC7B,OAAO,EAAE,CAAC;4BACV,eAAe,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;yBAC/C,CAAC,CAAC;wBACH,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;wBAC9E,OAAO;oBACT,CAAC;oBAAC,OAAO,QAAQ,EAAE,CAAC;wBAClB,MAAM,QAAQ,GAAG,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBACjF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC9B,yDAAyD;4BACzD,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;4BACvF,OAAO;wBACT,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;YACxG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAErD,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClE,wEAAwE;gBACxE,wCAAwC;gBACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YACD,mCAAmC;YACnC,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC;gBAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC,aAAa;YAC7E,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;YACxD,uEAAuE;YACvE,wEAAwE;YACxE,qEAAqE;YACrE,sEAAsE;YACtE,yEAAyE;YACzE,0DAA0D;YAC1D,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC9D,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBAChE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,uDAAuD;YACvD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1D,gFAAgF;gBAChF,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC;oBAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,iDAAiD;gBACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAChF,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBAClE,OAAO,CAAC,IAAI,CAAC,qCAAqC,IAAI,CAAC,eAAe,wDAAwD,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC;gBAC9J,CAAC;gBACD,8DAA8D;gBAC9D,iEAAiE;gBACjE,mEAAmE;gBACnE,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBAChE,OAAO,CAAC,GAAG,CAAC,2DAA2D,IAAI,CAAC,eAAe,eAAe,CAAC,CAAC;oBAC5G,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;wBACrE,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;4BAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC;4BAC7B,OAAO,EAAE,CAAC;4BACV,eAAe,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;yBAC/C,CAAC,CAAC;wBACH,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;wBACzD,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;wBACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;oBAC1D,CAAC;oBAAC,MAAM,CAAC;wBACP,qEAAqE;oBACvE,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrE,+DAA+D;gBAC/D,0EAA0E;gBAC1E,uEAAuE;gBACvE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,8CAA8C;gBAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAChF,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjE,OAAO,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,eAAe,4BAA4B,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC;gBACpI,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,qCAAqC;gBACrC,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAsB;QAChD,gFAAgF;QAChF,4EAA4E;QAC5E,4EAA4E;QAC5E,8EAA8E;QAC9E,2EAA2E;QAC3E,uDAAuD;QACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,0EAA0E;QAC1E,wFAAwF;QACxF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,wBAAwB;QACxB,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO;QAEtB,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAEtB,6DAA6D;QAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,mFAAmF;QACnF,8EAA8E;QAC9E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;YACjG,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACjE,IAAI,SAAS,EAAE,CAAC;gBACd,gEAAgE;gBAChE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YACD,0EAA0E;YAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACjB,EAAE,EAAE,MAAM,GAAG,CAAC,UAAU,EAAE;gBAC1B,OAAO;gBACP,IAAI;gBACJ,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;gBACvB,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;gBAC/B,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;gBAClC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;aACnD,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,uDAAuD,IAAI,CAAC,KAAK,CAAC,MAAM,4DAA4D,CACrI,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACjB,EAAE,EAAE,MAAM,GAAG,CAAC,UAAU,EAAE;YAC1B,OAAO;YACP,IAAI;YACJ,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC/B,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YAClC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;SACnD,CAAC,CAAC;QAEH,yFAAyF;QACzF,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,6DAA6D,IAAI,CAAC,KAAK,CAAC,MAAM,4DAA4D,CAC3I,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,GAA2C;QAE3C,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAM,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAElC,IAAI,OAAe,CAAC;QACpB,IAAI,SAA6B,CAAC;QAClC,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YACpE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,SAAS,GAAG,CAAC;QACjF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qFAAqF;YACrF,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC;YACrF,OAAO,CAAC,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACpE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACjB,EAAE,EAAE,MAAM,GAAG,CAAC,UAAU,EAAE;YAC1B,OAAO;YACP,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC/B,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YAClC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YAClD,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,qDAAqD,IAAI,CAAC,KAAK,CAAC,MAAM,4DAA4D,CACnI,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,2DAA2D,IAAI,CAAC,KAAK,CAAC,MAAM,4DAA4D,CACzI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,SAAiB;QAC3D,8BAA8B;QAC9B,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,+BAA+B,IAAI,CAAC,MAAM,CAAC,KAAK,oBAAoB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CACjG,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAqD,CAAC;QACzF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC3E,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,SAAS,MAAM,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,oCAAoC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,EAAE,CACpE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,SAAiB,EAAE,YAAqB;QACrF,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,+BAA+B,IAAI,CAAC,MAAM,CAAC,KAAK,oBAAoB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CACjG,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAqD,CAAC;QACzF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC5E,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,YAAY;YAC3B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;YAC/C,CAAC,CAAC,YAAY,SAAS,GAAG,GAAG,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,oCAAoC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,EAAE,CACpE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CACjC,GAA2C;QAE3C,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,QAAS,CAAC;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAElC,IAAI,OAAe,CAAC;QACpB,IAAI,YAAgC,CAAC;QACrC,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YACvF,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,YAAY,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,YAAY,GAAG,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC;YAC3F,OAAO,CAAC,KAAK,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACpE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACjB,EAAE,EAAE,MAAM,GAAG,CAAC,UAAU,EAAE;YAC1B,OAAO;YACP,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC/B,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YAClC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YAClD,YAAY;YACZ,YAAY,EAAE,GAAG,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,oDAAoD,IAAI,CAAC,KAAK,CAAC,MAAM,4DAA4D,CAClI,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,0DAA0D,IAAI,CAAC,KAAK,CAAC,MAAM,4DAA4D,CACxI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,oBAAoB,CAAC,KAAoD;QACrF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,kEAAkE;YAClE,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBACxC,iBAAiB,EAAE,KAAK,CAAC,EAAE;gBAC3B,IAAI,EAAE,sDAAsD;aAC7D,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACH,MAAM,SAAS,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;gBACjF,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;oBACjC,SAAS,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;gBACxE,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,6BAA6B,EACxE;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,eAAe,EAAE,KAAK,CAAC,EAAE;wBACzB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;wBACzB,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;wBACjC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU;wBACpC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;qBAChC,CAAC;oBACF,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CACF,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;wBACxC,iBAAiB,EAAE,KAAK,CAAC,EAAE;wBAC3B,IAAI,EAAE,uCAAuC;qBAC9C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBACxC,iBAAiB,EAAE,KAAK,CAAC,EAAE;gBAC3B,IAAI,EAAE,qBAAqB;aAC5B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAU,gBAAgB,GAAG,CAAC,CAAC;IACrC,MAAM,CAAU,uBAAuB,GAAG,IAAI,CAAC;IAEvD;;;;OAIG;IACK,kBAAkB,GAAG,KAAK,CAAC;IAEnC,+DAA+D;IAC9C,eAAe,GAAG,gBAAgB,EAAE,CAAC;IAEtD;;;;;;OAMG;IACK,kBAAkB;QACxB,IAAI,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,eAAe,CAC3B,OAAe,EACf,IAAY,EACZ,MAA8C;QAE9C,OAAO,CAAC,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;IAChF,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,yBAAyB,CACrC,OAAe,EACf,IAAY,EACZ,MAA8C;QAE9C,6EAA6E;QAC7E,8DAA8D;QAC9D,6EAA6E;QAC7E,2EAA2E;QAC3E,2EAA2E;QAC3E,uEAAuE;QACvE,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAqD,CAAC;QAC7E,MAAM,aAAa,GAAI,MAA4C,CAAC,WAAW,CAAC;QAChF,MAAM,WAAW,GAAG,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7C,MAAM,YAAY,GAAG,aAAa,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,MAAM,WAAW,GACf,YAAY,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE9F,MAAM,SAAS,GAAG,CAAC,cAAuB,EAAU,EAAE,CACpD,IAAI,CAAC,SAAS,CAAC;YACb,OAAO;YACP,IAAI;YACJ,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;YAC1B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAClC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YACrC,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YACrD,WAAW;YACX,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,CAAC;QAEL,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE;YAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACH,MAAM,UAAU,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;gBAClF,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;oBACjC,UAAU,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;gBACzE,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,4BAA4B,EACvE;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,UAAU;oBACnB,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;oBACzC,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CACF,CAAC;gBACF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,IAAI,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;oBACjD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAoB,CAAC;oBAC1E,MAAM,IAAI,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAA8B,CAAC;oBACpF,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,+DAA+D;oBAC/D,sDAAsD;oBACtD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,OAAO,CAAC,IAAI,CACV,uDAAuD;4BACvD,4CAA4C,CAC7C,CAAC;wBACF,gEAAgE;wBAChE,kEAAkE;wBAClE,MAAM,EAAE,GAAG,MAAM,KAAK,CACpB,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,4BAA4B,EACvE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAChE,CAAC;wBACF,IAAI,EAAE,CAAC,EAAE;4BAAE,OAAO,IAAI,CAAC;wBACvB,IAAI,EAAE,CAAC,MAAM,KAAK,GAAG;4BAAE,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC3F,MAAM,IAAI,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;oBACD,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;gBACD,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnD,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,SAAS,EAAE;gBAChC,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB;gBAC3C,MAAM,EAAE,gBAAgB,CAAC,uBAAuB;gBAChD,UAAU,EAAE,sBAAsB;gBAClC,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;oBACxB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBACV,OAAO,CAAC,IAAI,CACV,oCAAoC,CAAC,IAAI,gBAAgB,CAAC,gBAAgB,GAAG;4BAC7E,UAAU,OAAO,SAAS,MAAM,CAAC,UAAU,cAAc,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,CACzF,CAAC;oBACJ,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YACH,+BAA+B;YAC/B,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvC,+DAA+D;YAC/D,oEAAoE;YACpE,0CAA0C;YAC1C,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wEAAwE;YACxE,IAAI,GAAG,YAAY,uBAAuB,EAAE,CAAC;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACrC,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,uEAAuE;YACvE,oEAAoE;YACpE,uEAAuE;YACvE,yEAAyE;YACzE,4CAA4C;YAC5C,IAAI,GAAG,YAAY,sBAAsB;gBAAE,OAAO,QAAQ,CAAC;YAC3D,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,wBAAwB;QAC9B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAC3B,OAAO,EACP,0BAA0B,CAC3B,CAAC;YACF,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7C,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,wFAAwF;gBACxF,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAC9C,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;IACtC,CAAC;IAED;;;;;;;;;OASG;IACK,iBAAiB,CAAC,GAA4B,EAAE,cAAsB;QAC5E,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACrB,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClC,qEAAqE;YACrE,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1F,wDAAwD;YACxD,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YAC5E,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,qEAAqE;QACrE,qEAAqE;QACrE,kEAAkE;QAClE,oBAAoB;QACpB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC5C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,GAAG,eAAe,EAAE,CAAC;YAC/D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzC,MAAM,SAAS,GACb,wCAAwC,IAAI,CAAC,aAAa,UAAU;gBACpE,yBAAyB,IAAI,CAAC,eAAe,sBAAsB;gBACnE,kEAAkE;gBAClE,4DAA4D,CAAC;YAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACrD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,8DAA8D;gBAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC1D,OAAO,CAAC,IAAI,CACV,yDAAyD,YAAY,GAAG;wBACxE,gBAAgB,cAAc,KAAK;wBACnC,GAAG,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAC1D,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,gEAAgE;gBAChE,gEAAgE;gBAChE,+CAA+C;gBAC/C,OAAO,CAAC,IAAI,CACV,4FAA4F;oBAC5F,gBAAgB,cAAc,aAAa,IAAI,CAAC,aAAa,eAAe,IAAI,CAAC,eAAe,GAAG,CACpG,CAAC;gBACF,gEAAgE;gBAChE,gEAAgE;gBAChE,+CAA+C;YACjD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,cAAc,EAAE;YAClD,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACK,0BAA0B;QAChC,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,oEAAoE;QACpE,6DAA6D;QAC7D,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,0BAA0B,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,oEAAoE;QACpE,oEAAoE;QACpE,oCAAoC;QACpC,0BAA0B,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CACT,uDAAuD,MAAM,CAAC,WAAW,IAAI;YAC7E,IAAI,MAAM,CAAC,eAAe,OAAO,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,GAAG,CAC3E,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;YACpD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;IACL,CAAC;IAED,uCAAuC;IAC/B,0BAA0B,GAAG,CAAC,CAAC;IAC/B,oBAAoB,GAAG,CAAC,CAAC;IACzB,oBAAoB,GAAkB,IAAI,CAAC;IAEnD;;;;;;;;;OASG;IACK,iBAAiB,GAAG,KAAK,CAAC;IAClC;;+CAE2C;IACnC,sBAAsB,GAAG,CAAC,CAAC;IAE3B,YAAY,GAA+B,IAAI,CAAC;IAChD,aAAa,GAAiC,IAAI,CAAC;IACnD,QAAQ,GAAkC,IAAI,CAAC;IAEvD,6DAA6D;IAErD,KAAK,CAAC,qBAAqB,CAAC,IAAY,EAAE,OAAe,EAAE,UAAmB;QACpF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEtC,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACpC,IAAI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1F,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,UAAU,IAAI,uBAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9F,CAAC;iBAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBAChC,UAAU,IAAI,mBAAmB,CAAC;YACpC,CAAC;iBAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC9B,UAAU,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC;YAChF,CAAC;YACD,MAAM,KAAK,GAAG;gBACZ,kBAAkB;gBAClB,aAAa,UAAU,EAAE;gBACzB,uBAAuB,MAAM,CAAC,eAAe,EAAE;gBAC/C,qBAAqB,MAAM,CAAC,aAAa,EAAE;gBAC3C,sBAAsB,SAAS,EAAE;gBACjC,mBAAmB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;aAC7H,CAAC;YACF,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;gBACxE,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,KAAK,mBAAmB,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,+CAA+C;YAChF,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QAED,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,6CAA6C;YAC9E,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,6CAA6C,CAAC,CAAC;YAC/E,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC;YACrH,OAAO;QACT,CAAC;QAED,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1F,CAAC;YACF,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,QAAQ,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9F,OAAO;QACT,CAAC;QAED,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YAC/B,6DAA6D;YAC7D,oFAAoF;YACpF,yFAAyF;YACzF,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG;gBACZ,oBAAoB;gBACpB,EAAE;gBACF,SAAS;gBACT,wDAAwD;gBACxD,0CAA0C;gBAC1C,EAAE;gBACF,cAAc;gBACd,6DAA6D;gBAC7D,EAAE;gBACF,WAAW;gBACX,0CAA0C;gBAC1C,uDAAuD;gBACvD,EAAE;gBACF,mCAAmC;gBACnC,EAAE;gBACF,iFAAiF;gBACjF,6EAA6E;aAC9E,CAAC;YACF,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;IAClF,CAAC;IAED,6DAA6D;IAErD,KAAK,CAAC,WAAW;QACvB,sEAAsE;QACtE,0EAA0E;QAC1E,oEAAoE;QACpE,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,OAAO,CAAC,GAAG,CAAC,wBAAwB,QAAQ,CAAC,MAAM,kBAAkB,CAAC,CAAC;QACvE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEnD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,yEAAyE;YACzE,mEAAmE;YACnE,sEAAsE;YACtE,kEAAkE;YAClE,wDAAwD;YACxD,IAAI,IAAI,CAAC,iBAAiB;gBAAE,MAAM;YAElC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;gBAC1E,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;gBACxD,IAAI,EAAE;oBACJ,EAAE,EAAE,GAAG,CAAC,UAAU;oBAClB,UAAU,EAAE,GAAG,CAAC,aAAa;oBAC7B,QAAQ,EAAE,GAAG,CAAC,YAAY;iBAC3B;gBACD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBAC9C,iBAAiB,EAAE,GAAG,CAAC,OAAO;gBAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;aAC3D,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE;gBACrC,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,CAAC;gBACvC,iBAAiB,EAAE,GAAG,CAAC,uBAAuB,IAAI,CAAC;aACpD,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1B,QAAQ,EAAE,CAAC;gBACX,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClF,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC;gBACV,+DAA+D;gBAC/D,oEAAoE;gBACpE,IAAI,CAAC;oBACH,MAAM,oBAAoB,CAAC;wBACzB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;wBACrC,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,SAAS,EAAE,GAAG,CAAC,EAAE;wBACjB,UAAU,EAAE,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;wBAC3E,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,UAAU,EAAE,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,iBAAiB;wBAChE,MAAM,EAAE,QAAQ,CAAC,UAAU,IAAI,gCAAgC;wBAC/D,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;qBAChE,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,sFAAsF;oBACtF,iFAAiF;oBACjF,2BAA2B;oBAC3B,OAAO,CAAC,KAAK,CAAC,6CAA6C,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,+BAA+B,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,UAAU,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,sEAAsE;gBACtE,oEAAoE;gBACpE,sEAAsE;gBACtE,gEAAgE;gBAChE,iEAAiE;gBACjE,qDAAqD;gBACrD,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE;oBACtC,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,uBAAuB,EAAE,QAAQ,CAAC,iBAAiB;iBACpD,CAAC,CAAC;gBACH,MAAM,EAAE,CAAC;gBACT,wEAAwE;gBACxE,qEAAqE;gBACrE,wCAAwC;gBACxC,IAAI,OAAO,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;oBAChE,OAAO,CAAC,GAAG,CAAC,iDAAiD,SAAS,2BAA2B,CAAC,CAAC;oBACnG,MAAM;gBACR,CAAC;YACH,CAAC;YAED,gEAAgE;YAChE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,+BAA+B,QAAQ,eAAe,MAAM,eAAe,OAAO,UAAU,CAAC,CAAC;QAC5G,CAAC;QAED,6DAA6D;QAC7D,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,KAAK,KAAK,CAAC;wBACT,CAAC,CAAC,8DAA8D;wBAChE,CAAC,CAAC,wBAAwB,KAAK,6BAA6B,CAC/D,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAE7D,gFAAgF;IACxE,qBAAqB,GAAG,KAAK,CAAC;IACtC,4DAA4D;IACpD,yBAAyB,GAAG,CAAC,CAAC;IACtC,0FAA0F;IAClF,sBAAsB,GAAG,CAAC,CAAC;IACnC,mGAAmG;IAC3F,MAAM,CAAU,uBAAuB,GAAG,EAAE,GAAG,MAAM,CAAC;IAE9D,4EAA4E;IACpE,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,0FAA0F;IAClF,MAAM,CAAU,uBAAuB,GAAG,CAAC,GAAG,MAAM,CAAC;IAC7D,6EAA6E;IACrE,MAAM,CAAU,4BAA4B,GAAG,GAAG,CAAC;IAE3D;;;;OAIG;IACK,kBAAkB;QACxB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC;YAClG,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,KAAK,CAAC;gBACjE,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,IAAI,CAAC,CAAC;gBACrE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;YACzE,MAAM,OAAO,GAAG,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;YACtD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;gBACjD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;gBACzD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;gBACnD,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC,CAAC,CAAC,CAAC;YACJ,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,OAAe;QACxC,sEAAsE;QACtE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,CAAC;YACvE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,gBAAgB,CAAC,uBAAuB,EAAE,CAAC;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAc;QAC3C,0DAA0D;QAC1D,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,gEAAgE,IAAI,CAAC,yBAAyB,0BAA0B,CAAC,CAAC;YACtI,OAAO;QACT,CAAC;QAED,+EAA+E;QAC/E,yFAAyF;QACzF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,sBAAsB,GAAG,CAAC;YAC/B,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,gBAAgB,CAAC,uBAAuB,EAAE,CAAC;YACnF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,uBAAuB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YAC3H,OAAO,CAAC,GAAG,CAAC,wEAAwE,YAAY,gBAAgB,CAAC,CAAC;YAClH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,qBAAqB,MAAM,MAAM;YAC/C,6EAA6E,CAAC;QAEhF,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,aAAqB,EAAE,eAAuB;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAE7C,MAAM,YAAY,GAAG,eAAe;YAClC,CAAC,CAAC,mCAAmC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU;YAC1E,CAAC,CAAC,EAAE,CAAC;QAEP,iFAAiF;QACjF,MAAM,YAAY,GAChB,2DAA2D;YAC3D,sCAAsC,QAAQ,+CAA+C;YAC7F,cAAc;YACd,aAAa,QAAQ,2BAA2B;YAChD,aAAa,QAAQ,yBAAyB,CAAC;QAEjD,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,gCAAgC;YAChC,iBAAiB,aAAa,2BAA2B;YACzD,2DAA2D;YAC3D,YAAY;YACZ,6EAA6E;YAC7E,YAAY;YACZ,uEAAuE;YACvE,8CAA8C,CAC/C,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,qBAAqB,CAAC,IAA0D;QAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,sBAAsB,IAAI,CAAC,YAAY,YAAY;YACnD,qCAAqC,IAAI,CAAC,YAAY,mCAAmC;YACzF,GAAG,IAAI,CAAC,kBAAkB,4EAA4E;YACtG,oBAAoB;YACpB,8EAA8E;YAC9E,iFAAiF;YACjF,4FAA4F,CAC7F,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,8DAA8D;IAE9D;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,OAAe;QAC/C,4DAA4D;QAC5D,MAAM,eAAe,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACzD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,4CAA4C,eAAe,MAAM;gBACjE,6BAA6B;gBAC7B,oBAAoB,eAAe,EAAE,CACtC,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,mEAAmE,CAAC,CAAC;QAErG,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvE,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;YACvC,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;YAExC,4EAA4E;YAC5E,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;YAEtD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;gBACxC,CAAC,CAAC,yEAAyE;gBAC3E,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,+BAA+B,WAAW,MAAM;gBAChD,6BAA6B;gBAC7B,oBAAoB,WAAW,MAAM;gBACrC,+DAA+D;gBAC/D,mDAAmD;gBACnD,sEAAsE;gBACtE,oDAAoD;gBACpD,UAAU,CACX,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,uCAAuC,GAAG,MAAM;gBAChD,8BAA8B;gBAC9B,QAAQ,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI;gBACzC,oCAAoC,QAAQ,yCAAyC,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,OAAe;QACxC,IAAI,SAAS,GAAG,OAAO,CAAC;QAExB,0BAA0B;QAC1B,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAErD,gCAAgC;QAChC,MAAM,cAAc,GAAG;YACrB,sBAAsB;YACtB,mFAAmF;YACnF,sCAAsC;YACtC,sDAAsD;YACtD,iBAAiB;YACjB,4BAA4B;YAC5B,aAAa;YACb,gEAAgE;YAChE,+FAA+F;YAC/F,qCAAqC;SACtC,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC;QAED,yBAAyB;QACzB,SAAS,GAAG,SAAS,CAAC,OAAO,CAC3B,iDAAiD,EACjD,kBAAkB,CACnB,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAE7D,0DAA0D;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAC;QAE1F,MAAM,QAAQ,GAAG;YACf,sBAAsB;YACtB,cAAc,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;YACxC,EAAE;YACF,sBAAsB;YACtB,qBAAqB,MAAM,CAAC,aAAa,EAAE;YAC3C,uBAAuB,MAAM,CAAC,eAAe,EAAE;YAC/C,qBAAqB,MAAM,CAAC,aAAa,EAAE;YAC3C,mBAAmB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;SAC/F,CAAC;QAEF,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,mCAAmC,EACnC,EAAE,EACF,6EAA6E,EAC7E,mEAAmE,EACnE,8DAA8D,EAC9D,EAAE,EACF,KAAK,EACL,cAAc,EACd,KAAK,EACL,EAAE,EACF,4BAA4B,CAC7B,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACxD,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,sCAAsC,EACtC,EAAE,EACF,wDAAwD,EACxD,EAAE,EACF,KAAK,EACL,eAAe,EACf,KAAK,EACL,EAAE,EACF,4BAA4B,CAC7B,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACxD,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,sCAAsC,EACtC,EAAE,EACF,wDAAwD,EACxD,EAAE,EACF,KAAK,EACL,eAAe,EACf,KAAK,EACL,EAAE,EACF,4BAA4B,CAC7B,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,gEAAgE,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACzG,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,qBAAqB,EACrB,SAAS,QAAQ,EAAE,EACnB,WAAW,OAAO,EAAE,CACrB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAE9B,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,kBAAkB;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,GAAG,WAAW,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAE7C,kEAAkE;QAClE,oEAAoE;QACpE,8CAA8C;QAC9C,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5E,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,uEAAuE;gBACvE,6EAA6E;gBAC7E,wDAAwD,CACzD,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEjD,iEAAiE;QACjE,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE7D,mCAAmC;QACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAExD,gFAAgF;QAChF,MAAM,gBAAgB,GAAG;YACvB,oEAAoE;YACpE,EAAE;YACF,0BAA0B,WAAW,yCAAyC;YAC9E,0EAA0E;YAC1E,qEAAqE;YACrE,+DAA+D;YAC/D,EAAE;YACF,WAAW;YACX,0CAA0C,WAAW,EAAE;YACvD,0DAA0D;YAC1D,wDAAwD;YACxD,iDAAiD;YACjD,+CAA+C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,EAAE;YAClG,mEAAmE;gBACnE,qFAAqF;YACrF,+BAA+B,aAAa,EAAE;YAC9C,yDAAyD;SAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAExD,4BAA4B;QAC5B,MAAM,UAAU,GAAI,IAAI,CAAC,aAAoD,CAAC,UAAoB,IAAI,QAAQ,CAAC;QAC/G,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEpE,mDAAmD;QACnD,MAAM,QAAQ,GAAG,eAAe;YAC9B,CAAC,CAAC,+CAA+C;YACjD,CAAC,CAAC,gCAAgC,CAAC;QAErC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;QAC1G,CAAC;QAED,iEAAiE;QACjE,MAAM,QAAQ,GAAG,QAAQ,UAAU,OAAO,UAAU,IAAI,QAAQ,cAAc,CAAC;QAE/E,MAAM,QAAQ,GAAG;YACf,aAAa,EAAE,IAAI;YACnB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU;YACnC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI;YACvB,8DAA8D;YAC9D,mEAAmE;YACnE,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,oBAAoB;YAC1B,SAAS,EAAE,IAAI,EAAE,QAAQ;SAC1B,CAAC;QAEF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC1D,IAAI,GAAG;oBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC,CAAC;;oBACtE,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAErD,oCAAoC;QACpC,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1C,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;QAEhB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAgB,EAAE,KAAa;QACpD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,EAAE,CAAC;YAExC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAE/B,+DAA+D;YAC/D,IAAI,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;YAED,mDAAmD;YACnD,4DAA4D;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACtC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;YAC7D,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAEjB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,yBAAyB;QAC/B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,SAAS,CAAC,qDAAqD,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,WAAW,UAAU,CAAC,CAAC,CAAC;YACxF,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,UAAkB;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,UAAU,cAAc,EAAE,IAAI,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,WAAmB,EAAE,MAAc;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW;YACX,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,aAAa;SACzD,CAAC;QACF,IAAI,CAAC;YACH,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,WAAmB;QAC3C,IAAI,CAAC;YACH,SAAS,CAAC,wBAAwB,WAAW,cAAc,CAAC,CAAC;YAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC9B,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACxC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,EACxC,qBAAqB,WAAW,mDAAmD;gBACnF,wDAAwD,CACzD,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;IAED,+DAA+D;IAE/D;;OAEG;IACK,oBAAoB;QAC1B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,aAAa,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;YACvF,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,UAAU,IAAI,CAAC,aAAa,CAAC,WAAW,UAAU,CAAC;YACvE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACvF,OAAO,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;OASG;IACH;;;;;;OAMG;IACK,oBAAoB;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAC1F,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,OAAO,CAAC,2BAA2B;YAErE,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAEnD,kEAAkE;YAClE,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpF,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;gBACrF,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;gBAE/E,4EAA4E;gBAC5E,MAAM,QAAQ,GAAG,GAAG;qBACjB,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAO,yBAAyB;qBAC9D,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAW,yBAAyB;qBAC/D,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAO,yBAAyB;gBAElE,IAAI,CAAC;oBACH,8CAA8C;oBAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACrB,6BAA6B;oBAC7B,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,YAAY,wBAAwB,CAAC,CAAC;oBACvE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;oBACzC,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;gBACnG,CAAC;gBAAC,MAAM,CAAC;oBACP,oEAAoE;oBACpE,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;oBACrF,OAAO,CAAC,KAAK,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO;YACT,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,oDAAoD,GAAG,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO;QAE1C,MAAM,KAAK,GAAG,aAAa,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;QAEvF,kEAAkE;QAClE,yEAAyE;QACzE,4BAA4B;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACzE,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,yDAAyD,GAAG,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,uEAAuE;QACvE,kEAAkE;QAClE,qEAAqE;QACrE,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACnE,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,4DAA4D,GAAG,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAEpD,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,oFAAoF;YACpF,mFAAmF;YACnF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAChF,iBAAiB,GAAG,IAAI,CAAC;gBACzB,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBACzC,CAAC,CAAC,mEAAmE;oBACrE,CAAC,CAAC,gCAAgC,CAAC;YACvC,CAAC;YAED,6EAA6E;YAC7E,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAChE,iBAAiB,GAAG,IAAI,CAAC;gBACzB,MAAM,GAAG,mFAAmF,CAAC;YAC/F,CAAC;YAED,4DAA4D;YAC5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAC5E,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;wBAClC,iBAAiB,GAAG,IAAI,CAAC;wBACzB,MAAM,GAAG,+BAA+B,aAAa,EAAE,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;YAED,wEAAwE;YACxE,sEAAsE;YACtE,0EAA0E;YAC1E,gEAAgE;YAChE,oEAAoE;YACpE,gEAAgE;YAChE,mEAAmE;YACnE,2DAA2D;YAC3D,qEAAqE;YACrE,wEAAwE;YACxE,+CAA+C;YAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACrF,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBACrC,iBAAiB,GAAG,IAAI,CAAC;wBACzB,MAAM,GAAG,2DAA2D,gBAAgB,EAAE,CAAC;oBACzF,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,iBAAiB;gBAAE,OAAO;YAE/B,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;YAErD,+FAA+F;YAC/F,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACxG,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,qDAAqD,GAAG,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QAE/C,IAAI,UAAU,EAAE,CAAC;YACf,iFAAiF;YACjF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;oBACnC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAC3B,iBAAiB,EAAE,UAAU;oBAC7B,MAAM,EAAE,QAAQ;iBACjB,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;oBACvE,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,2BAA2B,CAAC,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACN,0DAA0D;oBAC1D,OAAO,CAAC,IAAI,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;oBAClE,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBACpD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC3B,IAAI,EAAE,cAAc;gBACpB,UAAU,EAAE,OAAO,EAAE,gCAAgC;aACtD,CAAkC,CAAC;YAEpC,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC;YACtC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAE7F,oCAAoC;YACpC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAC5B,uFAAuF,CACxF,CAAC;YAEF,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,IAAI,CAAC,wLAAwL,CAAC,CAAC;gBACvM,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,+CAA+C,GAAG,EAAE,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,OAAe;QAC5C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YACtF,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CACjC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAC/C,CAAC;oBACF,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;wBAClB,KAAK,CAAC,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC;wBACvC,MAAM,OAAO,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;wBACnD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC3D,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,6DAA6D;IAErD,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAY;QACrD,MAAM,MAAM,GAA4B;YACtC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC3B,IAAI;SACL,CAAC;QACF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACrC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;YACpC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC9C,MAAM,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC;YAC7B,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;SAC/C,CAAC,CAAC;QACH,OAAQ,MAA2B,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB;QACvB,MAAM,IAAI,GAAI,IAAI,CAAC,aAAgE;aAChF,kBAAkB,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAA+B,EAAE,UAAU,GAAG,CAAC;QACnF,0EAA0E;QAC1E,6EAA6E;QAC7E,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,+BAA+B,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC1B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC;gBAC/C,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,gEAAgE;YAChE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,yCAAyC,UAAU,UAAU,CAAC,CAAC;gBACjF,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA+C,CAAC;oBACrF,MAAM,UAAU,GAAG,SAAS,EAAE,UAAU,EAAE,WAAW,IAAI,CAAC,CAAC;oBAC3D,OAAO,CAAC,IAAI,CAAC,8BAA8B,MAAM,aAAa,UAAU,YAAY,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC5G,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;oBACrE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,IAAI,QAAQ,YAAY,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;wBAAE,MAAM,QAAQ,CAAC;oBACpF,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IACE,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACvB,MAAM,KAAK,aAAa;gBACxB,UAAU,CAAC,SAAS;gBACpB,CAAC,UAAU,CAAC,YAAY,EACxB,CAAC;gBACD,8BAA8B,EAAE,CAAC;gBACjC,MAAM,WAAW,GAA4B,EAAE,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC9E,OAAO,WAAW,CAAC,UAAU,CAAC;gBAC7B,WAA2C,CAAC,aAAa,GAAG,IAAI,CAAC;gBAClE,IAAI,OAAO,WAAW,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACpD,WAAW,CAAC,eAAe,GAAG,GAAG,WAAW,CAAC,eAAe,iBAAiB,CAAC;gBAChF,CAAC;gBACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAsC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,6DAA6D;IAErD,UAAU;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;YACnD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBACjF,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAChC,CAAC;iBAAM,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxE,OAAO,CAAC,IAAI,CAAC,kDAAkD,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACnH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,2DAA2D,GAAG,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;YACxD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC/E,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,0EAA0E;YAC1E,yEAAyE;YACzE,OAAO,CAAC,IAAI,CAAC,+CAA+C,IAAI,CAAC,YAAY,MAAM,GAAG,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* replayPolicy — the pure decision for what to do with a queued message after
|
|
3
|
+
* one forward attempt during lifeline queue replay.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists (2026-06-06 incident, topic 21487 "Initiatives and maturation
|
|
6
|
+
* check-ins"): a user's substantive message was queued while the server was
|
|
7
|
+
* CPU-starved (up enough to pass health, too slow to accept the forward). The
|
|
8
|
+
* old policy used a single counter and incremented it on EVERY failure while
|
|
9
|
+
* `supervisor.healthy` was true — so a slow-but-up server burned all 3 attempts
|
|
10
|
+
* in ~90s and the real message was DROPPED. The user then sent a short nudge,
|
|
11
|
+
* a fresh session spawned with no context, and it confabulated an unrelated
|
|
12
|
+
* status report — the "incoherent reply to a one-message topic" symptom.
|
|
13
|
+
*
|
|
14
|
+
* The fix: distinguish WHY a forward failed.
|
|
15
|
+
* - 'poison' → the server actively rejected THIS message (HTTP 400
|
|
16
|
+
* bad-request). Message-specific. This — and only this — is
|
|
17
|
+
* what the drop budget exists for.
|
|
18
|
+
* - 'transient' → timeout / 5xx / 503-boot / network refusal / server down.
|
|
19
|
+
* A capacity/availability failure that says NOTHING about the
|
|
20
|
+
* message. Must NOT burn the poison budget (the false-drop bug).
|
|
21
|
+
* - 'skew' → version skew (HTTP 426). Handled out-of-band by a coordinated
|
|
22
|
+
* restart; re-queue without burning anything.
|
|
23
|
+
* - 'ok' → delivered.
|
|
24
|
+
*
|
|
25
|
+
* A generous transient backstop still bounds unbounded queue growth against a
|
|
26
|
+
* PERMANENT outage (a server that is unreachable forever), but it is set far
|
|
27
|
+
* above any normal restart/starvation window so it never false-drops a real
|
|
28
|
+
* message during a transient episode.
|
|
29
|
+
*/
|
|
30
|
+
/** Classification of a single forward attempt's result. */
|
|
31
|
+
export type ForwardOutcome = 'ok' | 'poison' | 'transient' | 'skew';
|
|
32
|
+
/** Replay strike counters carried on a queued message. */
|
|
33
|
+
export interface ReplayBudget {
|
|
34
|
+
/** Strikes from genuine HTTP-400 rejections (message-specific / poison). */
|
|
35
|
+
poisonFailures: number;
|
|
36
|
+
/** Strikes from transient capacity/availability failures. */
|
|
37
|
+
transientFailures: number;
|
|
38
|
+
}
|
|
39
|
+
/** What replay should do with the message after this attempt. */
|
|
40
|
+
export interface ReplayDecision {
|
|
41
|
+
action: 'delivered' | 'requeue' | 'drop';
|
|
42
|
+
/** Counters to persist when the action is 'requeue'. */
|
|
43
|
+
poisonFailures: number;
|
|
44
|
+
transientFailures: number;
|
|
45
|
+
/** Honest, human-readable reason when the action is 'drop'. */
|
|
46
|
+
dropReason?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Max times the SERVER may actively reject a specific message (HTTP 400) before
|
|
50
|
+
* we give up on it. Small — a genuinely malformed forward won't get better.
|
|
51
|
+
*/
|
|
52
|
+
export declare const MAX_POISON_REPLAY_FAILURES = 3;
|
|
53
|
+
/**
|
|
54
|
+
* Max transient (capacity/availability) failures before we stop re-queuing a
|
|
55
|
+
* message against a PERMANENTLY unreachable server. Deliberately generous: a
|
|
56
|
+
* normal restart or CPU-starvation episode accrues at most a handful of strikes
|
|
57
|
+
* (replay ticks are seconds-to-minutes apart), so this never trips during a
|
|
58
|
+
* real transient outage — it only bounds the pathological forever-down case.
|
|
59
|
+
*/
|
|
60
|
+
export declare const MAX_TRANSIENT_REPLAY_FAILURES = 100;
|
|
61
|
+
/**
|
|
62
|
+
* Decide the fate of a queued message after one forward attempt. Pure — no I/O,
|
|
63
|
+
* no clock, no instance state. Both sides of every boundary are unit-tested.
|
|
64
|
+
*/
|
|
65
|
+
export declare function decideReplay(outcome: ForwardOutcome, budget: ReplayBudget): ReplayDecision;
|
|
66
|
+
//# sourceMappingURL=replayPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replayPolicy.d.ts","sourceRoot":"","sources":["../../src/lifeline/replayPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;AAEpE,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;IACzC,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,GAAG,cAAc,CA0C1F"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* replayPolicy — the pure decision for what to do with a queued message after
|
|
3
|
+
* one forward attempt during lifeline queue replay.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists (2026-06-06 incident, topic 21487 "Initiatives and maturation
|
|
6
|
+
* check-ins"): a user's substantive message was queued while the server was
|
|
7
|
+
* CPU-starved (up enough to pass health, too slow to accept the forward). The
|
|
8
|
+
* old policy used a single counter and incremented it on EVERY failure while
|
|
9
|
+
* `supervisor.healthy` was true — so a slow-but-up server burned all 3 attempts
|
|
10
|
+
* in ~90s and the real message was DROPPED. The user then sent a short nudge,
|
|
11
|
+
* a fresh session spawned with no context, and it confabulated an unrelated
|
|
12
|
+
* status report — the "incoherent reply to a one-message topic" symptom.
|
|
13
|
+
*
|
|
14
|
+
* The fix: distinguish WHY a forward failed.
|
|
15
|
+
* - 'poison' → the server actively rejected THIS message (HTTP 400
|
|
16
|
+
* bad-request). Message-specific. This — and only this — is
|
|
17
|
+
* what the drop budget exists for.
|
|
18
|
+
* - 'transient' → timeout / 5xx / 503-boot / network refusal / server down.
|
|
19
|
+
* A capacity/availability failure that says NOTHING about the
|
|
20
|
+
* message. Must NOT burn the poison budget (the false-drop bug).
|
|
21
|
+
* - 'skew' → version skew (HTTP 426). Handled out-of-band by a coordinated
|
|
22
|
+
* restart; re-queue without burning anything.
|
|
23
|
+
* - 'ok' → delivered.
|
|
24
|
+
*
|
|
25
|
+
* A generous transient backstop still bounds unbounded queue growth against a
|
|
26
|
+
* PERMANENT outage (a server that is unreachable forever), but it is set far
|
|
27
|
+
* above any normal restart/starvation window so it never false-drops a real
|
|
28
|
+
* message during a transient episode.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Max times the SERVER may actively reject a specific message (HTTP 400) before
|
|
32
|
+
* we give up on it. Small — a genuinely malformed forward won't get better.
|
|
33
|
+
*/
|
|
34
|
+
export const MAX_POISON_REPLAY_FAILURES = 3;
|
|
35
|
+
/**
|
|
36
|
+
* Max transient (capacity/availability) failures before we stop re-queuing a
|
|
37
|
+
* message against a PERMANENTLY unreachable server. Deliberately generous: a
|
|
38
|
+
* normal restart or CPU-starvation episode accrues at most a handful of strikes
|
|
39
|
+
* (replay ticks are seconds-to-minutes apart), so this never trips during a
|
|
40
|
+
* real transient outage — it only bounds the pathological forever-down case.
|
|
41
|
+
*/
|
|
42
|
+
export const MAX_TRANSIENT_REPLAY_FAILURES = 100;
|
|
43
|
+
/**
|
|
44
|
+
* Decide the fate of a queued message after one forward attempt. Pure — no I/O,
|
|
45
|
+
* no clock, no instance state. Both sides of every boundary are unit-tested.
|
|
46
|
+
*/
|
|
47
|
+
export function decideReplay(outcome, budget) {
|
|
48
|
+
const poison = budget.poisonFailures ?? 0;
|
|
49
|
+
const transient = budget.transientFailures ?? 0;
|
|
50
|
+
switch (outcome) {
|
|
51
|
+
case 'ok':
|
|
52
|
+
return { action: 'delivered', poisonFailures: poison, transientFailures: transient };
|
|
53
|
+
case 'skew':
|
|
54
|
+
// Version skew is resolved by a coordinated restart, not by dropping the
|
|
55
|
+
// message. Re-queue without burning any budget (mirrors the in-flight
|
|
56
|
+
// versionSkewActive guard in replayQueue).
|
|
57
|
+
return { action: 'requeue', poisonFailures: poison, transientFailures: transient };
|
|
58
|
+
case 'poison': {
|
|
59
|
+
const next = poison + 1;
|
|
60
|
+
if (next >= MAX_POISON_REPLAY_FAILURES) {
|
|
61
|
+
return {
|
|
62
|
+
action: 'drop',
|
|
63
|
+
poisonFailures: next,
|
|
64
|
+
transientFailures: transient,
|
|
65
|
+
dropReason: `Server rejected the message ${next} times (bad request) — it cannot be delivered as-is`,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return { action: 'requeue', poisonFailures: next, transientFailures: transient };
|
|
69
|
+
}
|
|
70
|
+
case 'transient': {
|
|
71
|
+
const next = transient + 1;
|
|
72
|
+
if (next >= MAX_TRANSIENT_REPLAY_FAILURES) {
|
|
73
|
+
return {
|
|
74
|
+
action: 'drop',
|
|
75
|
+
poisonFailures: poison,
|
|
76
|
+
transientFailures: next,
|
|
77
|
+
dropReason: `Server was unreachable across ${next} delivery attempts`,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// The crucial fix: a transient failure NEVER burns the poison budget, so a
|
|
81
|
+
// slow/overloaded/restarting server can no longer drop a real message.
|
|
82
|
+
return { action: 'requeue', poisonFailures: poison, transientFailures: next };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=replayPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replayPolicy.js","sourceRoot":"","sources":["../../src/lifeline/replayPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAuBH;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAuB,EAAE,MAAoB;IACxE,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC;IAEhD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;QAEvF,KAAK,MAAM;YACT,yEAAyE;YACzE,sEAAsE;YACtE,2CAA2C;YAC3C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;QAErF,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;YACxB,IAAI,IAAI,IAAI,0BAA0B,EAAE,CAAC;gBACvC,OAAO;oBACL,MAAM,EAAE,MAAM;oBACd,cAAc,EAAE,IAAI;oBACpB,iBAAiB,EAAE,SAAS;oBAC5B,UAAU,EAAE,+BAA+B,IAAI,qDAAqD;iBACrG,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;QACnF,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;YAC3B,IAAI,IAAI,IAAI,6BAA6B,EAAE,CAAC;gBAC1C,OAAO;oBACL,MAAM,EAAE,MAAM;oBACd,cAAc,EAAE,MAAM;oBACtB,iBAAiB,EAAE,IAAI;oBACvB,UAAU,EAAE,iCAAiC,IAAI,oBAAoB;iBACtE,CAAC;YACJ,CAAC;YACD,2EAA2E;YAC3E,uEAAuE;YACvE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QAChF,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-06-07T06:
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-06-07T06:08:26.779Z",
|
|
5
|
+
"instarVersion": "1.3.396",
|
|
6
6
|
"entryCount": 199,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -1570,7 +1570,7 @@
|
|
|
1570
1570
|
"type": "subsystem",
|
|
1571
1571
|
"domain": "communication",
|
|
1572
1572
|
"sourcePath": "src/lifeline/TelegramLifeline.ts",
|
|
1573
|
-
"contentHash": "
|
|
1573
|
+
"contentHash": "66d80ca0ef55324cf73f3ec2a1a32791d5d104fe995cb2bb0f7135859770b6fa",
|
|
1574
1574
|
"since": "2025-01-01"
|
|
1575
1575
|
},
|
|
1576
1576
|
"subsystem:orphan-process-reaper": {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Fixes two real defects in the Telegram lifeline's queue-replay path that, together, caused the "incoherent reply to a one-message topic" symptom (2026-06-06, topic 21487): a user's substantive message was lost during a server CPU-starvation episode, then a later short nudge spawned a session with no context that confabulated an unrelated status report.
|
|
9
|
+
|
|
10
|
+
1. **False-drop fix.** `replayQueue` previously burned a single failure counter on every forward failure while `supervisor.healthy` was true. Under CPU starvation the server is healthy-but-too-slow, so forwards time out, all 3 attempts burn in ~90s, and the real message is dropped ("Handoff to server failed after 3 replay attempts" — 32 such drops on echo, including live operator messages). A new `forwardToServerClassified` distinguishes a genuine HTTP-400 rejection (`poison` — the only message-specific failure) from transient timeout/5xx/503/network/skew failures. A new pure `decideReplay` policy (`src/lifeline/replayPolicy.ts`) burns the small poison drop-budget only on a 400; transient failures never drop a real message. A generous transient backstop still bounds a permanently-unreachable server.
|
|
11
|
+
|
|
12
|
+
2. **Untracked-loss fix.** `MessageQueue.drain()` emptied the persisted queue up front, holding messages only in memory; a process exit mid-replay (update / version-skew / launchd restart) lost undelivered messages with no record — not even in `dropped-messages.json`. `replayQueue` now consumes durably: it works from `peek()` and removes a message from the persisted queue only after delivery or a deliberate drop, persisting strike counters in place via `updateReplayCounters()`. A mid-replay restart can no longer lose a message.
|
|
13
|
+
|
|
14
|
+
The persisted queue gains an additive, back-compatible `transientReplayFailures` field; no migration is needed.
|
|
15
|
+
|
|
16
|
+
## What to Tell Your User
|
|
17
|
+
|
|
18
|
+
Nothing required — this is a behind-the-scenes reliability fix. If your machine was overloaded, the part of me that catches your messages while the server is busy could, in rare cases, give up on a message and throw it away as if it were broken — or lose one entirely if I restarted at the wrong moment. That is now fixed: a busy or restarting server makes your message wait in line and get retried instead of being discarded, and a message only leaves the line once it is actually delivered. The practical effect is that you should stop seeing replies that have nothing to do with what you asked.
|
|
19
|
+
|
|
20
|
+
## Summary of New Capabilities
|
|
21
|
+
|
|
22
|
+
- The lifeline now classifies a failed message handoff as either a genuinely-bad message (only an HTTP-400 server rejection) or a transient capacity failure (timeout, server-busy, network) — and only a genuinely-bad message can ever exhaust the drop budget.
|
|
23
|
+
- Queued messages are consumed durably: a message leaves the on-disk queue only after it is delivered or deliberately dropped, so a restart mid-replay cannot silently lose it.
|
|
24
|
+
- A generous transient backstop drops a message only after a server has been unreachable across many attempts, always with an honest record and a resend notice — never silently.
|
|
25
|
+
|
|
26
|
+
## Evidence
|
|
27
|
+
|
|
28
|
+
- `tests/unit/lifeline/replayPolicy.test.ts` — both sides of every decision boundary, including the incident regression: many consecutive transient failures never drop a message and never touch the poison budget.
|
|
29
|
+
- `tests/unit/lifeline/MessageQueue-durability.test.ts` — `remove`/`updateReplayCounters` persist correctly; a simulated mid-replay process exit leaves undelivered messages on disk (no untracked loss).
|
|
30
|
+
- `tests/unit/lifeline/version-skew-recovery.test.ts` — updated to pin the new wiring (classified forward + `decideReplay` + durable peek/remove).
|
|
31
|
+
- Local verification: `tsc --noEmit` clean, all 9 lint gates clean, 157/157 lifeline unit tests + the stage-c chaos integration test green, 28 new/updated targeted tests green. Full unit suite deferred to CI (timed out locally under the live CPU-starvation episode this fix addresses).
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Side-Effects Review — Lifeline replay budget classification + durable consume
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `lifeline-replay-budget-classification`
|
|
4
|
+
**Date:** `2026-06-06`
|
|
5
|
+
**Author:** `echo`
|
|
6
|
+
**Second-pass reviewer:** `not required`
|
|
7
|
+
|
|
8
|
+
## Summary of the change
|
|
9
|
+
|
|
10
|
+
The Telegram lifeline's queue-replay path was dropping legitimate user messages during server-overload/restart windows, and could also lose a queued message with no record at all if the process exited mid-replay. Two fixes:
|
|
11
|
+
|
|
12
|
+
1. `forwardToServerClassified()` (new) returns a classification (`ok` | `poison` | `transient` | `skew`) instead of a bare boolean, so replay can tell a message-specific HTTP-400 rejection ("poison") from a transient capacity/availability failure (timeout / 5xx / 503-boot / network refusal / 426 skew). A new pure module `src/lifeline/replayPolicy.ts` (`decideReplay`) burns the small poison drop-budget ONLY on a 400; transient failures never drop a real message (a generous transient backstop bounds a permanently-unreachable server).
|
|
13
|
+
2. `replayQueue()` now consumes the queue durably: it works from `queue.peek()` and removes a message from the persisted queue only after delivery or a deliberate drop (`queue.remove()`), persisting strike counters in place via `queue.updateReplayCounters()`. The old `queue.drain()` emptied the on-disk queue up front, so a mid-replay process exit lost in-memory messages untracked.
|
|
14
|
+
|
|
15
|
+
Files touched: `src/lifeline/replayPolicy.ts` (new), `src/lifeline/MessageQueue.ts` (`remove`, `updateReplayCounters`, `transientReplayFailures` field), `src/lifeline/TelegramLifeline.ts` (`forwardToServerClassified` + rewritten `replayQueue`). Tests: `tests/unit/lifeline/replayPolicy.test.ts`, `tests/unit/lifeline/MessageQueue-durability.test.ts`, updated `tests/unit/lifeline/version-skew-recovery.test.ts`.
|
|
16
|
+
|
|
17
|
+
## Decision-point inventory
|
|
18
|
+
|
|
19
|
+
- `replayQueue drop budget` — **modify** — was a single `replayFailures` counter incremented whenever `supervisor.healthy`; now a classified poison/transient split via `decideReplay`.
|
|
20
|
+
- `forwardToServer result` — **add** — new `forwardToServerClassified` returns a 4-way classification; the boolean `forwardToServer` is now a façade over it (unchanged for its inbound-handler callers).
|
|
21
|
+
- `MessageQueue consume semantics` — **modify** — replay switched from destructive `drain()` to durable `peek()` + `remove()`/`updateReplayCounters()`.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1. Over-block
|
|
26
|
+
|
|
27
|
+
**What legitimate inputs does this change reject that it shouldn't?**
|
|
28
|
+
|
|
29
|
+
This change makes the path strictly MORE accepting, not less — its purpose is to stop wrongly discarding legitimate messages. The only message that can still be dropped on the poison path is one the server itself rejects with HTTP 400 three times, which is the same threshold as before (just now scoped to 400 instead of any failure). No legitimate message is newly rejected.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 2. Under-block
|
|
34
|
+
|
|
35
|
+
**What failure modes does this still miss?**
|
|
36
|
+
|
|
37
|
+
- A message that genuinely crashes the SERVER on forward would surface as a network error / 5xx → classified transient → retried rather than dropped. Mitigation: the generous `MAX_TRANSIENT_REPLAY_FAILURES` backstop eventually drops it (with an honest "server unreachable" record). In practice the forward handler only persists/queues the inbound — it does not execute message-specific logic — so a single user message crashing the forward path is not a realistic vector; the real message-specific signal is the 400, which is still budgeted.
|
|
38
|
+
- A permanently-unreachable server delays delivery up to the transient backstop before dropping. Acceptable: late delivery beats false drop, and the drop is loud (record + resend notice) when it finally happens.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 3. Level-of-abstraction fit
|
|
43
|
+
|
|
44
|
+
`decideReplay` is a pure decision function (no I/O, no clock, no instance state) — the correct layer for an exhaustively-testable policy. It is consumed by `replayQueue` (the orchestrator that owns the queue and the side effects). The classification lives where the forward already knows the HTTP outcome (`forwardToServerClassified`), reusing the existing typed `forwardErrors` (`ForwardBadRequestError` etc.) rather than re-deriving status. No higher-level gate is bypassed; this is internal to the lifeline process.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 4. Signal vs authority compliance
|
|
49
|
+
|
|
50
|
+
**Required reference:** [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)
|
|
51
|
+
|
|
52
|
+
- [x] No — this change has no user-facing block/allow surface. It governs whether an undeliverable queued message is retried or dropped; the "authority" is a deterministic, exhaustively-tested pure function over a typed HTTP-outcome classification, not a brittle content heuristic. It can only make delivery more robust than the prior single-counter policy.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 5. Interactions
|
|
57
|
+
|
|
58
|
+
- **Shadowing:** the `versionSkewActive` top-of-loop guard still precedes the per-message decision (asserted in `version-skew-recovery.test.ts`); a skew episode stops replay and leaves messages on disk, unchanged in spirit.
|
|
59
|
+
- **Double-fire:** `forwardToServer` (boolean façade) and `forwardToServerClassified` share one implementation, so no path forwards twice. Inbound-handler callers (`handleMessage`/photo/doc) are unchanged.
|
|
60
|
+
- **Races:** durable consume is id-based (`remove(id)`, `updateReplayCounters(id)`), so a message enqueued concurrently during replay is untouched and picked up next tick. `MessageQueue` ops are synchronous (no await between read and save).
|
|
61
|
+
- **Feedback loops:** none — replay does not feed its own input.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 6. External surfaces
|
|
66
|
+
|
|
67
|
+
- **Telegram:** the "✓ Server recovered — N delivered" notice now counts only ACTUALLY-delivered messages per topic (previously counted all batch messages for the topic, including failed/dropped). Strictly more accurate; no format change. The dropped-message "please resend" notice is unchanged.
|
|
68
|
+
- **Persistent state:** `lifeline-queue.json` gains an optional `transientReplayFailures` field per message. Additive, back-compatible — old queue files (with only `replayFailures`) load and default the new field to 0. `replayFailures` retains its on-disk name (now the poison counter). No migration needed.
|
|
69
|
+
- **Other agents/users:** none — this is per-agent lifeline behavior.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 7. Rollback cost
|
|
74
|
+
|
|
75
|
+
Pure code change. Revert and ship as the next patch. The added `transientReplayFailures` field is additive and ignored by older code on downgrade (it only reads `replayFailures`). No data migration, no agent-state repair, no user-visible regression during the rollback window.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Conclusion
|
|
80
|
+
|
|
81
|
+
The review surfaced one residual (a server-crashing message classified transient) and confirmed it is covered by the transient backstop and is not a realistic vector given the forward handler's role. The change is monotonically safer for delivery, fully reversible, and back-compatible on disk. Clear to ship. Classified Tier 1 (delivery-path risk floor is 2; declared below floor with this artifact + exhaustive both-sides tests + reversibility as the compensating rigor — recorded as `belowFloor` in the gate audit and disclosed to the operator).
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Second-pass review (if required)
|
|
86
|
+
|
|
87
|
+
**Reviewer:** not required (Tier 1)
|
|
88
|
+
**Independent read of the artifact: not required**
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Evidence pointers
|
|
93
|
+
|
|
94
|
+
- `tests/unit/lifeline/replayPolicy.test.ts` — both sides of every boundary incl. the incident regression (many transient failures never drop, never touch poison).
|
|
95
|
+
- `tests/unit/lifeline/MessageQueue-durability.test.ts` — remove/update persist; mid-replay restart loses nothing.
|
|
96
|
+
- `tests/unit/lifeline/version-skew-recovery.test.ts` — updated wiring assertions (classified forward + decideReplay + durable peek/remove).
|
|
97
|
+
- Local: tsc clean, all 9 lint gates clean, 157/157 lifeline unit tests + chaos integration green, 28 new/updated targeted tests green. Full unit suite deferred to CI (timed out locally under the live CPU-starvation episode this fix addresses).
|