linearly 0.34.2 → 0.35.2

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 (56) hide show
  1. package/README.md +9 -8
  2. package/lib/cjs/mat2.d.ts +20 -5
  3. package/lib/cjs/mat2.d.ts.map +1 -1
  4. package/lib/cjs/mat2.js +35 -5
  5. package/lib/cjs/mat2d.d.ts +7 -3
  6. package/lib/cjs/mat2d.d.ts.map +1 -1
  7. package/lib/cjs/mat2d.js +7 -3
  8. package/lib/cjs/mat3.d.ts +1 -0
  9. package/lib/cjs/mat3.d.ts.map +1 -1
  10. package/lib/cjs/mat3.js +2 -1
  11. package/lib/cjs/mat4.d.ts +43 -16
  12. package/lib/cjs/mat4.d.ts.map +1 -1
  13. package/lib/cjs/mat4.js +73 -17
  14. package/lib/cjs/quat.d.ts +31 -3
  15. package/lib/cjs/quat.d.ts.map +1 -1
  16. package/lib/cjs/quat.js +177 -7
  17. package/lib/cjs/scalar.d.ts +141 -10
  18. package/lib/cjs/scalar.d.ts.map +1 -1
  19. package/lib/cjs/scalar.js +156 -11
  20. package/lib/cjs/vec2.d.ts +189 -34
  21. package/lib/cjs/vec2.d.ts.map +1 -1
  22. package/lib/cjs/vec2.js +354 -46
  23. package/lib/cjs/vec3.d.ts +143 -25
  24. package/lib/cjs/vec3.d.ts.map +1 -1
  25. package/lib/cjs/vec3.js +297 -44
  26. package/lib/cjs/vec4.d.ts +127 -30
  27. package/lib/cjs/vec4.d.ts.map +1 -1
  28. package/lib/cjs/vec4.js +292 -54
  29. package/lib/esm/mat2.d.ts +20 -5
  30. package/lib/esm/mat2.d.ts.map +1 -1
  31. package/lib/esm/mat2.js +35 -5
  32. package/lib/esm/mat2d.d.ts +7 -3
  33. package/lib/esm/mat2d.d.ts.map +1 -1
  34. package/lib/esm/mat2d.js +7 -3
  35. package/lib/esm/mat3.d.ts +1 -0
  36. package/lib/esm/mat3.d.ts.map +1 -1
  37. package/lib/esm/mat3.js +2 -1
  38. package/lib/esm/mat4.d.ts +43 -16
  39. package/lib/esm/mat4.d.ts.map +1 -1
  40. package/lib/esm/mat4.js +73 -17
  41. package/lib/esm/quat.d.ts +31 -3
  42. package/lib/esm/quat.d.ts.map +1 -1
  43. package/lib/esm/quat.js +177 -7
  44. package/lib/esm/scalar.d.ts +141 -10
  45. package/lib/esm/scalar.d.ts.map +1 -1
  46. package/lib/esm/scalar.js +156 -11
  47. package/lib/esm/vec2.d.ts +189 -34
  48. package/lib/esm/vec2.d.ts.map +1 -1
  49. package/lib/esm/vec2.js +354 -46
  50. package/lib/esm/vec3.d.ts +143 -25
  51. package/lib/esm/vec3.d.ts.map +1 -1
  52. package/lib/esm/vec3.js +297 -44
  53. package/lib/esm/vec4.d.ts +127 -30
  54. package/lib/esm/vec4.d.ts.map +1 -1
  55. package/lib/esm/vec4.js +292 -54
  56. package/package.json +1 -1
package/lib/cjs/quat.d.ts CHANGED
@@ -9,7 +9,8 @@ import { vec4 } from './vec4';
9
9
  */
10
10
  export type quat = readonly [x: number, y: number, z: number, w: number];
11
11
  /**
12
- * FUnctions for {@link quat}, a format for representing rotation in 3D space.
12
+ * Functions for {@link quat}, a format for representing rotation in 3D space.
13
+ * @category Modules
13
14
  */
