@kya-os/cli 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/effects/cli-integration.js +8 -8
- package/dist/effects/cli-integration.js.map +1 -1
- package/dist/effects/config.d.ts +10 -86
- package/dist/effects/config.d.ts.map +1 -1
- package/dist/effects/config.js +18 -201
- package/dist/effects/config.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -1
- package/dist/effects/animation-engine.d.ts +0 -173
- package/dist/effects/animation-engine.d.ts.map +0 -1
- package/dist/effects/animation-engine.js +0 -254
- package/dist/effects/animation-engine.js.map +0 -1
- package/dist/effects/effect-runner.d.ts +0 -69
- package/dist/effects/effect-runner.d.ts.map +0 -1
- package/dist/effects/effect-runner.js +0 -255
- package/dist/effects/effect-runner.js.map +0 -1
- package/dist/effects/gradient.d.ts +0 -131
- package/dist/effects/gradient.d.ts.map +0 -1
- package/dist/effects/gradient.js +0 -236
- package/dist/effects/gradient.js.map +0 -1
- package/dist/effects/implementations/beams.d.ts +0 -80
- package/dist/effects/implementations/beams.d.ts.map +0 -1
- package/dist/effects/implementations/beams.js +0 -221
- package/dist/effects/implementations/beams.js.map +0 -1
- package/dist/effects/implementations/blackhole.d.ts +0 -98
- package/dist/effects/implementations/blackhole.d.ts.map +0 -1
- package/dist/effects/implementations/blackhole.js +0 -421
- package/dist/effects/implementations/blackhole.js.map +0 -1
- package/dist/effects/implementations/burn.d.ts +0 -74
- package/dist/effects/implementations/burn.d.ts.map +0 -1
- package/dist/effects/implementations/burn.js +0 -234
- package/dist/effects/implementations/burn.js.map +0 -1
- package/dist/effects/implementations/decrypt.d.ts +0 -115
- package/dist/effects/implementations/decrypt.d.ts.map +0 -1
- package/dist/effects/implementations/decrypt.js +0 -394
- package/dist/effects/implementations/decrypt.js.map +0 -1
- package/dist/effects/implementations/waves.d.ts +0 -78
- package/dist/effects/implementations/waves.d.ts.map +0 -1
- package/dist/effects/implementations/waves.js +0 -278
- package/dist/effects/implementations/waves.js.map +0 -1
- package/dist/effects/index.d.ts +0 -34
- package/dist/effects/index.d.ts.map +0 -1
- package/dist/effects/index.js +0 -114
- package/dist/effects/index.js.map +0 -1
- package/dist/effects/motion-engine.d.ts +0 -168
- package/dist/effects/motion-engine.d.ts.map +0 -1
- package/dist/effects/motion-engine.js +0 -353
- package/dist/effects/motion-engine.js.map +0 -1
- package/dist/effects/safe-executor.d.ts +0 -55
- package/dist/effects/safe-executor.d.ts.map +0 -1
- package/dist/effects/safe-executor.js +0 -210
- package/dist/effects/safe-executor.js.map +0 -1
- package/dist/effects/types.d.ts +0 -199
- package/dist/effects/types.d.ts.map +0 -1
- package/dist/effects/types.js +0 -80
- package/dist/effects/types.js.map +0 -1
- package/dist/effects/utils.d.ts +0 -104
- package/dist/effects/utils.d.ts.map +0 -1
- package/dist/effects/utils.js +0 -280
- package/dist/effects/utils.js.map +0 -1
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Burn Effect
|
|
3
|
-
* Characters are ignited and burn up the screen
|
|
4
|
-
*/
|
|
5
|
-
import { BaseEffect, } from "../types.js";
|
|
6
|
-
import { ANSI } from "../utils.js";
|
|
7
|
-
/**
|
|
8
|
-
* Burn effect implementation
|
|
9
|
-
*/
|
|
10
|
-
export class BurnEffect extends BaseEffect {
|
|
11
|
-
constructor(options = {}) {
|
|
12
|
-
super();
|
|
13
|
-
this.name = "Burn";
|
|
14
|
-
this.description = "Characters are ignited and burn up the screen";
|
|
15
|
-
this.characterStates = new Map();
|
|
16
|
-
this.burnFront = -1; // Current row being burned
|
|
17
|
-
this.animationFrameCount = 0;
|
|
18
|
-
this.totalFrames = 0;
|
|
19
|
-
this.burnPhaseDuration = 10;
|
|
20
|
-
this._isEffectComplete = false;
|
|
21
|
-
this.options = {
|
|
22
|
-
duration: 3000,
|
|
23
|
-
startingColor: "837373",
|
|
24
|
-
burnColors: ["ffffff", "fff75d", "fe650d", "8A003C", "510100"],
|
|
25
|
-
burnSpeed: 2,
|
|
26
|
-
burnDelay: 3,
|
|
27
|
-
burnRandomness: 0.3,
|
|
28
|
-
...options,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Initialize the effect
|
|
33
|
-
*/
|
|
34
|
-
onInitialize() {
|
|
35
|
-
const dimensions = this.getCanvasDimensions();
|
|
36
|
-
this.totalFrames = Math.floor((this.options.duration / 1000) * this.config.frameRate);
|
|
37
|
-
this.burnPhaseDuration = Math.floor(this.totalFrames / (dimensions.height + 10));
|
|
38
|
-
// Initialize character states
|
|
39
|
-
this.characterStates.clear();
|
|
40
|
-
for (const char of this.characters) {
|
|
41
|
-
const key = `${char.originalPosition.x},${char.originalPosition.y}`;
|
|
42
|
-
this.characterStates.set(key, {
|
|
43
|
-
burnStartTime: -1,
|
|
44
|
-
burnPhase: 0,
|
|
45
|
-
isBurning: false,
|
|
46
|
-
fadeProgress: 0,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
this.burnFront = -1;
|
|
50
|
-
this.animationFrameCount = 0;
|
|
51
|
-
this._isEffectComplete = false;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Render the next frame
|
|
55
|
-
*/
|
|
56
|
-
async render() {
|
|
57
|
-
if (!this.isInitialized) {
|
|
58
|
-
throw new Error("Effect not initialized");
|
|
59
|
-
}
|
|
60
|
-
// Update burn state
|
|
61
|
-
this.updateBurnState();
|
|
62
|
-
// Create the frame
|
|
63
|
-
const dimensions = this.getCanvasDimensions();
|
|
64
|
-
const frame = Array(dimensions.height)
|
|
65
|
-
.fill("")
|
|
66
|
-
.map(() => Array(dimensions.width).fill(" "));
|
|
67
|
-
// Render characters
|
|
68
|
-
for (const char of this.characters) {
|
|
69
|
-
const key = `${char.originalPosition.x},${char.originalPosition.y}`;
|
|
70
|
-
const state = this.characterStates.get(key);
|
|
71
|
-
if (state) {
|
|
72
|
-
const visual = this.createCharacterVisual(char, state);
|
|
73
|
-
char.visual = visual;
|
|
74
|
-
const { x, y } = char.currentPosition;
|
|
75
|
-
if (y >= 0 && y < dimensions.height && x >= 0 && x < dimensions.width) {
|
|
76
|
-
// Apply ANSI color codes
|
|
77
|
-
const colorCode = this.getColorCode(visual.colors.fg);
|
|
78
|
-
const resetCode = ANSI.reset;
|
|
79
|
-
frame[y][x] = colorCode + visual.symbol + resetCode;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
this.animationFrameCount++;
|
|
84
|
-
// Convert frame to strings
|
|
85
|
-
return frame.map((row) => row.join(""));
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Update burn state for all characters
|
|
89
|
-
*/
|
|
90
|
-
updateBurnState() {
|
|
91
|
-
const dimensions = this.getCanvasDimensions();
|
|
92
|
-
// Update burn front
|
|
93
|
-
if (this.animationFrameCount % this.options.burnDelay === 0) {
|
|
94
|
-
this.burnFront++;
|
|
95
|
-
}
|
|
96
|
-
// Update character states
|
|
97
|
-
let allBurned = true;
|
|
98
|
-
for (const char of this.characters) {
|
|
99
|
-
const key = `${char.originalPosition.x},${char.originalPosition.y}`;
|
|
100
|
-
const state = this.characterStates.get(key);
|
|
101
|
-
if (!state)
|
|
102
|
-
continue;
|
|
103
|
-
// Check if character should start burning
|
|
104
|
-
if (!state.isBurning &&
|
|
105
|
-
char.originalPosition.y >= dimensions.height - this.burnFront - 1) {
|
|
106
|
-
const randomDelay = Math.random() * this.options.burnRandomness;
|
|
107
|
-
if (randomDelay < 0.5) {
|
|
108
|
-
state.isBurning = true;
|
|
109
|
-
state.burnStartTime = this.animationFrameCount;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
// Update burning characters
|
|
113
|
-
if (state.isBurning) {
|
|
114
|
-
const burnTime = this.animationFrameCount - state.burnStartTime;
|
|
115
|
-
const phase = Math.min(Math.floor(burnTime / this.burnPhaseDuration), 6);
|
|
116
|
-
state.burnPhase = phase;
|
|
117
|
-
if (phase >= 6) {
|
|
118
|
-
state.fadeProgress = Math.min((burnTime - 6 * this.burnPhaseDuration) /
|
|
119
|
-
(this.burnPhaseDuration * 2), 1);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (state.burnPhase < 6) {
|
|
123
|
-
allBurned = false;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
this._isEffectComplete =
|
|
127
|
-
allBurned || this.animationFrameCount >= this.totalFrames;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Create visual representation of a character
|
|
131
|
-
*/
|
|
132
|
-
createCharacterVisual(char, state) {
|
|
133
|
-
let color;
|
|
134
|
-
if (!state.isBurning) {
|
|
135
|
-
// Not burning yet - use starting color
|
|
136
|
-
color = this.options.startingColor;
|
|
137
|
-
}
|
|
138
|
-
else if (state.burnPhase === 0) {
|
|
139
|
-
// Just started burning - still starting color
|
|
140
|
-
color = this.options.startingColor;
|
|
141
|
-
}
|
|
142
|
-
else if (state.burnPhase < 6) {
|
|
143
|
-
// Burning - use burn colors
|
|
144
|
-
const colorIndex = Math.min(state.burnPhase - 1, this.options.burnColors.length - 1);
|
|
145
|
-
color = this.options.burnColors[colorIndex];
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
// Burned out - fade from last burn color to transparent/final
|
|
149
|
-
const lastBurnColor = this.options.burnColors[this.options.burnColors.length - 1];
|
|
150
|
-
if (state.fadeProgress < 0.5) {
|
|
151
|
-
// Fade to dark
|
|
152
|
-
color = this.interpolateColor(lastBurnColor, "000000", state.fadeProgress * 2);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
// Character disappears
|
|
156
|
-
color = "000000";
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
// Apply some flickering to burning characters
|
|
160
|
-
let finalColor = color;
|
|
161
|
-
if (state.burnPhase > 0 && state.burnPhase < 5 && Math.random() < 0.3) {
|
|
162
|
-
// Flicker between current and next color
|
|
163
|
-
const nextIndex = Math.min(state.burnPhase, this.options.burnColors.length - 1);
|
|
164
|
-
const nextColor = this.options.burnColors[nextIndex];
|
|
165
|
-
finalColor = this.interpolateColor(color, nextColor, 0.5);
|
|
166
|
-
}
|
|
167
|
-
return {
|
|
168
|
-
symbol: state.burnPhase >= 6 && state.fadeProgress > 0.7
|
|
169
|
-
? " "
|
|
170
|
-
: char.originalSymbol,
|
|
171
|
-
colors: {
|
|
172
|
-
fg: finalColor,
|
|
173
|
-
bg: null,
|
|
174
|
-
},
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Get ANSI color code for a color
|
|
179
|
-
*/
|
|
180
|
-
getColorCode(color) {
|
|
181
|
-
if (!color || this.config.noColor) {
|
|
182
|
-
return "";
|
|
183
|
-
}
|
|
184
|
-
// For RGB colors, convert to ANSI 24-bit color
|
|
185
|
-
if (typeof color === "string") {
|
|
186
|
-
const r = parseInt(color.substring(0, 2), 16);
|
|
187
|
-
const g = parseInt(color.substring(2, 4), 16);
|
|
188
|
-
const b = parseInt(color.substring(4, 6), 16);
|
|
189
|
-
return `\x1b[38;2;${r};${g};${b}m`;
|
|
190
|
-
}
|
|
191
|
-
// For XTerm colors
|
|
192
|
-
return `\x1b[38;5;${color}m`;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Interpolate between two colors
|
|
196
|
-
*/
|
|
197
|
-
interpolateColor(color1, color2, factor) {
|
|
198
|
-
const r1 = parseInt(color1.substring(0, 2), 16);
|
|
199
|
-
const g1 = parseInt(color1.substring(2, 4), 16);
|
|
200
|
-
const b1 = parseInt(color1.substring(4, 6), 16);
|
|
201
|
-
const r2 = parseInt(color2.substring(0, 2), 16);
|
|
202
|
-
const g2 = parseInt(color2.substring(2, 4), 16);
|
|
203
|
-
const b2 = parseInt(color2.substring(4, 6), 16);
|
|
204
|
-
const r = Math.round(r1 + (r2 - r1) * factor);
|
|
205
|
-
const g = Math.round(g1 + (g2 - g1) * factor);
|
|
206
|
-
const b = Math.round(b1 + (b2 - b1) * factor);
|
|
207
|
-
return [r, g, b]
|
|
208
|
-
.map((c) => Math.max(0, Math.min(255, c)).toString(16).padStart(2, "0"))
|
|
209
|
-
.join("");
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Render fallback for when effects are disabled
|
|
213
|
-
*/
|
|
214
|
-
renderFallback() {
|
|
215
|
-
return this.text.split("\n");
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Check if effect is complete
|
|
219
|
-
*/
|
|
220
|
-
isComplete() {
|
|
221
|
-
return this._isEffectComplete;
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Reset the effect
|
|
225
|
-
*/
|
|
226
|
-
onReset() {
|
|
227
|
-
this.characterStates.clear();
|
|
228
|
-
this.burnFront = -1;
|
|
229
|
-
this.animationFrameCount = 0;
|
|
230
|
-
this._isEffectComplete = false;
|
|
231
|
-
this.onInitialize();
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
//# sourceMappingURL=burn.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"burn.js","sourceRoot":"","sources":["../../../src/effects/implementations/burn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decrypt Effect
|
|
3
|
-
* Movie-style text decryption effect with typing animation
|
|
4
|
-
*/
|
|
5
|
-
import { BaseEffect } from "../types.js";
|
|
6
|
-
/**
|
|
7
|
-
* Configuration options for the Decrypt effect
|
|
8
|
-
*/
|
|
9
|
-
export interface DecryptEffectOptions {
|
|
10
|
-
/** Duration in milliseconds */
|
|
11
|
-
duration?: number;
|
|
12
|
-
/** Number of characters typed per keystroke */
|
|
13
|
-
typingSpeed?: number;
|
|
14
|
-
/** Colors for the ciphertext (randomly selected per character) */
|
|
15
|
-
ciphertextColors?: string[];
|
|
16
|
-
/** Final color for decrypted text */
|
|
17
|
-
finalColor?: string;
|
|
18
|
-
/** Use gradient for final color */
|
|
19
|
-
useGradient?: boolean;
|
|
20
|
-
/** Gradient direction (vertical or horizontal) */
|
|
21
|
-
gradientDirection?: "vertical" | "horizontal";
|
|
22
|
-
/** Typing probability per frame (0-1) */
|
|
23
|
-
typingProbability?: number;
|
|
24
|
-
/** Fast reveal mode - complete animation in first portion of duration */
|
|
25
|
-
fastReveal?: boolean;
|
|
26
|
-
/** Percentage of duration to complete animation (0-1) when fastReveal is true */
|
|
27
|
-
revealCompletionRatio?: number;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Decrypt effect implementation
|
|
31
|
-
*/
|
|
32
|
-
export declare class DecryptEffect extends BaseEffect {
|
|
33
|
-
readonly name = "Decrypt";
|
|
34
|
-
readonly description = "Movie-style text decryption effect with typing animation";
|
|
35
|
-
private options;
|
|
36
|
-
private characterStates;
|
|
37
|
-
private animationFrameCount;
|
|
38
|
-
private totalFrames;
|
|
39
|
-
private typingQueue;
|
|
40
|
-
private activeTypingChars;
|
|
41
|
-
private decryptingChars;
|
|
42
|
-
private _isEffectComplete;
|
|
43
|
-
private readonly encryptedSymbols;
|
|
44
|
-
private readonly typingSymbols;
|
|
45
|
-
constructor(options?: DecryptEffectOptions);
|
|
46
|
-
/**
|
|
47
|
-
* Initialize the pool of encrypted symbols
|
|
48
|
-
*/
|
|
49
|
-
private initializeEncryptedSymbols;
|
|
50
|
-
/**
|
|
51
|
-
* Initialize the effect
|
|
52
|
-
*/
|
|
53
|
-
protected onInitialize(): void;
|
|
54
|
-
/**
|
|
55
|
-
* Calculate gradient colors based on dimensions
|
|
56
|
-
*/
|
|
57
|
-
private calculateGradientColors;
|
|
58
|
-
/**
|
|
59
|
-
* Render the next frame
|
|
60
|
-
*/
|
|
61
|
-
render(): Promise<string[]>;
|
|
62
|
-
/**
|
|
63
|
-
* Update animation state for all characters
|
|
64
|
-
*/
|
|
65
|
-
private updateAnimationState;
|
|
66
|
-
/**
|
|
67
|
-
* Update typing phase animation
|
|
68
|
-
*/
|
|
69
|
-
private updateTypingPhase;
|
|
70
|
-
/**
|
|
71
|
-
* Update decryption phase animation
|
|
72
|
-
*/
|
|
73
|
-
private updateDecryptionPhase;
|
|
74
|
-
/**
|
|
75
|
-
* Create visual representation of a character
|
|
76
|
-
*/
|
|
77
|
-
private createCharacterVisual;
|
|
78
|
-
/**
|
|
79
|
-
* Get a random ciphertext color
|
|
80
|
-
*/
|
|
81
|
-
private getRandomCiphertextColor;
|
|
82
|
-
/**
|
|
83
|
-
* Get a random encrypted symbol
|
|
84
|
-
*/
|
|
85
|
-
private getRandomEncryptedSymbol;
|
|
86
|
-
/**
|
|
87
|
-
* Check if the effect is complete
|
|
88
|
-
*/
|
|
89
|
-
private checkCompletion;
|
|
90
|
-
/**
|
|
91
|
-
* Shuffle array in place
|
|
92
|
-
*/
|
|
93
|
-
private shuffleArray;
|
|
94
|
-
/**
|
|
95
|
-
* Get ANSI color code for a color
|
|
96
|
-
*/
|
|
97
|
-
private getColorCode;
|
|
98
|
-
/**
|
|
99
|
-
* Interpolate between two colors
|
|
100
|
-
*/
|
|
101
|
-
private interpolateColor;
|
|
102
|
-
/**
|
|
103
|
-
* Render fallback for when effects are disabled
|
|
104
|
-
*/
|
|
105
|
-
renderFallback(): string[];
|
|
106
|
-
/**
|
|
107
|
-
* Check if effect is complete
|
|
108
|
-
*/
|
|
109
|
-
isComplete(): boolean;
|
|
110
|
-
/**
|
|
111
|
-
* Reset the effect
|
|
112
|
-
*/
|
|
113
|
-
protected onReset(): void;
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=decrypt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decrypt.d.ts","sourceRoot":"","sources":["../../../src/effects/implementations/decrypt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAKX,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IAC9C,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAiBD;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,8DAA8D;IAElF,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,eAAe,CAAiD;IACxE,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;gBAE1C,OAAO,GAAE,oBAAyB;IAiB9C;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IA8C9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAuCjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+D7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwC7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAMhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAMhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;CAS1B"}
|