@cornerstonejs/tools 1.5.0 → 1.7.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 (71) hide show
  1. package/dist/cjs/tools/annotation/AngleTool.js +9 -4
  2. package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
  3. package/dist/cjs/tools/annotation/BidirectionalTool.js +9 -6
  4. package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
  5. package/dist/cjs/tools/annotation/CircleROITool.js +16 -10
  6. package/dist/cjs/tools/annotation/CircleROITool.js.map +1 -1
  7. package/dist/cjs/tools/annotation/EllipticalROITool.js +11 -6
  8. package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
  9. package/dist/cjs/tools/annotation/LengthTool.js +7 -4
  10. package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
  11. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +10 -7
  12. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  13. package/dist/cjs/tools/annotation/RectangleROITool.js +10 -7
  14. package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
  15. package/dist/cjs/tools/base/AnnotationDisplayTool.js +4 -23
  16. package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
  17. package/dist/cjs/utilities/calibrateImageSpacing.d.ts +1 -1
  18. package/dist/cjs/utilities/calibrateImageSpacing.js +7 -7
  19. package/dist/cjs/utilities/calibrateImageSpacing.js.map +1 -1
  20. package/dist/cjs/utilities/getCalibratedUnits.d.ts +6 -0
  21. package/dist/cjs/utilities/getCalibratedUnits.js +35 -0
  22. package/dist/cjs/utilities/getCalibratedUnits.js.map +1 -0
  23. package/dist/cjs/utilities/index.d.ts +2 -1
  24. package/dist/cjs/utilities/index.js +3 -1
  25. package/dist/cjs/utilities/index.js.map +1 -1
  26. package/dist/cjs/utilities/roundNumber.d.ts +2 -0
  27. package/dist/cjs/utilities/roundNumber.js +25 -0
  28. package/dist/cjs/utilities/roundNumber.js.map +1 -0
  29. package/dist/esm/tools/annotation/AngleTool.js +9 -4
  30. package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
  31. package/dist/esm/tools/annotation/BidirectionalTool.js +9 -6
  32. package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
  33. package/dist/esm/tools/annotation/CircleROITool.js +16 -10
  34. package/dist/esm/tools/annotation/CircleROITool.js.map +1 -1
  35. package/dist/esm/tools/annotation/EllipticalROITool.js +11 -6
  36. package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
  37. package/dist/esm/tools/annotation/LengthTool.js +7 -4
  38. package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
  39. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +10 -7
  40. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  41. package/dist/esm/tools/annotation/RectangleROITool.js +10 -7
  42. package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
  43. package/dist/esm/tools/base/AnnotationDisplayTool.js +5 -24
  44. package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
  45. package/dist/esm/utilities/calibrateImageSpacing.d.ts +1 -1
  46. package/dist/esm/utilities/calibrateImageSpacing.js +8 -8
  47. package/dist/esm/utilities/calibrateImageSpacing.js.map +1 -1
  48. package/dist/esm/utilities/getCalibratedUnits.d.ts +6 -0
  49. package/dist/esm/utilities/getCalibratedUnits.js +29 -0
  50. package/dist/esm/utilities/getCalibratedUnits.js.map +1 -0
  51. package/dist/esm/utilities/index.d.ts +2 -1
  52. package/dist/esm/utilities/index.js +2 -1
  53. package/dist/esm/utilities/index.js.map +1 -1
  54. package/dist/esm/utilities/roundNumber.d.ts +2 -0
  55. package/dist/esm/utilities/roundNumber.js +23 -0
  56. package/dist/esm/utilities/roundNumber.js.map +1 -0
  57. package/dist/umd/index.js +1 -1
  58. package/dist/umd/index.js.map +1 -1
  59. package/package.json +3 -3
  60. package/src/tools/annotation/AngleTool.ts +14 -9
  61. package/src/tools/annotation/BidirectionalTool.ts +13 -8
  62. package/src/tools/annotation/CircleROITool.ts +23 -10
  63. package/src/tools/annotation/EllipticalROITool.ts +15 -6
  64. package/src/tools/annotation/LengthTool.ts +10 -5
  65. package/src/tools/annotation/PlanarFreehandROITool.ts +15 -7
  66. package/src/tools/annotation/RectangleROITool.ts +13 -7
  67. package/src/tools/base/AnnotationDisplayTool.ts +5 -57
  68. package/src/utilities/calibrateImageSpacing.ts +11 -14
  69. package/src/utilities/getCalibratedUnits.ts +66 -0
  70. package/src/utilities/index.ts +2 -0
  71. package/src/utilities/roundNumber.ts +34 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationDisplayTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnnotationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationDisplayTool.ts"],"names":[],"mappings":";;;;;AAAA,8CAM6B;AAG7B,0DAAkC;AAClC,sFAAwF;AAExF,sGAA8E;AAC9E,qHAA6F;AAC7F,6EAAmF;AACnF,oEAAmE;AAanE,MAAe,qBAAsB,SAAQ,kBAAQ;IAArD;;QAqDS,6BAAwB,GAAG,CAChC,GAAiD,EACjD,EAAE;YACF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAExC,MAAM,QAAQ,GAAG,gBAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,iBAAiB,GAAG,IAAA,sCAAoB,GAAE,CAAC;YACjD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAGnE,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;gBAC7C,MAAM,mCAAmC,GACvC,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAErD,MAAM,uBAAuB,GAC3B,mCAAmC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAE1D,IAAI,CAAC,uBAAuB,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;oBAC/D,OAAO;iBACR;gBAGD,uBAAuB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBAE7C,MAAM,kBAAkB,GAAG,gBAAS,CAAC,YAAY,CAC/C,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CACtC,CAAC;oBAEF,IAAI,kBAAkB,KAAK,QAAQ,EAAE;wBAGnC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;wBAC9B,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;qBAClC;gBACH,CAAC,CAAC,CAAC;gBACH,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IAqDJ,CAAC;IAjHC,uCAAuC,CACrC,OAAuB,EACvB,WAAwB;QAExB,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACvC,OAAO;SACR;QAED,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAEpC,OAAO,IAAA,qCAA2B,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAkDS,oBAAoB,CAC5B,QAAsD,EACtD,QAAsB,EACtB,eAA6B,EAC7B,MAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,iBAAiB,CAAC;QAEtB,IAAI,QAAQ,YAAY,oBAAa,EAAE;YACrC,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACnD;aAAM;YACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,YAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE9C,iBAAiB,GAAG,gBAAS,CAAC,iBAAiB,CAC7C,WAAW,EACX,QAAQ,EACR,eAAe,CAChB,CAAC;SACH;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAeM,QAAQ,CACb,QAAgB,EAChB,cAA8B,EAC9B,UAAuB;QAEvB,OAAO,IAAA,0BAAgB,EACrB,QAAQ,EACR,cAAc,EACd,IAAA,iBAAQ,EAAC,UAAU,CAAC,EACpB,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;CACF;AAED,qBAAqB,CAAC,QAAQ,GAAG,uBAAuB,CAAC;AACzD,kBAAe,qBAAqB,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import type { Types } from '@cornerstonejs/core';