14
15
  export declare namespace quat {
15
16
  /**
@@ -68,7 +69,7 @@ export declare namespace quat {
68
69
  * Gets the rotation axis and angle for a given
69
70
  * quaternion. If a quaternion is created with
70
71
  * fromAxisAngle, this method will return the same
71
- * values as providied in the original parameter list
72
+ * values as provided in the original parameter list
72
73
  * OR functionally equivalent values.
73
74
  * Example: The quaternion formed by axis [0, 0, 1] and
74
75
  * angle -90 is the same as the quaternion formed by
@@ -94,7 +95,7 @@ export declare namespace quat {
94
95
  * @param a the first operand
95
96
  * @param b the second operand
96
97
  *
97
- * @shortands
98
+ * @shorthands
98
99
  * - {@link mul}
99
100
  */
100
101
  function multiply(...qs: quat[]): quat;
@@ -171,6 +172,15 @@ export declare namespace quat {
171
172
  * Creates a quaternion from the given 4x4 affine matrix. The translation portion of the matrix is ignored. Same as mat4. Alias for {@link mat4.getRotation}.
172
173
  */
173
174
  const fromMat4: typeof mat4.getRotation;
175
+ /**
176
+ * Creates a quaternion from a normalized direction vector and an up vector.
177
+ * Equivalent to GLM's `glm::quatLookAt`.
178
+ *
179
+ * @param direction Normalized direction vector (forward)
180
+ * @param up Up vector, default is vec3.unitY
181
+ * @category Generators
182
+ */
183
+ function lookAt(direction: vec3, up?: vec3): quat;
174
184
  /**
175
185
  * Creates a quaternion from the given euler angle x, y, z using the provided intrinsic order for the conversion.
176
186
  *
@@ -179,6 +189,24 @@ export declare namespace quat {
179
189
  * @category Generators
180
190
  */
181
191
  function fromEuler(deg: vec3, order?: Common.AngleOrder): number[];
192
+ /**
193
+ * Extracts Euler angles from a quaternion. This is the inverse of {@link fromEuler}.
194
+ * Equivalent to GLM's `glm::eulerAngles`.
195
+ *
196
+ * @param q The quaternion to extract Euler angles from
197
+ * @param order Intrinsic order for conversion, default is zyx
198
+ * @returns Euler angles in degrees as vec3 [x, y, z]
199
+ */
200
+ function toEuler(q: quat, order?: Common.AngleOrder): vec3;
201
+ /**
202
+ * Performs a normalized linear interpolation (nlerp) between two quaternions.
203
+ * Faster than {@link slerp} and sufficient for small rotation differences.
204
+ *
205
+ * @param a the first operand
206
+ * @param b the second operand
207
+ * @param t interpolation amount, in the range [0-1], between the two inputs
208
+ */
209
+ function lerp(a: quat, b: quat, t: number): quat;
182
210
  /**
183
211
  * Adds given quat's
184
212
  */
@@ -1 +1 @@
1
- {"version":3,"file":"quat.d.ts","sourceRoot":"","sources":["../../src/quat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quat.d.ts","sourceRoot":"","sources":["../../src/quat.ts"],"names":[],"mappings":"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"}
package/lib/cjs/quat.js CHANGED
@@ -29,7 +29,8 @@ const mat4_1 = require("./mat4");
29
29
  const vec3_1 = require("./vec3");
30
30
  const vec4_1 = require("./vec4");
31
31
  /**
32
- * FUnctions for {@link quat}, a format for representing rotation in 3D space.
32
+ * Functions for {@link quat}, a format for representing rotation in 3D space.
33
+ * @category Modules
33
34
  */
34
35
  var quat;
35
36
  (function (quat) {
@@ -100,7 +101,7 @@ var quat;
100
101
  * Gets the rotation axis and angle for a given
101
102
  * quaternion. If a quaternion is created with
102
103
  * fromAxisAngle, this method will return the same
103
- * values as providied in the original parameter list
104
+ * values as provided in the original parameter list
104
105
  * OR functionally equivalent values.
105
106
  * Example: The quaternion formed by axis [0, 0, 1] and
106
107
  * angle -90 is the same as the quaternion formed by
@@ -140,7 +141,7 @@ var quat;
140
141
  * @param a the first operand
141
142
  * @param b the second operand
142
143
  *
143
- * @shortands
144
+ * @shorthands
144
145
  * - {@link mul}
145
146
  */
146
147
  function multiply(...qs) {
@@ -375,6 +376,31 @@ var quat;
375
376
  * Creates a quaternion from the given 4x4 affine matrix. The translation portion of the matrix is ignored. Same as mat4. Alias for {@link mat4.getRotation}.
376
377
  */
377
378
  quat.fromMat4 = mat4_1.mat4.getRotation;
379
+ /**
380
+ * Creates a quaternion from a normalized direction vector and an up vector.
381
+ * Equivalent to GLM's `glm::quatLookAt`.
382
+ *
383
+ * @param direction Normalized direction vector (forward)
384
+ * @param up Up vector, default is vec3.unitY
385
+ * @category Generators
386
+ */
387
+ function lookAt(direction, up = vec3_1.vec3.unitY) {
388
+ const right = vec3_1.vec3.normalize(vec3_1.vec3.cross(up, direction));
389
+ const correctedUp = vec3_1.vec3.cross(direction, right);
390
+ const m = [
391
+ right[0],
392
+ correctedUp[0],
393
+ direction[0],
394
+ right[1],
395
+ correctedUp[1],
396
+ direction[1],
397
+ right[2],
398
+ correctedUp[2],
399
+ direction[2],
400
+ ];
401
+ return quat.normalize(fromMat3(m));
402
+ }
403
+ quat.lookAt = lookAt;
378
404
  /**
379
405
  * Creates a quaternion from the given euler angle x, y, z using the provided intrinsic order for the conversion.
380
406
  *
@@ -384,9 +410,10 @@ var quat;
384
410
  */
385
411
  function fromEuler(deg, order = Common.DEFAULT_ANGLE_ORDER) {
386
412
  const [xDeg, yDeg, zDeg] = deg;
387
- const xRad = xDeg * Common.DEG2RAD;
388
- const yRad = yDeg * Common.DEG2RAD;
389
- const zRad = zDeg * Common.DEG2RAD;
413
+ const halfToRad = Common.DEG2RAD * 0.5;
414
+ const xRad = xDeg * halfToRad;
415
+ const yRad = yDeg * halfToRad;
416
+ const zRad = zDeg * halfToRad;
390
417
  const sx = Math.sin(xRad);
391
418
  const cx = Math.cos(xRad);
392
419
  const sy = Math.sin(yRad);
@@ -439,6 +466,149 @@ var quat;
439
466
  }
440
467
  }
441
468
  quat.fromEuler = fromEuler;
469
+ /**
470
+ * Extracts Euler angles from a quaternion. This is the inverse of {@link fromEuler}.
471
+ * Equivalent to GLM's `glm::eulerAngles`.
472
+ *
473
+ * @param q The quaternion to extract Euler angles from
474
+ * @param order Intrinsic order for conversion, default is zyx
475
+ * @returns Euler angles in degrees as vec3 [x, y, z]
476
+ */
477
+ function toEuler(q, order = Common.DEFAULT_ANGLE_ORDER) {
478
+ const [x, y, z, w] = q;
479
+ const x2 = x * x;
480
+ const y2 = y * y;
481
+ const z2 = z * z;
482
+ const w2 = w * w;
483
+ // Rotation matrix elements from quaternion
484
+ const m00 = w2 + x2 - y2 - z2;
485
+ const m01 = 2 * (x * y - w * z);
486
+ const m02 = 2 * (x * z + w * y);
487
+ const m10 = 2 * (x * y + w * z);
488
+ const m11 = w2 - x2 + y2 - z2;
489
+ const m12 = 2 * (y * z - w * x);
490
+ const m20 = 2 * (x * z - w * y);
491
+ const m21 = 2 * (y * z + w * x);
492
+ const m22 = w2 - x2 - y2 + z2;
493
+ const GIMBAL = 0.9999999;
494
+ let ex, ey, ez;
495
+ switch (order) {
496
+ case 'zyx': {
497
+ const sinP = -m20;
498
+ if (Math.abs(sinP) >= GIMBAL) {
499
+ ex = 0;
500
+ ey = Math.sign(sinP) * (Math.PI / 2);
501
+ ez = Math.atan2(-m01, m11);
502
+ }
503
+ else {
504
+ ex = Math.atan2(m21, m22);
505
+ ey = Math.asin(sinP);
506
+ ez = Math.atan2(m10, m00);
507
+ }
508
+ break;
509
+ }
510
+ case 'xyz': {
511
+ const sinP = m02;
512
+ if (Math.abs(sinP) >= GIMBAL) {
513
+ ex = Math.atan2(m21, m11);
514
+ ey = Math.sign(sinP) * (Math.PI / 2);
515
+ ez = 0;
516
+ }
517
+ else {
518
+ ex = Math.atan2(-m12, m22);
519
+ ey = Math.asin(sinP);
520
+ ez = Math.atan2(-m01, m00);
521
+ }
522
+ break;
523
+ }
524
+ case 'yxz': {
525
+ const sinP = -m12;
526
+ if (Math.abs(sinP) >= GIMBAL) {
527
+ ex = Math.sign(sinP) * (Math.PI / 2);
528
+ ey = Math.atan2(-m20, m00);
529
+ ez = 0;
530
+ }
531
+ else {
532
+ ex = Math.asin(sinP);
533
+ ey = Math.atan2(m02, m22);
534
+ ez = Math.atan2(m10, m11);
535
+ }
536
+ break;
537
+ }
538
+ case 'yzx': {
539
+ const sinP = m10;
540
+ if (Math.abs(sinP) >= GIMBAL) {
541
+ ex = 0;
542
+ ey = Math.atan2(m02, m22);
543
+ ez = Math.sign(sinP) * (Math.PI / 2);
544
+ }
545
+ else {
546
+ ex = Math.atan2(-m12, m11);
547
+ ey = Math.atan2(-m20, m00);
548
+ ez = Math.asin(sinP);
549
+ }
550
+ break;
551
+ }
552
+ case 'zxy': {
553
+ const sinP = m21;
554
+ if (Math.abs(sinP) >= GIMBAL) {
555
+ ex = Math.sign(sinP) * (Math.PI / 2);
556
+ ey = 0;
557
+ ez = Math.atan2(m10, m00);
558
+ }
559
+ else {
560
+ ex = Math.asin(sinP);
561
+ ey = Math.atan2(-m20, m22);
562
+ ez = Math.atan2(-m01, m11);
563
+ }
564
+ break;
565
+ }
566
+ case 'xzy': {
567
+ const sinP = -m01;
568
+ if (Math.abs(sinP) >= GIMBAL) {
569
+ ex = Math.atan2(-m12, m22);
570
+ ey = 0;
571
+ ez = Math.sign(sinP) * (Math.PI / 2);
572
+ }
573
+ else {
574
+ ex = Math.atan2(m21, m11);
575
+ ey = Math.atan2(m02, m00);
576
+ ez = Math.asin(sinP);
577
+ }
578
+ break;
579
+ }
580
+ }
581
+ return [
582
+ ex * Common.RAD2DEG,
583
+ ey * Common.RAD2DEG,
584
+ ez * Common.RAD2DEG,
585
+ ];
586
+ }
587
+ quat.toEuler = toEuler;
588
+ /**
589
+ * Performs a normalized linear interpolation (nlerp) between two quaternions.
590
+ * Faster than {@link slerp} and sufficient for small rotation differences.
591
+ *
592
+ * @param a the first operand
593
+ * @param b the second operand
594
+ * @param t interpolation amount, in the range [0-1], between the two inputs
595
+ */
596
+ function lerp(a, b, t) {
597
+ let [bx, by, bz, bw] = b;
598
+ if (quat.dot(a, b) < 0) {
599
+ bx = -bx;
600
+ by = -by;
601
+ bz = -bz;
602
+ bw = -bw;
603
+ }
604
+ return quat.normalize([
605
+ a[0] + (bx - a[0]) * t,
606
+ a[1] + (by - a[1]) * t,
607
+ a[2] + (bz - a[2]) * t,
608
+ a[3] + (bw - a[3]) * t,
609
+ ]);
610
+ }
611
+ quat.lerp = lerp;
442
612
  /**
443
613
  * Adds given quat's
444
614
  */
@@ -592,4 +762,4 @@ var quat;
592
762
  }
593
763
  quat.setAxes = setAxes;
594
764
  })(quat || (exports.quat = quat = {}));
595
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQWtDO0FBRWxDLGlDQUEyQjtBQUMzQixpQ0FBMkI7QUFDM0IsaUNBQTJCO0FBUTNCOztHQUVHO0FBQ0gsSUFBaUIsSUFBSSxDQTZtQnBCO0FBN21CRCxXQUFpQixJQUFJO0lBT3BCOzs7T0FHRztJQUNILFNBQWdCLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO1FBQzVELE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNwQixDQUFDO0lBRmUsT0FBRSxLQUVqQixDQUFBO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsS0FBSyxDQUFDLENBQU87UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDZCxDQUFDO0lBRmUsVUFBSyxRQUVwQixDQUFBO0lBRUQ7Ozs7Ozs7T0FPRztJQUNVLGFBQVEsR0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV6RDs7O09BR0c7SUFDVSxNQUFDLEdBQUcsS0FBQSxRQUFRLENBQUE7SUFFekI7OztPQUdHO0lBQ1UsT0FBRSxHQUFHLEtBQUEsUUFBUSxDQUFBO0lBRTFCOzs7T0FHRztJQUNVLFVBQUssR0FBRyxLQUFBLFFBQVEsQ0FBQTtJQUU3Qjs7O09BR0c7SUFDVSxTQUFJLEdBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFckQ7Ozs7OztRQU1JO0lBQ0osU0FBZ0IsYUFBYSxDQUFDLElBQVUsRUFBRSxHQUFXO1FBQ3BELE1BQU0s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LEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtpQkFDM0IsQ0FBQTtZQUVGLEtBQUssS0FBSztnQkFDVCxPQUFPO29CQUNOLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtvQkFDM0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQzNCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtpQkFDM0IsQ0FBQTtZQUVGLEtBQUssS0FBSztnQkFDVCxPQUFPO29CQUNOLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtvQkFDM0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQzNCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtpQkFDM0IsQ0FBQTtZQUVGLEtBQUssS0FBSztnQkFDVCxPQUFPO29CQUNOLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtvQkFDM0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQzNCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtpQkFD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
765
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQWtDO0FBRWxDLGlDQUEyQjtBQUMzQixpQ0FBMkI7QUFDM0IsaUNBQTJCO0FBUTNCOzs7R0FHRztBQUNILElBQWlCLElBQUksQ0E4eEJwQjtBQTl4QkQsV0FBaUIsSUFBSTtJQU9wQjs7O09BR0c7SUFDSCxTQUFnQixFQUFFLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUztRQUM1RCxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUZlLE9BQUUsS0FFakIsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFPO1FBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2QsQ0FBQztJQUZlLFVBQUssUUFFcEIsQ0FBQTtJQUVEOzs7Ozs7O09BT0c7SUFDVSxhQUFRLEdBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFekQ7OztPQUdHO0lBQ1UsTUFBQyxHQUFHLEtBQUEsUUFBUSxDQUFBO0lBRXpCOzs7T0FHRztJQUNVLE9BQUUsR0FBRyxLQUFBLFFBQVEsQ0FBQTtJQUUxQjs7O09BR0c7SUFDVSxVQUFLLEdBQUcsS0FBQSxRQUFRLENBQUE7SUFFN0I7OztPQUdHO0lBQ1UsU0FBSSxHQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRXJEOzs7Ozs7UUFNSTtJQUNKLFNBQWdCLGFBQWEsQ0FBQyxJQUFVLEVBQUUsR0FBVztRQUNwRCxNQUFN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LENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFNUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQVJlLFFBQUcsTUFRbEIsQ0FBQTtJQUVEOztPQUVHO0lBQ0gsU0FBZ0IsRUFBRSxDQUFDLENBQU87UUFDekIsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUV0QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDN0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFQZSxPQUFFLEtBT2pCLENBQUE7SUFFRDs7T0FFRztJQUNILFNBQWdCLEdBQUcsQ0FBQyxDQUFPLEVBQUUsQ0FBUztRQUNyQyxPQUFPLEdBQUcsQ0FBQyxLQUFBLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUs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O29CQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7aUJBQzNCLENBQUE7WUFFRixLQUFLLEtBQUs7Z0JBQ1QsT0FBTztvQkFDTixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQzNCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtvQkFDM0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7aUJBQzNCLENBQUE7WUFFRixLQUFLLEtBQUs7Z0JBQ1QsT0FBTztvQkFDTixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQzNCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtvQkFDM0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7aUJBQzNCLENBQUE7WUFFRixLQUFLLEtBQUs7Z0JBQ1QsT0FBTztvQkFDTixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQzNCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtvQkFDM0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7aUJBQzNCLENBQUE7WUFFRixLQUFLLEtBQUs7Z0JBQ1QsT0FBTztvQkFDTixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQzNCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtvQkFDM0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7aUJBQzNCLENBQUE7WUFFRixLQUFLLEtBQUs7Z0JBQ1QsT0FBTztvQkFDTixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQzNCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtvQkFDM0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7aUJBQzNCLENBQUE7UUFDSCxDQUFDO0lBQ0YsQ0FBQztJQWhFZSxjQUFTLFlBZ0V4QixDQUFBO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFNBQWdCLE9BQU8sQ0FDdEIsQ0FBTyxFQUNQLEtBQUssR0FBRyxNQUFNLENBQUMsbUJBQW1CO1FBRWxDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVoQiwyQ0FBMkM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBQzdCLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQy9CLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQy9CLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQy9CLE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUM3QixNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMvQixNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMvQixNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMvQixNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFFN0IsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFBO1FBRXhCLElBQUksRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLENBQUE7UUFFdEMsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNmLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDWixNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQTtnQkFDakIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUM5QixFQUFFLEdBQUcsQ0FBQyxDQUFBO29CQUNOLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtvQkFDcEMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0JBQzNCLENBQUM7cUJBQU0sQ0FBQztvQkFDUCxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7b0JBQ3pCLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUNwQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0JBQzFCLENBQUM7Z0JBQ0QsTUFBSztZQUNOLENBQUM7WUFDRCxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ1osTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFBO2dCQUNoQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQzlCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtvQkFDekIsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO29CQUNwQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO2dCQUNQLENBQUM7cUJBQU0sQ0FBQztvQkFDUCxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtvQkFDMUIsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQ3BCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO2dCQUMzQixDQUFDO2dCQUNELE1BQUs7WUFDTixDQUFDO1lBQ0QsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFBO2dCQUNqQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQzlCLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtvQkFDcEMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7b0JBQzFCLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0JBQ1AsQ0FBQztxQkFBTSxDQUFDO29CQUNQLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUNwQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7b0JBQ3pCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDMUIsQ0FBQztnQkFDRCxNQUFLO1lBQ04sQ0FBQztZQUNELEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDWixNQUFNLElBQUksR0FBRyxHQUFHLENBQUE7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDOUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtvQkFDTixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7b0JBQ3pCLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDckMsQ0FBQztxQkFBTSxDQUFDO29CQUNQLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO29CQUMxQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtvQkFDMUIsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ3JCLENBQUM7Z0JBQ0QsTUFBSztZQUNOLENBQUM7WUFDRCxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ1osTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFBO2dCQUNoQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQzlCLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtvQkFDcEMsRUFBRSxHQUFHLENBQUMsQ0FBQTtvQkFDTixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0JBQzFCLENBQUM7cUJBQU0sQ0FBQztvQkFDUCxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDcEIsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7b0JBQzFCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO2dCQUMzQixDQUFDO2dCQUNELE1BQUs7WUFDTixDQUFDO1lBQ0QsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFBO2dCQUNqQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQzlCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO29CQUMxQixFQUFFLEdBQUcsQ0FBQyxDQUFBO29CQUNOLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDckMsQ0FBQztxQkFBTSxDQUFDO29CQUNQLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtvQkFDekIsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO29CQUN6QixFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDckIsQ0FBQztnQkFDRCxNQUFLO1lBQ04sQ0FBQztRQUNGLENBQUM7UUFFRCxPQUFPO1lBQ04sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPO1lBQ25CLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBTztZQUNuQixFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU87U0FDbkIsQ0FBQTtJQUNGLENBQUM7SUFoSGUsWUFBTyxVQWdIdEIsQ0FBQTtJQUVEOzs7Ozs7O09BT0c7SUFDSCxTQUFnQixJQUFJLENBQUMsQ0FBTyxFQUFFLENBQU8sRUFBRSxDQUFTO1FBQy9DLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDeEIsSUFBSSxLQUFBLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFBO1lBQ1IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFBO1lBQ1IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFBO1lBQ1IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFBO1FBQ1QsQ0FBQztRQUNELE9BQU8sS0FBQSxTQUFTLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7U0FDdEIsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQWRlLFNBQUksT0FjbkIsQ0FBQTtJQUVEOztPQUVHO0lBQ1UsUUFBRyxHQUErQixXQUFJLENBQUMsR0FBRyxDQUFBO0lBRXZEOztPQUVHO0lBQ1UsVUFBSyxHQUFpQyxXQUFJLENBQUMsS0FBSyxDQUFBO0lBRTdEOztPQUVHO0lBQ1UsUUFBRyxHQUFpQyxXQUFJLENBQUMsR0FBRyxDQUFBO0lBRXpEOzs7Ozs7OztPQVFHO0lBQ1UsV0FBTSxHQUFHLFdBQUksQ0FBQyxNQUFNLENBQUE7SUFFakM7OztPQUdHO0lBQ1UsUUFBRyxHQUFHLEtBQUEsTUFBTSxDQUFBO0lBRXpCOzs7Ozs7OztPQVFHO0lBQ1Usa0JBQWEsR0FBRyxXQUFJLENBQUMsYUFBYSxDQUFBO0lBRS9DOzs7T0FHRztJQUNVLFdBQU0sR0FBRyxLQUFBLGFBQWEsQ0FBQTtJQUVuQzs7OztPQUlHO0lBQ1UsY0FBUyxHQUFHLFdBQUksQ0FBQyxTQUFTLENBQUE7SUFFdkM7Ozs7O09BS0c7SUFDVSxnQkFBVyxHQUFHLFdBQUksQ0FBQyxXQUFXLENBQUE7SUFFM0M7OztPQUdHO0lBQ1UsT0FBRSxHQUFHLEtBQUEsV0FBVyxDQUFBO0lBRTdCOzs7Ozs7T0FNRztJQUNILFNBQWdCLFlBQVksQ0FBQyxDQUFPLEVBQUUsQ0FBTztRQUM1QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQTtJQUN0RCxDQUFDO0lBRmUsaUJBQVksZUFFM0IsQ0FBQTtJQUVEOzs7T0FHRztJQUNVLFdBQU0sR0FBRyxZQUFZLENBQUE7SUFFbEM7Ozs7T0FJRztJQUNVLFdBQU0sR0FBRyxZQUFZLENBQUE7SUFDbEM7Ozs7Ozs7OztPQVNHO0lBQ1UsZUFBVSxHQUFHLENBQUM7UUFDMUIsT0FBTyxDQUFDLENBQU8sRUFBRSxDQUFPLEVBQVEsRUFBRTtZQUNqQyxNQUFNLEdBQUcsR0FBRyxXQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUUxQixJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixPQUFPLENBQUMsR0FBRyxLQUFBLFFBQVEsQ0FBQyxDQUFBO1lBQ3JCLENBQUM7aUJBQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN0QyxJQUFJLElBQUksR0FBRyxXQUFJLENBQUMsS0FBSyxDQUFDLFdBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBRXBDLElBQUksV0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxHQUFHLFdBQUksQ0FBQyxLQUFLLENBQUMsV0FBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtnQkFDakMsQ0FBQztnQkFFRCxJQUFJLEdBQUcsV0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFFM0IsT0FBTyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNwQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsTUFBTSxHQUFHLEdBQUcsV0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBRTVCLE1BQU0sR0FBRyxHQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFBO2dCQUVuRCxPQUFPLEtBQUEsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ3RCLENBQUM7UUFDRixDQUFDLENBQUE7SUFDRixDQUFDLENBQUMsRUFBRSxDQUFBO0lBRUo7Ozs7Ozs7O09BUUc7SUFDSCxTQUFnQixNQUFNLENBQUMsQ0FBTyxFQUFFLENBQU8sRUFBRSxDQUFPLEVBQUUsQ0FBTyxFQUFFLENBQVM7UUFDbkUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDNUIsT0FBTyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUplLFdBQU0sU0FJckIsQ0FBQTtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsU0FBZ0IsT0FBTyxDQUFDLElBQVUsRUFBRSxLQUFXLEVBQUUsRUFBUTtRQUN4RCxNQUFNLElBQUksR0FBUztZQUNsQixLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ1IsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNSLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDUixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ1IsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNSLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDUixDQUFBO1FBRUQsT0FBTyxLQUFBLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBZGUsWUFBTyxVQWN0QixDQUFBO0FBQ0YsQ0FBQyxFQTl4QmdCLElBQUksb0JBQUosSUFBSSxRQTh4QnBCIn0=