linearly 0.24.3 → 0.26.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.
Files changed (55) hide show
  1. package/lib/cjs/mat2.d.ts +90 -42
  2. package/lib/cjs/mat2.d.ts.map +1 -1
  3. package/lib/cjs/mat2.js +94 -46
  4. package/lib/cjs/mat2d.d.ts +109 -55
  5. package/lib/cjs/mat2d.d.ts.map +1 -1
  6. package/lib/cjs/mat2d.js +112 -58
  7. package/lib/cjs/mat3.d.ts +93 -45
  8. package/lib/cjs/mat3.d.ts.map +1 -1
  9. package/lib/cjs/mat3.js +96 -48
  10. package/lib/cjs/mat4.d.ts +93 -45
  11. package/lib/cjs/mat4.d.ts.map +1 -1
  12. package/lib/cjs/mat4.js +96 -48
  13. package/lib/cjs/quat.d.ts +62 -29
  14. package/lib/cjs/quat.d.ts.map +1 -1
  15. package/lib/cjs/quat.js +64 -31
  16. package/lib/cjs/scalar.d.ts +164 -54
  17. package/lib/cjs/scalar.d.ts.map +1 -1
  18. package/lib/cjs/scalar.js +192 -62
  19. package/lib/cjs/vec2.d.ts +176 -72
  20. package/lib/cjs/vec2.d.ts.map +1 -1
  21. package/lib/cjs/vec2.js +208 -105
  22. package/lib/cjs/vec3.d.ts +183 -82
  23. package/lib/cjs/vec3.d.ts.map +1 -1
  24. package/lib/cjs/vec3.js +210 -93
  25. package/lib/cjs/vec4.d.ts +159 -67
  26. package/lib/cjs/vec4.d.ts.map +1 -1
  27. package/lib/cjs/vec4.js +189 -78
  28. package/lib/esm/mat2.d.ts +90 -42
  29. package/lib/esm/mat2.d.ts.map +1 -1
  30. package/lib/esm/mat2.js +94 -46
  31. package/lib/esm/mat2d.d.ts +109 -55
  32. package/lib/esm/mat2d.d.ts.map +1 -1
  33. package/lib/esm/mat2d.js +112 -58
  34. package/lib/esm/mat3.d.ts +93 -45
  35. package/lib/esm/mat3.d.ts.map +1 -1
  36. package/lib/esm/mat3.js +96 -48
  37. package/lib/esm/mat4.d.ts +93 -45
  38. package/lib/esm/mat4.d.ts.map +1 -1
  39. package/lib/esm/mat4.js +96 -48
  40. package/lib/esm/quat.d.ts +62 -29
  41. package/lib/esm/quat.d.ts.map +1 -1
  42. package/lib/esm/quat.js +64 -31
  43. package/lib/esm/scalar.d.ts +164 -54
  44. package/lib/esm/scalar.d.ts.map +1 -1
  45. package/lib/esm/scalar.js +192 -62
  46. package/lib/esm/vec2.d.ts +176 -72
  47. package/lib/esm/vec2.d.ts.map +1 -1
  48. package/lib/esm/vec2.js +208 -105
  49. package/lib/esm/vec3.d.ts +183 -82
  50. package/lib/esm/vec3.d.ts.map +1 -1
  51. package/lib/esm/vec3.js +210 -93
  52. package/lib/esm/vec4.d.ts +159 -67
  53. package/lib/esm/vec4.d.ts.map +1 -1
  54. package/lib/esm/vec4.js +189 -78
  55. package/package.json +1 -1
@@ -63,8 +63,22 @@ export declare namespace mat2d {
63
63
  * 0, 0]