2
- export default function calibrateImageSpacing(imageId: string, renderingEngine: Types.IRenderingEngine, rowPixelSpacing: number, columnPixelSpacing: number): void;
2
+ export default function calibrateImageSpacing(imageId: string, renderingEngine: Types.IRenderingEngine, calibrationOrScale: Types.IImageCalibration | number): void;
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@cornerstonejs/core");
4
4
  const { calibratedPixelSpacingMetadataProvider } = core_1.utilities;
5
- function calibrateImageSpacing(imageId, renderingEngine, rowPixelSpacing, columnPixelSpacing) {
6
- if (!columnPixelSpacing) {
7
- columnPixelSpacing = rowPixelSpacing;
5
+ function calibrateImageSpacing(imageId, renderingEngine, calibrationOrScale) {
6
+ if (typeof calibrationOrScale === 'number') {
7
+ calibrationOrScale = {
8
+ type: core_1.Enums.CalibrationTypes.USER,
9
+ scale: calibrationOrScale,
10
+ };
8
11
  }
9
- calibratedPixelSpacingMetadataProvider.add(imageId, {
10
- rowPixelSpacing,
11
- columnPixelSpacing,
12
- });
12
+ calibratedPixelSpacingMetadataProvider.add(imageId, calibrationOrScale);
13
13
  const viewports = renderingEngine.getStackViewports();
14
14
  viewports.forEach((viewport) => {
15
15
  const imageIds = viewport.getImageIds();
@@ -1 +1 @@
1
- {"version":3,"file":"calibrateImageSpacing.js","sourceRoot":"","sources":["../../../src/utilities/calibrateImageSpacing.ts"],"names":[],"mappings":";;AAAA,8CAAgD;AAGhD,MAAM,EAAE,sCAAsC,EAAE,GAAG,gBAAS,CAAC;AAW7D,SAAwB,qBAAqB,CAC3C,OAAe,EACf,eAAuC,EACvC,eAAuB,EACvB,kBAA0B;IAI1B,IAAI,CAAC,kBAAkB,EAAE;QACvB,kBAAkB,GAAG,eAAe,CAAC;KACtC;IAED,sCAAsC,CAAC,GAAG,CAAC,OAAO,EAAE;QAClD,eAAe;QACf,kBAAkB;KACnB,CAAC,CAAC;IAGH,MAAM,SAAS,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;IAGtD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC9B,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SACpC;IACH,CAAC,CAAC,CAAC;AAKL,CAAC;AA/BD,wCA+BC"}
1
+ {"version":3,"file":"calibrateImageSpacing.js","sourceRoot":"","sources":["../../../src/utilities/calibrateImageSpacing.ts"],"names":[],"mappings":";;AAAA,8CAAuD;AAGvD,MAAM,EAAE,sCAAsC,EAAE,GAAG,gBAAS,CAAC;AAU7D,SAAwB,qBAAqB,CAC3C,OAAe,EACf,eAAuC,EACvC,kBAAoD;IAGpD,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,kBAAkB,GAAG;YACnB,IAAI,EAAE,YAAK,CAAC,gBAAgB,CAAC,IAAI;YACjC,KAAK,EAAE,kBAAkB;SAC1B,CAAC;KACH;IAED,sCAAsC,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAGxE,MAAM,SAAS,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;IAGtD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC9B,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SACpC;IACH,CAAC,CAAC,CAAC;AAKL,CAAC;AA7BD,wCA6BC"}
@@ -0,0 +1,6 @@
1
+ declare const getCalibratedLengthUnits: (handles: any, image: any) => string;
2
+ declare const getCalibratedAreaUnits: (handles: any, image: any) => string;
3
+ declare const getCalibratedScale: (image: any) => any;
4
+ declare const getCalibratedAspect: (image: any) => any;
5
+ export default getCalibratedLengthUnits;
6
+ export { getCalibratedAreaUnits, getCalibratedLengthUnits, getCalibratedScale, getCalibratedAspect, };
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCalibratedAspect = exports.getCalibratedScale = exports.getCalibratedLengthUnits = exports.getCalibratedAreaUnits = void 0;
4
+ const core_1 = require("@cornerstonejs/core");
5
+ const { CalibrationTypes } = core_1.Enums;
6
+ const PIXEL_UNITS = 'px';
7
+ const getCalibratedLengthUnits = (handles, image) => {
8
+ const { calibration, hasPixelSpacing } = image;
9
+ const units = hasPixelSpacing ? 'mm' : PIXEL_UNITS;
10
+ if (!calibration || !calibration.type)
11
+ return units;
12
+ if (calibration.type === CalibrationTypes.UNCALIBRATED)
13
+ return PIXEL_UNITS;
14
+ if (calibration.SequenceOfUltrasoundRegions)
15
+ return 'US Region';
16
+ return `${units} ${calibration.type}`;
17
+ };
18
+ exports.getCalibratedLengthUnits = getCalibratedLengthUnits;
19
+ const SQUARE = '\xb2';
20
+ const getCalibratedAreaUnits = (handles, image) => {
21
+ const { calibration, hasPixelSpacing } = image;
22
+ const units = (hasPixelSpacing ? 'mm' : PIXEL_UNITS) + SQUARE;
23
+ if (!calibration || !calibration.type)
24
+ return units;
25
+ if (calibration.SequenceOfUltrasoundRegions)
26
+ return 'US Region';
27
+ return `${units} ${calibration.type}`;
28
+ };
29
+ exports.getCalibratedAreaUnits = getCalibratedAreaUnits;
30
+ const getCalibratedScale = (image) => { var _a; return ((_a = image.calibration) === null || _a === void 0 ? void 0 : _a.scale) || 1; };
31
+ exports.getCalibratedScale = getCalibratedScale;
32
+ const getCalibratedAspect = (image) => { var _a; return ((_a = image.calibration) === null || _a === void 0 ? void 0 : _a.aspect) || 1; };
33
+ exports.getCalibratedAspect = getCalibratedAspect;
34
+ exports.default = getCalibratedLengthUnits;
35
+ //# sourceMappingURL=getCalibratedUnits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCalibratedUnits.js","sourceRoot":"","sources":["../../../src/utilities/getCalibratedUnits.ts"],"names":[],"mappings":";;;AAAA,8CAA4C;AAE5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAK,CAAC;AACnC,MAAM,WAAW,GAAG,IAAI,CAAC;AAkBzB,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAU,EAAE;IAC1D,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAE/C,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IACnD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,CAAC,YAAY;QAAE,OAAO,WAAW,CAAC;IAE3E,IAAI,WAAW,CAAC,2BAA2B;QAAE,OAAO,WAAW,CAAC;IAChE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC,CAAC;AAgCA,4DAAwB;AA9B1B,MAAM,MAAM,GAAG,MAAM,CAAC;AAItB,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAU,EAAE;IACxD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;IAC9D,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,WAAW,CAAC,2BAA2B;QAAE,OAAO,WAAW,CAAC;IAChE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC,CAAC;AAmBA,wDAAsB;AAbxB,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,KAAK,KAAI,CAAC,CAAA,EAAA,CAAC;AAelE,gDAAkB;AAPpB,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,MAAM,KAAI,CAAC,CAAA,EAAA,CAAC;AAQpE,kDAAmB;AANrB,kBAAe,wBAAwB,CAAC"}
@@ -10,6 +10,7 @@ import jumpToSlice from './viewport/jumpToSlice';
10
10
  import pointInShapeCallback from './pointInShapeCallback';
11
11
  import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
12
12
  import scroll from './scroll';
13
+ import roundNumber from './roundNumber';
13
14
  import * as segmentation from './segmentation';
14
15
  import * as drawing from './drawing';
15
16
  import * as math from './math';
@@ -25,4 +26,4 @@ import * as viewport from './viewport';
25
26
  import * as touch from './touch';
26
27
  import * as dynamicVolume from './dynamicVolume';
27
28
  import { triggerEvent } from '@cornerstonejs/core';
28
- export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, };
29
+ export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, roundNumber, };
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.scroll = exports.stackPrefetch = exports.planarFreehandROITool = exports.rectangleROITool = exports.boundingBox = exports.clip = exports.cine = exports.viewport = exports.jumpToSlice = exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRender = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.touch = exports.isObject = exports.orientation = exports.throttle = exports.dynamicVolume = exports.debounce = exports.drawing = exports.viewportFilters = exports.planar = exports.math = void 0;
29
+ exports.roundNumber = exports.scroll = exports.stackPrefetch = exports.planarFreehandROITool = exports.rectangleROITool = exports.boundingBox = exports.clip = exports.cine = exports.viewport = exports.jumpToSlice = exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRender = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.touch = exports.isObject = exports.orientation = exports.throttle = exports.dynamicVolume = exports.debounce = exports.drawing = exports.viewportFilters = exports.planar = exports.math = void 0;
30
30
  const getAnnotationNearPoint_1 = require("./getAnnotationNearPoint");
31
31
  Object.defineProperty(exports, "getAnnotationNearPoint", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPoint; } });
32
32
  Object.defineProperty(exports, "getAnnotationNearPointOnEnabledElement", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPointOnEnabledElement; } });
