@cornerstonejs/tools 1.34.0 → 1.35.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 (284) hide show
  1. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js +4 -4
  2. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
  3. package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +3 -2
  4. package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -1
  5. package/dist/cjs/index.d.ts +2 -2
  6. package/dist/cjs/index.js +3 -2
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/tools/AdvancedMagnifyTool.d.ts +4 -0
  9. package/dist/cjs/tools/AdvancedMagnifyTool.js +8 -3
  10. package/dist/cjs/tools/AdvancedMagnifyTool.js.map +1 -1
  11. package/dist/cjs/tools/annotation/SplineROITool.d.ts +59 -0
  12. package/dist/cjs/tools/annotation/SplineROITool.js +709 -0
  13. package/dist/cjs/tools/annotation/SplineROITool.js.map +1 -0
  14. package/dist/cjs/tools/annotation/splines/BSpline.d.ts +5 -0
  15. package/dist/cjs/tools/annotation/splines/BSpline.js +14 -0
  16. package/dist/cjs/tools/annotation/splines/BSpline.js.map +1 -0
  17. package/dist/cjs/tools/annotation/splines/CardinalSpline.d.ts +12 -0
  18. package/dist/cjs/tools/annotation/splines/CardinalSpline.js +38 -0
  19. package/dist/cjs/tools/annotation/splines/CardinalSpline.js.map +1 -0
  20. package/dist/cjs/tools/annotation/splines/CatmullRomSpline.d.ts +5 -0
  21. package/dist/cjs/tools/annotation/splines/CatmullRomSpline.js +12 -0
  22. package/dist/cjs/tools/annotation/splines/CatmullRomSpline.js.map +1 -0
  23. package/dist/cjs/tools/annotation/splines/CubicSpline.d.ts +13 -0
  24. package/dist/cjs/tools/annotation/splines/CubicSpline.js +192 -0
  25. package/dist/cjs/tools/annotation/splines/CubicSpline.js.map +1 -0
  26. package/dist/cjs/tools/annotation/splines/LinearSpline.d.ts +5 -0
  27. package/dist/cjs/tools/annotation/splines/LinearSpline.js +12 -0
  28. package/dist/cjs/tools/annotation/splines/LinearSpline.js.map +1 -0
  29. package/dist/cjs/tools/annotation/splines/QuadraticBezier.d.ts +6 -0
  30. package/dist/cjs/tools/annotation/splines/QuadraticBezier.js +20 -0
  31. package/dist/cjs/tools/annotation/splines/QuadraticBezier.js.map +1 -0
  32. package/dist/cjs/tools/annotation/splines/QuadraticSpline.d.ts +9 -0
  33. package/dist/cjs/tools/annotation/splines/QuadraticSpline.js +18 -0
  34. package/dist/cjs/tools/annotation/splines/QuadraticSpline.js.map +1 -0
  35. package/dist/cjs/tools/annotation/splines/Spline.d.ts +49 -0
  36. package/dist/cjs/tools/annotation/splines/Spline.js +420 -0
  37. package/dist/cjs/tools/annotation/splines/Spline.js.map +1 -0
  38. package/dist/cjs/tools/index.d.ts +2 -1
  39. package/dist/cjs/tools/index.js +3 -1
  40. package/dist/cjs/tools/index.js.map +1 -1
  41. package/dist/cjs/types/CardinalSplineProps.d.ts +5 -0
  42. package/dist/cjs/types/CardinalSplineProps.js +3 -0
  43. package/dist/cjs/types/CardinalSplineProps.js.map +1 -0
  44. package/dist/cjs/types/ClosestControlPoint.d.ts +4 -0
  45. package/dist/cjs/types/ClosestControlPoint.js +3 -0
  46. package/dist/cjs/types/ClosestControlPoint.js.map +1 -0
  47. package/dist/cjs/types/ClosestPoint.d.ts +5 -0
  48. package/dist/cjs/types/ClosestPoint.js +3 -0
  49. package/dist/cjs/types/ClosestPoint.js.map +1 -0
  50. package/dist/cjs/types/ClosestSplinePoint.d.ts +4 -0
  51. package/dist/cjs/types/ClosestSplinePoint.js +3 -0
  52. package/dist/cjs/types/ClosestSplinePoint.js.map +1 -0
  53. package/dist/cjs/types/ControlPointInfo.d.ts +5 -0
  54. package/dist/cjs/types/ControlPointInfo.js +3 -0
  55. package/dist/cjs/types/ControlPointInfo.js.map +1 -0
  56. package/dist/cjs/types/ISpline.d.ts +29 -0
  57. package/dist/cjs/types/ISpline.js +3 -0
  58. package/dist/cjs/types/ISpline.js.map +1 -0
  59. package/dist/cjs/types/SplineCurveSegment.d.ts +14 -0
  60. package/dist/cjs/types/SplineCurveSegment.js +3 -0
  61. package/dist/cjs/types/SplineCurveSegment.js.map +1 -0
  62. package/dist/cjs/types/SplineLineSegment.d.ts +10 -0
  63. package/dist/cjs/types/SplineLineSegment.js +3 -0
  64. package/dist/cjs/types/SplineLineSegment.js.map +1 -0
  65. package/dist/cjs/types/SplineProps.d.ts +4 -0
  66. package/dist/cjs/types/SplineProps.js +3 -0
  67. package/dist/cjs/types/SplineProps.js.map +1 -0
  68. package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +34 -0
  69. package/dist/cjs/types/index.d.ts +10 -1
  70. package/dist/cjs/utilities/index.d.ts +2 -3
  71. package/dist/cjs/utilities/index.js +5 -5
  72. package/dist/cjs/utilities/index.js.map +1 -1
  73. package/dist/cjs/utilities/math/aabb/distanceToPoint.d.ts +2 -0
  74. package/dist/cjs/utilities/math/aabb/distanceToPoint.js +11 -0
  75. package/dist/cjs/utilities/math/aabb/distanceToPoint.js.map +1 -0
  76. package/dist/cjs/utilities/math/aabb/distanceToPointSquared.d.ts +2 -0
  77. package/dist/cjs/utilities/math/aabb/distanceToPointSquared.js +24 -0
  78. package/dist/cjs/utilities/math/aabb/distanceToPointSquared.js.map +1 -0
  79. package/dist/cjs/utilities/math/aabb/index.d.ts +2 -0
  80. package/dist/cjs/utilities/math/aabb/index.js +11 -0
  81. package/dist/cjs/utilities/math/aabb/index.js.map +1 -0
  82. package/dist/cjs/utilities/math/index.d.ts +6 -5
  83. package/dist/cjs/utilities/math/index.js +11 -9
  84. package/dist/cjs/utilities/math/index.js.map +1 -1
  85. package/dist/cjs/utilities/math/line/distanceToPointSquared.js +5 -21
  86. package/dist/cjs/utilities/math/line/distanceToPointSquared.js.map +1 -1
  87. package/dist/cjs/utilities/math/line/distanceToPointSquaredInfo.d.ts +5 -0
  88. package/dist/cjs/utilities/math/line/distanceToPointSquaredInfo.js +56 -0
  89. package/dist/cjs/utilities/math/line/distanceToPointSquaredInfo.js.map +1 -0
  90. package/dist/cjs/utilities/math/line/index.d.ts +2 -1
  91. package/dist/cjs/utilities/math/line/index.js +3 -1
  92. package/dist/cjs/utilities/math/line/index.js.map +1 -1
  93. package/dist/cjs/utilities/math/point/distanceToPoint.js +5 -6
  94. package/dist/cjs/utilities/math/point/distanceToPoint.js.map +1 -1
  95. package/dist/cjs/utilities/math/point/distanceToPointSquared.d.ts +4 -0
  96. package/dist/cjs/utilities/math/point/distanceToPointSquared.js +12 -0
  97. package/dist/cjs/utilities/math/point/distanceToPointSquared.js.map +1 -0
  98. package/dist/cjs/utilities/math/point/index.d.ts +3 -2
  99. package/dist/cjs/utilities/math/point/index.js +7 -3
  100. package/dist/cjs/utilities/math/point/index.js.map +1 -1
  101. package/dist/cjs/utilities/math/point/mirror.d.ts +2 -0
  102. package/dist/cjs/utilities/math/point/mirror.js +11 -0
  103. package/dist/cjs/utilities/math/point/mirror.js.map +1 -0
  104. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +4 -4
  105. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
  106. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +2 -1
  107. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -1
  108. package/dist/esm/index.js +2 -2
  109. package/dist/esm/index.js.map +1 -1
  110. package/dist/esm/tools/AdvancedMagnifyTool.js +8 -3
  111. package/dist/esm/tools/AdvancedMagnifyTool.js.map +1 -1
  112. package/dist/esm/tools/annotation/SplineROITool.js +703 -0
  113. package/dist/esm/tools/annotation/SplineROITool.js.map +1 -0
  114. package/dist/esm/tools/annotation/splines/BSpline.js +10 -0
  115. package/dist/esm/tools/annotation/splines/BSpline.js.map +1 -0
  116. package/dist/esm/tools/annotation/splines/CardinalSpline.js +33 -0
  117. package/dist/esm/tools/annotation/splines/CardinalSpline.js.map +1 -0
  118. package/dist/esm/tools/annotation/splines/CatmullRomSpline.js +8 -0
  119. package/dist/esm/tools/annotation/splines/CatmullRomSpline.js.map +1 -0
  120. package/dist/esm/tools/annotation/splines/CubicSpline.js +165 -0
  121. package/dist/esm/tools/annotation/splines/CubicSpline.js.map +1 -0
  122. package/dist/esm/tools/annotation/splines/LinearSpline.js +8 -0
  123. package/dist/esm/tools/annotation/splines/LinearSpline.js.map +1 -0
  124. package/dist/esm/tools/annotation/splines/QuadraticBezier.js +16 -0
  125. package/dist/esm/tools/annotation/splines/QuadraticBezier.js.map +1 -0
  126. package/dist/esm/tools/annotation/splines/QuadraticSpline.js +14 -0
  127. package/dist/esm/tools/annotation/splines/QuadraticSpline.js.map +1 -0
  128. package/dist/esm/tools/annotation/splines/Spline.js +392 -0
  129. package/dist/esm/tools/annotation/splines/Spline.js.map +1 -0
  130. package/dist/esm/tools/index.js +2 -1
  131. package/dist/esm/tools/index.js.map +1 -1
  132. package/dist/esm/types/CardinalSplineProps.js +2 -0
  133. package/dist/esm/types/CardinalSplineProps.js.map +1 -0
  134. package/dist/esm/types/ClosestControlPoint.js +2 -0
  135. package/dist/esm/types/ClosestControlPoint.js.map +1 -0
  136. package/dist/esm/types/ClosestPoint.js +2 -0
  137. package/dist/esm/types/ClosestPoint.js.map +1 -0
  138. package/dist/esm/types/ClosestSplinePoint.js +2 -0
  139. package/dist/esm/types/ClosestSplinePoint.js.map +1 -0
  140. package/dist/esm/types/ControlPointInfo.js +2 -0
  141. package/dist/esm/types/ControlPointInfo.js.map +1 -0
  142. package/dist/esm/types/ISpline.js +2 -0
  143. package/dist/esm/types/ISpline.js.map +1 -0
  144. package/dist/esm/types/SplineCurveSegment.js +2 -0
  145. package/dist/esm/types/SplineCurveSegment.js.map +1 -0
  146. package/dist/esm/types/SplineLineSegment.js +2 -0
  147. package/dist/esm/types/SplineLineSegment.js.map +1 -0
  148. package/dist/esm/types/SplineProps.js +2 -0
  149. package/dist/esm/types/SplineProps.js.map +1 -0
  150. package/dist/esm/utilities/index.js +2 -3
  151. package/dist/esm/utilities/index.js.map +1 -1
  152. package/dist/esm/utilities/math/aabb/distanceToPoint.js +5 -0
  153. package/dist/esm/utilities/math/aabb/distanceToPoint.js.map +1 -0
  154. package/dist/esm/utilities/math/aabb/distanceToPointSquared.js +21 -0
  155. package/dist/esm/utilities/math/aabb/distanceToPointSquared.js.map +1 -0
  156. package/dist/esm/utilities/math/aabb/index.js +3 -0
  157. package/dist/esm/utilities/math/aabb/index.js.map +1 -0
  158. package/dist/esm/utilities/math/index.js +6 -5
  159. package/dist/esm/utilities/math/index.js.map +1 -1
  160. package/dist/esm/utilities/math/line/distanceToPointSquared.js +2 -21
  161. package/dist/esm/utilities/math/line/distanceToPointSquared.js.map +1 -1
  162. package/dist/esm/utilities/math/line/distanceToPointSquaredInfo.js +30 -0
  163. package/dist/esm/utilities/math/line/distanceToPointSquaredInfo.js.map +1 -0
  164. package/dist/esm/utilities/math/line/index.js +2 -1
  165. package/dist/esm/utilities/math/line/index.js.map +1 -1
  166. package/dist/esm/utilities/math/point/distanceToPoint.js +2 -6
  167. package/dist/esm/utilities/math/point/distanceToPoint.js.map +1 -1
  168. package/dist/esm/utilities/math/point/distanceToPointSquared.js +9 -0
  169. package/dist/esm/utilities/math/point/distanceToPointSquared.js.map +1 -0
  170. package/dist/esm/utilities/math/point/index.js +3 -2
  171. package/dist/esm/utilities/math/point/index.js.map +1 -1
  172. package/dist/esm/utilities/math/point/mirror.js +8 -0
  173. package/dist/esm/utilities/math/point/mirror.js.map +1 -0
  174. package/dist/types/eventDispatchers/mouseEventHandlers/mouseDown.d.ts.map +1 -1
  175. package/dist/types/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts.map +1 -1
  176. package/dist/types/index.d.ts +2 -2
  177. package/dist/types/index.d.ts.map +1 -1
  178. package/dist/types/tools/AdvancedMagnifyTool.d.ts +4 -0
  179. package/dist/types/tools/AdvancedMagnifyTool.d.ts.map +1 -1
  180. package/dist/types/tools/annotation/SplineROITool.d.ts +60 -0
  181. package/dist/types/tools/annotation/SplineROITool.d.ts.map +1 -0
  182. package/dist/types/tools/annotation/splines/BSpline.d.ts +6 -0
  183. package/dist/types/tools/annotation/splines/BSpline.d.ts.map +1 -0
  184. package/dist/types/tools/annotation/splines/CardinalSpline.d.ts +13 -0
  185. package/dist/types/tools/annotation/splines/CardinalSpline.d.ts.map +1 -0
  186. package/dist/types/tools/annotation/splines/CatmullRomSpline.d.ts +6 -0
  187. package/dist/types/tools/annotation/splines/CatmullRomSpline.d.ts.map +1 -0
  188. package/dist/types/tools/annotation/splines/CubicSpline.d.ts +14 -0
  189. package/dist/types/tools/annotation/splines/CubicSpline.d.ts.map +1 -0
  190. package/dist/types/tools/annotation/splines/LinearSpline.d.ts +6 -0
  191. package/dist/types/tools/annotation/splines/LinearSpline.d.ts.map +1 -0
  192. package/dist/types/tools/annotation/splines/QuadraticBezier.d.ts +7 -0
  193. package/dist/types/tools/annotation/splines/QuadraticBezier.d.ts.map +1 -0
  194. package/dist/types/tools/annotation/splines/QuadraticSpline.d.ts +10 -0
  195. package/dist/types/tools/annotation/splines/QuadraticSpline.d.ts.map +1 -0
  196. package/dist/types/tools/annotation/splines/Spline.d.ts +50 -0
  197. package/dist/types/tools/annotation/splines/Spline.d.ts.map +1 -0
  198. package/dist/types/tools/index.d.ts +2 -1
  199. package/dist/types/tools/index.d.ts.map +1 -1
  200. package/dist/types/types/CardinalSplineProps.d.ts +6 -0
  201. package/dist/types/types/CardinalSplineProps.d.ts.map +1 -0
  202. package/dist/types/types/ClosestControlPoint.d.ts +5 -0
  203. package/dist/types/types/ClosestControlPoint.d.ts.map +1 -0
  204. package/dist/types/types/ClosestPoint.d.ts +6 -0
  205. package/dist/types/types/ClosestPoint.d.ts.map +1 -0
  206. package/dist/types/types/ClosestSplinePoint.d.ts +5 -0
  207. package/dist/types/types/ClosestSplinePoint.d.ts.map +1 -0
  208. package/dist/types/types/ControlPointInfo.d.ts +6 -0
  209. package/dist/types/types/ControlPointInfo.d.ts.map +1 -0
  210. package/dist/types/types/ISpline.d.ts +30 -0
  211. package/dist/types/types/ISpline.d.ts.map +1 -0
  212. package/dist/types/types/SplineCurveSegment.d.ts +15 -0
  213. package/dist/types/types/SplineCurveSegment.d.ts.map +1 -0
  214. package/dist/types/types/SplineLineSegment.d.ts +11 -0
  215. package/dist/types/types/SplineLineSegment.d.ts.map +1 -0
  216. package/dist/types/types/SplineProps.d.ts +5 -0
  217. package/dist/types/types/SplineProps.d.ts.map +1 -0
  218. package/dist/types/types/ToolSpecificAnnotationTypes.d.ts +34 -0
  219. package/dist/types/types/ToolSpecificAnnotationTypes.d.ts.map +1 -1
  220. package/dist/types/types/index.d.ts +10 -1
  221. package/dist/types/types/index.d.ts.map +1 -1
  222. package/dist/types/utilities/index.d.ts +2 -3
  223. package/dist/types/utilities/index.d.ts.map +1 -1
  224. package/dist/types/utilities/math/aabb/distanceToPoint.d.ts +3 -0
  225. package/dist/types/utilities/math/aabb/distanceToPoint.d.ts.map +1 -0
  226. package/dist/types/utilities/math/aabb/distanceToPointSquared.d.ts +3 -0
  227. package/dist/types/utilities/math/aabb/distanceToPointSquared.d.ts.map +1 -0
  228. package/dist/types/utilities/math/aabb/index.d.ts +3 -0
  229. package/dist/types/utilities/math/aabb/index.d.ts.map +1 -0
  230. package/dist/types/utilities/math/index.d.ts +6 -5
  231. package/dist/types/utilities/math/index.d.ts.map +1 -1
  232. package/dist/types/utilities/math/line/distanceToPointSquared.d.ts.map +1 -1
  233. package/dist/types/utilities/math/line/distanceToPointSquaredInfo.d.ts +6 -0
  234. package/dist/types/utilities/math/line/distanceToPointSquaredInfo.d.ts.map +1 -0
  235. package/dist/types/utilities/math/line/index.d.ts +2 -1
  236. package/dist/types/utilities/math/line/index.d.ts.map +1 -1
  237. package/dist/types/utilities/math/point/distanceToPoint.d.ts.map +1 -1
  238. package/dist/types/utilities/math/point/distanceToPointSquared.d.ts +5 -0
  239. package/dist/types/utilities/math/point/distanceToPointSquared.d.ts.map +1 -0
  240. package/dist/types/utilities/math/point/index.d.ts +3 -2
  241. package/dist/types/utilities/math/point/index.d.ts.map +1 -1
  242. package/dist/types/utilities/math/point/mirror.d.ts +3 -0
  243. package/dist/types/utilities/math/point/mirror.d.ts.map +1 -0
  244. package/dist/umd/index.js +2 -1
  245. package/dist/umd/index.js.LICENSE.txt +6 -0
  246. package/dist/umd/index.js.map +1 -1
  247. package/package.json +3 -3
  248. package/src/eventDispatchers/mouseEventHandlers/mouseDown.ts +8 -6
  249. package/src/eventDispatchers/shared/getToolsWithActionsForMouseEvent.ts +3 -2
  250. package/src/index.ts +2 -0
  251. package/src/tools/AdvancedMagnifyTool.ts +8 -3
  252. package/src/tools/annotation/SplineROITool.ts +1151 -0
  253. package/src/tools/annotation/splines/BSpline.ts +22 -0
  254. package/src/tools/annotation/splines/CardinalSpline.ts +45 -0
  255. package/src/tools/annotation/splines/CatmullRomSpline.ts +19 -0
  256. package/src/tools/annotation/splines/CubicSpline.ts +288 -0
  257. package/src/tools/annotation/splines/LinearSpline.ts +20 -0
  258. package/src/tools/annotation/splines/QuadraticBezier.ts +20 -0
  259. package/src/tools/annotation/splines/QuadraticSpline.ts +25 -0
  260. package/src/tools/annotation/splines/Spline.ts +729 -0
  261. package/src/tools/index.ts +2 -0
  262. package/src/types/CardinalSplineProps.ts +11 -0
  263. package/src/types/ClosestControlPoint.ts +6 -0
  264. package/src/types/ClosestPoint.ts +8 -0
  265. package/src/types/ClosestSplinePoint.ts +6 -0
  266. package/src/types/ControlPointInfo.ts +8 -0
  267. package/src/types/ISpline.ts +164 -0
  268. package/src/types/SplineCurveSegment.ts +28 -0
  269. package/src/types/SplineLineSegment.ts +20 -0
  270. package/src/types/SplineProps.ts +15 -0
  271. package/src/types/ToolSpecificAnnotationTypes.ts +35 -0
  272. package/src/types/index.ts +21 -0
  273. package/src/utilities/index.ts +6 -2
  274. package/src/utilities/math/aabb/distanceToPoint.ts +20 -0
  275. package/src/utilities/math/aabb/distanceToPointSquared.ts +47 -0
  276. package/src/utilities/math/aabb/index.ts +2 -0
  277. package/src/utilities/math/index.ts +10 -8
  278. package/src/utilities/math/line/distanceToPointSquared.ts +3 -29
  279. package/src/utilities/math/line/distanceToPointSquaredInfo.ts +54 -0
  280. package/src/utilities/math/line/index.ts +7 -1
  281. package/src/utilities/math/point/distanceToPoint.ts +2 -10
  282. package/src/utilities/math/point/distanceToPointSquared.ts +21 -0
  283. package/src/utilities/math/point/index.ts +3 -3
  284. package/src/utilities/math/point/mirror.ts +21 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplineROITool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/SplineROITool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,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,WAAW,IAAI,cAAc,EAC7B,YAAY,IAAI,eAAe,EAC/B,iBAAiB,IAAI,oBAAoB,GAC1C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AASjE,OAAO,EACL,IAAI,EACJ,eAAe,EACf,OAAO,EACP,QAAQ,EACR,WAAW,EACX,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,EAAE,8BAA8B,EAAE,GAAG,eAAe,CAAC;AAC3D,MAAM,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC;AAE3C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEzC,MAAM,qBAAqB,GAAG;IAC5B,UAAU,EAAE,EAAE;IACd,4BAA4B,EAAE,CAAC;IAC/B,4BAA4B,EAAE,CAAC;IAC/B,2BAA2B,EAAE,KAAK;IAClC,2BAA2B,EAAE,IAAI;IACjC,2BAA2B,EAAE,IAAI;CAClC,CAAC;AAEF,IAAK,eAKJ;AALD,WAAK,eAAe;IAClB,wCAAqB,CAAA;IACrB,oCAAiB,CAAA;IACjB,4CAAyB,CAAA;IACzB,sCAAmB,CAAA;AACrB,CAAC,EALI,eAAe,KAAf,eAAe,QAKnB;AAED,IAAK,iBAGJ;AAHD,WAAK,iBAAiB;IACpB,wDAAmC,CAAA;IACnC,8DAAyC,CAAA;AAC3C,CAAC,EAHI,iBAAiB,KAAjB,iBAAiB,QAGrB;AAED,MAAM,aAAc,SAAQ,cAAc;IAoBxC,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,yBAAyB,EAAE,KAAK;YAChC,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,mBAAmB;YACjC,MAAM,EAAE;gBACN,aAAa,EAAE;oBACb,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;wBAC1B,KAAK,EAAE,cAAc;wBACrB,KAAK,EAAE,GAAG;qBACX;oBACD,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;wBAC5B,KAAK,EAAE,gBAAgB;qBACxB;oBACD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;wBACxB,KAAK,EAAE,YAAY;qBACpB;oBACD,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;wBACzB,KAAK,EAAE,OAAO;wBACd,2BAA2B,EAAE,KAAK;wBAClC,2BAA2B,EAAE,KAAK;wBAClC,2BAA2B,EAAE,IAAI;qBAClC;iBACF;gBACD,IAAI,EAAE,eAAe,CAAC,UAAU;gBAChC,kBAAkB,EAAE,IAAI;gBACxB,4BAA4B,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;aACtD;YACD,OAAO,EAAE;gBACP,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE;oBACnC,MAAM,EAAE,yBAAyB;oBACjC,QAAQ,EAAE;wBACR;4BACE,WAAW,EAAE,aAAa,CAAC,OAAO;4BAClC,WAAW,EAAE,gBAAgB,CAAC,KAAK;yBACpC;qBACF;iBACF;gBACD,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE;oBACtC,MAAM,EAAE,4BAA4B;oBACpC,QAAQ,EAAE;wBACR;4BACE,WAAW,EAAE,aAAa,CAAC,OAAO;4BAClC,WAAW,EAAE,gBAAgB,CAAC,IAAI;yBACnC;qBACF;iBACF;aACF;SACF;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAxDrC,yBAAoB,GAAG,KAAK,CAAC;QAyE7B,qBAAgB,GAAG,CACjB,GAAoC,EACf,EAAE;YACvB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAC/C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;YAE7D,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAErD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAE3C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;YAExC,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CACjD,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,MAAM,CACP,CAAC;YAEF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;YAE9D,MAAM,UAAU,GAAwB;gBACtC,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE;oBACR,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;oBAC5B,eAAe,EAAgB,CAAC,GAAG,eAAe,CAAC;oBACnD,MAAM,EAAgB,CAAC,GAAG,MAAM,CAAC;oBACjC,mBAAmB;oBACnB,iBAAiB;iBAClB;gBACD,IAAI,EAAE;oBACJ,OAAO,EAAE;wBACP,OAAO,EAAE;4BACP,QAAQ,EAAE,KAAK;4BACf,aAAa,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BACtC,gBAAgB,EAAE;gCAChB,OAAO,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gCAChC,QAAQ,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gCACjC,UAAU,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gCACnC,WAAW,EAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;6BACrC;yBACF;wBACD,MAAM,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;wBACvB,iBAAiB,EAAE,IAAI;qBACxB;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,QAAQ,EAAE,MAAM;wBAChB,UAAU,EAAE,YAAY,CAAC,UAAU;wBACnC,MAAM,EAAE,KAAK;wBACb,QAAQ,EAAE,EAAE;qBACb;oBACD,WAAW,EAAE,EAAE;iBAChB;aACF,CAAC;YAEF,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEnC,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;gBACpB,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,KAAK;gBACf,eAAe,EAAE,SAAS;aAC3B,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5B,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAE5E,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;QAaF,oBAAe,GAAG,CAChB,OAAuB,EACvB,UAA+B,EAC/B,YAA0B,EAC1B,SAAiB,EACR,EAAE;YACX,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YAEpD,OAAO,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,yBAAoB,GAAG,CACrB,GAAoC,EACpC,UAA+B,EACzB,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,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAE3C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAC5E,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,2BAAsB,GAAG,CACvB,GAAoC,EACpC,UAA+B,EAC/B,MAAkB,EACZ,EAAE;YACR,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAE5B,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,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;gBAEhC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;aACrD;YAGD,MAAM,mBAAmB,GAAG,8BAA8B,CACxD,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;YAEF,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;QAEF,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,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAE5B,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAEtC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAE3C,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;gBAC9C,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;QAEM,qBAAgB,GAAG,CAAC,GAAgC,EAAE,EAAE;YAC9D,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAChC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC;YAClC,MAAM,EAAE,4BAA4B,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YACnE,MAAM,eAAe,GAAG,4BAA4B,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEnE,IAAI,CAAC,eAAe,EAAE;gBACpB,OAAO;aACR;YAED,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAE5B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,iBAAiB,EAAE;gBACpD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrB,OAAO;aACR;iBAAM;gBACL,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzD,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;aACzE;YAED,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,CAAC;QAEM,uBAAkB,GAAG,CAAC,GAAoC,EAAQ,EAAE;YAC1E,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAGzD,IAAI,CAAC,kBAAkB,EAAE;gBACvB,OAAO;aACR;YAED,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,mBAAmB,GAAG,8BAA8B,CACxD,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAEhE,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAC5E,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,CAAC;QAEM,uBAAkB,GAAG,CAAC,GAAoC,EAAQ,EAAE;YAC1E,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,kBAAkB,CAAC;YAC3D,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAE5B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACtB,OAAO;aACR;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAChC,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;YACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;YACjE,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAC3C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,WAAW,CAAC;YACjE,IAAI,WAAW,GAAG,IAAI,CAAC;YAGvB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBACnC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzC,MAAM,mBAAmB,GAAG,MAAM,CAAC,oCAAoC,CACrE,WAAW,EACX,6BAA6B,CAC9B,CAAC;gBAEF,IAAI,mBAAmB,EAAE,KAAK,KAAK,CAAC,EAAE;oBACpC,WAAW,GAAG,KAAK,CAAC;oBACpB,WAAW,GAAG,IAAI,CAAC;iBACpB;aACF;YAED,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACtC;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC;YACvD,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;YAC9B,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAE5E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aACxB;YAED,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,GAAoC,EAAQ,EAAE;YACrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAEhC,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,GACnE,IAAI,CAAC,QAAQ,CAAC;YAChB,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAE5B,IAAI,aAAa,EAAE;gBAEjB,MAAM,EAAE,WAAW,EAAE,GAAG,WAA8C,CAAC;gBACvE,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,WAA8C,CAAC;gBACvE,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC;gBAExC,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;gBAEL,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;gBACtC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;gBAErC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gBACjD,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;aAC/B;YAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,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;QAC9E,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,OAAuB,EAAE,EAAE;YAEnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,OAAO;aACR;YAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAChC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YAEzE,IAAI,aAAa,EAAE;gBACjB,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aAC5C;YAED,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,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO,UAAU,CAAC,aAAa,CAAC;QAClC,CAAC,CAAC;QAKF,8BAAyB,GAAG,CAC1B,UAA+B,EAC/B,cAAqC,EAC/B,EAAE;YACR,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,cAAc,CAAC;YACzD,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC;YAE7C,MAAM,WAAW,GAAkC;gBACjD,UAAU;gBACV,UAAU;gBACV,iBAAiB;aAClB,CAAC;YAEF,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC,CAAC;QAEM,oBAAe,GAAG,CAAC,OAAO,EAAE,EAAE;YACpC,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,aAAa,CAAC,CAAC;YAChE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE;YACtC,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,aAAa,CAAC,CAAC;YACnE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEnE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACjE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,OAAO,EAAE,EAAE;YAClC,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAEnC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrE,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,kBAAkB,EACzB,IAAI,CAAC,kBAAkB,CACxB,CAAC;YAEF,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtE,CAAC,CAAC;QAEM,oBAAe,GAAG,CAAC,OAAO,EAAE,EAAE;YACpC,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC;YAEpC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxE,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,kBAAkB,EACzB,IAAI,CAAC,kBAAkB,CACxB,CAAC;YAEF,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzE,CAAC,CAAC;QAUF,qBAAgB,GAAG,CACjB,cAAqC,EACrC,gBAAkC,EACzB,EAAE;YACX,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACpC,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;YACnC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;YAG7B,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE;gBAClC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACpD,OAAO,YAAY,CAAC;aACrB;YAED,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;YAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;YACnD,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,CAAwB,CAAC;gBACzD,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;gBACxD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;gBACzB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;gBAE7D,cAAc,CAAC,aAAa,GAAG,aAAa,CAAC;gBAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAC7B,WAAW,EACX,cAAc,EACd,UAAU,CACD,CAAC;gBACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAC5B,UAAU,EACV,cAAc,EACd,UAAU,CACD,CAAC;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CACzB,OAAO,EACP,cAAc,EACd,UAAU,CACD,CAAC;gBAEZ,MAAM,iBAAiB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChD,aAAa,CAAC,CAAC,CAAC,CACC,CAAC;gBAEpB,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBACzD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC/D,MAAM,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACxD,MAAM,mBAAmB,GAAG,EAAE,CAAC;gBAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;oBAC/D,mBAAmB,CAAC,IAAI,CACtB,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC;iBACH;gBAED,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,mBAAmB,CAAC;gBAI3C,IACE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,IAAI,EAC3C;oBACA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG;wBAC3B,QAAQ,EAAE,IAAI;wBACd,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,IAAI;qBACf,CAAC;oBAEF,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;iBACjD;qBAAM,IAAI,UAAU,CAAC,WAAW,EAAE;oBACjC,IAAI,CAAC,8BAA8B,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;iBAC1D;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,IAAI,aAAa,IAAI,WAAW,EAAE;oBAC5D,MAAM,cAAc,GAAG,GAAG,CAAC;oBAC3B,cAAc,CACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB;wBACE,KAAK;wBACL,QAAQ;wBACR,SAAS;wBACT,YAAY,EAAE,GAAG;qBAClB,CACF,CAAC;iBACH;gBAED,IACE,kBAAkB;oBAClB,MAAM,CAAC,gBAAgB,GAAG,CAAC;oBAC3B,IAAI,CAAC,QAAQ,EAAE,eAAe;oBAC9B,CAAC,MAAM,CAAC,MAAM,EACd;oBACA,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC1C,MAAM,qBAAqB,GAAG,MAAM,CAAC,wBAAwB,CAC3D,eAAe,EACf,6BAA6B,CAC9B,CAAC;oBAEF,eAAe,CACb,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB;wBACE,KAAK,EAAE,SAAS;wBAChB,QAAQ;wBACR,SAAS;qBACV,CACF,CAAC;iBACH;gBAED,IAAI,YAAY,CAAC,2BAA2B,EAAE;oBAC5C,MAAM,uBAAuB,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;oBAGvD,IAAI,MAAM,CAAC,MAAM,EAAE;wBACjB,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;qBACpD;oBAED,eAAe,CACb,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,uBAAuB,EACvB;wBACE,KAAK,EAAE,0BAA0B;wBACjC,QAAQ;wBACR,SAAS;qBACV,CACF,CAAC;iBACH;gBAED,eAAe,CACb,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB;oBACE,KAAK;oBACL,QAAQ;oBACR,SAAS;iBACV,CACF,CAAC;gBAEF,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;gBAE1E,YAAY,GAAG,IAAI,CAAC;gBACpB,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC;aAChC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE;YACxE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACvB,OAAO;aACR;YAED,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,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBACvB,OAAO;aACR;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxC,OAAO;aACR;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAC1B,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAClC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;gBAEtE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa;oBAChC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;aAC/C;YAED,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAC5C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CACnC,CAAC;YAEF,MAAM,UAAU,GAAG,SAAS,CAAC;YAC7B,MAAM,WAAW,GAAG,oBAAoB,CACtC,gBAAgB,EAChB,UAAU,CAAC,aAAa,IAAI,EAAE,EAC9B,UAAU,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,EAAE,EACF,OAAO,CACR,CAAC;YAEF,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;YAEvD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,GAAG;gBACtC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC5C,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;gBACrD,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;gBACxD,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;aAClE,CAAC;QACJ,CAAC,CAAC;QAEF,4BAAuB,GAAG,CACxB,GAAoC,EACpC,UAA+B,EAC/B,EAAE;YACF,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,YAAY,CAAC,4BAA4B,CAAC;YAE1D,IAAI,YAAY,CAAC,2BAA2B,KAAK,KAAK,EAAE;gBACtD,OAAO;aACR;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAEhC,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;YAEnC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YACzC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAClD,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAE3D,IAAI,gBAAgB,CAAC,QAAQ,GAAG,OAAO,EAAE;gBACvC,OAAO;aACR;YAGD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAC7D,gBAAgB,CAAC,MAAM,CACxB,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;YACjE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;YAE9B,MAAM,mBAAmB,GAAG,8BAA8B,CACxD,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;YAEF,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAC9E,CAAC,CAAC;QA4BF,+BAA0B,GAAG,CAC3B,GAAoC,EACpC,UAA+B,EAC/B,EAAE;YACF,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,YAAY,CAAC,4BAA4B,CAAC;YAE1D,IAAI,YAAY,CAAC,2BAA2B,KAAK,KAAK,EAAE;gBACtD,OAAO;aACR;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;YAC/C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;YAC5C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YACpD,MAAM,mBAAmB,GAAG,MAAM,CAAC,oCAAoC,CACrE,SAAS,EACT,OAAO,CACR,CAAC;YAEF,IAAI,CAAC,mBAAmB,EAAE;gBACxB,OAAO;aACR;YAED,IAAI,CAAC,0BAA0B,CAC7B,OAAO,EACP,UAAU,EACV,mBAAmB,CAAC,KAAK,CAC1B,CAAC;QACJ,CAAC,CAAC;QAmEM,0BAAqB,GAAG,CAC9B,UAA+B,EAC/B,OAAuB,EACvB,EAAE;YACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;gBACtC,OAAO;aACR;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAE7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACvB,OAAO;aACR;YAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YACrD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAC7B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YACzC,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;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBAK/D,IAAI,CAAC,KAAK,EAAE;oBACV,SAAS;iBACV;gBAED,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;gBAC3B,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAIvE,MAAM,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC;oBACzC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;oBAClB,WAAW,CAAC,CAAC,CAAC;iBACf,CAAC,CAAC;gBACH,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC;oBACzC,WAAW,CAAC,CAAC,CAAC;oBACd,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;iBACnB,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;gBAEhE,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,IAAI,GACN,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;gBAGzE,IAAI,IAAI,QAAQ,GAAG,QAAQ,CAAC;gBAE5B,WAAW,CAAC,QAAQ,CAAC,GAAG;oBACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,IAAI;oBACJ,QAAQ,EAAE,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC;iBAC9C,CAAC;aACH;YAED,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAE3D,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QA78BA,IAAI,CAAC,8BAA8B,GAAG,QAAQ,CAC5C,IAAI,CAAC,qBAAqB,EAC1B,GAAG,EACH,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;IACJ,CAAC;aA/EM,gBAAW,GAAG,eAAe,CAAC;aAC9B,YAAO,GAAG,iBAAiB,CAAC;IAy1B3B,0BAA0B,CAChC,OAAuB,EACvB,UAA+B,EAC/B,iBAAyB;QAEzB,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAG1D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC5C;aAAM;YACL,aAAa,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;SAC5C;QAED,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;QAC3C,MAAM,mBAAmB,GAAG,8BAA8B,CACxD,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;QAEF,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;QAE9B,qCAAqC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAC9E,CAAC;IAuCO,gBAAgB,CAAC,IAAY;QACnC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;QAElD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,qBAAqB,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEO,kBAAkB,CAAC,MAAe,EAAE,UAA+B;QACzE,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEvD,IACE,CAAC,CAAC,MAAM,YAAY,cAAc,CAAC;YACnC,MAAM,CAAC,UAAU;YACjB,YAAY,CAAC,KAAK,KAAK,SAAS;YAChC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,EACnC;YACA,OAAO;SACR;QAED,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC,CAAC;IAEO,qBAAqB,CAC3B,OAAuB,EACvB,UAA+B;QAE/B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QACpC,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC5B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEpD,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAGtC,IAAI,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,EAAE;YACjD,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACtD,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;SAC/B;QAGD,IACE,MAAM,YAAY,cAAc;YAChC,CAAC,MAAM,CAAC,UAAU;YAClB,YAAY,CAAC,KAAK,KAAK,SAAS;YAChC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,EACnC;YACA,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;YAClC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;SAC/B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;;AAuEH,SAAS,mBAAmB,CAAC,IAAI,EAAE,QAAQ;IACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC;IAC1D,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,IAAI,EAAE;QACR,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,SAAS,WAAW,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QAE7C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1B;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,aAAa,CAAC,QAAQ,GAAG,WAAW,CAAC;AACrC,eAAe,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { mat4 } from 'gl-matrix';
