flo-mat 4.1.5 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/closest-boundary-point/get-endpoint-info.spec.ts +140 -0
- package/__tests__/closest-boundary-point/root-interval-to-distance-squared-interval.spec.ts +87 -0
- package/__tests__/cp-node/fs/get-all-on-loop-by-loop.spec.ts +55 -0
- package/__tests__/cp-node/fs/get-angle-between-mat-curves.spec.ts +39 -3
- package/__tests__/cp-node/fs/get-boundary-bezier-parts-to-next.spec.ts +87 -3
- package/__tests__/cp-node/fs/get-boundary-beziers-between.spec.ts +68 -3
- package/__tests__/cp-node/fs/get-boundary-beziers-to-next.spec.ts +41 -3
- package/__tests__/cp-node/fs/get-boundary-distance-to-next.spec.ts +20 -3
- package/__tests__/cp-node/fs/get-branch-beziers.spec.ts +42 -3
- package/__tests__/cp-node/fs/get-branch.spec.ts +60 -3
- package/__tests__/cp-node/fs/get-cp-node-ordering.spec.ts +19 -3
- package/__tests__/cp-node/fs/get-distance-to-next.spec.ts +37 -4
- package/__tests__/cp-node/fs/get-edge-direction.spec.ts +50 -3
- package/__tests__/cp-node/fs/get-first-exit.spec.ts +78 -3
- package/__tests__/cp-node/fs/get-hole-closers.spec.ts +32 -3
- package/__tests__/cp-node/fs/get-implied-boundary-bezier-between.spec.ts +48 -3
- package/__tests__/cp-node/fs/get-mat-curve-between.spec.ts +77 -3
- package/__tests__/cp-node/fs/get-mat-curve-to-next.spec.ts +17 -4
- package/__tests__/cp-node/fs/get-mat-curves-between.spec.ts +38 -3
- package/__tests__/cp-node/fs/get-salience.spec.ts +68 -3
- package/__tests__/cp-node/fs/get-vertex-forward-children.spec.ts +40 -3
- package/__tests__/cp-node/fs/insert-cp-node.spec.ts +87 -3
- package/__tests__/cp-node/fs/is-special.spec.ts +1 -1
- package/__tests__/cp-node/fs/remove-cp-node.spec.ts +42 -3
- package/__tests__/find-2-prong/calc-seperation-tolerance.spec.ts +46 -0
- package/__tests__/find-2-prong/get-medial/get-closest-points.spec.ts +1 -1
- package/__tests__/floyd-warshall/get-graph.spec.ts +100 -0
- package/__tests__/get-mats-with-hole.ts +28 -0
- package/__tests__/get-mats1.spec.ts +61 -0
- package/__tests__/get-mats1.ts +75 -67
- package/__tests__/helpers/cp-node-by-id.ts +27 -0
- package/__tests__/helpers/expect-point-close.ts +42 -0
- package/__tests__/mat/hausdorff-distance-one-sided-exceeds.spec.ts +129 -0
- package/__tests__/mat/simplify-mat.spec.ts +85 -0
- package/__tests__/reconstruct-from-mat/reconstruct-from-mat.spec.ts +39 -0
- package/__tests__/specific-cases/test-svgs/achispado.svg +14 -0
- package/__tests__/utils/get-beziers-from-tangents.spec.ts +142 -0
- package/browser/index.js +12985 -9965
- package/browser/index.min.js +1 -1
- package/node/closest-boundary-point/cull-curve-pieces.d.ts +21 -0
- package/node/closest-boundary-point/cull-curve-pieces.js +40 -0
- package/node/closest-boundary-point/cull-curve-pieces.js.map +1 -0
- package/node/closest-boundary-point/get-close-boundary-points-certified.js +5 -2
- package/node/closest-boundary-point/get-close-boundary-points-certified.js.map +1 -1
- package/node/closest-boundary-point/get-endpoint-info.d.ts +39 -0
- package/node/closest-boundary-point/get-endpoint-info.js +78 -0
- package/node/closest-boundary-point/get-endpoint-info.js.map +1 -0
- package/node/closest-boundary-point/get-potential-closest-points-on-curve-certified.js +5 -19
- package/node/closest-boundary-point/get-potential-closest-points-on-curve-certified.js.map +1 -1
- package/node/closest-boundary-point/root-interval-to-distance-squared-interval.d.ts +17 -5
- package/node/closest-boundary-point/root-interval-to-distance-squared-interval.js +37 -50
- package/node/closest-boundary-point/root-interval-to-distance-squared-interval.js.map +1 -1
- package/node/corner/get-corner.d.ts +18 -1
- package/node/corner/get-corner.js +8 -1
- package/node/corner/get-corner.js.map +1 -1
- package/node/corner/get-interface-ccw.js.map +1 -1
- package/node/cp-node/cp-node.d.ts +4 -3
- package/node/cp-node/fs/get-all-on-loop-by-loop.js +0 -4
- package/node/cp-node/fs/get-all-on-loop-by-loop.js.map +1 -1
- package/node/cp-node/fs/get-angle-between-mat-curves.js +6 -4
- package/node/cp-node/fs/get-angle-between-mat-curves.js.map +1 -1
- package/node/cp-node/fs/get-boundary-beziers-between.d.ts +6 -4
- package/node/cp-node/fs/get-boundary-beziers-between.js +6 -4
- package/node/cp-node/fs/get-boundary-beziers-between.js.map +1 -1
- package/node/cp-node/fs/get-branch-beziers.d.ts +2 -1
- package/node/cp-node/fs/get-branch-beziers.js +3 -2
- package/node/cp-node/fs/get-branch-beziers.js.map +1 -1
- package/node/cp-node/fs/get-branch.js +1 -2
- package/node/cp-node/fs/get-branch.js.map +1 -1
- package/node/cp-node/fs/get-distance-to-next.js +4 -2
- package/node/cp-node/fs/get-distance-to-next.js.map +1 -1
- package/node/cp-node/fs/get-first-exit.d.ts +7 -3
- package/node/cp-node/fs/get-first-exit.js +13 -11
- package/node/cp-node/fs/get-first-exit.js.map +1 -1
- package/node/cp-node/fs/get-implied-boundary-bezier-between.d.ts +9 -1
- package/node/cp-node/fs/get-implied-boundary-bezier-between.js +11 -55
- package/node/cp-node/fs/get-implied-boundary-bezier-between.js.map +1 -1
- package/node/cp-node/fs/get-mat-curve-between.d.ts +4 -3
- package/node/cp-node/fs/get-mat-curve-between.js +5 -49
- package/node/cp-node/fs/get-mat-curve-between.js.map +1 -1
- package/node/cp-node/fs/get-mat-curve-to-next.d.ts +1 -1
- package/node/cp-node/fs/get-mat-curves-between.d.ts +8 -0
- package/node/cp-node/fs/get-mat-curves-between.js +9 -2
- package/node/cp-node/fs/get-mat-curves-between.js.map +1 -1
- package/node/cp-node/fs/get-real-prong-count.d.ts +2 -1
- package/node/cp-node/fs/get-real-prong-count.js +11 -5
- package/node/cp-node/fs/get-real-prong-count.js.map +1 -1
- package/node/cp-node/fs/get-salience.d.ts +10 -0
- package/node/cp-node/fs/get-salience.js +17 -1
- package/node/cp-node/fs/get-salience.js.map +1 -1
- package/node/cp-node/fs/is-fully-terminating.d.ts +4 -2
- package/node/cp-node/fs/is-fully-terminating.js +6 -15
- package/node/cp-node/fs/is-fully-terminating.js.map +1 -1
- package/node/cp-node/fs/is-on-same-loop.d.ts +1 -1
- package/node/cp-node/fs/is-special.d.ts +7 -0
- package/node/cp-node/fs/is-special.js +9 -2
- package/node/cp-node/fs/is-special.js.map +1 -1
- package/node/cp-node/fs/is-vertex.d.ts +1 -1
- package/node/cp-node/fs/traverse-edges.d.ts +7 -3
- package/node/cp-node/fs/traverse-edges.js +7 -3
- package/node/cp-node/fs/traverse-edges.js.map +1 -1
- package/node/cp-node/stringification/from-stringifyable.d.ts +2 -2
- package/node/cp-node/stringification/from-stringifyable.js +1 -1
- package/node/cp-node/stringification/from-stringifyable.js.map +1 -1
- package/node/cp-node/stringification/to-stringifyable.d.ts +3 -3
- package/node/cp-node/stringification/to-stringifyable.js +3 -3
- package/node/debug/debug.d.ts +26 -3
- package/node/debug/debug.js +16 -5
- package/node/debug/debug.js.map +1 -1
- package/node/find-2-prong/add-2-prong.js +1 -7
- package/node/find-2-prong/add-2-prong.js.map +1 -1
- package/node/find-2-prong/calc-seperation-tolerance.d.ts +28 -5
- package/node/find-2-prong/calc-seperation-tolerance.js +32 -89
- package/node/find-2-prong/calc-seperation-tolerance.js.map +1 -1
- package/node/find-2-prong/find-2-prong.js +8 -10
- package/node/find-2-prong/find-2-prong.js.map +1 -1
- package/node/find-2-prong/find-and-add-2-prongs.js +2 -2
- package/node/find-2-prong/find-and-add-2-prongs.js.map +1 -1
- package/node/find-2-prong/get-medial/get-antipodal-points.d.ts +1 -2
- package/node/find-2-prong/get-medial/get-antipodal-points.js +2 -3
- package/node/find-2-prong/get-medial/get-antipodal-points.js.map +1 -1
- package/node/find-2-prong/get-medial/get-closest-points.d.ts +1 -8
- package/node/find-2-prong/get-medial/get-closest-points.js +4 -40
- package/node/find-2-prong/get-medial/get-closest-points.js.map +1 -1
- package/node/find-2-prong/reduce-radius.d.ts +1 -1
- package/node/find-2-prong/reduce-radius.js +6 -3
- package/node/find-2-prong/reduce-radius.js.map +1 -1
- package/node/find-3-prong/calc-better-x.js +1 -1
- package/node/find-3-prong/calc-better-x.js.map +1 -1
- package/node/find-3-prong/find-3-prong-for-delta3s.d.ts +3 -2
- package/node/find-3-prong/find-3-prong-for-delta3s.js +35 -41
- package/node/find-3-prong/find-3-prong-for-delta3s.js.map +1 -1
- package/node/find-3-prong/find-3-prong.js +3 -1
- package/node/find-3-prong/find-3-prong.js.map +1 -1
- package/node/find-3-prong/find-and-add-3-prongs.js +16 -0
- package/node/find-3-prong/find-and-add-3-prongs.js.map +1 -1
- package/node/find-mat/create-initial-cp-tree.js +2 -2
- package/node/find-mat/create-initial-cp-tree.js.map +1 -1
- package/node/find-mat/find-mat.js +3 -4
- package/node/find-mat/find-mat.js.map +1 -1
- package/node/find-mat/find-mats.d.ts +6 -12
- package/node/find-mat/find-mats.js +10 -27
- package/node/find-mat/find-mats.js.map +1 -1
- package/node/find-mat/get-dull-corners-on-loop.js +2 -2
- package/node/find-mat/get-dull-corners-on-loop.js.map +1 -1
- package/node/find-mat/get-for-1-prongs-on-loop.js +36 -8
- package/node/find-mat/get-for-1-prongs-on-loop.js.map +1 -1
- package/node/find-mat/get-meta.d.ts +14 -4
- package/node/find-mat/get-meta.js +30 -24
- package/node/find-mat/get-meta.js.map +1 -1
- package/node/find-mat/get-sharp-corners.js +2 -2
- package/node/find-mat/get-sharp-corners.js.map +1 -1
- package/node/find-mat/mat-options.d.ts +2 -2
- package/node/floyd-warshall/get-graph.d.ts +12 -1
- package/node/floyd-warshall/get-graph.js +41 -38
- package/node/floyd-warshall/get-graph.js.map +1 -1
- package/node/geometry/get-bounding-box-.d.ts +16 -2
- package/node/geometry/get-bounding-box-.js +5 -2
- package/node/geometry/get-bounding-box-.js.map +1 -1
- package/node/geometry/get-closest-square-distance-to-rect.d.ts +3 -0
- package/node/geometry/get-closest-square-distance-to-rect.js +7 -5
- package/node/geometry/get-closest-square-distance-to-rect.js.map +1 -1
- package/node/geometry/get-closest-squared-distance-to-rotated-rect.d.ts +4 -0
- package/node/geometry/get-closest-squared-distance-to-rotated-rect.js +11 -5
- package/node/geometry/get-closest-squared-distance-to-rotated-rect.js.map +1 -1
- package/node/get-medial-points/double-double/dd-get-medial-point-coeffs-bez3.js +1 -2
- package/node/get-medial-points/double-double/dd-get-medial-point-coeffs-bez3.js.map +1 -1
- package/node/index.d.ts +3 -2
- package/node/index.js +2 -1
- package/node/index.js.map +1 -1
- package/node/mat/clone-mat.d.ts +9 -0
- package/node/mat/clone-mat.js +17 -0
- package/node/mat/clone-mat.js.map +1 -0
- package/node/mat/clone-meta.d.ts +12 -0
- package/node/mat/clone-meta.js +24 -0
- package/node/mat/clone-meta.js.map +1 -0
- package/node/mat/get-boundary-piece-beziers.d.ts +5 -0
- package/node/mat/get-boundary-piece-beziers.js +7 -93
- package/node/mat/get-boundary-piece-beziers.js.map +1 -1
- package/node/mat/get-largest-3-prong.d.ts +6 -0
- package/node/mat/get-largest-3-prong.js +8 -5
- package/node/mat/get-largest-3-prong.js.map +1 -1
- package/node/mat/get-largest-vertex.d.ts +15 -1
- package/node/mat/get-largest-vertex.js +20 -7
- package/node/mat/get-largest-vertex.js.map +1 -1
- package/node/mat/hausdorff-distance-one-sided-exceeds.d.ts +79 -0
- package/node/mat/hausdorff-distance-one-sided-exceeds.js +251 -0
- package/node/mat/hausdorff-distance-one-sided-exceeds.js.map +1 -0
- package/node/mat/mat-meta.d.ts +0 -6
- package/node/mat/simplify-mat.d.ts +25 -8
- package/node/mat/simplify-mat.js +182 -53
- package/node/mat/simplify-mat.js.map +1 -1
- package/node/mat/trim-mat.d.ts +4 -2
- package/node/mat/trim-mat.js +3 -1
- package/node/mat/trim-mat.js.map +1 -1
- package/node/point-on-shape/get-boundary-tangent-line.d.ts +19 -0
- package/node/point-on-shape/get-boundary-tangent-line.js +33 -0
- package/node/point-on-shape/get-boundary-tangent-line.js.map +1 -0
- package/node/point-on-shape/get-osculating-circle.d.ts +6 -4
- package/node/point-on-shape/get-osculating-circle.js +6 -4
- package/node/point-on-shape/get-osculating-circle.js.map +1 -1
- package/node/point-on-shape/get-pos-corner.js +2 -2
- package/node/point-on-shape/get-pos-corner.js.map +1 -1
- package/node/reconstruct-from-mat/reconstruct-from-mat.js +20 -80
- package/node/reconstruct-from-mat/reconstruct-from-mat.js.map +1 -1
- package/node/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.d.ts +4 -0
- package/node/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.js +4 -0
- package/node/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.js.map +1 -1
- package/node/sat/cull.d.ts +7 -6
- package/node/sat/cull.js +13 -16
- package/node/sat/cull.js.map +1 -1
- package/node/sat/get-sat-culls.d.ts +12 -2
- package/node/sat/get-sat-culls.js +21 -16
- package/node/sat/get-sat-culls.js.map +1 -1
- package/node/svg/get-shape-bounds.d.ts +1 -12
- package/node/svg/get-shape-bounds.js +2 -3
- package/node/svg/get-shape-bounds.js.map +1 -1
- package/node/sweep-line/sweep-line.js.map +1 -1
- package/node/utils/get-beziers-from-tangents.d.ts +28 -0
- package/node/utils/get-beziers-from-tangents.js +92 -0
- package/node/utils/get-beziers-from-tangents.js.map +1 -0
- package/node/vertex/remove-vertex.d.ts +5 -3
- package/node/vertex/remove-vertex.js +5 -3
- package/node/vertex/remove-vertex.js.map +1 -1
- package/package.json +9 -9
- package/qv-infinite-loop.md +120 -0
- package/src/closest-boundary-point/cull-curve-pieces.ts +49 -0
- package/src/closest-boundary-point/get-close-boundary-points-certified.ts +5 -2
- package/src/closest-boundary-point/get-endpoint-info.ts +96 -0
- package/src/closest-boundary-point/get-potential-closest-points-on-curve-certified.ts +5 -23
- package/src/closest-boundary-point/root-interval-to-distance-squared-interval.ts +42 -60
- package/src/corner/get-corner.ts +10 -1
- package/src/corner/get-interface-ccw.ts +2 -2
- package/src/cp-node/cp-node.ts +4 -3
- package/src/cp-node/fs/get-all-on-loop-by-loop.ts +0 -4
- package/src/cp-node/fs/get-angle-between-mat-curves.ts +6 -4
- package/src/cp-node/fs/get-boundary-beziers-between.ts +10 -8
- package/src/cp-node/fs/get-branch-beziers.ts +3 -2
- package/src/cp-node/fs/get-branch.ts +1 -2
- package/src/cp-node/fs/get-distance-to-next.ts +4 -2
- package/src/cp-node/fs/get-first-exit.ts +15 -14
- package/src/cp-node/fs/get-implied-boundary-bezier-between.ts +17 -69
- package/src/cp-node/fs/get-mat-curve-between.ts +9 -67
- package/src/cp-node/fs/get-mat-curves-between.ts +9 -2
- package/src/cp-node/fs/get-real-prong-count.ts +11 -7
- package/src/cp-node/fs/get-salience.ts +15 -2
- package/src/cp-node/fs/is-fully-terminating.ts +6 -18
- package/src/cp-node/fs/is-on-same-loop.ts +2 -2
- package/src/cp-node/fs/is-special.ts +11 -6
- package/src/cp-node/fs/is-vertex.ts +1 -1
- package/src/cp-node/fs/traverse-edges.ts +8 -4
- package/src/cp-node/stringification/from-stringifyable.ts +75 -75
- package/src/cp-node/stringification/to-stringifyable.ts +3 -3
- package/src/debug/debug.ts +44 -8
- package/src/find-2-prong/add-2-prong.ts +2 -9
- package/src/find-2-prong/calc-seperation-tolerance.ts +34 -115
- package/src/find-2-prong/find-2-prong.ts +9 -11
- package/src/find-2-prong/find-and-add-2-prongs.ts +2 -2
- package/src/find-2-prong/get-medial/get-antipodal-points.ts +1 -3
- package/src/find-2-prong/get-medial/get-closest-points.ts +6 -51
- package/src/find-2-prong/reduce-radius.ts +6 -4
- package/src/find-3-prong/calc-better-x.ts +2 -2
- package/src/find-3-prong/find-3-prong-for-delta3s.ts +197 -214
- package/src/find-3-prong/find-3-prong.ts +54 -51
- package/src/find-3-prong/find-and-add-3-prongs.ts +20 -1
- package/src/find-mat/create-initial-cp-tree.ts +2 -2
- package/src/find-mat/find-mat.ts +4 -6
- package/src/find-mat/find-mats.ts +83 -105
- package/src/find-mat/get-dull-corners-on-loop.ts +2 -2
- package/src/find-mat/get-for-1-prongs-on-loop.ts +40 -8
- package/src/find-mat/get-meta.ts +34 -39
- package/src/find-mat/get-sharp-corners.ts +2 -2
- package/src/find-mat/mat-options.ts +2 -2
- package/src/floyd-warshall/get-graph.ts +46 -47
- package/src/geometry/get-bounding-box-.ts +5 -2
- package/src/geometry/get-closest-square-distance-to-rect.ts +7 -7
- package/src/geometry/get-closest-squared-distance-to-rotated-rect.ts +12 -10
- package/src/get-medial-points/double-double/dd-get-medial-point-coeffs-bez3.ts +1 -2
- package/src/index.ts +3 -2
- package/src/mat/clone-mat.ts +9 -3
- package/src/mat/clone-meta.ts +8 -0
- package/src/mat/get-boundary-piece-beziers.ts +16 -117
- package/src/mat/get-largest-3-prong.ts +9 -6
- package/src/mat/get-largest-vertex.ts +25 -9
- package/src/mat/hausdorff-distance-one-sided-exceeds.ts +314 -0
- package/src/mat/mat-meta.ts +0 -9
- package/src/mat/simplify-mat.ts +254 -116
- package/src/mat/trim-mat.ts +6 -4
- package/src/point-on-shape/get-boundary-tangent-line.ts +36 -0
- package/src/point-on-shape/get-osculating-circle.ts +7 -5
- package/src/point-on-shape/get-pos-corner.ts +2 -2
- package/src/reconstruct-from-mat/reconstruct-from-mat.ts +22 -111
- package/src/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.ts +4 -0
- package/src/sat/cull.ts +16 -20
- package/src/sat/get-sat-culls.ts +28 -23
- package/src/svg/get-shape-bounds.ts +2 -3
- package/src/sweep-line/sweep-line.ts +1 -1
- package/src/utils/get-beziers-from-tangents.ts +110 -0
- package/src/utils/map-map.ts +1 -1
- package/src/vertex/remove-vertex.ts +5 -3
- package/__tests__/cp-node/fs/get-distance-between.spec.ts +0 -7
- package/__tests__/cp-node/fs/get-terminating-on-circle.spec.ts +0 -24
- package/__tests__/cp-node/fs/is-single-3-prong.spec.ts +0 -17
- package/__tests__/cp-node/fs/iterate-all-on-loop.spec.ts +0 -17
- package/__tests__/cp-node/fs/traverse-all-forward.spec.ts +0 -14
- package/node/closest-boundary-point/cull-bezier-pieces-1.d.ts +0 -9
- package/node/closest-boundary-point/cull-bezier-pieces-1.js +0 -17
- package/node/closest-boundary-point/cull-bezier-pieces-1.js.map +0 -1
- package/node/closest-boundary-point/cull-by-loose-bounding-box.d.ts +0 -13
- package/node/closest-boundary-point/cull-by-loose-bounding-box.js +0 -27
- package/node/closest-boundary-point/cull-by-loose-bounding-box.js.map +0 -1
- package/node/closest-boundary-point/cull-by-tight-boundary-box.d.ts +0 -11
- package/node/closest-boundary-point/cull-by-tight-boundary-box.js +0 -27
- package/node/closest-boundary-point/cull-by-tight-boundary-box.js.map +0 -1
- package/node/cp-node/fs/find-first.d.ts +0 -10
- package/node/cp-node/fs/find-first.js +0 -19
- package/node/cp-node/fs/find-first.js.map +0 -1
- package/node/debug/functions/check-ordering.d.ts +0 -4
- package/node/debug/functions/check-ordering.js +0 -43
- package/node/debug/functions/check-ordering.js.map +0 -1
- package/node/find-2-prong/cull-bezier-pieces.d.ts +0 -13
- package/node/find-2-prong/cull-bezier-pieces.js +0 -43
- package/node/find-2-prong/cull-bezier-pieces.js.map +0 -1
- package/node/floyd-warshall/get-hole-closer-pairs.d.ts +0 -8
- package/node/floyd-warshall/get-hole-closer-pairs.js +0 -27
- package/node/floyd-warshall/get-hole-closer-pairs.js.map +0 -1
- package/node/utils/dual-set.d.ts +0 -27
- package/node/utils/dual-set.js +0 -55
- package/node/utils/dual-set.js.map +0 -1
- package/node/utils/tri-map.d.ts +0 -27
- package/node/utils/tri-map.js +0 -49
- package/node/utils/tri-map.js.map +0 -1
- package/src/closest-boundary-point/cull-bezier-pieces-1.ts +0 -36
- package/src/closest-boundary-point/cull-by-loose-bounding-box.ts +0 -42
- package/src/closest-boundary-point/cull-by-tight-boundary-box.ts +0 -43
- package/src/closest-boundary-point/get-p-from-box.ts +0 -14
- package/src/cp-node/fs/add-distance-from.ts +0 -49
- package/src/cp-node/fs/get-distance-between.ts +0 -16
- package/src/cp-node/fs/get-terminating-on-circle.ts +0 -24
- package/src/cp-node/fs/is-single-3-prong.ts +0 -15
- package/src/cp-node/fs/iterate-all-on-loop.ts +0 -15
- package/src/cp-node/fs/traverse-all-forward.ts +0 -24
- package/src/debug/functions/draw/draw-beziers-as-single-path.ts +0 -40
- package/src/debug/functions/draw/draw-disk.ts +0 -34
- package/src/debug/functions/draw/xmlns.ts +0 -5
- package/src/find-2-prong/cull-bezier-pieces.ts +0 -61
- package/src/find-2-prong/find-and-add-2-prong.ts +0 -30
- package/src/find-2-prong/get-medial/get-closest-points-d.ts +0 -213
- package/src/find-2-prong/x-for-debugging.ts +0 -13
- package/src/floyd-warshall/get-hole-closer-pairs.ts +0 -35
- package/src/mat/get-two-prong-type.ts +0 -13
- package/src/point-on-shape/is-pos-dull-corner.ts +0 -18
- package/src/point-on-shape/is-pos-quite-dull-corner.ts +0 -18
- package/src/point-on-shape/is-pos-quite-sharp-corner.ts +0 -18
- package/src/point-on-shape/pos-to-human-string.ts +0 -18
- package/src/sweep-line/are-boxes-intersecting.ts +0 -37
package/browser/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function t(t=[],e){const o=[],r={beziers:t,curves:o,idx:e};if(0===t.length)return r;let c,i=0;for(let e=0;e<t.length;e++){if(n(t[e]))continue;const s={loop:r,ps:t[e],prev:c,next:void 0,idx:i};c&&(c.next=s),c=s,o.push(s),i++}const s=o[o.length-1];return o[0].prev=s,s.next=o[0],s.ps[s.ps.length-1]=o[0].ps[0],r}function n(t){if(t.length<=1)return!0;const n=t[0],e=t[1],o=n[0]===e[0]&&n[1]===e[1];if(2===t.length)return o;const r=t[2],c=e[0]===r[0]&&e[1]===r[1];if(3===t.length)return o&&c;const i=t[3],s=r[0]===i[0]&&r[1]===i[1];return o&&c&&s}function e(t){const n=[];for(let e=0;e<t.length;e++){const o=t[e];0===e&&n.push("M "+o[0][0].toString()+" "+o[0][1].toString()),4===o.length?n.push("C "+o[1][0].toString()+" "+o[1][1].toString()+" "+o[2][0].toString()+" "+o[2][1].toString()+" "+o[3][0].toString()+" "+o[3][1].toString()+" "):3===o.length?n.push("Q "+o[1][0].toString()+" "+o[1][1].toString()+" "+o[2][0].toString()+" "+o[2][1].toString()+" "):2===o.length&&n.push("L "+o[1][0].toString()+" "+o[1][1].toString()+" ")}return n.push(" z"),n.join("\n")}function o(t){const n=[t.p,t.initialPoint];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n}function r(t,n,e){function o(e){return[e[0]*n-e[1]*t,e[0]*t+e[1]*n]}return void 0===e?o:o(e)}const{min:c,max:i}=Math;function s(t,n,e){return c(e,i(n,t))}const{abs:u,sqrt:f,asin:l,sin:a,cos:p,tan:h,PI:d}=Math;function v(t,n,e,o,c,i,g,m,x,w){const b=d*g/180;let _,M,S,C,y=[];if(w)_=w[0],M=w[1],S=w[2],C=w[3];else{const h=r(a(-b),p(-b));[t,n]=h([t,n]),[e,o]=h([e,o]);const v=(t-e)/2,g=(n-o)/2;let w=v*v/(c*c)+g*g/(i*i);w>1&&(w=f(w),c*=w,i*=w);const y=c*c,O=i*i,N=(m===x?-1:1)*f(u((y*O-y*g*g-O*v*v)/(y*g*g+O*v*v)));S=N*c*g/i+(t+e)/2,C=N*-i*v/c+(n+o)/2,_=l(s((n-C)/i,-1,1)),M=l(s((o-C)/i,-1,1)),t<S&&(_=d-_),e<S&&(M=d-M),_<0&&(_=2*d+_),M<0&&(M=2*d+M),x&&_>M&&(_-=2*d),!x&&M>_&&(M-=2*d)}let O=M-_;if(u(O)>120*d/180){const t=M,n=e,r=o;M=_+(x&&M>_?1:-1)*d*120/180,y=v(e=S+c*p(M),o=C+i*a(M),n,r,c,i,g,0,x,[M,t,S,C])}O=M-_;const N=p(_),E=a(_),I=p(M),k=a(M),B=h(O/4),P=4/3*c*B,T=4/3*i*B,A=[t,n],z=[t+P*E,n-T*N],D=[e+P*k,o-T*I],L=[e,o];if(z[0]=2*A[0]-z[0],z[1]=2*A[1]-z[1],w)return[z,D,L,...y];const W=[z,D,L,...y].flat(),q=[];let j=[];const F=r(a(b),p(b));return W.forEach(function(t,n){if(n%2){const t=F([W[n-1],W[n]]);j.push(t[1])}else{const t=F([W[n],W[n+1]]);j.push(t[0])}6===j.length&&(q.push(j),j=[])}),q}function g(t){t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0;const n=t.p,e=[t.vals[5],t.vals[6]],o=Math.abs(t.vals[0]),r=Math.abs(t.vals[1]);if(n[0]===e[0]&&n[1]===e[1])return[];if(0===o||0===r)return t.p=e,[[n,e]];const c=v(n[0],n[1],e[0],e[1],o,r,t.vals[2],t.vals[3],t.vals[4]),i=[];let s=n;for(const t of c){const n=[s,[t[0],t[1]],[t[2],t[3]],[t[4],t[5]]];i.push(n),s=n[3]}const u=i[i.length-1];return t.p=u[u.length-1],i}const m={c:function(t){const n=[t.p,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]],[t.vals[4],t.vals[5]]];return t.prev2ndCubicControlPoint=n[2],t.prev2ndQuadraticControlPoint=void 0,n},h:function(t){const n=[t.p,[t.vals[0],t.p[1]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},l:function(t){const n=[t.p,t.vals];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},q:function(t){const n=[t.vals[0],t.vals[1]],e=[t.vals[2],t.vals[3]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},s:function(t){const n=t.prev2ndCubicControlPoint?[t.p[0]-t.prev2ndCubicControlPoint[0]+t.p[0],t.p[1]-t.prev2ndCubicControlPoint[1]+t.p[1]]:t.p,e=[t.p,n,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]]];return t.prev2ndCubicControlPoint=e[2],t.prev2ndQuadraticControlPoint=void 0,e},t:function(t){const n=t.prev2ndQuadraticControlPoint?[t.p[0]-t.prev2ndQuadraticControlPoint[0]+t.p[0],t.p[1]-t.prev2ndQuadraticControlPoint[1]+t.p[1]]:t.p,e=[t.vals[0],t.vals[1]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},v:function(t){const n=[t.p,[t.p[0],t.vals[0]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},z:o},x=new Set("MLCQAHVSTZmlcqahvstz");function w(t){if(x.has(t))return"z"===t?"Z":t}const b=/[ \t\n\r\f]/;function _(t){return b.test(t._string[t._currentIndex])}function M(t){for(;t._currentIndex<t._endIndex&&_(t);)t._currentIndex++;return t._currentIndex<t._endIndex}function S(t){return!(t._currentIndex<t._endIndex&&!_(t)&&","!==t._string[t._currentIndex])&&(M(t)&&t._currentIndex<t._endIndex&&","===t._string[t._currentIndex]&&(t._currentIndex++,M(t)),t._currentIndex<t._endIndex)}function C(t){let n=0,e=0,o=1,r=0,c=1,i=1;const s=t._currentIndex;M(t);let u=t._currentIndex;u<t._endIndex&&"+"===t._string[u]?(t._currentIndex++,u++):u<t._endIndex&&"-"===t._string[u]&&(t._currentIndex++,u++,c=-1);const f=t._string[u];if(u===t._endIndex||(f<"0"||f>"9")&&"."!==f)throw new Error(`The first character of a number must be one of [0-9+-.]. Found '${f}' at index ${u}.`);const l=t._currentIndex;for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)t._currentIndex++,u++;if(u!==l){let n=u-1,o=1;for(;n>=l;)e+=o*(Number(t._string[n])-0),n-=1,o*=10}if(u<t._endIndex&&"."===t._string[u]){if(t._currentIndex++,u++,u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be a least one digit following the .");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)o*=10,r+=Number(t._string[u])/o,t._currentIndex++,u++}if(u!==s&&u+1<t._endIndex&&("e"===t._string[u]||"E"===t._string[u])&&"x"!==t._string[u+1]&&"m"!==t._string[u+1]){if(t._currentIndex++,u++,"+"===t._string[u]?(t._currentIndex++,u++):"-"===t._string[u]&&(t._currentIndex++,u++,i=-1),u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be an exponent.");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)n*=10,n+=Number(t._string[u]),t._currentIndex++,u++}let a=e+r;return a*=c,n&&(a*=10**(i*n)),S(t),a}function y(t){if(t._currentIndex>=t._endIndex)throw new Error("Unable to parse arc flag");let n;const e=t._string[t._currentIndex];if(t._currentIndex++,"0"===e)n=0;else{if("1"!==e)throw new Error("Unable to parse arc flag - arc flag must be 0 or 1");n=1}return S(t),n}function O(t){const n=t._string[t._currentIndex];let e=w(n);if(void 0===e){if(!("+"===n||"-"===n||"."===n||n>="0"&&n<="9")||"Z"===t._prevCommand)throw new Error("Remaining coordinates not found for implicit command");e="M"===t._prevCommand?"L":"m"===t._prevCommand?"l":t._prevCommand}else t._currentIndex++;t._prevCommand=e;const o=e.toUpperCase();let r;return"H"===o||"V"===o?r=[C(t)]:"M"===o||"L"===o||"T"===o?r=[C(t),C(t)]:"S"===o||"Q"===o?r=[C(t),C(t),C(t),C(t)]:"C"===o?r=[C(t),C(t),C(t),C(t),C(t),C(t)]:"A"===o?r=[C(t),C(t),C(t),y(t),y(t),C(t),C(t)]:(M(t),r=[]),{command:e,values:r}}function N(t){return t._currentIndex<t._endIndex}function E(t){return function(t){if(0===t.length)return[];if("m"!==t[0].command.toLowerCase())throw new Error("Invalid SVG - every new path must start with an M or m.");const n={p:[0,0],initialPoint:void 0,prev2ndCubicControlPoint:void 0,prev2ndQuadraticControlPoint:void 0,vals:void 0},e=[];let r,c=[];for(let i=0;i<t.length;i++){const s=t[i],u=s.command.toLowerCase();if(n.vals=s.values,s.command===u)if("v"===u)n.vals[0]+=n.p[1];else if("a"===u)n.vals[5]+=n.p[0],n.vals[6]+=n.p[1];else for(let t=0;t<n.vals.length;t++)n.vals[t]+=n.p[t%2];if("m"!==u){if("a"===u)c.push(...g(n));else{const t=m[u];if(!t)throw new Error("Invalid SVG - command not recognized.");const e=t(n);n.p=e[e.length-1],c.push(e)}r=u}else c.length&&("z"!==r&&c.push(o(n)),e.push(c),c=[]),n.initialPoint=n.p=n.vals,r=u}return c.length>0&&("z"!==r&&c.push(o(n)),e.push(c)),e}(function(t){if(!t.length)return[];const n={_string:t,_currentIndex:0,_endIndex:t.length,_prevCommand:void 0};if(M(n),!function(t){if(!N(t))return!0;const n=w(t._string[t._currentIndex]);return"M"===n||"m"===n}(n))throw new Error("Path must start with m or M");const e=[];for(;N(n);)e.push(O(n));return e}(t))}function I(t){const n=t.length,e=Array.from(Array(n),()=>new Array(n).fill(0));for(let o=0;o<n;o++)for(let r=0;r<n;r++)e[o][r]=t[o][r];for(let t=0;t<n;t++)for(let o=0;o<n;o++)for(let r=0;r<n;r++)e[o][t]+e[t][r]<e[o][r]&&(e[o][r]=e[o][t]+e[t][r]);return e}function k(t){const n=t,e=[];do{e.push(t),t=t.next}while(t!==n);return e}function B(t){return k(t).filter(t=>t.isHoleClosing)}function P(t){const n=t.pointOnShape;return{idx:n.curve.idx,t:n.t,order:n.order,order2:n.order2}}function T(t){const n=t;let e=n,o=0;do{o++,e=e.nextOnCircle}while(e!==n);return o}function A(t,n=!1){const e=t,o=n?[]:[t];let r=t.nextOnCircle;for(;r!==e;)o.push(r),r=r.nextOnCircle;return o}function z(t){return t===t.next.prevOnCircle}function D(t){return A(t).filter(t=>!z(t)).length}function L(t){return A(t).every(z)}function W(t){if(!z(t))return!1;if(L(t))return!0;for(;t.prev===t.prevOnCircle;)t=t.prev;return A(t.prevOnCircle,!0).every(z)}function q(t){return 0===t.pointOnShape.circle.radius}function j(t){const n=t.pointOnShape,e=n.curve;return{...t,pos:n,p:n.p,t:n.t,isTerminating:z(t),isFullyTerminating:W(t),isSharp:q(t),prongCount:T(t),getRealProngCount:D(t),ordering:P(t),curve:e,loop:e.loop}}function F(t){let n=t;if(z(n))return[n];const e=[];do{e.push(n);const t=n.next.prevOnCircle;n=n=n===t?n.next.next:t}while(n!==t);return e}function H(t,n){const e=k(t),o=new Set;for(t of e)z(t)||o.has(t.next.prevOnCircle)||n(t),o.add(t)}function Y(t){const n=[],e=t;let o=e;for(;o!==e.prevOnCircle;)z(o)||n.push(o.next),o=o.nextOnCircle;return n}function R(t,n){n(t);const e=A(t).filter(t=>!z(t)).map(t=>t.next);for(const t of e){const e=[t];for(;e.length;){const t=e.pop();n(t),e.push(...Y(t))}}}const X=["prev","next","prevOnCircle","nextOnCircle","holeCloserTwin"];function Q(t){const n=new Map,e=V(t);n.set(t,e);const o=[{cpNode:t,newCpNode:e}];for(;o.length;){const{cpNode:t,newCpNode:e}=o.pop();for(const r of X){const c=t[r];if(void 0===c)continue;let i=n.get(c);i||(i=V(c),n.set(c,i),o.push({cpNode:c,newCpNode:i})),e[r]=i}}return e}function V(t){return{...t,prev:void 0,next:void 0,prevOnCircle:void 0,nextOnCircle:void 0,holeCloserTwin:void 0}}function $(t){const n=t,e=t.next,o=n.pointOnShape,r=e.pointOnShape,c=o.curve,i=r.curve;if(c.loop!==i.loop)return[];const s=[];return i===c?s.push({ps:o.curve.ps,ts:[o.t,r.t]}):(s.push({ps:o.curve.ps,ts:[o.t,1]}),function(t,n,e,o){let r=n;do{r=r.next;const n=r===e?o:1;t.push({ps:r.ps,ts:[0,n]})}while(r!==e)}(s,o.curve,r.curve,r.t)),s}function U(t,n,e){if(4===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=i-n*(i-u),h=u-n*(u-l),d=p-n*(p-h),v=s-n*(s-f),g=f-n*(f-a),m=v-n*(v-g);return[e,[p,v],[d,m],[d-n*(d-(h-n*(h-(l-n*(l-c[0]))))),m-n*(m-(g-n*(g-(a-n*(a-c[1])))))]]}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=i-n*(i-u),h=u-n*(u-l),d=l-n*(l-c[0]),v=p-n*(p-h),g=h-n*(h-d),m=s-n*(s-f),x=f-n*(f-a),w=a-n*(a-c[1]),b=m-n*(m-x),_=x-n*(x-w);return[[v-n*(v-g),b-n*(b-_)],[g,_],[d,w],c]}(t,n):function(t,n,e){const o=t[0],r=t[1],c=t[2],i=t[3],s=o[0],u=o[1],f=r[0],l=r[1],a=c[0],p=c[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,x=s-f,w=a-f,b=x+w,_=n*x,M=e*x,S=i[0]-s-3*w,C=u-l,y=p-l,O=C+y,N=n*C,E=e*C,I=i[1]-u-3*y;return[[d*S+(3*n*(n*b-x)+s),d*I+(3*n*(n*O-C)+u)],[m*(n*S+2*b)+(h*b+s-(M+2*_)),m*(n*I+2*O)+(h*O+u-(E+2*N))],[m*(e*S+2*b)+(v*b+s-(2*M+_)),m*(e*I+2*O)+(v*O+u-(2*E+N))],[g*S+(3*e*(e*b-x)+s),g*I+(3*e*(e*O-C)+u)]]}(t,n,e)}(t,n,e);if(3===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=n*n,l=c-s,a=i-u;return[e,[-n*l+c,-n*a+i],[f*(l+(r[0]-s))-(2*n*l-c),f*(a+(r[1]-u))-(2*n*a-i)]]}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=n*n,l=c-s,a=r[0]-s,p=i-u,h=r[1]-u;return[[f*(l+a)-(2*n*l-c),f*(p+h)-(2*n*p-i)],[n*a+s,n*h+u],r]}(t,n):function(t,n,e){const o=t[0],r=t[1],c=t[2],i=o[0],s=o[1],u=r[0],f=r[1],l=n*n,a=e*e,p=n*e,h=i-u,d=h+(c[0]-u),v=s-f,g=v+(c[1]-f);return[[l*d-(2*n*h-i),l*g-(2*n*v-s)],[p*d-(h*(e+n)-i),p*g-(v*(e+n)-s)],[a*d-(2*e*h-i),a*g-(2*e*v-s)]]}(t,n,e)}(t,n,e);if(2===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1];return[e,[n*(o[0]-r)+r,n*(o[1]-c)+c]]}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1];return[[n*(o[0]-r)+r,n*(o[1]-c)+c],o]}(t,n):function(t,n,e){const o=t[0],r=t[1],c=o[0],i=o[1],s=r[0],u=r[1];return[[n*(s-c)+c,n*(u-i)+i],[e*(s-c)+c,e*(u-i)+i]]}(t,n,e)}(t,n,e);if(1===t.length)return t;throw new Error("The given bezier curve must be of order <= 3.")}function Z(t){return $(t).map(t=>U(t.ps,t.ts[0],t.ts[1]))}function G(t,n){const{cpTrees:e}=n,o=t.prev,r=t.next;o.next=r,r.prev=o,e.get(t.pointOnShape.curve.loop).remove(t)}function J(t,n){const e=T(t);if(2!==e)throw new Error(`Cannot delete \`CpNode\` on ${e}-prong`);A(t).forEach(t=>G(t,n))}function K(t){const n=[],e=t.next;let o=e;do{n.push(o),o=o.nextOnCircle}while(o.nextOnCircle!==e);return n}function tt(t,n,e){if(void 0===t.size||void 0===e)return;const o=e[n];if(t.size>o&&void 0!==o)for(const[n]of t){t.delete(n);break}}const nt=[function(t,n){let e,o=!1;return function(){return o||(e=t(),o=!0),e}},function(t,n,e=!1){const o=new WeakMap,r=new Map;function c(t){return"object"!=typeof t&&"function"!=typeof t||null===t?r:o}const i=function(o){let i;const s=c(o);return s.has(o)?(e&&console.log("cache hit"),i=s.get(o)):(e&&console.log("cache miss"),i=t(o),s.set(o,i),tt(r,0,n)),i};return i.mapS=r,i.weakMapS=o,i.clearCache=function(){r.clear()},i.addToCache=function(t,e){const o=c(e);o.set(e,t),tt(o,1,n)},i},function(t,n){const e=new WeakMap,o=new Map;function r(t,r){const c=("object"==typeof r||"function"==typeof r)&&null!==r;let i="object"!=typeof t&&"function"!=typeof t||null===t?o:e,s=i.get(t);return void 0===s&&(s={weakMap:new WeakMap,map:new Map},i.set(t,s),tt(i,0,n)),c?s.weakMap:s.map}function c(e,o){const c=r(e,o);let i;return c.has(o)?i=c.get(o):(i=t(e,o),c.set(o,i),tt(c,1,n)),i}return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o){const c=r(e,o);c.set(o,t),tt(c,1,n)},c},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c){const i=("object"==typeof r||"function"==typeof r)&&null!==r,s=("object"==typeof c||"function"==typeof c)&&null!==c;let u="object"!=typeof t&&"function"!=typeof t||null===t?o:e,f=u.get(t);void 0===f&&(f={weakMap:new WeakMap,map:new Map},u.set(t,f),tt(u,0,n));const l=i?f.weakMap:f.map;let a=l.get(r);return void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(r,a),tt(l,1,n)),s?a.weakMap:a.map}const c=function(e,o,c){const i=r(e,o,c);let s;return i.has(c)?s=i.get(c):(s=t(e,o,c),i.set(c,s),tt(i,2,n)),s};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c){const i=r(e,o,c);i.set(c,t),tt(i,2,n)},c},function(t,n,e=!1){const o=new WeakMap,r=new Map;function c(t,e,c,i){const s=("object"==typeof e||"function"==typeof e)&&null!==e,u=("object"==typeof c||"function"==typeof c)&&null!==c,f=("object"==typeof i||"function"==typeof i)&&null!==i;let l="object"!=typeof t&&"function"!=typeof t||null===t?r:o,a=l.get(t);void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(t,a),tt(l,0,n));const p=s?a.weakMap:a.map;let h=p.get(e);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(e,h),tt(p,1,n));const d=u?h.weakMap:h.map;let v=d.get(c);return void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(c,v),tt(d,2,n)),f?v.weakMap:v.map}const i=function(o,r,i,s){const u=c(o,r,i,s);let f;return u.has(s)?(e&&console.log("cache hit"),f=u.get(s)):(e&&console.log("cache miss"),f=t(o,r,i,s),u.set(s,f),tt(u,3,n)),f};return i.mapS=r,i.weakMapS=o,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,o,r,i){const s=c(e,o,r,i);s.set(i,t),tt(s,3,n)},i},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c,i,s){const u=("object"==typeof r||"function"==typeof r)&&null!==r,f=("object"==typeof c||"function"==typeof c)&&null!==c,l=("object"==typeof i||"function"==typeof i)&&null!==i,a=("object"==typeof s||"function"==typeof s)&&null!==s;let p="object"!=typeof t&&"function"!=typeof t||null===t?o:e,h=p.get(t);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(t,h),tt(p,0,n));const d=u?h.weakMap:h.map;let v=d.get(r);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(r,v),tt(d,1,n));const g=f?v.weakMap:v.map;let m=g.get(c);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(c,m),tt(g,2,n));const x=l?m.weakMap:m.map;let w=x.get(i);return void 0===w&&(w={weakMap:new WeakMap,map:new Map},x.set(i,w),tt(x,3,n)),a?w.weakMap:w.map}const c=function(e,o,c,i,s){const u=r(e,o,c,i,s);let f;return u.has(s)?f=u.get(s):(f=t(e,o,c,i,s),u.set(s,f),tt(u,4,n)),f};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c,i,s){const u=r(e,o,c,i,s);u.set(s,t),tt(u,4,n)},c},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c,i,s,u){const f=("object"==typeof r||"function"==typeof r)&&null!==r,l=("object"==typeof c||"function"==typeof c)&&null!==c,a=("object"==typeof i||"function"==typeof i)&&null!==i,p=("object"==typeof s||"function"==typeof s)&&null!==s,h=("object"==typeof u||"function"==typeof u)&&null!==u;let d="object"!=typeof t&&"function"!=typeof t||null===t?o:e,v=d.get(t);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(t,v),tt(d,0,n));const g=f?v.weakMap:v.map;let m=g.get(r);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(r,m),tt(g,1,n));const x=l?m.weakMap:m.map;let w=x.get(c);void 0===w&&(w={weakMap:new WeakMap,map:new Map},x.set(c,w),tt(x,2,n));const b=a?w.weakMap:w.map;let _=b.get(i);void 0===_&&(_={weakMap:new WeakMap,map:new Map},b.set(i,_),tt(b,3,n));const M=p?_.weakMap:_.map;let S=M.get(s);return void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(s,S),tt(M,4,n)),h?S.weakMap:S.map}const c=function(e,o,c,i,s,u){const f=r(e,o,c,i,s,u);let l;return f.has(u)?l=f.get(u):(l=t(e,o,c,i,s,u),f.set(u,l),tt(f,5,n)),l};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c,i,s,u){const f=r(e,o,c,i,s,u);f.set(u,t),tt(f,5,n)},c},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c,i,s,u,f){const l=("object"==typeof r||"function"==typeof r)&&null!==r,a=("object"==typeof c||"function"==typeof c)&&null!==c,p=("object"==typeof i||"function"==typeof i)&&null!==i,h=("object"==typeof s||"function"==typeof s)&&null!==s,d=("object"==typeof u||"function"==typeof u)&&null!==u,v=("object"==typeof f||"function"==typeof f)&&null!==f;let g="object"!=typeof t&&"function"!=typeof t||null===t?o:e,m=g.get(t);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(t,m),tt(g,0,n));const x=l?m.weakMap:m.map;let w=x.get(r);void 0===w&&(w={weakMap:new WeakMap,map:new Map},x.set(r,w),tt(x,1,n));const b=a?w.weakMap:w.map;let _=b.get(c);void 0===_&&(_={weakMap:new WeakMap,map:new Map},b.set(c,_),tt(b,2,n));const M=p?_.weakMap:_.map;let S=M.get(i);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(i,S),tt(M,3,n));const C=h?S.weakMap:S.map;let y=C.get(s);void 0===y&&(y={weakMap:new WeakMap,map:new Map},C.set(s,y),tt(C,4,n));const O=d?y.weakMap:y.map;let N=O.get(u);return void 0===N&&(N={weakMap:new WeakMap,map:new Map},O.set(u,N),tt(O,5,n)),v?N.weakMap:N.map}const c=function(e,o,c,i,s,u,f){const l=r(e,o,c,i,s,u,f);let a;return l.has(f)?a=l.get(f):(a=t(e,o,c,i,s,u,f),l.set(f,a),tt(l,6,n)),a};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c,i,s,u,f){const l=r(e,o,c,i,s,u,f);l.set(f,t),tt(l,6,n)},c},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c,i,s,u,f,l){const a=("object"==typeof r||"function"==typeof r)&&null!==r,p=("object"==typeof c||"function"==typeof c)&&null!==c,h=("object"==typeof i||"function"==typeof i)&&null!==i,d=("object"==typeof s||"function"==typeof s)&&null!==s,v=("object"==typeof u||"function"==typeof u)&&null!==u,g=("object"==typeof f||"function"==typeof f)&&null!==f,m=("object"==typeof l||"function"==typeof l)&&null!==l;let x="object"!=typeof t&&"function"!=typeof t||null===t?o:e,w=x.get(t);void 0===w&&(w={weakMap:new WeakMap,map:new Map},x.set(t,w),tt(x,0,n));const b=a?w.weakMap:w.map;let _=b.get(r);void 0===_&&(_={weakMap:new WeakMap,map:new Map},b.set(r,_),tt(b,1,n));const M=p?_.weakMap:_.map;let S=M.get(c);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(c,S),tt(M,2,n));const C=h?S.weakMap:S.map;let y=C.get(i);void 0===y&&(y={weakMap:new WeakMap,map:new Map},C.set(i,y),tt(C,3,n));const O=d?y.weakMap:y.map;let N=O.get(s);void 0===N&&(N={weakMap:new WeakMap,map:new Map},O.set(s,N),tt(O,4,n));const E=v?N.weakMap:N.map;let I=E.get(u);void 0===I&&(I={weakMap:new WeakMap,map:new Map},E.set(u,I),tt(E,5,n));const k=g?I.weakMap:I.map;let B=k.get(f);return void 0===B&&(B={weakMap:new WeakMap,map:new Map},k.set(f,B),tt(k,6,n)),m?B.weakMap:B.map}const c=function(e,o,c,i,s,u,f,l){const a=r(e,o,c,i,s,u,f,l);let p;return a.has(l)?p=a.get(l):(p=t(e,o,c,i,s,u,f,l),a.set(l,p),tt(a,7,n)),p};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c,i,s,u,f,l){const a=r(e,o,c,i,s,u,f,l);a.set(l,t),tt(a,7,n)},c}];function et(t,n,e=!1){const o=t.length;if(o>8)throw new Error("A maximum of 8 formal parameters are supported");return(0,nt[o])(t,n,e)}function ot(t,n){const[[e,o],[r,c]]=t,[[i,s],[u,f]]=n,l=r-e,a=c-o,p=u-i,h=f-s,d=p*a-h*l;if(0===d)return;const v=((s-o)*l-(i-e)*a)/d;return[i+v*p,s+v*h]}function rt(t,n){return[n[0]-t[0],n[1]-t[1]]}function ct(t,n){return t[0]*n[0]+t[1]*n[1]}function it(t){return[-t[1],t[0]]}function st(t,n){return t[0]*n[1]-t[1]*n[0]}function ut(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e]}function ft(t,n){function e(n){return[t[0]+n[0],t[1]+n[1]]}return void 0===n?e:e(n)}function lt(t){const n=1/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]*n,t[1]*n]}function at(t,n){let e=0;for(let o=0;o<t.length;o++)e=e*n+t[o];return e}function pt(t){if(4===t.length)return function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[3*(s-n+3*(o-c)),6*(c+n-2*o),3*(o-n)],[3*(u-e+3*(r-i)),6*(i+e-2*r),3*(r-e)]]}(t);if(3===t.length)return function(t){const[[n,e],[o,r],[c,i]]=t;return[[2*(c+n-2*o),2*(o-n)],[2*(i+e-2*r),2*(r-e)]]}(t);if(2===t.length)return function(t){const[[n,e],[o,r]]=t;return[[o-n],[r-e]]}(t);if(1===t.length)return[[0],[0]];throw new Error("The bezier curve must be of order <= 3.")}function ht(t,n){const[e,o]=pt(t);return[at(e,n),at(o,n)]}function dt(t,n){const e=t-n,o=t-e;return[t-(e+o)+(o-n),e]}function vt(t,n){const e=t.length,o=n.length;let r=0,c=0;const i=[];for(;r<e&&c<o;)0!==t[r]?0!==n[c]?Math.abs(t[r])<=Math.abs(n[c])?(i.push(t[r]),r++):(i.push(n[c]),c++):c++:r++;for(;r<e;)i.push(t[r]),r++;for(;c<o;)i.push(n[c]),c++;if(0===i.length)return[0];const s=i.length;if(1===s)return i;const u=[],f=i[1],l=i[0];let a=f+l;const p=l-(a-f);0!==p&&u.push(p),c=0;for(let t=2;t<s;t++){const n=i[t],e=a+n,o=e-a,r=a-(e-o)+(n-o);0!==r&&u.push(r),a=e}return 0===a&&0!==u.length||u.push(a),u}const gt=134217729;function mt(t,n){const e=t.length;let o;const r=t[0];let c=r*n;const i=gt*r,s=i-(i-r),u=r-s,f=gt*n,l=f-(f-n),a=n-l,p=[],h=u*a-(c-s*l-u*l-s*a);0!==h&&p.push(h);for(let r=1;r<e;r++){const e=t[r],i=e*n,s=gt*e,u=s-(s-e),f=e-u,l=gt*n,a=l-(l-n),h=n-a,d=f*h-(i-u*a-f*a-u*h),v=c+d,g=v-c,m=c-(v-g)+(d-g);0!==m&&p.push(m),o=v;const x=i+o,w=o-(x-i);0!==w&&p.push(w),c=x}return 0===c&&0!==p.length||p.push(c),p}function xt(t,n){const e=n.length;let o;const r=n[0];let c=r*t;const i=gt*r,s=i-(i-r),u=r-s,f=gt*t,l=f-(f-t),a=t-l,p=[],h=u*a-(c-s*l-u*l-s*a);0!==h&&p.push(h);for(let r=1;r<e;r++){const e=n[r],i=e*t,s=gt*e,u=s-(s-e),f=e-u,l=gt*t,a=l-(l-t),h=t-a,d=f*h-(i-u*a-f*a-u*h),v=c+d,g=v-c,m=c-(v-g)+(d-g);0!==m&&p.push(m),o=v;const x=i+o,w=o-(x-i);0!==w&&p.push(w),c=x}return 0===c&&0!==p.length||p.push(c),p}function wt(t,n){let e=[0];for(let o=0;o<t.length;o++)e=vt(e,mt(n,t[o]));return e}function bt(t){let n=t[0];for(let e=1;e<t.length;e++)n+=t[e];return n}function _t(t){const n=t.length,e=new Array(n);for(let o=0;o<n;o++)e[o]=-t[o];return e}function Mt(t,n){return vt(t,_t(n))}function St(t){return t[t.length-1]}const Ct=dt,yt=xt;function Ot(t){if(4===t.length){const[[n,e],[o,r]]=t;return[yt(3,Ct(o,n)),yt(3,Ct(r,e))]}if(3===t.length){const[[n,e],[o,r]]=t;return[Ct(2*o,2*n),Ct(2*r,2*e)]}if(2===t.length){const[[n,e],[o,r]]=t;return[Ct(o,n),Ct(r,e)]}if(1===t.length)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}function Nt(t,n){const e=t+n,o=e-t;return[t-(e-o)+(n-o),e]}function Et(t,n){const e=t.length;let o=n;const r=[];for(let n=0;n<e;n++){const e=t[n],c=o+e,i=c-o,s=o-(c-i)+(e-i);0!==s&&r.push(s),o=c}return 0===o&&0!==r.length||r.push(o),r}const It=Nt,kt=xt,Bt=Et;function Pt(t){if(4===t.length){const[[n,e],[o,r],[c,i]]=t;return[kt(6,Bt(It(c,n),-2*o)),kt(6,Bt(It(i,e),-2*r))]}if(3===t.length){const[[n,e],[o,r],[c,i]]=t;return[Bt(It(2*c,2*n),-4*o),Bt(It(2*i,2*e),-4*r)]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3")}const Tt=dt,At=xt,zt=vt;function Dt(t){if(4===t.length){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[At(6,zt(Tt(s,n),At(3,Tt(o,c))))],[At(6,zt(Tt(u,e),At(3,Tt(r,i))))]]}if(t.length<=3)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}const{sign:Lt}=Math;function Wt(t,n){const[e,o]=Ot(t),[r,c]=Pt(t),[i,s]=Ot(n),[u,f]=Pt(n),l=Mt(wt(e,c),wt(o,r)),a=Mt(wt(i,f),wt(s,u)),p=St(l),h=St(a);if(Lt(p)!==Lt(h))return p-h;const d=vt(wt(i,i),wt(s,s)),v=vt(wt(e,e),wt(o,o)),g=wt(d,d),m=wt(g,d),x=wt(v,v),w=wt(x,v);if(0!==p||0!==h){const t=wt(l,l),n=wt(a,a),e=St(Mt(wt(t,m),wt(n,w)));if(0!==e)return p>0?e:-e}const[[b],[_]]=Dt(t),[[M],[S]]=Dt(n),C=Mt(wt(e,_),wt(o,b)),y=vt(wt(e,r),wt(o,c)),O=Mt(wt(i,S),wt(s,M)),N=vt(wt(i,u),wt(s,f)),E=Mt(wt(v,C),mt(wt(l,y),3)),I=Mt(wt(d,O),mt(wt(a,N),3)),k=St(E),B=St(I);if(k!==B)return k-B;if(0===k&&0===B)return 0;const P=wt(E,E),T=wt(g,m),A=wt(I,I),z=wt(x,w),D=St(Mt(wt(P,T),wt(A,z)));return k>0?D:-D}function qt(t,n){return t[0]===n[0]&&t[1]===n[1]}function jt(t,n){const{ccw:e,tangentI:o,tangentO:r,dotTangents:c}=function(t,n){const e=t.length;let o=t[e-2],r=n[0],c=n[1];qt(o,r)&&(o=t[e-3]),qt(r,c)&&(c=n[2]);const i=function(t,n,e){const o=dt(t[0],e[0]),r=dt(n[1],e[1]),c=dt(t[1],e[1]),i=dt(n[0],e[0]);return bt(vt(wt(o,r),_t(wt(c,i))))}(o,r,c),s=[dt(r[0],o[0]),dt(r[1],o[1])],u=[dt(c[0],r[0]),dt(c[1],r[1])],f=function(t,n){return bt(vt(wt(t[0],n[0]),wt(t[1],n[1])))}(s,u);return 0!==i||f>0?{ccw:i,tangentI:s,tangentO:u,dotTangents:f}:{ccw:Wt(t.slice().reverse(),n),tangentI:s,tangentO:u,dotTangents:f}}(t,n),i=e<0,s=e>0,u=[lt(o.map(t=>t[1])),lt(r.map(t=>t[1]))],f=st(u[0],u[1]);let l,a;return c>0?(l=f<-.0698,a=f>.0698):(l=i,a=s),{tangents:u,isSharp:i,isDull:s,isQuiteSharp:l,isQuiteDull:a}}const Ft=et(function(t){const{t:n,curve:e}=t;return jt(1===n?e.ps:e.prev.ps,1===n?e.next.ps:e.ps)});function Ht(t){return 0===t.t||1===t.t}function Yt(t){return!!Ht(t)&&Ft(t).isSharp}const{sqrt:Rt}=Math;function Xt(t){const n=t.pointOnShape.circle.center,e=t,o=t.nextOnCircle,c=e.pointOnShape,i=o.pointOnShape,s=c.p,u=i.p;let f;if(Yt(c)){let t,n;0===c.t?(t=c.curve,n=c.curve.prev):1===c.t&&(t=c.curve.next,n=c.curve);const e=lt(ht(t.ps,0)),o=[-(l=lt(ht(n.ps,1)))[0],-l[1]],i=ct(e,o),s=Rt((1+i)/2);f=r(Rt((1-i)/2),s,o)}else f=s[0]===u[0]&&s[1]===u[1]?rt(s,n):it(rt(s,u));var l;return[n,ft(lt(f),n)]}const{abs:Qt}=Math,Vt=1e-4;function $t(t,n){const e=t.pointOnShape.circle.center,o=Xt(t),r=n.pointOnShape.circle.center,c=Xt(n.prevOnCircle),i=ot(o,c),s=rt(e,r);let u;if(i){const t=rt(e,i),n=rt(r,i);u=ct(t,s)<0||ct(n,s)>0}else u=!0;if(!u)return[e,i,r];const f=it(s),l=rt(o[0],o[1]),a=rt(c[0],c[1]),p=Qt(st(s,l))/9,h=Qt(st(s,a))/9;if(p>.01||h>.01)return[e,r];if(p>Vt||h>Vt){const t=ut(e,r,1/3),n=ut(e,r,2/3),i=ft(f,t),s=[n,ft(f,n)];return[e,ot(o,[t,i]),ot(c,s),r]}return[e,r]}function Ut(t){return $t(t,t.next)}function Zt(t){const n=t;let e=n;for(;e.next===e.prevOnCircle;)if(e=e.next,e===n)return;return e}function Gt(t,n){return t.pointOnShape.circle===n.pointOnShape.circle}function Jt(t){return 1===D(t)&&!t.isHoleClosing}function Kt(t){return 2===D(t)}function tn(t){if(L(t))return[];for(;z(t);)t=t.nextOnCircle;for(t=t.next;2===D(t);)t=t.next;t=t.prevOnCircle;const n=[];do{n.push(t),t=t.next}while(!W(t)&&2===D(t));return n}function nn(t){return tn(t).map(t=>Ut(t))}function en(t,n){const e=n[0]-t[0],o=n[1]-t[1];return Math.sqrt(e*e+o*o)}function on(t,n){const[e,o]=t,[[r,c],[i,s]]=n;return en([r+e*(i-r),c+e*(s-c)],[r+o*(i-r),c+o*(s-c)])}function rn(t,n,e=16){if(n[0]===n[1])return 0;const{weights:o,abscissas:r}=cn[e],[c,i]=n;let s=0;const u=(i-c)/2,f=(i+c)/2;for(let n=0;n<=e-1;n++)s+=o[n]*t(u*r[n]+f);return u*s}et(Ut);const cn={2:{weights:[1,1],abscissas:[-.5773502691896257,.5773502691896257]},4:{weights:[.6521451548625461,.6521451548625461,.3478548451374538,.3478548451374538],abscissas:[-.3399810435848563,.3399810435848563,-.8611363115940526,.8611363115940526]},8:{weights:[.362683783378362,.362683783378362,.3137066458778873,.3137066458778873,.2223810344533745,.2223810344533745,.1012285362903763,.1012285362903763],abscissas:[-.1834346424956498,.1834346424956498,-.525532409916329,.525532409916329,-.7966664774136267,.7966664774136267,-.9602898564975363,.9602898564975363]},16:{weights:[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685,.1894506104550685,.18260341504492358,.16915651939500254,.14959598881657674,.12462897125553388,.09515851168249279,.062253523938647894,.027152459411754096],abscissas:[-.9894009349916499,-.9445750230732326,-.8656312023878318,-.755404408355003,-.6178762444026438,-.45801677765722737,-.2816035507792589,-.09501250983763744,.09501250983763744,.2816035507792589,.45801677765722737,.6178762444026438,.755404408355003,.8656312023878318,.9445750230732326,.9894009349916499]},64:{weights:[.048690957009139724,.048690957009139724,.04857546744150343,.04857546744150343,.048344762234802954,.048344762234802954,.04799938859645831,.04799938859645831,.04754016571483031,.04754016571483031,.04696818281621002,.04696818281621002,.046284796581314416,.046284796581314416,.04549162792741814,.04549162792741814,.044590558163756566,.044590558163756566,.04358372452932345,.04358372452932345,.04247351512365359,.04247351512365359,.04126256324262353,.04126256324262353,.03995374113272034,.03995374113272034,.038550153178615626,.038550153178615626,.03705512854024005,.03705512854024005,.035472213256882386,.035472213256882386,.033805161837141606,.033805161837141606,.03205792835485155,.03205792835485155,.030234657072402478,.030234657072402478,.028339672614259483,.028339672614259483,.02637746971505466,.02637746971505466,.024352702568710874,.024352702568710874,.022270173808383253,.022270173808383253,.02013482315353021,.02013482315353021,.017951715775697343,.017951715775697343,.015726030476024718,.015726030476024718,.013463047896718643,.013463047896718643,.011168139460131128,.011168139460131128,.008846759826363947,.008846759826363947,.006504457968978363,.006504457968978363,.004147033260562468,.004147033260562468,.001783280721696433,.001783280721696433],abscissas:[-.024350292663424433,.024350292663424433,-.07299312178779904,.07299312178779904,-.12146281929612056,.12146281929612056,-.16964442042399283,.16964442042399283,-.21742364374000708,.21742364374000708,-.2646871622087674,.2646871622087674,-.31132287199021097,.31132287199021097,-.3572201583376681,.3572201583376681,-.4022701579639916,.4022701579639916,-.4463660172534641,.4463660172534641,-.48940314570705296,.48940314570705296,-.5312794640198946,.5312794640198946,-.571895646202634,.571895646202634,-.6111553551723933,.6111553551723933,-.6489654712546573,.6489654712546573,-.6852363130542333,.6852363130542333,-.7198818501716109,.7198818501716109,-.7528199072605319,.7528199072605319,-.7839723589433414,.7839723589433414,-.8132653151227975,.8132653151227975,-.8406292962525803,.8406292962525803,-.8659993981540928,.8659993981540928,-.8893154459951141,.8893154459951141,-.9105221370785028,.9105221370785028,-.9295691721319396,.9295691721319396,-.9464113748584028,.9464113748584028,-.9610087996520538,.9610087996520538,-.973326827789911,.973326827789911,-.983336253884626,.983336253884626,-.9910133714767443,.9910133714767443,-.9963401167719553,.9963401167719553,-.9993050417357722,.9993050417357722]}},{sqrt:sn}=Math;function un(t){const[n,e]=pt(t);return function(t){const o=at(n,t),r=at(e,t);return sn(o*o+r*r)}}const{abs:fn}=Math,ln=[[0,0],[0,0],[0,0]];function an(t,n,e){return 0===n?1===e?{ps:t,_ps:ln}:function(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=r[0],l=r[1],a=n*n,p=c-s,h=i-u,d=[[c,i],[-n*p+c,-n*h+i],[a*(p+(f-s))-(2*n*p-c),a*(h+(l-u))-(2*n*h-i)]],v=fn(n),g=fn(c),m=fn(s),x=fn(f),w=g+m,b=fn(i),_=fn(u),M=b+_;return{ps:d,_ps:[[0,0],[v*w+g,v*M+b],[a*(w+(x+m))+(2*v*w+g),a*(M+(fn(l)+_))+(2*v*M+b)]]}}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=r[0],l=r[1],a=n*n,p=c-s,h=f-s,d=i-u,v=l-u,g=[[a*(p+h)-(2*n*p-c),a*(d+v)-(2*n*d-i)],[n*h+s,n*v+u],[f,l]],m=fn(n),x=fn(c),w=fn(s),b=x+w,_=fn(f)+w,M=fn(i),S=fn(u),C=M+S;return{ps:g,_ps:[[a*(b+_)+(2*m*b+x),a*(C+(fn(l)+S))+(2*m*C+M)],[m*_+w,0],[0,0]]}}(t,n):function(t,n,e){const o=t[0],r=t[1],c=t[2],i=o[0],s=o[1],u=r[0],f=r[1],l=c[0],a=c[1],p=n*n,h=e*e,d=n*e,v=i-u,g=v+(l-u),m=s-f,x=m+(a-f),w=p*g-(2*n*v-i),b=d*g-(v*(e+n)-i),_=h*g-(2*e*v-i),M=p*x-(2*n*m-s),S=d*x-(m*(e+n)-s),C=h*x-(2*e*m-s),y=fn(n),O=fn(e),N=fn(d),E=fn(i),I=fn(u),k=E+I,B=k+fn(l)+I,P=fn(s),T=fn(f),A=P+T,z=A+fn(a)+T;return{ps:[[w,M],[b,S],[_,C]],_ps:[[p*B+(2*y*k+E),p*z+(2*y*A+P)],[N*B+(k*(O+y)+E),N*x+(A*(O+y)+P)],[h*B+(2*O*k+E),h*z+(2*O*A+P)]]}}(t,n,e)}const pn=134217729;function hn(t,n){const e=t*n,o=pn*t,r=o-(o-t),c=t-r,i=pn*n,s=i-(i-n),u=n-s;return[c*u-(e-r*s-c*s-r*u),e]}function dn(t,n){const e=t[0],o=t[1],r=n[0],c=n[1],i=o+c,s=i-o,u=e+r,f=u-e,l=o-(i-s)+(c-s)+u,a=i+l,p=e-(u-f)+(r-f)+(l-(a-i)),h=a+p;return[p-(h-a),h]}function vn(t,n){const e=t[0],o=t[1],r=n[0],c=n[1],i=o-c,s=i-o,u=e-r,f=u-e,l=o-(i-s)+(-c-s)+u,a=i+l,p=e-(u-f)+(-r-f)+(l-(a-i)),h=a+p;return[p-(h-a),h]}const{atan2:gn}=Math,mn=hn;function xn(t,n){const e=t[0],o=t[1],r=n[0],c=n[1],i=vn(mn(c,e),mn(r,o))[1],s=dn(mn(r,e),mn(c,o))[1];return gn(i,s)}const{abs:wn}=Math;function bn(t){const n=[];for(let e=0;e<t.length-1;e++){const o=[t[e+1][0]-t[e][0],t[e+1][1]-t[e][1]];0!==(0!==o[0]||o[1])&&n.push(o)}const e=n.length;let o=0;for(let t=0;t<e-1;t++)o+=wn(xn(n[t],n[t+1]));return o}function _n(t,n=.4,e=2**-16){const o=[0],r=[1];for(;;){const c=o[o.length-1],i=r[r.length-1];if(bn(U(t,c,i))<=n||i-c<=e){if(o.push(r.pop()),1===i)return o;continue}const s=(c+i)/2;r.push(s)}}const{sqrt:Mn,log:Sn}=Math;function Cn(t,n,e=.4,o=16){const r=t[0],c=t[1];if(r===c)return 0;const[[i,s],[u,f],[l,a]]=n;if(i===u&&u===l&&s===f&&f===a)return 0;const p=an(n,r,c).ps,h=_n(p,e);let d=0;for(let t=0;t<h.length-1;t++){const n=h[t],e=h[t+1];d+=rn(un(p),[n,e],o)}return d}const{abs:yn}=Math,On=[[0,0],[0,0],[0,0],[0,0]];function Nn(t,n,e){return 0===n?1===e?{ps:t,_ps:On}:function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],d=i-n*(i-u),v=u-n*(u-l),g=d-n*(d-v),m=g-n*(g-(v-n*(v-(l-n*(l-p))))),x=s-n*(s-f),w=f-n*(f-a),b=x-n*(x-w),_=b-n*(b-(w-n*(w-(a-n*(a-h))))),M=yn(n),S=yn(i),C=yn(u),y=yn(l),O=yn(p),N=yn(s),E=yn(f),I=yn(a),k=S+M*(S+C),B=C+M*(C+y),P=k+M*(k+B),T=N+M*(N+E),A=E+M*(E+I),z=T+M*(T+A);return{ps:[[i,s],[d,x],[g,b],[m,_]],_ps:[[0,0],[k,T],[P,z],[P+M*(P+(B+M*(B+(y+M*(y+O))))),z+M*(z+(A+M*(A+(I+M*(I+yn(h))))))]]}}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],d=i-n*(i-u),v=u-n*(u-l),g=l-n*(l-p),m=d-n*(d-v),x=v-n*(v-g),w=m-n*(m-x),b=s-n*(s-f),_=f-n*(f-a),M=a-n*(a-h),S=b-n*(b-_),C=_-n*(_-M),y=S-n*(S-C),O=yn(n),N=yn(i),E=yn(u),I=yn(l),k=yn(p),B=yn(s),P=yn(f),T=yn(a),A=N+O*(N+E),z=E+O*(E+I),D=I+O*(I+k),L=A+O*(A+z),W=z+O*(z+D),q=B+O*(B+P),j=P+O*(P+T),F=T+O*(T+yn(h)),H=q+O*(q+j),Y=j+O*(j+F);return{ps:[[w,y],[x,C],[g,M],[p,h]],_ps:[[L+O*(L+W),H+O*(H+Y)],[W,Y],[D,F],[0,0]]}}(t,n):function(t,n,e){const o=t[0],r=t[1],c=t[2],i=t[3],s=o[0],u=o[1],f=r[0],l=r[1],a=c[0],p=c[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,x=s-f,w=a-f,b=i[0]-s,_=x+w,M=n*x,S=e*x,C=b-3*w,y=u-l,O=p-l,N=i[1]-u,E=y+O,I=n*y,k=e*y,B=N-3*O,P=d*C+(3*n*(n*_-x)+s),T=m*(n*C+2*_)+(h*_+s-(S+2*M)),A=m*(e*C+2*_)+(v*_+s-(2*S+M)),z=g*C+(3*e*(e*_-x)+s),D=d*B+(3*n*(n*E-y)+u),L=m*(n*B+2*E)+(h*E+u-(k+2*I)),W=m*(e*B+2*E)+(v*E+u-(2*k+I)),q=g*B+(3*e*(e*E-y)+u),j=yn(n),F=yn(e),H=yn(m),Y=yn(d),R=yn(g),X=yn(s),Q=yn(f),V=X+Q,$=yn(a)+Q,U=V+$,Z=j*V,G=F*V,J=yn(b)+3*$,K=yn(u),tt=yn(l),nt=K+tt,et=yn(p)+tt,ot=nt+et,rt=j*nt,ct=F*nt,it=yn(N)+3*et;return{ps:[[P,D],[T,L],[A,W],[z,q]],_ps:[[Y*J+(3*j*(j*U+V)+X),Y*it+(3*j*(j*ot+nt)+K)],[H*(j*J+2*U)+(h*U+X+(G+2*Z)),H*(j*it+2*ot)+(h*ot+K+(ct+2*rt))],[H*(F*J+2*U)+(v*U+X+(2*G+Z)),H*(F*it+2*ot)+(v*ot+K+(2*ct+rt))],[R*J+(3*F*(F*U+V)+X),R*it+(3*F*(F*ot+nt)+K)]]}}(t,n,e)}function En(t,n,e=.4,o=16){const r=t[0],c=t[1];if(r===c)return 0;const[[i,s],[u,f],[l,a],[p,h]]=n;if(i===u&&u===l&&l===p&&s===f&&f===a&&a===h)return 0;const d=Nn(n,r,c).ps,v=_n(d,e);let g=0;for(let t=0;t<v.length-1;t++){const n=v[t],e=v[t+1];g+=rn(un(d),[n,e],o)}return g}function In(t,n=.4,e=16){if(4===t.length)return En([0,1],t,n,e);if(3===t.length)return Cn([0,1],t,n,e);if(2===t.length)return on([0,1],t);if(1===t.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}function kn(t,n,e=!0){const{cpNodes:o,hasHoleCloser:r}=function(t,n,e=!0){if(!e&&t===n)return{cpNodes:[],hasHoleCloser:!1};const o=t,r=[o];let c=t.next,i=o.isHoleClosing;for(;c!==n&&c!==o;)c.isHoleClosing&&(i=!0),r.push(c),c=c.next;return{cpNodes:r,hasHoleCloser:i}}(t,n,e);return{pss:o.flatMap(Z),hasHoleCloser:r}}function Bn(t){const n=t,e=t.nextOnCircle,o=en(n.pointOnShape.p,e.pointOnShape.p),{pss:r,hasHoleCloser:c}=kn(n,e),i=function(t){let n=0;for(let e of t)n+=e;return n}(r.map(t=>In(t)));return c?1/0:i/o}function Pn(t,n){let e=t;const o=[];for(;e!==n;){const t=$t(e,e.next);o.push(t),e=e.next}return o}const{abs:Tn,asin:An,PI:zn}=Math;function Dn(t,n){const e=st(lt(ht(Ut(t),0)),lt(ht(Ut(n),0)));return Tn(An(e)*(180/zn))}function Ln(t){const n=[];return R(t,t=>{n.push(t)}),n}function Wn(t,n){let e;return e=t.curve.idx-n.curve.idx,0!==e||(e=t.t-n.t,0!==e||(e=t.order-n.order,0!==e||(e=t.order2-n.order2))),e}function qn(t,n){return Wn(t.pointOnShape,n.pointOnShape)}const jn={getChildren:K,getVertexForwardChildren:Y,getAllOnLoop:k,getAllOnCircle:A,isOnSameCircle:Gt,isTerminating:z,isFullyTerminating:W,getFirstExit:Zt,isSharp:q,isOneProng:Jt,getProngCount:T,getRealProngCount:D,cpNodeComparator:qn,enhanceCpNode:j,traverseCp:F,traverseEdges:H,traverseVertices:R,clone:Q,getBoundaryBezierPartsToNext:$,getBoundaryBeziersToNext:Z,removeVertex:J,getMatCurveToNext:Ut,isTwoProng:Kt,getBranch:tn,getBranchBeziers:nn,getSalience:Bn,getMatCurveBetween:$t,getEdgeDirection:Xt,getBoundaryBeziersBetween:kn,getMatCurvesBetween:Pn,getHoleClosers:B,getInitialDegAngleBetweenMatCurves:Dn,getAllVertices:Ln};function Fn(t){return n=>A(n).some(t)}const Hn=Fn(function(t){return 2!==D(t)&&!t.isHoleClosing});const{abs:Yn}=Math,{abs:Rn}=Math;function Xn(t,n){if(t.length!==n.length)throw new Error("`p` and `p_` must be of equal length.");for(let e=0;e<t.length;e++){const o=Rn(n[e]);if(t[e]-o>=0)continue;let r=!1,c=!1;for(let o=0;o<e;o++){const e=Rn(n[o]),i=t[o]-e,s=t[o]+e;if(i>0){r=!0;break}s>0&&(c=!0)}if(!r&&c)return 1/0}return function(t){const n=t.length-1;if(n<1)return 0;t[0]<0&&(t=function(t){const n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=-t[e];return n}(t));const e=[];for(let t=0;t<n;t++)e.push(1);let o=0;for(let r=0;r<=n;r++){if(t[r]>=0)continue;let n=1/0,c=!1;for(let o=0;o<r;o++){if(t[o]<=0)continue;const i=(-t[r]/(t[o]/2**e[o]))**(1/(r-o));e[o]++,n>i&&(n=i),c=!0}c&&o<n&&(o=n)}return o}(function(t,n){if(t.length!==n.length)throw new Error("`p` and `p_` must be of equal length.");const e=new Array(t.length);for(let o=0;o<t.length;o++){const r=Yn(n[o]),c=t[o]-r,i=t[o]+r;e[o]=c>0||i<0?c:0}return e}(t,n))}const Qn=(Vn=Xn,(t,n)=>-Vn(function(t){const n=t.length-1;if(n<0)return[];const e=t.slice();for(let t=0;t<n+1;t++)t%2==(n-1)%2&&(e[t]=-e[t]);return e}(t),n));var Vn;const{min:$n,max:Un,abs:Zn}=Math,Gn=17976931348623157e292,Jn=Number.EPSILON,Kn=Jn/2,te=Kn*Kn,ne=oe(1),ee=function(){const t=3*te;return t/(1-t)}();function oe(t){const n=t*Kn;return n/(1-n)}new Array(20).fill(0).map((t,n)=>oe(n));const{abs:re}=Math;function ce(t){const n=t.slice(),e=n.length;if(1===e)return n;let o=n[e-1],r=e;for(let t=e-2;t>=0;--t){const e=o,c=n[t];o=e+c;const i=c-(o-e);i&&(n[--r]=o,o=i)}let c=0;for(let t=r;t<e;++t){const e=n[t],r=o;o=e+r;const i=r-(o-e);i&&(n[c++]=i)}return n[c++]=o,n.length=c,n}const{abs:ie}=Math,{abs:se}=Math,ue=134217729;function fe(t,n){const e=n[0],o=n[1],r=o*t,c=ue*o,i=c-(c-o),s=o-i,u=ue*t,f=u-(u-t),l=t-f,a=e*t,p=r+a,h=a-(p-r)+(s*l-(r-i*f-s*f-i*l)),d=p+h;return[h-(d-p),d]}function le(t,n){const e=n[0],o=n[1],r=o*t,c=ue*o,i=c-(c-o),s=o-i,u=ue*t,f=u-(u-t),l=t-f,a=s*l-(r-i*f-s*f-i*l)+e*t,p=r+a;return[a-(p-r),p]}const{abs:ae}=Math;function pe(t,n,e){const o=t.length-1;if(o<0)return[[],[]];const r=ae(n),c=t.slice(),i=e.slice();for(let t=0;t<=o;t++)for(let e=1;e<=o-t;e++){const t=c[e-1],o=i[e-1],s=le(n,t),u=r*o+ae(s[1]),f=c[e];c[e]=dn(f,s),i[e]=i[e]+u+ae(c[e][1])}return[c,i]}const he=2**27+1;function de(t,n){const e=t[1],o=n[1],r=e*o,c=he*e,i=c-(c-e),s=e-i,u=he*o,f=u-(u-o),l=o-f,a=s*l-(r-i*f-s*f-i*l)+(e*n[0]+t[0]*o),p=r+a;return[a-(p-r),p]}const{abs:ve}=Math;function ge(t,n){const e=t.length-1;if(e<0)return[];const o=t.slice();for(let t=0;t<=e;t++)for(let r=1;r<=e-t;r++)o[r]=ce(vt(o[r],mt(o[r-1],n)));return o}function me(t,n){const e=t.length-1;if(e<0)return[];const o=new Array(e+1);o[e]=t[e];let r=[1];for(let c=1;c<=e;c++)r=mt(r,n),o[e-c]=wt(t[e-c],r);return o}const{abs:xe,sign:we}=Math;const be=134217729;function _e(t,n){const e=t*n,o=be*t,r=o-(o-t),c=t-r,i=be*n,s=i-(i-n),u=n-s;return[c*u-(e-r*s-c*s-r*u),e]}const{abs:Me}=Math;function Se(t,n){const e=Me(n);let o=t[0],r=.5*Me(o);for(let c=1;c<t.length;c++)o=o*n+t[c],r=r*e+Me(o);return r=Kn*(2*r-Me(o)),[o,r]}const Ce=Math.abs,{abs:ye}=Math,Oe=oe(1),Ne=oe(2);function Ee(t,n,e=void 0,o=1){const r=t[0],[c,i]=Se(r,n),s=Ne*function(t,n){const e=Ce(n);let o=0;for(let n=0;n<t.length;n++)o=o*e+Ce(t[n]);return o}(r,n),u=void 0!==e?at(e,ye(n)):0;if((i+s+u)*o<Math.abs(c))return c;const f=function(t,n){const e=[],o=[];let r,c=t[0];for(let i=1;i<t.length;i++){const[s,u]=_e(c,n);[r,c]=Nt(u,t[i]),e.push(s),o.push(r)}return{r̂:c,pπ:e,pσ:o}}(r,n),{pπ:l,pσ:a}=f;let{r̂:p}=f;const[h,d]=Se(l,n),[v,g]=Se(a,n),[m,x]=Se(t[1],n);let w=d+g+x+u;return p=h+v+m+p,w+=Oe*p,w*o<Math.abs(p)?p:0}function Ie(t,n){let e=[0];for(let o=0;o<t.length;o++)e=vt(t[o],mt(e,n));return e}const{abs:ke,min:Be,max:Pe,log2:Te,ceil:Ae}=Math;function ze(t,n,e,o,r,c,i,s){let u=e,f=o,l=u,a=r,p=f-u,h=p;for(;;){let d;ke(a)<ke(c)&&(u=f,f=l,l=u,r=c,c=a,a=r);const v=Pe(ke(u),ke(f));d=v<=1?Jn:Jn*2**Ae(Te(v));const g=.5*(l-f);if(ke(g)<=d)return f<l?[f,l,f]:[l,f,f];if(ke(p)<d||ke(r)<=ke(c))p=g,h=p;else{let t,n,e=c/r;if(u===l)t=2*g*e,n=1-e;else{n=r/a;const o=c/a;t=e*(2*g*n*(n-o)-(f-u)*(o-1)),n=(n-1)*(o-1)*(e-1)}0<t?n=-n:t=-t,e=p,p=h,2*t<3*g*n-ke(d*n)&&t<ke(.5*e*n)?h=t/n:(p=g,h=p)}if(u=f,r=c,d<ke(h)?f+=h:0<g?f+=d:f-=d,0===(c=s?bt(Ie(i(),f)):Ee(t,f,n))){if(s)return[f,f,f];const r=Pe(e,f-d),u=Be(o,f+d);if(Ee(t,r,n)*Ee(t,u,n)!==0)return[r,u,f];if(s=!0,0===(c=bt(Ie(i(),f))))return[f,f,f]}(0<c&&0<a||c<=0&&a<=0)&&(l=u,a=r,p=f-u,h=p)}}const{abs:De}=Math;function Le(t,n,e){const o=De(n);let r=t[0],c=e[0];for(let i=1;i<t.length;i++){const s=r*n;r=s+t[i],c=c*o+De(s)+e[i]+De(r)}return[r,c]}function We(t){const n=t[0].length,e=[];for(let o=0;o<n;o++){const r=[];for(let e=0;e<t.length;e++)r.push(t[e][n-(o+1)]);e.push(r)}return e}const qe=dn,je=le,{abs:Fe}=Math;function He(t,n,e){const o=Fe(n);let r=t[0],c=e[0];for(let i=1;i<t.length;i++){const s=je(n,r);r=qe(s,t[i]),c=c*o+Fe(s[1])+e[i]+Fe(r[1])}return[r,c]}const{abs:Ye,min:Re,max:Xe,log2:Qe,ceil:Ve}=Math,$e=ee/ne;function Ue(t,n,e,o,r,c,i){const s=t.length-1;let u=0,f=1;for(;;){f*=2;for(let l=1;l<f;l+=2){u++;const a=r+(c-r)*(f+2*l)/(4*f),[p,h]=Le(t,a,n);if(Ye(p)>h*ne)return[a,p];if(u>s)return Ze(e,o,r,c,i)}}}function Ze(t,n,e,o,r){const c=t.length-1;let i=0,s=1;for(;;){s*=2;for(let u=1;u<s;u+=2){i++;const f=e+(o-e)*(s+2*u)/(4*s),[l,a]=He(t,f,n);if(Ye(l[1])>a*ee)return[f,l[1]];if(i>c)return Ge(r(),e,o)}}}function Ge(t,n,e){const o=t.length-1;let r=1;for(;;){r*=2;for(let c=1;c<r;c+=2){const i=n+(e-n)*(r+2*c)/(4*r),s=ce(Ie(t,i)),u=s[s.length-1];if(0!==u)return[i,u];if(0>o)throw new Error("Cannot resolve root even in Shewchuk expansion precision")}}}const{abs:Je,max:Ke,log2:to,ceil:no}=Math;function eo(t,n=-1/0,e=1/0,o,r,c=!1){let i;"number"==typeof t[0]&&(t=t.map(t=>[0,t]));const s=()=>void 0===r?t:(void 0===i&&(i=r()),i);o=o||new Array(t.length).fill(0),({pDd:t,pDd_:o,pExact:i}=function(t,n,e,o){let r;if(0===t.length||re(t[0][1])>o*n[0])return{pDd:t,pDd_:n,pExact:r};r=r||e();for(let e=0;e<r.length;e++){const c=r[e],i=t[e];i[1]=c[c.length-1],i[0]=c[c.length-2]??0,n[e]=re(i[1])*(ee/o)}let c=0;for(;c<t.length&&0===t[c][1];)c++;return t=t.slice(c),n=n.slice(c),r=r.slice(c),{pDd:t,pDd_:n,pExact:r}}(t,o,s,ee));const u=t.map(t=>t[0]+t[1]);if((c||Je(n)>2**20||Je(e)>2**20)&&([n,e]=function(t,n,e,o,r){t=Un(t,Qn(e,o.map(t=>t*r))),n=$n(n,Xn(e,o.map(t=>t*r)));const c=2**(-2*(e.length-1));for(Number.isFinite(t)||(t=-c*Gn),Number.isFinite(n)||(n=c*Gn);;){const o=Zn(at(e,t)),r=Zn(at(e,n));if(o>c*Gn)t/=2;else{if(!(r>c*Gn))break;n/=2}}return[t,n]}(n,e,u,o,ee)),0!==t.length){if(1===t.length)return[];if(n===e){const t=2*Jn*Ke(1,2**no(to(Ke(Je(n),Je(e)))));n-=t,e+=t}return function(t,n,e,o,r,c){const i=e.map((n,e)=>n*$e+Ye(t[e])),s=o,u=r;let f,l,a,p,h=r-o;for(;[f,l]=Le(t,o,i),!(Ye(f)>l*ne);)o-=h/2,h*=2;for(;[a,p]=Le(t,r,i),!(Ye(a)>p*ne);)r+=h/2,h*=2;const d=[[o,r,f,a,0]],v=[],g=function(t,n,e,o,r){return function(c,i,s,u,f){let[l,a]=function(t,n,e){const o=t.length-1,r=ie(n),c=t.slice(),i=e.slice();for(let t=0;t<=o;t++)for(let e=1;e<=o-t;e++){const t=n*c[e-1],o=r*i[e-1]+ie(t);c[e]=c[e]+t,i[e]=i[e]+o+ie(c[e])}return[c,i]}(t,c,n);!function(t,n,e){const o=t.length-1;if(o<0)return;let r=n,c=0;for(let i=1;i<=o;i++){const s=o-i,u=t[s],f=se(u),l=e[s],a=u*r;t[s]=a,e[s]=l*r+f*c+se(a);const p=r*n;c=c*n+p,r=p}}(l,i-c,a),l.reverse(),a.reverse(),function(t,n){const e=t.length-1;for(let o=0;o<=e;o++)for(let r=1;r<=e-o;r++){const e=t[r-1],o=n[r-1]+ie(e);t[r]=t[r]+e,n[r]=n[r]+o+ie(t[r])}}(l,a);let p=0,h=0,d=we(s);for(let t=1;t<l.length-1;t++){let n=we(l[t]);const e=l[t],o=a[t]*ne;xe(e)<=o&&(h++,n=-d),n!==d&&(p++,d=n)}return we(u)!==d&&p++,1===h&&1===p?1:h>0?function(t,n,e,o,r,c,i,s){let[u,f]=pe(t,e,n);(function(t,n,e){const o=t.length-1;if(o<0)return;let r=[0,n],c=0;for(let i=1;i<=o;i++){const s=o-i,u=t[s],f=ve(u[1]),l=e[s],a=de(r,u);t[s]=a,e[s]=l*r[1]+f*c+ve(a[1]);const p=de(r,[0,n]);c=c*n+p[1],r=p}})(u,o-e,f),u.reverse(),f.reverse(),[u,f]=pe(u,1,f);let l=0,a=0,p=we(r);for(let t=0;t<u.length-1;t++){let n=we(u[t][1]);const e=f[t]*ee,o=u[t];e>=xe(o[1])&&(a++,n=-p),n!==p&&(l++,p=n)}return we(c)!==p&&l++,1===a&&1===l?1:0===a?l:i>1?function(t,n,e,o,r){let c=ge(t(),n);c=me(c,e-n),c.reverse(),c=ge(c,1);let i=0,s=we(o);for(let t=1;t<c.length-1;t++){const n=c[t];let e=we(n[n.length-1]);e!==s&&0!==e&&(i++,s=e)}return we(r)!==s&&i++,i}(s,e,o,r,c):-l}(e,o,c,i,s,u,f,r):p}}(t,i,n,e,c);let m,x;for(;d.length>0;){const o=d.pop(),[r,s,u,f,l]=o,a=g(r,s,u,f,l);if(0===a)continue;if(1===a){m=m||e.map(t=>t*ee),x=x||We(n);const[t,o,i]=ze(x,m,r,s,u,f,c,!1);v.push({t:i,tS:t,tE:o,multiplicity:1});continue}let p=a<0?l+1:0;if(s-r<=2*Ye(a)*Jn*Xe(1,2**Ve(Qe(Xe(Ye(r),Ye(s)))))){if(0===p){v.push({t:(r+s)/2,tS:r,tE:s,multiplicity:Ye(a)});continue}p=1/0}const[h,w]=Ue(t,i,n,e,r,s,c);d.push([r,h,u,w,p]),d.push([h,s,w,f,p])}return v.reverse(),v.filter(t=>{const{tS:n,tE:e}=t;return!(e<s||n>u)})}(u,t,o,n,e,s)}}function oo(t,n){if(0===n)return t[0];if(1===n)return t[t.length-1];if(4===t.length){const[[e,o],[r,c],[i,s],[u,f]]=t,l=e+(r-e)*n,a=r+(i-r)*n,p=l+(a-l)*n,h=o+(c-o)*n,d=c+(s-c)*n,v=h+(d-h)*n;return[p+(a+(i+(u-i)*n-a)*n-p)*n,v+(d+(s+(f-s)*n-d)*n-v)*n]}if(3===t.length){const[[e,o],[r,c],[i,s]]=t,u=e+(r-e)*n,f=o+(c-o)*n;return[u+(r+(i-r)*n-u)*n,f+(c+(s-c)*n-f)*n]}if(2===t.length){const[[e,o],[r,c]]=t;return[e+(r-e)*n,o+(c-o)*n]}if(1===t.length)return t[0];throw new Error("The given bezier curve must be of order <= 3.")}function ro(t){const n=pt(t),e=eo(n[0],0,1)?.map(t=>t.t)||[],o=eo(n[1],0,1)?.map(t=>t.t)||[];e.push(0,1),o.push(0,1);let r,c,i,s,u=1/0,f=-1/0,l=1/0,a=-1/0;for(let n=0;n<e.length;n++){const o=e[n],[i]=oo(t,o);i<u&&(u=i,r=o),i>f&&(f=i,c=o)}for(let n=0;n<o.length;n++){const e=o[n],[,r]=oo(t,e);r<l&&(l=r,i=e),r>a&&(a=r,s=e)}return{ts:[[r,i],[c,s]],box:[[u,l],[f,a]]}}const co=et(ro);function io(t,n){return so(t)-so(n)}function so(t){let n=1/0;for(const e of t){const t=co(e).box[0][1];t<n&&(n=t)}return n}function uo(t){const n=[],e=[t];for(;e.length;){const t=e.pop();if(0===t.windingNum)for(const e of t.children)0!==e.windingNum&&n.push(e);e.push(...t.children)}return n}const{abs:fo}=Math;function lo(t,n){return"AND"===t?fo(n)>=2:"XOR"===t?fo(n)%2==1:0!==n}function ao(t){return n=>{const e=[],o=[[n,0]];for(;o.length;){const[n,r]=o.pop(),c=n.parent.windingNum,i=lo(t,n.windingNum)!==lo(t,c);i&&e.push({out:n,depth:r,windingNum:n.windingNum,parentWinding:c});const s=i?r+1:r;for(const t of n.children)0===n.windingNum&&0!==t.windingNum||o.push([t,s])}return e}}function po(t,n){let e=t.x.curve.idx-n.x.curve.idx;return 0!==e||(e=t.x.ri.tS-n.x.ri.tS),e}const{floor:ho,ceil:vo}=Math;function go(t,n,e,o){const r=[];for(const o of t)r.push({type:-1,item:o,x:n(o)}),r.push({type:1,item:o,x:e(o)});r.sort(mo);const c=new Set,i=[];for(const t of r){const{item:n,type:e}=t;if(-1===e){for(const t of c){const e=o(n,t);e&&i.push({a:n,b:t,u:e})}c.add(n)}else 1===e&&c.delete(n)}return i}function mo(t,n){const e=t.x-n.x;return 0!==e?e:t.type}function xo(t,n,e){let[[o,r],[c,i]]=n,[[s,u],[f,l]]=e;r>i&&([r,i]=[i,r]),u>l&&([u,l]=[l,u]),o>c&&([o,c]=[c,o]),s>f&&([s,f]=[f,s]);const a=t||o===c&&s===f,p=t||r===i&&u===l;return(a?o<=f:o<f)&&(a?c>=s:c>s)&&(p?u<=i:u<i)&&(p?l>=r:l>r)}function wo(t,n){let[[e,o],[r,c]]=t;e>r&&([e,r]=[r,e]),o>c&&([o,c]=[c,o]);const i=(r-e)*n,s=(c-o)*n;return[[e-i,o-s],[r+i,c+s]]}function bo(t,n){return xo(!0,wo(t.box,.5),wo(n.box,.5))}function _o(t,n){const[e,o]=n;t.getOrInsert(e,[]).push(o),t.getOrInsert(o,[]).push(e)}function Mo(t,n,e,o){e.add(n),o.push(n);const r=t.get(n);for(let n=0;n<r.length;n++){const c=r[n];e.has(c)||Mo(t,c,e,o)}}function So(t){const n=[],e=new Set;for(const o of t){const r=o[0];e.has(r)||(n.push([]),Mo(t,r,e,n[n.length-1]))}return n}const{min:Co,max:yo}=Math;function Oo(t){let n=1/0,e=1/0,o=-1/0,r=-1/0;const c=[];for(const i of t){const[[t,s],[u,f]]=i.box;n=Co(n,t),e=Co(e,s),o=yo(o,u),r=yo(r,f),c.push(...i.xs)}return{xs:c,box:[[n,e],[o,r]]}}function No(t){const n=[];function e(...e){if("undefined"==typeof _debug_)return t.apply(this,e);const o=performance.now(),r=t.apply(this,e),c=performance.now();return n.push(c-o),r}return e.getStats=()=>{const e=function(t){let n=0;for(let e of t)n+=e;return n}(n);return{name:t.name,totalMs:e,count:n.length}},e.resetStats=()=>{n.length=0},e}const Eo=No(function(t){for(;;){const n=go(t,t=>wo(t.box,.5)[0][0],t=>wo(t.box,.5)[1][0],bo);if(!n.length)break;const e=new Map(t.map(t=>[t,[]]));for(let t=0;t<n.length;t++){const o=n[t];_o(e,[o.a,o.b])}t=So(e).map(Oo)}return t});function Io(t,n){const e=t[0],o=t[1],r=n[0],c=n[1],i=o-c,s=i-o,u=e-r,f=u-e,l=o-(i-s)+(-c-s)+u,a=i+l;return a+(e-(u-f)+(-r-f)+(l-(a-i)))}function ko(t,n){const e=t-n,o=t-e;return[t-(e+o)+(o-n),e]}function Bo(t,n){const e=t[0],o=t[1],r=o+n,c=r-o,i=e+(o-(r-c)+(n-c)),s=r+i;return[i-(s-r),s]}const Po=de,To=dn,Ao=vn,zo=ko,Do=Bo;function Lo(t,n){if(0===n[0]&&0===n[1])return t[0].map(t=>[0,t]);if(0===n[0]&&1===n[1])return t[t.length-1].map(t=>[0,t]);if(4===t.length){const[[e,o],[r,c],[i,s],[u,f]]=t,l=Do(Po(zo(r,e),n),e),a=Do(Po(zo(i,r),n),r),p=Do(Po(zo(u,i),n),i),h=To(l,Po(Ao(a,l),n)),d=To(a,Po(Ao(p,a),n)),v=To(h,Po(Ao(d,h),n)),g=Do(Po(zo(c,o),n),o),m=Do(Po(zo(s,c),n),c),x=Do(Po(zo(f,s),n),s),w=To(g,Po(Ao(m,g),n)),b=To(m,Po(Ao(x,m),n));return[v,To(w,Po(Ao(b,w),n))]}if(3===t.length){const[[e,o],[r,c],[i,s]]=t,u=To([0,e],Po(zo(r,e),n)),f=To([0,r],Po(zo(i,r),n)),l=To(u,Po(Ao(f,u),n)),a=To([0,o],Po(zo(c,o),n)),p=To([0,c],Po(zo(s,c),n));return[l,To(a,Po(Ao(p,a),n))]}if(2===t.length){const[[e,o],[r,c]]=t;return[Do(Po(zo(r,e),n),e),Do(Po(zo(c,o),n),o)]}if(1===t.length){const[n,e]=t[0];return[[0,n],[0,e]]}throw new Error("The given bezier curve must be of order <= 3.")}function Wo(t,n){return Lo(t,[0,n]).map(t=>t[0]+t[1])}const{min:qo,max:jo}=Math;function Fo(t,n,e,o){let r;for(const{curve:c,ts:i}of function*(t,n){const e=n?t.next:t.prev,o=t.x.curve,r=t.x.ri.tS,c=e.x.curve,i=e.x.ri.tS,s=n?1:0,u=n?0:1;let f=o,l=r,a=!1;for(;;){if(f===c&&(l===i?a:n?l<i:l>i))return void(yield{ts:[l,i],curve:f});yield{ts:[l,s],curve:f},a=!0,l=u,f=n?f.next:f.prev}}(n,o)){const{ps:n}=c;void 0===r&&(r=Wo(n,i[0]));const o=Wo(n,i[1]),[s,u]=r,[f,l]=o;let a=[];for(let t=0;t<e.length;t++){const n=e[t],[[o,r]]=n;(t%2==0&&qo(u,l)<=r&&r<=jo(u,l)||t%2==1&&qo(s,f)<=o&&o<=jo(s,f))&&a.push(t)}if(a.length>0)return t.oSideIdxs=a,a;r=o}}function Ho(t,n){const e=t[0],o=t[1],r=o-n,c=r-o,i=e-e,s=o-(r-c)+(-n-c)+e,u=r+s,f=e-(e-i)-i+(s-(u-r)),l=u+f;return[f-(l-u),l]}const Yo=134217729;function Ro(t,n){const e=t[0],o=t[1],r=o/n,c=r*n,i=Yo*r,s=i-(i-r),u=r-s,f=Yo*n,l=f-(f-n),a=n-l,p=(o-c-(u*a-(c-s*l-u*l-s*a))+e)/n,h=r+p;return[p-(h-r),h]}const Xo=vn;function Qo(t,n){return Xo(t,n)[1]>0?n:t}const Vo=vn;function $o(t,n){return Vo(t,n)[1]>0?t:n}function Uo(t){return[-t[0],-t[1]]}const Zo=ko,Go=le,Jo=dn,Ko=Bo,{abs:tr}=Math;function nr(t){const[[n,e],[o,r],[c,i],[s,u]]=t,f=Zo(s,n),l=Zo(o,c),a=3*(o-c),p=Go(3,l),h=tr(a),d=Jo(f,p),v=h+tr(s-n+a),g=Zo(c,2*o),m=Ko(g,n),x=tr(c-2*o+n),w=Go(3,m),b=6*x,_=Zo(o,n),M=Go(3,_),S=tr(3*(o-n)),C=Zo(u,e),y=Zo(r,i),O=3*(r-i),N=Go(3,y),E=tr(O),I=Jo(C,N),k=E+tr(u-e+O),B=Zo(i,2*r),P=Ko(B,e),T=tr(i-2*r+e),A=Go(3,P),z=6*T,D=Zo(r,e);return{coeffs:[[d,w,M,[0,n]],[I,A,Go(3,D),[0,e]]],errorBound:[[v,b,S,0],[k,z,tr(3*(r-e)),0]]}}function er(t){const[[n,e],[o,r],[c,i]]=t,s=c-2*o,u=Zo(c,2*o),f=Ko(u,n),l=tr(s+n),a=Zo(2*o,2*n),p=i-2*r,h=Zo(i,2*r),d=Ko(h,e),v=tr(p+e);return{coeffs:[[f,a,[0,n]],[d,Zo(2*r,2*e),[0,e]]],errorBound:[[l,0,0],[v,0,0]]}}function or(t){const[[n,e],[o,r]]=t;return[[Zo(o,n),[0,n]],[Zo(r,e),[0,e]]]}const rr=vn,cr=le,ir=Uo,{abs:sr}=Math;function ur(t){const[[n,[,e]],[o,[,r]]]=or(t),c=ir(o),i=n,s=cr(r,n),u=sr(s[1]),f=cr(e,o),l=sr(f[1]),a=rr(f,s);return{coeffs:{vₓ:c,vᵧ:i,v:a},errorBound:{v_:u+l+sr(a[1])}}}const{abs:fr}=Math,lr=dn,ar=le,pr=de;function hr(t){return[2*t[0],2*t[1]]}const dr=Uo,vr=hr,gr=le,mr=de,xr=vn,{abs:wr}=Math;function br(t){const{coeffs:[[n,e,[,o]],[r,c,[,i]]],errorBound:[[s],[u]]}=er(t),f=n[1],l=e[1],a=r[1],p=c[1],h=wr(o),d=wr(l),v=wr(f),g=wr(i),m=wr(p),x=wr(a),w=mr(n,c),b=s*m+2*wr(f*p),_=mr(e,r),M=d*u+2*wr(l*a),S=gr(i,n),C=g*s+wr(i*f),y=gr(o,r),O=h*u+wr(o*a),N=gr(i,e),E=wr(i*l),I=gr(o,c),k=wr(o*p),B=mr(n,n),P=2*(s*v+wr(f*f)),T=mr(n,r),A=s*x+v*u+2*wr(f*a),z=mr(r,r),D=2*(u*x+wr(a*a)),L=f*p-l*a,W=f*i-o*a,q=l*i-o*p,j=xr(w,_),F=wr(L),H=b+M+F,Y=xr(S,y),R=wr(W),X=C+O+R,Q=xr(N,I),V=wr(q),$=E+k+V,U=dr(z),Z=D,G=vr(T),J=2*A,K=dr(B),tt=P,nt=p*L,et=mr(c,j),ot=m*H+2*wr(nt),rt=2*W*a,ct=vr(mr(r,Y)),it=2*(u*R+x*X+2*wr(rt)),st=nt-rt,ut=xr(et,ct),ft=ot+it+wr(st),lt=2*f*W,at=vr(mr(n,Y)),pt=2*(s*R+v*X+2*wr(lt)),ht=l*L,dt=mr(e,j),vt=d*H+2*wr(ht),gt=lt-ht,mt=xr(at,dt),xt=pt+vt+wr(gt),wt=L*q,bt=mr(j,Q),_t=H*V+F*$+2*wr(wt),Mt=W*W,St=mr(Y,Y),Ct=2*(X*R+wr(Mt)),yt=wt-Mt;return{coeffs:{vₓₓ:U,vₓᵧ:G,vᵧᵧ:K,vₓ:ut,vᵧ:mt,v:xr(bt,St)},errorBound:{vₓₓ_:Z,vₓᵧ_:J,vᵧᵧ_:tt,vₓ_:ft,vᵧ_:xt,v_:_t+Ct+wr(yt)}}}const _r=hn,Mr=hr,Sr=le,Cr=de,yr=dn,{abs:Or}=Math;function Nr(t){return[t[0]/2,t[1]/2]}const{abs:Er}=Math,Ir=Uo,kr=hr,Br=Nr,Pr=le,Tr=de,Ar=vn,zr=dn;function Dr(t){const{coeffs:[[n,e,o,[,r]],[c,i,s,[,u]]],errorBound:[[f,l,a],[p,h,d]]}=nr(t),v=o[1],g=e[1],m=n[1],x=s[1],w=i[1],b=c[1],_=Er(r),M=Er(v),S=Er(g),C=Er(m),y=Er(u),O=Er(x),N=Er(w),E=Er(b),I=Tr(n,s),k=m*x,B=f*O+C*d+2*Er(k),P=Tr(o,c),T=v*b,A=a*E+M*p+2*Er(T),z=Tr(n,i),D=m*w,L=f*N+C*h+2*Er(D),W=Tr(e,i),q=g*w,j=l*N+S*h+2*Er(q),F=Tr(e,c),H=g*b,Y=l*E+S*p+2*Er(H),R=Tr(n,n),X=m*m,Q=Er(X),V=f*C+C*f+2*Er(X),$=Tr(i,i),U=w*w,Z=h*N+N*h+2*Er(U),G=Tr(c,c),J=b*b,K=Er(J),tt=p*E+E*p+2*Er(J),nt=Tr(o,n),et=v*m,ot=a*C+M*f+2*Er(et),rt=Tr(e,e),ct=g*g,it=l*S+S*l+2*Er(ct),st=Tr(s,c),ut=x*b,ft=d*E+O*p+2*Er(ut),lt=Tr(i,c),at=Er(w*b),pt=h*E+N*p+2*at,ht=Tr(e,n),dt=Er(g*m),vt=l*C+S*f+2*dt,gt=Tr(n,c),mt=Er(m*b),xt=f*E+C*p+2*mt,wt=Pr(u,n),bt=m*u,_t=f*y+Er(bt),Mt=Pr(r,c),St=r*b,Ct=_*p+Er(St),yt=Pr(u,e),Ot=g*u,Nt=l*y+Er(Ot),Et=Pr(r,i),It=r*w,kt=_*h+Er(It),Bt=Tr(e,s),Pt=g*x,Tt=l*O+S*d+2*Er(Pt),At=Tr(o,i),zt=v*w,Dt=a*N+M*h+2*Er(zt),Lt=Pr(u,o),Wt=v*u,qt=a*y+Er(Wt),jt=Pr(r,s),Ft=r*x,Ht=_*d+Er(Ft),Yt=Ar(wt,Mt),Rt=_t+Ct+Er(bt-St),Xt=Ar(I,P),Qt=B+A+Er(k-T),Vt=Ar(z,F),$t=L+Y+Er(D-H),Ut=Ar(yt,Et),Zt=Nt+kt+Er(Ot-It),Gt=Ar(Bt,At),Jt=Tt+Dt+Er(Pt-zt),Kt=Ar(Lt,jt),tn=qt+Ht+Er(Wt-Ft),nn=Er(ut-U),en=Ar(st,$),on=ft+Z+nn,rn=Er(et-ct),cn=Ar(nt,rt),sn=ot+it+Er(et-ct),un=Er(H+D),fn=zr(F,z),ln=Y+L+Er(H+D),an=T+k,pn=Er(an),hn=zr(P,I),dn=A+B+pn,vn=kr(Xt),gn=2*Qt,mn=bt-St,xn=k-T,wn=D-H,bn=Ot-It,_n=Pt-zt,Mn=Wt-Ft,Sn=Er(mn),Cn=Er(xn),yn=Er(wn),On=Er(bn),Nn=Er(_n),En=Er(Mn),In=2*Cn,kn=Tr(Yt,Yt),Bn=Tr(Yt,Xt),Pn=Tr(Yt,Vt),Tn=Tr(Yt,Gt),An=Tr(Xt,Xt),zn=Tr(vn,Ut),Dn=Tr(Vt,Ut),Ln=Er(Dn[1]),Wn=Tr(Vt,Gt),qn=Tr(Vt,Kt),jn=Rt*Sn+Sn*Rt+2*Er(kn[1]),Fn=Rt*Cn+Sn*Qt+2*Er(Bn[1]),Hn=Rt*yn+Sn*$t+2*Er(Pn[1]),Yn=Rt*Nn+Sn*Jt+2*Er(Tn[1]),Rn=Qt*Cn+Cn*Qt+2*Er(An[1]),Xn=gn*On+In*Zt+2*Er(zn[1]),Qn=$t*On+yn*Zt+2*Ln,Vn=$t*Nn+yn*Jt+2*Er(Wn[1]),$n=$t*En+yn*tn+2*Er(qn[1]),Un=Tr(Ir(c),G),Zn=p*K+E*tt+2*Er(Un[1]),Gn=3*C,Jn=Pr(3,n),Kn=3*f+Gn,te=Tr(Jn,G),ne=Kn*K+Gn*tt+2*Er(te[1]),ee=3*E,oe=Pr(-3,c),re=3*p+ee,ce=Tr(oe,R),ie=re*Q+ee*V+2*Er(ce[1]),se=Tr(n,R),ue=f*Q+C*V+2*Er(se[1]),fe=-3*mn,le=3*Sn,ae=Pr(-3,Yt),pe=3*Rt+le,he=Ar(ae,Gt),de=Er(fe-_n),ve=pe+Jt+de,ge=Tr(he,G),me=ve*K+de*tt+2*Er(ge[1]),xe=Tr(Vt,en),we=$t*nn+yn*on+2*Er(xe[1]),be=zr(ge,xe),_e=me+we+Er(be[1]),Me=Tr(vn,lt),Se=gn*at+In*pt+2*Er(Me[1]),Ce=zr(be,Me),ye=_e+Se+Er(Ce[1]),Oe=Tr(he,R),Ne=ve*Q+de*V+2*Er(Oe[1]),Ee=Tr(Vt,cn),Ie=$t*rn+yn*sn+2*Er(Ee[1]),ke=zr(Oe,Ee),Be=Ne+Ie+Er(ke[1]),Pe=Tr(vn,ht),Te=gn*dt+In*vt+2*Er(Pe[1]),Ae=zr(ke,Pe),ze=Be+Te+Er(Ae[1]),De=Er(q-an/2),Le=Ar(W,Br(hn)),We=j+dn/2+Er(Le[1]),qe=Tr(he,gt),je=ve*mt+de*xt+2*Er(qe[1]),Fe=Tr(Xt,fn),He=Qt*un+Cn*ln+2*Er(Fe[1]),Ye=zr(qe,Fe),Re=je+He+Er(Ye[1]),Xe=Tr(Vt,Le),Qe=$t*De+yn*We+2*Er(Xe[1]),Ve=kr(Ar(Xe,Ye)),$e=2*(Qe+Re)+Er(Ve[1]),Ue=Pr(-3,kn),Ze=3*jn+Er(Ue[1]),Ge=Ar(Ue,kr(Tn)),Je=Ze+2*Yn+Er(Ge[1]),Ke=zr(zn,qn),to=Xn+$n+Er(Ke[1]),no=zr(Ge,Ke),eo=Er(no[1]),oo=Je+to+eo,ro=kr(Ar(Bn,Dn)),co=Er(ro[1]),io=2*(Fn+Qn)+co,so=Ar(Pn,An),uo=Hn+Rn+Er(so[1]),fo=zr(so,Wn),lo=fo[1],ao=Er(lo),po=uo+Vn+ao,ho=Tr(c,no),vo=p*eo+E*oo+2*Er(ho[1]),go=Tr(i,ro),mo=h*co+N*io+2*Er(go[1]),xo=Tr(s,fo),wo=d*ao+O*po+2*Er(xo[1]),bo=zr(go,xo),_o=mo+wo+Er(bo[1]),Mo=zr(ho,bo),So=vo+_o+Er(Mo[1]),Co=Tr(n,no),yo=f*eo+C*oo+2*Er(Co[1]),Oo=Tr(e,ro),No=l*co+S*io+2*Er(Oo[1]),Eo=Tr(o,fo),Io=a*ao+M*po+2*Er(Eo[1]),ko=zr(Oo,Eo),Bo=No+Io+Er(ko[1]),Po=Ir(zr(Co,ko)),To=yo+Bo+Er(Po[1]),Ao=Ar(zn,kn),zo=Xn+jn+Er(Ao[1]),Do=Ar(Ao,Tn),Lo=Er(Do[1]),Wo=zo+Yn+Lo,qo=Tr(fo,Kt),jo=ao*En+po*En+Er(qo[1]),Fo=Tr(Dn,Ut),Ho=Ln*Zt+Qn*On+Er(Fo[1]),Yo=Ar(qo,Fo),Ro=jo+Ho+Er(Yo[1]),Xo=Tr(Yt,Do),Qo=Rt*Lo+Sn*Wo+Er(Xo[1]),Vo=zr(Xo,Yo);return{coeffs:{vₓₓₓ:Un,vₓₓᵧ:te,vₓᵧᵧ:ce,vᵧᵧᵧ:se,vₓₓ:Ce,vₓᵧ:Ve,vᵧᵧ:Ae,vₓ:Mo,vᵧ:Po,v:Vo},errorBound:{vₓₓₓ_:Zn,vₓₓᵧ_:ne,vₓᵧᵧ_:ie,vᵧᵧᵧ_:ue,vₓₓ_:ye,vₓᵧ_:$e,vᵧᵧ_:ze,vₓ_:So,vᵧ_:To,v_:Qo+Ro+Er(Vo[1])}}}const Lr=hn,Wr=hr,qr=le,jr=de,Fr=dn,{abs:Hr}=Math,Yr=dn,Rr=le,Xr=de,{abs:Qr}=Math,Vr=hn,$r=hr,Ur=le,Zr=de,Gr=dn,{abs:Jr}=Math,Kr=hn,tc=hr,nc=le,ec=de,oc=dn,{abs:rc}=Math,cc=dn,ic=le,sc=de,{abs:uc}=Math,fc=hn,lc=hr,ac=le,pc=de,hc=dn,{abs:dc}=Math,vc=hn,gc=hr,mc=le,xc=de,wc=dn,{abs:bc}=Math,_c=dt,Mc=Nt,Sc=xt,Cc=Et;function yc(t){if(4===t.length)return Oc(t);if(3===t.length)return Nc(t);if(2===t.length)return Ec(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[n]],[[e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}function Oc(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[vt(_c(s,n),Sc(3,_c(o,c))),Sc(3,Cc(Mc(c,n),-2*o)),Sc(3,_c(o,n)),[n]].map(ce),[vt(_c(u,e),Sc(3,_c(r,i))),Sc(3,Cc(Mc(i,e),-2*r)),Sc(3,_c(r,e)),[e]].map(ce)]}function Nc(t){const[[n,e],[o,r],[c,i]]=t;return[[Cc(Mc(c,n),-2*o),_c(2*o,2*n),[n]],[Cc(Mc(i,e),-2*r),_c(2*r,2*e),[e]]]}function Ec(t){const[[n,e],[o,r]]=t;return[[_c(o,n),[n]],[_c(r,e),[e]]]}const Ic=xt,kc=_t;function Bc(t){const[[n,[e]],[o,[r]]]=t;if(0!==St(n)||0!==St(o))return{vₓ:kc(o),vᵧ:n,v:ce(Mt(Ic(e,o),Ic(r,n)))}}const Pc=xt,Tc=wt,Ac=vt;function zc(t,n){const e=Ec(t),[[o,[r]],[c,[i]]]=Ec(n),{vₓ:s,vᵧ:u,v:f}=Bc(e),l=Tc(o,s),a=Tc(c,u),p=Ac(l,a),h=Pc(r,s),d=Pc(i,u),v=Ac(h,d);return[p,Ac(v,f)].map(ce)}function Dc(t){const n=[];for(let e=0;e<t.length;e++)n.push(2*t[e]);return n}const Lc=xt,Wc=Dc,qc=Mt,jc=wt,Fc=_t;function Hc(t){const[[n,e,[o]],[r,c,[i]]]=t;if(0===St(n)&&0===St(r))return Bc([[e,[o]],[c,[i]]]);const s=jc(n,c),u=jc(e,r),f=Lc(i,n),l=Lc(o,r),a=Lc(i,e),p=Lc(o,c),h=jc(n,n),d=jc(n,r),v=jc(r,r),g=qc(s,u),m=qc(f,l),x=qc(a,p),w=ce(Fc(v)),b=ce(Wc(d)),_=ce(Fc(h)),M=jc(c,g),S=Wc(jc(r,m)),C=ce(qc(M,S)),y=Wc(jc(n,m)),O=jc(e,g),N=ce(qc(y,O)),E=jc(g,x),I=jc(m,m);return{vₓₓ:w,vₓᵧ:b,vᵧᵧ:_,vₓ:C,vᵧ:N,v:ce(qc(E,I))}}const Yc=_e,Rc=xt,Xc=wt,Qc=vt,Vc=Dc;function $c(t,n){const e=Nc(t);if(0===St(e[0][0])&&0===St(e[1][0]))return zc([t[0],t[2]],n);const[[o,[r]],[c,[i]]]=Ec(n),{vₓₓ:s,vₓᵧ:u,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=Hc(e),h=Yc(r,r),d=Rc(r,o),v=Yc(r,i),g=Rc(r,c),m=Xc(o,o),x=Rc(i,o),w=Xc(o,c),b=Yc(i,i),_=Rc(i,c),M=Xc(c,c),S=Xc(m,s),C=Xc(M,f),y=Xc(w,u),O=Qc(S,C),N=Qc(O,y),E=Xc(d,s),I=Xc(_,f),k=Qc(g,x),B=Xc(k,u),P=Vc(Qc(E,I)),T=Qc(P,B),A=Xc(o,l),z=Xc(c,a),D=Qc(A,z),L=Qc(T,D),W=Xc(h,s),q=Xc(v,u),j=Xc(b,f),F=Qc(W,q),H=Qc(F,j),Y=Rc(r,l),R=Rc(i,a),X=Qc(Y,R),Q=Qc(H,X);return[N,L,Qc(Q,p)].map(ce)}const Uc=wt,Zc=dt,Gc=mt,Jc=Nt;function Kc(t,n=!1){const[e,o,r,c]=t;if(!n){const[t,n]=e,[i,s]=o,[u,f]=r,[l,a]=c;return[e,[bt(Mt(Gc(Jc(i/4,u/4),3),Jc(t/4,l/4))),bt(Mt(Gc(Jc(s/4,f/4),3),Jc(n/4,a/4)))],c]}const i=function(t,n){const[[e,o],[r,c]]=t,[[i,s],[u,f]]=n,l=Zc(r,e),a=Zc(c,o),p=Zc(u,i),h=Zc(f,s),d=Mt(Uc(p,a),Uc(h,l));if(0===St(d))return;const v=Zc(i,e),g=Zc(s,o),m=bt(Mt(Uc(g,l),Uc(v,a)))/bt(d);return[i+m*bt(p),s+m*bt(h)]}([e,o],[c,r]);if(void 0!==i)return[e,i,c]}const ti=xt,ni=wt,ei=vt,oi=Mt,ri=_t,ci=Dc;function ii(t){const[[n,e,o,[r]],[c,i,s,[u]]]=t;if(0===St(n)&&0===St(c))return Hc([[e,o,[r]],[i,s,[u]]]);const f=ni(n,s),l=ni(o,c),a=ni(n,i),p=ni(e,i),h=ni(e,c),d=ni(n,n),v=ni(i,i),g=ni(c,c),m=ni(o,n),x=ni(e,e),w=ni(s,c),b=ni(i,c),_=ni(e,n),M=ni(n,c),S=ti(u,n),C=ti(r,c),y=ti(u,e),O=ti(r,i),N=ni(e,s),E=ni(o,i),I=ti(u,o),k=ti(r,s),B=oi(S,C),P=oi(f,l),T=oi(a,h),A=oi(y,O),z=oi(N,E),D=oi(I,k),L=oi(w,v),W=oi(m,x),q=ei(h,a),j=ei(l,f),F=ci(P),H=ni(B,B),Y=ni(B,P),R=ni(B,T),X=ni(B,z),Q=ni(P,P),V=ni(F,A),$=ni(T,A),U=ni(T,z),Z=ni(T,D),G=ce(ni(ri(c),g)),J=ce(ni(ti(3,n),g)),K=ce(ni(ti(-3,c),d)),tt=ce(ni(n,d)),nt=oi(ti(-3,B),z),et=ni(nt,g),ot=ni(T,L),rt=ei(et,ot),ct=ni(F,b),it=ce(ei(rt,ct)),st=ni(nt,d),ut=ni(T,W),ft=ei(st,ut),lt=ni(F,_),at=ce(ei(ft,lt)),pt=oi(p,function(t){const n=[];for(let e=0;e<t.length;e++)n.push(.5*t[e]);return n}(j)),ht=ni(nt,M),dt=ni(P,q),vt=ei(ht,dt),gt=ni(T,pt),mt=ce(ci(oi(gt,vt))),xt=ti(-3,H),wt=oi(xt,ci(X)),bt=ei(V,Z),_t=ei(wt,bt),Mt=ci(oi(Y,$)),Ct=oi(R,Q),yt=ei(Ct,U),Ot=ni(c,_t),Nt=ni(i,Mt),Et=ni(s,yt),It=ei(Nt,Et),kt=ce(ei(Ot,It)),Bt=ni(n,_t),Pt=ni(e,Mt),Tt=ni(o,yt),At=ei(Pt,Tt),zt=ce(ri(ei(Bt,At))),Dt=oi(V,H),Lt=oi(Dt,X),Wt=ni(yt,D),qt=ni($,A),jt=oi(Wt,qt),Ft=ni(B,Lt);return{vₓₓₓ:G,vₓₓᵧ:J,vₓᵧᵧ:K,vᵧᵧᵧ:tt,vₓₓ:it,vₓᵧ:mt,vᵧᵧ:at,vₓ:kt,vᵧ:zt,v:ce(ei(Ft,jt))}}const si=_e,ui=xt,fi=wt,li=vt,ai=Dc;function pi(t,n){const e=Oc(t);if(0===St(e[0][0])&&0===St(e[1][0]))return $c(Kc(t),n);const[[o,[r]],[c,[i]]]=Ec(n),{vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=ii(e),m=si(r,r),x=ui(r,o),w=si(r,i),b=ui(r,c),_=fi(o,o),M=ui(i,o),S=fi(o,c),C=si(i,i),y=ui(i,c),O=fi(c,c),N=ui(r,s),E=fi(si(3,r),s),I=ui(r,u),k=ui(i,u),B=ui(r,f),P=ui(i,f),T=ui(i,l),A=fi(si(3,i),l),z=fi(o,s),D=fi(o,f),L=fi(c,u),W=fi(c,l),q=li(z,L),j=li(D,W),F=fi(_,q),H=fi(O,j),Y=li(F,H),R=li(E,k),X=ai(li(I,P)),Q=li(B,A),V=li(R,a),$=li(X,p),U=li(Q,h),Z=fi(_,V),G=fi(S,$),J=fi(O,U),K=li(Z,G),tt=li(K,J),nt=ai(li(k,a)),et=ai(li(B,h)),ot=li(E,nt),rt=li(A,et),ct=li(I,p),it=li(P,p),st=fi(x,ot),ut=fi(y,rt),ft=fi(b,ct),lt=fi(M,it),at=fi(o,d),pt=fi(c,v),ht=li(st,ut),dt=li(ft,lt),vt=li(ht,dt),gt=li(at,pt),mt=li(vt,gt),xt=li(N,k),wt=li(T,B),bt=li(xt,a),_t=li(wt,h),Mt=fi(m,bt),Ct=fi(C,_t),yt=fi(w,p),Ot=li(Mt,Ct),Nt=li(Ot,yt),Et=ui(r,d),It=ui(i,v),kt=li(Et,It),Bt=li(Nt,kt);return[Y,tt,mt,li(Bt,g)].map(ce)}const hi=xt,di=wt,vi=vt;function gi(t,n){const e=Ec(t),[[o,r,[c]],[i,s,[u]]]=Nc(n);if(0===St(o)&&0===St(i))return zc(t,[n[0],n[2]]);const{vₓ:f,vᵧ:l,v:a}=Bc(e),p=di(o,f),h=di(i,l),d=vi(p,h),v=di(r,f),g=di(s,l),m=vi(v,g),x=hi(c,f),w=hi(u,l),b=vi(x,w);return[d,m,vi(b,a)].map(ce)}const mi=_e,xi=xt,wi=wt,bi=vt,_i=Dc;function Mi(t,n){const e=Nc(t);if(0===St(e[0][0])&&0===St(e[1][0]))return gi([t[0],t[2]],n);const[[o,r,[c]],[i,s,[u]]]=Nc(n);if(0===St(o)&&0===St(i))return $c(t,[n[0],n[2]]);const{vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d}=Hc(e),v=mi(c,c),g=xi(c,r),m=xi(c,o),x=mi(c,u),w=xi(c,s),b=xi(c,i),_=wi(r,r),M=wi(r,o),S=xi(u,r),C=wi(r,s),y=wi(r,i),O=wi(o,s),N=wi(o,o),E=xi(u,o),I=wi(o,i),k=mi(u,u),B=xi(u,s),P=xi(u,i),T=wi(s,s),A=wi(s,i),z=wi(i,i),D=wi(N,f),L=wi(I,l),W=wi(z,a),q=bi(D,L),j=bi(q,W),F=wi(M,f),H=wi(A,a),Y=bi(y,O),R=wi(Y,l),X=_i(bi(F,H)),Q=bi(X,R),V=bi(_i(m),_),$=bi(_i(P),T),U=bi(b,C),Z=bi(U,E),G=wi(V,f),J=wi($,a),K=wi(Z,l),tt=wi(o,p),nt=wi(i,h),et=bi(G,J),ot=bi(et,K),rt=bi(tt,nt),ct=bi(ot,rt),it=wi(g,f),st=wi(B,a),ut=bi(w,S),ft=wi(ut,l),lt=_i(bi(it,st)),at=wi(r,p),pt=wi(s,h),ht=bi(lt,ft),dt=bi(at,pt),vt=bi(ht,dt),gt=wi(v,f),mt=wi(x,l),xt=wi(k,a),wt=xi(c,p),bt=xi(u,h),_t=bi(gt,mt),Mt=bi(_t,xt),Ct=bi(wt,bt),yt=bi(Mt,Ct);return[j,Q,ct,vt,bi(yt,d)].map(ce)}const Si=_e,Ci=xt,yi=wt,Oi=vt,Ni=Dc;function Ei(t,n){const e=Oc(t);if(0===St(e[0][0])&&0===St(e[1][0]))return Mi(Kc(t),n);const[[o,r,[c]],[i,s,[u]]]=Nc(n);if(0===St(o)&&0===St(i))return pi(t,[n[0],n[2]]);const{vₓₓₓ:f,vₓₓᵧ:l,vₓᵧᵧ:a,vᵧᵧᵧ:p,vₓₓ:h,vₓᵧ:d,vᵧᵧ:v,vₓ:g,vᵧ:m,v:x}=ii(e),w=Si(c,c),b=Ci(c,r),_=Ci(c,o),M=Si(c,u),S=Ci(c,s),C=Ci(c,i),y=yi(r,r),O=yi(r,o),N=Ci(u,r),E=yi(r,s),I=yi(r,i),k=yi(o,s),B=yi(o,o),P=Ci(u,o),T=yi(o,i),A=Si(u,u),z=Ci(u,s),D=Ci(u,i),L=yi(s,s),W=yi(s,i),q=yi(i,i),j=yi(o,f),F=yi(o,a),H=yi(i,l),Y=yi(i,p),R=Oi(j,H),X=Oi(F,Y),Q=yi(B,R),V=yi(q,X),$=Oi(Q,V),U=Oi(_,y),Z=Oi(D,L),G=Oi(Ni(_),y),J=Oi(Ni(D),L),K=Oi(Ni(E),P),tt=Oi(Ni(E),C),nt=Oi(Ni(P),E),et=Oi(Ci(6,_),y),ot=Oi(Ci(6,D),L),rt=Oi(I,k),ct=Oi(C,P),it=Oi(Ni(N),S),st=Oi(Ni(S),N),ut=Oi(C,E),ft=Oi(ut,P),lt=Ci(3,B),at=Ci(3,q),pt=yi(lt,f),ht=yi(B,l),dt=Ni(yi(T,l)),vt=Ni(yi(T,a)),gt=yi(q,a),mt=yi(at,p),xt=Oi(pt,dt),wt=Oi(ht,vt),bt=Oi(xt,gt),_t=Oi(wt,mt),Mt=yi(r,bt),Ct=yi(s,_t),yt=Oi(Mt,Ct),Ot=yi(i,G),Nt=yi(i,tt),Et=yi(o,K),It=yi(o,J),kt=yi(Ci(3,o),U),Bt=yi(Ci(3,i),Z),Pt=Oi(Ot,Et),Tt=Oi(Nt,It),At=yi(kt,f),zt=yi(Bt,p),Dt=yi(Pt,l),Lt=yi(Tt,a),Wt=Oi(At,zt),qt=Oi(Dt,Lt),jt=yi(B,h),Ft=yi(q,v),Ht=yi(T,d),Yt=Oi(jt,Ft),Rt=Oi(Wt,qt),Xt=Oi(Yt,Ht),Qt=Oi(Rt,Xt),Vt=yi(r,et),$t=yi(s,ot),Ut=Ci(2*c,rt),Zt=yi(Ni(s),ct),Gt=yi(r,nt),Jt=yi(r,J),Kt=Oi(Ut,Gt),tn=Oi(Zt,Jt),nn=yi(W,v),en=yi(O,h),on=yi(rt,d),rn=Oi(nn,en),cn=yi(Vt,f),sn=yi(Kt,l),un=yi($t,p),fn=yi(tn,a),ln=Oi(cn,un),an=Oi(sn,fn),pn=Oi(ln,an),hn=Oi(Ni(rn),on),dn=Oi(pn,hn),vn=yi(Si(3,c),U),gn=yi(Si(3,u),Z),mn=Ci(c,tt),xn=Ci(c,J),wn=Ci(u,G),bn=Ci(u,K),_n=Oi(mn,wn),Mn=Oi(xn,bn),Sn=yi(vn,f),Cn=yi(gn,p),yn=yi(_n,l),On=yi(Mn,a),Nn=yi(G,h),En=yi(J,v),In=yi(ft,d),kn=yi(o,g),Bn=yi(i,m),Pn=Oi(Sn,Cn),Tn=Oi(yn,On),An=Oi(Nn,En),zn=Oi(Pn,Tn),Dn=Oi(An,In),Ln=Oi(kn,Bn),Wn=Oi(zn,Dn),qn=Oi(Wn,Ln),jn=yi(Si(3,c),b),Fn=yi(Si(3,u),z),Hn=Ci(c,it),Yn=Ci(u,st),Rn=yi(b,h),Xn=yi(z,v),Qn=yi(S,d),Vn=yi(N,d),$n=Ni(Oi(Rn,Xn)),Un=Oi(Qn,Vn),Zn=yi(r,g),Gn=yi(s,m),Jn=yi(jn,f),Kn=yi(Fn,p),te=yi(Hn,l),ne=yi(Yn,a),ee=Oi(Jn,Kn),oe=Oi(te,ne),re=Oi(ee,oe),ie=Oi($n,Un),se=Oi(Zn,Gn),ue=Oi(re,ie),fe=Oi(ue,se),le=Ci(c,f),ae=Ci(c,a),pe=Ci(u,l),he=Ci(u,p),de=Oi(le,pe),ve=Oi(ae,he),ge=Oi(de,h),me=Oi(ve,v),xe=yi(w,ge),we=yi(A,me),be=yi(M,d),_e=Ci(c,g),Me=Ci(u,m),Se=Oi(xe,we),Ce=Oi(Se,be),ye=Oi(_e,Me),Oe=Oi(Ce,ye);return[$,yt,Qt,dn,qn,fe,Oi(Oe,x)].map(ce)}const Ii=xt,ki=wt,Bi=vt;function Pi(t,n){const e=Ec(t),[[o,r,c,[i]],[s,u,f,[l]]]=Oc(n);if(0===St(o)&&0===St(s))return gi(t,Kc(n));const{vₓ:a,vᵧ:p,v:h}=Bc(e),d=ki(o,a),v=ki(s,p),g=Bi(d,v),m=ki(r,a),x=ki(u,p),w=Bi(m,x),b=ki(c,a),_=ki(f,p),M=Bi(b,_),S=Ii(i,a),C=Ii(l,p),y=Bi(S,C);return[g,w,M,Bi(y,h)].map(ce)}const Ti=_e,Ai=xt,zi=wt,Di=vt,Li=Dc;function Wi(t,n){const e=Nc(t);if(0===St(e[0][0])&&0===St(e[1][0]))return Pi([t[0],t[2]],n);const[[o,r,c,[i]],[s,u,f,[l]]]=Oc(n);if(0===St(o)&&0===St(s))return Mi(t,Kc(n));const{vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=Hc(e),m=Ti(i,i),x=Ai(i,c),w=Ai(i,r),b=Ai(i,o),_=Ti(i,l),M=Ai(i,f),S=Ai(i,u),C=Ai(i,s),y=zi(c,c),O=zi(c,r),N=zi(c,o),E=Ai(l,c),I=zi(c,f),k=zi(c,u),B=zi(c,s),P=zi(r,f),T=zi(r,r),A=zi(r,o),z=Ai(l,r),D=zi(r,u),L=zi(r,s),W=zi(o,o),q=Ai(l,o),j=zi(o,f),F=zi(o,u),H=zi(o,s),Y=Ti(l,l),R=Ai(l,f),X=Ai(l,u),Q=Ai(l,s),V=zi(f,f),$=zi(f,u),U=zi(s,s),Z=zi(u,u),G=zi(u,s),J=zi(f,s),K=zi(W,a),tt=zi(H,p),nt=zi(U,h),et=Di(K,tt),ot=Di(et,nt),rt=zi(A,a),ct=zi(G,h),it=Di(rt,ct),st=Di(L,F),ut=zi(st,p),ft=Di(Li(it),ut),lt=Di(Li(N),T),at=Di(Li(J),Z),pt=Di(B,D),ht=Di(pt,j),dt=zi(lt,a),vt=zi(at,h),gt=Di(dt,vt),mt=zi(ht,p),xt=Di(gt,mt),wt=Di(b,O),bt=Di(Q,$),_t=Di(C,k),Mt=Di(P,q),Ct=Di(_t,Mt),yt=zi(wt,a),Ot=zi(bt,h),Nt=Li(Di(yt,Ot)),Et=zi(Ct,p),It=zi(o,d),kt=zi(s,v),Bt=Di(It,kt),Pt=Di(Nt,Et),Tt=Di(Pt,Bt),At=Di(Li(w),y),zt=Di(Li(X),V),Dt=Di(S,I),Lt=Di(Dt,z),Wt=zi(At,a),qt=zi(zt,h),jt=zi(Lt,p),Ft=Di(Wt,qt),Ht=Di(Ft,jt),Yt=zi(r,d),Rt=zi(u,v),Xt=Di(Yt,Rt),Qt=Di(Ht,Xt),Vt=zi(x,a),$t=zi(R,h),Ut=Di(M,E),Zt=zi(Ut,p),Gt=Li(Di(Vt,$t)),Jt=Di(Gt,Zt),Kt=zi(c,d),tn=zi(f,v),nn=Di(Kt,tn),en=Di(Jt,nn),on=zi(m,a),rn=zi(_,p),cn=zi(Y,h),sn=Ai(i,d),un=Ai(l,v),fn=Di(on,rn),ln=Di(fn,cn),an=Di(sn,un),pn=Di(ln,an);return[ot,ft,xt,Tt,Qt,en,Di(pn,g)].map(ce)}const qi=_e,ji=xt,Fi=wt,Hi=vt,Yi=Dc,Ri=[[function(t,n){const{coeffs:{vₓ:e,vᵧ:o,v:r},errorBound:{v_:c}}=ur(t),[[i,[,s]],[u,[,f]]]=or(n),l=i[1],a=u[1],p=e[1],h=o[1],d=r[1],v=l*p,g=2*fr(v),m=pr(i,e),x=a*h,w=2*fr(x),b=pr(u,o),_=v+x,M=lr(m,b),S=g+w+fr(_),C=s*p,y=ar(s,e),O=fr(C),N=f*h,E=ar(f,o),I=fr(N),k=C+N,B=lr(y,E),P=O+I+fr(k);return{coeffs:[M,lr(B,r)],errBound:[S,P+c+fr(k+d)]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o,v:r},errorBound:{v_:c}}=ur(t),{coeffs:[[i,s,[,u]],[f,l,[,a]]],errorBound:[[p],[h]]}=er(n),d=e[1],v=o[1],g=r[1],m=Qr(d),x=Qr(v),w=s[1],b=i[1],_=l[1],M=f[1],S=b*d,C=Xr(i,e),y=p*m+2*Qr(S),O=M*v,N=Xr(f,o),E=h*x+2*Qr(O),I=S+O,k=Yr(C,N),B=y+E+Qr(I),P=w*d,T=Xr(s,e),A=2*Qr(P),z=_*v,D=Xr(l,o),L=2*Qr(z),W=P+z,q=Yr(T,D),j=A+L+Qr(W),F=Rr(u,e),H=u*d,Y=Qr(H),R=Rr(a,o),X=a*v,Q=Qr(X),V=H+X,$=Yr(F,R),U=Y+Q+Qr(V),Z=V+g;return{coeffs:[k,q,Yr($,r)],errBound:[B,j,U+c+Qr(Z)]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o,v:r},errorBound:{v_:c}}=ur(t),{coeffs:[[i,s,u,[,f]],[l,a,p,[,h]]],errorBound:[[d,v,g],[m,x,w]]}=nr(n),b=uc(e[1]),_=uc(o[1]),M=sc(i,e),S=d*b+2*uc(M[1]),C=sc(l,o),y=m*_+2*uc(C[1]),O=cc(M,C),N=S+y+uc(O[1]),E=sc(s,e),I=v*b+2*uc(E[1]),k=sc(a,o),B=x*_+2*uc(k[1]),P=cc(E,k),T=I+B+uc(P[1]),A=sc(u,e),z=g*b+2*uc(A[1]),D=sc(p,o),L=w*_+2*uc(D[1]),W=cc(A,D),q=z+L+uc(W[1]),j=ic(f,e),F=uc(j[1]),H=ic(h,o),Y=uc(H[1]),R=cc(j,H),X=F+Y+uc(R[1]),Q=cc(R,r);return{coeffs:[O,P,W,Q],errBound:[N,T,q,X+c+uc(Q[1])]}}],[function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:o,vᵧᵧ:r,vₓ:c,vᵧ:i,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=br(t),[[d,[,v]],[g,[,m]]]=or(n),x=e[1],w=o[1],b=r[1],_=c[1],M=i[1],S=s[1],C=Or(x),y=Or(w),O=Or(b),N=d[1],E=g[1],I=Or(v),k=Or(N),B=Or(m),P=Or(E),T=v*v,A=v*N,z=v*m,D=v*E,L=N*N,W=N*m,q=N*E,j=m*m,F=m*E,H=E*E,Y=_r(v,v),R=Sr(v,d),X=Or(A),Q=_r(v,m),V=Sr(v,g),$=Or(D),U=Or(L),Z=Cr(d,d),G=2*U,J=Sr(m,d),K=Or(W),tt=Or(q),nt=Cr(d,g),et=2*tt,ot=_r(m,m),rt=Sr(m,g),ct=Or(F),it=Or(H),st=Cr(g,g),ut=2*it,ft=L*x,lt=Cr(Z,e),at=G*C*U*u+2*Or(ft),pt=H*b,ht=Cr(st,r),dt=ut*O*it*l+2*Or(pt),vt=q*w,gt=Cr(nt,o),mt=et*y*tt*f+2*Or(vt),xt=ft+pt,wt=yr(lt,ht),bt=at+dt+Or(xt),_t=xt+vt,Mt=yr(wt,gt),St=bt+mt+Or(_t),Ct=A*x,yt=Cr(R,e),Ot=X*(C+u)+2*Or(Ct),Nt=F*b,Et=Cr(rt,r),It=ct*(O+l)+2*Or(Nt),kt=D+W,Bt=yr(V,J),Pt=$+K+Or(kt),Tt=kt*w,At=Cr(Bt,o),zt=Pt*y+Or(kt)*f+2*Or(Tt),Dt=2*(Ct+Nt),Lt=Mr(yr(yt,Et)),Wt=2*(Ot+It)+Or(Dt),qt=Dt+Tt,jt=yr(Lt,At),Ft=Wt+zt+Or(qt),Ht=N*_,Yt=Cr(d,c),Rt=k*a+2*Or(Ht),Xt=E*M,Qt=Cr(g,i),Vt=P*p+2*Or(Xt),$t=Ht+Xt,Ut=yr(Yt,Qt),Zt=Rt+Vt+Or($t),Gt=qt+$t,Jt=yr(jt,Ut),Kt=Ft+Zt+Or(Gt),tn=T*x,nn=Cr(Y,e),en=2*Or(tn),on=z*w,rn=Cr(Q,o),cn=2*Or(on),sn=j*b,un=Cr(ot,r),fn=2*Or(sn),ln=tn+on,an=yr(nn,rn),pn=en+cn+Or(ln),hn=ln+sn,dn=yr(an,un),vn=pn+fn+Or(hn),gn=v*_,mn=Sr(v,c),xn=I*a+Or(gn),wn=m*M,bn=Sr(m,i),_n=B*p+Or(wn),Mn=gn+wn,Sn=yr(mn,bn),Cn=xn+_n+Or(Mn),yn=hn+Mn,On=yr(dn,Sn),Nn=vn+Cn+Or(yn),En=yn+S;return{coeffs:[Mt,Jt,yr(On,s)],errBound:[St,Kt,Nn+h+Or(En)]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:o,vᵧᵧ:r,vₓ:c,vᵧ:i,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=br(t),{coeffs:[[d,v,[,g]],[m,x,[,w]]],errorBound:[[b],[_]]}=er(n),M=e[1],S=o[1],C=r[1],y=c[1],O=i[1],N=s[1],E=Jr(M),I=Jr(S),k=Jr(C),B=Jr(y),P=Jr(O),T=v[1],A=d[1],z=x[1],D=m[1],L=Jr(g),W=Jr(T),q=Jr(A),j=Jr(w),F=Jr(z),H=Jr(D),Y=g*g,R=g*T,X=g*A,Q=g*w,V=g*z,$=g*D,U=T*T,Z=T*A,G=T*w,J=T*z,K=T*D,tt=A*z,nt=A*A,et=A*w,ot=A*D,rt=w*w,ct=w*z,it=w*D,st=z*z,ut=z*D,ft=D*D,lt=Jr(Y),at=Jr(Q),pt=Jr(rt),ht=Vr(g,g),dt=Ur(g,v),vt=Jr(R),gt=Ur(g,d),mt=Jr(X),xt=Vr(g,w),wt=Ur(g,x),bt=Jr(V),_t=Ur(g,m),Mt=Jr($),St=Zr(v,v),Ct=2*Jr(U),yt=Zr(v,d),Ot=Jr(Z),Nt=W*b+2*Ot,Et=Ur(w,v),It=Jr(G),kt=Zr(v,x),Bt=2*Jr(J),Pt=Zr(v,m),Tt=W*_+2*Jr(K),At=Zr(d,x),zt=b*F+2*Jr(tt),Dt=Zr(d,d),Lt=Jr(nt),Wt=2*(b*q+Lt),qt=Ur(w,d),jt=Jr(et),Ft=Zr(d,m),Ht=Jr(ot),Yt=b*H+q*_+2*Ht,Rt=Vr(w,w),Xt=Ur(w,x),Qt=Jr(ct),Vt=Ur(w,m),$t=Jr(it),Ut=Zr(x,x),Zt=2*Jr(st),Gt=Zr(x,m),Jt=Jr(ut),Kt=F*_+2*Jt,tn=Zr(m,m),nn=Jr(ft),en=2*(_*H+nn),on=nt*M,rn=Zr(Dt,e),cn=Wt*E+Lt*u+2*Jr(on),sn=ot*S,un=Zr(Ft,o),fn=Yt*I+Ht*f+2*Jr(sn),ln=ft*C,an=Zr(tn,r),pn=en*k+nn*l+2*Jr(ln),hn=on+sn,dn=Gr(rn,un),vn=cn+fn+Jr(hn),gn=hn+ln,mn=Gr(dn,an),xn=vn+pn+Jr(gn),wn=Z*M,bn=Zr(yt,e),_n=Nt*E+Ot*u+2*Jr(wn),Mn=ut*C,Sn=Zr(Gt,r),Cn=Kt*k+Jt*l+2*Jr(Mn),yn=K+tt,On=Gr(Pt,At),Nn=Jr(yn),En=Tt+zt+Nn,In=yn*S,kn=Zr(On,o),Bn=En*I+Nn*f+2*Jr(In),Pn=2*(wn+Mn),Tn=$r(Gr(bn,Sn)),An=2*(_n+Cn)+Jr(Pn),zn=Pn+In,Dn=Gr(Tn,kn),Ln=An+Bn+Jr(zn),Wn=2*X+U,qn=Jr(Wn),jn=Gr($r(gt),St),Fn=2*mt+Ct+Jr(Wn),Hn=2*it+st,Yn=Jr(Hn),Rn=Gr($r(Vt),Ut),Xn=2*$t+Zt+Jr(Hn),Qn=$+J,Vn=(Jr(Qn),Gr(_t,kt)),$n=Mt+Bt+Jr(Qn),Un=Qn+et,Zn=Gr(Vn,qt),Gn=Jr(Un),Jn=$n+jt+Gn,Kn=Wn*M,te=Zr(jn,e),ne=Fn*E+qn*u+2*Jr(Kn),ee=Hn*C,oe=Zr(Rn,r),re=Xn*k+Yn*l+2*Jr(ee),ce=Un*S,ie=Zr(Zn,o),se=Jn*I+Gn*f+2*Jr(ce),ue=A*y,fe=Zr(d,c),le=b*B+q*a+Jr(ue),ae=D*O,pe=Zr(m,i),he=_*P+H*p+Jr(ae),de=Kn+ee,ve=Gr(te,oe),ge=ne+re+Jr(de),me=de+ce,xe=Gr(ve,ie),we=ge+se+Jr(me),be=ue+ae,_e=Gr(fe,pe),Me=le+he+Jr(be),Se=me+be,Ce=Gr(xe,_e),ye=we+Me+Jr(Se),Oe=R*M,Ne=Zr(dt,e),Ee=vt*(E+u)+2*Jr(Oe),Ie=ct*C,ke=Zr(Xt,r),Be=Qt*(k+l)+2*Jr(Ie),Pe=V+G,Te=Gr(wt,Et),Ae=Jr(Pe),ze=bt+It+Ae,De=Pe*S,Le=Zr(Te,o),We=ze*I+Ae*f+2*Jr(De),qe=2*(Oe+Ie),je=$r(Gr(Ne,ke)),Fe=2*(Ee+Be)+Jr(qe),He=T*y,Ye=Zr(v,c),Re=W*a+2*Jr(He),Xe=z*O,Qe=Zr(x,i),Ve=F*p+2*Jr(Xe),$e=qe+De,Ue=Gr(je,Le),Ze=Fe+We+Jr($e),Ge=He+Xe,Je=Gr(Ye,Qe),Ke=Re+Ve+Jr(Ge),to=$e+Ge,no=Gr(Ue,Je),eo=Ze+Ke+Jr(to),oo=Y*M,ro=Zr(ht,e),co=lt*u+2*Jr(oo),io=Q*S,so=Zr(xt,o),uo=at*f+2*Jr(io),fo=rt*C,lo=Zr(Rt,r),ao=pt*l+2*Jr(fo),po=g*y,ho=Ur(g,c),vo=L*a+Jr(po),go=w*O,mo=Ur(w,i),xo=j*p+Jr(go),wo=oo+io,bo=Gr(ro,so),_o=co+uo+Jr(wo),Mo=wo+fo,So=Gr(bo,lo),Co=_o+ao+Jr(Mo),yo=po+go,Oo=Gr(ho,mo),No=vo+xo+Jr(yo),Eo=Mo+yo,Io=Gr(So,Oo),ko=Co+No+Jr(Eo),Bo=Eo+N;return{coeffs:[mn,Dn,Ce,no,Gr(Io,s)],errBound:[xn,Ln,ye,eo,ko+h+Jr(Bo)]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:o,vᵧᵧ:r,vₓ:c,vᵧ:i,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=br(t),{coeffs:[[d,v,g,[,m]],[x,w,b,[,_]]],errorBound:[[M,S,C],[y,O,N]]}=nr(n),E=e[1],I=o[1],k=r[1],B=c[1],P=i[1],T=s[1],A=dc(E),z=dc(I),D=dc(k),L=dc(B),W=dc(P),q=g[1],j=v[1],F=d[1],H=b[1],Y=w[1],R=x[1],X=dc(m),Q=dc(q),V=dc(j),$=dc(F),U=dc(_),Z=dc(H),G=dc(Y),J=dc(R),K=m*m,tt=m*q,nt=m*j,et=m*F,ot=m*_,rt=m*H,ct=m*Y,it=m*R,st=q*q,ut=q*j,ft=q*F,lt=q*_,at=q*H,pt=q*Y,ht=q*R,dt=j*H,vt=j*j,gt=j*F,mt=j*_,xt=j*Y,wt=j*R,bt=F*F,_t=F*_,Mt=F*H,St=F*Y,Ct=F*R,yt=_*_,Ot=_*H,Nt=_*Y,Et=_*R,It=H*H,kt=H*Y,Bt=R*R,Pt=Y*Y,Tt=Y*R,At=H*R,zt=fc(m,m),Dt=dc(K),Lt=ac(m,g),Wt=dc(tt),qt=X*C+Wt,jt=ac(m,v),Ft=X*S+dc(nt),Ht=ac(m,d),Yt=X*M+dc(et),Rt=fc(m,_),Xt=dc(ot),Qt=ac(m,b),Vt=X*N+dc(rt),$t=ac(m,w),Ut=X*O+dc(ct),Zt=ac(m,x),Gt=X*y+dc(it),Jt=pc(g,g),Kt=C*Q+Q*C+2*dc(st),tn=pc(g,v),nn=C*V+Q*S+2*dc(ut),en=pc(g,d),on=C*$+Q*M+2*dc(ft),rn=ac(_,g),cn=U*C+dc(lt),sn=pc(g,b),un=C*Z+Q*N+2*dc(at),fn=pc(g,w),ln=C*G+Q*O+2*dc(pt),an=pc(g,x),pn=C*J+Q*y+2*dc(ht),hn=pc(v,b),dn=S*Z+V*N+2*dc(dt),vn=pc(v,v),gn=S*V+V*S+2*dc(vt),mn=pc(v,d),xn=dc(gt),wn=S*$+V*M+2*xn,bn=ac(_,v),_n=U*S+dc(mt),Mn=pc(v,w),Sn=S*G+V*O+2*dc(xt),Cn=pc(v,x),yn=S*J+V*y+2*dc(wt),On=pc(d,d),Nn=dc(bt),En=M*$+$*M+2*Nn,In=ac(_,d),kn=U*M+dc(_t),Bn=pc(d,b),Pn=M*Z+$*N+2*dc(Mt),Tn=pc(d,w),An=M*G+$*O+2*dc(St),zn=pc(d,x),Dn=dc(Ct),Ln=M*J+$*y+2*Dn,Wn=fc(_,_),qn=dc(yt),jn=ac(_,b),Fn=dc(Ot),Hn=U*N+Fn,Yn=ac(_,w),Rn=U*O+dc(Nt),Xn=ac(_,x),Qn=U*y+dc(Et),Vn=pc(b,b),$n=N*Z+Z*N+2*dc(It),Un=pc(b,w),Zn=N*G+Z*O+2*dc(kt),Gn=pc(x,x),Jn=dc(Bt),Kn=y*J+J*y+2*Jn,te=pc(w,w),ne=O*G+G*O+2*dc(Pt),ee=pc(w,x),oe=dc(Tt),re=O*J+G*y+2*oe,ce=pc(b,x),ie=N*J+Z*y+2*dc(At),se=bt*E,ue=pc(On,e),fe=En*A+Nn*u+2*dc(se),le=Ct*I,ae=pc(zn,o),pe=Ln*z+Dn*f+2*dc(le),he=Bt*k,de=pc(Gn,r),ve=Kn*D+Jn*l+2*dc(he),ge=se+le,me=hc(ue,ae),xe=fe+pe+dc(ge),we=ge+he,be=hc(me,de),_e=xe+ve+dc(we),Me=gt*E,Se=pc(mn,e),Ce=wn*A+xn*u+2*dc(Me),ye=Tt*k,Oe=pc(ee,r),Ne=re*D+oe*l+2*dc(ye),Ee=Me+ye,Ie=hc(Se,Oe),ke=Ce+Ne+dc(Ee),Be=wt+St,Pe=hc(Cn,Tn),Te=dc(Be),Ae=yn+An+Te,ze=Be*I,De=pc(Pe,o),Le=Ae*z+Te*f+2*dc(ze),We=2*Ee+ze,qe=hc(lc(Ie),De),je=2*ke+Le+dc(We),Fe=2*ft+vt,He=hc(lc(en),vn),Ye=dc(Fe),Re=2*on+gn+dc(Fe),Xe=2*At+Pt,Qe=hc(lc(ce),te),Ve=dc(Xe),$e=2*ie+ne+dc(Xe),Ue=ht+xt,Ze=hc(an,Mn),Ge=pn+Sn+dc(Ue),Je=Ue+Mt,Ke=hc(Ze,Bn),to=dc(Je),no=Ge+Pn+to,eo=Fe*E,oo=pc(He,e),ro=Re*A+Ye*u+2*dc(eo),co=Xe*k,io=pc(Qe,r),so=$e*D+Ve*l+2*dc(co),uo=eo+co,fo=hc(oo,io),lo=ro+so+dc(uo),ao=Je*I,po=pc(Ke,o),ho=no*z+to*f+2*dc(ao),vo=uo+ao,go=hc(fo,po),mo=lo+ho+dc(vo),xo=et+ut,wo=hc(Ht,tn),bo=dc(xo),_o=Yt+nn+bo,Mo=Et+kt,So=hc(Xn,Un),Co=dc(Mo),yo=Qn+Zn+Co,Oo=it+pt,No=hc(Zt,fn),Eo=Gt+ln+dc(Oo),Io=dt+_t,ko=hc(hn,In),Bo=dn+kn+dc(Io),Po=Oo+Io,To=hc(No,ko),Ao=dc(Po),zo=Eo+Bo+Ao,Do=xo*E,Lo=pc(wo,e),Wo=_o*A+bo*u+2*dc(Do),qo=Mo*k,jo=pc(So,r),Fo=yo*D+Co*l+2*dc(qo),Ho=2*(Do+qo),Yo=lc(hc(Lo,jo)),Ro=2*(Wo+Fo)+dc(Ho),Xo=Po*I,Qo=pc(To,o),Vo=zo*z+Ao*f+2*dc(Xo),$o=F*B,Uo=pc(d,c),Zo=M*L+$*a+2*dc($o),Go=R*P,Jo=pc(x,i),Ko=y*W+J*p+2*dc(Go),tr=$o+Go,er=hc(Uo,Jo),or=Zo+Ko+dc(tr),rr=Ho+Xo,cr=hc(Yo,Qo),ir=Ro+Vo+dc(rr),sr=rr+tr,ur=hc(cr,er),fr=ir+or+dc(sr),lr=2*nt+st,ar=hc(lc(jt),Jt),pr=dc(lr),hr=2*Ft+Kt+pr,dr=2*Nt+It,vr=hc(lc(Yn),Vn),gr=dc(dr),mr=2*Rn+$n+gr,xr=ct+at,wr=hc($t,sn),_r=Ut+un+dc(xr),Mr=xr+mt,Sr=hc(wr,bn),Cr=dc(Mr),yr=_r+_n+Cr,Or=lr*E,Nr=pc(ar,e),Er=hr*A+pr*u+2*dc(Or),Ir=dr*k,kr=pc(vr,r),Br=mr*D+gr*l+2*dc(Ir),Pr=Mr*I,Tr=pc(Sr,o),Ar=yr*z+Cr*f+2*dc(Pr),zr=Or+Ir,Dr=hc(Nr,kr),Lr=Er+Br+dc(zr),Wr=zr+Pr,qr=hc(Dr,Tr),jr=Lr+Ar+dc(Wr),Fr=j*B,Hr=pc(v,c),Yr=S*L+V*a+2*dc(Fr),Rr=Y*P,Xr=pc(w,i),Qr=O*W+G*p+2*dc(Rr),Vr=Fr+Rr,$r=hc(Hr,Xr),Ur=Yr+Qr+dc(Vr),Zr=Wr+Vr,Gr=hc(qr,$r),Jr=jr+Ur+dc(Zr),Kr=tt*E,tc=pc(Lt,e),nc=qt*A+Wt*u+2*dc(Kr),ec=Ot*k,oc=pc(jn,r),rc=Hn*D+Fn*l+2*dc(ec),cc=rt+lt,ic=hc(Qt,rn),sc=dc(cc),uc=Vt+cn+sc,vc=cc*I,gc=pc(ic,o),mc=uc*z+sc*f+2*dc(vc),xc=2*(Kr+ec),wc=lc(hc(tc,oc)),bc=2*(nc+rc)+dc(xc),_c=xc+vc,Mc=hc(wc,gc),Sc=bc+mc+dc(_c),Cc=q*B,yc=pc(g,c),Oc=C*L+Q*a+2*dc(Cc),Nc=H*P,Ec=pc(b,i),Ic=N*W+Z*p+2*dc(Nc),kc=Cc+Nc,Bc=hc(yc,Ec),Pc=Oc+Ic+dc(kc),Tc=_c+kc,Ac=hc(Mc,Bc),zc=Sc+Pc+dc(Tc),Dc=K*E,Lc=pc(zt,e),Wc=Dt*u+2*dc(Dc),qc=ot*I,jc=pc(Rt,o),Fc=Xt*f+2*dc(qc),Hc=yt*k,Yc=pc(Wn,r),Rc=qn*l+2*dc(Hc),Xc=m*B,Qc=ac(m,c),Vc=X*a+dc(Xc),$c=_*P,Uc=ac(_,i),Zc=U*p+dc($c),Gc=Dc+qc,Jc=hc(Lc,jc),Kc=Wc+Fc+dc(Gc),ti=Gc+Hc,ni=hc(Jc,Yc),ei=Kc+Rc+dc(ti),oi=Xc+$c,ri=hc(Qc,Uc),ci=Vc+Zc+dc(oi),ii=ti+oi,si=hc(ni,ri),ui=ei+ci+dc(ii),fi=ii+T;return{coeffs:[be,qe,go,ur,Gr,Ac,hc(si,s)],errBound:[_e,je,mo,fr,Jr,zc,ui+h+dc(fi)]}}],[function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:o,vₓᵧᵧ:r,vᵧᵧᵧ:c,vₓₓ:i,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:w,vᵧ_:b,v_:_}}=Dr(t),[[M,[,S]],[C,[,y]]]=or(n),O=e[1],N=o[1],E=r[1],I=c[1],k=i[1],B=s[1],P=u[1],T=f[1],A=l[1],z=a[1],D=M[1],L=C[1],W=Hr(S),q=Hr(D),j=Hr(y),F=Hr(L),H=S*S,Y=S*D,R=S*y,X=S*L,Q=D*D,V=D*y,$=D*L,U=y*y,Z=y*L,G=L*L,J=Lr(S,S),K=qr(S,M),tt=Hr(Y),nt=Lr(S,y),et=qr(S,C),ot=Hr(X),rt=jr(M,M),ct=2*Hr(Q),it=qr(y,M),st=Hr(V),ut=jr(M,C),ft=2*Hr($),lt=Lr(y,y),at=qr(y,C),pt=Hr(Z),ht=jr(C,C),dt=2*Hr(G),vt=Hr(H),gt=Hr(Y),mt=Hr(R),xt=Hr(X),wt=Hr(Q),bt=Hr(V),_t=Hr($),Mt=Hr(U),St=Hr(Z),Ct=Hr(G),yt=S*O,Ot=qr(S,e),Nt=W*p+Hr(yt),Et=3*S,It=Lr(3,S),kt=Hr(Et),Bt=Et*O,Pt=jr(It,e),Tt=kt*p+2*Hr(Bt),At=S*N,zt=qr(S,o),Dt=W*h+Hr(At),Lt=y*N,Wt=qr(y,o),qt=j*h+Hr(Lt),jt=S*E,Ft=qr(S,r),Ht=W*d+Hr(jt),Yt=y*E,Rt=qr(y,r),Xt=j*d+Hr(Yt),Qt=y*I,Vt=qr(y,c),$t=j*v+Hr(Qt),Ut=3*y,Zt=Lr(3,y),Gt=Hr(Ut),Jt=Ut*I,Kt=jr(Zt,c),tn=Gt*v+2*Hr(Jt),nn=D*O,en=jr(M,e),on=q*p+2*Hr(nn),rn=D*E,cn=jr(M,r),sn=q*d+2*Hr(rn),un=L*N,fn=jr(C,o),ln=F*h+2*Hr(un),an=L*I,pn=jr(C,c),hn=F*v+2*Hr(an),dn=nn+un,vn=Fr(en,fn),gn=Hr(dn),mn=on+ln+gn,xn=rn+an,wn=Fr(cn,pn),bn=Hr(xn),_n=sn+hn+bn,Mn=Q*dn,Sn=jr(rt,vn),Cn=ct*gn+wt*mn+2*Hr(Mn),yn=G*xn,On=jr(ht,wn),Nn=dt*bn+Ct*_n+2*Hr(yn),En=Mn+yn,In=Fr(Sn,On),kn=Cn+Nn+Hr(En),Bn=Bt+Lt,Pn=Fr(Pt,Wt),Tn=Tt+qt+Hr(Bn),An=2*(At+Yt),zn=Wr(Fr(zt,Rt)),Dn=2*(Dt+Xt)+Hr(An),Ln=jt+Jt,Wn=Fr(Ft,Kt),qn=Ht+tn+Hr(Ln),jn=Bn+k,Fn=Fr(Pn,i),Hn=Hr(jn),Yn=Tn+g+Hn,Rn=An+B,Xn=Fr(zn,s),Qn=Hr(Rn),Vn=Dn+m+Qn,$n=Ln+P,Un=Fr(Wn,u),Zn=Hr($n),Gn=qn+x+Zn,Jn=Q*jn,Kn=jr(rt,Fn),te=ct*Hn+wt*Yn+2*Hr(Jn),ne=$*Rn,ee=jr(ut,Xn),oe=ft*Qn+_t*Vn+2*Hr(ne),re=G*$n,ce=jr(ht,Un),ie=dt*Zn+Ct*Gn+2*Hr(re),se=Jn+ne,ue=Fr(Kn,ee),fe=te+oe+Hr(se),le=se+re,ae=Fr(ue,ce),pe=fe+ie+Hr(le),he=2*(Lt+k),de=Wr(Fr(Wt,i)),ve=2*(qt+g)+Hr(he),ge=2*(jt+P),me=Wr(Fr(Ft,u)),xe=2*(Ht+x)+Hr(ge),we=Bt+he,be=Fr(Pt,de),_e=Hr(we),Me=Tt+ve+_e,Se=Jt+ge,Ce=Fr(Kt,me),ye=Hr(Se),Oe=tn+xe+ye,Ne=At+B,Ee=Fr(zt,s),Ie=Hr(Ne),ke=Dt+m+Ie,Be=Yt+B,Pe=Fr(Rt,s),Te=Hr(Be),Ae=Xt+m+Te,ze=Y*we,De=jr(K,be),Le=tt*_e+gt*Me+2*Hr(ze),We=Z*Se,qe=jr(at,Ce),je=pt*ye+St*Oe+2*Hr(We),Fe=X*Ne,He=jr(et,Ee),Ye=ot*Ie+xt*ke+2*Hr(Fe),Re=V*Be,Xe=jr(it,Pe),Qe=st*Te+bt*Ae+2*Hr(Re),Ve=D*T,$e=jr(M,f),Ue=q*w+2*Hr(Ve),Ze=L*A,Ge=jr(C,l),Je=F*b+2*Hr(Ze),Ke=ze+We,to=Fr(De,qe),no=Le+je+Hr(Ke),eo=Fe+Re,oo=Fr(He,Xe),ro=Ye+Qe+Hr(eo),co=Ke+eo,io=Fr(to,oo),so=no+ro+Hr(co),uo=Ve+Ze,fo=Fr($e,Ge),lo=Ue+Je+Hr(uo),ao=co+uo,po=Fr(io,fo),ho=so+lo+Hr(ao),vo=yt+Lt,go=Fr(Ot,Wt),mo=Nt+qt+Hr(vo),xo=Qt+jt,wo=Fr(Vt,Ft),bo=$t+Ht+Hr(xo),_o=vo+k,Mo=Fr(go,i),So=mo+g+Hr(_o),Co=xo+P,yo=Fr(wo,u),Oo=bo+x+Hr(Co),No=H*_o,Eo=jr(J,Mo),Io=vt*So+2*Hr(No),ko=U*Co,Bo=jr(lt,yo),Po=Mt*Oo+2*Hr(ko),To=R*B,Ao=jr(nt,s),zo=mt*m+2*Hr(To),Do=No+ko,Lo=Fr(Eo,Bo),Wo=Io+Po+Hr(Do),qo=Do+To,jo=Fr(Lo,Ao),Fo=Wo+zo+Hr(qo),Ho=S*T,Yo=qr(S,f),Ro=W*w+Hr(Ho),Xo=y*A,Qo=qr(y,l),Vo=j*b+Hr(Xo),$o=Ho+Xo,Uo=Fr(Yo,Qo),Zo=Ro+Vo+Hr($o),Go=qo+$o,Jo=Fr(jo,Uo),Ko=Fo+Zo+Hr(Go),tr=Go+z;return{coeffs:[In,ae,po,Fr(Jo,a)],errBound:[kn,pe,ho,Ko+_+Hr(tr)]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:o,vₓᵧᵧ:r,vᵧᵧᵧ:c,vₓₓ:i,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:w,vᵧ_:b,v_:_}}=Dr(t),{coeffs:[[M,S,[,C]],[y,O,[,N]]],errorBound:[[E],[I]]}=er(n),k=e[1],B=o[1],P=r[1],T=c[1],A=i[1],z=s[1],D=u[1],L=f[1],W=l[1],q=a[1],j=rc(k),F=rc(B),H=rc(P),Y=rc(T),R=rc(A),X=rc(D),Q=rc(z),V=rc(L),$=rc(W),U=S[1],Z=M[1],G=O[1],J=y[1],K=rc(C),tt=rc(U),nt=rc(Z),et=rc(N),ot=rc(G),rt=rc(J),ct=C*C,it=C*U,st=C*Z,ut=C*N,ft=C*G,lt=C*J,at=U*U,pt=U*Z,ht=U*N,dt=U*G,vt=U*J,gt=Z*G,mt=Z*Z,xt=Z*N,wt=Z*J,bt=N*N,_t=N*G,Mt=N*J,St=G*G,Ct=G*J,yt=J*J,Ot=Kr(C,C),Nt=nc(C,S),Et=rc(it),It=nc(C,M),kt=K*E+rc(st),Bt=Kr(C,N),Pt=nc(C,O),Tt=rc(ft),At=nc(C,y),zt=K*I+rc(lt),Dt=ec(S,S),Lt=2*rc(at),Wt=ec(S,M),qt=tt*E+2*rc(pt),jt=nc(N,S),Ft=rc(ht),Ht=ec(S,O),Yt=2*rc(dt),Rt=ec(S,y),Xt=tt*I+2*rc(vt),Qt=ec(M,O),Vt=E*ot+2*rc(gt),$t=ec(M,M),Ut=2*(E*nt+rc(mt)),Zt=nc(N,M),Gt=et*E+rc(xt),Jt=ec(M,y),Kt=E*rt+nt*I+2*rc(wt),tn=Kr(N,N),nn=nc(N,O),en=rc(_t),on=nc(N,y),rn=et*I+rc(Mt),cn=ec(O,O),sn=2*rc(St),un=ec(O,y),fn=ot*I+2*rc(Ct),ln=ec(y,y),an=2*(I*rt+rc(yt)),pn=rc(ct),hn=rc(it),dn=rc(ut),vn=rc(ft),gn=rc(pt),mn=rc(mt),xn=rc(wt),wn=rc(ht),bn=rc(bt),_n=rc(_t),Mn=rc(Ct),Sn=rc(yt),Cn=ec(M,e),yn=Z*k,On=E*j+nt*p+2*rc(yn),Nn=ec(M,r),En=Z*P,In=E*H+nt*d+2*rc(En),kn=ec(y,o),Bn=J*B,Pn=I*F+rt*h+2*rc(Bn),Tn=ec(y,c),An=J*T,zn=I*Y+rt*v+2*rc(An),Dn=yn+Bn,Ln=oc(Cn,kn),Wn=rc(Dn),qn=On+Pn+Wn,jn=En+An,Fn=oc(Nn,Tn),Hn=rc(jn),Yn=In+zn+Hn,Rn=mt*Dn,Xn=ec($t,Ln),Qn=Ut*Wn+mn*qn+2*rc(Rn),Vn=yt*jn,$n=ec(ln,Fn),Un=an*Hn+Sn*Yn+2*rc(Vn),Zn=Rn+Vn,Gn=oc(Xn,$n),Jn=Qn+Un+rc(Zn),Kn=st+at,te=oc(It,Dt),ne=rc(Kn),ee=kt+Lt+ne,oe=Mt+St,re=oc(on,cn),ce=rc(oe),ie=rn+sn+ce,se=2*st+at,ue=rc(se),fe=oc(tc(It),Dt),le=2*kt+Lt+ue,ae=2*Mt+St,pe=oc(tc(on),cn),he=rc(ae),de=2*rn+sn+he,ve=2*dt+xt,ge=oc(tc(Ht),Zt),me=rc(ve),xe=2*Yt+Gt+me,we=2*dt+lt,be=oc(tc(Ht),At),_e=rc(we),Me=2*Yt+zt+_e,Se=2*xt+dt,Ce=oc(tc(Zt),Ht),ye=2*Gt+Yt+rc(Se),Oe=6*st+at,Ne=6*st,Ee=nc(6,It),Ie=6*kt+rc(Ne),ke=oc(Ee,Dt),Be=Ie+Lt+rc(Ne+at),Pe=6*Mt+St,Te=6*Mt,Ae=nc(6,on),ze=6*rn+rc(Te),De=oc(Ae,cn),Le=ze+sn+rc(Te+St),We=vt+gt,qe=oc(Rt,Qt),je=rc(We),Fe=Xt+Vt+je,He=lt+xt,Ye=oc(At,Zt),Re=zt+Gt+rc(He),Xe=2*ht+ft,Qe=oc(tc(jt),Pt),Ve=2*Ft+Tt+rc(Xe),$e=2*ft+ht,Ue=oc(tc(Pt),jt),Ze=2*Tt+Ft+rc($e),Ge=lt+dt,Je=oc(At,Ht),Ke=zt+Yt+rc(Ge),to=Ge+xt,no=oc(Je,Zt),eo=rc(to),oo=Ke+Gt+eo,ro=3*mt,co=nc(3,$t),io=3*Ut+rc(ro),so=rc(ro),uo=3*yt,fo=nc(3,ln),lo=3*an+rc(uo),ao=rc(uo),po=ro*k,ho=ec(co,e),vo=io*j+so*p+2*rc(po),go=mt*B,mo=ec($t,o),xo=Ut*F+mn*h+2*rc(go),wo=2*wt*B,bo=tc(ec(Jt,o)),_o=2*(Kt*F+xn*h+rc(wo)),Mo=2*wt*P,So=tc(ec(Jt,r)),Co=2*(Kt*H+xn*d+rc(Mo)),yo=yt*P,Oo=ec(ln,r),No=an*H+Sn*d+2*rc(yo),Eo=uo*T,Io=ec(fo,c),ko=lo*Y+ao*v+2*rc(Eo),Bo=po+wo,Po=oc(ho,bo),To=vo+_o+rc(Bo),Ao=go+Mo,zo=oc(mo,So),Do=xo+Co+rc(Ao),Lo=Bo+yo,Wo=oc(Po,Oo),qo=To+No+rc(Lo),jo=Ao+Eo,Fo=oc(zo,Io),Ho=Do+ko+rc(jo),Yo=U*Lo,Ro=ec(S,Wo),Xo=tt*qo+rc(Yo),Qo=G*jo,Vo=ec(O,Fo),$o=ot*Ho+rc(Qo),Uo=Yo+Qo,Zo=oc(Ro,Vo),Go=Xo+$o+rc(Uo),Jo=J*se,Ko=ec(y,fe),tr=I*ue+rt*le+2*rc(Jo),nr=J*we,or=ec(y,be),rr=I*_e+rt*Me+2*rc(nr),cr=Z*ve,ir=ec(M,ge),sr=E*me+nt*xe+2*rc(cr),ur=Z*ae,fr=ec(M,pe),lr=E*he+nt*de+2*rc(ur),ar=3*Z,pr=nc(3,M),hr=rc(ar),dr=3*E+hr,vr=ar*Kn,gr=ec(pr,te),mr=rc(vr),xr=dr*ne+hr*ee+mr,wr=3*J,br=nc(3,y),_r=rc(wr),Mr=3*I+_r,Sr=wr*oe,Cr=ec(br,re),yr=rc(Sr),Or=Mr*ce+_r*ie+yr,Nr=Jo+cr,Er=oc(Ko,ir),Ir=rc(Nr),kr=tr+sr+Ir,Br=nr+ur,Pr=oc(or,fr),Tr=rc(Br),Ar=rr+lr+Tr,zr=vr*k,Lr=ec(gr,e),Wr=xr*j+mr*p+2*rc(zr),qr=Sr*T,jr=ec(Cr,c),Fr=Or*Y+yr*v+2*rc(qr),Hr=Nr*B,Yr=ec(Er,o),Rr=kr*F+Ir*h+2*rc(Hr),Xr=Br*P,Qr=ec(Pr,r),Vr=Ar*H+Tr*d+2*rc(Xr),$r=zr+qr,Ur=oc(Lr,jr),Zr=Wr+Fr+rc($r),Gr=Hr+Xr,Jr=oc(Yr,Qr),cc=Rr+Vr+rc(Gr),ic=mt*A,sc=ec($t,i),uc=Ut*R+mn*g+2*rc(ic),fc=yt*D,lc=ec(ln,u),ac=an*X+Sn*x+2*rc(fc),pc=wt*z,hc=ec(Jt,s),dc=Kt*Q+xn*m+2*rc(pc),vc=ic+fc,gc=oc(sc,lc),mc=uc+ac+rc(vc),xc=$r+Gr,wc=oc(Ur,Jr),bc=Zr+cc+rc(xc),_c=vc+pc,Mc=oc(gc,hc),Sc=mc+dc+rc(_c),Cc=xc+_c,yc=oc(wc,Mc),Oc=bc+Sc+rc(Cc),Nc=U*Oe,Ec=ec(S,ke),Ic=tt*Be+2*rc(Nc),kc=2*Ic,Bc=G*Pe,Pc=ec(O,De),Tc=ot*Le+2*rc(Bc),Ac=2*Tc,zc=2*C*We,Dc=nc(2*C,qe),Lc=2*K*Fe+rc(zc),Wc=2*G*He,qc=ec(tc(O),Ye),jc=2*ot*Re+2*rc(Wc),Fc=U*Se,Hc=ec(S,Ce),Yc=tt*ye+2*rc(Fc),Rc=U*ae,Xc=ec(S,pe),Qc=tt*de+2*rc(Rc),Vc=zc+Fc,$c=oc(Dc,Hc),Uc=Lc+Yc+rc(Vc),Zc=Lc+Yc+Uc,Gc=Wc+Rc,Jc=oc(qc,Xc),Kc=jc+Qc+rc(Gc),ti=jc+Qc+Kc,ni=Ct*D,ei=ec(un,u),oi=fn*X+Mn*x+2*rc(ni),ri=pt*A,ci=ec(Wt,i),ii=qt*R+gn*g+2*rc(ri),si=We*z,ui=ec(qe,s),fi=Fe*Q+je*m+2*rc(si),li=ni+ri,ai=oc(ei,ci),pi=oi+ii+rc(li),hi=Nc*k,di=ec(Ec,e),vi=kc*j+Ic*p+2*rc(hi),gi=Vc*B,mi=ec($c,o),xi=Zc*F+Uc*h+2*rc(gi),wi=Bc*T,bi=ec(Pc,c),_i=Ac*Y+Tc*v+2*rc(wi),Mi=Gc*P,Si=ec(Jc,r),Ci=ti*H+Kc*d+2*rc(Mi),yi=hi+wi,Oi=oc(di,bi),Ni=vi+_i+rc(yi),Ei=gi+Mi,Ii=oc(mi,Si),ki=xi+Ci+rc(Ei),Bi=yi+Ei,Pi=oc(Oi,Ii),Ti=Ni+ki+rc(Bi),Ai=2*li+si,zi=oc(tc(ai),ui),Di=2*pi+fi+rc(Ai),Li=Bi+Ai,Wi=oc(Pi,zi),qi=Ti+Di+rc(Li),ji=3*C,Fi=rc(ji),Hi=Kr(3,C),Yi=ji*Kn,Ri=ec(Hi,te),Xi=rc(Yi),Qi=Fi*ee+2*rc(Yi),Vi=3*N,$i=rc(Vi),Ui=Kr(3,N),Zi=Vi*oe,Gi=ec(Ui,re),Ji=rc(Zi),Ki=$i*ie+2*rc(Zi),ts=C*we,ns=nc(C,be),es=K*Me+rc(ts),os=C*ae,rs=nc(C,pe),cs=K*de+rc(os),is=N*se,ss=nc(N,fe),us=et*le+rc(is),fs=N*ve,ls=nc(N,ge),as=et*xe+rc(fs),ps=ts+is,hs=oc(ns,ss),ds=rc(ps),vs=es+us+ds,gs=os+fs,ms=oc(rs,ls),xs=rc(gs),ws=cs+as+xs,bs=Yi*k,_s=ec(Ri,e),Ms=Qi*j+Xi*p+2*rc(bs),Ss=Zi*T,Cs=ec(Gi,c),ys=Ki*Y+Ji*v+2*rc(Ss),Os=ps*B,Ns=ec(hs,o),Es=vs*F+ds*h+2*rc(Os),Is=gs*P,ks=ec(ms,r),Bs=ws*H+xs*d+2*rc(Is),Ps=se*A,Ts=ec(fe,i),As=le*R+ue*g+2*rc(Ps),zs=ae*D,Ds=ec(pe,u),Ls=de*X+he*x+2*rc(zs),Ws=to*z,qs=ec(no,s),js=oo*Q+eo*m+2*rc(Ws),Fs=Z*L,Hs=ec(M,f),Ys=E*V+nt*w+2*rc(Fs),Rs=J*W,Xs=ec(y,l),Qs=I*$+rt*b+2*rc(Rs),Vs=bs+Ss,$s=oc(_s,Cs),Us=Ms+ys+rc(Vs),Zs=Os+Is,Gs=oc(Ns,ks),Js=Es+Bs+rc(Zs),Ks=Ps+zs,tu=oc(Ts,Ds),nu=As+Ls+rc(Ks),eu=Vs+Zs,ou=oc($s,Gs),ru=Us+Js+rc(eu),cu=Ks+Ws,iu=oc(tu,qs),su=nu+js+rc(cu),uu=Fs+Rs,fu=oc(Hs,Xs),lu=Ys+Qs+rc(uu),au=eu+cu,pu=oc(ou,iu),hu=ru+su+rc(au),du=au+uu,vu=oc(pu,fu),gu=hu+lu+rc(du),mu=ji*it,xu=ec(Hi,Nt),wu=rc(mu),bu=Fi*Et+2*wu,_u=Vi*_t,Mu=ec(Ui,nn),Su=rc(_u),Cu=$i*en+2*Su,yu=C*Xe,Ou=nc(C,Qe),Nu=rc(yu),Eu=K*Ve+rc(yu),Iu=N*$e,ku=nc(N,Ue),Bu=rc(Iu),Pu=et*Ze+rc(Iu),Tu=it*A,Au=ec(Nt,i),zu=Et*R+hn*g+2*rc(Tu),Du=_t*D,Lu=ec(nn,u),Wu=en*X+_n*x+2*rc(Du),qu=ft*z,ju=ec(Pt,s),Fu=Tt*Q+vn*m+2*rc(qu),Hu=ht*z,Yu=ec(jt,s),Ru=Ft*Q+wn*m+2*rc(Hu),Xu=2*(Tu+Du),Qu=tc(oc(Au,Lu)),Vu=2*(zu+Wu)+rc(Xu),$u=qu+Hu,Uu=oc(ju,Yu),Zu=Fu+Ru+rc($u),Gu=U*L,Ju=ec(S,f),Ku=tt*w+2*rc(Gu),tf=G*W,nf=ec(O,l),ef=ot*b+2*rc(tf),of=mu*k,rf=ec(xu,e),cf=bu*j+wu*p+2*rc(of),sf=_u*T,uf=ec(Mu,c),ff=Cu*Y+Su*v+2*rc(sf),lf=yu*B,af=ec(Ou,o),pf=Eu*F+Nu*h+2*rc(lf),hf=Iu*P,df=ec(ku,r),vf=Pu*H+Bu*d+2*rc(hf),gf=of+sf,mf=oc(rf,uf),xf=cf+ff+rc(gf),wf=lf+hf,bf=oc(af,df),_f=pf+vf+rc(wf),Mf=gf+wf,Sf=oc(mf,bf),Cf=xf+_f+rc(Mf),yf=Xu+$u,Of=oc(Qu,Uu),Nf=Vu+Zu+rc(yf),Ef=Gu+tf,If=oc(Ju,nf),kf=Ku+ef+rc(Ef),Bf=Mf+yf,Pf=oc(Sf,Of),Tf=Cf+Nf+rc(Bf),Af=Bf+Ef,zf=oc(Pf,If),Df=Tf+kf+rc(Af),Lf=C*k,Wf=nc(C,e),qf=K*p+rc(Lf),jf=C*P,Ff=nc(C,r),Hf=K*d+rc(jf),Yf=N*B,Rf=nc(N,o),Xf=et*h+rc(Yf),Qf=N*T,Vf=nc(N,c),$f=et*v+rc(Qf),Uf=Lf+Yf,Zf=oc(Wf,Rf),Gf=qf+Xf+rc(Uf),Jf=jf+Qf,Kf=oc(Ff,Vf),tl=Hf+$f+rc(Jf),nl=Uf+A,el=oc(Zf,i),ol=Gf+g+rc(nl),rl=Jf+D,cl=oc(Kf,u),il=tl+x+rc(rl),sl=ct*nl,ul=ec(Ot,el),fl=pn*ol+2*rc(sl),ll=bt*rl,al=ec(tn,cl),pl=bn*il+2*rc(ll),hl=ut*z,dl=ec(Bt,s),vl=dn*m+2*rc(hl),gl=C*L,ml=nc(C,f),xl=K*w+rc(gl),wl=N*W,bl=nc(N,l),_l=et*b+rc(wl),Ml=sl+ll,Sl=oc(ul,al),Cl=fl+pl+rc(Ml),yl=Ml+hl,Ol=oc(Sl,dl),Nl=Cl+vl+rc(yl),El=gl+wl,Il=oc(ml,bl),kl=xl+_l+rc(El),Bl=yl+El,Pl=oc(Ol,Il),Tl=Nl+kl+rc(Bl),Al=Bl+q;return{coeffs:[Gn,Zo,yc,Wi,vu,zf,oc(Pl,a)],errBound:[Jn,Go,Oc,qi,gu,Df,Tl+_+rc(Al)]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:o,vₓᵧᵧ:r,vᵧᵧᵧ:c,vₓₓ:i,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:w,vᵧ_:b,v_:_}}=Dr(t),{coeffs:[[M,S,C,[,y]],[O,N,E,[,I]]],errorBound:[[k,B,P],[T,A,z]]}=nr(n),D=e[1],L=o[1],W=r[1],q=c[1],j=i[1],F=s[1],H=u[1],Y=f[1],R=l[1],X=a[1],Q=bc(D),V=bc(L),$=bc(W),U=bc(q),Z=bc(j),G=bc(F),J=bc(H),K=bc(Y),tt=bc(R),nt=(bc(X),C[1]),et=S[1],ot=M[1],rt=E[1],ct=N[1],it=O[1],st=bc(y),ut=bc(nt),ft=bc(et),lt=bc(ot),at=bc(I),pt=bc(rt),ht=bc(ct),dt=bc(it),vt=y*y,gt=y*nt,mt=y*et,xt=y*ot,wt=y*I,bt=y*rt,_t=y*ct,Mt=y*it,St=nt*nt,Ct=nt*et,yt=nt*ot,Ot=nt*I,Nt=nt*rt,Et=nt*ct,It=nt*it,kt=et*rt,Bt=et*et,Pt=et*ot,Tt=et*I,At=et*ct,zt=et*it,Dt=ot*ot,Lt=ot*I,Wt=ot*rt,qt=ot*ct,jt=ot*it,Ft=I*I,Ht=I*rt,Yt=I*ct,Rt=I*it,Xt=rt*rt,Qt=rt*ct,Vt=it*it,$t=ct*ct,Ut=ct*it,Zt=rt*it,Gt=vc(y,y),Jt=mc(y,C),Kt=st*P+bc(gt),tn=mc(y,S),nn=st*B+bc(mt),en=mc(y,M),on=st*k+bc(xt),rn=vc(y,I),cn=mc(y,E),sn=st*z+bc(bt),un=mc(y,N),fn=st*A+bc(_t),ln=mc(y,O),an=st*T+bc(Mt),pn=xc(C,C),hn=bc(St),dn=2*(P*ut+hn),vn=xc(C,S),gn=P*ft+ut*B+2*bc(Ct),mn=xc(C,M),xn=P*lt+ut*k+2*bc(yt),wn=mc(I,C),bn=at*P+bc(Ot),_n=xc(C,E),Mn=P*pt+ut*z+2*bc(Nt),Sn=xc(C,N),Cn=P*ht+ut*A+2*bc(Et),yn=xc(C,O),On=P*dt+ut*T+2*bc(It),Nn=xc(S,E),En=B*pt+ft*z+2*bc(kt),In=xc(S,S),kn=bc(Bt),Bn=2*(B*ft+kn),Pn=xc(S,M),Tn=B*lt+ft*k+2*bc(Pt),An=mc(I,S),zn=at*B+bc(Tt),Dn=xc(S,N),Ln=B*ht+ft*A+2*bc(At),Wn=xc(S,O),qn=B*dt+ft*T+2*bc(zt),jn=xc(M,M),Fn=2*(k*lt+Dt),Hn=mc(I,M),Yn=at*k+bc(Lt),Rn=xc(M,E),Xn=k*pt+lt*z+2*bc(Wt),Qn=xc(M,N),Vn=bc(qt),$n=k*ht+lt*A+2*Vn,Un=xc(M,O),Zn=k*dt+lt*T+2*bc(jt),Gn=vc(I,I),Jn=mc(I,E),Kn=at*z+bc(Ht),te=mc(I,N),ne=at*A+bc(Yt),ee=mc(I,O),oe=at*T+bc(Rt),re=xc(E,E),ce=bc(Xt),ie=2*(z*pt+ce),se=xc(E,N),ue=z*ht+pt*A+2*bc(Qt),fe=xc(O,O),le=2*(T*dt+bc(Vt)),ae=xc(N,N),pe=bc($t),he=2*(A*ht+pe),de=xc(N,O),ve=A*dt+ht*T+2*bc(Ut),ge=xc(E,O),me=bc(Zt),xe=z*dt+pt*T+2*me,we=bc(vt),be=bc(gt),_e=bc(Pt),Me=bc(Dt),Se=bc(jt),Ce=bc(wt),ye=bc(Ft),Oe=bc(Ht),Ne=bc(Ut),Ee=bc(Vt),Ie=ot*Dt,ke=xc(M,jn),Be=lt*Me,Pe=k*Me+lt*Fn+2*Be,Te=ot*Vt,Ae=xc(M,fe),ze=lt*Ee,De=k*Ee+lt*le+2*ze,Le=it*Dt,We=xc(O,jn),qe=dt*Me,je=T*Me+dt*Fn+2*qe,Fe=it*Vt,He=xc(O,fe),Ye=dt*Ee,Re=T*Ee+dt*le+2*Ye,Xe=Ie*D,Qe=xc(ke,e),Ve=Pe*Q+Be*p+2*bc(Xe),$e=Te*W,Ue=xc(Ae,r),Ze=De*$+ze*d+2*bc($e),Ge=Le*L,Je=xc(We,o),Ke=je*V+qe*h+2*bc(Ge),to=Fe*q,no=xc(He,c),eo=Re*U+Ye*v+2*bc(to),oo=Xe+$e,ro=wc(Qe,Ue),co=Ve+Ze+bc(oo),io=Ge+to,so=wc(Je,no),uo=Ke+eo+bc(io),fo=oo+io,lo=wc(ro,so),ao=co+uo+bc(fo),po=2*zt+qt,ho=bc(po),vo=wc(gc(Wn),Qn),go=2*qn+$n+ho,mo=2*qt+zt,xo=bc(mo),wo=wc(gc(Qn),Wn),bo=2*$n+qn+bc(mo),_o=ot*po,Mo=bc(_o),So=xc(M,vo),Co=k*ho+lt*go+2*Mo,yo=it*mo,Oo=bc(yo),No=xc(O,wo),Eo=T*xo+dt*bo+2*Oo,Io=et*Dt,ko=bc(Io),Bo=xc(S,jn),Po=B*Me+ft*Fn+2*ko,To=ct*Vt,Ao=bc(To),zo=xc(N,fe),Do=A*Ee+ht*le+2*Ao,Lo=D*Io,Wo=xc(e,Bo),qo=Po*Q+Q*Po+2*bc(Lo),jo=q*To,Fo=xc(c,zo),Ho=Do*U+U*Do+2*bc(jo),Yo=L*_o,Ro=xc(o,So),Xo=Co*V+V*Co+2*bc(Yo),Qo=W*yo,Vo=xc(r,No),$o=Eo*$+$*Eo+2*bc(Qo),Uo=Yo+Qo,Zo=wc(Ro,Vo),Go=Xo+$o+bc(Uo),Jo=3*(Lo+jo),Ko=mc(3,wc(Wo,Fo)),tr=3*(qo+Ho)+2*bc(Jo),er=Uo+Jo,or=wc(Zo,Ko),rr=Go+tr+bc(er),cr=nt*jt,ir=xc(C,Un),sr=P*Se+ut*Zn+2*bc(cr),ur=rt*Dt,fr=xc(E,jn),lr=z*Me+pt*Fn+2*bc(ur),ar=et*Ut,pr=xc(S,de),hr=B*Ne+ft*ve+2*bc(ar),dr=nt*Vt,vr=xc(C,fe),gr=P*Ee+ut*le+2*bc(dr),mr=et*qt,xr=xc(S,Qn),wr=B*Vn+ft*$n+2*bc(mr),br=it*Bt,_r=xc(O,In),Mr=T*kn+dt*Bn+2*bc(br),Sr=ot*Zt,Cr=xc(M,ge),yr=k*me+lt*xe+2*bc(Sr),Or=ct*qt,Nr=xc(N,Qn),Er=A*Vn+ht*$n+2*bc(Or),Ir=cr+mr,kr=wc(ir,xr),Br=sr+wr+bc(Ir),Pr=ur+br,Tr=wc(fr,_r),Ar=lr+Mr+bc(Pr),zr=ar+Sr,Lr=wc(pr,Cr),Wr=hr+yr+bc(zr),qr=dr+Or,jr=wc(vr,Nr),Fr=gr+Er+bc(qr),Hr=yt+Bt,Yr=wc(mn,In),Rr=bc(Hr),Xr=xn+Bn+Rr,Qr=Zt+$t,Vr=bc(Qr),$r=wc(ge,ae),Ur=xe+he+Vr,Zr=2*Ir+Pr,Gr=wc(gc(kr),Tr),Jr=bc(Zr),Kr=2*Br+Ar+Jr,tc=2*zr+qr,nc=wc(gc(Lr),jr),ec=bc(tc),oc=2*Wr+Fr+ec,rc=L*Zr,cc=xc(o,Gr),ic=h*Jr+V*Kr+2*bc(rc),sc=W*tc,uc=xc(r,nc),fc=d*ec+$*oc+2*bc(sc),lc=ot*Hr,ac=xc(M,Yr),pc=bc(lc),hc=k*Rr+lt*Xr+2*pc,dc=it*Qr,_c=xc(O,$r),Mc=bc(dc),Sc=T*Vr+dt*Ur+2*Mc,Cc=D*lc,yc=xc(e,ac),Oc=p*pc+Q*hc+2*bc(Cc),Nc=q*dc,Ec=xc(c,_c),Ic=v*Mc+U*Sc+2*bc(Nc),kc=rc+sc,Bc=wc(cc,uc),Pc=ic+fc+bc(kc),Tc=3*(Cc+Nc),Ac=mc(3,wc(yc,Ec)),zc=3*(Oc+Ic)+2*bc(Tc),Dc=kc+Tc,Lc=wc(Bc,Ac),Wc=Pc+zc+bc(Dc),qc=zt+qt,jc=wc(Wn,Qn),Fc=bc(qc),Hc=qn+$n+Fc,Yc=ct*Bt,Rc=xc(N,In),Xc=A*kn+ht*Bn+2*bc(Yc),Qc=2*nt*qc,Vc=gc(xc(C,jc)),$c=2*(P*Fc+ut*Hc+2*bc(Qc)),Uc=Yc+Qc,Zc=wc(Rc,Vc),Gc=Xc+$c+bc(Uc),Jc=2*(Mt+kt),Kc=gc(wc(ln,Nn)),ti=2*(an+En)+bc(Jc),ni=Jc+Lt,ei=bc(ni),oi=wc(Kc,Hn),ri=ti+Yn+ei,ci=ot*ni,ii=xc(M,oi),si=k*ei+lt*ri+2*bc(ci),ui=Uc+ci,fi=wc(Zc,ii),li=bc(ui),ai=Gc+si+li,pi=et*$t,hi=xc(S,ae),di=B*pe+ft*he+2*bc(pi),vi=2*rt*qc,gi=gc(xc(E,jc)),mi=2*(z*Fc+pt*Hc+bc(vi)),xi=pi+vi,wi=wc(hi,gi),bi=di+mi+bc(xi),_i=2*(Et+Lt),Mi=gc(wc(Sn,Hn)),Si=2*(Cn+Yn)+bc(_i),Ci=_i+Mt,yi=wc(Mi,ln),Oi=bc(Ci),Ni=Si+an+Oi,Ei=it*Ci,Ii=xc(O,yi),ki=T*Oi+dt*Ni+2*bc(Ei),Bi=xi+Ei,Pi=wc(wi,Ii),Ti=bc(Bi),Ai=bi+ki+Ti,zi=et*Bt,Di=xc(S,In),Li=B*kn+ft*Bn+2*bc(zi),Wi=2*Ct+xt,qi=wc(gc(vn),en),ji=bc(Wi),Fi=2*gn+on+ji,Hi=3*ot,Yi=mc(3,M),Ri=bc(Hi),Xi=3*k+Ri,Qi=Hi*Wi,Vi=xc(Yi,qi),$i=Xi*ji+Ri*Fi+2*bc(Qi),Ui=zi+Qi,Zi=wc(Di,Vi),Gi=bc(Ui),Ji=Li+$i+Gi,Ki=ct*$t,ts=xc(N,ae),ns=A*pe+ht*he+2*bc(Ki),es=2*Qt+Rt,os=wc(gc(se),ee),rs=bc(es),cs=2*ue+oe+rs,is=3*it,ss=mc(3,O),us=bc(is),fs=3*T+us,ls=is*es,as=xc(ss,os),ps=fs*rs+us*cs+2*bc(ls),hs=Ki+ls,ds=wc(ts,as),vs=bc(hs),gs=ns+ps+vs,ms=L*ui,xs=xc(o,fi),ws=h*li+V*ai+2*bc(ms),bs=W*Bi,_s=xc(r,Pi),Ms=d*Ti+$*Ai+2*bc(bs),Ss=ms+bs,Cs=wc(xs,_s),ys=ws+Ms+bc(Ss),Os=D*Ui,Ns=xc(e,Zi),Es=p*Gi+Q*Ji+2*bc(Os),Is=q*hs,ks=xc(c,ds),Bs=v*vs+U*gs+2*bc(Is),Ps=Os+Is,Ts=wc(Ns,ks),As=Es+Bs+bc(Ps),zs=j*Dt,Ds=xc(jn,i),Ls=Fn*Z+Me*g+2*bc(zs),Ws=H*Vt,qs=xc(fe,u),js=le*J+Ee*x+2*bc(Ws),Fs=zs+Ws,Hs=wc(Ds,qs),Ys=Ls+js+bc(Fs),Rs=F*jt,Xs=xc(Un,s),Qs=Zn*G+Se*m+2*bc(Rs),Vs=Ss+Ps,$s=wc(Cs,Ts),Us=ys+As+bc(Vs),Zs=Fs+Rs,Gs=wc(Hs,Xs),Js=Ys+Qs+bc(Zs),Ks=Vs+Zs,tu=wc($s,Gs),nu=Us+Js+bc(Ks),eu=At+Wt,ou=wc(Dn,Rn),ru=bc(eu),cu=Ln+Xn+ru,iu=It+At,su=wc(yn,Dn),uu=bc(iu),fu=On+Ln+uu,lu=y*qc,au=mc(y,jc),pu=st*Hc+bc(lu),hu=I*qc,du=mc(I,jc),vu=at*Hc+bc(hu),gu=nt*eu,mu=xc(C,ou),xu=P*ru+ut*cu+2*bc(gu),wu=rt*iu,bu=xc(E,su),_u=z*uu+pt*fu+2*bc(wu),Mu=2*Lt+kt,Su=wc(gc(Hn),Nn),Cu=bc(Mu),yu=2*Yn+En+Cu,Ou=2*Mt+Et,Nu=wc(gc(ln),Sn),Eu=bc(Ou),Iu=2*an+Cn+Eu,ku=it*St,Bu=xc(O,pn),Pu=T*hn+dt*dn+2*bc(ku),Tu=ot*Xt,Au=xc(M,re),zu=k*ce+lt*ie+2*bc(Tu),Du=et*Mu,Lu=xc(S,Su),Wu=B*Cu+ft*yu+2*bc(Du),qu=ct*Ou,ju=xc(N,Nu),Fu=A*Eu+ht*Iu+2*bc(qu),Hu=2*(lu+gu),Yu=gc(wc(au,mu)),Ru=2*(pu+xu)+bc(Hu),Xu=2*(hu+wu),Qu=gc(wc(du,bu)),Vu=2*(vu+_u)+bc(Xu),$u=2*y*Pt,Uu=gc(mc(y,Pn)),Zu=2*st*Tn+bc($u),Gu=2*I*Ut,Ju=gc(mc(I,de)),Ku=2*at*ve+bc(Gu),tf=nt*Hr,nf=xc(C,Yr),ef=P*Rr+ut*Xr+2*bc(tf),of=rt*Qr,rf=xc(E,$r),cf=z*Vr+pt*Ur+2*bc(of),sf=j*Pt,uf=xc(Pn,i),ff=Tn*Z+_e*g+2*bc(sf),lf=H*Ut,af=xc(de,u),pf=ve*J+Ne*x+2*bc(lf),hf=Hu+ku,df=wc(Yu,Bu),vf=bc(hf),gf=Ru+Pu+vf,mf=Xu+Tu,xf=wc(Qu,Au),wf=bc(mf),bf=Vu+zu+wf,_f=hf+Du,Mf=wc(df,Lu),Sf=bc(_f),Cf=gf+Wu+Sf,yf=mf+qu,Of=wc(xf,ju),Nf=bc(yf),Ef=bf+Fu+Nf,If=$u+tf,kf=wc(Uu,nf),Bf=bc(If),Pf=Zu+ef+Bf,Tf=Gu+of,Af=wc(Ju,rf),zf=bc(Tf),Df=Ku+cf+zf,Lf=2*(sf+lf),Wf=gc(wc(uf,af)),qf=2*(ff+pf)+bc(Lf),jf=L*_f,Ff=xc(o,Mf),Hf=h*Sf+V*Cf+2*bc(jf),Yf=W*yf,Rf=xc(r,Of),Xf=d*Nf+$*Ef+2*bc(Yf),Qf=D*If,Vf=xc(e,kf),$f=p*Bf+Q*Pf+2*bc(Qf),Uf=q*Tf,Zf=xc(c,Af),Gf=v*zf+U*Df+2*bc(Uf),Jf=jf+Yf,Kf=wc(Ff,Rf),tl=Hf+Xf+bc(Jf),nl=3*(Qf+Uf),el=mc(3,wc(Vf,Zf)),ol=3*($f+Gf)+2*bc(nl),rl=F*qc,cl=xc(s,jc),il=m*Fc+G*Hc+2*bc(rl),sl=Jf+nl,ul=wc(Kf,el),fl=tl+ol+bc(sl),ll=rl+Lf,al=wc(cl,Wf),pl=il+qf+bc(ll),hl=sl+ll,dl=wc(ul,al),vl=fl+pl+bc(hl),gl=It+eu,ml=wc(yn,ou),xl=bc(gl),wl=On+cu+xl,bl=2*yt+Bt,_l=wc(gc(mn),In),Ml=bc(bl),Sl=2*xn+Bn+Ml,Cl=2*Zt+$t,yl=wc(gc(ge),ae),Ol=bc(Cl),Nl=2*xe+he+Ol,El=2*y*gl,Il=mc(2*y,ml),kl=2*st*wl+bc(El),Bl=2*I*gl,Pl=mc(2*I,ml),Tl=2*at*wl+bc(Bl),Al=Et+2*kt,zl=wc(Sn,gc(Nn)),Dl=bc(Al),Ll=Cn+2*En+Dl,Wl=kt+2*Et,ql=wc(Nn,gc(Sn)),jl=bc(Wl),Fl=En+2*Cn+jl,Hl=I*bl,Yl=mc(I,_l),Rl=at*Sl+bc(Hl),Xl=y*Cl,Ql=mc(y,yl),Vl=st*Nl+bc(Xl),$l=nt*Al,Ul=xc(C,zl),Zl=P*Dl+ut*Ll+2*bc($l),Gl=rt*Wl,Jl=xc(E,ql),Kl=z*jl+pt*Fl+2*bc(Gl),ta=y*bl,na=mc(y,_l),ea=st*Sl+bc(ta),oa=I*Cl,ra=mc(I,yl),ca=at*Nl+bc(oa),ia=et*St,sa=xc(S,pn),ua=B*hn+ft*dn+2*bc(ia),fa=ct*Xt,la=xc(N,re),aa=A*ce+ht*ie+2*bc(fa),pa=El+Hl,ha=wc(Il,Yl),da=kl+Rl+bc(pa),va=Bl+Xl,ga=wc(Pl,Ql),ma=Tl+Vl+bc(va),xa=pa+$l,wa=wc(ha,Ul),ba=bc(xa),_a=da+Zl+ba,Ma=va+Gl,Sa=wc(ga,Jl),Ca=bc(Ma),ya=ma+Kl+Ca,Oa=ta+ia,Na=wc(na,sa),Ea=bc(Oa),Ia=ea+ua+Ea,ka=oa+fa,Ba=wc(ra,la),Pa=bc(ka),Ta=ca+aa+Pa,Aa=L*xa,za=xc(o,wa),Da=h*ba+V*_a+2*bc(Aa),La=W*Ma,Wa=xc(r,Sa),qa=d*Ca+$*ya+2*bc(La),ja=D*Oa,Fa=xc(e,Na),Ha=p*Ea+Q*Ia+2*bc(ja),Ya=q*ka,Ra=xc(c,Ba),Xa=v*Pa+U*Ta+2*bc(Ya),Qa=ja+Ya,Va=bc(Qa),$a=wc(Fa,Ra),Ua=Ha+Xa+Va,Za=Aa+La,Ga=wc(za,Wa),Ja=Da+qa+bc(Za),Ka=Za+3*Qa,tp=wc(Ga,mc(3,$a)),np=Ja+3*(Ua+Va)+bc(Ka),ep=F*gl,op=xc(s,ml),rp=m*xl+G*wl+2*bc(ep),cp=j*bl,ip=xc(i,_l),sp=g*Ml+Z*Sl+2*bc(cp),up=ep+cp,fp=wc(op,ip),lp=rp+sp+bc(up),ap=H*Cl,pp=xc(u,yl),hp=x*Ol+J*Nl+2*bc(ap),dp=up+ap,vp=wc(fp,pp),gp=lp+hp+bc(dp),mp=Ka+dp,xp=wc(tp,vp),wp=np+gp+bc(mp),bp=Et+kt,_p=wc(Sn,Nn),Mp=Cn+En+bc(bp),Sp=Lt+Mt,Cp=wc(Hn,ln),yp=Yn+an+bc(Sp),Op=Ct+xt,Np=wc(vn,en),Ep=gn+on+bc(Op),Ip=bc(Op),kp=Qt+Rt,Bp=wc(se,ee),Pp=ue+oe+bc(kp),Tp=bc(kp),Ap=2*bp+Lt,zp=wc(gc(_p),Hn),Dp=2*Mp+Yn+bc(Ap),Lp=2*bp+Mt,Wp=wc(gc(_p),ln),qp=2*Mp+an+bc(Lp),jp=2*Tt+Nt,Fp=wc(gc(An),_n),Hp=bc(jp),Yp=2*zn+Mn+Hp,Rp=2*_t+Nt,Xp=wc(gc(un),_n),Qp=bc(Rp),Vp=2*fn+Mn+Qp,$p=Op+Ct,Up=wc(Np,vn),Zp=Ep+gn+bc($p),Gp=kp+Qt,Jp=wc(Bp,se),Kp=Pp+ue+bc(Gp),th=3*y,nh=vc(3,y),eh=th*$p,oh=xc(nh,Up),rh=bc(th)*Zp+2*bc(eh),ch=3*I,ih=vc(3,I),sh=ch*Gp,uh=xc(ih,Jp),fh=bc(ch)*Kp+2*bc(sh),lh=nt*St,ah=xc(C,pn),ph=P*hn+ut*dn+2*bc(lh),hh=rt*Xt,dh=xc(E,re),vh=z*ce+pt*ie+2*bc(hh),gh=j*Op,mh=xc(i,Np),xh=g*Ip+Z*Ep+bc(gh),wh=H*kp,bh=xc(u,Bp),_h=x*Tp+J*Pp+bc(wh),Mh=Ap+Sp,Sh=wc(zp,Cp),Ch=Dp+yp+bc(Mh),yh=Lp+Sp,Oh=wc(Wp,Cp),Nh=qp+yp+bc(yh),Eh=y*Mh,Ih=mc(y,Sh),kh=st*Ch+bc(Eh),Bh=I*yh,Ph=mc(I,Oh),Th=at*Nh+bc(Bh),Ah=nt*jp,zh=xc(C,Fp),Dh=P*Hp+ut*Yp+2*bc(Ah),Lh=rt*Rp,Wh=xc(E,Xp),qh=z*Qp+pt*Vp+2*bc(Lh),jh=ot*Y,Fh=xc(M,f),Hh=k*K+lt*w+2*bc(jh),Yh=it*R,Rh=xc(O,l),Xh=T*tt+dt*b+2*bc(Yh),Qh=Eh+Ah,Vh=wc(Ih,zh),$h=bc(Qh),Uh=kh+Dh+$h,Zh=Bh+Lh,Gh=wc(Ph,Wh),Jh=bc(Zh),Kh=Th+qh+Jh,td=eh+lh,nd=wc(oh,ah),ed=bc(td),od=rh+ph+ed,rd=sh+hh,cd=wc(uh,dh),id=bc(rd),sd=fh+vh+id,ud=Sp+bp,fd=wc(Cp,_p),ld=bc(ud),ad=yp+Mp+ld,pd=2*(gh+wh),hd=gc(wc(mh,bh)),dd=2*(xh+_h)+bc(pd),vd=L*Qh,gd=xc(o,Vh),md=h*$h+V*Uh+2*bc(vd),xd=W*Zh,wd=xc(r,Gh),bd=d*Jh+$*Kh+2*bc(xd),_d=D*td,Md=xc(e,nd),Sd=p*ed+Q*od+2*bc(_d),Cd=q*rd,yd=xc(c,cd),Od=v*id+U*sd+2*bc(Cd),Nd=F*ud,Ed=xc(s,fd),Id=m*ld+G*ad+2*bc(Nd),kd=vd+xd,Bd=wc(gd,wd),Pd=md+bd+bc(kd),Td=_d+Cd,Ad=wc(Md,yd),zd=Sd+Od+bc(Td),Dd=Nd+pd,Ld=wc(Ed,hd),Wd=Id+dd+bc(Dd),qd=jh+Yh,jd=wc(Fh,Rh),Fd=Hh+Xh+bc(qd),Hd=kd+Td,Yd=wc(Bd,Ad),Rd=Pd+zd+bc(Hd),Xd=Dd+qd,Qd=wc(Ld,jd),Vd=Wd+Fd+bc(Xd),$d=Hd+Xd,Ud=wc(Yd,Qd),Zd=Rd+Vd+bc($d),Gd=Nt+Tt,Jd=wc(_n,An),Kd=Mn+zn+bc(Gd),tv=Nt+_t,nv=wc(_n,un),ev=Mn+fn+bc(tv),ov=2*Gd+_t,rv=wc(gc(Jd),un),cv=2*Kd+fn+bc(ov),iv=2*tv+Tt,sv=wc(gc(nv),An),uv=2*ev+zn+bc(iv),fv=y*ov,lv=mc(y,rv),av=st*cv+bc(fv),pv=I*St,hv=mc(I,pn),dv=at*dn+bc(pv),vv=I*iv,gv=mc(I,sv),mv=at*uv+bc(vv),xv=y*Xt,wv=mc(y,re),bv=st*ie+bc(xv),_v=y*St,Mv=mc(y,pn),Sv=st*dn+bc(_v),Cv=et*vt,yv=xc(S,Gt),Ov=B*we+2*bc(Cv),Nv=I*Xt,Ev=mc(I,re),Iv=at*ie+bc(Nv),kv=ct*Ft,Bv=xc(N,Gn),Pv=A*ye+2*bc(kv),Tv=fv+pv,Av=wc(lv,hv),zv=bc(Tv),Dv=av+dv+zv,Lv=vv+xv,Wv=wc(gv,wv),qv=bc(Lv),jv=mv+bv+qv,Fv=_v+Cv,Hv=wc(Mv,yv),Yv=bc(Fv),Rv=Sv+Ov+Yv,Xv=Nv+kv,Qv=wc(Ev,Bv),Vv=bc(Xv),$v=Iv+Pv+Vv,Uv=D*Fv,Zv=xc(e,Hv),Gv=p*Yv+Q*Rv+2*bc(Uv),Jv=q*Xv,Kv=xc(c,Qv),tg=v*Vv+U*$v+2*bc(Jv),ng=3*(Uv+Jv),eg=mc(3,wc(Zv,Kv)),og=3*(Gv+tg)+2*bc(ng),rg=Gd+_t,cg=wc(Jd,un),ig=bc(rg),sg=Kd+fn+ig,ug=2*mt+St,fg=wc(gc(tn),pn),lg=bc(ug),ag=2*nn+dn+lg,pg=2*Yt+Xt,hg=wc(gc(te),re),dg=bc(pg),vg=2*ne+ie+dg,gg=L*Tv,mg=xc(o,Av),xg=h*zv+V*Dv+2*bc(gg),wg=W*Lv,bg=xc(r,Wv),_g=d*qv+$*jv+2*bc(wg),Mg=F*rg,Sg=xc(s,cg),Cg=m*ig+G*sg+2*bc(Mg),yg=j*ug,Og=xc(i,fg),Ng=g*lg+Z*ag+2*bc(yg),Eg=H*pg,Ig=xc(u,hg),kg=x*dg+J*vg+2*bc(Eg),Bg=et*Y,Pg=xc(S,f),Tg=B*K+ft*w+bc(Bg),Ag=ct*R,zg=xc(N,l),Dg=A*tt+ht*b+bc(Ag),Lg=Bg+Ag,Wg=wc(Pg,zg),qg=Tg+Dg+bc(Lg),jg=gg+wg,Fg=wc(mg,bg),Hg=xg+_g+bc(jg),Yg=ng+Mg,Rg=wc(eg,Sg),Xg=og+Cg+bc(Yg),Qg=yg+Eg,Vg=wc(Og,Ig),$g=Ng+kg+bc(Qg),Ug=jg+Yg,Zg=wc(Fg,Rg),Gg=Hg+Xg+bc(Ug),Jg=Qg+Lg,Kg=wc(Vg,Wg),tm=$g+qg+bc(Jg),nm=Ug+Jg,em=wc(Zg,Kg),om=Gg+tm+bc(nm),rm=Ot+bt,cm=wc(wn,cn),im=bc(rm),sm=bn+sn+im,um=y*L,fm=mc(y,o),lm=bc(um),am=st*h+lm,pm=I*W,hm=mc(I,r),dm=bc(pm),vm=at*d+dm,gm=rm+Ot,mm=wc(cm,wn),xm=bc(gm),wm=sm+bn+xm,bm=rm+bt,_m=wc(cm,cn),Mm=bc(bm),Sm=sm+sn+Mm,Cm=nt*vt,ym=xc(C,Gt),Om=bc(Cm),Nm=P*we+2*Om,Em=Cm*D,Im=xc(ym,e),km=Nm*Q+Om*p+2*bc(Em),Bm=rt*Ft,Pm=xc(E,Gn),Tm=bc(Bm),Am=z*ye+2*Tm,zm=Bm*q,Dm=xc(Pm,c),Lm=Am*U+Tm*v+2*bc(zm),Wm=F*rm,qm=xc(s,cm),jm=m*im+G*sm+2*bc(Wm),Fm=gt*j,Hm=xc(Jt,i),Ym=Kt*Z+be*g+2*bc(Fm),Rm=Ht*H,Xm=xc(Jn,u),Qm=Kn*J+Oe*x+2*bc(Rm),Vm=Fm+Rm,$m=wc(Hm,Xm),Um=Ym+Qm+bc(Vm),Zm=nt*Y,Gm=xc(C,f),Jm=P*K+ut*w+bc(Zm),Km=rt*R,tx=xc(E,l),nx=z*tt+pt*b+bc(Km),ex=Zm+Km,ox=wc(Gm,tx),rx=Jm+nx+bc(ex),cx=um*gm,ix=xc(fm,mm),sx=am*xm+lm*wm+2*bc(cx),ux=pm*bm,fx=xc(hm,_m),lx=vm*Mm+dm*Sm+2*bc(ux),ax=cx+ux,px=wc(ix,fx),hx=sx+lx+bc(ax),dx=3*(Em+zm),vx=mc(3,wc(Im,Dm)),gx=3*(km+Lm)+2*bc(dx),mx=Wm+2*Vm,xx=wc(qm,gc($m)),wx=jm+2*Um+bc(mx),bx=ax+dx,_x=wc(px,vx),Mx=hx+gx+bc(bx),Sx=mx+ex,Cx=wc(xx,ox),yx=wx+rx+bc(Sx),Ox=bx+Sx,Nx=wc(_x,Cx),Ex=Mx+yx+bc(Ox),Ix=y*D,kx=mc(y,e),Bx=st*p+bc(Ix),Px=I*L,Tx=mc(I,o),Ax=at*h+bc(Px),zx=Ix+Px,Dx=wc(kx,Tx),Lx=Bx+Ax+bc(zx),Wx=y*W,qx=mc(y,r),jx=st*d+bc(Wx),Fx=I*q,Hx=mc(I,c),Yx=at*v+bc(Fx),Rx=Wx+Fx,Xx=wc(qx,Hx),Qx=jx+Yx+bc(Rx),Vx=zx+j,$x=wc(Dx,i),Ux=Lx+g+bc(Vx),Zx=Rx+H,Gx=wc(Xx,u),Jx=Qx+x+bc(Zx),Kx=vt*Vx,tw=xc(Gt,$x),nw=we*Ux+2*bc(Kx),ew=Ft*Zx,ow=xc(Gn,Gx),rw=ye*Jx+2*bc(ew),cw=Kx+ew,iw=wc(tw,ow),sw=nw+rw+bc(cw),uw=wt*F,fw=xc(rn,s),lw=Ce*m+bc(uw),aw=cw+uw,pw=wc(iw,fw),hw=sw+lw+bc(aw),dw=y*Y,vw=mc(y,f),gw=st*w+bc(dw),mw=I*R,xw=mc(I,l),ww=at*b+bc(mw),bw=dw+mw,_w=wc(vw,xw),Mw=gw+ww+bc(bw),Sw=aw+bw,Cw=wc(pw,_w),yw=hw+Mw+bc(Sw),Ow=Sw+X;return{coeffs:[lo,or,Lc,tu,dl,xp,Ud,em,Nx,wc(Cw,a)],errBound:[ao,rr,Wc,nu,vl,wp,Zd,om,Ex,yw+_+bc(Ow)]}}]],Xi=[[zc,gi,Pi],[$c,Mi,Wi],[pi,Ei,function(t,n){const e=Oc(t);if(0===St(e[0][0])&&0===St(e[1][0]))return Wi(Kc(t),n);const[[o,r,c,[i]],[s,u,f,[l]]]=Oc(n);if(0===St(o)&&0===St(s))return Ei(t,Kc(n));const{vₓₓₓ:a,vₓₓᵧ:p,vₓᵧᵧ:h,vᵧᵧᵧ:d,vₓₓ:v,vₓᵧ:g,vᵧᵧ:m,vₓ:x,vᵧ:w,v:b}=ii(e),_=qi(i,i),M=ji(i,c),S=ji(i,r),C=ji(i,o),y=qi(i,l),O=ji(i,f),N=ji(i,u),E=ji(i,s),I=Fi(c,c),k=Fi(c,r),B=Fi(c,o),P=ji(l,c),T=Fi(c,f),A=Fi(c,u),z=Fi(c,s),D=Fi(r,f),L=Fi(r,r),W=Fi(r,o),q=ji(l,r),j=Fi(r,u),F=Fi(r,s),H=Fi(o,o),Y=ji(l,o),R=Fi(o,f),X=Fi(o,u),Q=Fi(o,s),V=qi(l,l),$=ji(l,f),U=ji(l,u),Z=ji(l,s),G=Fi(f,f),J=Fi(f,u),K=Fi(s,s),tt=Fi(u,u),nt=Fi(u,s),et=Fi(f,s),ot=Fi(o,H),rt=Fi(o,K),ct=Fi(s,H),it=Fi(s,K),st=Fi(ot,a),ut=Fi(rt,h),ft=Fi(ct,p),lt=Fi(it,d),at=Hi(st,ut),pt=Hi(ft,lt),ht=Hi(at,pt),dt=Hi(Yi(F),X),vt=Hi(Yi(X),F),gt=Fi(o,dt),mt=Fi(s,vt),xt=Fi(r,H),wt=Fi(u,K),bt=Fi(a,xt),_t=Fi(d,wt),Mt=Fi(p,gt),Ct=Fi(h,mt),yt=Hi(Mt,Ct),Ot=ji(3,Hi(bt,_t)),Nt=Hi(yt,Ot),Et=Fi(c,Q),It=Fi(f,H),kt=Fi(r,nt),Bt=Fi(c,K),Pt=Fi(r,X),Tt=Fi(s,L),At=Fi(o,et),zt=Fi(u,X),Dt=Hi(Et,Pt),Lt=Hi(It,Tt),Wt=Hi(kt,At),qt=Hi(Bt,zt),jt=Hi(B,L),Ft=Hi(et,tt),Ht=Hi(Yi(Dt),Lt),Yt=Hi(Yi(Wt),qt),Rt=Fi(p,Ht),Xt=Fi(h,Yt),Qt=Fi(o,jt),Vt=Fi(s,Ft),$t=Fi(a,Qt),Ut=Fi(d,Vt),Zt=Hi(Rt,Xt),Gt=ji(3,Hi($t,Ut)),Jt=Hi(Zt,Gt),Kt=Hi(F,X),tn=Fi(u,L),nn=Yi(Fi(c,Kt)),en=Hi(tn,nn),on=Yi(Hi(E,D)),rn=Hi(on,Y),cn=Fi(o,rn),sn=Hi(en,cn),un=Fi(r,tt),fn=Yi(Fi(f,Kt)),ln=Hi(un,fn),an=Yi(Hi(A,Y)),pn=Hi(an,E),hn=Fi(s,pn),dn=Hi(ln,hn),vn=Fi(r,L),gn=Hi(Yi(k),C),mn=Fi(ji(3,o),gn),xn=Hi(vn,mn),wn=Fi(u,tt),bn=Hi(Yi(J),Z),_n=Fi(ji(3,s),bn),Mn=Hi(wn,_n),Sn=Fi(p,sn),Cn=Fi(h,dn),yn=Hi(Sn,Cn),On=Fi(a,xn),Nn=Fi(d,Mn),En=Hi(On,Nn),In=Fi(H,v),kn=Fi(K,m),Bn=Hi(In,kn),Pn=Fi(Q,g),Tn=Hi(yn,En),An=Hi(Bn,Pn),zn=Hi(Tn,An),Dn=Hi(j,R),Ln=Hi(z,j),Wn=ji(i,Kt),qn=ji(l,Kt),jn=Fi(c,Dn),Fn=Fi(f,Ln),Hn=Hi(Yi(Y),D),Yn=Hi(Yi(E),A),Rn=Fi(s,I),Xn=Fi(o,G),Qn=Fi(r,Hn),Vn=Fi(u,Yn),$n=Yi(Hi(Wn,jn)),Un=Yi(Hi(qn,Fn)),Zn=Yi(ji(i,W)),Gn=Yi(ji(l,nt)),Jn=Fi(c,jt),Kn=Fi(f,Ft),te=Fi(W,v),ne=Fi(nt,m),ee=Hi($n,Rn),oe=Hi(Un,Xn),re=Hi(ee,Qn),ie=Hi(oe,Vn),se=Hi(Zn,Jn),ue=Hi(Gn,Kn),fe=Yi(Hi(te,ne)),le=Fi(p,re),ae=Fi(h,ie),pe=Fi(a,se),he=Fi(d,ue),de=Hi(le,ae),ve=ji(3,Hi(pe,he)),ge=Fi(g,Kt),me=Hi(de,ve),xe=Hi(ge,fe),we=Hi(me,xe),be=Hi(z,Dn),_e=Hi(Yi(B),L),Me=Hi(Yi(et),tt),Se=ji(2*i,be),Ce=ji(2*l,be),ye=Hi(A,Yi(D)),Oe=Hi(D,Yi(A)),Ne=ji(l,_e),Ee=ji(i,Me),Ie=Fi(c,ye),ke=Fi(f,Oe),Be=ji(i,_e),Pe=ji(l,Me),Te=Fi(r,I),Ae=Fi(u,G),ze=Hi(Se,Ne),De=Hi(Ce,Ee),Le=Hi(ze,Ie),We=Hi(De,ke),qe=Hi(Be,Te),je=Hi(Pe,Ae),Fe=Fi(p,Le),He=Fi(h,We),Ye=Fi(a,qe),Re=Fi(d,je),Xe=Hi(Ye,Re),Qe=Hi(Fe,He),Ve=Hi(Qe,ji(3,Xe)),$e=Fi(g,be),Ue=Fi(v,_e),Ze=Hi($e,Ue),Ge=Fi(m,Me),Je=Hi(Ze,Ge),Ke=Hi(Ve,Je),to=Hi(A,D),no=Hi(Y,E),eo=Hi(k,C),oo=Hi(J,Z),ro=Hi(Yi(to),Y),co=Hi(Yi(to),E),io=Hi(Yi(q),T),so=Hi(Yi(N),T),uo=Hi(eo,k),fo=Hi(oo,J),lo=Fi(qi(3,i),uo),ao=Fi(qi(3,l),fo),po=Fi(c,I),ho=Fi(f,G),vo=Fi(v,eo),go=Fi(m,oo),mo=Hi(ro,no),xo=Hi(co,no),wo=ji(i,mo),bo=ji(l,xo),_o=Fi(c,io),Mo=Fi(f,so),So=Fi(o,x),Co=Fi(s,w),yo=Hi(wo,_o),Oo=Hi(bo,Mo),No=Hi(lo,po),Eo=Hi(ao,ho),Io=Hi(no,to),ko=Yi(Hi(vo,go)),Bo=Fi(p,yo),Po=Fi(h,Oo),To=Fi(a,No),Ao=Fi(d,Eo),zo=Fi(g,Io),Do=Hi(Bo,Po),Lo=Hi(To,Ao),Wo=Hi(zo,ko),qo=Hi(So,Co),jo=Hi(Do,Lo),Fo=Hi(Wo,qo),Ho=Hi(jo,Fo),Yo=Hi(T,q),Ro=Hi(T,N),Xo=Hi(Yi(Yo),N),Qo=Hi(Yi(Ro),q),Vo=ji(i,Xo),$o=ji(l,I),Uo=ji(l,Qo),Zo=ji(i,G),Go=ji(i,I),Jo=Fi(r,_),Ko=ji(l,G),tr=Fi(u,V),nr=Hi(Vo,$o),er=Hi(Uo,Zo),or=Hi(Go,Jo),rr=Hi(Ko,tr),cr=Fi(a,or),ir=Fi(d,rr),sr=ji(3,Hi(cr,ir)),ur=Hi(Yo,N),fr=Hi(Yi(S),I),lr=Hi(Yi(U),G),ar=Fi(p,nr),pr=Fi(h,er),hr=Fi(g,ur),dr=Fi(v,fr),vr=Fi(m,lr),gr=Fi(r,x),mr=Fi(u,w),xr=Hi(gr,mr),wr=Hi(ar,pr),br=Hi(sr,hr),_r=Hi(dr,vr),Mr=Hi(wr,br),Sr=Hi(_r,xr),Cr=Hi(Mr,Sr),yr=Hi(P,O),Or=ji(i,p),Nr=ji(l,h),Er=Hi(yr,P),Ir=Hi(yr,O),kr=Fi(c,_),Br=Fi(kr,a),Pr=Fi(f,V),Tr=Fi(Pr,d),Ar=Fi(g,yr),zr=Fi(M,v),Dr=Fi($,m),Lr=Hi(zr,Dr),Wr=Fi(c,x),qr=Fi(f,w),jr=Hi(Wr,qr),Fr=Fi(Or,Er),Hr=Fi(Nr,Ir),Yr=Hi(Fr,Hr),Rr=ji(3,Hi(Br,Tr)),Xr=Hi(Ar,Yi(Lr)),Qr=Hi(Yr,Rr),Vr=Hi(Xr,jr),$r=Hi(Qr,Vr),Ur=ji(i,a),Zr=ji(l,p),Gr=Hi(Ur,Zr),Jr=ji(i,h),Kr=ji(l,d),tc=Hi(Jr,Kr),nc=Hi(Gr,v),ec=Hi(tc,m),oc=Fi(_,nc),rc=Fi(V,ec),cc=Hi(oc,rc),ic=Fi(y,g),sc=Hi(cc,ic),uc=ji(i,x),fc=ji(l,w),lc=Hi(uc,fc),ac=Hi(sc,lc);return[ht,Nt,Jt,zn,we,Ke,Ho,Cr,$r,Hi(ac,b)].map(ce)}]];function Qi(t,n){const{coeffs:e,errBound:o}=Ri[t.length-2][n.length-2](t,n);return{coeffs:e,errBound:o,getPExact:()=>Xi[t.length-2][n.length-2](t,n)}}const{abs:Vi}=Math;function $i(t,n){if(0===n[0]&&0===n[1])return[0,0];if(0===n[0]&&1===n[1])return[0,0];const e=Vi(n[1]);if(4===t.length){const[[n,o],[r,c],[i,s],[u,f]]=t,l=Vi(n),a=Vi(o),p=Vi(r),h=Vi(c),d=Vi(i),v=Vi(s),g=l+(p+l)*e,m=p+(d+p)*e,x=g+(m+g)*e,w=a+(h+a)*e,b=h+(v+h)*e,_=w+(b+w)*e;return[x+(m+(d+(Vi(u)+d)*e+m)*e+x)*e,_+(b+(v+(Vi(f)+v)*e+b)*e+_)*e]}if(3===t.length){const[[n,o],[r,c],[i,s]]=t,u=Vi(n),f=Vi(o),l=Vi(r),a=Vi(c),p=u+(l+u)*e,h=f+(a+f)*e;return[p+(l+(Vi(i)+l)*e+p)*e,h+(a+(Vi(s)+a)*e+h)*e]}if(2===t.length){const[[n,o],[r,c]]=t,i=Vi(n),s=Vi(o);return[i+(Vi(r)+i)*e,s+(Vi(c)+s)*e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}const Ui=Number.EPSILON,Zi=Number.EPSILON/2,Gi=Zi*Zi,Ji=function(){const t=1*Zi;return t/(1-t)}(),Ki=function(){const t=3*Gi;return t/(1-t)}(),{abs:ts}=Math,ns=[[0,0],[0,0]];const{min:es,max:os}=Math;function rs(t,n){return n[0]!==n[1]?4===t.length?function(t,n){const{ps:e,_ps:o}=Nn(t,n[0],n[1]),r=e[0][0],c=e[1][0],i=e[2][0],s=e[3][0],u=9*Zi*o[0][0],f=9*Zi*o[1][0],l=9*Zi*o[2][0],a=9*Zi*o[3][0],p=e[0][1],h=e[1][1],d=e[2][1],v=e[3][1],g=9*Zi*o[0][1],m=9*Zi*o[1][1],x=9*Zi*o[2][1],w=9*Zi*o[3][1],b=es(r-u,c-f,i-l,s-a),_=os(r+u,c+f,i+l,s+a);return[[b,es(p-g,h-m,d-x,v-w)],[_,os(p+g,h+m,d+x,v+w)]]}(t,n):3===t.length?function(t,n){const{ps:e,_ps:o}=an(t,n[0],n[1]),r=e[0][0],c=e[1][0],i=e[2][0],s=5*Zi*o[0][0],u=5*Zi*o[1][0],f=5*Zi*o[2][0],l=e[0][1],a=e[1][1],p=e[2][1],h=5*Zi*o[0][1],d=5*Zi*o[1][1],v=5*Zi*o[2][1],g=es(r-s,c-u,i-f),m=os(r+s,c+u,i+f);return[[g,es(l-h,a-d,p-v)],[m,os(l+h,a+d,p+v)]]}(t,n):function(t,n){const{ps:e,_ps:o}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:ns}:function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1],i=o[0],s=o[1],u=[[r,c],[n*(i-r)+r,n*(s-c)+c]],f=ts(n),l=ts(r),a=ts(i),p=ts(c);return{ps:u,_ps:[[0,0],[f*(a+l)+l,f*(ts(s)+p)+p]]}}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1],i=o[0],s=o[1],u=[[n*(i-r)+r,n*(s-c)+c],[i,s]],f=ts(n),l=ts(r),a=ts(i),p=ts(c);return{ps:u,_ps:[[f*(a+l)+l,f*(ts(s)+p)+p],[0,0]]}}(t,n):function(t,n,e){const o=t[0],r=t[1],c=o[0],i=o[1],s=r[0],u=r[1],f=[[n*(s-c)+c,n*(u-i)+i],[e*(s-c)+c,e*(u-i)+i]],l=ts(n),a=ts(e),p=ts(c),h=ts(s),d=ts(i),v=ts(u);return{ps:f,_ps:[[l*(h+p)+p,l*(v+d)+d],[a*(h+p)+p,a*(v+d)+d]]}}(t,n,e)}(t,n[0],n[1]),r=e[0][0],c=e[1][0],i=3*Zi*o[0][0],s=3*Zi*o[1][0],u=e[0][1],f=e[1][1],l=3*Zi*o[0][1],a=3*Zi*o[1][1],p=es(r-i,c-s),h=os(r+i,c+s);return[[p,es(u-l,f-a)],[h,os(u+l,f+a)]]}(t,n):function(t,n){const e=t[0],o=t[t.length-1];if(0===n)return[e,e];if(1===n)return[o,o];const r=oo(t,n);let c;if(4===t.length)c=$i(t,[0,n]).map(t=>8*Ji*t);else if(3===t.length)c=$i(t,[0,n]).map(t=>5*Ji*t);else if(2===t.length)c=$i(t,[0,n]).map(t=>2*Ji*t);else if(1===t.length)return[r,r];return[[r[0]-c[0],r[1]-c[1]],[r[0]+c[0],r[1]+c[1]]]}(t,n[0])}const cs=134217729;function is(t,n){const e=t[0],o=t[1],r=n[0],c=n[1],i=o/c,s=c*i,u=cs*c,f=u-(u-c),l=c-f,a=cs*i,p=a-(a-i),h=i-p,d=r*i,v=s+d,g=d-(v-s)+(l*h-(s-f*p-l*p-f*h)),m=v+g,x=(o-m+(e-(g-(m-v))))/c,w=i+x;return[x-(w-i),w]}const ss=is,us=Number.EPSILON/2,fs=us*us,{abs:ls}=Math,as=[0,1],ps=vn,hs=Bo,ds=dn,vs=de,gs=le,ms=hr,xs=function(t,n,e,o){const r=t[0],c=t[1],i=n[0],s=n[1],u=ss(t,n),f=Math.abs(r+c),l=Math.abs(i+s),a=l-us*l-o;return a<=0?{est:u,err:Number.POSITIVE_INFINITY}:{est:u,err:(l*e+f*o)/a**2+9*fs*Math.abs(f/l)}},ws=Qo,bs=$o;const _s=Ho,Ms=Bo,{min:Ss,max:Cs}=Math;function ys(t,n,e,o){const{ps:r}=t,c=Qi(n,r);if(void 0===c)return;const{coeffs:i,errBound:s,getPExact:u}=c,f=et(u),l=eo(i,e[0],e[1],s,f);if(void 0===l||0===l.length)return;const a=l[0],p=function(t,n,e){const o=rs(t,[e.tS,e.tE]),r=n[0],c=n[n.length-1],i=c[0]-r[0],s=c[1]-r[1],[[u,f],[l,a]]=o,p=0===s,h=p?r[0]:r[1],d=p?i:s,v=((p?u:f)-h)/d,g=((p?l:a)-h)/d;let m=Ss(v,g)*(1-Jn),x=Cs(v,g)*(1+Jn);return{multiplicity:1,t:(m+x)/2,tS:m,tE:x}}(r,n,a);return{xPs:{compensated:void 0,ri:a,getPExact:f,kind:1,p:void 0,curve:t},riSide:p,sideIdx:o,ps:r}}const Os=et(function(t,n,e,o){const r=t.x.curve,c=t.x.ri.tS,i=e?t.next:t.prev,s=e?1:0,u=r===i.x.curve&&(e?c<i.x.ri.tS:c>i.x.ri.tS)?i.x.ri.tS:s;let f;for(let t=0;t<o.length;t++){const e=o[t],i=ys(r,n[e],c<u?[c,u]:[u,c],e);void 0!==i&&(f=i)}return f});function Ns(t){const n=(t=ce(t)).length;return 2===n?t:n<=1?[0,t[0]]:[t[n-2],t[n-1]]}const{abs:Es,min:Is,max:ks,log2:Bs,ceil:Ps}=Math;function Ts(t,n){const{tS:e,tE:o}=t,r=o-e;if(0===r)return[{tS:[0,e],tE:[0,e],multiplicity:t.multiplicity}];const c=2**Ps(Bs(r)),i=function(t,n,e){return me(ge(t,e),n)}(n,c,e),s=i.map(Ns),u=s.map(t=>t[1]*Jn**2),f=eo(s,0,1,u,()=>i),l=[];for(const t of f)l.push({tS:Nt(e,t.tS*c),tE:Nt(e,t.tE*c),multiplicity:t.multiplicity});return l}function As(t,n){let e;const{_x_:o,dir:r,idx:c,swapped:i}=t,{_x_:s,dir:u,idx:f,swapped:l}=n,a=Ls(o.container.bigBox),p=1===r!=!!i,h=1===u!=!!l,d=t.oSideIdxs??Fo(t,o,a,p),v=n.oSideIdxs??Fo(n,s,a,h);if(1===d.length&&1===v.length&&(t.oSideIdx=t.oSideIdx??d[0],n.oSideIdx=n.oSideIdx??v[0],e=d[0]-v[0],0!==e))return e;const g=t.oFSC??Os(o,a,p,d),m=n.oFSC??Os(s,a,h,v),{sideIdx:x,riSide:w}=g,{sideIdx:b,riSide:_}=m;if(e=x-b,0!==e)return t.oSideIdx=x,n.oSideIdx=b,e;if(e=function(t,n){return t.tS<=n.tE&&n.tS<=t.tE}(w,_)?0:w.tS<_.tS?-1:1,0!==e)return e;const M=t.oFSCE??Ds(g,a),S=n.oFSCE??Ds(m,a);return e=function(t,n){return Io(t.tS,n.tE)<=0&&Io(n.tS,t.tE)<=0}(M,S)?0:Io(M.tS,S.tS),0!==e?e:(e=r-u,0!==e?e:1===r?c-f:f-c)}const zs=et(Ts),Ds=et(function(t,n){const{xPs:e,ps:o,sideIdx:r}=t,{ri:c,getPExact:i}=e,s=zs(c,i())[0];return function(t,n,e){const o=function(t,n){return n[0][0]!==n[1][0]||n[0][1]!==n[1][1]?4===t.length?function([[t,n],[e,o],[r,c],[i,s]],[u,f]){const l=ps(f,u),a=3*Gi*ls(l[1]),p=ps(as,u),h=3*Gi*ls(p[1]),d=xs(l,p,a,h);f=hs(d.est,d.err);const v=ps(as,u),g=vs(u,u),m=vs(u,v),x=vs(v,v),w=vs(g,u),b=vs(g,v),_=vs(x,u),M=vs(x,v),S=ps(as,f),C=vs(f,f),y=vs(f,S),O=vs(S,S),N=vs(C,f),E=vs(C,S),I=vs(O,f),k=vs(O,S),B=ls(u[1]),P=ls(v[1]),T=ls(g[1]),A=ls(m[1]),z=ls(x[1]),D=ls(w[1]),L=ls(b[1]),W=ls(_[1]),q=ls(M[1]),j=ls(f[1]),F=ls(S[1]),H=ls(C[1]),Y=ls(y[1]),R=ls(O[1]),X=ls(N[1]),Q=ls(E[1]),V=ls(I[1]),$=ls(k[1]);let U=ls(t),Z=ls(n),G=ls(e),J=ls(o),K=ls(r),tt=ls(c),nt=ls(i),et=ls(s);const ot=ds(gs(i,u),gs(r,v)),rt=ds(ds(gs(i,g),gs(2*r,m)),gs(e,x)),ct=ds(ds(gs(i,w),gs(t,M)),gs(3,ds(gs(r,b),gs(e,_)))),it=ds(vs(rt,f),vs(ct,S)),st=ds(ds(vs(ot,C),vs(ct,O)),vs(ms(rt),y)),ut=ds(ds(gs(i,N),vs(ct,k)),gs(3,ds(vs(ot,E),vs(rt,I)))),ft=ls(ct[1]),lt=nt*B+K*P,at=nt*T+2*K*A+G*z;U=nt*D+U*q+3*(K*L+G*W),G=at*j+ft*F,K=lt*H+ft*R+2*at*Y,nt=nt*X+ft*$+3*(lt*Q+at*V),U*=11*Gi,G*=15*Gi,K*=20*Gi,nt*=22*Gi;const pt=ds(gs(s,u),gs(c,v)),ht=ds(ds(gs(s,g),gs(2*c,m)),gs(o,x)),dt=ds(ds(gs(s,w),gs(n,M)),gs(3,ds(gs(c,b),gs(o,_)))),vt=ds(vs(ht,f),vs(dt,S)),gt=ds(ds(vs(pt,C),vs(dt,O)),vs(ms(ht),y)),mt=ds(ds(gs(s,N),vs(dt,k)),gs(3,ds(vs(pt,E),vs(ht,I)))),xt=ls(dt[1]),wt=et*B+tt*P,bt=et*T+2*tt*A+J*z;Z=et*D+Z*q+3*(tt*L+J*W),J=bt*j+xt*F,tt=wt*H+xt*R+2*bt*Y,et=et*X+xt*$+3*(wt*Q+bt*V),Z*=11*Gi,J*=15*Gi,tt*=20*Gi,et*=22*Gi;const _t=ws(ws(hs(ct,-U),hs(it,-G)),ws(hs(st,-K),hs(ut,-nt))),Mt=bs(bs(hs(ct,+U),hs(it,+G)),bs(hs(st,+K),hs(ut,+nt)));return[[_t,ws(ws(hs(dt,-Z),hs(vt,-J)),ws(hs(gt,-tt),hs(mt,-et)))],[Mt,bs(bs(hs(dt,+Z),hs(vt,+J)),bs(hs(gt,+tt),hs(mt,+et)))]]}(t,n):3===t.length?function([[t,n],[e,o],[r,c]],[i,s]){const u=ps(s,i),f=3*Gi*ls(u[1]),l=ps(as,i),a=3*Gi*ls(l[1]),p=xs(u,l,f,a);s=hs(p.est,p.err);const h=ps(as,i),d=vs(i,i),v=vs(i,h),g=vs(h,h),m=ps(as,s),x=vs(s,s),w=vs(s,m),b=vs(m,m),_=ls(i[1]),M=ls(h[1]),S=ls(d[1]),C=ls(v[1]),y=ls(g[1]),O=ls(s[1]),N=ls(m[1]),E=ls(x[1]),I=ls(w[1]),k=ls(b[1]);let B=ls(t),P=ls(n),T=ls(e),A=ls(o),z=ls(r),D=ls(c);const L=ds(ds(gs(r,d),gs(2*e,v)),gs(t,g)),W=ds(gs(r,i),gs(e,h)),q=L,j=ds(vs(s,W),vs(m,L)),F=ds(ds(gs(r,x),vs(ms(w),W)),vs(b,L)),H=z*S+2*T*C+B*y,Y=z*_+T*M;B=H,T=O*Y+N*H,z=E*r+2*I*Y+k*H,B*=7*Gi,T*=11*Gi,z*=14*Gi;const R=ds(ds(gs(c,d),gs(2*o,v)),gs(n,g)),X=ds(gs(c,i),gs(o,h)),Q=R,V=ds(vs(s,X),vs(m,R)),$=ds(ds(gs(c,x),vs(ms(w),X)),vs(b,R)),U=D*S+2*A*C+P*y,Z=D*_+A*M;P=U,A=O*Z+N*U,D=E*c+2*I*Z+k*U,P*=7*Gi,A*=11*Gi,D*=14*Gi;const G=ws(ws(hs(q,-B),hs(j,-T)),hs(F,-z)),J=bs(bs(hs(q,+B),hs(j,+T)),hs(F,+z));return[[G,ws(ws(hs(Q,-P),hs(V,-A)),hs($,-D))],[J,bs(bs(hs(Q,+P),hs(V,+A)),hs($,+D))]]}(t,n):function([[t,n],[e,o]],[r,c]){const i=ps(c,r),s=3*Gi*ls(i[1]),u=ps(as,r),f=3*Gi*ls(u[1]),l=xs(i,u,s,f);c=hs(l.est,l.err);const a=ps(as,r),p=ps(as,c),h=ls(r[1]),d=ls(a[1]),v=ls(c[1]),g=ls(p[1]);let m=ls(t),x=ls(n),w=ls(e),b=ls(o);const _=ds(gs(e,r),gs(t,a)),M=ds(gs(e,c),vs(_,p));m=w*h+m*d,w=w*v+m*g,m*=3*Zi,w*=7*Zi;const S=ds(gs(o,r),gs(n,a)),C=ds(gs(o,c),vs(S,p));x=b*h+x*d,b=b*v+x*g,x*=3*Zi,b*=7*Zi;const y=ws(hs(_,-m),hs(M,-w)),O=bs(hs(_,+m),hs(M,+w));return[[y,ws(hs(S,-x),hs(C,-b))],[O,bs(hs(S,+x),hs(C,+b))]]}(t,n):function(t,n){const e=t[0],o=t[t.length-1];if(0===n[0]&&0===n[1]){const t=[0,e[0]],n=[0,e[1]];return[[t,n],[t,n]]}if(0===n[0]&&1===n[1]){const t=[0,o[0]],n=[0,o[1]];return[[t,n],[t,n]]}const r=Lo(t,n);let c;if(4===t.length)c=$i(t,n).map(t=>16*Ki*t);else if(3===t.length)c=$i(t,n).map(t=>10*Ki*t);else if(2===t.length)c=$i(t,n).map(t=>4*Ki*t);else if(1===t.length)return[r,r];return[[hs(r[0],-c[0]),hs(r[1],-c[1])],[hs(r[0],+c[0]),hs(r[1],+c[1])]]}(t,n[0])}(t,[e.tS,e.tE]),r=n[0],c=n[n.length-1],i=c[0]-r[0],s=c[1]-r[1],[[u,f],[l,a]]=o,p=0===s,h=p?r[0]:r[1],d=p?i:s,v=p?l:a,g=Ro(_s(p?u:f,h),d),m=Ro(_s(v,h),d);return{tS:_s(Qo(g,m),6*te),tE:Ms($o(g,m),6*te),multiplicity:1}}(o,n[r],s)}),Ls=et(function(t){const[[n,e],[o,r]]=t;return[[[o,e],[n,e]],[[n,e],[n,r]],[[n,r],[o,r]],[[o,r],[o,e]]]});function Ws(t){for(let n of t)if(0===n.x.kind)return!0;return!1}const qs=No(function(t){const{inOuts:n,xs:e}=t;(n.length>2||Ws(t.xs))&&n.sort(As);let o=n[n.length-1];for(let t=0;t<n.length;t++){const e=n[t];e.prevAround=o,o.nextAround=e,o=e}}),{abs:js,min:Fs}=Math;function Hs(t,n,e){let o=2**(t+1);const[r,c]=e;let i=-o,s=-o,u=+o,f=+o;for(const[[t,e],[o,l]]of n){let n=0,a=0;r<t?(n=1,a=t):r>o&&(n=-1,a=o);let p=0,h=0;c<e?(p=1,h=e):c>l&&(p=-1,h=l);let d=!1,v=!1;if(0!==n&&0===p)d=!0;else if(0!==p&&0===n)v=!0;else if(0!==n&&0!==p){const t=js(a-r),n=js(h-c);d=t>=n,v=n>=t}d&&(n>0?a<u&&(u=a):a>i&&(i=a)),v&&(p>0?h<f&&(f=h):h>s&&(s=h))}const l=.5;return[[r+(i-r)*l,c+(s-c)*l],[r+(u-r)*l,c+(f-c)*l]]}const Ys=No(function(t,n){for(const e of t){const[[t,o],[r,c]]=e.box,i=[(t+r)/2,(o+c)/2],s=Hs(n,[...e.xs.map(t=>t.next.container.box),...e.xs.map(t=>t.prev.container.box)],i);e.bigBox=s}return t});function Rs(t,n,e=t=>void 0!==t){const o=[];for(let r=0;r<t.length;r++){const c=t[r],i=[];for(let t=0;t<c.length;t++)e(n(c[t]))&&i.push(n(c[t]));o.push(i)}return o}function Xs(t){let n=t[t.length-1];for(let e=0;e<t.length;e++){const o=t[e];o.prevAround=n,n.nextAround=o,n=o}}const Qs=No(function(t,n,e){const o=Rs(t,t=>({x:t}));let r=function(t,n){const e=2**n;return t.map(t=>{const{p:n}=t[0].x;return{xs:t,box:[[n[0]-e,n[1]-e],[n[0]+e,n[1]+e]]}})}(o,e);r=Eo(r),r=function(t,n){const e=2**(n-1),o=t=>ho(t/e)*e,r=t=>vo(t/e)*e;return t.map(t=>{const{xs:n,box:e}=t,[c,i]=e;return{xs:n,box:[c.map(o),i.map(r)]}})}(r,e),function(t){for(const n of t)for(const t of n.xs)t.container=n}(r),function(t){const n=[];for(const e of t)for(const t of e){const{idx:e}=t.x.curve.loop;(n[e]??=[]).push(t)}for(const t of n){if(void 0===t||0===t.length)continue;t.sort(po);const n=t.length;for(let e=0;e<n;e++){const o=t[e],{container:r}=o;let c=(e+1)%n;for(;c!==e&&t[c].container===r;)c=(c+1)%n;let i=(e-1+n)%n;for(;i!==e&&t[i].container===r;)i=(i-1+n)%n;let s=o;s.next=t[c],s.prev=t[i],t[(e-1+n)%n].container!==r&&(s.in_={dir:-1,_x_:o,loop:o.x.curve.loop.beziers}),t[(e+1)%n].container!==r&&(s.out={dir:1,_x_:o,loop:o.x.curve.loop.beziers})}}}(o);for(const t of r){const n=[];for(const e of t.xs)e.in_&&n.push(e.in_),e.out&&n.push(e.out);t.inOuts=n;for(const e of n)e.container=t}const c=Ys(r,n);return function(t){let n=0;for(const e of t)for(const t of e.inOuts)t.idx=++n}(c),function(t){for(const n of t)for(const t of n.inOuts)if(1===t.dir){const n=t;let{_x_:e}=n;e=e.next,n.twin=e.in_,n.idx=n.twin.idx}else{const n=t;let{_x_:e}=n;e=e.prev,n.twin=e.out,n.idx=n.twin.idx}}(c),c.forEach(qs),c.forEach(t=>Xs(t.inOuts)),r});function Vs(t,n,e){const o=(t[0]-e[0])*(n[1]-e[1]),r=(t[1]-e[1])*(n[0]-e[0]),c=o-r;let i;if(o>0){if(r<=0)return c;i=o+r}else{if(!(o<0))return c;if(r>=0)return c;i=-o-r}return Math.abs(c)>=3330669073875472e-31*i?c:function(t,n,e,o){const r=t[0]-e[0],c=n[0]-e[0],i=t[1]-e[1],s=n[1]-e[1],u=Mt(_e(r,s),_e(i,c));let f=bt(u);if(Math.abs(f)>=2220446049250315e-31*o)return f;const l=dt(t[0],e[0])[0],a=dt(n[0],e[0])[0],p=dt(t[1],e[1])[0],h=dt(n[1],e[1])[0];if(0===l&&0===p&&0===a&&0===h)return f;const d=1109335647967049e-46*o+3330669073875471e-31*Math.abs(f);if(f+=r*h+s*l-(i*a+c*p),Math.abs(f)>=d)return f;const v=vt(u,Mt(_e(l,s),_e(p,c))),g=vt(v,Mt(_e(r,h),_e(i,a)));let m=vt(g,Mt(_e(l,h),_e(p,a)));return m=ce(m),m[m.length-1]}(t,n,e,i)}function $s(t){if(4===t.length)return 0===Vs(t[0],t[1],t[2])&&0===Vs(t[1],t[2],t[3])&&0===Vs(t[0],t[2],t[3]);if(3===t.length)return 0===Vs(t[0],t[1],t[2]);if(t.length<=2)return!0;throw new Error("The given bezier curve must be of order <= 3.")}function Us(t){if(!$s(t))return!1;const n=t.map(t=>t[0]),e=t.map(t=>t[1]);return!(Zs(n)&&Zs(e))}function Zs(t){return function(t){for(let n=1;n<t.length;n++)if(t[n-1]>t[n])return!1;return!0}(t)||function(t){for(let n=1;n<t.length;n++)if(t[n-1]<t[n])return!1;return!0}(t)}function Gs(t,n){const e=(2**(53-n)+1)*t;return e-(e-t)}const{floor:Js,log2:Ks,abs:tu}=Math;function nu(t,n){const e=n[0]-t[0],o=n[1]-t[1];return e*e+o*o}function eu(t,n){const e=n/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[e*t[0],e*t[1]]}function ou(t){const n=t[0][0],e=t[0][1];for(let o=1;o<t.length;o++)if(n!==t[o][0]||e!==t[o][1])return!1;return!0}const ru=_e,cu=vt,{abs:iu}=Math;function su(t){const[[n,e],[o,r],[c,i],[s,u]]=t,f=s+3*o,l=n+3*c,a=f-l,p=iu(3*o)+iu(f)+(iu(3*c)+iu(l))+iu(a);if(iu(a)-Zi*p>0)return!1;const h=u+3*r,d=e+3*i,v=h-d,g=iu(3*r)+iu(h)+(iu(3*i)+iu(d))+iu(v);return!(iu(v)-Zi*g>0)&&0===St(Mt(cu([s],ru(3,o)),cu([n],ru(3,c))))&&0===St(Mt(cu([u],ru(3,r)),cu([e],ru(3,i))))}function uu(t){for(let n=0;n<t.length-1;n++)for(let e=n+1;e<t.length;e++)if(t[n][0]===t[e][0]&&t[n][1]===t[e][1])return!1;return!0}const{abs:fu}=Math;function lu(t,n,e){if(void 0!==t&&!ou(t)){if(2===t.length)return t;if(3===t.length){if(uu(t))return $s(t)?[t[0],t[2]]:t;if(pu(t[0],t[2]))return;return[t[0],t[2]]}if(uu(t)){const o=au(t);if(void 0===o)return;return function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e][0]!==n[e][0]||t[e][1]!==n[e][1])return!1;return!0}(o,t)?t:lu(o,n,e)}if(pu(t[0],t[3])){if($s(t))return;return t}if($s(t))return[t[0],t[3]];if(pu(t[0],t[1])&&pu(t[1],t[2])||pu(t[1],t[2])&&pu(t[2],t[3])||pu(t[0],t[1])&&pu(t[2],t[3]))return lu([t[0],t[t.length-1]],n,e);if(pu(t[0],t[2])||pu(t[1],t[3])||pu(t[1],t[2]))return t;if(pu(t[0],t[1])){if(nu(t[1],t[2])<4*n)return[t[0],t[2],t[2],t[3]];{const o=eu(rt(t[1],t[2]),2*n),r=ft(t[1],o);return au([t[0],e(r),t[2],t[3]])}}if(pu(t[2],t[3])){if(nu(t[2],t[1])<4*n)return[t[0],t[1],t[1],t[3]];{const o=eu(rt(t[2],t[1]),2*n),r=ft(t[2],o);return au([t[0],t[1],e(r),t[3]])}}}}function au(t){return $s(t)?[t[0],t[3]]:su(t)?Kc(t):t}function pu(t,n){return t[0]===n[0]&&t[1]===n[1]}function hu(t){return t}function du(t){const n=function(t){const n=t[0],e=t[t.length-1];let o,r;if(n[0]<e[0]?(o={ts:[0,0],box:[n,n]},r={ts:[1,1],box:[e,e]}):(o={ts:[1,1],box:[e,e]},r={ts:[0,0],box:[n,n]}),2===t.length)return{minX:o,maxX:r};const[c]=pt(t),i=eo(c,0,1)||[];for(let n=0;n<i.length;n++){const e=i[n],c=[e.tS,e.tE],s=rs(t,c);s[0][0]<o.box[0][0]&&(o={ts:c,box:s}),s[1][0]>r.box[0][0]&&(r={ts:c,box:s})}return{minX:o,maxX:r}}(t),e=function(t){const n=t[0],e=t[t.length-1];let o,r;if(n[1]<e[1]?(o={ts:[0,0],box:[n,n]},r={ts:[1,1],box:[e,e]}):(o={ts:[1,1],box:[e,e]},r={ts:[0,0],box:[n,n]}),2===t.length)return{minY:o,maxY:r};const[,c]=pt(t),i=eo(c,0,1)||[];for(let n=0;n<i.length;n++){const e=i[n],c=[e.tS,e.tE],s=rs(t,c);s[0][1]<o.box[0][1]&&(o={ts:c,box:s}),s[1][1]>r.box[0][1]&&(r={ts:c,box:s})}return{minY:o,maxY:r}}(t);return[[n.minX.box[0][0],e.minY.box[0][1]],[n.maxX.box[1][0],e.maxY.box[1][1]]]}function vu(t){let n=0;for(let e=0;e<t.length-1;e++)n+=en(t[e],t[e+1]);return n}const{sqrt:gu}=Math;function mu(t){const[n,e]=t[0],[o,c]=t[t.length-1];let i,s;const u=vu(t);if(256*nu(t[0],t[t.length-1])<u*u){const[o,r]=oo(t,.5),c=gu((o-n)*(o-n)+(r-e)*(r-e));i=(r-e)/c,s=(o-n)/c}else{const t=gu((o-n)*(o-n)+(c-e)*(c-e));i=(c-e)/t,s=(o-n)/t}const f=function(t,n,e){const o=ft(t[0].map(t=>-t));return du(t.map(t=>r(-n,e,o(t))))}(t,i,s),[[l,a],[p,h]]=f,d=[f[0],[p,a],f[1],[l,h]],v=r(i,s);return d.map(n=>ft(t[0],v(n)))}function xu(t,n,e){const o=n[0]-t[0],r=n[1]-t[1];return o*(e[0]-n[0])+r*(e[1]-n[1])}const wu=function(t,n){if(0===t.length)return;const e=t.slice(),o=function(t){let n,e=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY];for(let o=0;o<t.length;o++){const r=t[o][1];(r<e[1]||r===e[1]&&t[o][0]<e[0])&&(n=o,e=t[o])}return n}(e),[r]=e.splice(o,1);e.sort((t,n)=>{let e=-Vs(r,t,n);return 0!==e?e:(e=t[1]-n[1],0!==e?e:t[0]-n[0])}),e.unshift(r);const c=function(t){const n=[t[0]],e=t.length;for(let o=1;o<t.length;o++){const r=t[(o+e-1)%e],c=t[o];r[0]===c[0]&&r[1]===c[1]||n.push(c)}return n}(e),i=[];for(const t of c){for(;i.length>=2&&Vs(i[i.length-2],i[i.length-1],t)<0;)i.pop();i.push(t)}if(n||i.length<3)return i;const s=[];{const t=i.length;for(let n=0;n<t;n++){const e=(n+1)%t,o=i[(n+t-1)%t],r=i[n],c=i[e];(0!==Vs(o,r,c)||xu(o,r,c)<0)&&s.push(r)}}return s},bu=et(du),_u=No(function(t,n){const e=t.slice().map(function(t,n,e=!0){const o=2**(t-n),r=e?function(t,n){const e=function(t,n){return function(e){const o=Js(Ks(tu(e))),r=n-t+o+1;return r<=0?0:n>=53?e:Gs(e,r)}}(t,n);return function(t){const n=e(t[0]),o=e(t[1]);return n===t[0]&&o===t[1]?t:[n,o]}}(t,n):hu;return t=>{const n=[];for(let e=0;e<t.length;e++){let c=t[e].slice();const i=n[n.length-1],s=i?i[i.length-1]:r(t[0][0]);c[0]=s,c=c.map(t=>r(t)),Us(c)&&(c=[c[0],c[c.length-1]]),c=lu(c,o,r),void 0!==c&&n.push(c)}const e=n.length;if(!e)return[];const c=n[e-1];return c[c.length-1]=n[0][0],n}}(n,46)).filter(t=>t.length>0);return"undefined"!=typeof _debug_&&(_debug_.timing.normalize=performance.now()-_debug_.timing.timingStart),function(t){if("undefined"!=typeof _debug_)for(const n of t){_debug_.elems.loopPre.push(...t),_debug_.elems.loopsPre.push(t);for(const t of n){const n=bu(t),e=mu(t),o=wu(t,!1);_debug_.elems.bezier_.push(t),_debug_.elems.looseBoundingBox_.push(n),_debug_.elems.tightBoundingBox_.push(e),_debug_.elems.boundingHull_.push(o)}}}(e),e}),{max:Mu,abs:Su}=Math;function Cu(t,n){return t[1]>n[1]||!(t[1]<n[1])&&t[0]>=n[0]}function yu(t){const{ps:n,ts:e}=t;return U(n,e[0],e[1])}const{min:Ou,max:Nu}=Math,Eu=et(function(t){const n=t.map(co);return{minX:Ou(...n.map(t=>t.box[0][0])),maxX:Nu(...n.map(t=>t.box[1][0])),minY:Ou(...n.map(t=>t.box[0][1])),maxY:Nu(...n.map(t=>t.box[1][1]))}});function Iu(t,n){let e=0,o=t.length;for(;e<o;){const r=e+o>>>1;t[r]<n?e=r+1:o=r}return e}const ku=et(function(t){const n=new Set,e=new Array(t.length);for(let o=0;o<t.length;o++){const{ps:r}=t[o],[[,c],[,i]]=bu(r);e[o]=[c,i],n.add(c),n.add(i)}const o=Array.from(n).sort((t,n)=>t-n),r=0===o.length?0:2*o.length-1,c=new Array(r);for(let t=0;t<r;t++)c[t]=[];for(let n=0;n<t.length;n++){const[r,i]=e[n],s=2*Iu(o,r),u=2*Iu(o,i);for(let e=s;e<=u;e++){const o=t[n];c[e].push(o)}}return{ys:o,slabs:c}}),{sign:Bu}=Math;function Pu(t,n){const e=0===n?t:t.toReversed(),o=[e[0]?.[1],e[1]?.[1],e[2]?.[1],e[3]?.[1]];let r,c;return r=o[1],c=Bu(r),0!==c?c:(r=o[2],void 0===r?0:(c=Bu(r),0!==c?c:(r=o[3],void 0===r?0:Bu(r))))}function Tu(t,n,e){return 0===e?0===n?function(t){return 4===t.length?function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[u-e+3*(r-i),3*(i+e-2*r),3*(r-e),e]}(t):3===t.length?function(t){const[[n,e],[o,r],[c,i]]=t;return[i+e-2*r,2*(r-e),e]}(t):function(t){const[[n,e],[o,r]]=t;return[r-e,e]}(t)}(t):1===n?function(t){const n=t[1][1];if(2===t.length)return[n];const e=t[2][1];return 3===t.length?[e-2*n,2*n]:[t[3][1]+3*(n-e),3*(e-2*n),3*n]}(t):2===n?function(t){if(2===t.length)return[];const n=t[2][1];return 3===t.length?[n]:[t[3][1]-3*n,3*n]}(t):function(t){return t.length<=3?[]:[t[3][1]]}(t):0===n?1===e?function(t){const n=t[0][1];if(2===t.length)return[-n];const e=t[1][1];return 3===t.length?[-2*e+n,-n]:[3*(e-t[2][1])-n,-3*e+2*n,-n]}(t):2===e?function(t){if(2===t.length)return[];const n=t[0][1];return 3===t.length?[n]:[3*t[1][1]-n,n]}(t):function(t){return t.length<=3?[]:[-t[0][1]]}(t):1===n&&1===e?function(t){if(2===t.length)return[];const n=t[1][1];return 3===t.length?[-2*n]:[3*(n-t[2][1]),-3*n]}(t):2===n&&1===e?function(t){return t.length<=3?[]:[-3*t[2][1]]}(t):1===n&&2===e?function(t){return t.length<=3?[]:[3*t[1][1]]}(t):[]}const Au=No(function(t,n,e){if(function(t,n){const e=Eu(t),o=Eu(n);return e.minX<o.minX||e.maxX>o.maxX||e.minY<o.minY||e.maxY>o.maxY}(n,Lu(e)))return!1;for(const o of function*(){yield 0;for(let t=1;t<=30;t++){const n=2**t;for(let t=1;t<n;t+=2)yield t/n}}())for(const r of n){const n=zu(t,Wo(r,o),e);if(void 0!==n)return n}throw new Error("_isLoopInLoop: no non-degenerate ray-start point found")});function zu(t,n,e){const o=Du(t,e,n);if(void 0!==o)return o%2!=0}const Du=No(function(t,n,e){const[o,r]=e,c=function(t,n){if(t.length<10){const e=[];for(let o=0;o<t.length;o++){const r=t[o],{ps:c}=r,[[,i],[,s]]=bu(c);i<=n&&s>=n&&e.push(r)}return e}const e=ku(t),{ys:o,slabs:r}=e;if(0===o.length||n<o[0]||n>o[o.length-1])return[];const c=Iu(o,n);return r[o[c]===n?2*c:2*c-1]}(n,r);let i=0;for(let n=0;n<c.length;n++){const u=c[n],{ps:f,ts:l}=u;if(bu(f)[0][0]>o)continue;const a=f.map(ft([0,-r])),p=a.length;let h=0;for(;h<p-1&&0===a[h][1];)h++;let d=0;for(;d<p-1&&0===a[p-1-d][1];)d++;const v=Tu(a,h,d),g=Math.min(l[0],l[1]),m=Math.max(l[0],l[1]);if(h>0&&g<=0){const t=Pu(a,0)>0,n=e[0]>=a[0][0];t&&n&&i++}if(d>0&&m>=1){const t=Pu(a,1)>0,n=e[0]>=a[a.length-1][0];t&&n&&i++}const x=eo(v,s(g-2*Jn,0,1),s(m+2*Jn,0,1));if(void 0!==x&&0!==x.length)for(const n of x){const{t:o,multiplicity:r}=n;if(0!==g&&Math.abs(o-g)<=4*Jn||1!==m&&Math.abs(o-m)<=4*Jn)return;const c=Wo(a,o)[0],s=24*2**t*(4*Jn),u=c-s,f=c+s,l=e[0]>u,p=l===e[0]>f;if(p)p&&l&&(i+=r%2);else{const t=Ts(n,v.map(t=>[t]));for(let n=0;n<t.length;n++){const{tS:o,tE:r,multiplicity:c}=t[n],s=Lo(a,Nr(dn(o,r)))[0];Cu([0,e[0]],s)&&(i+=c%2)}}}}return i}),Lu=et(function(t){return t.map(yu)});function Wu(t){const n=t._x_,e=t.twin._x_,o=n.x.curve,r=n.x.ri.t,c=e.x.curve,i=e.x.ri.t;let s=o,u=r;const f=[];for(;;){if(s===c&&(u<i||u===i&&0!==f.length)){const t=s.ps,n=[u,i];return f.push({ps:t,ts:n}),f}{const t=s.ps,n=[u,1];f.push({ps:t,ts:n})}u=0,s=s.next}}const qu=et(function(t){const n=[];for(const e of t.path)if(e.swapped){const t=Wu(e.twin);for(let e=t.length-1;e>=0;e--){const{ps:o,ts:r}=t[e];n.push({ps:o,ts:[r[1],r[0]]})}}else n.push(...Wu(e));return n});function ju(t,n,e){let o=n;const r=Array.from(n.children);for(;r.length;)c(r.pop());return o;function c(n){const c=qu(n);if(Au(t,e,c)){o=n;for(const t of n.children)r.push(t)}}}const Fu=No(function(t,n,e){const o=[],r=[];let c=e;const i=function(t,n,e){const o=function(t,n){return function(e,o,r){if(t.has(e))return;const c=e;void 0===c.orientation&&(c.orientation=o,c.parent=r,c.windingNum=r.windingNum+c.orientation,n.push(c))}}(e,n);return function(n){let e,r=n.twin,c=1,i=r;for(;i=1===t.orientation?i.nextAround:i.prevAround,i!==r;){if(c-=i.dir,-1===i.dir)continue;const n=i;e?0===c?o(n,t.orientation,t.parent):-1===c&&o(n,-t.orientation,t.parent):0===c?e=n:1===c&&o(n,t.orientation,t)}return e}}(e,o,t);do{t.add(c),n.add(c.container),r.push(c),c=i(c)}while(c!==e);return e.path=r,o});function Hu(t,n,e){const o=[t];for(;o.length;){const t=o.pop();if(n.has(t))continue;t.children=new Set;const r=Fu(n,e,t);t.parent.children=t.parent.children||new Set,t.parent.children.add(t),o.push(...r)}}const Yu=No(function(t,n){const e={dir:void 0,idx:0,parent:void 0,children:new Set,windingNum:0,_x_:void 0,orientation:0,twin:void 0,path:void 0,nextAround:void 0,prevAround:void 0,loop:void 0,container:void 0},o=new Set,r=new Set;for(let c=0;c<n.length;c++){const i=n[c];if(r.has(i)||0===i.inOuts.length)continue;const{inOuts:s}=i,u=s[0],f=s[s.length-1],l=1===u.dir?u:f,a=ju(t,e,l.loop);l.parent=a,l.orientation=f.dir,l.windingNum=a.windingNum+f.dir,l.children=new Set,Hu(l,o,r)}return e});function Ru(t){return{t,tS:t,tE:t,multiplicity:1}}function Xu(t){return(t.tS+t.tE)/2}const Qu=dn,Vu=wt,$u=vt,Uu=de,{abs:Zu}=Math;const{abs:Gu}=Math;const{abs:Ju}=Math,Ku=de,tf=dn,nf=wt,ef=vt,{abs:of}=Math;function rf(t,n){const[e,o]=n,r=e.length,c=o.length,i=e[r-1],s=o[c-1],u=1===r&&1===c;{const{vₓₓ:n,vₓᵧ:e,vᵧᵧ:o,vₓ:r,vᵧ:c,v:f}=function(t){const[[n,e,o],[r,c,i]]=function(t){const[[n,e],[o,r],[c,i]]=t;return[[c+n-2*o,2*(o-n),n],[i+e-2*r,2*(r-e),e]]}(t),s=n*c-e*r,u=n*i-o*r;return{vₓₓ:-r*r,vₓᵧ:2*n*r,vᵧᵧ:-n*n,vₓ:c*s-2*r*u,vᵧ:2*n*u-e*s,v:s*(e*i-o*c)-u*u}}(t),{vₓₓ_:l,vₓᵧ_:a,vᵧᵧ_:p,vₓ_:h,vᵧ_:d,v_:v}=function(t){const[n,e]=t[0],[[o,r],[c,i]]=function(t){const[[n,e],[o,r],[c,i]]=t,s=Gu(n),u=Gu(o),f=Gu(c),l=Gu(e),a=Gu(r);return[[f+s+2*u,2*(u+s),0],[Gu(i)+l+2*a,2*(a+l),0]]}(t),s=Ju(n),u=Ju(e),f=o*i+r*c,l=o*u+s*c;return{vₓₓ_:c*c,vₓᵧ_:2*o*c,vᵧᵧ_:o*o,vₓ_:i*f+2*c*l,vᵧ_:2*o*l+r*f,v_:f*(r*u+s*i)+l*l}}(t),g=u?0:1,m=of(i),x=of(s);if((g+12)*Ji*(l*(m*m)+a*(m*x)+p*(x*x)+(h*m+d*x)+v)<of(n*i*i+e*i*s+o*s*s+(r*i+c*s)+f))return!1}{const{coeffs:{vₓₓ:n,vₓᵧ:r,vᵧᵧ:c,vₓ:u,vᵧ:f,v:l},errorBound:{vₓₓ_:a,vₓᵧ_:p,vᵧᵧ_:h,vₓ_:d,vᵧ_:v,v_:g}}=br(t),m=Ns(e),x=Ns(o),w=of(i),b=of(s),_=w/3,M=b/3,S=Ku(m,m),C=S[1],y=2*(w*_+C),O=Ku(x,x),N=O[1],E=2*(b*M+N),I=Ku(m,x),k=of(I[1]),B=w*M+_*b+2*k,P=Ku(n,S),T=of(n[1])*y+a*C+2*of(P[1]),A=Ku(r,I),z=of(r[1])*B+p*k+2*of(A[1]),D=Ku(c,O),L=of(c[1])*E+h*N+2*of(D[1]),W=Ku(m,u),q=of(u[1])*_+d*w+2*of(W[1]),j=Ku(x,f),F=of(f[1])*M+v*b+2*of(j[1]),H=tf(P,A),Y=T+z+of(H[1]),R=tf(H,D),X=Y+L+of(R[1]),Q=tf(W,j),V=q+F+of(Q[1]),$=tf(R,Q),U=X+V+of($[1]),Z=tf($,l),G=U+g+of(Z[1]);if(Ki*G<of(bt(Z)))return!1}{const n=function(t){return Hc(Nc(t))}(t);if(void 0===n)return u&&i===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓ:r,vₓᵧ:c,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=n;return 0===St(ef(ef(ef(nf(r,nf(e,e)),nf(c,nf(e,o))),nf(f,nf(o,o))),ef(ef(nf(e,l),nf(o,a)),p)))}}const{abs:cf}=Math,sf=de,uf=dn,ff=wt,lf=vt,{abs:af}=Math;function pf(t,n){const[e,o]=n,r=e.length,c=o.length,i=e[r-1],s=o[c-1],u=1===r&&1===c;{const{vₓₓₓ:n,vₓₓᵧ:e,vₓᵧᵧ:o,vᵧᵧᵧ:r,vₓₓ:c,vₓᵧ:f,vᵧᵧ:l,vₓ:a,vᵧ:p,v:h}=function(t){const[[n,e,o,r],[c,i,s,u]]=function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[s-n+3*(o-c),3*(c+n-2*o),3*(o-n),n],[u-e+3*(r-i),3*(i+e-2*r),3*(r-e),e]]}(t),f=n*s,l=o*c,a=n*i,p=e*c,h=n*n,d=c*c,v=n*u-r*c,g=f-l,m=a-p,x=e*u-r*i,w=e*s-o*i,b=o*u-r*s,_=2*g,M=v*v,S=v*w,C=_*x,y=m*x,O=-3*v-w,N=-3*M-2*S+(C+m*b),E=2*(v*g-y),I=v*m-g*g+m*w;return{vₓₓₓ:-c*d,vₓₓᵧ:3*n*d,vₓᵧᵧ:-3*c*h,vᵧᵧᵧ:n*h,vₓₓ:O*d+m*(s*c-i*i)+_*i*c,vₓᵧ:2*(m*(e*i-(l+f)/2)-(O*n*c+g*(p+a))),vᵧᵧ:O*h+m*(o*n-e*e)+_*e*n,vₓ:c*N+(i*E+s*I),vᵧ:-n*N-(e*E+o*I),v:v*(C-M-S)+(I*b-y*x)}}(t),{vₓₓₓ_:d,vₓₓᵧ_:v,vₓᵧᵧ_:g,vᵧᵧᵧ_:m,vₓₓ_:x,vₓᵧ_:w,vᵧᵧ_:b,vₓ_:_,vᵧ_:M,v_:S}=function(t){const[n,e]=t[0],[[o,r,c],[i,s,u]]=function(t){const[[n,e],[o,r],[c,i],[s,u]]=t,f=Gu(n),l=Gu(o),a=Gu(c),p=Gu(s),h=Gu(e),d=Gu(r),v=Gu(i);return[[p+f+3*(l+a),3*(a+f+2*l),3*(l+f),0],[Gu(u)+h+3*(d+v),3*(v+h+2*d),3*(d+h),0]]}(t),f=cf(n),l=cf(e),a=o*u,p=c*i,h=o*s,d=r*i,v=o*o,g=i*i,m=o*l+f*i,x=a+p,w=h+d,b=r*l+f*s,_=r*u+c*s,M=c*l+f*u,S=2*x,C=m*m,y=m*_,O=S*b,N=w*b,E=3*m+_,I=3*C+2*y+(O+w*M),k=2*(m*x+N),B=m*w+x*x+w*_;return{vₓₓₓ_:i*g,vₓₓᵧ_:3*o*g,vₓᵧᵧ_:3*i*v,vᵧᵧᵧ_:o*v,vₓₓ_:E*g+w*(u*i+s*s)+S*s*i,vₓᵧ_:2*(w*(r*s+(p+a)/2)+(E*o*i+x*(d+h))),vᵧᵧ_:E*v+w*(c*o+r*r)+S*r*o,vₓ_:i*I+(s*k+u*B),vᵧ_:o*I+(r*k+c*B),v_:m*(O+C+y)+(B*M+N*b)}}(t),C=i*i,y=s*s,O=n*(C*i)+e*(C*s)+(o*(i*y)+r*(y*s))+(c*C+f*(i*s)+l*y)+(a*i+p*s+h),N=u?0:1,E=af(i),I=af(s),k=E*E,B=I*I;if((N+26)*Ji*(d*(k*E)+v*(k*I)+(g*(E*B)+m*(B*I))+(x*k+w*(E*I)+b*B)+(_*E+M*I+S))<af(O))return!1}{const{coeffs:{vₓₓₓ:n,vₓₓᵧ:r,vₓᵧᵧ:c,vᵧᵧᵧ:u,vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d},errorBound:{vₓₓₓ_:v,vₓₓᵧ_:g,vₓᵧᵧ_:m,vᵧᵧᵧ_:x,vₓₓ_:w,vₓᵧ_:b,vᵧᵧ_:_,vₓ_:M,vᵧ_:S,v_:C}}=Dr(t),y=af(n[1]),O=af(r[1]),N=af(c[1]),E=af(u[1]),I=Ns(e),k=Ns(o),B=af(i),P=af(s),T=B/3,A=P/3,z=sf(I,I),D=z[1],L=2*(B*T+D),W=sf(I,z),q=af(W[1]),j=B*L+T*D+2*q,F=sf(k,k),H=F[1],Y=2*(P*A+H),R=sf(k,F),X=af(R[1]),Q=P*Y+A*H+2*X,V=sf(k,z),$=af(V[1]),U=P*L+A*D+2*$,Z=sf(I,F),G=af(Z[1]),J=B*Y+T*H+2*G,K=sf(I,k),tt=af(K[1]),nt=B*A+T*P+2*tt,et=sf(n,W),ot=y*j+v*q+2*af(et[1]),rt=sf(r,V),ct=O*U+g*$+2*af(rt[1]),it=sf(c,Z),st=N*J+m*G+2*af(it[1]),ut=sf(u,R),ft=E*Q+x*X+2*af(ut[1]),lt=sf(f,z),at=af(f[1])*L+w*D+2*af(lt[1]),pt=sf(l,K),ht=af(l[1])*nt+b*tt+2*af(pt[1]),dt=sf(a,F),vt=af(a[1])*Y+_*H+2*af(dt[1]),gt=sf(I,p),mt=af(p[1])*T+M*B+2*af(gt[1]),xt=sf(k,h),wt=af(h[1])*A+S*P+2*af(xt[1]),_t=uf(et,rt),Mt=ot+ct+af(_t[1]),St=uf(it,ut),Ct=st+ft+af(St[1]),yt=uf(_t,St),Ot=Mt+Ct+af(yt[1]),Nt=uf(lt,pt),Et=at+ht+af(Nt[1]),It=uf(Nt,dt),kt=Et+vt+af(It[1]),Bt=uf(yt,It),Pt=Ot+kt+af(Bt[1]),Tt=uf(gt,xt),At=mt+wt+af(Tt[1]),zt=uf(Tt,d),Dt=At+C+af(zt[1]),Lt=uf(Bt,zt),Wt=Pt+Dt+af(Lt[1]);if(Ki*Wt<af(bt(Lt)))return!1}{const n=function(t){return ii(Oc(t))}(t);if(void 0===n)return u&&i===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓₓ")||(n.vₓₓₓ=[0],n.vₓₓᵧ=[0],n.vₓᵧᵧ=[0],n.vᵧᵧᵧ=[0]),n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓₓ:r,vₓₓᵧ:c,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=n,m=ff(e,e),x=ff(e,m),w=ff(o,o),b=ff(o,w),_=ff(o,m),M=ff(e,w),S=ff(e,o),C=ff(r,x),y=ff(c,_),O=ff(f,M),N=ff(l,b),E=ff(a,m),I=ff(p,S),k=ff(h,w),B=ff(e,d),P=ff(o,v),T=lf(C,y),A=lf(O,N),z=lf(T,A),D=lf(E,I),L=lf(D,k),W=lf(z,L),q=lf(B,P),j=lf(q,g);return 0===St(lf(W,j))}}function hf(t,n){if(4===t.length)return pf(t,n);if(3===t.length)return rf(t,n);if(2===t.length)return function(t,n){const[e,o]=n,r=e.length,c=o.length,i=e[r-1],s=o[c-1],u=1===r&&1===c;{const{coeffs:{vₓ:n,vᵧ:r,v:c},errorBound:{v_:u}}=ur(t),f=Ns(e),l=Ns(o),a=Zu(i),p=Zu(s),h=Zu(n[1]),d=Zu(r[1]),v=a/3,g=p/3,m=n[1]*i,x=Uu(f,n),w=h*v+2*Zu(m),b=r[1]*s,_=Uu(l,r),M=d*g+2*Zu(b),S=Qu(x,_),C=w+M+Zu(S[1]),y=Qu(S,c),O=C+u+Zu(y[1]);if(Ki*O<Zu(bt(y)))return!1}{const n=function(t){return Bc(Ec(t))}(t);if(void 0===n)return u&&i===t[0][0]&&s===t[0][1];const{vₓ:r,vᵧ:c,v:f}=n,l=Vu(e,r),a=Vu(o,c);return 0===St($u($u(l,a),f))}}(t,n);if(1===t.length){const e=ce(n[0]),o=ce(n[1]);return 1===e.length&&1===o.length&&e[0]===t[0][0]&&o[0]===t[0][1]}throw new Error("The given bezier curve must be of order <= 3")}function df(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}const vf=dt,gf=Number.EPSILON;function mf(t){return[4*t[0],4*t[1]]}const xf=ko,wf=dn,bf=le,_f=de,Mf=hr,Sf=mf,Cf=vn;function yf(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],[d,v]=n,g=xf(i,d),m=xf(u,d),x=xf(l,d),w=xf(p,d),b=xf(s,v),_=xf(f,v),M=xf(a,v),S=xf(h,v),C=_f(g,g),y=bf(6,_f(g,m)),O=bf(6,_f(g,x)),N=Mf(_f(g,w)),E=bf(9,_f(m,m)),I=bf(18,_f(m,x)),k=bf(6,_f(m,w)),B=bf(9,_f(x,x)),P=bf(6,_f(x,w)),T=_f(w,w),A=_f(b,b),z=bf(6,_f(b,_)),D=bf(6,_f(b,M)),L=Mf(_f(b,S)),W=bf(9,_f(_,_)),q=bf(18,_f(_,M)),j=bf(6,_f(_,S)),F=bf(9,_f(M,M)),H=bf(6,_f(M,S)),Y=_f(S,S),R=wf(k,B),X=wf(N,I),Q=wf(O,E),V=wf(j,F),$=wf(L,q),U=wf(D,W);return[bf(6,wf(wf(wf(wf(Cf(T,P),Cf(C,y)),R),Cf(Q,X)),wf(wf(wf(Cf(Y,H),Cf(A,z)),V),Cf(U,$)))),bf(5,wf(Cf(wf(wf(P,bf(5,y)),bf(3,X)),Mf(wf(wf(R,Mf(Q)),bf(3,C)))),Cf(wf(wf(H,bf(5,z)),bf(3,$)),Mf(wf(wf(V,Mf(U)),bf(3,A)))))),Sf(wf(Cf(Cf(R,bf(3,Cf(X,Mf(Q)))),bf(5,Cf(Mf(y),bf(3,C)))),Cf(Cf(V,bf(3,Cf($,Mf(U)))),bf(5,Cf(Mf(z),bf(3,A)))))),bf(3,wf(Cf(X,Mf(Cf(Mf(Q),bf(5,Cf(y,Mf(C)))))),Cf($,Mf(Cf(Mf(U),bf(5,Cf(z,Mf(A)))))))),Mf(wf(Cf(Q,bf(5,Cf(y,bf(3,C)))),Cf(U,bf(5,Cf(z,bf(3,A)))))),wf(Cf(y,bf(6,C)),Cf(z,bf(6,A)))]}const Of=ko,Nf=dn,Ef=le,If=de,kf=hr,Bf=vn,Pf=mf;function Tf(t,n){const[[e,o],[r,c],[i,s]]=t,[u,f]=n,l=Of(e,u),a=Of(r,u),p=Of(i,u),h=Of(o,f),d=Of(c,f),v=Of(s,f),g=If(l,l),m=If(l,a),x=If(l,p),w=If(a,a),b=If(a,p),_=If(p,p),M=If(h,h),S=If(h,d),C=If(h,v),y=If(d,d),O=If(d,v),N=If(v,v),E=Nf(C,kf(y)),I=Nf(x,kf(w));return[Nf(Bf(Nf(Nf(N,M),kf(E)),Pf(Nf(O,S))),Bf(Nf(Nf(_,g),kf(I)),Pf(Nf(b,m)))),Ef(3,Nf(Nf(Bf(O,E),Bf(Ef(3,S),M)),Nf(Bf(b,I),Bf(Ef(3,m),g)))),Nf(Bf(E,Ef(3,Bf(kf(S),M))),Bf(I,Ef(3,Bf(kf(m),g)))),Nf(Bf(S,M),Bf(m,g))]}function Af(t){return[-2*t[0],-2*t[1]]}const zf=hn,Df=dn,Lf=Af;function Wf(t,n){const[[e,o],[r,c]]=t,[i,s]=n,u=e-i,f=r-i,l=o-s,a=c-s,p=zf(u,u),h=zf(u,f),d=zf(f,f),v=zf(l,l),g=zf(l,a),m=zf(a,a),x=Df(h,g),w=Df(v,p);return[Df(Df(d,m),Df(w,Lf(x))),vn(x,w)]}function qf(t){const n=[];for(let e=0;e<t.length;e++)n.push(-2*t[e]);return n}const jf=dt,Ff=xt,Hf=Dc,Yf=qf,Rf=dt,Xf=xt,Qf=Dc;function Vf(t){const n=[];for(let e=0;e<t.length;e++)n.push(4*t[e]);return n}const $f=dt,Uf=qf,{abs:Zf}=Math;function Gf(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=Zf(e[0]),s=Zf(e[1]),u=Zf(o[0]),f=Zf(o[1]),l=Zf(r[0]),a=Zf(r[1]),p=Zf(c[0]),h=Zf(c[1]),d=Zf(n[0]),v=Zf(n[1]),g=i+d,m=u+d,x=l+d,w=p+d,b=s+v,_=f+v,M=a+v,S=h+v,C=g*g,y=6*g*m,O=6*x*w,N=b*b,E=6*b*_,I=6*M*S,k=6*m*w+9*x*x,B=2*g*w+18*m*x,P=6*g*x+9*m*m,T=6*_*S+9*M*M,A=2*b*S+18*_*M,z=6*b*M+9*_*_;return[6*(w*w+O+(C+y)+k+(P+B)+(S*S+I+(N+E)+T+(z+A))),5*(O+5*y+3*B+2*(k+2*P+3*C)+(I+5*E+3*A+2*(T+2*z+3*N))),4*(k+3*(B+2*P)+5*(2*y+3*C)+(T+3*(A+2*z)+5*(2*E+3*N))),3*(B+2*(2*P+5*(y+2*C))+(A+2*(2*z+5*(E+2*N)))),2*(P+5*(y+3*C)+(z+5*(E+3*N))),y+6*C+(E+6*N)]}function Jf(t,n){const e=t[0],o=t[1],r=t[2],c=Zf(e[0]),i=Zf(e[1]),s=Zf(o[0]),u=Zf(o[1]),f=Zf(r[0]),l=Zf(r[1]),a=Zf(n[0]),p=Zf(n[1]),h=c+a,d=s+a,v=f+a,g=i+p,m=u+p,x=l+p,w=h*h,b=h*d,_=d*v,M=g*g,S=g*m,C=m*x,y=g*x+m*m*2,O=h*v+d*d*2;return[x*x+M+2*y+4*(C+S)+(v*v+w+2*O+4*(_+b)),3*(C+y+(3*S+M)+(_+O+(3*b+w))),y+3*(2*S+M)+(O+3*(2*b+w)),S+M+(b+w)]}function Kf(t,n){const e=t[0],o=t[1],r=Zf(e[0]),c=Zf(e[1]),i=Zf(o[0]),s=Zf(o[1]),u=Zf(n[0]),f=Zf(n[1]),l=r+u,a=i+u,p=c+f,h=s+f,d=l*a+p*h,v=p*p+l*l;return[a*a+h*h+2*d+v,d+v]}function tl(t,n){const e=t.length-1;if(3===e)return{polyDd:yf(t,n),polyE:Gf(t,n).map(t=>20*t),getPolyExact:()=>function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],[d,v]=n,g=jf(i,d),m=jf(u,d),x=jf(l,d),w=jf(p,d),b=jf(s,v),_=jf(f,v),M=jf(a,v),S=jf(h,v),C=wt(g,g),y=Ff(6,wt(g,m)),O=Ff(6,wt(g,x)),N=Hf(wt(g,w)),E=Ff(9,wt(m,m)),I=Ff(18,wt(m,x)),k=Ff(6,wt(m,w)),B=Ff(9,wt(x,x)),P=Ff(6,wt(x,w)),T=wt(w,w),A=wt(b,b),z=Ff(6,wt(b,_)),D=Ff(6,wt(b,M)),L=Hf(wt(b,S)),W=Ff(9,wt(_,_)),q=Ff(18,wt(_,M)),j=Ff(6,wt(_,S)),F=Ff(9,wt(M,M)),H=Ff(6,wt(M,S)),Y=wt(S,S),R=vt(k,B),X=vt(N,I),Q=vt(O,E),V=vt(j,F),$=vt(L,q),U=vt(D,W),Z=Mt(vt(vt(T,C),vt(R,Q)),vt(vt(X,P),y)),G=Mt(vt(vt(Y,A),vt(V,U)),vt(vt($,H),z)),J=Ff(6,vt(Z,G)),K=vt(Yf(vt(vt(R,Hf(Q)),Ff(3,C))),vt(vt(P,Ff(3,X)),Ff(5,y))),tt=vt(Yf(vt(vt(V,Hf(U)),Ff(3,A))),vt(vt(H,Ff(3,$)),Ff(5,z))),nt=Ff(5,vt(K,tt)),et=vt(vt(R,Ff(3,Mt(Hf(Q),X))),Ff(5,Mt(Ff(3,C),Hf(y)))),ot=vt(vt(V,Ff(3,Mt(Hf(U),$))),Ff(5,Mt(Ff(3,A),Hf(z)))),rt=Ff(4,vt(et,ot)),ct=Mt(X,Hf(Mt(Hf(Q),Ff(5,Mt(y,Hf(C)))))),it=Mt($,Hf(Mt(Hf(U),Ff(5,Mt(z,Hf(A)))))),st=Ff(3,vt(ct,it)),ut=Mt(Q,Ff(5,Mt(y,Ff(3,C)))),ft=Mt(U,Ff(5,Mt(z,Ff(3,A))));return[J,nt,rt,st,Hf(vt(ut,ft)),vt(Mt(y,Ff(6,C)),Mt(z,Ff(6,A)))].map(ce)}(t,n)};if(2===e)return{polyDd:Tf(t,n),polyE:Jf(t,n).map(t=>16*t),getPolyExact:()=>function(t,n){const[[e,o],[r,c],[i,s]]=t,[u,f]=n,l=Rf(e,u),a=Rf(r,u),p=Rf(i,u),h=Rf(o,f),d=Rf(c,f),v=Rf(s,f),g=wt(l,l),m=wt(l,a),x=wt(l,p),w=wt(a,a),b=wt(a,p),_=wt(p,p),M=wt(h,h),S=wt(h,d),C=wt(h,v),y=wt(d,d),O=wt(d,v),N=wt(v,v),E=vt(C,Qf(y)),I=vt(x,Qf(w)),k=vt(Mt(vt(_,Qf(I)),Vf(vt(b,m))),g),B=vt(Mt(vt(N,Qf(E)),Vf(vt(O,S))),M),P=vt(k,B),T=vt(Mt(b,I),Mt(Xf(3,m),g)),A=vt(Mt(O,E),Mt(Xf(3,S),M));return[P,Xf(3,vt(T,A)),vt(Mt(E,Xf(3,Mt(Qf(S),M))),Mt(I,Xf(3,Mt(Qf(m),g)))),vt(Mt(S,M),Mt(m,g))].map(ce)}(t,n)};if(1===e)return{polyDd:Wf(t,n),polyE:Kf(t,n).map(t=>12*t),getPolyExact:()=>function(t,n){const[[e,o],[r,c]]=t,[i,s]=n,u=$f(e,i),f=$f(r,i),l=$f(o,s),a=$f(c,s),p=wt(u,u),h=wt(u,f),d=wt(f,f),v=wt(l,l),g=wt(l,a),m=wt(a,a),x=vt(h,g),w=vt(v,p);return[vt(vt(d,m),vt(Uf(x),w)),Mt(x,w)].map(ce)}(t,n)};if(0===e)return{polyDd:[[0,1]],polyE:[0],getPolyExact:()=>[[1]]};throw new Error("The given bezier curve must be of order 1, 2 or 3")}const{sqrt:nl}=Math;function el(t,n,e=0,o=1){const{polyDd:r,polyE:c,getPolyExact:i}=tl(t,n),s=eo(r,e,o,c,i)||[];s.push({t:e,tS:e,tE:e,multiplicity:1}),s.push({t:o,tS:o,tE:o,multiplicity:1});const u=s.map(e=>{const o=rs(t,[e.tS,e.tE]),r=function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1],i=o[0],s=o[1],u=n[0],f=n[1];let l=1/0,a=-1/0;for(const[t,n]of[[r,c],[r,s],[i,c],[i,s]]){const e=vf(t,u),o=vf(n,f),r=bt(vt(wt(e,e),wt(o,o))),c=r*(1-gf),i=r*(1+gf);c<=l&&(l=c),i>=a&&(a=i)}return[l,a]}(o,n);return{p:df(o),t:e.t,d:(nl(r[0])+nl(r[1]))/2,dSquaredI:r,box:o,ri:e}});let f=1/0;for(let t=0;t<u.length;t++){const n=u[t].dSquaredI[1];n<f&&(f=n)}const l=[];for(let t=0;t<u.length;t++){const n=u[t];n.dSquaredI[0]<=f&&l.push(n)}return l}function ol(t,n){const{coeffs:e,errBound:o,getPExact:r}=Qi(t,n);return eo(e,0,1,o,r)}const{min:rl,max:cl}=Math;function il(t,n){let[[e,o],[r,c]]=t,[[i,s],[u,f]]=n;if(e>r&&([e,r]=[r,e]),i>u&&([i,u]=[u,i]),o>c&&([o,c]=[c,o]),s>f&&([s,f]=[f,s]),e<=u&&r>=i&&s<=c&&f>=o)return[[cl(e,i),cl(o,s)],[rl(r,u),rl(c,f)]]}function sl(t,n,e){const{ps:o}=t,{ps:r}=n;if(void 0===e)return;if(0===e.length)return[];const c=ol(r,o);if(void 0===c)return;if(0===c.length)return[];const i=c.map(t=>rs(o,[t.tS,t.tE])),s=e.map(t=>rs(r,[t.tS,t.tE])),u=[];for(let r=0;r<c.length;r++){const f=i[r];for(let i=0;i<e.length;i++){if(void 0===il(f,s[i]))continue;const l=Wo(o,c[r].t),a={ri:c[r],p:l,kind:1,curve:t},p={ri:e[i],p:l,kind:1,curve:n};u.push([a,p])}}return u}function ul(t,n,e){for(const o of[t,n]){const r=o.length;for(let c=1;c<r+1;c++){const i=o[c-1],s=o[c%r],u=[s[1]-i[1],i[0]-s[0]];let f=1/0,l=-1/0;for(let n=0;n<t.length;n++){const e=u[0]*t[n][0]+u[1]*t[n][1];e<f&&(f=e),e>l&&(l=e)}let a=1/0,p=-1/0;for(let t=0;t<n.length;t++){const e=u[0]*n[t][0]+u[1]*n[t][1];e<a&&(a=e),e>p&&(p=e)}if(e&&(l<a||p<f))return!1;if(!e&&(l<=a||p<=f))return!1}}return!0}const fl=Nt,{abs:ll}=Math;function al(t){return 4===t.length&&su(t)&&(t=Kc(t)),3===t.length&&function(t){const[[n,e],[o,r],[c,i]]=t,s=n+c,u=s-2*o,f=ll(s)+ll(u);if(ll(u)-f>0)return!1;const l=e+i,a=l-2*r,p=ll(l)+ll(a);return!(ll(a)-p>0)&&0===St(Mt(fl(n,c),[2*o]))&&0===St(Mt(fl(e,i),[2*r]))}(t)&&(t=[t[0],t[2]]),2===t.length&&ou(t)&&(t=[t[0]]),t}const pl=Number.EPSILON,hl=pl/2;function dl(t,n){return n<0?t<1?t:1-hl:0===n?1:t>1?t:1+pl}function vl(t){const n=function(t){const n=new ArrayBuffer(8);return new DataView(n).setFloat64(0,t,!1),Array.from(new Uint8Array(n))}(t),e=n[0],o=n[1],r=e>>7,c=((127&e)<<4)+((240&o)>>4),i=0===c?0:16,s=0===c?c-1022:c-1023,u=n.slice(1);return u[0]=(15&o)+i,{sign:r,exponent:s,significand:u}}function gl(t){return vl(t).significand}function ml(t){return Math.log2(t&-t)}function xl(t){if(0===t||!Number.isFinite(t))return NaN;const n=gl(t),e=n.length;for(let t=e-1;t>=0;t--){if(0===n[t])continue;const o=ml(n[t]);if(Number.isFinite(o))return 8*(e-t-1)+o}return NaN}function wl(t){return t>=128?7:t>=64?6:t>=32?5:t>=16?4:t>=8?3:t>=4?2:t>=2?1:t>=1?0:NaN}function bl(t){if(0===t||!Number.isFinite(t))return NaN;const n=gl(t),e=n.length;for(let t=0;t<e;t++){const o=wl(n[t]);if(Number.isFinite(o))return 8*(e-t-1)+o}return NaN}function _l(t){return vl(t).exponent}function Ml(t){if(0===t||!Number.isFinite(t))return NaN;const n=_l(t);return bl(t)-52+n}function Sl(t,n){if(0===St(t=ce(t)))return[0];const e=Ml(t[t.length-1]);let o=e,r=t.length-1;for(;r>0;){const c=Ml(t[r-1]);if(e-c>n)break;o=c,r--}const c=Math.min(n-(e-o),53);let i=t[r];i=Gs(i,c);const s=t.slice(r);return s[0]=i,s}function Cl(t){return 0===t?0:bl(t)-xl(t)+1}function yl(t){const n=ce(t);if(0===St(n))return 0;const e=n[n.length-1],o=n[0];return _l(e)-_l(o)+(53-xl(o))}function Ol(t){return bt(function(t,n,e){let o=n,r=t,c=!1,i=0;e||(i=yl(r)-yl(o)+1,e=i/53+1,c=!0);let s=[1/bt(o)],u=1;for(;;){if(r=wt(r,s),u>e)return c?(r=Sl(r,i),r):r.slice(r.length-e,r.length);o=wt(o,s),s=Mt([2],o),u*=2}}(t[0],t[1],2))}function Nl(t){return St(t[0])*St(t[1])}function El(t){return(n,e)=>{const o=yc(n),r=yc(e),c=yc(n.slice().reverse()),i=yc(e.slice().reverse()),s=t(o,r),u=t(c,r),f=t(o,i),l=t(c,i),a=-Nl(u),p=-Nl(l),h=Ol(s),d=Ol(f);return[dl(h,a),dl(d,p)]}}const Il=El(function(t,n){const e=0===St(t[0][0])?1:0;return function(t,n){const[e,o]=t,[,r]=n;return[Mt(r,o),e]}(t[e],n[e])});function kl(t,n){return St(Mt(t,n))}function Bl(t,n){return kl(wt(t[0],n[1]),wt(t[1],n[0]))*St(t[1])*St(n[1])}function Pl(t){let n=-1024;for(let e=0;e<t.length;e++){const o=t[e];for(let t=0;t<o.length;t++){const e=o[t];if(0===e)continue;const r=-_l(e)+Cl(e)-1;r>n&&(n=r)}}return 0===n?t.map(t=>t.map(t=>BigInt(t))):n>0?t.map(t=>t.map(t=>{if(0===t)return 0n;const e=-_l(t)+Cl(t)-1;return BigInt(t*2**e)*2n**BigInt(n-e)})):t.map(t=>t.map(t=>BigInt(t*2**n)))}function Tl(t,n){if(n=n<0n?-n:n,0n===(t=t<0n?-t:t))return n;if(0n===n)return t;for(;0n!==n;){const e=n;n=t%n,t=e}return t}const Al=BigInt(2**53);function zl(t){if(0n===t)return[0];const n=[];let e=0,o=t;for(;0n!==o;){o=t/Al;const r=t%Al;n.push(Number(r)*2**(53*e)),t=o,e++}return ce(n)}const{round:Dl,sqrt:Ll}=Math;function Wl(t){if(t<=1n){if(t<0n)throw new Error("square root of negative numbers are not allowed");return t}let n=BigInt(Dl(Ll(Number(t))));for(;;){const e=n+t/n>>1n;if(e===n)return n;n=e}}function ql(t){return t<0n?-t:t}function jl(t){let n=0n;for(let e=0;e<t.length;e++)n+=t[e];return n}function Fl(t,n){const[e,o]=Hl(t[0],n[0]),[r,c]=Hl(t[1],n[1]);if(0===Bl(e,r)||0===Bl(e,c))return e;if(0===Bl(o,r)||0===Bl(o,c))return o;throw new Error("An unexpected error occured.")}function Hl(t,n){const[e,o]=t,[r,c]=n,[i,s]=function(t){const[n,e]=Pl(t).map(jl),o=Tl(n,e);return[zl(Wl(ql(n/o))),zl(Wl(ql(e/o)))]}([r,e]);return[[Mt(wt(c,s),wt(o,i)),wt(i,Dc(e))],[Mt(wt(c,_t(s)),wt(o,i)),wt(i,Dc(e))]].sort(Bl)}function Yl(t,n){const e=yc(t),o=0===St(e[0][0])?0:0===St(e[1][0])?1:-1;if(-1!==o){const e=t[0][o],r=t[2][o],c=n[0][o],i=n[2][o];return Il([[e,e],[r,r]],[[c,c],[i,i]])}return El(Fl)(t,n)}const{round:Rl,cbrt:Xl}=Math;function Ql(t){const n=(e=t)>0n?1n:e<0n?-1n:0n;var e;if((t=ql(t))<=1n)return n*t;let o=BigInt(Rl(Xl(Number(t))));for(;;){const e=(2n*o+t/(o*o))/3n;if(e===o)return n*o;o=e}}function Vl(t){return wt(t,t)}const $l=El(function(t,n){const e=0===St(t[0][0])?1:0;return function(t,n){const[e,o]=t,[r,c]=n,i=function(t){const[n,e]=Pl(t).map(jl),o=Tl(n,e);return[zl(Ql(n/o)),zl(Ql(e/o))]}([r,e]),s=Vl(i[0]);return[Mt(wt(c,Vl(i[1])),wt(o,s)),wt(xt(3,e),s)]}(t[e],n[e])}),{EPSILON:Ul}=Number,Zl=Ul/2+Ul**2/2;function Gl(t){return t>0?t-t*Zl:t+t*Zl}const{EPSILON:Jl}=Number,Kl=Jl/2+Jl**2/2;function ta(t){return t>0?t+t*Kl:t-t*Kl}function na(t){if(0===t||1===t)return[t,t];const n=Gl(Gl(t)),e=function(t){return ta(ta(t))}(t);return[n,e]}const ea=No(function(t,n,e){const o=t.ps,r=n.ps,c=[];let i=ol(o,r);if(void 0===i){const e=function(t,n,e=!1){e||(t=al(t),n=al(n));const o=[,,Il,Yl,$l],[r,c]=o[t.length](t,n),[i,s]=o[t.length](n,t),u=[{tA:r,tB:0,bez:"B",start:!0},{tA:c,tB:1,bez:"B",start:!1},{tA:0,tB:i,bez:"A",start:!0},{tA:1,tB:s,bez:"A",start:!1}].sort((t,n)=>t.tA-n.tA);if(u[1].tA===u[2].tA){const n=u[1],e=n.tA,o=n.tB,r=rs(t,[e,e]);return[{p:r[0],kind:4,box:r,t1:e,ri1:{t:e,tS:e,tE:e,multiplicity:1},t2:o,ri2:{t:o,tS:o,tE:o,multiplicity:1}}]}if(u[0].bez===u[1].bez)return[];const f=u[1],l=u[2],[a,p]=na(f.tA),[h,d]=na(f.tB),[v,g]=na(l.tA),[m,x]=na(l.tB),w=rs(t,[a,p]),b=rs(n,[h,d]),_=rs(t,[v,g]),M=rs(n,[m,x]),S=il(w,b),C=il(_,M),y={t:a,tS:a,tE:p,multiplicity:1},O={t:h,tS:h,tE:d,multiplicity:1},N={t:v,tS:v,tE:g,multiplicity:1},E={t:m,tS:m,tE:x,multiplicity:1};return[{p:df(S),kind:5,box:S,t1:y.t,ri1:y,t2:O.t,ri2:O},{p:df(C),kind:5,box:C,t1:N.t,ri1:N,t2:E.t,ri2:E}]}(o,r);for(const r of e){const e=Wo(o,r.ri1.t),i={ri:r.ri1,kind:5,p:e,curve:t},s={ri:r.ri2,kind:5,p:e,curve:n};c.push([i,s])}return c}return e&&(i=i.filter(t=>t.tS>0)),0===i.length?[]:sl(t,n,i)||[]});function oa(t,n,e){const{ps:o}=n;return{ri:Ru(t),p:Wo(o,t),kind:e,curve:n}}function ra(t,n){const e=t.ps,o=n.ps;if(2===e.length&&2===o.length)return function(t,n){let e=t.ps,o=n.ps;const r=bu(e),c=bu(o);if(t.next!==n&&n.next!==t){if(xo(!0,r,c)){const e=ea(t,n,!1);return e.length?e:void 0}return}n.next===t&&([t,n]=[n,t],[e,o]=[o,e]);if(0!==Vs(e[0],e[1],o[1]))return;if(!xo(!1,r,c))return;let i;return i=nu(e[0],e[1])>nu(o[0],o[1])?[Xu(el(e,o[1])[0].ri),1]:[0,Xu(el(o,e[0])[0].ri)],[[oa(1,t,5),oa(0,n,5)],[oa(i[0],t,5),oa(i[1],n,5)]]}(t,n);if(t.next===n||n.next===t)return xo(!1,bu(e),bu(o))&&ul(wu(e,!1),wu(o,!1),!1)?n.next===t?ea(n,t,!0):ea(t,n,!0):ca(t,n);let r=xo(!0,bu(e),bu(o));return r?(r=ul(wu(e,!1),wu(o,!1),!0),r?ea(t,n,!1):void 0):void 0}function ca(t,n){if(n.next===t){if(t.next===n)return;[t,n]=[n,t]}const e=t.ps,o=n.ps;if(hf(e,o[o.length-1].map(t=>[t]))){const e=sl(t,n,[Ru(1)]);if(void 0===e||0===e.length)return;return[[e[0][0],oa(1,n,1)]]}}function ia(t){return t[t.length-1]<0?_t(t):t}function sa(t,n){const e=t+n,o=e-t;return[t-(e-o)+(n-o),e]}Number.EPSILON;const ua=Number.EPSILON/2;function fa(t,n,e,o){const r=t/n,c=Math.abs(t),i=Math.abs(n),s=i-o;return s<=0?{est:r,err:Number.POSITIVE_INFINITY}:{est:r,err:(i*e+c*o)/s**2+ua*Math.abs(c/i)}}function la(t){const n=t[0],e=t[1];if(0===e)return[0,0];const o=Math.sqrt(e),r=o*o,c=134217729*o,i=c-(c-o),s=o-i,u=.5*(e-r-(s*s-(r-i*i-i*s*2))+n)/o;return[u-(o+u-o),o+u]}const{abs:aa}=Math;const{abs:pa}=Math,ha=wt,da=vt,va=Mt,ga=wt,ma=xt,xa=ko,wa=sa,ba=Uo,_a=dn,Ma=hr,Sa=is,Ca=vt,ya=Et,Oa=2*Ui,{abs:Na}=Math;function Ea(t,n=!0){if(t.length<4)return[];const{coeffs:[e,o,r],errBound:[c,i,s]}=function(t){const{coeffs:[[n,e,o],[r,c,i]],errorBound:[[s,u],[f,l]]}=function(t){const[[n,e],[o,r],[c,i],[s,u]]=t,f=s-n,l=o-c,a=f+3*l,p=c+n,h=p-2*o,d=o-n,v=u-e,g=r-i,m=v+3*g,x=i+e,w=x-2*r,b=r-e;return{coeffs:[[a,3*h,3*d,n],[m,3*w,3*b,e]],errorBound:[[aa(f)+6*aa(l)+aa(a),6*(aa(p)+aa(h)),6*aa(d),0],[aa(v)+6*aa(g)+aa(m),6*(aa(x)+aa(w)),6*aa(b),0]]}}(t),a=pa(n),p=pa(e),h=pa(o),d=pa(r),v=pa(c),g=pa(i),m=e*r,x=n*c,w=n*i,b=o*r,_=e*i,M=o*c,S=u*d+p*f+pa(m),C=s*v+a*l+pa(x),y=s*g+pa(w),O=h*f+pa(b),N=u*g+pa(_),E=h*l+pa(M),I=m-x,k=pa(I),B=S+C+k,P=b-w,T=pa(P),A=O+y+T,z=_-M,D=pa(z),L=N+E+D,W=I*I,q=I*P,j=z*I,F=P*P,H=j+F;return{coeffs:[W,q,H],errBound:[2*B*k+pa(W),B*T+k*A+pa(q),L*k+D*B+pa(j)+(2*T*A+pa(F))+pa(H)].map(t=>Ji*t)}}(t);if(Na(e)<=c){const[[n,e],[o,r],[c,i],[s,u]]=t,f=Ca(xa(s,n),ma(3,xa(o,c))),l=ya(wa(c,n),-2*o),a=Ca(xa(u,e),ma(3,xa(r,i))),p=ya(wa(i,e),-2*r);if(0===kl(ga(l,a),ga(f,p)))return[]}const u=o*o,f=4*e*r,l=u-f,a=2*i*Na(o)+Ji*u+(4*(c*Na(r)+Na(e)*s)+Ji*Na(f))+Ji*Na(l);if(l<-a)return[];if(l>a){const{est:t,err:u}=function(t,n){if(t-n<=0){const e=t>0?Math.sqrt(t):0;return{est:e,err:Math.max(Math.sqrt(t+n)-e,e)}}const e=Math.sqrt(t),o=Math.sqrt(t-n),r=Math.sqrt(t+n);return{est:e,err:Math.max(Math.abs(o-e),Math.abs(r-e))}}(l,a);let f;f=o>=0?-o-t:-o+t;const p=i+u+Ji*Na(f),{est:h,err:d}=fa(f,2*e,p,2*c),{est:v,err:g}=fa(2*r,f,2*s,p);if(n){if(h+d<0||h-d>1||v+g<0||v-g>1)return[]}else if((h+d<0||h-d>1)&&(v+g<0||v-g>1))return[]}let[p,h,d]=function(t){const[[n,e,o],[r,c,i]]=Oc(t),s=ha(e,r),u=ha(n,c),f=ha(n,i),l=ha(o,r),a=ha(e,i),p=ha(o,c),h=Mt(s,u),d=Mt(l,f),v=Mt(a,p),g=ha(h,h),m=ha(h,d),x=ha(h,v),w=ha(d,d);return[g,m,da(x,w)]}(t);const v=va(ga(h,h),ma(4,ga(p,d))),g=St(v);if(g<0)return[];if(g>0){const t=la(Ns(v));let e;p=Ns(p),h=Ns(h),d=Ns(d),e=St(h)>=0?ba(_a(h,t)):_a(ba(h),t);let o=bt(Sa(e,Ma(p))),r=bt(Sa(Ma(d),e));if(n){if(o<-Oa||o>1+Oa||r<-Oa||r>1+Oa)return[]}else if((o<-Oa||o>1+Oa)&&(r<-Oa||r>1+Oa))return[];return[o,r]=o<r?[o,r]:[r,o],o>=0-Oa&&o<=1+Oa?r>=0-Oa&&r<=1+Oa?[o,r]:[o]:r>=0-Oa&&r<=1+Oa?[r]:[]}const m=qf(p);if(St(h)*St(m)<0)return[];if(kl(ia(h),ia(m))>0)return[];const x=Ns(h),w=Ns(m),b=Sa(x,w),_=b[1]+b[0];return[_,_]}function Ia(t){if(4===t.length){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[6*(s-n+3*(o-c)),6*(c+n-2*o)],[6*(u-e+3*(r-i)),6*(i+e-2*r)]]}if(3===t.length){const[[n,e],[o,r],[c,i]]=t;return[[2*(c-2*o+n)],[2*(i-2*r+e)]]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}function ka(t){if($s(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&su(t)&&(t=Kc(t)),3===t.length){const n=function(t){const[[n,e],[o,r],[c,i]]=t,s=c-o,u=s-(o-n),f=i-r,l=f-(r-e);return[u*u+l*l,-(n*(u-o)-o*(s-o)+e*(l-r)-r*(f-r))]}(t);return{minima:[],maxima:eo(n,0,1)?.map(t=>t.t)||[],inflections:[]}}const n=function(t){const[[n,e,o],[r,c,i]]=pt(t),[[s,u],[f,l]]=Ia(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[6*(s-n+3*(o-c))],[6*(u-e+3*(r-i))]]}if(t.length<=3)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=a*c,d=p*e,v=u*i,g=u*c,m=f*f,x=s*i,w=l*o,b=l*e,_=f*o,M=o*e,S=o*n,C=o*r,y=e*e,O=e*n,N=e*c,E=n*i,I=n*r,k=n*n,B=i*c,P=i*r,T=c*c,A=c*r,z=r*r,D=a*i-p*o,L=u*o+l*i,W=v-w,q=o*o+i*i,j=N+E,F=P+T,H=S+y,Y=e*r+n*c,R=k-z,X=O-A,Q=M-B,V=o*c+e*i,$=P+F,U=S+H,Z=C+j,G=N+j,J=U-$,K=j+E,tt=C+N+E,nt=2*b+_;return{inflectionPoly:[s*r-f*n,u*r+s*c-l*n-f*e,g+x-b-_,v-w],otherExtremaPoly:[k*(h-3*d)+z*(3*h-d)+2*(I*(a*e-p*c+3*(l*f-u*s))+3*s*f*X)+3*(Y*(m-s*s)+R*(u*f+l*s)),a*(r*(U+3*F)+n*G)-p*(o*(3*k+z)+e*(3*O+2*A)+n*$)+3*(u*(l*R-u*I+2*(f*X-s*Y))+s*(2*l*X+f*(2*(S-P)+(y-T))-s*tt)+l*(l*I+2*f*Y)+m*Z),a*(2*o*Y+e*K+c*(4*P+$))-p*(2*o*(3*O+A)+e*(y+2*P)+c*K)+3*(u*(2*(l*X-s*tt)+f*J-u*Y)+s*(2*f*Q-s*V)+l*(l*Y+2*f*Z+s*J)+m*V),a*(o*(C+2*j)+i*(y+3*F))-p*(o*(3*H+$)+i*G)+3*(u*(l*J-u*Z+2*(f*Q-s*V))+s*(o*(nt-s*i)-i*(2*l*c+f*i))+l*(l*j+o*(2*f*c+l*r))+f*i*nt),q*(h-d)+2*(M+B)*D-3*(L*(g+x-b-_)+(u*e+s*o+l*c+f*i)*W),D*q-3*L*W]}}(t),e=n.inflectionPoly,o=n.otherExtremaPoly,r=eo(o,0,1)?.map(t=>t.t)||[],c=function(t){const n=t.length-1;if(n<=0)return[];const e=new Array(n);for(let o=0;o<n;o++)e[o]=(n-o)*t[o];return e}(o),i=[],s=[];for(let t=0;t<r.length;t++){const n=r[t],o=at(c,n);(at(e,n)*o>=0?i:s).push(n)}return{minima:i,maxima:s,inflections:eo(e,0,1)?.map(t=>t.t)||[]}}const{sqrt:Ba}=Math;function Pa(t,n){const[e,o]=function(t,n){const[e,o]=pt(t),[r,c]=Ia(t),i=at(e,n),s=at(o,n),u=at(r,n);return[i*at(c,n)-s*u,Ba((i*i+s*s)**3)]}(t,n);return e/o}const{abs:Ta}=Math;function Aa(t){return 4===t.length?function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[s-n+3*(o-c),2*(c+n-2*o),o-n],[u-e+3*(r-i),2*(i+e-2*r),r-e]]}(t):3===t.length?function(t){const[[n,e],[o,r],[c,i]]=t;return[[c+n-2*o,o-n],[i+e-2*r,r-e]]}(t):function(t){const[[n,e],[o,r]]=t;return[[o-n],[r-e]]}(t)}function za(t){if(2===t.length)return[];const[n,e]=Aa(t);return[...eo(n,0,1)||[],...eo(e,0,1)||[]]}const Da=No(function(t){const n=[];for(const e of t)for(const t of e.curves)n.push(t);const e=go(n,t=>bu(t.ps)[0][0],t=>bu(t.ps)[1][0],ra),o=[];for(const t of e)for(const n of t.u)o.push(n);return o}),La=No(function(t){const n=[];for(const e of t)for(const t of e.curves){const e=t.ps,o=Ea(e);if(0===o.length)continue;const r=o[0]===o[1]?3:2,c=o[0],i=o[1],s=c-4*Jn,u=c+4*Jn,f=i-4*Jn,l=i+4*Jn,a=Wo(e,c),p={ri:{t:s,tS:s,tE:u,multiplicity:1},p:a,kind:r,curve:t},h={ri:{t:f,tS:f,tE:l,multiplicity:1},p:a,kind:r,curve:t};n.push([p,h])}return n}),Wa=No(function(t){const n=[];for(const e of t)for(const t of e.curves)n.push([oa(1,t,4),oa(0,t.next,4)]);return n}),qa=No(function(t,n){const e=[],o=1e7*2**-t;for(const t of n)for(const n of t.curves){const{ps:t}=n,r=ka(t),{minima:c,maxima:i}=r,s=[0,1,...c,...i];for(let r of s)if(Ta(Pa(t,r))>o){const t=oa(r,n,7),o=oa(r,n,7);e.push([t,o])}}return e}),ja=No(function(t){const n=[];for(let e of t)for(let t of e.curves){const{ps:e}=t,o=za(e).map(n=>{const{t:o}=n,r=Wo(e,o);return[{p:r,ri:n,kind:8,curve:t},{p:r,ri:n,kind:8,curve:t}]});n.push(...o)}return n}),Fa=No(function(t,n,e){let o=[t.map((t,e)=>[n[e],{...n[e]}]),Da(t),La(t),Wa(t),qa(e,t),ja(t)].flat(1);return"undefined"!=typeof _debug_&&_debug_.elems.intersection.push(...o.flat()),o});function Ha(t){const{ps:n}=t,e=n[0],o=n[n.length-1];let r=e[1]<o[1]?{ri:Ru(0),p:e,kind:0,curve:t}:{ri:Ru(1),p:o,kind:0,curve:t};if(2===n.length){if(e[1]===o[1]){const n=[(e[0]+o[0])/2,(e[1]+o[1])/2];return{ri:Ru(.5),p:n,kind:0,curve:t}}return r}const[,c]=Aa(n),i=eo(c,0,1)||[];for(let e=0;e<i.length;e++){const o=i[e],c=Wo(n,o.t);c[1]<r.p[1]&&(r={ri:o,p:c,kind:0,curve:t})}return r}function Ya(t){let n=1/0,e=-1/0,o=1/0,r=-1/0;for(const c of t){const t=c[0],i=c[1];t<n&&(n=t),t>e&&(e=t),i<o&&(o=i),i>r&&(r=i)}return[[n,o],[e,r]]}function Ra(t){const{curves:n}=t;let e,o=n[0],r=1/0;for(const t of n){const{ps:n}=t;if(Ya(n)[0][1]>r)continue;const c=Ha(t),i=c.p[1];(void 0===e||i<r||i===r&&c.ri.t>e.ri.t)&&(e=c,o=t,r=i)}return e}const Xa=et(function(t){let n=0;for(const e of t)switch(e.length){case 2:n+=Qa(e,0,1);break;case 3:n+=(2*Qa(e,0,1)+Qa(e,0,2)+2*Qa(e,1,2))/3;break;case 4:n+=(6*Qa(e,0,1)+3*Qa(e,0,2)+Qa(e,0,3)+3*Qa(e,1,2)+3*Qa(e,1,3)+6*Qa(e,2,3))/10}return n/2});function Qa(t,n,e){return t[n][0]*t[e][1]-t[e][0]*t[n][1]}const{abs:Va}=Math;function $a(t){return t.map(t=>t.toReversed()).toReversed()}const{sign:Ua}=Math;function Za(t,n){return t.ps===n.ps&&t.ts[1]===n.ts[0]&&(t.ts[1]-t.ts[0])*(n.ts[1]-n.ts[0])>0}function Ga(t,n){return{ps:t.ps,ts:[t.ts[0],n.ts[1]]}}function Ja(t,n){const{idx:e}=n;let o=t[e];return void 0===o&&(o={bigBox:n.bigBox,box:n.box,inOuts:[],xs:n.xs},t[e]=o),o}function Ka(t,n,e){return{idx:t.idx,_x_:t._x_,dir:n,swapped:e,oSideIdxs:t.oSideIdxs,oFSC:t.oFSC,oFSCE:t.oFSCE,oSideIdx:t.oSideIdx,container:void 0,orientation:void 0,windingNum:void 0,children:void 0,nextAround:void 0,parent:void 0,path:void 0,prevAround:void 0,twin:void 0,loop:void 0}}const{sign:tp}=Math;function np(t){const{ps:n,ts:e}=t;return{ps:n,ts:[e[1],e[0]]}}function ep(t){return t.map(t=>{const n=t[0].out.orientation;return t.map(({out:t,depth:e})=>function(t,n,e){const{orientation:o}=t,r=(e%2==0?1:-1)*n,c=qu(t);return r*o>0?c:c.map(np).toReversed()}(t,n,e))})}const{ceil:op,log2:rp}=Math;function cp(n,e={}){"undefined"!=typeof _debug_&&(_debug_.timing.timingStart=performance.now());const o=op(rp(function(t){let n=-1/0;for(const e of t)for(const t of e)for(const e of t)for(const t of e)n=Mu(n,Su(t));return n}(n))),{minLoopArea:r=(2**(o-16))**2,forceOrientationNegative:c=!1,booleanOp:i="OR"}=e,s=o-46+("undefined"==typeof _debug_?4:30),u=(n=_u(n,o).sort(io)).map(t),f=u.map(Ra);"undefined"!=typeof _debug_&&f.forEach(t=>_debug_.elems.minY.push(t));const l=Fa(u,f,o),a=Qs(l,o,s);"undefined"!=typeof _debug_&&_debug_.elems.container.push(...a);const p=a.filter(t=>Ws(t.xs)),h=uo(Yu(o,p)).map(ao(i)).filter(t=>0!==t.length);return function(n,e,o){const r=n.map(t=>t.map(t=>function(t){const n=t.length;return 0===n?t:t.map((e,o)=>{const r=t[(o+1)%n][0],c=e.length-1;return e.map((t,n)=>n===c?[...r]:t)})}(function(t){if(t.length<2)return t;const n=[];for(const e of t){const t=n[n.length-1];void 0!==t&&Za(t,e)?n[n.length-1]=Ga(t,e):n.push(e)}for(;n.length>=2&&Za(n[n.length-1],n[0]);)n[0]=Ga(n.pop(),n[0]);return n}(t).map(yu)))),c=e?r.map(t=>{return-1!==(n=t[0],Ua(Xa(n)))?t.map($a):t;var n}):r,i=No(function(t){return function(n){const e=[];for(let o=0;o<n.length;o++){const r=n[o].filter(n=>Va(Xa(n))>t);r.length&&e.push(r)}return e}}(o)),s=i(c).map(t=>t.toSorted(io));let u=0;const f=Rs(s,n=>t(n,u++));return function(t){if("undefined"!=typeof _debug_){for(const n of t)_debug_.elems.loop.push(...n),_debug_.elems.loops.push(n);"undefined"!=typeof _debug_&&(_debug_.timing.simplifyPaths=performance.now()-_debug_.timing.timingStart-_debug_.timing.normalize)}}(f),f}(function(t,n,e,o){const{containers_:r,minYContainers:c}=function(t,n,e){t.forEach((t,n)=>t.idx=n);const o=[],r=[];for(let t=0;t<n.length;t++){const c=n[t],i=tp(c[0].windingNum-c[0].parentWinding);for(let n=0;n<c.length;n++){const s=c[n],{out:u,depth:f,windingNum:l,parentWinding:a}=s,p=tp(l-a)!==(f%2==0?1:-1)*i,h=p?u.path.toReversed():u.path,d=new Set;for(const r of h){const{twin:c}=r,i=r.dir*(p?-1:1),s=Ka(r,i,p),u=Ka(c,-i,p);s.twin=u,u.twin=s;const f=Ja(o,r._x_.container);f.inOuts.push(s);const l=Ja(o,c._x_.container);l.inOuts.push(u),s.container=f,u.container=l;const a=Lu(e[t][n]);s.loop=a,u.loop=a,d.add(f)}r.push(d)}}const c=new Set;for(let t=0;t<r.length;t++){const n=r[t];let e,o=1/0;for(const t of n)t.box[0][1]<o&&(e=t,o=t.box[0][1]);c.add(e)}o.forEach(t=>{(t.inOuts.length>2||c.has(t))&&t.inOuts.sort(As)}),o.forEach(t=>Xs(t.inOuts));const i=Array.from(c);return i.sort((t,n)=>t.box[0][1]-n.box[0][1]),{containers_:o,minYContainers:i}}(e,n,o);return"undefined"!=typeof _debug_&&(_debug_.elems.container.length=0,_debug_.elems.container.push(...r.filter(t=>void 0!==t))),ep(uo(Yu(t,c)).map(ao("OR")).filter(t=>0!==t.length))}(o,h,a,ep(h)),c,r)}const{max:ip,abs:sp}=Math;function up(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],d=n[0],v=n[1],g=i-d,m=u-d,x=l-d,w=p-d,b=s-v,_=f-v,M=a-v,S=h-v,C=g*g,y=6*g*m,O=6*x*w,N=b*b,E=6*b*_,I=6*M*S,k=6*m*w+9*x*x,B=2*g*w+18*m*x,P=6*g*x+9*m*m,T=6*_*S+9*M*M,A=2*b*S+18*_*M,z=6*b*M+9*_*_;return[6*(w*w-O+(C-y)+k+(P-B)+(S*S-I+(N-E)+T+(z-A))),5*(O+5*y+3*B-2*(k+2*P+3*C)+(I+5*E+3*A-2*(T+2*z+3*N))),4*(k-3*(B-2*P)-5*(2*y-3*C)+(T-3*(A-2*z)-5*(2*E-3*N))),3*(B-2*(2*P-5*(y-2*C))+(A-2*(2*z-5*(E-2*N)))),2*(P-5*(y-3*C)+(z-5*(E-3*N))),y-6*C+(E-6*N)]}function fp(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=r[0],l=r[1],a=n[0],p=n[1],h=c-a,d=s-a,v=f-a,g=i-p,m=u-p,x=l-p,w=h*h,b=h*d,_=d*v,M=g*g,S=g*m,C=m*x,y=g*x+m*m*2,O=h*v+d*d*2;return[x*x+M+2*y-4*(C+S)+(v*v+w+2*O-4*(_+b)),3*(C-y+(3*S-M)+(_-O+(3*b-w))),y-3*(2*S-M)+(O-3*(2*b-w)),S-M+(b-w)]}function lp(t,n){const[[e,o],[r,c]]=t,[i,s]=n,u=e-i,f=r-i,l=o-s,a=c-s,p=u*f+l*a,h=l*l+u*u;return[f*f+a*a+(h-2*p),p-h]}const{sqrt:ap}=Math;function pp(t,n,e=!0){let o;if(4===t.length)o=up(t,n);else if(3===t.length)o=fp(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:en(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}o=lp(t,n)}const r=eo(o,0,1)?.map(t=>t.t)||[];e&&(r.push(0),r.push(1));let c,i=1/0;for(const e of r){const o=oo(t,e),r=nu(o,n);r<i&&(i=r,c={p:o,t:e,d:ap(r)})}return c}const{sqrt:hp}=Math,{abs:dp}=Math;function vp(t){let n=-1/0;for(let e=0;e<t.length;e++){const o=t[e],r=dp(o[0]),c=dp(o[1]);r>n&&(n=r),c>n&&(n=c)}return n}const{max:gp}=Math;function mp(t){return gp(t.hL+t.hEL,t.hR+t.hER)}function xp(t,n){const e=mp(t)-mp(n);return 0!==e?e:t.tS-n.tS}class wp{compare;heap=[];constructor(t){this.compare=t}insert(t){const n=this.heap;n.push(t);let e=n.length-1;for(;;){const o=(e-1-(e+1)%2)/2;if(-1===o)return;const r=n[o];if(this.compare(t,r)<0)break;n[o]=t,n[e]=r,e=o}}popMax(){const t=this.heap,n=t[0];return t[0]=t[t.length-1],t.length--,this.swimDown(),n}swimDown(){const t=this.heap,n=t.length;let e=0;for(;;){const o=2*e+1;if(o>=n)break;const r=2*e+2,c=r>=n||this.compare(t[o],t[r])>0?o:r,i=t[c],s=t[e];if(this.compare(s,i)>0)break;t[c]=s,t[e]=i,e=c}}swapMinOrMax(t){this.heap[0]=t,this.swimDown()}static getParentIdx(t){return(t-1-(t+1)%2)/2}static getLeftChild(t){return 2*t+1}static getRightChild(t){return 2*t+2}}const{max:bp}=Math;function _p(t,n,e){const o=(e+n)/2,r=U(t,n,o),c=U(t,o,e);return[vu(r),vu(c)]}function Mp(t,n,e,o=50){return function(t,n,e,o=50){if(1===t.length){const e=pp(n,t[0]);return{d:e.d,tA:0,pA:t[0],tB:e.t,pB:e.p}}if(1===n.length){const e=function(t,n){let e;if(4===t.length)e=up(t,n);else if(3===t.length)e=fp(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:en(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}e=lp(t,n)}const o=eo(e,0,1)?.map(t=>t.t)||[];o.push(0),o.push(1);let r,c=-1/0;for(const e of o){const o=oo(t,e),i=nu(o,n);i>c&&(c=i,r={p:o,t:e,d:hp(i)})}return r}(t,n[0]);return{d:e.d,tA:e.t,pA:e.p,tB:0,pB:n[0]}}if(2===t.length&&2===n.length){const e=pp(n,t[0]),o=pp(n,t[t.length-1]);return e.d>o.d?{d:e.d,tA:0,pA:t[0],tB:e.t,pB:e.p}:{d:o.d,tA:1,pA:t[t.length-1],tB:o.t,pB:o.p}}const r=bp(vp(t),vp(n));e=e||r/1e6;const[c,i]=_p(t,0,1),s={tS:0,tE:1,hL:pp(n,t[0]).d,hR:pp(n,t[t.length-1]).d,hEL:c,hER:i},u=new wp(xp);u.insert(s);let f=0,l=-1/0,a=0;for(;;){const r=u.heap[0],{tS:c,tE:i,hL:s,hR:p}=r,h=(c+i)/2,[d,v]=_p(t,c,h),[g,m]=_p(t,h,i),x=oo(t,h),w=en(x,pp(n,x).p);let b=s,_=c;if(w>b&&(b=w,_=h),p>b&&(b=p,_=i),b>l&&(l=b,a=_),mp(r)-l<e)break;if(f++>o)break;const M={tS:c,tE:h,hL:s,hR:w,hEL:d,hER:v},S={tS:h,tE:i,hL:w,hR:p,hEL:g,hER:m};u.swapMinOrMax(M),u.insert(S)}const p=oo(t,a),h=pp(n,p);return{d:l,tA:a,pA:p,tB:h.t,pB:h.p}}(t,n,e,o).d}function Sp(t,n=!1){const e=t;let o=e;const r=[];do{n&&o===e||z(o)||r.push(o),o=o.nextOnCircle}while(o!==e);return r}function Cp(t){const n=[],e=[t],o=new Set;for(;e.length>0;){const t=tn(e.pop());if(0===t.length)continue;n.push(t);const r=t[0],c=t[t.length-1].next.prevOnCircle;o.add(r),o.add(c);const i=Sp(r,!0),s=Sp(c,!0),u=i.filter(t=>!o.has(t)),f=s.filter(t=>!o.has(t));for(const t of u)o.add(t);for(const t of f)o.add(t);e.push(...u,...f)}return n}function yp(t){return{color:0,parent:void 0,left:void 0,right:void 0,datum:t}}class Op{compare;root;size;minNode;maxNode;minNodeStale=!0;maxNodeStale=!0;constructor(t){this.compare=t,this.root=void 0,this.size=0,this.minNode=void 0,this.maxNode=void 0,this.minNodeStale=!0,this.maxNodeStale=!0}isEmpty(){return void 0===this.root}find(t){let n=this.root;for(;n;){const e=this.compare(t,n.datum);if(0===e)return n;n=e<0?n.left:n.right}}insert(t){if(this.minNodeStale=!0,this.maxNodeStale=!0,void 0===this.root)return this.root=yp(t),this.root.color=1,void(this.size=1);let n,e=this.root;for(;e;){n=e;const o=this.compare(t,e.datum);if(0===o)return void(e.datum=t);e=o<0?e.left:e.right}const o=yp(t);o.parent=n,this.compare(t,n.datum)<0?n.left=o:n.right=o,this.size++,this.fixInsert(o)}remove(t){const n=this.find(t);if(void 0===n)return;const e=n.datum;return this.removeNode(n),this.size--,this.minNodeStale=!0,this.maxNodeStale=!0,e}findBounds(t){let n=this.root;const e=[void 0,void 0];for(;n;)this.compare(t,n.datum)>=0?(e[0]=n,n=n.right):(e[1]=n,n=n.left);return e}getMinNode(){if(!this.minNodeStale)return this.minNode;let t=this.root;for(;t&&t.left;)t=t.left;return this.minNode=t,this.minNodeStale=!1,t}getMaxNode(){if(!this.maxNodeStale)return this.maxNode;let t=this.root;for(;t&&t.right;)t=t.right;return this.maxNode=t,this.maxNodeStale=!1,t}checkIntegrity(){if(void 0===this.root)return!0;if(1!==this.root.color)return!1;const t=this.compare;let n;return-1!==function e(o){if(void 0===o)return 1;const{left:r,right:c}=o;if(0===o.color&&(0===r?.color||0===c?.color))return-1;const i=e(r);if(-1===i)return-1;if(void 0!==n&&t(n.datum,o.datum)>=0)return-1;n=o;const s=e(c);return-1===s||i!==s?-1:i+(1===o.color?1:0)}(this.root)}toStr(t){let n="";return void 0===this.root||function e(o){n+=t(o),void 0!==o.left&&(n+="(",e(o.left),n+=")"),void 0!==o.right&&(n+="[",e(o.right),n+="]")}(this.root),n}toArr(){const t=[];return function n(e){void 0!==e&&(n(e.left),t.push(e.datum),n(e.right))}(this.root),t}removeNode(t){this.minNodeStale=!0,this.maxNodeStale=!0;let n,e,o=t,r=o.color;if(void 0===t.left)n=t.right,e=t.parent,this.transplant(t,t.right);else if(void 0===t.right)n=t.left,e=t.parent,this.transplant(t,t.left);else{for(o=t.right;o.left;)o=o.left;r=o.color,n=o.right,o.parent===t?(e=o,n&&(n.parent=o)):(e=o.parent,this.transplant(o,o.right),o.right=t.right,o.right.parent=o),this.transplant(t,o),o.left=t.left,o.left.parent=o,o.color=t.color}1===r&&this.fixDelete(n,e)}fixInsert(t){let n=t;for(;n.parent&&0===n.parent.color;){const t=n.parent,e=t.parent;if(t===e.left){const o=e.right;0===this.colorOf(o)?(t.color=1,o.color=1,e.color=0,n=e):(n===t.right&&(n=t,this.rotateLeft(n)),n.parent.color=1,e.color=0,this.rotateRight(e))}else{const o=e.left;0===this.colorOf(o)?(t.color=1,o.color=1,e.color=0,n=e):(n===t.left&&(n=t,this.rotateRight(n)),n.parent.color=1,e.color=0,this.rotateLeft(e))}}this.root.color=1}fixDelete(t,n){let e=t,o=n;for(;e!==this.root&&1===this.colorOf(e)&&void 0!==o;)if(e===o?.left){let t=o.right;0===this.colorOf(t)&&(t.color=1,o.color=0,this.rotateLeft(o),t=o.right),1===this.colorOf(t?.left)&&1===this.colorOf(t?.right)?(t&&(t.color=0),e=o,o=e?.parent):(1===this.colorOf(t?.right)&&(t?.left&&(t.left.color=1),t&&(t.color=0,this.rotateRight(t)),t=o.right),t&&(t.color=o.color),o.color=1,t?.right&&(t.right.color=1),this.rotateLeft(o),e=this.root,o=void 0)}else{let t=o?.left;0===this.colorOf(t)&&(t.color=1,o.color=0,this.rotateRight(o),t=o.left),1===this.colorOf(t?.left)&&1===this.colorOf(t?.right)?(t&&(t.color=0),e=o,o=o?.parent):(1===this.colorOf(t?.left)&&(t?.right&&(t.right.color=1),t&&(t.color=0,this.rotateLeft(t)),t=o?.left),t&&(t.color=o.color),o.color=1,t?.left&&(t.left.color=1),this.rotateRight(o),e=this.root,o=void 0)}e&&(e.color=1)}transplant(t,n){void 0===t.parent?this.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n&&(n.parent=t.parent)}rotateLeft(t){const n=t.right;t.right=n.left,n.left&&(n.left.parent=t),n.parent=t.parent,void 0===t.parent?this.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n}rotateRight(t){const n=t.left;t.left=n.right,n.right&&(n.right.parent=t),n.parent=t.parent,void 0===t.parent?this.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n}colorOf(t){return t?t.color:1}}function Np(t){const n=new Map;return k(t).forEach(function(t){const e=t.pointOnShape.curve.loop;let o=n.get(e);o||(o=new Op(qn),n.set(e,o)),o.insert(t)}),n}const{max:Ep}=Math;function Ip(t,n=.125,e=50){let o=Q(t.cpNode);for(;!z(o);)o=o.next;const r=Cp(o),c=new Set;for(let t=0;t<r.length;t++){const o=r[t];let i=0;for(;i<o.length;){const t=i;for(;(i++,i!==o.length)&&!(kp(t,i,o,e)>n);)c.add(o[i])}}o=function(t,n){const e=n;do{if(t(n))return n;n=n.next}while(n!==e)}(z,o);for(const n of c)Fn(t=>2!==T(t)&&!t.isHoleClosing)(n)||J(n,t.meta);return{cpNode:o,meta:{...t.meta,cpTrees:Np(o)}}}function kp(t,n,e,o){const r=[],c=$t(e[t],e[n].next);for(;t<n+1;t++)r.push(Mp(Ut(e[t]),c,o));return Ep(...r)}function Bp(t){const n=k(t);return n.reduce(function(t,n){return t.pointOnShape.circle.radius>=n.pointOnShape.circle.radius?t:n},n[0])}function Pp(t){const n=[],e=k(t);for(const t of e)W(t)&&!t.isHoleClosing&&n.push(t);return n}const Tp=function(t,n,e){const o=t.get(n);return void 0!==o&&o.has(e)},Ap=function(t,n,e){let o=t.get(n);void 0===o&&(o=new Set,t.set(n,o)),o.add(e)};function zp(t){let n=t,e=t.prevOnCircle;for(;z(e);)e=e.prevOnCircle;const o=[];do{z(n)||o.push(n),n=n.nextOnCircle}while(n!==e);return o}function Dp(t,n){const e=new Map,o=new Map;return H(t,function(t){const r=o.get(t)||n*t.pointOnShape.circle.radius,c=t.next,i=function(t,n,e=.4,o=16){if(4===n.length)return En(t,n,e,o);if(3===n.length)return Cn(t,n,e,o);if(2===n.length)return on(t,n);if(1===n.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}([0,1],Ut(t)),s=c.pointOnShape.circle.radius;if(r-i>n*s)for(const t of A(c))if(o.set(t,r-i),!c.isHoleClosing){const{center:t}=c.pointOnShape.circle;Ap(e,t[0],t[1])}}),e}function Lp(t,n){let e=0;"undefined"!=typeof _debug_&&(e=performance.now());const o=Bp(Q(t.cpNode));!function(t,n){const e=Pp(n);for(;e.length;){const o=e.pop(),{center:r}=o.pointOnShape.circle;if(!Tp(t,r[0],r[1])||o.isIntersection)continue;let c=o.prevOnCircle,i=!1;for(;!i;){c=c.next;const{center:e}=c.pointOnShape.circle;if(Tp(t,e[0],e[1]))if(Gt(c,n))i=!0;else{if(1===zp(c).length)continue;i=!0}else{for(;z(c.prevOnCircle);)c=c.prevOnCircle;i=!0}}if(i){const t=c.prevOnCircle;t.next=c,c.prev=t,t.nextOnCircle=c,c.prevOnCircle=t}}}(Dp(o,n),o);const r={cpNode:o,meta:{...t.meta,cpTrees:Np(o)}};return function(t){"undefined"!=typeof _debug_&&(_debug_.timing.sats=performance.now()-t)}(e),r}const Wp={maxCurviness:.05,maxLength:40,applySat:!0,satScale:2,simplify:!0,simplifyTolerance:2**-4,minBezLength:2**-6,angleIncrement:15},qp={maxCurviness:{range:[.01,3],scaleByMaxCoordinate:!1},maxLength:{range:[1,1024],scaleByMaxCoordinate:!0},angleIncrement:{range:[.1,360],scaleByMaxCoordinate:!1},satScale:{range:[1,1/0],scaleByMaxCoordinate:!1},simplifyTolerance:{range:[2**-20,2**20],scaleByMaxCoordinate:!0},minBezLength:{range:[2**-20,2],scaleByMaxCoordinate:!0}};function jp(t){return[t[1],-t[0]]}function Fp(t,n){if(!Ht(n))return 0;const e=Ft(n);return e.isDull?-ct(jp(e.tangents[0]),lt(rt(n.p,t))):0}function Hp(t){return t[0]*t[0]+t[1]*t[1]}function Yp(t,n,e){return t[0]*(n[1]*e[2]-n[2]*e[1])-t[1]*(n[0]*e[2]-n[2]*e[0])+t[2]*(n[0]*e[1]-n[1]*e[0])}function Rp(t){const n=t[0],e=t[1],o=t[2],r=Hp,c=.5*Yp([r(n),n[1],1],[r(e),e[1],1],[r(o),o[1],1]),i=.5*Yp([n[0],r(n),1],[e[0],r(e),1],[o[0],r(o),1]),s=Yp([n[0],n[1],1],[e[0],e[1],1],[o[0],o[1],1]);return[c/s,i/s]}function Xp(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}const Qp=ko,Vp=de,$p=dn,Up=Number.EPSILON;function Zp(t,n){const[e,o]=t,[r,c]=n,i=ko(e,r),s=ko(o,c);return dn(de(i,i),de(s,s))[1]}const Gp=Number.EPSILON;function Jp(t,n,e){const[o,r]=e,{ps:c}=t,i=[];if(o!==r){const{polyDd:e,polyE:s,getPolyExact:u}=tl(c,n),f=eo(e,o,r,s,u)||[];i.push(...f.map(e=>{const{tS:o,tE:r,t:i}=e,s=i<0?0:i>1?1:i,u=function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1],i=o[0],s=o[1],u=n[0],f=n[1];let l=1/0,a=-1/0;for(const[t,n]of[[r,c],[r,s],[i,c],[i,s]]){const e=Qp(t,u),o=Qp(n,f),r=$p(Vp(e,e),Vp(o,o))[1],c=r*(1-Up),i=r*(1+Up);c<=l&&(l=c),i>=a&&(a=i)}return[l,a]}(rs(c,[o,r]),n),f=0===s?1:s;return{curve:0===s?t.prev:t,t:f,dSquaredI:u}}))}const s=e.slice();return o===r&&s.push(o),i.push(...s.map(e=>{const o=Zp(Lo(c,[0,e]).map(t=>t[0]+t[1]),n),r=[o*(1-Gp),o*(1+Gp)],i=0===e?1:e;return{curve:0===e?t.prev:t,t:i,dSquaredI:r}})),i}const{min:Kp}=Math,th=1+2**-20;function nh(t,n){const e=t[0],o=t[1],r=e[0],c=e[1],i=o[0],s=o[1],u=n[0],f=n[1];return u<r?f<c?nu(t[0],n):f>s?nu([r,s],n):(r-u)**2:u>i?f<c?nu([i,c],n):f>s?nu(t[1],n):(u-i)**2:f<c?(c-f)**2:f>s?(f-s)**2:0}const eh=et(du),{min:oh}=Math;function rh(t,n){const e=[0,1,2,3].map(e=>function(t,n){const e=nu,o=n[0],r=n[1],c=e(o,r);if(0==c)return e(t,o);let i=((t[0]-o[0])*(r[0]-o[0])+(t[1]-o[1])*(r[1]-o[1]))/c;return i=Math.max(0,Math.min(1,i)),e(t,[o[0]+i*(r[0]-o[0]),o[1]+i*(r[1]-o[1])])}(n,[t[e],t[(e+1)%4]])),o=nu(t[0],t[1]),r=nu(t[0],t[3]);return e[0]<=r&&e[2]<=r&&e[1]<=o&&e[3]<=o?0:oh(...e)}const ch=et(mu);function ih(t,n){return Lo(t,[0,n])}function sh(t,n){t=function(t,n){const e=function(t,n){let e=1/0;for(let o=0;o<t.length;o++){const r=t[o],{curve:{ps:c},ts:i}=r,s=oo(c,i[0]),u=oo(c,i[1]);e=Kp(e,nu(n,s),nu(n,u))}return th*e}(t,n);return t=function(t,n,e){const o=[];for(let r=0;r<t.length;r++){const c=t[r],{ps:i}=c.curve;nh(eh(i),n)<=e&&o.push(c)}return o}(t,n,e),t=function(t,n,e){const o=[];for(let r=0;r<t.length;r++){const c=t[r],i=c.curve.ps;rh(ch(i),n)<=e&&o.push(c)}return o}(t,n,e),t}(t,n);const e=[];for(let o=0;o<t.length;o++){const r=t[o],c=Jp(r.curve,n,r.ts);e.push(...c)}let o=1/0;for(let t=0;t<e.length;t++){const n=e[t].dSquaredI[1];n<o&&(o=n)}const r=[];for(let t=0;t<e.length;t++){const n=e[t];n.dSquaredI[0]<=o&&r.push(n)}return r.map(t=>{const{curve:n,t:e}=t,{ps:o}=n,r=ih(o,e);return{curve:n,t:e,isSource:!1,p:r.map(t=>t[0]+t[1]),pDd:r}})}function uh(t,n){return n.map(n=>sh(n,t)[0])}function fh(t,n){return[n*t[0],n*t[1]]}function lh(t,n,e){const o=Xp(e);let r,c,i,s,u=1,f=0;do{c=ft(fh(e,u),n),i=t.map(t=>sh(t,n)[0]),s=Xp(rt(c,Rp(i.map(t=>t.p)))),r=s<o,u/=2,f++}while(!r&&f<3);return{newX:c,newV:s,newPoss:i}}const{min:ah,abs:ph,asin:hh}=Math;function dh(t,n,e,o,r){const c=2**(r-32),i=[t[0],t[n],t[t.length-1]],s=[o[0],o[n],o[t.length-1]],u=[[i[0],i[1],i[2]],[i[1],i[2],i[0]],[i[2],i[0],i[1]]][e],f=[[s[0],s[1],s[2]],[s[1],s[2],s[0]],[s[2],s[0],s[1]]][e];if(q(u[0][0]))return;let l,a=0,p=function(t,n){const e=t[0][0].pointOnShape.circle.center,o=sh(n[1],e)[0];return Rp([t[0][0].pointOnShape.p,o.p,t[2][1].pointOnShape.p])}(u,f),h=1/0;for(;h>c&&a<10;){if(a++,l=uh(p,f),!Number.isFinite(p[0])||!Number.isFinite(p[1]))return;const t=Rp(l.map(t=>t.p)),n=rt(p,t);if(!Number.isFinite(n[0])||!Number.isFinite(n[1]))return;const e=lh(f,p,n);p=e.newX,l=e.newPoss;const o=Xp(n);h=ph(o-e.newV)}const d=(en(p,l[0].p)+en(p,l[1].p)+en(p,l[2].p))/3,v={center:p,radius:d};let g=0;for(let t=0;t<3;t++){const n=l[t],e=lt(rt(n.p,p)),o=it(e);if(Ht(n)&&Ft(n).isDull){const t=jt(n.curve.ps,n.curve.next.ps).tangents.map(it),o=hh(st(t[0],e)),r=hh(st(e,t[1]));let c=0;o>0&&(c+=o),r>0&&(c+=r),g+=c}else{const t=lt(ht(n.curve.ps,n.t));g+=ph(hh(st(o,t)))}}const m=[];for(let t=0;t<o.length;t++){const n=sh(o[t],p)[0];m.push(en(n.p,p))}const x=ah(...m);return{threeProngInfo:{poss:l,circle:v,δ3s:u},error:1*ph(d-x)+1*g}}function vh(t){let n=t[0];const e=t[1],o=[];let r=!0;do{const t=n.pointOnShape,e=n.next.pointOnShape,c=t.curve,i=e.curve;if(r)if(r=!1,i===c&&Wn(e,t)>0)o.push({curve:c,ts:[t.t,e.t]}),n=n.next;else{if(c.loop===i.loop){const n={curve:c,ts:[t.t,1]};o.push(n),gh(o,c,i,e.t)}n=n.next}else r=!0,n=n.prevOnCircle}while(n!==e);return o}function gh(t,n,e,o){let r=n;do{r=r.next;const n=r===e?o:1;t.push({curve:r,ts:[0,n]})}while(r!==e)}function mh(t,n,e,o){const r={...n,order:e,order2:o},c=t.findBounds({pointOnShape:r}),[i,s]=c;if(void 0!==i||void 0!==s){if(void 0===i||void 0===s){const n=t.getMinNode()?.datum,e=t.getMaxNode()?.datum;return[e,n]}return[i.datum,s.datum]}}function xh(t,n,e,o,r,c,i,s){if(void 0!==c&&void 0!==i){const n=function(t,n,e,o){if(t.size<=1)return!0;const r=n.pointOnShape,c=e,i=o.pointOnShape,s=Wn(r,c);if(0===s)return!1;const u=Wn(c,i);if(0===u)return!1;const f=Wn(i,r);if(0===f)return!1;const l=s<0,a=u<0,p=f<0;return!!(l&&a||a&&p||p&&l)}(o,c,r,i);if(!t&&!n)return}const u={pointOnShape:r,isHoleClosing:n,isIntersection:e,id:s.id,next:void 0,prev:void 0,nextOnCircle:void 0,prevOnCircle:void 0};s.id++;const f=void 0===c?u:c,l=void 0===c?u:f.next;return l.prev=u,f.next=u,u.prev=f,u.next=l,o.insert(u),u}const{atan2:wh}=Math;function bh(t,n,e,o,r,c,i){const{cpTrees:s}=r;let u=!1;const f=c.map((c,f)=>{const l=o[f],a=s.get(c.curve.loop),p={...c,circle:e,order:l,order2:0},h=void 0===i?mh(a,c,l,0):i[f],d=h?.[0],v=h?.[1],g=xh(t,n,!1,a,p,d,v,r.lastInsertId);return void 0===g&&(u=!0),g});return u||function(t,n){n=n.slice().sort(function(t){const n=t.center;return function(t,e){let o=t.pointOnShape.p,r=e.pointOnShape.p;o=[o[0]-n[0],o[1]-n[1]],r=[r[0]-n[0],r[1]-n[1]];const c=wh(o[1],o[0]);return wh(r[1],r[0])-c}}(t));const e=n.length;for(let t=0;t<e;t++){const o=n[t];o.nextOnCircle=n[(t+1)%e],o.prevOnCircle=n[(t-1+e)%e]}}(e,f),{anyFailed:u,cpNodes:f}}const{cos:_h,PI:Mh}=Math,Sh=_h(Mh/180*1);function Ch(t,n,e,o,r,c){const{cpTrees:i,maxCoordPowerOf2:s}=t,u=2**(s-40),f=2**(s-46),l=i.get(n.curve.loop),a=mh(l,n,o,r)?.[0];if(!a)return;const p=[a,a.next],{p:h,t:d}=n;for(const t of p){const n=t.pointOnShape.p,o=en(h,n);if(!(o>u)&&(ct(lt(rt(n,t.pointOnShape.circle.center)),lt(rt(h,e.center)))>Sh||o<f&&0!==d&&1!==d))return t}}function yh(t,n){const e=[];for(const t of n)e.push([t,t.next]);const o=function(t,n){const e=t.map(vh);let o,r=1/0;for(let c=1;c<t.length-1;c++)for(let i=0;i<3;i++){const s=dh(t,c,i,e,n);if(void 0===s)continue;const{error:u,threeProngInfo:f}=s;u<r&&(r=u,o=f)}return o}(e,t.maxCoordPowerOf2),{circle:r,poss:c,δ3s:i}=o,s=[];for(let t=0;t<3;t++)s.push(Fp(r.center,c[t]));const u=[];for(let n=0;n<c.length;n++){const e=Ch(t,c[n],r,s[n],0);void 0!==e&&T(e)<=2&&!e.isHoleClosing&&u.push(e)}return{closeBysFor3Prong:u,cpNodes:0===u.length?bh(!0,!1,r,s,t,c,i).cpNodes:[]}}let Oh,Nh=0;function Eh(t,n){if(Yt(n.pointOnShape))return{closeBysFor3Prong:void 0,addedCpNodes:[]};const e=[];for(;;){if(void 0===n)continue;const o=F(n);if(o.length<=2)break;const{closeBysFor3Prong:r,cpNodes:c}=yh(t,o);if(e.push(c),r.length>0)return{closeBysFor3Prong:r,addedCpNodes:e};if("undefined"!=typeof _debug_&&++Nh===_debug_.directives.stopAfterThreeProngsNum)return}return{closeBysFor3Prong:void 0,addedCpNodes:e}}function Ih(t){for(const n of t)return n}function kh(t,n,e,o){const r=n[0];A(r).forEach(t=>{e.delete(t),o.delete(t)}),J(r,t)}function Bh(t,n,e){const o=new Map;for(let r=0;r<n.length;r++){const c=new Op(qn);o.set(t[r],c);const i=n[r];let s,u;for(const t of i){const n={center:t.p,radius:0},{curve:o}=t,r={...t,curve:o,t:1,circle:n,order:-1,order2:0},i={...t,curve:o.next,t:0,circle:n,order:1,order2:0};s=xh(!0,!1,!1,c,r,u,void 0,e),u=xh(!0,!1,!1,c,i,s,void 0,e),s.prevOnCircle=u,u.prevOnCircle=s,s.nextOnCircle=u,u.nextOnCircle=s}}return o}function Ph(t){const n=[],e=[],o=[],r=[],c=[];for(const i of t)for(const t of i.curves){const i=t.ps,s=wu(i,!0);o.push(s);const u=eh(i);n.push(u);const f=mu(i);e.push(f);const l=jt(t.ps,t.next.ps);l.isQuiteSharp?r.push(t):l.isQuiteDull&&c.push(t)}return{looseBoundingBoxes:n,tightBoundingBoxes:e,boundingHulls:o,sharpCorners:r,dullCorners:c}}function Th(t){return n=>{const e=[];for(let o=0;o<n.curves.length;o++){const r=n.curves[o];if(!(vu(r.ps)<t)&&jt(r.ps,r.next.ps).isQuiteSharp){const{ps:t}=r,n=t[t.length-1],o=[[0,n[0]],[0,n[1]]];e.push({curve:r,t:1,isSource:!0,p:n,pDd:o})}}return e}}function Ah(t,n){let e=[0,0];for(let o=0;o<t.length;o++)e=dn(t[o],le(n,e));return e}const zh=ko,Dh=le,Lh=dn,Wh=Bo,qh=sa;function jh(t){if(4===t.length)return function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[Lh(zh(s,n),Dh(3,zh(o,c))),Dh(3,Wh(qh(c,n),-2*o)),Dh(3,zh(o,n)),[0,n]],[Lh(zh(u,e),Dh(3,zh(r,i))),Dh(3,Wh(qh(i,e),-2*r)),Dh(3,zh(r,e)),[0,e]]]}(t);if(3===t.length)return function(t){const[[n,e],[o,r],[c,i]]=t;return[[Wh(qh(c,n),-2*o),zh(2*o,2*n),[0,n]],[Wh(qh(i,e),-2*r),zh(2*r,2*e),[0,e]]]}(t);if(2===t.length)return function(t){const[[n,e],[o,r]]=t;return[[zh(o,n),[0,n]],[zh(r,e),[0,e]]]}(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[0,n]],[[0,e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}const Fh=le,Hh=dn,Yh=de,Rh=Uo,Xh=Af,Qh=hr,Vh=Ho,$h=ko,Uh=dn,Zh=de,Gh=Uo,Jh=Af,Kh=hr,td=Ho,nd=le,ed=dn,od=de,rd=Uo,cd=Af,id=hr,sd=Ho,ud=dn,fd=de,ld=hr,ad=Ho;function pd(t,n,e){const[o,r]=t,[c,i]=n,[s,u]=e,f=ad(o,s),l=ad(r,u);return{a0:ud(fd(ld(c),f),fd(ld(i),l)),b0:ud(fd(f,f),fd(l,l))}}const hd=[,,function(t,n,e){const[o,r]=t,[c,i]=n,[[s,u],[f,l]]=e,a=$h(f,s),p=$h(l,u),h=td(o,s),d=td(r,u),v=Uh(Zh(c,a),Zh(i,p)),g=Gh(Uh(Zh(a,a),Zh(p,p))),m=Uh(Zh(a,h),Zh(p,d)),x=Jh(v),w=Uh(Zh(Kh(c),h),Zh(Kh(i),d)),b=Gh(g),_=Jh(m),M=Uh(Zh(h,h),Zh(d,d));return{A:[x,w],B:[b,_,M],C:[v],D:[g,m],H:[Zh(b,v),Zh(w,g),Uh(Zh(w,m),Gh(Zh(M,v)))]}},function(t,n,e){const[o,r]=t,[c,i]=n,[[s,u]]=e,[[f,l],[a,p]]=jh(e),h=Vh(o,s),d=Vh(r,u),v=Qh(Hh(Yh(c,f),Yh(i,a))),g=Hh(Yh(c,l),Yh(i,p)),m=Hh(Yh(c,h),Yh(i,d)),x=Hh(Yh(f,f),Yh(a,a)),w=Hh(Yh(l,f),Yh(p,a)),b=Hh(Yh(l,l),Yh(p,p)),_=Hh(Yh(h,f),Yh(d,a)),M=Hh(Yh(l,h),Yh(p,d)),S=Hh(Yh(h,h),Yh(d,d)),C=Xh(x),y=Fh(-3,w),O=Hh(Qh(_),Rh(b)),N=Rh(v),E=Xh(g),I=Qh(m),k=Qh(w),B=Rh(O);return{A:[N,E,I],B:[x,k,B,Xh(M),S],C:[v,g],D:[C,y,O,M],H:[Yh(x,v),Hh(Yh(w,v),Fh(3,Yh(x,g))),Qh(Qh(Hh(Yh(w,g),Rh(Yh(m,x))))),Hh(Hh(Yh(v,M),Yh(g,B)),Rh(Fh(6,Yh(m,w)))),Hh(Xh(Yh(m,B)),Rh(Yh(v,S))),Hh(Qh(Yh(m,M)),Rh(Yh(g,S)))]}},function(t,n,e){const[o,r]=t,[c,i]=n,[[s,u,f,[,l]],[a,p,h,[,d]]]=jh(e),v=sd(o,l),g=sd(r,d),m=ed(od(c,s),od(i,a)),x=ed(od(c,u),od(i,p)),w=ed(od(c,f),od(i,h)),b=ed(od(c,v),od(i,g)),_=ed(od(s,s),od(a,a)),M=ed(od(s,u),od(a,p)),S=ed(od(s,f),od(a,h)),C=ed(od(u,u),od(p,p)),y=ed(od(u,f),od(p,h)),O=ed(od(f,f),od(h,h)),N=ed(od(s,v),od(a,g)),E=ed(od(u,v),od(p,g)),I=ed(od(f,v),od(h,g)),k=ed(od(v,v),od(g,g)),B=nd(3,m),P=id(x),T=w,A=nd(-3,_),z=nd(-5,M),D=ed(nd(-4,S),cd(C)),L=ed(nd(3,N),nd(-3,y)),W=ed(id(E),rd(O)),q=cd(m),j=cd(x),F=cd(w),H=id(b),Y=id(M),R=ed(id(S),C),X=ed(id(y),cd(N)),Q=ed(O,cd(E)),V=cd(I);return{A:[q,j,F,H],B:[_,Y,R,X,Q,V,k],C:[B,P,T],D:[A,z,D,L,W,I],H:[nd(3,od(m,_)),id(id(ed(od(m,M),od(x,_)))),ed(ed(od(m,R),nd(6,od(x,M))),nd(5,od(w,_))),ed(ed(id(od(x,R)),nd(8,od(w,M))),rd(nd(6,od(b,_)))),ed(ed(rd(od(m,Q)),od(x,X)),ed(nd(3,od(w,R)),rd(nd(10,od(b,M))))),ed(ed(cd(od(m,V)),id(od(w,X))),rd(id(id(od(b,R))))),ed(ed(ed(od(w,Q),rd(od(x,V))),rd(nd(3,od(b,X)))),rd(nd(3,od(m,k)))),ed(cd(od(b,Q)),cd(od(x,k))),ed(rd(od(b,V)),rd(od(w,k)))]}}],dd=le,vd=dn,gd=de,md=Uo,xd=hr,wd=le,bd=dn,_d=de,Md=Uo,Sd=Af,Cd=hr,{sqrt:yd,abs:Od,max:Nd}=Math,Ed=fe;function Id(t,n,e,o,r,c,i){const{curve:s,ts:[u,f]}=i,{ps:l}=s,{curve:a,t:p,p:h,pDd:d}=o,v=s===a,g=0===c&&v,m=[];let x,w=!1,b=!1;if(!(u===f||g&&2===l.length||v&&3===l.length&&r)){const{A:n,B:o,H:r}=g?3===l.length?function(t,n,e){const[[o,r],[c,i]]=jh(e),[s,u]=n,f=vd(dd(t,o),r),l=vd(dd(t,c),i),a=vd(gd(o,o),gd(c,c)),p=vd(gd(o,r),gd(c,i)),h=vd(gd(o,f),gd(c,l)),d=xd(vd(gd(s,o),gd(u,c)));return{A:[md(d)],B:[a,xd(h),vd(gd(f,f),gd(l,l))],H:[gd(a,d),gd(d,vd(dd(t,a),p))]}}(p,e,l):function(t,n,e){const[o,r]=n,[[c,i,s],[u,f,l]]=jh(e),a=bd(_d(o,c),_d(r,u)),p=bd(_d(o,i),_d(r,f)),h=bd(_d(o,s),_d(r,l)),d=bd(_d(c,c),_d(u,u)),v=bd(_d(c,i),_d(u,f)),g=bd(_d(c,s),_d(u,l)),m=bd(_d(i,i),_d(f,f)),x=bd(_d(i,s),_d(f,l)),w=bd(_d(s,s),_d(l,l)),b=wd(t,bd(wd(t,bd(wd(t,a),p)),h)),_=wd(t,bd(wd(t,bd(wd(t,d),v)),g)),M=wd(t,bd(wd(t,bd(wd(t,v),m)),x)),S=wd(3,a),C=Cd(p),y=bd(C,wd(t,S)),O=wd(-3,d),N=wd(-5,v),E=bd(wd(-4,g),Sd(m)),I=bd(wd(-3,x),wd(3,_)),k=bd(Md(w),Cd(M)),B=O,P=bd(N,wd(t,B)),T=bd(E,wd(t,P)),A=bd(I,wd(t,T)),z=bd(k,wd(t,A)),D=Sd(a),L=Sd(p),W=d,q=Cd(v),j=bd(Cd(g),m),F=bd(Cd(x),Sd(_)),H=bd(w,Sd(M)),Y=D,R=bd(L,Cd(wd(t,Y))),X=W,Q=bd(q,Cd(wd(t,X))),V=bd(j,wd(t,bd(Cd(Q),Md(wd(t,X))))),$=bd(F,wd(t,bd(Cd(V),Md(wd(t,Q))))),U=bd(H,wd(t,bd(Cd($),Md(wd(t,V))))),Z=wd(3,_d(a,d)),G=Cd(Cd(bd(_d(a,v),_d(p,d)))),J=bd(bd(_d(a,j),wd(6,_d(p,v))),wd(5,_d(h,d))),K=bd(bd(Cd(_d(p,j)),wd(8,_d(h,v))),Md(wd(6,_d(b,d)))),tt=bd(bd(Md(_d(a,H)),_d(p,F)),bd(wd(3,_d(h,j)),Md(wd(10,_d(b,v))))),nt=Z,et=bd(G,Cd(Cd(wd(t,nt)))),ot=bd(J,wd(t,bd(Cd(Cd(et)),Md(wd(6,wd(t,nt)))))),rt=bd(K,wd(t,bd(Cd(Cd(ot)),wd(t,bd(wd(-6,et),Cd(Cd(wd(t,nt))))))));return{A:[Y,R],B:[X,Q,V,$,U],C:[S,y],D:[B,P,T,A,z],H:[nt,et,ot,rt,bd(tt,wd(t,bd(Cd(Cd(rt)),wd(t,bd(wd(-6,ot),wd(t,bd(Cd(Cd(et)),Md(wd(t,nt)))))))))]}}(p,e,l):function(t,n,e){if(1===e.length){const{a0:o,b0:r}=pd(t,n,e[0]);return{A:[o],B:[r],C:[],D:[],H:[]}}return hd[e.length](t,n,e)}(d,e,l);x=eo(r,u,f)||[];for(let r=0;r<x.length;r++){const c=x[r],{tS:i,tE:l,t:a}=c;if(c.multiplicity>1)continue;if(l<u||i>f)continue;if(i<0)continue;const p=l>1?1:a,d=Ah(n,p),v=Ah(o,p),g=d[0]+d[1],_=v[0]+v[1],M=Od(g);if(Nd(M)<2**-40)continue;const S=-_/g;if(S<=0)continue;const C=[Ed(S,e[0]),Ed(S,e[1])],y=[C[0][1],C[1][1]],O=yd(Hp(y));if(O<=2**(t-40))continue;const N=[h[0]+y[0],h[1]+y[1]];c.tS<=u&&c.tE>=u&&(w=!0),c.tS<=f&&c.tE>=f&&(b=!0);const E=0===p?1:p,I={curve:0===p?s.prev:s,s:E,d:O,x:N};m.push(I)}}const _=l[l.length-1];let M=0===p&&s===a.prev||1===p&&s===a;const S=[];if(0===u);else if(1===u)M||w||S.push({P:_,t:1});else if(!w){const t=oo(l,u);S.push({P:t,t:u})}if(u!==f)if(0===f);else if(1===f)M||b||(S.push({P:_,t:1}),M=!0);else if(!b){const t=oo(l,f);S.push({P:t,t:f})}for(let t=0;t<S.length;t++){const{P:n,t:o}=S[t],{a0:r,b0:c}=pd(d,e,n);if(Od(r[1])<=2**-40||Od(c[1])<=2**-40)continue;const i=-c[1]/r[1];if(i<2**-40)continue;const u=[Ed(i,e[0]),Ed(i,e[1])],f=[u[0][1],u[1][1]],l=yd(Hp(f)),a=[h[0]+f[0],h[1]+f[1]],p=0===o?1:o,v={curve:0===o?s.prev:s,s:p,d:l,x:a};m.push(v)}return m}function kd(t,n,e){const[o,r]=t,[c,i]=n,[s,u]=e,f=o-s,l=r-u;return{a0:2*(c*f+i*l),b0:f*f+l*l}}const{abs:Bd}=Math,Pd=1+2**-20,Td=1+2**-20,Ad=et(mu),zd=hn,Dd=dn,Ld=vn,Wd=fe,{acos:qd}=Math,jd=sa,Fd=ko,Hd=le,Yd=dn,Rd=Bo;function Xd(t){if(4===t.length)return function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[Hd(3,Yd(Fd(s,n),Hd(3,Fd(o,c)))),Hd(6,Rd(jd(c,n),-2*o)),Hd(3,Fd(o,n))],[Hd(3,Yd(Fd(u,e),Hd(3,Fd(r,i)))),Hd(6,Rd(jd(i,e),-2*r)),Hd(3,Fd(r,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[o,r],[c,i]]=t;return[[Rd(jd(2*c,2*n),-4*o),Fd(2*o,2*n)],[Rd(jd(2*i,2*e),-4*r),Fd(2*r,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[o,r]]=t;return[[Fd(o,n)],[Fd(r,e)]]}(t);if(1===t.length)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const Qd=ko,Vd=dn,$d=le,Ud=Bo;function Zd(t){if(4===t.length){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[$d(6,Vd(Qd(s,n),$d(3,Qd(o,c)))),$d(6,Ud(Qd(c,2*o),n))],[$d(6,Vd(Qd(u,e),$d(3,Qd(r,i)))),$d(6,Ud(Qd(i,2*r),e))]]}if(3===t.length){const[[n,e],[o,r],[c,i]]=t;return[[Ud(Qd(2*c,4*o),2*n)],[Ud(Qd(2*i,4*r),2*e)]]}if(t.length<=2)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const Gd=de,Jd=dn,Kd=vn;const{sqrt:tv}=Math;function nv(t,n,e){const{curve:o,p:r,t:c}=n,{ps:i}=o,s=1/t,u=function(t,n){const[e,o]=function(t,n){const[e,o]=Xd(t),[r,c]=Zd(t),i=Ah(e,n),s=Ah(o,n),u=Ah(r,n),f=Ah(c,n),l=Kd(Gd(i,f),Gd(s,u)),a=Jd(Gd(i,i),Gd(s,s));return[l,la(Gd(a,Gd(a,a)))]}(t,n);return is(e,o)}(i,c),f=-(u[0]+u[1]),l=f<s?s:f,[a,p]=e,h=tv(a*a+p*p)*l;return[[r[0]+a/h,r[1]+p/h],1/l]}const{sqrt:ev}=Math,{abs:ov,sin:rv,cos:cv,max:iv,sqrt:sv}=Math;function uv(t){const{loops:n,maxCoordPowerOf2:e,squaredDiagonalLength:o}=t,c=(2**(e-21))**2,i=2**(e-46),s=sv(o),u=2**(e-32);return function(o,f,l,a){const{curve:{loop:p,ps:h},t:d,p:v}=a,g=function(t,n){const[e,o]=Xd(t),r=Ah(o,n);return[[-r[0],-r[1]],Ah(e,n)]}(h,d),m=[-g[0][1],-g[1][1]],x=o?[0,-s]:0!==l?r(rv(l),cv(l))(m):m,w=o||0!==l?[[0,x[0]],[0,x[1]]]:[[-g[0][0],-g[0][1]],[-g[1][0],-g[1][1]]];let[b,_]=function(t,n,e,o,r){let c,i;const{p:s}=o;if(n)return[[s[0],s[1]-e],e];if(0===t)return nv(e,o,r);const{p:u}=o,[f,l]=r,a=e/ev(f*f+l*l),p=[f*a,l*a];return c=[u[0]+p[0],u[1]+p[1]],i=e,[c,i]}(l,o,s,a,x);const M=function(t,n,e,o,r,c,i){const{cpTrees:s}=r;if(n)return o.filter(t=>t!==e).flatMap(t=>t.curves.map(t=>({curve:t,ts:[0,1]})));const u=Ht(c)&&Ft(c).isDull?1===c.t&&0===t?-1:0===c.t?1:Fp(i,c):0,f=mh(s.get(e),c,u,0)?.[0];return f&&f!==f.next.next?vh([f,f]):e.curves.map(t=>({curve:t,ts:[0,1]}))}(l,o,p,n,t,a,b),S=function(t,n,e,o,r){let c=n**2,i=[o[0]+r[0],o[1]+r[1]];for(let t=0;t<e.length;t++){const n=e[t],{ps:s}=n.curve,u=s[0],f=s[s.length-1];for(const t of[u,f]){if(nu(i,t)>c)continue;const{a0:n,b0:e}=kd(o,r,t);if(Bd(n)<=2**-40||Bd(e)<=2**-40)continue;const s=-e/n;if(s<2**-40)continue;const u=[s*r[0],s*r[1]],f=Hp(u);f<c&&(c=f,i=[o[0]+u[0],o[1]+u[1]])}}return Pd*c}(0,_,M,v,x),C=sv(S),y=sv(x[0]**2+x[1]**2);b=[v[0]+x[0]/y*C,v[1]+x[1]/y*C],function(t,n,e){if(t.length<=2)return t;let o=0;for(let r=0;r<t.length;r++){const c=t[r],{ps:i}=c.curve;nh(eh(i),n)<=Td*e&&rh(Ad(i),n)<=Td*e&&(t[o]=c,o++)}t.length=o}(M,b,S);const O=function(t,n,e,o,r,c,i){const s=[];for(let n=0;n<i.length;n++){const u=Id(t,0,e,o,r,c,i[n]);s.push(...u)}let u=1/0;for(let t=0;t<s.length;t++){const n=s[t].d*(1+2**-46);n<u&&(u=n)}const f=[];for(let t=0;t<s.length;t++){const n=s[t];n.d*(1-2**-46)<=u&&f.push(n)}return f}(e,0,w,a,f,l,M);if(1!==O.length){if(0===O.length)return void(o&&console.log(a));if(!o&&!function(t,n){const{curve:e,s:o,x:r}=t[0],c=2**(n-40);for(let n=1;n<t.length;n++){const{x:e}=t[n];if(ov(r[0]-e[0])>c||ov(r[0]-e[0])>c)return!1}return!0}(O,e))return}const{x:N,d:E,curve:I,s:k}=O[0];if(f&&_<(1-u)*E)return void function(t,n,e,o){if(Ht(o)&&Ft(o).isDull)return;const r={radius:n,center:e};Ch(t,o,r,Fp(r.center,o),0)||bh(!1,!1,r,[-.5,.5],t,[o,o])}(t,_,b,a);const B=ih(I.ps,k),P={curve:I,t:k,isSource:!1,p:B.map(t=>t[0]+t[1]),pDd:B},T={center:N,radius:E},A=Zp(a.p,P.p),z=Zp(N,P.p);if(!o){if(0===A)return;if(A<=iv(function(t,n,e){if(n+e>=t)return 1/0;const o=ko(t,n),r=Wd(n,o),c=t-n,i=n*c,s=(i-n*e-e*e/2)/(i+c*e),u=is(Ld(Ld(r,zd(n,e)),zd(e,e/2)),Dd(r,Wd(e,o)))[1];return qd(s),n*qd(u)}(_,sv(z),4*i),c))return}return{circle:T,z:P}}}function fv(t,n,e,o,r){e=0===e.t?{...e,curve:e.curve.prev,t:1}:e;const c=Fp(n.center,e),i=Fp(n.center,o),s={...o,circle:n,order:i,order2:0},u={...e,circle:n,order:c,order2:0};if(Ch(t,e,n,c,0))return;if(Ch(t,o,n,i,0))return;const{anyFailed:f,cpNodes:l}=bh(r,r,n,[c,i],t,[u,s]);if(!f)return r&&function(t,n){const{cpTrees:e}=t,[o,r]=n,c={...o.pointOnShape.circle},i=r.pointOnShape,s=xh(!0,!0,!1,e.get(i.curve.loop),{...i,circle:c,order2:1},r,void 0,t.lastInsertId);s.holeCloserTwin=r,r.holeCloserTwin=s;const u=o.pointOnShape,f=xh(!0,!0,!1,e.get(u.curve.loop),{...u,circle:c,order2:-1},o.prev,void 0,t.lastInsertId);f.holeCloserTwin=o,o.holeCloserTwin=f,f.prevOnCircle=s,f.nextOnCircle=s,s.prevOnCircle=f,s.nextOnCircle=f,r.next=o,o.prev=r,f.next=s,s.prev=f}(t,l),l[0];l.forEach(n=>{void 0!==n&&G(n,t)})}const{PI:lv,atan2:av}=Math;function pv(t,n,e,o){let r;const c=uv(t),i=n*lv/180;for(let n=0;n<e.length;n++){const s=e[n],u=o?[0]:hv(i,s);for(const e of u){const i=c(!1,o,e,s);if(i){const{circle:n,z:e}=i,o=fv(t,n,s,e,!1);r=r||o}if("undefined"!=typeof _debug_&&n+1===_debug_.directives.stopAfterTwoProngsNum)return}}return r}function hv(t,n){const e=[0];if(1===n.t){const{curve:o}=n,r=jt(o.ps,o.next.ps);if(r.isQuiteDull){const n=jp(r.tangents[0]),o=jp(r.tangents[1]),c=(av(n[1],n[0])+2*lv)%(2*lv),i=((av(o[1],o[0])+2*lv)%(2*lv)-c+2*lv)%(2*lv);let s=t;for(;s<=i-t/2;)e.push(s),s+=t}}return e}function dv(t,n,e,o){let r;for(let c=0;c<e.length;c++){const i=pv(t,n,e[c],o);r=void 0===r?i:r}return r}function vv(t,n=.4,e=10,o=2**-16){const r=[0],c=[1];for(;;){const i=r[r.length-1],s=c[c.length-1],u=U(t,i,s),f=vu(u),l=bn(u);if(f<=e&&l<=n||s-i<=o){if(r.push(c.pop()),1===s)return r;continue}const a=(i+s)/2;c.push(a)}}function gv(t){if(t.length<4)return[];const[[n,e],[o,r],[c,i],[s,u]]=t,f=o-n,l=r-e,a=c-o-f,p=i-r-l,h=s-c-f-2*a,d=u-i-l-2*p,v=a*d-p*h,g=f*d-l*h,m=f*p-l*a;return eo([v,g,m],0,1)?.map(t=>t.t)||[]}function mv(t,n,e){return function(o){const r=[],c=o.curves;for(let o=0;o<c.length;o++){const i=c[o],s=i.ps;if(vu(s)<t)continue;let u=vv(s,n,e);u=2===u.length?[.5]:u,u.push(...gv(s)),u=u.filter(t=>0!==t&&1!==t);const f=u.map(t=>{const n=ih(i.ps,t),e=n.map(t=>t[0]+t[1]);return{curve:i,t,isSource:!0,p:e,pDd:n}});r.push(...f)}return r}}const xv=ko,wv=dn,bv=le,_v=hr,Mv=mf,Sv=le,Cv=de,yv=dn,Ov=vn;const Nv=ko,Ev=le,Iv=de,kv=dn,Bv=vn;function Pv(t){if($s(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&su(t)&&(t=Kc(t)),3===t.length){const n=function(t){const[[n,e],[o,r],[c,i]]=t,s=Nv(o,n),u=Nv(c,o),f=Bv(u,s),l=Nv(r,e),a=Nv(i,r),p=Bv(a,l),h=kv(Bv(Ev(n,Bv(f,[0,o])),Ev(o,Bv(u,[0,o]))),Bv(Ev(e,Bv(p,[0,r])),Ev(r,Bv(a,[0,r]))));return[kv(Iv(f,f),Iv(p,p)),Uo(h)]}(t);return{minima:[],maxima:eo(n,0,1)?.map(t=>t.t)||[],inflections:[]}}const n=function(t){const[[n,e,o],[r,c,i]]=Xd(t),[[s,u],[f,l]]=Zd(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[bv(6,wv(xv(s,n),bv(3,xv(o,c))))],[bv(6,wv(xv(u,e),bv(3,xv(r,i))))]]}if(t.length<=3)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=Cv(a,c),d=Cv(p,e),v=Cv(u,i),g=Cv(u,c),m=Cv(f,f),x=Cv(s,i),w=Cv(l,o),b=Cv(l,e),_=Cv(f,o),M=Cv(o,e),S=Cv(o,n),C=Cv(o,r),y=Cv(e,e),O=Cv(e,n),N=Cv(e,c),E=Cv(n,i),I=Cv(n,r),k=Cv(n,n),B=Cv(i,c),P=Cv(i,r),T=Cv(c,c),A=Cv(c,r),z=Cv(r,r),D=Ov(Cv(a,i),Cv(p,o)),L=Ov(h,d),W=yv(Cv(u,o),Cv(l,i)),q=yv(yv(Cv(u,e),Cv(s,o)),yv(Cv(l,c),Cv(f,i))),j=Ov(v,w),F=Ov(yv(g,x),yv(b,_)),H=yv(Cv(o,o),Cv(i,i)),Y=yv(M,B),R=yv(N,E),X=yv(P,T),Q=yv(S,y),V=yv(Cv(e,r),Cv(n,c)),$=Ov(k,z),U=Ov(O,A),Z=yv(C,N),G=Ov(M,B),J=yv(Cv(o,c),Cv(e,i)),K=yv(P,X),tt=yv(S,Q),nt=yv(C,R),et=yv(N,R),ot=Ov(tt,K),rt=yv(R,E),ct=yv(Z,E),it=yv(hr(b),_),st=Cv(k,Ov(h,Sv(3,d))),ut=Cv(z,Ov(Sv(3,h),d)),ft=hr(yv(Cv(I,yv(Ov(Cv(a,e),Cv(p,c)),Sv(3,Ov(Cv(l,f),Cv(u,s))))),Sv(3,Cv(Cv(s,f),U)))),lt=Sv(3,yv(Cv(V,Ov(m,Cv(s,s))),Cv($,yv(Cv(u,f),Cv(l,s))))),at=yv(yv(st,ut),yv(ft,lt)),pt=Cv(a,yv(Cv(r,yv(tt,Sv(3,X))),Cv(n,et))),ht=Cv(p,yv(yv(Cv(o,yv(Sv(3,k),z)),Cv(e,yv(Sv(3,O),_v(A)))),Cv(n,K))),dt=Sv(3,yv(yv(Cv(u,yv(Ov(Cv(l,$),Cv(u,I)),_v(Ov(Cv(f,U),Cv(s,V))))),Cv(s,Ov(yv(_v(Cv(l,U)),Cv(f,yv(_v(Ov(S,P)),Ov(y,T)))),Cv(s,ct)))),yv(Cv(l,yv(Cv(l,I),_v(Cv(f,V)))),Cv(m,nt)))),vt=yv(Ov(pt,ht),dt),gt=Cv(a,yv(yv(_v(Cv(o,V)),Cv(e,rt)),Cv(c,yv(Mv(P),K)))),mt=Cv(p,yv(yv(_v(Cv(o,yv(Sv(3,O),A))),Cv(e,yv(y,_v(P)))),Cv(c,rt))),xt=Sv(3,yv(yv(Cv(u,Ov(yv(_v(Ov(Cv(l,U),Cv(s,ct))),Cv(f,ot)),Cv(u,V))),Cv(s,Ov(_v(Cv(f,G)),Cv(s,J)))),yv(Cv(l,yv(yv(Cv(l,V),_v(Cv(f,nt))),Cv(s,ot))),Cv(m,J)))),wt=yv(Ov(gt,mt),xt),bt=Cv(a,yv(Cv(o,yv(C,_v(R))),Cv(i,yv(y,Sv(3,X))))),_t=Cv(p,yv(Cv(o,yv(Sv(3,Q),K)),Cv(i,et))),Mt=Sv(3,yv(yv(Cv(u,yv(Ov(Cv(l,ot),Cv(u,nt)),_v(Ov(Cv(f,G),Cv(s,J))))),Cv(s,Ov(Cv(o,Ov(it,Cv(s,i))),Cv(i,yv(_v(Cv(l,c)),Cv(f,i)))))),yv(Cv(l,yv(Cv(l,R),Cv(o,yv(_v(Cv(f,c)),Cv(l,r))))),Cv(f,Cv(i,it))))),St=yv(Ov(bt,_t),Mt),Ct=Ov(yv(Cv(H,L),_v(Cv(Y,D))),Sv(3,yv(Cv(W,F),Cv(q,j)))),yt=Ov(Cv(D,H),Sv(3,Cv(W,j)));return{inflectionPoly:[Ov(Cv(s,r),Cv(f,n)),Ov(yv(Cv(u,r),Cv(s,c)),yv(Cv(l,n),Cv(f,e))),Ov(yv(g,x),yv(b,_)),Ov(v,w)],otherExtremaPoly:[at,vt,wt,St,Ct,yt]}}(t),e=n.inflectionPoly,o=n.otherExtremaPoly,r=eo(o,0,1)?.map(t=>t.t)||[],c=function(t){const n=t.length-1;if(n<=0)return[];const e=new Array(n);for(let o=0;o<n;o++)e[o]=le(n-o,t[o]);return e}(o),i=[],s=[];for(let t=0;t<r.length;t++){const n=r[t],o=Ie(c,n);St(wt(Ie(e,n),o))>=0?i.push(n):s.push(n)}return{minima:i,maxima:s,inflections:eo(e,0,1)?.map(t=>t.t)||[]}}function Tv(t){const{curve:n,t:e}=t,{ps:o}=n,r=ih(o,e),c=r.map(t=>t[0]+t[1]);return{curve:n,t:t.t,isSource:!0,p:c,pDd:r}}function Av(t,n,e,o,r){(r&&(o>t.val||o===t.val&&e>t.t)||!r&&(o<t.val||o===t.val&&e>t.t))&&(t.curve=n,t.t=e,t.val=o)}const zv=et(function(t){const n=[{curve:void 0,t:void 0,val:1/0},{curve:void 0,t:void 0,val:1/0}],e=[{curve:void 0,t:void 0,val:-1/0},{curve:void 0,t:void 0,val:-1/0}];return t.curves.forEach(function(t){const o=ro(t.ps);for(let r=0;r<2;r++)Av(n[r],t,o.ts[0][r],o.box[0][r],!1),Av(e[r],t,o.ts[1][r],o.box[1][r],!0)}),{minX:Tv(n[0]),minY:Tv(n[1]),maxX:Tv(e[0]),maxY:Tv(e[1])}});function Dv(t){return zv(t).minY}function Lv(t){const{loops:n}=t,e=n.map(Dv);let o;const r=uv(t);for(let n=1;n<e.length;n++){const c=e[n],i=r(!0,!1,0,c);if(!i)throw new Error("Unable to find hole-closing 2-prong");const{circle:s,z:u}=i,f=fv(t,s,c,u,!0);o=void 0===o?f:o}return o}const Wv=et(function(t){let n,e,o,r,c=1/0,i=-1/0,s=1/0,u=-1/0;for(const f of t){const t=zv(f);t.minX.p[0]<c&&(n=t.minX,c=t.minX.p[0]),t.maxX.p[0]>i&&(e=t.maxX,i=t.maxX.p[0]),t.minY.p[1]<s&&(o=t.minY,s=t.minY.p[1]),t.maxY.p[1]>u&&(r=t.maxY,u=t.maxY.p[1])}return{minX:n,minY:o,maxX:e,maxY:r}});function qv(t,n,e){"undefined"!=typeof _debug_&&(Oh=performance.now());const{minBezLength:o,maxCurviness:r,maxLength:c,angleIncrement:i}=e,s=Th(o),u=function(t){return n=>{const e=[];for(let o=0;o<n.curves.length;o++){const r=n.curves[o];if(vu(r.ps)<t)continue;const{next:c,ps:i}=r;if(jt(i,c.ps).isQuiteDull){const t=i[i.length-1],n=[[0,t[0]],[0,t[1]]];e.push({curve:r,t:1,isSource:!0,p:t,pDd:n}),e.push({curve:c,t:0,isSource:!0,p:t,pDd:n})}}return e}}(o),f=mv(o,r,c),l=function(t){return function(n){const e=[];for(let o=0;o<n.curves.length;o++){const r=n.curves[o];if(vu(r.ps)<t)continue;const{ps:c}=r;e.push(...Pv(c).maxima.map(t=>{const n=ih(c,t),e=n.map(t=>t[0]+t[1]);return{curve:r,t,isSource:!0,p:e,pDd:n}}))}return e.filter(t=>t.t>2**-20&&t.t<2**-20)}}(o),a=Wv(t),p=(a.maxX.p[0]-a.minX.p[0])**2+(a.maxY.p[1]-a.minY.p[1])**2,h=t.map(s),d={id:0},v={maxCoordPowerOf2:n,squaredDiagonalLength:p,loops:t,cpTrees:Bh(t,h,d),lastInsertId:d,...Ph(t)};let g;if(g=Lv(v),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterHoleClosers)return{cpNode:g,meta:v};if(function(){if("undefined"==typeof _debug_)return;const t=performance.now();_debug_.timing.holeClosers+=t-Oh,Oh=t}(),g=dv(v,i,t.map(u),!1)||g,g=dv(v,i,t.map(l),!0)||g,g=dv(v,i,t.map(f),!1)||g,function(){if("undefined"==typeof _debug_)return;const t=performance.now();_debug_.timing.oneAnd2Prongs+=t-Oh,Oh=t}(),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterTwoProngs)return{cpNode:g,meta:v};if(g=function(t,n){if(void 0===n)return;const e=new Set;let o=!0;for(;o;){o=!1;const r=new Set(k(n));for(const n of r){const c=Eh(t,n);if(void 0===c)return Ih(e);const{closeBysFor3Prong:i,addedCpNodes:s}=c;s.length>0&&(o=!0),void 0===i?e.add(n):(o=!0,kh(t,i,r,e)),s.forEach(t=>t.forEach(t=>e.add(t)))}n=Ih(e)}return n}(v,g),void 0===g)return;if("undefined"!=typeof _debug_&&_debug_.directives.stopAfterThreeProngs)return{cpNode:g,meta:v};const m={cpNode:g,meta:v};return"undefined"!=typeof _debug_&&(_debug_.timing.threeProngs+=performance.now()-Oh),m}const{ceil:jv,log2:Fv}=Math;function Hv(t,n){const{maxCoordinate:e}=function(t){let n=0,e=1/0,o=-1/0,r=1/0,c=-1/0;for(const i of t)for(const t of i)for(const i of t){const t=i[0],s=i[1],u=ip(sp(t),sp(s));u>n&&(n=u),t<e&&(e=t),t>o&&(o=t),s<r&&(r=s),s>c&&(c=s)}return{maxCoordinate:n,width:o-e,height:c-r}}(t),o=jv(Fv(e)),r=function(t,n){const e={...n};for(const n in qp){const o=n;let r=e[o];const c=qp[o],{range:i,scaleByMaxCoordinate:s}=c;r<i[0]&&(r=i[0]),r>i[1]&&(r=i[1]),s&&(r*=2**(t-10)),e[o]=r}return e}(o,{...Wp,...n||{}}),{applySat:c,simplify:i,satScale:s,simplifyTolerance:u}=r,f=cp(t,{forceOrientationNegative:!0}),l=[];for(const t of f){let n=qv(t,o,r);void 0!==n&&(c&&(n=Lp(n,s)),i&&(n=Ip(n,u,50)),l.push(n))}return l}function Yv(t){const n=function(t){let n=t;const e=Pp(t);for(;e.length;){const o=e.pop();if(o.isHoleClosing||o.isIntersection)continue;let r=o.next;for(;;){r=r.next;let e=!1;const o=r.prevOnCircle;if(T(r)>2){const n=r.nextOnCircle;Gt(r,t)?e=!0:r.next===n?r=n:n.next!==o&&(e=!0)}else if(z(r)&&!r.isIntersection)return void(n=r);if(e){o.next=r,r.prev=o,n=r;break}}}return n}(Q(t.cpNode));if(n)return{cpNode:n,meta:{...t.meta,cpTrees:Np(n)}}}function Rv(t){const n=k(t).filter(t=>D(t)>=3);if(0!==n.length)return n.reduce(function(t,n){return t.pointOnShape.circle.radius>=n.pointOnShape.circle.radius?t:n},n[0])}function Xv(t){if(!t)return void(window._debug_=void 0);let n=window._debug_;n={...n,elems:{...n?.elems},timing:{...n?.timing,holeClosers:0,oneAnd2Prongs:0,threeProngs:0,sats:0,simplifyMat:0},fs:{...n?.fs},directives:{...n?.directives,stopAfterHoleClosers:!1,stopAfterHoleClosersNum:void 0,stopAfterTwoProngs:!1,stopAfterTwoProngsNum:void 0,stopAfterThreeProngs:!1,stopAfterThreeProngsNum:void 0}},window._debug_=n}function Qv(t,n,e,o){const r=[];for(const o of t)r.push({type:0,item:o,x:n(o)}),r.push({type:1,item:o,x:e(o)});r.sort(Vv);const c=new Set,i=[];for(const t of r){const{item:n}=t;if(0===t.type){for(const t of c.values())o(n,t)&&i.push([n,t]);c.add(n)}else 1===t.type&&c.delete(t.item)}return i}function Vv(t,n){const e=t.x-n.x;return 0!==e?e:0===t.type?-1:1}const{abs:$v}=Math,Uv=1e-4;function Zv(t,n){const e=t.pointOnShape,o=n.pointOnShape;let{curve:r,p:c,t:i}=e,{curve:s,p:u,t:f}=o;if(c[0]===u[0]&&c[1]===u[1])return[c];1===i&&(i=0,r=r.next),0===f&&(f=1,s=s.prev);const{ps:l}=r,{ps:a}=s,p=[c,ft(c)(lt(ht(l,i)))],h=[u,ft(u)(lt(ht(a,f)))],d=ot(p,h),v=rt(c,u);let g;if(d){const t=rt(c,d),n=rt(u,d);g=ct(t,v)<0||ct(n,v)>0}else g=!0;if(!g)return[c,d,u];const m=rt(p[0],p[1]),x=rt(h[0],h[1]),w=$v(st(v,m))/9,b=$v(st(v,x))/9;return w>.01||b>.01||w>Uv||b>Uv?void 0:[c,u]}const Gv=et(function(t){return In(Ut(t))});function Jv(t,n){const e=function(t){const n=new Map;for(let e of t)for(let o of t){const t=e.pointOnShape.circle.center,r=o.pointOnShape.circle.center,c=e.pointOnShape.p,i=o.pointOnShape.p;o!==e&&t[0]===r[0]&&t[1]===r[1]&&c[0]===i[0]&&c[1]===i[1]&&n.set(e,o)}return n}(n),o=t.length,r=[];for(let n=0;n<o;n++){const c=t[n],i=[];for(let r=0;r<o;r++){const o=t[r];if(n===r){i.push(0);continue}let s=1/0;for(const t of A(c)){let n=Gv(t),r=t.next;for(;!Gt(r,o);)if(r.isHoleClosing)r=Kv(e,r);else{if(Hn(r)){n=1/0;break}n+=Gv(r),r=r.next}n<s&&(s=n)}i.push(s)}r.push(i)}return r}function Kv(t,n){return t.get(n).next}function tg(t){let{cpNode:n}=t,e=n;do{if(W(n)||n.next!==n.nextOnCircle){n=n.next;continue}const t=n.next,o=t.next,r=n.next.nextOnCircle;n.next=o,n.nextOnCircle=r,o.prev=n,r.prevOnCircle=n,e===t&&(e=n),n=n.next}while(n!==e);return t.cpNode=n,t}function ng(t,n){return t.pointOnShape.curve.loop===n.pointOnShape.curve.loop}function eg(t){const n=[],e=[t],o=new Set(e);for(t.isHoleClosing&&o.add(t.prevOnCircle.holeCloserTwin),o.add(t);e.length>0;){const t=[],r=e.pop(),c=r.pointOnShape.curve.loop;let i=r;do{if(c===i.pointOnShape.curve.loop){t.push(i),i=i.next;continue}const n=i.holeCloserTwin;o.has(n)||(o.add(n),o.add(n.prevOnCircle.holeCloserTwin),e.push(n)),i=i.prev.holeCloserTwin}while(i!==r);n.push(t)}return n}function og(t){let{cpNode:n}=t;for(;!W(n);)n=n.next;return ng(n,n.next)||(n=n.holeCloserTwin),eg(n)}const{max:rg,abs:cg,round:ig,log2:sg}=Math;function ug(t,n=void 0){const e=function(t,n){return function(e){const o=e.next,r=e.pointOnShape,c=o.pointOnShape,{curve:i,circle:s,p:u}=r,{curve:f,p:l}=c;if(u[0]===l[0]&&u[1]===l[1])return;if(i.loop!==f.loop)return;const a=en(s.center,u);if(D(e),void 0!==n){const e=2**(t-n);if(cg(s.radius-a)>e)throw new Error(`Medial circle radius must be about the same (2**${ig(sg(e))}) as distance from medial circle center to point on shape, found: medial radius ${s.radius}, distance: ${a}`)}return function(t){const n=t.next,e=t.pointOnShape,o=n.pointOnShape,{p:r}=e,{p:c}=o,i=r,s=hg(t,fg),u=c,f=hg(n,lg),l=ot(s,f),a=rt(i,u);let p;if(l){const t=rt(i,l),n=rt(u,l);p=ct(t,a)<0||ct(n,a)>0}else p=!0;if(!p)return[i,l,u];const h=it(a),d=rt(s[0],s[1]),v=rt(f[0],f[1]),g=cg(st(a,d))/9,m=cg(st(a,v))/9;if(g>ag||m>ag)return[i,u];if(g>pg||m>pg){const t=ut(i,u,1/3),n=ut(i,u,2/3),e=ft(h,t),o=[n,ft(h,n)];return[i,ot(s,[t,e]),ot(f,o),u]}return[i,u]}(e)}}(rg(...t.map(t=>t.meta.maxCoordPowerOf2)),n),o=function(t,n,e){if(!Number.isInteger(3))throw new Error("depth must be an integer >= 1");return function t(n,o){const r=o;if(1===n){const t=[];for(let n=0;n<r.length;n++){const o=e(r[n]);void 0===o||t.push(o)}return t}const c=[];for(let e=0;e<r.length;e++)c.push(t(n-1,r[e]));return c}(3,n)}(0,t.map(tg).map(og),e);return o}const fg=0,lg=1,ag=.01,pg=1e-4;function hg(t,n){let{pointOnShape:e}=t,{curve:o,t:r,p:c}=e,{ps:i}=o;return n===fg&&1===r&&(r=0,o=o.next,i=o.ps),n===lg&&0===r&&(r=1,o=o.prev,i=o.ps),[c,ft(c,ht(i,r))]}function dg(t){const{idx:n,beziers:e}=t;return{idx:n,beziers:e}}function vg(t){const n=[],e=new Set,o=t;do{const{id:o,isHoleClosing:r,isIntersection:c,pointOnShape:i,prev:s,next:u,nextOnCircle:f,prevOnCircle:l,holeCloserTwin:a}=t,{curve:p,p:h,pDd:d,t:v,isSource:g,circle:m,order:x,order2:w}=i,{idx:b,loop:_,ps:M,prev:S,next:C}=p;e.has(_)||e.add(_);const y={curveIdx:b,loopIdx:_.idx,p:h,pDd:d,t:v,isSource:g,circle:m,order:x,order2:w};n.push({id:o,isHoleClosing:r,isIntersection:c,pointOnShape:y,prev:s.id,next:u.id,prevOnCircle:l.id,nextOnCircle:f.id,holeCloserTwin:a?.id}),t=t.next}while(t!==o);const r=Array.from(e).sort((t,n)=>t.idx-n.idx);return{cpNodes:n,loops:r.map(dg)}}const gg=["prev","next","prevOnCircle","nextOnCircle","holeCloserTwin"];function mg(n){const{idx:e,beziers:o}=n;return t(o,e)}function xg(t){const{cpNodes:n,loops:e}=t,o=e.map(mg),r=new Map(o.map(t=>[t.idx,t])),c=n.map(t=>{const{id:n,pointOnShape:e,isHoleClosing:o,isIntersection:c}=t,{circle:i,order:s,order2:u}=e,{curveIdx:f,loopIdx:l,p:a,pDd:p,t:h,isSource:d}=e,v={circle:i,curve:r.get(l).curves[f],p:a,pDd:p,t:h,isSource:d,order:s,order2:u};return{...t,id:n,isHoleClosing:o,isIntersection:c,pointOnShape:v}}),i=new Map(c.map(t=>[t.id,t]));for(const t of c)for(const n of gg){const e=t[n];void 0!==e&&(t[n]=i.get(e))}const s=new Set;for(const t of c){if(s.has(t))continue;const{circle:n}=t.pointOnShape;for(const e of A(t))s.add(e),e.pointOnShape.circle=n}return c[0]}function wg(t,n){return{center:t.center,radius:n*t.radius}}export{jn as CpNodeFs,e as beziersToSvgPathStr,Q as clone,qn as cpNodeComparator,Bh as createInitialCpTree,Xv as enableDebugForMat,j as enhanceCpNode,uv as find2Prong,Lv as findAndAddHoleClosing2Prongs,Hv as findMats,I as floydWarshall,xg as fromStringifyable,A as getAllOnCircle,k as getAllOnLoop,eg as getAllOnLoop_ByLoop,Ln as getAllVertices,$ as getBoundaryBezierPartsToNext,kn as getBoundaryBeziersBetween,Z as getBoundaryBeziersToNext,vh as getBoundaryPieceBeziers,tn as getBranch,nn as getBranchBeziers,Cp as getBranches,K as getChildren,sh as getCloseBoundaryPointsCertified,nh as getClosestSquareDistanceToRect,Xt as getEdgeDirection,Zt as getFirstExit,mv as getFor2ProngsOnLoop,Jv as getGraph,B as getHoleClosers,Zv as getImpliedBoundaryBezierBetween,Dn as getInitialDegAngleBetweenMatCurves,Rv as getLargest3Prong,Bp as getLargestVertex,$t as getMatCurveBetween,Ut as getMatCurveToNext,Pn as getMatCurvesBetween,Sp as getNonTerminatingOnCircle,nv as getOsculatingCircle,Ph as getPartialMeta,E as getPathsFromStr,Jp as getPotentialClosestPointsOnCurveCertified,T as getProngCount,D as getRealProngCount,Bn as getSalience,Dp as getSatCulls,Wv as getShapeBounds,Th as getSharpCornersOnLoop,Y as getVertexForwardChildren,W as isFullyTerminating,Gt as isOnSameCircle,ng as isOnSameLoop,Jt as isOneProng,q as isSharp,z as isTerminating,L as isTrivial,Kt as isTwoProng,Hn as isVertexSpecial,t as loopFromBeziers,ug as reconstructFromMats,J as removeVertex,wg as scaleCircle,Ip as simplifyMat,Qv as sweepLine,Lp as toScaleAxis,vg as toStringifyable,F as traverseCp,H as traverseEdges,R as traverseVertices,Yv as trimMat};
|
|
1
|
+
function t(t=[],e){const o=[],r={beziers:t,curves:o,idx:e};if(0===t.length)return r;let c,i=0;for(let e=0;e<t.length;e++){if(n(t[e]))continue;const s={loop:r,ps:t[e],prev:c,next:void 0,idx:i};c&&(c.next=s),c=s,o.push(s),i++}const s=o[o.length-1];return o[0].prev=s,s.next=o[0],s.ps[s.ps.length-1]=o[0].ps[0],r}function n(t){if(t.length<=1)return!0;const n=t[0],e=t[1],o=n[0]===e[0]&&n[1]===e[1];if(2===t.length)return o;const r=t[2],c=e[0]===r[0]&&e[1]===r[1];if(3===t.length)return o&&c;const i=t[3],s=r[0]===i[0]&&r[1]===i[1];return o&&c&&s}function e(t){const n=[];for(let e=0;e<t.length;e++){const o=t[e];0===e&&n.push("M "+o[0][0].toString()+" "+o[0][1].toString()),4===o.length?n.push("C "+o[1][0].toString()+" "+o[1][1].toString()+" "+o[2][0].toString()+" "+o[2][1].toString()+" "+o[3][0].toString()+" "+o[3][1].toString()+" "):3===o.length?n.push("Q "+o[1][0].toString()+" "+o[1][1].toString()+" "+o[2][0].toString()+" "+o[2][1].toString()+" "):2===o.length&&n.push("L "+o[1][0].toString()+" "+o[1][1].toString()+" ")}return n.push(" z"),n.join("\n")}function o(t){const n=[t.p,t.initialPoint];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n}function r(t,n,e){function o(e){return[e[0]*n-e[1]*t,e[0]*t+e[1]*n]}return void 0===e?o:o(e)}const{min:c,max:i}=Math;function s(t,n,e){return c(e,i(n,t))}const{abs:u,sqrt:f,asin:l,sin:a,cos:p,tan:h,PI:v}=Math;function d(t,n,e,o,c,i,g,m,x,_){const b=v*g/180;let w,M,S,y,C=[];if(_)w=_[0],M=_[1],S=_[2],y=_[3];else{const h=r(a(-b),p(-b));[t,n]=h([t,n]),[e,o]=h([e,o]);const d=(t-e)/2,g=(n-o)/2;let _=d*d/(c*c)+g*g/(i*i);_>1&&(_=f(_),c*=_,i*=_);const C=c*c,O=i*i,E=(m===x?-1:1)*f(u((C*O-C*g*g-O*d*d)/(C*g*g+O*d*d)));S=E*c*g/i+(t+e)/2,y=E*-i*d/c+(n+o)/2,w=l(s((n-y)/i,-1,1)),M=l(s((o-y)/i,-1,1)),t<S&&(w=v-w),e<S&&(M=v-M),w<0&&(w=2*v+w),M<0&&(M=2*v+M),x&&w>M&&(w-=2*v),!x&&M>w&&(M-=2*v)}let O=M-w;if(u(O)>120*v/180){const t=M,n=e,r=o;M=w+(x&&M>w?1:-1)*v*120/180,C=d(e=S+c*p(M),o=y+i*a(M),n,r,c,i,g,0,x,[M,t,S,y])}O=M-w;const E=p(w),N=a(w),I=p(M),B=a(M),k=h(O/4),P=4/3*c*k,T=4/3*i*k,A=[t,n],z=[t+P*N,n-T*E],D=[e+P*B,o-T*I],q=[e,o];if(z[0]=2*A[0]-z[0],z[1]=2*A[1]-z[1],_)return[z,D,q,...C];const F=[z,D,q,...C].flat(),j=[];let H=[];const L=r(a(b),p(b));return F.forEach(function(t,n){if(n%2){const t=L([F[n-1],F[n]]);H.push(t[1])}else{const t=L([F[n],F[n+1]]);H.push(t[0])}6===H.length&&(j.push(H),H=[])}),j}function g(t){t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0;const n=t.p,e=[t.vals[5],t.vals[6]],o=Math.abs(t.vals[0]),r=Math.abs(t.vals[1]);if(n[0]===e[0]&&n[1]===e[1])return[];if(0===o||0===r)return t.p=e,[[n,e]];const c=d(n[0],n[1],e[0],e[1],o,r,t.vals[2],t.vals[3],t.vals[4]),i=[];let s=n;for(const t of c){const n=[s,[t[0],t[1]],[t[2],t[3]],[t[4],t[5]]];i.push(n),s=n[3]}const u=i[i.length-1];return t.p=u[u.length-1],i}const m={c:function(t){const n=[t.p,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]],[t.vals[4],t.vals[5]]];return t.prev2ndCubicControlPoint=n[2],t.prev2ndQuadraticControlPoint=void 0,n},h:function(t){const n=[t.p,[t.vals[0],t.p[1]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},l:function(t){const n=[t.p,t.vals];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},q:function(t){const n=[t.vals[0],t.vals[1]],e=[t.vals[2],t.vals[3]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},s:function(t){const n=t.prev2ndCubicControlPoint?[t.p[0]-t.prev2ndCubicControlPoint[0]+t.p[0],t.p[1]-t.prev2ndCubicControlPoint[1]+t.p[1]]:t.p,e=[t.p,n,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]]];return t.prev2ndCubicControlPoint=e[2],t.prev2ndQuadraticControlPoint=void 0,e},t:function(t){const n=t.prev2ndQuadraticControlPoint?[t.p[0]-t.prev2ndQuadraticControlPoint[0]+t.p[0],t.p[1]-t.prev2ndQuadraticControlPoint[1]+t.p[1]]:t.p,e=[t.vals[0],t.vals[1]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},v:function(t){const n=[t.p,[t.p[0],t.vals[0]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},z:o},x=new Set("MLCQAHVSTZmlcqahvstz");function _(t){if(x.has(t))return"z"===t?"Z":t}const b=/[ \t\n\r\f]/;function w(t){return b.test(t._string[t._currentIndex])}function M(t){for(;t._currentIndex<t._endIndex&&w(t);)t._currentIndex++;return t._currentIndex<t._endIndex}function S(t){return!(t._currentIndex<t._endIndex&&!w(t)&&","!==t._string[t._currentIndex])&&(M(t)&&t._currentIndex<t._endIndex&&","===t._string[t._currentIndex]&&(t._currentIndex++,M(t)),t._currentIndex<t._endIndex)}function y(t){let n=0,e=0,o=1,r=0,c=1,i=1;const s=t._currentIndex;M(t);let u=t._currentIndex;u<t._endIndex&&"+"===t._string[u]?(t._currentIndex++,u++):u<t._endIndex&&"-"===t._string[u]&&(t._currentIndex++,u++,c=-1);const f=t._string[u];if(u===t._endIndex||(f<"0"||f>"9")&&"."!==f)throw new Error(`The first character of a number must be one of [0-9+-.]. Found '${f}' at index ${u}.`);const l=t._currentIndex;for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)t._currentIndex++,u++;if(u!==l){let n=u-1,o=1;for(;n>=l;)e+=o*(Number(t._string[n])-0),n-=1,o*=10}if(u<t._endIndex&&"."===t._string[u]){if(t._currentIndex++,u++,u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be a least one digit following the .");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)o*=10,r+=Number(t._string[u])/o,t._currentIndex++,u++}if(u!==s&&u+1<t._endIndex&&("e"===t._string[u]||"E"===t._string[u])&&"x"!==t._string[u+1]&&"m"!==t._string[u+1]){if(t._currentIndex++,u++,"+"===t._string[u]?(t._currentIndex++,u++):"-"===t._string[u]&&(t._currentIndex++,u++,i=-1),u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be an exponent.");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)n*=10,n+=Number(t._string[u]),t._currentIndex++,u++}let a=e+r;return a*=c,n&&(a*=10**(i*n)),S(t),a}function C(t){if(t._currentIndex>=t._endIndex)throw new Error("Unable to parse arc flag");let n;const e=t._string[t._currentIndex];if(t._currentIndex++,"0"===e)n=0;else{if("1"!==e)throw new Error("Unable to parse arc flag - arc flag must be 0 or 1");n=1}return S(t),n}function O(t){const n=t._string[t._currentIndex];let e=_(n);if(void 0===e){if(!("+"===n||"-"===n||"."===n||n>="0"&&n<="9")||"Z"===t._prevCommand)throw new Error("Remaining coordinates not found for implicit command");e="M"===t._prevCommand?"L":"m"===t._prevCommand?"l":t._prevCommand}else t._currentIndex++;t._prevCommand=e;const o=e.toUpperCase();let r;return"H"===o||"V"===o?r=[y(t)]:"M"===o||"L"===o||"T"===o?r=[y(t),y(t)]:"S"===o||"Q"===o?r=[y(t),y(t),y(t),y(t)]:"C"===o?r=[y(t),y(t),y(t),y(t),y(t),y(t)]:"A"===o?r=[y(t),y(t),y(t),C(t),C(t),y(t),y(t)]:(M(t),r=[]),{command:e,values:r}}function E(t){return t._currentIndex<t._endIndex}function N(t){return function(t){if(0===t.length)return[];if("m"!==t[0].command.toLowerCase())throw new Error("Invalid SVG - every new path must start with an M or m.");const n={p:[0,0],initialPoint:void 0,prev2ndCubicControlPoint:void 0,prev2ndQuadraticControlPoint:void 0,vals:void 0},e=[];let r,c=[];for(let i=0;i<t.length;i++){const s=t[i],u=s.command.toLowerCase();if(n.vals=s.values,s.command===u)if("v"===u)n.vals[0]+=n.p[1];else if("a"===u)n.vals[5]+=n.p[0],n.vals[6]+=n.p[1];else for(let t=0;t<n.vals.length;t++)n.vals[t]+=n.p[t%2];if("m"!==u){if("a"===u)c.push(...g(n));else{const t=m[u];if(!t)throw new Error("Invalid SVG - command not recognized.");const e=t(n);n.p=e[e.length-1],c.push(e)}r=u}else c.length&&("z"!==r&&c.push(o(n)),e.push(c),c=[]),n.initialPoint=n.p=n.vals,r=u}return c.length>0&&("z"!==r&&c.push(o(n)),e.push(c)),e}(function(t){if(!t.length)return[];const n={_string:t,_currentIndex:0,_endIndex:t.length,_prevCommand:void 0};if(M(n),!function(t){if(!E(t))return!0;const n=_(t._string[t._currentIndex]);return"M"===n||"m"===n}(n))throw new Error("Path must start with m or M");const e=[];for(;E(n);)e.push(O(n));return e}(t))}function I(t){const n=t.length,e=Array.from(Array(n),()=>new Array(n).fill(0));for(let o=0;o<n;o++)for(let r=0;r<n;r++)e[o][r]=t[o][r];for(let t=0;t<n;t++)for(let o=0;o<n;o++)for(let r=0;r<n;r++)e[o][t]+e[t][r]<e[o][r]&&(e[o][r]=e[o][t]+e[t][r]);return e}function B(t){const n=t,e=[];do{e.push(t),t=t.next}while(t!==n);return e}function k(t){return B(t).filter(t=>t.isHoleClosing)}function P(t){const n=t.pointOnShape;return{idx:n.curve.idx,t:n.t,order:n.order,order2:n.order2}}function T(t){const n=t;let e=n,o=0;do{o++,e=e.nextOnCircle}while(e!==n);return o}function A(t){return t===t.next.prevOnCircle}function z(t){let n=0,e=t;do{A(e)||n++,e=e.nextOnCircle}while(e!==t);return n}function D(t){return A(t)&&z(t)<=1}function q(t){return 0===t.pointOnShape.circle.radius}function F(t){const n=t.pointOnShape,e=n.curve;return{...t,pos:n,p:n.p,t:n.t,isTerminating:A(t),isFullyTerminating:D(t),isSharp:q(t),prongCount:T(t),getRealProngCount:z(t),ordering:P(t),curve:e,loop:e.loop}}function j(t){let n=t;if(A(n))return[n];const e=[];do{e.push(n);const t=n.next.prevOnCircle;n=n=n===t?n.next.next:t}while(n!==t);return e}function H(t,n){const e=B(t),o=new Set;for(t of e)A(t)||o.has(t.next.prevOnCircle)||n(t),o.add(t)}function L(t,n=!1){const e=t,o=n?[]:[t];let r=t.nextOnCircle;for(;r!==e;)o.push(r),r=r.nextOnCircle;return o}function W(t){const n=[],e=t;let o=e;for(;o!==e.prevOnCircle;)A(o)||n.push(o.next),o=o.nextOnCircle;return n}function Y(t,n){n(t);const e=L(t).filter(t=>!A(t)).map(t=>t.next);for(const t of e){const e=[t];for(;e.length;){const t=e.pop();n(t),e.push(...W(t))}}}const X=["prev","next","prevOnCircle","nextOnCircle","holeCloserTwin"];function Q(t){const n=new Map,e=V(t);n.set(t,e);const o=[{cpNode:t,newCpNode:e}];for(;o.length;){const{cpNode:t,newCpNode:e}=o.pop();for(const r of X){const c=t[r];if(void 0===c)continue;let i=n.get(c);i||(i=V(c),n.set(c,i),o.push({cpNode:c,newCpNode:i})),e[r]=i}}return e}function V(t){return{...t,prev:void 0,next:void 0,prevOnCircle:void 0,nextOnCircle:void 0,holeCloserTwin:void 0}}function U(t){const n=t,e=t.next,o=n.pointOnShape,r=e.pointOnShape,c=o.curve,i=r.curve;if(c.loop!==i.loop)return[];const s=[];return i===c?s.push({ps:o.curve.ps,ts:[o.t,r.t]}):(s.push({ps:o.curve.ps,ts:[o.t,1]}),function(t,n,e,o){let r=n;do{r=r.next;const n=r===e?o:1;t.push({ps:r.ps,ts:[0,n]})}while(r!==e)}(s,o.curve,r.curve,r.t)),s}function R(t,n,e){if(4===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=i-n*(i-u),h=u-n*(u-l),v=p-n*(p-h),d=s-n*(s-f),g=f-n*(f-a),m=d-n*(d-g);return[e,[p,d],[v,m],[v-n*(v-(h-n*(h-(l-n*(l-c[0]))))),m-n*(m-(g-n*(g-(a-n*(a-c[1])))))]]}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=i-n*(i-u),h=u-n*(u-l),v=l-n*(l-c[0]),d=p-n*(p-h),g=h-n*(h-v),m=s-n*(s-f),x=f-n*(f-a),_=a-n*(a-c[1]),b=m-n*(m-x),w=x-n*(x-_);return[[d-n*(d-g),b-n*(b-w)],[g,w],[v,_],c]}(t,n):function(t,n,e){const o=t[0],r=t[1],c=t[2],i=t[3],s=o[0],u=o[1],f=r[0],l=r[1],a=c[0],p=c[1],h=n*n,v=n*h,d=e*e,g=e*d,m=n*e,x=s-f,_=a-f,b=x+_,w=n*x,M=e*x,S=i[0]-s-3*_,y=u-l,C=p-l,O=y+C,E=n*y,N=e*y,I=i[1]-u-3*C;return[[v*S+(3*n*(n*b-x)+s),v*I+(3*n*(n*O-y)+u)],[m*(n*S+2*b)+(h*b+s-(M+2*w)),m*(n*I+2*O)+(h*O+u-(N+2*E))],[m*(e*S+2*b)+(d*b+s-(2*M+w)),m*(e*I+2*O)+(d*O+u-(2*N+E))],[g*S+(3*e*(e*b-x)+s),g*I+(3*e*(e*O-y)+u)]]}(t,n,e)}(t,n,e);if(3===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=n*n,l=c-s,a=i-u;return[e,[-n*l+c,-n*a+i],[f*(l+(r[0]-s))-(2*n*l-c),f*(a+(r[1]-u))-(2*n*a-i)]]}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=n*n,l=c-s,a=r[0]-s,p=i-u,h=r[1]-u;return[[f*(l+a)-(2*n*l-c),f*(p+h)-(2*n*p-i)],[n*a+s,n*h+u],r]}(t,n):function(t,n,e){const o=t[0],r=t[1],c=t[2],i=o[0],s=o[1],u=r[0],f=r[1],l=n*n,a=e*e,p=n*e,h=i-u,v=h+(c[0]-u),d=s-f,g=d+(c[1]-f);return[[l*v-(2*n*h-i),l*g-(2*n*d-s)],[p*v-(h*(e+n)-i),p*g-(d*(e+n)-s)],[a*v-(2*e*h-i),a*g-(2*e*d-s)]]}(t,n,e)}(t,n,e);if(2===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1];return[e,[n*(o[0]-r)+r,n*(o[1]-c)+c]]}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1];return[[n*(o[0]-r)+r,n*(o[1]-c)+c],o]}(t,n):function(t,n,e){const o=t[0],r=t[1],c=o[0],i=o[1],s=r[0],u=r[1];return[[n*(s-c)+c,n*(u-i)+i],[e*(s-c)+c,e*(u-i)+i]]}(t,n,e)}(t,n,e);if(1===t.length)return t;throw new Error("The given bezier curve must be of order <= 3.")}function $(t){return U(t).map(t=>R(t.ps,t.ts[0],t.ts[1]))}function Z(t,n){const{cpTrees:e}=n,o=t.prev,r=t.next;o.next=r,r.prev=o,e.get(t.pointOnShape.curve.loop).remove(t)}function G(t,n){const e=T(t);if(2!==e)throw new Error(`Cannot delete \`CpNode\` on ${e}-prong`);L(t).forEach(t=>Z(t,n))}function J(t){const n=[],e=t.next;let o=e;do{n.push(o),o=o.nextOnCircle}while(o.nextOnCircle!==e);return n}function K(t,n,e){if(void 0===t.size||void 0===e)return;const o=e[n];if(t.size>o&&void 0!==o)for(const[n]of t){t.delete(n);break}}const tt=[function(t,n){let e,o=!1;return function(){return o||(e=t(),o=!0),e}},function(t,n,e=!1){const o=new WeakMap,r=new Map;function c(t){return"object"!=typeof t&&"function"!=typeof t||null===t?r:o}const i=function(o){let i;const s=c(o);return s.has(o)?(e&&console.log("cache hit"),i=s.get(o)):(e&&console.log("cache miss"),i=t(o),s.set(o,i),K(r,0,n)),i};return i.mapS=r,i.weakMapS=o,i.clearCache=function(){r.clear()},i.addToCache=function(t,e){const o=c(e);o.set(e,t),K(o,1,n)},i},function(t,n){const e=new WeakMap,o=new Map;function r(t,r){const c=("object"==typeof r||"function"==typeof r)&&null!==r;let i="object"!=typeof t&&"function"!=typeof t||null===t?o:e,s=i.get(t);return void 0===s&&(s={weakMap:new WeakMap,map:new Map},i.set(t,s),K(i,0,n)),c?s.weakMap:s.map}function c(e,o){const c=r(e,o);let i;return c.has(o)?i=c.get(o):(i=t(e,o),c.set(o,i),K(c,1,n)),i}return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o){const c=r(e,o);c.set(o,t),K(c,1,n)},c},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c){const i=("object"==typeof r||"function"==typeof r)&&null!==r,s=("object"==typeof c||"function"==typeof c)&&null!==c;let u="object"!=typeof t&&"function"!=typeof t||null===t?o:e,f=u.get(t);void 0===f&&(f={weakMap:new WeakMap,map:new Map},u.set(t,f),K(u,0,n));const l=i?f.weakMap:f.map;let a=l.get(r);return void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(r,a),K(l,1,n)),s?a.weakMap:a.map}const c=function(e,o,c){const i=r(e,o,c);let s;return i.has(c)?s=i.get(c):(s=t(e,o,c),i.set(c,s),K(i,2,n)),s};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c){const i=r(e,o,c);i.set(c,t),K(i,2,n)},c},function(t,n,e=!1){const o=new WeakMap,r=new Map;function c(t,e,c,i){const s=("object"==typeof e||"function"==typeof e)&&null!==e,u=("object"==typeof c||"function"==typeof c)&&null!==c,f=("object"==typeof i||"function"==typeof i)&&null!==i;let l="object"!=typeof t&&"function"!=typeof t||null===t?r:o,a=l.get(t);void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(t,a),K(l,0,n));const p=s?a.weakMap:a.map;let h=p.get(e);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(e,h),K(p,1,n));const v=u?h.weakMap:h.map;let d=v.get(c);return void 0===d&&(d={weakMap:new WeakMap,map:new Map},v.set(c,d),K(v,2,n)),f?d.weakMap:d.map}const i=function(o,r,i,s){const u=c(o,r,i,s);let f;return u.has(s)?(e&&console.log("cache hit"),f=u.get(s)):(e&&console.log("cache miss"),f=t(o,r,i,s),u.set(s,f),K(u,3,n)),f};return i.mapS=r,i.weakMapS=o,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,o,r,i){const s=c(e,o,r,i);s.set(i,t),K(s,3,n)},i},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c,i,s){const u=("object"==typeof r||"function"==typeof r)&&null!==r,f=("object"==typeof c||"function"==typeof c)&&null!==c,l=("object"==typeof i||"function"==typeof i)&&null!==i,a=("object"==typeof s||"function"==typeof s)&&null!==s;let p="object"!=typeof t&&"function"!=typeof t||null===t?o:e,h=p.get(t);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(t,h),K(p,0,n));const v=u?h.weakMap:h.map;let d=v.get(r);void 0===d&&(d={weakMap:new WeakMap,map:new Map},v.set(r,d),K(v,1,n));const g=f?d.weakMap:d.map;let m=g.get(c);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(c,m),K(g,2,n));const x=l?m.weakMap:m.map;let _=x.get(i);return void 0===_&&(_={weakMap:new WeakMap,map:new Map},x.set(i,_),K(x,3,n)),a?_.weakMap:_.map}const c=function(e,o,c,i,s){const u=r(e,o,c,i,s);let f;return u.has(s)?f=u.get(s):(f=t(e,o,c,i,s),u.set(s,f),K(u,4,n)),f};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c,i,s){const u=r(e,o,c,i,s);u.set(s,t),K(u,4,n)},c},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c,i,s,u){const f=("object"==typeof r||"function"==typeof r)&&null!==r,l=("object"==typeof c||"function"==typeof c)&&null!==c,a=("object"==typeof i||"function"==typeof i)&&null!==i,p=("object"==typeof s||"function"==typeof s)&&null!==s,h=("object"==typeof u||"function"==typeof u)&&null!==u;let v="object"!=typeof t&&"function"!=typeof t||null===t?o:e,d=v.get(t);void 0===d&&(d={weakMap:new WeakMap,map:new Map},v.set(t,d),K(v,0,n));const g=f?d.weakMap:d.map;let m=g.get(r);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(r,m),K(g,1,n));const x=l?m.weakMap:m.map;let _=x.get(c);void 0===_&&(_={weakMap:new WeakMap,map:new Map},x.set(c,_),K(x,2,n));const b=a?_.weakMap:_.map;let w=b.get(i);void 0===w&&(w={weakMap:new WeakMap,map:new Map},b.set(i,w),K(b,3,n));const M=p?w.weakMap:w.map;let S=M.get(s);return void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(s,S),K(M,4,n)),h?S.weakMap:S.map}const c=function(e,o,c,i,s,u){const f=r(e,o,c,i,s,u);let l;return f.has(u)?l=f.get(u):(l=t(e,o,c,i,s,u),f.set(u,l),K(f,5,n)),l};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c,i,s,u){const f=r(e,o,c,i,s,u);f.set(u,t),K(f,5,n)},c},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c,i,s,u,f){const l=("object"==typeof r||"function"==typeof r)&&null!==r,a=("object"==typeof c||"function"==typeof c)&&null!==c,p=("object"==typeof i||"function"==typeof i)&&null!==i,h=("object"==typeof s||"function"==typeof s)&&null!==s,v=("object"==typeof u||"function"==typeof u)&&null!==u,d=("object"==typeof f||"function"==typeof f)&&null!==f;let g="object"!=typeof t&&"function"!=typeof t||null===t?o:e,m=g.get(t);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(t,m),K(g,0,n));const x=l?m.weakMap:m.map;let _=x.get(r);void 0===_&&(_={weakMap:new WeakMap,map:new Map},x.set(r,_),K(x,1,n));const b=a?_.weakMap:_.map;let w=b.get(c);void 0===w&&(w={weakMap:new WeakMap,map:new Map},b.set(c,w),K(b,2,n));const M=p?w.weakMap:w.map;let S=M.get(i);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(i,S),K(M,3,n));const y=h?S.weakMap:S.map;let C=y.get(s);void 0===C&&(C={weakMap:new WeakMap,map:new Map},y.set(s,C),K(y,4,n));const O=v?C.weakMap:C.map;let E=O.get(u);return void 0===E&&(E={weakMap:new WeakMap,map:new Map},O.set(u,E),K(O,5,n)),d?E.weakMap:E.map}const c=function(e,o,c,i,s,u,f){const l=r(e,o,c,i,s,u,f);let a;return l.has(f)?a=l.get(f):(a=t(e,o,c,i,s,u,f),l.set(f,a),K(l,6,n)),a};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c,i,s,u,f){const l=r(e,o,c,i,s,u,f);l.set(f,t),K(l,6,n)},c},function(t,n){const e=new WeakMap,o=new Map;function r(t,r,c,i,s,u,f,l){const a=("object"==typeof r||"function"==typeof r)&&null!==r,p=("object"==typeof c||"function"==typeof c)&&null!==c,h=("object"==typeof i||"function"==typeof i)&&null!==i,v=("object"==typeof s||"function"==typeof s)&&null!==s,d=("object"==typeof u||"function"==typeof u)&&null!==u,g=("object"==typeof f||"function"==typeof f)&&null!==f,m=("object"==typeof l||"function"==typeof l)&&null!==l;let x="object"!=typeof t&&"function"!=typeof t||null===t?o:e,_=x.get(t);void 0===_&&(_={weakMap:new WeakMap,map:new Map},x.set(t,_),K(x,0,n));const b=a?_.weakMap:_.map;let w=b.get(r);void 0===w&&(w={weakMap:new WeakMap,map:new Map},b.set(r,w),K(b,1,n));const M=p?w.weakMap:w.map;let S=M.get(c);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(c,S),K(M,2,n));const y=h?S.weakMap:S.map;let C=y.get(i);void 0===C&&(C={weakMap:new WeakMap,map:new Map},y.set(i,C),K(y,3,n));const O=v?C.weakMap:C.map;let E=O.get(s);void 0===E&&(E={weakMap:new WeakMap,map:new Map},O.set(s,E),K(O,4,n));const N=d?E.weakMap:E.map;let I=N.get(u);void 0===I&&(I={weakMap:new WeakMap,map:new Map},N.set(u,I),K(N,5,n));const B=g?I.weakMap:I.map;let k=B.get(f);return void 0===k&&(k={weakMap:new WeakMap,map:new Map},B.set(f,k),K(B,6,n)),m?k.weakMap:k.map}const c=function(e,o,c,i,s,u,f,l){const a=r(e,o,c,i,s,u,f,l);let p;return a.has(l)?p=a.get(l):(p=t(e,o,c,i,s,u,f,l),a.set(l,p),K(a,7,n)),p};return c.mapS=o,c.weakMapS=e,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,o,c,i,s,u,f,l){const a=r(e,o,c,i,s,u,f,l);a.set(l,t),K(a,7,n)},c}];function nt(t,n,e=!1){const o=t.length;if(o>8)throw new Error("A maximum of 8 formal parameters are supported");return(0,tt[o])(t,n,e)}function et(t,n){return[n[0]-t[0],n[1]-t[1]]}function ot(t){return[-t[1],t[0]]}function rt(t){const n=1/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]*n,t[1]*n]}function ct(t,n){return t[0]*n[0]+t[1]*n[1]}function it(t,n){function e(n){return[t[0]+n[0],t[1]+n[1]]}return void 0===n?e:e(n)}function st(t){if(4===t.length)return function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[3*(s-n+3*(o-c)),6*(c+n-2*o),3*(o-n)],[3*(u-e+3*(r-i)),6*(i+e-2*r),3*(r-e)]]}(t);if(3===t.length)return function(t){const[[n,e],[o,r],[c,i]]=t;return[[2*(c+n-2*o),2*(o-n)],[2*(i+e-2*r),2*(r-e)]]}(t);if(2===t.length)return function(t){const[[n,e],[o,r]]=t;return[[o-n],[r-e]]}(t);if(1===t.length)return[[0],[0]];throw new Error("The bezier curve must be of order <= 3.")}function ut(t,n){let e=0;for(let o=0;o<t.length;o++)e=e*n+t[o];return e}const ft=function(t,n){const[e,o]=st(t),r=t=>[ut(e,t),ut(o,t)];return void 0===n?r:r(n)};function lt(t,n){return t[0]*n[1]-t[1]*n[0]}function at(t,n){const e=t-n,o=t-e;return[t-(e+o)+(o-n),e]}function pt(t,n){const e=function(t,n){const e=t.length,o=n.length;let r=0,c=0;const i=[];for(;r<e&&c<o;)0!==t[r]?0!==n[c]?Math.abs(t[r])<=Math.abs(n[c])?(i.push(t[r]),r++):(i.push(n[c]),c++):c++:r++;for(;r<e;)i.push(t[r]),r++;for(;c<o;)i.push(n[c]),c++;return 0===i.length?[0]:i}(t,n),o=e.length;if(1===o)return e;const r=[],c=e[1],i=e[0];let s=c+i;const u=i-(s-c);0!==u&&r.push(u);for(let t=2;t<o;t++){const n=e[t],o=s+n,c=o-s,i=s-(o-c)+(n-c);0!==i&&r.push(i),s=o}return 0===s&&0!==r.length||r.push(s),r}const ht=134217729;function vt(t,n){const e=t.length;if(0===e)return[0];const o=ht*n,r=o-(o-n),c=n-r,i=[],s=t[0];let u=s*n;const f=ht*s,l=f-(f-s),a=s-l,p=a*c-(u-l*r-a*r-l*c);0!==p&&i.push(p);for(let o=1;o<e;o++){const e=t[o],s=e*n,f=ht*e,l=f-(f-e),a=e-l,p=a*c-(s-l*r-a*r-l*c),h=u+p,v=h-u,d=u-(h-v)+(p-v);0!==d&&i.push(d);const g=s+h,m=h-(g-s);0!==m&&i.push(m),u=g}return 0===u&&0!==i.length||i.push(u),i}function dt(t,n){return vt(n,t)}function gt(t,n){if(1===t.length)return vt(n,t[0]);if(1===n.length)return vt(t,n[0]);if(0===t.length||0===n.length)return[0];t.length<n.length&&([t,n]=[n,t]);let e=[];for(let o=0;o<n.length;o++)e.push(vt(t,n[o]));for(;e.length>1;){const t=[];for(let n=0;n<e.length;n+=2)t.push(n+1<e.length?pt(e[n],e[n+1]):e[n]);e=t}return e[0]}function mt(t){let n=t[0];for(let e=1;e<t.length;e++)n+=t[e];return n}function xt(t){const n=t.length,e=new Array(n);for(let o=0;o<n;o++)e[o]=-t[o];return e}function _t(t,n){return pt(t,xt(n))}function bt(t){return t[t.length-1]}const wt=at,Mt=dt;function St(t){if(4===t.length){const[[n,e],[o,r]]=t;return[Mt(3,wt(o,n)),Mt(3,wt(r,e))]}if(3===t.length){const[[n,e],[o,r]]=t;return[wt(2*o,2*n),wt(2*r,2*e)]}if(2===t.length){const[[n,e],[o,r]]=t;return[wt(o,n),wt(r,e)]}if(1===t.length)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}function yt(t,n){const e=t+n,o=e-t;return[t-(e-o)+(n-o),e]}function Ct(t,n){const e=t.length;let o=n;const r=[];for(let n=0;n<e;n++){const e=t[n],c=o+e,i=c-o,s=o-(c-i)+(e-i);0!==s&&r.push(s),o=c}return 0===o&&0!==r.length||r.push(o),r}const Ot=yt,Et=dt,Nt=Ct;function It(t){if(4===t.length){const[[n,e],[o,r],[c,i]]=t;return[Et(6,Nt(Ot(c,n),-2*o)),Et(6,Nt(Ot(i,e),-2*r))]}if(3===t.length){const[[n,e],[o,r],[c,i]]=t;return[Nt(Ot(2*c,2*n),-4*o),Nt(Ot(2*i,2*e),-4*r)]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3")}const Bt=at,kt=dt,Pt=pt;function Tt(t){if(4===t.length){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[kt(6,Pt(Bt(s,n),kt(3,Bt(o,c))))],[kt(6,Pt(Bt(u,e),kt(3,Bt(r,i))))]]}if(t.length<=3)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}const{sign:At}=Math;function zt(t,n){const[e,o]=St(t),[r,c]=It(t),[i,s]=St(n),[u,f]=It(n),l=_t(gt(e,c),gt(o,r)),a=_t(gt(i,f),gt(s,u)),p=bt(l),h=bt(a);if(At(p)!==At(h))return p-h;const v=pt(gt(i,i),gt(s,s)),d=pt(gt(e,e),gt(o,o)),g=gt(v,v),m=gt(g,v),x=gt(d,d),_=gt(x,d);if(0!==p||0!==h){const t=gt(l,l),n=gt(a,a),e=bt(_t(gt(t,m),gt(n,_)));if(0!==e)return p>0?e:-e}const[[b],[w]]=Tt(t),[[M],[S]]=Tt(n),y=_t(gt(e,w),gt(o,b)),C=pt(gt(e,r),gt(o,c)),O=_t(gt(i,S),gt(s,M)),E=pt(gt(i,u),gt(s,f)),N=_t(gt(d,y),vt(gt(l,C),3)),I=_t(gt(v,O),vt(gt(a,E),3)),B=bt(N),k=bt(I);if(B!==k)return B-k;if(0===B&&0===k)return 0;const P=gt(N,N),T=gt(g,m),A=gt(I,I),z=gt(x,_),D=bt(_t(gt(P,T),gt(A,z)));return B>0?D:-D}function Dt(t,n){return t[0]===n[0]&&t[1]===n[1]}function qt(t,n){const{ccw:e,tangentI:o,tangentO:r,dotTangents:c}=function(t,n){const e=t.length;let o=t[e-2],r=n[0],c=n[1];Dt(o,r)&&(o=t[e-3]),Dt(r,c)&&(c=n[2]);const i=function(t,n,e){const o=at(t[0],e[0]),r=at(n[1],e[1]),c=at(t[1],e[1]),i=at(n[0],e[0]);return mt(pt(gt(o,r),xt(gt(c,i))))}(o,r,c),s=[at(r[0],o[0]),at(r[1],o[1])],u=[at(c[0],r[0]),at(c[1],r[1])],f=function(t,n){return mt(pt(gt(t[0],n[0]),gt(t[1],n[1])))}(s,u);return 0!==i||f>0?{ccw:i,tangentI:s,tangentO:u,dotTangents:f}:{ccw:zt(t.slice().reverse(),n),tangentI:s,tangentO:u,dotTangents:f}}(t,n),i=e<0,s=e>0,u=[rt(o.map(t=>t[1])),rt(r.map(t=>t[1]))],f=lt(u[0],u[1]);let l,a;return c>0?(l=f<-.0698,a=f>.0698):(l=i,a=s),{tangents:u,isSharp:i,isDull:s,isQuiteSharp:l,isQuiteDull:a}}const Ft=nt(qt),jt=nt(function(t){const{t:n,curve:e}=t;return Ft(1===n?e.ps:e.prev.ps,1===n?e.next.ps:e.ps)});function Ht(t){return 0===t.t||1===t.t}function Lt(t){return!!Ht(t)&&jt(t).isSharp}const{sqrt:Wt}=Math;function Yt(t){const n=t.pointOnShape.circle.center,e=t,o=t.nextOnCircle,c=e.pointOnShape,i=o.pointOnShape,s=c.p,u=i.p;let f;if(Lt(c)){let t,n;0===c.t?(t=c.curve,n=c.curve.prev):1===c.t&&(t=c.curve.next,n=c.curve);const e=rt(ft(t.ps,0)),o=[-(l=rt(ft(n.ps,1)))[0],-l[1]],i=ct(e,o),s=Wt((1+i)/2);f=r(Wt((1-i)/2),s,o)}else f=s[0]===u[0]&&s[1]===u[1]?et(s,n):ot(et(s,u));var l;return[n,it(rt(f),n)]}const{abs:Xt,sqrt:Qt}=Math,Vt=2**-16;function Ut(t,n){const e=t[0],o=n[0],r=et(e,o);if(0===r[0]&&0===r[1])return[[e,o]];const c=et(t[0],t[1]),i=et(n[0],n[1]),s=Qt(ct(r,r)),u=Qt(ct(c,c)),f=Qt(ct(i,i));if(0===u||0===f)return[[e,o]];const l=function(t,n){const[[e,o],[r,c]]=t,[[i,s],[u,f]]=n,l=r-e,a=c-o,p=u-i,h=f-s,v=p*a-h*l;if(0===v)return;const d=((s-o)*l-(i-e)*a)/v;return[i+d*p,s+d*h]}(t,n);let a;if(l){const t=et(e,l),n=et(o,l);a=ct(t,r)<=0||ct(n,r)>=0}else a=!0;if(!a)return[[e,l,o]];const p=Xt(lt(r,c))/(s*u),h=Xt(lt(r,i))/(s*f);if(p<=Vt&&h<=Vt)return[[e,o]];const v=(ct(c,r)<0?-1:1)*s/(4*u),d=(ct(i,r)<0?1:-1)*s/(4*f),g=[e[0]+v*c[0],e[1]+v*c[1]],m=[o[0]+d*i[0],o[1]+d*i[1]],x=[(g[0]+m[0])/2,(g[1]+m[1])/2];return[[e,g,x],[x,m,o]]}function Rt(t,n){return Ut(Yt(t),Yt(n.prevOnCircle))}function $t(t){return Rt(t,t.next)}function Zt(t){let n=t.nextOnCircle;for(;n!==t;){if(!A(n))return n;n=n.nextOnCircle}}function Gt(t,n){return t.pointOnShape.circle===n.pointOnShape.circle}function Jt(t){return 1===z(t)&&!t.isHoleClosing}function Kt(t){return 2===z(t)}function tn(t){return L(t).every(A)}function nn(t){if(tn(t))return[];for(;A(t);)t=t.nextOnCircle;for(t=t.next;2===z(t);)t=t.next;t=t.prevOnCircle;const n=[];do{n.push(t),t=t.next}while(2===z(t));return n}function en(t){return nn(t).flatMap($t)}function on(t,n){const e=n[0]-t[0],o=n[1]-t[1];return Math.sqrt(e*e+o*o)}nt($t);const{abs:rn}=Math,{sqrt:cn,abs:sn,asinh:un}=Math,{sqrt:fn}=Math;function ln(t){const n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=-t[e];return n}const{abs:an}=Math,{abs:pn}=Math;function hn(t,n){if(t.length!==n.length)throw new Error("`p` and `p_` must be of equal length.");let e=0;for(;e<t.length&&0===t[e]&&0===n[e];)e++;if(e>0&&(t=t.slice(e),n=n.slice(e)),t.length<=1)return 0;const o=pn(n[0]);if(t[0]-o>0);else{if(!(t[0]+o<0))return 1/0;t=ln(t)}return function(t){const n=(t=function(t){let n=0;for(let e=0;e<=t.length-1&&0===t[e];e++)n++;return 0!==n&&(t=t.slice(n)),t}(t)).length-1;if(n<1)return 0;t[0]<0&&(t=ln(t));const e=[];for(let t=0;t<n;t++)e.push(1);let o=0;for(let r=0;r<=n;r++){if(t[r]>=0)continue;let n=1/0,c=!1;for(let o=0;o<r;o++){if(t[o]<=0)continue;const i=(-t[r]/(t[o]/2**e[o]))**(1/(r-o));e[o]++,n>i&&(n=i),c=!0}c&&o<n&&(o=n)}return o}(function(t,n){if(t.length!==n.length)throw new Error("`p` and `p_` must be of equal length.");const e=new Array(t.length);for(let o=0;o<t.length;o++)e[o]=t[o]-an(n[o]);return e}(t,n))}const vn=(dn=hn,(t,n)=>-dn(function(t){const n=t.length-1;if(n<0)return[];const e=t.slice();for(let t=0;t<n+1;t++)t%2==(n-1)%2&&(e[t]=-e[t]);return e}(t),n));var dn;const gn=Number.EPSILON,mn=gn/2,xn=mn*mn,_n=wn(1),bn=function(){const t=3*xn;return t/(1-t)}();function wn(t){const n=t*mn;return n/(1-n)}new Array(20).fill(0).map((t,n)=>wn(n));const{min:Mn,max:Sn,abs:yn}=Math,Cn=17976931348623157e292,{abs:On}=Math;function En(t){const n=t.slice(),e=n.length;if(1===e)return n;if(0===e)return[0];let o=n[e-1],r=e;for(let t=e-2;t>=0;--t){const e=o,c=n[t];o=e+c;const i=c-(o-e);i&&(n[--r]=o,o=i)}let c=0;for(let t=r;t<e;++t){const e=n[t],r=o;o=e+r;const i=r-(o-e);i&&(n[c++]=i)}return n[c++]=o,n.length=c,n}const{abs:Nn}=Math,{abs:In}=Math;const Bn=134217729;function kn(t,n){const e=n[0],o=n[1],r=o*t,c=Bn*o,i=c-(c-o),s=o-i,u=Bn*t,f=u-(u-t),l=t-f,a=s*l-(r-i*f-s*f-i*l)+e*t,p=r+a;return[a-(p-r),p]}function Pn(t,n){const e=t[0],o=t[1],r=n[0],c=n[1],i=o+c,s=i-o,u=e+r,f=u-e,l=o-(i-s)+(c-s)+u,a=i+l,p=e-(u-f)+(r-f)+(l-(a-i)),h=a+p;return[p-(h-a),h]}const{abs:Tn}=Math;function An(t,n,e){const o=t.length-1;if(o<0)return[[],[]];const r=Tn(n),c=t.slice(),i=e.slice();for(let t=0;t<=o;t++)for(let e=1;e<=o-t;e++){const t=c[e-1],o=i[e-1],s=kn(n,t),u=r*o+Tn(s[1]),f=c[e];c[e]=Pn(f,s),i[e]=i[e]+u+Tn(c[e][1])}return[c,i]}const zn=2**27+1;function Dn(t,n){const e=t[1],o=n[1],r=e*o,c=zn*e,i=c-(c-e),s=e-i,u=zn*o,f=u-(u-o),l=o-f,a=s*l-(r-i*f-s*f-i*l)+(e*n[0]+t[0]*o),p=r+a;return[a-(p-r),p]}const{abs:qn}=Math,Fn=7/3;function jn(t,n){const e=t.length-1;if(e<0)return[];const o=t.slice();for(let t=0;t<=e;t++)for(let r=1;r<=e-t;r++)o[r]=En(pt(o[r],vt(o[r-1],n)));return o}function Hn(t,n){const e=t.length-1;if(e<0)return[];const o=new Array(e+1);o[e]=t[e];let r=[1];for(let c=1;c<=e;c++)r=vt(r,n),o[e-c]=gt(t[e-c],r);return o}const{abs:Ln,sign:Wn}=Math;function Yn(t,n,e,o,r){return function(c,i,s,u,f){let[l,a]=function(t,n,e){const o=t.length-1,r=Nn(n),c=t.slice(),i=e.slice();for(let t=0;t<=o;t++)for(let e=1;e<=o-t;e++){const t=n*c[e-1],o=r*i[e-1]+Nn(t);c[e]=c[e]+t,i[e]=i[e]+o+Nn(c[e])}return[c,i]}(t,c,n);(function(t,n,e){const o=t.length-1;if(o<0)return;const r=In(n);let c=n,i=0;for(let s=1;s<=o;s++){const u=o-s,f=t[u],l=In(f),a=e[u],p=f*c;t[u]=p,e[u]=a*In(c)+l*i+In(p);const h=c*n;i=i*r+In(h),c=h}})(l,i-c,a),l.reverse(),a.reverse(),function(t,n){const e=t.length-1;for(let o=0;o<=e;o++)for(let r=1;r<=e-o;r++){const e=t[r-1],o=n[r-1];t[r]=t[r]+e,n[r]=n[r]+o+Nn(t[r])}}(l,a);let p=0,h=0,v=Wn(s);for(let t=1;t<l.length-1;t++){let n=Wn(l[t]);const e=l[t],o=a[t]*_n;Ln(e)<=o&&(h++,n=-v),n!==v&&(p++,v=n)}return Wn(u)!==v&&p++,1===p?1:h>0?function(t,n,e,o,r,c,i,s){let[u,f]=An(t,e,n);(function(t,n,e){const o=t.length-1;if(o<0)return;const r=qn(n);let c=[0,n],i=0;for(let s=1;s<=o;s++){const u=o-s,f=t[u],l=qn(f[1]),a=e[u],p=Dn(c,f);t[u]=p,e[u]=a*qn(c[1])+l*i+Fn*qn(p[1]);const h=kn(n,c);i=i*r+qn(h[1]),c=h}})(u,o-e,f),u.reverse(),f.reverse(),[u,f]=An(u,1,f);let l=0,a=0,p=Wn(r);for(let t=1;t<u.length-1;t++){let n=Wn(u[t][1]);const e=f[t]*bn,o=u[t];e>=Ln(o[1])&&(a++,n=-p),n!==p&&(l++,p=n)}return Wn(c)!==p&&l++,1===l?1:0===a?l:i>1?function(t,n,e,o,r){let c=jn(t(),n);c=Hn(c,e-n),c.reverse(),c=jn(c,1);let i=0,s=Wn(o);for(let t=1;t<c.length-1;t++){const n=c[t];let e=Wn(n[n.length-1]);e!==s&&0!==e&&(i++,s=e)}return Wn(r)!==s&&i++,i}(s,e,o,r,c):-l}(e,o,c,i,s,u,f,r):p}}function Xn(t,n){const e=t*n,o=ht*t,r=o-(o-t),c=t-r,i=ht*n,s=i-(i-n),u=n-s;return[c*u-(e-r*s-c*s-r*u),e]}const{abs:Qn}=Math;function Vn(t,n){const e=Qn(n);let o=t[0],r=.5*Qn(o);for(let c=1;c<t.length;c++)o=o*n+t[c],r=r*e+Qn(o);return r=mn*(2*r-Qn(o)),[o,r]}const Un=Math.abs,{abs:Rn}=Math,$n=wn(1),Zn=wn(2);function Gn(t,n,e=void 0,o=1){const r=t[0],[c,i]=Vn(r,n),s=Zn*function(t,n){const e=Un(n);let o=0;for(let n=0;n<t.length;n++)o=o*e+Un(t[n]);return o}(r,n),u=void 0!==e?ut(e,Rn(n)):0;if((i+s+u)*o<Math.abs(c))return c;const f=function(t,n){const e=[],o=[];let r,c=t[0];for(let i=1;i<t.length;i++){const[s,u]=Xn(c,n);[r,c]=yt(u,t[i]),e.push(s),o.push(r)}return{r̂:c,pπ:e,pσ:o}}(r,n),{pπ:l,pσ:a}=f;let{r̂:p}=f;const[h,v]=Vn(l,n),[d,g]=Vn(a,n),[m,x]=Vn(t[1],n);let _=v+g+x+u;return p=h+d+m+p,_+=$n*Math.abs(p),_*o<Math.abs(p)?p:0}function Jn(t,n){let e=[0];for(let o=0;o<t.length;o++)e=pt(t[o],vt(e,n));return e}const{abs:Kn,min:te,max:ne,log2:ee,ceil:oe}=Math;function re(t,n,e,o,r,c,i,s){let u=e,f=o,l=u,a=r,p=f-u,h=p;for(;;){let v;Kn(a)<Kn(c)&&(u=f,f=l,l=u,r=c,c=a,a=r);const d=Kn(f);v=d<=1?gn:gn*2**oe(ee(d));const g=.5*(l-f);if(Kn(g)<=v)return f<l?[f,l,f]:[l,f,f];if(Kn(p)<v||Kn(r)<=Kn(c))p=g,h=p;else{let t,n,e=c/r;if(u===l)t=2*g*e,n=1-e;else{n=r/a;const o=c/a;t=e*(2*g*n*(n-o)-(f-u)*(o-1)),n=(n-1)*(o-1)*(e-1)}0<t?n=-n:t=-t,e=p,p=h,2*t<3*g*n-Kn(v*n)&&t<Kn(.5*e*n)?h=t/n:(p=g,h=p)}if(u=f,r=c,v<Kn(h)?f+=h:0<g?f+=v:f-=v,0===(c=s?mt(Jn(i(),f)):Gn(t,f,n))){if(s)return[f,f,f];const r=ne(e,f-v),u=te(o,f+v);if(Gn(t,r,n)*Gn(t,u,n)<0)return[r,u,f];if(s=!0,0===(c=mt(Jn(i(),f))))return[f,f,f]}(0<c&&0<a||c<=0&&a<=0)&&(l=u,a=r,p=f-u,h=p)}}const{abs:ce}=Math;function ie(t,n,e){const o=ce(n);let r=t[0],c=e[0];for(let i=1;i<t.length;i++){const s=r*n;r=s+t[i],c=c*o+ce(s)+e[i]+ce(r)}return[r,c]}function se(t){const n=t[0].length,e=[];for(let o=0;o<n;o++){const r=[];for(let e=0;e<t.length;e++)r.push(t[e][n-(o+1)]);e.push(r)}return e}const ue=Pn,fe=kn,{abs:le}=Math;function ae(t,n,e){const o=le(n);let r=t[0],c=e[0];for(let i=1;i<t.length;i++){const s=fe(n,r);r=ue(s,t[i]),c=c*o+le(s[1])+e[i]+le(r[1])}return[r,c]}const{abs:pe,max:he,log2:ve,ceil:de}=Math,ge=bn/_n;function me(t,n,e,o,r,c,i){const s=t.length-1;let u=0,f=1;for(;;){f*=2;for(let l=1;l<f;l+=2){u++;const a=r+(c-r)*(f+2*l)/(4*f),[p,h]=ie(t,a,n);if(pe(p)>h*_n)return[a,p];if(u>s)return xe(e,o,r,c,i)}}}function xe(t,n,e,o,r){const c=t.length-1;let i=0,s=1;for(;;){s*=2;for(let u=1;u<s;u+=2){i++;const f=e+(o-e)*(s+2*u)/(4*s),[l,a]=ae(t,f,n);if(pe(l[1])>a*bn)return[f,l[1]];if(i>c)return _e(r(),e,o)}}}function _e(t,n,e){const o=t.length-1;let r=1,c=0;for(;;){r*=2;for(let i=1;i<r;i+=2){c++;const s=n+(e-n)*(r+2*i)/(4*r),u=En(Jn(t,s)),f=u[u.length-1];if(0!==f)return[s,f];if(c>o)throw new Error("Cannot resolve root even in Shewchuk expansion precision")}}}const{abs:be,max:we,log2:Me,ceil:Se}=Math;function ye(t,n=-1/0,e=1/0,o,r,c=!1){let i;"number"==typeof t[0]&&(t=t.map(t=>[0,t]));const s=()=>void 0===r?t:(void 0===i&&(i=r()),i);if(o=o||new Array(t.length).fill(0),({pDd:t,pDd_:o,pExact:i}=function(t,n,e,o){if(0===t.length||On(t[0][1])>o*n[0])return{pDd:t,pDd_:n,pExact:void 0};let r=e();const c=r.length;let i=new Array(c),s=new Array(c);for(let t=0;t<c;t++){const n=r[t],e=n[n.length-1]??0,c=n[n.length-2]??0;i[t]=[c,e],s[t]=On(e)*(bn/o)}let u=0;for(;u<c&&0===i[u][1];)u++;return i=i.slice(u),s=s.slice(u),r=r.slice(u),{pDd:i,pDd_:s,pExact:r}}(t,o,s,bn)),0===t.length)return;if(1===t.length)return[];const u=t.map(t=>t[0]+t[1]);if((c||be(n)>2**20||be(e)>2**20)&&([n,e]=function(t,n,e,o,r){const c=o.map((t,n)=>t*r+yn(e[n])*_n);t=Sn(t,vn(e,c)),n=Mn(n,hn(e,c));const i=2**(-2*(e.length-1));for(Number.isFinite(t)||(t=-i*Cn),Number.isFinite(n)||(n=i*Cn);;){const o=yn(ut(e,t)),r=yn(ut(e,n));if(o>i*Cn)t/=2;else{if(!(r>i*Cn))break;n/=2}}return[t,n]}(n,e,u,o,bn)),n===e){const t=2*gn*we(1,2**Se(Me(we(be(n),be(e)))));n-=t,e+=t}return function(t,n,e,o,r,c){const i=e.map((n,e)=>n*ge+pe(t[e])),s=o,u=r;let f,l,a,p,h=r-o;for(;[f,l]=ie(t,o,i),!(pe(f)>l*_n);)if(o-=h/2,h*=2,!Number.isFinite(o))throw new Error("Unable to certify the sign of the polynomial at any finite lower bound.");for(;[a,p]=ie(t,r,i),!(pe(a)>p*_n);)if(r+=h/2,h*=2,!Number.isFinite(r))throw new Error("Unable to certify the sign of the polynomial at any finite upper bound.");const v=[[o,r,f,a,0]],d=[],g=Yn(t,i,n,e,c);let m,x;for(;v.length>0;){const o=v.pop(),[r,s,u,f,l]=o,a=g(r,s,u,f,l);if(0===a)continue;if(1===a){m=m||e.map(t=>t*bn),x=x||se(n);const[t,o,i]=re(x,m,r,s,u,f,c,!1);d.push({t:i,tS:t,tE:o,multiplicity:1});continue}let p=a<0?l+1:0;if(s-r<=2*pe(a)*gn*he(1,2**de(ve(he(pe(r),pe(s)))))){if(0===p){d.push({t:(r+s)/2,tS:r,tE:s,multiplicity:pe(a)});continue}p=1/0}const[h,_]=me(t,i,n,e,r,s,c);v.push([r,h,u,_,p]),v.push([h,s,_,f,p])}return d.reverse(),d.filter(t=>{const{tS:n,tE:e}=t;return!(e<s||n>u)})}(u,t,o,n,e,s)}function Ce(t,n,e){const[o,r]=st(t);for(;o.length<3;)o.unshift(0),r.unshift(0);const[c,i,s]=o,[u,f,l]=r,a=[2*(c*c+u*u),3*(c*i+u*f),i*i+f*f+2*(c*s+u*l),i*s+f*l];for(;a.length>0&&0===a[0];)a.shift();return a.length<=1?[]:(ye(a,n,e)??[]).map(t=>t.t).filter(t=>t>n&&t<e).sort((t,n)=>t-n)}const{abs:Oe,min:Ee,max:Ne}=Math,{EPSILON:Ie,MIN_VALUE:Be}=Number,ke=[.9914553711208126,.9491079123427585,.8648644233597691,.7415311855993945,.5860872354676911,.4058451513773972,.20778495500789848,0],Pe=[.022935322010529224,.06309209262997856,.10479001032225019,.14065325971552592,.1690047266392679,.19035057806478542,.20443294007529889,.20948214108472782],Te=[.1294849661688697,.27970539148927664,.3818300505051189,.4179591836734694];function Ae(t,n,e){const o=(n+e)/2,r=(e-n)/2,c=t(o);let i=c*Te[3],s=c*Pe[7],u=Oe(s);const f=[],l=[];for(let n=0;n<7;n++){const e=r*ke[n],c=t(o-e),a=t(o+e);f.push(c),l.push(a);const p=c+a;s+=Pe[n]*p,u+=Pe[n]*(Oe(c)+Oe(a)),n%2==1&&(i+=Te[(n-1)/2]*p)}const a=s/2;let p=Pe[7]*Oe(c-a);for(let t=0;t<7;t++)p+=Pe[t]*(Oe(f[t]-a)+Oe(l[t]-a));const h=s*r;u*=Oe(r),p*=Oe(r);let v=Oe((s-i)*r);return 0!==p&&0!==v&&(v=p*Ee(1,(200*v/p)**1.5)),u>Be/(50*Ie)&&(v=Ne(50*Ie*u,v)),{value:h,error:v}}const{abs:ze,sinh:De,cosh:qe,exp:Fe,PI:je}=Math,{abs:He}=Math;function Le(t,n,e,o,r,c){if(o.error<=r)return o.value;if(c>=8)return function(t,n,e,o,r=8){const c=e-n;let i=1,s=je/2*t((n+e)/2);const u=(o,r)=>{for(let u=o;;u+=r){const o=u*i,r=je/2*De(o),f=qe(r),l=je/2*qe(o)/(f*f),a=c/(Fe(2*r)+1);if(!(l>1e-30)||0===a)return;s+=l*(t(n+a)+t(e-a))}};u(1,1);let f=i*s*c/2,l=1/0;for(let t=1;t<=r;t++){i/=2,u(1,2);const t=i*s*c/2;if(l=ze(t-f),f=t,l<=o)break}return{value:f,error:l}}(t,n,e,r).value;const i=(n+e)/2,s=Ae(t,n,i),u=Ae(t,i,e),f=He(s.value),l=f+He(u.value),a=0===l?r/2:r*f/l,p=r-a;return Le(t,n,i,s,a,c+1)+Le(t,i,e,u,p,c+1)}const We=2**-45;function Ye(t,n=5684341886080802e-29){if(4===t.length)return function(t,n,e=5684341886080802e-29){let o=t[0],r=t[1];if(o===r)return 0;o>r&&([o,r]=[r,o]);const[[c,i],[s,u],[f,l],[a,p]]=n;if(c===s&&s===f&&f===a&&i===u&&u===l&&l===p)return 0;const h=[o,...Ce(n,o,r),r];return e<We&&(e=We),function(t,n,e){const o=[];let r=0;for(let e=0;e<n.length-1;e++){const c=Ae(t,n[e],n[e+1]);o.push(c),r+=c.value}if(0===r)return 0;const c=e*r;let i=0;for(let e=0;e<n.length-1;e++)i+=Le(t,n[e],n[e+1],o[e],c*He(o[e].value)/r,0);return i}(function(t){const[n,e]=st(t);return function(t){const o=ut(n,t),r=ut(e,t);return fn(o*o+r*r)}}(n),h,e)}([0,1],t,n);if(3===t.length)return function(t,n){let e=t[0],o=t[1];if(e===o)return 0;e>o&&([e,o]=[o,e]);const[[r,c],[i,s],[u,f]]=n,l=u-2*i+r,a=f-2*s+c,p=i-r,h=s-c,v=l*l+a*a;if(0===v)return 2*cn(p*p+h*h)*(o-e);const d=cn(v),g=l*p+a*h,m=sn(l*h-a*p)/d,x=m*m,_=(v*e+g)/d,b=(v*o+g)/d,w=cn(_*_+x),M=cn(b*b+x);let S,y;if(_*b>0){const t=d*(o-e),n=b+_;S=t*n*(b*b+_*_+x)/(b*M+_*w),y=0===m?0:x*un(t*n/(b*w+_*M))}else S=b*M-_*w,y=0===m?0:x*(un(b/m)-un(_/m));return(S+y)/d}([0,1],t);if(2===t.length)return function(t,n){const[e,o]=[0,1];return rn(o-e)*on(n[0],n[1])}(0,t);if(1===t.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}function Xe(t,n,e=!0){const{cpNodes:o,hasHoleCloser:r}=function(t,n,e=!0){if(!e&&t===n)return{cpNodes:[],hasHoleCloser:!1};const o=t,r=[o];let c=t.next,i=o.isHoleClosing;for(;c!==n&&c!==o;)c.isHoleClosing&&(i=!0),r.push(c),c=c.next;return{cpNodes:r,hasHoleCloser:i}}(t,n,e);return{pss:o.flatMap($),hasHoleCloser:r}}function Qe(t){const n=t,e=t.nextOnCircle,o=on(n.pointOnShape.p,e.pointOnShape.p),{pss:r,hasHoleCloser:c}=Xe(n,e),i=function(t){let n=0;for(let e of t)n+=e;return n}(r.map(t=>Ye(t)));return c?1/0:0===i?0:i/o}function Ve(t,n){let e=t;const o=[];for(;e!==n;)o.push(...Rt(e,e.next)),e=e.next;return o}const{abs:Ue,asin:Re,min:$e,max:Ze,PI:Ge}=Math;function Je(t,n){const e=rt(ft($t(t)[0],0)),o=rt(ft($t(n)[0],0)),r=Ze(-1,$e(1,lt(e,o)));return Ue(Re(r)*(180/Ge))}function Ke(t){const n=[];return Y(t,t=>{n.push(t)}),n}function to(t,n){let e;return e=t.curve.idx-n.curve.idx,0!==e||(e=t.t-n.t,0!==e||(e=t.order-n.order,0!==e||(e=t.order2-n.order2))),e}function no(t,n){return to(t.pointOnShape,n.pointOnShape)}const eo={getChildren:J,getVertexForwardChildren:W,getAllOnLoop:B,getAllOnCircle:L,isOnSameCircle:Gt,isTerminating:A,isFullyTerminating:D,getFirstExit:Zt,isSharp:q,isOneProng:Jt,getProngCount:T,getRealProngCount:z,cpNodeComparator:no,enhanceCpNode:F,traverseCp:j,traverseEdges:H,traverseVertices:Y,clone:Q,getBoundaryBezierPartsToNext:U,getBoundaryBeziersToNext:$,removeVertex:G,getMatCurveToNext:$t,isTwoProng:Kt,getBranch:nn,getBranchBeziers:en,getSalience:Qe,getMatCurveBetween:Rt,getEdgeDirection:Yt,getBoundaryBeziersBetween:Xe,getMatCurvesBetween:Ve,getHoleClosers:k,getInitialDegAngleBetweenMatCurves:Je,getAllVertices:Ke};function oo(t){return 2!==z(t)||t.isHoleClosing}const ro=function(t){return n=>L(n).some(t)}(oo);function co(t,n){if(0===n)return t[0];if(1===n)return t[t.length-1];if(4===t.length){const[[e,o],[r,c],[i,s],[u,f]]=t,l=e+(r-e)*n,a=r+(i-r)*n,p=l+(a-l)*n,h=o+(c-o)*n,v=c+(s-c)*n,d=h+(v-h)*n;return[p+(a+(i+(u-i)*n-a)*n-p)*n,d+(v+(s+(f-s)*n-v)*n-d)*n]}if(3===t.length){const[[e,o],[r,c],[i,s]]=t,u=e+(r-e)*n,f=o+(c-o)*n;return[u+(r+(i-r)*n-u)*n,f+(c+(s-c)*n-f)*n]}if(2===t.length){const[[e,o],[r,c]]=t;return[e+(r-e)*n,o+(c-o)*n]}if(1===t.length)return t[0];throw new Error("The given bezier curve must be of order <= 3.")}function io(t){const n=st(t),e=ye(n[0],0,1)?.map(t=>t.t)||[],o=ye(n[1],0,1)?.map(t=>t.t)||[];e.push(0,1),o.push(0,1);let r,c,i,s,u=1/0,f=-1/0,l=1/0,a=-1/0;for(let n=0;n<e.length;n++){const o=e[n],[i]=co(t,o);i<u&&(u=i,r=o),i>f&&(f=i,c=o)}for(let n=0;n<o.length;n++){const e=o[n],[,r]=co(t,e);r<l&&(l=r,i=e),r>a&&(a=r,s=e)}return{ts:[[r,i],[c,s]],box:[[u,l],[f,a]]}}const so=nt(io);function uo(t,n){return fo(t)-fo(n)}function fo(t){let n=1/0;for(const e of t){const t=so(e).box[0][1];t<n&&(n=t)}return n}const{abs:lo}=Math;function ao(t,n){return"AND"===t?lo(n)>=2:"XOR"===t?lo(n)%2==1:0!==n}function po(t,n){let e=t.x.curve.idx-n.x.curve.idx;return 0!==e||(e=t.x.ri.tS-n.x.ri.tS),e}const{floor:ho,ceil:vo}=Math;function go(t,n,e,o){const r=[];for(const o of t)r.push({type:-1,item:o,x:n(o)}),r.push({type:1,item:o,x:e(o)});r.sort(mo);const c=new Set,i=[];for(const t of r){const{item:n,type:e}=t;if(-1===e){for(const t of c){const e=o(n,t);e&&i.push({a:n,b:t,u:e})}c.add(n)}else 1===e&&c.delete(n)}return i}function mo(t,n){const e=t.x-n.x;return 0!==e?e:t.type}function xo(t,n,e){let[[o,r],[c,i]]=n,[[s,u],[f,l]]=e;r>i&&([r,i]=[i,r]),u>l&&([u,l]=[l,u]),o>c&&([o,c]=[c,o]),s>f&&([s,f]=[f,s]);const a=t||o===c&&s===f,p=t||r===i&&u===l;return(a?o<=f:o<f)&&(a?c>=s:c>s)&&(p?u<=i:u<i)&&(p?l>=r:l>r)}function _o(t,n){let[[e,o],[r,c]]=t;e>r&&([e,r]=[r,e]),o>c&&([o,c]=[c,o]);const i=(r-e)*n,s=(c-o)*n;return[[e-i,o-s],[r+i,c+s]]}function bo(t,n){return xo(!0,_o(t.box,.5),_o(n.box,.5))}function wo(t,n){const[e,o]=n;t.getOrInsert(e,[]).push(o),t.getOrInsert(o,[]).push(e)}function Mo(t,n,e,o){e.add(n),o.push(n);const r=t.get(n);for(let n=0;n<r.length;n++){const c=r[n];e.has(c)||Mo(t,c,e,o)}}function So(t){const n=[],e=new Set;for(const o of t){const r=o[0];e.has(r)||(n.push([]),Mo(t,r,e,n[n.length-1]))}return n}const{min:yo,max:Co}=Math;function Oo(t){let n=1/0,e=1/0,o=-1/0,r=-1/0;const c=[];for(const i of t){const[[t,s],[u,f]]=i.box;n=yo(n,t),e=yo(e,s),o=Co(o,u),r=Co(r,f),c.push(...i.xs)}return{xs:c,box:[[n,e],[o,r]]}}function Eo(t){const n=[];function e(...e){if("undefined"==typeof _debug_)return t.apply(this,e);const o=performance.now(),r=t.apply(this,e),c=performance.now();return n.push(c-o),r}return e.getStats=()=>{const e=function(t){let n=0;for(let e of t)n+=e;return n}(n);return{name:t.name,totalMs:e,count:n.length}},e.resetStats=()=>{n.length=0},e}const No=Eo(function(t){for(;;){const n=go(t,t=>_o(t.box,.5)[0][0],t=>_o(t.box,.5)[1][0],bo);if(!n.length)break;const e=new Map(t.map(t=>[t,[]]));for(let t=0;t<n.length;t++){const o=n[t];wo(e,[o.a,o.b])}t=So(e).map(Oo)}return t});function Io(t,n){const e=t[1],o=n[1];return e===o?t[0]-n[0]:e-o}function Bo(t,n){const e=t[0],o=t[1],r=n[0],c=n[1],i=o-c,s=i-o,u=e-r,f=u-e,l=o-(i-s)+(-c-s)+u,a=i+l,p=e-(u-f)+(-r-f)+(l-(a-i)),h=a+p;return[p-(h-a),h]}function ko(t,n){const e=t-n,o=t-e;return[t-(e+o)+(o-n),e]}function Po(t,n){const e=t[0],o=t[1],r=o+n,c=r-o,i=e+(o-(r-c)+(n-c)),s=r+i;return[i-(s-r),s]}const To=Dn,Ao=Pn,zo=Bo,Do=ko,qo=Po;function Fo(t,n){if(0===n[0]&&0===n[1])return t[0].map(t=>[0,t]);if(0===n[0]&&1===n[1])return t[t.length-1].map(t=>[0,t]);if(4===t.length){const[[e,o],[r,c],[i,s],[u,f]]=t,l=qo(To(Do(r,e),n),e),a=qo(To(Do(i,r),n),r),p=qo(To(Do(u,i),n),i),h=Ao(l,To(zo(a,l),n)),v=Ao(a,To(zo(p,a),n)),d=Ao(h,To(zo(v,h),n)),g=qo(To(Do(c,o),n),o),m=qo(To(Do(s,c),n),c),x=qo(To(Do(f,s),n),s),_=Ao(g,To(zo(m,g),n)),b=Ao(m,To(zo(x,m),n));return[d,Ao(_,To(zo(b,_),n))]}if(3===t.length){const[[e,o],[r,c],[i,s]]=t,u=Ao([0,e],To(Do(r,e),n)),f=Ao([0,r],To(Do(i,r),n)),l=Ao(u,To(zo(f,u),n)),a=Ao([0,o],To(Do(c,o),n)),p=Ao([0,c],To(Do(s,c),n));return[l,Ao(a,To(zo(p,a),n))]}if(2===t.length){const[[e,o],[r,c]]=t;return[qo(To(Do(r,e),n),e),qo(To(Do(c,o),n),o)]}if(1===t.length){const[n,e]=t[0];return[[0,n],[0,e]]}throw new Error("The given bezier curve must be of order <= 3.")}function jo(t,n){return Fo(t,[0,n]).map(t=>t[0]+t[1])}const{min:Ho,max:Lo}=Math;function Wo(t,n,e,o){let r;for(const{curve:c,ts:i}of function*(t,n){const e=n?t.next:t.prev,o=t.x.curve,r=t.x.ri.tS,c=e.x.curve,i=e.x.ri.tS,s=n?1:0,u=n?0:1;let f=o,l=r,a=!1;for(;;){if(f===c&&(l===i?a:n?l<i:l>i))return void(yield{ts:[l,i],curve:f});yield{ts:[l,s],curve:f},a=!0,l=u,f=n?f.next:f.prev}}(n,o)){const{ps:n}=c;void 0===r&&(r=jo(n,i[0]));const o=jo(n,i[1]),[s,u]=r,[f,l]=o;let a=[];for(let t=0;t<e.length;t++){const n=e[t],[[o,r]]=n;(t%2==0&&Ho(u,l)<=r&&r<=Lo(u,l)||t%2==1&&Ho(s,f)<=o&&o<=Lo(s,f))&&a.push(t)}if(a.length>0)return t.oSideIdxs=a,a;r=o}}function Yo(t,n){const e=t[0],o=t[1],r=o-n,c=r-o,i=e+(o-(r-c)+(-n-c)),s=r+i;return[i-(s-r),s]}const Xo=134217729;function Qo(t,n){const e=t[0],o=t[1],r=o/n,c=r*n,i=Xo*r,s=i-(i-r),u=r-s,f=Xo*n,l=f-(f-n),a=n-l,p=(o-c-(u*a-(c-s*l-u*l-s*a))+e)/n,h=r+p;return[p-(h-r),h]}function Vo(t,n){return Io(t,n)>0?n:t}function Uo(t,n){return Io(t,n)>0?t:n}function Ro(t){return[-t[0],-t[1]]}const $o=ko,Zo=kn,Go=Pn,Jo=Po,{abs:Ko}=Math;function tr(t){const[[n,e],[o,r],[c,i],[s,u]]=t,f=$o(s,n),l=$o(o,c),a=3*(o-c),p=Zo(3,l),h=Ko(a),v=Go(f,p),d=h+Ko(s-n+a),g=$o(c,2*o),m=Jo(g,n),x=Ko(c-2*o+n),_=Zo(3,m),b=6*x,w=$o(o,n),M=Zo(3,w),S=Ko(3*(o-n)),y=$o(u,e),C=$o(r,i),O=3*(r-i),E=Zo(3,C),N=Ko(O),I=Go(y,E),B=N+Ko(u-e+O),k=$o(i,2*r),P=Jo(k,e),T=Ko(i-2*r+e),A=Zo(3,P),z=6*T,D=$o(r,e);return{coeffs:[[v,_,M,[0,n]],[I,A,Zo(3,D),[0,e]]],errorBound:[[d,b,S,0],[B,z,Ko(3*(r-e)),0]]}}function nr(t){const[[n,e],[o,r],[c,i]]=t,s=c-2*o,u=$o(c,2*o),f=Jo(u,n),l=Ko(s+n),a=$o(2*o,2*n),p=i-2*r,h=$o(i,2*r),v=Jo(h,e),d=Ko(p+e);return{coeffs:[[f,a,[0,n]],[v,$o(2*r,2*e),[0,e]]],errorBound:[[l,0,0],[d,0,0]]}}function er(t){const[[n,e],[o,r]]=t;return[[$o(o,n),[0,n]],[$o(r,e),[0,e]]]}const or=Bo,rr=kn,cr=Ro,{abs:ir}=Math;function sr(t){const[[n,[,e]],[o,[,r]]]=er(t),c=cr(o),i=n,s=rr(r,n),u=ir(s[1]),f=rr(e,o),l=ir(f[1]),a=or(f,s);return{coeffs:{vₓ:c,vᵧ:i,v:a},errorBound:{v_:u+l+ir(a[1])}}}const{abs:ur}=Math,fr=Pn,lr=kn,ar=Dn;function pr(t){return[2*t[0],2*t[1]]}const hr=Ro,vr=pr,dr=kn,gr=Dn,mr=Bo,{abs:xr}=Math;function _r(t){const{coeffs:[[n,e,[,o]],[r,c,[,i]]],errorBound:[[s],[u]]}=nr(t),f=n[1],l=e[1],a=r[1],p=c[1],h=xr(o),v=xr(l),d=xr(f),g=xr(i),m=xr(p),x=xr(a),_=gr(n,c),b=s*m+2*xr(f*p),w=gr(e,r),M=v*u+2*xr(l*a),S=dr(i,n),y=g*s+xr(i*f),C=dr(o,r),O=h*u+xr(o*a),E=dr(i,e),N=xr(i*l),I=dr(o,c),B=xr(o*p),k=gr(n,n),P=2*(s*d+xr(f*f)),T=gr(n,r),A=s*x+d*u+2*xr(f*a),z=gr(r,r),D=2*(u*x+xr(a*a)),q=f*p-l*a,F=f*i-o*a,j=l*i-o*p,H=mr(_,w),L=xr(q),W=b+M+L,Y=mr(S,C),X=xr(F),Q=y+O+X,V=mr(E,I),U=xr(j),R=N+B+U,$=hr(z),Z=D,G=vr(T),J=2*A,K=hr(k),tt=P,nt=p*q,et=gr(c,H),ot=m*W+2*xr(nt),rt=2*F*a,ct=vr(gr(r,Y)),it=2*(u*X+x*Q)+2*xr(rt),st=nt-rt,ut=mr(et,ct),ft=ot+it+xr(st),lt=2*f*F,at=vr(gr(n,Y)),pt=2*(s*X+d*Q+2*xr(lt)),ht=l*q,vt=gr(e,H),dt=v*W+2*xr(ht),gt=lt-ht,mt=mr(at,vt),xt=pt+dt+xr(gt),_t=q*j,bt=gr(H,V),wt=W*U+L*R+2*xr(_t),Mt=F*F,St=gr(Y,Y),yt=2*(Q*X+xr(Mt)),Ct=_t-Mt;return{coeffs:{vₓₓ:$,vₓᵧ:G,vᵧᵧ:K,vₓ:ut,vᵧ:mt,v:mr(bt,St)},errorBound:{vₓₓ_:Z,vₓᵧ_:J,vᵧᵧ_:tt,vₓ_:ft,vᵧ_:xt,v_:wt+yt+xr(Ct)}}}const br=134217729;function wr(t,n){const e=t*n,o=br*t,r=o-(o-t),c=t-r,i=br*n,s=i-(i-n),u=n-s;return[c*u-(e-r*s-c*s-r*u),e]}const Mr=wr,Sr=pr,yr=kn,Cr=Dn,Or=Pn,{abs:Er}=Math;function Nr(t){return[t[0]/2,t[1]/2]}const{abs:Ir}=Math,Br=Ro,kr=pr,Pr=Nr,Tr=kn,Ar=Dn,zr=Bo,Dr=Pn;function qr(t){const{coeffs:[[n,e,o,[,r]],[c,i,s,[,u]]],errorBound:[[f,l,a],[p,h,v]]}=tr(t),d=o[1],g=e[1],m=n[1],x=s[1],_=i[1],b=c[1],w=Ir(r),M=Ir(d),S=Ir(g),y=Ir(m),C=Ir(u),O=Ir(x),E=Ir(_),N=Ir(b),I=Ar(n,s),B=m*x,k=f*O+y*v+2*Ir(B),P=Ar(o,c),T=d*b,A=a*N+M*p+2*Ir(T),z=Ar(n,i),D=m*_,q=f*E+y*h+2*Ir(D),F=Ar(e,i),j=g*_,H=l*E+S*h+2*Ir(j),L=Ar(e,c),W=g*b,Y=l*N+S*p+2*Ir(W),X=Ar(n,n),Q=m*m,V=Ir(Q),U=f*y+y*f+2*Ir(Q),R=Ar(i,i),$=_*_,Z=h*E+E*h+2*Ir($),G=Ar(c,c),J=b*b,K=Ir(J),tt=p*N+N*p+2*Ir(J),nt=Ar(o,n),et=d*m,ot=a*y+M*f+2*Ir(et),rt=Ar(e,e),ct=g*g,it=l*S+S*l+2*Ir(ct),st=Ar(s,c),ut=x*b,ft=v*N+O*p+2*Ir(ut),lt=Ar(i,c),at=Ir(_*b),pt=h*N+E*p+2*at,ht=Ar(e,n),vt=Ir(g*m),dt=l*y+S*f+2*vt,gt=Ar(n,c),mt=Ir(m*b),xt=f*N+y*p+2*mt,_t=Tr(u,n),bt=m*u,wt=f*C+Ir(bt),Mt=Tr(r,c),St=r*b,yt=w*p+Ir(St),Ct=Tr(u,e),Ot=g*u,Et=l*C+Ir(Ot),Nt=Tr(r,i),It=r*_,Bt=w*h+Ir(It),kt=Ar(e,s),Pt=g*x,Tt=l*O+S*v+2*Ir(Pt),At=Ar(o,i),zt=d*_,Dt=a*E+M*h+2*Ir(zt),qt=Tr(u,o),Ft=d*u,jt=a*C+Ir(Ft),Ht=Tr(r,s),Lt=r*x,Wt=w*v+Ir(Lt),Yt=zr(_t,Mt),Xt=bt-St,Qt=Ir(Xt),Vt=wt+yt+Qt,Ut=zr(I,P),Rt=Ir(B-T),$t=k+A+Rt,Zt=zr(z,L),Gt=Ir(D-W),Jt=q+Y+Gt,Kt=zr(Ct,Nt),tn=Ir(Ot-It),nn=Et+Bt+tn,en=zr(kt,At),on=Pt-zt,rn=Ir(on),cn=Tt+Dt+rn,sn=zr(qt,Ht),un=Ir(Ft-Lt),fn=jt+Wt+un,ln=Ir(ut-$),an=zr(st,R),pn=ft+Z+ln,hn=Ir(et-ct),vn=zr(nt,rt),dn=ot+it+hn,gn=Ir(W+D),mn=Dr(L,z),xn=Y+q+gn,_n=T+B,bn=Ir(_n),wn=Dr(P,I),Mn=A+k+bn,Sn=kr(Ut),yn=2*$t,Cn=2*Rt,On=Ar(Yt,Yt),En=Ar(Yt,Ut),Nn=Ar(Yt,Zt),In=Ar(Yt,en),Bn=Ar(Ut,Ut),kn=Ar(Sn,Kt),Pn=Ar(Zt,Kt),Tn=Ir(Pn[1]),An=Ar(Zt,en),zn=Ar(Zt,sn),Dn=Vt*Qt+Qt*Vt+2*Ir(On[1]),qn=Vt*Rt+Qt*$t+2*Ir(En[1]),Fn=Vt*Gt+Qt*Jt+2*Ir(Nn[1]),jn=Vt*rn+Qt*cn+2*Ir(In[1]),Hn=$t*Rt+Rt*$t+2*Ir(Bn[1]),Ln=yn*tn+Cn*nn+2*Ir(kn[1]),Wn=Jt*tn+Gt*nn+2*Tn,Yn=Jt*rn+Gt*cn+2*Ir(An[1]),Xn=Jt*un+Gt*fn+2*Ir(zn[1]),Qn=Ar(Br(c),G),Vn=p*K+N*tt+2*Ir(Qn[1]),Un=3*y,Rn=Tr(3,n),$n=3*f+Un,Zn=Ar(Rn,G),Gn=$n*K+Un*tt+2*Ir(Zn[1]),Jn=3*N,Kn=Tr(-3,c),te=3*p+Jn,ne=Ar(Kn,X),ee=te*V+Jn*U+2*Ir(ne[1]),oe=Ar(n,X),re=f*V+y*U+2*Ir(oe[1]),ce=-3*Xt,ie=3*Qt,se=Tr(-3,Yt),ue=3*Vt+ie,fe=zr(se,en),le=Ir(ce-on),ae=ue+cn+le,pe=Ar(fe,G),he=ae*K+le*tt+2*Ir(pe[1]),ve=Ar(Zt,an),de=Jt*ln+Gt*pn+2*Ir(ve[1]),ge=Dr(pe,ve),me=he+de+Ir(ge[1]),xe=Ar(Sn,lt),_e=yn*at+Cn*pt+2*Ir(xe[1]),be=Dr(ge,xe),we=me+_e+Ir(be[1]),Me=Ar(fe,X),Se=ae*V+le*U+2*Ir(Me[1]),ye=Ar(Zt,vn),Ce=Jt*hn+Gt*dn+2*Ir(ye[1]),Oe=Dr(Me,ye),Ee=Se+Ce+Ir(Oe[1]),Ne=Ar(Sn,ht),Ie=yn*vt+Cn*dt+2*Ir(Ne[1]),Be=Dr(Oe,Ne),ke=Ee+Ie+Ir(Be[1]),Pe=Ir(j-_n/2),Te=zr(F,Pr(wn)),Ae=H+Mn/2+Ir(Te[1]),ze=Ar(fe,gt),De=ae*mt+le*xt+2*Ir(ze[1]),qe=Ar(Ut,mn),Fe=$t*gn+Rt*xn+2*Ir(qe[1]),je=Dr(ze,qe),He=De+Fe+Ir(je[1]),Le=Ar(Zt,Te),We=Jt*Pe+Gt*Ae+2*Ir(Le[1]),Ye=kr(zr(Le,je)),Xe=2*(We+He)+Ir(Ye[1]),Qe=Tr(-3,On),Ve=3*Dn+Ir(Qe[1]),Ue=zr(Qe,kr(In)),Re=Ve+2*jn+Ir(Ue[1]),$e=Dr(kn,zn),Ze=Ln+Xn+Ir($e[1]),Ge=Dr(Ue,$e),Je=Ir(Ge[1]),Ke=Re+Ze+Je,to=kr(zr(En,Pn)),no=Ir(to[1]),eo=2*(qn+Wn)+no,oo=zr(Nn,Bn),ro=Fn+Hn+Ir(oo[1]),co=Dr(oo,An),io=co[1],so=Ir(io),uo=ro+Yn+so,fo=Ar(c,Ge),lo=p*Je+N*Ke+2*Ir(fo[1]),ao=Ar(i,to),po=h*no+E*eo+2*Ir(ao[1]),ho=Ar(s,co),vo=v*so+O*uo+2*Ir(ho[1]),go=Dr(ao,ho),mo=po+vo+Ir(go[1]),xo=Dr(fo,go),_o=lo+mo+Ir(xo[1]),bo=Ar(n,Ge),wo=f*Je+y*Ke+2*Ir(bo[1]),Mo=Ar(e,to),So=l*no+S*eo+2*Ir(Mo[1]),yo=Ar(o,co),Co=a*so+M*uo+2*Ir(yo[1]),Oo=Dr(Mo,yo),Eo=So+Co+Ir(Oo[1]),No=Br(Dr(bo,Oo)),Io=wo+Eo+Ir(No[1]),Bo=zr(kn,On),ko=Ln+Dn+Ir(Bo[1]),Po=zr(Bo,In),To=Ir(Po[1]),Ao=ko+jn+To,zo=Ar(co,sn),Do=uo*un+so*fn+2*Ir(zo[1]),qo=Ar(Pn,Kt),Fo=Wn*tn+Tn*nn+2*Ir(qo[1]),jo=zr(zo,qo),Ho=Do+Fo+Ir(jo[1]),Lo=Ar(Yt,Po),Wo=Vt*To+Qt*Ao+2*Ir(Lo[1]),Yo=Dr(Lo,jo);return{coeffs:{vₓₓₓ:Qn,vₓₓᵧ:Zn,vₓᵧᵧ:ne,vᵧᵧᵧ:oe,vₓₓ:be,vₓᵧ:Ye,vᵧᵧ:Be,vₓ:xo,vᵧ:No,v:Yo},errorBound:{vₓₓₓ_:Vn,vₓₓᵧ_:Gn,vₓᵧᵧ_:ee,vᵧᵧᵧ_:re,vₓₓ_:we,vₓᵧ_:Xe,vᵧᵧ_:ke,vₓ_:_o,vᵧ_:Io,v_:Wo+Ho+Ir(Yo[1])}}}const Fr=wr,jr=pr,Hr=kn,Lr=Dn,Wr=Pn,{abs:Yr}=Math,Xr=Pn,Qr=kn,Vr=Dn,{abs:Ur}=Math,Rr=wr,$r=pr,Zr=kn,Gr=Dn,Jr=Pn,{abs:Kr}=Math,tc=wr,nc=pr,ec=kn,oc=Dn,rc=Pn,{abs:cc}=Math,ic=Pn,sc=kn,uc=Dn,{abs:fc}=Math,lc=wr,ac=pr,pc=kn,hc=Dn,vc=Pn,{abs:dc}=Math,gc=wr,mc=pr,xc=kn,_c=Dn,bc=Pn,{abs:wc}=Math,Mc=at,Sc=yt,yc=dt,Cc=Ct;function Oc(t){if(4===t.length)return Ec(t);if(3===t.length)return Nc(t);if(2===t.length)return Ic(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[n]],[[e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}function Ec(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[pt(Mc(s,n),yc(3,Mc(o,c))),yc(3,Cc(Sc(c,n),-2*o)),yc(3,Mc(o,n)),[n]].map(En),[pt(Mc(u,e),yc(3,Mc(r,i))),yc(3,Cc(Sc(i,e),-2*r)),yc(3,Mc(r,e)),[e]].map(En)]}function Nc(t){const[[n,e],[o,r],[c,i]]=t;return[[Cc(Sc(c,n),-2*o),Mc(2*o,2*n),[n]],[Cc(Sc(i,e),-2*r),Mc(2*r,2*e),[e]]]}function Ic(t){const[[n,e],[o,r]]=t;return[[Mc(o,n),[n]],[Mc(r,e),[e]]]}const Bc=dt,kc=xt;function Pc(t){const[[n,[e]],[o,[r]]]=t;if(0!==bt(n)||0!==bt(o))return{vₓ:kc(o),vᵧ:n,v:En(_t(Bc(e,o),Bc(r,n)))}}const Tc=dt,Ac=gt,zc=pt;function Dc(t,n){const e=Ic(t),[[o,[r]],[c,[i]]]=Ic(n),{vₓ:s,vᵧ:u,v:f}=Pc(e),l=Ac(o,s),a=Ac(c,u),p=zc(l,a),h=Tc(r,s),v=Tc(i,u),d=zc(h,v);return[p,zc(d,f)].map(En)}function qc(t){const n=[];for(let e=0;e<t.length;e++)n.push(2*t[e]);return n}const Fc=dt,jc=qc,Hc=_t,Lc=gt,Wc=xt;function Yc(t){const[[n,e,[o]],[r,c,[i]]]=t;if(0===bt(n)&&0===bt(r))return Pc([[e,[o]],[c,[i]]]);const s=Lc(n,c),u=Lc(e,r),f=Fc(i,n),l=Fc(o,r),a=Fc(i,e),p=Fc(o,c),h=Lc(n,n),v=Lc(n,r),d=Lc(r,r),g=Hc(s,u),m=Hc(f,l),x=Hc(a,p),_=En(Wc(d)),b=En(jc(v)),w=En(Wc(h)),M=Lc(c,g),S=jc(Lc(r,m)),y=En(Hc(M,S)),C=jc(Lc(n,m)),O=Lc(e,g),E=En(Hc(C,O)),N=Lc(g,x),I=Lc(m,m);return{vₓₓ:_,vₓᵧ:b,vᵧᵧ:w,vₓ:y,vᵧ:E,v:En(Hc(N,I))}}const Xc=Xn,Qc=dt,Vc=gt,Uc=pt,Rc=qc;function $c(t,n){const e=Nc(t);if(0===bt(e[0][0])&&0===bt(e[1][0]))return Dc([t[0],t[2]],n);const[[o,[r]],[c,[i]]]=Ic(n),{vₓₓ:s,vₓᵧ:u,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=Yc(e),h=Xc(r,r),v=Qc(r,o),d=Xc(r,i),g=Qc(r,c),m=Vc(o,o),x=Qc(i,o),_=Vc(o,c),b=Xc(i,i),w=Qc(i,c),M=Vc(c,c),S=Vc(m,s),y=Vc(M,f),C=Vc(_,u),O=Uc(S,y),E=Uc(O,C),N=Vc(v,s),I=Vc(w,f),B=Uc(g,x),k=Vc(B,u),P=Rc(Uc(N,I)),T=Uc(P,k),A=Vc(o,l),z=Vc(c,a),D=Uc(A,z),q=Uc(T,D),F=Vc(h,s),j=Vc(d,u),H=Vc(b,f),L=Uc(F,j),W=Uc(L,H),Y=Qc(r,l),X=Qc(i,a),Q=Uc(Y,X),V=Uc(W,Q);return[E,q,Uc(V,p)].map(En)}const Zc=gt,Gc=at,Jc=vt,Kc=yt;function ti(t,n=!1){const[e,o,r,c]=t;if(!n){const[t,n]=e,[i,s]=o,[u,f]=r,[l,a]=c;return[e,[mt(_t(Jc(Kc(i/4,u/4),3),Kc(t/4,l/4))),mt(_t(Jc(Kc(s/4,f/4),3),Kc(n/4,a/4)))],c]}const i=function(t,n){const[[e,o],[r,c]]=t,[[i,s],[u,f]]=n,l=Gc(r,e),a=Gc(c,o),p=Gc(u,i),h=Gc(f,s),v=_t(Zc(p,a),Zc(h,l));if(0===bt(v))return;const d=Gc(i,e),g=Gc(s,o),m=mt(_t(Zc(g,l),Zc(d,a)))/mt(v);return[i+m*mt(p),s+m*mt(h)]}([e,o],[c,r]);if(void 0!==i)return[e,i,c]}const ni=dt,ei=gt,oi=pt,ri=_t,ci=xt,ii=qc;function si(t){const[[n,e,o,[r]],[c,i,s,[u]]]=t;if(0===bt(n)&&0===bt(c))return Yc([[e,o,[r]],[i,s,[u]]]);const f=ei(n,s),l=ei(o,c),a=ei(n,i),p=ei(e,i),h=ei(e,c),v=ei(n,n),d=ei(i,i),g=ei(c,c),m=ei(o,n),x=ei(e,e),_=ei(s,c),b=ei(i,c),w=ei(e,n),M=ei(n,c),S=ni(u,n),y=ni(r,c),C=ni(u,e),O=ni(r,i),E=ei(e,s),N=ei(o,i),I=ni(u,o),B=ni(r,s),k=ri(S,y),P=ri(f,l),T=ri(a,h),A=ri(C,O),z=ri(E,N),D=ri(I,B),q=ri(_,d),F=ri(m,x),j=oi(h,a),H=oi(l,f),L=ii(P),W=ei(k,k),Y=ei(k,P),X=ei(k,T),Q=ei(k,z),V=ei(P,P),U=ei(L,A),R=ei(T,A),$=ei(T,z),Z=ei(T,D),G=En(ei(ci(c),g)),J=En(ei(ni(3,n),g)),K=En(ei(ni(-3,c),v)),tt=En(ei(n,v)),nt=ri(ni(-3,k),z),et=ei(nt,g),ot=ei(T,q),rt=oi(et,ot),ct=ei(L,b),it=En(oi(rt,ct)),st=ei(nt,v),ut=ei(T,F),ft=oi(st,ut),lt=ei(L,w),at=En(oi(ft,lt)),pt=ri(p,function(t){const n=[];for(let e=0;e<t.length;e++)n.push(.5*t[e]);return n}(H)),ht=ei(nt,M),vt=ei(P,j),dt=oi(ht,vt),gt=ei(T,pt),mt=En(ii(ri(gt,dt))),xt=ni(-3,W),_t=ri(xt,ii(Q)),wt=oi(U,Z),Mt=oi(_t,wt),St=ii(ri(Y,R)),yt=ri(X,V),Ct=oi(yt,$),Ot=ei(c,Mt),Et=ei(i,St),Nt=ei(s,Ct),It=oi(Et,Nt),Bt=En(oi(Ot,It)),kt=ei(n,Mt),Pt=ei(e,St),Tt=ei(o,Ct),At=oi(Pt,Tt),zt=En(ci(oi(kt,At))),Dt=ri(U,W),qt=ri(Dt,Q),Ft=ei(Ct,D),jt=ei(R,A),Ht=ri(Ft,jt),Lt=ei(k,qt);return{vₓₓₓ:G,vₓₓᵧ:J,vₓᵧᵧ:K,vᵧᵧᵧ:tt,vₓₓ:it,vₓᵧ:mt,vᵧᵧ:at,vₓ:Bt,vᵧ:zt,v:En(oi(Lt,Ht))}}const ui=Xn,fi=dt,li=gt,ai=pt,pi=qc;function hi(t,n){const e=Ec(t);if(0===bt(e[0][0])&&0===bt(e[1][0]))return $c(ti(t),n);const[[o,[r]],[c,[i]]]=Ic(n),{vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:v,vᵧ:d,v:g}=si(e),m=ui(r,r),x=fi(r,o),_=ui(r,i),b=fi(r,c),w=li(o,o),M=fi(i,o),S=li(o,c),y=ui(i,i),C=fi(i,c),O=li(c,c),E=fi(r,s),N=li(ui(3,r),s),I=fi(r,u),B=fi(i,u),k=fi(r,f),P=fi(i,f),T=fi(i,l),A=li(ui(3,i),l),z=li(o,s),D=li(o,f),q=li(c,u),F=li(c,l),j=ai(z,q),H=ai(D,F),L=li(w,j),W=li(O,H),Y=ai(L,W),X=ai(N,B),Q=pi(ai(I,P)),V=ai(k,A),U=ai(X,a),R=ai(Q,p),$=ai(V,h),Z=li(w,U),G=li(S,R),J=li(O,$),K=ai(Z,G),tt=ai(K,J),nt=pi(ai(B,a)),et=pi(ai(k,h)),ot=ai(N,nt),rt=ai(A,et),ct=ai(I,p),it=ai(P,p),st=li(x,ot),ut=li(C,rt),ft=li(b,ct),lt=li(M,it),at=li(o,v),pt=li(c,d),ht=ai(st,ut),vt=ai(ft,lt),dt=ai(ht,vt),gt=ai(at,pt),mt=ai(dt,gt),xt=ai(E,B),_t=ai(T,k),wt=ai(xt,a),Mt=ai(_t,h),St=li(m,wt),yt=li(y,Mt),Ct=li(_,p),Ot=ai(St,yt),Et=ai(Ot,Ct),Nt=fi(r,v),It=fi(i,d),Bt=ai(Nt,It),kt=ai(Et,Bt);return[Y,tt,mt,ai(kt,g)].map(En)}const vi=dt,di=gt,gi=pt;function mi(t,n){const e=Ic(t),[[o,r,[c]],[i,s,[u]]]=Nc(n);if(0===bt(o)&&0===bt(i))return Dc(t,[n[0],n[2]]);const{vₓ:f,vᵧ:l,v:a}=Pc(e),p=di(o,f),h=di(i,l),v=gi(p,h),d=di(r,f),g=di(s,l),m=gi(d,g),x=vi(c,f),_=vi(u,l),b=gi(x,_);return[v,m,gi(b,a)].map(En)}const xi=Xn,_i=dt,bi=gt,wi=pt,Mi=qc;function Si(t,n){const e=Nc(t);if(0===bt(e[0][0])&&0===bt(e[1][0]))return mi([t[0],t[2]],n);const[[o,r,[c]],[i,s,[u]]]=Nc(n);if(0===bt(o)&&0===bt(i))return $c(t,[n[0],n[2]]);const{vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v}=Yc(e),d=xi(c,c),g=_i(c,r),m=_i(c,o),x=xi(c,u),_=_i(c,s),b=_i(c,i),w=bi(r,r),M=bi(r,o),S=_i(u,r),y=bi(r,s),C=bi(r,i),O=bi(o,s),E=bi(o,o),N=_i(u,o),I=bi(o,i),B=xi(u,u),k=_i(u,s),P=_i(u,i),T=bi(s,s),A=bi(s,i),z=bi(i,i),D=bi(E,f),q=bi(I,l),F=bi(z,a),j=wi(D,q),H=wi(j,F),L=bi(M,f),W=bi(A,a),Y=wi(C,O),X=bi(Y,l),Q=Mi(wi(L,W)),V=wi(Q,X),U=wi(Mi(m),w),R=wi(Mi(P),T),$=wi(b,y),Z=wi($,N),G=bi(U,f),J=bi(R,a),K=bi(Z,l),tt=bi(o,p),nt=bi(i,h),et=wi(G,J),ot=wi(et,K),rt=wi(tt,nt),ct=wi(ot,rt),it=bi(g,f),st=bi(k,a),ut=wi(_,S),ft=bi(ut,l),lt=Mi(wi(it,st)),at=bi(r,p),pt=bi(s,h),ht=wi(lt,ft),vt=wi(at,pt),dt=wi(ht,vt),gt=bi(d,f),mt=bi(x,l),xt=bi(B,a),_t=_i(c,p),wt=_i(u,h),Mt=wi(gt,mt),St=wi(Mt,xt),yt=wi(_t,wt),Ct=wi(St,yt);return[H,V,ct,dt,wi(Ct,v)].map(En)}const yi=Xn,Ci=dt,Oi=gt,Ei=pt,Ni=qc;function Ii(t,n){const e=Ec(t);if(0===bt(e[0][0])&&0===bt(e[1][0]))return Si(ti(t),n);const[[o,r,[c]],[i,s,[u]]]=Nc(n);if(0===bt(o)&&0===bt(i))return hi(t,[n[0],n[2]]);const{vₓₓₓ:f,vₓₓᵧ:l,vₓᵧᵧ:a,vᵧᵧᵧ:p,vₓₓ:h,vₓᵧ:v,vᵧᵧ:d,vₓ:g,vᵧ:m,v:x}=si(e),_=yi(c,c),b=Ci(c,r),w=Ci(c,o),M=yi(c,u),S=Ci(c,s),y=Ci(c,i),C=Oi(r,r),O=Oi(r,o),E=Ci(u,r),N=Oi(r,s),I=Oi(r,i),B=Oi(o,s),k=Oi(o,o),P=Ci(u,o),T=Oi(o,i),A=yi(u,u),z=Ci(u,s),D=Ci(u,i),q=Oi(s,s),F=Oi(s,i),j=Oi(i,i),H=Oi(o,f),L=Oi(o,a),W=Oi(i,l),Y=Oi(i,p),X=Ei(H,W),Q=Ei(L,Y),V=Oi(k,X),U=Oi(j,Q),R=Ei(V,U),$=Ei(w,C),Z=Ei(D,q),G=Ei(Ni(w),C),J=Ei(Ni(D),q),K=Ei(Ni(N),P),tt=Ei(Ni(N),y),nt=Ei(Ni(P),N),et=Ei(Ci(6,w),C),ot=Ei(Ci(6,D),q),rt=Ei(I,B),ct=Ei(y,P),it=Ei(Ni(E),S),st=Ei(Ni(S),E),ut=Ei(y,N),ft=Ei(ut,P),lt=Ci(3,k),at=Ci(3,j),pt=Oi(lt,f),ht=Oi(k,l),vt=Ni(Oi(T,l)),dt=Ni(Oi(T,a)),gt=Oi(j,a),mt=Oi(at,p),xt=Ei(pt,vt),_t=Ei(ht,dt),wt=Ei(xt,gt),Mt=Ei(_t,mt),St=Oi(r,wt),yt=Oi(s,Mt),Ct=Ei(St,yt),Ot=Oi(i,G),Et=Oi(i,tt),Nt=Oi(o,K),It=Oi(o,J),Bt=Oi(Ci(3,o),$),kt=Oi(Ci(3,i),Z),Pt=Ei(Ot,Nt),Tt=Ei(Et,It),At=Oi(Bt,f),zt=Oi(kt,p),Dt=Oi(Pt,l),qt=Oi(Tt,a),Ft=Ei(At,zt),jt=Ei(Dt,qt),Ht=Oi(k,h),Lt=Oi(j,d),Wt=Oi(T,v),Yt=Ei(Ht,Lt),Xt=Ei(Ft,jt),Qt=Ei(Yt,Wt),Vt=Ei(Xt,Qt),Ut=Oi(r,et),Rt=Oi(s,ot),$t=Ci(2*c,rt),Zt=Oi(Ni(s),ct),Gt=Oi(r,nt),Jt=Oi(r,J),Kt=Ei($t,Gt),tn=Ei(Zt,Jt),nn=Oi(F,d),en=Oi(O,h),on=Oi(rt,v),rn=Ei(nn,en),cn=Oi(Ut,f),sn=Oi(Kt,l),un=Oi(Rt,p),fn=Oi(tn,a),ln=Ei(cn,un),an=Ei(sn,fn),pn=Ei(ln,an),hn=Ei(Ni(rn),on),vn=Ei(pn,hn),dn=Oi(yi(3,c),$),gn=Oi(yi(3,u),Z),mn=Ci(c,tt),xn=Ci(c,J),_n=Ci(u,G),bn=Ci(u,K),wn=Ei(mn,_n),Mn=Ei(xn,bn),Sn=Oi(dn,f),yn=Oi(gn,p),Cn=Oi(wn,l),On=Oi(Mn,a),Nn=Oi(G,h),In=Oi(J,d),Bn=Oi(ft,v),kn=Oi(o,g),Pn=Oi(i,m),Tn=Ei(Sn,yn),An=Ei(Cn,On),zn=Ei(Nn,In),Dn=Ei(Tn,An),qn=Ei(zn,Bn),Fn=Ei(kn,Pn),jn=Ei(Dn,qn),Hn=Ei(jn,Fn),Ln=Oi(yi(3,c),b),Wn=Oi(yi(3,u),z),Yn=Ci(c,it),Xn=Ci(u,st),Qn=Oi(b,h),Vn=Oi(z,d),Un=Oi(S,v),Rn=Oi(E,v),$n=Ni(Ei(Qn,Vn)),Zn=Ei(Un,Rn),Gn=Oi(r,g),Jn=Oi(s,m),Kn=Oi(Ln,f),te=Oi(Wn,p),ne=Oi(Yn,l),ee=Oi(Xn,a),oe=Ei(Kn,te),re=Ei(ne,ee),ce=Ei(oe,re),ie=Ei($n,Zn),se=Ei(Gn,Jn),ue=Ei(ce,ie),fe=Ei(ue,se),le=Ci(c,f),ae=Ci(c,a),pe=Ci(u,l),he=Ci(u,p),ve=Ei(le,pe),de=Ei(ae,he),ge=Ei(ve,h),me=Ei(de,d),xe=Oi(_,ge),_e=Oi(A,me),be=Oi(M,v),we=Ci(c,g),Me=Ci(u,m),Se=Ei(xe,_e),ye=Ei(Se,be),Ce=Ei(we,Me),Oe=Ei(ye,Ce);return[R,Ct,Vt,vn,Hn,fe,Ei(Oe,x)].map(En)}const Bi=dt,ki=gt,Pi=pt;function Ti(t,n){const e=Ic(t),[[o,r,c,[i]],[s,u,f,[l]]]=Ec(n);if(0===bt(o)&&0===bt(s))return mi(t,ti(n));const{vₓ:a,vᵧ:p,v:h}=Pc(e),v=ki(o,a),d=ki(s,p),g=Pi(v,d),m=ki(r,a),x=ki(u,p),_=Pi(m,x),b=ki(c,a),w=ki(f,p),M=Pi(b,w),S=Bi(i,a),y=Bi(l,p),C=Pi(S,y);return[g,_,M,Pi(C,h)].map(En)}const Ai=Xn,zi=dt,Di=gt,qi=pt,Fi=qc;function ji(t,n){const e=Nc(t);if(0===bt(e[0][0])&&0===bt(e[1][0]))return Ti([t[0],t[2]],n);const[[o,r,c,[i]],[s,u,f,[l]]]=Ec(n);if(0===bt(o)&&0===bt(s))return Si(t,ti(n));const{vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:v,vᵧ:d,v:g}=Yc(e),m=Ai(i,i),x=zi(i,c),_=zi(i,r),b=zi(i,o),w=Ai(i,l),M=zi(i,f),S=zi(i,u),y=zi(i,s),C=Di(c,c),O=Di(c,r),E=Di(c,o),N=zi(l,c),I=Di(c,f),B=Di(c,u),k=Di(c,s),P=Di(r,f),T=Di(r,r),A=Di(r,o),z=zi(l,r),D=Di(r,u),q=Di(r,s),F=Di(o,o),j=zi(l,o),H=Di(o,f),L=Di(o,u),W=Di(o,s),Y=Ai(l,l),X=zi(l,f),Q=zi(l,u),V=zi(l,s),U=Di(f,f),R=Di(f,u),$=Di(s,s),Z=Di(u,u),G=Di(u,s),J=Di(f,s),K=Di(F,a),tt=Di(W,p),nt=Di($,h),et=qi(K,tt),ot=qi(et,nt),rt=Di(A,a),ct=Di(G,h),it=qi(rt,ct),st=qi(q,L),ut=Di(st,p),ft=qi(Fi(it),ut),lt=qi(Fi(E),T),at=qi(Fi(J),Z),pt=qi(k,D),ht=qi(pt,H),vt=Di(lt,a),dt=Di(at,h),gt=qi(vt,dt),mt=Di(ht,p),xt=qi(gt,mt),_t=qi(b,O),wt=qi(V,R),Mt=qi(y,B),St=qi(P,j),yt=qi(Mt,St),Ct=Di(_t,a),Ot=Di(wt,h),Et=Fi(qi(Ct,Ot)),Nt=Di(yt,p),It=Di(o,v),Bt=Di(s,d),kt=qi(It,Bt),Pt=qi(Et,Nt),Tt=qi(Pt,kt),At=qi(Fi(_),C),zt=qi(Fi(Q),U),Dt=qi(S,I),qt=qi(Dt,z),Ft=Di(At,a),jt=Di(zt,h),Ht=Di(qt,p),Lt=qi(Ft,jt),Wt=qi(Lt,Ht),Yt=Di(r,v),Xt=Di(u,d),Qt=qi(Yt,Xt),Vt=qi(Wt,Qt),Ut=Di(x,a),Rt=Di(X,h),$t=qi(M,N),Zt=Di($t,p),Gt=Fi(qi(Ut,Rt)),Jt=qi(Gt,Zt),Kt=Di(c,v),tn=Di(f,d),nn=qi(Kt,tn),en=qi(Jt,nn),on=Di(m,a),rn=Di(w,p),cn=Di(Y,h),sn=zi(i,v),un=zi(l,d),fn=qi(on,rn),ln=qi(fn,cn),an=qi(sn,un),pn=qi(ln,an);return[ot,ft,xt,Tt,Vt,en,qi(pn,g)].map(En)}const Hi=Xn,Li=dt,Wi=gt,Yi=pt,Xi=qc,Qi=[[function(t,n){const{coeffs:{vₓ:e,vᵧ:o,v:r},errorBound:{v_:c}}=sr(t),[[i,[,s]],[u,[,f]]]=er(n),l=i[1],a=u[1],p=e[1],h=o[1],v=r[1],d=l*p,g=2*ur(d),m=ar(i,e),x=a*h,_=2*ur(x),b=ar(u,o),w=d+x,M=fr(m,b),S=g+_+ur(w),y=s*p,C=lr(s,e),O=ur(y),E=f*h,N=lr(f,o),I=ur(E),B=y+E,k=fr(C,N),P=O+I+ur(B);return{coeffs:[M,fr(k,r)],errBound:[S,P+c+ur(B+v)]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o,v:r},errorBound:{v_:c}}=sr(t),{coeffs:[[i,s,[,u]],[f,l,[,a]]],errorBound:[[p],[h]]}=nr(n),v=e[1],d=o[1],g=r[1],m=Ur(v),x=Ur(d),_=s[1],b=i[1],w=l[1],M=f[1],S=b*v,y=Vr(i,e),C=p*m+2*Ur(S),O=M*d,E=Vr(f,o),N=h*x+2*Ur(O),I=S+O,B=Xr(y,E),k=C+N+Ur(I),P=_*v,T=Vr(s,e),A=2*Ur(P),z=w*d,D=Vr(l,o),q=2*Ur(z),F=P+z,j=Xr(T,D),H=A+q+Ur(F),L=Qr(u,e),W=u*v,Y=Ur(W),X=Qr(a,o),Q=a*d,V=Ur(Q),U=W+Q,R=Xr(L,X),$=Y+V+Ur(U),Z=U+g;return{coeffs:[B,j,Xr(R,r)],errBound:[k,H,$+c+Ur(Z)]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o,v:r},errorBound:{v_:c}}=sr(t),{coeffs:[[i,s,u,[,f]],[l,a,p,[,h]]],errorBound:[[v,d,g],[m,x,_]]}=tr(n),b=fc(e[1]),w=fc(o[1]),M=uc(i,e),S=v*b+2*fc(M[1]),y=uc(l,o),C=m*w+2*fc(y[1]),O=ic(M,y),E=S+C+fc(O[1]),N=uc(s,e),I=d*b+2*fc(N[1]),B=uc(a,o),k=x*w+2*fc(B[1]),P=ic(N,B),T=I+k+fc(P[1]),A=uc(u,e),z=g*b+2*fc(A[1]),D=uc(p,o),q=_*w+2*fc(D[1]),F=ic(A,D),j=z+q+fc(F[1]),H=sc(f,e),L=fc(H[1]),W=sc(h,o),Y=fc(W[1]),X=ic(H,W),Q=L+Y+fc(X[1]),V=ic(X,r);return{coeffs:[O,P,F,V],errBound:[E,T,j,Q+c+fc(V[1])]}}],[function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:o,vᵧᵧ:r,vₓ:c,vᵧ:i,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=_r(t),[[v,[,d]],[g,[,m]]]=er(n),x=e[1],_=o[1],b=r[1],w=c[1],M=i[1],S=s[1],y=Er(x),C=Er(_),O=Er(b),E=v[1],N=g[1],I=Er(d),B=Er(E),k=Er(m),P=Er(N),T=d*d,A=d*E,z=d*m,D=d*N,q=E*E,F=E*m,j=E*N,H=m*m,L=m*N,W=N*N,Y=Mr(d,d),X=yr(d,v),Q=Er(A),V=Mr(d,m),U=yr(d,g),R=Er(D),$=Er(q),Z=Cr(v,v),G=2*$,J=yr(m,v),K=Er(F),tt=Er(j),nt=Cr(v,g),et=2*tt,ot=Mr(m,m),rt=yr(m,g),ct=Er(L),it=Er(W),st=Cr(g,g),ut=2*it,ft=q*x,lt=Cr(Z,e),at=G*y+$*u+2*Er(ft),pt=W*b,ht=Cr(st,r),vt=ut*O+it*l+2*Er(pt),dt=j*_,gt=Cr(nt,o),mt=et*C+tt*f+2*Er(dt),xt=ft+pt,_t=Or(lt,ht),bt=at+vt+Er(xt),wt=xt+dt,Mt=Or(_t,gt),St=bt+mt+Er(wt),yt=A*x,Ct=Cr(X,e),Ot=Q*(y+u)+2*Er(yt),Et=L*b,Nt=Cr(rt,r),It=ct*(O+l)+2*Er(Et),Bt=D+F,kt=Or(U,J),Pt=R+K+Er(Bt),Tt=Bt*_,At=Cr(kt,o),zt=Pt*C+Er(Bt)*f+2*Er(Tt),Dt=2*(yt+Et),qt=Sr(Or(Ct,Nt)),Ft=2*(Ot+It)+Er(Dt),jt=Dt+Tt,Ht=Or(qt,At),Lt=Ft+zt+Er(jt),Wt=E*w,Yt=Cr(v,c),Xt=B*a+2*Er(Wt),Qt=N*M,Vt=Cr(g,i),Ut=P*p+2*Er(Qt),Rt=Wt+Qt,$t=Or(Yt,Vt),Zt=Xt+Ut+Er(Rt),Gt=jt+Rt,Jt=Or(Ht,$t),Kt=Lt+Zt+Er(Gt),tn=T*x,nn=Cr(Y,e),en=2*Er(tn),on=z*_,rn=Cr(V,o),cn=2*Er(on),sn=H*b,un=Cr(ot,r),fn=2*Er(sn),ln=tn+on,an=Or(nn,rn),pn=en+cn+Er(ln),hn=ln+sn,vn=Or(an,un),dn=pn+fn+Er(hn),gn=d*w,mn=yr(d,c),xn=I*a+Er(gn),_n=m*M,bn=yr(m,i),wn=k*p+Er(_n),Mn=gn+_n,Sn=Or(mn,bn),yn=xn+wn+Er(Mn),Cn=hn+Mn,On=Or(vn,Sn),En=dn+yn+Er(Cn),Nn=Cn+S;return{coeffs:[Mt,Jt,Or(On,s)],errBound:[St,Kt,En+h+Er(Nn)]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:o,vᵧᵧ:r,vₓ:c,vᵧ:i,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=_r(t),{coeffs:[[v,d,[,g]],[m,x,[,_]]],errorBound:[[b],[w]]}=nr(n),M=e[1],S=o[1],y=r[1],C=c[1],O=i[1],E=s[1],N=Kr(M),I=Kr(S),B=Kr(y),k=Kr(C),P=Kr(O),T=d[1],A=v[1],z=x[1],D=m[1],q=Kr(g),F=Kr(T),j=Kr(A),H=Kr(_),L=Kr(z),W=Kr(D),Y=g*g,X=g*T,Q=g*A,V=g*_,U=g*z,R=g*D,$=T*T,Z=T*A,G=T*_,J=T*z,K=T*D,tt=A*z,nt=A*A,et=A*_,ot=A*D,rt=_*_,ct=_*z,it=_*D,st=z*z,ut=z*D,ft=D*D,lt=Kr(Y),at=Kr(V),pt=Kr(rt),ht=Rr(g,g),vt=Zr(g,d),dt=Kr(X),gt=Zr(g,v),mt=Kr(Q),xt=Rr(g,_),_t=Zr(g,x),bt=Kr(U),wt=Zr(g,m),Mt=Kr(R),St=Gr(d,d),yt=2*Kr($),Ct=Gr(d,v),Ot=Kr(Z),Et=F*b+2*Ot,Nt=Zr(_,d),It=Kr(G),Bt=Gr(d,x),kt=2*Kr(J),Pt=Gr(d,m),Tt=F*w+2*Kr(K),At=Gr(v,x),zt=b*L+2*Kr(tt),Dt=Gr(v,v),qt=Kr(nt),Ft=2*(b*j+qt),jt=Zr(_,v),Ht=Kr(et),Lt=Gr(v,m),Wt=Kr(ot),Yt=b*W+j*w+2*Wt,Xt=Rr(_,_),Qt=Zr(_,x),Vt=Kr(ct),Ut=Zr(_,m),Rt=Kr(it),$t=Gr(x,x),Zt=2*Kr(st),Gt=Gr(x,m),Jt=Kr(ut),Kt=L*w+2*Jt,tn=Gr(m,m),nn=Kr(ft),en=2*(w*W+nn),on=nt*M,rn=Gr(Dt,e),cn=Ft*N+qt*u+2*Kr(on),sn=ot*S,un=Gr(Lt,o),fn=Yt*I+Wt*f+2*Kr(sn),ln=ft*y,an=Gr(tn,r),pn=en*B+nn*l+2*Kr(ln),hn=on+sn,vn=Jr(rn,un),dn=cn+fn+Kr(hn),gn=hn+ln,mn=Jr(vn,an),xn=dn+pn+Kr(gn),_n=Z*M,bn=Gr(Ct,e),wn=Et*N+Ot*u+2*Kr(_n),Mn=ut*y,Sn=Gr(Gt,r),yn=Kt*B+Jt*l+2*Kr(Mn),Cn=K+tt,On=Jr(Pt,At),En=Kr(Cn),Nn=Tt+zt+En,In=Cn*S,Bn=Gr(On,o),kn=Nn*I+En*f+2*Kr(In),Pn=2*(_n+Mn),Tn=$r(Jr(bn,Sn)),An=2*(wn+yn)+Kr(Pn),zn=Pn+In,Dn=Jr(Tn,Bn),qn=An+kn+Kr(zn),Fn=2*Q+$,jn=Kr(Fn),Hn=Jr($r(gt),St),Ln=2*mt+yt+Kr(Fn),Wn=2*it+st,Yn=Kr(Wn),Xn=Jr($r(Ut),$t),Qn=2*Rt+Zt+Kr(Wn),Vn=R+J,Un=Jr(wt,Bt),Rn=Mt+kt+Kr(Vn),$n=Vn+et,Zn=Jr(Un,jt),Gn=Kr($n),Jn=Rn+Ht+Gn,Kn=Fn*M,te=Gr(Hn,e),ne=Ln*N+jn*u+2*Kr(Kn),ee=Wn*y,oe=Gr(Xn,r),re=Qn*B+Yn*l+2*Kr(ee),ce=$n*S,ie=Gr(Zn,o),se=Jn*I+Gn*f+2*Kr(ce),ue=A*C,fe=Gr(v,c),le=b*k+j*a+2*Kr(ue),ae=D*O,pe=Gr(m,i),he=w*P+W*p+2*Kr(ae),ve=Kn+ee,de=Jr(te,oe),ge=ne+re+Kr(ve),me=ve+ce,xe=Jr(de,ie),_e=ge+se+Kr(me),be=ue+ae,we=Jr(fe,pe),Me=le+he+Kr(be),Se=me+be,ye=Jr(xe,we),Ce=_e+Me+Kr(Se),Oe=X*M,Ee=Gr(vt,e),Ne=dt*(N+u)+2*Kr(Oe),Ie=ct*y,Be=Gr(Qt,r),ke=Vt*(B+l)+2*Kr(Ie),Pe=U+G,Te=Jr(_t,Nt),Ae=Kr(Pe),ze=bt+It+Ae,De=Pe*S,qe=Gr(Te,o),Fe=ze*I+Ae*f+2*Kr(De),je=2*(Oe+Ie),He=$r(Jr(Ee,Be)),Le=2*(Ne+ke)+Kr(je),We=T*C,Ye=Gr(d,c),Xe=F*a+2*Kr(We),Qe=z*O,Ve=Gr(x,i),Ue=L*p+2*Kr(Qe),Re=je+De,$e=Jr(He,qe),Ze=Le+Fe+Kr(Re),Ge=We+Qe,Je=Jr(Ye,Ve),Ke=Xe+Ue+Kr(Ge),to=Re+Ge,no=Jr($e,Je),eo=Ze+Ke+Kr(to),oo=Y*M,ro=Gr(ht,e),co=lt*u+2*Kr(oo),io=V*S,so=Gr(xt,o),uo=at*f+2*Kr(io),fo=rt*y,lo=Gr(Xt,r),ao=pt*l+2*Kr(fo),po=g*C,ho=Zr(g,c),vo=q*a+Kr(po),go=_*O,mo=Zr(_,i),xo=H*p+Kr(go),_o=oo+io,bo=Jr(ro,so),wo=co+uo+Kr(_o),Mo=_o+fo,So=Jr(bo,lo),yo=wo+ao+Kr(Mo),Co=po+go,Oo=Jr(ho,mo),Eo=vo+xo+Kr(Co),No=Mo+Co,Io=Jr(So,Oo),Bo=yo+Eo+Kr(No),ko=No+E;return{coeffs:[mn,Dn,ye,no,Jr(Io,s)],errBound:[xn,qn,Ce,eo,Bo+h+Kr(ko)]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:o,vᵧᵧ:r,vₓ:c,vᵧ:i,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=_r(t),{coeffs:[[v,d,g,[,m]],[x,_,b,[,w]]],errorBound:[[M,S,y],[C,O,E]]}=tr(n),N=e[1],I=o[1],B=r[1],k=c[1],P=i[1],T=s[1],A=dc(N),z=dc(I),D=dc(B),q=dc(k),F=dc(P),j=g[1],H=d[1],L=v[1],W=b[1],Y=_[1],X=x[1],Q=dc(m),V=dc(j),U=dc(H),R=dc(L),$=dc(w),Z=dc(W),G=dc(Y),J=dc(X),K=m*m,tt=m*j,nt=m*H,et=m*L,ot=m*w,rt=m*W,ct=m*Y,it=m*X,st=j*j,ut=j*H,ft=j*L,lt=j*w,at=j*W,pt=j*Y,ht=j*X,vt=H*W,dt=H*H,gt=H*L,mt=H*w,xt=H*Y,_t=H*X,bt=L*L,wt=L*w,Mt=L*W,St=L*Y,yt=L*X,Ct=w*w,Ot=w*W,Et=w*Y,Nt=w*X,It=W*W,Bt=W*Y,kt=X*X,Pt=Y*Y,Tt=Y*X,At=W*X,zt=lc(m,m),Dt=dc(K),qt=pc(m,g),Ft=dc(tt),jt=Q*y+Ft,Ht=pc(m,d),Lt=Q*S+dc(nt),Wt=pc(m,v),Yt=Q*M+dc(et),Xt=lc(m,w),Qt=dc(ot),Vt=pc(m,b),Ut=Q*E+dc(rt),Rt=pc(m,_),$t=Q*O+dc(ct),Zt=pc(m,x),Gt=Q*C+dc(it),Jt=hc(g,g),Kt=y*V+V*y+2*dc(st),tn=hc(g,d),nn=y*U+V*S+2*dc(ut),en=hc(g,v),on=y*R+V*M+2*dc(ft),rn=pc(w,g),cn=$*y+dc(lt),sn=hc(g,b),un=y*Z+V*E+2*dc(at),fn=hc(g,_),ln=y*G+V*O+2*dc(pt),an=hc(g,x),pn=y*J+V*C+2*dc(ht),hn=hc(d,b),vn=S*Z+U*E+2*dc(vt),dn=hc(d,d),gn=S*U+U*S+2*dc(dt),mn=hc(d,v),xn=dc(gt),_n=S*R+U*M+2*xn,bn=pc(w,d),wn=$*S+dc(mt),Mn=hc(d,_),Sn=S*G+U*O+2*dc(xt),yn=hc(d,x),Cn=S*J+U*C+2*dc(_t),On=hc(v,v),En=dc(bt),Nn=M*R+R*M+2*En,In=pc(w,v),Bn=$*M+dc(wt),kn=hc(v,b),Pn=M*Z+R*E+2*dc(Mt),Tn=hc(v,_),An=M*G+R*O+2*dc(St),zn=hc(v,x),Dn=dc(yt),qn=M*J+R*C+2*Dn,Fn=lc(w,w),jn=dc(Ct),Hn=pc(w,b),Ln=dc(Ot),Wn=$*E+Ln,Yn=pc(w,_),Xn=$*O+dc(Et),Qn=pc(w,x),Vn=$*C+dc(Nt),Un=hc(b,b),Rn=E*Z+Z*E+2*dc(It),$n=hc(b,_),Zn=E*G+Z*O+2*dc(Bt),Gn=hc(x,x),Jn=dc(kt),Kn=C*J+J*C+2*Jn,te=hc(_,_),ne=O*G+G*O+2*dc(Pt),ee=hc(_,x),oe=dc(Tt),re=O*J+G*C+2*oe,ce=hc(b,x),ie=E*J+Z*C+2*dc(At),se=bt*N,ue=hc(On,e),fe=Nn*A+En*u+2*dc(se),le=yt*I,ae=hc(zn,o),pe=qn*z+Dn*f+2*dc(le),he=kt*B,ve=hc(Gn,r),de=Kn*D+Jn*l+2*dc(he),ge=se+le,me=vc(ue,ae),xe=fe+pe+dc(ge),_e=ge+he,be=vc(me,ve),we=xe+de+dc(_e),Me=gt*N,Se=hc(mn,e),ye=_n*A+xn*u+2*dc(Me),Ce=Tt*B,Oe=hc(ee,r),Ee=re*D+oe*l+2*dc(Ce),Ne=Me+Ce,Ie=vc(Se,Oe),Be=ye+Ee+dc(Ne),ke=_t+St,Pe=vc(yn,Tn),Te=dc(ke),Ae=Cn+An+Te,ze=ke*I,De=hc(Pe,o),qe=Ae*z+Te*f+2*dc(ze),Fe=2*Ne+ze,je=vc(ac(Ie),De),He=2*Be+qe+dc(Fe),Le=2*ft+dt,We=vc(ac(en),dn),Ye=dc(Le),Xe=2*on+gn+dc(Le),Qe=2*At+Pt,Ve=vc(ac(ce),te),Ue=dc(Qe),Re=2*ie+ne+dc(Qe),$e=ht+xt,Ze=vc(an,Mn),Ge=pn+Sn+dc($e),Je=$e+Mt,Ke=vc(Ze,kn),to=dc(Je),no=Ge+Pn+to,eo=Le*N,oo=hc(We,e),ro=Xe*A+Ye*u+2*dc(eo),co=Qe*B,io=hc(Ve,r),so=Re*D+Ue*l+2*dc(co),uo=eo+co,fo=vc(oo,io),lo=ro+so+dc(uo),ao=Je*I,po=hc(Ke,o),ho=no*z+to*f+2*dc(ao),vo=uo+ao,go=vc(fo,po),mo=lo+ho+dc(vo),xo=et+ut,_o=vc(Wt,tn),bo=dc(xo),wo=Yt+nn+bo,Mo=Nt+Bt,So=vc(Qn,$n),yo=dc(Mo),Co=Vn+Zn+yo,Oo=it+pt,Eo=vc(Zt,fn),No=Gt+ln+dc(Oo),Io=vt+wt,Bo=vc(hn,In),ko=vn+Bn+dc(Io),Po=Oo+Io,To=vc(Eo,Bo),Ao=dc(Po),zo=No+ko+Ao,Do=xo*N,qo=hc(_o,e),Fo=wo*A+bo*u+2*dc(Do),jo=Mo*B,Ho=hc(So,r),Lo=Co*D+yo*l+2*dc(jo),Wo=2*(Do+jo),Yo=ac(vc(qo,Ho)),Xo=2*(Fo+Lo)+dc(Wo),Qo=Po*I,Vo=hc(To,o),Uo=zo*z+Ao*f+2*dc(Qo),Ro=L*k,$o=hc(v,c),Zo=M*q+R*a+2*dc(Ro),Go=X*P,Jo=hc(x,i),Ko=C*F+J*p+2*dc(Go),nr=Ro+Go,er=vc($o,Jo),or=Zo+Ko+dc(nr),rr=Wo+Qo,cr=vc(Yo,Vo),ir=Xo+Uo+dc(rr),sr=rr+nr,ur=vc(cr,er),fr=ir+or+dc(sr),lr=2*nt+st,ar=vc(ac(Ht),Jt),pr=dc(lr),hr=2*Lt+Kt+pr,vr=2*Et+It,dr=vc(ac(Yn),Un),gr=dc(vr),mr=2*Xn+Rn+gr,xr=ct+at,br=vc(Rt,sn),wr=$t+un+dc(xr),Mr=xr+mt,Sr=vc(br,bn),yr=dc(Mr),Cr=wr+wn+yr,Or=lr*N,Er=hc(ar,e),Nr=hr*A+pr*u+2*dc(Or),Ir=vr*B,Br=hc(dr,r),kr=mr*D+gr*l+2*dc(Ir),Pr=Mr*I,Tr=hc(Sr,o),Ar=Cr*z+yr*f+2*dc(Pr),zr=Or+Ir,Dr=vc(Er,Br),qr=Nr+kr+dc(zr),Fr=zr+Pr,jr=vc(Dr,Tr),Hr=qr+Ar+dc(Fr),Lr=H*k,Wr=hc(d,c),Yr=S*q+U*a+2*dc(Lr),Xr=Y*P,Qr=hc(_,i),Vr=O*F+G*p+2*dc(Xr),Ur=Lr+Xr,Rr=vc(Wr,Qr),$r=Yr+Vr+dc(Ur),Zr=Fr+Ur,Gr=vc(jr,Rr),Jr=Hr+$r+dc(Zr),Kr=tt*N,tc=hc(qt,e),nc=jt*A+Ft*u+2*dc(Kr),ec=Ot*B,oc=hc(Hn,r),rc=Wn*D+Ln*l+2*dc(ec),cc=rt+lt,ic=vc(Vt,rn),sc=dc(cc),uc=Ut+cn+sc,fc=cc*I,gc=hc(ic,o),mc=uc*z+sc*f+2*dc(fc),xc=2*(Kr+ec),_c=ac(vc(tc,oc)),bc=2*(nc+rc)+dc(xc),wc=xc+fc,Mc=vc(_c,gc),Sc=bc+mc+dc(wc),yc=j*k,Cc=hc(g,c),Oc=y*q+V*a+2*dc(yc),Ec=W*P,Nc=hc(b,i),Ic=E*F+Z*p+2*dc(Ec),Bc=yc+Ec,kc=vc(Cc,Nc),Pc=Oc+Ic+dc(Bc),Tc=wc+Bc,Ac=vc(Mc,kc),zc=Sc+Pc+dc(Tc),Dc=K*N,qc=hc(zt,e),Fc=Dt*u+2*dc(Dc),jc=ot*I,Hc=hc(Xt,o),Lc=Qt*f+2*dc(jc),Wc=Ct*B,Yc=hc(Fn,r),Xc=jn*l+2*dc(Wc),Qc=m*k,Vc=pc(m,c),Uc=Q*a+dc(Qc),Rc=w*P,$c=pc(w,i),Zc=$*p+dc(Rc),Gc=Dc+jc,Jc=vc(qc,Hc),Kc=Fc+Lc+dc(Gc),ti=Gc+Wc,ni=vc(Jc,Yc),ei=Kc+Xc+dc(ti),oi=Qc+Rc,ri=vc(Vc,$c),ci=Uc+Zc+dc(oi),ii=ti+oi,si=vc(ni,ri),ui=ei+ci+dc(ii),fi=ii+T;return{coeffs:[be,je,go,ur,Gr,Ac,vc(si,s)],errBound:[we,He,mo,fr,Jr,zc,ui+h+dc(fi)]}}],[function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:o,vₓᵧᵧ:r,vᵧᵧᵧ:c,vₓₓ:i,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:v,vᵧᵧᵧ_:d,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:_,vᵧ_:b,v_:w}}=qr(t),[[M,[,S]],[y,[,C]]]=er(n),O=e[1],E=o[1],N=r[1],I=c[1],B=i[1],k=s[1],P=u[1],T=f[1],A=l[1],z=a[1],D=M[1],q=y[1],F=Yr(S),j=Yr(D),H=Yr(C),L=Yr(q),W=S*S,Y=S*D,X=S*C,Q=S*q,V=D*D,U=D*C,R=D*q,$=C*C,Z=C*q,G=q*q,J=Fr(S,S),K=Hr(S,M),tt=Yr(Y),nt=Fr(S,C),et=Hr(S,y),ot=Yr(Q),rt=Lr(M,M),ct=2*Yr(V),it=Hr(C,M),st=Yr(U),ut=Lr(M,y),ft=2*Yr(R),lt=Fr(C,C),at=Hr(C,y),pt=Yr(Z),ht=Lr(y,y),vt=2*Yr(G),dt=Yr(W),gt=Yr(X),mt=Yr(V),xt=Yr(R),_t=Yr($),bt=Yr(G),wt=S*O,Mt=Hr(S,e),St=F*p+Yr(wt),yt=3*S,Ct=Fr(3,S),Ot=Yr(yt),Et=yt*O,Nt=Lr(Ct,e),It=Ot*p+2*Yr(Et),Bt=S*E,kt=Hr(S,o),Pt=F*h+Yr(Bt),Tt=C*E,At=Hr(C,o),zt=H*h+Yr(Tt),Dt=S*N,qt=Hr(S,r),Ft=F*v+Yr(Dt),jt=C*N,Ht=Hr(C,r),Lt=H*v+Yr(jt),Wt=C*I,Yt=Hr(C,c),Xt=H*d+Yr(Wt),Qt=3*C,Vt=Fr(3,C),Ut=Yr(Qt),Rt=Qt*I,$t=Lr(Vt,c),Zt=Ut*d+2*Yr(Rt),Gt=D*O,Jt=Lr(M,e),Kt=j*p+2*Yr(Gt),tn=D*N,nn=Lr(M,r),en=j*v+2*Yr(tn),on=q*E,rn=Lr(y,o),cn=L*h+2*Yr(on),sn=q*I,un=Lr(y,c),fn=L*d+2*Yr(sn),ln=Gt+on,an=Wr(Jt,rn),pn=Yr(ln),hn=Kt+cn+pn,vn=tn+sn,dn=Wr(nn,un),gn=Yr(vn),mn=en+fn+gn,xn=V*ln,_n=Lr(rt,an),bn=ct*pn+mt*hn+2*Yr(xn),wn=G*vn,Mn=Lr(ht,dn),Sn=vt*gn+bt*mn+2*Yr(wn),yn=xn+wn,Cn=Wr(_n,Mn),On=bn+Sn+Yr(yn),En=Et+Tt,Nn=Wr(Nt,At),In=It+zt+Yr(En),Bn=2*(Bt+jt),kn=jr(Wr(kt,Ht)),Pn=2*(Pt+Lt)+Yr(Bn),Tn=Dt+Rt,An=Wr(qt,$t),zn=Ft+Zt+Yr(Tn),Dn=En+B,qn=Wr(Nn,i),Fn=Yr(Dn),jn=In+g+Fn,Hn=Bn+k,Ln=Wr(kn,s),Wn=Yr(Hn),Yn=Pn+m+Wn,Xn=Tn+P,Qn=Wr(An,u),Vn=Yr(Xn),Un=zn+x+Vn,Rn=V*Dn,$n=Lr(rt,qn),Zn=ct*Fn+mt*jn+2*Yr(Rn),Gn=R*Hn,Jn=Lr(ut,Ln),Kn=ft*Wn+xt*Yn+2*Yr(Gn),te=G*Xn,ne=Lr(ht,Qn),ee=vt*Vn+bt*Un+2*Yr(te),oe=Rn+Gn,re=Wr($n,Jn),ce=Zn+Kn+Yr(oe),ie=oe+te,se=Wr(re,ne),ue=ce+ee+Yr(ie),fe=2*(Tt+B),le=jr(Wr(At,i)),ae=2*(zt+g)+Yr(fe),pe=2*(Dt+P),he=jr(Wr(qt,u)),ve=2*(Ft+x)+Yr(pe),de=Et+fe,ge=Wr(Nt,le),me=Yr(de),xe=It+ae+me,_e=Rt+pe,be=Wr($t,he),we=Yr(_e),Me=Zt+ve+we,Se=Bt+k,ye=Wr(kt,s),Ce=Yr(Se),Oe=Pt+m+Ce,Ee=jt+k,Ne=Wr(Ht,s),Ie=Yr(Ee),Be=Lt+m+Ie,ke=Y*de,Pe=Lr(K,ge),Te=tt*me+tt*xe+2*Yr(ke),Ae=Z*_e,ze=Lr(at,be),De=pt*we+pt*Me+2*Yr(Ae),qe=Q*Se,Fe=Lr(et,ye),je=ot*Ce+ot*Oe+2*Yr(qe),He=U*Ee,Le=Lr(it,Ne),We=st*Ie+st*Be+2*Yr(He),Ye=D*T,Xe=Lr(M,f),Qe=j*_+2*Yr(Ye),Ve=q*A,Ue=Lr(y,l),Re=L*b+2*Yr(Ve),$e=ke+Ae,Ze=Wr(Pe,ze),Ge=Te+De+Yr($e),Je=qe+He,Ke=Wr(Fe,Le),to=je+We+Yr(Je),no=$e+Je,eo=Wr(Ze,Ke),oo=Ge+to+Yr(no),ro=Ye+Ve,co=Wr(Xe,Ue),io=Qe+Re+Yr(ro),so=no+ro,uo=Wr(eo,co),fo=oo+io+Yr(so),lo=wt+Tt,ao=Wr(Mt,At),po=St+zt+Yr(lo),ho=Wt+Dt,vo=Wr(Yt,qt),go=Xt+Ft+Yr(ho),mo=lo+B,xo=Wr(ao,i),_o=po+g+Yr(mo),bo=ho+P,wo=Wr(vo,u),Mo=go+x+Yr(bo),So=W*mo,yo=Lr(J,xo),Co=dt*_o+2*Yr(So),Oo=$*bo,Eo=Lr(lt,wo),No=_t*Mo+2*Yr(Oo),Io=X*k,Bo=Lr(nt,s),ko=gt*m+2*Yr(Io),Po=So+Oo,To=Wr(yo,Eo),Ao=Co+No+Yr(Po),zo=Po+Io,Do=Wr(To,Bo),qo=Ao+ko+Yr(zo),Fo=S*T,jo=Hr(S,f),Ho=F*_+Yr(Fo),Lo=C*A,Wo=Hr(C,l),Yo=H*b+Yr(Lo),Xo=Fo+Lo,Qo=Wr(jo,Wo),Vo=Ho+Yo+Yr(Xo),Uo=zo+Xo,Ro=Wr(Do,Qo),$o=qo+Vo+Yr(Uo),Zo=Uo+z;return{coeffs:[Cn,se,uo,Wr(Ro,a)],errBound:[On,ue,fo,$o+w+Yr(Zo)]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:o,vₓᵧᵧ:r,vᵧᵧᵧ:c,vₓₓ:i,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:v,vᵧᵧᵧ_:d,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:_,vᵧ_:b,v_:w}}=qr(t),{coeffs:[[M,S,[,y]],[C,O,[,E]]],errorBound:[[N],[I]]}=nr(n),B=e[1],k=o[1],P=r[1],T=c[1],A=i[1],z=s[1],D=u[1],q=f[1],F=l[1],j=a[1],H=cc(B),L=cc(k),W=cc(P),Y=cc(T),X=cc(A),Q=cc(D),V=cc(z),U=cc(q),R=cc(F),$=S[1],Z=M[1],G=O[1],J=C[1],K=cc(y),tt=cc($),nt=cc(Z),et=cc(E),ot=cc(G),rt=cc(J),ct=y*y,it=y*$,st=y*Z,ut=y*E,ft=y*G,lt=y*J,at=$*$,pt=$*Z,ht=$*E,vt=$*G,dt=$*J,gt=Z*G,mt=Z*Z,xt=Z*E,_t=Z*J,bt=E*E,wt=E*G,Mt=E*J,St=G*G,yt=G*J,Ct=J*J,Ot=tc(y,y),Et=ec(y,S),Nt=cc(it),It=ec(y,M),Bt=K*N+cc(st),kt=tc(y,E),Pt=ec(y,O),Tt=cc(ft),At=ec(y,C),zt=K*I+cc(lt),Dt=oc(S,S),qt=2*cc(at),Ft=oc(S,M),jt=tt*N+2*cc(pt),Ht=ec(E,S),Lt=cc(ht),Wt=oc(S,O),Yt=2*cc(vt),Xt=oc(S,C),Qt=tt*I+2*cc(dt),Vt=oc(M,O),Ut=N*ot+2*cc(gt),Rt=oc(M,M),$t=2*(N*nt+cc(mt)),Zt=ec(E,M),Gt=et*N+cc(xt),Jt=oc(M,C),Kt=N*rt+nt*I+2*cc(_t),tn=tc(E,E),nn=ec(E,O),en=cc(wt),on=ec(E,C),rn=et*I+cc(Mt),cn=oc(O,O),sn=2*cc(St),un=oc(O,C),fn=ot*I+2*cc(yt),ln=oc(C,C),an=2*(I*rt+cc(Ct)),pn=cc(ct),hn=cc(ut),vn=cc(pt),dn=cc(mt),gn=cc(_t),mn=cc(bt),xn=cc(yt),_n=cc(Ct),bn=oc(M,e),wn=Z*B,Mn=N*H+nt*p+2*cc(wn),Sn=oc(M,r),yn=Z*P,Cn=N*W+nt*v+2*cc(yn),On=oc(C,o),En=J*k,Nn=I*L+rt*h+2*cc(En),In=oc(C,c),Bn=J*T,kn=I*Y+rt*d+2*cc(Bn),Pn=wn+En,Tn=rc(bn,On),An=cc(Pn),zn=Mn+Nn+An,Dn=yn+Bn,qn=rc(Sn,In),Fn=cc(Dn),jn=Cn+kn+Fn,Hn=mt*Pn,Ln=oc(Rt,Tn),Wn=$t*An+dn*zn+2*cc(Hn),Yn=Ct*Dn,Xn=oc(ln,qn),Qn=an*Fn+_n*jn+2*cc(Yn),Vn=Hn+Yn,Un=rc(Ln,Xn),Rn=Wn+Qn+cc(Vn),$n=st+at,Zn=rc(It,Dt),Gn=cc($n),Jn=Bt+qt+Gn,Kn=Mt+St,te=rc(on,cn),ne=cc(Kn),ee=rn+sn+ne,oe=2*st+at,re=cc(oe),ce=rc(nc(It),Dt),ie=2*Bt+qt+re,se=2*Mt+St,ue=rc(nc(on),cn),fe=cc(se),le=2*rn+sn+fe,ae=2*vt+xt,pe=rc(nc(Wt),Zt),he=cc(ae),ve=2*Yt+Gt+he,de=2*vt+lt,ge=rc(nc(Wt),At),me=cc(de),xe=2*Yt+zt+me,_e=2*xt+vt,be=rc(nc(Zt),Wt),we=2*Gt+Yt+cc(_e),Me=6*st+at,Se=6*st,ye=ec(6,It),Ce=6*Bt+cc(Se),Oe=rc(ye,Dt),Ee=Ce+qt+cc(Se+at),Ne=6*Mt+St,Ie=6*Mt,Be=ec(6,on),ke=6*rn+cc(Ie),Pe=rc(Be,cn),Te=ke+sn+cc(Ie+St),Ae=dt+gt,ze=rc(Xt,Vt),De=cc(Ae),qe=Qt+Ut+De,Fe=lt+xt,je=rc(At,Zt),He=zt+Gt+cc(Fe),Le=2*ht+ft,We=rc(nc(Ht),Pt),Ye=2*Lt+Tt+cc(Le),Xe=2*ft+ht,Qe=rc(nc(Pt),Ht),Ve=2*Tt+Lt+cc(Xe),Ue=lt+vt,Re=rc(At,Wt),$e=zt+Yt+cc(Ue),Ze=Ue+xt,Ge=rc(Re,Zt),Je=cc(Ze),Ke=$e+Gt+Je,to=3*mt,no=ec(3,Rt),eo=3*$t+cc(to),oo=cc(to),ro=3*Ct,co=ec(3,ln),io=3*an+cc(ro),so=cc(ro),uo=to*B,fo=oc(no,e),lo=eo*H+oo*p+2*cc(uo),ao=mt*k,po=oc(Rt,o),ho=$t*L+dn*h+2*cc(ao),vo=2*_t*k,go=nc(oc(Jt,o)),mo=2*(Kt*L+gn*h+cc(vo)),xo=2*_t*P,_o=nc(oc(Jt,r)),bo=2*(Kt*W+gn*v+cc(xo)),wo=Ct*P,Mo=oc(ln,r),So=an*W+_n*v+2*cc(wo),yo=ro*T,Co=oc(co,c),Oo=io*Y+so*d+2*cc(yo),Eo=uo+vo,No=rc(fo,go),Io=lo+mo+cc(Eo),Bo=ao+xo,ko=rc(po,_o),Po=ho+bo+cc(Bo),To=Eo+wo,Ao=rc(No,Mo),zo=Io+So+cc(To),Do=Bo+yo,qo=rc(ko,Co),Fo=Po+Oo+cc(Do),jo=$*To,Ho=oc(S,Ao),Lo=tt*zo+2*cc(jo),Wo=G*Do,Yo=oc(O,qo),Xo=ot*Fo+2*cc(Wo),Qo=jo+Wo,Vo=rc(Ho,Yo),Uo=Lo+Xo+cc(Qo),Ro=J*oe,$o=oc(C,ce),Zo=I*re+rt*ie+2*cc(Ro),Go=J*de,Jo=oc(C,ge),Ko=I*me+rt*xe+2*cc(Go),tr=Z*ae,er=oc(M,pe),or=N*he+nt*ve+2*cc(tr),rr=Z*se,cr=oc(M,ue),ir=N*fe+nt*le+2*cc(rr),sr=3*Z,ur=ec(3,M),fr=cc(sr),lr=3*N+fr,ar=sr*$n,pr=oc(ur,Zn),hr=cc(ar),vr=lr*Gn+fr*Jn+2*hr,dr=3*J,gr=ec(3,C),mr=cc(dr),xr=3*I+mr,_r=dr*Kn,br=oc(gr,te),wr=cc(_r),Mr=xr*ne+mr*ee+2*wr,Sr=Ro+tr,yr=rc($o,er),Cr=cc(Sr),Or=Zo+or+Cr,Er=Go+rr,Nr=rc(Jo,cr),Ir=cc(Er),Br=Ko+ir+Ir,kr=ar*B,Pr=oc(pr,e),Tr=vr*H+hr*p+2*cc(kr),Ar=_r*T,zr=oc(br,c),Dr=Mr*Y+wr*d+2*cc(Ar),Fr=Sr*k,jr=oc(yr,o),Hr=Or*L+Cr*h+2*cc(Fr),Lr=Er*P,Wr=oc(Nr,r),Yr=Br*W+Ir*v+2*cc(Lr),Xr=kr+Ar,Qr=rc(Pr,zr),Vr=Tr+Dr+cc(Xr),Ur=Fr+Lr,Rr=rc(jr,Wr),$r=Hr+Yr+cc(Ur),Zr=mt*A,Gr=oc(Rt,i),Jr=$t*X+dn*g+2*cc(Zr),Kr=Ct*D,ic=oc(ln,u),sc=an*Q+_n*x+2*cc(Kr),uc=_t*z,fc=oc(Jt,s),lc=Kt*V+gn*m+2*cc(uc),ac=Zr+Kr,pc=rc(Gr,ic),hc=Jr+sc+cc(ac),vc=Xr+Ur,dc=rc(Qr,Rr),gc=Vr+$r+cc(vc),mc=ac+uc,xc=rc(pc,fc),_c=hc+lc+cc(mc),bc=vc+mc,wc=rc(dc,xc),Mc=gc+_c+cc(bc),Sc=$*Me,yc=oc(S,Oe),Cc=cc(Sc),Oc=tt*Ee+2*Cc,Ec=G*Ne,Nc=oc(O,Pe),Ic=cc(Ec),Bc=ot*Te+2*Ic,kc=2*y*Ae,Pc=ec(2*y,ze),Tc=2*K*qe+cc(kc),Ac=2*G*Fe,zc=oc(nc(O),je),Dc=2*ot*He+2*cc(Ac),qc=$*_e,Fc=oc(S,be),jc=tt*we+2*cc(qc),Hc=$*se,Lc=oc(S,ue),Wc=tt*le+2*cc(Hc),Yc=kc+qc,Xc=rc(Pc,Fc),Qc=cc(Yc),Vc=Tc+jc+Qc,Uc=Ac+Hc,Rc=rc(zc,Lc),$c=cc(Uc),Zc=Dc+Wc+$c,Gc=yt*D,Jc=oc(un,u),Kc=fn*Q+xn*x+2*cc(Gc),ti=pt*A,ni=oc(Ft,i),ei=jt*X+vn*g+2*cc(ti),oi=Ae*z,ri=oc(ze,s),ci=qe*V+De*m+2*cc(oi),ii=Gc+ti,si=rc(Jc,ni),ui=Kc+ei+cc(ii),fi=Sc*B,li=oc(yc,e),ai=Oc*H+Cc*p+2*cc(fi),pi=Yc*k,hi=oc(Xc,o),vi=Vc*L+Qc*h+2*cc(pi),di=Ec*T,gi=oc(Nc,c),mi=Bc*Y+Ic*d+2*cc(di),xi=Uc*P,_i=oc(Rc,r),bi=Zc*W+$c*v+2*cc(xi),wi=fi+di,Mi=rc(li,gi),Si=ai+mi+cc(wi),yi=pi+xi,Ci=rc(hi,_i),Oi=vi+bi+cc(yi),Ei=wi+yi,Ni=rc(Mi,Ci),Ii=Si+Oi+cc(Ei),Bi=2*ii+oi,ki=rc(nc(si),ri),Pi=2*ui+ci+cc(Bi),Ti=Ei+Bi,Ai=rc(Ni,ki),zi=Ii+Pi+cc(Ti),Di=3*y,qi=cc(Di),Fi=tc(3,y),ji=Di*$n,Hi=oc(Fi,Zn),Li=cc(ji),Wi=qi*Jn+2*cc(ji),Yi=3*E,Xi=cc(Yi),Qi=tc(3,E),Vi=Yi*Kn,Ui=oc(Qi,te),Ri=cc(Vi),$i=Xi*ee+2*cc(Vi),Zi=y*de,Gi=ec(y,ge),Ji=K*xe+cc(Zi),Ki=y*se,ts=ec(y,ue),ns=K*le+cc(Ki),es=E*oe,os=ec(E,ce),rs=et*ie+cc(es),cs=E*ae,is=ec(E,pe),ss=et*ve+cc(cs),us=Zi+es,fs=rc(Gi,os),ls=cc(us),as=Ji+rs+ls,ps=Ki+cs,hs=rc(ts,is),vs=cc(ps),ds=ns+ss+vs,gs=ji*B,ms=oc(Hi,e),xs=Wi*H+Li*p+2*cc(gs),_s=Vi*T,bs=oc(Ui,c),ws=$i*Y+Ri*d+2*cc(_s),Ms=us*k,Ss=oc(fs,o),ys=as*L+ls*h+2*cc(Ms),Cs=ps*P,Os=oc(hs,r),Es=ds*W+vs*v+2*cc(Cs),Ns=oe*A,Is=oc(ce,i),Bs=ie*X+re*g+2*cc(Ns),ks=se*D,Ps=oc(ue,u),Ts=le*Q+fe*x+2*cc(ks),As=Ze*z,zs=oc(Ge,s),Ds=Ke*V+Je*m+2*cc(As),qs=Z*q,Fs=oc(M,f),js=N*U+nt*_+2*cc(qs),Hs=J*F,Ls=oc(C,l),Ws=I*R+rt*b+2*cc(Hs),Ys=gs+_s,Xs=rc(ms,bs),Qs=xs+ws+cc(Ys),Vs=Ms+Cs,Us=rc(Ss,Os),Rs=ys+Es+cc(Vs),$s=Ns+ks,Zs=rc(Is,Ps),Gs=Bs+Ts+cc($s),Js=Ys+Vs,Ks=rc(Xs,Us),tu=Qs+Rs+cc(Js),nu=$s+As,eu=rc(Zs,zs),ou=Gs+Ds+cc(nu),ru=qs+Hs,cu=rc(Fs,Ls),iu=js+Ws+cc(ru),su=Js+nu,uu=rc(Ks,eu),fu=tu+ou+cc(su),lu=su+ru,au=rc(uu,cu),pu=fu+iu+cc(lu),hu=Di*it,vu=oc(Fi,Et),du=cc(hu),gu=qi*Nt+2*du,mu=Yi*wt,xu=oc(Qi,nn),_u=cc(mu),bu=Xi*en+2*_u,wu=y*Le,Mu=ec(y,We),Su=cc(wu),yu=K*Ye+cc(wu),Cu=E*Xe,Ou=ec(E,Qe),Eu=cc(Cu),Nu=et*Ve+cc(Cu),Iu=it*A,Bu=oc(Et,i),ku=Nt*X+Nt*g+2*cc(Iu),Pu=wt*D,Tu=oc(nn,u),Au=en*Q+en*x+2*cc(Pu),zu=ft*z,Du=oc(Pt,s),qu=Tt*V+Tt*m+2*cc(zu),Fu=ht*z,ju=oc(Ht,s),Hu=Lt*V+Lt*m+2*cc(Fu),Lu=2*(Iu+Pu),Wu=nc(rc(Bu,Tu)),Yu=2*(ku+Au)+cc(Lu),Xu=zu+Fu,Qu=rc(Du,ju),Vu=qu+Hu+cc(Xu),Uu=$*q,Ru=oc(S,f),$u=tt*_+2*cc(Uu),Zu=G*F,Gu=oc(O,l),Ju=ot*b+2*cc(Zu),Ku=hu*B,tf=oc(vu,e),nf=gu*H+du*p+2*cc(Ku),ef=mu*T,of=oc(xu,c),rf=bu*Y+_u*d+2*cc(ef),cf=wu*k,sf=oc(Mu,o),uf=yu*L+Su*h+2*cc(cf),ff=Cu*P,lf=oc(Ou,r),af=Nu*W+Eu*v+2*cc(ff),pf=Ku+ef,hf=rc(tf,of),vf=nf+rf+cc(pf),df=cf+ff,gf=rc(sf,lf),mf=uf+af+cc(df),xf=pf+df,_f=rc(hf,gf),bf=vf+mf+cc(xf),wf=Lu+Xu,Mf=rc(Wu,Qu),Sf=Yu+Vu+cc(wf),yf=Uu+Zu,Cf=rc(Ru,Gu),Of=$u+Ju+cc(yf),Ef=xf+wf,Nf=rc(_f,Mf),If=bf+Sf+cc(Ef),Bf=Ef+yf,kf=rc(Nf,Cf),Pf=If+Of+cc(Bf),Tf=y*B,Af=ec(y,e),zf=K*p+cc(Tf),Df=y*P,qf=ec(y,r),Ff=K*v+cc(Df),jf=E*k,Hf=ec(E,o),Lf=et*h+cc(jf),Wf=E*T,Yf=ec(E,c),Xf=et*d+cc(Wf),Qf=Tf+jf,Vf=rc(Af,Hf),Uf=zf+Lf+cc(Qf),Rf=Df+Wf,$f=rc(qf,Yf),Zf=Ff+Xf+cc(Rf),Gf=Qf+A,Jf=rc(Vf,i),Kf=Uf+g+cc(Gf),tl=Rf+D,nl=rc($f,u),el=Zf+x+cc(tl),ol=ct*Gf,rl=oc(Ot,Jf),cl=pn*Kf+2*cc(ol),il=bt*tl,sl=oc(tn,nl),ul=mn*el+2*cc(il),fl=ut*z,ll=oc(kt,s),al=hn*m+2*cc(fl),pl=y*q,hl=ec(y,f),vl=K*_+cc(pl),dl=E*F,gl=ec(E,l),ml=et*b+cc(dl),xl=ol+il,_l=rc(rl,sl),bl=cl+ul+cc(xl),wl=xl+fl,Ml=rc(_l,ll),Sl=bl+al+cc(wl),yl=pl+dl,Cl=rc(hl,gl),Ol=vl+ml+cc(yl),El=wl+yl,Nl=rc(Ml,Cl),Il=Sl+Ol+cc(El),Bl=El+j;return{coeffs:[Un,Vo,wc,Ai,au,kf,rc(Nl,a)],errBound:[Rn,Uo,Mc,zi,pu,Pf,Il+w+cc(Bl)]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:o,vₓᵧᵧ:r,vᵧᵧᵧ:c,vₓₓ:i,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:v,vᵧᵧᵧ_:d,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:_,vᵧ_:b,v_:w}}=qr(t),{coeffs:[[M,S,y,[,C]],[O,E,N,[,I]]],errorBound:[[B,k,P],[T,A,z]]}=tr(n),D=e[1],q=o[1],F=r[1],j=c[1],H=i[1],L=s[1],W=u[1],Y=f[1],X=l[1],Q=a[1],V=wc(D),U=wc(q),R=wc(F),$=wc(j),Z=wc(H),G=wc(L),J=wc(W),K=wc(Y),tt=wc(X),nt=y[1],et=S[1],ot=M[1],rt=N[1],ct=E[1],it=O[1],st=wc(C),ut=wc(nt),ft=wc(et),lt=wc(ot),at=wc(I),pt=wc(rt),ht=wc(ct),vt=wc(it),dt=C*C,gt=C*nt,mt=C*et,xt=C*ot,_t=C*I,bt=C*rt,wt=C*ct,Mt=C*it,St=nt*nt,yt=nt*et,Ct=nt*ot,Ot=nt*I,Et=nt*rt,Nt=nt*ct,It=nt*it,Bt=et*rt,kt=et*et,Pt=et*ot,Tt=et*I,At=et*ct,zt=et*it,Dt=ot*ot,qt=ot*I,Ft=ot*rt,jt=ot*ct,Ht=ot*it,Lt=I*I,Wt=I*rt,Yt=I*ct,Xt=I*it,Qt=rt*rt,Vt=rt*ct,Ut=it*it,Rt=ct*ct,$t=ct*it,Zt=rt*it,Gt=gc(C,C),Jt=xc(C,y),Kt=st*P+wc(gt),tn=xc(C,S),nn=st*k+wc(mt),en=xc(C,M),on=st*B+wc(xt),rn=gc(C,I),cn=xc(C,N),sn=st*z+wc(bt),un=xc(C,E),fn=st*A+wc(wt),ln=xc(C,O),an=st*T+wc(Mt),pn=_c(y,y),hn=wc(St),vn=2*(P*ut+hn),dn=_c(y,S),gn=P*ft+ut*k+2*wc(yt),mn=_c(y,M),xn=P*lt+ut*B+2*wc(Ct),_n=xc(I,y),bn=at*P+wc(Ot),wn=_c(y,N),Mn=P*pt+ut*z+2*wc(Et),Sn=_c(y,E),yn=P*ht+ut*A+2*wc(Nt),Cn=_c(y,O),On=P*vt+ut*T+2*wc(It),En=_c(S,N),Nn=k*pt+ft*z+2*wc(Bt),In=_c(S,S),Bn=wc(kt),kn=2*(k*ft+Bn),Pn=_c(S,M),Tn=k*lt+ft*B+2*wc(Pt),An=xc(I,S),zn=at*k+wc(Tt),Dn=_c(S,E),qn=k*ht+ft*A+2*wc(At),Fn=_c(S,O),jn=k*vt+ft*T+2*wc(zt),Hn=_c(M,M),Ln=2*(B*lt+wc(Dt)),Wn=xc(I,M),Yn=at*B+wc(qt),Xn=_c(M,N),Qn=B*pt+lt*z+2*wc(Ft),Vn=_c(M,E),Un=wc(jt),Rn=B*ht+lt*A+2*Un,$n=_c(M,O),Zn=B*vt+lt*T+2*wc(Ht),Gn=gc(I,I),Jn=xc(I,N),Kn=at*z+wc(Wt),te=xc(I,E),ne=at*A+wc(Yt),ee=xc(I,O),oe=at*T+wc(Xt),re=_c(N,N),ce=wc(Qt),ie=2*(z*pt+ce),se=_c(N,E),ue=z*ht+pt*A+2*wc(Vt),fe=_c(O,O),le=2*(T*vt+wc(Ut)),ae=_c(E,E),pe=wc(Rt),he=2*(A*ht+pe),ve=_c(E,O),de=A*vt+ht*T+2*wc($t),ge=_c(N,O),me=wc(Zt),xe=z*vt+pt*T+2*me,_e=wc(dt),be=wc(gt),we=wc(Pt),Me=wc(Dt),Se=wc(Ht),ye=wc(_t),Ce=wc(Lt),Oe=wc(Wt),Ee=wc($t),Ne=wc(Ut),Ie=ot*Dt,Be=_c(M,Hn),ke=lt*Me,Pe=B*Me+lt*Ln+2*ke,Te=ot*Ut,Ae=_c(M,fe),ze=lt*Ne,De=B*Ne+lt*le+2*ze,qe=it*Dt,Fe=_c(O,Hn),je=vt*Me,He=T*Me+vt*Ln+2*je,Le=it*Ut,We=_c(O,fe),Ye=vt*Ne,Xe=T*Ne+vt*le+2*Ye,Qe=Ie*D,Ve=_c(Be,e),Ue=Pe*V+ke*p+2*wc(Qe),Re=Te*F,$e=_c(Ae,r),Ze=De*R+ze*v+2*wc(Re),Ge=qe*q,Je=_c(Fe,o),Ke=He*U+je*h+2*wc(Ge),to=Le*j,no=_c(We,c),eo=Xe*$+Ye*d+2*wc(to),oo=Qe+Re,ro=bc(Ve,$e),co=Ue+Ze+wc(oo),io=Ge+to,so=bc(Je,no),uo=Ke+eo+wc(io),fo=oo+io,lo=bc(ro,so),ao=co+uo+wc(fo),po=2*zt+jt,ho=wc(po),vo=bc(mc(Fn),Vn),go=2*jn+Rn+ho,mo=2*jt+zt,xo=wc(mo),_o=bc(mc(Vn),Fn),bo=2*Rn+jn+wc(mo),wo=ot*po,Mo=wc(wo),So=_c(M,vo),yo=B*ho+lt*go+2*Mo,Co=it*mo,Oo=wc(Co),Eo=_c(O,_o),No=T*xo+vt*bo+2*Oo,Io=et*Dt,Bo=wc(Io),ko=_c(S,Hn),Po=k*Me+ft*Ln+2*Bo,To=ct*Ut,Ao=wc(To),zo=_c(E,fe),Do=A*Ne+ht*le+2*Ao,qo=D*Io,Fo=_c(e,ko),jo=p*Bo+V*Po+2*wc(qo),Ho=j*To,Lo=_c(c,zo),Wo=d*Ao+$*Do+2*wc(Ho),Yo=q*wo,Xo=_c(o,So),Qo=h*Mo+U*yo+2*wc(Yo),Vo=F*Co,Uo=_c(r,Eo),Ro=v*Oo+R*No+2*wc(Vo),$o=Yo+Vo,Zo=bc(Xo,Uo),Go=Qo+Ro+wc($o),Jo=3*(qo+Ho),Ko=xc(3,bc(Fo,Lo)),nr=3*(jo+Wo)+2*wc(Jo),er=$o+Jo,or=bc(Zo,Ko),rr=Go+nr+wc(er),cr=nt*Ht,ir=_c(y,$n),sr=P*Se+ut*Zn+2*wc(cr),ur=rt*Dt,fr=_c(N,Hn),lr=z*Me+pt*Ln+2*wc(ur),ar=et*$t,pr=_c(S,ve),hr=k*Ee+ft*de+2*wc(ar),vr=nt*Ut,dr=_c(y,fe),gr=P*Ne+ut*le+2*wc(vr),mr=et*jt,xr=_c(S,Vn),_r=k*Un+ft*Rn+2*wc(mr),br=it*kt,wr=_c(O,In),Mr=T*Bn+vt*kn+2*wc(br),Sr=ot*Zt,yr=_c(M,ge),Cr=B*me+lt*xe+2*wc(Sr),Or=ct*jt,Er=_c(E,Vn),Nr=A*Un+ht*Rn+2*wc(Or),Ir=cr+mr,Br=bc(ir,xr),kr=sr+_r+wc(Ir),Pr=ur+br,Tr=bc(fr,wr),Ar=lr+Mr+wc(Pr),zr=ar+Sr,Dr=bc(pr,yr),Fr=hr+Cr+wc(zr),jr=vr+Or,Hr=bc(dr,Er),Lr=gr+Nr+wc(jr),Wr=Ct+kt,Yr=bc(mn,In),Xr=wc(Wr),Qr=xn+kn+Xr,Vr=Zt+Rt,Ur=wc(Vr),Rr=bc(ge,ae),$r=xe+he+Ur,Zr=2*Ir+Pr,Gr=bc(mc(Br),Tr),Jr=wc(Zr),Kr=2*kr+Ar+Jr,tc=2*zr+jr,nc=bc(mc(Dr),Hr),ec=wc(tc),oc=2*Fr+Lr+ec,rc=q*Zr,cc=_c(o,Gr),ic=h*Jr+U*Kr+2*wc(rc),sc=F*tc,uc=_c(r,nc),fc=v*ec+R*oc+2*wc(sc),lc=ot*Wr,ac=_c(M,Yr),pc=wc(lc),hc=B*Xr+lt*Qr+2*pc,vc=it*Vr,dc=_c(O,Rr),Mc=wc(vc),Sc=T*Ur+vt*$r+2*Mc,yc=D*lc,Cc=_c(e,ac),Oc=p*pc+V*hc+2*wc(yc),Ec=j*vc,Nc=_c(c,dc),Ic=d*Mc+$*Sc+2*wc(Ec),Bc=rc+sc,kc=bc(cc,uc),Pc=ic+fc+wc(Bc),Tc=3*(yc+Ec),Ac=xc(3,bc(Cc,Nc)),zc=3*(Oc+Ic)+2*wc(Tc),Dc=Bc+Tc,qc=bc(kc,Ac),Fc=Pc+zc+wc(Dc),jc=zt+jt,Hc=bc(Fn,Vn),Lc=wc(jc),Wc=jn+Rn+Lc,Yc=ct*kt,Xc=_c(E,In),Qc=A*Bn+ht*kn+2*wc(Yc),Vc=2*nt*jc,Uc=mc(_c(y,Hc)),Rc=2*(P*Lc+ut*Wc+wc(Vc)),$c=Yc+Vc,Zc=bc(Xc,Uc),Gc=Qc+Rc+wc($c),Jc=2*(Mt+Bt),Kc=mc(bc(ln,En)),ti=2*(an+Nn)+wc(Jc),ni=Jc+qt,ei=wc(ni),oi=bc(Kc,Wn),ri=ti+Yn+ei,ci=ot*ni,ii=_c(M,oi),si=B*ei+lt*ri+2*wc(ci),ui=$c+ci,fi=bc(Zc,ii),li=wc(ui),ai=Gc+si+li,pi=et*Rt,hi=_c(S,ae),vi=k*pe+ft*he+2*wc(pi),di=2*rt*jc,gi=mc(_c(N,Hc)),mi=2*(z*Lc+pt*Wc+wc(di)),xi=pi+di,_i=bc(hi,gi),bi=vi+mi+wc(xi),wi=2*(Nt+qt),Mi=mc(bc(Sn,Wn)),Si=2*(yn+Yn)+wc(wi),yi=wi+Mt,Ci=bc(Mi,ln),Oi=wc(yi),Ei=Si+an+Oi,Ni=it*yi,Ii=_c(O,Ci),Bi=T*Oi+vt*Ei+2*wc(Ni),ki=xi+Ni,Pi=bc(_i,Ii),Ti=wc(ki),Ai=bi+Bi+Ti,zi=et*kt,Di=_c(S,In),qi=k*Bn+ft*kn+2*wc(zi),Fi=2*yt+xt,ji=bc(mc(dn),en),Hi=wc(Fi),Li=2*gn+on+Hi,Wi=3*ot,Yi=xc(3,M),Xi=wc(Wi),Qi=3*B+Xi,Vi=Wi*Fi,Ui=_c(Yi,ji),Ri=Qi*Hi+Xi*Li+2*wc(Vi),$i=zi+Vi,Zi=bc(Di,Ui),Gi=wc($i),Ji=qi+Ri+Gi,Ki=ct*Rt,ts=_c(E,ae),ns=A*pe+ht*he+2*wc(Ki),es=2*Vt+Xt,os=bc(mc(se),ee),rs=wc(es),cs=2*ue+oe+rs,is=3*it,ss=xc(3,O),us=wc(is),fs=3*T+us,ls=is*es,as=_c(ss,os),ps=fs*rs+us*cs+2*wc(ls),hs=Ki+ls,vs=bc(ts,as),ds=wc(hs),gs=ns+ps+ds,ms=q*ui,xs=_c(o,fi),_s=h*li+U*ai+2*wc(ms),bs=F*ki,ws=_c(r,Pi),Ms=v*Ti+R*Ai+2*wc(bs),Ss=ms+bs,ys=bc(xs,ws),Cs=_s+Ms+wc(Ss),Os=D*$i,Es=_c(e,Zi),Ns=p*Gi+V*Ji+2*wc(Os),Is=j*hs,Bs=_c(c,vs),ks=d*ds+$*gs+2*wc(Is),Ps=Os+Is,Ts=bc(Es,Bs),As=Ns+ks+wc(Ps),zs=H*Dt,Ds=_c(Hn,i),qs=Ln*Z+Me*g+2*wc(zs),Fs=W*Ut,js=_c(fe,u),Hs=le*J+Ne*x+2*wc(Fs),Ls=zs+Fs,Ws=bc(Ds,js),Ys=qs+Hs+wc(Ls),Xs=L*Ht,Qs=_c($n,s),Vs=Zn*G+Se*m+2*wc(Xs),Us=Ss+Ps,Rs=bc(ys,Ts),$s=Cs+As+wc(Us),Zs=Ls+Xs,Gs=bc(Ws,Qs),Js=Ys+Vs+wc(Zs),Ks=Us+Zs,tu=bc(Rs,Gs),nu=$s+Js+wc(Ks),eu=At+Ft,ou=bc(Dn,Xn),ru=wc(eu),cu=qn+Qn+ru,iu=It+At,su=bc(Cn,Dn),uu=wc(iu),fu=On+qn+uu,lu=C*jc,au=xc(C,Hc),pu=st*Wc+wc(lu),hu=I*jc,vu=xc(I,Hc),du=at*Wc+wc(hu),gu=nt*eu,mu=_c(y,ou),xu=P*ru+ut*cu+2*wc(gu),_u=rt*iu,bu=_c(N,su),wu=z*uu+pt*fu+2*wc(_u),Mu=2*qt+Bt,Su=bc(mc(Wn),En),yu=wc(Mu),Cu=2*Yn+Nn+yu,Ou=2*Mt+Nt,Eu=bc(mc(ln),Sn),Nu=wc(Ou),Iu=2*an+yn+Nu,Bu=it*St,ku=_c(O,pn),Pu=T*hn+vt*vn+2*wc(Bu),Tu=ot*Qt,Au=_c(M,re),zu=B*ce+lt*ie+2*wc(Tu),Du=et*Mu,qu=_c(S,Su),Fu=k*yu+ft*Cu+2*wc(Du),ju=ct*Ou,Hu=_c(E,Eu),Lu=A*Nu+ht*Iu+2*wc(ju),Wu=2*(lu+gu),Yu=mc(bc(au,mu)),Xu=2*(pu+xu)+wc(Wu),Qu=2*(hu+_u),Vu=mc(bc(vu,bu)),Uu=2*(du+wu)+wc(Qu),Ru=2*C*Pt,$u=mc(xc(C,Pn)),Zu=2*st*Tn+wc(Ru),Gu=2*I*$t,Ju=mc(xc(I,ve)),Ku=2*at*de+wc(Gu),tf=nt*Wr,nf=_c(y,Yr),ef=P*Xr+ut*Qr+2*wc(tf),of=rt*Vr,rf=_c(N,Rr),cf=z*Ur+pt*$r+2*wc(of),sf=H*Pt,uf=_c(Pn,i),ff=Tn*Z+we*g+2*wc(sf),lf=W*$t,af=_c(ve,u),pf=de*J+Ee*x+2*wc(lf),hf=Wu+Bu,vf=bc(Yu,ku),df=wc(hf),gf=Xu+Pu+df,mf=Qu+Tu,xf=bc(Vu,Au),_f=wc(mf),bf=Uu+zu+_f,wf=hf+Du,Mf=bc(vf,qu),Sf=wc(wf),yf=gf+Fu+Sf,Cf=mf+ju,Of=bc(xf,Hu),Ef=wc(Cf),Nf=bf+Lu+Ef,If=Ru+tf,Bf=bc($u,nf),kf=wc(If),Pf=Zu+ef+kf,Tf=Gu+of,Af=bc(Ju,rf),zf=wc(Tf),Df=Ku+cf+zf,qf=2*(sf+lf),Ff=mc(bc(uf,af)),jf=2*(ff+pf)+wc(qf),Hf=q*wf,Lf=_c(o,Mf),Wf=h*Sf+U*yf+2*wc(Hf),Yf=F*Cf,Xf=_c(r,Of),Qf=v*Ef+R*Nf+2*wc(Yf),Vf=D*If,Uf=_c(e,Bf),Rf=p*kf+V*Pf+2*wc(Vf),$f=j*Tf,Zf=_c(c,Af),Gf=d*zf+$*Df+2*wc($f),Jf=Hf+Yf,Kf=bc(Lf,Xf),tl=Wf+Qf+wc(Jf),nl=3*(Vf+$f),el=xc(3,bc(Uf,Zf)),ol=3*(Rf+Gf)+2*wc(nl),rl=L*jc,cl=_c(s,Hc),il=m*Lc+G*Wc+2*wc(rl),sl=Jf+nl,ul=bc(Kf,el),fl=tl+ol+wc(sl),ll=rl+qf,al=bc(cl,Ff),pl=il+jf+wc(ll),hl=sl+ll,vl=bc(ul,al),dl=fl+pl+wc(hl),gl=It+eu,ml=bc(Cn,ou),xl=wc(gl),_l=On+cu+xl,bl=2*Ct+kt,wl=bc(mc(mn),In),Ml=wc(bl),Sl=2*xn+kn+Ml,yl=2*Zt+Rt,Cl=bc(mc(ge),ae),Ol=wc(yl),El=2*xe+he+Ol,Nl=2*C*gl,Il=xc(2*C,ml),Bl=2*st*_l+wc(Nl),kl=2*I*gl,Pl=xc(2*I,ml),Tl=2*at*_l+wc(kl),Al=Nt+2*Bt,zl=bc(Sn,mc(En)),Dl=wc(Al),ql=yn+2*Nn+Dl,Fl=Bt+2*Nt,jl=bc(En,mc(Sn)),Hl=wc(Fl),Ll=Nn+2*yn+Hl,Wl=I*bl,Yl=xc(I,wl),Xl=at*Sl+wc(Wl),Ql=C*yl,Vl=xc(C,Cl),Ul=st*El+wc(Ql),Rl=nt*Al,$l=_c(y,zl),Zl=P*Dl+ut*ql+2*wc(Rl),Gl=rt*Fl,Jl=_c(N,jl),Kl=z*Hl+pt*Ll+2*wc(Gl),ta=C*bl,na=xc(C,wl),ea=st*Sl+wc(ta),oa=I*yl,ra=xc(I,Cl),ca=at*El+wc(oa),ia=et*St,sa=_c(S,pn),ua=k*hn+ft*vn+2*wc(ia),fa=ct*Qt,la=_c(E,re),aa=A*ce+ht*ie+2*wc(fa),pa=Nl+Wl,ha=bc(Il,Yl),va=Bl+Xl+wc(pa),da=kl+Ql,ga=bc(Pl,Vl),ma=Tl+Ul+wc(da),xa=pa+Rl,_a=bc(ha,$l),ba=wc(xa),wa=va+Zl+ba,Ma=da+Gl,Sa=bc(ga,Jl),ya=wc(Ma),Ca=ma+Kl+ya,Oa=ta+ia,Ea=bc(na,sa),Na=wc(Oa),Ia=ea+ua+Na,Ba=oa+fa,ka=bc(ra,la),Pa=wc(Ba),Ta=ca+aa+Pa,Aa=q*xa,za=_c(o,_a),Da=h*ba+U*wa+2*wc(Aa),qa=F*Ma,Fa=_c(r,Sa),ja=v*ya+R*Ca+2*wc(qa),Ha=D*Oa,La=_c(e,Ea),Wa=p*Na+V*Ia+2*wc(Ha),Ya=j*Ba,Xa=_c(c,ka),Qa=d*Pa+$*Ta+2*wc(Ya),Va=Ha+Ya,Ua=wc(Va),Ra=bc(La,Xa),$a=Wa+Qa+Ua,Za=Aa+qa,Ga=bc(za,Fa),Ja=Da+ja+wc(Za),Ka=Za+3*Va,tp=bc(Ga,xc(3,Ra)),np=Ja+3*($a+Ua)+wc(Ka),ep=L*gl,op=_c(s,ml),rp=m*xl+G*_l+2*wc(ep),cp=H*bl,ip=_c(i,wl),sp=g*Ml+Z*Sl+2*wc(cp),up=ep+cp,fp=bc(op,ip),lp=rp+sp+wc(up),ap=W*yl,pp=_c(u,Cl),hp=x*Ol+J*El+2*wc(ap),vp=up+ap,dp=bc(fp,pp),gp=lp+hp+wc(vp),mp=Ka+vp,xp=bc(tp,dp),_p=np+gp+wc(mp),bp=Nt+Bt,wp=bc(Sn,En),Mp=yn+Nn+wc(bp),Sp=qt+Mt,yp=bc(Wn,ln),Cp=Yn+an+wc(Sp),Op=yt+xt,Ep=bc(dn,en),Np=gn+on+wc(Op),Ip=wc(Op),Bp=Vt+Xt,kp=bc(se,ee),Pp=ue+oe+wc(Bp),Tp=wc(Bp),Ap=2*bp+qt,zp=bc(mc(wp),Wn),Dp=2*Mp+Yn+wc(Ap),qp=2*bp+Mt,Fp=bc(mc(wp),ln),jp=2*Mp+an+wc(qp),Hp=2*Tt+Et,Lp=bc(mc(An),wn),Wp=wc(Hp),Yp=2*zn+Mn+Wp,Xp=2*wt+Et,Qp=bc(mc(un),wn),Vp=wc(Xp),Up=2*fn+Mn+Vp,Rp=Op+yt,$p=bc(Ep,dn),Zp=Np+gn+wc(Rp),Gp=Bp+Vt,Jp=bc(kp,se),Kp=Pp+ue+wc(Gp),th=3*C,nh=gc(3,C),eh=th*Rp,oh=_c(nh,$p),rh=wc(th)*Zp+2*wc(eh),ch=3*I,ih=gc(3,I),sh=ch*Gp,uh=_c(ih,Jp),fh=wc(ch)*Kp+2*wc(sh),lh=nt*St,ah=_c(y,pn),ph=P*hn+ut*vn+2*wc(lh),hh=rt*Qt,vh=_c(N,re),dh=z*ce+pt*ie+2*wc(hh),gh=H*Op,mh=_c(i,Ep),xh=g*Ip+Z*Np+2*wc(gh),_h=W*Bp,bh=_c(u,kp),wh=x*Tp+J*Pp+2*wc(_h),Mh=Ap+Sp,Sh=bc(zp,yp),yh=Dp+Cp+wc(Mh),Ch=qp+Sp,Oh=bc(Fp,yp),Eh=jp+Cp+wc(Ch),Nh=C*Mh,Ih=xc(C,Sh),Bh=st*yh+wc(Nh),kh=I*Ch,Ph=xc(I,Oh),Th=at*Eh+wc(kh),Ah=nt*Hp,zh=_c(y,Lp),Dh=P*Wp+ut*Yp+2*wc(Ah),qh=rt*Xp,Fh=_c(N,Qp),jh=z*Vp+pt*Up+2*wc(qh),Hh=ot*Y,Lh=_c(M,f),Wh=B*K+lt*_+2*wc(Hh),Yh=it*X,Xh=_c(O,l),Qh=T*tt+vt*b+2*wc(Yh),Vh=Nh+Ah,Uh=bc(Ih,zh),Rh=wc(Vh),$h=Bh+Dh+Rh,Zh=kh+qh,Gh=bc(Ph,Fh),Jh=wc(Zh),Kh=Th+jh+Jh,tv=eh+lh,nv=bc(oh,ah),ev=wc(tv),ov=rh+ph+ev,rv=sh+hh,cv=bc(uh,vh),iv=wc(rv),sv=fh+dh+iv,uv=Sp+bp,fv=bc(yp,wp),lv=wc(uv),av=Cp+Mp+lv,pv=2*(gh+_h),hv=mc(bc(mh,bh)),vv=2*(xh+wh)+wc(pv),dv=q*Vh,gv=_c(o,Uh),mv=h*Rh+U*$h+2*wc(dv),xv=F*Zh,_v=_c(r,Gh),bv=v*Jh+R*Kh+2*wc(xv),wv=D*tv,Mv=_c(e,nv),Sv=p*ev+V*ov+2*wc(wv),yv=j*rv,Cv=_c(c,cv),Ov=d*iv+$*sv+2*wc(yv),Ev=L*uv,Nv=_c(s,fv),Iv=m*lv+G*av+2*wc(Ev),Bv=dv+xv,kv=bc(gv,_v),Pv=mv+bv+wc(Bv),Tv=wv+yv,Av=bc(Mv,Cv),zv=Sv+Ov+wc(Tv),Dv=Ev+pv,qv=bc(Nv,hv),Fv=Iv+vv+wc(Dv),jv=Hh+Yh,Hv=bc(Lh,Xh),Lv=Wh+Qh+wc(jv),Wv=Bv+Tv,Yv=bc(kv,Av),Xv=Pv+zv+wc(Wv),Qv=Dv+jv,Vv=bc(qv,Hv),Uv=Fv+Lv+wc(Qv),Rv=Wv+Qv,$v=bc(Yv,Vv),Zv=Xv+Uv+wc(Rv),Gv=Et+Tt,Jv=bc(wn,An),Kv=Mn+zn+wc(Gv),td=Et+wt,nd=bc(wn,un),ed=Mn+fn+wc(td),od=2*Gv+wt,rd=bc(mc(Jv),un),cd=2*Kv+fn+wc(od),id=2*td+Tt,sd=bc(mc(nd),An),ud=2*ed+zn+wc(id),fd=C*od,ld=xc(C,rd),ad=st*cd+wc(fd),pd=I*St,hd=xc(I,pn),vd=at*vn+wc(pd),dd=I*id,gd=xc(I,sd),md=at*ud+wc(dd),xd=C*Qt,_d=xc(C,re),bd=st*ie+wc(xd),wd=C*St,Md=xc(C,pn),Sd=st*vn+wc(wd),yd=et*dt,Cd=_c(S,Gt),Od=k*_e+2*wc(yd),Ed=I*Qt,Nd=xc(I,re),Id=at*ie+wc(Ed),Bd=ct*Lt,kd=_c(E,Gn),Pd=A*Ce+2*wc(Bd),Td=fd+pd,Ad=bc(ld,hd),zd=wc(Td),Dd=ad+vd+zd,qd=dd+xd,Fd=bc(gd,_d),jd=wc(qd),Hd=md+bd+jd,Ld=wd+yd,Wd=bc(Md,Cd),Yd=wc(Ld),Xd=Sd+Od+Yd,Qd=Ed+Bd,Vd=bc(Nd,kd),Ud=wc(Qd),Rd=Id+Pd+Ud,$d=D*Ld,Zd=_c(e,Wd),Gd=p*Yd+V*Xd+2*wc($d),Jd=j*Qd,Kd=_c(c,Vd),tg=d*Ud+$*Rd+2*wc(Jd),ng=3*($d+Jd),eg=xc(3,bc(Zd,Kd)),og=3*(Gd+tg)+2*wc(ng),rg=Gv+wt,cg=bc(Jv,un),ig=wc(rg),sg=Kv+fn+ig,ug=2*mt+St,fg=bc(mc(tn),pn),lg=wc(ug),ag=2*nn+vn+lg,pg=2*Yt+Qt,hg=bc(mc(te),re),vg=wc(pg),dg=2*ne+ie+vg,gg=q*Td,mg=_c(o,Ad),xg=h*zd+U*Dd+2*wc(gg),_g=F*qd,bg=_c(r,Fd),wg=v*jd+R*Hd+2*wc(_g),Mg=L*rg,Sg=_c(s,cg),yg=m*ig+G*sg+2*wc(Mg),Cg=H*ug,Og=_c(i,fg),Eg=g*lg+Z*ag+2*wc(Cg),Ng=W*pg,Ig=_c(u,hg),Bg=x*vg+J*dg+2*wc(Ng),kg=et*Y,Pg=_c(S,f),Tg=k*K+ft*_+2*wc(kg),Ag=ct*X,zg=_c(E,l),Dg=A*tt+ht*b+2*wc(Ag),qg=kg+Ag,Fg=bc(Pg,zg),jg=Tg+Dg+wc(qg),Hg=gg+_g,Lg=bc(mg,bg),Wg=xg+wg+wc(Hg),Yg=ng+Mg,Xg=bc(eg,Sg),Qg=og+yg+wc(Yg),Vg=Cg+Ng,Ug=bc(Og,Ig),Rg=Eg+Bg+wc(Vg),$g=Hg+Yg,Zg=bc(Lg,Xg),Gg=Wg+Qg+wc($g),Jg=Vg+qg,Kg=bc(Ug,Fg),tm=Rg+jg+wc(Jg),nm=$g+Jg,em=bc(Zg,Kg),om=Gg+tm+wc(nm),rm=Ot+bt,cm=bc(_n,cn),im=wc(rm),sm=bn+sn+im,um=C*q,fm=xc(C,o),lm=wc(um),am=st*h+lm,pm=I*F,hm=xc(I,r),vm=wc(pm),dm=at*v+vm,gm=rm+Ot,mm=bc(cm,_n),xm=wc(gm),_m=sm+bn+xm,bm=rm+bt,wm=bc(cm,cn),Mm=wc(bm),Sm=sm+sn+Mm,ym=nt*dt,Cm=_c(y,Gt),Om=wc(ym),Em=P*_e+2*Om,Nm=ym*D,Im=_c(Cm,e),Bm=Em*V+Om*p+2*wc(Nm),km=rt*Lt,Pm=_c(N,Gn),Tm=wc(km),Am=z*Ce+2*Tm,zm=km*j,Dm=_c(Pm,c),qm=Am*$+Tm*d+2*wc(zm),Fm=L*rm,jm=_c(s,cm),Hm=m*im+G*sm+2*wc(Fm),Lm=gt*H,Wm=_c(Jt,i),Ym=Kt*Z+be*g+2*wc(Lm),Xm=Wt*W,Qm=_c(Jn,u),Vm=Kn*J+Oe*x+2*wc(Xm),Um=Lm+Xm,Rm=bc(Wm,Qm),$m=Ym+Vm+wc(Um),Zm=nt*Y,Gm=_c(y,f),Jm=P*K+ut*_+2*wc(Zm),Km=rt*X,tx=_c(N,l),nx=z*tt+pt*b+2*wc(Km),ex=Zm+Km,ox=bc(Gm,tx),rx=Jm+nx+wc(ex),cx=um*gm,ix=_c(fm,mm),sx=am*xm+lm*_m+2*wc(cx),ux=pm*bm,fx=_c(hm,wm),lx=dm*Mm+vm*Sm+2*wc(ux),ax=cx+ux,px=bc(ix,fx),hx=sx+lx+wc(ax),vx=3*(Nm+zm),dx=xc(3,bc(Im,Dm)),gx=3*(Bm+qm)+2*wc(vx),mx=Fm+2*Um,xx=bc(jm,mc(Rm)),_x=Hm+2*$m+wc(mx),bx=ax+vx,wx=bc(px,dx),Mx=hx+gx+wc(bx),Sx=mx+ex,yx=bc(xx,ox),Cx=_x+rx+wc(Sx),Ox=bx+Sx,Ex=bc(wx,yx),Nx=Mx+Cx+wc(Ox),Ix=C*D,Bx=xc(C,e),kx=st*p+wc(Ix),Px=I*q,Tx=xc(I,o),Ax=at*h+wc(Px),zx=Ix+Px,Dx=bc(Bx,Tx),qx=kx+Ax+wc(zx),Fx=C*F,jx=xc(C,r),Hx=st*v+wc(Fx),Lx=I*j,Wx=xc(I,c),Yx=at*d+wc(Lx),Xx=Fx+Lx,Qx=bc(jx,Wx),Vx=Hx+Yx+wc(Xx),Ux=zx+H,Rx=bc(Dx,i),$x=qx+g+wc(Ux),Zx=Xx+W,Gx=bc(Qx,u),Jx=Vx+x+wc(Zx),Kx=dt*Ux,t_=_c(Gt,Rx),n_=_e*$x+2*wc(Kx),e_=Lt*Zx,o_=_c(Gn,Gx),r_=Ce*Jx+2*wc(e_),c_=Kx+e_,i_=bc(t_,o_),s_=n_+r_+wc(c_),u_=_t*L,f_=_c(rn,s),l_=ye*m+2*wc(u_),a_=c_+u_,p_=bc(i_,f_),h_=s_+l_+wc(a_),v_=C*Y,d_=xc(C,f),g_=st*_+wc(v_),m_=I*X,x_=xc(I,l),__=at*b+wc(m_),b_=v_+m_,w_=bc(d_,x_),M_=g_+__+wc(b_),S_=a_+b_,y_=bc(p_,w_),C_=h_+M_+wc(S_),O_=S_+Q;return{coeffs:[lo,or,qc,tu,vl,xp,$v,em,Ex,bc(y_,a)],errBound:[ao,rr,Fc,nu,dl,_p,Zv,om,Nx,C_+w+wc(O_)]}}]],Vi=[[Dc,mi,Ti],[$c,Si,ji],[hi,Ii,function(t,n){const e=Ec(t);if(0===bt(e[0][0])&&0===bt(e[1][0]))return ji(ti(t),n);const[[o,r,c,[i]],[s,u,f,[l]]]=Ec(n);if(0===bt(o)&&0===bt(s))return Ii(t,ti(n));const{vₓₓₓ:a,vₓₓᵧ:p,vₓᵧᵧ:h,vᵧᵧᵧ:v,vₓₓ:d,vₓᵧ:g,vᵧᵧ:m,vₓ:x,vᵧ:_,v:b}=si(e),w=Hi(i,i),M=Li(i,c),S=Li(i,r),y=Li(i,o),C=Hi(i,l),O=Li(i,f),E=Li(i,u),N=Li(i,s),I=Wi(c,c),B=Wi(c,r),k=Wi(c,o),P=Li(l,c),T=Wi(c,f),A=Wi(c,u),z=Wi(c,s),D=Wi(r,f),q=Wi(r,r),F=Wi(r,o),j=Li(l,r),H=Wi(r,u),L=Wi(r,s),W=Wi(o,o),Y=Li(l,o),X=Wi(o,f),Q=Wi(o,u),V=Wi(o,s),U=Hi(l,l),R=Li(l,f),$=Li(l,u),Z=Li(l,s),G=Wi(f,f),J=Wi(f,u),K=Wi(s,s),tt=Wi(u,u),nt=Wi(u,s),et=Wi(f,s),ot=Wi(o,W),rt=Wi(o,K),ct=Wi(s,W),it=Wi(s,K),st=Wi(ot,a),ut=Wi(rt,h),ft=Wi(ct,p),lt=Wi(it,v),at=Yi(st,ut),pt=Yi(ft,lt),ht=Yi(at,pt),vt=Yi(Xi(L),Q),dt=Yi(Xi(Q),L),gt=Wi(o,vt),mt=Wi(s,dt),xt=Wi(r,W),_t=Wi(u,K),wt=Wi(a,xt),Mt=Wi(v,_t),St=Wi(p,gt),yt=Wi(h,mt),Ct=Yi(St,yt),Ot=Li(3,Yi(wt,Mt)),Et=Yi(Ct,Ot),Nt=Wi(c,V),It=Wi(f,W),Bt=Wi(r,nt),kt=Wi(c,K),Pt=Wi(r,Q),Tt=Wi(s,q),At=Wi(o,et),zt=Wi(u,Q),Dt=Yi(Nt,Pt),qt=Yi(It,Tt),Ft=Yi(Bt,At),jt=Yi(kt,zt),Ht=Yi(k,q),Lt=Yi(et,tt),Wt=Yi(Xi(Dt),qt),Yt=Yi(Xi(Ft),jt),Xt=Wi(p,Wt),Qt=Wi(h,Yt),Vt=Wi(o,Ht),Ut=Wi(s,Lt),Rt=Wi(a,Vt),$t=Wi(v,Ut),Zt=Yi(Xt,Qt),Gt=Li(3,Yi(Rt,$t)),Jt=Yi(Zt,Gt),Kt=Yi(L,Q),tn=Wi(u,q),nn=Xi(Wi(c,Kt)),en=Yi(tn,nn),on=Xi(Yi(N,D)),rn=Yi(on,Y),cn=Wi(o,rn),sn=Yi(en,cn),un=Wi(r,tt),fn=Xi(Wi(f,Kt)),ln=Yi(un,fn),an=Xi(Yi(A,Y)),pn=Yi(an,N),hn=Wi(s,pn),vn=Yi(ln,hn),dn=Wi(r,q),gn=Yi(Xi(B),y),mn=Wi(Li(3,o),gn),xn=Yi(dn,mn),_n=Wi(u,tt),bn=Yi(Xi(J),Z),wn=Wi(Li(3,s),bn),Mn=Yi(_n,wn),Sn=Wi(p,sn),yn=Wi(h,vn),Cn=Yi(Sn,yn),On=Wi(a,xn),Nn=Wi(v,Mn),In=Yi(On,Nn),Bn=Wi(W,d),kn=Wi(K,m),Pn=Yi(Bn,kn),Tn=Wi(V,g),An=Yi(Cn,In),zn=Yi(Pn,Tn),Dn=Yi(An,zn),qn=Yi(H,X),Fn=Yi(z,H),jn=Li(i,Kt),Hn=Li(l,Kt),Ln=Wi(c,qn),Wn=Wi(f,Fn),Yn=Yi(Xi(Y),D),Xn=Yi(Xi(N),A),Qn=Wi(s,I),Vn=Wi(o,G),Un=Wi(r,Yn),Rn=Wi(u,Xn),$n=Xi(Yi(jn,Ln)),Zn=Xi(Yi(Hn,Wn)),Gn=Xi(Li(i,F)),Jn=Xi(Li(l,nt)),Kn=Wi(c,Ht),te=Wi(f,Lt),ne=Wi(F,d),ee=Wi(nt,m),oe=Yi($n,Qn),re=Yi(Zn,Vn),ce=Yi(oe,Un),ie=Yi(re,Rn),se=Yi(Gn,Kn),ue=Yi(Jn,te),fe=Xi(Yi(ne,ee)),le=Wi(p,ce),ae=Wi(h,ie),pe=Wi(a,se),he=Wi(v,ue),ve=Yi(le,ae),de=Li(3,Yi(pe,he)),ge=Wi(g,Kt),me=Yi(ve,de),xe=Yi(ge,fe),_e=Yi(me,xe),be=Yi(z,qn),we=Yi(Xi(k),q),Me=Yi(Xi(et),tt),Se=Li(2*i,be),ye=Li(2*l,be),Ce=Yi(A,Xi(D)),Oe=Yi(D,Xi(A)),Ee=Li(l,we),Ne=Li(i,Me),Ie=Wi(c,Ce),Be=Wi(f,Oe),ke=Li(i,we),Pe=Li(l,Me),Te=Wi(r,I),Ae=Wi(u,G),ze=Yi(Se,Ee),De=Yi(ye,Ne),qe=Yi(ze,Ie),Fe=Yi(De,Be),je=Yi(ke,Te),He=Yi(Pe,Ae),Le=Wi(p,qe),We=Wi(h,Fe),Ye=Wi(a,je),Xe=Wi(v,He),Qe=Yi(Ye,Xe),Ve=Yi(Le,We),Ue=Yi(Ve,Li(3,Qe)),Re=Wi(g,be),$e=Wi(d,we),Ze=Yi(Re,$e),Ge=Wi(m,Me),Je=Yi(Ze,Ge),Ke=Yi(Ue,Je),to=Yi(A,D),no=Yi(Y,N),eo=Yi(B,y),oo=Yi(J,Z),ro=Yi(Xi(to),Y),co=Yi(Xi(to),N),io=Yi(Xi(j),T),so=Yi(Xi(E),T),uo=Yi(eo,B),fo=Yi(oo,J),lo=Wi(Hi(3,i),uo),ao=Wi(Hi(3,l),fo),po=Wi(c,I),ho=Wi(f,G),vo=Wi(d,eo),go=Wi(m,oo),mo=Yi(ro,no),xo=Yi(co,no),_o=Li(i,mo),bo=Li(l,xo),wo=Wi(c,io),Mo=Wi(f,so),So=Wi(o,x),yo=Wi(s,_),Co=Yi(_o,wo),Oo=Yi(bo,Mo),Eo=Yi(lo,po),No=Yi(ao,ho),Io=Yi(no,to),Bo=Xi(Yi(vo,go)),ko=Wi(p,Co),Po=Wi(h,Oo),To=Wi(a,Eo),Ao=Wi(v,No),zo=Wi(g,Io),Do=Yi(ko,Po),qo=Yi(To,Ao),Fo=Yi(zo,Bo),jo=Yi(So,yo),Ho=Yi(Do,qo),Lo=Yi(Fo,jo),Wo=Yi(Ho,Lo),Yo=Yi(T,j),Xo=Yi(T,E),Qo=Yi(Xi(Yo),E),Vo=Yi(Xi(Xo),j),Uo=Li(i,Qo),Ro=Li(l,I),$o=Li(l,Vo),Zo=Li(i,G),Go=Li(i,I),Jo=Wi(r,w),Ko=Li(l,G),tr=Wi(u,U),nr=Yi(Uo,Ro),er=Yi($o,Zo),or=Yi(Go,Jo),rr=Yi(Ko,tr),cr=Wi(a,or),ir=Wi(v,rr),sr=Li(3,Yi(cr,ir)),ur=Yi(Yo,E),fr=Yi(Xi(S),I),lr=Yi(Xi($),G),ar=Wi(p,nr),pr=Wi(h,er),hr=Wi(g,ur),vr=Wi(d,fr),dr=Wi(m,lr),gr=Wi(r,x),mr=Wi(u,_),xr=Yi(gr,mr),_r=Yi(ar,pr),br=Yi(sr,hr),wr=Yi(vr,dr),Mr=Yi(_r,br),Sr=Yi(wr,xr),yr=Yi(Mr,Sr),Cr=Yi(P,O),Or=Li(i,p),Er=Li(l,h),Nr=Yi(Cr,P),Ir=Yi(Cr,O),Br=Wi(c,w),kr=Wi(Br,a),Pr=Wi(f,U),Tr=Wi(Pr,v),Ar=Wi(g,Cr),zr=Wi(M,d),Dr=Wi(R,m),qr=Yi(zr,Dr),Fr=Wi(c,x),jr=Wi(f,_),Hr=Yi(Fr,jr),Lr=Wi(Or,Nr),Wr=Wi(Er,Ir),Yr=Yi(Lr,Wr),Xr=Li(3,Yi(kr,Tr)),Qr=Yi(Ar,Xi(qr)),Vr=Yi(Yr,Xr),Ur=Yi(Qr,Hr),Rr=Yi(Vr,Ur),$r=Li(i,a),Zr=Li(l,p),Gr=Yi($r,Zr),Jr=Li(i,h),Kr=Li(l,v),tc=Yi(Jr,Kr),nc=Yi(Gr,d),ec=Yi(tc,m),oc=Wi(w,nc),rc=Wi(U,ec),cc=Yi(oc,rc),ic=Wi(C,g),sc=Yi(cc,ic),uc=Li(i,x),fc=Li(l,_),lc=Yi(uc,fc),ac=Yi(sc,lc);return[ht,Et,Jt,Dn,_e,Ke,Wo,yr,Rr,Yi(ac,b)].map(En)}]];function Ui(t,n){const{coeffs:e,errBound:o}=Qi[t.length-2][n.length-2](t,n);return{coeffs:e,errBound:o,getPExact:()=>Vi[t.length-2][n.length-2](t,n)}}const{abs:Ri}=Math;function $i(t,n){if(0===n[0]&&0===n[1])return[0,0];if(0===n[0]&&1===n[1])return[0,0];const e=Ri(n[1]);if(4===t.length){const[[n,o],[r,c],[i,s],[u,f]]=t,l=Ri(n),a=Ri(o),p=Ri(r),h=Ri(c),v=Ri(i),d=Ri(s),g=l+(p+l)*e,m=p+(v+p)*e,x=g+(m+g)*e,_=a+(h+a)*e,b=h+(d+h)*e,w=_+(b+_)*e;return[x+(m+(v+(Ri(u)+v)*e+m)*e+x)*e,w+(b+(d+(Ri(f)+d)*e+b)*e+w)*e]}if(3===t.length){const[[n,o],[r,c],[i,s]]=t,u=Ri(n),f=Ri(o),l=Ri(r),a=Ri(c),p=u+(l+u)*e,h=f+(a+f)*e;return[p+(l+(Ri(i)+l)*e+p)*e,h+(a+(Ri(s)+a)*e+h)*e]}if(2===t.length){const[[n,o],[r,c]]=t,i=Ri(n),s=Ri(o);return[i+(Ri(r)+i)*e,s+(Ri(c)+s)*e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}const Zi=Number.EPSILON,Gi=Number.EPSILON/2,Ji=Gi*Gi,Ki=function(){const t=1*Gi;return t/(1-t)}(),ts=function(){const t=3*Ji;return t/(1-t)}(),{abs:ns}=Math,es=[[0,0],[0,0],[0,0],[0,0]];const{abs:os}=Math,rs=[[0,0],[0,0],[0,0]];const{abs:cs}=Math,is=[[0,0],[0,0]];const{min:ss,max:us}=Math;function fs(t,n){return n[0]!==n[1]?4===t.length?function(t,n){const{ps:e,_ps:o}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:es}:function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],v=i-n*(i-u),d=u-n*(u-l),g=v-n*(v-d),m=g-n*(g-(d-n*(d-(l-n*(l-p))))),x=s-n*(s-f),_=f-n*(f-a),b=x-n*(x-_),w=b-n*(b-(_-n*(_-(a-n*(a-h))))),M=ns(n),S=ns(i),y=ns(u),C=ns(l),O=ns(p),E=ns(s),N=ns(f),I=ns(a),B=S+M*(S+y),k=y+M*(y+C),P=B+M*(B+k),T=E+M*(E+N),A=N+M*(N+I),z=T+M*(T+A);return{ps:[[i,s],[v,x],[g,b],[m,w]],_ps:[[0,0],[B,T],[P,z],[P+M*(P+(k+M*(k+(C+M*(C+O))))),z+M*(z+(A+M*(A+(I+M*(I+ns(h))))))]]}}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],v=i-n*(i-u),d=u-n*(u-l),g=l-n*(l-p),m=v-n*(v-d),x=d-n*(d-g),_=m-n*(m-x),b=s-n*(s-f),w=f-n*(f-a),M=a-n*(a-h),S=b-n*(b-w),y=w-n*(w-M),C=S-n*(S-y),O=ns(n),E=ns(i),N=ns(u),I=ns(l),B=ns(p),k=ns(s),P=ns(f),T=ns(a),A=E+O*(E+N),z=N+O*(N+I),D=I+O*(I+B),q=A+O*(A+z),F=z+O*(z+D),j=k+O*(k+P),H=P+O*(P+T),L=T+O*(T+ns(h)),W=j+O*(j+H),Y=H+O*(H+L);return{ps:[[_,C],[x,y],[g,M],[p,h]],_ps:[[q+O*(q+F),W+O*(W+Y)],[F,Y],[D,L],[0,0]]}}(t,n):function(t,n,e){const o=t[0],r=t[1],c=t[2],i=t[3],s=o[0],u=o[1],f=r[0],l=r[1],a=c[0],p=c[1],h=i[0],v=i[1],d=n*n,g=n*d,m=e*e,x=e*m,_=n*e,b=s-f,w=a-f,M=b+w,S=n*b,y=e*b,C=h-s-3*w,O=u-l,E=p-l,N=O+E,I=n*O,B=e*O,k=v-u-3*E,P=g*C+(3*n*(n*M-b)+s),T=_*(n*C+2*M)+(d*M+s-(y+2*S)),A=_*(e*C+2*M)+(m*M+s-(2*y+S)),z=x*C+(3*e*(e*M-b)+s),D=g*k+(3*n*(n*N-O)+u),q=_*(n*k+2*N)+(d*N+u-(B+2*I)),F=_*(e*k+2*N)+(m*N+u-(2*B+I)),j=x*k+(3*e*(e*N-O)+u),H=ns(n),L=ns(e),W=ns(_),Y=ns(g),X=ns(x),Q=ns(s),V=ns(f),U=Q+V,R=ns(a)+V,$=U+R,Z=H*U,G=L*U,J=ns(h)+Q+3*R,K=ns(u),tt=ns(l),nt=K+tt,et=ns(p)+tt,ot=nt+et,rt=H*nt,ct=L*nt,it=ns(v)+K+3*et;return{ps:[[P,D],[T,q],[A,F],[z,j]],_ps:[[Y*J+(3*H*(H*$+U)+Q),Y*it+(3*H*(H*ot+nt)+K)],[W*(H*J+2*$)+(d*$+Q+(G+2*Z)),W*(H*it+2*ot)+(d*ot+K+(ct+2*rt))],[W*(L*J+2*$)+(m*$+Q+(2*G+Z)),W*(L*it+2*ot)+(m*ot+K+(2*ct+rt))],[X*J+(3*L*(L*$+U)+Q),X*it+(3*L*(L*ot+nt)+K)]]}}(t,n,e)}(t,n[0],n[1]),r=e[0][0],c=e[1][0],i=e[2][0],s=e[3][0],u=9*Gi*o[0][0],f=9*Gi*o[1][0],l=9*Gi*o[2][0],a=9*Gi*o[3][0],p=e[0][1],h=e[1][1],v=e[2][1],d=e[3][1],g=9*Gi*o[0][1],m=9*Gi*o[1][1],x=9*Gi*o[2][1],_=9*Gi*o[3][1],b=ss(r-u,c-f,i-l,s-a),w=us(r+u,c+f,i+l,s+a);return[[b,ss(p-g,h-m,v-x,d-_)],[w,us(p+g,h+m,v+x,d+_)]]}(t,n):3===t.length?function(t,n){const{ps:e,_ps:o}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:rs}:function(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=r[0],l=r[1],a=n*n,p=c-s,h=i-u,v=[[c,i],[-n*p+c,-n*h+i],[a*(p+(f-s))-(2*n*p-c),a*(h+(l-u))-(2*n*h-i)]],d=os(n),g=os(c),m=os(s),x=os(f),_=g+m,b=os(i),w=os(u),M=b+w;return{ps:v,_ps:[[0,0],[d*_+g,d*M+b],[a*(_+(x+m))+(2*d*_+g),a*(M+(os(l)+w))+(2*d*M+b)]]}}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=r[0],l=r[1],a=n*n,p=c-s,h=f-s,v=i-u,d=l-u,g=[[a*(p+h)-(2*n*p-c),a*(v+d)-(2*n*v-i)],[n*h+s,n*d+u],[f,l]],m=os(n),x=os(c),_=os(s),b=x+_,w=os(f)+_,M=os(i),S=os(u),y=M+S,C=os(l)+S;return{ps:g,_ps:[[a*(b+w)+(2*m*b+x),a*(y+C)+(2*m*y+M)],[m*w+_,m*C+S],[0,0]]}}(t,n):function(t,n,e){const o=t[0],r=t[1],c=t[2],i=o[0],s=o[1],u=r[0],f=r[1],l=c[0],a=c[1],p=n*n,h=e*e,v=n*e,d=i-u,g=d+(l-u),m=s-f,x=m+(a-f),_=p*g-(2*n*d-i),b=v*g-(d*(e+n)-i),w=h*g-(2*e*d-i),M=p*x-(2*n*m-s),S=v*x-(m*(e+n)-s),y=h*x-(2*e*m-s),C=os(n),O=os(e),E=os(v),N=os(i),I=os(u),B=N+I,k=B+os(l)+I,P=os(s),T=os(f),A=P+T,z=A+os(a)+T;return{ps:[[_,M],[b,S],[w,y]],_ps:[[p*k+(2*C*B+N),p*z+(2*C*A+P)],[E*k+(B*(O+C)+N),E*z+(A*(O+C)+P)],[h*k+(2*O*B+N),h*z+(2*O*A+P)]]}}(t,n,e)}(t,n[0],n[1]),r=e[0][0],c=e[1][0],i=e[2][0],s=5*Gi*o[0][0],u=5*Gi*o[1][0],f=5*Gi*o[2][0],l=e[0][1],a=e[1][1],p=e[2][1],h=5*Gi*o[0][1],v=5*Gi*o[1][1],d=5*Gi*o[2][1],g=ss(r-s,c-u,i-f),m=us(r+s,c+u,i+f);return[[g,ss(l-h,a-v,p-d)],[m,us(l+h,a+v,p+d)]]}(t,n):function(t,n){const{ps:e,_ps:o}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:is}:function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1],i=o[0],s=o[1],u=[[r,c],[n*(i-r)+r,n*(s-c)+c]],f=cs(n),l=cs(r),a=cs(i),p=cs(c);return{ps:u,_ps:[[0,0],[f*(a+l)+l,f*(cs(s)+p)+p]]}}(t,e):1===e?function(t,n){const e=t[0],o=t[1],r=e[0],c=e[1],i=o[0],s=o[1],u=[[n*(i-r)+r,n*(s-c)+c],[i,s]],f=cs(n),l=cs(r),a=cs(i),p=cs(c);return{ps:u,_ps:[[f*(a+l)+l,f*(cs(s)+p)+p],[0,0]]}}(t,n):function(t,n,e){const o=t[0],r=t[1],c=o[0],i=o[1],s=r[0],u=r[1],f=[[n*(s-c)+c,n*(u-i)+i],[e*(s-c)+c,e*(u-i)+i]],l=cs(n),a=cs(e),p=cs(c),h=cs(s),v=cs(i),d=cs(u);return{ps:f,_ps:[[l*(h+p)+p,l*(d+v)+v],[a*(h+p)+p,a*(d+v)+v]]}}(t,n,e)}(t,n[0],n[1]),r=e[0][0],c=e[1][0],i=3*Gi*o[0][0],s=3*Gi*o[1][0],u=e[0][1],f=e[1][1],l=3*Gi*o[0][1],a=3*Gi*o[1][1],p=ss(r-i,c-s),h=us(r+i,c+s);return[[p,ss(u-l,f-a)],[h,us(u+l,f+a)]]}(t,n):function(t,n){const e=t[0],o=t[t.length-1];if(0===n)return[e,e];if(1===n)return[o,o];const r=co(t,n);let c;if(4===t.length)c=$i(t,[0,n]).map(t=>9*Ki*t);else if(3===t.length)c=$i(t,[0,n]).map(t=>6*Ki*t);else if(2===t.length)c=$i(t,[0,n]).map(t=>3*Ki*t);else if(1===t.length)return[r,r];return[[r[0]-c[0],r[1]-c[1]],[r[0]+c[0],r[1]+c[1]]]}(t,n[0])}const ls=134217729;function as(t,n){const e=t[0],o=t[1],r=n[0],c=n[1],i=o/c,s=c*i,u=ls*c,f=u-(u-c),l=c-f,a=ls*i,p=a-(a-i),h=i-p,v=r*i,d=s+v,g=v-(d-s)+(l*h-(s-f*p-l*p-f*h)),m=d+g,x=(o-m+(e-(g-(m-d))))/c,_=i+x;return[x-(_-i),_]}const ps=Number.EPSILON/2,hs=ps*ps,vs=ps*ps*ps,{abs:ds}=Math,gs=[0,1],ms=Bo,xs=Po,_s=Pn,bs=Dn,ws=kn,Ms=pr,Ss=function(t,n,e,o){const r=t[0],c=t[1],i=n[0],s=n[1],u=as(t,n),f=Math.abs(r+c),l=Math.abs(i+s),a=l-ps*l-o;return a<=0?{est:u,err:Number.POSITIVE_INFINITY}:{est:u,err:(l*e+f*o)/a**2+(15*hs+56*vs)*Math.abs(f/l)}},ys=Vo,Cs=Uo;const Os=Yo,Es=Po,{min:Ns,max:Is}=Math;function Bs(t,n,e,o){const{ps:r}=t,c=Ui(n,r);if(void 0===c)return;const{coeffs:i,errBound:s,getPExact:u}=c,f=nt(u),l=ye(i,e[0],e[1],s,f);if(void 0===l||0===l.length)return;const a=l[0],p=function(t,n,e){const o=fs(t,[e.tS,e.tE]),r=n[0],c=n[n.length-1],i=c[0]-r[0],s=c[1]-r[1],[[u,f],[l,a]]=o,p=0===s,h=p?r[0]:r[1],v=p?i:s,d=((p?u:f)-h)/v,g=((p?l:a)-h)/v;let m=Ns(d,g)*(1-gn),x=Is(d,g)*(1+gn);return{multiplicity:1,t:(m+x)/2,tS:m,tE:x}}(r,n,a);return{xPs:{compensated:void 0,ri:a,getPExact:f,kind:1,p:void 0,curve:t},riSide:p,sideIdx:o,ps:r}}const ks=nt(function(t,n,e,o){const r=t.x.curve,c=t.x.ri.tS,i=e?t.next:t.prev,s=e?1:0,u=r===i.x.curve&&(e?c<i.x.ri.tS:c>i.x.ri.tS)?i.x.ri.tS:s;let f;for(let t=0;t<o.length;t++){const e=o[t],i=Bs(r,n[e],c<u?[c,u]:[u,c],e);void 0!==i&&(f=i)}return f});function Ps(t){const n=(t=En(t)).length;return 2===n?t:n<=1?[0,t[0]]:[t[n-2],t[n-1]]}const{abs:Ts,log2:As,ceil:zs}=Math;function Ds(t,n){const{tS:e,tE:o}=t,r=o-e;if(0===r)return[{tS:[0,e],tE:[0,e],multiplicity:t.multiplicity}];const c=2**zs(As(r)),i=function(t,n,e){return Hn(jn(t,e),n)}(n,c,e),s=i.map(Ps),u=s.map(t=>2*Ts(t[1])),f=ye(s,0,1,u,()=>i),l=[];for(const t of f)l.push({tS:yt(e,t.tS*c),tE:yt(e,t.tE*c),multiplicity:t.multiplicity});return l}function qs(t,n){let e;const{_x_:o,dir:r,idx:c,swapped:i}=t,{_x_:s,dir:u,idx:f,swapped:l}=n,a=Hs(o.container.bigBox),p=1===r!=!!i,h=1===u!=!!l,v=t.oSideIdxs??Wo(t,o,a,p),d=n.oSideIdxs??Wo(n,s,a,h);if(1===v.length&&1===d.length&&(t.oSideIdx=t.oSideIdx??v[0],n.oSideIdx=n.oSideIdx??d[0],e=v[0]-d[0],0!==e))return e;const g=t.oFSC??ks(o,a,p,v),m=n.oFSC??ks(s,a,h,d),{sideIdx:x,riSide:_}=g,{sideIdx:b,riSide:w}=m;if(e=x-b,0!==e)return t.oSideIdx=x,n.oSideIdx=b,e;if(e=function(t,n){return t.tS<=n.tE&&n.tS<=t.tE}(_,w)?0:_.tS<w.tS?-1:1,0!==e)return e;const M=t.oFSCE??js(g,a),S=n.oFSCE??js(m,a);return e=function(t,n){return Io(t.tS,n.tE)<=0&&Io(n.tS,t.tE)<=0}(M,S)?0:Io(M.tS,S.tS),0!==e?e:(e=r-u,0!==e?e:1===r?c-f:f-c)}const Fs=nt(Ds),js=nt(function(t,n){const{xPs:e,ps:o,sideIdx:r}=t,{ri:c,getPExact:i}=e,s=Fs(c,i())[0];return function(t,n,e){const o=function(t,n){return n[0][0]!==n[1][0]||n[0][1]!==n[1][1]?4===t.length?function([[t,n],[e,o],[r,c],[i,s]],[u,f]){const l=ms(f,u),a=3*Ji*ds(l[1]),p=ms(gs,u),h=3*Ji*ds(p[1]),v=Ss(l,p,a,h);f=xs(v.est,v.err);const d=ms(gs,u),g=bs(u,u),m=bs(u,d),x=bs(d,d),_=bs(g,u),b=bs(g,d),w=bs(x,u),M=bs(x,d),S=ms(gs,f),y=bs(f,f),C=bs(f,S),O=bs(S,S),E=bs(y,f),N=bs(y,S),I=bs(O,f),B=bs(O,S),k=ds(u[1]),P=ds(d[1]),T=ds(g[1]),A=ds(m[1]),z=ds(x[1]),D=ds(_[1]),q=ds(b[1]),F=ds(w[1]),j=ds(M[1]),H=ds(f[1]),L=ds(S[1]),W=ds(y[1]),Y=ds(C[1]),X=ds(O[1]),Q=ds(E[1]),V=ds(N[1]),U=ds(I[1]),R=ds(B[1]);let $=ds(t),Z=ds(n),G=ds(e),J=ds(o),K=ds(r),tt=ds(c),nt=ds(i),et=ds(s);const ot=_s(ws(i,u),ws(r,d)),rt=_s(_s(ws(i,g),ws(2*r,m)),ws(e,x)),ct=_s(_s(ws(i,_),ws(t,M)),ws(3,_s(ws(r,b),ws(e,w)))),it=_s(bs(rt,f),bs(ct,S)),st=_s(_s(bs(ot,y),bs(ct,O)),bs(Ms(rt),C)),ut=_s(_s(ws(i,E),bs(ct,B)),ws(3,_s(bs(ot,N),bs(rt,I)))),ft=nt*k+K*P,lt=nt*T+2*K*A+G*z;$=nt*D+$*j+3*(K*q+G*F),G=lt*H+$*L,K=ft*W+$*X+2*lt*Y,nt=nt*Q+$*R+3*(ft*V+lt*U),$*=11*ts,G*=15*ts,K*=20*ts,nt*=22*ts;const at=_s(ws(s,u),ws(c,d)),pt=_s(_s(ws(s,g),ws(2*c,m)),ws(o,x)),ht=_s(_s(ws(s,_),ws(n,M)),ws(3,_s(ws(c,b),ws(o,w)))),vt=_s(bs(pt,f),bs(ht,S)),dt=_s(_s(bs(at,y),bs(ht,O)),bs(Ms(pt),C)),gt=_s(_s(ws(s,E),bs(ht,B)),ws(3,_s(bs(at,N),bs(pt,I)))),mt=et*k+tt*P,xt=et*T+2*tt*A+J*z;Z=et*D+Z*j+3*(tt*q+J*F),J=xt*H+Z*L,tt=mt*W+Z*X+2*xt*Y,et=et*Q+Z*R+3*(mt*V+xt*U),Z*=11*ts,J*=15*ts,tt*=20*ts,et*=22*ts;const _t=ys(ys(xs(ct,-$),xs(it,-G)),ys(xs(st,-K),xs(ut,-nt))),bt=Cs(Cs(xs(ct,+$),xs(it,+G)),Cs(xs(st,+K),xs(ut,+nt)));return[[_t,ys(ys(xs(ht,-Z),xs(vt,-J)),ys(xs(dt,-tt),xs(gt,-et)))],[bt,Cs(Cs(xs(ht,+Z),xs(vt,+J)),Cs(xs(dt,+tt),xs(gt,+et)))]]}(t,n):3===t.length?function([[t,n],[e,o],[r,c]],[i,s]){const u=ms(s,i),f=3*Ji*ds(u[1]),l=ms(gs,i),a=3*Ji*ds(l[1]),p=Ss(u,l,f,a);s=xs(p.est,p.err);const h=ms(gs,i),v=bs(i,i),d=bs(i,h),g=bs(h,h),m=ms(gs,s),x=bs(s,s),_=bs(s,m),b=bs(m,m),w=ds(i[1]),M=ds(h[1]),S=ds(v[1]),y=ds(d[1]),C=ds(g[1]),O=ds(s[1]),E=ds(m[1]),N=ds(x[1]),I=ds(_[1]),B=ds(b[1]);let k=ds(t),P=ds(n),T=ds(e),A=ds(o),z=ds(r),D=ds(c);const q=_s(_s(ws(r,v),ws(2*e,d)),ws(t,g)),F=_s(ws(r,i),ws(e,h)),j=q,H=_s(bs(s,F),bs(m,q)),L=_s(_s(ws(r,x),bs(Ms(_),F)),bs(b,q)),W=z*S+2*T*y+k*C,Y=z*w+T*M;k=W,T=O*Y+E*W,z=N*z+2*I*Y+B*W,k*=7*ts,T*=11*ts,z*=14*ts;const X=_s(_s(ws(c,v),ws(2*o,d)),ws(n,g)),Q=_s(ws(c,i),ws(o,h)),V=X,U=_s(bs(s,Q),bs(m,X)),R=_s(_s(ws(c,x),bs(Ms(_),Q)),bs(b,X)),$=D*S+2*A*y+P*C,Z=D*w+A*M;P=$,A=O*Z+E*$,D=N*D+2*I*Z+B*$,P*=7*ts,A*=11*ts,D*=14*ts;const G=ys(ys(xs(j,-k),xs(H,-T)),xs(L,-z)),J=Cs(Cs(xs(j,+k),xs(H,+T)),xs(L,+z));return[[G,ys(ys(xs(V,-P),xs(U,-A)),xs(R,-D))],[J,Cs(Cs(xs(V,+P),xs(U,+A)),xs(R,+D))]]}(t,n):function([[t,n],[e,o]],[r,c]){const i=ms(c,r),s=3*Ji*ds(i[1]),u=ms(gs,r),f=3*Ji*ds(u[1]),l=Ss(i,u,s,f);c=xs(l.est,l.err);const a=ms(gs,r),p=ms(gs,c),h=ds(r[1]),v=ds(a[1]),d=ds(c[1]),g=ds(p[1]);let m=ds(t),x=ds(n),_=ds(e),b=ds(o);const w=_s(ws(e,r),ws(t,a)),M=_s(ws(e,c),bs(w,p));m=_*h+m*v,_=_*d+m*g,m*=3*ts,_*=7*ts;const S=_s(ws(o,r),ws(n,a)),y=_s(ws(o,c),bs(S,p));x=b*h+x*v,b=b*d+x*g,x*=3*ts,b*=7*ts;const C=ys(xs(w,-m),xs(M,-_)),O=Cs(xs(w,+m),xs(M,+_));return[[C,ys(xs(S,-x),xs(y,-b))],[O,Cs(xs(S,+x),xs(y,+b))]]}(t,n):function(t,n){const e=t[0],o=t[t.length-1];if(0===n[0]&&0===n[1]){const t=[0,e[0]],n=[0,e[1]];return[[t,n],[t,n]]}if(0===n[0]&&1===n[1]){const t=[0,o[0]],n=[0,o[1]];return[[t,n],[t,n]]}const r=Fo(t,n);let c;if(4===t.length)c=$i(t,n).map(t=>18*ts*t);else if(3===t.length)c=$i(t,n).map(t=>12*ts*t);else if(2===t.length)c=$i(t,n).map(t=>6*ts*t);else if(1===t.length)return[r,r];return[[xs(r[0],-c[0]),xs(r[1],-c[1])],[xs(r[0],+c[0]),xs(r[1],+c[1])]]}(t,n[0])}(t,[e.tS,e.tE]),r=n[0],c=n[n.length-1],i=c[0]-r[0],s=c[1]-r[1],[[u,f],[l,a]]=o,p=0===s,h=p?r[0]:r[1],v=p?i:s,d=p?l:a,g=Qo(Os(p?u:f,h),v),m=Qo(Os(d,h),v);return{tS:Os(Vo(g,m),6*xn),tE:Es(Uo(g,m),6*xn),multiplicity:1}}(o,n[r],s)}),Hs=nt(function(t){const[[n,e],[o,r]]=t;return[[[o,e],[n,e]],[[n,e],[n,r]],[[n,r],[o,r]],[[o,r],[o,e]]]});function Ls(t){for(let n of t)if(0===n.x.kind)return!0;return!1}const Ws=Eo(function(t){const{inOuts:n,xs:e}=t;(n.length>2||Ls(t.xs))&&n.sort(qs);let o=n[n.length-1];for(let t=0;t<n.length;t++){const e=n[t];e.prevAround=o,o.nextAround=e,o=e}}),{abs:Ys,min:Xs}=Math;function Qs(t,n,e){let o=2**(t+1);const[r,c]=e;let i=-o,s=-o,u=+o,f=+o;for(const[[t,e],[o,l]]of n){let n=0,a=0;r<t?(n=1,a=t):r>o&&(n=-1,a=o);let p=0,h=0;c<e?(p=1,h=e):c>l&&(p=-1,h=l);let v=!1,d=!1;if(0!==n&&0===p)v=!0;else if(0!==p&&0===n)d=!0;else if(0!==n&&0!==p){const t=Ys(a-r),n=Ys(h-c);v=t>=n,d=n>=t}v&&(n>0?a<u&&(u=a):a>i&&(i=a)),d&&(p>0?h<f&&(f=h):h>s&&(s=h))}const l=.5;return[[r+(i-r)*l,c+(s-c)*l],[r+(u-r)*l,c+(f-c)*l]]}const Vs=Eo(function(t,n){for(const e of t){const[[t,o],[r,c]]=e.box,i=[(t+r)/2,(o+c)/2],s=Qs(n,[...e.xs.map(t=>t.next.container.box),...e.xs.map(t=>t.prev.container.box)],i);e.bigBox=s}return t});function Us(t,n,e=t=>void 0!==t){const o=[];for(let r=0;r<t.length;r++){const c=t[r],i=[];for(let t=0;t<c.length;t++)e(n(c[t]))&&i.push(n(c[t]));o.push(i)}return o}const Rs=Eo(function(t,n,e){const o=Us(t,t=>({x:t}));let r=function(t,n){const e=2**n;return t.map(t=>{const{p:n}=t[0].x;return{xs:t,box:[[n[0]-e,n[1]-e],[n[0]+e,n[1]+e]]}})}(o,e);r=No(r),r=function(t,n){const e=2**(n-1),o=t=>ho(t/e)*e,r=t=>vo(t/e)*e;return t.map(t=>{const{xs:n,box:e}=t,[c,i]=e;return{xs:n,box:[c.map(o),i.map(r)]}})}(r,e),function(t){for(const n of t)for(const t of n.xs)t.container=n}(r),function(t){const n=[];for(const e of t)for(const t of e){const{idx:e}=t.x.curve.loop;(n[e]??=[]).push(t)}for(const t of n){if(void 0===t||0===t.length)continue;t.sort(po);const n=t.length;for(let e=0;e<n;e++){const o=t[e],{container:r}=o;let c=(e+1)%n;for(;c!==e&&t[c].container===r;)c=(c+1)%n;let i=(e-1+n)%n;for(;i!==e&&t[i].container===r;)i=(i-1+n)%n;let s=o;s.next=t[c],s.prev=t[i],t[(e-1+n)%n].container!==r&&(s.in_={dir:-1,_x_:o,loop:o.x.curve.loop.beziers}),t[(e+1)%n].container!==r&&(s.out={dir:1,_x_:o,loop:o.x.curve.loop.beziers})}}}(o);for(const t of r){const n=[];for(const e of t.xs)e.in_&&n.push(e.in_),e.out&&n.push(e.out);t.inOuts=n;for(const e of n)e.container=t}const c=Vs(r,n);return function(t){let n=0;for(const e of t)for(const t of e.inOuts)t.idx=++n}(c),function(t){for(const n of t)for(const t of n.inOuts)if(1===t.dir){const n=t;let{_x_:e}=n;e=e.next,n.twin=e.in_,n.idx=n.twin.idx}else{const n=t;let{_x_:e}=n;e=e.prev,n.twin=e.out,n.idx=n.twin.idx}}(c),c.forEach(Ws),c.forEach(t=>function(t){let n=t[t.length-1];for(let e=0;e<t.length;e++){const o=t[e];o.prevAround=n,n.nextAround=o,n=o}}(t.inOuts)),r});function $s(t,n,e){const o=(t[0]-e[0])*(n[1]-e[1]),r=(t[1]-e[1])*(n[0]-e[0]),c=o-r;let i;if(o>0){if(r<=0)return c;i=o+r}else{if(!(o<0))return c;if(r>=0)return c;i=-o-r}return Math.abs(c)>=3330669073875472e-31*i?c:function(t,n,e,o){const r=t[0]-e[0],c=n[0]-e[0],i=t[1]-e[1],s=n[1]-e[1],u=_t(Xn(r,s),Xn(i,c));let f=mt(u);if(Math.abs(f)>=2220446049250315e-31*o)return f;const l=at(t[0],e[0])[0],a=at(n[0],e[0])[0],p=at(t[1],e[1])[0],h=at(n[1],e[1])[0];if(0===l&&0===p&&0===a&&0===h)return f;const v=1109335647967049e-46*o+3330669073875471e-31*Math.abs(f);if(f+=r*h+s*l-(i*a+c*p),Math.abs(f)>=v)return f;const d=pt(u,_t(Xn(l,s),Xn(p,c))),g=pt(d,_t(Xn(r,h),Xn(i,a)));let m=pt(g,_t(Xn(l,h),Xn(p,a)));return m=En(m),m[m.length-1]}(t,n,e,i)}function Zs(t){if(4===t.length)return 0===$s(t[0],t[1],t[2])&&0===$s(t[1],t[2],t[3])&&0===$s(t[0],t[2],t[3]);if(3===t.length)return 0===$s(t[0],t[1],t[2]);if(t.length<=2)return!0;throw new Error("The given bezier curve must be of order <= 3.")}function Gs(t){if(!Zs(t))return!1;const n=t.map(t=>t[0]),e=t.map(t=>t[1]);return!(Js(n)&&Js(e))}function Js(t){return function(t){for(let n=1;n<t.length;n++)if(t[n-1]>t[n])return!1;return!0}(t)||function(t){for(let n=1;n<t.length;n++)if(t[n-1]<t[n])return!1;return!0}(t)}function Ks(t,n){const e=(2**(53-n)+1)*t;return e-(e-t)}const{floor:tu,log2:nu,abs:eu}=Math;function ou(t,n){const e=n[0]-t[0],o=n[1]-t[1];return e*e+o*o}function ru(t,n){const e=n/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[e*t[0],e*t[1]]}function cu(t){const n=t[0][0],e=t[0][1];for(let o=1;o<t.length;o++)if(n!==t[o][0]||e!==t[o][1])return!1;return!0}const iu=Xn,su=pt,{abs:uu}=Math;function fu(t){const[[n,e],[o,r],[c,i],[s,u]]=t,f=s+3*o,l=n+3*c,a=f-l,p=uu(3*o)+uu(f)+(uu(3*c)+uu(l))+uu(a);if(uu(a)-Gi*p>0)return!1;const h=u+3*r,v=e+3*i,d=h-v,g=uu(3*r)+uu(h)+(uu(3*i)+uu(v))+uu(d);return!(uu(d)-Gi*g>0)&&0===bt(_t(su([s],iu(3,o)),su([n],iu(3,c))))&&0===bt(_t(su([u],iu(3,r)),su([e],iu(3,i))))}function lu(t){for(let n=0;n<t.length-1;n++)for(let e=n+1;e<t.length;e++)if(t[n][0]===t[e][0]&&t[n][1]===t[e][1])return!1;return!0}const{abs:au}=Math;function pu(t,n,e){if(void 0!==t&&!cu(t)){if(2===t.length)return t;if(3===t.length){if(lu(t))return Zs(t)?[t[0],t[2]]:t;if(vu(t[0],t[2]))return;return[t[0],t[2]]}if(lu(t)){const o=hu(t);if(void 0===o)return;return function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e][0]!==n[e][0]||t[e][1]!==n[e][1])return!1;return!0}(o,t)?t:pu(o,n,e)}if(vu(t[0],t[3])){if(Zs(t))return;return t}if(Zs(t))return[t[0],t[3]];if(vu(t[0],t[1])&&vu(t[1],t[2])||vu(t[1],t[2])&&vu(t[2],t[3])||vu(t[0],t[1])&&vu(t[2],t[3]))return pu([t[0],t[t.length-1]],n,e);if(vu(t[0],t[2])||vu(t[1],t[3])||vu(t[1],t[2]))return t;if(vu(t[0],t[1])){if(ou(t[1],t[2])<4*n)return[t[0],t[2],t[2],t[3]];{const o=ru(et(t[1],t[2]),2*n),r=it(t[1],o);return hu([t[0],e(r),t[2],t[3]])}}if(vu(t[2],t[3])){if(ou(t[2],t[1])<4*n)return[t[0],t[1],t[1],t[3]];{const o=ru(et(t[2],t[1]),2*n),r=it(t[2],o);return hu([t[0],t[1],e(r),t[3]])}}}}function hu(t){return Zs(t)?[t[0],t[3]]:fu(t)?ti(t):t}function vu(t,n){return t[0]===n[0]&&t[1]===n[1]}function du(t){return t}function gu(t){const n=function(t){const n=t[0],e=t[t.length-1];let o,r;if(n[0]<e[0]?(o={ts:[0,0],box:[n,n]},r={ts:[1,1],box:[e,e]}):(o={ts:[1,1],box:[e,e]},r={ts:[0,0],box:[n,n]}),2===t.length)return{minX:o,maxX:r};const[c]=st(t),i=ye(c,0,1)||[];for(let n=0;n<i.length;n++){const e=i[n],c=[e.tS,e.tE],s=fs(t,c);s[0][0]<o.box[0][0]&&(o={ts:c,box:s}),s[1][0]>r.box[1][0]&&(r={ts:c,box:s})}return{minX:o,maxX:r}}(t),e=function(t){const n=t[0],e=t[t.length-1];let o,r;if(n[1]<e[1]?(o={ts:[0,0],box:[n,n]},r={ts:[1,1],box:[e,e]}):(o={ts:[1,1],box:[e,e]},r={ts:[0,0],box:[n,n]}),2===t.length)return{minY:o,maxY:r};const[,c]=st(t),i=ye(c,0,1)||[];for(let n=0;n<i.length;n++){const e=i[n],c=[e.tS,e.tE],s=fs(t,c);s[0][1]<o.box[0][1]&&(o={ts:c,box:s}),s[1][1]>r.box[1][1]&&(r={ts:c,box:s})}return{minY:o,maxY:r}}(t);return[[n.minX.box[0][0],e.minY.box[0][1]],[n.maxX.box[1][0],e.maxY.box[1][1]]]}function mu(t){let n=0;for(let e=0;e<t.length-1;e++)n+=on(t[e],t[e+1]);return n}const{sqrt:xu}=Math;function _u(t){const[n,e]=t[0],[o,c]=t[t.length-1];let i,s;const u=mu(t);if(256*ou(t[0],t[t.length-1])<u*u){const[o,r]=co(t,.5);i=o-n,s=r-e}else i=o-n,s=c-e;let f,l;const a=xu(i*i+s*s);0===a?(f=0,l=1):(f=s/a,l=i/a);const p=function(t,n,e){const o=it(t[0].map(t=>-t));return gu(t.map(t=>r(-n,e,o(t))))}(t,f,l),[[h,v],[d,g]]=p,m=[p[0],[d,v],p[1],[h,g]],x=r(f,l);return m.map(n=>it(t[0],x(n)))}function bu(t,n,e){const o=n[0]-t[0],r=n[1]-t[1];return o*(e[0]-n[0])+r*(e[1]-n[1])}const wu=function(t,n){if(0===t.length)return;const e=t.slice(),o=function(t){let n,e=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY];for(let o=0;o<t.length;o++){const r=t[o][1];(r<e[1]||r===e[1]&&t[o][0]<e[0])&&(n=o,e=t[o])}return n}(e),[r]=e.splice(o,1);e.sort((t,n)=>{let e=-$s(r,t,n);return 0!==e?e:(e=t[1]-n[1],0!==e?e:t[0]-n[0])}),e.unshift(r);const c=function(t){const n=[t[0]],e=t.length;for(let o=1;o<t.length;o++){const r=t[(o+e-1)%e],c=t[o];r[0]===c[0]&&r[1]===c[1]||n.push(c)}return n}(e),i=[];for(const t of c){for(;i.length>=2&&$s(i[i.length-2],i[i.length-1],t)<0;)i.pop();i.push(t)}if(n||i.length<3)return i;const s=[];{const t=i.length;for(let n=0;n<t;n++){const e=(n+1)%t,o=i[(n+t-1)%t],r=i[n],c=i[e];(0!==$s(o,r,c)||bu(o,r,c)<0)&&s.push(r)}}return s},Mu=nt(gu),Su=Eo(function(t,n){const e=t.slice().map(function(t,n,e=!0){const o=2**(t-n),r=e?function(t,n){const e=function(t,n){return function(e){const o=tu(nu(eu(e))),r=n-t+o+1;return r<=0?0:n>=53?e:Ks(e,r)}}(t,n);return function(t){const n=e(t[0]),o=e(t[1]);return n===t[0]&&o===t[1]?t:[n,o]}}(t,n):du;return t=>{const n=[];for(let e=0;e<t.length;e++){let c=t[e].slice();const i=n[n.length-1],s=i?i[i.length-1]:r(t[0][0]);c[0]=s,c=c.map(t=>r(t)),Gs(c)&&(c=[c[0],c[c.length-1]]),c=pu(c,o,r),void 0!==c&&n.push(c)}const e=n.length;if(!e)return[];const c=n[e-1];return c[c.length-1]=n[0][0],n}}(n,46)).filter(t=>t.length>0);return"undefined"!=typeof _debug_&&(_debug_.timing.normalize=performance.now()-_debug_.timing.timingStart),function(t){if("undefined"!=typeof _debug_)for(const n of t){_debug_.elems.loopPre.push(...t),_debug_.elems.loopsPre.push(t);for(const t of n){const n=Mu(t),e=_u(t),o=wu(t,!1);_debug_.elems.bezier_.push(t),_debug_.elems.looseBoundingBox_.push(n),_debug_.elems.tightBoundingBox_.push(e),_debug_.elems.boundingHull_.push(o)}}}(e),e}),{max:yu,abs:Cu}=Math;function Ou(t,n){return t[1]>n[1]||!(t[1]<n[1])&&t[0]>=n[0]}function Eu(t){const{ps:n,ts:e}=t;return R(n,e[0],e[1])}const{min:Nu,max:Iu}=Math,Bu=nt(function(t){const n=t.map(so);return{minX:Nu(...n.map(t=>t.box[0][0])),maxX:Iu(...n.map(t=>t.box[1][0])),minY:Nu(...n.map(t=>t.box[0][1])),maxY:Iu(...n.map(t=>t.box[1][1]))}});function ku(t,n){let e=0,o=t.length;for(;e<o;){const r=e+o>>>1;t[r]<n?e=r+1:o=r}return e}const Pu=nt(function(t){const n=new Set,e=new Array(t.length);for(let o=0;o<t.length;o++){const{ps:r}=t[o],[[,c],[,i]]=Mu(r);e[o]=[c,i],n.add(c),n.add(i)}const o=Array.from(n).sort((t,n)=>t-n),r=0===o.length?0:2*o.length-1,c=new Array(r);for(let t=0;t<r;t++)c[t]=[];for(let n=0;n<t.length;n++){const[r,i]=e[n],s=2*ku(o,r),u=2*ku(o,i);for(let e=s;e<=u;e++){const o=t[n];c[e].push(o)}}return{ys:o,slabs:c}}),{sign:Tu}=Math;function Au(t,n){const e=0===n?t:t.toReversed(),o=[e[0]?.[1],e[1]?.[1],e[2]?.[1],e[3]?.[1]];let r,c;return r=o[1],c=Tu(r),0!==c?c:(r=o[2],void 0===r?0:(c=Tu(r),0!==c?c:(r=o[3],void 0===r?0:Tu(r))))}function zu(t,n,e){return 0===e?0===n?function(t){return 4===t.length?function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[u-e+3*(r-i),3*(i+e-2*r),3*(r-e),e]}(t):3===t.length?function(t){const[[n,e],[o,r],[c,i]]=t;return[i+e-2*r,2*(r-e),e]}(t):function(t){const[[n,e],[o,r]]=t;return[r-e,e]}(t)}(t):1===n?function(t){const n=t[1][1];if(2===t.length)return[n];const e=t[2][1];return 3===t.length?[e-2*n,2*n]:[t[3][1]+3*(n-e),3*(e-2*n),3*n]}(t):2===n?function(t){if(2===t.length)return[];const n=t[2][1];return 3===t.length?[n]:[t[3][1]-3*n,3*n]}(t):function(t){return t.length<=3?[]:[t[3][1]]}(t):0===n?1===e?function(t){const n=t[0][1];if(2===t.length)return[-n];const e=t[1][1];return 3===t.length?[-2*e+n,-n]:[3*(e-t[2][1])-n,-3*e+2*n,-n]}(t):2===e?function(t){if(2===t.length)return[];const n=t[0][1];return 3===t.length?[n]:[3*t[1][1]-n,n]}(t):function(t){return t.length<=3?[]:[-t[0][1]]}(t):1===n&&1===e?function(t){if(2===t.length)return[];const n=t[1][1];return 3===t.length?[-2*n]:[3*(n-t[2][1]),-3*n]}(t):2===n&&1===e?function(t){return t.length<=3?[]:[-3*t[2][1]]}(t):1===n&&2===e?function(t){return t.length<=3?[]:[3*t[1][1]]}(t):[]}const Du=Eo(function(t,n,e){if(function(t,n){const e=Bu(t),o=Bu(n);return e.minX<o.minX||e.maxX>o.maxX||e.minY<o.minY||e.maxY>o.maxY}(n,ju(e)))return!1;for(const o of function*(){yield 0;for(let t=1;t<=30;t++){const n=2**t;for(let t=1;t<n;t+=2)yield t/n}}())for(const r of n){const n=qu(t,jo(r,o),e);if(void 0!==n)return n}throw new Error("_isLoopInLoop: no non-degenerate ray-start point found")});function qu(t,n,e){const o=Fu(t,e,n);if(void 0!==o)return o%2!=0}const Fu=Eo(function(t,n,e){const[o,r]=e,c=function(t,n){if(t.length<10){const e=[];for(let o=0;o<t.length;o++){const r=t[o],{ps:c}=r,[[,i],[,s]]=Mu(c);i<=n&&s>=n&&e.push(r)}return e}const e=Pu(t),{ys:o,slabs:r}=e;if(0===o.length||n<o[0]||n>o[o.length-1])return[];const c=ku(o,n);return r[o[c]===n?2*c:2*c-1]}(n,r);let i=0;for(let n=0;n<c.length;n++){const u=c[n],{ps:f,ts:l}=u;if(Mu(f)[0][0]>o)continue;const a=f.map(it([0,-r])),p=a.length;let h=0;for(;h<p-1&&0===a[h][1];)h++;let v=0;for(;v<p-1&&0===a[p-1-v][1];)v++;const d=zu(a,h,v),g=Math.min(l[0],l[1]),m=Math.max(l[0],l[1]);if(h>0&&g<=0){const t=Au(a,0)>0,n=e[0]>=a[0][0];t&&n&&i++}if(v>0&&m>=1){const t=Au(a,1)>0,n=e[0]>=a[a.length-1][0];t&&n&&i++}const x=ye(d,s(g-2*gn,0,1),s(m+2*gn,0,1));if(void 0!==x&&0!==x.length)for(const n of x){const{t:o,multiplicity:r}=n;if(0!==g&&Math.abs(o-g)<=4*gn||1!==m&&Math.abs(o-m)<=4*gn)return;const c=jo(a,o)[0],s=24*2**t*(4*gn),u=c-s,f=c+s,l=e[0]>u,p=l===e[0]>f;if(p)p&&l&&(i+=r%2);else{const t=Ds(n,d.map(t=>[t]));for(let n=0;n<t.length;n++){const{tS:o,tE:r,multiplicity:c}=t[n],s=Fo(a,Nr(Pn(o,r)))[0];Ou([0,e[0]],s)&&(i+=c%2)}}}}return i}),ju=nt(function(t){return t.map(Eu)});function Hu(t){const n=t._x_,e=t.twin._x_,o=n.x.curve,r=n.x.ri.t,c=e.x.curve,i=e.x.ri.t;let s=o,u=r;const f=[];for(;;){if(s===c&&(u<i||u===i&&0!==f.length)){const t=s.ps,n=[u,i];return f.push({ps:t,ts:n}),f}{const t=s.ps,n=[u,1];f.push({ps:t,ts:n})}u=0,s=s.next}}const Lu=nt(function(t){const n=[];for(const e of t.path)if(e.swapped){const t=Hu(e.twin);for(let e=t.length-1;e>=0;e--){const{ps:o,ts:r}=t[e];n.push({ps:o,ts:[r[1],r[0]]})}}else n.push(...Hu(e));return n});function Wu(t,n,e){let o=n;const r=Array.from(n.children);for(;r.length;)c(r.pop());return o;function c(n){const c=Lu(n);if(Du(t,e,c)){o=n;for(const t of n.children)r.push(t)}}}const Yu=Eo(function(t,n,e){const o=[],r=[];let c=e;const i=function(t,n,e){const o=function(t,n){return function(e,o,r){if(t.has(e))return;const c=e;void 0===c.orientation&&(c.orientation=o,c.parent=r,c.windingNum=r.windingNum+c.orientation,n.push(c))}}(e,n);return function(n){let e,r=n.twin,c=1,i=r;for(;i=1===t.orientation?i.nextAround:i.prevAround,i!==r;){if(c-=i.dir,-1===i.dir)continue;const n=i;e?0===c?o(n,t.orientation,t.parent):-1===c&&o(n,-t.orientation,t.parent):0===c?e=n:1===c&&o(n,t.orientation,t)}return e}}(e,o,t);do{t.add(c),n.add(c.container),r.push(c),c=i(c)}while(c!==e);return e.path=r,o});function Xu(t,n,e){const o=[t];for(;o.length;){const t=o.pop();if(n.has(t))continue;t.children=new Set;const r=Yu(n,e,t);t.parent.children=t.parent.children||new Set,t.parent.children.add(t),o.push(...r)}}const Qu=Eo(function(t,n){const e={dir:void 0,idx:0,parent:void 0,children:new Set,windingNum:0,_x_:void 0,orientation:0,twin:void 0,path:void 0,nextAround:void 0,prevAround:void 0,loop:void 0,container:void 0},o=new Set,r=new Set;for(let c=0;c<n.length;c++){const i=n[c];if(r.has(i)||0===i.inOuts.length)continue;const{inOuts:s}=i,u=s[0],f=s[s.length-1],l=1===u.dir?u:f,a=Wu(t,e,l.loop);l.parent=a,l.orientation=f.dir,l.windingNum=a.windingNum+f.dir,l.children=new Set,Xu(l,o,r)}return e});function Vu(t){return{t,tS:t,tE:t,multiplicity:1}}function Uu(t){return(t.tS+t.tE)/2}function Ru(t,n){return bt(_t(t,n))}const $u=Pn,Zu=gt,Gu=pt,Ju=Dn,{abs:Ku}=Math;const{abs:tf}=Math;const{abs:nf}=Math,ef=Dn,of=Pn,rf=gt,cf=pt,{abs:sf}=Math;function uf(t,n){const[e,o]=n,r=e.length,c=o.length,i=e[r-1],s=o[c-1],u=1===r&&1===c;{const{vₓₓ:n,vₓᵧ:e,vᵧᵧ:o,vₓ:r,vᵧ:c,v:f}=function(t){const[[n,e,o],[r,c,i]]=function(t){const[[n,e],[o,r],[c,i]]=t;return[[c+n-2*o,2*(o-n),n],[i+e-2*r,2*(r-e),e]]}(t),s=n*c-e*r,u=n*i-o*r;return{vₓₓ:-r*r,vₓᵧ:2*n*r,vᵧᵧ:-n*n,vₓ:c*s-2*r*u,vᵧ:2*n*u-e*s,v:s*(e*i-o*c)-u*u}}(t),{vₓₓ_:l,vₓᵧ_:a,vᵧᵧ_:p,vₓ_:h,vᵧ_:v,v_:d}=function(t){const[n,e]=t[0],[[o,r],[c,i]]=function(t){const[[n,e],[o,r],[c,i]]=t,s=tf(n),u=tf(o),f=tf(c),l=tf(e),a=tf(r);return[[f+s+2*u,2*(u+s),0],[tf(i)+l+2*a,2*(a+l),0]]}(t),s=nf(n),u=nf(e),f=o*i+r*c,l=o*u+s*c;return{vₓₓ_:c*c,vₓᵧ_:2*o*c,vᵧᵧ_:o*o,vₓ_:i*f+2*c*l,vᵧ_:2*o*l+r*f,v_:f*(r*u+s*i)+l*l}}(t),g=u?0:1,m=sf(i),x=sf(s);if((g+12)*Ki*(l*(m*m)+a*(m*x)+p*(x*x)+(h*m+v*x)+d)<sf(n*i*i+e*i*s+o*s*s+(r*i+c*s)+f))return!1}{const{coeffs:{vₓₓ:n,vₓᵧ:r,vᵧᵧ:c,vₓ:u,vᵧ:f,v:l},errorBound:{vₓₓ_:a,vₓᵧ_:p,vᵧᵧ_:h,vₓ_:v,vᵧ_:d,v_:g}}=_r(t),m=Ps(e),x=Ps(o),_=sf(i),b=sf(s),w=_/3,M=b/3,S=ef(m,m),y=S[1],C=2*(_*w+y),O=ef(x,x),E=O[1],N=2*(b*M+E),I=ef(m,x),B=sf(I[1]),k=_*M+w*b+2*B,P=ef(n,S),T=sf(n[1])*C+a*y+2*sf(P[1]),A=ef(r,I),z=sf(r[1])*k+p*B+2*sf(A[1]),D=ef(c,O),q=sf(c[1])*N+h*E+2*sf(D[1]),F=ef(m,u),j=sf(u[1])*w+v*_+2*sf(F[1]),H=ef(x,f),L=sf(f[1])*M+d*b+2*sf(H[1]),W=of(P,A),Y=T+z+sf(W[1]),X=of(W,D),Q=Y+q+sf(X[1]),V=of(F,H),U=j+L+sf(V[1]),R=of(X,V),$=Q+U+sf(R[1]),Z=of(R,l),G=$+g+sf(Z[1]);if(ts*G<sf(mt(Z)))return!1}{const n=function(t){return Yc(Nc(t))}(t);if(void 0===n)return 0===Ru(e,[t[0][0]])&&0===Ru(o,[t[0][1]]);n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓ:r,vₓᵧ:c,vᵧᵧ:i,vₓ:s,vᵧ:u,v:f}=n;return 0===bt(cf(cf(cf(rf(r,rf(e,e)),rf(c,rf(e,o))),rf(i,rf(o,o))),cf(cf(rf(e,s),rf(o,u)),f)))}}const{abs:ff}=Math,lf=Dn,af=Pn,pf=gt,hf=pt,{abs:vf}=Math;function df(t,n){const[e,o]=n,r=e.length,c=o.length,i=e[r-1],s=o[c-1],u=1===r&&1===c;{const{vₓₓₓ:n,vₓₓᵧ:e,vₓᵧᵧ:o,vᵧᵧᵧ:r,vₓₓ:c,vₓᵧ:f,vᵧᵧ:l,vₓ:a,vᵧ:p,v:h}=function(t){const[[n,e,o,r],[c,i,s,u]]=function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[s-n+3*(o-c),3*(c+n-2*o),3*(o-n),n],[u-e+3*(r-i),3*(i+e-2*r),3*(r-e),e]]}(t),f=n*s,l=o*c,a=n*i,p=e*c,h=n*n,v=c*c,d=n*u-r*c,g=f-l,m=a-p,x=e*u-r*i,_=e*s-o*i,b=o*u-r*s,w=2*g,M=d*d,S=d*_,y=w*x,C=m*x,O=-3*d-_,E=-3*M-2*S+(y+m*b),N=2*(d*g-C),I=d*m-g*g+m*_;return{vₓₓₓ:-c*v,vₓₓᵧ:3*n*v,vₓᵧᵧ:-3*c*h,vᵧᵧᵧ:n*h,vₓₓ:O*v+m*(s*c-i*i)+w*(i*c),vₓᵧ:2*(m*(e*i-(l+f)/2)-(O*(n*c)+g*(p+a))),vᵧᵧ:O*h+m*(o*n-e*e)+w*(e*n),vₓ:c*E+(i*N+s*I),vᵧ:-n*E-(e*N+o*I),v:d*(y-M-S)+(I*b-C*x)}}(t),{vₓₓₓ_:v,vₓₓᵧ_:d,vₓᵧᵧ_:g,vᵧᵧᵧ_:m,vₓₓ_:x,vₓᵧ_:_,vᵧᵧ_:b,vₓ_:w,vᵧ_:M,v_:S}=function(t){const[n,e]=t[0],[[o,r,c],[i,s,u]]=function(t){const[[n,e],[o,r],[c,i],[s,u]]=t,f=tf(n),l=tf(o),a=tf(c),p=tf(s),h=tf(e),v=tf(r),d=tf(i);return[[p+f+3*(l+a),3*(a+f+2*l),3*(l+f),0],[tf(u)+h+3*(v+d),3*(d+h+2*v),3*(v+h),0]]}(t),f=ff(n),l=ff(e),a=o*u,p=c*i,h=o*s,v=r*i,d=o*o,g=i*i,m=o*l+f*i,x=a+p,_=h+v,b=r*l+f*s,w=r*u+c*s,M=c*l+f*u,S=2*x,y=m*m,C=m*w,O=S*b,E=_*b,N=3*m+w,I=3*y+2*C+(O+_*M),B=2*(m*x+E),k=m*_+x*x+_*w;return{vₓₓₓ_:i*g,vₓₓᵧ_:3*o*g,vₓᵧᵧ_:3*i*d,vᵧᵧᵧ_:o*d,vₓₓ_:N*g+_*(u*i+s*s)+S*s*i,vₓᵧ_:2*(_*(r*s+(p+a)/2)+(N*o*i+x*(v+h))),vᵧᵧ_:N*d+_*(c*o+r*r)+S*r*o,vₓ_:i*I+(s*B+u*k),vᵧ_:o*I+(r*B+c*k),v_:m*(O+y+C)+(k*M+E*b)}}(t),y=i*i,C=s*s,O=n*(y*i)+e*(y*s)+(o*(i*C)+r*(C*s))+(c*y+f*(i*s)+l*C)+(a*i+p*s+h),E=u?0:1,N=vf(i),I=vf(s),B=N*N,k=I*I;if((E+26)*Ki*(v*(B*N)+d*(B*I)+(g*(N*k)+m*(k*I))+(x*B+_*(N*I)+b*k)+(w*N+M*I+S))<vf(O))return!1}{const{coeffs:{vₓₓₓ:n,vₓₓᵧ:r,vₓᵧᵧ:c,vᵧᵧᵧ:u,vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v},errorBound:{vₓₓₓ_:d,vₓₓᵧ_:g,vₓᵧᵧ_:m,vᵧᵧᵧ_:x,vₓₓ_:_,vₓᵧ_:b,vᵧᵧ_:w,vₓ_:M,vᵧ_:S,v_:y}}=qr(t),C=vf(n[1]),O=vf(r[1]),E=vf(c[1]),N=vf(u[1]),I=Ps(e),B=Ps(o),k=vf(i),P=vf(s),T=k/3,A=P/3,z=lf(I,I),D=z[1],q=2*(k*T+D),F=lf(I,z),j=vf(F[1]),H=k*q+T*D+2*j,L=lf(B,B),W=L[1],Y=2*(P*A+W),X=lf(B,L),Q=vf(X[1]),V=P*Y+A*W+2*Q,U=lf(B,z),R=vf(U[1]),$=P*q+A*D+2*R,Z=lf(I,L),G=vf(Z[1]),J=k*Y+T*W+2*G,K=lf(I,B),tt=vf(K[1]),nt=k*A+T*P+2*tt,et=lf(n,F),ot=C*H+d*j+2*vf(et[1]),rt=lf(r,U),ct=O*$+g*R+2*vf(rt[1]),it=lf(c,Z),st=E*J+m*G+2*vf(it[1]),ut=lf(u,X),ft=N*V+x*Q+2*vf(ut[1]),lt=lf(f,z),at=vf(f[1])*q+_*D+2*vf(lt[1]),pt=lf(l,K),ht=vf(l[1])*nt+b*tt+2*vf(pt[1]),vt=lf(a,L),dt=vf(a[1])*Y+w*W+2*vf(vt[1]),gt=lf(I,p),xt=vf(p[1])*T+M*k+2*vf(gt[1]),_t=lf(B,h),bt=vf(h[1])*A+S*P+2*vf(_t[1]),wt=af(et,rt),Mt=ot+ct+vf(wt[1]),St=af(it,ut),yt=st+ft+vf(St[1]),Ct=af(wt,St),Ot=Mt+yt+vf(Ct[1]),Et=af(lt,pt),Nt=at+ht+vf(Et[1]),It=af(Et,vt),Bt=Nt+dt+vf(It[1]),kt=af(Ct,It),Pt=Ot+Bt+vf(kt[1]),Tt=af(gt,_t),At=xt+bt+vf(Tt[1]),zt=af(Tt,v),Dt=At+y+vf(zt[1]),qt=af(kt,zt),Ft=Pt+Dt+vf(qt[1]);if(ts*Ft<vf(mt(qt)))return!1}{const n=function(t){return si(Ec(t))}(t);if(void 0===n)return 0===Ru(e,[t[0][0]])&&0===Ru(o,[t[0][1]]);n.hasOwnProperty("vₓₓₓ")||(n.vₓₓₓ=[0],n.vₓₓᵧ=[0],n.vₓᵧᵧ=[0],n.vᵧᵧᵧ=[0]),n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓₓ:r,vₓₓᵧ:c,vₓᵧᵧ:i,vᵧᵧᵧ:s,vₓₓ:u,vₓᵧ:f,vᵧᵧ:l,vₓ:a,vᵧ:p,v:h}=n,v=pf(e,e),d=pf(e,v),g=pf(o,o),m=pf(o,g),x=pf(o,v),_=pf(e,g),b=pf(e,o),w=pf(r,d),M=pf(c,x),S=pf(i,_),y=pf(s,m),C=pf(u,v),O=pf(f,b),E=pf(l,g),N=pf(e,a),I=pf(o,p),B=hf(w,M),k=hf(S,y),P=hf(B,k),T=hf(C,O),A=hf(T,E),z=hf(P,A),D=hf(N,I),q=hf(D,h);return 0===bt(hf(z,q))}}function gf(t,n){if(4===t.length)return df(t,n);if(3===t.length)return uf(t,n);if(2===t.length)return function(t,n){const[e,o]=n,r=e.length,c=o.length,i=e[r-1],s=o[c-1];{const{coeffs:{vₓ:n,vᵧ:r,v:c},errorBound:{v_:u}}=sr(t),f=Ps(e),l=Ps(o),a=Ku(i),p=Ku(s),h=Ku(n[1]),v=Ku(r[1]),d=a/3,g=p/3,m=n[1]*i,x=Ju(f,n),_=h*d+2*Ku(m),b=r[1]*s,w=Ju(l,r),M=v*g+2*Ku(b),S=$u(x,w),y=_+M+Ku(S[1]),C=$u(S,c),O=y+u+Ku(C[1]);if(ts*O<Ku(mt(C)))return!1}{const n=function(t){return Pc(Ic(t))}(t);if(void 0===n)return 0===Ru(e,[t[0][0]])&&0===Ru(o,[t[0][1]]);const{vₓ:r,vᵧ:c,v:i}=n,s=Zu(e,r),u=Zu(o,c);return 0===bt(Gu(Gu(s,u),i))}}(t,n);if(1===t.length){const e=En(n[0]),o=En(n[1]);return 1===e.length&&1===o.length&&e[0]===t[0][0]&&o[0]===t[0][1]}throw new Error("The given bezier curve must be of order <= 3")}function mf(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}const{abs:xf,max:_f}=Math,bf=8*Gi;function wf(t){return[4*t[0],4*t[1]]}const Mf=ko,Sf=Pn,yf=kn,Cf=Dn,Of=pr,Ef=wf,Nf=Bo;function If(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],[v,d]=n,g=Mf(i,v),m=Mf(u,v),x=Mf(l,v),_=Mf(p,v),b=Mf(s,d),w=Mf(f,d),M=Mf(a,d),S=Mf(h,d),y=Cf(g,g),C=yf(6,Cf(g,m)),O=yf(6,Cf(g,x)),E=Of(Cf(g,_)),N=yf(9,Cf(m,m)),I=yf(18,Cf(m,x)),B=yf(6,Cf(m,_)),k=yf(9,Cf(x,x)),P=yf(6,Cf(x,_)),T=Cf(_,_),A=Cf(b,b),z=yf(6,Cf(b,w)),D=yf(6,Cf(b,M)),q=Of(Cf(b,S)),F=yf(9,Cf(w,w)),j=yf(18,Cf(w,M)),H=yf(6,Cf(w,S)),L=yf(9,Cf(M,M)),W=yf(6,Cf(M,S)),Y=Cf(S,S),X=Sf(B,k),Q=Sf(E,I),V=Sf(O,N),U=Sf(H,L),R=Sf(q,j),$=Sf(D,F);return[yf(6,Sf(Sf(Sf(Sf(Nf(T,P),Nf(y,C)),X),Nf(V,Q)),Sf(Sf(Sf(Nf(Y,W),Nf(A,z)),U),Nf($,R)))),yf(5,Sf(Nf(Sf(Sf(P,yf(5,C)),yf(3,Q)),Of(Sf(Sf(X,Of(V)),yf(3,y)))),Nf(Sf(Sf(W,yf(5,z)),yf(3,R)),Of(Sf(Sf(U,Of($)),yf(3,A)))))),Ef(Sf(Nf(Nf(X,yf(3,Nf(Q,Of(V)))),yf(5,Nf(Of(C),yf(3,y)))),Nf(Nf(U,yf(3,Nf(R,Of($)))),yf(5,Nf(Of(z),yf(3,A)))))),yf(3,Sf(Nf(Q,Of(Nf(Of(V),yf(5,Nf(C,Of(y)))))),Nf(R,Of(Nf(Of($),yf(5,Nf(z,Of(A)))))))),Of(Sf(Nf(V,yf(5,Nf(C,yf(3,y)))),Nf($,yf(5,Nf(z,yf(3,A)))))),Sf(Nf(C,yf(6,y)),Nf(z,yf(6,A)))]}const Bf=ko,kf=Pn,Pf=kn,Tf=Dn,Af=pr,zf=Bo,Df=wf;function qf(t,n){const[[e,o],[r,c],[i,s]]=t,[u,f]=n,l=Bf(e,u),a=Bf(r,u),p=Bf(i,u),h=Bf(o,f),v=Bf(c,f),d=Bf(s,f),g=Tf(l,l),m=Tf(l,a),x=Tf(l,p),_=Tf(a,a),b=Tf(a,p),w=Tf(p,p),M=Tf(h,h),S=Tf(h,v),y=Tf(h,d),C=Tf(v,v),O=Tf(v,d),E=Tf(d,d),N=kf(y,Af(C)),I=kf(x,Af(_));return[kf(zf(kf(kf(E,M),Af(N)),Df(kf(O,S))),zf(kf(kf(w,g),Af(I)),Df(kf(b,m)))),Pf(3,kf(kf(zf(O,N),zf(Pf(3,S),M)),kf(zf(b,I),zf(Pf(3,m),g)))),kf(zf(N,Pf(3,zf(Af(S),M))),zf(I,Pf(3,zf(Af(m),g)))),kf(zf(S,M),zf(m,g))]}function Ff(t){return[-2*t[0],-2*t[1]]}const jf=wr,Hf=Pn,Lf=Ff;function Wf(t,n){const[[e,o],[r,c]]=t,[i,s]=n,u=e-i,f=r-i,l=o-s,a=c-s,p=jf(u,u),h=jf(u,f),v=jf(f,f),d=jf(l,l),g=jf(l,a),m=jf(a,a),x=Hf(h,g),_=Hf(d,p);return[Hf(Hf(v,m),Hf(_,Lf(x))),Bo(x,_)]}function Yf(t){const n=[];for(let e=0;e<t.length;e++)n.push(-2*t[e]);return n}const Xf=at,Qf=dt,Vf=qc,Uf=Yf,Rf=at,$f=dt,Zf=qc;function Gf(t){const n=[];for(let e=0;e<t.length;e++)n.push(4*t[e]);return n}const Jf=at,Kf=Yf,{abs:tl}=Math;function nl(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=tl(e[0]),s=tl(e[1]),u=tl(o[0]),f=tl(o[1]),l=tl(r[0]),a=tl(r[1]),p=tl(c[0]),h=tl(c[1]),v=tl(n[0]),d=tl(n[1]),g=i+v,m=u+v,x=l+v,_=p+v,b=s+d,w=f+d,M=a+d,S=h+d,y=g*g,C=6*g*m,O=6*x*_,E=b*b,N=6*b*w,I=6*M*S,B=6*m*_+9*x*x,k=2*g*_+18*m*x,P=6*g*x+9*m*m,T=6*w*S+9*M*M,A=2*b*S+18*w*M,z=6*b*M+9*w*w;return[6*(_*_+O+(y+C)+B+(P+k)+(S*S+I+(E+N)+T+(z+A))),5*(O+5*C+3*k+2*(B+2*P+3*y)+(I+5*N+3*A+2*(T+2*z+3*E))),4*(B+3*(k+2*P)+5*(2*C+3*y)+(T+3*(A+2*z)+5*(2*N+3*E))),3*(k+2*(2*P+5*(C+2*y))+(A+2*(2*z+5*(N+2*E)))),2*(P+5*(C+3*y)+(z+5*(N+3*E))),C+6*y+(N+6*E)]}function el(t,n){const e=t[0],o=t[1],r=t[2],c=tl(e[0]),i=tl(e[1]),s=tl(o[0]),u=tl(o[1]),f=tl(r[0]),l=tl(r[1]),a=tl(n[0]),p=tl(n[1]),h=c+a,v=s+a,d=f+a,g=i+p,m=u+p,x=l+p,_=h*h,b=h*v,w=v*d,M=g*g,S=g*m,y=m*x,C=g*x+m*m*2,O=h*d+v*v*2;return[x*x+M+2*C+4*(y+S)+(d*d+_+2*O+4*(w+b)),3*(y+C+(3*S+M)+(w+O+(3*b+_))),C+3*(2*S+M)+(O+3*(2*b+_)),S+M+(b+_)]}function ol(t,n){const e=t[0],o=t[1],r=tl(e[0]),c=tl(e[1]),i=tl(o[0]),s=tl(o[1]),u=tl(n[0]),f=tl(n[1]),l=r+u,a=i+u,p=c+f,h=s+f,v=l*a+p*h,d=p*p+l*l;return[a*a+h*h+2*v+d,v+d]}function rl(t,n){const e=t.length-1;if(3===e)return{polyDd:If(t,n),polyE:nl(t,n).map(t=>20*t),getPolyExact:()=>function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],[v,d]=n,g=Xf(i,v),m=Xf(u,v),x=Xf(l,v),_=Xf(p,v),b=Xf(s,d),w=Xf(f,d),M=Xf(a,d),S=Xf(h,d),y=gt(g,g),C=Qf(6,gt(g,m)),O=Qf(6,gt(g,x)),E=Vf(gt(g,_)),N=Qf(9,gt(m,m)),I=Qf(18,gt(m,x)),B=Qf(6,gt(m,_)),k=Qf(9,gt(x,x)),P=Qf(6,gt(x,_)),T=gt(_,_),A=gt(b,b),z=Qf(6,gt(b,w)),D=Qf(6,gt(b,M)),q=Vf(gt(b,S)),F=Qf(9,gt(w,w)),j=Qf(18,gt(w,M)),H=Qf(6,gt(w,S)),L=Qf(9,gt(M,M)),W=Qf(6,gt(M,S)),Y=gt(S,S),X=pt(B,k),Q=pt(E,I),V=pt(O,N),U=pt(H,L),R=pt(q,j),$=pt(D,F),Z=_t(pt(pt(T,y),pt(X,V)),pt(pt(Q,P),C)),G=_t(pt(pt(Y,A),pt(U,$)),pt(pt(R,W),z)),J=Qf(6,pt(Z,G)),K=pt(Uf(pt(pt(X,Vf(V)),Qf(3,y))),pt(pt(P,Qf(3,Q)),Qf(5,C))),tt=pt(Uf(pt(pt(U,Vf($)),Qf(3,A))),pt(pt(W,Qf(3,R)),Qf(5,z))),nt=Qf(5,pt(K,tt)),et=pt(pt(X,Qf(3,_t(Vf(V),Q))),Qf(5,_t(Qf(3,y),Vf(C)))),ot=pt(pt(U,Qf(3,_t(Vf($),R))),Qf(5,_t(Qf(3,A),Vf(z)))),rt=Qf(4,pt(et,ot)),ct=_t(Q,Vf(_t(Vf(V),Qf(5,_t(C,Vf(y)))))),it=_t(R,Vf(_t(Vf($),Qf(5,_t(z,Vf(A)))))),st=Qf(3,pt(ct,it)),ut=_t(V,Qf(5,_t(C,Qf(3,y)))),ft=_t($,Qf(5,_t(z,Qf(3,A))));return[J,nt,rt,st,Vf(pt(ut,ft)),pt(_t(C,Qf(6,y)),_t(z,Qf(6,A)))].map(En)}(t,n)};if(2===e)return{polyDd:qf(t,n),polyE:el(t,n).map(t=>16*t),getPolyExact:()=>function(t,n){const[[e,o],[r,c],[i,s]]=t,[u,f]=n,l=Rf(e,u),a=Rf(r,u),p=Rf(i,u),h=Rf(o,f),v=Rf(c,f),d=Rf(s,f),g=gt(l,l),m=gt(l,a),x=gt(l,p),_=gt(a,a),b=gt(a,p),w=gt(p,p),M=gt(h,h),S=gt(h,v),y=gt(h,d),C=gt(v,v),O=gt(v,d),E=gt(d,d),N=pt(y,Zf(C)),I=pt(x,Zf(_)),B=pt(_t(pt(w,Zf(I)),Gf(pt(b,m))),g),k=pt(_t(pt(E,Zf(N)),Gf(pt(O,S))),M),P=pt(B,k),T=pt(_t(b,I),_t($f(3,m),g)),A=pt(_t(O,N),_t($f(3,S),M));return[P,$f(3,pt(T,A)),pt(_t(N,$f(3,_t(Zf(S),M))),_t(I,$f(3,_t(Zf(m),g)))),pt(_t(S,M),_t(m,g))].map(En)}(t,n)};if(1===e)return{polyDd:Wf(t,n),polyE:ol(t,n).map(t=>12*t),getPolyExact:()=>function(t,n){const[[e,o],[r,c]]=t,[i,s]=n,u=Jf(e,i),f=Jf(r,i),l=Jf(o,s),a=Jf(c,s),p=gt(u,u),h=gt(u,f),v=gt(f,f),d=gt(l,l),g=gt(l,a),m=gt(a,a),x=pt(h,g),_=pt(d,p);return[pt(pt(v,m),pt(Kf(x),_)),_t(x,_)].map(En)}(t,n)};if(0===e)return{polyDd:[[0,1]],polyE:[0],getPolyExact:()=>[[1]]};throw new Error("The given bezier curve must be of order <= 3")}function cl(t,n,e=0,o=1){const{polyDd:r,polyE:c,getPolyExact:i}=rl(t,n),s=ye(r,e,o,c,i)||[];s.push({t:e,tS:e,tE:e,multiplicity:1}),s.push({t:o,tS:o,tE:o,multiplicity:1});const u=s.map(e=>{const o=fs(t,[e.tS,e.tE]),r=function(t,n){const[[e,o],[r,c]]=t,[i,s]=n,u=i<e?e-i:i>r?i-r:0,f=s<o?o-s:s>c?s-c:0,l=u*u+f*f,a=_f(xf(i-e),xf(r-i)),p=_f(xf(s-o),xf(c-s));return[l*(1-bf),(a*a+p*p)*(1+bf)]}(o,n),c=mf(o);return{p:c,t:e.t,d:on(n,c),dSquaredI:r,box:o,ri:e}});let f=1/0;for(let t=0;t<u.length;t++){const n=u[t].dSquaredI[1];n<f&&(f=n)}const l=[];for(let t=0;t<u.length;t++){const n=u[t];n.dSquaredI[0]<=f&&l.push(n)}return l}const il=new Float64Array(1),sl=new BigUint64Array(il.buffer);function ul(t){return t!=t||t===-1/0?t:0===t?-Number.MIN_VALUE:(il[0]=t,sl[0]+=t>0?-1n:1n,il[0])}const fl=new Float64Array(1),ll=new BigUint64Array(fl.buffer);function al(t){return t!=t||t===1/0?t:0===t?Number.MIN_VALUE:(fl[0]=t,ll[0]+=t>0?1n:-1n,fl[0])}const pl=Ro;function hl(t){const[[n],[e]]=er(t);return{coeffs:{vₓ:e,vᵧ:pl(n)},errorBound:{vₓ_:0,vᵧ_:0}}}const vl=Dn,dl=Pn,{abs:gl}=Math,ml=Dn,xl=Pn,{abs:_l}=Math,bl=Dn,wl=Pn,{abs:Ml}=Math,Sl=Dn,yl=Bo,Cl=kn,Ol=Ro,{abs:El}=Math;function Nl(t){const{coeffs:[[n,e],[o,r]],errorBound:[[c],[i]]}=nr(t),s=El(e[1]),u=El(r[1]),f=El(n[1]),l=El(o[1]),a=Sl(e,o),p=s*i+2*El(a[1]),h=Sl(n,r),v=c*u+2*El(h[1]),d=yl(a,h),g=p+v+El(d[1]),m=Sl(o,o),x=El(m[1]),_=l*i+i*(l+ts*i)+2*x,b=Sl(n,o),w=El(b[1]),M=f*i+c*(l+ts*i)+2*w,S=Cl(-2,b),y=2*M,C=Sl(n,n),O=El(C[1]),E=f*c+c*(f+ts*c)+2*O,N=Sl(r,d),I=u*g+2*El(N[1]),B=Sl(e,d),k=s*g+2*El(B[1]);return{coeffs:{vₓₓ:m,vₓᵧ:S,vᵧᵧ:C,vₓ:N,vᵧ:Ol(B)},errorBound:{vₓₓ_:_,vₓᵧ_:y,vᵧᵧ_:E,vₓ_:I,vᵧ_:k}}}const Il=Dn,Bl=Pn,{abs:kl}=Math,Pl=Dn,Tl=Pn,{abs:Al}=Math,zl=Dn,Dl=Pn,{abs:ql}=Math,Fl=Dn,jl=Pn,Hl=Bo,Ll=kn,Wl=pr,Yl=Ro,{abs:Xl}=Math;function Ql(t){const{coeffs:[[n,e,o],[r,c,i]],errorBound:[[s,u,f],[l,a,p]]}=tr(t),h=Xl(o[1]),v=Xl(i[1]),d=Xl(e[1]),g=Xl(c[1]),m=Xl(n[1]),x=Xl(r[1]),_=Fl(o,c),b=Xl(_[1]),w=h*a+f*(g+ts*a)+2*b,M=Fl(e,i),S=Xl(M[1]),y=d*p+u*(v+ts*p)+2*S,C=Fl(o,r),O=Xl(C[1]),E=h*l+f*(x+ts*l)+2*O,N=Fl(n,i),I=Xl(N[1]),B=m*p+s*(v+ts*p)+2*I,k=Fl(e,r),P=Xl(k[1]),T=d*l+u*(x+ts*l)+2*P,A=Fl(n,c),z=Xl(A[1]),D=m*a+s*(g+ts*a)+2*z,q=Hl(_,M),F=Xl(q[1]),j=w+y+F,H=Hl(C,N),L=Xl(H[1]),W=E+B+L,Y=Hl(k,A),X=Xl(Y[1]),Q=T+D+X,V=Fl(n,n),U=Xl(V[1]),R=m*s+s*(m+ts*s)+2*U,$=Fl(r,r),Z=Xl($[1]),G=x*l+l*(x+ts*l)+2*Z,J=Fl($,r),K=Xl(J[1]),tt=Z*l+G*(x+ts*l)+2*K,nt=Fl(n,$),et=Xl(nt[1]),ot=m*G+s*(Z+ts*G)+2*et,rt=Ll(-3,nt),ct=3*ot+Xl(rt[1]),it=Fl(V,r),st=Xl(it[1]),ut=U*l+R*(x+ts*l)+2*st,ft=Ll(3,it),lt=3*ut+Xl(ft[1]),at=Fl(V,n),pt=Xl(at[1]),ht=U*s+R*(m+ts*s)+2*pt,vt=Yl(at),dt=ht,gt=Fl(c,r),mt=Xl(gt[1]),xt=g*l+a*(x+ts*l)+2*mt,_t=Fl(gt,H),bt=Xl(_t[1]),wt=mt*W+xt*(L+ts*W)+2*bt,Mt=Fl(i,r),St=Xl(Mt[1]),yt=v*l+p*(x+ts*l)+2*St,Ct=Wl(Mt),Ot=2*yt,Et=Fl(c,c),Nt=Xl(Et[1]),It=g*a+a*(g+ts*a)+2*Nt,Bt=Hl(Ct,Et),kt=Xl(Bt[1]),Pt=Ot+It+kt,Tt=Fl(Bt,Y),At=Xl(Tt[1]),zt=kt*Q+Pt*(X+ts*Q)+2*At,Dt=jl(_t,Tt),qt=wt+zt+Xl(Dt[1]),Ft=jl(k,A),jt=Xl(Ft[1]),Ht=T+D+jt,Lt=Fl(Ft,H),Wt=Xl(Lt[1]),Yt=jt*W+Ht*(L+ts*W)+2*Wt,Xt=jl(C,N),Qt=E+B+Xl(Xt[1]),Vt=Fl(e,c),Ut=Xl(Vt[1]),Rt=d*a+u*(g+ts*a)+2*Ut,$t=Hl(Xt,Vt),Zt=Xl($t[1]),Gt=Qt+Rt+Zt,Jt=Fl($t,Y),Kt=Xl(Jt[1]),tn=Zt*Q+Gt*(X+ts*Q)+2*Kt,nn=Wl(Jt),en=2*tn,on=jl(Lt,nn),rn=Yt+en+Xl(on[1]),cn=Yl(on),sn=rn,un=Fl(e,n),fn=Xl(un[1]),ln=d*s+u*(m+ts*s)+2*fn,an=Fl(un,H),pn=Xl(an[1]),hn=fn*W+ln*(L+ts*W)+2*pn,vn=Fl(o,n),dn=Xl(vn[1]),gn=h*s+f*(m+ts*s)+2*dn,mn=Wl(vn),xn=2*gn,_n=Fl(e,e),bn=Xl(_n[1]),wn=d*u+u*(d+ts*u)+2*bn,Mn=Hl(mn,_n),Sn=Xl(Mn[1]),yn=xn+wn+Sn,Cn=Fl(Mn,Y),On=Xl(Cn[1]),En=Sn*Q+yn*(X+ts*Q)+2*On,Nn=jl(an,Cn),In=hn+En+Xl(Nn[1]),Bn=Fl(H,H),kn=Xl(Bn[1]),Pn=L*W+W*(L+ts*W)+2*kn,Tn=Fl(q,Y),An=Xl(Tn[1]),zn=F*Q+j*(X+ts*Q)+2*An,Dn=Hl(Bn,Tn),qn=Xl(Dn[1]),Fn=Pn+zn+qn,jn=Fl(i,Dn),Hn=Xl(jn[1]),Ln=v*Fn+p*(qn+ts*Fn)+2*Hn,Wn=Fl(o,Dn),Yn=Xl(Wn[1]),Xn=h*Fn+f*(qn+ts*Fn)+2*Yn;return{coeffs:{vₓₓₓ:J,vₓₓᵧ:rt,vₓᵧᵧ:ft,vᵧᵧᵧ:vt,vₓₓ:Dt,vₓᵧ:cn,vᵧᵧ:Nn,vₓ:jn,vᵧ:Yl(Wn)},errorBound:{vₓₓₓ_:tt,vₓₓᵧ_:ct,vₓᵧᵧ_:lt,vᵧᵧᵧ_:dt,vₓₓ_:qt,vₓᵧ_:sn,vᵧᵧ_:In,vₓ_:Ln,vᵧ_:Xn}}}const Vl=Dn,Ul=Pn,{abs:Rl}=Math,$l=Dn,Zl=Pn,{abs:Gl}=Math,Jl=Dn,Kl=Pn,{abs:ta}=Math;function na(t){const[[n],[e]]=Ic(t);return{vₓ:e,vᵧ:xt(n)}}const ea=gt,oa=pt,ra=gt,ca=pt,ia=gt,sa=pt,ua=gt,fa=_t,la=xt,aa=qc;function pa(t){const[[n,e],[o,r]]=Nc(t),c=fa(ua(e,o),ua(n,r));return{vₓₓ:ua(o,o),vₓᵧ:la(aa(ua(n,o))),vᵧᵧ:ua(n,n),vₓ:ua(r,c),vᵧ:la(ua(e,c))}}const ha=gt,va=pt,da=gt,ga=pt,ma=gt,xa=pt,_a=gt,ba=pt,wa=_t,Ma=xt,Sa=qc,ya=dt;function Ca(t){const[[n,e,o],[r,c,i]]=Ec(t),s=wa(_a(o,c),_a(e,i)),u=wa(_a(o,r),_a(n,i)),f=wa(_a(e,r),_a(n,c)),l=_a(n,n),a=_a(r,r),p=_a(a,r),h=ya(-3,_a(n,a)),v=ya(3,_a(l,r)),d=Ma(_a(l,n)),g=ba(_a(_a(c,r),u),_a(wa(Sa(_a(i,r)),_a(c,c)),f)),m=Ma(ba(_a(ba(_a(e,r),_a(n,c)),u),Sa(_a(wa(ba(_a(o,r),_a(n,i)),_a(e,c)),f)))),x=ba(_a(_a(e,n),u),_a(wa(Sa(_a(o,n)),_a(e,e)),f)),_=wa(_a(u,u),_a(s,f));return{vₓₓₓ:p,vₓₓᵧ:h,vₓᵧᵧ:v,vᵧᵧᵧ:d,vₓₓ:g,vₓᵧ:m,vᵧᵧ:x,vₓ:_a(i,_),vᵧ:Ma(_a(o,_))}}const Oa=gt,Ea=pt,Na=gt,Ia=pt,Ba=gt,ka=pt,Pa=[[function(t,n){const{coeffs:{vₓ:e,vᵧ:o}}=hl(t),[[r],[c]]=er(n),i=vl(e,r),s=2*gl(i[1]),u=vl(o,c),f=2*gl(u[1]),l=dl(i,u);return{coeffs:[l],errBound:[s+f+gl(l[1])]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o}}=hl(t),{coeffs:[[r,c],[i,s]],errorBound:[[u],[f]]}=nr(n),l=_l(e[1]),a=_l(o[1]),p=ml(e,c),h=2*_l(p[1]),v=ml(e,r),d=l*u+2*_l(v[1]),g=ml(o,s),m=2*_l(g[1]),x=ml(o,i),_=a*f+2*_l(x[1]),b=xl(p,g),w=h+m+_l(b[1]),M=xl(v,x);return{coeffs:[M,b],errBound:[d+_+_l(M[1]),w]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o}}=hl(t),{coeffs:[[r,c,i],[s,u,f]],errorBound:[[l,a,p],[h,v,d]]}=tr(n),g=Ml(e[1]),m=Ml(o[1]),x=bl(e,i),_=g*p+2*Ml(x[1]),b=bl(e,c),w=g*a+2*Ml(b[1]),M=bl(e,r),S=g*l+2*Ml(M[1]),y=bl(o,f),C=m*d+2*Ml(y[1]),O=bl(o,u),E=m*v+2*Ml(O[1]),N=bl(o,s),I=m*h+2*Ml(N[1]),B=wl(x,y),k=_+C+Ml(B[1]),P=wl(b,O),T=w+E+Ml(P[1]),A=wl(M,N);return{coeffs:[A,P,B],errBound:[S+I+Ml(A[1]),T,k]}}],[function(t,n){const{coeffs:{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i},errorBound:{vₓ_:s,vᵧ_:u,vₓₓ_:f,vₓᵧ_:l,vᵧᵧ_:a}}=Nl(t),[[p],[h]]=er(n),v=kl(r[1]),d=kl(c[1]),g=kl(i[1]),m=kl(p[1]),x=kl(h[1]),_=Il(e,p),b=s*m+2*kl(_[1]),w=Il(o,h),M=u*x+2*kl(w[1]),S=Bl(_,w),y=b+M+kl(S[1]),C=Il(p,p),O=kl(C[1]),E=2*O,N=Il(p,h),I=kl(N[1]),B=2*I,k=Il(h,h),P=kl(k[1]),T=2*P,A=Il(r,C),z=kl(A[1]),D=v*E+f*(O+ts*E)+2*z,q=Il(c,N),F=kl(q[1]),j=d*B+l*(I+ts*B)+2*F,H=Bl(A,q),L=D+j+kl(H[1]),W=Il(i,k),Y=kl(W[1]),X=g*T+a*(P+ts*T)+2*Y,Q=Bl(H,W);return{coeffs:[Q,S],errBound:[L+X+kl(Q[1]),y]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i},errorBound:{vₓ_:s,vᵧ_:u,vₓₓ_:f,vₓᵧ_:l,vᵧᵧ_:a}}=Nl(t),{coeffs:[[p,h],[v,d]],errorBound:[[g],[m]]}=nr(n),x=Al(e[1]),_=Al(o[1]),b=Al(r[1]),w=Al(c[1]),M=Al(i[1]),S=Al(h[1]),y=Al(p[1]),C=Al(d[1]),O=Al(v[1]),E=Pl(e,h),N=s*S+2*Al(E[1]),I=Pl(e,p),B=Al(I[1]),k=x*g+s*(y+ts*g)+2*B,P=Pl(o,d),T=u*C+2*Al(P[1]),A=Pl(o,v),z=Al(A[1]),D=_*m+u*(O+ts*m)+2*z,q=Tl(E,P),F=N+T+Al(q[1]),j=Tl(I,A),H=k+D+Al(j[1]),L=Pl(h,h),W=Al(L[1]),Y=2*W,X=Pl(h,p),Q=S*g+2*Al(X[1]),V=Pl(p,h),U=g*S+2*Al(V[1]),R=Tl(X,V),$=Al(R[1]),Z=Q+U+$,G=Pl(p,p),J=Al(G[1]),K=y*g+g*(y+ts*g)+2*J,tt=Pl(h,d),nt=Al(tt[1]),et=2*nt,ot=Pl(h,v),rt=S*m+2*Al(ot[1]),ct=Pl(p,d),it=g*C+2*Al(ct[1]),st=Tl(ot,ct),ut=Al(st[1]),ft=rt+it+ut,lt=Pl(p,v),at=Al(lt[1]),pt=y*m+g*(O+ts*m)+2*at,ht=Pl(d,d),vt=Al(ht[1]),dt=2*vt,gt=Pl(d,v),mt=C*m+2*Al(gt[1]),xt=Pl(v,d),_t=m*C+2*Al(xt[1]),bt=Tl(gt,xt),wt=Al(bt[1]),Mt=mt+_t+wt,St=Pl(v,v),yt=Al(St[1]),Ct=O*m+m*(O+ts*m)+2*yt,Ot=Pl(r,L),Et=Al(Ot[1]),Nt=b*Y+f*(W+ts*Y)+2*Et,It=Pl(r,R),Bt=Al(It[1]),kt=b*Z+f*($+ts*Z)+2*Bt,Pt=Pl(r,G),Tt=Al(Pt[1]),At=b*K+f*(J+ts*K)+2*Tt,zt=Pl(c,tt),Dt=Al(zt[1]),qt=w*et+l*(nt+ts*et)+2*Dt,Ft=Pl(c,st),jt=Al(Ft[1]),Ht=w*ft+l*(ut+ts*ft)+2*jt,Lt=Pl(c,lt),Wt=Al(Lt[1]),Yt=w*pt+l*(at+ts*pt)+2*Wt,Xt=Tl(Ot,zt),Qt=Nt+qt+Al(Xt[1]),Vt=Tl(It,Ft),Ut=kt+Ht+Al(Vt[1]),Rt=Tl(Pt,Lt),$t=At+Yt+Al(Rt[1]),Zt=Pl(i,ht),Gt=Al(Zt[1]),Jt=M*dt+a*(vt+ts*dt)+2*Gt,Kt=Pl(i,bt),tn=Al(Kt[1]),nn=M*Mt+a*(wt+ts*Mt)+2*tn,en=Pl(i,St),on=Al(en[1]),rn=M*Ct+a*(yt+ts*Ct)+2*on,cn=Tl(Xt,Zt),sn=Qt+Jt+Al(cn[1]),un=Tl(Vt,Kt),fn=Ut+nn+Al(un[1]),ln=Tl(Rt,en),an=$t+rn+Al(ln[1]),pn=Tl(j,cn);return{coeffs:[ln,un,pn,q],errBound:[an,fn,H+sn+Al(pn[1]),F]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i},errorBound:{vₓ_:s,vᵧ_:u,vₓₓ_:f,vₓᵧ_:l,vᵧᵧ_:a}}=Nl(t),{coeffs:[[p,h,v],[d,g,m]],errorBound:[[x,_,b],[w,M,S]]}=tr(n),y=ql(e[1]),C=ql(o[1]),O=ql(r[1]),E=ql(c[1]),N=ql(i[1]),I=ql(v[1]),B=ql(h[1]),k=ql(p[1]),P=ql(m[1]),T=ql(g[1]),A=ql(d[1]),z=zl(e,v),D=ql(z[1]),q=y*b+s*(I+ts*b)+2*D,F=zl(e,h),j=ql(F[1]),H=y*_+s*(B+ts*_)+2*j,L=zl(e,p),W=ql(L[1]),Y=y*x+s*(k+ts*x)+2*W,X=zl(o,m),Q=ql(X[1]),V=C*S+u*(P+ts*S)+2*Q,U=zl(o,g),R=ql(U[1]),$=C*M+u*(T+ts*M)+2*R,Z=zl(o,d),G=ql(Z[1]),J=C*w+u*(A+ts*w)+2*G,K=Dl(z,X),tt=q+V+ql(K[1]),nt=Dl(F,U),et=H+$+ql(nt[1]),ot=Dl(L,Z),rt=Y+J+ql(ot[1]),ct=zl(v,v),it=ql(ct[1]),st=I*b+b*(I+ts*b)+2*it,ut=zl(v,h),ft=ql(ut[1]),lt=I*_+b*(B+ts*_)+2*ft,at=zl(v,p),pt=ql(at[1]),ht=I*x+b*(k+ts*x)+2*pt,vt=zl(h,v),dt=ql(vt[1]),gt=B*b+_*(I+ts*b)+2*dt,mt=Dl(ut,vt),xt=ql(mt[1]),_t=lt+gt+xt,bt=zl(h,h),wt=ql(bt[1]),Mt=B*_+_*(B+ts*_)+2*wt,St=Dl(at,bt),yt=ht+Mt+ql(St[1]),Ct=zl(h,p),Ot=ql(Ct[1]),Et=B*x+_*(k+ts*x)+2*Ot,Nt=zl(p,v),It=ql(Nt[1]),Bt=k*b+x*(I+ts*b)+2*It,kt=Dl(St,Nt),Pt=ql(kt[1]),Tt=yt+Bt+Pt,At=zl(p,h),zt=ql(At[1]),Dt=k*_+x*(B+ts*_)+2*zt,qt=Dl(Ct,At),Ft=ql(qt[1]),jt=Et+Dt+Ft,Ht=zl(p,p),Lt=ql(Ht[1]),Wt=k*x+x*(k+ts*x)+2*Lt,Yt=zl(v,m),Xt=ql(Yt[1]),Qt=I*S+b*(P+ts*S)+2*Xt,Vt=zl(v,g),Ut=ql(Vt[1]),Rt=I*M+b*(T+ts*M)+2*Ut,$t=zl(v,d),Zt=ql($t[1]),Gt=I*w+b*(A+ts*w)+2*Zt,Jt=zl(h,m),Kt=ql(Jt[1]),tn=B*S+_*(P+ts*S)+2*Kt,nn=Dl(Vt,Jt),en=ql(nn[1]),on=Rt+tn+en,rn=zl(h,g),cn=ql(rn[1]),sn=B*M+_*(T+ts*M)+2*cn,un=Dl($t,rn),fn=Gt+sn+ql(un[1]),ln=zl(h,d),an=ql(ln[1]),pn=B*w+_*(A+ts*w)+2*an,hn=zl(p,m),vn=ql(hn[1]),dn=k*S+x*(P+ts*S)+2*vn,gn=Dl(un,hn),mn=ql(gn[1]),xn=fn+dn+mn,_n=zl(p,g),bn=ql(_n[1]),wn=k*M+x*(T+ts*M)+2*bn,Mn=Dl(ln,_n),Sn=ql(Mn[1]),yn=pn+wn+Sn,Cn=zl(p,d),On=ql(Cn[1]),En=k*w+x*(A+ts*w)+2*On,Nn=zl(m,m),In=ql(Nn[1]),Bn=P*S+S*(P+ts*S)+2*In,kn=zl(m,g),Pn=ql(kn[1]),Tn=P*M+S*(T+ts*M)+2*Pn,An=zl(m,d),zn=ql(An[1]),Dn=P*w+S*(A+ts*w)+2*zn,qn=zl(g,m),Fn=ql(qn[1]),jn=T*S+M*(P+ts*S)+2*Fn,Hn=Dl(kn,qn),Ln=ql(Hn[1]),Wn=Tn+jn+Ln,Yn=zl(g,g),Xn=ql(Yn[1]),Qn=T*M+M*(T+ts*M)+2*Xn,Vn=Dl(An,Yn),Un=Dn+Qn+ql(Vn[1]),Rn=zl(g,d),$n=ql(Rn[1]),Zn=T*w+M*(A+ts*w)+2*$n,Gn=zl(d,m),Jn=ql(Gn[1]),Kn=A*S+w*(P+ts*S)+2*Jn,te=Dl(Vn,Gn),ne=ql(te[1]),ee=Un+Kn+ne,oe=zl(d,g),re=ql(oe[1]),ce=A*M+w*(T+ts*M)+2*re,ie=Dl(Rn,oe),se=ql(ie[1]),ue=Zn+ce+se,fe=zl(d,d),le=ql(fe[1]),ae=A*w+w*(A+ts*w)+2*le,pe=zl(r,ct),he=ql(pe[1]),ve=O*st+f*(it+ts*st)+2*he,de=zl(r,mt),ge=ql(de[1]),me=O*_t+f*(xt+ts*_t)+2*ge,xe=zl(r,kt),_e=ql(xe[1]),be=O*Tt+f*(Pt+ts*Tt)+2*_e,we=zl(r,qt),Me=ql(we[1]),Se=O*jt+f*(Ft+ts*jt)+2*Me,ye=zl(r,Ht),Ce=ql(ye[1]),Oe=O*Wt+f*(Lt+ts*Wt)+2*Ce,Ee=zl(c,Yt),Ne=ql(Ee[1]),Ie=E*Qt+l*(Xt+ts*Qt)+2*Ne,Be=zl(c,nn),ke=ql(Be[1]),Pe=E*on+l*(en+ts*on)+2*ke,Te=zl(c,gn),Ae=ql(Te[1]),ze=E*xn+l*(mn+ts*xn)+2*Ae,De=zl(c,Mn),qe=ql(De[1]),Fe=E*yn+l*(Sn+ts*yn)+2*qe,je=zl(c,Cn),He=ql(je[1]),Le=E*En+l*(On+ts*En)+2*He,We=Dl(pe,Ee),Ye=ve+Ie+ql(We[1]),Xe=Dl(de,Be),Qe=me+Pe+ql(Xe[1]),Ve=Dl(xe,Te),Ue=be+ze+ql(Ve[1]),Re=Dl(we,De),$e=Se+Fe+ql(Re[1]),Ze=Dl(ye,je),Ge=Oe+Le+ql(Ze[1]),Je=zl(i,Nn),Ke=ql(Je[1]),to=N*Bn+a*(In+ts*Bn)+2*Ke,no=zl(i,Hn),eo=ql(no[1]),oo=N*Wn+a*(Ln+ts*Wn)+2*eo,ro=zl(i,te),co=ql(ro[1]),io=N*ee+a*(ne+ts*ee)+2*co,so=zl(i,ie),uo=ql(so[1]),fo=N*ue+a*(se+ts*ue)+2*uo,lo=zl(i,fe),ao=ql(lo[1]),po=N*ae+a*(le+ts*ae)+2*ao,ho=Dl(We,Je),vo=Ye+to+ql(ho[1]),go=Dl(Xe,no),mo=Qe+oo+ql(go[1]),xo=Dl(Ve,ro),_o=Ue+io+ql(xo[1]),bo=Dl(Re,so),wo=$e+fo+ql(bo[1]),Mo=Dl(Ze,lo),So=Ge+po+ql(Mo[1]),yo=Dl(nt,ho),Co=et+vo+ql(yo[1]),Oo=Dl(ot,go);return{coeffs:[Mo,bo,xo,Oo,yo,K],errBound:[So,wo,_o,rt+mo+ql(Oo[1]),Co,tt]}}],[function(t,n){const{coeffs:{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i,vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l},errorBound:{vₓ_:a,vᵧ_:p,vₓₓ_:h,vₓᵧ_:v,vᵧᵧ_:d,vₓₓₓ_:g,vₓₓᵧ_:m,vₓᵧᵧ_:x,vᵧᵧᵧ_:_}}=Ql(t),[[b],[w]]=er(n),M=Rl(r[1]),S=Rl(c[1]),y=Rl(i[1]),C=Rl(s[1]),O=Rl(u[1]),E=Rl(f[1]),N=Rl(l[1]),I=Rl(b[1]),B=Rl(w[1]),k=Vl(e,b),P=a*I+2*Rl(k[1]),T=Vl(o,w),A=p*B+2*Rl(T[1]),z=Ul(k,T),D=P+A+Rl(z[1]),q=Vl(b,b),F=Rl(q[1]),j=2*F,H=Vl(b,w),L=Rl(H[1]),W=2*L,Y=Vl(w,w),X=Rl(Y[1]),Q=2*X,V=Vl(r,q),U=Rl(V[1]),R=M*j+h*(F+ts*j)+2*U,$=Vl(c,H),Z=Rl($[1]),G=S*W+v*(L+ts*W)+2*Z,J=Ul(V,$),K=R+G+Rl(J[1]),tt=Vl(i,Y),nt=Rl(tt[1]),et=y*Q+d*(X+ts*Q)+2*nt,ot=Ul(J,tt),rt=K+et+Rl(ot[1]),ct=Vl(q,b),it=Rl(ct[1]),st=j*I+2*it,ut=Vl(q,w),ft=Rl(ut[1]),lt=j*B+2*ft,at=Vl(H,w),pt=Rl(at[1]),ht=W*B+2*pt,vt=Vl(Y,w),dt=Rl(vt[1]),gt=Q*B+2*dt,mt=Vl(s,ct),xt=Rl(mt[1]),_t=C*st+g*(it+ts*st)+2*xt,bt=Vl(u,ut),wt=Rl(bt[1]),Mt=O*lt+m*(ft+ts*lt)+2*wt,St=Ul(mt,bt),yt=_t+Mt+Rl(St[1]),Ct=Vl(f,at),Ot=Rl(Ct[1]),Et=E*ht+x*(pt+ts*ht)+2*Ot,Nt=Vl(l,vt),It=Rl(Nt[1]),Bt=N*gt+_*(dt+ts*gt)+2*It,kt=Ul(Ct,Nt),Pt=Et+Bt+Rl(kt[1]),Tt=Ul(St,kt);return{coeffs:[Tt,ot,z],errBound:[yt+Pt+Rl(Tt[1]),rt,D]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i,vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l},errorBound:{vₓ_:a,vᵧ_:p,vₓₓ_:h,vₓᵧ_:v,vᵧᵧ_:d,vₓₓₓ_:g,vₓₓᵧ_:m,vₓᵧᵧ_:x,vᵧᵧᵧ_:_}}=Ql(t),{coeffs:[[b,w],[M,S]],errorBound:[[y],[C]]}=nr(n),O=Gl(e[1]),E=Gl(o[1]),N=Gl(r[1]),I=Gl(c[1]),B=Gl(i[1]),k=Gl(s[1]),P=Gl(u[1]),T=Gl(f[1]),A=Gl(l[1]),z=Gl(w[1]),D=Gl(b[1]),q=Gl(S[1]),F=Gl(M[1]),j=$l(e,w),H=Gl(j[1]),L=a*z+2*H,W=$l(e,b),Y=Gl(W[1]),X=O*y+a*(D+ts*y)+2*Y,Q=$l(o,S),V=Gl(Q[1]),U=p*q+2*V,R=$l(o,M),$=Gl(R[1]),Z=E*C+p*(F+ts*C)+2*$,G=Zl(j,Q),J=Gl(G[1]),K=L+U+J,tt=Zl(W,R),nt=Gl(tt[1]),et=X+Z+nt,ot=$l(w,w),rt=Gl(ot[1]),ct=2*rt,it=$l(w,b),st=Gl(it[1]),ut=z*y+2*st,ft=$l(b,w),lt=Gl(ft[1]),at=y*z+2*lt,pt=Zl(it,ft),ht=Gl(pt[1]),vt=ut+at+ht,dt=$l(b,b),gt=Gl(dt[1]),mt=D*y+y*(D+ts*y)+2*gt,xt=$l(w,S),_t=Gl(xt[1]),bt=2*_t,wt=$l(w,M),Mt=Gl(wt[1]),St=z*C+2*Mt,yt=$l(b,S),Ct=Gl(yt[1]),Ot=y*q+2*Ct,Et=Zl(wt,yt),Nt=Gl(Et[1]),It=St+Ot+Nt,Bt=$l(b,M),kt=Gl(Bt[1]),Pt=D*C+y*(F+ts*C)+2*kt,Tt=$l(S,S),At=Gl(Tt[1]),zt=2*At,Dt=$l(S,M),qt=Gl(Dt[1]),Ft=q*C+2*qt,jt=$l(M,S),Ht=Gl(jt[1]),Lt=C*q+2*Ht,Wt=Zl(Dt,jt),Yt=Gl(Wt[1]),Xt=Ft+Lt+Yt,Qt=$l(M,M),Vt=Gl(Qt[1]),Ut=F*C+C*(F+ts*C)+2*Vt,Rt=$l(r,ot),$t=Gl(Rt[1]),Zt=N*ct+h*(rt+ts*ct)+2*$t,Gt=$l(r,pt),Jt=Gl(Gt[1]),Kt=N*vt+h*(ht+ts*vt)+2*Jt,tn=$l(r,dt),nn=Gl(tn[1]),en=N*mt+h*(gt+ts*mt)+2*nn,on=$l(c,xt),rn=Gl(on[1]),cn=I*bt+v*(_t+ts*bt)+2*rn,sn=$l(c,Et),un=Gl(sn[1]),fn=I*It+v*(Nt+ts*It)+2*un,ln=$l(c,Bt),an=Gl(ln[1]),pn=I*Pt+v*(kt+ts*Pt)+2*an,hn=Zl(Rt,on),vn=Zt+cn+Gl(hn[1]),dn=Zl(Gt,sn),gn=Kt+fn+Gl(dn[1]),mn=Zl(tn,ln),xn=en+pn+Gl(mn[1]),_n=$l(i,Tt),bn=Gl(_n[1]),wn=B*zt+d*(At+ts*zt)+2*bn,Mn=$l(i,Wt),Sn=Gl(Mn[1]),yn=B*Xt+d*(Yt+ts*Xt)+2*Sn,Cn=$l(i,Qt),On=Gl(Cn[1]),En=B*Ut+d*(Vt+ts*Ut)+2*On,Nn=Zl(hn,_n),In=vn+wn+Gl(Nn[1]),Bn=Zl(dn,Mn),kn=gn+yn+Gl(Bn[1]),Pn=Zl(mn,Cn),Tn=xn+En+Gl(Pn[1]),An=Zl(tt,Nn),zn=et+In+Gl(An[1]),Dn=$l(ot,w),qn=Gl(Dn[1]),Fn=ct*z+2*qn,jn=$l(ot,b),Hn=Gl(jn[1]),Ln=rt*y+ct*(D+ts*y)+2*Hn,Wn=$l(pt,w),Yn=vt*z+2*Gl(Wn[1]),Xn=Zl(jn,Wn),Qn=Gl(Xn[1]),Vn=Ln+Yn+Qn,Un=$l(pt,b),Rn=Gl(Un[1]),$n=ht*y+vt*(D+ts*y)+2*Rn,Zn=$l(dt,w),Gn=mt*z+2*Gl(Zn[1]),Jn=Zl(Un,Zn),Kn=Gl(Jn[1]),te=$n+Gn+Kn,ne=$l(dt,b),ee=Gl(ne[1]),oe=gt*y+mt*(D+ts*y)+2*ee,re=$l(ot,S),ce=Gl(re[1]),ie=ct*q+2*ce,se=$l(ot,M),ue=Gl(se[1]),fe=rt*C+ct*(F+ts*C)+2*ue,le=$l(pt,S),ae=vt*q+2*Gl(le[1]),pe=Zl(se,le),he=Gl(pe[1]),ve=fe+ae+he,de=$l(pt,M),ge=Gl(de[1]),me=ht*C+vt*(F+ts*C)+2*ge,xe=$l(dt,S),_e=mt*q+2*Gl(xe[1]),be=Zl(de,xe),we=Gl(be[1]),Me=me+_e+we,Se=$l(dt,M),ye=Gl(Se[1]),Ce=gt*C+mt*(F+ts*C)+2*ye,Oe=$l(xt,S),Ee=Gl(Oe[1]),Ne=bt*q+2*Ee,Ie=$l(xt,M),Be=Gl(Ie[1]),ke=_t*C+bt*(F+ts*C)+2*Be,Pe=$l(Et,S),Te=It*q+2*Gl(Pe[1]),Ae=Zl(Ie,Pe),ze=Gl(Ae[1]),De=ke+Te+ze,qe=$l(Et,M),Fe=Gl(qe[1]),je=Nt*C+It*(F+ts*C)+2*Fe,He=$l(Bt,S),Le=Pt*q+2*Gl(He[1]),We=Zl(qe,He),Ye=Gl(We[1]),Xe=je+Le+Ye,Qe=$l(Bt,M),Ve=Gl(Qe[1]),Ue=kt*C+Pt*(F+ts*C)+2*Ve,Re=$l(Tt,S),$e=Gl(Re[1]),Ze=zt*q+2*$e,Ge=$l(Tt,M),Je=Gl(Ge[1]),Ke=At*C+zt*(F+ts*C)+2*Je,to=$l(Wt,S),no=Xt*q+2*Gl(to[1]),eo=Zl(Ge,to),oo=Gl(eo[1]),ro=Ke+no+oo,co=$l(Wt,M),io=Gl(co[1]),so=Yt*C+Xt*(F+ts*C)+2*io,uo=$l(Qt,S),fo=Ut*q+2*Gl(uo[1]),lo=Zl(co,uo),ao=Gl(lo[1]),po=so+fo+ao,ho=$l(Qt,M),vo=Gl(ho[1]),go=Vt*C+Ut*(F+ts*C)+2*vo,mo=$l(s,Dn),xo=Gl(mo[1]),_o=k*Fn+g*(qn+ts*Fn)+2*xo,bo=$l(s,Xn),wo=Gl(bo[1]),Mo=k*Vn+g*(Qn+ts*Vn)+2*wo,So=$l(s,Jn),yo=Gl(So[1]),Co=k*te+g*(Kn+ts*te)+2*yo,Oo=$l(s,ne),Eo=Gl(Oo[1]),No=k*oe+g*(ee+ts*oe)+2*Eo,Io=$l(u,re),Bo=Gl(Io[1]),ko=P*ie+m*(ce+ts*ie)+2*Bo,Po=$l(u,pe),To=Gl(Po[1]),Ao=P*ve+m*(he+ts*ve)+2*To,zo=$l(u,be),Do=Gl(zo[1]),qo=P*Me+m*(we+ts*Me)+2*Do,Fo=$l(u,Se),jo=Gl(Fo[1]),Ho=P*Ce+m*(ye+ts*Ce)+2*jo,Lo=Zl(mo,Io),Wo=_o+ko+Gl(Lo[1]),Yo=Zl(bo,Po),Xo=Mo+Ao+Gl(Yo[1]),Qo=Zl(So,zo),Vo=Co+qo+Gl(Qo[1]),Uo=Zl(Oo,Fo),Ro=No+Ho+Gl(Uo[1]),$o=$l(f,Oe),Zo=Gl($o[1]),Go=T*Ne+x*(Ee+ts*Ne)+2*Zo,Jo=$l(f,Ae),Ko=Gl(Jo[1]),tr=T*De+x*(ze+ts*De)+2*Ko,er=$l(f,We),or=Gl(er[1]),rr=T*Xe+x*(Ye+ts*Xe)+2*or,cr=$l(f,Qe),ir=Gl(cr[1]),sr=T*Ue+x*(Ve+ts*Ue)+2*ir,ur=$l(l,Re),fr=Gl(ur[1]),lr=A*Ze+_*($e+ts*Ze)+2*fr,ar=$l(l,eo),pr=Gl(ar[1]),hr=A*ro+_*(oo+ts*ro)+2*pr,vr=$l(l,lo),dr=Gl(vr[1]),gr=A*po+_*(ao+ts*po)+2*dr,mr=$l(l,ho),xr=Gl(mr[1]),_r=A*go+_*(vo+ts*go)+2*xr,br=Zl($o,ur),wr=Go+lr+Gl(br[1]),Mr=Zl(Jo,ar),Sr=tr+hr+Gl(Mr[1]),yr=Zl(er,vr),Cr=rr+gr+Gl(yr[1]),Or=Zl(cr,mr),Er=sr+_r+Gl(Or[1]),Nr=Zl(Lo,br),Ir=Wo+wr+Gl(Nr[1]),Br=Zl(Yo,Mr),kr=Xo+Sr+Gl(Br[1]),Pr=Zl(Qo,yr),Tr=Vo+Cr+Gl(Pr[1]),Ar=Zl(Uo,Or),zr=Ro+Er+Gl(Ar[1]),Dr=Zl(Bn,Nr),qr=kn+Ir+Gl(Dr[1]),Fr=Zl(Pn,Br);return{coeffs:[Ar,Pr,Fr,Dr,An,G],errBound:[zr,Tr,Tn+kr+Gl(Fr[1]),qr,zn,K]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i,vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l},errorBound:{vₓ_:a,vᵧ_:p,vₓₓ_:h,vₓᵧ_:v,vᵧᵧ_:d,vₓₓₓ_:g,vₓₓᵧ_:m,vₓᵧᵧ_:x,vᵧᵧᵧ_:_}}=Ql(t),{coeffs:[[b,w,M],[S,y,C]],errorBound:[[O,E,N],[I,B,k]]}=tr(n),P=ta(e[1]),T=ta(o[1]),A=ta(r[1]),z=ta(c[1]),D=ta(i[1]),q=ta(s[1]),F=ta(u[1]),j=ta(f[1]),H=ta(l[1]),L=ta(M[1]),W=ta(w[1]),Y=ta(b[1]),X=ta(C[1]),Q=ta(y[1]),V=ta(S[1]),U=Jl(e,M),R=ta(U[1]),$=P*N+a*(L+ts*N)+2*R,Z=Jl(e,w),G=ta(Z[1]),J=P*E+a*(W+ts*E)+2*G,K=Jl(e,b),tt=ta(K[1]),nt=P*O+a*(Y+ts*O)+2*tt,et=Jl(o,C),ot=ta(et[1]),rt=T*k+p*(X+ts*k)+2*ot,ct=Jl(o,y),it=ta(ct[1]),st=T*B+p*(Q+ts*B)+2*it,ut=Jl(o,S),ft=ta(ut[1]),lt=T*I+p*(V+ts*I)+2*ft,at=Kl(U,et),pt=ta(at[1]),ht=$+rt+pt,vt=Kl(Z,ct),dt=ta(vt[1]),gt=J+st+dt,mt=Kl(K,ut),xt=ta(mt[1]),_t=nt+lt+xt,bt=Jl(M,M),wt=ta(bt[1]),Mt=L*N+N*(L+ts*N)+2*wt,St=Jl(M,w),yt=ta(St[1]),Ct=L*E+N*(W+ts*E)+2*yt,Ot=Jl(M,b),Et=ta(Ot[1]),Nt=L*O+N*(Y+ts*O)+2*Et,It=Jl(w,M),Bt=ta(It[1]),kt=W*N+E*(L+ts*N)+2*Bt,Pt=Kl(St,It),Tt=ta(Pt[1]),At=Ct+kt+Tt,zt=Jl(w,w),Dt=ta(zt[1]),qt=W*E+E*(W+ts*E)+2*Dt,Ft=Kl(Ot,zt),jt=ta(Ft[1]),Ht=Nt+qt+jt,Lt=Jl(w,b),Wt=ta(Lt[1]),Yt=W*O+E*(Y+ts*O)+2*Wt,Xt=Jl(b,M),Qt=ta(Xt[1]),Vt=Y*N+O*(L+ts*N)+2*Qt,Ut=Kl(Ft,Xt),Rt=ta(Ut[1]),$t=Ht+Vt+Rt,Zt=Jl(b,w),Gt=ta(Zt[1]),Jt=Y*E+O*(W+ts*E)+2*Gt,Kt=Kl(Lt,Zt),tn=ta(Kt[1]),nn=Yt+Jt+tn,en=Jl(b,b),on=ta(en[1]),rn=Y*O+O*(Y+ts*O)+2*on,cn=Jl(M,C),sn=ta(cn[1]),un=L*k+N*(X+ts*k)+2*sn,fn=Jl(M,y),ln=ta(fn[1]),an=L*B+N*(Q+ts*B)+2*ln,pn=Jl(M,S),hn=ta(pn[1]),vn=L*I+N*(V+ts*I)+2*hn,dn=Jl(w,C),gn=ta(dn[1]),mn=W*k+E*(X+ts*k)+2*gn,xn=Kl(fn,dn),_n=ta(xn[1]),bn=an+mn+_n,wn=Jl(w,y),Mn=ta(wn[1]),Sn=W*B+E*(Q+ts*B)+2*Mn,yn=Kl(pn,wn),Cn=ta(yn[1]),On=vn+Sn+Cn,En=Jl(w,S),Nn=ta(En[1]),In=W*I+E*(V+ts*I)+2*Nn,Bn=Jl(b,C),kn=ta(Bn[1]),Pn=Y*k+O*(X+ts*k)+2*kn,Tn=Kl(yn,Bn),An=ta(Tn[1]),zn=On+Pn+An,Dn=Jl(b,y),qn=ta(Dn[1]),Fn=Y*B+O*(Q+ts*B)+2*qn,jn=Kl(En,Dn),Hn=ta(jn[1]),Ln=In+Fn+Hn,Wn=Jl(b,S),Yn=ta(Wn[1]),Xn=Y*I+O*(V+ts*I)+2*Yn,Qn=Jl(C,C),Vn=ta(Qn[1]),Un=X*k+k*(X+ts*k)+2*Vn,Rn=Jl(C,y),$n=ta(Rn[1]),Zn=X*B+k*(Q+ts*B)+2*$n,Gn=Jl(C,S),Jn=ta(Gn[1]),Kn=X*I+k*(V+ts*I)+2*Jn,te=Jl(y,C),ne=ta(te[1]),ee=Q*k+B*(X+ts*k)+2*ne,oe=Kl(Rn,te),re=ta(oe[1]),ce=Zn+ee+re,ie=Jl(y,y),se=ta(ie[1]),ue=Q*B+B*(Q+ts*B)+2*se,fe=Kl(Gn,ie),le=ta(fe[1]),ae=Kn+ue+le,pe=Jl(y,S),he=ta(pe[1]),ve=Q*I+B*(V+ts*I)+2*he,de=Jl(S,C),ge=ta(de[1]),me=V*k+I*(X+ts*k)+2*ge,xe=Kl(fe,de),_e=ta(xe[1]),be=ae+me+_e,we=Jl(S,y),Me=ta(we[1]),Se=V*B+I*(Q+ts*B)+2*Me,ye=Kl(pe,we),Ce=ta(ye[1]),Oe=ve+Se+Ce,Ee=Jl(S,S),Ne=ta(Ee[1]),Ie=V*I+I*(V+ts*I)+2*Ne,Be=Jl(r,bt),ke=ta(Be[1]),Pe=A*Mt+h*(wt+ts*Mt)+2*ke,Te=Jl(r,Pt),Ae=ta(Te[1]),ze=A*At+h*(Tt+ts*At)+2*Ae,De=Jl(r,Ut),qe=ta(De[1]),Fe=A*$t+h*(Rt+ts*$t)+2*qe,je=Jl(r,Kt),He=ta(je[1]),Le=A*nn+h*(tn+ts*nn)+2*He,We=Jl(r,en),Ye=ta(We[1]),Xe=A*rn+h*(on+ts*rn)+2*Ye,Qe=Jl(c,cn),Ve=ta(Qe[1]),Ue=z*un+v*(sn+ts*un)+2*Ve,Re=Jl(c,xn),$e=ta(Re[1]),Ze=z*bn+v*(_n+ts*bn)+2*$e,Ge=Jl(c,Tn),Je=ta(Ge[1]),Ke=z*zn+v*(An+ts*zn)+2*Je,to=Jl(c,jn),no=ta(to[1]),eo=z*Ln+v*(Hn+ts*Ln)+2*no,oo=Jl(c,Wn),ro=ta(oo[1]),co=z*Xn+v*(Yn+ts*Xn)+2*ro,io=Kl(Be,Qe),so=ta(io[1]),uo=Pe+Ue+so,fo=Kl(Te,Re),lo=ta(fo[1]),ao=ze+Ze+lo,po=Kl(De,Ge),ho=ta(po[1]),vo=Fe+Ke+ho,go=Kl(je,to),mo=ta(go[1]),xo=Le+eo+mo,_o=Kl(We,oo),bo=ta(_o[1]),wo=Xe+co+bo,Mo=Jl(i,Qn),So=ta(Mo[1]),yo=D*Un+d*(Vn+ts*Un)+2*So,Co=Jl(i,oe),Oo=ta(Co[1]),Eo=D*ce+d*(re+ts*ce)+2*Oo,No=Jl(i,xe),Io=ta(No[1]),Bo=D*be+d*(_e+ts*be)+2*Io,ko=Jl(i,ye),Po=ta(ko[1]),To=D*Oe+d*(Ce+ts*Oe)+2*Po,Ao=Jl(i,Ee),zo=ta(Ao[1]),Do=D*Ie+d*(Ne+ts*Ie)+2*zo,qo=Kl(io,Mo),Fo=ta(qo[1]),jo=uo+yo+Fo,Ho=Kl(fo,Co),Lo=ta(Ho[1]),Wo=ao+Eo+Lo,Yo=Kl(po,No),Xo=ta(Yo[1]),Qo=vo+Bo+Xo,Vo=Kl(go,ko),Uo=ta(Vo[1]),Ro=xo+To+Uo,$o=Kl(_o,Ao),Zo=ta($o[1]),Go=wo+Do+Zo,Jo=Kl(vt,qo),Ko=ta(Jo[1]),nr=gt+jo+Ko,er=Kl(mt,Ho),or=ta(er[1]),rr=_t+Wo+or,cr=Jl(bt,M),ir=ta(cr[1]),sr=wt*N+Mt*(L+ts*N)+2*ir,ur=Jl(bt,w),fr=ta(ur[1]),lr=wt*E+Mt*(W+ts*E)+2*fr,ar=Jl(bt,b),pr=ta(ar[1]),hr=wt*O+Mt*(Y+ts*O)+2*pr,vr=Jl(Pt,M),dr=ta(vr[1]),gr=Tt*N+At*(L+ts*N)+2*dr,mr=Kl(ur,vr),xr=ta(mr[1]),_r=lr+gr+xr,br=Jl(Pt,w),wr=ta(br[1]),Mr=Tt*E+At*(W+ts*E)+2*wr,Sr=Kl(ar,br),yr=ta(Sr[1]),Cr=hr+Mr+yr,Or=Jl(Pt,b),Er=ta(Or[1]),Nr=Tt*O+At*(Y+ts*O)+2*Er,Ir=Jl(Ut,M),Br=ta(Ir[1]),kr=Rt*N+$t*(L+ts*N)+2*Br,Pr=Kl(Sr,Ir),Tr=ta(Pr[1]),Ar=Cr+kr+Tr,zr=Jl(Ut,w),Dr=ta(zr[1]),qr=Rt*E+$t*(W+ts*E)+2*Dr,Fr=Kl(Or,zr),jr=ta(Fr[1]),Hr=Nr+qr+jr,Lr=Jl(Ut,b),Wr=ta(Lr[1]),Yr=Rt*O+$t*(Y+ts*O)+2*Wr,Xr=Jl(Kt,M),Qr=ta(Xr[1]),Vr=tn*N+nn*(L+ts*N)+2*Qr,Ur=Kl(Fr,Xr),Rr=ta(Ur[1]),$r=Hr+Vr+Rr,Zr=Jl(Kt,w),Gr=ta(Zr[1]),Jr=tn*E+nn*(W+ts*E)+2*Gr,Kr=Kl(Lr,Zr),tc=ta(Kr[1]),nc=Yr+Jr+tc,ec=Jl(Kt,b),oc=ta(ec[1]),rc=tn*O+nn*(Y+ts*O)+2*oc,cc=Jl(en,M),ic=ta(cc[1]),sc=on*N+rn*(L+ts*N)+2*ic,uc=Kl(Kr,cc),fc=ta(uc[1]),lc=nc+sc+fc,ac=Jl(en,w),pc=ta(ac[1]),hc=on*E+rn*(W+ts*E)+2*pc,vc=Kl(ec,ac),dc=ta(vc[1]),gc=rc+hc+dc,mc=Jl(en,b),xc=ta(mc[1]),_c=on*O+rn*(Y+ts*O)+2*xc,bc=Jl(bt,C),wc=ta(bc[1]),Mc=wt*k+Mt*(X+ts*k)+2*wc,Sc=Jl(bt,y),yc=ta(Sc[1]),Cc=wt*B+Mt*(Q+ts*B)+2*yc,Oc=Jl(bt,S),Ec=ta(Oc[1]),Nc=wt*I+Mt*(V+ts*I)+2*Ec,Ic=Jl(Pt,C),Bc=ta(Ic[1]),kc=Tt*k+At*(X+ts*k)+2*Bc,Pc=Kl(Sc,Ic),Tc=ta(Pc[1]),Ac=Cc+kc+Tc,zc=Jl(Pt,y),Dc=ta(zc[1]),qc=Tt*B+At*(Q+ts*B)+2*Dc,Fc=Kl(Oc,zc),jc=ta(Fc[1]),Hc=Nc+qc+jc,Lc=Jl(Pt,S),Wc=ta(Lc[1]),Yc=Tt*I+At*(V+ts*I)+2*Wc,Xc=Jl(Ut,C),Qc=ta(Xc[1]),Vc=Rt*k+$t*(X+ts*k)+2*Qc,Uc=Kl(Fc,Xc),Rc=ta(Uc[1]),$c=Hc+Vc+Rc,Zc=Jl(Ut,y),Gc=ta(Zc[1]),Jc=Rt*B+$t*(Q+ts*B)+2*Gc,Kc=Kl(Lc,Zc),ti=ta(Kc[1]),ni=Yc+Jc+ti,ei=Jl(Ut,S),oi=ta(ei[1]),ri=Rt*I+$t*(V+ts*I)+2*oi,ci=Jl(Kt,C),ii=ta(ci[1]),si=tn*k+nn*(X+ts*k)+2*ii,ui=Kl(Kc,ci),fi=ta(ui[1]),li=ni+si+fi,ai=Jl(Kt,y),pi=ta(ai[1]),hi=tn*B+nn*(Q+ts*B)+2*pi,vi=Kl(ei,ai),di=ta(vi[1]),gi=ri+hi+di,mi=Jl(Kt,S),xi=ta(mi[1]),_i=tn*I+nn*(V+ts*I)+2*xi,bi=Jl(en,C),wi=ta(bi[1]),Mi=on*k+rn*(X+ts*k)+2*wi,Si=Kl(vi,bi),yi=ta(Si[1]),Ci=gi+Mi+yi,Oi=Jl(en,y),Ei=ta(Oi[1]),Ni=on*B+rn*(Q+ts*B)+2*Ei,Ii=Kl(mi,Oi),Bi=ta(Ii[1]),ki=_i+Ni+Bi,Pi=Jl(en,S),Ti=ta(Pi[1]),Ai=on*I+rn*(V+ts*I)+2*Ti,zi=Jl(cn,C),Di=ta(zi[1]),qi=sn*k+un*(X+ts*k)+2*Di,Fi=Jl(cn,y),ji=ta(Fi[1]),Hi=sn*B+un*(Q+ts*B)+2*ji,Li=Jl(cn,S),Wi=ta(Li[1]),Yi=sn*I+un*(V+ts*I)+2*Wi,Xi=Jl(xn,C),Qi=ta(Xi[1]),Vi=_n*k+bn*(X+ts*k)+2*Qi,Ui=Kl(Fi,Xi),Ri=ta(Ui[1]),$i=Hi+Vi+Ri,Zi=Jl(xn,y),Gi=ta(Zi[1]),Ji=_n*B+bn*(Q+ts*B)+2*Gi,Ki=Kl(Li,Zi),ns=ta(Ki[1]),es=Yi+Ji+ns,os=Jl(xn,S),rs=ta(os[1]),cs=_n*I+bn*(V+ts*I)+2*rs,is=Jl(Tn,C),ss=ta(is[1]),us=An*k+zn*(X+ts*k)+2*ss,fs=Kl(Ki,is),ls=ta(fs[1]),as=es+us+ls,ps=Jl(Tn,y),hs=ta(ps[1]),vs=An*B+zn*(Q+ts*B)+2*hs,ds=Kl(os,ps),gs=ta(ds[1]),ms=cs+vs+gs,xs=Jl(Tn,S),_s=ta(xs[1]),bs=An*I+zn*(V+ts*I)+2*_s,ws=Jl(jn,C),Ms=ta(ws[1]),Ss=Hn*k+Ln*(X+ts*k)+2*Ms,ys=Kl(ds,ws),Cs=ta(ys[1]),Os=ms+Ss+Cs,Es=Jl(jn,y),Ns=ta(Es[1]),Is=Hn*B+Ln*(Q+ts*B)+2*Ns,Bs=Kl(xs,Es),ks=ta(Bs[1]),Ps=bs+Is+ks,Ts=Jl(jn,S),As=ta(Ts[1]),zs=Hn*I+Ln*(V+ts*I)+2*As,Ds=Jl(Wn,C),qs=ta(Ds[1]),Fs=Yn*k+Xn*(X+ts*k)+2*qs,js=Kl(Bs,Ds),Hs=ta(js[1]),Ls=Ps+Fs+Hs,Ws=Jl(Wn,y),Ys=ta(Ws[1]),Xs=Yn*B+Xn*(Q+ts*B)+2*Ys,Qs=Kl(Ts,Ws),Vs=ta(Qs[1]),Us=zs+Xs+Vs,Rs=Jl(Wn,S),$s=ta(Rs[1]),Zs=Yn*I+Xn*(V+ts*I)+2*$s,Gs=Jl(Qn,C),Js=ta(Gs[1]),Ks=Vn*k+Un*(X+ts*k)+2*Js,tu=Jl(Qn,y),nu=ta(tu[1]),eu=Vn*B+Un*(Q+ts*B)+2*nu,ou=Jl(Qn,S),ru=ta(ou[1]),cu=Vn*I+Un*(V+ts*I)+2*ru,iu=Jl(oe,C),su=ta(iu[1]),uu=re*k+ce*(X+ts*k)+2*su,fu=Kl(tu,iu),lu=ta(fu[1]),au=eu+uu+lu,pu=Jl(oe,y),hu=ta(pu[1]),vu=re*B+ce*(Q+ts*B)+2*hu,du=Kl(ou,pu),gu=cu+vu+ta(du[1]),mu=Jl(oe,S),xu=ta(mu[1]),_u=re*I+ce*(V+ts*I)+2*xu,bu=Jl(xe,C),wu=ta(bu[1]),Mu=_e*k+be*(X+ts*k)+2*wu,Su=Kl(du,bu),yu=ta(Su[1]),Cu=gu+Mu+yu,Ou=Jl(xe,y),Eu=ta(Ou[1]),Nu=_e*B+be*(Q+ts*B)+2*Eu,Iu=Kl(mu,Ou),Bu=_u+Nu+ta(Iu[1]),ku=Jl(xe,S),Pu=ta(ku[1]),Tu=_e*I+be*(V+ts*I)+2*Pu,Au=Jl(ye,C),zu=ta(Au[1]),Du=Ce*k+Oe*(X+ts*k)+2*zu,qu=Kl(Iu,Au),Fu=ta(qu[1]),ju=Bu+Du+Fu,Hu=Jl(ye,y),Lu=ta(Hu[1]),Wu=Ce*B+Oe*(Q+ts*B)+2*Lu,Yu=Kl(ku,Hu),Xu=Tu+Wu+ta(Yu[1]),Qu=Jl(ye,S),Vu=ta(Qu[1]),Uu=Ce*I+Oe*(V+ts*I)+2*Vu,Ru=Jl(Ee,C),$u=ta(Ru[1]),Zu=Ne*k+Ie*(X+ts*k)+2*$u,Gu=Kl(Yu,Ru),Ju=ta(Gu[1]),Ku=Xu+Zu+Ju,tf=Jl(Ee,y),nf=ta(tf[1]),ef=Ne*B+Ie*(Q+ts*B)+2*nf,of=Kl(Qu,tf),rf=ta(of[1]),cf=Uu+ef+rf,sf=Jl(Ee,S),uf=ta(sf[1]),ff=Ne*I+Ie*(V+ts*I)+2*uf,lf=Jl(s,cr),af=ta(lf[1]),pf=q*sr+g*(ir+ts*sr)+2*af,hf=Jl(s,mr),vf=ta(hf[1]),df=q*_r+g*(xr+ts*_r)+2*vf,gf=Jl(s,Pr),mf=ta(gf[1]),xf=q*Ar+g*(Tr+ts*Ar)+2*mf,_f=Jl(s,Ur),bf=ta(_f[1]),wf=q*$r+g*(Rr+ts*$r)+2*bf,Mf=Jl(s,uc),Sf=ta(Mf[1]),yf=q*lc+g*(fc+ts*lc)+2*Sf,Cf=Jl(s,vc),Of=ta(Cf[1]),Ef=q*gc+g*(dc+ts*gc)+2*Of,Nf=Jl(s,mc),If=ta(Nf[1]),Bf=q*_c+g*(xc+ts*_c)+2*If,kf=Jl(u,bc),Pf=ta(kf[1]),Tf=F*Mc+m*(wc+ts*Mc)+2*Pf,Af=Jl(u,Pc),zf=ta(Af[1]),Df=F*Ac+m*(Tc+ts*Ac)+2*zf,qf=Jl(u,Uc),Ff=ta(qf[1]),jf=F*$c+m*(Rc+ts*$c)+2*Ff,Hf=Jl(u,ui),Lf=ta(Hf[1]),Wf=F*li+m*(fi+ts*li)+2*Lf,Yf=Jl(u,Si),Xf=ta(Yf[1]),Qf=F*Ci+m*(yi+ts*Ci)+2*Xf,Vf=Jl(u,Ii),Uf=ta(Vf[1]),Rf=F*ki+m*(Bi+ts*ki)+2*Uf,$f=Jl(u,Pi),Zf=ta($f[1]),Gf=F*Ai+m*(Ti+ts*Ai)+2*Zf,Jf=Kl(lf,kf),Kf=pf+Tf+ta(Jf[1]),tl=Kl(hf,Af),nl=df+Df+ta(tl[1]),el=Kl(gf,qf),ol=xf+jf+ta(el[1]),rl=Kl(_f,Hf),cl=wf+Wf+ta(rl[1]),il=Kl(Mf,Yf),sl=yf+Qf+ta(il[1]),ul=Kl(Cf,Vf),fl=Ef+Rf+ta(ul[1]),ll=Kl(Nf,$f),al=Bf+Gf+ta(ll[1]),pl=Jl(f,zi),hl=ta(pl[1]),vl=j*qi+x*(Di+ts*qi)+2*hl,dl=Jl(f,Ui),gl=ta(dl[1]),ml=j*$i+x*(Ri+ts*$i)+2*gl,xl=Jl(f,fs),_l=ta(xl[1]),bl=j*as+x*(ls+ts*as)+2*_l,wl=Jl(f,ys),Ml=ta(wl[1]),Sl=j*Os+x*(Cs+ts*Os)+2*Ml,yl=Jl(f,js),Cl=ta(yl[1]),Ol=j*Ls+x*(Hs+ts*Ls)+2*Cl,El=Jl(f,Qs),Nl=ta(El[1]),Il=j*Us+x*(Vs+ts*Us)+2*Nl,Bl=Jl(f,Rs),kl=ta(Bl[1]),Pl=j*Zs+x*($s+ts*Zs)+2*kl,Tl=Jl(l,Gs),Al=ta(Tl[1]),zl=H*Ks+_*(Js+ts*Ks)+2*Al,Dl=Jl(l,fu),ql=ta(Dl[1]),Fl=H*au+_*(lu+ts*au)+2*ql,jl=Jl(l,Su),Hl=ta(jl[1]),Ll=H*Cu+_*(yu+ts*Cu)+2*Hl,Wl=Jl(l,qu),Yl=ta(Wl[1]),Xl=H*ju+_*(Fu+ts*ju)+2*Yl,Vl=Jl(l,Gu),Ul=ta(Vl[1]),Rl=H*Ku+_*(Ju+ts*Ku)+2*Ul,$l=Jl(l,of),Zl=ta($l[1]),Gl=H*cf+_*(rf+ts*cf)+2*Zl,na=Jl(l,sf),ea=ta(na[1]),oa=H*ff+_*(uf+ts*ff)+2*ea,ra=Kl(pl,Tl),ca=vl+zl+ta(ra[1]),ia=Kl(dl,Dl),sa=ml+Fl+ta(ia[1]),ua=Kl(xl,jl),fa=bl+Ll+ta(ua[1]),la=Kl(wl,Wl),aa=Sl+Xl+ta(la[1]),pa=Kl(yl,Vl),ha=Ol+Rl+ta(pa[1]),va=Kl(El,$l),da=Il+Gl+ta(va[1]),ga=Kl(Bl,na),ma=Pl+oa+ta(ga[1]),xa=Kl(Jf,ra),_a=Kf+ca+ta(xa[1]),ba=Kl(tl,ia),wa=nl+sa+ta(ba[1]),Ma=Kl(el,ua),Sa=ol+fa+ta(Ma[1]),ya=Kl(rl,la),Ca=cl+aa+ta(ya[1]),Oa=Kl(il,pa),Ea=sl+ha+ta(Oa[1]),Na=Kl(ul,va),Ia=fl+da+ta(Na[1]),Ba=Kl(ll,ga),ka=al+ma+ta(Ba[1]),Pa=Kl(er,xa),Ta=rr+_a+ta(Pa[1]),Aa=Kl(Yo,ba),za=Qo+wa+ta(Aa[1]),Da=Kl(Vo,Ma),qa=Ro+Sa+ta(Da[1]),Fa=Kl($o,ya);return{coeffs:[Ba,Na,Oa,Fa,Da,Aa,Pa,Jo,at],errBound:[ka,Ia,Ea,Go+Ca+ta(Fa[1]),qa,za,Ta,nr,ht]}}]],Ta=[[function(t,n){const{vₓ:e,vᵧ:o}=na(t),[[r],[c]]=Ic(n),i=ea(e,r),s=ea(o,c);return[oa(i,s)]},function(t,n){const{vₓ:e,vᵧ:o}=na(t),[[r,c],[i,s]]=Nc(n),u=ra(e,c),f=ra(e,r),l=ra(o,s),a=ra(o,i),p=ca(u,l);return[ca(f,a),p]},function(t,n){const{vₓ:e,vᵧ:o}=na(t),[[r,c,i],[s,u,f]]=Ec(n),l=ia(e,i),a=ia(e,c),p=ia(e,r),h=ia(o,f),v=ia(o,u),d=ia(o,s),g=sa(l,h),m=sa(a,v);return[sa(p,d),m,g]}],[function(t,n){const{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i}=pa(t),[[s],[u]]=Ic(n),f=ha(e,s),l=ha(o,u),a=va(f,l),p=ha(s,s),h=ha(s,u),v=ha(u,u),d=ha(r,p),g=ha(c,h),m=va(d,g),x=ha(i,v);return[va(m,x),a]},function(t,n){const{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i}=pa(t),[[s,u],[f,l]]=Nc(n),a=da(e,u),p=da(e,s),h=da(o,l),v=da(o,f),d=ga(a,h),g=ga(p,v),m=da(u,u),x=da(u,s),_=da(s,u),b=ga(x,_),w=da(s,s),M=da(u,l),S=da(u,f),y=da(s,l),C=ga(S,y),O=da(s,f),E=da(l,l),N=da(l,f),I=da(f,l),B=ga(N,I),k=da(f,f),P=da(r,m),T=da(r,b),A=da(r,w),z=da(c,M),D=da(c,C),q=da(c,O),F=ga(P,z),j=ga(T,D),H=ga(A,q),L=da(i,E),W=da(i,B),Y=da(i,k),X=ga(F,L),Q=ga(j,W);return[ga(H,Y),Q,ga(g,X),d]},function(t,n){const{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i}=pa(t),[[s,u,f],[l,a,p]]=Ec(n),h=ma(e,f),v=ma(e,u),d=ma(e,s),g=ma(o,p),m=ma(o,a),x=ma(o,l),_=xa(h,g),b=xa(v,m),w=xa(d,x),M=ma(f,f),S=ma(f,u),y=ma(f,s),C=ma(u,f),O=xa(S,C),E=ma(u,u),N=xa(y,E),I=ma(u,s),B=ma(s,f),k=xa(N,B),P=ma(s,u),T=xa(I,P),A=ma(s,s),z=ma(f,p),D=ma(f,a),q=ma(f,l),F=ma(u,p),j=xa(D,F),H=ma(u,a),L=xa(q,H),W=ma(u,l),Y=ma(s,p),X=xa(L,Y),Q=ma(s,a),V=xa(W,Q),U=ma(s,l),R=ma(p,p),$=ma(p,a),Z=ma(p,l),G=ma(a,p),J=xa($,G),K=ma(a,a),tt=xa(Z,K),nt=ma(a,l),et=ma(l,p),ot=xa(tt,et),rt=ma(l,a),ct=xa(nt,rt),it=ma(l,l),st=ma(r,M),ut=ma(r,O),ft=ma(r,k),lt=ma(r,T),at=ma(r,A),pt=ma(c,z),ht=ma(c,j),vt=ma(c,X),dt=ma(c,V),gt=ma(c,U),mt=xa(st,pt),xt=xa(ut,ht),_t=xa(ft,vt),bt=xa(lt,dt),wt=xa(at,gt),Mt=ma(i,R),St=ma(i,J),yt=ma(i,ot),Ct=ma(i,ct),Ot=ma(i,it),Et=xa(mt,Mt),Nt=xa(xt,St),It=xa(_t,yt),Bt=xa(bt,Ct),kt=xa(wt,Ot),Pt=xa(b,Et);return[kt,Bt,It,xa(w,Nt),Pt,_]}],[function(t,n){const{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i,vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l}=Ca(t),[[a],[p]]=Ic(n),h=Oa(e,a),v=Oa(o,p),d=Ea(h,v),g=Oa(a,a),m=Oa(a,p),x=Oa(p,p),_=Oa(r,g),b=Oa(c,m),w=Ea(_,b),M=Oa(i,x),S=Ea(w,M),y=Oa(g,a),C=Oa(g,p),O=Oa(m,p),E=Oa(x,p),N=Oa(s,y),I=Oa(u,C),B=Ea(N,I),k=Oa(f,O),P=Oa(l,E),T=Ea(k,P);return[Ea(B,T),S,d]},function(t,n){const{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i,vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l}=Ca(t),[[a,p],[h,v]]=Nc(n),d=Na(e,p),g=Na(e,a),m=Na(o,v),x=Na(o,h),_=Ia(d,m),b=Ia(g,x),w=Na(p,p),M=Na(p,a),S=Na(a,p),y=Ia(M,S),C=Na(a,a),O=Na(p,v),E=Na(p,h),N=Na(a,v),I=Ia(E,N),B=Na(a,h),k=Na(v,v),P=Na(v,h),T=Na(h,v),A=Ia(P,T),z=Na(h,h),D=Na(r,w),q=Na(r,y),F=Na(r,C),j=Na(c,O),H=Na(c,I),L=Na(c,B),W=Ia(D,j),Y=Ia(q,H),X=Ia(F,L),Q=Na(i,k),V=Na(i,A),U=Na(i,z),R=Ia(W,Q),$=Ia(Y,V),Z=Ia(X,U),G=Ia(b,R),J=Na(w,p),K=Na(w,a),tt=Na(y,p),nt=Ia(K,tt),et=Na(y,a),ot=Na(C,p),rt=Ia(et,ot),ct=Na(C,a),it=Na(w,v),st=Na(w,h),ut=Na(y,v),ft=Ia(st,ut),lt=Na(y,h),at=Na(C,v),pt=Ia(lt,at),ht=Na(C,h),vt=Na(O,v),dt=Na(O,h),gt=Na(I,v),mt=Ia(dt,gt),xt=Na(I,h),_t=Na(B,v),bt=Ia(xt,_t),wt=Na(B,h),Mt=Na(k,v),St=Na(k,h),yt=Na(A,v),Ct=Ia(St,yt),Ot=Na(A,h),Et=Na(z,v),Nt=Ia(Ot,Et),It=Na(z,h),Bt=Na(s,J),kt=Na(s,nt),Pt=Na(s,rt),Tt=Na(s,ct),At=Na(u,it),zt=Na(u,ft),Dt=Na(u,pt),qt=Na(u,ht),Ft=Ia(Bt,At),jt=Ia(kt,zt),Ht=Ia(Pt,Dt),Lt=Ia(Tt,qt),Wt=Na(f,vt),Yt=Na(f,mt),Xt=Na(f,bt),Qt=Na(f,wt),Vt=Na(l,Mt),Ut=Na(l,Ct),Rt=Na(l,Nt),$t=Na(l,It),Zt=Ia(Wt,Vt),Gt=Ia(Yt,Ut),Jt=Ia(Xt,Rt),Kt=Ia(Qt,$t),tn=Ia(Ft,Zt),nn=Ia(jt,Gt),en=Ia(Ht,Jt),on=Ia(Lt,Kt),rn=Ia($,tn);return[on,en,Ia(Z,nn),rn,G,_]},function(t,n){const{vₓ:e,vᵧ:o,vₓₓ:r,vₓᵧ:c,vᵧᵧ:i,vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l}=Ca(t),[[a,p,h],[v,d,g]]=Ec(n),m=Ba(e,h),x=Ba(e,p),_=Ba(e,a),b=Ba(o,g),w=Ba(o,d),M=Ba(o,v),S=ka(m,b),y=ka(x,w),C=ka(_,M),O=Ba(h,h),E=Ba(h,p),N=Ba(h,a),I=Ba(p,h),B=ka(E,I),k=Ba(p,p),P=ka(N,k),T=Ba(p,a),A=Ba(a,h),z=ka(P,A),D=Ba(a,p),q=ka(T,D),F=Ba(a,a),j=Ba(h,g),H=Ba(h,d),L=Ba(h,v),W=Ba(p,g),Y=ka(H,W),X=Ba(p,d),Q=ka(L,X),V=Ba(p,v),U=Ba(a,g),R=ka(Q,U),$=Ba(a,d),Z=ka(V,$),G=Ba(a,v),J=Ba(g,g),K=Ba(g,d),tt=Ba(g,v),nt=Ba(d,g),et=ka(K,nt),ot=Ba(d,d),rt=ka(tt,ot),ct=Ba(d,v),it=Ba(v,g),st=ka(rt,it),ut=Ba(v,d),ft=ka(ct,ut),lt=Ba(v,v),at=Ba(r,O),pt=Ba(r,B),ht=Ba(r,z),vt=Ba(r,q),dt=Ba(r,F),gt=Ba(c,j),mt=Ba(c,Y),xt=Ba(c,R),_t=Ba(c,Z),bt=Ba(c,G),wt=ka(at,gt),Mt=ka(pt,mt),St=ka(ht,xt),yt=ka(vt,_t),Ct=ka(dt,bt),Ot=Ba(i,J),Et=Ba(i,et),Nt=Ba(i,st),It=Ba(i,ft),Bt=Ba(i,lt),kt=ka(wt,Ot),Pt=ka(Mt,Et),Tt=ka(St,Nt),At=ka(yt,It),zt=ka(Ct,Bt),Dt=ka(y,kt),qt=ka(C,Pt),Ft=Ba(O,h),jt=Ba(O,p),Ht=Ba(O,a),Lt=Ba(B,h),Wt=ka(jt,Lt),Yt=Ba(B,p),Xt=ka(Ht,Yt),Qt=Ba(B,a),Vt=Ba(z,h),Ut=ka(Xt,Vt),Rt=Ba(z,p),$t=ka(Qt,Rt),Zt=Ba(z,a),Gt=Ba(q,h),Jt=ka($t,Gt),Kt=Ba(q,p),tn=ka(Zt,Kt),nn=Ba(q,a),en=Ba(F,h),on=ka(tn,en),rn=Ba(F,p),cn=ka(nn,rn),sn=Ba(F,a),un=Ba(O,g),fn=Ba(O,d),ln=Ba(O,v),an=Ba(B,g),pn=ka(fn,an),hn=Ba(B,d),vn=ka(ln,hn),dn=Ba(B,v),gn=Ba(z,g),mn=ka(vn,gn),xn=Ba(z,d),_n=ka(dn,xn),bn=Ba(z,v),wn=Ba(q,g),Mn=ka(_n,wn),Sn=Ba(q,d),yn=ka(bn,Sn),Cn=Ba(q,v),On=Ba(F,g),En=ka(yn,On),Nn=Ba(F,d),In=ka(Cn,Nn),Bn=Ba(F,v),kn=Ba(j,g),Pn=Ba(j,d),Tn=Ba(j,v),An=Ba(Y,g),zn=ka(Pn,An),Dn=Ba(Y,d),qn=ka(Tn,Dn),Fn=Ba(Y,v),jn=Ba(R,g),Hn=ka(qn,jn),Ln=Ba(R,d),Wn=ka(Fn,Ln),Yn=Ba(R,v),Xn=Ba(Z,g),Qn=ka(Wn,Xn),Vn=Ba(Z,d),Un=ka(Yn,Vn),Rn=Ba(Z,v),$n=Ba(G,g),Zn=ka(Un,$n),Gn=Ba(G,d),Jn=ka(Rn,Gn),Kn=Ba(G,v),te=Ba(J,g),ne=Ba(J,d),ee=Ba(J,v),oe=Ba(et,g),re=ka(ne,oe),ce=Ba(et,d),ie=ka(ee,ce),se=Ba(et,v),ue=Ba(st,g),fe=ka(ie,ue),le=Ba(st,d),ae=ka(se,le),pe=Ba(st,v),he=Ba(ft,g),ve=ka(ae,he),de=Ba(ft,d),ge=ka(pe,de),me=Ba(ft,v),xe=Ba(lt,g),_e=ka(ge,xe),be=Ba(lt,d),we=ka(me,be),Me=Ba(lt,v),Se=Ba(s,Ft),ye=Ba(s,Wt),Ce=Ba(s,Ut),Oe=Ba(s,Jt),Ee=Ba(s,on),Ne=Ba(s,cn),Ie=Ba(s,sn),Be=Ba(u,un),ke=Ba(u,pn),Pe=Ba(u,mn),Te=Ba(u,Mn),Ae=Ba(u,En),ze=Ba(u,In),De=Ba(u,Bn),qe=ka(Se,Be),Fe=ka(ye,ke),je=ka(Ce,Pe),He=ka(Oe,Te),Le=ka(Ee,Ae),We=ka(Ne,ze),Ye=ka(Ie,De),Xe=Ba(f,kn),Qe=Ba(f,zn),Ve=Ba(f,Hn),Ue=Ba(f,Qn),Re=Ba(f,Zn),$e=Ba(f,Jn),Ze=Ba(f,Kn),Ge=Ba(l,te),Je=Ba(l,re),Ke=Ba(l,fe),to=Ba(l,ve),no=Ba(l,_e),eo=Ba(l,we),oo=Ba(l,Me),ro=ka(Xe,Ge),co=ka(Qe,Je),io=ka(Ve,Ke),so=ka(Ue,to),uo=ka(Re,no),fo=ka($e,eo),lo=ka(Ze,oo),ao=ka(qe,ro),po=ka(Fe,co),ho=ka(je,io),vo=ka(He,so),go=ka(Le,uo),mo=ka(We,fo),xo=ka(Ye,lo),_o=ka(qt,ao),bo=ka(Tt,po),wo=ka(At,ho);return[xo,mo,go,ka(zt,vo),wo,bo,_o,Dt,S]}]];function Aa(t,n){const e=function(t,n,e,o){const r=function(t,n){const e=(t,n)=>t[0]===n[0]&&t[1]===n[1];let o,r;for(const c of[!1,!0]){const i=c?t[t.length-1]:t[0];for(const t of[!1,!0])e(i,t?n[n.length-1]:n[0])&&(void 0===r||i[0]<r[0]||i[0]===r[0]&&i[1]<r[1])&&(o={reverse1:c,reverse2:t},r=i)}return o}(t,n);if(void 0===r)return null;const{reverse1:c,reverse2:i}=r,s=c?t.slice().reverse():t,u=i?n.slice().reverse():n,f=function(t,n){const e=t[0],o=t[1],r=n[1];return r[0]===e[0]&&r[1]===e[1]||(o[0]!==e[0]||o[1]!==e[1])&&0===$s(e,o,r)}(s,u)?2:1;if((t.length-1)*(n.length-1)+1-f<=0)return null;const{coeffs:l,errBound:a,getPExact:p}=function(t,n,e){const o=Pa[t.length-2][n.length-2],r=Ta[t.length-2][n.length-2],{coeffs:c,errBound:i}=o(t,n);if(!e)return{coeffs:c,errBound:i,getPExact:()=>r(t,n)};const s=c.length-1;return{coeffs:c.slice(0,s),errBound:i.slice(0,s),getPExact:()=>r(t,n).slice(0,s)}}(s,u,2===f),[h,v]=i?[1-o,1-e]:[e,o],d=ye(l,h,v,a,p);if(void 0===d)return;const g=i?1:0,m=d.filter(t=>t.tS>0||t.tE<0).map(t=>i?function(t){const n=(t,n)=>{const e=1-t;return 0===at(1,t)[0]?e:n?ul(e):al(e)};return{t:1-t.t,tS:n(t.tE,!0),tE:n(t.tS,!1),multiplicity:t.multiplicity}}(t):t);return e<=g&&g<=o&&m.push({t:g,tS:g,tE:g,multiplicity:f}),m.sort((t,n)=>t.t-n.t)}(t,n,0,1);if(null!==e)return e;const{coeffs:o,errBound:r,getPExact:c}=Ui(t,n);return ye(o,0,1,r,c)}const{min:za,max:Da}=Math;function qa(t,n){let[[e,o],[r,c]]=t,[[i,s],[u,f]]=n;if(e>r&&([e,r]=[r,e]),i>u&&([i,u]=[u,i]),o>c&&([o,c]=[c,o]),s>f&&([s,f]=[f,s]),e<=u&&r>=i&&s<=c&&f>=o)return[[Da(e,i),Da(o,s)],[za(r,u),za(c,f)]]}function Fa(t,n,e){const{ps:o}=t,{ps:r}=n;if(void 0===e)return;if(0===e.length)return[];const c=Aa(r,o);if(void 0===c)return;if(0===c.length)return[];const i=c.map(t=>fs(o,[t.tS,t.tE])),s=e.map(t=>fs(r,[t.tS,t.tE])),u=[];for(let r=0;r<c.length;r++){const f=i[r];for(let i=0;i<e.length;i++){if(void 0===qa(f,s[i]))continue;const l=jo(o,c[r].t),a={ri:c[r],p:l,kind:1,curve:t},p={ri:e[i],p:l,kind:1,curve:n};u.push([a,p])}}return u}function ja(t,n,e){for(const o of[t,n]){const r=o.length;for(let c=1;c<r+1;c++){const i=o[c-1],s=o[c%r],u=[s[1]-i[1],i[0]-s[0]];let f=1/0,l=-1/0;for(let n=0;n<t.length;n++){const e=u[0]*t[n][0]+u[1]*t[n][1];e<f&&(f=e),e>l&&(l=e)}let a=1/0,p=-1/0;for(let t=0;t<n.length;t++){const e=u[0]*n[t][0]+u[1]*n[t][1];e<a&&(a=e),e>p&&(p=e)}if(e&&(l<a||p<f))return!1;if(!e&&(l<=a||p<=f))return!1}}return!0}const Ha=yt,{abs:La}=Math;function Wa(t){return 4===t.length&&fu(t)&&(t=ti(t)),3===t.length&&function(t){const[[n,e],[o,r],[c,i]]=t,s=n+c,u=s-2*o,f=La(s)+La(u);if(La(u)-Ki*f>0)return!1;const l=e+i,a=l-2*r,p=La(l)+La(a);return!(La(a)-Ki*p>0)&&0===bt(_t(Ha(n,c),[2*o]))&&0===bt(_t(Ha(e,i),[2*r]))}(t)&&(t=[t[0],t[2]]),2===t.length&&cu(t)&&(t=[t[0]]),t}function Ya(t,n){const e=0===bt(t[0][0])?1:0;return function(t,n){const[e,o]=t,[,r]=n;return[_t(r,o),e]}(t[e],n[e])}function Xa(t,n){return Ru(gt(t[0],n[1]),gt(t[1],n[0]))*bt(t[1])*bt(n[1])}const Qa=new DataView(new ArrayBuffer(8));function Va(t){if(0===t||!Number.isFinite(t))return NaN;Qa.setFloat64(0,t);const n=Qa.getUint32(4);if(0!==n)return 31-Math.clz32(n&-n);const e=Qa.getUint32(0),o=1048575&e|(2146435072&e?1048576:0);return 63-Math.clz32(o&-o)}function Ua(t){const n=function(t){return Qa.setFloat64(0,t),Qa.getUint32(0)}(t)>>>20&2047;return 0===n?-1022:n-1023}function Ra(t){if(0===t||!Number.isFinite(t))return NaN;const n=Ua(t);return Va(t)-52+n}function $a(t){const n=[];let e=-1024;for(let o=0;o<t.length;o++){const r=t[o],c=new Array(r.length);n.push(c);for(let t=0;t<r.length;t++){const n=r[t];if(0===n){c[t]=0;continue}const o=-Ra(n);c[t]=o,o>e&&(e=o)}}return 0===e?t.map(t=>t.map(t=>BigInt(t))):e>0?t.map((t,o)=>t.map((t,r)=>{if(0===t)return 0n;const c=n[o][r];return BigInt(function(t,n){return n>1023?t*2**1023*2**(n-1023):t*2**n}(t,c))*2n**BigInt(e-c)})):t.map(t=>t.map(t=>BigInt(t*2**e)))}function Za(t,n){if(n=n<0n?-n:n,0n===(t=t<0n?-t:t))return n;if(0n===n)return t;for(;0n!==n;){const e=n;n=t%n,t=e}return t}const Ga=BigInt(2**53);function Ja(t){if(0n===t)return[0];const n=[];let e=0,o=t;for(;0n!==o;){o=t/Ga;const r=t%Ga;n.push(Number(r)*2**(53*e)),t=o,e++}return En(n)}const{round:Ka,sqrt:tp}=Math;function np(t){if(t<=1n){if(t<0n)throw new Error("square root of negative numbers are not allowed");return t}let n=BigInt(Ka(tp(Number(t))));for(;;){const e=n+t/n>>1n;if(e===n)return n;n=e}}function ep(t){return t<0n?-t:t}function op(t){let n=0n;for(let e=0;e<t.length;e++)n+=t[e];return n}function rp(t,n){const[e,o]=t,[r,c]=n,[i,s]=function(t){const[n,e]=$a(t).map(op),o=Za(n,e);return[Ja(np(ep(n/o))),Ja(np(ep(e/o)))]}([r,e]);return[[_t(gt(c,s),gt(o,i)),gt(i,qc(e))],[_t(gt(c,xt(s)),gt(o,i)),gt(i,qc(e))]].sort(Xa)}const{round:cp,cbrt:ip}=Math;function sp(t){const n=(e=t)>0n?1n:e<0n?-1n:0n;var e;if((t=ep(t))<=1n)return n*t;let o=BigInt(cp(ip(Number(t))));for(;;){const e=(2n*o+t/(o*o))/3n;if(e===o)return n*o;o=e}}function up(t){return gt(t,t)}const fp=Number.EPSILON,lp=fp/2;function ap(t){if(0===t||!Number.isFinite(t))return NaN;const n=Ua(t);return function(t){if(0===t||!Number.isFinite(t))return NaN;Qa.setFloat64(0,t);const n=Qa.getUint32(0);if(2146435072&n)return 52;const e=1048575&n;return 0!==e?63-Math.clz32(e):31-Math.clz32(Qa.getUint32(4))}(t)-52+n}function pp(t,n){if(0===bt(t=En(t)))return[0];const e=ap(t[t.length-1]);let o=e,r=t.length-1;for(;r>0;){const c=ap(t[r-1]);if(e-c>n)break;o=c,r--}const c=Math.min(n-(e-o),53),i=t[r],s=t.slice(r);if(c>0)s[0]=Ks(i,c);else{const n=2**o;if(!(Math.abs(i)>n||r>0&&Math.sign(t[r-1])===Math.sign(i)))return s.slice(1);s[0]=2*Math.sign(i)*n}return s}function hp(t){const n=En(t);if(0===bt(n))return 0;const e=n[n.length-1],o=n[0];return Ua(e)-Ua(o)+(53-Va(o))}function vp(t,n){const[e,o]=t,[r,c]=n,i=gt(e,c),s=_t(gt(r,o),i);return[t,n,[xt(i),s],[gt(_t(o,e),c),s]].map(t=>{return n=function(t){return mt(function(t,n,e){let o=En(n);if(0===bt(o))throw new Error("division by zero");let r=t,c=!1,i=0;e||(i=hp(r)-hp(o)+1,e=i/53+1,c=!0);let s=[1/mt(o)],u=1;for(;;){if(r=En(gt(r,s)),u>e)return c?(r=pp(r,i),r):r.slice(Math.max(0,r.length-e));o=En(gt(o,s)),u*=2,s=pp(_t([2],o),106*u+53)}}(t[0],t[1],2))}(t),(e=function([t,n]){return bt(_t(t,n))*bt(n)}(t))<0?n<1?n:1-lp:0===e?1:n>1?n:1+fp;var n,e})}const dp=[,,Ya,function(t,n){const e=0===bt(t[0][0])?0:0===bt(t[1][0])?1:-1;if(-1!==e){const[,o,r]=t[e],[,c,i]=n[e];return Ya([[o,r],[o,r]],[[c,i],[c,i]])}const[o,r]=rp(t[0],n[0]),[c,i]=rp(t[1],n[1]);if(0===Xa(o,c)||0===Xa(o,i))return o;if(0===Xa(r,c)||0===Xa(r,i))return r;throw new Error("An unexpected error occurred.")},function(t,n){const e=0===bt(t[0][0])?1:0;return function(t,n){const[e,o]=t,[r,c]=n,i=function(t){const[n,e]=$a(t).map(op),o=Za(n,e);return[Ja(sp(n/o)),Ja(sp(e/o))]}([r,e]),s=up(i[0]);return[_t(gt(c,up(i[1])),gt(o,s)),gt(dt(3,e),s)]}(t[e],n[e])}];function gp(t){if(0===t||1===t)return[t,t];const n=ul(ul(t)),e=function(t){return al(al(t))}(t);return[n,e]}const mp=Eo(function(t,n,e){const o=t.ps,r=n.ps,c=[];let i=Aa(o,r);if(void 0===i){const e=function(t,n,e=!1){e||(t=Wa(t),n=Wa(n));const o=dp[t.length],r=Oc(t),c=o(r,Oc(n)),i=o(r,Oc(n.slice().reverse())),[s,u,f,l]=vp(c,i),a=[{tA:s,tB:0,bez:"B",start:!0},{tA:u,tB:1,bez:"B",start:!1},{tA:0,tB:f,bez:"A",start:!0},{tA:1,tB:l,bez:"A",start:!1}].sort((t,n)=>t.tA-n.tA);if(a[1].tA===a[2].tA){const n=a[1],e=n.tA,o=n.tB,r=fs(t,[e,e]);return[{p:r[0],kind:4,box:r,t1:e,ri1:{t:e,tS:e,tE:e,multiplicity:1},t2:o,ri2:{t:o,tS:o,tE:o,multiplicity:1}}]}if(a[0].bez===a[1].bez)return[];const p=a[1],h=a[2],[v,d]=gp(p.tA),[g,m]=gp(p.tB),[x,_]=gp(h.tA),[b,w]=gp(h.tB),M=fs(t,[v,d]),S=fs(n,[g,m]),y=fs(t,[x,_]),C=fs(n,[b,w]),O=qa(M,S),E=qa(y,C),N={t:v,tS:v,tE:d,multiplicity:1},I={t:g,tS:g,tE:m,multiplicity:1},B={t:x,tS:x,tE:_,multiplicity:1},k={t:b,tS:b,tE:w,multiplicity:1};return[{p:mf(O),kind:5,box:O,t1:N.t,ri1:N,t2:I.t,ri2:I},{p:mf(E),kind:5,box:E,t1:B.t,ri1:B,t2:k.t,ri2:k}]}(o,r);for(const r of e){const e=jo(o,r.ri1.t),i={ri:r.ri1,kind:5,p:e,curve:t},s={ri:r.ri2,kind:5,p:e,curve:n};c.push([i,s])}return c}return e&&(i=i.filter(t=>t.tS>0)),0===i.length?[]:Fa(t,n,i)||[]});function xp(t,n,e){const{ps:o}=n;return{ri:Vu(t),p:jo(o,t),kind:e,curve:n}}function _p(t,n){const e=t.ps,o=n.ps;if(2===e.length&&2===o.length)return function(t,n){let e=t.ps,o=n.ps;const r=Mu(e),c=Mu(o);if(t.next!==n&&n.next!==t){if(xo(!0,r,c)){const e=mp(t,n,!1);return e.length?e:void 0}return}n.next===t&&([t,n]=[n,t],[e,o]=[o,e]);if(0!==$s(e[0],e[1],o[1]))return;if(!xo(!1,r,c))return;let i;return i=ou(e[0],e[1])>ou(o[0],o[1])?[Uu(cl(e,o[1])[0].ri),1]:[0,Uu(cl(o,e[0])[0].ri)],[[xp(1,t,5),xp(0,n,5)],[xp(i[0],t,5),xp(i[1],n,5)]]}(t,n);if(t.next===n||n.next===t)return xo(!1,Mu(e),Mu(o))&&ja(wu(e,!1),wu(o,!1),!1)?n.next===t?mp(n,t,!0):mp(t,n,!0):bp(t,n);let r=xo(!0,Mu(e),Mu(o));return r?(r=ja(wu(e,!1),wu(o,!1),!0),r?mp(t,n,!1):void 0):void 0}function bp(t,n){if(n.next===t){if(t.next===n)return;[t,n]=[n,t]}const e=t.ps,o=n.ps;if(gf(e,o[o.length-1].map(t=>[t]))){const e=Fa(t,n,[Vu(1)]);if(void 0===e||0===e.length)return;return[[e[0][0],xp(1,n,1)]]}}function wp(t){return t[t.length-1]<0?xt(t):t}function Mp(t,n){const e=t+n,o=e-t;return[t-(e-o)+(n-o),e]}const Sp=Number.EPSILON,yp=Number.EPSILON/2;function Cp(t,n,e,o){const r=t/n,c=Math.abs(t),i=Math.abs(n),s=i-o;return s<=0?{est:r,err:Number.POSITIVE_INFINITY}:{est:r,err:(i*e+c*o)/s**2+yp*Math.abs(c/i)}}function Op(t){const n=t[0],e=t[1];if(0===e)return[0,0];const o=Math.sqrt(e),r=o*o,c=134217729*o,i=c-(c-o),s=o-i,u=.5*(e-r-(s*s-(r-i*i-i*s*2))+n)/o;return[u-(o+u-o),o+u]}const{abs:Ep}=Math;const{abs:Np}=Math,Ip=gt,Bp=pt,kp=_t,Pp=gt,Tp=dt,Ap=ko,zp=Mp,Dp=Ro,qp=Pn,Fp=pr,jp=as,Hp=pt,Lp=Ct,Wp=2*Zi,{abs:Yp}=Math;function Xp(t,n=!0){if(t.length<4)return[];const{coeffs:[e,o,r],errBound:[c,i,s]}=function(t){const{coeffs:[[n,e,o],[r,c,i]],errorBound:[[s,u,f],[l,a,p]]}=function(t){const[[n,e],[o,r],[c,i],[s,u]]=t,f=s-n,l=o-c,a=f+3*l,p=c+n,h=p-2*o,v=o-n,d=u-e,g=r-i,m=d+3*g,x=i+e,_=x-2*r,b=r-e;return{coeffs:[[a,3*h,3*v,n],[m,3*_,3*b,e]],errorBound:[[Ep(f)+6*Ep(l)+Ep(a),6*(Ep(p)+Ep(h)),6*Ep(v),0],[Ep(d)+6*Ep(g)+Ep(m),6*(Ep(x)+Ep(_)),6*Ep(b),0]]}}(t),h=Np(n),v=Np(e),d=Np(o),g=Np(r),m=Np(c),x=Np(i),_=e*r,b=n*c,w=n*i,M=o*r,S=e*i,y=o*c,C=Np(_),O=Np(b),E=Np(w),N=Np(M),I=Np(S),B=Np(y),k=g+Ki*l,P=m+Ki*a,T=x+Ki*p,A=u*k+v*l+C,z=s*P+h*a+O,D=s*T+h*p+E,q=f*k+d*l+N,F=u*T+v*p+I,j=f*P+d*a+B,H=_-b,L=Np(H),W=A+z+L,Y=M-w,X=Np(Y),Q=q+D+X,V=S-y,U=Np(V),R=F+j+U,$=L+Ki*W,Z=H*H,G=W*$+L*W+Np(Z),J=H*Y,K=X+Ki*Q,tt=V*H,nt=Y*Y,et=tt+nt;return{coeffs:[Z,J,et],errBound:[G,W*K+L*Q+Np(J),R*$+U*W+Np(tt)+(Q*K+X*Q+Np(nt))+Np(et)].map(t=>Ki*t)}}(t);if(Yp(e)<=c){const[[n,e],[o,r],[c,i],[s,u]]=t,f=Hp(Ap(s,n),Tp(3,Ap(o,c))),l=Lp(zp(c,n),-2*o),a=Hp(Ap(u,e),Tp(3,Ap(r,i))),p=Lp(zp(i,e),-2*r);if(0===Ru(Pp(l,a),Pp(f,p)))return[]}const u=o*o,f=4*e*r,l=u-f,a=2*i*Yp(o)+Ki*u+(4*(c*Yp(r)+Yp(e)*s)+Ki*Yp(f))+Ki*Yp(l);if(l<-a)return[];if(l>a){const{est:t,err:u}=function(t,n){if(t-n<=0){const e=t>0?Math.sqrt(t):0,o=Math.sqrt(t+n);return{est:e,err:Math.max(o-e,e)+2*Sp*o}}const e=Math.sqrt(t),o=Math.sqrt(t-n),r=Math.sqrt(t+n),c=Math.max(Math.abs(o-e),Math.abs(r-e));return{est:e,err:(1+Sp)*c+4*Sp*r}}(l,a);let f;f=o>=0?-o-t:-o+t;const p=i+u+Ki*Yp(f),{est:h,err:v}=Cp(f,2*e,p,2*c),{est:d,err:g}=Cp(2*r,f,2*s,p);if(n){if(h+v<0||h-v>1||d+g<0||d-g>1)return[]}else if((h+v<0||h-v>1)&&(d+g<0||d-g>1))return[]}let[p,h,v]=function(t){const[[n,e,o],[r,c,i]]=Ec(t),s=Ip(e,r),u=Ip(n,c),f=Ip(n,i),l=Ip(o,r),a=Ip(e,i),p=Ip(o,c),h=_t(s,u),v=_t(l,f),d=_t(a,p),g=Ip(h,h),m=Ip(h,v),x=Ip(h,d),_=Ip(v,v);return[g,m,Bp(x,_)]}(t);const d=kp(Pp(h,h),Tp(4,Pp(p,v))),g=bt(d);if(g<0)return[];if(g>0){const t=Op(Ps(d));let e;p=Ps(p),h=Ps(h),v=Ps(v),e=bt(h)>=0?Dp(qp(h,t)):qp(Dp(h),t);let o=mt(jp(e,Fp(p))),r=mt(jp(Fp(v),e));if(n){if(o<-Wp||o>1+Wp||r<-Wp||r>1+Wp)return[]}else if((o<-Wp||o>1+Wp)&&(r<-Wp||r>1+Wp))return[];return[o,r]=o<r?[o,r]:[r,o],o>=0-Wp&&o<=1+Wp?r>=0-Wp&&r<=1+Wp?[o,r]:[o]:r>=0-Wp&&r<=1+Wp?[r]:[]}const m=Yf(p);if(bt(h)*bt(m)<0)return[];if(Ru(wp(h),wp(m))>0)return[];const x=Ps(h),_=Ps(m),b=jp(x,_),w=b[1]+b[0];return[w,w]}function Qp(t){if(Zs(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&fu(t)&&(t=ti(t)),3===t.length){const n=function(t){const[[n,e],[o,r],[c,i]]=t,s=o-n,u=c-o-s,f=r-e,l=i-r-f;return[u*u+l*l,s*u+f*l]}(t);return{minima:[],maxima:ye(n,0,1)?.map(t=>t.t)||[],inflections:[]}}const n=function(t){const[[n,e,o],[r,c,i]]=st(t),s=n*c-e*r,u=n*i-o*r,f=e*i-o*c,l=n*n+r*r,a=n*e+r*c,p=e*e+c*c,h=8*(n*o+r*i)+3*p;return{inflectionPoly:[s,2*u,f],otherExtremaPoly:[-4*l*s,-(10*l*u+5*a*s),-(4*l*f+16*a*u+p*s),-(10*a*f+h*u),-h*f,2*(o*o+i*i)*u-3*(e*o+c*i)*f]}}(t),e=n.inflectionPoly,o=n.otherExtremaPoly,r=ye(o,0,1)?.map(t=>t.t)||[],c=function(t){const n=t.length-1;if(n<=0)return[];const e=new Array(n);for(let o=0;o<n;o++)e[o]=(n-o)*t[o];return e}(o),i=[],s=[];for(let t=0;t<r.length;t++){const n=r[t],o=ut(c,n);(ut(e,n)*o>=0?i:s).push(n)}return{minima:i,maxima:s,inflections:ye(e,0,1)?.map(t=>t.t)||[]}}const{sqrt:Vp}=Math;function Up(t,n){const e=function(t){const[n,e]=st(t),[o,r]=function(t){if(4===t.length){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[6*(s-n+3*(o-c)),6*(c+n-2*o)],[6*(u-e+3*(r-i)),6*(i+e-2*r)]]}if(3===t.length){const[[n,e],[o,r],[c,i]]=t;return[[2*(c-2*o+n)],[2*(i-2*r+e)]]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}(t);return t=>{const c=ut(n,t),i=ut(e,t),s=ut(o,t);return[c*ut(r,t)-i*s,Vp((c*c+i*i)**3)]}}(t),o=t=>{const[n,o]=e(t);return n/o};return void 0===n?o:o(n)}const{abs:Rp}=Math;function $p(t){return 4===t.length?function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[s-n+3*(o-c),2*(c+n-2*o),o-n],[u-e+3*(r-i),2*(i+e-2*r),r-e]]}(t):3===t.length?function(t){const[[n,e],[o,r],[c,i]]=t;return[[c+n-2*o,o-n],[i+e-2*r,r-e]]}(t):function(t){const[[n,e],[o,r]]=t;return[[o-n],[r-e]]}(t)}function Zp(t){if(2===t.length)return[];const[n,e]=$p(t);return[...ye(n,0,1)||[],...ye(e,0,1)||[]]}const Gp=Eo(function(t){const n=[];for(const e of t)for(const t of e.curves)n.push(t);const e=go(n,t=>Mu(t.ps)[0][0],t=>Mu(t.ps)[1][0],_p),o=[];for(const t of e)for(const n of t.u)o.push(n);return o}),Jp=Eo(function(t){const n=[];for(const e of t)for(const t of e.curves){const e=t.ps,o=Xp(e);if(0===o.length)continue;const r=o[0]===o[1]?3:2,c=o[0],i=o[1],s=c-4*gn,u=c+4*gn,f=i-4*gn,l=i+4*gn,a=jo(e,c),p={ri:{t:s,tS:s,tE:u,multiplicity:1},p:a,kind:r,curve:t},h={ri:{t:f,tS:f,tE:l,multiplicity:1},p:a,kind:r,curve:t};n.push([p,h])}return n}),Kp=Eo(function(t){const n=[];for(const e of t)for(const t of e.curves)n.push([xp(1,t,4),xp(0,t.next,4)]);return n}),th=Eo(function(t,n){const e=[],o=1e7*2**-t;for(const t of n)for(const n of t.curves){const{ps:t}=n,r=Qp(t),{minima:c,maxima:i}=r,s=[0,1,...c,...i];for(let r of s)if(Rp(Up(t,r))>o){const t=xp(r,n,7),o=xp(r,n,7);e.push([t,o])}}return e}),nh=Eo(function(t){const n=[];for(let e of t)for(let t of e.curves){const{ps:e}=t,o=Zp(e).map(n=>{const{t:o}=n,r=jo(e,o);return[{p:r,ri:n,kind:8,curve:t},{p:r,ri:n,kind:8,curve:t}]});n.push(...o)}return n}),eh=Eo(function(t,n,e){let o=[t.map((t,e)=>[n[e],{...n[e]}]),Gp(t),Jp(t),Kp(t),th(e,t),nh(t)].flat(1);return"undefined"!=typeof _debug_&&_debug_.elems.intersection.push(...o.flat()),o});function oh(t){const{ps:n}=t,e=n[0],o=n[n.length-1];let r=e[1]<o[1]?{ri:Vu(0),p:e,kind:0,curve:t}:{ri:Vu(1),p:o,kind:0,curve:t};if(2===n.length){if(e[1]===o[1]){const n=[(e[0]+o[0])/2,(e[1]+o[1])/2];return{ri:Vu(.5),p:n,kind:0,curve:t}}return r}const[,c]=$p(n),i=ye(c,0,1)||[];for(let e=0;e<i.length;e++){const o=i[e],c=jo(n,o.t);c[1]<r.p[1]&&(r={ri:o,p:c,kind:0,curve:t})}return r}function rh(t){let n=1/0,e=-1/0,o=1/0,r=-1/0;for(const c of t){const t=c[0],i=c[1];t<n&&(n=t),t>e&&(e=t),i<o&&(o=i),i>r&&(r=i)}return[[n,o],[e,r]]}function ch(t){const{curves:n}=t;let e,o=n[0],r=1/0;for(const t of n){const{ps:n}=t;if(rh(n)[0][1]>r)continue;const c=oh(t),i=c.p[1];(void 0===e||i<r||i===r&&c.ri.t>e.ri.t)&&(e=c,o=t,r=i)}return e}const ih=nt(function(t){let n=0;for(const e of t)switch(e.length){case 2:n+=sh(e,0,1);break;case 3:n+=(2*sh(e,0,1)+sh(e,0,2)+2*sh(e,1,2))/3;break;case 4:n+=(6*sh(e,0,1)+3*sh(e,0,2)+sh(e,0,3)+3*sh(e,1,2)+3*sh(e,1,3)+6*sh(e,2,3))/10}return n/2});function sh(t,n,e){return t[n][0]*t[e][1]-t[e][0]*t[n][1]}const{abs:uh}=Math;function fh(t){return t.map(t=>t.toReversed()).toReversed()}const{sign:lh}=Math;function ah(t,n){return t.ps===n.ps&&t.ts[1]===n.ts[0]&&(t.ts[1]-t.ts[0])*(n.ts[1]-n.ts[0])>0}function ph(t,n){return{ps:t.ps,ts:[t.ts[0],n.ts[1]]}}function hh(t){const{ps:n,ts:e}=t;return{ps:n,ts:[e[1],e[0]]}}const{ceil:vh,log2:dh}=Math;function gh(n,e={}){"undefined"!=typeof _debug_&&(_debug_.timing.timingStart=performance.now());const o=vh(dh(function(t){let n=-1/0;for(const e of t)for(const t of e)for(const e of t)for(const t of e)n=yu(n,Cu(t));return n}(n))),{minLoopArea:r=(2**(o-16))**2,forceOrientationNegative:c=!1,booleanOp:i="OR"}=e,s=o-46+4,u=(n=Su(n,o).sort(uo)).map(t),f=u.map(ch);"undefined"!=typeof _debug_&&f.forEach(t=>_debug_.elems.minY.push(t));const l=eh(u,f,o),a=Rs(l,o,s);"undefined"!=typeof _debug_&&_debug_.elems.container.push(...a);const p=a.filter(t=>Ls(t.xs)),h=function(t){const n=[],e=[t];for(;e.length;){const t=e.pop();if(0===t.windingNum)for(const e of t.children)0!==e.windingNum&&n.push(e);e.push(...t.children)}return n}(Qu(o,p)).map(function(t){return n=>{const e=[],o=[[n,0]];for(;o.length;){const[n,r]=o.pop(),c=n.parent.windingNum,i=ao(t,n.windingNum)!==ao(t,c);i&&e.push({out:n,depth:r,windingNum:n.windingNum,parentWinding:c});const s=i?r+1:r;for(const t of n.children)0===n.windingNum&&0!==t.windingNum||o.push([t,s])}return e}}(i)).filter(t=>0!==t.length);return function(n,e,o){const r=n.map(t=>t.map(t=>function(t){const n=t.length;return 0===n?t:t.map((e,o)=>{const r=t[(o+1)%n][0],c=e.length-1;return e.map((t,n)=>n===c?[...r]:t)})}(function(t){if(t.length<2)return t;const n=[];for(const e of t){const t=n[n.length-1];void 0!==t&&ah(t,e)?n[n.length-1]=ph(t,e):n.push(e)}for(;n.length>=2&&ah(n[n.length-1],n[0]);)n[0]=ph(n.pop(),n[0]);return n}(t).map(Eu)))),c=e?r.map(t=>{return-1!==(n=t[0],lh(ih(n)))?t.map(fh):t;var n}):r,i=Eo(function(t){return function(n){const e=[];for(let o=0;o<n.length;o++){const r=n[o].filter(n=>uh(ih(n))>t);r.length&&e.push(r)}return e}}(o)),s=i(c).map(t=>t.toSorted(uo));let u=0;const f=Us(s,n=>t(n,u++));return function(t){if("undefined"!=typeof _debug_){for(const n of t)_debug_.elems.loop.push(...n),_debug_.elems.loops.push(n);"undefined"!=typeof _debug_&&(_debug_.timing.simplifyPaths=performance.now()-_debug_.timing.timingStart-_debug_.timing.normalize)}}(f),f}(function(t){return t.map(t=>{const n=t[0].out.orientation;return t.map(({out:t,depth:e})=>function(t,n,e){const{orientation:o}=t,r=(e%2==0?1:-1)*n,c=Lu(t);return r*o>0?c:c.map(hh).toReversed()}(t,n,e))})}(h),c,r)}const{max:mh,abs:xh}=Math;function _h(t,n=!1){const e=t;let o=e;const r=[];do{n&&o===e||A(o)||r.push(o),o=o.nextOnCircle}while(o!==e);return r}function bh(t){const n=[],e=[t],o=new Set;for(;e.length>0;){const t=nn(e.pop());if(0===t.length)continue;n.push(t);const r=t[0],c=t[t.length-1].next.prevOnCircle;o.add(r),o.add(c);const i=_h(r,!0),s=_h(c,!0),u=i.filter(t=>!o.has(t)),f=s.filter(t=>!o.has(t));for(const t of u)o.add(t);for(const t of f)o.add(t);e.push(...u,...f)}return n}function wh(t){return{color:0,parent:void 0,left:void 0,right:void 0,datum:t}}class Mh{compare;root;size;minNode;maxNode;minNodeStale=!0;maxNodeStale=!0;constructor(t){this.compare=t,this.root=void 0,this.size=0,this.minNode=void 0,this.maxNode=void 0,this.minNodeStale=!0,this.maxNodeStale=!0}isEmpty(){return void 0===this.root}find(t){let n=this.root;for(;n;){const e=this.compare(t,n.datum);if(0===e)return n;n=e<0?n.left:n.right}}insert(t){if(this.minNodeStale=!0,this.maxNodeStale=!0,void 0===this.root)return this.root=wh(t),this.root.color=1,void(this.size=1);let n,e=this.root;for(;e;){n=e;const o=this.compare(t,e.datum);if(0===o)return void(e.datum=t);e=o<0?e.left:e.right}const o=wh(t);o.parent=n,this.compare(t,n.datum)<0?n.left=o:n.right=o,this.size++,this.fixInsert(o)}remove(t){const n=this.find(t);if(void 0===n)return;const e=n.datum;return this.removeNode(n),this.size--,this.minNodeStale=!0,this.maxNodeStale=!0,e}findBounds(t){let n=this.root;const e=[void 0,void 0];for(;n;)this.compare(t,n.datum)>=0?(e[0]=n,n=n.right):(e[1]=n,n=n.left);return e}getMinNode(){if(!this.minNodeStale)return this.minNode;let t=this.root;for(;t&&t.left;)t=t.left;return this.minNode=t,this.minNodeStale=!1,t}getMaxNode(){if(!this.maxNodeStale)return this.maxNode;let t=this.root;for(;t&&t.right;)t=t.right;return this.maxNode=t,this.maxNodeStale=!1,t}checkIntegrity(){if(void 0===this.root)return!0;if(1!==this.root.color)return!1;const t=this.compare;let n;return-1!==function e(o){if(void 0===o)return 1;const{left:r,right:c}=o;if(0===o.color&&(0===r?.color||0===c?.color))return-1;const i=e(r);if(-1===i)return-1;if(void 0!==n&&t(n.datum,o.datum)>=0)return-1;n=o;const s=e(c);return-1===s||i!==s?-1:i+(1===o.color?1:0)}(this.root)}toStr(t){let n="";return void 0===this.root||function e(o){n+=t(o),void 0!==o.left&&(n+="(",e(o.left),n+=")"),void 0!==o.right&&(n+="[",e(o.right),n+="]")}(this.root),n}toArr(){const t=[];return function n(e){void 0!==e&&(n(e.left),t.push(e.datum),n(e.right))}(this.root),t}removeNode(t){this.minNodeStale=!0,this.maxNodeStale=!0;let n,e,o=t,r=o.color;if(void 0===t.left)n=t.right,e=t.parent,this.transplant(t,t.right);else if(void 0===t.right)n=t.left,e=t.parent,this.transplant(t,t.left);else{for(o=t.right;o.left;)o=o.left;r=o.color,n=o.right,o.parent===t?(e=o,n&&(n.parent=o)):(e=o.parent,this.transplant(o,o.right),o.right=t.right,o.right.parent=o),this.transplant(t,o),o.left=t.left,o.left.parent=o,o.color=t.color}1===r&&this.fixDelete(n,e)}fixInsert(t){let n=t;for(;n.parent&&0===n.parent.color;){const t=n.parent,e=t.parent;if(t===e.left){const o=e.right;0===this.colorOf(o)?(t.color=1,o.color=1,e.color=0,n=e):(n===t.right&&(n=t,this.rotateLeft(n)),n.parent.color=1,e.color=0,this.rotateRight(e))}else{const o=e.left;0===this.colorOf(o)?(t.color=1,o.color=1,e.color=0,n=e):(n===t.left&&(n=t,this.rotateRight(n)),n.parent.color=1,e.color=0,this.rotateLeft(e))}}this.root.color=1}fixDelete(t,n){let e=t,o=n;for(;e!==this.root&&1===this.colorOf(e)&&void 0!==o;)if(e===o?.left){let t=o.right;0===this.colorOf(t)&&(t.color=1,o.color=0,this.rotateLeft(o),t=o.right),1===this.colorOf(t?.left)&&1===this.colorOf(t?.right)?(t&&(t.color=0),e=o,o=e?.parent):(1===this.colorOf(t?.right)&&(t?.left&&(t.left.color=1),t&&(t.color=0,this.rotateRight(t)),t=o.right),t&&(t.color=o.color),o.color=1,t?.right&&(t.right.color=1),this.rotateLeft(o),e=this.root,o=void 0)}else{let t=o?.left;0===this.colorOf(t)&&(t.color=1,o.color=0,this.rotateRight(o),t=o.left),1===this.colorOf(t?.left)&&1===this.colorOf(t?.right)?(t&&(t.color=0),e=o,o=o?.parent):(1===this.colorOf(t?.left)&&(t?.right&&(t.right.color=1),t&&(t.color=0,this.rotateLeft(t)),t=o?.left),t&&(t.color=o.color),o.color=1,t?.left&&(t.left.color=1),this.rotateRight(o),e=this.root,o=void 0)}e&&(e.color=1)}transplant(t,n){void 0===t.parent?this.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n&&(n.parent=t.parent)}rotateLeft(t){const n=t.right;t.right=n.left,n.left&&(n.left.parent=t),n.parent=t.parent,void 0===t.parent?this.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n}rotateRight(t){const n=t.left;t.left=n.right,n.right&&(n.right.parent=t),n.parent=t.parent,void 0===t.parent?this.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n}colorOf(t){return t?t.color:1}}function Sh(t){const n=new Map;return B(t).forEach(function(t){const e=t.pointOnShape.curve.loop;let o=n.get(e);o||(o=new Mh(no),n.set(e,o)),o.insert(t)}),n}const{sqrt:yh}=Math;function Ch(t,n,e=!0){let o;if(4===t.length)o=function(t,n){const e=t[0],o=t[1],r=t[2],c=t[3],i=e[0],s=e[1],u=o[0],f=o[1],l=r[0],a=r[1],p=c[0],h=c[1],v=n[0],d=n[1],g=i-v,m=u-v,x=l-v,_=p-v,b=s-d,w=f-d,M=a-d,S=h-d,y=g*g,C=6*g*m,O=6*x*_,E=b*b,N=6*b*w,I=6*M*S,B=6*m*_+9*x*x,k=2*g*_+18*m*x,P=6*g*x+9*m*m,T=6*w*S+9*M*M,A=2*b*S+18*w*M,z=6*b*M+9*w*w;return[6*(_*_-O+(y-C)+B+(P-k)+(S*S-I+(E-N)+T+(z-A))),5*(O+5*C+3*k-2*(B+2*P+3*y)+(I+5*N+3*A-2*(T+2*z+3*E))),4*(B-3*(k-2*P)-5*(2*C-3*y)+(T-3*(A-2*z)-5*(2*N-3*E))),3*(k-2*(2*P-5*(C-2*y))+(A-2*(2*z-5*(N-2*E)))),2*(P-5*(C-3*y)+(z-5*(N-3*E))),C-6*y+(N-6*E)]}(t,n);else if(3===t.length)o=function(t,n){const e=t[0],o=t[1],r=t[2],c=e[0],i=e[1],s=o[0],u=o[1],f=r[0],l=r[1],a=n[0],p=n[1],h=c-a,v=s-a,d=f-a,g=i-p,m=u-p,x=l-p,_=h*h,b=h*v,w=v*d,M=g*g,S=g*m,y=m*x,C=g*x+m*m*2,O=h*d+v*v*2;return[x*x+M+2*C-4*(y+S)+(d*d+_+2*O-4*(w+b)),3*(y-C+(3*S-M)+(w-O+(3*b-_))),C-3*(2*S-M)+(O-3*(2*b-_)),S-M+(b-_)]}(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:on(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}o=function(t,n){const[[e,o],[r,c]]=t,[i,s]=n,u=e-i,f=r-i,l=o-s,a=c-s,p=u*f+l*a,h=l*l+u*u;return[f*f+a*a+(h-2*p),p-h]}(t,n)}const r=ye(o,0,1)?.map(t=>t.t)||[];e&&(r.push(0),r.push(1));let c,i=1/0;for(const e of r){const o=co(t,e),r=ou(o,n);r<i&&(i=r,c={p:o,t:e,d:yh(r)})}return c}const{max:Oh,sqrt:Eh}=Math;function Nh(t,n){let e={d:1/0,q:t,k:0,t:0};for(let o=0;o<n.length;o++){const r=Ch(n[o],t);r.d<e.d&&(e={d:r.d,q:r.p,k:o,t:r.t})}return e}function Ih(t,n){return Nh(t,n).d}function Bh(t,n){const[e,o]=t;if(2===t.length)return[[e[0]+n*(o[0]-e[0]),e[1]+n*(o[1]-e[1])],[o[0]-e[0],o[1]-e[1]],[0,0]];const r=1-n;if(3===t.length){const c=t[2];return[[r*r*e[0]+2*r*n*o[0]+n*n*c[0],r*r*e[1]+2*r*n*o[1]+n*n*c[1]],[2*(r*(o[0]-e[0])+n*(c[0]-o[0])),2*(r*(o[1]-e[1])+n*(c[1]-o[1]))],[2*(c[0]-2*o[0]+e[0]),2*(c[1]-2*o[1]+e[1])]]}const c=t[2],i=t[3];return[[r*r*r*e[0]+3*r*r*n*o[0]+3*r*n*n*c[0]+n*n*n*i[0],r*r*r*e[1]+3*r*r*n*o[1]+3*r*n*n*c[1]+n*n*n*i[1]],[3*(r*r*(o[0]-e[0])+2*r*n*(c[0]-o[0])+n*n*(i[0]-c[0])),3*(r*r*(o[1]-e[1])+2*r*n*(c[1]-o[1])+n*n*(i[1]-c[1]))],[6*(r*(c[0]-2*o[0]+e[0])+n*(i[0]-2*c[0]+o[0])),6*(r*(c[1]-2*o[1]+e[1])+n*(i[1]-2*c[1]+o[1]))]]}function kh(t,n,e,o){const r=n[e];if(1===r.length){const n=r[0];return{d:Eh((n[0]-t[0])**2+(n[1]-t[1])**2),q:n,k:e,t:0}}let c=o,[i,s,u]=Bh(r,c),f=i[0]-t[0],l=i[1]-t[1],a={d:Eh(f*f+l*l),q:i,k:e,t:c};for(let n=0;n<4;n++){const n=f*s[0]+l*s[1],o=s[0]*s[0]+s[1]*s[1]+f*u[0]+l*u[1];if(o<=0)break;let p=c-n/o;if(p<0?p=0:p>1&&(p=1),p===c)break;c=p,[i,s,u]=Bh(r,c),f=i[0]-t[0],l=i[1]-t[1];const h=Eh(f*f+l*l);h<a.d&&(a={d:h,q:i,k:e,t:c})}return a}function Ph(t,n){let e=0;for(let o=0;o<t.length;o++){const r=t[o],c=(r[0]-n[0])**2+(r[1]-n[1])**2;c>e&&(e=c)}return Eh(e)}function Th(t,n,e,o=1e3){const r=Nh(t[0],n);if(r.d>e)return!0;const c=Nh(t[t.length-1],n);if(c.d>e)return!0;if(t.length<=2&&(1===t.length||1===n.length&&n[0].length<=2))return!1;const i=[{tS:0,tE:1,fS:r,fE:c}];let s=0;for(;i.length>0;){const{tS:r,tE:c,fS:u,fE:f}=i.pop(),l=0===r&&1===c?t:R(t,r,c);if((u.d+f.d+mu(l))/2<=e)continue;if(Ph(l,u.q)<=e||Ph(l,f.q)<=e)continue;if(s++>=o)return!0;const a=(r+c)/2,p=co(t,a);let h=kh(p,n,u.k,u.k===f.k?(u.t+f.t)/2:u.t);if(u.k!==f.k){const t=kh(p,n,f.k,f.t);t.d<h.d&&(h=t)}if(h.d>e&&(h=Nh(p,n),h.d>e))return!0;Oh(u.d,h.d)>=Oh(h.d,f.d)?(i.push({tS:a,tE:c,fS:h,fE:f}),i.push({tS:r,tE:a,fS:u,fE:h})):(i.push({tS:r,tE:a,fS:u,fE:h}),i.push({tS:a,tE:c,fS:h,fE:f}))}return!1}const{abs:Ah}=Math;function zh(t,n=.125,e=1e3){let o=Q(t.cpNode);const r={...t.meta,cpTrees:Sh(o)};for(;!A(o);)o=o.next;const c=bh(o),i=[];for(let t=0;t<c.length;t++)Dh(c[t],n,e,i);for(const t of i)G(t,r);return{cpNode:o,meta:r}}function Dh(t,n,e,o){const r=t.length;if(r<2)return;const c=t.map($t),i=t.map(t=>t.pointOnShape.circle.center),s=[];let u=0;for(let n=1;n<r;n++)(oo(t[n])||2!==T(t[n]))&&(s.push([u,n-1]),u=n);for(s.push([u,r-1]);s.length>0;){const[r,u]=s.pop();if(u<=r)continue;const f=Rt(t[r],t[u].next);let l=0,a=-1;for(let t=r;t<=u;t++){if(t>r){const n=Ih(i[t],f);n>l&&(l=n,a=t)}const n=c[t];for(let e=0;e<n.length;e++){const o=Ih(co(n[e],.5),f);o>l&&(l=o,a=qh(r,u,t,e,n.length))}}if(l>n){Fh(s,r,u,a);continue}let p=-1;t:for(let t=r;t<=u;t++){const o=c[t];for(let c=0;c<o.length;c++)if(Th(o[c],f,n,e)){p=qh(r,u,t,c,o.length);break t}}if(-1===p)for(let n=r+1;n<=u;n++)o.push(t[n]);else Fh(s,r,u,p)}}function qh(t,n,e,o,r){if(!(e>t))return e+1;if(!(e+1<=n))return e;if(2===r)return 0===o?e:e+1;const c=(t+1+n)/2;return Ah(e-c)<=Ah(e+1-c)?e:e+1}function Fh(t,n,e,o){const r=e-n+1;if(r>=32){const c=.125*r;if(o-n<c||e+1-o<c){const r=n+e+1>>>1,[c,i]=o<r?[o,r]:[r,o];return void t.push([i,e],[c,i-1],[n,c-1])}}t.push([o,e],[n,o-1])}function jh(t){return t.reduce((t,n)=>t.pointOnShape.circle.radius>=n.pointOnShape.circle.radius?t:n)}function Hh(t){return jh(B(t))}function Lh(t){const n=[],e=B(t);for(const t of e)D(t)&&!t.isHoleClosing&&n.push(t);return n}function Wh(t){let n=t,e=t.prevOnCircle;for(;A(e);)e=e.prevOnCircle;const o=[];do{A(n)||o.push(n),n=n.nextOnCircle}while(n!==e);return o}function Yh(t){let n=0;for(const e of $t(t))n+=Ye(e);return n}const Xh=nt(Yh);function Qh(t,n){const e=new Set,o=new Map;return H(t,function(t){const r=t.pointOnShape.circle,c=o.get(r)??n*r.radius,i=t.next,s=i.pointOnShape.circle,u=Yh(t);c-u>n*s.radius&&(o.set(s,c-u),i.isHoleClosing||e.add(s))}),e}function Vh(t,n){let e=0;"undefined"!=typeof _debug_&&(e=performance.now());const o=Hh(Q(t.cpNode));!function(t,n){const e=Lh(n);for(;e.length;){const o=e.pop();if(!t.has(o.pointOnShape.circle)||o.isIntersection)continue;let r=o.prevOnCircle,c=!1;for(;!c;)if(r=r.next,t.has(r.pointOnShape.circle))if(Gt(r,n))c=!0;else{if(1===Wh(r).length)continue;c=!0}else{for(;A(r.prevOnCircle);)r=r.prevOnCircle;c=!0}const i=r.prevOnCircle;i.next=r,r.prev=i}}(Qh(o,n),o);const r={cpNode:o,meta:{...t.meta,cpTrees:Sh(o)}};return function(t){"undefined"!=typeof _debug_&&(_debug_.timing.sats=performance.now()-t)}(e),r}const Uh={maxCurviness:.05,maxLength:40,applySat:!0,satScale:2,simplify:!0,simplifyTolerance:2**-4,minBezLength:2**-6,angleIncrement:15},Rh={maxCurviness:{range:[.01,3],scaleByMaxCoordinate:!1},maxLength:{range:[1,1024],scaleByMaxCoordinate:!0},angleIncrement:{range:[.1,360],scaleByMaxCoordinate:!1},satScale:{range:[1,1/0],scaleByMaxCoordinate:!1},simplifyTolerance:{range:[2**-20,2**20],scaleByMaxCoordinate:!0},minBezLength:{range:[2**-20,2],scaleByMaxCoordinate:!0}};function $h(t){return[t[1],-t[0]]}function Zh(t,n){if(!Ht(n))return 0;const e=jt(n);return e.isDull?-ct($h(e.tangents[0]),rt(et(n.p,t))):0}function Gh(t){return t[0]*t[0]+t[1]*t[1]}function Jh(t,n,e){return t[0]*(n[1]*e[2]-n[2]*e[1])-t[1]*(n[0]*e[2]-n[2]*e[0])+t[2]*(n[0]*e[1]-n[1]*e[0])}function Kh(t){const n=t[0],e=t[1],o=t[2],r=Gh,c=.5*Jh([r(n),n[1],1],[r(e),e[1],1],[r(o),o[1],1]),i=.5*Jh([n[0],r(n),1],[e[0],r(e),1],[o[0],r(o),1]),s=Jh([n[0],n[1],1],[e[0],e[1],1],[o[0],o[1],1]);return[c/s,i/s]}function tv(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}const nv=Number.EPSILON,{max:ev}=Math,ov=4*nv,{abs:rv,max:cv}=Math,iv=4*nv,sv=nv*nv;function uv(t,n,e){const[o,r]=e,{ps:c}=t,i=[];if(o!==r){const{polyDd:e,polyE:s,getPolyExact:u}=rl(c,n),f=ye(e,o,r,s,u)||[];i.push(...f.map(e=>{const{tS:o,tE:r,t:i}=e,s=i<0?0:i>1?1:i,u=function(t,n){const[[e,o],[r,c]]=t,[i,s]=n,u=ev(e-i,0,i-r),f=ev(o-s,0,s-c),l=ev(i-e,r-i),a=ev(s-o,c-s);return[(u*u+f*f)*(1-ov),(l*l+a*a)*(1+ov)]}(fs(c,[o,r]),n),f=0===s?1:s;return{curve:0===s?t.prev:t,t:f,dSquaredI:u}}))}const s=o===r?[o]:[o,r];return i.push(...s.map(e=>function(t,n,e){const{ps:o}=t,{p:r,pE:c}=function(t,n){const e=Fo(t,n),o=$i(t,n);if(4===t.length)return{p:e,pE:o.map(t=>18*ts*t)};if(3===t.length)return{p:e,pE:o.map(t=>12*ts*t)};if(2===t.length)return{p:e,pE:o.map(t=>6*ts*t)};if(1===t.length)return{p:e,pE:[0,0]};throw new Error("The given bezier curve must be of order <= 3.")}(o,[0,e]),i=Yo(r[0],n[0]),s=Yo(r[1],n[1]),u=rv(i[1]),f=rv(s[1]),[l,a]=c,p=cv(u-l,0)**2+cv(f-a,0)**2,h=(u+l)**2+(f+a)**2,v=[cv(p*(1-iv)-sv*(u*u+f*f),0),h*(1+iv)],d=0===e?1:e;return{curve:0===e?t.prev:t,t:d,dSquaredI:v}}(t,n,e))),i}const fv=nt(gu),lv=nt(_u);function av(t,n){const e=t[0],o=t[1],r=e[0],c=e[1],i=o[0],s=o[1],u=n[0],f=n[1];return u<r?f<c?(r-u)**2+(c-f)**2:f>s?(r-u)**2+(f-s)**2:(r-u)**2:u>i?f<c?(u-i)**2+(c-f)**2:f>s?(u-i)**2+(f-s)**2:(u-i)**2:f<c?(c-f)**2:f>s?(f-s)**2:0}function pv(t,n){const e=ou,o=n[0],r=n[1],c=e(o,r);if(0==c)return e(t,o);let i=((t[0]-o[0])*(r[0]-o[0])+(t[1]-o[1])*(r[1]-o[1]))/c;return i=Math.max(0,Math.min(1,i)),e(t,[o[0]+i*(r[0]-o[0]),o[1]+i*(r[1]-o[1])])}const{min:hv}=Math;function vv(t,n){const e=pv(n,[t[0],t[1]]),o=pv(n,[t[1],t[2]]),r=pv(n,[t[2],t[3]]),c=pv(n,[t[3],t[0]]),i=ou(t[0],t[1]),s=ou(t[0],t[3]);return e<=s&&r<=s&&o<=i&&c<=i?0:hv(e,o,r,c)}function dv(t,n,e){const o=[];for(let r=0;r<t.length;r++){const c=t[r],{ps:i}=c.curve;av(fv(i),n)>e||(vv(lv(i),n)>e||o.push(c))}return o}const{min:gv}=Math,mv=1+2**-20;function xv(t,n){return Fo(t,[0,n])}function _v(t,n){t=dv(t,n,function(t,n){let e=1/0;for(let o=0;o<t.length;o++){const r=t[o],{curve:{ps:c},ts:i}=r,s=co(c,i[0]),u=co(c,i[1]);e=gv(e,ou(n,s),ou(n,u))}return mv*e}(t,n));const e=[];for(let o=0;o<t.length;o++){const r=t[o],c=uv(r.curve,n,r.ts);e.push(...c)}let o=1/0;for(let t=0;t<e.length;t++){const n=e[t].dSquaredI[1];n<o&&(o=n)}const r=[];for(let t=0;t<e.length;t++){const n=e[t];n.dSquaredI[0]<=o&&r.push(n)}return r.map(t=>{const{curve:n,t:e}=t,{ps:o}=n,r=xv(o,e);return{curve:n,t:e,isSource:!1,p:r.map(t=>t[0]+t[1]),pDd:r}})}function bv(t,n){return[n*t[0],n*t[1]]}function wv(t,n,e){const o=tv(e);let r,c,i,s,u=1,f=0;do{const l=bv(e,u);c=it(l,n),i=t.map(t=>_v(t,c)[0]);const a=Kh(i.map(t=>t.p));s=tv(et(c,a)),r=s<o,u/=2,f++}while(!r&&f<3);return{newX:c,newV:s,newPoss:i}}const{abs:Mv,asin:Sv}=Math;function yv(t,n,e,o,r,c){const i=2**(c-32),s=[t[0],t[n],t[t.length-1]],u=[o[0],o[n],o[t.length-1]],f=t=>(e+t)%3,l=[s[f(0)],s[f(1)],s[f(2)]],a=[u[f(0)],u[f(1)],u[f(2)]];if(q(l[0][0]))return;let p,h=0,v=function(t,n){const e=t[0][0].pointOnShape.circle.center,o=_v(n[1],e)[0];return Kh([t[0][0].pointOnShape.p,o.p,t[2][1].pointOnShape.p])}(l,a);if(!Number.isFinite(v[0])||!Number.isFinite(v[1]))return;p=function(t,n){return n.map(n=>_v(n,t)[0])}(v,a);let d=1/0;for(;d>i&&h<10;){h++;const t=Kh(p.map(t=>t.p)),n=et(v,t);if(!Number.isFinite(n[0])||!Number.isFinite(n[1]))return;const e=wv(a,v,n);v=e.newX,p=e.newPoss;const o=tv(n);d=Mv(o-e.newV)}const g=(on(v,p[0].p)+on(v,p[1].p)+on(v,p[2].p))/3,m={center:v,radius:g};let x=0;for(let t=0;t<3;t++){const n=p[t],e=rt(et(n.p,v)),o=ot(e);if(Ht(n)&&jt(n).isDull){const t=Ft(n.curve.ps,n.curve.next.ps).tangents.map(ot),o=Sv(lt(t[0],e)),r=Sv(lt(e,t[1]));let c=0;o>0&&(c+=o),r>0&&(c+=r),x+=c}else{const t=rt(ft(n.curve.ps,n.t));x+=Mv(Sv(lt(o,t)))}}const _=_v(dv(r,v,(1+2**-20)*g*g),v)[0],b=void 0===_?g:on(_.p,v);return{threeProngInfo:{poss:p,circle:m,δ3s:l},error:1*Mv(g-b)+1*x}}function Cv(t){let n=t[0];const e=t[1],o=[];let r=!0;do{const t=n.pointOnShape,e=n.next.pointOnShape,c=t.curve,i=e.curve;r?(r=!1,i===c&&to(e,t)>0?(o.push({curve:c,ts:[t.t,e.t]}),n=n.next):(c.loop===i.loop&&(o.push({curve:c,ts:[t.t,1]}),Ov(o,c,i,e.t)),n=n.next)):(r=!0,n=n.prevOnCircle)}while(n!==e);return o}function Ov(t,n,e,o){let r=n;do{r=r.next;const n=r===e?o:1;t.push({curve:r,ts:[0,n]})}while(r!==e)}function Ev(t,n,e,o){const r={...n,order:e,order2:o},c=t.findBounds({pointOnShape:r}),[i,s]=c;if(void 0!==i||void 0!==s){if(void 0===i||void 0===s){const n=t.getMinNode()?.datum,e=t.getMaxNode()?.datum;return[e,n]}return[i.datum,s.datum]}}function Nv(t,n,e,o,r,c,i,s){if(void 0!==c&&void 0!==i){const n=function(t,n,e,o){if(t.size<=1)return!0;const r=n.pointOnShape,c=e,i=o.pointOnShape,s=to(r,c);if(0===s)return!1;const u=to(c,i);if(0===u)return!1;const f=to(i,r);if(0===f)return!1;const l=s<0,a=u<0,p=f<0;return!!(l&&a||a&&p||p&&l)}(o,c,r,i);if(!t&&!n)return}const u={pointOnShape:r,isHoleClosing:n,isIntersection:e,id:s.id,next:void 0,prev:void 0,nextOnCircle:void 0,prevOnCircle:void 0};s.id++;const f=void 0===c?u:c,l=void 0===c?u:f.next;return l.prev=u,f.next=u,u.prev=f,u.next=l,o.insert(u),u}const{atan2:Iv}=Math;function Bv(t,n,e,o,r,c,i){const{cpTrees:s}=r;let u=!1;const f=c.map((c,f)=>{const l=o[f],a=s.get(c.curve.loop),p={...c,circle:e,order:l,order2:0},h=void 0===i?Ev(a,c,l,0):i[f],v=h?.[0],d=h?.[1],g=Nv(t,n,!1,a,p,v,d,r.lastInsertId);return void 0===g&&(u=!0),g});return u||function(t,n){n=n.slice().sort(function(t){const n=t.center;return function(t,e){let o=t.pointOnShape.p,r=e.pointOnShape.p;o=[o[0]-n[0],o[1]-n[1]],r=[r[0]-n[0],r[1]-n[1]];const c=Iv(o[1],o[0]);return Iv(r[1],r[0])-c}}(t));const e=n.length;for(let t=0;t<e;t++){const o=n[t];o.nextOnCircle=n[(t+1)%e],o.prevOnCircle=n[(t-1+e)%e]}}(e,f),{anyFailed:u,cpNodes:f}}const{cos:kv,PI:Pv}=Math,Tv=kv(Pv/180*1);function Av(t,n,e,o,r,c){const{cpTrees:i,maxCoordPowerOf2:s}=t,u=2**(s-40),f=2**(s-46),l=i.get(n.curve.loop),a=Ev(l,n,o,r)?.[0];if(!a)return;const p=[a,a.next],{p:h,t:v}=n;for(const t of p){const n=t.pointOnShape.p,o=on(h,n);if(!(o>u)&&(ct(rt(et(n,t.pointOnShape.circle.center)),rt(et(h,e.center)))>Tv||o<f&&0!==v&&1!==v))return t}}function zv(t,n){const e=[];for(const t of n)e.push([t,t.next]);const o=function(t,n){const e=t.map(Cv),o=e.flat();let r,c=1/0;for(let i=1;i<t.length-1;i++)for(let s=0;s<3;s++){const u=yv(t,i,s,e,o,n);if(void 0===u)continue;const{error:f,threeProngInfo:l}=u;f<c&&(c=f,r=l)}return r}(e,t.maxCoordPowerOf2),{circle:r,poss:c,δ3s:i}=o,s=[];for(let t=0;t<3;t++)s.push(Zh(r.center,c[t]));const u=[];for(let n=0;n<c.length;n++){const e=Av(t,c[n],r,s[n],0);void 0!==e&&T(e)<=2&&!e.isHoleClosing&&u.push(e)}return{closeBysFor3Prong:u,cpNodes:0===u.length?Bv(!0,!1,r,s,t,c,i).cpNodes:[]}}let Dv,qv=0;function Fv(t,n){if(Lt(n.pointOnShape))return{closeBysFor3Prong:void 0,addedCpNodes:[]};const e=[];let o,r=0;for(;;){if(void 0===n)continue;const c=j(n);if(c.length<=2)break;if(void 0===o&&(o=2*c.length+16),++r>o){const t=n.pointOnShape;throw new Error(`findAndAdd3Prongs: no convergence after ${r} iterations (face with ${c.length} vertices, start CpNode id ${n.id} on curve ${t.curve.idx} at t = ${t.t}, radius ${t.circle.radius})`)}const{closeBysFor3Prong:i,cpNodes:s}=zv(t,c);if(e.push(s),i.length>0)return{closeBysFor3Prong:i,addedCpNodes:e};if("undefined"!=typeof _debug_&&++qv===_debug_.directives.stopAfterThreeProngsNum)return}return{closeBysFor3Prong:void 0,addedCpNodes:e}}function jv(t){for(const n of t)return n}function Hv(t,n,e,o){const r=n[0];L(r).forEach(t=>{e.delete(t),o.delete(t)}),G(r,t)}function Lv(t,n,e){const o=new Map;for(let r=0;r<n.length;r++){const c=new Mh(no);o.set(t[r],c);const i=n[r];let s,u;for(const t of i){const n={center:t.p,radius:0},{curve:o}=t,r={...t,curve:o,t:1,circle:n,order:-1,order2:0},i={...t,curve:o.next,t:0,circle:n,order:1,order2:0};s=Nv(!0,!1,!1,c,r,u,void 0,e),u=Nv(!0,!1,!1,c,i,s,void 0,e),s.prevOnCircle=u,u.prevOnCircle=s,s.nextOnCircle=u,u.nextOnCircle=s}}return o}function Wv(t){if(!t)return void(globalThis._debug_=void 0);let n=globalThis._debug_;n={...n,elems:{...n?.elems,looseBoundingBoxes:[],tightBoundingBoxes:[],boundingHulls:[],sharpCorners:[],dullCorners:[]},timing:{...n?.timing,holeClosers:0,oneAnd2Prongs:0,threeProngs:0,sats:0,simplifyMat:0},fs:{...n?.fs},directives:{...n?.directives,stopAfterHoleClosers:!1,stopAfterHoleClosersNum:void 0,stopAfterTwoProngs:!1,stopAfterTwoProngsNum:void 0,stopAfterThreeProngs:!1,stopAfterThreeProngsNum:void 0}},globalThis._debug_=n}function Yv(t){return n=>{const e=[];for(let o=0;o<n.curves.length;o++){const r=n.curves[o];if(!(mu(r.ps)<t)&&Ft(r.ps,r.next.ps).isQuiteSharp){const{ps:t}=r,n=t[t.length-1],o=[[0,n[0]],[0,n[1]]];e.push({curve:r,t:1,isSource:!0,p:n,pDd:o})}}return e}}function Xv(t,n){let e=[0,0];for(let o=0;o<t.length;o++)e=Pn(t[o],kn(n,e));return e}const Qv=ko,Vv=kn,Uv=Pn,Rv=Po,$v=Mp;function Zv(t){if(4===t.length)return function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[Uv(Qv(s,n),Vv(3,Qv(o,c))),Vv(3,Rv($v(c,n),-2*o)),Vv(3,Qv(o,n)),[0,n]],[Uv(Qv(u,e),Vv(3,Qv(r,i))),Vv(3,Rv($v(i,e),-2*r)),Vv(3,Qv(r,e)),[0,e]]]}(t);if(3===t.length)return function(t){const[[n,e],[o,r],[c,i]]=t;return[[Rv($v(c,n),-2*o),Qv(2*o,2*n),[0,n]],[Rv($v(i,e),-2*r),Qv(2*r,2*e),[0,e]]]}(t);if(2===t.length)return function(t){const[[n,e],[o,r]]=t;return[[Qv(o,n),[0,n]],[Qv(r,e),[0,e]]]}(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[0,n]],[[0,e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}const Gv=kn,Jv=Pn,Kv=Dn,td=Ro,nd=Ff,ed=pr,od=Yo,rd=ko,cd=Pn,id=Dn,sd=Ro,ud=Ff,fd=pr,ld=Yo,ad=kn,pd=Pn,hd=Dn,vd=Ro,dd=Ff,gd=pr,md=Yo,xd=Pn,_d=Dn,bd=pr,wd=Yo;function Md(t,n,e){const[o,r]=t,[c,i]=n,[s,u]=e,f=wd(o,s),l=wd(r,u);return{a0:xd(_d(bd(c),f),_d(bd(i),l)),b0:xd(_d(f,f),_d(l,l))}}const Sd=[,,function(t,n,e){const[o,r]=t,[c,i]=n,[[s,u],[f,l]]=e,a=rd(f,s),p=rd(l,u),h=ld(o,s),v=ld(r,u),d=cd(id(c,a),id(i,p)),g=sd(cd(id(a,a),id(p,p))),m=cd(id(a,h),id(p,v)),x=ud(d),_=cd(id(fd(c),h),id(fd(i),v)),b=sd(g),w=ud(m),M=cd(id(h,h),id(v,v));return{A:[x,_],B:[b,w,M],C:[d],D:[g,m],H:[id(b,d),id(_,g),cd(id(_,m),sd(id(M,d)))]}},function(t,n,e){const[o,r]=t,[c,i]=n,[[s,u]]=e,[[f,l],[a,p]]=Zv(e),h=od(o,s),v=od(r,u),d=ed(Jv(Kv(c,f),Kv(i,a))),g=Jv(Kv(c,l),Kv(i,p)),m=Jv(Kv(c,h),Kv(i,v)),x=Jv(Kv(f,f),Kv(a,a)),_=Jv(Kv(l,f),Kv(p,a)),b=Jv(Kv(l,l),Kv(p,p)),w=Jv(Kv(h,f),Kv(v,a)),M=Jv(Kv(l,h),Kv(p,v)),S=Jv(Kv(h,h),Kv(v,v)),y=nd(x),C=Gv(-3,_),O=Jv(ed(w),td(b)),E=td(d),N=nd(g),I=ed(m),B=ed(_),k=td(O);return{A:[E,N,I],B:[x,B,k,nd(M),S],C:[d,g],D:[y,C,O,M],H:[Kv(x,d),Jv(Kv(_,d),Gv(3,Kv(x,g))),ed(ed(Jv(Kv(_,g),td(Kv(m,x))))),Jv(Jv(Kv(d,M),Kv(g,k)),td(Gv(6,Kv(m,_)))),Jv(nd(Kv(m,k)),td(Kv(d,S))),Jv(ed(Kv(m,M)),td(Kv(g,S)))]}},function(t,n,e){const[o,r]=t,[c,i]=n,[[s,u,f,[,l]],[a,p,h,[,v]]]=Zv(e),d=md(o,l),g=md(r,v),m=pd(hd(c,s),hd(i,a)),x=pd(hd(c,u),hd(i,p)),_=pd(hd(c,f),hd(i,h)),b=pd(hd(c,d),hd(i,g)),w=pd(hd(s,s),hd(a,a)),M=pd(hd(s,u),hd(a,p)),S=pd(hd(s,f),hd(a,h)),y=pd(hd(u,u),hd(p,p)),C=pd(hd(u,f),hd(p,h)),O=pd(hd(f,f),hd(h,h)),E=pd(hd(s,d),hd(a,g)),N=pd(hd(u,d),hd(p,g)),I=pd(hd(f,d),hd(h,g)),B=pd(hd(d,d),hd(g,g)),k=ad(3,m),P=gd(x),T=_,A=ad(-3,w),z=ad(-5,M),D=pd(ad(-4,S),dd(y)),q=pd(ad(3,E),ad(-3,C)),F=pd(gd(N),vd(O)),j=dd(m),H=dd(x),L=dd(_),W=gd(b),Y=gd(M),X=pd(gd(S),y),Q=pd(gd(C),dd(E)),V=pd(O,dd(N)),U=dd(I);return{A:[j,H,L,W],B:[w,Y,X,Q,V,U,B],C:[k,P,T],D:[A,z,D,q,F,I],H:[ad(3,hd(m,w)),gd(gd(pd(hd(m,M),hd(x,w)))),pd(pd(hd(m,X),ad(6,hd(x,M))),ad(5,hd(_,w))),pd(pd(gd(hd(x,X)),ad(8,hd(_,M))),vd(ad(6,hd(b,w)))),pd(pd(vd(hd(m,V)),hd(x,Q)),pd(ad(3,hd(_,X)),vd(ad(10,hd(b,M))))),pd(pd(dd(hd(m,U)),gd(hd(_,Q))),vd(gd(gd(hd(b,X))))),pd(pd(pd(hd(_,V),vd(hd(x,U))),vd(ad(3,hd(b,Q)))),vd(ad(3,hd(m,B)))),pd(dd(hd(b,V)),dd(hd(x,B))),pd(vd(hd(b,U)),vd(hd(_,B)))]}}],yd=kn,Cd=Pn,Od=Dn,Ed=Ro,Nd=pr,Id=kn,Bd=Pn,kd=Dn,Pd=Ro,Td=Ff,Ad=pr,{sqrt:zd,abs:Dd}=Math,qd=function(t,n){const e=n[0],o=n[1],r=o*t,c=Bn*o,i=c-(c-o),s=o-i,u=Bn*t,f=u-(u-t),l=t-f,a=e*t,p=r+a,h=a-(p-r)+(s*l-(r-i*f-s*f-i*l)),v=p+h;return[h-(v-p),v]};function Fd(t,n,e,o,r,c){const{curve:i,ts:[s,u]}=c,{ps:f}=i,{curve:l,t:a,p,pDd:h}=e,v=i===l,d=0===r&&v,g=[];let m,x=!1,_=!1;if(!(s===u||d&&2===f.length||v&&3===f.length&&o)){const{A:e,B:o,H:r}=d?3===f.length?function(t,n,e){const[[o,r],[c,i]]=Zv(e),[s,u]=n,f=Cd(yd(t,o),r),l=Cd(yd(t,c),i),a=Cd(Od(o,o),Od(c,c)),p=Cd(Od(o,r),Od(c,i)),h=Cd(Od(o,f),Od(c,l)),v=Nd(Cd(Od(s,o),Od(u,c)));return{A:[Ed(v)],B:[a,Nd(h),Cd(Od(f,f),Od(l,l))],H:[Od(a,v),Od(v,Cd(yd(t,a),p))]}}(a,n,f):function(t,n,e){const[o,r]=n,[[c,i,s],[u,f,l]]=Zv(e),a=Bd(kd(o,c),kd(r,u)),p=Bd(kd(o,i),kd(r,f)),h=Bd(kd(o,s),kd(r,l)),v=Bd(kd(c,c),kd(u,u)),d=Bd(kd(c,i),kd(u,f)),g=Bd(kd(c,s),kd(u,l)),m=Bd(kd(i,i),kd(f,f)),x=Bd(kd(i,s),kd(f,l)),_=Bd(kd(s,s),kd(l,l)),b=Id(t,Bd(Id(t,Bd(Id(t,a),p)),h)),w=Id(t,Bd(Id(t,Bd(Id(t,v),d)),g)),M=Id(t,Bd(Id(t,Bd(Id(t,d),m)),x)),S=Id(3,a),y=Ad(p),C=Bd(y,Id(t,S)),O=Id(-3,v),E=Id(-5,d),N=Bd(Id(-4,g),Td(m)),I=Bd(Id(-3,x),Id(3,w)),B=Bd(Pd(_),Ad(M)),k=O,P=Bd(E,Id(t,k)),T=Bd(N,Id(t,P)),A=Bd(I,Id(t,T)),z=Bd(B,Id(t,A)),D=Td(a),q=Td(p),F=v,j=Ad(d),H=Bd(Ad(g),m),L=Bd(Ad(x),Td(w)),W=Bd(_,Td(M)),Y=D,X=Bd(q,Ad(Id(t,Y))),Q=F,V=Bd(j,Ad(Id(t,Q))),U=Bd(H,Id(t,Bd(Ad(V),Pd(Id(t,Q))))),R=Bd(L,Id(t,Bd(Ad(U),Pd(Id(t,V))))),$=Bd(W,Id(t,Bd(Ad(R),Pd(Id(t,U))))),Z=Id(3,kd(a,v)),G=Ad(Ad(Bd(kd(a,d),kd(p,v)))),J=Bd(Bd(kd(a,H),Id(6,kd(p,d))),Id(5,kd(h,v))),K=Bd(Bd(Ad(kd(p,H)),Id(8,kd(h,d))),Pd(Id(6,kd(b,v)))),tt=Bd(Bd(Pd(kd(a,W)),kd(p,L)),Bd(Id(3,kd(h,H)),Pd(Id(10,kd(b,d))))),nt=Z,et=Bd(G,Ad(Ad(Id(t,nt)))),ot=Bd(J,Id(t,Bd(Ad(Ad(et)),Pd(Id(6,Id(t,nt)))))),rt=Bd(K,Id(t,Bd(Ad(Ad(ot)),Id(t,Bd(Id(-6,et),Ad(Ad(Id(t,nt))))))));return{A:[Y,X],B:[Q,V,U,R,$],C:[S,C],D:[k,P,T,A,z],H:[nt,et,ot,rt,Bd(tt,Id(t,Bd(Ad(Ad(rt)),Id(t,Bd(Id(-6,ot),Id(t,Bd(Ad(Ad(et)),Pd(Id(t,nt)))))))))]}}(a,n,f):function(t,n,e){if(1===e.length){const{a0:o,b0:r}=Md(t,n,e[0]);return{A:[o],B:[r],C:[],D:[],H:[]}}return Sd[e.length](t,n,e)}(h,n,f);m=ye(r,s,u)||[];for(let r=0;r<m.length;r++){const c=m[r],{tS:f,tE:l,t:a}=c;if(c.multiplicity>1)continue;if(l<s||f>u)continue;if(f<0)continue;const h=l>1?1:a,v=Xv(e,h),d=Xv(o,h),b=v[0]+v[1],w=d[0]+d[1];if(Dd(b)<2**-40)continue;const M=-w/b;if(M<=0)continue;const S=[qd(M,n[0]),qd(M,n[1])],y=[S[0][1],S[1][1]],C=zd(Gh(y));if(C<=2**(t-40))continue;const O=[p[0]+y[0],p[1]+y[1]];c.tS<=s&&c.tE>=s&&(x=!0),c.tS<=u&&c.tE>=u&&(_=!0);const E=0===h?1:h,N={curve:0===h?i.prev:i,s:E,d:C,x:O};g.push(N)}}const b=f[f.length-1],w=0===a&&i===l.prev||1===a&&i===l,M=[];if(0===s);else if(1===s)w||x||M.push({P:b,t:1});else if(!x){const t=co(f,s);M.push({P:t,t:s})}if(s!==u)if(0===u);else if(1===u)w||_||M.push({P:b,t:1});else if(!_){const t=co(f,u);M.push({P:t,t:u})}for(let t=0;t<M.length;t++){const{P:e,t:o}=M[t],{a0:r,b0:c}=Md(h,n,e);if(Dd(r[1])<=2**-40||Dd(c[1])<=2**-40)continue;const s=-c[1]/r[1];if(s<2**-40)continue;const u=[qd(s,n[0]),qd(s,n[1])],f=[u[0][1],u[1][1]],l=zd(Gh(f)),a=[p[0]+f[0],p[1]+f[1]],v=0===o?1:o,d={curve:0===o?i.prev:i,s:v,d:l,x:a};g.push(d)}return g}function jd(t,n,e){const[o,r]=t,[c,i]=n,[s,u]=e,f=o-s,l=r-u;return{a0:2*(c*f+i*l),b0:f*f+l*l}}const{abs:Hd,sqrt:Ld}=Math,Wd=1+2**-20;function Yd(t,n){const[e,o]=t,[r,c]=n,i=ko(e,r),s=ko(o,c);return Pn(Dn(i,i),Dn(s,s))[1]}const Xd=Mp,Qd=ko,Vd=kn,Ud=Pn,Rd=Po;function $d(t){if(4===t.length)return function(t){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[Vd(3,Ud(Qd(s,n),Vd(3,Qd(o,c)))),Vd(6,Rd(Xd(c,n),-2*o)),Vd(3,Qd(o,n))],[Vd(3,Ud(Qd(u,e),Vd(3,Qd(r,i)))),Vd(6,Rd(Xd(i,e),-2*r)),Vd(3,Qd(r,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[o,r],[c,i]]=t;return[[Rd(Xd(2*c,2*n),-4*o),Qd(2*o,2*n)],[Rd(Xd(2*i,2*e),-4*r),Qd(2*r,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[o,r]]=t;return[[Qd(o,n)],[Qd(r,e)]]}(t);if(1===t.length)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const Zd=ko,Gd=Pn,Jd=kn,Kd=Po,tg=Dn,ng=Pn,eg=Bo;const{sqrt:og}=Math;function rg(t,n,e){const{curve:o,p:r,t:c}=n,{ps:i}=o,s=1/t,u=function(t,n){const[e,o]=function(t,n){const[e,o]=$d(t),[r,c]=function(t){if(4===t.length){const[[n,e],[o,r],[c,i],[s,u]]=t;return[[Jd(6,Gd(Zd(s,n),Jd(3,Zd(o,c)))),Jd(6,Kd(Zd(c,2*o),n))],[Jd(6,Gd(Zd(u,e),Jd(3,Zd(r,i)))),Jd(6,Kd(Zd(i,2*r),e))]]}if(3===t.length){const[[n,e],[o,r],[c,i]]=t;return[[Kd(Zd(2*c,4*o),2*n)],[Kd(Zd(2*i,4*r),2*e)]]}if(t.length<=2)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t),i=Xv(e,n),s=Xv(o,n),u=Xv(r,n),f=Xv(c,n),l=eg(tg(i,f),tg(s,u)),a=ng(tg(i,i),tg(s,s));return[l,Op(tg(a,tg(a,a)))]}(t,n);return as(e,o)}(i,c),f=-(u[0]+u[1]),l=f<s?s:f,[a,p]=e,h=og(a*a+p*p)*l;return[[r[0]+a/h,r[1]+p/h],1/l]}const{sqrt:cg}=Math,{abs:ig,sin:sg,cos:ug,max:fg,sqrt:lg}=Math;function ag(t){const{loops:n,maxCoordPowerOf2:e,squaredDiagonalLength:o}=t,c=(2**(e-21))**2,i=2**(e-46),s=lg(o),u=2**(e-32);return function(o,f,l,a){const{curve:{loop:p,ps:h},t:v,p:d}=a,g=function(t,n){const[e,o]=$d(t),r=Xv(o,n);return[[-r[0],-r[1]],Xv(e,n)]}(h,v),m=[-g[0][1],-g[1][1]],x=o?[0,-s]:0!==l?r(sg(l),ug(l))(m):m,_=o||0!==l?[[0,x[0]],[0,x[1]]]:[[-g[0][0],-g[0][1]],[-g[1][0],-g[1][1]]];let[b,w]=function(t,n,e,o,r){let c,i;const{p:s}=o;if(n)return[[s[0],s[1]-e],e];if(0===t)return rg(e,o,r);const{p:u}=o,[f,l]=r,a=e/cg(f*f+l*l),p=[f*a,l*a];return c=[u[0]+p[0],u[1]+p[1]],i=e,[c,i]}(l,o,s,a,x);const M=function(t,n,e,o,r,c,i){const{cpTrees:s}=r;if(n)return o.filter(t=>t!==e).flatMap(t=>t.curves.map(t=>({curve:t,ts:[0,1]})));const u=Ht(c)&&jt(c).isDull?1===c.t&&0===t?-1:0===c.t?1:Zh(i,c):0,f=Ev(s.get(e),c,u,0)?.[0];return f&&f!==f.next.next?Cv([f,f]):e.curves.map(t=>({curve:t,ts:[0,1]}))}(l,o,p,n,t,a,b),S=function(t,n,e,o){let r=t**2;const c=t/Ld(Gh(o));let i=[e[0]+c*o[0],e[1]+c*o[1]];for(let t=0;t<n.length;t++){const c=n[t],{ps:s}=c.curve,u=s[0],f=s[s.length-1];for(const t of[u,f]){if(ou(i,t)>r)continue;const{a0:n,b0:c}=jd(e,o,t);if(Hd(n)<=2**-40||Hd(c)<=2**-40)continue;const s=-c/n;if(s<2**-40)continue;const u=[s*o[0],s*o[1]],f=Gh(u);f<r&&(r=f,i=[e[0]+u[0],e[1]+u[1]])}}return Wd*r}(w,M,d,x),y=lg(S),C=lg(x[0]**2+x[1]**2);b=[d[0]+x[0]/C*y,d[1]+x[1]/C*y];const O=dv(M,b,(1+2**-20)*S),E=function(t,n,e,o,r,c){const i=[];for(let s=0;s<c.length;s++){const u=Fd(t,n,e,o,r,c[s]);i.push(...u)}let s=1/0;for(let t=0;t<i.length;t++){const n=i[t].d*(1+2**-46);n<s&&(s=n)}const u=[];for(let t=0;t<i.length;t++){const n=i[t];n.d*(1-2**-46)<=s&&u.push(n)}return u}(e,_,a,f,l,O);if(1!==E.length){if(0===E.length)return;if(!o&&!function(t,n){const{curve:e,s:o,x:r}=t[0],c=2**(n-40);for(let n=1;n<t.length;n++){const{x:e}=t[n];if(ig(r[0]-e[0])>c||ig(r[1]-e[1])>c)return!1}return!0}(E,e))return}const{x:N,d:I,curve:B,s:k}=E[0];if(f&&w<(1-u)*I)return void function(t,n,e,o){if(Ht(o)&&jt(o).isDull)return;const r={radius:n,center:e};Av(t,o,r,Zh(r.center,o),0)||Bv(!1,!1,r,[-.5,.5],t,[o,o])}(t,w,b,a);const P=xv(B.ps,k),T={curve:B,t:k,isSource:!1,p:P.map(t=>t[0]+t[1]),pDd:P},A={center:N,radius:I},z=Yd(a.p,T.p),D=Yd(N,T.p);if(!o){if(0===z)return;if(z<=fg((q=w,(F=lg(D))+(j=4*i)>=q?1/0:F*F*(2*q*j+j*j)/((q-F)*(F+j))),c))return}var q,F,j;return{circle:A,z:T}}}function pg(t,n,e,o,r){e=0===e.t?{...e,curve:e.curve.prev,t:1}:e;const c=Zh(n.center,e),i=Zh(n.center,o);if(Av(t,e,n,c,0))return;if(Av(t,o,n,i,0))return;const{anyFailed:s,cpNodes:u}=Bv(r,r,n,[c,i],t,[e,o]);if(!s)return r&&function(t,n){const{cpTrees:e}=t,[o,r]=n,c={...o.pointOnShape.circle},i=r.pointOnShape,s=Nv(!0,!0,!1,e.get(i.curve.loop),{...i,circle:c,order2:1},r,void 0,t.lastInsertId);s.holeCloserTwin=r,r.holeCloserTwin=s;const u=o.pointOnShape,f=Nv(!0,!0,!1,e.get(u.curve.loop),{...u,circle:c,order2:-1},o.prev,void 0,t.lastInsertId);f.holeCloserTwin=o,o.holeCloserTwin=f,f.prevOnCircle=s,f.nextOnCircle=s,s.prevOnCircle=f,s.nextOnCircle=f,r.next=o,o.prev=r,f.next=s,s.prev=f}(t,u),u[0];u.forEach(n=>{void 0!==n&&Z(n,t)})}const{PI:hg,atan2:vg}=Math;function dg(t,n,e,o){let r;const c=ag(t),i=n*hg/180;for(let n=0;n<e.length;n++){const s=e[n],u=o?[0]:gg(i,s);for(const e of u){const i=c(!1,o,e,s);if(i){const{circle:n,z:e}=i,o=pg(t,n,s,e,!1);r=r||o}if("undefined"!=typeof _debug_&&n+1===_debug_.directives.stopAfterTwoProngsNum)return}}return r}function gg(t,n){const e=[0];if(1===n.t){const{curve:o}=n,r=Ft(o.ps,o.next.ps);if(r.isQuiteDull){const n=$h(r.tangents[0]),o=$h(r.tangents[1]),c=(vg(n[1],n[0])+2*hg)%(2*hg),i=((vg(o[1],o[0])+2*hg)%(2*hg)-c+2*hg)%(2*hg);let s=t;for(;s<=i-t/2;)e.push(s),s+=t}}return e}function mg(t,n,e,o){let r;for(let c=0;c<e.length;c++){const i=dg(t,n,e[c],o);r=void 0===r?i:r}return r}const{atan2:xg}=Math,_g=wr;function bg(t,n){const e=t[0],o=t[1],r=n[0],c=n[1],i=Bo(_g(c,e),_g(r,o))[1],s=Pn(_g(r,e),_g(c,o))[1];return xg(i,s)}const{abs:wg}=Math;function Mg(t){const n=[];for(let e=0;e<t.length-1;e++){const o=[t[e+1][0]-t[e][0],t[e+1][1]-t[e][1]];0===o[0]&&0===o[1]||n.push(o)}const e=n.length;let o=0;for(let t=0;t<e-1;t++)o+=wg(bg(n[t],n[t+1]));return o}function Sg(t,n=.4,e=10,o=2**-16){const r=[0],c=[1];for(;;){const i=r[r.length-1],s=c[c.length-1],u=R(t,i,s),f=mu(u),l=Mg(u);if(f<=e&&l<=n||s-i<=o){if(r.push(c.pop()),1===s)return r;continue}const a=(i+s)/2;c.push(a)}}function yg(t){if(t.length<4)return[];const[[n,e],[o,r],[c,i],[s,u]]=t,f=o-n,l=r-e,a=c-o-f,p=i-r-l,h=s-c-f-2*a,v=u-i-l-2*p,d=a*v-p*h,g=f*v-l*h,m=f*p-l*a;return ye([d,g,m],0,1)?.map(t=>t.t)||[]}function Cg(t,n,e){return function(o){const r=[],c=o.curves;for(let o=0;o<c.length;o++){const i=c[o],s=i.ps;if(mu(s)<t)continue;let u=Sg(s,n,e);u=2===u.length?[.5]:u,u.push(...yg(s)),u=u.filter(t=>0!==t&&1!==t);const f=u.map(t=>{const n=xv(i.ps,t),e=n.map(t=>t[0]+t[1]);return{curve:i,t,isSource:!0,p:e,pDd:n}});r.push(...f)}return r}}const Og=pr,Eg=kn,Ng=Dn,Ig=Pn,Bg=Bo,kg=Ro,Pg=ko,Tg=Dn,Ag=Pn,zg=Bo;function Dg(t){if(Zs(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&fu(t)&&(t=ti(t)),3===t.length){const n=function(t){const[[n,e],[o,r],[c,i]]=t,s=Pg(o,n),u=Pg(c,o),f=zg(u,s),l=Pg(r,e),a=Pg(i,r),p=zg(a,l),h=Ag(Tg(s,f),Tg(l,p));return[Ag(Tg(f,f),Tg(p,p)),h]}(t);return{minima:[],maxima:ye(n,0,1)?.map(t=>t.t)||[],inflections:[]}}const n=function(t){const[[n,e,o],[r,c,i]]=$d(t),s=Bg(Ng(n,c),Ng(e,r)),u=Bg(Ng(n,i),Ng(o,r)),f=Bg(Ng(e,i),Ng(o,c)),l=Ig(Ng(n,n),Ng(r,r)),a=Ig(Ng(n,e),Ng(r,c)),p=Ig(Ng(n,o),Ng(r,i)),h=Ig(Ng(e,e),Ng(c,c)),v=Ig(Ng(e,o),Ng(c,i)),d=Ig(Ng(o,o),Ng(i,i)),g=Ig(Eg(8,p),Eg(3,h)),m=Eg(-4,Ng(l,s)),x=kg(Ig(Eg(10,Ng(l,u)),Eg(5,Ng(a,s)))),_=kg(Ig(Ig(Eg(4,Ng(l,f)),Eg(16,Ng(a,u))),Ng(h,s))),b=kg(Ig(Eg(10,Ng(a,f)),Ng(g,u))),w=kg(Ng(g,f)),M=Bg(Eg(2,Ng(d,u)),Eg(3,Ng(v,f)));return{inflectionPoly:[s,Og(u),f],otherExtremaPoly:[m,x,_,b,w,M]}}(t),e=n.inflectionPoly,o=n.otherExtremaPoly,r=ye(o,0,1)?.map(t=>t.t)||[],c=function(t){const n=t.length-1;if(n<=0)return[];const e=new Array(n);for(let o=0;o<n;o++)e[o]=kn(n-o,t[o]);return e}(o),i=[],s=[];for(let t=0;t<r.length;t++){const n=r[t],o=Jn(c,n);bt(gt(Jn(e,n),o))>=0?i.push(n):s.push(n)}return{minima:i,maxima:s,inflections:ye(e,0,1)?.map(t=>t.t)||[]}}const qg=2**-20,Fg=2**-20;function jg(t){const{curve:n,t:e}=t,{ps:o}=n,r=xv(o,e),c=r.map(t=>t[0]+t[1]);return{curve:n,t:t.t,isSource:!0,p:c,pDd:r}}function Hg(t,n,e,o,r){(r&&(o>t.val||o===t.val&&e>t.t)||!r&&(o<t.val||o===t.val&&e>t.t))&&(t.curve=n,t.t=e,t.val=o)}const Lg=nt(function(t){const n=[{curve:void 0,t:void 0,val:1/0},{curve:void 0,t:void 0,val:1/0}],e=[{curve:void 0,t:void 0,val:-1/0},{curve:void 0,t:void 0,val:-1/0}];return t.curves.forEach(function(t){const o=io(t.ps);for(let r=0;r<2;r++)Hg(n[r],t,o.ts[0][r],o.box[0][r],!1),Hg(e[r],t,o.ts[1][r],o.box[1][r],!0)}),{minX:jg(n[0]),minY:jg(n[1]),maxX:jg(e[0]),maxY:jg(e[1])}});function Wg(t){return Lg(t).minY}function Yg(t){const{loops:n}=t,e=n.map(Wg);let o;const r=ag(t);for(let n=1;n<e.length;n++){const c=e[n],i=r(!0,!1,0,c);if(!i)throw new Error("Unable to find hole-closing 2-prong");const{circle:s,z:u}=i,f=pg(t,s,c,u,!0);o=void 0===o?f:o}return o}function Xg(t){let n,e,o,r,c=1/0,i=-1/0,s=1/0,u=-1/0;for(const f of t){const t=Lg(f);t.minX.p[0]<c&&(n=t.minX,c=t.minX.p[0]),t.maxX.p[0]>i&&(e=t.maxX,i=t.maxX.p[0]),t.minY.p[1]<s&&(o=t.minY,s=t.minY.p[1]),t.maxY.p[1]>u&&(r=t.maxY,u=t.maxY.p[1])}return{minX:n,minY:o,maxX:e,maxY:r}}function Qg(t,n,e){"undefined"!=typeof _debug_&&(Dv=performance.now()),function(t){if("undefined"==typeof _debug_)return;const{looseBoundingBoxes:n,tightBoundingBoxes:e,boundingHulls:o,sharpCorners:r,dullCorners:c}=_debug_.elems;for(const i of t)for(const t of i.curves){const i=t.ps;o.push(wu(i,!0)),n.push(fv(i)),e.push(lv(i));const s=qt(i,t.next.ps);s.isQuiteSharp?r.push(t):s.isQuiteDull&&c.push(t)}}(t);const{minBezLength:o,maxCurviness:r,maxLength:c,angleIncrement:i}=e,s=Yv(o),u=function(t){return n=>{const e=[];for(let o=0;o<n.curves.length;o++){const r=n.curves[o];if(mu(r.ps)<t)continue;const{next:c,ps:i}=r;if(Ft(i,c.ps).isQuiteDull){const t=i[i.length-1],n=[[0,t[0]],[0,t[1]]];e.push({curve:r,t:1,isSource:!0,p:t,pDd:n}),e.push({curve:c,t:0,isSource:!0,p:t,pDd:n})}}return e}}(o),f=Cg(o,r,c),l=function(t){return function(n){const e=[];for(let o=0;o<n.curves.length;o++){const r=n.curves[o],{ps:c}=r,i=mu(c);if(i<t)continue;const s=c[0],u=c[c.length-1],f=i*Fg;for(const t of Dg(c).maxima){if(t<qg||t>.9999990463256836)continue;const n=xv(c,t),o=n.map(t=>t[0]+t[1]);on(o,s)<f||on(o,u)<f||e.push({curve:r,t,isSource:!0,p:o,pDd:n})}}return e}}(o),a=Xg(t),p=(a.maxX.p[0]-a.minX.p[0])**2+(a.maxY.p[1]-a.minY.p[1])**2,h=t.map(s),v={id:0},d={maxCoordPowerOf2:n,squaredDiagonalLength:p,loops:t,cpTrees:Lv(t,h,v),lastInsertId:v};let g;if(g=Yg(d),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterHoleClosers)return{cpNode:g,meta:d};if(function(){if("undefined"==typeof _debug_)return;const t=performance.now();_debug_.timing.holeClosers+=t-Dv,Dv=t}(),g=mg(d,i,t.map(u),!1)||g,g=mg(d,i,t.map(l),!0)||g,g=mg(d,i,t.map(f),!1)||g,function(){if("undefined"==typeof _debug_)return;const t=performance.now();_debug_.timing.oneAnd2Prongs+=t-Dv,Dv=t}(),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterTwoProngs)return{cpNode:g,meta:d};if(g=function(t,n){if(void 0===n)return;const e=new Set;let o=!0;for(;o;){o=!1;const r=new Set(B(n));for(const n of r){const c=Fv(t,n);if(void 0===c)return jv(e);const{closeBysFor3Prong:i,addedCpNodes:s}=c;s.length>0&&(o=!0),void 0===i?e.add(n):(o=!0,Hv(t,i,r,e)),s.forEach(t=>t.forEach(t=>e.add(t)))}n=jv(e)}return n}(d,g),void 0===g)return;if("undefined"!=typeof _debug_&&_debug_.directives.stopAfterThreeProngs)return{cpNode:g,meta:d};const m={cpNode:g,meta:d};return"undefined"!=typeof _debug_&&(_debug_.timing.threeProngs+=performance.now()-Dv),m}const{ceil:Vg,log2:Ug}=Math;function Rg(t,n){"undefined"!=typeof _debug_&&(_debug_.elems={..._debug_.elems,looseBoundingBoxes:[],tightBoundingBoxes:[],boundingHulls:[],sharpCorners:[],dullCorners:[]});const{maxCoordinate:e}=function(t){let n=0,e=1/0,o=-1/0,r=1/0,c=-1/0;for(const i of t)for(const t of i)for(const i of t){const t=i[0],s=i[1],u=mh(xh(t),xh(s));u>n&&(n=u),t<e&&(e=t),t>o&&(o=t),s<r&&(r=s),s>c&&(c=s)}return{maxCoordinate:n,width:o-e,height:c-r}}(t),o=Vg(Ug(e)),r=function(t,n){const e={...n};for(const n in Rh){const o=n;let r=e[o];const c=Rh[o],{range:i,scaleByMaxCoordinate:s}=c;r<i[0]&&(r=i[0]),r>i[1]&&(r=i[1]),s&&(r*=2**(t-10)),e[o]=r}return e}(o,{...Uh,...n||{}}),{applySat:c,simplify:i,satScale:s,simplifyTolerance:u}=r,f=gh(t,{forceOrientationNegative:!0}),l=[];for(const t of f){let n=Qg(t,o,r);void 0!==n&&(c&&(n=Vh(n,s)),i&&(n=zh(n,u)),l.push(n))}return l}function $g(t){const n=function(t){let n=t;const e=Lh(t);for(;e.length;){const o=e.pop();if(o.isHoleClosing||o.isIntersection)continue;let r=o.next;for(;;){r=r.next;let e=!1;const o=r.prevOnCircle;if(T(r)>2){const n=r.nextOnCircle;Gt(r,t)?e=!0:r.next===n?r=n:n.next!==o&&(e=!0)}else if(A(r)&&!r.isIntersection)return void(n=r);if(e){o.next=r,r.prev=o,n=r;break}}}return n}(Q(t.cpNode));if(n)return{cpNode:n,meta:{...t.meta,cpTrees:Sh(n)}}}function Zg(t){const n=B(t).filter(t=>z(t)>=3);if(0!==n.length)return jh(n)}function Gg(t,n,e,o){const r=[];for(const o of t)r.push({type:0,item:o,x:n(o)}),r.push({type:1,item:o,x:e(o)});r.sort(Jg);const c=new Set,i=[];for(const t of r){const{item:n}=t;if(0===t.type){for(const t of c.values())o(n,t)&&i.push([n,t]);c.add(n)}else 1===t.type&&c.delete(t.item)}return i}function Jg(t,n){const e=t.x-n.x;return 0!==e?e:0===t.type?-1:1}function Kg(t,n){let{curve:e,t:o}=t;const{p:r}=t;return n&&1===o&&(o=0,e=e.next),n||0!==o||(o=1,e=e.prev),[r,it(r,ft(e.ps,o))]}function tm(t,n){return Ut(Kg(t.pointOnShape,!0),Kg(n.pointOnShape,!1))}function nm(t){const n=t.length,e=new Map(t.map((t,n)=>[t.pointOnShape.circle,n])),o=[];for(let r=0;r<n;r++){const c=t[r],i=new Array(n).fill(1/0);i[r]=0;let s=c;do{let t=Xh(s),n=s.next;for(;;){const o=e.get(n.pointOnShape.circle);if(void 0!==o){o!==r&&t<i[o]&&(i[o]=t);break}if(n.isHoleClosing)n=n.holeCloserTwin.next;else{if(ro(n))break;t+=Xh(n),n=n.next}}s=s.nextOnCircle}while(s!==c);o.push(i)}return o}function em(t,n){const{lastInsertId:e,cpTrees:o,...r}=n;return{cpTrees:Sh(t),lastInsertId:{id:e.id},...r}}function om(t){const n=Q(t.cpNode);return{cpNode:n,meta:em(n,t.meta)}}function rm(t){let{cpNode:n}=t,e=n;do{if(D(n)||n.next!==n.nextOnCircle){n=n.next;continue}const t=n.next,o=t.next,r=n.next.nextOnCircle;n.next=o,n.nextOnCircle=r,o.prev=n,r.prevOnCircle=n,e===t&&(e=n),n=n.next}while(n!==e);return t.cpNode=n,t}function cm(t,n){return t.pointOnShape.curve.loop===n.pointOnShape.curve.loop}function im(t){const n=[],e=[t],o=new Set(e);for(;e.length>0;){const t=[],r=e.pop(),c=r.pointOnShape.curve.loop;let i=r;do{if(c===i.pointOnShape.curve.loop){t.push(i),i=i.next;continue}const n=i.holeCloserTwin;o.has(n)||(o.add(n),o.add(n.prevOnCircle.holeCloserTwin),e.push(n)),i=i.prev.holeCloserTwin}while(i!==r);n.push(t)}return n}function sm(t){let{cpNode:n}=t;for(;!D(n);)n=n.next;return cm(n,n.next)||(n=n.holeCloserTwin),im(n)}const{max:um,abs:fm,round:lm,log2:am}=Math;function pm(t,n=void 0){let e=-1/0;for(const n of t)e=um(e,n.meta.maxCoordPowerOf2);const o=function(t,n){return function(e){const o=e.next,r=e.pointOnShape,c=o.pointOnShape,{curve:i,circle:s,p:u}=r,{curve:f,p:l}=c;if(u[0]===l[0]&&u[1]===l[1])return;if(i.loop!==f.loop)return;const a=on(s.center,u);if(void 0!==n){const e=2**(t-n);if(fm(s.radius-a)>e)throw new Error(`Medial circle radius must be about the same (2**${lm(am(e))}) as distance from medial circle center to point on shape, found: medial radius ${s.radius}, distance: ${a}`)}return function(t){return Ut(Kg(t.pointOnShape,!0),Kg(t.next.pointOnShape,!1))}(e)}}(e,n),r=function(t,n,e){if(!Number.isInteger(3))throw new Error("depth must be an integer >= 1");return function t(n,o){const r=o;if(1===n){const t=[];for(let n=0;n<r.length;n++){const o=e(r[n]);void 0===o||t.push(o)}return t}const c=[];for(let e=0;e<r.length;e++)c.push(t(n-1,r[e]));return c}(3,n)}(0,t.map(t=>({cpNode:Q(t.cpNode),meta:t.meta})).map(rm).map(sm),o);return r.map(t=>t.map(t=>t.flat()))}function hm(t){const{idx:n,beziers:e}=t;return{idx:n,beziers:e}}function vm(t){const n=[],e=new Set,o=t;do{const{id:o,isHoleClosing:r,isIntersection:c,pointOnShape:i,prev:s,next:u,nextOnCircle:f,prevOnCircle:l,holeCloserTwin:a}=t,{curve:p,p:h,pDd:v,t:d,isSource:g,circle:m,order:x,order2:_}=i,{idx:b,loop:w,ps:M,prev:S,next:y}=p;e.has(w)||e.add(w);const C={curveIdx:b,loopIdx:w.idx,p:h,pDd:v,t:d,isSource:g,circle:m,order:x,order2:_};n.push({id:o,isHoleClosing:r,isIntersection:c,pointOnShape:C,prev:s.id,next:u.id,prevOnCircle:l.id,nextOnCircle:f.id,holeCloserTwin:a?.id}),t=t.next}while(t!==o);const r=Array.from(e).sort((t,n)=>t.idx-n.idx);return{cpNodes:n,loops:r.map(hm)}}const dm=["prev","next","prevOnCircle","nextOnCircle","holeCloserTwin"];function gm(n){const{idx:e,beziers:o}=n;return t(o,e)}function mm(t){const{cpNodes:n,loops:e}=t,o=e.map(gm),r=new Map(o.map(t=>[t.idx,t])),c=n.map(t=>{const{id:n,pointOnShape:e,isHoleClosing:o,isIntersection:c}=t,{circle:i,order:s,order2:u}=e,{curveIdx:f,loopIdx:l,p:a,pDd:p,t:h,isSource:v}=e,d={circle:i,curve:r.get(l).curves[f],p:a,pDd:p,t:h,isSource:v,order:s,order2:u};return{...t,id:n,isHoleClosing:o,isIntersection:c,pointOnShape:d}}),i=new Map(c.map(t=>[t.id,t]));for(const t of c)for(const n of dm){const e=t[n];void 0!==e&&(t[n]=i.get(e))}const s=new Set;for(const t of c){if(s.has(t))continue;const{circle:n}=t.pointOnShape;for(const e of L(t))s.add(e),e.pointOnShape.circle=n}return c[0]}function xm(t,n){return{center:t.center,radius:n*t.radius}}export{eo as CpNodeFs,e as beziersToSvgPathStr,Q as clone,om as cloneMat,em as cloneMeta,no as cpNodeComparator,Lv as createInitialCpTree,Wv as enableDebugForMat,F as enhanceCpNode,ag as find2Prong,Yg as findAndAddHoleClosing2Prongs,Rg as findMats,I as floydWarshall,mm as fromStringifyable,L as getAllOnCircle,B as getAllOnLoop,im as getAllOnLoop_ByLoop,Ke as getAllVertices,U as getBoundaryBezierPartsToNext,Xe as getBoundaryBeziersBetween,$ as getBoundaryBeziersToNext,Cv as getBoundaryPieceBeziers,nn as getBranch,en as getBranchBeziers,bh as getBranches,J as getChildren,_v as getCloseBoundaryPointsCertified,av as getClosestSquareDistanceToRect,Yt as getEdgeDirection,Zt as getFirstExit,Cg as getFor2ProngsOnLoop,nm as getGraph,k as getHoleClosers,tm as getImpliedBoundaryBezierBetween,Je as getInitialDegAngleBetweenMatCurves,Zg as getLargest3Prong,Hh as getLargestVertex,Rt as getMatCurveBetween,$t as getMatCurveToNext,Ve as getMatCurvesBetween,_h as getNonTerminatingOnCircle,rg as getOsculatingCircle,N as getPathsFromStr,uv as getPotentialClosestPointsOnCurveCertified,T as getProngCount,z as getRealProngCount,Qe as getSalience,Qh as getSatCulls,Xg as getShapeBounds,Yv as getSharpCornersOnLoop,W as getVertexForwardChildren,D as isFullyTerminating,Gt as isOnSameCircle,cm as isOnSameLoop,Jt as isOneProng,q as isSharp,A as isTerminating,tn as isTrivial,Kt as isTwoProng,ro as isVertexSpecial,t as loopFromBeziers,pm as reconstructFromMats,G as removeVertex,xm as scaleCircle,zh as simplifyMat,Gg as sweepLine,Vh as toScaleAxis,vm as toStringifyable,j as traverseCp,H as traverseEdges,Y as traverseVertices,$g as trimMat};
|