64
64
  * ```
65
65
  * @category Constants
66
+ *
67
+ * @shorthands
68
+ * - {@link id}
69
+ * - {@link ident}
66
70
  */
67
71
  const identity: mat2d;
72
+ /**
73
+ * Alias for {@link identity}
74
+ * @category Shorthands
75
+ */
76
+ const id: mat2d;
77
+ /**
78
+ * Alias for {@link identity}
79
+ * @category Shorthands
80
+ */
81
+ const ident: mat2d;
68
82
  /**
69
83
  * The mat2d matrix filled with zeros.
70
84
  * @category Constants
@@ -72,16 +86,40 @@ export declare namespace mat2d {
72
86
  const zero: mat2d;
73
87
  /**
74
88
  * Inverts a mat2d
89
+ *
90
+ * @shorthands
91
+ * - {@link inv}
75
92
  */
76
93
  function invert(a: mat2d): mat2d | null;
94
+ /**
95
+ * Alias for {@link invert}
96
+ * @category Shorthands
97
+ */
98
+ const inv: typeof invert;
77
99
  /**
78
100
  * Calculates the determinant of a mat2d
101
+ *
102
+ * @shorthands
103
+ * - {@link det}
79
104
  */
80
105
  function determinant(a: mat2d): number;
106
+ /**
107
+ * Alias for {@link determinant}
108
+ * @category Shorthands
109
+ */
110
+ const det: typeof determinant;
81
111
  /**
82
112
  * Multiplies given mat2d's
113
+ *
114
+ * @shorthands
115
+ * - {@link mul}
83
116
  */
84
117
  function multiply(...ms: mat2d[]): mat2d;
118
+ /**
119
+ * Alias for {@link multiply}
120
+ * @category Shorthands
121
+ */
122
+ const mul: typeof multiply;
85
123
  /**
86
124
  * Rotates a mat2d by the given angle
87
125
  */
@@ -104,24 +142,56 @@ export declare namespace mat2d {
104
142
  * Creates a matrix from a given angle
105
143
  * This is equivalent to (but much faster than):
106
144
  * @category Generators
145
+ *
146
+ * @shorthands
147
+ * - {@link rotation}
107
148
  */
108
149
  function fromRotation(deg: number, origin?: vec2): mat2d;
150
+ /**
151
+ * Alias for {@link fromRotation}
152
+ * @category Shorthands
153
+ */
154
+ const rotation: typeof fromRotation;
109
155
  /**
110
156
  * Creates a matrix from a vector scaling
111
157
  * @category Generators
158
+ *
159
+ * @shorthands
160
+ * - {@link scaling}
112
161
  */
113
162
  function fromScaling(v: vec2 | number, origin?: vec2): mat2d;
163
+ /**
164
+ * Alias for {@link fromScaling}
165
+ * @category Shorthands
166
+ */
167
+ const scaling: typeof fromScaling;
114
168
  /**
115
169
  * Creates a matrix from a vector translation
116
170
  * @category Generators
171
+ *
172
+ * @shorthands
173
+ * - {@link translation}
117
174
  */
118
175
  function fromTranslation(v: vec2 | number): mat2d;
176
+ /**
177
+ * Alias for {@link fromTranslation}
178
+ * @category Shorthands
179
+ */
180
+ const translation: typeof fromTranslation;
119
181
  /**
120
182
  * Creates a matrix from a vector skew
121
183
  * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew
122
184
  * @category Generators
185
+ *
186
+ * @shorthands
187
+ * - {@link skewing}
123
188
  */
124
189
  function fromSkew(deg: vec2, origin?: vec2): mat2d;
190
+ /**
191
+ * Alias for {@link fromSkew}
192
+ * @category Shorthands
193
+ */
194
+ const skewing: typeof fromSkew;
125
195
  /**
126
196
  * Computes a fixed point of the given matrix.
127
197
  * @param m The matrix to compute a fixed point of
@@ -138,8 +208,16 @@ export declare namespace mat2d {
138
208
  function add(...ms: mat2d[]): mat2d;
139
209
  /**
140
210
  * Subtracts matrix b from matrix a
211
+ *
212
+ * @shorthands
213
+ * - {@link sub}
141
214
  */
142
215
  function subtract(...ms: mat2d[]): mat2d;
216
+ /**
217
+ * Alias for {@link subtract}
218
+ * @category Shorthands
219
+ */
220
+ const sub: typeof subtract;
143
221
  /**
144
222
  * Subtracts b from a
145
223
  */
@@ -171,8 +249,16 @@ export declare namespace mat2d {
171
249
  * @param r Rotation angle in degrees
172
250
  * @param s Scaling vector
173
251
  * @returns The matrix that represents the transformation
252
+ *
253
+ * @shorthands
254
+ * - {@link trs}
174
255
  */
175
256
  function fromTRS(t?: vec2 | null, r?: number | null, s?: vec2 | null): mat2d;
257
+ /**
258
+ * Alias for {@link fromTRS}
259
+ * @category Shorthands
260
+ */
261
+ const trs: typeof fromTRS;
176
262
  /**
177
263
  * Copies a the values from {@link mat2}, assuming the translation component is `[0, 0]`
178
264
  * @param m The matrix to convert
@@ -182,72 +268,40 @@ export declare namespace mat2d {
182
268
  function fromMat2(m: mat2): mat2d;
183
269
  /**
184
270
  * Returns whether or not the matrices have exactly the same elements in the same position (when compared with `===`)
271
+ *
272
+ * @shorthands
273
+ * - {@link eq}
185
274
  */
186
275
  function exactEquals(a: mat2d, b: mat2d): boolean;
187
276
  /**
188
- * Returns whether or not the matrices have approximately the same elements in the same position.
189
- */
190
- function equals(a: mat2d, b: mat2d): boolean;
191
- /**
192
- * Returns a string representation of a mat2d
193
- * @param m matrix to represent as a string
194
- * @param fractionDigits number of digits to appear after the decimal point
195
- */
196
- const toString: (m: mat2d, fractionDigits?: number) => string;
197
- /**
198
- * Alias for {@link identity}
199
- * @category Aliases
200
- */
201
- const id: mat2d;
202
- /**
203
- * Alias for {@link identity}
204
- * @category Aliases
205
- */
206
- const ident: mat2d;
207
- /**
208
- * Alias for {@link subtract}
209
- * @category Aliases
210
- */
211
- const sub: typeof subtract;
212
- /**
213
- * Alias for {@link multiply}
214
- * @category Aliases
215
- */
216
- const mul: typeof multiply;
217
- /**
218
- * Alias for {@link determinant}
219
- * @category Aliases
277
+ * Alias for {@link exactEquals}
278
+ * @category Shorthands
220
279
  */
221
- const det: typeof determinant;
280
+ const eq: typeof exactEquals;
222
281
  /**
223
- * Alias for {@link invert}
224
- * @category Aliases
282
+ * Returns whether or not the matrices have approximately the same elements in the same position.
283
+ *
284
+ * @shorthands
285
+ * - {@link approx}
286
+ * - {@link equals}
225
287
  */
226
- const inv: typeof invert;
288
+ function approxEquals(a: mat2d, b: mat2d): boolean;
227
289
  /**
228
- * Alias for {@link fromTranslation}
229
- * @category Aliases
290
+ * Alias for {@link approxEquals}
291
+ * @category Shorthands
230
292
  */
231
- const translation: typeof fromTranslation;
293
+ const approx: typeof approxEquals;
232
294
  /**
233
- * Alias for {@link fromRotation}
234
- * @category Aliases
295
+ * Alias for {@link approxEquals}. This is provided for compatibility with gl-matrix.
296
+ * @category Shorthands
297
+ * @deprecated Use {@link approxEquals} instead
235
298
  */
236
- const rotation: typeof fromRotation;
299
+ const equals: typeof approxEquals;
237
300
  /**
238
- * Alias for {@link fromScaling}
239
- * @category Aliases
240
- */
241
- const scaling: typeof fromScaling;
242
- /**
243
- * Alias for {@link fromSkew}
244
- * @category Aliases
245
- */
246
- const skewing: typeof fromSkew;
247
- /**
248
- * Alias for {@link fromTRS}
249
- * @category Aliases
301
+ * Returns a string representation of a mat2d
302
+ * @param m matrix to represent as a string
303
+ * @param fractionDigits number of digits to appear after the decimal point
250
304
  */
251
- const trs: typeof fromTRS;
305
+ const toString: (m: mat2d, fractionDigits?: number) => string;
252
306
  }
253
307
  //# sourceMappingURL=mat2d.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mat2d.d.ts","sourceRoot":"","sources":["../../src/mat2d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mat2d.d.ts","sourceRoot":"","sources":["../../src/mat2d.ts"],"names":[],"mappings":"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"}
package/lib/cjs/mat2d.js CHANGED
@@ -58,6 +58,10 @@ var mat2d;
58
58
  * 0, 0]
59
59
  * ```