2
+ import { CubicSpline } from './CubicSpline';
3
+ const TRANSFORM_MATRIX = mat4.multiplyScalar(mat4.create(), mat4.fromValues(1, 4, 1, 0, -3, 0, 3, 0, 3, -6, 3, 0, -1, 3, -3, 1), 1 / 6);
4
+ class BSpline extends CubicSpline {
5
+ getTransformMatrix() {
6
+ return TRANSFORM_MATRIX;
7
+ }
8
+ }
9
+ export { BSpline as default, BSpline };
10
+ //# sourceMappingURL=BSpline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BSpline.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/splines/BSpline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAC1C,IAAI,CAAC,MAAM,EAAE,EACb,IAAI,CAAC,UAAU,CACZ,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EACd,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EACb,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EACd,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,CACf,EACD,CAAC,GAAG,CAAC,CACM,CAAC;AAEd,MAAM,OAAQ,SAAQ,WAAW;IACrB,kBAAkB;QAC1B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AAED,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { CubicSpline } from './CubicSpline';
2
+ class CardinalSpline extends CubicSpline {
3
+ constructor(props) {
4
+ super(props);
5
+ this._scale = props?.scale ?? 0.5;
6
+ this._fixedScale = props?.fixedScale ?? false;
7
+ }
8
+ get scale() {
9
+ return this._scale;
10
+ }
11
+ set scale(scale) {
12
+ if (this._fixedScale || this._scale === scale) {
13
+ return;
14
+ }
15
+ this._scale = scale;
16
+ this.invalidated = true;
17
+ }
18
+ get fixedScale() {
19
+ return this._fixedScale;
20
+ }
21
+ getTransformMatrix() {
22
+ const { scale: s } = this;
23
+ const s2 = 2 * s;
24
+ return [
25
+ 0, 1, 0, 0,
26
+ -s, 0, s, 0,
27
+ s2, s - 3, 3 - s2, -s,
28
+ -s, 2 - s, s - 2, s
29
+ ];
30
+ }
31
+ }
32
+ export { CardinalSpline as default, CardinalSpline };
33
+ //# sourceMappingURL=CardinalSpline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardinalSpline.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/splines/CardinalSpline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,cAAe,SAAQ,WAAW;IAItC,YAAY,KAA2B;QACrC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,UAAU,IAAI,KAAK,CAAC;IAChD,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,KAAK,CAAC,KAAa;QAC5B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YAC7C,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAES,kBAAkB;QAC1B,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAGjB,OAAO;YACJ,CAAC,EAAO,CAAC,EAAQ,CAAC,EAAI,CAAC;YACxB,CAAC,CAAC,EAAO,CAAC,EAAQ,CAAC,EAAI,CAAC;YACxB,EAAE,EAAG,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,EAAE,EAAG,CAAC,CAAC;YACxB,CAAC,CAAC,EAAG,CAAC,GAAG,CAAC,EAAI,CAAC,GAAG,CAAC,EAAI,CAAC;SACzB,CAAC;IACJ,CAAC;CACF;AAED,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CardinalSpline } from './CardinalSpline';
2
+ class CatmullRomSpline extends CardinalSpline {
3
+ constructor() {
4
+ super({ scale: 0.5, fixedScale: true });
5
+ }
6
+ }
7
+ export { CatmullRomSpline as default, CatmullRomSpline };
8
+ //# sourceMappingURL=CatmullRomSpline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CatmullRomSpline.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/splines/CatmullRomSpline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,MAAM,gBAAiB,SAAQ,cAAc;IAC3C;QACE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,165 @@
1
+ import { vec4 } from 'gl-matrix';
2
+ import { Spline } from './Spline';
3
+ import * as math from '../../../utilities/math';
4
+ const MAX_U_ERROR = 1e-8;
5
+ class CubicSpline extends Spline {
6
+ getPreviewCurveSegments(controlPointPreview, closeSpline) {
7
+ const previewNumCurveSegments = this._getNumCurveSegments() + 1;
8
+ const startCurveSegIndex = Math.max(0, previewNumCurveSegments - 2);
9
+ const endCurveSegIndex = closeSpline
10
+ ? previewNumCurveSegments
11
+ : previewNumCurveSegments - 1;
12
+ const transformMatrix = this.getTransformMatrix();
13
+ const controlPoints = [...this.controlPoints];
14
+ const curveSegments = [];
15
+ if (!closeSpline) {
16
+ controlPoints.push(controlPointPreview);
17
+ }
18
+ for (let i = startCurveSegIndex; i <= endCurveSegIndex; i++) {
19
+ const curveSegment = this._getCurveSegment(i, transformMatrix, controlPoints, closeSpline);
20
+ curveSegments.push(curveSegment);
21
+ }
22
+ return curveSegments;
23
+ }
24
+ getSplineCurves() {
25
+ const numCurveSegments = this._getNumCurveSegments();
26
+ const curveSegments = new Array(numCurveSegments);
27
+ if (numCurveSegments <= 0) {
28
+ return [];
29
+ }
30
+ const transformMatrix = this.getTransformMatrix();
31
+ let previousCurveSegmentsLength = 0;
32
+ for (let i = 0; i < numCurveSegments; i++) {
33
+ const curveSegment = this._getCurveSegment(i, transformMatrix);
34
+ curveSegment.previousCurveSegmentsLength = previousCurveSegmentsLength;
35
+ curveSegments[i] = curveSegment;
36
+ previousCurveSegmentsLength += curveSegment.length;
37
+ }
38
+ return curveSegments;
39
+ }
40
+ _getNumCurveSegments(controlPoints = this.controlPoints, closed = this.closed) {
41
+ return closed
42
+ ? controlPoints.length
43
+ : Math.max(0, controlPoints.length - 1);
44
+ }
45
+ _getPoint(u, transformMatrix, controlPoints = this.controlPoints, closed = this.closed) {
46
+ const numCurveSegments = this._getNumCurveSegments(controlPoints, closed);
47
+ const uInt = Math.floor(u);
48
+ let curveSegmentIndex = uInt % numCurveSegments;
49
+ const t = u - uInt;
50
+ const curveSegmentIndexOutOfBounds = curveSegmentIndex < 0 || curveSegmentIndex >= numCurveSegments;
51
+ if (curveSegmentIndexOutOfBounds) {
52
+ if (this.closed) {
53
+ curveSegmentIndex =
54
+ (numCurveSegments + curveSegmentIndex) % numCurveSegments;
55
+ }
56
+ else {
57
+ return;
58
+ }
59
+ }
60
+ const { p0, p1, p2, p3 } = this._getCurveSegmentPoints(curveSegmentIndex, controlPoints, closed);
61
+ const tt = t * t;
62
+ const ttt = tt * t;
63
+ const tValues = vec4.fromValues(1, t, tt, ttt);
64
+ const qValues = vec4.transformMat4(vec4.create(), tValues, transformMatrix);
65
+ return [
66
+ vec4.dot(qValues, vec4.fromValues(p0[0], p1[0], p2[0], p3[0])),
67
+ vec4.dot(qValues, vec4.fromValues(p0[1], p1[1], p2[1], p3[1])),
68
+ ];
69
+ }
70
+ _getCurveSegmentPoints(curveSegmentIndex, controlPoints = this.controlPoints, closed = this.closed) {
71
+ const numCurveSegments = this._getNumCurveSegments(controlPoints, closed);
72
+ const p1Index = curveSegmentIndex;
73
+ const p0Index = p1Index - 1;
74
+ const p2Index = closed ? (p1Index + 1) % numCurveSegments : p1Index + 1;
75
+ const p3Index = p2Index + 1;
76
+ const p1 = controlPoints[p1Index];
77
+ const p2 = controlPoints[p2Index];
78
+ let p0;
79
+ let p3;
80
+ if (p0Index >= 0) {
81
+ p0 = controlPoints[p0Index];
82
+ }
83
+ else {
84
+ p0 = closed
85
+ ? controlPoints[controlPoints.length - 1]
86
+ : math.point.mirror(p2, p1);
87
+ }
88
+ if (p3Index < controlPoints.length) {
89
+ p3 = controlPoints[p3Index];
90
+ }
91
+ else {
92
+ p3 = closed ? controlPoints[0] : math.point.mirror(p1, p2);
93
+ }
94
+ return { p0, p1, p2, p3 };
95
+ }
96
+ _getLineSegments(curveSegmentIndex, transformMatrix, controlPoints = this.controlPoints, closed = this.closed) {
97
+ const numCurveSegments = this._getNumCurveSegments(controlPoints, closed);
98
+ const numLineSegments = this.resolution + 1;
99
+ const inc = 1 / numLineSegments;
100
+ const minU = curveSegmentIndex;
101
+ let maxU = minU + 1;
102
+ if (!closed && curveSegmentIndex === numCurveSegments - 1) {
103
+ maxU -= MAX_U_ERROR;
104
+ }
105
+ const lineSegments = [];
106
+ let startPoint;
107
+ let endPoint;
108
+ let previousLineSegmentsLength = 0;
109
+ for (let i = 0, u = minU; i <= numLineSegments; i++, u += inc) {
110
+ u = u > maxU ? maxU : u;
111
+ const point = this._getPoint(u, transformMatrix, controlPoints, closed);
112
+ if (!i) {
113
+ startPoint = point;
114
+ continue;
115
+ }
116
+ endPoint = point;
117
+ const dx = endPoint[0] - startPoint[0];
118
+ const dy = endPoint[1] - startPoint[1];
119
+ const length = Math.sqrt(dx ** 2 + dy ** 2);
120
+ const aabb = {
121
+ minX: startPoint[0] <= endPoint[0] ? startPoint[0] : endPoint[0],
122
+ maxX: startPoint[0] >= endPoint[0] ? startPoint[0] : endPoint[0],
123
+ minY: startPoint[1] <= endPoint[1] ? startPoint[1] : endPoint[1],
124
+ maxY: startPoint[1] >= endPoint[1] ? startPoint[1] : endPoint[1],
125
+ };
126
+ lineSegments.push({
127
+ points: {
128
+ start: startPoint,
129
+ end: endPoint,
130
+ },
131
+ aabb,
132
+ length,
133
+ previousLineSegmentsLength,
134
+ });
135
+ startPoint = endPoint;
136
+ previousLineSegmentsLength += length;
137
+ }
138
+ return lineSegments;
139
+ }
140
+ _getCurveSegment(curveSegmentIndex, transformMatrix = this.getTransformMatrix(), controlPoints = this.controlPoints, closed = this.closed) {
141
+ const { p0, p1, p2, p3 } = this._getCurveSegmentPoints(curveSegmentIndex, controlPoints, closed);
142
+ const lineSegments = this._getLineSegments(curveSegmentIndex, transformMatrix, controlPoints, closed);
143
+ let curveSegmentLength = 0;
144
+ let minX = Infinity;
145
+ let minY = Infinity;
146
+ let maxX = -Infinity;
147
+ let maxY = -Infinity;
148
+ lineSegments.forEach(({ aabb: lineSegAABB, length: lineSegLength }) => {
149
+ minX = Math.min(minX, lineSegAABB.minX);
150
+ minY = Math.min(minY, lineSegAABB.minY);
151
+ maxX = Math.max(maxX, lineSegAABB.maxX);
152
+ maxY = Math.max(maxY, lineSegAABB.maxY);
153
+ curveSegmentLength += lineSegLength;
154
+ });
155
+ return {
156
+ controlPoints: { p0, p1, p2, p3 },
157
+ aabb: { minX, minY, maxX, maxY },
158
+ length: curveSegmentLength,
159
+ previousCurveSegmentsLength: 0,
160
+ lineSegments,
161
+ };
162
+ }
163
+ }
164
+ export { CubicSpline as default, CubicSpline };
165
+ //# sourceMappingURL=CubicSpline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubicSpline.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/splines/CubicSpline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAMhD,MAAM,WAAW,GAAG,IAAI,CAAC;AAKzB,MAAe,WAAY,SAAQ,MAAM;IAC7B,uBAAuB,CAC/B,mBAAiC,EACjC,WAAoB;QAEpB,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,GAAG,CAAC,CAAC,CAAC;QACpE,MAAM,gBAAgB,GAAG,WAAW;YAClC,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,uBAAuB,GAAG,CAAC,CAAC;QAChC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClD,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAyB,EAAE,CAAC;QAE/C,IAAI,CAAC,WAAW,EAAE;YAChB,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACzC;QAED,KAAK,IAAI,CAAC,GAAG,kBAAkB,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAE,EAAE;YAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CACxC,CAAC,EACD,eAAe,EACf,aAAa,EACb,WAAW,CACZ,CAAC;YAEF,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAClC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAES,eAAe;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,MAAM,aAAa,GAAyB,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAExE,IAAI,gBAAgB,IAAI,CAAC,EAAE;YACzB,OAAO,EAAE,CAAC;SACX;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClD,IAAI,2BAA2B,GAAG,CAAC,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;YAE/D,YAAY,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;YACvE,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;YAEhC,2BAA2B,IAAI,YAAY,CAAC,MAAM,CAAC;SACpD;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,oBAAoB,CAC1B,gBAAgC,IAAI,CAAC,aAAa,EAClD,SAAkB,IAAI,CAAC,MAAM;QAE7B,OAAO,MAAM;YACX,CAAC,CAAC,aAAa,CAAC,MAAM;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAUO,SAAS,CACf,CAAS,EACT,eAAyB,EACzB,gBAAgC,IAAI,CAAC,aAAa,EAClD,SAAkB,IAAI,CAAC,MAAM;QAE7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,iBAAiB,GAAG,IAAI,GAAG,gBAAgB,CAAC;QAGhD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAEnB,MAAM,4BAA4B,GAChC,iBAAiB,GAAG,CAAC,IAAI,iBAAiB,IAAI,gBAAgB,CAAC;QAEjE,IAAI,4BAA4B,EAAE;YAChC,IAAI,IAAI,CAAC,MAAM,EAAE;gBAEf,iBAAiB;oBACf,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,gBAAgB,CAAC;aAC7D;iBAAM;gBAEL,OAAO;aACR;SACF;QAED,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,sBAAsB,CACpD,iBAAiB,EACjB,aAAa,EACb,MAAM,CACP,CAAC;QASF,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAI/C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAChC,IAAI,CAAC,MAAM,EAAE,EACb,OAAO,EACP,eAAuB,CACxB,CAAC;QAEF,OAAO;YACL,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C,CAAC;IACpB,CAAC;IAEO,sBAAsB,CAC5B,iBAAyB,EACzB,gBAAgC,IAAI,CAAC,aAAa,EAClD,SAAkB,IAAI,CAAC,MAAM;QAE7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QAGP,IAAI,OAAO,IAAI,CAAC,EAAE;YAChB,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;SAC7B;aAAM;YACL,EAAE,GAAG,MAAM;gBACT,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SAC/B;QAGD,IAAI,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE;YAClC,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;SAC7B;aAAM;YACL,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SAC5D;QAED,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CACtB,iBAAyB,EACzB,eAAyB,EACzB,gBAAgC,IAAI,CAAC,aAAa,EAClD,SAAkB,IAAI,CAAC,MAAM;QAE7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,CAAC,GAAG,eAAe,CAAC;QAChC,MAAM,IAAI,GAAG,iBAAiB,CAAC;QAC/B,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QAKpB,IAAI,CAAC,MAAM,IAAI,iBAAiB,KAAK,gBAAgB,GAAG,CAAC,EAAE;YACzD,IAAI,IAAI,WAAW,CAAC;SACrB;QAED,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,IAAI,UAAwB,CAAC;QAC7B,IAAI,QAAsB,CAAC;QAC3B,IAAI,0BAA0B,GAAG,CAAC,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE;YAE7D,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAExB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YAExE,IAAI,CAAC,CAAC,EAAE;gBACN,UAAU,GAAG,KAAK,CAAC;gBACnB,SAAS;aACV;YAED,QAAQ,GAAG,KAAK,CAAC;YAEjB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAgB;gBACxB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aACjE,CAAC;YAEF,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE;oBACN,KAAK,EAAE,UAAU;oBACjB,GAAG,EAAE,QAAQ;iBACd;gBACD,IAAI;gBACJ,MAAM;gBACN,0BAA0B;aAC3B,CAAC,CAAC;YAEH,UAAU,GAAG,QAAQ,CAAC;YACtB,0BAA0B,IAAI,MAAM,CAAC;SACtC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,gBAAgB,CACtB,iBAAyB,EACzB,kBAA4B,IAAI,CAAC,kBAAkB,EAAE,EACrD,gBAAgC,IAAI,CAAC,aAAa,EAClD,SAAkB,IAAI,CAAC,MAAM;QAM7B,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,sBAAsB,CACpD,iBAAiB,EACjB,aAAa,EACb,MAAM,CACP,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CACxC,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,MAAM,CACP,CAAC;QACF,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,GAAG,QAAQ,CAAC;QACpB,IAAI,IAAI,GAAG,QAAQ,CAAC;QACpB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;QACrB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;QAErB,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;YACpE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACxC,kBAAkB,IAAI,aAAa,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACjC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YAChC,MAAM,EAAE,kBAAkB;YAC1B,2BAA2B,EAAE,CAAC;YAC9B,YAAY;SACb,CAAC;IACJ,CAAC;CACF;AAED,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CardinalSpline } from './CardinalSpline';
2
+ class LinearSpline extends CardinalSpline {
3
+ constructor() {
4
+ super({ scale: 0, fixedScale: true });
5
+ }
6
+ }
7
+ export { LinearSpline as default, LinearSpline };
8
+ //# sourceMappingURL=LinearSpline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearSpline.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/splines/LinearSpline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAalD,MAAM,YAAa,SAAQ,cAAc;IACvC;QACE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;CACF;AAED,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { QuadraticSpline } from './QuadraticSpline';
2
+ const TRANSFORM_MATRIX = [
3
+ 1, 0, 0,
4
+ -2, 2, 0,
5
+ 1, -2, 1,
6
+ ];
7
+ class QuadraticBezier extends QuadraticSpline {
8
+ hasTangentPoints() {
9
+ return true;
10
+ }
11
+ getTransformMatrix() {
12
+ return TRANSFORM_MATRIX;
13
+ }
14
+ }
15
+ export { QuadraticBezier as default, QuadraticBezier };
16
+ //# sourceMappingURL=QuadraticBezier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuadraticBezier.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/splines/QuadraticBezier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,gBAAgB,GAAG;IACtB,CAAC,EAAG,CAAC,EAAG,CAAC;IACV,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC;IACT,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC;CACX,CAAC;AAEF,MAAM,eAAgB,SAAQ,eAAe;IACpC,gBAAgB;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAES,kBAAkB;QAC1B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AAED,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Spline } from './Spline';
2
+ class QuadraticSpline extends Spline {
3
+ getSplineCurves() {
4
+ return [];
5
+ }
6
+ getLineSegments() {
7
+ return [];
8
+ }
9
+ getPreviewCurveSegments(controlPointPreview, closeSpline) {
10
+ return [];
11
+ }
12
+ }
13
+ export { QuadraticSpline as default, QuadraticSpline };
14
+ //# sourceMappingURL=QuadraticSpline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuadraticSpline.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/splines/QuadraticSpline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAe,eAAgB,SAAQ,MAAM;IAEjC,eAAe;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAGS,eAAe;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAGM,uBAAuB,CAC5B,mBAAiC,EACjC,WAAoB;QAEpB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC"}