@pawells/math-extended 2.0.0 → 3.0.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/README.md +15 -21
- package/build/clamp.d.ts +5 -5
- package/build/clamp.js +5 -5
- package/build/core.d.ts +23 -0
- package/build/core.d.ts.map +1 -0
- package/build/core.js +25 -0
- package/build/core.js.map +1 -0
- package/build/index.d.ts +1 -4
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -6
- package/build/index.js.map +1 -1
- package/build/interpolation.d.ts +158 -171
- package/build/interpolation.d.ts.map +1 -1
- package/build/interpolation.js +162 -181
- package/build/interpolation.js.map +1 -1
- package/build/matrices/arithmetic.d.ts +132 -132
- package/build/matrices/arithmetic.d.ts.map +1 -1
- package/build/matrices/arithmetic.js +194 -226
- package/build/matrices/arithmetic.js.map +1 -1
- package/build/matrices/asserts.d.ts +30 -408
- package/build/matrices/asserts.d.ts.map +1 -1
- package/build/matrices/asserts.js +98 -542
- package/build/matrices/asserts.js.map +1 -1
- package/build/matrices/core.d.ts +117 -46
- package/build/matrices/core.d.ts.map +1 -1
- package/build/matrices/core.js +127 -103
- package/build/matrices/core.js.map +1 -1
- package/build/matrices/decompositions.d.ts +95 -96
- package/build/matrices/decompositions.d.ts.map +1 -1
- package/build/matrices/decompositions.js +119 -160
- package/build/matrices/decompositions.js.map +1 -1
- package/build/matrices/index.d.ts +0 -1
- package/build/matrices/index.d.ts.map +1 -1
- package/build/matrices/index.js +0 -3
- package/build/matrices/index.js.map +1 -1
- package/build/matrices/linear-algebra.d.ts +45 -8
- package/build/matrices/linear-algebra.d.ts.map +1 -1
- package/build/matrices/linear-algebra.js +76 -32
- package/build/matrices/linear-algebra.js.map +1 -1
- package/build/matrices/normalization.d.ts +29 -8
- package/build/matrices/normalization.d.ts.map +1 -1
- package/build/matrices/normalization.js +32 -23
- package/build/matrices/normalization.js.map +1 -1
- package/build/matrices/transformations.d.ts +116 -148
- package/build/matrices/transformations.d.ts.map +1 -1
- package/build/matrices/transformations.js +69 -91
- package/build/matrices/transformations.js.map +1 -1
- package/build/matrices/types.d.ts +32 -60
- package/build/matrices/types.d.ts.map +1 -1
- package/build/matrices/types.js +63 -1
- package/build/matrices/types.js.map +1 -1
- package/build/quaternions/asserts.d.ts +29 -38
- package/build/quaternions/asserts.d.ts.map +1 -1
- package/build/quaternions/asserts.js +61 -77
- package/build/quaternions/asserts.js.map +1 -1
- package/build/quaternions/conversions.d.ts +26 -26
- package/build/quaternions/conversions.d.ts.map +1 -1
- package/build/quaternions/conversions.js +24 -24
- package/build/quaternions/core.d.ts +70 -69
- package/build/quaternions/core.d.ts.map +1 -1
- package/build/quaternions/core.js +71 -71
- package/build/quaternions/core.js.map +1 -1
- package/build/quaternions/index.d.ts +0 -1
- package/build/quaternions/index.d.ts.map +1 -1
- package/build/quaternions/index.js +0 -2
- package/build/quaternions/index.js.map +1 -1
- package/build/quaternions/interpolation.d.ts +16 -16
- package/build/quaternions/interpolation.d.ts.map +1 -1
- package/build/quaternions/interpolation.js +21 -21
- package/build/quaternions/interpolation.js.map +1 -1
- package/build/quaternions/predefined.d.ts +10 -10
- package/build/quaternions/predefined.d.ts.map +1 -1
- package/build/quaternions/predefined.js +9 -9
- package/build/quaternions/types.d.ts +23 -12
- package/build/quaternions/types.d.ts.map +1 -1
- package/build/quaternions/types.js +51 -1
- package/build/quaternions/types.js.map +1 -1
- package/build/random.d.ts +66 -20
- package/build/random.d.ts.map +1 -1
- package/build/random.js +73 -20
- package/build/random.js.map +1 -1
- package/build/vectors/asserts.d.ts +50 -220
- package/build/vectors/asserts.d.ts.map +1 -1
- package/build/vectors/asserts.js +141 -327
- package/build/vectors/asserts.js.map +1 -1
- package/build/vectors/core.d.ts +182 -229
- package/build/vectors/core.d.ts.map +1 -1
- package/build/vectors/core.js +234 -288
- package/build/vectors/core.js.map +1 -1
- package/build/vectors/index.d.ts +0 -1
- package/build/vectors/index.d.ts.map +1 -1
- package/build/vectors/index.js +0 -2
- package/build/vectors/index.js.map +1 -1
- package/build/vectors/interpolation.d.ts +40 -40
- package/build/vectors/interpolation.d.ts.map +1 -1
- package/build/vectors/interpolation.js +75 -86
- package/build/vectors/interpolation.js.map +1 -1
- package/build/vectors/predefined.d.ts +31 -7
- package/build/vectors/predefined.d.ts.map +1 -1
- package/build/vectors/predefined.js +30 -6
- package/build/vectors/predefined.js.map +1 -1
- package/build/vectors/types.d.ts +26 -4
- package/build/vectors/types.d.ts.map +1 -1
- package/build/vectors/types.js +50 -1
- package/build/vectors/types.js.map +1 -1
- package/package.json +3 -2
- package/build/matrices/_exports.d.ts +0 -13
- package/build/matrices/_exports.d.ts.map +0 -1
- package/build/matrices/_exports.js +0 -13
- package/build/matrices/_exports.js.map +0 -1
- package/build/quaternions/_exports.d.ts +0 -11
- package/build/quaternions/_exports.d.ts.map +0 -1
- package/build/quaternions/_exports.js +0 -11
- package/build/quaternions/_exports.js.map +0 -1
- package/build/vectors/_exports.d.ts +0 -10
- package/build/vectors/_exports.d.ts.map +0 -1
- package/build/vectors/_exports.js +0 -10
- package/build/vectors/_exports.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TMatrix } from './types.js';
|
|
1
|
+
import type { TMatrix } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Result of eigenvalue decomposition containing eigenvalues and their corresponding eigenvectors.
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@ import { TMatrix } from './types.js';
|
|
|
6
6
|
* The eigenvalues represent the scaling factors, while eigenvectors represent the directions
|
|
7
7
|
* that remain unchanged (up to scaling) under the linear transformation.
|
|
8
8
|
*/
|
|
9
|
-
type TEigenDecompositionResult = {
|
|
9
|
+
export type TEigenDecompositionResult = {
|
|
10
10
|
/** Array of eigenvalues λ in descending order */
|
|
11
11
|
eigenvalues: number[];
|
|
12
12
|
/** Matrix where each column is an eigenvector corresponding to the eigenvalue at the same index */
|
|
@@ -20,7 +20,7 @@ type TEigenDecompositionResult = {
|
|
|
20
20
|
* performed during partial pivoting. This is useful for solving systems of linear equations,
|
|
21
21
|
* computing determinants, and matrix inversion.
|
|
22
22
|
*/
|
|
23
|
-
type TLUDecompositionResult = {
|
|
23
|
+
export type TLUDecompositionResult = {
|
|
24
24
|
/** Lower triangular matrix with 1's on the diagonal */
|
|
25
25
|
readonly L: TMatrix;
|
|
26
26
|
/** Upper triangular matrix containing the pivots */
|
|
@@ -35,7 +35,7 @@ type TLUDecompositionResult = {
|
|
|
35
35
|
* and an upper triangular matrix R. This decomposition is fundamental for least squares
|
|
36
36
|
* problems, eigenvalue algorithms, and solving overdetermined linear systems.
|
|
37
37
|
*/
|
|
38
|
-
type TQRDecompositionResult = {
|
|
38
|
+
export type TQRDecompositionResult = {
|
|
39
39
|
/** Orthogonal matrix where Q^T × Q = I */
|
|
40
40
|
readonly Q: TMatrix;
|
|
41
41
|
/** Upper triangular matrix */
|
|
@@ -74,23 +74,21 @@ type TSVDDecompositionResult = {
|
|
|
74
74
|
*
|
|
75
75
|
* @param matrix - The symmetric positive definite square matrix to decompose
|
|
76
76
|
* @returns Lower triangular matrix L such that A = L × L^T
|
|
77
|
-
* @throws {
|
|
77
|
+
* @throws {MatrixError} If matrix is not square, not symmetric, or not positive definite
|
|
78
78
|
*
|
|
79
79
|
* @example
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
* @see {@link MatrixLU} For general square matrices that may not be positive definite
|
|
93
|
-
* ```
|
|
80
|
+
* ```typescript
|
|
81
|
+
* // Symmetric positive definite matrix
|
|
82
|
+
* const A = [[4, 2], [2, 3]];
|
|
83
|
+
* const L = MatrixCholesky(A);
|
|
84
|
+
* // L = [[2, 0], [1, √2]] ≈ [[2, 0], [1, 1.414]]
|
|
85
|
+
* // Verify: L × L^T should equal A
|
|
86
|
+
* const LT = MatrixTranspose(L);
|
|
87
|
+
* const reconstructed = MatrixMultiply(L, LT);
|
|
88
|
+
* // reconstructed ≈ [[4, 2], [2, 3]]
|
|
89
|
+
* ```
|
|
90
|
+
* @complexity Time: O(n³/3), Space: O(n²) - About 2x faster than general LU decomposition
|
|
91
|
+
* @see {@link MatrixLU} For general square matrices that may not be positive definite
|
|
94
92
|
*/
|
|
95
93
|
export declare function MatrixCholesky(matrix: TMatrix): TMatrix;
|
|
96
94
|
/**
|
|
@@ -114,25 +112,23 @@ export declare function MatrixCholesky(matrix: TMatrix): TMatrix;
|
|
|
114
112
|
*
|
|
115
113
|
* @param matrix - The square matrix to decompose
|
|
116
114
|
* @returns Object containing eigenvalues and eigenvectors
|
|
117
|
-
* @throws {
|
|
115
|
+
* @throws {MatrixError} If matrix is not square, contains invalid values, or has complex eigenvalues
|
|
118
116
|
*
|
|
119
117
|
* @example
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
* @see {@link MatrixEigenQRIteration} For the iterative algorithm used for larger matrices
|
|
135
|
-
* ```
|
|
118
|
+
* ```typescript
|
|
119
|
+
* // Simple 2x2 matrix
|
|
120
|
+
* const A = [[3, 1], [0, 2]];
|
|
121
|
+
* const { eigenvalues, eigenvectors } = MatrixEigen(A);
|
|
122
|
+
* // eigenvalues: [3, 2]
|
|
123
|
+
* // eigenvectors: matrix where each column corresponds to an eigenvalue
|
|
124
|
+
* // Verify eigenvalue equation: A × v = λ × v
|
|
125
|
+
* const v = Matrix_GetColumn(eigenvectors, 0); // First eigenvector
|
|
126
|
+
* const Av = MatrixMultiplyVector(A, v);
|
|
127
|
+
* const lambdaV = Matrix_ScaleVector(v, eigenvalues[0]);
|
|
128
|
+
* // Av should approximately equal lambdaV
|
|
129
|
+
* ```
|
|
130
|
+
* @complexity O(n³) time for an n×n matrix
|
|
131
|
+
* @see {@link MatrixEigenQRIteration} For the iterative algorithm used for larger matrices
|
|
136
132
|
*/
|
|
137
133
|
export declare function MatrixEigen(matrix: TMatrix): TEigenDecompositionResult;
|
|
138
134
|
/**
|
|
@@ -150,9 +146,16 @@ export declare function MatrixEigen(matrix: TMatrix): TEigenDecompositionResult;
|
|
|
150
146
|
* 4. Repeat until convergence (off-diagonal elements become small)
|
|
151
147
|
* 5. Eigenvalues are the diagonal elements of the final matrix
|
|
152
148
|
*
|
|
149
|
+
* **Convergence Notes:**
|
|
150
|
+
* The convergence check (examining off-diagonal elements) is optimized for symmetric
|
|
151
|
+
* inputs, which SVD provides via A^T A. For practical n×n matrices with well-conditioned
|
|
152
|
+
* symmetric inputs, convergence typically occurs within 2–5n iterations. The default
|
|
153
|
+
* maximum of 50 iterations is sufficient for matrices up to size ~10×10; larger matrices
|
|
154
|
+
* may require heuristic adjustments.
|
|
155
|
+
*
|
|
153
156
|
* @private
|
|
154
157
|
* @param matrix - Square matrix to compute eigenvalues for
|
|
155
|
-
* @param iterations - Maximum number of QR iterations (default: 50)
|
|
158
|
+
* @param iterations - Maximum number of QR iterations (default: EIGEN_MAX_ITERATIONS = 50)
|
|
156
159
|
* @returns Object containing eigenvalues and approximated eigenvectors
|
|
157
160
|
*
|
|
158
161
|
* @complexity O(n³) per iteration, typically converges in O(n) iterations
|
|
@@ -183,19 +186,17 @@ export declare function MatrixEigenQRIteration(matrix: TMatrix, iterations?: num
|
|
|
183
186
|
* @throws {MatrixError} If matrix is not square, singular (zero pivot), or contains invalid values
|
|
184
187
|
*
|
|
185
188
|
* @example
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
* @see {@link MatrixSolve} For solving Ax = b directly
|
|
198
|
-
* ```
|
|
189
|
+
* ```typescript
|
|
190
|
+
* const A = [[2, 1], [1, 1]];
|
|
191
|
+
* const { L, U, P } = MatrixLU(A);
|
|
192
|
+
* // L = [[1, 0], [0.5, 1]], U = [[2, 1], [0, 0.5]], P = [0, 1]
|
|
193
|
+
* // Verify: L × U should equal P-permuted A
|
|
194
|
+
* const product = MatrixMultiply(L, U);
|
|
195
|
+
* // product ≈ [[2, 1], [1, 1]]
|
|
196
|
+
* ```
|
|
197
|
+
* @complexity Time: O(n³/3), Space: O(n²)
|
|
198
|
+
* @see {@link MatrixCholesky} For symmetric positive definite matrices (more efficient)
|
|
199
|
+
* @see {@link MatrixSolve} For solving Ax = b directly
|
|
199
200
|
*/
|
|
200
201
|
export declare function MatrixLU(matrix: TMatrix): TLUDecompositionResult;
|
|
201
202
|
/**
|
|
@@ -219,25 +220,23 @@ export declare function MatrixLU(matrix: TMatrix): TLUDecompositionResult;
|
|
|
219
220
|
*
|
|
220
221
|
* @param matrix - Matrix to decompose (m×n where m ≥ n, must have full column rank)
|
|
221
222
|
* @returns Object containing orthogonal Q and upper triangular R matrices
|
|
222
|
-
* @throws {
|
|
223
|
+
* @throws {MatrixError} If matrix has more columns than rows or columns are linearly dependent
|
|
223
224
|
*
|
|
224
225
|
* @example
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
* @see {@link MatrixGramSchmidt} {@link MatrixLU} {@link MatrixEigenQRIteration}
|
|
240
|
-
* ```
|
|
226
|
+
* ```typescript
|
|
227
|
+
* const A = [[1, 1], [1, 0], [0, 1]]; // 3×2 matrix
|
|
228
|
+
* const { Q, R } = MatrixQR(A);
|
|
229
|
+
* // Q: 3×2 orthogonal matrix with Q^T × Q = I₂
|
|
230
|
+
* // R: 2×2 upper triangular matrix
|
|
231
|
+
* // Verify: Q × R should equal A
|
|
232
|
+
* const reconstructed = MatrixMultiply(Q, R);
|
|
233
|
+
* // reconstructed ≈ A
|
|
234
|
+
* // Check orthogonality: Q^T × Q should be identity
|
|
235
|
+
* const QT = MatrixTranspose(Q);
|
|
236
|
+
* const identity = MatrixMultiply(QT, Q);
|
|
237
|
+
* ```
|
|
238
|
+
* @complexity Time: O(mn²), Space: O(mn) where m ≥ n
|
|
239
|
+
* @see {@link MatrixGramSchmidt} {@link MatrixLU} {@link MatrixEigenQRIteration}
|
|
241
240
|
*/
|
|
242
241
|
export declare function MatrixQR(matrix: TMatrix, allowDependentColumns?: boolean): TQRDecompositionResult;
|
|
243
242
|
/**
|
|
@@ -270,27 +269,25 @@ export declare function MatrixQR(matrix: TMatrix, allowDependentColumns?: boolea
|
|
|
270
269
|
*
|
|
271
270
|
* @param matrix - Matrix to decompose (any m×n matrix)
|
|
272
271
|
* @returns Object containing U, S (singular values), and VT matrices
|
|
273
|
-
* @throws {
|
|
272
|
+
* @throws {MatrixError} If matrix contains invalid values (NaN, Infinity)
|
|
274
273
|
*
|
|
275
274
|
* @example
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
* @see {@link MatrixQR} {@link MatrixEigenQRIteration} {@link Matrix_PseudoInverse}
|
|
293
|
-
* ```
|
|
275
|
+
* ```typescript
|
|
276
|
+
* const A = [[1, 2], [3, 4], [5, 6]]; // 3×2 matrix
|
|
277
|
+
* const { U, S, VT } = MatrixSVD(A);
|
|
278
|
+
* // U: 3×2 matrix with orthonormal columns
|
|
279
|
+
* // S: [σ₁, σ₂] singular values in descending order
|
|
280
|
+
* // VT: 2×2 orthogonal matrix (V transposed)
|
|
281
|
+
* // Verify reconstruction: U × diag(S) × VT ≈ A
|
|
282
|
+
* // Note: Create diagonal matrix Sigma with S on diagonal, then: reconstructed = U × Sigma × VT
|
|
283
|
+
* const reconstructed = MatrixMultiply(MatrixMultiply(U, [[S[0], 0], [0, S[1]]]), VT);
|
|
284
|
+
* // Matrix rank from singular values (count non-zero values)
|
|
285
|
+
* const rank = S.filter(s => s > 1e-10).length;
|
|
286
|
+
* // Condition number for stability analysis
|
|
287
|
+
* const conditionNumber = S[0] / S[S.length - 1];
|
|
288
|
+
* ```
|
|
289
|
+
* @complexity Time: O(min(m²n, mn²)), Space: O(m² + n²)
|
|
290
|
+
* @see {@link MatrixQR} {@link MatrixEigenQRIteration} {@link Matrix_PseudoInverse}
|
|
294
291
|
*/
|
|
295
292
|
export declare function MatrixSVD(matrix: TMatrix): TSVDDecompositionResult;
|
|
296
293
|
/**
|
|
@@ -307,16 +304,18 @@ export declare function MatrixSVD(matrix: TMatrix): TSVDDecompositionResult;
|
|
|
307
304
|
* @throws {MatrixError} If A is not square, singular, or b has the wrong length
|
|
308
305
|
*
|
|
309
306
|
* @example
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
307
|
+
* ```typescript
|
|
308
|
+
* // 2x + y = 8
|
|
309
|
+
* // 5x + 3y = 20
|
|
310
|
+
* MatrixSolve([[2, 1], [5, 3]], [8, 20]); // [4, 0]
|
|
311
|
+
* ```
|
|
312
|
+
* @example
|
|
313
|
+
* ```typescript
|
|
314
|
+
* // Solve a 3×3 system
|
|
315
|
+
* const A = [[1, 2, -1], [2, 1, 1], [3, -1, 2]];
|
|
316
|
+
* const b = [4, 7, 2];
|
|
317
|
+
* MatrixSolve(A, b); // solution vector x
|
|
318
|
+
* ```
|
|
320
319
|
*/
|
|
321
320
|
export declare function MatrixSolve(a: TMatrix, b: number[]): number[];
|
|
322
321
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompositions.d.ts","sourceRoot":"","sources":["../../src/matrices/decompositions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"decompositions.d.ts","sourceRoot":"","sources":["../../src/matrices/decompositions.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACvC,iDAAiD;IACjD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mGAAmG;IACnG,YAAY,EAAE,OAAO,CAAC;CACtB,CAAC;AACF;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC,uDAAuD;IAEvD,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IAEpD,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IAEjF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AACF;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC,0CAA0C;IAE1C,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,8BAA8B;IAE9B,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AACF;;;;;;;GAOG;AACH,KAAK,uBAAuB,GAAG;IAC9B,2DAA2D;IAE3D,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,qFAAqF;IAErF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,6FAA6F;IAE7F,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAyDvD;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,yBAAyB,CAyGtE;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,GAAE,MAA6B,GAAG,yBAAyB,CA2D5H;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,CA2EhE;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,UAAQ,GAAG,sBAAsB,CA6G/F;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB,CA2FlE;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqD7D"}
|