node-red-contrib-tak-registration 0.2.1 → 0.3.1
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/README.md +20 -10
- package/node_modules/@turf/along/LICENSE +20 -0
- package/node_modules/@turf/along/README.md +69 -0
- package/node_modules/@turf/along/dist/es/index.js +50 -0
- package/node_modules/@turf/along/dist/es/package.json +1 -0
- package/node_modules/@turf/along/dist/js/index.d.ts +22 -0
- package/node_modules/@turf/along/dist/js/index.js +56 -0
- package/node_modules/@turf/along/package.json +95 -0
- package/node_modules/@turf/angle/LICENSE +20 -0
- package/node_modules/@turf/angle/README.md +64 -0
- package/node_modules/@turf/angle/dist/es/index.js +50 -0
- package/node_modules/@turf/angle/dist/es/package.json +1 -0
- package/node_modules/@turf/angle/dist/js/index.d.ts +22 -0
- package/node_modules/@turf/angle/dist/js/index.js +55 -0
- package/node_modules/@turf/angle/package.json +102 -0
- package/node_modules/@turf/area/LICENSE +20 -0
- package/node_modules/@turf/area/README.md +54 -0
- package/node_modules/@turf/area/dist/es/index.js +114 -0
- package/node_modules/@turf/area/dist/es/package.json +1 -0
- package/node_modules/@turf/area/dist/js/index.d.ts +17 -0
- package/node_modules/@turf/area/dist/js/index.js +117 -0
- package/node_modules/@turf/area/package.json +94 -0
- package/node_modules/@turf/bbox/LICENSE +20 -0
- package/node_modules/@turf/bbox/README.md +53 -0
- package/node_modules/@turf/bbox/dist/es/index.js +35 -0
- package/node_modules/@turf/bbox/dist/es/package.json +1 -0
- package/node_modules/@turf/bbox/dist/js/index.d.ts +17 -0
- package/node_modules/@turf/bbox/dist/js/index.js +37 -0
- package/node_modules/@turf/bbox/package.json +108 -0
- package/node_modules/@turf/bbox-clip/LICENSE +20 -0
- package/node_modules/@turf/bbox-clip/README.md +68 -0
- package/node_modules/@turf/bbox-clip/dist/es/index.js +68 -0
- package/node_modules/@turf/bbox-clip/dist/es/lib/lineclip.js +107 -0
- package/node_modules/@turf/bbox-clip/dist/es/package.json +1 -0
- package/node_modules/@turf/bbox-clip/dist/js/index.d.ts +20 -0
- package/node_modules/@turf/bbox-clip/dist/js/index.js +71 -0
- package/node_modules/@turf/bbox-clip/dist/js/lib/lineclip.d.ts +3 -0
- package/node_modules/@turf/bbox-clip/dist/js/lib/lineclip.js +111 -0
- package/node_modules/@turf/bbox-clip/package.json +108 -0
- package/node_modules/@turf/bbox-polygon/LICENSE +20 -0
- package/node_modules/@turf/bbox-polygon/README.md +66 -0
- package/node_modules/@turf/bbox-polygon/dist/es/index.js +36 -0
- package/node_modules/@turf/bbox-polygon/dist/es/package.json +1 -0
- package/node_modules/@turf/bbox-polygon/dist/js/index.d.ts +22 -0
- package/node_modules/@turf/bbox-polygon/dist/js/index.js +39 -0
- package/node_modules/@turf/bbox-polygon/package.json +92 -0
- package/node_modules/@turf/bearing/LICENSE +20 -0
- package/node_modules/@turf/bearing/README.md +67 -0
- package/node_modules/@turf/bearing/dist/es/index.js +57 -0
- package/node_modules/@turf/bearing/dist/es/package.json +1 -0
- package/node_modules/@turf/bearing/dist/js/index.d.ts +26 -0
- package/node_modules/@turf/bearing/dist/js/index.js +60 -0
- package/node_modules/@turf/bearing/package.json +96 -0
- package/node_modules/@turf/bezier-spline/LICENSE +20 -0
- package/node_modules/@turf/bezier-spline/README.md +79 -0
- package/node_modules/@turf/bezier-spline/dist/es/index.js +60 -0
- package/node_modules/@turf/bezier-spline/dist/es/lib/spline.js +158 -0
- package/node_modules/@turf/bezier-spline/dist/es/package.json +1 -0
- package/node_modules/@turf/bezier-spline/dist/js/index.d.ts +37 -0
- package/node_modules/@turf/bezier-spline/dist/js/index.js +65 -0
- package/node_modules/@turf/bezier-spline/dist/js/lib/spline.d.ts +62 -0
- package/node_modules/@turf/bezier-spline/dist/js/lib/spline.js +160 -0
- package/node_modules/@turf/bezier-spline/package.json +93 -0
- package/node_modules/@turf/boolean-clockwise/LICENSE +20 -0
- package/node_modules/@turf/boolean-clockwise/README.md +60 -0
- package/node_modules/@turf/boolean-clockwise/dist/es/index.js +30 -0
- package/node_modules/@turf/boolean-clockwise/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-clockwise/dist/js/index.d.ts +17 -0
- package/node_modules/@turf/boolean-clockwise/dist/js/index.js +33 -0
- package/node_modules/@turf/boolean-clockwise/package.json +110 -0
- package/node_modules/@turf/boolean-contains/LICENSE +20 -0
- package/node_modules/@turf/boolean-contains/README.md +63 -0
- package/node_modules/@turf/boolean-contains/dist/es/index.js +225 -0
- package/node_modules/@turf/boolean-contains/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-contains/dist/js/index.d.ts +46 -0
- package/node_modules/@turf/boolean-contains/dist/js/index.js +241 -0
- package/node_modules/@turf/boolean-contains/package.json +107 -0
- package/node_modules/@turf/boolean-crosses/LICENSE +20 -0
- package/node_modules/@turf/boolean-crosses/README.md +64 -0
- package/node_modules/@turf/boolean-crosses/dist/es/index.js +166 -0
- package/node_modules/@turf/boolean-crosses/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-crosses/dist/js/index.d.ts +21 -0
- package/node_modules/@turf/boolean-crosses/dist/js/index.js +171 -0
- package/node_modules/@turf/boolean-crosses/package.json +106 -0
- package/node_modules/@turf/boolean-disjoint/LICENSE +20 -0
- package/node_modules/@turf/boolean-disjoint/README.md +60 -0
- package/node_modules/@turf/boolean-disjoint/dist/es/index.js +168 -0
- package/node_modules/@turf/boolean-disjoint/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-disjoint/dist/js/index.d.ts +17 -0
- package/node_modules/@turf/boolean-disjoint/dist/js/index.js +173 -0
- package/node_modules/@turf/boolean-disjoint/package.json +106 -0
- package/node_modules/@turf/boolean-equal/LICENSE +20 -0
- package/node_modules/@turf/boolean-equal/README.md +66 -0
- package/node_modules/@turf/boolean-equal/dist/es/index.js +30 -0
- package/node_modules/@turf/boolean-equal/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-equal/dist/js/index.d.ts +21 -0
- package/node_modules/@turf/boolean-equal/dist/js/index.js +35 -0
- package/node_modules/@turf/boolean-equal/package.json +112 -0
- package/node_modules/@turf/boolean-intersects/LICENSE +20 -0
- package/node_modules/@turf/boolean-intersects/README.md +55 -0
- package/node_modules/@turf/boolean-intersects/dist/es/index.js +28 -0
- package/node_modules/@turf/boolean-intersects/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-intersects/dist/js/index.d.ts +16 -0
- package/node_modules/@turf/boolean-intersects/dist/js/index.js +34 -0
- package/node_modules/@turf/boolean-intersects/package.json +104 -0
- package/node_modules/@turf/boolean-overlap/LICENSE +20 -0
- package/node_modules/@turf/boolean-overlap/README.md +73 -0
- package/node_modules/@turf/boolean-overlap/dist/es/index.js +80 -0
- package/node_modules/@turf/boolean-overlap/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-overlap/dist/js/index.d.ts +23 -0
- package/node_modules/@turf/boolean-overlap/dist/js/index.js +86 -0
- package/node_modules/@turf/boolean-overlap/package.json +110 -0
- package/node_modules/@turf/boolean-parallel/LICENSE +20 -0
- package/node_modules/@turf/boolean-parallel/README.md +57 -0
- package/node_modules/@turf/boolean-parallel/dist/es/index.js +71 -0
- package/node_modules/@turf/boolean-parallel/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-parallel/dist/js/index.d.ts +17 -0
- package/node_modules/@turf/boolean-parallel/dist/js/index.js +76 -0
- package/node_modules/@turf/boolean-parallel/package.json +100 -0
- package/node_modules/@turf/boolean-point-in-polygon/LICENSE +20 -0
- package/node_modules/@turf/boolean-point-in-polygon/README.md +76 -0
- package/node_modules/@turf/boolean-point-in-polygon/dist/es/index.js +115 -0
- package/node_modules/@turf/boolean-point-in-polygon/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-point-in-polygon/dist/js/index.d.ts +28 -0
- package/node_modules/@turf/boolean-point-in-polygon/dist/js/index.js +118 -0
- package/node_modules/@turf/boolean-point-in-polygon/package.json +104 -0
- package/node_modules/@turf/boolean-point-on-line/LICENSE +20 -0
- package/node_modules/@turf/boolean-point-on-line/README.md +60 -0
- package/node_modules/@turf/boolean-point-on-line/dist/es/index.js +102 -0
- package/node_modules/@turf/boolean-point-on-line/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-point-on-line/dist/js/index.d.ts +23 -0
- package/node_modules/@turf/boolean-point-on-line/dist/js/index.js +104 -0
- package/node_modules/@turf/boolean-point-on-line/package.json +100 -0
- package/node_modules/@turf/boolean-within/LICENSE +20 -0
- package/node_modules/@turf/boolean-within/README.md +58 -0
- package/node_modules/@turf/boolean-within/dist/es/index.js +215 -0
- package/node_modules/@turf/boolean-within/dist/es/package.json +1 -0
- package/node_modules/@turf/boolean-within/dist/js/index.d.ts +20 -0
- package/node_modules/@turf/boolean-within/dist/js/index.js +220 -0
- package/node_modules/@turf/boolean-within/package.json +108 -0
- package/node_modules/@turf/buffer/LICENSE +20 -0
- package/node_modules/@turf/buffer/README.md +76 -0
- package/node_modules/@turf/buffer/dist/es/index.js +175 -0
- package/node_modules/@turf/buffer/dist/es/package.json +1 -0
- package/node_modules/@turf/buffer/dist/js/index.js +182 -0
- package/node_modules/@turf/buffer/index.d.ts +61 -0
- package/node_modules/@turf/buffer/package.json +112 -0
- package/node_modules/@turf/center/LICENSE +20 -0
- package/node_modules/@turf/center/README.md +71 -0
- package/node_modules/@turf/center/dist/es/index.js +34 -0
- package/node_modules/@turf/center/dist/es/package.json +1 -0
- package/node_modules/@turf/center/dist/js/index.d.ts +31 -0
- package/node_modules/@turf/center/dist/js/index.js +39 -0
- package/node_modules/@turf/center/package.json +101 -0
- package/node_modules/@turf/center-mean/LICENSE +20 -0
- package/node_modules/@turf/center-mean/README.md +75 -0
- package/node_modules/@turf/center-mean/dist/es/index.js +51 -0
- package/node_modules/@turf/center-mean/dist/es/package.json +1 -0
- package/node_modules/@turf/center-mean/dist/js/index.d.ts +35 -0
- package/node_modules/@turf/center-mean/dist/js/index.js +53 -0
- package/node_modules/@turf/center-mean/package.json +108 -0
- package/node_modules/@turf/center-median/LICENSE +20 -0
- package/node_modules/@turf/center-median/README.md +103 -0
- package/node_modules/@turf/center-median/dist/es/index.js +135 -0
- package/node_modules/@turf/center-median/dist/es/package.json +1 -0
- package/node_modules/@turf/center-median/dist/js/index.d.ts +62 -0
- package/node_modules/@turf/center-median/dist/js/index.js +140 -0
- package/node_modules/@turf/center-median/package.json +103 -0
- package/node_modules/@turf/center-of-mass/LICENSE +20 -0
- package/node_modules/@turf/center-of-mass/README.md +67 -0
- package/node_modules/@turf/center-of-mass/dist/es/index.js +81 -0
- package/node_modules/@turf/center-of-mass/dist/es/package.json +1 -0
- package/node_modules/@turf/center-of-mass/dist/js/index.d.ts +21 -0
- package/node_modules/@turf/center-of-mass/dist/js/index.js +86 -0
- package/node_modules/@turf/center-of-mass/package.json +95 -0
- package/node_modules/@turf/centroid/LICENSE +20 -0
- package/node_modules/@turf/centroid/README.md +62 -0
- package/node_modules/@turf/centroid/dist/es/index.js +32 -0
- package/node_modules/@turf/centroid/dist/es/package.json +1 -0
- package/node_modules/@turf/centroid/dist/js/index.d.ts +22 -0
- package/node_modules/@turf/centroid/dist/js/index.js +34 -0
- package/node_modules/@turf/centroid/package.json +101 -0
- package/node_modules/@turf/circle/LICENSE +20 -0
- package/node_modules/@turf/circle/README.md +71 -0
- package/node_modules/@turf/circle/dist/es/index.js +41 -0
- package/node_modules/@turf/circle/dist/es/package.json +1 -0
- package/node_modules/@turf/circle/dist/js/index.d.ts +27 -0
- package/node_modules/@turf/circle/dist/js/index.js +46 -0
- package/node_modules/@turf/circle/package.json +99 -0
- package/node_modules/@turf/clean-coords/LICENSE +20 -0
- package/node_modules/@turf/clean-coords/README.md +61 -0
- package/node_modules/@turf/clean-coords/dist/es/index.js +159 -0
- package/node_modules/@turf/clean-coords/dist/es/package.json +1 -0
- package/node_modules/@turf/clean-coords/dist/js/index.d.ts +22 -0
- package/node_modules/@turf/clean-coords/dist/js/index.js +161 -0
- package/node_modules/@turf/clean-coords/package.json +103 -0
- package/node_modules/@turf/clone/LICENSE +20 -0
- package/node_modules/@turf/clone/README.md +49 -0
- package/node_modules/@turf/clone/dist/es/index.js +157 -0
- package/node_modules/@turf/clone/dist/es/package.json +1 -0
- package/node_modules/@turf/clone/dist/js/index.d.ts +15 -0
- package/node_modules/@turf/clone/dist/js/index.js +159 -0
- package/node_modules/@turf/clone/package.json +109 -0
- package/node_modules/@turf/clusters/LICENSE +20 -0
- package/node_modules/@turf/clusters/README.md +208 -0
- package/node_modules/@turf/clusters/dist/es/index.js +294 -0
- package/node_modules/@turf/clusters/dist/es/package.json +1 -0
- package/node_modules/@turf/clusters/dist/js/index.d.ts +197 -0
- package/node_modules/@turf/clusters/dist/js/index.js +303 -0
- package/node_modules/@turf/clusters/package.json +98 -0
- package/node_modules/@turf/clusters-dbscan/LICENSE +20 -0
- package/node_modules/@turf/clusters-dbscan/README.md +73 -0
- package/node_modules/@turf/clusters-dbscan/dist/es/index.js +70 -0
- package/node_modules/@turf/clusters-dbscan/dist/es/package.json +1 -0
- package/node_modules/@turf/clusters-dbscan/dist/js/index.d.ts +35 -0
- package/node_modules/@turf/clusters-dbscan/dist/js/index.js +75 -0
- package/node_modules/@turf/clusters-dbscan/package.json +118 -0
- package/node_modules/@turf/clusters-kmeans/LICENSE +20 -0
- package/node_modules/@turf/clusters-kmeans/README.md +69 -0
- package/node_modules/@turf/clusters-kmeans/dist/es/index.js +57 -0
- package/node_modules/@turf/clusters-kmeans/dist/es/package.json +1 -0
- package/node_modules/@turf/clusters-kmeans/dist/js/index.d.ts +31 -0
- package/node_modules/@turf/clusters-kmeans/dist/js/index.js +62 -0
- package/node_modules/@turf/clusters-kmeans/package.json +119 -0
- package/node_modules/@turf/collect/LICENSE +20 -0
- package/node_modules/@turf/collect/README.md +73 -0
- package/node_modules/@turf/collect/dist/es/index.js +68 -0
- package/node_modules/@turf/collect/dist/es/package.json +1 -0
- package/node_modules/@turf/collect/dist/js/index.d.ts +33 -0
- package/node_modules/@turf/collect/dist/js/index.js +73 -0
- package/node_modules/@turf/collect/node_modules/quickselect/LICENSE +15 -0
- package/node_modules/@turf/collect/node_modules/quickselect/README.md +28 -0
- package/node_modules/@turf/collect/node_modules/quickselect/index.js +54 -0
- package/node_modules/@turf/collect/node_modules/quickselect/package.json +69 -0
- package/node_modules/@turf/collect/node_modules/quickselect/quickselect.js +63 -0
- package/node_modules/@turf/collect/node_modules/rbush/LICENSE +21 -0
- package/node_modules/@turf/collect/node_modules/rbush/README.md +291 -0
- package/node_modules/@turf/collect/node_modules/rbush/index.js +562 -0
- package/node_modules/@turf/collect/node_modules/rbush/package.json +85 -0
- package/node_modules/@turf/collect/node_modules/rbush/rbush.js +626 -0
- package/node_modules/@turf/collect/node_modules/rbush/rbush.min.js +1 -0
- package/node_modules/@turf/collect/package.json +101 -0
- package/node_modules/@turf/combine/LICENSE +20 -0
- package/node_modules/@turf/combine/README.md +81 -0
- package/node_modules/@turf/combine/dist/es/index.js +79 -0
- package/node_modules/@turf/combine/dist/es/package.json +1 -0
- package/node_modules/@turf/combine/dist/js/index.d.ts +27 -0
- package/node_modules/@turf/combine/dist/js/index.js +81 -0
- package/node_modules/@turf/combine/package.json +91 -0
- package/node_modules/@turf/concave/LICENSE +20 -0
- package/node_modules/@turf/concave/README.md +81 -0
- package/node_modules/@turf/concave/dist/es/index.js +83 -0
- package/node_modules/@turf/concave/dist/es/lib/turf-dissolve.js +71 -0
- package/node_modules/@turf/concave/dist/es/lib/turf-line-dissolve.js +105 -0
- package/node_modules/@turf/concave/dist/es/lib/turf-polygon-dissolve.js +36 -0
- package/node_modules/@turf/concave/dist/es/package.json +1 -0
- package/node_modules/@turf/concave/dist/js/index.d.ts +33 -0
- package/node_modules/@turf/concave/dist/js/index.js +88 -0
- package/node_modules/@turf/concave/dist/js/lib/turf-dissolve.d.ts +15 -0
- package/node_modules/@turf/concave/dist/js/lib/turf-dissolve.js +76 -0
- package/node_modules/@turf/concave/dist/js/lib/turf-line-dissolve.d.ts +14 -0
- package/node_modules/@turf/concave/dist/js/lib/turf-line-dissolve.js +110 -0
- package/node_modules/@turf/concave/dist/js/lib/turf-polygon-dissolve.d.ts +12 -0
- package/node_modules/@turf/concave/dist/js/lib/turf-polygon-dissolve.js +42 -0
- package/node_modules/@turf/concave/package.json +138 -0
- package/node_modules/@turf/convex/LICENSE +20 -0
- package/node_modules/@turf/convex/README.md +83 -0
- package/node_modules/@turf/convex/dist/es/index.js +51 -0
- package/node_modules/@turf/convex/dist/es/package.json +1 -0
- package/node_modules/@turf/convex/dist/js/index.d.ts +33 -0
- package/node_modules/@turf/convex/dist/js/index.js +57 -0
- package/node_modules/@turf/convex/package.json +94 -0
- package/node_modules/@turf/destination/LICENSE +20 -0
- package/node_modules/@turf/destination/README.md +75 -0
- package/node_modules/@turf/destination/dist/es/index.js +47 -0
- package/node_modules/@turf/destination/dist/es/package.json +1 -0
- package/node_modules/@turf/destination/dist/js/index.d.ts +31 -0
- package/node_modules/@turf/destination/dist/js/index.js +50 -0
- package/node_modules/@turf/destination/package.json +102 -0
- package/node_modules/@turf/difference/LICENSE +20 -0
- package/node_modules/@turf/difference/README.md +77 -0
- package/node_modules/@turf/difference/dist/es/index.js +53 -0
- package/node_modules/@turf/difference/dist/es/package.json +1 -0
- package/node_modules/@turf/difference/dist/js/index.js +60 -0
- package/node_modules/@turf/difference/index.d.ts +9 -0
- package/node_modules/@turf/difference/package.json +88 -0
- package/node_modules/@turf/dissolve/LICENSE +20 -0
- package/node_modules/@turf/dissolve/README.md +96 -0
- package/node_modules/@turf/dissolve/dist/es/index.js +81 -0
- package/node_modules/@turf/dissolve/dist/es/package.json +1 -0
- package/node_modules/@turf/dissolve/dist/js/index.js +89 -0
- package/node_modules/@turf/dissolve/index.d.ts +11 -0
- package/node_modules/@turf/dissolve/package.json +91 -0
- package/node_modules/@turf/distance/LICENSE +20 -0
- package/node_modules/@turf/distance/README.md +69 -0
- package/node_modules/@turf/distance/dist/es/index.js +39 -0
- package/node_modules/@turf/distance/dist/es/package.json +1 -0
- package/node_modules/@turf/distance/dist/js/index.d.ts +27 -0
- package/node_modules/@turf/distance/dist/js/index.js +41 -0
- package/node_modules/@turf/distance/package.json +109 -0
- package/node_modules/@turf/distance-weight/LICENSE +20 -0
- package/node_modules/@turf/distance-weight/README.md +64 -0
- package/node_modules/@turf/distance-weight/dist/es/index.js +105 -0
- package/node_modules/@turf/distance-weight/dist/es/package.json +1 -0
- package/node_modules/@turf/distance-weight/dist/js/index.d.ts +37 -0
- package/node_modules/@turf/distance-weight/dist/js/index.js +112 -0
- package/node_modules/@turf/distance-weight/package.json +99 -0
- package/node_modules/@turf/ellipse/LICENSE +20 -0
- package/node_modules/@turf/ellipse/README.md +72 -0
- package/node_modules/@turf/ellipse/dist/es/index.js +104 -0
- package/node_modules/@turf/ellipse/dist/es/package.json +1 -0
- package/node_modules/@turf/ellipse/dist/js/index.js +112 -0
- package/node_modules/@turf/ellipse/index.d.ts +15 -0
- package/node_modules/@turf/ellipse/package.json +101 -0
- package/node_modules/@turf/envelope/LICENSE +20 -0
- package/node_modules/@turf/envelope/README.md +61 -0
- package/node_modules/@turf/envelope/dist/es/index.js +26 -0
- package/node_modules/@turf/envelope/dist/es/package.json +1 -0
- package/node_modules/@turf/envelope/dist/js/index.js +34 -0
- package/node_modules/@turf/envelope/index.d.ts +6 -0
- package/node_modules/@turf/envelope/package.json +90 -0
- package/node_modules/@turf/explode/LICENSE +20 -0
- package/node_modules/@turf/explode/README.md +59 -0
- package/node_modules/@turf/explode/dist/es/index.js +35 -0
- package/node_modules/@turf/explode/dist/es/package.json +1 -0
- package/node_modules/@turf/explode/dist/js/index.js +38 -0
- package/node_modules/@turf/explode/index.d.ts +6 -0
- package/node_modules/@turf/explode/package.json +92 -0
- package/node_modules/@turf/flatten/LICENSE +20 -0
- package/node_modules/@turf/flatten/README.md +63 -0
- package/node_modules/@turf/flatten/dist/es/index.js +32 -0
- package/node_modules/@turf/flatten/dist/es/package.json +1 -0
- package/node_modules/@turf/flatten/dist/js/index.js +35 -0
- package/node_modules/@turf/flatten/index.d.ts +27 -0
- package/node_modules/@turf/flatten/package.json +100 -0
- package/node_modules/@turf/flip/LICENSE +20 -0
- package/node_modules/@turf/flip/README.md +57 -0
- package/node_modules/@turf/flip/dist/es/index.js +42 -0
- package/node_modules/@turf/flip/dist/es/package.json +1 -0
- package/node_modules/@turf/flip/dist/js/index.js +49 -0
- package/node_modules/@turf/flip/index.d.ts +8 -0
- package/node_modules/@turf/flip/package.json +90 -0
- package/node_modules/@turf/great-circle/LICENSE +20 -0
- package/node_modules/@turf/great-circle/README.md +74 -0
- package/node_modules/@turf/great-circle/dist/es/index.js +333 -0
- package/node_modules/@turf/great-circle/dist/es/package.json +1 -0
- package/node_modules/@turf/great-circle/dist/js/index.js +336 -0
- package/node_modules/@turf/great-circle/index.d.ts +20 -0
- package/node_modules/@turf/great-circle/package.json +105 -0
- package/node_modules/@turf/helpers/LICENSE +20 -0
- package/node_modules/@turf/helpers/README.md +579 -0
- package/node_modules/@turf/helpers/dist/es/index.js +696 -0
- package/node_modules/@turf/helpers/dist/es/lib/geojson.js +7 -0
- package/node_modules/@turf/helpers/dist/es/package.json +1 -0
- package/node_modules/@turf/helpers/dist/js/index.d.ts +482 -0
- package/node_modules/@turf/helpers/dist/js/index.js +724 -0
- package/node_modules/@turf/helpers/dist/js/lib/geojson.d.ts +193 -0
- package/node_modules/@turf/helpers/dist/js/lib/geojson.js +9 -0
- package/node_modules/@turf/helpers/package.json +211 -0
- package/node_modules/@turf/hex-grid/LICENSE +20 -0
- package/node_modules/@turf/hex-grid/README.md +82 -0
- package/node_modules/@turf/hex-grid/dist/es/index.js +157 -0
- package/node_modules/@turf/hex-grid/dist/es/package.json +1 -0
- package/node_modules/@turf/hex-grid/dist/js/index.d.ts +33 -0
- package/node_modules/@turf/hex-grid/dist/js/index.js +162 -0
- package/node_modules/@turf/hex-grid/package.json +126 -0
- package/node_modules/@turf/interpolate/LICENSE +20 -0
- package/node_modules/@turf/interpolate/README.md +74 -0
- package/node_modules/@turf/interpolate/dist/es/index.js +107 -0
- package/node_modules/@turf/interpolate/dist/es/package.json +1 -0
- package/node_modules/@turf/interpolate/dist/js/index.js +121 -0
- package/node_modules/@turf/interpolate/index.d.ts +25 -0
- package/node_modules/@turf/interpolate/package.json +105 -0
- package/node_modules/@turf/intersect/LICENSE +20 -0
- package/node_modules/@turf/intersect/README.md +81 -0
- package/node_modules/@turf/intersect/dist/es/index.js +50 -0
- package/node_modules/@turf/intersect/dist/es/package.json +1 -0
- package/node_modules/@turf/intersect/dist/js/index.d.ts +40 -0
- package/node_modules/@turf/intersect/dist/js/index.js +56 -0
- package/node_modules/@turf/intersect/package.json +96 -0
- package/node_modules/@turf/invariant/LICENSE +20 -0
- package/node_modules/@turf/invariant/README.md +202 -0
- package/node_modules/@turf/invariant/dist/es/index.js +223 -0
- package/node_modules/@turf/invariant/dist/es/package.json +1 -0
- package/node_modules/@turf/invariant/dist/js/index.d.ts +105 -0
- package/node_modules/@turf/invariant/dist/js/index.js +233 -0
- package/node_modules/@turf/invariant/package.json +154 -0
- package/node_modules/@turf/isobands/LICENSE +20 -0
- package/node_modules/@turf/isobands/README.md +64 -0
- package/node_modules/@turf/isobands/dist/es/index.js +3793 -0
- package/node_modules/@turf/isobands/dist/es/package.json +1 -0
- package/node_modules/@turf/isobands/dist/js/index.js +3804 -0
- package/node_modules/@turf/isobands/index.d.ts +19 -0
- package/node_modules/@turf/isobands/package.json +110 -0
- package/node_modules/@turf/isolines/LICENSE +20 -0
- package/node_modules/@turf/isolines/README.md +86 -0
- package/node_modules/@turf/isolines/dist/es/index.js +647 -0
- package/node_modules/@turf/isolines/dist/es/package.json +1 -0
- package/node_modules/@turf/isolines/dist/js/index.js +655 -0
- package/node_modules/@turf/isolines/index.d.ts +19 -0
- package/node_modules/@turf/isolines/package.json +106 -0
- package/node_modules/@turf/kinks/LICENSE +20 -0
- package/node_modules/@turf/kinks/README.md +79 -0
- package/node_modules/@turf/kinks/dist/es/index.js +136 -0
- package/node_modules/@turf/kinks/dist/es/lib/sweepline-intersections.js +288 -0
- package/node_modules/@turf/kinks/dist/es/package.json +1 -0
- package/node_modules/@turf/kinks/dist/js/index.d.ts +24 -0
- package/node_modules/@turf/kinks/dist/js/index.js +139 -0
- package/node_modules/@turf/kinks/dist/js/lib/sweepline-intersections.d.ts +2 -0
- package/node_modules/@turf/kinks/dist/js/lib/sweepline-intersections.js +290 -0
- package/node_modules/@turf/kinks/package.json +90 -0
- package/node_modules/@turf/length/LICENSE +20 -0
- package/node_modules/@turf/length/README.md +67 -0
- package/node_modules/@turf/length/dist/es/index.js +26 -0
- package/node_modules/@turf/length/dist/es/package.json +1 -0
- package/node_modules/@turf/length/dist/js/index.d.ts +20 -0
- package/node_modules/@turf/length/dist/js/index.js +32 -0
- package/node_modules/@turf/length/package.json +106 -0
- package/node_modules/@turf/line-arc/LICENSE +20 -0
- package/node_modules/@turf/line-arc/README.md +71 -0
- package/node_modules/@turf/line-arc/dist/es/index.js +70 -0
- package/node_modules/@turf/line-arc/dist/es/package.json +1 -0
- package/node_modules/@turf/line-arc/dist/js/index.d.ts +29 -0
- package/node_modules/@turf/line-arc/dist/js/index.js +76 -0
- package/node_modules/@turf/line-arc/package.json +92 -0
- package/node_modules/@turf/line-chunk/LICENSE +20 -0
- package/node_modules/@turf/line-chunk/README.md +74 -0
- package/node_modules/@turf/line-chunk/dist/es/index.js +87 -0
- package/node_modules/@turf/line-chunk/dist/es/package.json +1 -0
- package/node_modules/@turf/line-chunk/dist/js/index.js +95 -0
- package/node_modules/@turf/line-chunk/index.d.ts +25 -0
- package/node_modules/@turf/line-chunk/package.json +111 -0
- package/node_modules/@turf/line-intersect/LICENSE +20 -0
- package/node_modules/@turf/line-intersect/README.md +66 -0
- package/node_modules/@turf/line-intersect/dist/es/index.js +107 -0
- package/node_modules/@turf/line-intersect/dist/es/package.json +1 -0
- package/node_modules/@turf/line-intersect/dist/js/index.d.ts +18 -0
- package/node_modules/@turf/line-intersect/dist/js/index.js +112 -0
- package/node_modules/@turf/line-intersect/package.json +112 -0
- package/node_modules/@turf/line-offset/LICENSE +20 -0
- package/node_modules/@turf/line-offset/README.md +69 -0
- package/node_modules/@turf/line-offset/dist/es/index.js +243 -0
- package/node_modules/@turf/line-offset/dist/es/package.json +1 -0
- package/node_modules/@turf/line-offset/dist/js/index.js +246 -0
- package/node_modules/@turf/line-offset/index.d.ts +12 -0
- package/node_modules/@turf/line-offset/package.json +105 -0
- package/node_modules/@turf/line-overlap/LICENSE +20 -0
- package/node_modules/@turf/line-overlap/README.md +71 -0
- package/node_modules/@turf/line-overlap/dist/es/index.js +128 -0
- package/node_modules/@turf/line-overlap/dist/es/package.json +1 -0
- package/node_modules/@turf/line-overlap/dist/js/index.d.ts +23 -0
- package/node_modules/@turf/line-overlap/dist/js/index.js +133 -0
- package/node_modules/@turf/line-overlap/package.json +108 -0
- package/node_modules/@turf/line-segment/LICENSE +20 -0
- package/node_modules/@turf/line-segment/README.md +68 -0
- package/node_modules/@turf/line-segment/dist/es/index.js +93 -0
- package/node_modules/@turf/line-segment/dist/es/package.json +1 -0
- package/node_modules/@turf/line-segment/dist/js/index.d.ts +17 -0
- package/node_modules/@turf/line-segment/dist/js/index.js +95 -0
- package/node_modules/@turf/line-segment/package.json +96 -0
- package/node_modules/@turf/line-slice/LICENSE +20 -0
- package/node_modules/@turf/line-slice/README.md +74 -0
- package/node_modules/@turf/line-slice/dist/es/index.js +60 -0
- package/node_modules/@turf/line-slice/dist/es/package.json +1 -0
- package/node_modules/@turf/line-slice/dist/js/index.js +67 -0
- package/node_modules/@turf/line-slice/index.d.ts +10 -0
- package/node_modules/@turf/line-slice/package.json +93 -0
- package/node_modules/@turf/line-slice-along/LICENSE +20 -0
- package/node_modules/@turf/line-slice-along/README.md +72 -0
- package/node_modules/@turf/line-slice-along/dist/es/index.js +87 -0
- package/node_modules/@turf/line-slice-along/dist/es/package.json +1 -0
- package/node_modules/@turf/line-slice-along/dist/js/index.js +96 -0
- package/node_modules/@turf/line-slice-along/index.d.ts +13 -0
- package/node_modules/@turf/line-slice-along/package.json +90 -0
- package/node_modules/@turf/line-split/LICENSE +20 -0
- package/node_modules/@turf/line-split/README.md +57 -0
- package/node_modules/@turf/line-split/dist/es/index.js +215 -0
- package/node_modules/@turf/line-split/dist/es/package.json +1 -0
- package/node_modules/@turf/line-split/dist/js/index.js +228 -0
- package/node_modules/@turf/line-split/index.d.ts +22 -0
- package/node_modules/@turf/line-split/package.json +103 -0
- package/node_modules/@turf/line-to-polygon/LICENSE +20 -0
- package/node_modules/@turf/line-to-polygon/README.md +69 -0
- package/node_modules/@turf/line-to-polygon/dist/es/index.js +130 -0
- package/node_modules/@turf/line-to-polygon/dist/es/package.json +1 -0
- package/node_modules/@turf/line-to-polygon/dist/js/index.d.ts +27 -0
- package/node_modules/@turf/line-to-polygon/dist/js/index.js +135 -0
- package/node_modules/@turf/line-to-polygon/package.json +102 -0
- package/node_modules/@turf/mask/LICENSE +20 -0
- package/node_modules/@turf/mask/README.md +74 -0
- package/node_modules/@turf/mask/dist/es/index.js +79 -0
- package/node_modules/@turf/mask/dist/es/package.json +1 -0
- package/node_modules/@turf/mask/dist/js/index.js +86 -0
- package/node_modules/@turf/mask/index.d.ts +14 -0
- package/node_modules/@turf/mask/package.json +89 -0
- package/node_modules/@turf/meta/LICENSE +20 -0
- package/node_modules/@turf/meta/README.md +858 -0
- package/node_modules/@turf/meta/dist/es/index.js +1401 -0
- package/node_modules/@turf/meta/dist/es/package.json +1 -0
- package/node_modules/@turf/meta/dist/js/index.js +1421 -0
- package/node_modules/@turf/meta/index.d.ts +301 -0
- package/node_modules/@turf/meta/package.json +169 -0
- package/node_modules/@turf/midpoint/LICENSE +20 -0
- package/node_modules/@turf/midpoint/README.md +61 -0
- package/node_modules/@turf/midpoint/dist/es/index.js +31 -0
- package/node_modules/@turf/midpoint/dist/es/package.json +1 -0
- package/node_modules/@turf/midpoint/dist/js/index.js +40 -0
- package/node_modules/@turf/midpoint/index.d.ts +6 -0
- package/node_modules/@turf/midpoint/package.json +89 -0
- package/node_modules/@turf/moran-index/LICENSE +20 -0
- package/node_modules/@turf/moran-index/README.md +107 -0
- package/node_modules/@turf/moran-index/dist/es/index.js +133 -0
- package/node_modules/@turf/moran-index/dist/es/package.json +1 -0
- package/node_modules/@turf/moran-index/dist/js/index.d.ts +63 -0
- package/node_modules/@turf/moran-index/dist/js/index.js +139 -0
- package/node_modules/@turf/moran-index/package.json +97 -0
- package/node_modules/@turf/nearest-point/LICENSE +20 -0
- package/node_modules/@turf/nearest-point/README.md +69 -0
- package/node_modules/@turf/nearest-point/dist/es/index.js +49 -0
- package/node_modules/@turf/nearest-point/dist/es/package.json +1 -0
- package/node_modules/@turf/nearest-point/dist/js/index.d.ts +34 -0
- package/node_modules/@turf/nearest-point/dist/js/index.js +54 -0
- package/node_modules/@turf/nearest-point/package.json +97 -0
- package/node_modules/@turf/nearest-point-on-line/LICENSE +20 -0
- package/node_modules/@turf/nearest-point-on-line/README.md +83 -0
- package/node_modules/@turf/nearest-point-on-line/dist/es/index.js +88 -0
- package/node_modules/@turf/nearest-point-on-line/dist/es/package.json +1 -0
- package/node_modules/@turf/nearest-point-on-line/dist/js/index.d.ts +39 -0
- package/node_modules/@turf/nearest-point-on-line/dist/js/index.js +93 -0
- package/node_modules/@turf/nearest-point-on-line/package.json +98 -0
- package/node_modules/@turf/nearest-point-to-line/LICENSE +20 -0
- package/node_modules/@turf/nearest-point-to-line/README.md +86 -0
- package/node_modules/@turf/nearest-point-to-line/dist/es/index.js +91 -0
- package/node_modules/@turf/nearest-point-to-line/dist/es/package.json +1 -0
- package/node_modules/@turf/nearest-point-to-line/dist/js/index.d.ts +32 -0
- package/node_modules/@turf/nearest-point-to-line/dist/js/index.js +96 -0
- package/node_modules/@turf/nearest-point-to-line/package.json +106 -0
- package/node_modules/@turf/planepoint/LICENSE +20 -0
- package/node_modules/@turf/planepoint/README.md +79 -0
- package/node_modules/@turf/planepoint/dist/es/index.js +77 -0
- package/node_modules/@turf/planepoint/dist/es/package.json +1 -0
- package/node_modules/@turf/planepoint/dist/js/index.js +80 -0
- package/node_modules/@turf/planepoint/index.d.ts +9 -0
- package/node_modules/@turf/planepoint/package.json +88 -0
- package/node_modules/@turf/point-grid/LICENSE +20 -0
- package/node_modules/@turf/point-grid/README.md +80 -0
- package/node_modules/@turf/point-grid/dist/es/index.js +72 -0
- package/node_modules/@turf/point-grid/dist/es/package.json +1 -0
- package/node_modules/@turf/point-grid/dist/js/index.d.ts +28 -0
- package/node_modules/@turf/point-grid/dist/js/index.js +77 -0
- package/node_modules/@turf/point-grid/package.json +108 -0
- package/node_modules/@turf/point-on-feature/LICENSE +20 -0
- package/node_modules/@turf/point-on-feature/README.md +73 -0
- package/node_modules/@turf/point-on-feature/dist/es/index.js +149 -0
- package/node_modules/@turf/point-on-feature/dist/es/package.json +1 -0
- package/node_modules/@turf/point-on-feature/dist/js/index.js +159 -0
- package/node_modules/@turf/point-on-feature/index.d.ts +6 -0
- package/node_modules/@turf/point-on-feature/package.json +93 -0
- package/node_modules/@turf/point-to-line-distance/LICENSE +20 -0
- package/node_modules/@turf/point-to-line-distance/README.md +71 -0
- package/node_modules/@turf/point-to-line-distance/dist/es/index.js +106 -0
- package/node_modules/@turf/point-to-line-distance/dist/es/package.json +1 -0
- package/node_modules/@turf/point-to-line-distance/dist/js/index.d.ts +26 -0
- package/node_modules/@turf/point-to-line-distance/dist/js/index.js +111 -0
- package/node_modules/@turf/point-to-line-distance/package.json +106 -0
- package/node_modules/@turf/points-within-polygon/LICENSE +20 -0
- package/node_modules/@turf/points-within-polygon/README.md +86 -0
- package/node_modules/@turf/points-within-polygon/dist/es/index.js +71 -0
- package/node_modules/@turf/points-within-polygon/dist/es/package.json +1 -0
- package/node_modules/@turf/points-within-polygon/dist/js/index.js +78 -0
- package/node_modules/@turf/points-within-polygon/index.d.ts +21 -0
- package/node_modules/@turf/points-within-polygon/package.json +90 -0
- package/node_modules/@turf/polygon-smooth/LICENSE +20 -0
- package/node_modules/@turf/polygon-smooth/README.md +70 -0
- package/node_modules/@turf/polygon-smooth/dist/es/index.js +162 -0
- package/node_modules/@turf/polygon-smooth/dist/es/package.json +1 -0
- package/node_modules/@turf/polygon-smooth/dist/js/index.js +165 -0
- package/node_modules/@turf/polygon-smooth/index.d.ts +16 -0
- package/node_modules/@turf/polygon-smooth/package.json +95 -0
- package/node_modules/@turf/polygon-tangents/LICENSE +20 -0
- package/node_modules/@turf/polygon-tangents/README.md +67 -0
- package/node_modules/@turf/polygon-tangents/dist/es/index.js +147 -0
- package/node_modules/@turf/polygon-tangents/dist/es/package.json +1 -0
- package/node_modules/@turf/polygon-tangents/dist/js/index.js +156 -0
- package/node_modules/@turf/polygon-tangents/index.d.ts +16 -0
- package/node_modules/@turf/polygon-tangents/package.json +104 -0
- package/node_modules/@turf/polygon-to-line/LICENSE +20 -0
- package/node_modules/@turf/polygon-to-line/README.md +71 -0
- package/node_modules/@turf/polygon-to-line/dist/es/index.js +75 -0
- package/node_modules/@turf/polygon-to-line/dist/es/package.json +1 -0
- package/node_modules/@turf/polygon-to-line/dist/js/index.d.ts +37 -0
- package/node_modules/@turf/polygon-to-line/dist/js/index.js +81 -0
- package/node_modules/@turf/polygon-to-line/package.json +95 -0
- package/node_modules/@turf/polygonize/LICENSE +20 -0
- package/node_modules/@turf/polygonize/README.md +69 -0
- package/node_modules/@turf/polygonize/dist/es/index.js +46 -0
- package/node_modules/@turf/polygonize/dist/es/lib/Edge.js +77 -0
- package/node_modules/@turf/polygonize/dist/es/lib/EdgeRing.js +199 -0
- package/node_modules/@turf/polygonize/dist/es/lib/Graph.js +302 -0
- package/node_modules/@turf/polygonize/dist/es/lib/Node.js +93 -0
- package/node_modules/@turf/polygonize/dist/es/lib/util.js +66 -0
- package/node_modules/@turf/polygonize/dist/es/package.json +1 -0
- package/node_modules/@turf/polygonize/dist/js/index.d.ts +20 -0
- package/node_modules/@turf/polygonize/dist/js/index.js +52 -0
- package/node_modules/@turf/polygonize/dist/js/lib/Edge.d.ts +55 -0
- package/node_modules/@turf/polygonize/dist/js/lib/Edge.js +79 -0
- package/node_modules/@turf/polygonize/dist/js/lib/EdgeRing.d.ts +122 -0
- package/node_modules/@turf/polygonize/dist/js/lib/EdgeRing.js +204 -0
- package/node_modules/@turf/polygonize/dist/js/lib/Graph.d.ts +124 -0
- package/node_modules/@turf/polygonize/dist/js/lib/Graph.js +307 -0
- package/node_modules/@turf/polygonize/dist/js/lib/Node.d.ts +40 -0
- package/node_modules/@turf/polygonize/dist/js/lib/Node.js +95 -0
- package/node_modules/@turf/polygonize/dist/js/lib/util.d.ts +46 -0
- package/node_modules/@turf/polygonize/dist/js/lib/util.js +75 -0
- package/node_modules/@turf/polygonize/package.json +105 -0
- package/node_modules/@turf/projection/LICENSE +20 -0
- package/node_modules/@turf/projection/README.md +78 -0
- package/node_modules/@turf/projection/dist/es/index.js +137 -0
- package/node_modules/@turf/projection/dist/es/package.json +1 -0
- package/node_modules/@turf/projection/dist/js/index.d.ts +37 -0
- package/node_modules/@turf/projection/dist/js/index.js +144 -0
- package/node_modules/@turf/projection/package.json +113 -0
- package/node_modules/@turf/random/LICENSE +20 -0
- package/node_modules/@turf/random/README.md +129 -0
- package/node_modules/@turf/random/dist/es/index.js +188 -0
- package/node_modules/@turf/random/dist/es/package.json +1 -0
- package/node_modules/@turf/random/dist/js/index.d.ts +72 -0
- package/node_modules/@turf/random/dist/js/index.js +194 -0
- package/node_modules/@turf/random/package.json +88 -0
- package/node_modules/@turf/rectangle-grid/LICENSE +20 -0
- package/node_modules/@turf/rectangle-grid/README.md +60 -0
- package/node_modules/@turf/rectangle-grid/dist/es/index.js +77 -0
- package/node_modules/@turf/rectangle-grid/dist/es/package.json +1 -0
- package/node_modules/@turf/rectangle-grid/dist/js/index.d.ts +32 -0
- package/node_modules/@turf/rectangle-grid/dist/js/index.js +82 -0
- package/node_modules/@turf/rectangle-grid/package.json +104 -0
- package/node_modules/@turf/rewind/LICENSE +20 -0
- package/node_modules/@turf/rewind/README.md +64 -0
- package/node_modules/@turf/rewind/dist/es/index.js +134 -0
- package/node_modules/@turf/rewind/dist/es/package.json +1 -0
- package/node_modules/@turf/rewind/dist/js/index.js +142 -0
- package/node_modules/@turf/rewind/index.d.ts +12 -0
- package/node_modules/@turf/rewind/package.json +110 -0
- package/node_modules/@turf/rhumb-bearing/LICENSE +20 -0
- package/node_modules/@turf/rhumb-bearing/README.md +66 -0
- package/node_modules/@turf/rhumb-bearing/dist/es/index.js +69 -0
- package/node_modules/@turf/rhumb-bearing/dist/es/package.json +1 -0
- package/node_modules/@turf/rhumb-bearing/dist/js/index.d.ts +26 -0
- package/node_modules/@turf/rhumb-bearing/dist/js/index.js +71 -0
- package/node_modules/@turf/rhumb-bearing/package.json +112 -0
- package/node_modules/@turf/rhumb-destination/LICENSE +20 -0
- package/node_modules/@turf/rhumb-destination/README.md +73 -0
- package/node_modules/@turf/rhumb-destination/dist/es/index.js +86 -0
- package/node_modules/@turf/rhumb-destination/dist/es/package.json +1 -0
- package/node_modules/@turf/rhumb-destination/dist/js/index.d.ts +30 -0
- package/node_modules/@turf/rhumb-destination/dist/js/index.js +88 -0
- package/node_modules/@turf/rhumb-destination/package.json +116 -0
- package/node_modules/@turf/rhumb-distance/LICENSE +20 -0
- package/node_modules/@turf/rhumb-distance/README.md +67 -0
- package/node_modules/@turf/rhumb-distance/dist/es/index.js +84 -0
- package/node_modules/@turf/rhumb-distance/dist/es/package.json +1 -0
- package/node_modules/@turf/rhumb-distance/dist/js/index.d.ts +27 -0
- package/node_modules/@turf/rhumb-distance/dist/js/index.js +86 -0
- package/node_modules/@turf/rhumb-distance/package.json +113 -0
- package/node_modules/@turf/sample/LICENSE +20 -0
- package/node_modules/@turf/sample/README.md +62 -0
- package/node_modules/@turf/sample/dist/es/index.js +50 -0
- package/node_modules/@turf/sample/dist/es/package.json +1 -0
- package/node_modules/@turf/sample/dist/js/index.js +53 -0
- package/node_modules/@turf/sample/index.d.ts +9 -0
- package/node_modules/@turf/sample/package.json +85 -0
- package/node_modules/@turf/sector/LICENSE +20 -0
- package/node_modules/@turf/sector/README.md +74 -0
- package/node_modules/@turf/sector/dist/es/index.js +75 -0
- package/node_modules/@turf/sector/dist/es/package.json +1 -0
- package/node_modules/@turf/sector/dist/js/index.js +83 -0
- package/node_modules/@turf/sector/index.d.ts +16 -0
- package/node_modules/@turf/sector/package.json +91 -0
- package/node_modules/@turf/shortest-path/LICENSE +20 -0
- package/node_modules/@turf/shortest-path/README.md +86 -0
- package/node_modules/@turf/shortest-path/dist/es/index.js +589 -0
- package/node_modules/@turf/shortest-path/dist/es/package.json +1 -0
- package/node_modules/@turf/shortest-path/dist/js/index.js +601 -0
- package/node_modules/@turf/shortest-path/index.d.ts +22 -0
- package/node_modules/@turf/shortest-path/package.json +106 -0
- package/node_modules/@turf/simplify/LICENSE +20 -0
- package/node_modules/@turf/simplify/README.md +87 -0
- package/node_modules/@turf/simplify/dist/es/index.js +300 -0
- package/node_modules/@turf/simplify/dist/es/package.json +1 -0
- package/node_modules/@turf/simplify/dist/js/index.js +308 -0
- package/node_modules/@turf/simplify/index.d.ts +13 -0
- package/node_modules/@turf/simplify/package.json +104 -0
- package/node_modules/@turf/square/LICENSE +20 -0
- package/node_modules/@turf/square/README.md +51 -0
- package/node_modules/@turf/square/dist/es/index.js +44 -0
- package/node_modules/@turf/square/dist/es/package.json +1 -0
- package/node_modules/@turf/square/dist/js/index.js +51 -0
- package/node_modules/@turf/square/index.d.ts +6 -0
- package/node_modules/@turf/square/package.json +87 -0
- package/node_modules/@turf/square-grid/LICENSE +20 -0
- package/node_modules/@turf/square-grid/README.md +58 -0
- package/node_modules/@turf/square-grid/dist/es/index.js +28 -0
- package/node_modules/@turf/square-grid/dist/es/package.json +1 -0
- package/node_modules/@turf/square-grid/dist/js/index.d.ts +29 -0
- package/node_modules/@turf/square-grid/dist/js/index.js +34 -0
- package/node_modules/@turf/square-grid/package.json +95 -0
- package/node_modules/@turf/standard-deviational-ellipse/LICENSE +20 -0
- package/node_modules/@turf/standard-deviational-ellipse/README.md +94 -0
- package/node_modules/@turf/standard-deviational-ellipse/dist/es/index.js +151 -0
- package/node_modules/@turf/standard-deviational-ellipse/dist/es/package.json +1 -0
- package/node_modules/@turf/standard-deviational-ellipse/dist/js/index.js +160 -0
- package/node_modules/@turf/standard-deviational-ellipse/index.d.ts +37 -0
- package/node_modules/@turf/standard-deviational-ellipse/package.json +101 -0
- package/node_modules/@turf/tag/LICENSE +20 -0
- package/node_modules/@turf/tag/README.md +70 -0
- package/node_modules/@turf/tag/dist/es/index.js +56 -0
- package/node_modules/@turf/tag/dist/es/package.json +1 -0
- package/node_modules/@turf/tag/dist/js/index.js +64 -0
- package/node_modules/@turf/tag/index.d.ts +11 -0
- package/node_modules/@turf/tag/package.json +93 -0
- package/node_modules/@turf/tesselate/LICENSE +20 -0
- package/node_modules/@turf/tesselate/README.md +61 -0
- package/node_modules/@turf/tesselate/dist/es/index.js +79 -0
- package/node_modules/@turf/tesselate/dist/es/package.json +1 -0
- package/node_modules/@turf/tesselate/dist/js/index.js +86 -0
- package/node_modules/@turf/tesselate/index.d.ts +6 -0
- package/node_modules/@turf/tesselate/package.json +106 -0
- package/node_modules/@turf/tin/LICENSE +20 -0
- package/node_modules/@turf/tin/README.md +79 -0
- package/node_modules/@turf/tin/dist/es/index.js +240 -0
- package/node_modules/@turf/tin/dist/es/package.json +1 -0
- package/node_modules/@turf/tin/dist/js/index.d.ts +44 -0
- package/node_modules/@turf/tin/dist/js/index.js +243 -0
- package/node_modules/@turf/tin/package.json +90 -0
- package/node_modules/@turf/transform-rotate/LICENSE +20 -0
- package/node_modules/@turf/transform-rotate/README.md +67 -0
- package/node_modules/@turf/transform-rotate/dist/es/index.js +62 -0
- package/node_modules/@turf/transform-rotate/dist/es/package.json +1 -0
- package/node_modules/@turf/transform-rotate/dist/js/index.js +73 -0
- package/node_modules/@turf/transform-rotate/index.d.ts +13 -0
- package/node_modules/@turf/transform-rotate/package.json +107 -0
- package/node_modules/@turf/transform-scale/LICENSE +20 -0
- package/node_modules/@turf/transform-scale/README.md +66 -0
- package/node_modules/@turf/transform-scale/dist/es/index.js +144 -0
- package/node_modules/@turf/transform-scale/dist/es/package.json +1 -0
- package/node_modules/@turf/transform-scale/dist/js/index.js +157 -0
- package/node_modules/@turf/transform-scale/index.d.ts +13 -0
- package/node_modules/@turf/transform-scale/package.json +115 -0
- package/node_modules/@turf/transform-translate/LICENSE +20 -0
- package/node_modules/@turf/transform-translate/README.md +66 -0
- package/node_modules/@turf/transform-translate/dist/es/index.js +72 -0
- package/node_modules/@turf/transform-translate/dist/es/package.json +1 -0
- package/node_modules/@turf/transform-translate/dist/js/index.js +80 -0
- package/node_modules/@turf/transform-translate/index.d.ts +15 -0
- package/node_modules/@turf/transform-translate/package.json +105 -0
- package/node_modules/@turf/triangle-grid/LICENSE +20 -0
- package/node_modules/@turf/triangle-grid/README.md +72 -0
- package/node_modules/@turf/triangle-grid/dist/es/index.js +139 -0
- package/node_modules/@turf/triangle-grid/dist/es/package.json +1 -0
- package/node_modules/@turf/triangle-grid/dist/js/index.d.ts +28 -0
- package/node_modules/@turf/triangle-grid/dist/js/index.js +144 -0
- package/node_modules/@turf/triangle-grid/package.json +99 -0
- package/node_modules/@turf/truncate/LICENSE +20 -0
- package/node_modules/@turf/truncate/README.md +66 -0
- package/node_modules/@turf/truncate/dist/es/index.js +76 -0
- package/node_modules/@turf/truncate/dist/es/package.json +1 -0
- package/node_modules/@turf/truncate/dist/js/index.d.ts +30 -0
- package/node_modules/@turf/truncate/dist/js/index.js +78 -0
- package/node_modules/@turf/truncate/package.json +100 -0
- package/node_modules/@turf/turf/LICENSE +20 -0
- package/node_modules/@turf/turf/README.md +31 -0
- package/node_modules/@turf/turf/dist/es/index.js +118 -0
- package/node_modules/@turf/turf/dist/es/package.json +1 -0
- package/node_modules/@turf/turf/dist/js/index.js +984 -0
- package/node_modules/@turf/turf/index.d.ts +146 -0
- package/node_modules/@turf/turf/package.json +216 -0
- package/node_modules/@turf/turf/turf.min.js +88 -0
- package/node_modules/@turf/union/LICENSE +20 -0
- package/node_modules/@turf/union/README.md +77 -0
- package/node_modules/@turf/union/dist/es/index.js +46 -0
- package/node_modules/@turf/union/dist/es/package.json +1 -0
- package/node_modules/@turf/union/dist/js/index.d.ts +35 -0
- package/node_modules/@turf/union/dist/js/index.js +51 -0
- package/node_modules/@turf/union/package.json +94 -0
- package/node_modules/@turf/unkink-polygon/LICENSE +20 -0
- package/node_modules/@turf/unkink-polygon/README.md +60 -0
- package/node_modules/@turf/unkink-polygon/dist/es/index.js +790 -0
- package/node_modules/@turf/unkink-polygon/dist/es/package.json +1 -0
- package/node_modules/@turf/unkink-polygon/dist/js/index.js +799 -0
- package/node_modules/@turf/unkink-polygon/index.d.ts +13 -0
- package/node_modules/@turf/unkink-polygon/node_modules/quickselect/LICENSE +15 -0
- package/node_modules/@turf/unkink-polygon/node_modules/quickselect/README.md +28 -0
- package/node_modules/@turf/unkink-polygon/node_modules/quickselect/index.js +54 -0
- package/node_modules/@turf/unkink-polygon/node_modules/quickselect/package.json +69 -0
- package/node_modules/@turf/unkink-polygon/node_modules/quickselect/quickselect.js +63 -0
- package/node_modules/@turf/unkink-polygon/node_modules/rbush/LICENSE +21 -0
- package/node_modules/@turf/unkink-polygon/node_modules/rbush/README.md +291 -0
- package/node_modules/@turf/unkink-polygon/node_modules/rbush/index.js +562 -0
- package/node_modules/@turf/unkink-polygon/node_modules/rbush/package.json +85 -0
- package/node_modules/@turf/unkink-polygon/node_modules/rbush/rbush.js +626 -0
- package/node_modules/@turf/unkink-polygon/node_modules/rbush/rbush.min.js +1 -0
- package/node_modules/@turf/unkink-polygon/package.json +94 -0
- package/node_modules/@turf/voronoi/LICENSE +20 -0
- package/node_modules/@turf/voronoi/README.md +68 -0
- package/node_modules/@turf/voronoi/dist/es/index.js +66 -0
- package/node_modules/@turf/voronoi/dist/es/package.json +1 -0
- package/node_modules/@turf/voronoi/dist/js/index.js +69 -0
- package/node_modules/@turf/voronoi/index.d.ts +9 -0
- package/node_modules/@turf/voronoi/package.json +109 -0
- package/node_modules/@types/geojson/LICENSE +21 -0
- package/node_modules/@types/geojson/README.md +16 -0
- package/node_modules/@types/geojson/index.d.ts +175 -0
- package/node_modules/@types/geojson/package.json +69 -0
- package/node_modules/axios/CHANGELOG.md +15 -0
- package/node_modules/axios/README.md +1 -0
- package/node_modules/axios/dist/axios.js +49 -33
- package/node_modules/axios/dist/axios.map +1 -1
- package/node_modules/axios/dist/axios.min.js +1 -3
- package/node_modules/axios/dist/axios.min.map +1 -1
- package/node_modules/axios/lib/adapters/http.js +19 -3
- package/node_modules/axios/lib/adapters/xhr.js +2 -2
- package/node_modules/axios/lib/core/Axios.js +0 -7
- package/node_modules/axios/lib/core/transformData.js +1 -1
- package/node_modules/axios/lib/{defaults.js → defaults/index.js} +7 -10
- package/node_modules/axios/lib/defaults/transitional.js +7 -0
- package/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/axios/package.json +69 -41
- package/node_modules/call-bind/.eslintignore +1 -0
- package/node_modules/call-bind/.eslintrc +17 -0
- package/node_modules/call-bind/.github/FUNDING.yml +12 -0
- package/node_modules/call-bind/.nycrc +13 -0
- package/node_modules/call-bind/CHANGELOG.md +42 -0
- package/node_modules/call-bind/LICENSE +21 -0
- package/node_modules/call-bind/README.md +2 -0
- package/node_modules/call-bind/callBound.js +15 -0
- package/node_modules/call-bind/index.js +47 -0
- package/node_modules/call-bind/package.json +111 -0
- package/node_modules/call-bind/test/callBound.js +55 -0
- package/node_modules/call-bind/test/index.js +66 -0
- package/node_modules/commander/CHANGELOG.md +419 -0
- package/node_modules/commander/LICENSE +22 -0
- package/node_modules/commander/Readme.md +428 -0
- package/node_modules/commander/index.js +1224 -0
- package/node_modules/commander/package.json +71 -0
- package/node_modules/commander/typings/index.d.ts +310 -0
- package/node_modules/concaveman/.travis.yml +4 -0
- package/node_modules/concaveman/LICENSE +15 -0
- package/node_modules/concaveman/README.md +52 -0
- package/node_modules/concaveman/index.js +383 -0
- package/node_modules/concaveman/package.json +69 -0
- package/node_modules/d3-array/.eslintrc.json +15 -0
- package/node_modules/d3-array/LICENSE +27 -0
- package/node_modules/d3-array/README.md +382 -0
- package/node_modules/d3-array/dist/d3-array.js +590 -0
- package/node_modules/d3-array/dist/d3-array.min.js +2 -0
- package/node_modules/d3-array/package.json +70 -0
- package/node_modules/d3-array/rollup.config.js +36 -0
- package/node_modules/d3-array/src/array.js +4 -0
- package/node_modules/d3-array/src/ascending.js +3 -0
- package/node_modules/d3-array/src/bisect.js +7 -0
- package/node_modules/d3-array/src/bisector.js +33 -0
- package/node_modules/d3-array/src/constant.js +5 -0
- package/node_modules/d3-array/src/cross.js +21 -0
- package/node_modules/d3-array/src/descending.js +3 -0
- package/node_modules/d3-array/src/deviation.js +6 -0
- package/node_modules/d3-array/src/extent.js +37 -0
- package/node_modules/d3-array/src/histogram.js +75 -0
- package/node_modules/d3-array/src/identity.js +3 -0
- package/node_modules/d3-array/src/index.js +27 -0
- package/node_modules/d3-array/src/max.js +34 -0
- package/node_modules/d3-array/src/mean.js +25 -0
- package/node_modules/d3-array/src/median.js +28 -0
- package/node_modules/d3-array/src/merge.js +21 -0
- package/node_modules/d3-array/src/min.js +34 -0
- package/node_modules/d3-array/src/number.js +3 -0
- package/node_modules/d3-array/src/pairs.js +10 -0
- package/node_modules/d3-array/src/permute.js +5 -0
- package/node_modules/d3-array/src/quantile.js +14 -0
- package/node_modules/d3-array/src/range.js +13 -0
- package/node_modules/d3-array/src/scan.js +20 -0
- package/node_modules/d3-array/src/shuffle.js +14 -0
- package/node_modules/d3-array/src/sum.js +20 -0
- package/node_modules/d3-array/src/threshold/freedmanDiaconis.js +9 -0
- package/node_modules/d3-array/src/threshold/scott.js +5 -0
- package/node_modules/d3-array/src/threshold/sturges.js +3 -0
- package/node_modules/d3-array/src/ticks.js +51 -0
- package/node_modules/d3-array/src/transpose.js +15 -0
- package/node_modules/d3-array/src/variance.js +33 -0
- package/node_modules/d3-array/src/zip.js +5 -0
- package/node_modules/d3-array/yarn.lock +939 -0
- package/node_modules/d3-geo/.eslintrc +13 -0
- package/node_modules/d3-geo/LICENSE +48 -0
- package/node_modules/d3-geo/README.md +619 -0
- package/node_modules/d3-geo/build/d3-geo.js +2987 -0
- package/node_modules/d3-geo/build/d3-geo.min.js +2 -0
- package/node_modules/d3-geo/img/albers.png +0 -0
- package/node_modules/d3-geo/img/albersUsa-parameters.png +0 -0
- package/node_modules/d3-geo/img/albersUsa.png +0 -0
- package/node_modules/d3-geo/img/azimuthalEqualArea.png +0 -0
- package/node_modules/d3-geo/img/azimuthalEquidistant.png +0 -0
- package/node_modules/d3-geo/img/conicConformal.png +0 -0
- package/node_modules/d3-geo/img/conicEqualArea.png +0 -0
- package/node_modules/d3-geo/img/conicEquidistant.png +0 -0
- package/node_modules/d3-geo/img/equirectangular.png +0 -0
- package/node_modules/d3-geo/img/gnomonic.png +0 -0
- package/node_modules/d3-geo/img/graticule.png +0 -0
- package/node_modules/d3-geo/img/mercator.png +0 -0
- package/node_modules/d3-geo/img/naturalEarth1.png +0 -0
- package/node_modules/d3-geo/img/orthographic.png +0 -0
- package/node_modules/d3-geo/img/stereographic.png +0 -0
- package/node_modules/d3-geo/img/transverseMercator.png +0 -0
- package/node_modules/d3-geo/index.js +30 -0
- package/node_modules/d3-geo/package.json +72 -0
- package/node_modules/d3-geo/rollup.config.js +15 -0
- package/node_modules/d3-geo/src/adder.js +40 -0
- package/node_modules/d3-geo/src/area.js +74 -0
- package/node_modules/d3-geo/src/bounds.js +176 -0
- package/node_modules/d3-geo/src/cartesian.js +33 -0
- package/node_modules/d3-geo/src/centroid.js +140 -0
- package/node_modules/d3-geo/src/circle.js +72 -0
- package/node_modules/d3-geo/src/clip/antimeridian.js +92 -0
- package/node_modules/d3-geo/src/clip/buffer.js +24 -0
- package/node_modules/d3-geo/src/clip/circle.js +181 -0
- package/node_modules/d3-geo/src/clip/extent.js +187 -0
- package/node_modules/d3-geo/src/clip/index.js +135 -0
- package/node_modules/d3-geo/src/clip/line.js +59 -0
- package/node_modules/d3-geo/src/clip/polygon.js +101 -0
- package/node_modules/d3-geo/src/compose.js +12 -0
- package/node_modules/d3-geo/src/constant.js +5 -0
- package/node_modules/d3-geo/src/contains.js +84 -0
- package/node_modules/d3-geo/src/distance.js +10 -0
- package/node_modules/d3-geo/src/graticule.js +105 -0
- package/node_modules/d3-geo/src/identity.js +3 -0
- package/node_modules/d3-geo/src/interpolate.js +36 -0
- package/node_modules/d3-geo/src/length.js +53 -0
- package/node_modules/d3-geo/src/math.js +35 -0
- package/node_modules/d3-geo/src/noop.js +1 -0
- package/node_modules/d3-geo/src/path/area.js +50 -0
- package/node_modules/d3-geo/src/path/bounds.js +28 -0
- package/node_modules/d3-geo/src/path/centroid.js +100 -0
- package/node_modules/d3-geo/src/path/context.js +45 -0
- package/node_modules/d3-geo/src/path/index.js +61 -0
- package/node_modules/d3-geo/src/path/measure.js +45 -0
- package/node_modules/d3-geo/src/path/string.js +59 -0
- package/node_modules/d3-geo/src/pointEqual.js +5 -0
- package/node_modules/d3-geo/src/polygonContains.js +68 -0
- package/node_modules/d3-geo/src/projection/albers.js +10 -0
- package/node_modules/d3-geo/src/projection/albersUsa.js +103 -0
- package/node_modules/d3-geo/src/projection/azimuthal.js +26 -0
- package/node_modules/d3-geo/src/projection/azimuthalEqualArea.js +17 -0
- package/node_modules/d3-geo/src/projection/azimuthalEquidistant.js +17 -0
- package/node_modules/d3-geo/src/projection/conic.js +15 -0
- package/node_modules/d3-geo/src/projection/conicConformal.js +35 -0
- package/node_modules/d3-geo/src/projection/conicEqualArea.js +30 -0
- package/node_modules/d3-geo/src/projection/conicEquidistant.js +29 -0
- package/node_modules/d3-geo/src/projection/cylindricalEqualArea.js +15 -0
- package/node_modules/d3-geo/src/projection/equirectangular.js +12 -0
- package/node_modules/d3-geo/src/projection/fit.js +31 -0
- package/node_modules/d3-geo/src/projection/gnomonic.js +16 -0
- package/node_modules/d3-geo/src/projection/identity.js +52 -0
- package/node_modules/d3-geo/src/projection/index.js +106 -0
- package/node_modules/d3-geo/src/projection/mercator.js +52 -0
- package/node_modules/d3-geo/src/projection/naturalEarth1.js +28 -0
- package/node_modules/d3-geo/src/projection/orthographic.js +15 -0
- package/node_modules/d3-geo/src/projection/resample.js +102 -0
- package/node_modules/d3-geo/src/projection/stereographic.js +18 -0
- package/node_modules/d3-geo/src/projection/transverseMercator.js +27 -0
- package/node_modules/d3-geo/src/rotation.js +76 -0
- package/node_modules/d3-geo/src/stream.js +69 -0
- package/node_modules/d3-geo/src/transform.js +26 -0
- package/node_modules/d3-voronoi/.eslintrc +9 -0
- package/node_modules/d3-voronoi/.npmignore +3 -0
- package/node_modules/d3-voronoi/LICENSE +50 -0
- package/node_modules/d3-voronoi/README.md +160 -0
- package/node_modules/d3-voronoi/build/d3-voronoi.js +999 -0
- package/node_modules/d3-voronoi/build/d3-voronoi.min.js +2 -0
- package/node_modules/d3-voronoi/graph.png +0 -0
- package/node_modules/d3-voronoi/index.js +1 -0
- package/node_modules/d3-voronoi/package.json +65 -0
- package/node_modules/d3-voronoi/src/Beach.js +193 -0
- package/node_modules/d3-voronoi/src/Cell.js +126 -0
- package/node_modules/d3-voronoi/src/Circle.js +78 -0
- package/node_modules/d3-voronoi/src/Diagram.js +142 -0
- package/node_modules/d3-voronoi/src/Edge.js +168 -0
- package/node_modules/d3-voronoi/src/RedBlackTree.js +237 -0
- package/node_modules/d3-voronoi/src/constant.js +5 -0
- package/node_modules/d3-voronoi/src/point.js +7 -0
- package/node_modules/d3-voronoi/src/voronoi.js +48 -0
- package/node_modules/deep-equal/.eslintrc +22 -0
- package/node_modules/deep-equal/.travis.yml +12 -0
- package/node_modules/deep-equal/CHANGELOG.md +120 -0
- package/node_modules/deep-equal/LICENSE +21 -0
- package/node_modules/deep-equal/example/cmp.js +11 -0
- package/node_modules/deep-equal/index.js +112 -0
- package/node_modules/deep-equal/lib/is_arguments.js +1 -0
- package/node_modules/deep-equal/lib/keys.js +1 -0
- package/node_modules/deep-equal/package.json +117 -0
- package/node_modules/deep-equal/readme.markdown +57 -0
- package/node_modules/deep-equal/test/_tape.js +21 -0
- package/node_modules/deep-equal/test/cmp.js +344 -0
- package/node_modules/define-properties/.editorconfig +13 -0
- package/node_modules/define-properties/.eslintrc +12 -0
- package/node_modules/define-properties/.jscs.json +175 -0
- package/node_modules/define-properties/.travis.yml +233 -0
- package/node_modules/define-properties/CHANGELOG.md +44 -0
- package/node_modules/define-properties/LICENSE +21 -0
- package/node_modules/define-properties/README.md +86 -0
- package/node_modules/define-properties/index.js +58 -0
- package/node_modules/define-properties/package.json +97 -0
- package/node_modules/define-properties/test/index.js +125 -0
- package/node_modules/density-clustering/.jscsrc +64 -0
- package/node_modules/density-clustering/.jshintrc +5 -0
- package/node_modules/density-clustering/.remote-sync.json +13 -0
- package/node_modules/density-clustering/CHANGELOG.md +11 -0
- package/node_modules/density-clustering/LICENSE +22 -0
- package/node_modules/density-clustering/README.md +171 -0
- package/node_modules/density-clustering/bower.json +40 -0
- package/node_modules/density-clustering/example/browser.html +20 -0
- package/node_modules/density-clustering/example/dbscan.js +11 -0
- package/node_modules/density-clustering/example/kmeans.js +11 -0
- package/node_modules/density-clustering/example/optics.js +12 -0
- package/node_modules/density-clustering/example/priorityQueue.js +12 -0
- package/node_modules/density-clustering/gulpfile.js +30 -0
- package/node_modules/density-clustering/lib/DBSCAN.js +236 -0
- package/node_modules/density-clustering/lib/KMEANS.js +213 -0
- package/node_modules/density-clustering/lib/OPTICS.js +269 -0
- package/node_modules/density-clustering/lib/PriorityQueue.js +180 -0
- package/node_modules/density-clustering/lib/Utils.js +37 -0
- package/node_modules/density-clustering/lib/index.js +9 -0
- package/node_modules/density-clustering/package.json +70 -0
- package/node_modules/density-clustering/test/DBSCAN.test.js +73 -0
- package/node_modules/density-clustering/test/KMEANS.test.js +70 -0
- package/node_modules/density-clustering/test/OPTICS.test.js +98 -0
- package/node_modules/density-clustering/test/PriorityQueue.test.js +27 -0
- package/node_modules/earcut/LICENSE +15 -0
- package/node_modules/earcut/README.md +246 -0
- package/node_modules/earcut/dist/earcut.dev.js +690 -0
- package/node_modules/earcut/dist/earcut.min.js +1 -0
- package/node_modules/earcut/package.json +77 -0
- package/node_modules/earcut/src/earcut.js +684 -0
- package/node_modules/follow-redirects/index.js +82 -77
- package/node_modules/follow-redirects/package.json +13 -13
- package/node_modules/function-bind/.editorconfig +20 -0
- package/node_modules/function-bind/.eslintrc +15 -0
- package/node_modules/function-bind/.jscs.json +176 -0
- package/node_modules/function-bind/.npmignore +22 -0
- package/node_modules/function-bind/.travis.yml +168 -0
- package/node_modules/function-bind/LICENSE +20 -0
- package/node_modules/function-bind/README.md +48 -0
- package/node_modules/function-bind/implementation.js +52 -0
- package/node_modules/function-bind/index.js +5 -0
- package/node_modules/function-bind/package.json +96 -0
- package/node_modules/function-bind/test/.eslintrc +9 -0
- package/node_modules/function-bind/test/index.js +252 -0
- package/node_modules/geojson-equality/.npmignore +2 -0
- package/node_modules/geojson-equality/LICENSE.md +22 -0
- package/node_modules/geojson-equality/README.md +78 -0
- package/node_modules/geojson-equality/dist/geojson-equality.js +295 -0
- package/node_modules/geojson-equality/dist/geojson-equality.js.map +21 -0
- package/node_modules/geojson-equality/dist/geojson-equality.min.js +1 -0
- package/node_modules/geojson-equality/index.js +161 -0
- package/node_modules/geojson-equality/package.json +74 -0
- package/node_modules/geojson-equality/test/mocha.opts +1 -0
- package/node_modules/geojson-equality/test/test.js +364 -0
- package/node_modules/geojson-rbush/LICENSE +20 -0
- package/node_modules/geojson-rbush/README.md +213 -0
- package/node_modules/geojson-rbush/index.d.ts +19 -0
- package/node_modules/geojson-rbush/index.js +208 -0
- package/node_modules/geojson-rbush/package.json +89 -0
- package/node_modules/get-intrinsic/.eslintignore +1 -0
- package/node_modules/get-intrinsic/.eslintrc +43 -0
- package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
- package/node_modules/get-intrinsic/.nycrc +13 -0
- package/node_modules/get-intrinsic/CHANGELOG.md +64 -0
- package/node_modules/get-intrinsic/LICENSE +21 -0
- package/node_modules/get-intrinsic/README.md +65 -0
- package/node_modules/get-intrinsic/index.js +330 -0
- package/node_modules/get-intrinsic/package.json +106 -0
- package/node_modules/get-intrinsic/test/GetIntrinsic.js +260 -0
- package/node_modules/has/LICENSE-MIT +22 -0
- package/node_modules/has/README.md +18 -0
- package/node_modules/has/package.json +73 -0
- package/node_modules/has/src/index.js +5 -0
- package/node_modules/has/test/index.js +10 -0
- package/node_modules/has-symbols/.eslintrc +11 -0
- package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
- package/node_modules/has-symbols/.nycrc +9 -0
- package/node_modules/has-symbols/CHANGELOG.md +75 -0
- package/node_modules/has-symbols/LICENSE +21 -0
- package/node_modules/has-symbols/README.md +46 -0
- package/node_modules/has-symbols/index.js +13 -0
- package/node_modules/has-symbols/package.json +127 -0
- package/node_modules/has-symbols/shams.js +42 -0
- package/node_modules/has-symbols/test/index.js +22 -0
- package/node_modules/has-symbols/test/shams/core-js.js +28 -0
- package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +28 -0
- package/node_modules/has-symbols/test/tests.js +56 -0
- package/node_modules/has-tostringtag/.eslintrc +11 -0
- package/node_modules/has-tostringtag/.github/FUNDING.yml +12 -0
- package/node_modules/has-tostringtag/CHANGELOG.md +20 -0
- package/node_modules/has-tostringtag/LICENSE +21 -0
- package/node_modules/has-tostringtag/README.md +46 -0
- package/node_modules/has-tostringtag/index.js +7 -0
- package/node_modules/has-tostringtag/package.json +111 -0
- package/node_modules/has-tostringtag/shams.js +7 -0
- package/node_modules/has-tostringtag/test/index.js +21 -0
- package/node_modules/has-tostringtag/test/shams/core-js.js +28 -0
- package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +28 -0
- package/node_modules/has-tostringtag/test/tests.js +14 -0
- package/node_modules/is-arguments/.editorconfig +20 -0
- package/node_modules/is-arguments/.eslintignore +1 -0
- package/node_modules/is-arguments/.eslintrc +10 -0
- package/node_modules/is-arguments/.github/FUNDING.yml +12 -0
- package/node_modules/is-arguments/.nycrc +9 -0
- package/node_modules/is-arguments/CHANGELOG.md +179 -0
- package/node_modules/is-arguments/LICENSE +20 -0
- package/node_modules/is-arguments/README.md +47 -0
- package/node_modules/is-arguments/index.js +33 -0
- package/node_modules/is-arguments/package.json +116 -0
- package/node_modules/is-arguments/test/index.js +44 -0
- package/node_modules/is-date-object/.editorconfig +20 -0
- package/node_modules/is-date-object/.eslintignore +1 -0
- package/node_modules/is-date-object/.eslintrc +9 -0
- package/node_modules/is-date-object/.github/FUNDING.yml +12 -0
- package/node_modules/is-date-object/.nycrc +10 -0
- package/node_modules/is-date-object/CHANGELOG.md +114 -0
- package/node_modules/is-date-object/LICENSE +22 -0
- package/node_modules/is-date-object/README.md +52 -0
- package/node_modules/is-date-object/index.js +22 -0
- package/node_modules/is-date-object/package.json +110 -0
- package/node_modules/is-date-object/test/index.js +36 -0
- package/node_modules/is-regex/.editorconfig +20 -0
- package/node_modules/is-regex/.eslintignore +1 -0
- package/node_modules/is-regex/.eslintrc +19 -0
- package/node_modules/is-regex/.nycrc +10 -0
- package/node_modules/is-regex/CHANGELOG.md +197 -0
- package/node_modules/is-regex/LICENSE +20 -0
- package/node_modules/is-regex/README.md +52 -0
- package/node_modules/is-regex/index.js +58 -0
- package/node_modules/is-regex/package.json +114 -0
- package/node_modules/is-regex/test/index.js +104 -0
- package/node_modules/object-assign/index.js +90 -0
- package/node_modules/object-assign/license +21 -0
- package/node_modules/object-assign/package.json +76 -0
- package/node_modules/object-assign/readme.md +61 -0
- package/node_modules/object-is/.eslintignore +1 -0
- package/node_modules/object-is/.eslintrc +5 -0
- package/node_modules/object-is/.nycrc +13 -0
- package/node_modules/object-is/CHANGELOG.md +150 -0
- package/node_modules/object-is/LICENSE +20 -0
- package/node_modules/object-is/README.md +60 -0
- package/node_modules/object-is/auto.js +3 -0
- package/node_modules/object-is/implementation.js +19 -0
- package/node_modules/object-is/index.js +18 -0
- package/node_modules/object-is/package.json +114 -0
- package/node_modules/object-is/polyfill.js +7 -0
- package/node_modules/object-is/shim.js +14 -0
- package/node_modules/object-is/test/implementation.js +12 -0
- package/node_modules/object-is/test/index.js +12 -0
- package/node_modules/object-is/test/shimmed.js +28 -0
- package/node_modules/object-is/test/tests.js +57 -0
- package/node_modules/object-keys/.editorconfig +13 -0
- package/node_modules/object-keys/.eslintrc +17 -0
- package/node_modules/object-keys/.travis.yml +277 -0
- package/node_modules/object-keys/CHANGELOG.md +232 -0
- package/node_modules/object-keys/LICENSE +21 -0
- package/node_modules/object-keys/README.md +76 -0
- package/node_modules/object-keys/implementation.js +122 -0
- package/node_modules/object-keys/index.js +32 -0
- package/node_modules/object-keys/isArguments.js +17 -0
- package/node_modules/object-keys/package.json +118 -0
- package/node_modules/object-keys/test/index.js +5 -0
- package/node_modules/point-in-polygon/LICENSE +21 -0
- package/node_modules/point-in-polygon/example/inside.js +6 -0
- package/node_modules/point-in-polygon/flat.js +15 -0
- package/node_modules/point-in-polygon/index.js +12 -0
- package/node_modules/point-in-polygon/nested.js +18 -0
- package/node_modules/point-in-polygon/package.json +61 -0
- package/node_modules/point-in-polygon/readme.markdown +51 -0
- package/node_modules/point-in-polygon/test/box-offset.js +24 -0
- package/node_modules/point-in-polygon/test/box.js +34 -0
- package/node_modules/point-in-polygon/test/flat-offset.js +24 -0
- package/node_modules/point-in-polygon/test/flat.js +24 -0
- package/node_modules/polygon-clipping/CHANGELOG.md +129 -0
- package/node_modules/polygon-clipping/LICENSE.md +11 -0
- package/node_modules/polygon-clipping/README.md +99 -0
- package/node_modules/polygon-clipping/dist/polygon-clipping.cjs.js +1826 -0
- package/node_modules/polygon-clipping/dist/polygon-clipping.d.ts +11 -0
- package/node_modules/polygon-clipping/dist/polygon-clipping.esm.js +1820 -0
- package/node_modules/polygon-clipping/dist/polygon-clipping.umd.js +2557 -0
- package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js +10 -0
- package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js.map +1 -0
- package/node_modules/polygon-clipping/package.json +113 -0
- package/node_modules/quickselect/LICENSE +15 -0
- package/node_modules/quickselect/README.md +28 -0
- package/node_modules/quickselect/index.js +54 -0
- package/node_modules/quickselect/package.json +70 -0
- package/node_modules/quickselect/quickselect.js +63 -0
- package/node_modules/rbush/LICENSE +21 -0
- package/node_modules/rbush/README.md +218 -0
- package/node_modules/rbush/index.js +512 -0
- package/node_modules/rbush/package.json +87 -0
- package/node_modules/rbush/rbush.js +574 -0
- package/node_modules/rbush/rbush.min.js +1 -0
- package/node_modules/regexp.prototype.flags/.editorconfig +13 -0
- package/node_modules/regexp.prototype.flags/.eslintrc +18 -0
- package/node_modules/regexp.prototype.flags/.nycrc +9 -0
- package/node_modules/regexp.prototype.flags/CHANGELOG.md +184 -0
- package/node_modules/regexp.prototype.flags/LICENSE +22 -0
- package/node_modules/regexp.prototype.flags/README.md +54 -0
- package/node_modules/regexp.prototype.flags/auto.js +3 -0
- package/node_modules/regexp.prototype.flags/implementation.js +33 -0
- package/node_modules/regexp.prototype.flags/index.js +18 -0
- package/node_modules/regexp.prototype.flags/package.json +124 -0
- package/node_modules/regexp.prototype.flags/polyfill.js +36 -0
- package/node_modules/regexp.prototype.flags/shim.js +26 -0
- package/node_modules/regexp.prototype.flags/test/implementation.js +20 -0
- package/node_modules/regexp.prototype.flags/test/index.js +17 -0
- package/node_modules/regexp.prototype.flags/test/shimmed.js +47 -0
- package/node_modules/regexp.prototype.flags/test/tests.js +141 -0
- package/node_modules/robust-predicates/LICENSE +24 -0
- package/node_modules/robust-predicates/README.md +82 -0
- package/node_modules/robust-predicates/esm/incircle.js +765 -0
- package/node_modules/robust-predicates/esm/insphere.js +775 -0
- package/node_modules/robust-predicates/esm/orient2d.js +186 -0
- package/node_modules/robust-predicates/esm/orient3d.js +462 -0
- package/node_modules/robust-predicates/esm/util.js +138 -0
- package/node_modules/robust-predicates/index.js +5 -0
- package/node_modules/robust-predicates/package.json +95 -0
- package/node_modules/robust-predicates/umd/incircle.js +910 -0
- package/node_modules/robust-predicates/umd/incircle.min.js +1 -0
- package/node_modules/robust-predicates/umd/insphere.js +925 -0
- package/node_modules/robust-predicates/umd/insphere.min.js +1 -0
- package/node_modules/robust-predicates/umd/orient2d.js +284 -0
- package/node_modules/robust-predicates/umd/orient2d.min.js +1 -0
- package/node_modules/robust-predicates/umd/orient3d.js +603 -0
- package/node_modules/robust-predicates/umd/orient3d.min.js +1 -0
- package/node_modules/robust-predicates/umd/predicates.js +2341 -0
- package/node_modules/robust-predicates/umd/predicates.min.js +1 -0
- package/node_modules/skmeans/.gitattributes +17 -0
- package/node_modules/skmeans/.npmignore +52 -0
- package/node_modules/skmeans/Gruntfile.js +49 -0
- package/node_modules/skmeans/README.md +62 -0
- package/node_modules/skmeans/browser.js +19 -0
- package/node_modules/skmeans/dist/browser/skmeans.js +339 -0
- package/node_modules/skmeans/dist/browser/skmeans.js.map +1 -0
- package/node_modules/skmeans/dist/browser/skmeans.min.js +3 -0
- package/node_modules/skmeans/dist/index.html +15 -0
- package/node_modules/skmeans/dist/node/Gruntfile.js +49 -0
- package/node_modules/skmeans/dist/node/Gruntfile.js.map +1 -0
- package/node_modules/skmeans/dist/node/browser.js +19 -0
- package/node_modules/skmeans/dist/node/browser.js.map +1 -0
- package/node_modules/skmeans/dist/node/distance.js +39 -0
- package/node_modules/skmeans/dist/node/distance.js.map +1 -0
- package/node_modules/skmeans/dist/node/kinit.js +110 -0
- package/node_modules/skmeans/dist/node/kinit.js.map +1 -0
- package/node_modules/skmeans/dist/node/main.js +161 -0
- package/node_modules/skmeans/dist/node/main.js.map +1 -0
- package/node_modules/skmeans/distance.js +37 -0
- package/node_modules/skmeans/kinit.js +102 -0
- package/node_modules/skmeans/main.js +147 -0
- package/node_modules/skmeans/package.json +68 -0
- package/node_modules/skmeans/test/data/random_pts.js +1 -0
- package/node_modules/skmeans/test/data/well-separated.js +1 -0
- package/node_modules/skmeans/test/multi.js +15 -0
- package/node_modules/skmeans/test/stats.js +65 -0
- package/node_modules/skmeans/test/test.js +42 -0
- package/node_modules/skmeans/test/test_rand.js +23 -0
- package/node_modules/skmeans/test/test_ws.js +23 -0
- package/node_modules/skmeans/test/uni.js +15 -0
- package/node_modules/splaytree/Readme.md +221 -0
- package/node_modules/splaytree/dist/splay.esm.js +673 -0
- package/node_modules/splaytree/dist/splay.esm.js.map +1 -0
- package/node_modules/splaytree/dist/splay.js +681 -0
- package/node_modules/splaytree/dist/splay.js.map +1 -0
- package/node_modules/splaytree/package.json +123 -0
- package/node_modules/splaytree/src/index.ts +667 -0
- package/node_modules/splaytree/src/node.ts +15 -0
- package/node_modules/splaytree/src/types.ts +2 -0
- package/node_modules/splaytree/typings/index.d.ts +82 -0
- package/node_modules/splaytree/typings/node.d.ts +8 -0
- package/node_modules/splaytree/typings/types.d.ts +2 -0
- package/node_modules/tinyqueue/LICENSE +15 -0
- package/node_modules/tinyqueue/README.md +59 -0
- package/node_modules/tinyqueue/index.d.ts +11 -0
- package/node_modules/tinyqueue/index.js +79 -0
- package/node_modules/tinyqueue/package.json +78 -0
- package/node_modules/tinyqueue/tinyqueue.js +93 -0
- package/node_modules/tinyqueue/tinyqueue.min.js +1 -0
- package/node_modules/topojson-client/LICENSE +13 -0
- package/node_modules/topojson-client/README.md +242 -0
- package/node_modules/topojson-client/bin/topo2geo +106 -0
- package/node_modules/topojson-client/bin/topomerge +216 -0
- package/node_modules/topojson-client/bin/topoquantize +74 -0
- package/node_modules/topojson-client/dist/topojson-client.js +508 -0
- package/node_modules/topojson-client/dist/topojson-client.min.js +2 -0
- package/node_modules/topojson-client/package.json +77 -0
- package/node_modules/topojson-client/src/bbox.js +39 -0
- package/node_modules/topojson-client/src/bisect.js +9 -0
- package/node_modules/topojson-client/src/feature.js +70 -0
- package/node_modules/topojson-client/src/identity.js +3 -0
- package/node_modules/topojson-client/src/index.js +8 -0
- package/node_modules/topojson-client/src/merge.js +103 -0
- package/node_modules/topojson-client/src/mesh.js +53 -0
- package/node_modules/topojson-client/src/neighbors.js +45 -0
- package/node_modules/topojson-client/src/quantize.js +54 -0
- package/node_modules/topojson-client/src/reverse.js +4 -0
- package/node_modules/topojson-client/src/stitch.js +73 -0
- package/node_modules/topojson-client/src/transform.js +19 -0
- package/node_modules/topojson-client/src/untransform.js +23 -0
- package/node_modules/topojson-server/LICENSE +13 -0
- package/node_modules/topojson-server/README.md +75 -0
- package/node_modules/topojson-server/bin/geo2topo +125 -0
- package/node_modules/topojson-server/dist/topojson-server.js +838 -0
- package/node_modules/topojson-server/dist/topojson-server.min.js +2 -0
- package/node_modules/topojson-server/package.json +75 -0
- package/node_modules/topojson-server/src/bounds.js +46 -0
- package/node_modules/topojson-server/src/cut.js +62 -0
- package/node_modules/topojson-server/src/dedup.js +187 -0
- package/node_modules/topojson-server/src/delta.js +30 -0
- package/node_modules/topojson-server/src/extract.js +67 -0
- package/node_modules/topojson-server/src/geometry.js +39 -0
- package/node_modules/topojson-server/src/hash/hashmap.js +70 -0
- package/node_modules/topojson-server/src/hash/hashset.js +53 -0
- package/node_modules/topojson-server/src/hash/point-equal.js +3 -0
- package/node_modules/topojson-server/src/hash/point-hash.js +13 -0
- package/node_modules/topojson-server/src/index.js +1 -0
- package/node_modules/topojson-server/src/join.js +116 -0
- package/node_modules/topojson-server/src/object.js +1 -0
- package/node_modules/topojson-server/src/prequantize.js +72 -0
- package/node_modules/topojson-server/src/topology.js +80 -0
- package/node_modules/turf-jsts/README.md +19 -0
- package/node_modules/turf-jsts/jsts.js +18750 -0
- package/node_modules/turf-jsts/jsts.min.js +1 -0
- package/node_modules/turf-jsts/jsts.mjs +18742 -0
- package/node_modules/turf-jsts/package.json +100 -0
- package/node_modules/turf-jsts/src/Array.js +36 -0
- package/node_modules/turf-jsts/src/Map.js +150 -0
- package/node_modules/turf-jsts/src/Math.js +6 -0
- package/node_modules/turf-jsts/src/Number.js +18 -0
- package/node_modules/turf-jsts/src/extend.js +5 -0
- package/node_modules/turf-jsts/src/hasInterface.js +3 -0
- package/node_modules/turf-jsts/src/index.js +18 -0
- package/node_modules/turf-jsts/src/inherits.js +4 -0
- package/node_modules/turf-jsts/src/java/io/ByteArrayOutputStream.js +1 -0
- package/node_modules/turf-jsts/src/java/io/IOException.js +1 -0
- package/node_modules/turf-jsts/src/java/io/InputStream.js +1 -0
- package/node_modules/turf-jsts/src/java/io/LineNumberReader.js +1 -0
- package/node_modules/turf-jsts/src/java/io/OutputStream.js +1 -0
- package/node_modules/turf-jsts/src/java/io/PrintStream.js +1 -0
- package/node_modules/turf-jsts/src/java/io/Serializable.js +1 -0
- package/node_modules/turf-jsts/src/java/io/StringReader.js +1 -0
- package/node_modules/turf-jsts/src/java/io/StringWriter.js +1 -0
- package/node_modules/turf-jsts/src/java/io/Writer.js +1 -0
- package/node_modules/turf-jsts/src/java/lang/Character.js +4 -0
- package/node_modules/turf-jsts/src/java/lang/Cloneable.js +1 -0
- package/node_modules/turf-jsts/src/java/lang/Comparable.js +1 -0
- package/node_modules/turf-jsts/src/java/lang/Double.js +7 -0
- package/node_modules/turf-jsts/src/java/lang/Exception.js +1 -0
- package/node_modules/turf-jsts/src/java/lang/IllegalArgumentException.js +8 -0
- package/node_modules/turf-jsts/src/java/lang/Integer.js +14 -0
- package/node_modules/turf-jsts/src/java/lang/RuntimeException.js +8 -0
- package/node_modules/turf-jsts/src/java/lang/StringBuffer.js +16 -0
- package/node_modules/turf-jsts/src/java/lang/System.js +15 -0
- package/node_modules/turf-jsts/src/java/text/DecimalFormat.js +1 -0
- package/node_modules/turf-jsts/src/java/text/DecimalFormatSymbols.js +1 -0
- package/node_modules/turf-jsts/src/java/util/ArrayList.js +181 -0
- package/node_modules/turf-jsts/src/java/util/Arrays.js +60 -0
- package/node_modules/turf-jsts/src/java/util/Collection.js +58 -0
- package/node_modules/turf-jsts/src/java/util/Collections.js +34 -0
- package/node_modules/turf-jsts/src/java/util/Comparator.js +1 -0
- package/node_modules/turf-jsts/src/java/util/EmptyStackException.js +15 -0
- package/node_modules/turf-jsts/src/java/util/HashMap.js +61 -0
- package/node_modules/turf-jsts/src/java/util/HashSet.js +151 -0
- package/node_modules/turf-jsts/src/java/util/IndexOutOfBoundsException.js +15 -0
- package/node_modules/turf-jsts/src/java/util/Iterator.js +24 -0
- package/node_modules/turf-jsts/src/java/util/LinkedList.js +14 -0
- package/node_modules/turf-jsts/src/java/util/List.js +32 -0
- package/node_modules/turf-jsts/src/java/util/Map.js +53 -0
- package/node_modules/turf-jsts/src/java/util/NoSuchElementException.js +15 -0
- package/node_modules/turf-jsts/src/java/util/OperationNotSupported.js +15 -0
- package/node_modules/turf-jsts/src/java/util/Set.js +21 -0
- package/node_modules/turf-jsts/src/java/util/SortedMap.js +10 -0
- package/node_modules/turf-jsts/src/java/util/SortedSet.js +11 -0
- package/node_modules/turf-jsts/src/java/util/Stack.js +132 -0
- package/node_modules/turf-jsts/src/java/util/TreeMap.js +246 -0
- package/node_modules/turf-jsts/src/java/util/TreeSet.js +157 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/JTSVersion.js +32 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/Angle.js +105 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/BoundaryNodeRule.js +66 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/CGAlgorithms.js +194 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/CGAlgorithms3D.js +65 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/CGAlgorithmsDD.js +72 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/Centroid.js +127 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/ConvexHull.js +252 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/HCoordinate.js +105 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/InteriorPointArea.js +137 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/InteriorPointLine.js +68 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/InteriorPointPoint.js +45 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/LineIntersector.js +156 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/MCPointInRing.js +102 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/MinimumBoundingCircle.js +170 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/MinimumDiameter.js +165 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/NonRobustCGAlgorithms.js +123 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/NonRobustLineIntersector.js +147 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/NotRepresentableException.js +13 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/PointInRing.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/PointLocator.js +120 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RayCrossingCounter.js +95 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RectangleLineIntersector.js +46 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RobustDeterminant.js +202 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RobustLineIntersector.js +231 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/SimplePointInRing.js +19 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/distance/DiscreteHausdorffDistance.js +139 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/distance/DistanceToPoint.js +61 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/distance/PointPairDistance.js +79 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/locate/IndexedPointInAreaLocator.js +95 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/locate/PointOnGeometryLocator.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/locate/SimplePointInAreaLocator.js +54 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/AreaSimilarityMeasure.js +15 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/HausdorffSimilarityMeasure.js +27 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/SimilarityMeasure.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/SimilarityMeasureCombiner.js +11 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm.js +42 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/densify/Densifier.js +93 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/densify.js +2 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve/DissolveEdgeGraph.js +14 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve/DissolveHalfEdge.js +21 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve/LineDissolver.js +152 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve.js +4 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/EdgeGraph.js +63 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/EdgeGraphBuilder.js +53 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/HalfEdge.js +143 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/MarkHalfEdge.js +41 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph.js +5 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Coordinate.js +202 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateArrays.js +247 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateFilter.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateList.js +127 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequence.js +26 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequenceComparator.js +67 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequenceFactory.js +23 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequenceFilter.js +11 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequences.js +104 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Dimension.js +60 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Envelope.js +347 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Geometry.js +209 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryCollection.js +216 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryCollectionIterator.js +68 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryComponentFilter.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryFactory.js +260 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryFilter.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/IntersectionMatrix.js +232 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/LineSegment.js +276 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/LineString.js +212 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Lineal.js +8 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/LinearRing.js +57 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Location.js +28 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/MultiLineString.js +69 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/MultiPoint.js +55 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/MultiPolygon.js +66 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/OctagonalEnvelope.js +278 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Point.js +145 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Polygon.js +282 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Polygonal.js +8 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/PrecisionModel.js +136 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Puntal.js +8 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/TopologyException.js +23 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Triangle.js +143 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/impl/CoordinateArraySequence.js +152 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/impl/CoordinateArraySequenceFactory.js +40 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/AbstractPreparedPolygonContains.js +62 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/BasicPreparedGeometry.js +72 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedGeometry.js +19 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedGeometryFactory.js +26 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedLineString.js +25 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedLineStringIntersects.js +39 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPoint.js +14 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygon.js +59 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonContains.js +21 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonContainsProperly.js +29 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonCovers.js +25 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonIntersects.js +30 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonPredicate.js +63 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/AffineTransformation.js +445 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/AffineTransformationBuilder.js +49 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/AffineTransformationFactory.js +72 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/ComponentCoordinateExtracter.js +24 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryCollectionMapper.js +26 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryCombiner.js +80 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryEditor.js +156 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryExtracter.js +36 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryMapper.js +36 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryTransformer.js +127 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/LineStringExtracter.js +37 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/LinearComponentExtracter.js +98 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/NoninvertibleTransformationException.js +10 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/PointExtracter.js +38 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/PolygonExtracter.js +34 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/ShortCircuitedGeometryVisitor.js +25 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/SineStarFactory.js +50 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geom.js +73 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Depth.js +92 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/DirectedEdge.js +147 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/DirectedEdgeStar.js +239 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Edge.js +193 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeEnd.js +103 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeEndStar.js +177 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeIntersection.js +55 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeIntersectionList.js +78 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeList.js +61 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeNodingValidator.js +32 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeRing.js +163 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/GeometryGraph.js +255 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/GraphComponent.js +53 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Label.js +147 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Node.js +95 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/NodeFactory.js +13 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/NodeMap.js +68 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/PlanarGraph.js +142 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Position.js +16 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Quadrant.js +60 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/TopologyLocation.js +129 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/EdgeSetIntersector.js +8 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChain.js +19 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChainEdge.js +83 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChainIndexer.js +41 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SegmentIntersector.js +115 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SimpleEdgeSetIntersector.js +53 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SimpleMCSweepLineIntersector.js +101 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SimpleSweepLineIntersector.js +101 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SweepLineEvent.js +65 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SweepLineSegment.js +31 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph.js +34 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/ArrayListVisitor.js +20 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/ItemVisitor.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/SpatialIndex.js +18 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Bintree.js +74 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Interval.js +73 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Key.js +46 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Node.js +94 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/NodeBase.js +97 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Root.js +37 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChain.js +107 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChainBuilder.js +67 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChainOverlapAction.js +31 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChainSelectAction.js +25 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeBranchNode.js +31 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeLeafNode.js +24 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeNode.js +49 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/SortedPackedIntervalRTree.js +68 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree.js +5 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree/KdNode.js +68 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree/KdNodeVisitor.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree/KdTree.js +201 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree.js +4 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/DoubleBits.js +86 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/IntervalSize.js +19 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Key.js +57 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Node.js +114 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/NodeBase.js +131 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Quadtree.js +81 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Root.js +39 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree.js +8 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/AbstractNode.js +45 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/AbstractSTRtree.js +296 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/Boundable.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/BoundablePair.js +83 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/GeometryItemDistance.js +15 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/Interval.js +46 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/ItemBoundable.js +25 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/ItemDistance.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/SIRtree.js +88 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/STRtree.js +234 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree.js +11 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineEvent.js +53 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineIndex.js +53 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineInterval.js +34 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineOverlapAction.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline.js +5 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/index.js +2 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/io/GeoJSONParser.js +439 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/io/GeoJSONReader.js +59 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/io/GeoJSONWriter.js +36 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/io/OL3Parser.js +181 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/io/WKTParser.js +398 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/io/WKTReader.js +62 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/io/WKTWriter.js +53 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/io.js +8 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/ExtractLineByLocation.js +69 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LengthIndexOfPoint.js +65 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LengthIndexedLine.js +86 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LengthLocationMap.js +106 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LinearGeometryBuilder.js +74 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LinearIterator.js +88 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LinearLocation.js +207 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LocationIndexOfLine.js +33 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LocationIndexOfPoint.js +68 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LocationIndexedLine.js +65 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/linearref.js +11 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/math/DD.js +639 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/math/MathUtil.js +71 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/math/Matrix.js +54 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/math/Plane3D.js +41 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/math/Vector2D.js +180 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/math/Vector3D.js +97 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/monkey.js +167 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/BasicSegmentString.js +46 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/FastNodingValidator.js +64 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/FastSegmentSetIntersectionFinder.js +31 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/InteriorIntersectionFinder.js +96 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/InteriorIntersectionFinderAdder.js +41 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/IntersectionAdder.js +90 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/IteratedNoder.js +54 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/MCIndexNoder.js +91 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/MCIndexSegmentSetMutualIntersector.js +88 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/NodableSegmentString.js +11 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/NodedSegmentString.js +103 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/Noder.js +10 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/NodingValidator.js +105 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/Octant.js +40 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/OrientedCoordinateArray.js +46 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/ScaledNoder.js +99 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentIntersectionDetector.js +81 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentIntersector.js +10 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentNode.js +50 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentNodeList.js +210 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentPointComparator.js +48 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentSetMutualIntersector.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentString.js +14 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentStringDissolver.js +58 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentStringUtil.js +49 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SimpleNoder.js +37 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SimpleSegmentSetMutualIntersector.js +35 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SinglePassNoder.js +20 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/GeometryNoder.js +63 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/HotPixel.js +126 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/MCIndexPointSnapper.js +75 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/MCIndexSnapRounder.js +90 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/SimpleSnapRounder.js +109 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/noding.js +3 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/boundary/BoundaryOp.js +117 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/boundary.js +2 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferBuilder.js +150 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferInputLineSimplifier.js +98 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferOp.js +139 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferParameters.js +95 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferSubgraph.js +151 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetCurveBuilder.js +170 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetCurveSetBuilder.js +122 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetSegmentGenerator.js +289 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetSegmentString.js +68 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/RightmostEdgeFinder.js +95 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/SubgraphDepthLocater.js +111 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/BufferCurveMaximumDistanceFinder.js +92 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/BufferDistanceValidator.js +107 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/BufferResultValidator.js +116 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/DistanceToPointFinder.js +61 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/PointPairDistance.js +75 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer.js +19 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/ConnectedElementLocationFilter.js +28 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/ConnectedElementPointFilter.js +27 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/DistanceOp.js +239 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/FacetSequence.js +114 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/FacetSequenceTreeBuilder.js +57 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/GeometryLocation.js +38 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/IndexedFacetDistance.js +45 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance.js +8 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d/AxisPlaneCoordinateSequence.js +80 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d/Distance3DOp.js +312 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d/PlanarPolygon3D.js +117 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d.js +4 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/geometrygraph/GeometryGraphOp.js +46 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/geometrygraph.js +2 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/issimple/IsSimpleOp.js +164 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/issimple.js +2 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/EdgeString.js +46 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMergeDirectedEdge.js +28 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMergeEdge.js +17 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMergeGraph.js +38 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMerger.js +116 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineSequencer.js +249 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge.js +7 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/ConsistentPolygonRingChecker.js +74 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/EdgeSetNoder.js +32 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/LineBuilder.js +96 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/MaximalEdgeRing.js +43 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/MinimalEdgeRing.js +21 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/OverlayNodeFactory.js +15 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/OverlayOp.js +332 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/PointBuilder.js +45 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/PolygonBuilder.js +152 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/GeometrySnapper.js +115 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/LineStringSnapper.js +93 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/SnapIfNeededOverlayOp.js +57 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/SnapOverlayOp.js +73 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/validate/FuzzyPointLocator.js +77 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/validate/OffsetPointGenerator.js +55 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/validate/OverlayResultValidator.js +88 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay.js +21 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/EdgeRing.js +232 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeDirectedEdge.js +41 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeEdge.js +17 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeGraph.js +249 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/Polygonizer.js +186 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize.js +6 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/predicate/RectangleContains.js +64 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/predicate/RectangleIntersects.js +158 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/predicate.js +3 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/EdgeEndBuilder.js +64 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/EdgeEndBundle.js +96 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/EdgeEndBundleStar.js +26 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateComputer.js +172 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateNode.js +21 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateNodeFactory.js +15 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateNodeGraph.js +52 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateOp.js +109 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/CascadedPolygonUnion.js +157 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/PointGeometryUnion.js +47 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/UnaryUnionOp.js +105 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/UnionInteracting.js +75 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/UnionOp.js +21 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union.js +6 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/ConnectedInteriorTester.js +121 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/ConsistentAreaTester.js +54 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/IndexedNestedRingTester.js +60 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/IsValidOp.js +324 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/QuadtreeNestedRingTester.js +61 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/RepeatedPointTester.js +56 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/SimpleNestedRingTester.js +46 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/SweeplineNestedRingTester.js +57 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/TopologyValidationError.js +48 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid.js +10 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/operation.js +4 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/DirectedEdge.js +101 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/DirectedEdgeStar.js +79 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/Edge.js +51 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/GraphComponent.js +56 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/Node.js +60 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/NodeMap.js +29 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/PlanarGraph.js +100 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/Subgraph.js +43 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/algorithm/ConnectedSubgraphFinder.js +52 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CommonBits.js +67 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CommonBitsOp.js +63 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CommonBitsRemover.js +87 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CoordinatePrecisionReducerFilter.js +25 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision/EnhancedPrecisionOp.js +116 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision/GeometryPrecisionReducer.js +82 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision/MinimumClearance.js +132 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision/PrecisionReducerCoordinateOperation.js +39 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision/SimpleMinimumClearance.js +126 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/precision.js +10 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/shape/GeometricShapeBuilder.js +54 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/shape/fractal/KochSnowflakeBuilder.js +66 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/shape/fractal/SierpinskiCarpetBuilder.js +57 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/shape/random/RandomPointsBuilder.js +56 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/shape/random/RandomPointsInGridBuilder.js +70 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/DouglasPeuckerLineSimplifier.js +64 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/DouglasPeuckerSimplifier.js +90 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/LineSegmentIndex.js +63 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLineSegment.js +36 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLineString.js +78 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLineStringSimplifier.js +129 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLinesSimplifier.js +29 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TopologyPreservingSimplifier.js +88 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/VWLineSimplifier.js +135 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/VWSimplifier.js +90 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/simplify.js +11 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConformingDelaunayTriangulationBuilder.js +95 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConformingDelaunayTriangulator.js +216 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintEnforcementException.js +29 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintSplitPointFinder.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintVertex.js +34 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintVertexFactory.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/DelaunayTriangulationBuilder.js +84 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/IncrementalDelaunayTriangulator.js +50 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/MidpointSplitPointFinder.js +16 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/NonEncroachingSplitPointFinder.js +31 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/Segment.js +96 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/SplitSegment.js +56 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/VertexTaggedGeometryDataMapper.js +48 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/VoronoiDiagramBuilder.js +77 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/EdgeConnectedTriangleTraversal.js +39 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/LastFoundQuadEdgeLocator.js +32 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/LocateFailureException.js +32 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdge.js +146 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeLocator.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeSubdivision.js +456 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeTriangle.js +191 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeUtil.js +19 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/TraversalVisitor.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/TrianglePredicate.js +113 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/TriangleVisitor.js +9 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/Vertex.js +210 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge.js +5 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate.js +15 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/Assert.js +53 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/AssertionFailedException.js +19 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/CollectionUtil.js +35 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/CoordinateArrayFilter.js +22 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/CoordinateCountFilter.js +19 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/GeometricShapeFactory.js +266 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/Memory.js +47 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/NumberUtil.js +11 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/ObjectCounter.js +44 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/PriorityQueue.js +55 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/StringUtil.js +79 -0
- package/node_modules/turf-jsts/src/org/locationtech/jts/util/UniqueCoordinateArrayFilter.js +33 -0
- package/package.json +21 -12
- package/tak-registration.html +15 -11
- package/tak-registration.js +229 -27
|
@@ -0,0 +1,690 @@
|
|
|
1
|
+
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.earcut = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
module.exports = earcut;
|
|
5
|
+
module.exports.default = earcut;
|
|
6
|
+
|
|
7
|
+
function earcut(data, holeIndices, dim) {
|
|
8
|
+
|
|
9
|
+
dim = dim || 2;
|
|
10
|
+
|
|
11
|
+
var hasHoles = holeIndices && holeIndices.length,
|
|
12
|
+
outerLen = hasHoles ? holeIndices[0] * dim : data.length,
|
|
13
|
+
outerNode = linkedList(data, 0, outerLen, dim, true),
|
|
14
|
+
triangles = [];
|
|
15
|
+
|
|
16
|
+
if (!outerNode || outerNode.next === outerNode.prev) return triangles;
|
|
17
|
+
|
|
18
|
+
var minX, minY, maxX, maxY, x, y, invSize;
|
|
19
|
+
|
|
20
|
+
if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);
|
|
21
|
+
|
|
22
|
+
// if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox
|
|
23
|
+
if (data.length > 80 * dim) {
|
|
24
|
+
minX = maxX = data[0];
|
|
25
|
+
minY = maxY = data[1];
|
|
26
|
+
|
|
27
|
+
for (var i = dim; i < outerLen; i += dim) {
|
|
28
|
+
x = data[i];
|
|
29
|
+
y = data[i + 1];
|
|
30
|
+
if (x < minX) minX = x;
|
|
31
|
+
if (y < minY) minY = y;
|
|
32
|
+
if (x > maxX) maxX = x;
|
|
33
|
+
if (y > maxY) maxY = y;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// minX, minY and invSize are later used to transform coords into integers for z-order calculation
|
|
37
|
+
invSize = Math.max(maxX - minX, maxY - minY);
|
|
38
|
+
invSize = invSize !== 0 ? 1 / invSize : 0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
earcutLinked(outerNode, triangles, dim, minX, minY, invSize);
|
|
42
|
+
|
|
43
|
+
return triangles;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// create a circular doubly linked list from polygon points in the specified winding order
|
|
47
|
+
function linkedList(data, start, end, dim, clockwise) {
|
|
48
|
+
var i, last;
|
|
49
|
+
|
|
50
|
+
if (clockwise === (signedArea(data, start, end, dim) > 0)) {
|
|
51
|
+
for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);
|
|
52
|
+
} else {
|
|
53
|
+
for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (last && equals(last, last.next)) {
|
|
57
|
+
removeNode(last);
|
|
58
|
+
last = last.next;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return last;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// eliminate colinear or duplicate points
|
|
65
|
+
function filterPoints(start, end) {
|
|
66
|
+
if (!start) return start;
|
|
67
|
+
if (!end) end = start;
|
|
68
|
+
|
|
69
|
+
var p = start,
|
|
70
|
+
again;
|
|
71
|
+
do {
|
|
72
|
+
again = false;
|
|
73
|
+
|
|
74
|
+
if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {
|
|
75
|
+
removeNode(p);
|
|
76
|
+
p = end = p.prev;
|
|
77
|
+
if (p === p.next) break;
|
|
78
|
+
again = true;
|
|
79
|
+
|
|
80
|
+
} else {
|
|
81
|
+
p = p.next;
|
|
82
|
+
}
|
|
83
|
+
} while (again || p !== end);
|
|
84
|
+
|
|
85
|
+
return end;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// main ear slicing loop which triangulates a polygon (given as a linked list)
|
|
89
|
+
function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {
|
|
90
|
+
if (!ear) return;
|
|
91
|
+
|
|
92
|
+
// interlink polygon nodes in z-order
|
|
93
|
+
if (!pass && invSize) indexCurve(ear, minX, minY, invSize);
|
|
94
|
+
|
|
95
|
+
var stop = ear,
|
|
96
|
+
prev, next;
|
|
97
|
+
|
|
98
|
+
// iterate through ears, slicing them one by one
|
|
99
|
+
while (ear.prev !== ear.next) {
|
|
100
|
+
prev = ear.prev;
|
|
101
|
+
next = ear.next;
|
|
102
|
+
|
|
103
|
+
if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {
|
|
104
|
+
// cut off the triangle
|
|
105
|
+
triangles.push(prev.i / dim);
|
|
106
|
+
triangles.push(ear.i / dim);
|
|
107
|
+
triangles.push(next.i / dim);
|
|
108
|
+
|
|
109
|
+
removeNode(ear);
|
|
110
|
+
|
|
111
|
+
// skipping the next vertex leads to less sliver triangles
|
|
112
|
+
ear = next.next;
|
|
113
|
+
stop = next.next;
|
|
114
|
+
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
ear = next;
|
|
119
|
+
|
|
120
|
+
// if we looped through the whole remaining polygon and can't find any more ears
|
|
121
|
+
if (ear === stop) {
|
|
122
|
+
// try filtering points and slicing again
|
|
123
|
+
if (!pass) {
|
|
124
|
+
earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);
|
|
125
|
+
|
|
126
|
+
// if this didn't work, try curing all small self-intersections locally
|
|
127
|
+
} else if (pass === 1) {
|
|
128
|
+
ear = cureLocalIntersections(filterPoints(ear), triangles, dim);
|
|
129
|
+
earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);
|
|
130
|
+
|
|
131
|
+
// as a last resort, try splitting the remaining polygon into two
|
|
132
|
+
} else if (pass === 2) {
|
|
133
|
+
splitEarcut(ear, triangles, dim, minX, minY, invSize);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// check whether a polygon node forms a valid ear with adjacent nodes
|
|
142
|
+
function isEar(ear) {
|
|
143
|
+
var a = ear.prev,
|
|
144
|
+
b = ear,
|
|
145
|
+
c = ear.next;
|
|
146
|
+
|
|
147
|
+
if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
|
|
148
|
+
|
|
149
|
+
// now make sure we don't have other points inside the potential ear
|
|
150
|
+
var p = ear.next.next;
|
|
151
|
+
|
|
152
|
+
while (p !== ear.prev) {
|
|
153
|
+
if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
|
|
154
|
+
area(p.prev, p, p.next) >= 0) return false;
|
|
155
|
+
p = p.next;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function isEarHashed(ear, minX, minY, invSize) {
|
|
162
|
+
var a = ear.prev,
|
|
163
|
+
b = ear,
|
|
164
|
+
c = ear.next;
|
|
165
|
+
|
|
166
|
+
if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
|
|
167
|
+
|
|
168
|
+
// triangle bbox; min & max are calculated like this for speed
|
|
169
|
+
var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),
|
|
170
|
+
minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),
|
|
171
|
+
maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),
|
|
172
|
+
maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);
|
|
173
|
+
|
|
174
|
+
// z-order range for the current triangle bbox;
|
|
175
|
+
var minZ = zOrder(minTX, minTY, minX, minY, invSize),
|
|
176
|
+
maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);
|
|
177
|
+
|
|
178
|
+
var p = ear.prevZ,
|
|
179
|
+
n = ear.nextZ;
|
|
180
|
+
|
|
181
|
+
// look for points inside the triangle in both directions
|
|
182
|
+
while (p && p.z >= minZ && n && n.z <= maxZ) {
|
|
183
|
+
if (p !== ear.prev && p !== ear.next &&
|
|
184
|
+
pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
|
|
185
|
+
area(p.prev, p, p.next) >= 0) return false;
|
|
186
|
+
p = p.prevZ;
|
|
187
|
+
|
|
188
|
+
if (n !== ear.prev && n !== ear.next &&
|
|
189
|
+
pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&
|
|
190
|
+
area(n.prev, n, n.next) >= 0) return false;
|
|
191
|
+
n = n.nextZ;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// look for remaining points in decreasing z-order
|
|
195
|
+
while (p && p.z >= minZ) {
|
|
196
|
+
if (p !== ear.prev && p !== ear.next &&
|
|
197
|
+
pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
|
|
198
|
+
area(p.prev, p, p.next) >= 0) return false;
|
|
199
|
+
p = p.prevZ;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// look for remaining points in increasing z-order
|
|
203
|
+
while (n && n.z <= maxZ) {
|
|
204
|
+
if (n !== ear.prev && n !== ear.next &&
|
|
205
|
+
pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&
|
|
206
|
+
area(n.prev, n, n.next) >= 0) return false;
|
|
207
|
+
n = n.nextZ;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// go through all polygon nodes and cure small local self-intersections
|
|
214
|
+
function cureLocalIntersections(start, triangles, dim) {
|
|
215
|
+
var p = start;
|
|
216
|
+
do {
|
|
217
|
+
var a = p.prev,
|
|
218
|
+
b = p.next.next;
|
|
219
|
+
|
|
220
|
+
if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {
|
|
221
|
+
|
|
222
|
+
triangles.push(a.i / dim);
|
|
223
|
+
triangles.push(p.i / dim);
|
|
224
|
+
triangles.push(b.i / dim);
|
|
225
|
+
|
|
226
|
+
// remove two nodes involved
|
|
227
|
+
removeNode(p);
|
|
228
|
+
removeNode(p.next);
|
|
229
|
+
|
|
230
|
+
p = start = b;
|
|
231
|
+
}
|
|
232
|
+
p = p.next;
|
|
233
|
+
} while (p !== start);
|
|
234
|
+
|
|
235
|
+
return filterPoints(p);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// try splitting polygon into two and triangulate them independently
|
|
239
|
+
function splitEarcut(start, triangles, dim, minX, minY, invSize) {
|
|
240
|
+
// look for a valid diagonal that divides the polygon into two
|
|
241
|
+
var a = start;
|
|
242
|
+
do {
|
|
243
|
+
var b = a.next.next;
|
|
244
|
+
while (b !== a.prev) {
|
|
245
|
+
if (a.i !== b.i && isValidDiagonal(a, b)) {
|
|
246
|
+
// split the polygon in two by the diagonal
|
|
247
|
+
var c = splitPolygon(a, b);
|
|
248
|
+
|
|
249
|
+
// filter colinear points around the cuts
|
|
250
|
+
a = filterPoints(a, a.next);
|
|
251
|
+
c = filterPoints(c, c.next);
|
|
252
|
+
|
|
253
|
+
// run earcut on each half
|
|
254
|
+
earcutLinked(a, triangles, dim, minX, minY, invSize);
|
|
255
|
+
earcutLinked(c, triangles, dim, minX, minY, invSize);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
b = b.next;
|
|
259
|
+
}
|
|
260
|
+
a = a.next;
|
|
261
|
+
} while (a !== start);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// link every hole into the outer loop, producing a single-ring polygon without holes
|
|
265
|
+
function eliminateHoles(data, holeIndices, outerNode, dim) {
|
|
266
|
+
var queue = [],
|
|
267
|
+
i, len, start, end, list;
|
|
268
|
+
|
|
269
|
+
for (i = 0, len = holeIndices.length; i < len; i++) {
|
|
270
|
+
start = holeIndices[i] * dim;
|
|
271
|
+
end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
|
|
272
|
+
list = linkedList(data, start, end, dim, false);
|
|
273
|
+
if (list === list.next) list.steiner = true;
|
|
274
|
+
queue.push(getLeftmost(list));
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
queue.sort(compareX);
|
|
278
|
+
|
|
279
|
+
// process holes from left to right
|
|
280
|
+
for (i = 0; i < queue.length; i++) {
|
|
281
|
+
outerNode = eliminateHole(queue[i], outerNode);
|
|
282
|
+
outerNode = filterPoints(outerNode, outerNode.next);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
return outerNode;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
function compareX(a, b) {
|
|
289
|
+
return a.x - b.x;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// find a bridge between vertices that connects hole with an outer ring and and link it
|
|
293
|
+
function eliminateHole(hole, outerNode) {
|
|
294
|
+
var bridge = findHoleBridge(hole, outerNode);
|
|
295
|
+
if (!bridge) {
|
|
296
|
+
return outerNode;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
var bridgeReverse = splitPolygon(bridge, hole);
|
|
300
|
+
|
|
301
|
+
// filter collinear points around the cuts
|
|
302
|
+
var filteredBridge = filterPoints(bridge, bridge.next);
|
|
303
|
+
filterPoints(bridgeReverse, bridgeReverse.next);
|
|
304
|
+
|
|
305
|
+
// Check if input node was removed by the filtering
|
|
306
|
+
return outerNode === bridge ? filteredBridge : outerNode;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// David Eberly's algorithm for finding a bridge between hole and outer polygon
|
|
310
|
+
function findHoleBridge(hole, outerNode) {
|
|
311
|
+
var p = outerNode,
|
|
312
|
+
hx = hole.x,
|
|
313
|
+
hy = hole.y,
|
|
314
|
+
qx = -Infinity,
|
|
315
|
+
m;
|
|
316
|
+
|
|
317
|
+
// find a segment intersected by a ray from the hole's leftmost point to the left;
|
|
318
|
+
// segment's endpoint with lesser x will be potential connection point
|
|
319
|
+
do {
|
|
320
|
+
if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {
|
|
321
|
+
var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);
|
|
322
|
+
if (x <= hx && x > qx) {
|
|
323
|
+
qx = x;
|
|
324
|
+
if (x === hx) {
|
|
325
|
+
if (hy === p.y) return p;
|
|
326
|
+
if (hy === p.next.y) return p.next;
|
|
327
|
+
}
|
|
328
|
+
m = p.x < p.next.x ? p : p.next;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
p = p.next;
|
|
332
|
+
} while (p !== outerNode);
|
|
333
|
+
|
|
334
|
+
if (!m) return null;
|
|
335
|
+
|
|
336
|
+
if (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint
|
|
337
|
+
|
|
338
|
+
// look for points inside the triangle of hole point, segment intersection and endpoint;
|
|
339
|
+
// if there are no points found, we have a valid connection;
|
|
340
|
+
// otherwise choose the point of the minimum angle with the ray as connection point
|
|
341
|
+
|
|
342
|
+
var stop = m,
|
|
343
|
+
mx = m.x,
|
|
344
|
+
my = m.y,
|
|
345
|
+
tanMin = Infinity,
|
|
346
|
+
tan;
|
|
347
|
+
|
|
348
|
+
p = m;
|
|
349
|
+
|
|
350
|
+
do {
|
|
351
|
+
if (hx >= p.x && p.x >= mx && hx !== p.x &&
|
|
352
|
+
pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {
|
|
353
|
+
|
|
354
|
+
tan = Math.abs(hy - p.y) / (hx - p.x); // tangential
|
|
355
|
+
|
|
356
|
+
if (locallyInside(p, hole) &&
|
|
357
|
+
(tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {
|
|
358
|
+
m = p;
|
|
359
|
+
tanMin = tan;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
p = p.next;
|
|
364
|
+
} while (p !== stop);
|
|
365
|
+
|
|
366
|
+
return m;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
// whether sector in vertex m contains sector in vertex p in the same coordinates
|
|
370
|
+
function sectorContainsSector(m, p) {
|
|
371
|
+
return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// interlink polygon nodes in z-order
|
|
375
|
+
function indexCurve(start, minX, minY, invSize) {
|
|
376
|
+
var p = start;
|
|
377
|
+
do {
|
|
378
|
+
if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);
|
|
379
|
+
p.prevZ = p.prev;
|
|
380
|
+
p.nextZ = p.next;
|
|
381
|
+
p = p.next;
|
|
382
|
+
} while (p !== start);
|
|
383
|
+
|
|
384
|
+
p.prevZ.nextZ = null;
|
|
385
|
+
p.prevZ = null;
|
|
386
|
+
|
|
387
|
+
sortLinked(p);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// Simon Tatham's linked list merge sort algorithm
|
|
391
|
+
// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html
|
|
392
|
+
function sortLinked(list) {
|
|
393
|
+
var i, p, q, e, tail, numMerges, pSize, qSize,
|
|
394
|
+
inSize = 1;
|
|
395
|
+
|
|
396
|
+
do {
|
|
397
|
+
p = list;
|
|
398
|
+
list = null;
|
|
399
|
+
tail = null;
|
|
400
|
+
numMerges = 0;
|
|
401
|
+
|
|
402
|
+
while (p) {
|
|
403
|
+
numMerges++;
|
|
404
|
+
q = p;
|
|
405
|
+
pSize = 0;
|
|
406
|
+
for (i = 0; i < inSize; i++) {
|
|
407
|
+
pSize++;
|
|
408
|
+
q = q.nextZ;
|
|
409
|
+
if (!q) break;
|
|
410
|
+
}
|
|
411
|
+
qSize = inSize;
|
|
412
|
+
|
|
413
|
+
while (pSize > 0 || (qSize > 0 && q)) {
|
|
414
|
+
|
|
415
|
+
if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {
|
|
416
|
+
e = p;
|
|
417
|
+
p = p.nextZ;
|
|
418
|
+
pSize--;
|
|
419
|
+
} else {
|
|
420
|
+
e = q;
|
|
421
|
+
q = q.nextZ;
|
|
422
|
+
qSize--;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
if (tail) tail.nextZ = e;
|
|
426
|
+
else list = e;
|
|
427
|
+
|
|
428
|
+
e.prevZ = tail;
|
|
429
|
+
tail = e;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
p = q;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
tail.nextZ = null;
|
|
436
|
+
inSize *= 2;
|
|
437
|
+
|
|
438
|
+
} while (numMerges > 1);
|
|
439
|
+
|
|
440
|
+
return list;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
// z-order of a point given coords and inverse of the longer side of data bbox
|
|
444
|
+
function zOrder(x, y, minX, minY, invSize) {
|
|
445
|
+
// coords are transformed into non-negative 15-bit integer range
|
|
446
|
+
x = 32767 * (x - minX) * invSize;
|
|
447
|
+
y = 32767 * (y - minY) * invSize;
|
|
448
|
+
|
|
449
|
+
x = (x | (x << 8)) & 0x00FF00FF;
|
|
450
|
+
x = (x | (x << 4)) & 0x0F0F0F0F;
|
|
451
|
+
x = (x | (x << 2)) & 0x33333333;
|
|
452
|
+
x = (x | (x << 1)) & 0x55555555;
|
|
453
|
+
|
|
454
|
+
y = (y | (y << 8)) & 0x00FF00FF;
|
|
455
|
+
y = (y | (y << 4)) & 0x0F0F0F0F;
|
|
456
|
+
y = (y | (y << 2)) & 0x33333333;
|
|
457
|
+
y = (y | (y << 1)) & 0x55555555;
|
|
458
|
+
|
|
459
|
+
return x | (y << 1);
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
// find the leftmost node of a polygon ring
|
|
463
|
+
function getLeftmost(start) {
|
|
464
|
+
var p = start,
|
|
465
|
+
leftmost = start;
|
|
466
|
+
do {
|
|
467
|
+
if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;
|
|
468
|
+
p = p.next;
|
|
469
|
+
} while (p !== start);
|
|
470
|
+
|
|
471
|
+
return leftmost;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
// check if a point lies within a convex triangle
|
|
475
|
+
function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
|
|
476
|
+
return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&
|
|
477
|
+
(ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&
|
|
478
|
+
(bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
// check if a diagonal between two polygon nodes is valid (lies in polygon interior)
|
|
482
|
+
function isValidDiagonal(a, b) {
|
|
483
|
+
return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges
|
|
484
|
+
(locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible
|
|
485
|
+
(area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors
|
|
486
|
+
equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
// signed area of a triangle
|
|
490
|
+
function area(p, q, r) {
|
|
491
|
+
return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
// check if two points are equal
|
|
495
|
+
function equals(p1, p2) {
|
|
496
|
+
return p1.x === p2.x && p1.y === p2.y;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
// check if two segments intersect
|
|
500
|
+
function intersects(p1, q1, p2, q2) {
|
|
501
|
+
var o1 = sign(area(p1, q1, p2));
|
|
502
|
+
var o2 = sign(area(p1, q1, q2));
|
|
503
|
+
var o3 = sign(area(p2, q2, p1));
|
|
504
|
+
var o4 = sign(area(p2, q2, q1));
|
|
505
|
+
|
|
506
|
+
if (o1 !== o2 && o3 !== o4) return true; // general case
|
|
507
|
+
|
|
508
|
+
if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1
|
|
509
|
+
if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1
|
|
510
|
+
if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2
|
|
511
|
+
if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2
|
|
512
|
+
|
|
513
|
+
return false;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
// for collinear points p, q, r, check if point q lies on segment pr
|
|
517
|
+
function onSegment(p, q, r) {
|
|
518
|
+
return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
function sign(num) {
|
|
522
|
+
return num > 0 ? 1 : num < 0 ? -1 : 0;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
// check if a polygon diagonal intersects any polygon segments
|
|
526
|
+
function intersectsPolygon(a, b) {
|
|
527
|
+
var p = a;
|
|
528
|
+
do {
|
|
529
|
+
if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&
|
|
530
|
+
intersects(p, p.next, a, b)) return true;
|
|
531
|
+
p = p.next;
|
|
532
|
+
} while (p !== a);
|
|
533
|
+
|
|
534
|
+
return false;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
// check if a polygon diagonal is locally inside the polygon
|
|
538
|
+
function locallyInside(a, b) {
|
|
539
|
+
return area(a.prev, a, a.next) < 0 ?
|
|
540
|
+
area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :
|
|
541
|
+
area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
// check if the middle point of a polygon diagonal is inside the polygon
|
|
545
|
+
function middleInside(a, b) {
|
|
546
|
+
var p = a,
|
|
547
|
+
inside = false,
|
|
548
|
+
px = (a.x + b.x) / 2,
|
|
549
|
+
py = (a.y + b.y) / 2;
|
|
550
|
+
do {
|
|
551
|
+
if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&
|
|
552
|
+
(px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))
|
|
553
|
+
inside = !inside;
|
|
554
|
+
p = p.next;
|
|
555
|
+
} while (p !== a);
|
|
556
|
+
|
|
557
|
+
return inside;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;
|
|
561
|
+
// if one belongs to the outer ring and another to a hole, it merges it into a single ring
|
|
562
|
+
function splitPolygon(a, b) {
|
|
563
|
+
var a2 = new Node(a.i, a.x, a.y),
|
|
564
|
+
b2 = new Node(b.i, b.x, b.y),
|
|
565
|
+
an = a.next,
|
|
566
|
+
bp = b.prev;
|
|
567
|
+
|
|
568
|
+
a.next = b;
|
|
569
|
+
b.prev = a;
|
|
570
|
+
|
|
571
|
+
a2.next = an;
|
|
572
|
+
an.prev = a2;
|
|
573
|
+
|
|
574
|
+
b2.next = a2;
|
|
575
|
+
a2.prev = b2;
|
|
576
|
+
|
|
577
|
+
bp.next = b2;
|
|
578
|
+
b2.prev = bp;
|
|
579
|
+
|
|
580
|
+
return b2;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
// create a node and optionally link it with previous one (in a circular doubly linked list)
|
|
584
|
+
function insertNode(i, x, y, last) {
|
|
585
|
+
var p = new Node(i, x, y);
|
|
586
|
+
|
|
587
|
+
if (!last) {
|
|
588
|
+
p.prev = p;
|
|
589
|
+
p.next = p;
|
|
590
|
+
|
|
591
|
+
} else {
|
|
592
|
+
p.next = last.next;
|
|
593
|
+
p.prev = last;
|
|
594
|
+
last.next.prev = p;
|
|
595
|
+
last.next = p;
|
|
596
|
+
}
|
|
597
|
+
return p;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
function removeNode(p) {
|
|
601
|
+
p.next.prev = p.prev;
|
|
602
|
+
p.prev.next = p.next;
|
|
603
|
+
|
|
604
|
+
if (p.prevZ) p.prevZ.nextZ = p.nextZ;
|
|
605
|
+
if (p.nextZ) p.nextZ.prevZ = p.prevZ;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
function Node(i, x, y) {
|
|
609
|
+
// vertex index in coordinates array
|
|
610
|
+
this.i = i;
|
|
611
|
+
|
|
612
|
+
// vertex coordinates
|
|
613
|
+
this.x = x;
|
|
614
|
+
this.y = y;
|
|
615
|
+
|
|
616
|
+
// previous and next vertex nodes in a polygon ring
|
|
617
|
+
this.prev = null;
|
|
618
|
+
this.next = null;
|
|
619
|
+
|
|
620
|
+
// z-order curve value
|
|
621
|
+
this.z = null;
|
|
622
|
+
|
|
623
|
+
// previous and next nodes in z-order
|
|
624
|
+
this.prevZ = null;
|
|
625
|
+
this.nextZ = null;
|
|
626
|
+
|
|
627
|
+
// indicates whether this is a steiner point
|
|
628
|
+
this.steiner = false;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
// return a percentage difference between the polygon area and its triangulation area;
|
|
632
|
+
// used to verify correctness of triangulation
|
|
633
|
+
earcut.deviation = function (data, holeIndices, dim, triangles) {
|
|
634
|
+
var hasHoles = holeIndices && holeIndices.length;
|
|
635
|
+
var outerLen = hasHoles ? holeIndices[0] * dim : data.length;
|
|
636
|
+
|
|
637
|
+
var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));
|
|
638
|
+
if (hasHoles) {
|
|
639
|
+
for (var i = 0, len = holeIndices.length; i < len; i++) {
|
|
640
|
+
var start = holeIndices[i] * dim;
|
|
641
|
+
var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
|
|
642
|
+
polygonArea -= Math.abs(signedArea(data, start, end, dim));
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
var trianglesArea = 0;
|
|
647
|
+
for (i = 0; i < triangles.length; i += 3) {
|
|
648
|
+
var a = triangles[i] * dim;
|
|
649
|
+
var b = triangles[i + 1] * dim;
|
|
650
|
+
var c = triangles[i + 2] * dim;
|
|
651
|
+
trianglesArea += Math.abs(
|
|
652
|
+
(data[a] - data[c]) * (data[b + 1] - data[a + 1]) -
|
|
653
|
+
(data[a] - data[b]) * (data[c + 1] - data[a + 1]));
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
return polygonArea === 0 && trianglesArea === 0 ? 0 :
|
|
657
|
+
Math.abs((trianglesArea - polygonArea) / polygonArea);
|
|
658
|
+
};
|
|
659
|
+
|
|
660
|
+
function signedArea(data, start, end, dim) {
|
|
661
|
+
var sum = 0;
|
|
662
|
+
for (var i = start, j = end - dim; i < end; i += dim) {
|
|
663
|
+
sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);
|
|
664
|
+
j = i;
|
|
665
|
+
}
|
|
666
|
+
return sum;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts
|
|
670
|
+
earcut.flatten = function (data) {
|
|
671
|
+
var dim = data[0][0].length,
|
|
672
|
+
result = {vertices: [], holes: [], dimensions: dim},
|
|
673
|
+
holeIndex = 0;
|
|
674
|
+
|
|
675
|
+
for (var i = 0; i < data.length; i++) {
|
|
676
|
+
for (var j = 0; j < data[i].length; j++) {
|
|
677
|
+
for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);
|
|
678
|
+
}
|
|
679
|
+
if (i > 0) {
|
|
680
|
+
holeIndex += data[i - 1].length;
|
|
681
|
+
result.holes.push(holeIndex);
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
return result;
|
|
685
|
+
};
|
|
686
|
+
|
|
687
|
+
},{}]},{},[1])(1)
|
|
688
|
+
});
|
|
689
|
+
|
|
690
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvZWFyY3V0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZWFyY3V0O1xubW9kdWxlLmV4cG9ydHMuZGVmYXVsdCA9IGVhcmN1dDtcblxuZnVuY3Rpb24gZWFyY3V0KGRhdGEsIGhvbGVJbmRpY2VzLCBkaW0pIHtcblxuICAgIGRpbSA9IGRpbSB8fCAyO1xuXG4gICAgdmFyIGhhc0hvbGVzID0gaG9sZUluZGljZXMgJiYgaG9sZUluZGljZXMubGVuZ3RoLFxuICAgICAgICBvdXRlckxlbiA9IGhhc0hvbGVzID8gaG9sZUluZGljZXNbMF0gKiBkaW0gOiBkYXRhLmxlbmd0aCxcbiAgICAgICAgb3V0ZXJOb2RlID0gbGlua2VkTGlzdChkYXRhLCAwLCBvdXRlckxlbiwgZGltLCB0cnVlKSxcbiAgICAgICAgdHJpYW5nbGVzID0gW107XG5cbiAgICBpZiAoIW91dGVyTm9kZSB8fCBvdXRlck5vZGUubmV4dCA9PT0gb3V0ZXJOb2RlLnByZXYpIHJldHVybiB0cmlhbmdsZXM7XG5cbiAgICB2YXIgbWluWCwgbWluWSwgbWF4WCwgbWF4WSwgeCwgeSwgaW52U2l6ZTtcblxuICAgIGlmIChoYXNIb2xlcykgb3V0ZXJOb2RlID0gZWxpbWluYXRlSG9sZXMoZGF0YSwgaG9sZUluZGljZXMsIG91dGVyTm9kZSwgZGltKTtcblxuICAgIC8vIGlmIHRoZSBzaGFwZSBpcyBub3QgdG9vIHNpbXBsZSwgd2UnbGwgdXNlIHotb3JkZXIgY3VydmUgaGFzaCBsYXRlcjsgY2FsY3VsYXRlIHBvbHlnb24gYmJveFxuICAgIGlmIChkYXRhLmxlbmd0aCA+IDgwICogZGltKSB7XG4gICAgICAgIG1pblggPSBtYXhYID0gZGF0YVswXTtcbiAgICAgICAgbWluWSA9IG1heFkgPSBkYXRhWzFdO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSBkaW07IGkgPCBvdXRlckxlbjsgaSArPSBkaW0pIHtcbiAgICAgICAgICAgIHggPSBkYXRhW2ldO1xuICAgICAgICAgICAgeSA9IGRhdGFbaSArIDFdO1xuICAgICAgICAgICAgaWYgKHggPCBtaW5YKSBtaW5YID0geDtcbiAgICAgICAgICAgIGlmICh5IDwgbWluWSkgbWluWSA9IHk7XG4gICAgICAgICAgICBpZiAoeCA+IG1heFgpIG1heFggPSB4O1xuICAgICAgICAgICAgaWYgKHkgPiBtYXhZKSBtYXhZID0geTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1pblgsIG1pblkgYW5kIGludlNpemUgYXJlIGxhdGVyIHVzZWQgdG8gdHJhbnNmb3JtIGNvb3JkcyBpbnRvIGludGVnZXJzIGZvciB6LW9yZGVyIGNhbGN1bGF0aW9uXG4gICAgICAgIGludlNpemUgPSBNYXRoLm1heChtYXhYIC0gbWluWCwgbWF4WSAtIG1pblkpO1xuICAgICAgICBpbnZTaXplID0gaW52U2l6ZSAhPT0gMCA/IDEgLyBpbnZTaXplIDogMDtcbiAgICB9XG5cbiAgICBlYXJjdXRMaW5rZWQob3V0ZXJOb2RlLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgaW52U2l6ZSk7XG5cbiAgICByZXR1cm4gdHJpYW5nbGVzO1xufVxuXG4vLyBjcmVhdGUgYSBjaXJjdWxhciBkb3VibHkgbGlua2VkIGxpc3QgZnJvbSBwb2x5Z29uIHBvaW50cyBpbiB0aGUgc3BlY2lmaWVkIHdpbmRpbmcgb3JkZXJcbmZ1bmN0aW9uIGxpbmtlZExpc3QoZGF0YSwgc3RhcnQsIGVuZCwgZGltLCBjbG9ja3dpc2UpIHtcbiAgICB2YXIgaSwgbGFzdDtcblxuICAgIGlmIChjbG9ja3dpc2UgPT09IChzaWduZWRBcmVhKGRhdGEsIHN0YXJ0LCBlbmQsIGRpbSkgPiAwKSkge1xuICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSArPSBkaW0pIGxhc3QgPSBpbnNlcnROb2RlKGksIGRhdGFbaV0sIGRhdGFbaSArIDFdLCBsYXN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGkgPSBlbmQgLSBkaW07IGkgPj0gc3RhcnQ7IGkgLT0gZGltKSBsYXN0ID0gaW5zZXJ0Tm9kZShpLCBkYXRhW2ldLCBkYXRhW2kgKyAxXSwgbGFzdCk7XG4gICAgfVxuXG4gICAgaWYgKGxhc3QgJiYgZXF1YWxzKGxhc3QsIGxhc3QubmV4dCkpIHtcbiAgICAgICAgcmVtb3ZlTm9kZShsYXN0KTtcbiAgICAgICAgbGFzdCA9IGxhc3QubmV4dDtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFzdDtcbn1cblxuLy8gZWxpbWluYXRlIGNvbGluZWFyIG9yIGR1cGxpY2F0ZSBwb2ludHNcbmZ1bmN0aW9uIGZpbHRlclBvaW50cyhzdGFydCwgZW5kKSB7XG4gICAgaWYgKCFzdGFydCkgcmV0dXJuIHN0YXJ0O1xuICAgIGlmICghZW5kKSBlbmQgPSBzdGFydDtcblxuICAgIHZhciBwID0gc3RhcnQsXG4gICAgICAgIGFnYWluO1xuICAgIGRvIHtcbiAgICAgICAgYWdhaW4gPSBmYWxzZTtcblxuICAgICAgICBpZiAoIXAuc3RlaW5lciAmJiAoZXF1YWxzKHAsIHAubmV4dCkgfHwgYXJlYShwLnByZXYsIHAsIHAubmV4dCkgPT09IDApKSB7XG4gICAgICAgICAgICByZW1vdmVOb2RlKHApO1xuICAgICAgICAgICAgcCA9IGVuZCA9IHAucHJldjtcbiAgICAgICAgICAgIGlmIChwID09PSBwLm5leHQpIGJyZWFrO1xuICAgICAgICAgICAgYWdhaW4gPSB0cnVlO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwID0gcC5uZXh0O1xuICAgICAgICB9XG4gICAgfSB3aGlsZSAoYWdhaW4gfHwgcCAhPT0gZW5kKTtcblxuICAgIHJldHVybiBlbmQ7XG59XG5cbi8vIG1haW4gZWFyIHNsaWNpbmcgbG9vcCB3aGljaCB0cmlhbmd1bGF0ZXMgYSBwb2x5Z29uIChnaXZlbiBhcyBhIGxpbmtlZCBsaXN0KVxuZnVuY3Rpb24gZWFyY3V0TGlua2VkKGVhciwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIGludlNpemUsIHBhc3MpIHtcbiAgICBpZiAoIWVhcikgcmV0dXJuO1xuXG4gICAgLy8gaW50ZXJsaW5rIHBvbHlnb24gbm9kZXMgaW4gei1vcmRlclxuICAgIGlmICghcGFzcyAmJiBpbnZTaXplKSBpbmRleEN1cnZlKGVhciwgbWluWCwgbWluWSwgaW52U2l6ZSk7XG5cbiAgICB2YXIgc3RvcCA9IGVhcixcbiAgICAgICAgcHJldiwgbmV4dDtcblxuICAgIC8vIGl0ZXJhdGUgdGhyb3VnaCBlYXJzLCBzbGljaW5nIHRoZW0gb25lIGJ5IG9uZVxuICAgIHdoaWxlIChlYXIucHJldiAhPT0gZWFyLm5leHQpIHtcbiAgICAgICAgcHJldiA9IGVhci5wcmV2O1xuICAgICAgICBuZXh0ID0gZWFyLm5leHQ7XG5cbiAgICAgICAgaWYgKGludlNpemUgPyBpc0Vhckhhc2hlZChlYXIsIG1pblgsIG1pblksIGludlNpemUpIDogaXNFYXIoZWFyKSkge1xuICAgICAgICAgICAgLy8gY3V0IG9mZiB0aGUgdHJpYW5nbGVcbiAgICAgICAgICAgIHRyaWFuZ2xlcy5wdXNoKHByZXYuaSAvIGRpbSk7XG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChlYXIuaSAvIGRpbSk7XG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChuZXh0LmkgLyBkaW0pO1xuXG4gICAgICAgICAgICByZW1vdmVOb2RlKGVhcik7XG5cbiAgICAgICAgICAgIC8vIHNraXBwaW5nIHRoZSBuZXh0IHZlcnRleCBsZWFkcyB0byBsZXNzIHNsaXZlciB0cmlhbmdsZXNcbiAgICAgICAgICAgIGVhciA9IG5leHQubmV4dDtcbiAgICAgICAgICAgIHN0b3AgPSBuZXh0Lm5leHQ7XG5cbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZWFyID0gbmV4dDtcblxuICAgICAgICAvLyBpZiB3ZSBsb29wZWQgdGhyb3VnaCB0aGUgd2hvbGUgcmVtYWluaW5nIHBvbHlnb24gYW5kIGNhbid0IGZpbmQgYW55IG1vcmUgZWFyc1xuICAgICAgICBpZiAoZWFyID09PSBzdG9wKSB7XG4gICAgICAgICAgICAvLyB0cnkgZmlsdGVyaW5nIHBvaW50cyBhbmQgc2xpY2luZyBhZ2FpblxuICAgICAgICAgICAgaWYgKCFwYXNzKSB7XG4gICAgICAgICAgICAgICAgZWFyY3V0TGlua2VkKGZpbHRlclBvaW50cyhlYXIpLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgaW52U2l6ZSwgMSk7XG5cbiAgICAgICAgICAgIC8vIGlmIHRoaXMgZGlkbid0IHdvcmssIHRyeSBjdXJpbmcgYWxsIHNtYWxsIHNlbGYtaW50ZXJzZWN0aW9ucyBsb2NhbGx5XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhc3MgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBlYXIgPSBjdXJlTG9jYWxJbnRlcnNlY3Rpb25zKGZpbHRlclBvaW50cyhlYXIpLCB0cmlhbmdsZXMsIGRpbSk7XG4gICAgICAgICAgICAgICAgZWFyY3V0TGlua2VkKGVhciwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIGludlNpemUsIDIpO1xuXG4gICAgICAgICAgICAvLyBhcyBhIGxhc3QgcmVzb3J0LCB0cnkgc3BsaXR0aW5nIHRoZSByZW1haW5pbmcgcG9seWdvbiBpbnRvIHR3b1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXNzID09PSAyKSB7XG4gICAgICAgICAgICAgICAgc3BsaXRFYXJjdXQoZWFyLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgaW52U2l6ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBjaGVjayB3aGV0aGVyIGEgcG9seWdvbiBub2RlIGZvcm1zIGEgdmFsaWQgZWFyIHdpdGggYWRqYWNlbnQgbm9kZXNcbmZ1bmN0aW9uIGlzRWFyKGVhcikge1xuICAgIHZhciBhID0gZWFyLnByZXYsXG4gICAgICAgIGIgPSBlYXIsXG4gICAgICAgIGMgPSBlYXIubmV4dDtcblxuICAgIGlmIChhcmVhKGEsIGIsIGMpID49IDApIHJldHVybiBmYWxzZTsgLy8gcmVmbGV4LCBjYW4ndCBiZSBhbiBlYXJcblxuICAgIC8vIG5vdyBtYWtlIHN1cmUgd2UgZG9uJ3QgaGF2ZSBvdGhlciBwb2ludHMgaW5zaWRlIHRoZSBwb3RlbnRpYWwgZWFyXG4gICAgdmFyIHAgPSBlYXIubmV4dC5uZXh0O1xuXG4gICAgd2hpbGUgKHAgIT09IGVhci5wcmV2KSB7XG4gICAgICAgIGlmIChwb2ludEluVHJpYW5nbGUoYS54LCBhLnksIGIueCwgYi55LCBjLngsIGMueSwgcC54LCBwLnkpICYmXG4gICAgICAgICAgICBhcmVhKHAucHJldiwgcCwgcC5uZXh0KSA+PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHAgPSBwLm5leHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGlzRWFySGFzaGVkKGVhciwgbWluWCwgbWluWSwgaW52U2l6ZSkge1xuICAgIHZhciBhID0gZWFyLnByZXYsXG4gICAgICAgIGIgPSBlYXIsXG4gICAgICAgIGMgPSBlYXIubmV4dDtcblxuICAgIGlmIChhcmVhKGEsIGIsIGMpID49IDApIHJldHVybiBmYWxzZTsgLy8gcmVmbGV4LCBjYW4ndCBiZSBhbiBlYXJcblxuICAgIC8vIHRyaWFuZ2xlIGJib3g7IG1pbiAmIG1heCBhcmUgY2FsY3VsYXRlZCBsaWtlIHRoaXMgZm9yIHNwZWVkXG4gICAgdmFyIG1pblRYID0gYS54IDwgYi54ID8gKGEueCA8IGMueCA/IGEueCA6IGMueCkgOiAoYi54IDwgYy54ID8gYi54IDogYy54KSxcbiAgICAgICAgbWluVFkgPSBhLnkgPCBiLnkgPyAoYS55IDwgYy55ID8gYS55IDogYy55KSA6IChiLnkgPCBjLnkgPyBiLnkgOiBjLnkpLFxuICAgICAgICBtYXhUWCA9IGEueCA+IGIueCA/IChhLnggPiBjLnggPyBhLnggOiBjLngpIDogKGIueCA+IGMueCA/IGIueCA6IGMueCksXG4gICAgICAgIG1heFRZID0gYS55ID4gYi55ID8gKGEueSA+IGMueSA/IGEueSA6IGMueSkgOiAoYi55ID4gYy55ID8gYi55IDogYy55KTtcblxuICAgIC8vIHotb3JkZXIgcmFuZ2UgZm9yIHRoZSBjdXJyZW50IHRyaWFuZ2xlIGJib3g7XG4gICAgdmFyIG1pblogPSB6T3JkZXIobWluVFgsIG1pblRZLCBtaW5YLCBtaW5ZLCBpbnZTaXplKSxcbiAgICAgICAgbWF4WiA9IHpPcmRlcihtYXhUWCwgbWF4VFksIG1pblgsIG1pblksIGludlNpemUpO1xuXG4gICAgdmFyIHAgPSBlYXIucHJldlosXG4gICAgICAgIG4gPSBlYXIubmV4dFo7XG5cbiAgICAvLyBsb29rIGZvciBwb2ludHMgaW5zaWRlIHRoZSB0cmlhbmdsZSBpbiBib3RoIGRpcmVjdGlvbnNcbiAgICB3aGlsZSAocCAmJiBwLnogPj0gbWluWiAmJiBuICYmIG4ueiA8PSBtYXhaKSB7XG4gICAgICAgIGlmIChwICE9PSBlYXIucHJldiAmJiBwICE9PSBlYXIubmV4dCAmJlxuICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGEueCwgYS55LCBiLngsIGIueSwgYy54LCBjLnksIHAueCwgcC55KSAmJlxuICAgICAgICAgICAgYXJlYShwLnByZXYsIHAsIHAubmV4dCkgPj0gMCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBwID0gcC5wcmV2WjtcblxuICAgICAgICBpZiAobiAhPT0gZWFyLnByZXYgJiYgbiAhPT0gZWFyLm5leHQgJiZcbiAgICAgICAgICAgIHBvaW50SW5UcmlhbmdsZShhLngsIGEueSwgYi54LCBiLnksIGMueCwgYy55LCBuLngsIG4ueSkgJiZcbiAgICAgICAgICAgIGFyZWEobi5wcmV2LCBuLCBuLm5leHQpID49IDApIHJldHVybiBmYWxzZTtcbiAgICAgICAgbiA9IG4ubmV4dFo7XG4gICAgfVxuXG4gICAgLy8gbG9vayBmb3IgcmVtYWluaW5nIHBvaW50cyBpbiBkZWNyZWFzaW5nIHotb3JkZXJcbiAgICB3aGlsZSAocCAmJiBwLnogPj0gbWluWikge1xuICAgICAgICBpZiAocCAhPT0gZWFyLnByZXYgJiYgcCAhPT0gZWFyLm5leHQgJiZcbiAgICAgICAgICAgIHBvaW50SW5UcmlhbmdsZShhLngsIGEueSwgYi54LCBiLnksIGMueCwgYy55LCBwLngsIHAueSkgJiZcbiAgICAgICAgICAgIGFyZWEocC5wcmV2LCBwLCBwLm5leHQpID49IDApIHJldHVybiBmYWxzZTtcbiAgICAgICAgcCA9IHAucHJldlo7XG4gICAgfVxuXG4gICAgLy8gbG9vayBmb3IgcmVtYWluaW5nIHBvaW50cyBpbiBpbmNyZWFzaW5nIHotb3JkZXJcbiAgICB3aGlsZSAobiAmJiBuLnogPD0gbWF4Wikge1xuICAgICAgICBpZiAobiAhPT0gZWFyLnByZXYgJiYgbiAhPT0gZWFyLm5leHQgJiZcbiAgICAgICAgICAgIHBvaW50SW5UcmlhbmdsZShhLngsIGEueSwgYi54LCBiLnksIGMueCwgYy55LCBuLngsIG4ueSkgJiZcbiAgICAgICAgICAgIGFyZWEobi5wcmV2LCBuLCBuLm5leHQpID49IDApIHJldHVybiBmYWxzZTtcbiAgICAgICAgbiA9IG4ubmV4dFo7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59XG5cbi8vIGdvIHRocm91Z2ggYWxsIHBvbHlnb24gbm9kZXMgYW5kIGN1cmUgc21hbGwgbG9jYWwgc2VsZi1pbnRlcnNlY3Rpb25zXG5mdW5jdGlvbiBjdXJlTG9jYWxJbnRlcnNlY3Rpb25zKHN0YXJ0LCB0cmlhbmdsZXMsIGRpbSkge1xuICAgIHZhciBwID0gc3RhcnQ7XG4gICAgZG8ge1xuICAgICAgICB2YXIgYSA9IHAucHJldixcbiAgICAgICAgICAgIGIgPSBwLm5leHQubmV4dDtcblxuICAgICAgICBpZiAoIWVxdWFscyhhLCBiKSAmJiBpbnRlcnNlY3RzKGEsIHAsIHAubmV4dCwgYikgJiYgbG9jYWxseUluc2lkZShhLCBiKSAmJiBsb2NhbGx5SW5zaWRlKGIsIGEpKSB7XG5cbiAgICAgICAgICAgIHRyaWFuZ2xlcy5wdXNoKGEuaSAvIGRpbSk7XG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChwLmkgLyBkaW0pO1xuICAgICAgICAgICAgdHJpYW5nbGVzLnB1c2goYi5pIC8gZGltKTtcblxuICAgICAgICAgICAgLy8gcmVtb3ZlIHR3byBub2RlcyBpbnZvbHZlZFxuICAgICAgICAgICAgcmVtb3ZlTm9kZShwKTtcbiAgICAgICAgICAgIHJlbW92ZU5vZGUocC5uZXh0KTtcblxuICAgICAgICAgICAgcCA9IHN0YXJ0ID0gYjtcbiAgICAgICAgfVxuICAgICAgICBwID0gcC5uZXh0O1xuICAgIH0gd2hpbGUgKHAgIT09IHN0YXJ0KTtcblxuICAgIHJldHVybiBmaWx0ZXJQb2ludHMocCk7XG59XG5cbi8vIHRyeSBzcGxpdHRpbmcgcG9seWdvbiBpbnRvIHR3byBhbmQgdHJpYW5ndWxhdGUgdGhlbSBpbmRlcGVuZGVudGx5XG5mdW5jdGlvbiBzcGxpdEVhcmN1dChzdGFydCwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIGludlNpemUpIHtcbiAgICAvLyBsb29rIGZvciBhIHZhbGlkIGRpYWdvbmFsIHRoYXQgZGl2aWRlcyB0aGUgcG9seWdvbiBpbnRvIHR3b1xuICAgIHZhciBhID0gc3RhcnQ7XG4gICAgZG8ge1xuICAgICAgICB2YXIgYiA9IGEubmV4dC5uZXh0O1xuICAgICAgICB3aGlsZSAoYiAhPT0gYS5wcmV2KSB7XG4gICAgICAgICAgICBpZiAoYS5pICE9PSBiLmkgJiYgaXNWYWxpZERpYWdvbmFsKGEsIGIpKSB7XG4gICAgICAgICAgICAgICAgLy8gc3BsaXQgdGhlIHBvbHlnb24gaW4gdHdvIGJ5IHRoZSBkaWFnb25hbFxuICAgICAgICAgICAgICAgIHZhciBjID0gc3BsaXRQb2x5Z29uKGEsIGIpO1xuXG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyIGNvbGluZWFyIHBvaW50cyBhcm91bmQgdGhlIGN1dHNcbiAgICAgICAgICAgICAgICBhID0gZmlsdGVyUG9pbnRzKGEsIGEubmV4dCk7XG4gICAgICAgICAgICAgICAgYyA9IGZpbHRlclBvaW50cyhjLCBjLm5leHQpO1xuXG4gICAgICAgICAgICAgICAgLy8gcnVuIGVhcmN1dCBvbiBlYWNoIGhhbGZcbiAgICAgICAgICAgICAgICBlYXJjdXRMaW5rZWQoYSwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIGludlNpemUpO1xuICAgICAgICAgICAgICAgIGVhcmN1dExpbmtlZChjLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgaW52U2l6ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYiA9IGIubmV4dDtcbiAgICAgICAgfVxuICAgICAgICBhID0gYS5uZXh0O1xuICAgIH0gd2hpbGUgKGEgIT09IHN0YXJ0KTtcbn1cblxuLy8gbGluayBldmVyeSBob2xlIGludG8gdGhlIG91dGVyIGxvb3AsIHByb2R1Y2luZyBhIHNpbmdsZS1yaW5nIHBvbHlnb24gd2l0aG91dCBob2xlc1xuZnVuY3Rpb24gZWxpbWluYXRlSG9sZXMoZGF0YSwgaG9sZUluZGljZXMsIG91dGVyTm9kZSwgZGltKSB7XG4gICAgdmFyIHF1ZXVlID0gW10sXG4gICAgICAgIGksIGxlbiwgc3RhcnQsIGVuZCwgbGlzdDtcblxuICAgIGZvciAoaSA9IDAsIGxlbiA9IGhvbGVJbmRpY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIHN0YXJ0ID0gaG9sZUluZGljZXNbaV0gKiBkaW07XG4gICAgICAgIGVuZCA9IGkgPCBsZW4gLSAxID8gaG9sZUluZGljZXNbaSArIDFdICogZGltIDogZGF0YS5sZW5ndGg7XG4gICAgICAgIGxpc3QgPSBsaW5rZWRMaXN0KGRhdGEsIHN0YXJ0LCBlbmQsIGRpbSwgZmFsc2UpO1xuICAgICAgICBpZiAobGlzdCA9PT0gbGlzdC5uZXh0KSBsaXN0LnN0ZWluZXIgPSB0cnVlO1xuICAgICAgICBxdWV1ZS5wdXNoKGdldExlZnRtb3N0KGxpc3QpKTtcbiAgICB9XG5cbiAgICBxdWV1ZS5zb3J0KGNvbXBhcmVYKTtcblxuICAgIC8vIHByb2Nlc3MgaG9sZXMgZnJvbSBsZWZ0IHRvIHJpZ2h0XG4gICAgZm9yIChpID0gMDsgaSA8IHF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG91dGVyTm9kZSA9IGVsaW1pbmF0ZUhvbGUocXVldWVbaV0sIG91dGVyTm9kZSk7XG4gICAgICAgIG91dGVyTm9kZSA9IGZpbHRlclBvaW50cyhvdXRlck5vZGUsIG91dGVyTm9kZS5uZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0ZXJOb2RlO1xufVxuXG5mdW5jdGlvbiBjb21wYXJlWChhLCBiKSB7XG4gICAgcmV0dXJuIGEueCAtIGIueDtcbn1cblxuLy8gZmluZCBhIGJyaWRnZSBiZXR3ZWVuIHZlcnRpY2VzIHRoYXQgY29ubmVjdHMgaG9sZSB3aXRoIGFuIG91dGVyIHJpbmcgYW5kIGFuZCBsaW5rIGl0XG5mdW5jdGlvbiBlbGltaW5hdGVIb2xlKGhvbGUsIG91dGVyTm9kZSkge1xuICAgIHZhciBicmlkZ2UgPSBmaW5kSG9sZUJyaWRnZShob2xlLCBvdXRlck5vZGUpO1xuICAgIGlmICghYnJpZGdlKSB7XG4gICAgICAgIHJldHVybiBvdXRlck5vZGU7XG4gICAgfVxuXG4gICAgdmFyIGJyaWRnZVJldmVyc2UgPSBzcGxpdFBvbHlnb24oYnJpZGdlLCBob2xlKTtcblxuICAgIC8vIGZpbHRlciBjb2xsaW5lYXIgcG9pbnRzIGFyb3VuZCB0aGUgY3V0c1xuICAgIHZhciBmaWx0ZXJlZEJyaWRnZSA9IGZpbHRlclBvaW50cyhicmlkZ2UsIGJyaWRnZS5uZXh0KTtcbiAgICBmaWx0ZXJQb2ludHMoYnJpZGdlUmV2ZXJzZSwgYnJpZGdlUmV2ZXJzZS5uZXh0KTtcblxuICAgIC8vIENoZWNrIGlmIGlucHV0IG5vZGUgd2FzIHJlbW92ZWQgYnkgdGhlIGZpbHRlcmluZ1xuICAgIHJldHVybiBvdXRlck5vZGUgPT09IGJyaWRnZSA/IGZpbHRlcmVkQnJpZGdlIDogb3V0ZXJOb2RlO1xufVxuXG4vLyBEYXZpZCBFYmVybHkncyBhbGdvcml0aG0gZm9yIGZpbmRpbmcgYSBicmlkZ2UgYmV0d2VlbiBob2xlIGFuZCBvdXRlciBwb2x5Z29uXG5mdW5jdGlvbiBmaW5kSG9sZUJyaWRnZShob2xlLCBvdXRlck5vZGUpIHtcbiAgICB2YXIgcCA9IG91dGVyTm9kZSxcbiAgICAgICAgaHggPSBob2xlLngsXG4gICAgICAgIGh5ID0gaG9sZS55LFxuICAgICAgICBxeCA9IC1JbmZpbml0eSxcbiAgICAgICAgbTtcblxuICAgIC8vIGZpbmQgYSBzZWdtZW50IGludGVyc2VjdGVkIGJ5IGEgcmF5IGZyb20gdGhlIGhvbGUncyBsZWZ0bW9zdCBwb2ludCB0byB0aGUgbGVmdDtcbiAgICAvLyBzZWdtZW50J3MgZW5kcG9pbnQgd2l0aCBsZXNzZXIgeCB3aWxsIGJlIHBvdGVudGlhbCBjb25uZWN0aW9uIHBvaW50XG4gICAgZG8ge1xuICAgICAgICBpZiAoaHkgPD0gcC55ICYmIGh5ID49IHAubmV4dC55ICYmIHAubmV4dC55ICE9PSBwLnkpIHtcbiAgICAgICAgICAgIHZhciB4ID0gcC54ICsgKGh5IC0gcC55KSAqIChwLm5leHQueCAtIHAueCkgLyAocC5uZXh0LnkgLSBwLnkpO1xuICAgICAgICAgICAgaWYgKHggPD0gaHggJiYgeCA+IHF4KSB7XG4gICAgICAgICAgICAgICAgcXggPSB4O1xuICAgICAgICAgICAgICAgIGlmICh4ID09PSBoeCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaHkgPT09IHAueSkgcmV0dXJuIHA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoeSA9PT0gcC5uZXh0LnkpIHJldHVybiBwLm5leHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG0gPSBwLnggPCBwLm5leHQueCA/IHAgOiBwLm5leHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcCA9IHAubmV4dDtcbiAgICB9IHdoaWxlIChwICE9PSBvdXRlck5vZGUpO1xuXG4gICAgaWYgKCFtKSByZXR1cm4gbnVsbDtcblxuICAgIGlmIChoeCA9PT0gcXgpIHJldHVybiBtOyAvLyBob2xlIHRvdWNoZXMgb3V0ZXIgc2VnbWVudDsgcGljayBsZWZ0bW9zdCBlbmRwb2ludFxuXG4gICAgLy8gbG9vayBmb3IgcG9pbnRzIGluc2lkZSB0aGUgdHJpYW5nbGUgb2YgaG9sZSBwb2ludCwgc2VnbWVudCBpbnRlcnNlY3Rpb24gYW5kIGVuZHBvaW50O1xuICAgIC8vIGlmIHRoZXJlIGFyZSBubyBwb2ludHMgZm91bmQsIHdlIGhhdmUgYSB2YWxpZCBjb25uZWN0aW9uO1xuICAgIC8vIG90aGVyd2lzZSBjaG9vc2UgdGhlIHBvaW50IG9mIHRoZSBtaW5pbXVtIGFuZ2xlIHdpdGggdGhlIHJheSBhcyBjb25uZWN0aW9uIHBvaW50XG5cbiAgICB2YXIgc3RvcCA9IG0sXG4gICAgICAgIG14ID0gbS54LFxuICAgICAgICBteSA9IG0ueSxcbiAgICAgICAgdGFuTWluID0gSW5maW5pdHksXG4gICAgICAgIHRhbjtcblxuICAgIHAgPSBtO1xuXG4gICAgZG8ge1xuICAgICAgICBpZiAoaHggPj0gcC54ICYmIHAueCA+PSBteCAmJiBoeCAhPT0gcC54ICYmXG4gICAgICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGh5IDwgbXkgPyBoeCA6IHF4LCBoeSwgbXgsIG15LCBoeSA8IG15ID8gcXggOiBoeCwgaHksIHAueCwgcC55KSkge1xuXG4gICAgICAgICAgICB0YW4gPSBNYXRoLmFicyhoeSAtIHAueSkgLyAoaHggLSBwLngpOyAvLyB0YW5nZW50aWFsXG5cbiAgICAgICAgICAgIGlmIChsb2NhbGx5SW5zaWRlKHAsIGhvbGUpICYmXG4gICAgICAgICAgICAgICAgKHRhbiA8IHRhbk1pbiB8fCAodGFuID09PSB0YW5NaW4gJiYgKHAueCA+IG0ueCB8fCAocC54ID09PSBtLnggJiYgc2VjdG9yQ29udGFpbnNTZWN0b3IobSwgcCkpKSkpKSB7XG4gICAgICAgICAgICAgICAgbSA9IHA7XG4gICAgICAgICAgICAgICAgdGFuTWluID0gdGFuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcCA9IHAubmV4dDtcbiAgICB9IHdoaWxlIChwICE9PSBzdG9wKTtcblxuICAgIHJldHVybiBtO1xufVxuXG4vLyB3aGV0aGVyIHNlY3RvciBpbiB2ZXJ0ZXggbSBjb250YWlucyBzZWN0b3IgaW4gdmVydGV4IHAgaW4gdGhlIHNhbWUgY29vcmRpbmF0ZXNcbmZ1bmN0aW9uIHNlY3RvckNvbnRhaW5zU2VjdG9yKG0sIHApIHtcbiAgICByZXR1cm4gYXJlYShtLnByZXYsIG0sIHAucHJldikgPCAwICYmIGFyZWEocC5uZXh0LCBtLCBtLm5leHQpIDwgMDtcbn1cblxuLy8gaW50ZXJsaW5rIHBvbHlnb24gbm9kZXMgaW4gei1vcmRlclxuZnVuY3Rpb24gaW5kZXhDdXJ2ZShzdGFydCwgbWluWCwgbWluWSwgaW52U2l6ZSkge1xuICAgIHZhciBwID0gc3RhcnQ7XG4gICAgZG8ge1xuICAgICAgICBpZiAocC56ID09PSBudWxsKSBwLnogPSB6T3JkZXIocC54LCBwLnksIG1pblgsIG1pblksIGludlNpemUpO1xuICAgICAgICBwLnByZXZaID0gcC5wcmV2O1xuICAgICAgICBwLm5leHRaID0gcC5uZXh0O1xuICAgICAgICBwID0gcC5uZXh0O1xuICAgIH0gd2hpbGUgKHAgIT09IHN0YXJ0KTtcblxuICAgIHAucHJldloubmV4dFogPSBudWxsO1xuICAgIHAucHJldlogPSBudWxsO1xuXG4gICAgc29ydExpbmtlZChwKTtcbn1cblxuLy8gU2ltb24gVGF0aGFtJ3MgbGlua2VkIGxpc3QgbWVyZ2Ugc29ydCBhbGdvcml0aG1cbi8vIGh0dHA6Ly93d3cuY2hpYXJrLmdyZWVuZW5kLm9yZy51ay9+c2d0YXRoYW0vYWxnb3JpdGhtcy9saXN0c29ydC5odG1sXG5mdW5jdGlvbiBzb3J0TGlua2VkKGxpc3QpIHtcbiAgICB2YXIgaSwgcCwgcSwgZSwgdGFpbCwgbnVtTWVyZ2VzLCBwU2l6ZSwgcVNpemUsXG4gICAgICAgIGluU2l6ZSA9IDE7XG5cbiAgICBkbyB7XG4gICAgICAgIHAgPSBsaXN0O1xuICAgICAgICBsaXN0ID0gbnVsbDtcbiAgICAgICAgdGFpbCA9IG51bGw7XG4gICAgICAgIG51bU1lcmdlcyA9IDA7XG5cbiAgICAgICAgd2hpbGUgKHApIHtcbiAgICAgICAgICAgIG51bU1lcmdlcysrO1xuICAgICAgICAgICAgcSA9IHA7XG4gICAgICAgICAgICBwU2l6ZSA9IDA7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5TaXplOyBpKyspIHtcbiAgICAgICAgICAgICAgICBwU2l6ZSsrO1xuICAgICAgICAgICAgICAgIHEgPSBxLm5leHRaO1xuICAgICAgICAgICAgICAgIGlmICghcSkgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBxU2l6ZSA9IGluU2l6ZTtcblxuICAgICAgICAgICAgd2hpbGUgKHBTaXplID4gMCB8fCAocVNpemUgPiAwICYmIHEpKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAocFNpemUgIT09IDAgJiYgKHFTaXplID09PSAwIHx8ICFxIHx8IHAueiA8PSBxLnopKSB7XG4gICAgICAgICAgICAgICAgICAgIGUgPSBwO1xuICAgICAgICAgICAgICAgICAgICBwID0gcC5uZXh0WjtcbiAgICAgICAgICAgICAgICAgICAgcFNpemUtLTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlID0gcTtcbiAgICAgICAgICAgICAgICAgICAgcSA9IHEubmV4dFo7XG4gICAgICAgICAgICAgICAgICAgIHFTaXplLS07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRhaWwpIHRhaWwubmV4dFogPSBlO1xuICAgICAgICAgICAgICAgIGVsc2UgbGlzdCA9IGU7XG5cbiAgICAgICAgICAgICAgICBlLnByZXZaID0gdGFpbDtcbiAgICAgICAgICAgICAgICB0YWlsID0gZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcCA9IHE7XG4gICAgICAgIH1cblxuICAgICAgICB0YWlsLm5leHRaID0gbnVsbDtcbiAgICAgICAgaW5TaXplICo9IDI7XG5cbiAgICB9IHdoaWxlIChudW1NZXJnZXMgPiAxKTtcblxuICAgIHJldHVybiBsaXN0O1xufVxuXG4vLyB6LW9yZGVyIG9mIGEgcG9pbnQgZ2l2ZW4gY29vcmRzIGFuZCBpbnZlcnNlIG9mIHRoZSBsb25nZXIgc2lkZSBvZiBkYXRhIGJib3hcbmZ1bmN0aW9uIHpPcmRlcih4LCB5LCBtaW5YLCBtaW5ZLCBpbnZTaXplKSB7XG4gICAgLy8gY29vcmRzIGFyZSB0cmFuc2Zvcm1lZCBpbnRvIG5vbi1uZWdhdGl2ZSAxNS1iaXQgaW50ZWdlciByYW5nZVxuICAgIHggPSAzMjc2NyAqICh4IC0gbWluWCkgKiBpbnZTaXplO1xuICAgIHkgPSAzMjc2NyAqICh5IC0gbWluWSkgKiBpbnZTaXplO1xuXG4gICAgeCA9ICh4IHwgKHggPDwgOCkpICYgMHgwMEZGMDBGRjtcbiAgICB4ID0gKHggfCAoeCA8PCA0KSkgJiAweDBGMEYwRjBGO1xuICAgIHggPSAoeCB8ICh4IDw8IDIpKSAmIDB4MzMzMzMzMzM7XG4gICAgeCA9ICh4IHwgKHggPDwgMSkpICYgMHg1NTU1NTU1NTtcblxuICAgIHkgPSAoeSB8ICh5IDw8IDgpKSAmIDB4MDBGRjAwRkY7XG4gICAgeSA9ICh5IHwgKHkgPDwgNCkpICYgMHgwRjBGMEYwRjtcbiAgICB5ID0gKHkgfCAoeSA8PCAyKSkgJiAweDMzMzMzMzMzO1xuICAgIHkgPSAoeSB8ICh5IDw8IDEpKSAmIDB4NTU1NTU1NTU7XG5cbiAgICByZXR1cm4geCB8ICh5IDw8IDEpO1xufVxuXG4vLyBmaW5kIHRoZSBsZWZ0bW9zdCBub2RlIG9mIGEgcG9seWdvbiByaW5nXG5mdW5jdGlvbiBnZXRMZWZ0bW9zdChzdGFydCkge1xuICAgIHZhciBwID0gc3RhcnQsXG4gICAgICAgIGxlZnRtb3N0ID0gc3RhcnQ7XG4gICAgZG8ge1xuICAgICAgICBpZiAocC54IDwgbGVmdG1vc3QueCB8fCAocC54ID09PSBsZWZ0bW9zdC54ICYmIHAueSA8IGxlZnRtb3N0LnkpKSBsZWZ0bW9zdCA9IHA7XG4gICAgICAgIHAgPSBwLm5leHQ7XG4gICAgfSB3aGlsZSAocCAhPT0gc3RhcnQpO1xuXG4gICAgcmV0dXJuIGxlZnRtb3N0O1xufVxuXG4vLyBjaGVjayBpZiBhIHBvaW50IGxpZXMgd2l0aGluIGEgY29udmV4IHRyaWFuZ2xlXG5mdW5jdGlvbiBwb2ludEluVHJpYW5nbGUoYXgsIGF5LCBieCwgYnksIGN4LCBjeSwgcHgsIHB5KSB7XG4gICAgcmV0dXJuIChjeCAtIHB4KSAqIChheSAtIHB5KSAtIChheCAtIHB4KSAqIChjeSAtIHB5KSA+PSAwICYmXG4gICAgICAgICAgIChheCAtIHB4KSAqIChieSAtIHB5KSAtIChieCAtIHB4KSAqIChheSAtIHB5KSA+PSAwICYmXG4gICAgICAgICAgIChieCAtIHB4KSAqIChjeSAtIHB5KSAtIChjeCAtIHB4KSAqIChieSAtIHB5KSA+PSAwO1xufVxuXG4vLyBjaGVjayBpZiBhIGRpYWdvbmFsIGJldHdlZW4gdHdvIHBvbHlnb24gbm9kZXMgaXMgdmFsaWQgKGxpZXMgaW4gcG9seWdvbiBpbnRlcmlvcilcbmZ1bmN0aW9uIGlzVmFsaWREaWFnb25hbChhLCBiKSB7XG4gICAgcmV0dXJuIGEubmV4dC5pICE9PSBiLmkgJiYgYS5wcmV2LmkgIT09IGIuaSAmJiAhaW50ZXJzZWN0c1BvbHlnb24oYSwgYikgJiYgLy8gZG9uZXMndCBpbnRlcnNlY3Qgb3RoZXIgZWRnZXNcbiAgICAgICAgICAgKGxvY2FsbHlJbnNpZGUoYSwgYikgJiYgbG9jYWxseUluc2lkZShiLCBhKSAmJiBtaWRkbGVJbnNpZGUoYSwgYikgJiYgLy8gbG9jYWxseSB2aXNpYmxlXG4gICAgICAgICAgICAoYXJlYShhLnByZXYsIGEsIGIucHJldikgfHwgYXJlYShhLCBiLnByZXYsIGIpKSB8fCAvLyBkb2VzIG5vdCBjcmVhdGUgb3Bwb3NpdGUtZmFjaW5nIHNlY3RvcnNcbiAgICAgICAgICAgIGVxdWFscyhhLCBiKSAmJiBhcmVhKGEucHJldiwgYSwgYS5uZXh0KSA+IDAgJiYgYXJlYShiLnByZXYsIGIsIGIubmV4dCkgPiAwKTsgLy8gc3BlY2lhbCB6ZXJvLWxlbmd0aCBjYXNlXG59XG5cbi8vIHNpZ25lZCBhcmVhIG9mIGEgdHJpYW5nbGVcbmZ1bmN0aW9uIGFyZWEocCwgcSwgcikge1xuICAgIHJldHVybiAocS55IC0gcC55KSAqIChyLnggLSBxLngpIC0gKHEueCAtIHAueCkgKiAoci55IC0gcS55KTtcbn1cblxuLy8gY2hlY2sgaWYgdHdvIHBvaW50cyBhcmUgZXF1YWxcbmZ1bmN0aW9uIGVxdWFscyhwMSwgcDIpIHtcbiAgICByZXR1cm4gcDEueCA9PT0gcDIueCAmJiBwMS55ID09PSBwMi55O1xufVxuXG4vLyBjaGVjayBpZiB0d28gc2VnbWVudHMgaW50ZXJzZWN0XG5mdW5jdGlvbiBpbnRlcnNlY3RzKHAxLCBxMSwgcDIsIHEyKSB7XG4gICAgdmFyIG8xID0gc2lnbihhcmVhKHAxLCBxMSwgcDIpKTtcbiAgICB2YXIgbzIgPSBzaWduKGFyZWEocDEsIHExLCBxMikpO1xuICAgIHZhciBvMyA9IHNpZ24oYXJlYShwMiwgcTIsIHAxKSk7XG4gICAgdmFyIG80ID0gc2lnbihhcmVhKHAyLCBxMiwgcTEpKTtcblxuICAgIGlmIChvMSAhPT0gbzIgJiYgbzMgIT09IG80KSByZXR1cm4gdHJ1ZTsgLy8gZ2VuZXJhbCBjYXNlXG5cbiAgICBpZiAobzEgPT09IDAgJiYgb25TZWdtZW50KHAxLCBwMiwgcTEpKSByZXR1cm4gdHJ1ZTsgLy8gcDEsIHExIGFuZCBwMiBhcmUgY29sbGluZWFyIGFuZCBwMiBsaWVzIG9uIHAxcTFcbiAgICBpZiAobzIgPT09IDAgJiYgb25TZWdtZW50KHAxLCBxMiwgcTEpKSByZXR1cm4gdHJ1ZTsgLy8gcDEsIHExIGFuZCBxMiBhcmUgY29sbGluZWFyIGFuZCBxMiBsaWVzIG9uIHAxcTFcbiAgICBpZiAobzMgPT09IDAgJiYgb25TZWdtZW50KHAyLCBwMSwgcTIpKSByZXR1cm4gdHJ1ZTsgLy8gcDIsIHEyIGFuZCBwMSBhcmUgY29sbGluZWFyIGFuZCBwMSBsaWVzIG9uIHAycTJcbiAgICBpZiAobzQgPT09IDAgJiYgb25TZWdtZW50KHAyLCBxMSwgcTIpKSByZXR1cm4gdHJ1ZTsgLy8gcDIsIHEyIGFuZCBxMSBhcmUgY29sbGluZWFyIGFuZCBxMSBsaWVzIG9uIHAycTJcblxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLy8gZm9yIGNvbGxpbmVhciBwb2ludHMgcCwgcSwgciwgY2hlY2sgaWYgcG9pbnQgcSBsaWVzIG9uIHNlZ21lbnQgcHJcbmZ1bmN0aW9uIG9uU2VnbWVudChwLCBxLCByKSB7XG4gICAgcmV0dXJuIHEueCA8PSBNYXRoLm1heChwLngsIHIueCkgJiYgcS54ID49IE1hdGgubWluKHAueCwgci54KSAmJiBxLnkgPD0gTWF0aC5tYXgocC55LCByLnkpICYmIHEueSA+PSBNYXRoLm1pbihwLnksIHIueSk7XG59XG5cbmZ1bmN0aW9uIHNpZ24obnVtKSB7XG4gICAgcmV0dXJuIG51bSA+IDAgPyAxIDogbnVtIDwgMCA/IC0xIDogMDtcbn1cblxuLy8gY2hlY2sgaWYgYSBwb2x5Z29uIGRpYWdvbmFsIGludGVyc2VjdHMgYW55IHBvbHlnb24gc2VnbWVudHNcbmZ1bmN0aW9uIGludGVyc2VjdHNQb2x5Z29uKGEsIGIpIHtcbiAgICB2YXIgcCA9IGE7XG4gICAgZG8ge1xuICAgICAgICBpZiAocC5pICE9PSBhLmkgJiYgcC5uZXh0LmkgIT09IGEuaSAmJiBwLmkgIT09IGIuaSAmJiBwLm5leHQuaSAhPT0gYi5pICYmXG4gICAgICAgICAgICAgICAgaW50ZXJzZWN0cyhwLCBwLm5leHQsIGEsIGIpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcCA9IHAubmV4dDtcbiAgICB9IHdoaWxlIChwICE9PSBhKTtcblxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLy8gY2hlY2sgaWYgYSBwb2x5Z29uIGRpYWdvbmFsIGlzIGxvY2FsbHkgaW5zaWRlIHRoZSBwb2x5Z29uXG5mdW5jdGlvbiBsb2NhbGx5SW5zaWRlKGEsIGIpIHtcbiAgICByZXR1cm4gYXJlYShhLnByZXYsIGEsIGEubmV4dCkgPCAwID9cbiAgICAgICAgYXJlYShhLCBiLCBhLm5leHQpID49IDAgJiYgYXJlYShhLCBhLnByZXYsIGIpID49IDAgOlxuICAgICAgICBhcmVhKGEsIGIsIGEucHJldikgPCAwIHx8IGFyZWEoYSwgYS5uZXh0LCBiKSA8IDA7XG59XG5cbi8vIGNoZWNrIGlmIHRoZSBtaWRkbGUgcG9pbnQgb2YgYSBwb2x5Z29uIGRpYWdvbmFsIGlzIGluc2lkZSB0aGUgcG9seWdvblxuZnVuY3Rpb24gbWlkZGxlSW5zaWRlKGEsIGIpIHtcbiAgICB2YXIgcCA9IGEsXG4gICAgICAgIGluc2lkZSA9IGZhbHNlLFxuICAgICAgICBweCA9IChhLnggKyBiLngpIC8gMixcbiAgICAgICAgcHkgPSAoYS55ICsgYi55KSAvIDI7XG4gICAgZG8ge1xuICAgICAgICBpZiAoKChwLnkgPiBweSkgIT09IChwLm5leHQueSA+IHB5KSkgJiYgcC5uZXh0LnkgIT09IHAueSAmJlxuICAgICAgICAgICAgICAgIChweCA8IChwLm5leHQueCAtIHAueCkgKiAocHkgLSBwLnkpIC8gKHAubmV4dC55IC0gcC55KSArIHAueCkpXG4gICAgICAgICAgICBpbnNpZGUgPSAhaW5zaWRlO1xuICAgICAgICBwID0gcC5uZXh0O1xuICAgIH0gd2hpbGUgKHAgIT09IGEpO1xuXG4gICAgcmV0dXJuIGluc2lkZTtcbn1cblxuLy8gbGluayB0d28gcG9seWdvbiB2ZXJ0aWNlcyB3aXRoIGEgYnJpZGdlOyBpZiB0aGUgdmVydGljZXMgYmVsb25nIHRvIHRoZSBzYW1lIHJpbmcsIGl0IHNwbGl0cyBwb2x5Z29uIGludG8gdHdvO1xuLy8gaWYgb25lIGJlbG9uZ3MgdG8gdGhlIG91dGVyIHJpbmcgYW5kIGFub3RoZXIgdG8gYSBob2xlLCBpdCBtZXJnZXMgaXQgaW50byBhIHNpbmdsZSByaW5nXG5mdW5jdGlvbiBzcGxpdFBvbHlnb24oYSwgYikge1xuICAgIHZhciBhMiA9IG5ldyBOb2RlKGEuaSwgYS54LCBhLnkpLFxuICAgICAgICBiMiA9IG5ldyBOb2RlKGIuaSwgYi54LCBiLnkpLFxuICAgICAgICBhbiA9IGEubmV4dCxcbiAgICAgICAgYnAgPSBiLnByZXY7XG5cbiAgICBhLm5leHQgPSBiO1xuICAgIGIucHJldiA9IGE7XG5cbiAgICBhMi5uZXh0ID0gYW47XG4gICAgYW4ucHJldiA9IGEyO1xuXG4gICAgYjIubmV4dCA9IGEyO1xuICAgIGEyLnByZXYgPSBiMjtcblxuICAgIGJwLm5leHQgPSBiMjtcbiAgICBiMi5wcmV2ID0gYnA7XG5cbiAgICByZXR1cm4gYjI7XG59XG5cbi8vIGNyZWF0ZSBhIG5vZGUgYW5kIG9wdGlvbmFsbHkgbGluayBpdCB3aXRoIHByZXZpb3VzIG9uZSAoaW4gYSBjaXJjdWxhciBkb3VibHkgbGlua2VkIGxpc3QpXG5mdW5jdGlvbiBpbnNlcnROb2RlKGksIHgsIHksIGxhc3QpIHtcbiAgICB2YXIgcCA9IG5ldyBOb2RlKGksIHgsIHkpO1xuXG4gICAgaWYgKCFsYXN0KSB7XG4gICAgICAgIHAucHJldiA9IHA7XG4gICAgICAgIHAubmV4dCA9IHA7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgICBwLm5leHQgPSBsYXN0Lm5leHQ7XG4gICAgICAgIHAucHJldiA9IGxhc3Q7XG4gICAgICAgIGxhc3QubmV4dC5wcmV2ID0gcDtcbiAgICAgICAgbGFzdC5uZXh0ID0gcDtcbiAgICB9XG4gICAgcmV0dXJuIHA7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZU5vZGUocCkge1xuICAgIHAubmV4dC5wcmV2ID0gcC5wcmV2O1xuICAgIHAucHJldi5uZXh0ID0gcC5uZXh0O1xuXG4gICAgaWYgKHAucHJldlopIHAucHJldloubmV4dFogPSBwLm5leHRaO1xuICAgIGlmIChwLm5leHRaKSBwLm5leHRaLnByZXZaID0gcC5wcmV2Wjtcbn1cblxuZnVuY3Rpb24gTm9kZShpLCB4LCB5KSB7XG4gICAgLy8gdmVydGV4IGluZGV4IGluIGNvb3JkaW5hdGVzIGFycmF5XG4gICAgdGhpcy5pID0gaTtcblxuICAgIC8vIHZlcnRleCBjb29yZGluYXRlc1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcblxuICAgIC8vIHByZXZpb3VzIGFuZCBuZXh0IHZlcnRleCBub2RlcyBpbiBhIHBvbHlnb24gcmluZ1xuICAgIHRoaXMucHJldiA9IG51bGw7XG4gICAgdGhpcy5uZXh0ID0gbnVsbDtcblxuICAgIC8vIHotb3JkZXIgY3VydmUgdmFsdWVcbiAgICB0aGlzLnogPSBudWxsO1xuXG4gICAgLy8gcHJldmlvdXMgYW5kIG5leHQgbm9kZXMgaW4gei1vcmRlclxuICAgIHRoaXMucHJldlogPSBudWxsO1xuICAgIHRoaXMubmV4dFogPSBudWxsO1xuXG4gICAgLy8gaW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBpcyBhIHN0ZWluZXIgcG9pbnRcbiAgICB0aGlzLnN0ZWluZXIgPSBmYWxzZTtcbn1cblxuLy8gcmV0dXJuIGEgcGVyY2VudGFnZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHBvbHlnb24gYXJlYSBhbmQgaXRzIHRyaWFuZ3VsYXRpb24gYXJlYTtcbi8vIHVzZWQgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIG9mIHRyaWFuZ3VsYXRpb25cbmVhcmN1dC5kZXZpYXRpb24gPSBmdW5jdGlvbiAoZGF0YSwgaG9sZUluZGljZXMsIGRpbSwgdHJpYW5nbGVzKSB7XG4gICAgdmFyIGhhc0hvbGVzID0gaG9sZUluZGljZXMgJiYgaG9sZUluZGljZXMubGVuZ3RoO1xuICAgIHZhciBvdXRlckxlbiA9IGhhc0hvbGVzID8gaG9sZUluZGljZXNbMF0gKiBkaW0gOiBkYXRhLmxlbmd0aDtcblxuICAgIHZhciBwb2x5Z29uQXJlYSA9IE1hdGguYWJzKHNpZ25lZEFyZWEoZGF0YSwgMCwgb3V0ZXJMZW4sIGRpbSkpO1xuICAgIGlmIChoYXNIb2xlcykge1xuICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gaG9sZUluZGljZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBzdGFydCA9IGhvbGVJbmRpY2VzW2ldICogZGltO1xuICAgICAgICAgICAgdmFyIGVuZCA9IGkgPCBsZW4gLSAxID8gaG9sZUluZGljZXNbaSArIDFdICogZGltIDogZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICBwb2x5Z29uQXJlYSAtPSBNYXRoLmFicyhzaWduZWRBcmVhKGRhdGEsIHN0YXJ0LCBlbmQsIGRpbSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHRyaWFuZ2xlc0FyZWEgPSAwO1xuICAgIGZvciAoaSA9IDA7IGkgPCB0cmlhbmdsZXMubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgdmFyIGEgPSB0cmlhbmdsZXNbaV0gKiBkaW07XG4gICAgICAgIHZhciBiID0gdHJpYW5nbGVzW2kgKyAxXSAqIGRpbTtcbiAgICAgICAgdmFyIGMgPSB0cmlhbmdsZXNbaSArIDJdICogZGltO1xuICAgICAgICB0cmlhbmdsZXNBcmVhICs9IE1hdGguYWJzKFxuICAgICAgICAgICAgKGRhdGFbYV0gLSBkYXRhW2NdKSAqIChkYXRhW2IgKyAxXSAtIGRhdGFbYSArIDFdKSAtXG4gICAgICAgICAgICAoZGF0YVthXSAtIGRhdGFbYl0pICogKGRhdGFbYyArIDFdIC0gZGF0YVthICsgMV0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9seWdvbkFyZWEgPT09IDAgJiYgdHJpYW5nbGVzQXJlYSA9PT0gMCA/IDAgOlxuICAgICAgICBNYXRoLmFicygodHJpYW5nbGVzQXJlYSAtIHBvbHlnb25BcmVhKSAvIHBvbHlnb25BcmVhKTtcbn07XG5cbmZ1bmN0aW9uIHNpZ25lZEFyZWEoZGF0YSwgc3RhcnQsIGVuZCwgZGltKSB7XG4gICAgdmFyIHN1bSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0LCBqID0gZW5kIC0gZGltOyBpIDwgZW5kOyBpICs9IGRpbSkge1xuICAgICAgICBzdW0gKz0gKGRhdGFbal0gLSBkYXRhW2ldKSAqIChkYXRhW2kgKyAxXSArIGRhdGFbaiArIDFdKTtcbiAgICAgICAgaiA9IGk7XG4gICAgfVxuICAgIHJldHVybiBzdW07XG59XG5cbi8vIHR1cm4gYSBwb2x5Z29uIGluIGEgbXVsdGktZGltZW5zaW9uYWwgYXJyYXkgZm9ybSAoZS5nLiBhcyBpbiBHZW9KU09OKSBpbnRvIGEgZm9ybSBFYXJjdXQgYWNjZXB0c1xuZWFyY3V0LmZsYXR0ZW4gPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIHZhciBkaW0gPSBkYXRhWzBdWzBdLmxlbmd0aCxcbiAgICAgICAgcmVzdWx0ID0ge3ZlcnRpY2VzOiBbXSwgaG9sZXM6IFtdLCBkaW1lbnNpb25zOiBkaW19LFxuICAgICAgICBob2xlSW5kZXggPSAwO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZGF0YVtpXS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgZm9yICh2YXIgZCA9IDA7IGQgPCBkaW07IGQrKykgcmVzdWx0LnZlcnRpY2VzLnB1c2goZGF0YVtpXVtqXVtkXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICBob2xlSW5kZXggKz0gZGF0YVtpIC0gMV0ubGVuZ3RoO1xuICAgICAgICAgICAgcmVzdWx0LmhvbGVzLnB1c2goaG9sZUluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbiJdfQ==
|