60
60
  * @category Constants
61
+ *
62
+ * @shorthands
63
+ * - {@link id}
64
+ * - {@link ident}
61
65
  */
62
66
  // prettier-ignore
63
67
  mat2d.identity = Object.freeze([
@@ -65,6 +69,16 @@ var mat2d;
65
69
  0, 1,
66
70
  0, 0
67
71
  ]);
72
+ /**
73
+ * Alias for {@link identity}
74
+ * @category Shorthands
75
+ */
76
+ mat2d.id = mat2d.identity;
77
+ /**
78
+ * Alias for {@link identity}
79
+ * @category Shorthands
80
+ */
81
+ mat2d.ident = mat2d.identity;
68
82
  /**
69
83
  * The mat2d matrix filled with zeros.
70
84
  * @category Constants
@@ -72,6 +86,9 @@ var mat2d;
72
86
  mat2d.zero = Object.freeze([0, 0, 0, 0, 0, 0]);
73
87
  /**
74
88
  * Inverts a mat2d
89
+ *
90
+ * @shorthands
91
+ * - {@link inv}
75
92
  */
76
93
  function invert(a) {
77
94
  const [aa, ab, ac, ad, atx, aty] = a;
@@ -89,15 +106,31 @@ var mat2d;
89
106
  ];
