@stella_project/stellalib 1.0.21 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +231 -9
- package/THIRD-PARTY-NOTICES.md +28 -0
- package/dist/Structures/Filters.d.ts +18 -0
- package/dist/Structures/Filters.d.ts.map +1 -1
- package/dist/Structures/Filters.js +24 -0
- package/dist/Structures/Filters.js.map +1 -1
- package/dist/Structures/Manager.d.ts +16 -1
- package/dist/Structures/Manager.d.ts.map +1 -1
- package/dist/Structures/Manager.js +95 -6
- package/dist/Structures/Manager.js.map +1 -1
- package/dist/Structures/Node.d.ts +8 -1
- package/dist/Structures/Node.d.ts.map +1 -1
- package/dist/Structures/Node.js +233 -41
- package/dist/Structures/Node.js.map +1 -1
- package/dist/Structures/Player.d.ts +45 -1
- package/dist/Structures/Player.d.ts.map +1 -1
- package/dist/Structures/Player.js +193 -17
- package/dist/Structures/Player.js.map +1 -1
- package/dist/Structures/Queue.d.ts +9 -0
- package/dist/Structures/Queue.d.ts.map +1 -1
- package/dist/Structures/Queue.js +52 -0
- package/dist/Structures/Queue.js.map +1 -1
- package/dist/Structures/SessionStore.d.ts +8 -3
- package/dist/Structures/SessionStore.d.ts.map +1 -1
- package/dist/Structures/SessionStore.js +33 -3
- package/dist/Structures/SessionStore.js.map +1 -1
- package/dist/Structures/Types.d.ts +84 -0
- package/dist/Structures/Types.d.ts.map +1 -1
- package/dist/Structures/Utils.d.ts +6 -1
- package/dist/Structures/Utils.d.ts.map +1 -1
- package/dist/Structures/Utils.js +14 -0
- package/dist/Structures/Utils.js.map +1 -1
- package/package.json +1 -1
package/dist/Structures/Node.js
CHANGED
|
@@ -228,14 +228,27 @@ class StellaNode {
|
|
|
228
228
|
this.socket.on("error", this.error.bind(this));
|
|
229
229
|
this.socket.on("pong", this.heartbeatAck.bind(this));
|
|
230
230
|
}
|
|
231
|
-
/** Destroys the Node
|
|
231
|
+
/** Destroys the Node. Attempts to move players to other healthy nodes first (auto-failover). */
|
|
232
232
|
destroy() {
|
|
233
|
-
if (!this.connected)
|
|
233
|
+
if (!this.connected && !this.socket)
|
|
234
234
|
return;
|
|
235
235
|
this.stopHeartbeat();
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
236
|
+
// Auto-failover: try to move players to other healthy nodes instead of destroying them
|
|
237
|
+
const affectedPlayers = [...this.manager.players.values()].filter((p) => p.node === this);
|
|
238
|
+
const healthyNodes = [...this.manager.nodes.values()].filter((n) => n !== this && n.connected);
|
|
239
|
+
for (const player of affectedPlayers) {
|
|
240
|
+
if (healthyNodes.length > 0) {
|
|
241
|
+
// Pick the least-loaded healthy node
|
|
242
|
+
const target = healthyNodes.sort((a, b) => a.penalties - b.penalties)[0];
|
|
243
|
+
this.manager.emit("Debug", `[Node:${this.options.identifier}] Failover: moving player ${player.guild} → ${target.options.identifier}`);
|
|
244
|
+
player.moveNode(target.options.identifier).catch(() => {
|
|
245
|
+
// If move fails, destroy the player
|
|
246
|
+
player.destroy();
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
player.destroy();
|
|
251
|
+
}
|
|
239
252
|
}
|
|
240
253
|
this.socket?.close(1000, "destroy");
|
|
241
254
|
this.socket?.removeAllListeners();
|
|
@@ -245,7 +258,7 @@ class StellaNode {
|
|
|
245
258
|
if (this.reconnectTimeout)
|
|
246
259
|
clearTimeout(this.reconnectTimeout);
|
|
247
260
|
this.manager.emit("NodeDestroy", this);
|
|
248
|
-
this.manager.
|
|
261
|
+
this.manager.nodes.delete(this.options.identifier);
|
|
249
262
|
}
|
|
250
263
|
/** Gracefully closes the connection, persisting the session for resume. */
|
|
251
264
|
async gracefulClose() {
|
|
@@ -303,15 +316,23 @@ class StellaNode {
|
|
|
303
316
|
}
|
|
304
317
|
/**
|
|
305
318
|
* Reconnects to the node with exponential backoff + jitter.
|
|
319
|
+
* First attempt uses a fast retry (2s) for quick recovery from transient failures.
|
|
306
320
|
* Jitter prevents thundering herd when multiple nodes reconnect simultaneously.
|
|
307
321
|
*/
|
|
308
322
|
reconnect() {
|
|
309
323
|
const baseDelay = this.options.retryDelay ?? 60000;
|
|
310
324
|
const maxDelay = 120000;
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
325
|
+
// Fast retry for first attempt — most disconnects are transient
|
|
326
|
+
let delay;
|
|
327
|
+
if (this.reconnectAttempts <= 1) {
|
|
328
|
+
delay = 2000 + Math.floor(Math.random() * 1000);
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
const exponentialDelay = Math.min(baseDelay * Math.pow(1.5, this.reconnectAttempts - 1), maxDelay);
|
|
332
|
+
// Add ±25% jitter
|
|
333
|
+
const jitter = exponentialDelay * (0.75 + Math.random() * 0.5);
|
|
334
|
+
delay = Math.floor(jitter);
|
|
335
|
+
}
|
|
315
336
|
this.manager.emit("Debug", `[Node:${this.options.identifier}] Reconnecting in ${delay}ms (attempt ${this.reconnectAttempts}/${this.options.retryAmount ?? 30})`);
|
|
316
337
|
this.reconnectTimeout = setTimeout(() => {
|
|
317
338
|
if (this.reconnectAttempts >= (this.options.retryAmount ?? 30)) {
|
|
@@ -351,6 +372,8 @@ class StellaNode {
|
|
|
351
372
|
// Fatal close codes — don't retry
|
|
352
373
|
if (FATAL_CLOSE_CODES.has(code)) {
|
|
353
374
|
this.manager.emit("NodeError", this, new Error(`[Node:${this.options.identifier}] Fatal close code ${code}: ${reasonStr}. Not reconnecting.`));
|
|
375
|
+
// Even on fatal, try to rescue playing players
|
|
376
|
+
this.attemptSeamlessFailover("fatal_close");
|
|
354
377
|
return;
|
|
355
378
|
}
|
|
356
379
|
// Session invalidated — clear session ID so we get a fresh one
|
|
@@ -364,8 +387,49 @@ class StellaNode {
|
|
|
364
387
|
catch { /* ignore */ }
|
|
365
388
|
}
|
|
366
389
|
}
|
|
367
|
-
|
|
390
|
+
// Seamless failover: immediately move playing players to healthy nodes
|
|
391
|
+
// instead of waiting for this node to reconnect (which may take seconds)
|
|
392
|
+
if (code !== 1000 || reasonStr !== "destroy") {
|
|
393
|
+
this.attemptSeamlessFailover("unexpected_close");
|
|
368
394
|
this.reconnect();
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Attempts to seamlessly move all players from this (dead) node to healthy nodes.
|
|
399
|
+
* Preserves current track position so audio continues without interruption.
|
|
400
|
+
* Players that fail to move are left for the reconnect cycle to recover.
|
|
401
|
+
*/
|
|
402
|
+
attemptSeamlessFailover(reason) {
|
|
403
|
+
const affectedPlayers = [...this.manager.players.values()].filter((p) => p.node === this && (p.playing || p.paused));
|
|
404
|
+
if (!affectedPlayers.length)
|
|
405
|
+
return;
|
|
406
|
+
const healthyNodes = [...this.manager.nodes.values()].filter((n) => n !== this && n.connected);
|
|
407
|
+
if (!healthyNodes.length) {
|
|
408
|
+
this.manager.emit("Debug", `[Failover:${this.options.identifier}] No healthy nodes available — ${affectedPlayers.length} player(s) waiting for reconnect`);
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
// Sort healthy nodes by penalty (best first)
|
|
412
|
+
healthyNodes.sort((a, b) => a.penalties - b.penalties);
|
|
413
|
+
this.manager.emit("Debug", `[Failover:${this.options.identifier}] Seamless failover triggered (${reason}) — moving ${affectedPlayers.length} player(s) to healthy nodes`);
|
|
414
|
+
for (const player of affectedPlayers) {
|
|
415
|
+
// Distribute players across available nodes (round-robin by penalty)
|
|
416
|
+
const targetNode = healthyNodes.reduce((best, n) => {
|
|
417
|
+
const bestLoad = [...this.manager.players.values()].filter((p) => p.node === best).length;
|
|
418
|
+
const nLoad = [...this.manager.players.values()].filter((p) => p.node === n).length;
|
|
419
|
+
return nLoad < bestLoad ? n : best;
|
|
420
|
+
}, healthyNodes[0]);
|
|
421
|
+
const oldNodeId = this.options.identifier;
|
|
422
|
+
const newNodeId = targetNode.options.identifier;
|
|
423
|
+
this.manager.emit("Debug", `[Failover] Moving player ${player.guild} (pos: ${player.position}ms) → ${newNodeId}`);
|
|
424
|
+
player.moveNode(newNodeId)
|
|
425
|
+
.then(() => {
|
|
426
|
+
this.manager.emit("PlayerFailover", player, oldNodeId, newNodeId);
|
|
427
|
+
this.manager.emit("Debug", `[Failover] Player ${player.guild} successfully moved to ${newNodeId} — playback continues`);
|
|
428
|
+
})
|
|
429
|
+
.catch((err) => {
|
|
430
|
+
this.manager.emit("Debug", `[Failover] Failed to move player ${player.guild}: ${err instanceof Error ? err.message : String(err)} — will retry on reconnect`);
|
|
431
|
+
});
|
|
432
|
+
}
|
|
369
433
|
}
|
|
370
434
|
error(error) {
|
|
371
435
|
if (!error)
|
|
@@ -479,6 +543,22 @@ class StellaNode {
|
|
|
479
543
|
player.voiceReady = true;
|
|
480
544
|
player.connected = data.state.connected;
|
|
481
545
|
}
|
|
546
|
+
// Restore persisted player state (autoplay, queue, filters, history)
|
|
547
|
+
const store = this.manager.getPlayerStateStore();
|
|
548
|
+
if (store) {
|
|
549
|
+
try {
|
|
550
|
+
const savedState = await store.getPlayerState(data.guildId);
|
|
551
|
+
if (savedState) {
|
|
552
|
+
player.restoreFromState(savedState);
|
|
553
|
+
this.manager.emit("Debug", `[Node:${this.options.identifier}] Restored persisted state for guild ${data.guildId} (autoplay: ${savedState.isAutoplay})`);
|
|
554
|
+
// Clean up persisted state after successful restore
|
|
555
|
+
await store.deletePlayerState(data.guildId);
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
catch {
|
|
559
|
+
// Ignore restore errors
|
|
560
|
+
}
|
|
561
|
+
}
|
|
482
562
|
player.position = data.state.position;
|
|
483
563
|
player.connected = data.state.connected;
|
|
484
564
|
player.ping = data.state.ping;
|
|
@@ -635,17 +715,23 @@ class StellaNode {
|
|
|
635
715
|
const requester = player.get("Internal_BotUser");
|
|
636
716
|
const historySet = new Set(player.autoplayHistory);
|
|
637
717
|
// ── Update seed pool with the track that just finished ──────────────
|
|
638
|
-
|
|
718
|
+
const newSeedEntry = {
|
|
639
719
|
title: previousTrack.title ?? "",
|
|
640
720
|
author: previousTrack.author ?? "",
|
|
641
721
|
uri: previousTrack.uri ?? "",
|
|
642
722
|
duration: previousTrack.duration ?? 0,
|
|
643
723
|
sourceName: previousTrack.sourceName ?? "",
|
|
644
|
-
}
|
|
724
|
+
};
|
|
725
|
+
// Set anchor on first call — anchors the style to the user's original pick
|
|
726
|
+
if (!player.autoplayAnchor) {
|
|
727
|
+
player.autoplayAnchor = newSeedEntry;
|
|
728
|
+
}
|
|
729
|
+
player.autoplaySeedPool.push(newSeedEntry);
|
|
645
730
|
if (player.autoplaySeedPool.length > 5) {
|
|
646
731
|
player.autoplaySeedPool.shift();
|
|
647
732
|
}
|
|
648
733
|
const seedPool = player.autoplaySeedPool;
|
|
734
|
+
const anchor = player.autoplayAnchor;
|
|
649
735
|
const avgDuration = seedPool.reduce((sum, s) => sum + s.duration, 0) / (seedPool.length || 1);
|
|
650
736
|
// ── Transition scoring engine ───────────────────────────────────────
|
|
651
737
|
const scoreTrack = (candidate) => {
|
|
@@ -658,9 +744,11 @@ class StellaNode {
|
|
|
658
744
|
score += 25;
|
|
659
745
|
else if (durDiff < 120_000)
|
|
660
746
|
score += 10;
|
|
747
|
+
const candAuthor = (candidate.author ?? "").toLowerCase();
|
|
748
|
+
const candTitle = (candidate.title ?? "").toLowerCase();
|
|
749
|
+
const candTitleWords = candTitle.split(/[\s\-_()[\]]+/).filter((w) => w.length > 2);
|
|
661
750
|
// Author match against previous track
|
|
662
751
|
const prevAuthor = (previousTrack.author ?? "").toLowerCase();
|
|
663
|
-
const candAuthor = (candidate.author ?? "").toLowerCase();
|
|
664
752
|
if (prevAuthor && candAuthor) {
|
|
665
753
|
if (candAuthor === prevAuthor) {
|
|
666
754
|
score += 30;
|
|
@@ -668,20 +756,52 @@ class StellaNode {
|
|
|
668
756
|
else {
|
|
669
757
|
// Partial word overlap (e.g. "Silo" in "Silo Music")
|
|
670
758
|
const prevWords = prevAuthor.split(/[\s,&]+/).filter((w) => w.length > 2);
|
|
671
|
-
const
|
|
672
|
-
const overlap = prevWords.filter((w) =>
|
|
759
|
+
const cWords = candAuthor.split(/[\s,&]+/).filter((w) => w.length > 2);
|
|
760
|
+
const overlap = prevWords.filter((w) => cWords.includes(w)).length;
|
|
673
761
|
score += Math.min(overlap * 10, 20);
|
|
674
762
|
}
|
|
675
763
|
}
|
|
676
764
|
// Title keyword overlap (shared theme/vibe/language)
|
|
677
765
|
const prevTitle = (previousTrack.title ?? "").toLowerCase();
|
|
678
|
-
|
|
679
|
-
if (prevTitle && candTitle) {
|
|
766
|
+
if (prevTitle) {
|
|
680
767
|
const prevWords = prevTitle.split(/[\s\-_()[\]]+/).filter((w) => w.length > 2);
|
|
681
|
-
const
|
|
682
|
-
const overlap = prevWords.filter((w) => candWords.includes(w)).length;
|
|
768
|
+
const overlap = prevWords.filter((w) => candTitleWords.includes(w)).length;
|
|
683
769
|
score += Math.min(overlap * 8, 24);
|
|
684
770
|
}
|
|
771
|
+
// ── Anchor similarity (prevents style drift from the user's original pick) ──
|
|
772
|
+
if (anchor) {
|
|
773
|
+
const anchorAuthor = anchor.author.toLowerCase();
|
|
774
|
+
const anchorTitle = anchor.title.toLowerCase();
|
|
775
|
+
// Author match to anchor
|
|
776
|
+
if (candAuthor && anchorAuthor) {
|
|
777
|
+
if (candAuthor === anchorAuthor) {
|
|
778
|
+
score += 25;
|
|
779
|
+
}
|
|
780
|
+
else {
|
|
781
|
+
const anchorWords = anchorAuthor.split(/[\s,&]+/).filter((w) => w.length > 2);
|
|
782
|
+
const cWords = candAuthor.split(/[\s,&]+/).filter((w) => w.length > 2);
|
|
783
|
+
const overlap = anchorWords.filter((w) => cWords.includes(w)).length;
|
|
784
|
+
score += Math.min(overlap * 8, 16);
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
// Title keyword overlap with anchor
|
|
788
|
+
if (anchorTitle) {
|
|
789
|
+
const anchorTitleWords = anchorTitle.split(/[\s\-_()[\]]+/).filter((w) => w.length > 2);
|
|
790
|
+
const overlap = anchorTitleWords.filter((w) => candTitleWords.includes(w)).length;
|
|
791
|
+
score += Math.min(overlap * 6, 18);
|
|
792
|
+
}
|
|
793
|
+
// Source match to anchor (keep same platform as original)
|
|
794
|
+
if (candidate.sourceName === anchor.sourceName) {
|
|
795
|
+
score += 5;
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
// ── Seed-pool-wide author affinity ──────────────────────────────
|
|
799
|
+
// Bonus if candidate's author appears anywhere in recent seeds
|
|
800
|
+
if (candAuthor) {
|
|
801
|
+
const seedAuthorMatches = seedPool.filter((s) => s.author.toLowerCase() === candAuthor).length;
|
|
802
|
+
if (seedAuthorMatches > 0)
|
|
803
|
+
score += Math.min(seedAuthorMatches * 8, 16);
|
|
804
|
+
}
|
|
685
805
|
// Seed pool diversity bonus: avoid same author for 3+ tracks in a row
|
|
686
806
|
const recentAuthors = seedPool.slice(-3).map((s) => s.author.toLowerCase());
|
|
687
807
|
const authorRepeatCount = recentAuthors.filter((a) => a === candAuthor).length;
|
|
@@ -706,7 +826,10 @@ class StellaNode {
|
|
|
706
826
|
};
|
|
707
827
|
// Helper: filter out history + current/previous, score & rank, return best
|
|
708
828
|
const pickBestTransition = (tracks) => {
|
|
709
|
-
const eligible = tracks.filter((t) => t.uri !== previousTrack.uri &&
|
|
829
|
+
const eligible = tracks.filter((t) => t.uri !== previousTrack.uri &&
|
|
830
|
+
t.uri !== track.uri &&
|
|
831
|
+
!historySet.has(t.uri) &&
|
|
832
|
+
!historySet.has(`${t.title}::${t.author}`));
|
|
710
833
|
if (!eligible.length)
|
|
711
834
|
return undefined;
|
|
712
835
|
const scored = eligible.map((t) => ({ track: t, score: scoreTrack(t) }));
|
|
@@ -717,12 +840,16 @@ class StellaNode {
|
|
|
717
840
|
this.manager.emit("Debug", `[AutoMix] Best candidates: ${scored.slice(0, 5).map((s) => `"${s.track.title}" (${s.score}pts)`).join(", ")}`);
|
|
718
841
|
return pick?.track;
|
|
719
842
|
};
|
|
720
|
-
// Helper: add track to history (bounded ring buffer)
|
|
843
|
+
// Helper: add track to history (bounded ring buffer — dedup by URI and title+author)
|
|
721
844
|
const addToHistory = (t) => {
|
|
722
|
-
|
|
723
|
-
|
|
845
|
+
const key = t.uri || `${t.title}::${t.author}`;
|
|
846
|
+
if (key && !historySet.has(key)) {
|
|
847
|
+
player.autoplayHistory.push(key);
|
|
848
|
+
historySet.add(key);
|
|
724
849
|
if (player.autoplayHistory.length > 50) {
|
|
725
|
-
player.autoplayHistory.splice(0, player.autoplayHistory.length - 50);
|
|
850
|
+
const removed = player.autoplayHistory.splice(0, player.autoplayHistory.length - 50);
|
|
851
|
+
for (const r of removed)
|
|
852
|
+
historySet.delete(r);
|
|
726
853
|
}
|
|
727
854
|
}
|
|
728
855
|
};
|
|
@@ -745,7 +872,10 @@ class StellaNode {
|
|
|
745
872
|
const commitTrack = (found, strategy) => {
|
|
746
873
|
addToHistory(found);
|
|
747
874
|
player.queue.add(found);
|
|
748
|
-
player.play()
|
|
875
|
+
player.play().catch((err) => {
|
|
876
|
+
this.manager.emit("Debug", `[AutoMix] Failed to play (${strategy}): ${err instanceof Error ? err.message : String(err)}`);
|
|
877
|
+
player.playing = false;
|
|
878
|
+
});
|
|
749
879
|
this.manager.emit("Debug", `[AutoMix] Playing (${strategy}): "${found.title}" by "${found.author}"`);
|
|
750
880
|
};
|
|
751
881
|
this.manager.emit("Debug", `[AutoMix] Finding best transition (from: "${previousTrack.title}" by "${previousTrack.author}", avgDur: ${Math.round(avgDuration / 1000)}s, seeds: ${seedPool.length})`);
|
|
@@ -782,12 +912,23 @@ class StellaNode {
|
|
|
782
912
|
const candidates = playlistData.tracks.map((t) => Utils_1.TrackUtils.build(t, requester));
|
|
783
913
|
const picked = pickBestTransition(candidates);
|
|
784
914
|
if (picked) {
|
|
785
|
-
//
|
|
915
|
+
// Try playing the Spotify rec directly first (if source supports it)
|
|
916
|
+
if (picked.track && picked.uri) {
|
|
917
|
+
commitTrack(picked, "Spotify rec (direct)");
|
|
918
|
+
return;
|
|
919
|
+
}
|
|
920
|
+
// Fallback: re-search on SoundCloud for a streamable version
|
|
786
921
|
const streamable = await tryMixSearch({ source: "soundcloud", query: `${picked.author} ${picked.title}` });
|
|
787
922
|
if (streamable) {
|
|
788
923
|
commitTrack(streamable, "Spotify rec → SoundCloud");
|
|
789
924
|
return;
|
|
790
925
|
}
|
|
926
|
+
// Fallback: try YouTube
|
|
927
|
+
const ytFallback = await tryMixSearch({ source: "youtube", query: `${picked.author} ${picked.title}` });
|
|
928
|
+
if (ytFallback) {
|
|
929
|
+
commitTrack(ytFallback, "Spotify rec → YouTube");
|
|
930
|
+
return;
|
|
931
|
+
}
|
|
791
932
|
}
|
|
792
933
|
}
|
|
793
934
|
}
|
|
@@ -800,14 +941,40 @@ class StellaNode {
|
|
|
800
941
|
// Build diverse search queries from the seed pool to keep the mix flowing
|
|
801
942
|
if (previousTrack.author) {
|
|
802
943
|
const uniqueAuthors = [...new Set(seedPool.map((s) => s.author).filter(Boolean))];
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
944
|
+
// Extract meaningful title keywords (skip noise words) for search context
|
|
945
|
+
const titleKeywords = (previousTrack.title ?? "")
|
|
946
|
+
.split(/[\s\-_()[\],.'"!?]+/)
|
|
947
|
+
.filter((w) => w.length > 2 && !/^(feat|ft|remix|version|official|video|audio|lyrics|mv|hd|hq|high|school|the|and|for)$/i.test(w))
|
|
948
|
+
.slice(0, 3)
|
|
949
|
+
.join(" ");
|
|
950
|
+
// Determine if author name is too short/generic for a standalone search
|
|
951
|
+
// Strip punctuation/symbols to measure actual content length
|
|
952
|
+
const strippedAuthor = previousTrack.author.replace(/[^\p{L}\p{N}]/gu, "");
|
|
953
|
+
const isShortAuthor = strippedAuthor.length <= 5;
|
|
954
|
+
const searchQueries = [];
|
|
955
|
+
// Always try author + title keywords first — most targeted, avoids generic name pollution
|
|
956
|
+
if (titleKeywords) {
|
|
957
|
+
searchQueries.push({ source: "soundcloud", query: `${previousTrack.author} ${titleKeywords}` });
|
|
958
|
+
}
|
|
959
|
+
// Only use bare author name if it's long/unique enough to be a meaningful search term
|
|
960
|
+
if (!isShortAuthor) {
|
|
961
|
+
searchQueries.push({ source: "soundcloud", query: previousTrack.author });
|
|
962
|
+
}
|
|
963
|
+
// Cross-artist from seed pool (also with title context for short names)
|
|
964
|
+
if (uniqueAuthors.length > 1) {
|
|
965
|
+
const altAuthor = uniqueAuthors.find((a) => a !== previousTrack.author);
|
|
966
|
+
if (altAuthor) {
|
|
967
|
+
const altStripped = altAuthor.replace(/[^\p{L}\p{N}]/gu, "");
|
|
968
|
+
if (altStripped.length > 5) {
|
|
969
|
+
searchQueries.push({ source: "soundcloud", query: altAuthor });
|
|
970
|
+
}
|
|
971
|
+
else if (titleKeywords) {
|
|
972
|
+
searchQueries.push({ source: "soundcloud", query: `${altAuthor} ${titleKeywords}` });
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
// YouTube fallback
|
|
977
|
+
searchQueries.push({ source: "youtube", query: `${previousTrack.author} ${titleKeywords || "music"}` });
|
|
811
978
|
for (const sq of searchQueries) {
|
|
812
979
|
const found = await tryMixSearch(sq);
|
|
813
980
|
if (found) {
|
|
@@ -848,8 +1015,23 @@ class StellaNode {
|
|
|
848
1015
|
// ── Strategy 4: YouTube Radio Mix (last resort) ─────────────────────
|
|
849
1016
|
const hasYouTubeURL = ["youtube.com", "youtu.be"].some((url) => previousTrack.uri?.includes(url));
|
|
850
1017
|
if (hasYouTubeURL) {
|
|
851
|
-
|
|
852
|
-
|
|
1018
|
+
// Robust YouTube video ID extraction (handles /watch?v=ID, /shorts/ID, youtu.be/ID)
|
|
1019
|
+
let videoID = null;
|
|
1020
|
+
try {
|
|
1021
|
+
const url = new URL(previousTrack.uri);
|
|
1022
|
+
if (url.hostname === "youtu.be") {
|
|
1023
|
+
videoID = url.pathname.slice(1).split("/")[0] || null;
|
|
1024
|
+
}
|
|
1025
|
+
else {
|
|
1026
|
+
videoID = url.searchParams.get("v") ?? url.pathname.split("/").pop() ?? null;
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
catch {
|
|
1030
|
+
// Fallback regex for malformed URIs
|
|
1031
|
+
const match = previousTrack.uri?.match(/(?:v=|youtu\.be\/)([a-zA-Z0-9_-]{11})/);
|
|
1032
|
+
videoID = match ? match[1] : null;
|
|
1033
|
+
}
|
|
1034
|
+
if (videoID && videoID.length >= 10) {
|
|
853
1035
|
const randomIndex = Math.floor(Math.random() * 23) + 2;
|
|
854
1036
|
const mixURI = `https://www.youtube.com/watch?v=${videoID}&list=RD${videoID}&index=${randomIndex}`;
|
|
855
1037
|
const found = await tryMixSearch(mixURI);
|
|
@@ -864,18 +1046,18 @@ class StellaNode {
|
|
|
864
1046
|
player.playing = false;
|
|
865
1047
|
this.manager.emit("QueueEnd", player, track, { type: "TrackEndEvent", reason: "finished" });
|
|
866
1048
|
}
|
|
867
|
-
handleFailedTrack(player, track, payload) {
|
|
1049
|
+
async handleFailedTrack(player, track, payload) {
|
|
868
1050
|
player.queue.previous = player.queue.current;
|
|
869
1051
|
player.queue.current = player.queue.shift() ?? null;
|
|
870
1052
|
if (!player.queue.current) {
|
|
871
|
-
this.queueEnd(player, track, payload);
|
|
1053
|
+
await this.queueEnd(player, track, payload);
|
|
872
1054
|
return;
|
|
873
1055
|
}
|
|
874
1056
|
this.manager.emit("TrackEnd", player, track, payload);
|
|
875
1057
|
if (this.manager.options.autoPlay)
|
|
876
1058
|
player.play();
|
|
877
1059
|
}
|
|
878
|
-
handleRepeatedTrack(player, track, payload) {
|
|
1060
|
+
async handleRepeatedTrack(player, track, payload) {
|
|
879
1061
|
const { queue, trackRepeat, queueRepeat } = player;
|
|
880
1062
|
const { autoPlay } = this.manager.options;
|
|
881
1063
|
if (trackRepeat) {
|
|
@@ -888,7 +1070,7 @@ class StellaNode {
|
|
|
888
1070
|
queue.current = queue.shift() ?? null;
|
|
889
1071
|
this.manager.emit("TrackEnd", player, track, payload);
|
|
890
1072
|
if (payload.reason === "stopped" && !(queue.current = queue.shift() ?? null)) {
|
|
891
|
-
this.queueEnd(player, track, payload);
|
|
1073
|
+
await this.queueEnd(player, track, payload);
|
|
892
1074
|
return;
|
|
893
1075
|
}
|
|
894
1076
|
if (autoPlay)
|
|
@@ -921,6 +1103,16 @@ class StellaNode {
|
|
|
921
1103
|
}
|
|
922
1104
|
socketClosed(player, payload) {
|
|
923
1105
|
this.manager.emit("SocketClosed", player, payload);
|
|
1106
|
+
// 4014 = Disconnected by Discord (bot was kicked/moved out of voice)
|
|
1107
|
+
// 4006 = Session is no longer valid
|
|
1108
|
+
const VOICE_FATAL_CODES = [4014, 4006];
|
|
1109
|
+
if (VOICE_FATAL_CODES.includes(payload.code)) {
|
|
1110
|
+
this.manager.emit("Debug", `[Player:${player.guild}] Voice socket closed with code ${payload.code} (${payload.reason || "no reason"}) — cleaning up player`);
|
|
1111
|
+
player.voiceReady = false;
|
|
1112
|
+
player.connected = false;
|
|
1113
|
+
player.playing = false;
|
|
1114
|
+
player.state = "DISCONNECTED";
|
|
1115
|
+
}
|
|
924
1116
|
}
|
|
925
1117
|
}
|
|
926
1118
|
exports.StellaNode = StellaNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../src/Structures/Node.ts"],"names":[],"mappings":";;;;;;AA0BA,mCAAgD;AAChD,iCAAoC;AACpC,mEAA2C;AAC3C,4CAA2B;AAE3B,gEAAgE;AAChE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACjC,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,yCAAyC;CAC/C,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACrC,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,oBAAoB;CAC1B,CAAC,CAAC;AAEH,MAAM,UAAU;IAgFI;IA/EnB,6CAA6C;IACtC,MAAM,GAAqB,IAAI,CAAC;IACvC,8BAA8B;IACvB,KAAK,CAAY;IACxB,4BAA4B;IACrB,OAAO,CAAgB;IAC9B,2CAA2C;IACpC,SAAS,GAAkB,IAAI,CAAC;IACvC,yBAAyB;IACT,IAAI,CAAa;IACjC,mDAAmD;IAC5C,OAAO,GAAG,KAAK,CAAC;IACvB,yCAAyC;IAClC,gBAAgB,GAAG,CAAC,CAAC;IAC5B,uDAAuD;IAChD,IAAI,GAAwB,IAAI,CAAC;IACxC,oEAAoE;IAC7D,OAAO,GAAoB,CAAC,CAAC;IAE5B,MAAM,CAAC,QAAQ,CAAgB;IAC/B,gBAAgB,CAAiC;IACjD,iBAAiB,GAAG,CAAC,CAAC;IACtB,cAAc,CAAkC;IAChD,gBAAgB,GAAG,CAAC,CAAC;IAE7B,wCAAwC;IACxC,IAAW,SAAS;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI,CAAC;IAClD,CAAC;IAED,yCAAyC;IACzC,IAAW,OAAO;QACjB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,kDAAkD;IAClD,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,qEAAqE;IACrE,IAAW,SAAS;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAErB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,mBAAmB;QACnB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACf,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YAClE,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpG,CAAC;QAED,6BAA6B;QAC7B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC9D,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;YAClF,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;YACjF,CAAC;QACF,CAAC;QAED,uBAAuB;QACvB,SAAS,IAAI,KAAK,CAAC,cAAc,CAAC;QAElC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,cAAc;IACP,MAAM,CAAC,IAAI,CAAC,OAAsB;QACxC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,YAAmB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,iBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAE,CAAC;QACpE,CAAC;QAED,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;QAEnB,IAAI,CAAC,OAAO,GAAG;YACd,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,KAAK;YACrB,iBAAiB,EAAE,KAAK;YACxB,GAAG,OAAO;SACV,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG;YACZ,OAAO,EAAE,CAAC;YACV,cAAc,EAAE,CAAC;YACjB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;YACzD,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACjD,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;SAC9C,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAU,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,iEAAiE;IAC1D,MAAM,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI;YAAE,OAAO;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACxD,MAAM,OAAO,GAAG,GAAG,QAAQ,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,EAAE,CAAC;QAE1D,eAAe;QACf,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,UAAU,EAAE;gBAC7C,OAAO;gBACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aACjC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiB,CAAC;gBAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,2BAA2B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CACtF,CAAC;gBACF,OAAO;YACR,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,iBAAiB;QAClB,CAAC;QAED,SAAS;QACT,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,UAAU,EAAE;gBAC7C,OAAO;gBACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aACjC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,2BAA2B,UAAU,GAAG,CACxE,CAAC;gBACF,OAAO;YACR,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,eAAe;QAChB,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,8CAA8C,CAC9E,CAAC;IACH,CAAC;IAED,kFAAkF;IAC3E,KAAK,CAAC,OAAO;QACnB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAE3B,iDAAiD;QACjD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3B,iDAAiD;QACjD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1D,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW,CAAC,CAAC;gBACpF,IAAI,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,iCAAiC,KAAK,EAAE,CACxE,CAAC;gBACH,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,sBAAsB;YACvB,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAA2B;YACvC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS;YACrC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;YACtD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAS;YACzC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAW;SAC/C,CAAC;QAEF,uDAAuD;QACvD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5D,CAAC;aAAM,CAAC;YACP,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5D,CAAC;QAED,mEAAmE;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,KAAK,CAAC;YAC7B,CAAC,CAAC,GAAG,QAAQ,MAAM,IAAI,CAAC,OAAO,EAAE;YACjC,CAAC,CAAC,GAAG,QAAQ,MAAM,IAAI,CAAC,OAAO,eAAe,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,mBAAmB,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3H,IAAI,CAAC,MAAM,GAAG,IAAI,YAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,2DAA2D;IACpD,OAAO;QACb,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;gBAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB;YAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE/D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW,CAAC,CAAC;IACpD,CAAC;IAED,2EAA2E;IACpE,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,iCAAiC;QACjC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACzD,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACvF,CAAC;YAAC,MAAM,CAAC;gBACR,SAAS;YACV,CAAC;QACF,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,IAAI,CAAC,gBAAgB;YAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChE,CAAC;IAED,gEAAgE;IACxD,cAAc;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC;QACzD,IAAI,QAAQ,IAAI,CAAC;YAAE,OAAO;QAE1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEnC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO;YACR,CAAC;YAED,oEAAoE;YACpE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,+CAA+C,CAC/E,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;gBACzB,OAAO;YACR,CAAC;YAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACrB,CAAC,EAAE,QAAQ,CAAC,CAAC;IACd,CAAC;IAED,oCAAoC;IAC5B,aAAa;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QACjC,CAAC;IACF,CAAC;IAED,sDAAsD;IAC9C,YAAY;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;IAED;;;OAGG;IACK,SAAS;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnG,kBAAkB;QAClB,MAAM,MAAM,GAAG,gBAAgB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,qBAAqB,KAAK,eAAe,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,GAAG,CACpI,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YACvC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChE,MAAM,KAAK,GAAG,IAAI,KAAK,CACtB,2BAA2B,IAAI,CAAC,OAAO,CAAC,WAAW,YAAY,CAC/D,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC,EAAE,KAAK,CAAC,CAAC;IACX,CAAC;IAES,IAAI;QACb,IAAI,IAAI,CAAC,gBAAgB;YAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,aAAa,CAAC,CAAC;QAE1E,kEAAkE;QAClE,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAC3E,CAAC;IACF,CAAC;IAES,KAAK,CAAC,IAAY,EAAE,MAAc;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,yBAAyB,IAAI,aAAa,SAAS,GAAG,CACtF,CAAC;QAEF,kCAAkC;QAClC,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,WAAW,EACX,IAAI,EACJ,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,sBAAsB,IAAI,KAAK,SAAS,qBAAqB,CAAC,CACxG,CAAC;YACF,OAAO;QACR,CAAC;QAED,+DAA+D;QAC/D,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,gCAAgC,IAAI,uBAAuB,CAC3F,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC;oBAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACnG,CAAC;QACF,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IAChE,CAAC;IAES,KAAK,CAAC,KAAY;QAC3B,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAES,OAAO,CAAC,CAAkB;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACtC,IAAI,CAAC,YAAY,WAAW;YAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO;QAExB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtC,QAAQ,OAAO,CAAC,EAAE,EAAE,CAAC;YACpB,KAAK,OAAO;gBACX,OAAO,OAAO,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,EAA0B,CAAC;gBACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM;YAEP,KAAK,cAAc,CAAC,CAAC,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzD,IAAI,MAAM,EAAE,CAAC;oBACZ,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAC9C,iDAAiD;oBACjD,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;wBAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;oBACtF,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;wBAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBACxE,CAAC;gBACD,MAAM;YACP,CAAC;YAED,KAAK,OAAO;gBACX,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC1B,MAAM;YAEP,KAAK,OAAO;gBACX,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC1B,MAAM;YAEP;gBACC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,WAAW,EACX,IAAI,EACJ,IAAI,KAAK,CAAC,kBAAkB,OAAO,CAAC,EAAE,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CACxE,CAAC;gBACF,OAAO;QACT,CAAC;IACF,CAAC;IAED,yEAAyE;IACjE,WAAW,CAAC,OAAgD;QACnE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,wBAAwB,OAAO,CAAC,SAAS,cAAc,OAAO,CAAC,OAAO,EAAE,CACxG,CAAC;QAEF,yDAAyD;QACzD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACpF,CAAC;YAAC,MAAM,CAAC;gBACR,cAAc;YACf,CAAC;QACF,CAAC;QAED,yEAAyE;QACzE,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI;iBACP,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;iBACjD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,WAAW,EACX,IAAI,EACJ,IAAI,KAAK,CAAC,uCAAwC,GAAa,CAAC,OAAO,EAAE,CAAC,CAC1E,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,wEAAwE;QACxE,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,kBAAmB,GAAa,CAAC,OAAO,EAAE,CAC1E,CAAC;YACH,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,yEAAyE;QACzE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,6BAA8B,GAAa,CAAC,OAAO,EAAE,CACrF,CAAC;YACH,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,+DAA+D;IACxD,KAAK,CAAC,SAAS;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,eAAe,IAAI,CAAC,OAAO,CAAC,MAAM,iBAAiB,IAAI,CAAC,UAAU,EAAE,CACpG,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,kDAAkD;IAC1C,KAAK,CAAC,WAAW;QACxB,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAQ9C,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO;QAEpC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpD,0DAA0D;YAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,gCAAgC,IAAI,CAAC,OAAO,gBAAgB,CAC5F,CAAC;gBAEF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC5B,KAAK,EAAE,IAAI,CAAC,OAAO;oBACnB,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,SAAS;oBAChD,WAAW,EAAE,SAAS;oBACtB,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;oBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;iBACnB,CAAC,CAAC;gBAEH,0DAA0D;gBAC1D,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;gBAC3B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;gBACzB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YACzC,CAAC;YAED,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACtC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YACxC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;YAErD,yDAAyD;YACzD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACJ,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,kBAAU,CAAC,KAAK,CACtC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAW,EAAE,UAAU,EAAE,EAAE,EAAE,EAC7E,MAAM,CAAC,GAAG,CAAS,kBAAkB,CAAC,CACtC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACR,8BAA8B;gBAC/B,CAAC;YACF,CAAC;YAED,mEAAmE;YACnE,0EAA0E;YAC1E,IAAI,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxD,UAAU,CAAC,GAAG,EAAE;oBACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,8BAA8B,IAAI,CAAC,KAAK,EAAE,SAAS,cAAc,IAAI,CAAC,OAAO,oBAAoB,CACjI,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;wBACvC,EAAE,EAAE,CAAC;wBACL,CAAC,EAAE;4BACF,QAAQ,EAAE,IAAI,CAAC,OAAO;4BACtB,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,IAAI;4BACzC,SAAS,EAAE,KAAK;4BAChB,SAAS,EAAE,IAAI;yBACf;qBACD,CAAC,CAAC;gBACJ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,yCAAyC;YACpD,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,6BAA6B,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,cAAc,MAAM,CAAC,OAAO,YAAY,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,MAAM,GAAG,CAClL,CAAC;QACH,CAAC;IACF,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc;QAC3B,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;gBAAE,SAAS;YACnC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK;gBAAE,SAAS;YAEzE,IAAI,CAAC;gBACJ,kCAAkC;gBAClC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;oBAC5B,OAAO,EAAE,MAAM,CAAC,KAAK;oBACrB,IAAI,EAAE;wBACL,KAAK,EAAE;4BACN,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;4BACpC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ;4BAC1C,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;4BACtC,SAAS,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;yBAC3C;qBACD;iBACD,CAAC,CAAC;gBAEH,+BAA+B;gBAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;wBAC5B,OAAO,EAAE,MAAM,CAAC,KAAK;wBACrB,IAAI,EAAE;4BACL,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK;4BACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;yBACrB;qBACD,CAAC,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,8BAA8B,MAAM,CAAC,KAAK,EAAE,CAC5E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,4DAA4D;YAC7D,CAAC;QACF,CAAC;IACF,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,OAAmC;QAC9D,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,QAAQ,IAAI,EAAE,CAAC;YACd,KAAK,iBAAiB;gBACrB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAc,EAAE,OAA0B,CAAC,CAAC;gBACpE,MAAM;YACP,KAAK,eAAe;gBACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAc,EAAE,OAAwB,CAAC,CAAC;gBAChE,MAAM;YACP,KAAK,iBAAiB;gBACrB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAc,EAAE,OAAqC,CAAC,CAAC;gBAC/E,MAAM;YACP,KAAK,qBAAqB;gBACzB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAgC,EAAE,OAA8B,CAAC,CAAC;gBAC1F,MAAM;YACP,KAAK,sBAAsB;gBAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAA+B,CAAC,CAAC;gBAC3D,MAAM;YACP;gBACC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,WAAW,EACX,IAAI,EACJ,IAAI,KAAK,CAAC,6BAA6B,IAAI,IAAI,CAAC,CAChD,CAAC;gBACF,MAAM;QACR,CAAC;IACF,CAAC;IAES,UAAU,CAAC,MAAoB,EAAE,KAAY,EAAE,OAAwB;QAChF,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAES,KAAK,CAAC,QAAQ,CAAC,MAAoB,EAAE,KAAY,EAAE,OAAsB;QAClF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3B,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC9C,CAAC;aAAM,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IAEM,qBAAqB,CAAC,GAAW;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;IAEM,sBAAsB,CAAC,GAAW;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,cAAc,CAAC,MAAoB,EAAE,KAAY;QAC9D,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,QAAwB,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,aAAa;YAAE,OAAO;QAEjD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAW,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEnD,uEAAuE;QACvE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAC5B,KAAK,EAAE,aAAa,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,EAAE;YAClC,GAAG,EAAE,aAAa,CAAC,GAAG,IAAI,EAAE;YAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,CAAC;YACrC,UAAU,EAAE,aAAa,CAAC,UAAU,IAAI,EAAE;SAC1C,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAE9F,uEAAuE;QACvE,MAAM,UAAU,GAAG,CAAC,SAAgB,EAAU,EAAE;YAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,2DAA2D;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;YAClE,IAAI,OAAO,GAAG,MAAM;gBAAE,KAAK,IAAI,EAAE,CAAC;iBAC7B,IAAI,OAAO,GAAG,MAAM;gBAAE,KAAK,IAAI,EAAE,CAAC;iBAClC,IAAI,OAAO,GAAG,OAAO;gBAAE,KAAK,IAAI,EAAE,CAAC;YAExC,sCAAsC;YACtC,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9D,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1D,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;gBAC9B,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;oBAC/B,KAAK,IAAI,EAAE,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACP,qDAAqD;oBACrD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC1E,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACtE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;gBACrC,CAAC;YACF,CAAC;YAED,qDAAqD;YACrD,MAAM,SAAS,GAAG,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5D,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACxD,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC/E,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACtE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YAED,sEAAsE;YACtE,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5E,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;YAC/E,IAAI,iBAAiB,KAAK,CAAC,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC1D,KAAK,IAAI,EAAE,CAAC,CAAC,iCAAiC;YAC/C,CAAC;iBAAM,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;gBACnC,KAAK,IAAI,EAAE,CAAC,CAAC,2BAA2B;YACzC,CAAC;YAED,6DAA6D;YAC7D,IAAI,SAAS,CAAC,UAAU,KAAK,aAAa,CAAC,UAAU,EAAE,CAAC;gBACvD,KAAK,IAAI,CAAC,CAAC;YACZ,CAAC;YAED,iEAAiE;YACjE,IAAI,SAAS,CAAC,QAAQ;gBAAE,KAAK,IAAI,EAAE,CAAC;YAEpC,4CAA4C;YAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC;YACpC,IAAI,GAAG,GAAG,MAAM,IAAI,GAAG,GAAG,OAAO;gBAAE,KAAK,IAAI,EAAE,CAAC;YAE/C,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QAEF,2EAA2E;QAC3E,MAAM,kBAAkB,GAAG,CAAC,MAAe,EAAqB,EAAE;YACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CACnF,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAEvC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAEzC,qDAAqD;YACrD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3D,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,8BAA8B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9G,CAAC;YAEF,OAAO,IAAI,EAAE,KAAK,CAAC;QACpB,CAAC,CAAC;QAEF,qDAAqD;QACrD,MAAM,YAAY,GAAG,CAAC,CAAQ,EAAQ,EAAE;YACvC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACX,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBACxC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBACtE,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QAEF,kDAAkD;QAClD,MAAM,YAAY,GAAG,KAAK,EAAE,KAAiD,EAA8B,EAAE;YAC5G,IAAI,CAAC;gBACJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAY,EAAE,SAAS,CAAC,CAAC;gBACzD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;oBAAE,OAAO,SAAS,CAAC;gBAC3E,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBACxB,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,GAAG,CAAC,QAAQ;oBAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC9E,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC,CAAC;QAEF,2CAA2C;QAC3C,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,QAAgB,EAAQ,EAAE;YAC5D,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,QAAQ,OAAO,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtG,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAChB,OAAO,EACP,6CAA6C,aAAa,CAAC,KAAK,SAAS,aAAa,CAAC,MAAM,cAAc,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,QAAQ,CAAC,MAAM,GAAG,CACxK,CAAC;QAEF,uEAAuE;QACvE,IAAI,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC;gBACJ,wDAAwD;gBACxD,MAAM,YAAY,GAAG,QAAQ;qBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;qBAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qBAC7C,MAAM,CAAC,OAAO,CAAC,CAAC;gBAElB,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAE,SAAS;oBACnD,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC;oBACjE,CAAC,CAAC,IAAI,CAAC;gBAER,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACpD,UAAU,GAAG,QAAQ;wBACpB,CAAC,CAAC,sBAAsB,QAAQ,gBAAgB,UAAU,EAAE;wBAC5D,CAAC,CAAC,qBAAqB,UAAU,EAAE,CAAC;gBACtC,CAAC;qBAAM,IAAI,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvD,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC9D,IAAI,OAAO,EAAE,CAAC;wBACb,UAAU,GAAG,QAAQ;4BACpB,CAAC,CAAC,sBAAsB,QAAQ,gBAAgB,OAAO,EAAE;4BACzD,CAAC,CAAC,qBAAqB,OAAO,EAAE,CAAC;oBACnC,CAAC;gBACF,CAAC;gBAED,IAAI,UAAU,EAAE,CAAC;oBAChB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBAEzD,IAAI,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;wBACvC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAuB,CAAC;wBACvD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;wBAClF,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;wBAC9C,IAAI,MAAM,EAAE,CAAC;4BACZ,mDAAmD;4BACnD,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAC3G,IAAI,UAAU,EAAE,CAAC;gCAChB,WAAW,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;gCACpD,OAAO;4BACR,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,eAAe;YAChB,CAAC;QACF,CAAC;QAED,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClF,MAAM,aAAa,GAAG;gBACrB,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE;gBACrD,8DAA8D;gBAC9D,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;oBAC3B,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;oBAClH,CAAC,CAAC,EAAE,CAAC;gBACN,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,MAAM,QAAQ,EAAE;aAC7D,CAAC;YAEF,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,KAAK,EAAE,CAAC;oBACX,WAAW,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;oBACjD,OAAO;gBACR,CAAC;YACF,CAAC;QACF,CAAC;QAED,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,SAAS;iBACxB,WAAW,EAAE;iBACb,KAAK,CAAC,gBAAgB,CAAC;iBACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC3B,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAkB,CAAC,CAAC;YAEpG,qDAAqD;YACrD,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;iBACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;YAEZ,MAAM,aAAa,GAAG;gBACrB,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE;gBACjF,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE;gBACpD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE;aAC9E,CAAC;YAEF,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,KAAK,EAAE,CAAC;oBACX,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;oBAChD,OAAO;gBACR,CAAC;YACF,CAAC;QACF,CAAC;QAED,uEAAuE;QACvE,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAChC,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACjF,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,mCAAmC,OAAO,WAAW,OAAO,UAAU,WAAW,EAAE,CAAC;gBACnG,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,KAAK,EAAE,CAAC;oBACX,WAAW,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;oBACxC,OAAO;gBACR,CAAC;YACF,CAAC;QACF,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,mDAAmD,CAAC,CAAC;QAChF,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAS,CAAC,CAAC;IACpG,CAAC;IAEO,iBAAiB,CAAC,MAAoB,EAAE,KAAY,EAAE,OAAsB;QACnF,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ;YAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAEO,mBAAmB,CAAC,MAAoB,EAAE,KAAY,EAAE,OAAsB;QACrF,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAE1C,IAAI,WAAW,EAAE,CAAC;YACjB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACxB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO;QACR,CAAC;QAED,IAAI,QAAQ;YAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAEO,aAAa,CAAC,MAAoB,EAAE,KAAY,EAAE,OAAsB;QAC/E,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;QAEpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ;YAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAES,KAAK,CAAC,QAAQ,CAAC,MAAoB,EAAE,KAAY,EAAE,OAAsB;QAClF,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO;QACR,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAES,UAAU,CAAC,MAAoB,EAAE,KAAY,EAAE,OAAwB;QAChF,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAES,UAAU,CACnB,MAAoB,EACpB,KAA8B,EAC9B,OAA4B;QAE5B,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAES,YAAY,CAAC,MAAoB,EAAE,OAA6B;QACzE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACD;AAEQ,gCAAU"}
|
|
1
|
+
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../src/Structures/Node.ts"],"names":[],"mappings":"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"}
|