@@ -52,6 +52,8 @@ const pointInSurroundingSphereCallback_1 = __importDefault(require("./pointInSur
52
52
  exports.pointInSurroundingSphereCallback = pointInSurroundingSphereCallback_1.default;
53
53
  const scroll_1 = __importDefault(require("./scroll"));
54
54
  exports.scroll = scroll_1.default;
55
+ const roundNumber_1 = __importDefault(require("./roundNumber"));
56
+ exports.roundNumber = roundNumber_1.default;
55
57
  const segmentation = __importStar(require("./segmentation"));
56
58
  exports.segmentation = segmentation;
57
59
  const drawing = __importStar(require("./drawing"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;AAqDhC,uGAvDA,+CAAsB,OAuDA;AACtB,uHAvDA,+DAAsC,OAuDA;AAnDxC,0DAAkC;AAqChC,mBArCK,kBAAQ,CAqCL;AApCV,0DAAkC;AAsChC,mBAtCK,kBAAQ,CAsCL;AArCV,0DAAkC;AAuChC,mBAvCK,kBAAQ,CAuCL;AAtCV,kDAA0B;AAoDxB,eApDK,cAAI,CAoDL;AAnDN,oFAA4D;AAwC1D,gCAxCK,+BAAqB,CAwCL;AAvCvB,oHAA4F;AAyC1F,gDAzCK,+CAAqC,CAyCL;AAxCvC,wFAAgE;AAyC9D,kCAzCK,iCAAuB,CAyCL;AAxCzB,yEAAiD;AA6C/C,sBA7CK,qBAAW,CA6CL;AA3Cb,kFAA0D;AAuCxD,+BAvCK,8BAAoB,CAuCL;AAtCtB,0GAAkF;AAuChF,2CAvCK,0CAAgC,CAuCL;AAtClC,sDAA8B;AAiD5B,iBAjDK,gBAAM,CAiDL;AA9CR,6DAA+C;AA+B7C,oCAAY;AA9Bd,mDAAqC;AAqBnC,0BAAO;AApBT,6CAA+B;AAiB7B,oBAAI;AAhBN,iDAAmC;AAiBjC,wBAAM;AAhBR,mEAAqD;AAiBnD,0CAAe;AAhBjB,2DAA6C;AAqB3C,kCAAW;AApBb,6CAA+B;AAkC7B,oBAAI;AAjCN,2DAA6C;AAmC3C,kCAAW;AAlCb,+EAAiE;AAoC/D,sDAAqB;AAnCvB,qEAAuD;AAkCrD,4CAAgB;AAjClB,+DAAiD;AAmC/C,sCAAa;AAlCf,qDAAuC;AA4BrC,4BAAQ;AA3BV,+CAAiC;AAgB/B,sBAAK;AAfP,+DAAiD;AAW/C,sCAAa;AARf,8CAAmD;AAajD,6FAbO,mBAAY,OAaP"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;AAsDhC,uGAxDA,+CAAsB,OAwDA;AACtB,uHAxDA,+DAAsC,OAwDA;AApDxC,0DAAkC;AAsChC,mBAtCK,kBAAQ,CAsCL;AArCV,0DAAkC;AAuChC,mBAvCK,kBAAQ,CAuCL;AAtCV,0DAAkC;AAwChC,mBAxCK,kBAAQ,CAwCL;AAvCV,kDAA0B;AAqDxB,eArDK,cAAI,CAqDL;AApDN,oFAA4D;AAyC1D,gCAzCK,+BAAqB,CAyCL;AAxCvB,oHAA4F;AA0C1F,gDA1CK,+CAAqC,CA0CL;AAzCvC,wFAAgE;AA0C9D,kCA1CK,iCAAuB,CA0CL;AAzCzB,yEAAiD;AA8C/C,sBA9CK,qBAAW,CA8CL;AA5Cb,kFAA0D;AAwCxD,+BAxCK,8BAAoB,CAwCL;AAvCtB,0GAAkF;AAwChF,2CAxCK,0CAAgC,CAwCL;AAvClC,sDAA8B;AAkD5B,iBAlDK,gBAAM,CAkDL;AAjDR,gEAAwC;AAkDtC,sBAlDK,qBAAW,CAkDL;AA/Cb,6DAA+C;AA+B7C,oCAAY;AA9Bd,mDAAqC;AAqBnC,0BAAO;AApBT,6CAA+B;AAiB7B,oBAAI;AAhBN,iDAAmC;AAiBjC,wBAAM;AAhBR,mEAAqD;AAiBnD,0CAAe;AAhBjB,2DAA6C;AAqB3C,kCAAW;AApBb,6CAA+B;AAkC7B,oBAAI;AAjCN,2DAA6C;AAmC3C,kCAAW;AAlCb,+EAAiE;AAoC/D,sDAAqB;AAnCvB,qEAAuD;AAkCrD,4CAAgB;AAjClB,+DAAiD;AAmC/C,sCAAa;AAlCf,qDAAuC;AA4BrC,4BAAQ;AA3BV,+CAAiC;AAgB/B,sBAAK;AAfP,+DAAiD;AAW/C,sCAAa;AARf,8CAAmD;AAajD,6FAbO,mBAAY,OAaP"}
@@ -0,0 +1,2 @@
1
+ declare function roundNumber(value: string | number, precision?: number): string;
2
+ export default roundNumber;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function roundNumber(value, precision = 2) {
4
+ if (value === undefined || value === null || value === '')
5
+ return 'NaN';
6
+ value = Number(value);
7
+ if (value < 0.0001)
8
+ return `${value}`;
9
+ const fixedPrecision = value >= 100
10
+ ? precision - 2
11
+ : value >= 10
12
+ ? precision - 1
13
+ : value >= 1
14
+ ? precision
15
+ : value >= 0.1
16
+ ? precision + 1
17
+ : value >= 0.01
18
+ ? precision + 2
19
+ : value >= 0.001
20
+ ? precision + 3
21
+ : precision + 4;
22
+ return value.toFixed(fixedPrecision);
23
+ }
24
+ exports.default = roundNumber;
25
+ //# sourceMappingURL=roundNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roundNumber.js","sourceRoot":"","sources":["../../../src/utilities/roundNumber.ts"],"names":[],"mappings":";;AAYA,SAAS,WAAW,CAAC,KAAsB,EAAE,SAAS,GAAG,CAAC;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACxE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,KAAK,GAAG,MAAM;QAAE,OAAO,GAAG,KAAK,EAAE,CAAC;IACtC,MAAM,cAAc,GAClB,KAAK,IAAI,GAAG;QACV,CAAC,CAAC,SAAS,GAAG,CAAC;QACf,CAAC,CAAC,KAAK,IAAI,EAAE;YACb,CAAC,CAAC,SAAS,GAAG,CAAC;YACf,CAAC,CAAC,KAAK,IAAI,CAAC;gBACZ,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,KAAK,IAAI,GAAG;oBACd,CAAC,CAAC,SAAS,GAAG,CAAC;oBACf,CAAC,CAAC,KAAK,IAAI,IAAI;wBACf,CAAC,CAAC,SAAS,GAAG,CAAC;wBACf,CAAC,CAAC,KAAK,IAAI,KAAK;4BAChB,CAAC,CAAC,SAAS,GAAG,CAAC;4BACf,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC;AAED,kBAAe,WAAW,CAAC"}
@@ -6,6 +6,7 @@ import { addAnnotation, getAnnotations, removeAnnotation, } from '../../stateMan
6
6
  import { isAnnotationLocked } from '../../stateManagement/annotation/annotationLocking';
7
7
  import * as lineSegment from '../../utilities/math/line';
8
8
  import angleBetweenLines from '../../utilities/math/angle/angleBetweenLines';
9
+ import roundNumber from '../../utilities/roundNumber';
9
10
  import { drawHandles as drawHandlesSvg, drawLine as drawLineSvg, drawLinkedTextBox as drawLinkedTextBoxSvg, } from '../../drawingSvg';
10
11
  import { state } from '../../store';
11
12
  import { getViewportIdsWithToolToRender } from '../../utilities/viewportFilters';
@@ -87,7 +88,6 @@ class AngleTool extends AnnotationTool {
87
88
  const [point1, point2, point3] = data.handles.points;
88
89
  const canvasPoint1 = viewport.worldToCanvas(point1);
89
90
  const canvasPoint2 = viewport.worldToCanvas(point2);
90
- const canvasPoint3 = viewport.worldToCanvas(point3);
91
91
  const line1 = {
92
92
  start: {
93
93
  x: canvasPoint1[0],
@@ -98,6 +98,12 @@ class AngleTool extends AnnotationTool {
98
98
  y: canvasPoint2[1],
99
99
  },
100
100
  };
101
+ const distanceToPoint = lineSegment.distanceToPoint([line1.start.x, line1.start.y], [line1.end.x, line1.end.y], [canvasCoords[0], canvasCoords[1]]);
102
+ if (distanceToPoint <= proximity)
103
+ return true;
104
+ if (!point3)
105
+ return false;
106
+ const canvasPoint3 = viewport.worldToCanvas(point3);
101
107
  const line2 = {
102
108
  start: {
103
109
  x: canvasPoint2[0],
@@ -108,9 +114,8 @@ class AngleTool extends AnnotationTool {
108
114
  y: canvasPoint3[1],
109
115
  },
110
116
  };
111
- const distanceToPoint = lineSegment.distanceToPoint([line1.start.x, line1.start.y], [line1.end.x, line1.end.y], [canvasCoords[0], canvasCoords[1]]);
112
117
  const distanceToPoint2 = lineSegment.distanceToPoint([line2.start.x, line2.start.y], [line2.end.x, line2.end.y], [canvasCoords[0], canvasCoords[1]]);
113
- if (distanceToPoint <= proximity || distanceToPoint2 <= proximity) {
118
+ if (distanceToPoint2 <= proximity) {
114
119
  return true;
115
120
  }
116
121
  return false;
@@ -395,7 +400,7 @@ class AngleTool extends AnnotationTool {
395
400
  if (angle === undefined) {
396
401
  return;
397
402
  }
398
- const textLines = [`${angle.toFixed(2)} ${String.fromCharCode(176)}`];
403
+ const textLines = [`${roundNumber(angle)} ${String.fromCharCode(176)}`];
399
404
  return textLines;
400
405
  }
401
406
  _calculateCachedStats(annotation, renderingEngine, enabledElement) {
@@ -1 +1 @@
1
- {"version":3,"file":"AngleTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/AngleTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AngleTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/AngleTool.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { vec2, vec3 } from 'gl-matrix';
2
2
  import { getEnabledElement, triggerEvent, eventTarget, utilities as csUtils, } from '@cornerstonejs/core';
3
+ import { getCalibratedLengthUnits, getCalibratedScale, } from '../../utilities/getCalibratedUnits';
4
+ import roundNumber from '../../utilities/roundNumber';
3
5
  import { AnnotationTool } from '../base';
4
6
  import throttle from '../../utilities/throttle';
5
7
  import { addAnnotation, getAnnotations, removeAnnotation, } from '../../stateManagement/annotation/annotationState';
@@ -587,8 +589,8 @@ class BidirectionalTool extends AnnotationTool {
587
589
  return;
588
590
  }
589
591
  const textLines = [
590
- `L: ${length.toFixed(2)} ${unit}`,
591
- `W: ${width.toFixed(2)} ${unit}`,
592
+ `L: ${roundNumber(length)} ${unit}`,
593
+ `W: ${roundNumber(width)} ${unit}`,
592
594
  ];
593
595
  return textLines;
594
596
  };
@@ -607,9 +609,10 @@ class BidirectionalTool extends AnnotationTool {
607
609
  if (!image) {
608
610
  continue;
609
611
  }
610
- const { imageData, dimensions, hasPixelSpacing } = image;
611
- const dist1 = this._calculateLength(worldPos1, worldPos2);
612
- const dist2 = this._calculateLength(worldPos3, worldPos4);
612
+ const { imageData, dimensions } = image;
613
+ const scale = getCalibratedScale(image);
614
+ const dist1 = this._calculateLength(worldPos1, worldPos2) / scale;
615
+ const dist2 = this._calculateLength(worldPos3, worldPos4) / scale;
613
616
  const length = dist1 > dist2 ? dist1 : dist2;
614
617
  const width = dist1 > dist2 ? dist2 : dist1;
615
618
  const index1 = transformWorldToIndex(imageData, worldPos1);
@@ -622,7 +625,7 @@ class BidirectionalTool extends AnnotationTool {
622
625
  cachedStats[targetId] = {
623
626
  length,
624
627
  width,
625
- unit: hasPixelSpacing ? 'mm' : 'px',
628
+ unit: getCalibratedLengthUnits(null, image),
626
629
  };
627
630
  }
628
631
  annotation.invalidated = false;
@@ -1 +1 @@
1
- {"version":3,"file":"BidirectionalTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/BidirectionalTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAqB,MAAM,WAAW,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,SAAS,IAAI,OAAO,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EACL,QAAQ,IAAI,WAAW,EACvB,WAAW,IAAI,cAAc,EAC7B,iBAAiB,IAAI,oBAAoB,GAC1C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAkBrC,OAAO,qCAAqC,MAAM,uDAAuD,CAAC;AAG1G,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;AAoC1C,MAAM,iBAAkB,SAAQ,cAAc;IAkB5C,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,yBAAyB,EAAE,KAAK;SACjC;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAkHrC,oBAAe,GAAG,CAChB,OAAuB,EACvB,UAAmC,EACnC,YAA0B,EAC1B,SAAiB,EACR,EAAE;YACX,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACpC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAGhC,IAAI,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAErD,IAAI,IAAI,GAAG;gBACT,KAAK,EAAE;oBACL,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;oBAClB,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;iBACnB;gBACD,GAAG,EAAE;oBACH,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;oBAClB,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;iBACnB;aACF,CAAC;YAEF,IAAI,eAAe,GAAG,WAAW,CAAC,eAAe,CAC/C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EACxB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;YAEF,IAAI,eAAe,IAAI,SAAS,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;YAGD,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,GAAG;gBACL,KAAK,EAAE;oBACL,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;oBAClB,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;iBACnB;gBACD,GAAG,EAAE;oBACH,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;oBAClB,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;iBACnB;aACF,CAAC;YAEF,eAAe,GAAG,WAAW,CAAC,eAAe,CAC3C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EACxB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;YAEF,IAAI,eAAe,IAAI,SAAS,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAQF,yBAAoB,GAAG,CACrB,GAAoC,EACpC,UAAmC,EAC7B,EAAE;YACR,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAEhC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;YAE9B,MAAM,mBAAmB,GAAG,8BAA8B,CACxD,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;YAEF,IAAI,CAAC,QAAQ,GAAG;gBACd,UAAU;gBACV,mBAAmB;gBACnB,aAAa,EAAE,KAAK;aACrB,CAAC;YAEF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE9B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAE3C,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAE5E,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAE3B,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,CAAC;QAWF,2BAAsB,GAAG,CACvB,GAAoC,EACpC,UAAmC,EACnC,MAAkB,EACZ,EAAE;YACR,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAChC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAE7B,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;YAE9B,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,WAAW,CAAC;YAEhB,IAAK,MAAwB,CAAC,aAAa,EAAE;gBAC3C,aAAa,GAAG,IAAI,CAAC;aACtB;iBAAM;gBACL,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;aAClE;YAGD,MAAM,mBAAmB,GAAG,8BAA8B,CACxD,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;YAEF,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAE3B,IAAI,CAAC,QAAQ,GAAG;gBACd,UAAU;gBACV,mBAAmB;gBACnB,WAAW;gBACX,aAAa;aACd,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE9B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAE3C,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAE5E,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,CAAC;QAUF,iBAAY,GAAG,CAAC,GAAoC,EAAQ,EAAE;YAC5D,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAEhC,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,EAAE,GAChE,IAAI,CAAC,QAAQ,CAAC;YAChB,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAE5B,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE;gBAC9B,OAAO;aACR;YAED,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAEtC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAE3C,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE;gBAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChC,MAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,MAAM,uBAAuB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpE,IAAI,uBAAuB,GAAG,sBAAsB,EAAE;oBAGpD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAElD,MAAM,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvC,MAAM,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAGvC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBAErC,IAAI,CAAC,GAAG,CACN,cAAc,EACd,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/B,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAChC,CAAC;oBAEF,MAAM,uCAAuC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBAE9D,IAAI,CAAC,GAAG,CACN,uCAAuC,EACvC,CAAC,cAAc,CAAC,CAAC,CAAC,EAClB,cAAc,CAAC,CAAC,CAAC,CAClB,CAAC;oBAEF,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBAE7C,IAAI,CAAC,GAAG,CACN,sBAAsB,EACtB,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EACvC,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CACxC,CAAC;oBAEF,IAAI,SAAS,CAAC;oBAEd,IACE,IAAI,CAAC,GAAG,CACN,sBAAsB,EACtB,uCAAuC,CACxC,GAAG,CAAC,EACL;wBACA,SAAS,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;qBAChD;yBAAM;wBACL,SAAS,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;qBAChD;oBAED,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;wBACpB,QAAQ,CAAC,CAAC,CAAC;wBACX,QAAQ,CAAC,CAAC,CAAC;wBACX,SAAS,CAAC,CAAC,CAAC;wBACZ,SAAS,CAAC,CAAC,CAAC;qBACb,CAAC;iBACH;aACF;YAED,IACE,IAAI,CAAC,oBAAoB;gBACzB,IAAI,CAAC,aAAa,CAAC,yBAAyB,EAC5C;gBACA,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aAC5C;YAED,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAE5E,IAAI,aAAa,EAAE;gBACjB,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC;gBAE9C,MAAM,WAAW,GAAmC;oBAClD,UAAU;iBACX,CAAC;gBAEF,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;aACnD;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC;QAKF,sBAAiB,GAAG,CAAC,GAAoC,EAAQ,EAAE;YACjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAC/C,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACrD,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;YACnC,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAE5B,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;YAGrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YAEjD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEjE,MAAM,YAAY,GAAG;gBACnB,eAAe,EAAE;oBACf,KAAK,EAAE;wBACL,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3B;oBACD,GAAG,EAAE;wBACH,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3B;iBACF;gBACD,gBAAgB,EAAE;oBAChB,KAAK,EAAE;wBACL,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3B;oBACD,GAAG,EAAE;wBACH,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3B;iBACF;aACF,CAAC;YAKF,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC;YAEzC,MAAM,EAAE,GACN,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5E,MAAM,EAAE,GACN,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC;YAC5B,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC;YAE5B,MAAM,IAAI,GACR,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBACnC,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC;YACJ,MAAM,IAAI,GACR,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBACnC,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,IAAI,GAAG,uBAAuB,GAAG,OAAO,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,GAAG,uBAAuB,GAAG,OAAO,CAAC;YACxD,MAAM,IAAI,GAAG,IAAI,GAAG,uBAAuB,GAAG,OAAO,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,GAAG,uBAAuB,GAAG,OAAO,CAAC;YAGtD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAE9D,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;YAC9B,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAE5E,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC;QAMF,wBAAmB,GAAG,CAAC,GAAoC,EAAQ,EAAE;YACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAChC,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAC3C,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,GACnE,IAAI,CAAC,QAAQ,CAAC;YAChB,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAC5B,IAAI,aAAa,EAAE;gBACjB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;gBACpC,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC;gBAExC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;gBAElC,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;gBACrC,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;gBACrC,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;gBAErC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;aACzB;iBAAM,IAAI,WAAW,KAAK,SAAS,EAAE;gBAEpC,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;gBACpC,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC;gBACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBAEnC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvB,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;oBAC7B,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;oBAC7B,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;aAC/B;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAC5B,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;aAC/B;YAED,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAC9E,CAAC,CAAC;QAMF,sBAAiB,GAAG,CAAC,GAAoC,EAAQ,EAAE;YACjE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAC/C,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACpC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAG5B,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;YACrC,MAAM,yBAAyB,GAAG;gBAChC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9C,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9C,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9C,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC/C,CAAC;YAEF,MAAM,gBAAgB,GAAG;gBACvB,KAAK,EAAE;oBACL,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnC;gBACD,GAAG,EAAE;oBACH,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnC;aACF,CAAC;YACF,MAAM,iBAAiB,GAAG;gBACxB,KAAK,EAAE;oBACL,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnC;gBACD,GAAG,EAAE;oBACH,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnC;aACF,CAAC;YAGF,MAAM,aAAa,GAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC;YAClD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAElE,IAAI,iBAAiB,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAAC,EAAE;gBACtD,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEzD,MAAM,sBAAsB,GAC1B,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;gBAE9C,MAAM,6BAA6B,GAAG,IAAI,CAAC,GAAG,CAC5C,IAAI,CAAC,MAAM,EAAE,EACb,mBAAmB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,EAClD,mBAAmB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CACnD,CAAC;gBAEF,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,CACvC,IAAI,CAAC,MAAM,EAAE,EACb,yBAAyB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBAC7C,sBAAsB,CAAC,CAAC,CAAC,EAC3B,yBAAyB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBAC7C,sBAAsB,CAAC,CAAC,CAAC,CAC5B,CAAC;gBAGF,IAAI,CAAC,SAAS,CACZ,6BAA6B,EAC7B,6BAA6B,CAC9B,CAAC;gBACF,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;gBAGnE,MAAM,wBAAwB,GAAG;oBAC/B,KAAK,EAAE;wBACL,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;wBAC5B,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;qBAC7B;oBACD,GAAG,EAAE;wBACH,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;wBACzB,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;qBAC1B;iBACF,CAAC;gBAOF,IACE,IAAI,CAAC,yCAAyC,CAC5C,wBAAwB,EACxB,iBAAiB,CAClB,EACD;oBACA,OAAO;iBACR;gBAED,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;gBAEhD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAChC,wBAAwB,EACxB,6BAA6B,CAC9B,CAAC;gBAIF,IAAI,WAAW,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,WAAW,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAElD,IAAI,YAAY,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,IAAI,YAAY,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAGnD,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACnC,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAEnC,YAAY,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpC,YAAY,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAGpC,MAAM,iBAAiB,GACrB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChE,MAAM,kBAAkB,GACtB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAEhE,MAAM,kBAAkB,GACtB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAClE,MAAM,mBAAmB,GACvB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAGlE,WAAW,GAAG,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACtD,WAAW,GAAG,kBAAkB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAEvD,YAAY,GAAG,kBAAkB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACxD,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAGzD,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;gBACzE,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC;oBAC5C,YAAY;oBACZ,YAAY;iBACb,CAAC,CAAC;gBAIH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC;gBACvD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;aACzC;iBAAM;gBAEL,MAAM,oBAAoB,GAAG,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE7D,MAAM,mBAAmB,GAAG;oBAC1B,eAAe,EAAE;wBACf,KAAK,EAAE,gBAAgB,CAAC,KAAK;wBAC7B,GAAG,EAAE,gBAAgB,CAAC,GAAG;qBAC1B;oBACD,gBAAgB,EAAE;wBAChB,KAAK,EAAE,iBAAiB,CAAC,KAAK;wBAC9B,GAAG,EAAE,iBAAiB,CAAC,GAAG;qBAC3B;iBACF,CAAC;gBAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CACtC,IAAI,CAAC,MAAM,EAAE,EACb;oBACE,mBAAmB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBACzC,mBAAmB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;iBAC1C,EACD;oBACE,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC3C,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;iBAC5C,CACF,CAAC;gBAEF,MAAM,4BAA4B,GAAG,IAAI,CAAC,SAAS,CACjD,IAAI,CAAC,MAAM,EAAE,EACb,kBAAkB,CACnB,CAAC;gBAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CACxC,IAAI,CAAC,MAAM,EAAE,EACb,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAChD;oBACE,yBAAyB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBAC/C,yBAAyB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;iBAChD,CACF,CAAC;gBAEF,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAEzD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAChC,4BAA4B,EAC5B,oBAAoB,CACrB,CAAC;gBAEF,MAAM,8BAA8B,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC;gBAExE,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CACzC,IAAI,CAAC,MAAM,EAAE,EACb;oBACE,yBAAyB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBAClD,yBAAyB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;iBACnD,EACD,4BAA4B,EAC5B,8BAA8B,CAC/B,CAAC;gBAGF,IACE,IAAI,CAAC,yCAAyC,CAC5C;oBACE,KAAK,EAAE;wBACL,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;wBACzB,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;qBAC1B;oBACD,GAAG,EAAE;wBACH,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;wBACxB,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;qBACzB;iBACF,EACD;oBACE,KAAK,EAAE;wBACL,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBAC9C,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;qBAC/C;oBACD,GAAG,EAAE;wBACH,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;wBAC5C,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;qBAC7C;iBACF,CACF,EACD;oBACA,OAAO;iBACR;gBAED,MAAM,iBAAiB,GAAG,WAAW,CAAC,aAAa,CACjD,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAChD,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC9C,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EACpD,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CACjD,CAAC;gBAGF,IAAI,CAAC,iBAAiB,EAAE;oBACtB,OAAO;iBACR;gBAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC,aAAa,CAChE,kBAAkC,CACnC,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC;aACxD;QACH,CAAC,CAAC;QAMF,WAAM,GAAG,CAAC,OAAuB,EAAE,EAAE;YAEnC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAChC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAE5B,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACzE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;gBAE5B,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAEtC,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;gBAE3C,qCAAqC,CACnC,eAAe,EACf,mBAAmB,CACpB,CAAC;gBAEF,IAAI,aAAa,EAAE;oBACjB,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC;oBAE9C,MAAM,WAAW,GAAmC;wBAClD,UAAU;qBACX,CAAC;oBAEF,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;iBACnD;gBAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,OAAO,UAAU,CAAC,aAAa,CAAC;aACjC;QACH,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,OAAO,EAAE,EAAE;YAC1B,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAEnC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACpE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACpE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhE,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,SAAS,EAChB,IAAI,CAAC,YAA6B,CACnC,CAAC;YACF,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,SAAS,EAChB,IAAI,CAAC,YAA6B,CACnC,CAAC;YACF,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,iBAAkC,CACxC,CAAC;QACJ,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,OAAO,EAAE,EAAE;YAC5B,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC;YAEpC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEnE,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,SAAS,EAChB,IAAI,CAAC,YAA6B,CACnC,CAAC;YACF,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,SAAS,EAChB,IAAI,CAAC,YAA6B,CACnC,CAAC;YACF,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,iBAAkC,CACxC,CAAC;QACJ,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,OAAO,EAAE,EAAE;YAC5B,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAEnC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACtE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhE,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,SAAS,EAChB,IAAI,CAAC,YAA6B,CACnC,CAAC;YACF,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,mBAAoC,CAC1C,CAAC;YACF,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,SAAS,EAChB,IAAI,CAAC,YAA6B,CACnC,CAAC;QACJ,CAAC,CAAC;QAEF,sBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE;YAC9B,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC;YAEpC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACzE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEnE,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,SAAS,EAChB,IAAI,CAAC,YAA6B,CACnC,CAAC;YACF,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,mBAAoC,CAC1C,CAAC;YACF,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,SAAS,EAChB,IAAI,CAAC,YAA6B,CACnC,CAAC;QACJ,CAAC,CAAC;QAUF,qBAAgB,GAAG,CACjB,cAAqC,EACrC,gBAAkC,EACzB,EAAE;YACX,IAAI,YAAY,GAAG,IAAI,CAAC;YACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACpC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;YAC7B,IAAI,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;YAE9D,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE;gBACxB,OAAO,YAAY,CAAC;aACrB;YAED,WAAW,GAAG,IAAI,CAAC,uCAAuC,CACxD,OAAO,EACP,WAAW,CACZ,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE;gBACxB,OAAO,YAAY,CAAC;aACrB;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE5C,MAAM,eAAe,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAEtD,MAAM,cAAc,GAAmB;gBACrC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC5B,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE;aACvC,CAAC;YAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAA4B,CAAC;gBAC7D,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;gBAC3C,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;gBACnD,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEvE,cAAc,CAAC,aAAa,GAAG,aAAa,CAAC;gBAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBACvE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBAInE,IACE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,SAAS,EAC7C;oBACA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG;wBAC3B,MAAM,EAAE,IAAI;wBACZ,KAAK,EAAE,IAAI;wBACX,IAAI,EAAE,IAAI;qBACX,CAAC;oBAEF,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;iBACzE;qBAAM,IAAI,UAAU,CAAC,WAAW,EAAE;oBACjC,IAAI,CAAC,8BAA8B,CACjC,UAAU,EACV,eAAe,EACf,cAAc,CACf,CAAC;iBACH;gBAGD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE;oBAClC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;oBACpD,OAAO,YAAY,CAAC;iBACrB;gBAED,IAAI,wBAAwB,CAAC;gBAE7B,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE;oBACvC,SAAS;iBACV;gBAED,IACE,CAAC,kBAAkB,CAAC,UAAU,CAAC;oBAC/B,CAAC,IAAI,CAAC,QAAQ;oBACd,iBAAiB,KAAK,IAAI,EAC1B;oBAEA,wBAAwB,GAAG,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC;iBACnE;gBAED,IAAI,wBAAwB,EAAE;oBAC5B,MAAM,cAAc,GAAG,GAAG,CAAC;oBAE3B,cAAc,CACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB;wBACE,KAAK;qBACN,CACF,CAAC;iBACH;gBAED,MAAM,OAAO,GAAG,GAAG,aAAa,SAAS,CAAC;gBAC1C,MAAM,OAAO,GAAG,GAAG,aAAa,SAAS,CAAC;gBAE1C,MAAM,OAAO,GAAG,GAAG,CAAC;gBACpB,WAAW,CACT,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,iBAAiB,CAAC,CAAC,CAAC,EACpB,iBAAiB,CAAC,CAAC,CAAC,EACpB;oBACE,KAAK;oBACL,QAAQ;oBACR,SAAS;oBACT,MAAM;iBACP,EACD,OAAO,CACR,CAAC;gBAEF,MAAM,aAAa,GAAG,GAAG,CAAC;gBAC1B,WAAW,CACT,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,CAAC,CAAC,CAAC,EACpB,iBAAiB,CAAC,CAAC,CAAC,EACpB;oBACE,KAAK;oBACL,QAAQ;oBACR,SAAS;oBACT,MAAM;iBACP,EACD,OAAO,CACR,CAAC;gBAEF,YAAY,GAAG,IAAI,CAAC;gBAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAErD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;oBACxC,SAAS;iBACV;gBACD,IAAI,mBAAmB,CAAC;gBAExB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAClC,mBAAmB,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;oBAEhE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa;wBAChC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;iBAC/C;gBAED,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAC5C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CACnC,CAAC;gBAEF,MAAM,UAAU,GAAG,GAAG,CAAC;gBACvB,MAAM,WAAW,GAAG,oBAAoB,CACtC,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,EAAE,EACF,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,UAAU,CAAC,CACvD,CAAC;gBAEF,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;gBAEvD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,GAAG;oBACtC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC5C,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;oBACrD,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;oBACxD,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;iBAClE,CAAC;aACH;YAED,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QAEF,8CAAyC,GAAG,CAC1C,gBAAgB,EAChB,iBAAiB,EACjB,EAAE;YACF,MAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAElD,IAAI,CAAC,GAAG,CACN,2BAA2B,EAC3B,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EACnD,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CACpD,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,2BAA2B,EAAE,2BAA2B,CAAC,CAAC;YAEzE,MAAM,yBAAyB,GAAG;gBAChC,KAAK,EAAE;oBACL,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,GAAG,EAAE;oBAClE,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,GAAG,EAAE;iBACnE;gBACD,GAAG,EAAE;oBACH,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,GAAG,EAAE;oBAChE,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,GAAG,EAAE;iBACjE;aACF,CAAC;YAKF,MAAM,yBAAyB,GAAG,WAAW,CAAC,aAAa,CACzD,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,EACtE,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAClE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EACpD,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CACjD,CAAC;YAEF,MAAM,wBAAwB,GAAG,CAAC,yBAAyB,CAAC;YAE5D,OAAO,wBAAwB,CAAC;QAClC,CAAC,CAAC;QAKF,kBAAa,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACjC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAC7B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEtD,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,OAAO;aACR;YAID,MAAM,SAAS,GAAG;gBAChB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBACjC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;aACjC,CAAC;YAEF,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAUF,0BAAqB,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE;YACtE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAC5B,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,cAAc,CAAC;YAEzD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEzC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBAK/D,IAAI,CAAC,KAAK,EAAE;oBACV,SAAS;iBACV;gBAED,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;gBAEzD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC1D,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC7C,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBAE5C,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAE3D,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;oBAC9D,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;oBACrC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;gBAEvC,WAAW,CAAC,QAAQ,CAAC,GAAG;oBACtB,MAAM;oBACN,KAAK;oBACL,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;iBACpC,CAAC;aACH;YAED,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC;YAG/B,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC;YAE7C,MAAM,WAAW,GAAkC;gBACjD,UAAU;gBACV,UAAU;gBACV,iBAAiB;aAClB,CAAC;YACF,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAElD,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAW,EAAE;YACxE,OAAO,CACL,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC;gBACjD,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC;gBACjD,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC;gBACjD,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAClD,CAAC;QACJ,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACrC,OAAO,IAAI,CAAC,KAAK,CACf,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAClD,CAAC;QACJ,CAAC,CAAC;QA5sCA,IAAI,CAAC,8BAA8B,GAAG,QAAQ,CAC5C,IAAI,CAAC,qBAAqB,EAC1B,GAAG,EACH,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;IACJ,CAAC;IAUD,gBAAgB,CACd,GAAoC;QAEpC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;QAC/B,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;QACrC,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;QAErD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CACjD,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,MAAM,CACP,CAAC;QAEF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAE9D,MAAM,UAAU,GAA4B;YAC1C,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE;gBACR,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC5B,eAAe,EAAgB,CAAC,GAAG,eAAe,CAAC;gBACnD,MAAM,EAAgB,CAAC,GAAG,MAAM,CAAC;gBACjC,mBAAmB;gBACnB,iBAAiB;aAClB;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE;oBACP,MAAM,EAAE;wBAEQ,CAAC,GAAG,QAAQ,CAAC;wBACb,CAAC,GAAG,QAAQ,CAAC;wBAEb,CAAC,GAAG,QAAQ,CAAC;wBACb,CAAC,GAAG,QAAQ,CAAC;qBAC5B;oBACD,OAAO,EAAE;wBACP,QAAQ,EAAE,KAAK;wBACf,aAAa,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wBACtC,gBAAgB,EAAE;4BAChB,OAAO,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BAChC,QAAQ,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BACjC,UAAU,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BACnC,WAAW,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;yBACrC;qBACF;oBACD,iBAAiB,EAAE,IAAI;iBACxB;gBACD,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,EAAE;aAChB;SACF,CAAC;QAEF,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEnC,MAAM,mBAAmB,GAAG,8BAA8B,CACxD,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,UAAU;YACV,mBAAmB;YACnB,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,KAAK;YACpB,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAE3B,GAAG,CAAC,cAAc,EAAE,CAAC;QAErB,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAE5E,OAAO,UAAU,CAAC;IACpB,CAAC;IAqhCD,gBAAgB,CAAC,IAAI,EAAE,IAAI;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;CA+EF;AAED,iBAAiB,CAAC,QAAQ,GAAG,eAAe,CAAC;AAC7C,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"BidirectionalTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/BidirectionalTool.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { AnnotationTool } from '../base';
2
2
  import { getEnabledElement, VolumeViewport, eventTarget, triggerEvent, utilities as csUtils, } from '@cornerstonejs/core';
3
+ import { getCalibratedLengthUnits, getCalibratedAreaUnits, getCalibratedScale, getCalibratedAspect, } from '../../utilities/getCalibratedUnits';
4
+ import roundNumber from '../../utilities/roundNumber';
3
5
  import throttle from '../../utilities/throttle';
4
6
  import { addAnnotation, getAnnotations, removeAnnotation, } from '../../stateManagement/annotation/annotationState';
5
7
  import { isAnnotationLocked } from '../../stateManagement/annotation/annotationLocking';
@@ -454,23 +456,23 @@ class CircleROITool extends AnnotationTool {
454
456
  if (radius) {
455
457
  const radiusLine = isEmptyArea
456
458
  ? `Radius: Oblique not supported`
457
- : `Radius: ${radius.toFixed(2)} ${radiusUnit}`;
459
+ : `Radius: ${roundNumber(radius)} ${radiusUnit}`;
458
460
  textLines.push(radiusLine);
459
461
  }
460
462
  if (area) {
461
463
  const areaLine = isEmptyArea
462
464
  ? `Area: Oblique not supported`
463
- : `Area: ${area.toFixed(2)} ${areaUnit}\xb2`;
465
+ : `Area: ${roundNumber(area)} ${areaUnit}`;
464
466
  textLines.push(areaLine);
465
467
  }
466
468
  if (mean) {
467
- textLines.push(`Mean: ${mean.toFixed(2)} ${modalityUnit}`);
469
+ textLines.push(`Mean: ${roundNumber(mean)} ${modalityUnit}`);
468
470
  }
469
471
  if (max) {
470
- textLines.push(`Max: ${max.toFixed(2)} ${modalityUnit}`);
472
+ textLines.push(`Max: ${roundNumber(max)} ${modalityUnit}`);
471
473
  }
472
474
  if (stdDev) {
473
- textLines.push(`Std Dev: ${stdDev.toFixed(2)} ${modalityUnit}`);
475
+ textLines.push(`Std Dev: ${roundNumber(stdDev)} ${modalityUnit}`);
474
476
  }
475
477
  return textLines;
476
478
  };
@@ -527,7 +529,11 @@ class CircleROITool extends AnnotationTool {
527
529
  };
528
530
  const { worldWidth, worldHeight } = getWorldWidthAndHeightFromTwoPoints(viewPlaneNormal, viewUp, worldPos1, worldPos2);
529
531
  const isEmptyArea = worldWidth === 0 && worldHeight === 0;
530
- const area = Math.abs(Math.PI * (worldWidth / 2) * (worldHeight / 2));
532
+ const scale = getCalibratedScale(image);
533
+ const aspect = getCalibratedAspect(image);
534
+ const area = Math.abs(Math.PI *
535
+ (worldWidth / scale / 2) *
536
+ (worldHeight / aspect / scale / 2));
531
537
  let count = 0;
532
538
  let mean = 0;
533
539
  let stdDev = 0;
@@ -556,10 +562,10 @@ class CircleROITool extends AnnotationTool {
556
562
  max,
557
563
  stdDev,
558
564
  isEmptyArea,
559
- areaUnit: hasPixelSpacing ? 'mm' : 'px',
560
- radius: worldWidth / 2,
561
- radiusUnit: hasPixelSpacing ? 'mm' : 'px',
562
- perimeter: 2 * Math.PI * (worldWidth / 2),
565
+ areaUnit: getCalibratedAreaUnits(null, image),
566
+ radius: worldWidth / 2 / scale,
567
+ radiusUnit: getCalibratedLengthUnits(null, image),
568
+ perimeter: (2 * Math.PI * (worldWidth / 2)) / scale,
563
569
  modalityUnit,
564
570
  };
565
571
  }