90
107
  }
91
108
  mat2d.invert = invert;
109
+ /**
110
+ * Alias for {@link invert}
111
+ * @category Shorthands
112
+ */
113
+ mat2d.inv = invert;
92
114
  /**
93
115
  * Calculates the determinant of a mat2d
116
+ *
117
+ * @shorthands
118
+ * - {@link det}
94
119
  */
95
120
  function determinant(a) {
96
121
  return a[0] * a[3] - a[1] * a[2];
97
122
  }
98
123
  mat2d.determinant = determinant;
124
+ /**
125
+ * Alias for {@link determinant}
126
+ * @category Shorthands
127
+ */
128
+ mat2d.det = determinant;
99
129
  /**
100
130
  * Multiplies given mat2d's
131
+ *
132
+ * @shorthands
133
+ * - {@link mul}
101
134
  */
102
135
  function multiply(...ms) {
103
136
  if (ms.length === 0) {
@@ -122,6 +155,11 @@ var mat2d;
122
155
  ];
123
156
  }
124
157
  mat2d.multiply = multiply;
158
+ /**
159
+ * Alias for {@link multiply}
160
+ * @category Shorthands
161
+ */
162
+ mat2d.mul = multiply;
125
163
  /**
126
164
  * Rotates a mat2d by the given angle
127
165
  */
@@ -190,6 +228,9 @@ var mat2d;
190
228
  * Creates a matrix from a given angle
191
229
  * This is equivalent to (but much faster than):
192
230
  * @category Generators
231
+ *
232
+ * @shorthands
233
+ * - {@link rotation}
193
234
  */
194
235
  function fromRotation(deg, origin) {
195
236
  if (origin) {
@@ -205,9 +246,17 @@ var mat2d;
205
246
  ];
206
247
  }
207
248
  mat2d.fromRotation = fromRotation;
249
+ /**
250
+ * Alias for {@link fromRotation}
251
+ * @category Shorthands
252
+ */
253
+ mat2d.rotation = fromRotation;
208
254
  /**
209
255
  * Creates a matrix from a vector scaling
210
256
  * @category Generators
257
+ *
258
+ * @shorthands
259
+ * - {@link scaling}
211
260
  */
212
261
  function fromScaling(v, origin) {
213
262
  if (origin) {
@@ -222,9 +271,17 @@ var mat2d;
222
271
  ];
223
272
  }
224
273
  mat2d.fromScaling = fromScaling;
274
+ /**
275
+ * Alias for {@link fromScaling}
276
+ * @category Shorthands
277
+ */
278
+ mat2d.scaling = fromScaling;
225
279
  /**
226
280
  * Creates a matrix from a vector translation
227
281
  * @category Generators
282
+ *
283
+ * @shorthands
284
+ * - {@link translation}
228
285
  */
229
286
  function fromTranslation(v) {
230
287
  const [x, y] = typeof v === 'number' ? [v, v] : v;
@@ -236,10 +293,18 @@ var mat2d;
236
293
  ];
237
294
  }
238
295
  mat2d.fromTranslation = fromTranslation;
296
+ /**
297
+ * Alias for {@link fromTranslation}
298
+ * @category Shorthands
299
+ */
300
+ mat2d.translation = fromTranslation;
239
301
  /**
240
302
  * Creates a matrix from a vector skew
241
303
  * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew
242
304
  * @category Generators
305
+ *
306
+ * @shorthands
307
+ * - {@link skewing}
243
308
  */
244
309
  function fromSkew(deg, origin) {
245
310
  if (origin) {
@@ -256,6 +321,11 @@ var mat2d;
256
321
  ];
257
322
  }
258
323
  mat2d.fromSkew = fromSkew;
324
+ /**
325
+ * Alias for {@link fromSkew}
326
+ * @category Shorthands
327
+ */
328
+ mat2d.skewing = fromSkew;
259
329
  /**
260
330
  * Computes a fixed point of the given matrix.
261
331
  * @param m The matrix to compute a fixed point of
@@ -301,6 +371,9 @@ var mat2d;
301
371
  mat2d.add = add;
302
372
  /**
303
373
  * Subtracts matrix b from matrix a
374
+ *
375
+ * @shorthands
376
+ * - {@link sub}
304
377
  */
305
378
  function subtract(...ms) {
306
379
  if (ms.length === 0) {
@@ -324,6 +397,11 @@ var mat2d;
324
397
  ];
325
398
  }
326
399
  mat2d.subtract = subtract;
400
+ /**
401
+ * Alias for {@link subtract}
402
+ * @category Shorthands
403
+ */
404
+ mat2d.sub = subtract;
327
405
  /**
328
406
  * Subtracts b from a
329
407
  */
@@ -417,6 +495,9 @@ var mat2d;
417
495
  * @param r Rotation angle in degrees
418
496
  * @param s Scaling vector
419
497
  * @returns The matrix that represents the transformation
498
+ *
499
+ * @shorthands
500
+ * - {@link trs}
420
501
  */
421
502
  function fromTRS(t = null, r = null, s = null) {
422
503
  t ??= vec2_1.vec2.zero;
@@ -427,6 +508,11 @@ var mat2d;
427
508
  return [s[0] * C, s[0] * S, s[1] * -S, s[1] * C, ...t];
428
509
  }
429
510
  mat2d.fromTRS = fromTRS;
511
+ /**
512
+ * Alias for {@link fromTRS}
513
+ * @category Shorthands
514
+ */
515
+ mat2d.trs = fromTRS;
430
516
  /**
431
517
  * Copies a the values from {@link mat2}, assuming the translation component is `[0, 0]`
432
518
  * @param m The matrix to convert
@@ -439,6 +525,9 @@ var mat2d;
439
525
  mat2d.fromMat2 = fromMat2;
440
526
  /**
441
527
  * Returns whether or not the matrices have exactly the same elements in the same position (when compared with `===`)
528
+ *
529
+ * @shorthands
530
+ * - {@link eq}
442
531
  */
443
532
  function exactEquals(a, b) {
444
533
  return (a[0] === b[0] &&
@@ -449,10 +538,19 @@ var mat2d;
449
538
  a[5] === b[5]);
450
539
  }
451
540
  mat2d.exactEquals = exactEquals;
541
+ /**
542
+ * Alias for {@link exactEquals}
543
+ * @category Shorthands
544
+ */
545
+ mat2d.eq = exactEquals;
452
546
  /**
453
547
  * Returns whether or not the matrices have approximately the same elements in the same position.
548
+ *
549
+ * @shorthands
550
+ * - {@link approx}
551
+ * - {@link equals}
454
552
  */
455
- function equals(a, b) {
553
+ function approxEquals(a, b) {
456
554
  const [a0, a1, a2, a3, a4, a5] = a;
457
555
  const [b0, b1, b2, b3, b4, b5] = b;
458
556
  return (Math.abs(a0 - b0) <=
@@ -468,67 +566,23 @@ var mat2d;
468
566
  Math.abs(a5 - b5) <=
469
567
  Common.EPSILON * Math.max(1, Math.abs(a5), Math.abs(b5)));
470
568
  }
471
- mat2d.equals = equals;
472
- /**
473
- * Returns a string representation of a mat2d
474
- * @param m matrix to represent as a string
475
- * @param fractionDigits number of digits to appear after the decimal point
476
- */
477
- mat2d.toString = Common.createMatToStringFunction(2, 3);
478
- /**
479
- * Alias for {@link identity}
480
- * @category Aliases
481
- */
482
- mat2d.id = mat2d.identity;
483
- /**
484
- * Alias for {@link identity}
485
- * @category Aliases
486
- */
487
- mat2d.ident = mat2d.identity;
488
- /**
489
- * Alias for {@link subtract}
490
- * @category Aliases
491
- */
492
- mat2d.sub = subtract;
569
+ mat2d.approxEquals = approxEquals;
493
570
  /**
494
- * Alias for {@link multiply}
495
- * @category Aliases
571
+ * Alias for {@link approxEquals}
572
+ * @category Shorthands
496
573
  */
497
- mat2d.mul = multiply;
574
+ mat2d.approx = approxEquals;
498
575
  /**
499
- * Alias for {@link determinant}
500
- * @category Aliases
576
+ * Alias for {@link approxEquals}. This is provided for compatibility with gl-matrix.
577
+ * @category Shorthands
578
+ * @deprecated Use {@link approxEquals} instead
501
579
  */
502
- mat2d.det = determinant;
580
+ mat2d.equals = approxEquals;
503
581
  /**
504
- * Alias for {@link invert}
505
- * @category Aliases
506
- */
507
- mat2d.inv = invert;
508
- /**
509
- * Alias for {@link fromTranslation}
510
- * @category Aliases
511
- */
512
- mat2d.translation = fromTranslation;
513
- /**
514
- * Alias for {@link fromRotation}
515
- * @category Aliases
516
- */
517
- mat2d.rotation = fromRotation;
518
- /**
519
- * Alias for {@link fromScaling}
520
- * @category Aliases
521
- */
522
- mat2d.scaling = fromScaling;
523
- /**
524
- * Alias for {@link fromSkew}
525
- * @category Aliases
526
- */
527
- mat2d.skewing = fromSkew;
528
- /**
529
- * Alias for {@link fromTRS}
530
- * @category Aliases
582
+ * Returns a string representation of a mat2d
583
+ * @param m matrix to represent as a string
584
+ * @param fractionDigits number of digits to appear after the decimal point
531
585
  */
532
- mat2d.trs = fromTRS;
586
+ mat2d.toString = Common.createMatToStringFunction(2, 3);
533
587
  })(mat2d || (exports.mat2d = mat2d = {}));
534
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0MmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBa0M7QUFDbEMsaUNBQTJCO0FBQzNCLGlDQUEyQjtBQTZCM0I7OztHQUdHO0FBQ0gsSUFBaUIsS0FBSyxDQXNrQnJCO0FBdGtCRCxXQUFpQixLQUFLO0lBWXJCOzs7T0FHRztJQUNILGtCQUFrQjtJQUNsQixTQUFnQixFQUFFLENBQ2pCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLEVBQVUsRUFBRSxFQUFVO1FBRXRCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFOZSxRQUFFLEtBTWpCLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixLQUFLLENBQUMsQ0FBUTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNkLENBQUM7SUFGZSxXQUFLLFFBRXBCLENBQUE7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILGtCQUFrQjtJQUNMLGNBQVEsR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVDLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsQ0FBQztLQUNKLENBQUMsQ0FBQTtJQUVGOzs7T0FHRztJQUNVLFVBQUksR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRTVEOztPQUVHO0lBQ0gsU0FBZ0IsTUFBTSxDQUFDLENBQVE7UUFDOUIsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFB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
588
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0MmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBa0M7QUFDbEMsaUNBQTJCO0FBQzNCLGlDQUEyQjtBQTZCM0I7OztHQUdHO0FBQ0gsSUFBaUIsS0FBSyxDQStuQnJCO0FBL25CRCxXQUFpQixLQUFLO0lBWXJCOzs7T0FHRztJQUNILGtCQUFrQjtJQUNsQixTQUFnQixFQUFFLENBQ2pCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLEVBQVUsRUFBRSxFQUFVO1FBRXRCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFOZSxRQUFFLEtBTWpCLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixLQUFLLENBQUMsQ0FBUTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNkLENBQUM7SUFGZSxXQUFLLFFBRXBCLENBQUE7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxrQkFBa0I7SUFDTCxjQUFRLEdBQVUsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1QyxDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7S0FDSixDQUFDLENBQUE7SUFFRjs7O09BR0c7SUFDVSxRQUFFLEdBQUcsTUFBQSxRQUFRLENBQUE7SUFFMUI7OztPQUdHO0lBQ1UsV0FBSyxHQUFHLE1BQUEsUUFBUSxDQUFBO0lBRTdCOzs7T0FHRztJQUNVLFVBQUksR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lB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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1gsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNYLENBQUE7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFMUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2IsT0FBTyxJQUFJLENBQUE7UUFDWixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQVU7WUFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNYLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWCxDQUFBO1FBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FB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