{
  "name": "stackgl_modules",
  "lockfileVersion": 2,
  "requires": true,
  "packages": {
    "": {
      "dependencies": {
        "@plotly/point-cluster": "^3.1.9",
        "alpha-shape": "^1.0.0",
        "box-intersect": "plotly/box-intersect#v1.1.0",
        "convex-hull": "^1.0.3",
        "delaunay-triangulate": "^1.1.6",
        "gl-cone3d": "^1.5.2",
        "gl-error3d": "^1.0.16",
        "gl-heatmap2d": "^1.1.1",
        "gl-line3d": "1.2.1",
        "gl-mesh3d": "^2.3.1",
        "gl-plot2d": "^1.4.5",
        "gl-plot3d": "^2.4.7",
        "gl-pointcloud2d": "^1.0.3",
        "gl-scatter3d": "^1.2.3",
        "gl-select-box": "^1.0.4",
        "gl-shader": "4.3.1",
        "gl-spikes2d": "^1.0.2",
        "gl-streamtube3d": "^1.4.1",
        "gl-surface3d": "^1.6.0",
        "glslify": "^7.1.1",
        "incremental-convex-hull": "plotly/incremental-convex-hull#v1.1.0",
        "is-mobile": "^4.0.0",
        "matrix-camera-controller": "^2.1.4",
        "ndarray": "plotly/ndarray#v1.1.0",
        "ndarray-extract-contour": "plotly/ndarray-extract-contour#v1.1.0",
        "ndarray-gradient": "plotly/ndarray-gradient#v1.1.0",
        "ndarray-linear-interpolate": "^1.0.0",
        "ndarray-ops": "plotly/ndarray-ops#v1.3.0",
        "ndarray-pack": "plotly/ndarray-pack#v1.3.0",
        "ndarray-sort": "plotly/ndarray-sort#v1.1.0",
        "right-now": "^1.0.0",
        "robust-determinant": "plotly/robust-determinant#v1.2.2",
        "robust-in-sphere": "1.2.1",
        "robust-linear-solve": "plotly/robust-linear-solve#v1.1.2",
        "robust-orientation": "1.2.1",
        "simplicial-complex-contour": "plotly/simplicial-complex-contour#v1.1.0",
        "surface-nets": "plotly/surface-nets#v1.1.1",
        "vectorize-text": "3.2.2",
        "zero-crossings": "plotly/zero-crossings#v1.1.0"
      },
      "devDependencies": {
        "chttps": "^1.0.6"
      }
    },
    "node_modules/@choojs/findup": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz",
      "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==",
      "dependencies": {
        "commander": "^2.15.1"
      },
      "bin": {
        "findup": "bin/findup.js"
      }
    },
    "node_modules/@plotly/point-cluster": {
      "version": "3.1.9",
      "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz",
      "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==",
      "dependencies": {
        "array-bounds": "^1.0.1",
        "binary-search-bounds": "^2.0.4",
        "clamp": "^1.0.1",
        "defined": "^1.0.0",
        "dtype": "^2.0.0",
        "flatten-vertex-data": "^1.0.2",
        "is-obj": "^1.0.1",
        "math-log2": "^1.0.1",
        "parse-rect": "^1.2.0",
        "pick-by-alias": "^1.2.0"
      }
    },
    "node_modules/3d-view": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.1.tgz",
      "integrity": "sha512-YSLRHXNpSziaaiK2R0pI5+JKguoJVbtWmIv9YyBFtl0+q42kQwJB/JUulbFR/1zYFm58ifjKQ6kVdgZ6tyKtCA==",
      "dependencies": {
        "matrix-camera-controller": "^2.1.1",
        "orbit-camera-controller": "^4.0.0",
        "turntable-camera-controller": "^3.0.0"
      }
    },
    "node_modules/a-big-triangle": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/a-big-triangle/-/a-big-triangle-1.0.3.tgz",
      "integrity": "sha1-7v0wsCqPUl6LH3K7a7GwwWdRx5Q=",
      "dependencies": {
        "gl-buffer": "^2.1.1",
        "gl-vao": "^1.2.0",
        "weak-map": "^1.0.5"
      }
    },
    "node_modules/acorn": {
      "version": "7.4.1",
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
      "bin": {
        "acorn": "bin/acorn"
      },
      "engines": {
        "node": ">=0.4.0"
      }
    },
    "node_modules/add-line-numbers": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/add-line-numbers/-/add-line-numbers-1.0.1.tgz",
      "integrity": "sha1-SNu96kfb0jTer+rGyTzqb3C0t+M=",
      "dependencies": {
        "pad-left": "^1.0.2"
      }
    },
    "node_modules/affine-hull": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/affine-hull/-/affine-hull-1.0.0.tgz",
      "integrity": "sha1-dj/x040GPOt+Jy8X7k17vK+QXF0=",
      "dependencies": {
        "robust-orientation": "^1.1.3"
      }
    },
    "node_modules/alpha-complex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/alpha-complex/-/alpha-complex-1.0.0.tgz",
      "integrity": "sha1-kIZYcNawVCrnPAwTHU75iWabctI=",
      "dependencies": {
        "circumradius": "^1.0.0",
        "delaunay-triangulate": "^1.1.6"
      }
    },
    "node_modules/alpha-shape": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/alpha-shape/-/alpha-shape-1.0.0.tgz",
      "integrity": "sha1-yDEJkj7P2mZ9IWP+Tyb+JHJvZKk=",
      "dependencies": {
        "alpha-complex": "^1.0.0",
        "simplicial-complex-boundary": "^1.0.0"
      }
    },
    "node_modules/array-bounds": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz",
      "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ=="
    },
    "node_modules/atob-lite": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-1.0.0.tgz",
      "integrity": "sha1-uI3KYAaSK5YglPdVaCa6sxxKKWs="
    },
    "node_modules/barycentric": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/barycentric/-/barycentric-1.0.1.tgz",
      "integrity": "sha1-8VYruJGyb0/sRjqC7to2V4AOxog=",
      "dependencies": {
        "robust-linear-solve": "^1.0.0"
      }
    },
    "node_modules/big-rat": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/big-rat/-/big-rat-1.0.4.tgz",
      "integrity": "sha1-do0JO7V5MN0Y7Vdcf8on3FORreo=",
      "dependencies": {
        "bit-twiddle": "^1.0.2",
        "bn.js": "^4.11.6",
        "double-bits": "^1.1.1"
      }
    },
    "node_modules/binary-search-bounds": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz",
      "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA=="
    },
    "node_modules/bit-twiddle": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz",
      "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4="
    },
    "node_modules/bl": {
      "version": "2.2.1",
      "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
      "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
      "dependencies": {
        "readable-stream": "^2.3.5",
        "safe-buffer": "^5.1.1"
      }
    },
    "node_modules/bn.js": {
      "version": "4.12.0",
      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
      "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
    },
    "node_modules/boundary-cells": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/boundary-cells/-/boundary-cells-2.0.2.tgz",
      "integrity": "sha512-/S48oUFYEgZMNvdqC87iYRbLBAPHYijPRNrNpm/sS8u7ijIViKm/hrV3YD4sx/W68AsG5zLMyBEditVHApHU5w=="
    },
    "node_modules/box-intersect": {
      "version": "1.1.0",
      "resolved": "git+ssh://git@github.com/plotly/box-intersect.git#1c21ef897c37eb69e5c1efeca7087726dd8d6a23",
      "license": "MIT",
      "dependencies": {
        "bit-twiddle": "^1.0.2",
        "typedarray-pool": "^1.1.0"
      }
    },
    "node_modules/buffer-from": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
    },
    "node_modules/cdt2d": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/cdt2d/-/cdt2d-1.0.0.tgz",
      "integrity": "sha1-TyEkNLzWe9s9aLj+9KzcLFRBUUE=",
      "dependencies": {
        "binary-search-bounds": "^2.0.3",
        "robust-in-sphere": "^1.1.3",
        "robust-orientation": "^1.1.3"
      }
    },
    "node_modules/cell-orientation": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/cell-orientation/-/cell-orientation-1.0.1.tgz",
      "integrity": "sha1-tQStlqZq0obZ7dmFoiU9A7gNKFA="
    },
    "node_modules/chttps": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/chttps/-/chttps-1.0.6.tgz",
      "integrity": "sha512-53/mkdPvQzlHAb/2sYNj4PXGdIeXygdx2VA8RjHtKwBXjuqHlmC0S81bD43d3kq+ie9noxe9CW2CU/JG1KWu7A==",
      "dev": true,
      "bin": {
        "chttps": "chttps.js"
      }
    },
    "node_modules/circumcenter": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/circumcenter/-/circumcenter-1.0.0.tgz",
      "integrity": "sha1-INeqE7F/usUvUtpPVMasi5Bu5Sk=",
      "dependencies": {
        "dup": "^1.0.0",
        "robust-linear-solve": "^1.0.0"
      }
    },
    "node_modules/circumradius": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/circumradius/-/circumradius-1.0.0.tgz",
      "integrity": "sha1-cGxEfj5VzR7T0RvRM+N8JSzDBbU=",
      "dependencies": {
        "circumcenter": "^1.0.0"
      }
    },
    "node_modules/clamp": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz",
      "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ="
    },
    "node_modules/clean-pslg": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/clean-pslg/-/clean-pslg-1.1.2.tgz",
      "integrity": "sha1-vTXHRgt+irWp92Gl7VF5aqPIbBE=",
      "dependencies": {
        "big-rat": "^1.0.3",
        "box-intersect": "^1.0.1",
        "nextafter": "^1.0.0",
        "rat-vec": "^1.1.1",
        "robust-segment-intersect": "^1.0.1",
        "union-find": "^1.0.2",
        "uniq": "^1.0.1"
      }
    },
    "node_modules/colormap": {
      "version": "2.3.2",
      "resolved": "https://registry.npmjs.org/colormap/-/colormap-2.3.2.tgz",
      "integrity": "sha512-jDOjaoEEmA9AgA11B/jCSAvYE95r3wRoAyTf3LEHGiUVlNHJaL1mRkf5AyLSpQBVGfTEPwGEqCIzL+kgr2WgNA==",
      "dependencies": {
        "lerp": "^1.0.3"
      }
    },
    "node_modules/commander": {
      "version": "2.20.3",
      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
    },
    "node_modules/compare-angle": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/compare-angle/-/compare-angle-1.0.1.tgz",
      "integrity": "sha1-pOtjQW6jx0f8a9bItjZotN5PoSk=",
      "dependencies": {
        "robust-orientation": "^1.0.2",
        "robust-product": "^1.0.0",
        "robust-sum": "^1.0.0",
        "signum": "^0.0.0",
        "two-sum": "^1.0.0"
      }
    },
    "node_modules/compare-angle/node_modules/signum": {
      "version": "0.0.0",
      "resolved": "https://registry.npmjs.org/signum/-/signum-0.0.0.tgz",
      "integrity": "sha1-q1UbEAM1EHCnBHg/GgnF52kfnPY="
    },
    "node_modules/compare-cell": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/compare-cell/-/compare-cell-1.0.0.tgz",
      "integrity": "sha1-qetwj24OQa73qlZrEw8ZaNyeGqo="
    },
    "node_modules/compare-oriented-cell": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/compare-oriented-cell/-/compare-oriented-cell-1.0.1.tgz",
      "integrity": "sha1-ahSf7vnfxPj8YjWOUd1C7/u9w54=",
      "dependencies": {
        "cell-orientation": "^1.0.1",
        "compare-cell": "^1.0.0"
      }
    },
    "node_modules/concat-stream": {
      "version": "1.6.2",
      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
      "engines": [
        "node >= 0.8"
      ],
      "dependencies": {
        "buffer-from": "^1.0.0",
        "inherits": "^2.0.3",
        "readable-stream": "^2.2.2",
        "typedarray": "^0.0.6"
      }
    },
    "node_modules/convex-hull": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/convex-hull/-/convex-hull-1.0.3.tgz",
      "integrity": "sha1-IKOqbOh/St6i/30XlxyfwcZ+H/8=",
      "dependencies": {
        "affine-hull": "^1.0.0",
        "incremental-convex-hull": "^1.0.1",
        "monotone-convex-hull-2d": "^1.0.1"
      }
    },
    "node_modules/core-util-is": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
    },
    "node_modules/cubic-hermite": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/cubic-hermite/-/cubic-hermite-1.0.0.tgz",
      "integrity": "sha1-hOOy8nKzFFToOTuZu2rtRRaMFOU="
    },
    "node_modules/deep-is": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
    },
    "node_modules/defined": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
    },
    "node_modules/delaunay-triangulate": {
      "version": "1.1.6",
      "resolved": "https://registry.npmjs.org/delaunay-triangulate/-/delaunay-triangulate-1.1.6.tgz",
      "integrity": "sha1-W7yiGweBmNS8PHV5ajXLuYwllUw=",
      "dependencies": {
        "incremental-convex-hull": "^1.0.1",
        "uniq": "^1.0.1"
      }
    },
    "node_modules/double-bits": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/double-bits/-/double-bits-1.1.1.tgz",
      "integrity": "sha1-WKu6RUlNpND6Nrc60RoobJGEscY="
    },
    "node_modules/dtype": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz",
      "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=",
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/dup": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz",
      "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk="
    },
    "node_modules/duplexify": {
      "version": "3.7.1",
      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
      "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
      "dependencies": {
        "end-of-stream": "^1.0.0",
        "inherits": "^2.0.1",
        "readable-stream": "^2.0.0",
        "stream-shift": "^1.0.0"
      }
    },
    "node_modules/edges-to-adjacency-list": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/edges-to-adjacency-list/-/edges-to-adjacency-list-1.0.0.tgz",
      "integrity": "sha1-wUbS4ISt37p0pRKTxuAZmkn3V/E=",
      "dependencies": {
        "uniq": "^1.0.0"
      }
    },
    "node_modules/end-of-stream": {
      "version": "1.4.4",
      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
      "dependencies": {
        "once": "^1.4.0"
      }
    },
    "node_modules/escodegen": {
      "version": "1.14.3",
      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
      "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
      "dependencies": {
        "esprima": "^4.0.1",
        "estraverse": "^4.2.0",
        "esutils": "^2.0.2",
        "optionator": "^0.8.1"
      },
      "bin": {
        "escodegen": "bin/escodegen.js",
        "esgenerate": "bin/esgenerate.js"
      },
      "engines": {
        "node": ">=4.0"
      },
      "optionalDependencies": {
        "source-map": "~0.6.1"
      }
    },
    "node_modules/esprima": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
      "bin": {
        "esparse": "bin/esparse.js",
        "esvalidate": "bin/esvalidate.js"
      },
      "engines": {
        "node": ">=4"
      }
    },
    "node_modules/estraverse": {
      "version": "4.3.0",
      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
      "engines": {
        "node": ">=4.0"
      }
    },
    "node_modules/esutils": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/events": {
      "version": "3.3.0",
      "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
      "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
      "engines": {
        "node": ">=0.8.x"
      }
    },
    "node_modules/extract-frustum-planes": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/extract-frustum-planes/-/extract-frustum-planes-1.0.0.tgz",
      "integrity": "sha1-l9VwP/BWTIw8aDjKxF+ee8UsnvU="
    },
    "node_modules/falafel": {
      "version": "2.2.4",
      "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz",
      "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==",
      "dependencies": {
        "acorn": "^7.1.1",
        "foreach": "^2.0.5",
        "isarray": "^2.0.1",
        "object-keys": "^1.0.6"
      },
      "engines": {
        "node": ">=0.4.0"
      }
    },
    "node_modules/fast-levenshtein": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
    },
    "node_modules/filtered-vector": {
      "version": "1.2.5",
      "resolved": "https://registry.npmjs.org/filtered-vector/-/filtered-vector-1.2.5.tgz",
      "integrity": "sha512-5Vu6wdtQJ1O2nRmz39dIr9m3hEDq1skYby5k1cJQdNWK4dMgvYcUEiA/9j7NcKfNZ5LGxn8w2LSLiigyH7pTAw==",
      "dependencies": {
        "binary-search-bounds": "^2.0.0",
        "cubic-hermite": "^1.0.0"
      }
    },
    "node_modules/flatten-vertex-data": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz",
      "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==",
      "dependencies": {
        "dtype": "^2.0.0"
      }
    },
    "node_modules/foreach": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
      "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
    },
    "node_modules/from2": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
      "dependencies": {
        "inherits": "^2.0.1",
        "readable-stream": "^2.0.0"
      }
    },
    "node_modules/function-bind": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
    },
    "node_modules/functional-red-black-tree": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
      "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
    },
    "node_modules/gl-axes3d": {
      "version": "1.5.3",
      "resolved": "https://registry.npmjs.org/gl-axes3d/-/gl-axes3d-1.5.3.tgz",
      "integrity": "sha512-KRYbguKQcDQ6PcB9g1pgqB8Ly4TY1DQODpPKiDTasyWJ8PxQk0t2Q7XoQQijNqvsguITCpVVCzNb5GVtIWiVlQ==",
      "dependencies": {
        "bit-twiddle": "^1.0.2",
        "dup": "^1.0.0",
        "extract-frustum-planes": "^1.0.0",
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-state": "^1.0.0",
        "gl-vao": "^1.3.0",
        "gl-vec4": "^1.0.1",
        "glslify": "^7.0.0",
        "robust-orientation": "^1.1.3",
        "split-polygon": "^1.0.0",
        "vectorize-text": "^3.2.1"
      }
    },
    "node_modules/gl-buffer": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/gl-buffer/-/gl-buffer-2.1.2.tgz",
      "integrity": "sha1-LbjZwaVSf7oM25EonCBuiCuInNs=",
      "dependencies": {
        "ndarray": "^1.0.15",
        "ndarray-ops": "^1.1.0",
        "typedarray-pool": "^1.0.0"
      }
    },
    "node_modules/gl-cone3d": {
      "version": "1.5.2",
      "resolved": "https://registry.npmjs.org/gl-cone3d/-/gl-cone3d-1.5.2.tgz",
      "integrity": "sha512-1JNeHH4sUtUmDA4ZK7Om8/kShwb8IZVAsnxaaB7IPRJsNGciLj1sTpODrJGeMl41RNkex5kXD2SQFrzyEAR2Rw==",
      "dependencies": {
        "colormap": "^2.3.1",
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-texture2d": "^2.1.0",
        "gl-vao": "^1.3.0",
        "gl-vec3": "^1.1.3",
        "glsl-inverse": "^1.0.0",
        "glsl-out-of-range": "^1.0.4",
        "glsl-specular-cook-torrance": "^2.0.1",
        "glslify": "^7.0.0",
        "ndarray": "^1.0.18"
      }
    },
    "node_modules/gl-constants": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gl-constants/-/gl-constants-1.0.0.tgz",
      "integrity": "sha1-WXpQTjZHUP9QJTqjX43qevSl0jM="
    },
    "node_modules/gl-error3d": {
      "version": "1.0.16",
      "resolved": "https://registry.npmjs.org/gl-error3d/-/gl-error3d-1.0.16.tgz",
      "integrity": "sha512-TGJewnKSp7ZnqGgG3XCF9ldrDbxZrO+OWlx6oIet4OdOM//n8xJ5isArnIV/sdPJnFbhfoLxWrW9f5fxHFRQ1A==",
      "dependencies": {
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glslify": "^7.0.0"
      }
    },
    "node_modules/gl-fbo": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/gl-fbo/-/gl-fbo-2.0.5.tgz",
      "integrity": "sha1-D6daSXz3h2lVMGkcjwSrtvtV+iI=",
      "dependencies": {
        "gl-texture2d": "^2.0.0"
      }
    },
    "node_modules/gl-format-compiler-error": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/gl-format-compiler-error/-/gl-format-compiler-error-1.0.3.tgz",
      "integrity": "sha1-DHmxdRiZzpcy6GJA8JCqQemEcag=",
      "dependencies": {
        "add-line-numbers": "^1.0.1",
        "gl-constants": "^1.0.0",
        "glsl-shader-name": "^1.0.0",
        "sprintf-js": "^1.0.3"
      }
    },
    "node_modules/gl-heatmap2d": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/gl-heatmap2d/-/gl-heatmap2d-1.1.1.tgz",
      "integrity": "sha512-6Vo1fPIB1vQFWBA/MR6JAA16XuQuhwvZRbSjYEq++m4QV33iqjGS2HcVIRfJGX+fomd5eiz6bwkVZcKm69zQPw==",
      "dependencies": {
        "binary-search-bounds": "^2.0.4",
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "glslify": "^7.0.0",
        "iota-array": "^1.0.0",
        "typedarray-pool": "^1.2.0"
      }
    },
    "node_modules/gl-line3d": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/gl-line3d/-/gl-line3d-1.2.1.tgz",
      "integrity": "sha512-eeb0+RI2ZBRqMYJK85SgsRiJK7c4aiOjcnirxv0830A3jmOc99snY3AbPcV8KvKmW0Yaf3KA4e+qNCbHiTOTnA==",
      "dependencies": {
        "binary-search-bounds": "^2.0.4",
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "gl-texture2d": "^2.1.0",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glslify": "^7.0.0",
        "ndarray": "^1.0.18"
      }
    },
    "node_modules/gl-mat3": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gl-mat3/-/gl-mat3-1.0.0.tgz",
      "integrity": "sha1-iWMyGcpCk3mha5GF2V1BcTRTuRI="
    },
    "node_modules/gl-mat4": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz",
      "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA=="
    },
    "node_modules/gl-mesh3d": {
      "version": "2.3.1",
      "resolved": "https://registry.npmjs.org/gl-mesh3d/-/gl-mesh3d-2.3.1.tgz",
      "integrity": "sha512-pXECamyGgu4/9HeAQSE5OEUuLBGS1aq9V4BCsTcxsND4fNLaajEkYKUz/WY2QSYElqKdsMBVsldGiKRKwlybqA==",
      "dependencies": {
        "barycentric": "^1.0.1",
        "colormap": "^2.3.1",
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-texture2d": "^2.1.0",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glsl-specular-cook-torrance": "^2.0.1",
        "glslify": "^7.0.0",
        "ndarray": "^1.0.18",
        "normals": "^1.1.0",
        "polytope-closest-point": "^1.0.0",
        "simplicial-complex-contour": "^1.0.2",
        "typedarray-pool": "^1.1.0"
      }
    },
    "node_modules/gl-plot2d": {
      "version": "1.4.5",
      "resolved": "https://registry.npmjs.org/gl-plot2d/-/gl-plot2d-1.4.5.tgz",
      "integrity": "sha512-6GmCN10SWtV+qHFQ1gjdnVubeHFVsm6P4zmo0HrPIl9TcdePCUHDlBKWAuE6XtFhiMKMj7R8rApOX8O8uXUYog==",
      "dependencies": {
        "binary-search-bounds": "^2.0.4",
        "gl-buffer": "^2.1.2",
        "gl-select-static": "^2.0.7",
        "gl-shader": "^4.2.1",
        "glsl-inverse": "^1.0.0",
        "glslify": "^7.0.0",
        "text-cache": "^4.2.2"
      }
    },
    "node_modules/gl-plot3d": {
      "version": "2.4.7",
      "resolved": "https://registry.npmjs.org/gl-plot3d/-/gl-plot3d-2.4.7.tgz",
      "integrity": "sha512-mLDVWrl4Dj0O0druWyHUK5l7cBQrRIJRn2oROEgrRuOgbbrLAzsREKefwMO0bA0YqkiZMFMnV5VvPA9j57X5Xg==",
      "dependencies": {
        "3d-view": "^2.0.0",
        "a-big-triangle": "^1.0.3",
        "gl-axes3d": "^1.5.3",
        "gl-fbo": "^2.0.5",
        "gl-mat4": "^1.2.0",
        "gl-select-static": "^2.0.7",
        "gl-shader": "^4.2.1",
        "gl-spikes3d": "^1.0.10",
        "glslify": "^7.0.0",
        "has-passive-events": "^1.0.0",
        "is-mobile": "^4.0.0",
        "mouse-change": "^1.4.0",
        "mouse-event-offset": "^3.0.2",
        "mouse-wheel": "^1.2.0",
        "ndarray": "^1.0.19",
        "right-now": "^1.0.0"
      }
    },
    "node_modules/gl-pointcloud2d": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/gl-pointcloud2d/-/gl-pointcloud2d-1.0.3.tgz",
      "integrity": "sha512-OS2e1irvJXVRpg/GziXj10xrFJm9kkRfFoB6BLUvkjCQV7ZRNNcs2CD+YSK1r0gvMwTg2T3lfLM3UPwNtz+4Xw==",
      "dependencies": {
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "glslify": "^7.0.0",
        "typedarray-pool": "^1.1.0"
      }
    },
    "node_modules/gl-quat": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gl-quat/-/gl-quat-1.0.0.tgz",
      "integrity": "sha1-CUXskjOG9FMpvl3DV7HIwtR1hsU=",
      "dependencies": {
        "gl-mat3": "^1.0.0",
        "gl-vec3": "^1.0.3",
        "gl-vec4": "^1.0.0"
      }
    },
    "node_modules/gl-scatter3d": {
      "version": "1.2.3",
      "resolved": "https://registry.npmjs.org/gl-scatter3d/-/gl-scatter3d-1.2.3.tgz",
      "integrity": "sha512-nXqPlT1w5Qt51dTksj+DUqrZqwWAEWg0PocsKcoDnVNv0X8sGA+LBZ0Y+zrA+KNXUL0PPCX9WR9cF2uJAZl1Sw==",
      "dependencies": {
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glslify": "^7.0.0",
        "is-string-blank": "^1.0.1",
        "typedarray-pool": "^1.1.0",
        "vectorize-text": "^3.2.1"
      }
    },
    "node_modules/gl-select-box": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/gl-select-box/-/gl-select-box-1.0.4.tgz",
      "integrity": "sha512-mKsCnglraSKyBbQiGq0Ila0WF+m6Tr+EWT2yfaMn/Sh9aMHq5Wt0F/l6Cf/Ed3CdERq5jHWAY5yxLviZteYu2w==",
      "dependencies": {
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "glslify": "^7.0.0"
      }
    },
    "node_modules/gl-select-static": {
      "version": "2.0.7",
      "resolved": "https://registry.npmjs.org/gl-select-static/-/gl-select-static-2.0.7.tgz",
      "integrity": "sha512-OvpYprd+ngl3liEatBTdXhSyNBjwvjMSvV2rN0KHpTU+BTi4viEETXNZXFgGXY37qARs0L28ybk3UQEW6C5Nnw==",
      "dependencies": {
        "bit-twiddle": "^1.0.2",
        "gl-fbo": "^2.0.5",
        "ndarray": "^1.0.18",
        "typedarray-pool": "^1.1.0"
      }
    },
    "node_modules/gl-shader": {
      "version": "4.3.1",
      "resolved": "https://registry.npmjs.org/gl-shader/-/gl-shader-4.3.1.tgz",
      "integrity": "sha512-xLoN6XtRLlg97SEqtuzfKc+pVWpVkQ3YjDI1kuCale8tF7+zMhiKlMfmG4IMQPMdKJZQbIc/Ny8ZusEpfh5U+w==",
      "dependencies": {
        "gl-format-compiler-error": "^1.0.2",
        "weakmap-shim": "^1.1.0"
      }
    },
    "node_modules/gl-spikes2d": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/gl-spikes2d/-/gl-spikes2d-1.0.2.tgz",
      "integrity": "sha512-QVeOZsi9nQuJJl7NB3132CCv5KA10BWxAY2QgJNsKqbLsG53B/TrGJpjIAohnJftdZ4fT6b3ZojWgeaXk8bOOA=="
    },
    "node_modules/gl-spikes3d": {
      "version": "1.0.10",
      "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.10.tgz",
      "integrity": "sha512-lT3xroowOFxMvlhT5Mof76B2TE02l5zt/NIWljhczV2FFHgIVhA4jMrd5dIv1so1RXMBDJIKu0uJI3QKliDVLg==",
      "dependencies": {
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "gl-vao": "^1.3.0",
        "glslify": "^7.0.0"
      }
    },
    "node_modules/gl-state": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gl-state/-/gl-state-1.0.0.tgz",
      "integrity": "sha1-Ji+qdYNbC5xTLBLzitxCXR0wzRc=",
      "dependencies": {
        "uniq": "^1.0.0"
      }
    },
    "node_modules/gl-streamtube3d": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/gl-streamtube3d/-/gl-streamtube3d-1.4.1.tgz",
      "integrity": "sha512-rH02v00kgwgdpkXVo7KsSoPp38bIAYR9TE1iONjcQ4cQAlDhrGRauqT/P5sUaOIzs17A2DxWGcXM+EpNQs9pUA==",
      "dependencies": {
        "gl-cone3d": "^1.5.2",
        "gl-vec3": "^1.1.3",
        "gl-vec4": "^1.0.1",
        "glsl-inverse": "^1.0.0",
        "glsl-out-of-range": "^1.0.4",
        "glsl-specular-cook-torrance": "^2.0.1",
        "glslify": "^7.0.0"
      }
    },
    "node_modules/gl-surface3d": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/gl-surface3d/-/gl-surface3d-1.6.0.tgz",
      "integrity": "sha512-x15+u4712ysnB85G55RLJEml6mOB4VaDn0VTlXCc9JcjRl5Es10Tk7lhGGyiPtkCfHwvhnkxzYA1/rHHYN7Y0A==",
      "dependencies": {
        "binary-search-bounds": "^2.0.4",
        "bit-twiddle": "^1.0.2",
        "colormap": "^2.3.1",
        "dup": "^1.0.0",
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-texture2d": "^2.1.0",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glsl-specular-beckmann": "^1.1.2",
        "glslify": "^7.0.0",
        "ndarray": "^1.0.18",
        "ndarray-gradient": "^1.0.0",
        "ndarray-ops": "^1.2.2",
        "ndarray-pack": "^1.2.1",
        "ndarray-scratch": "^1.2.0",
        "surface-nets": "^1.0.2",
        "typedarray-pool": "^1.1.0"
      }
    },
    "node_modules/gl-texture2d": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/gl-texture2d/-/gl-texture2d-2.1.0.tgz",
      "integrity": "sha1-/2gk5+fDGoum/c2+nlxpXX4hh8c=",
      "dependencies": {
        "ndarray": "^1.0.15",
        "ndarray-ops": "^1.2.2",
        "typedarray-pool": "^1.1.0"
      }
    },
    "node_modules/gl-vao": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/gl-vao/-/gl-vao-1.3.0.tgz",
      "integrity": "sha1-6ekqqVWIyrnVwvBLaTRAw99pGSM="
    },
    "node_modules/gl-vec3": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/gl-vec3/-/gl-vec3-1.1.3.tgz",
      "integrity": "sha512-jduKUqT0SGH02l8Yl+mV1yVsDfYgQAJyXGxkJQGyxPLHRiW25DwVIRPt6uvhrEMHftJfqhqKthRcyZqNEl9Xdw=="
    },
    "node_modules/gl-vec4": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/gl-vec4/-/gl-vec4-1.0.1.tgz",
      "integrity": "sha1-l9loeCgbFLUyy84QF4Xf0cs0CWQ="
    },
    "node_modules/glsl-inject-defines": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz",
      "integrity": "sha1-3RqswsF/yyvT/DJBHGYz0Ne2D9Q=",
      "dependencies": {
        "glsl-token-inject-block": "^1.0.0",
        "glsl-token-string": "^1.0.1",
        "glsl-tokenizer": "^2.0.2"
      }
    },
    "node_modules/glsl-inverse": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/glsl-inverse/-/glsl-inverse-1.0.0.tgz",
      "integrity": "sha1-EsCx0GX1WERNHm/q95td34qRiuY="
    },
    "node_modules/glsl-out-of-range": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/glsl-out-of-range/-/glsl-out-of-range-1.0.4.tgz",
      "integrity": "sha512-fCcDu2LCQ39VBvfe1FbhuazXEf0CqMZI9OYXrYlL6uUARG48CTAbL04+tZBtVM0zo1Ljx4OLu2AxNquq++lxWQ=="
    },
    "node_modules/glsl-resolve": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz",
      "integrity": "sha1-iUvvc5ENeSyBtRQxgANdCnivdtM=",
      "dependencies": {
        "resolve": "^0.6.1",
        "xtend": "^2.1.2"
      }
    },
    "node_modules/glsl-resolve/node_modules/resolve": {
      "version": "0.6.3",
      "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz",
      "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY="
    },
    "node_modules/glsl-resolve/node_modules/xtend": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz",
      "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=",
      "engines": {
        "node": ">=0.4"
      }
    },
    "node_modules/glsl-shader-name": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/glsl-shader-name/-/glsl-shader-name-1.0.0.tgz",
      "integrity": "sha1-osMLO6c0mb77DMcYTXx3M91LSH0=",
      "dependencies": {
        "atob-lite": "^1.0.0",
        "glsl-tokenizer": "^2.0.2"
      }
    },
    "node_modules/glsl-specular-beckmann": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/glsl-specular-beckmann/-/glsl-specular-beckmann-1.1.2.tgz",
      "integrity": "sha1-/OkFaTPs3yRWJ4N2pU0IKJPndfE="
    },
    "node_modules/glsl-specular-cook-torrance": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/glsl-specular-cook-torrance/-/glsl-specular-cook-torrance-2.0.1.tgz",
      "integrity": "sha1-qJHMBsjHtPRyhwK0gk/ay7ln148=",
      "dependencies": {
        "glsl-specular-beckmann": "^1.1.1"
      }
    },
    "node_modules/glsl-token-assignments": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz",
      "integrity": "sha1-pdgqt4SZwuimuDy2lJXm5mXOAZ8="
    },
    "node_modules/glsl-token-defines": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz",
      "integrity": "sha1-y4kqqVmTYjFyhHDU90AySJaX+p0=",
      "dependencies": {
        "glsl-tokenizer": "^2.0.0"
      }
    },
    "node_modules/glsl-token-depth": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz",
      "integrity": "sha1-I8XjDuK9JViEtKKLyFC495HpXYQ="
    },
    "node_modules/glsl-token-descope": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz",
      "integrity": "sha1-D8kKsyYYa4L1l7LnfcniHvzTIHY=",
      "dependencies": {
        "glsl-token-assignments": "^2.0.0",
        "glsl-token-depth": "^1.1.0",
        "glsl-token-properties": "^1.0.0",
        "glsl-token-scope": "^1.1.0"
      }
    },
    "node_modules/glsl-token-inject-block": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz",
      "integrity": "sha1-4QFfWYDBCRgkraomJfHf3ovQADQ="
    },
    "node_modules/glsl-token-properties": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz",
      "integrity": "sha1-SD3D2Dnw1LXGFx0VkfJJvlPCip4="
    },
    "node_modules/glsl-token-scope": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz",
      "integrity": "sha1-oXKOeN8kRE+cuT/RjvD3VQOmQ7E="
    },
    "node_modules/glsl-token-string": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz",
      "integrity": "sha1-WUQdL4V958NEnJRWZgIezjWOSOw="
    },
    "node_modules/glsl-token-whitespace-trim": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz",
      "integrity": "sha1-RtHf6Yx1vX1QTAXX0RsbPpzJOxA="
    },
    "node_modules/glsl-tokenizer": {
      "version": "2.1.5",
      "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz",
      "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==",
      "dependencies": {
        "through2": "^0.6.3"
      }
    },
    "node_modules/glslify": {
      "version": "7.1.1",
      "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz",
      "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==",
      "dependencies": {
        "bl": "^2.2.1",
        "concat-stream": "^1.5.2",
        "duplexify": "^3.4.5",
        "falafel": "^2.1.0",
        "from2": "^2.3.0",
        "glsl-resolve": "0.0.1",
        "glsl-token-whitespace-trim": "^1.0.0",
        "glslify-bundle": "^5.0.0",
        "glslify-deps": "^1.2.5",
        "minimist": "^1.2.5",
        "resolve": "^1.1.5",
        "stack-trace": "0.0.9",
        "static-eval": "^2.0.5",
        "through2": "^2.0.1",
        "xtend": "^4.0.0"
      },
      "bin": {
        "glslify": "bin.js"
      }
    },
    "node_modules/glslify-bundle": {
      "version": "5.1.1",
      "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz",
      "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==",
      "dependencies": {
        "glsl-inject-defines": "^1.0.1",
        "glsl-token-defines": "^1.0.0",
        "glsl-token-depth": "^1.1.1",
        "glsl-token-descope": "^1.0.2",
        "glsl-token-scope": "^1.1.1",
        "glsl-token-string": "^1.0.1",
        "glsl-token-whitespace-trim": "^1.0.0",
        "glsl-tokenizer": "^2.0.2",
        "murmurhash-js": "^1.0.0",
        "shallow-copy": "0.0.1"
      }
    },
    "node_modules/glslify-deps": {
      "version": "1.3.2",
      "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz",
      "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==",
      "dependencies": {
        "@choojs/findup": "^0.2.0",
        "events": "^3.2.0",
        "glsl-resolve": "0.0.1",
        "glsl-tokenizer": "^2.0.0",
        "graceful-fs": "^4.1.2",
        "inherits": "^2.0.1",
        "map-limit": "0.0.1",
        "resolve": "^1.0.0"
      }
    },
    "node_modules/glslify/node_modules/through2": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
      "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
      "dependencies": {
        "readable-stream": "~2.3.6",
        "xtend": "~4.0.1"
      }
    },
    "node_modules/graceful-fs": {
      "version": "4.2.8",
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
      "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
    },
    "node_modules/has": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
      "dependencies": {
        "function-bind": "^1.1.1"
      },
      "engines": {
        "node": ">= 0.4.0"
      }
    },
    "node_modules/has-passive-events": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz",
      "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==",
      "dependencies": {
        "is-browser": "^2.0.1"
      }
    },
    "node_modules/incremental-convex-hull": {
      "version": "1.1.0",
      "resolved": "git+ssh://git@github.com/plotly/incremental-convex-hull.git#352d9e73861913695fd4e1a4c6ad79898c0c8268",
      "license": "MIT",
      "dependencies": {
        "robust-orientation": "^1.1.2",
        "simplicial-complex": "^1.0.0"
      }
    },
    "node_modules/inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
    },
    "node_modules/interval-tree-1d": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/interval-tree-1d/-/interval-tree-1d-1.0.4.tgz",
      "integrity": "sha512-wY8QJH+6wNI0uh4pDQzMvl+478Qh7Rl4qLmqiluxALlNvl+I+o5x38Pw3/z7mDPTPS1dQalZJXsmbvxx5gclhQ==",
      "dependencies": {
        "binary-search-bounds": "^2.0.0"
      }
    },
    "node_modules/iota-array": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz",
      "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc="
    },
    "node_modules/is-browser": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz",
      "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ=="
    },
    "node_modules/is-buffer": {
      "version": "1.1.6",
      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
    },
    "node_modules/is-core-module": {
      "version": "2.8.0",
      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
      "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
      "dependencies": {
        "has": "^1.0.3"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/is-mobile": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz",
      "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew=="
    },
    "node_modules/is-obj": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
      "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/is-string-blank": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz",
      "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw=="
    },
    "node_modules/isarray": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
      "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
    },
    "node_modules/lerp": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/lerp/-/lerp-1.0.3.tgz",
      "integrity": "sha1-oYyJaPkXiW3hXM/MKNVaa3Med24="
    },
    "node_modules/levn": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
      "dependencies": {
        "prelude-ls": "~1.1.2",
        "type-check": "~0.3.2"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/map-limit": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz",
      "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=",
      "dependencies": {
        "once": "~1.3.0"
      }
    },
    "node_modules/map-limit/node_modules/once": {
      "version": "1.3.3",
      "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
      "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
      "dependencies": {
        "wrappy": "1"
      }
    },
    "node_modules/mat4-decompose": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/mat4-decompose/-/mat4-decompose-1.0.4.tgz",
      "integrity": "sha1-ZetP451wh496RE60Yk1S9+frL68=",
      "dependencies": {
        "gl-mat4": "^1.0.1",
        "gl-vec3": "^1.0.2"
      }
    },
    "node_modules/mat4-interpolate": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/mat4-interpolate/-/mat4-interpolate-1.0.4.tgz",
      "integrity": "sha1-Vf/p6zw1KV4sDVqfdyXZBoqJ/3Q=",
      "dependencies": {
        "gl-mat4": "^1.0.1",
        "gl-vec3": "^1.0.2",
        "mat4-decompose": "^1.0.3",
        "mat4-recompose": "^1.0.3",
        "quat-slerp": "^1.0.0"
      }
    },
    "node_modules/mat4-recompose": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/mat4-recompose/-/mat4-recompose-1.0.4.tgz",
      "integrity": "sha1-OVPCMP8kc9x3LuAUpSySXPgbDk0=",
      "dependencies": {
        "gl-mat4": "^1.0.1"
      }
    },
    "node_modules/math-log2": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz",
      "integrity": "sha1-+4lBvl9evol55xjmJzsXjlhpRWU=",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/matrix-camera-controller": {
      "version": "2.1.4",
      "resolved": "https://registry.npmjs.org/matrix-camera-controller/-/matrix-camera-controller-2.1.4.tgz",
      "integrity": "sha512-zsPGPONclrKSImNpqqKDTcqFpWLAIwMXEJtCde4IFPOw1dA9udzFg4HOFytOTosOFanchrx7+Hqq6glLATIxBA==",
      "dependencies": {
        "binary-search-bounds": "^2.0.0",
        "gl-mat4": "^1.1.2",
        "gl-vec3": "^1.0.3",
        "mat4-interpolate": "^1.0.3"
      }
    },
    "node_modules/minimist": {
      "version": "1.2.6",
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
      "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
    },
    "node_modules/monotone-convex-hull-2d": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz",
      "integrity": "sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw=",
      "dependencies": {
        "robust-orientation": "^1.1.3"
      }
    },
    "node_modules/mouse-change": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz",
      "integrity": "sha1-wrd+W/o0pDzhRFyBV6Tk3JiVwU8=",
      "dependencies": {
        "mouse-event": "^1.0.0"
      }
    },
    "node_modules/mouse-event": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz",
      "integrity": "sha1-s3ie23EJmX1aky0dAdqhVDpQFzI="
    },
    "node_modules/mouse-event-offset": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz",
      "integrity": "sha1-39hqbiSMa6jK1TuQXVA3ogY+mYQ="
    },
    "node_modules/mouse-wheel": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz",
      "integrity": "sha1-bSkDseqPtI5h8bU7kDZ3PwQs21w=",
      "dependencies": {
        "right-now": "^1.0.0",
        "signum": "^1.0.0",
        "to-px": "^1.0.1"
      }
    },
    "node_modules/murmurhash-js": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
      "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E="
    },
    "node_modules/ndarray": {
      "version": "1.1.0",
      "resolved": "git+ssh://git@github.com/plotly/ndarray.git#70ec67233be65de444307a6916aba2655e28bd84",
      "license": "MIT",
      "dependencies": {
        "is-buffer": "^1.0.2"
      }
    },
    "node_modules/ndarray-extract-contour": {
      "version": "1.1.0",
      "resolved": "git+ssh://git@github.com/plotly/ndarray-extract-contour.git#0d8ed3a2fee873f08868c35894d608794e8e9d83",
      "license": "MIT",
      "dependencies": {
        "typedarray-pool": "^1.0.0"
      }
    },
    "node_modules/ndarray-gradient": {
      "version": "1.1.0",
      "resolved": "git+ssh://git@github.com/plotly/ndarray-gradient.git#c43b0856d77084cfac7c9d96c6ddc73aeddc0bd8",
      "license": "MIT",
      "dependencies": {
        "dup": "^1.0.0"
      }
    },
    "node_modules/ndarray-linear-interpolate": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/ndarray-linear-interpolate/-/ndarray-linear-interpolate-1.0.0.tgz",
      "integrity": "sha1-eLySuFuavBW25n7mWCj54hN65ys="
    },
    "node_modules/ndarray-ops": {
      "version": "1.3.0",
      "resolved": "git+ssh://git@github.com/plotly/ndarray-ops.git#afac881492696196c9966f77507558737f60c716",
      "license": "MIT"
    },
    "node_modules/ndarray-pack": {
      "version": "1.3.0",
      "resolved": "git+ssh://git@github.com/plotly/ndarray-pack.git#b0cd1f835c2b623f860a3dbb0c5709c98b30aea0",
      "license": "MIT",
      "dependencies": {
        "ndarray": "^1.0.13"
      }
    },
    "node_modules/ndarray-scratch": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/ndarray-scratch/-/ndarray-scratch-1.2.0.tgz",
      "integrity": "sha1-YwRjbWLrqT20cnrBPGkzQdulDgE=",
      "dependencies": {
        "ndarray": "^1.0.14",
        "ndarray-ops": "^1.2.1",
        "typedarray-pool": "^1.0.2"
      }
    },
    "node_modules/ndarray-sort": {
      "version": "1.1.0",
      "resolved": "git+ssh://git@github.com/plotly/ndarray-sort.git#8b3c03c0c58906640a0551505601544c9775a87a",
      "license": "MIT",
      "dependencies": {
        "typedarray-pool": "^1.0.0"
      }
    },
    "node_modules/nextafter": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/nextafter/-/nextafter-1.0.0.tgz",
      "integrity": "sha1-t9d7U1MQ4+CX5gJauwqQNHfsGjo=",
      "dependencies": {
        "double-bits": "^1.1.0"
      }
    },
    "node_modules/normals": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/normals/-/normals-1.1.0.tgz",
      "integrity": "sha1-MltZXtNK/kZ6bFWhT9kIV4f/WcA="
    },
    "node_modules/numeric": {
      "version": "1.2.6",
      "resolved": "https://registry.npmjs.org/numeric/-/numeric-1.2.6.tgz",
      "integrity": "sha1-dlsCvvl5iPz4gNTrPza4D6MTNao="
    },
    "node_modules/object-keys": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
      "engines": {
        "node": ">= 0.4"
      }
    },
    "node_modules/once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
      "dependencies": {
        "wrappy": "1"
      }
    },
    "node_modules/optionator": {
      "version": "0.8.3",
      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
      "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
      "dependencies": {
        "deep-is": "~0.1.3",
        "fast-levenshtein": "~2.0.6",
        "levn": "~0.3.0",
        "prelude-ls": "~1.1.2",
        "type-check": "~0.3.2",
        "word-wrap": "~1.2.3"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/orbit-camera-controller": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/orbit-camera-controller/-/orbit-camera-controller-4.0.0.tgz",
      "integrity": "sha1-bis28OeHhmPDMPUNqbfOaGwncAU=",
      "dependencies": {
        "filtered-vector": "^1.2.1",
        "gl-mat4": "^1.0.3"
      }
    },
    "node_modules/pad-left": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-1.0.2.tgz",
      "integrity": "sha1-GeVzXqmDlaJs7carkm6tEPMQDUw=",
      "dependencies": {
        "repeat-string": "^1.3.0"
      },
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/parse-rect": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz",
      "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==",
      "dependencies": {
        "pick-by-alias": "^1.2.0"
      }
    },
    "node_modules/parse-unit": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz",
      "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8="
    },
    "node_modules/path-parse": {
      "version": "1.0.7",
      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
    },
    "node_modules/pick-by-alias": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz",
      "integrity": "sha1-X3yysfIabh6ISgyHhVqko3NhEHs="
    },
    "node_modules/planar-dual": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/planar-dual/-/planar-dual-1.0.2.tgz",
      "integrity": "sha1-tqQjVSOxsMt55fkm+OozXdmC1WM=",
      "dependencies": {
        "compare-angle": "^1.0.0",
        "dup": "^1.0.0"
      }
    },
    "node_modules/planar-graph-to-polyline": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/planar-graph-to-polyline/-/planar-graph-to-polyline-1.0.6.tgz",
      "integrity": "sha512-h8a9kdAjo7mRhC0X6HZ42xzFp7vKDZA+Hygyhsq/08Qi4vVAQYJaLLYLvKUUzRbVKvdYqq0reXHyV0EygyEBHA==",
      "dependencies": {
        "edges-to-adjacency-list": "^1.0.0",
        "planar-dual": "^1.0.0",
        "point-in-big-polygon": "^2.0.1",
        "robust-orientation": "^1.0.1",
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.0",
        "uniq": "^1.0.0"
      }
    },
    "node_modules/point-in-big-polygon": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/point-in-big-polygon/-/point-in-big-polygon-2.0.1.tgz",
      "integrity": "sha512-DtrN8pa2VfMlvmWlCcypTFeBE4+OYz1ojDNJLKCWa4doiVAD6PRBbxFYAT71tsp5oKaRXT5sxEiHCAQKb1zr2Q==",
      "dependencies": {
        "binary-search-bounds": "^2.0.0",
        "interval-tree-1d": "^1.0.1",
        "robust-orientation": "^1.1.3",
        "slab-decomposition": "^1.0.1"
      }
    },
    "node_modules/polytope-closest-point": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/polytope-closest-point/-/polytope-closest-point-1.0.0.tgz",
      "integrity": "sha1-5uV/QIGrXox3i4Ee8G4sSK4zjD8=",
      "dependencies": {
        "numeric": "^1.2.6"
      }
    },
    "node_modules/prelude-ls": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/process-nextick-args": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
    },
    "node_modules/quat-slerp": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/quat-slerp/-/quat-slerp-1.0.1.tgz",
      "integrity": "sha1-K6oVzjprvcMkHZcusXKDE57Wnyk=",
      "dependencies": {
        "gl-quat": "^1.0.0"
      }
    },
    "node_modules/rat-vec": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/rat-vec/-/rat-vec-1.1.1.tgz",
      "integrity": "sha1-Dd4rZrezS7G80qI4BerIBth/0X8=",
      "dependencies": {
        "big-rat": "^1.0.3"
      }
    },
    "node_modules/readable-stream": {
      "version": "2.3.7",
      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
      "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
      "dependencies": {
        "core-util-is": "~1.0.0",
        "inherits": "~2.0.3",
        "isarray": "~1.0.0",
        "process-nextick-args": "~2.0.0",
        "safe-buffer": "~5.1.1",
        "string_decoder": "~1.1.1",
        "util-deprecate": "~1.0.1"
      }
    },
    "node_modules/readable-stream/node_modules/isarray": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
    },
    "node_modules/readable-stream/node_modules/safe-buffer": {
      "version": "5.1.2",
      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
    },
    "node_modules/reduce-simplicial-complex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/reduce-simplicial-complex/-/reduce-simplicial-complex-1.0.0.tgz",
      "integrity": "sha1-dNaWovg196bc2SBl/YxRgfLt+Lw=",
      "dependencies": {
        "cell-orientation": "^1.0.1",
        "compare-cell": "^1.0.0",
        "compare-oriented-cell": "^1.0.1"
      }
    },
    "node_modules/repeat-string": {
      "version": "1.6.1",
      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
      "engines": {
        "node": ">=0.10"
      }
    },
    "node_modules/resolve": {
      "version": "1.20.0",
      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
      "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
      "dependencies": {
        "is-core-module": "^2.2.0",
        "path-parse": "^1.0.6"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/right-now": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
      "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
    },
    "node_modules/robust-compress": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-compress/-/robust-compress-1.0.0.tgz",
      "integrity": "sha1-TPYsSzGNgwhRYBK7jBF1Lzkymxs="
    },
    "node_modules/robust-determinant": {
      "version": "1.2.2",
      "resolved": "git+ssh://git@github.com/plotly/robust-determinant.git#0414d049016d32d18f7dae934cb7d5968e00504a",
      "license": "MIT",
      "dependencies": {
        "robust-compress": "^1.0.0",
        "robust-scale": "^1.0.0",
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.0"
      }
    },
    "node_modules/robust-dot-product": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-dot-product/-/robust-dot-product-1.0.0.tgz",
      "integrity": "sha1-yboBeL0sMEv9cl9Y6Inx2UYARVM=",
      "dependencies": {
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.0"
      }
    },
    "node_modules/robust-in-sphere": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/robust-in-sphere/-/robust-in-sphere-1.2.1.tgz",
      "integrity": "sha512-3zJdcMIOP1gdwux93MKTS0RiMYEGwQBoE5R1IW/9ZQmGeZzP7f7i4+xdcK8ujJvF/dEOS1WPuI9IB1WNFbj3Cg==",
      "dependencies": {
        "robust-scale": "^1.0.0",
        "robust-subtract": "^1.0.0",
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.0"
      }
    },
    "node_modules/robust-linear-solve": {
      "version": "1.1.2",
      "resolved": "git+ssh://git@github.com/plotly/robust-linear-solve.git#c9deb96692f9b9c1479bc92a40e0cc985480ecef",
      "license": "MIT",
      "dependencies": {
        "robust-determinant": "^1.1.0"
      }
    },
    "node_modules/robust-orientation": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.2.1.tgz",
      "integrity": "sha512-FuTptgKwY6iNuU15nrIJDLjXzCChWB+T4AvksRtwPS/WZ3HuP1CElCm1t+OBfgQKfWbtZIawip+61k7+buRKAg==",
      "dependencies": {
        "robust-scale": "^1.0.2",
        "robust-subtract": "^1.0.0",
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.2"
      }
    },
    "node_modules/robust-product": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-product/-/robust-product-1.0.0.tgz",
      "integrity": "sha1-aFJQAHzbunzx3nW/9tKScBEJir4=",
      "dependencies": {
        "robust-scale": "^1.0.0",
        "robust-sum": "^1.0.0"
      }
    },
    "node_modules/robust-scale": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz",
      "integrity": "sha1-d1Ey7QlULQKOWLLMecBikLz3jDI=",
      "dependencies": {
        "two-product": "^1.0.2",
        "two-sum": "^1.0.0"
      }
    },
    "node_modules/robust-segment-intersect": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/robust-segment-intersect/-/robust-segment-intersect-1.0.1.tgz",
      "integrity": "sha1-MlK2oPwboUreaRXMvgnLzpqrHBw=",
      "dependencies": {
        "robust-orientation": "^1.1.3"
      }
    },
    "node_modules/robust-subtract": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz",
      "integrity": "sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo="
    },
    "node_modules/robust-sum": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz",
      "integrity": "sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k="
    },
    "node_modules/safe-buffer": {
      "version": "5.2.1",
      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
      "funding": [
        {
          "type": "github",
          "url": "https://github.com/sponsors/feross"
        },
        {
          "type": "patreon",
          "url": "https://www.patreon.com/feross"
        },
        {
          "type": "consulting",
          "url": "https://feross.org/support"
        }
      ]
    },
    "node_modules/shallow-copy": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
      "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA="
    },
    "node_modules/signum": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz",
      "integrity": "sha1-dKfSvyogtA66FqkrFSEk8dVZ+nc="
    },
    "node_modules/simplicial-complex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-1.0.0.tgz",
      "integrity": "sha1-bDOk7Wn81Nkbe8rdOzC2NoPq4kE=",
      "dependencies": {
        "bit-twiddle": "^1.0.0",
        "union-find": "^1.0.0"
      }
    },
    "node_modules/simplicial-complex-boundary": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/simplicial-complex-boundary/-/simplicial-complex-boundary-1.0.1.tgz",
      "integrity": "sha1-csn/HiTeqjdMm7L6DL8MCB6++BU=",
      "dependencies": {
        "boundary-cells": "^2.0.0",
        "reduce-simplicial-complex": "^1.0.0"
      }
    },
    "node_modules/simplicial-complex-contour": {
      "version": "1.1.0",
      "resolved": "git+ssh://git@github.com/plotly/simplicial-complex-contour.git#3c09d0c163385b874fedc0a366b29b6e713bfd99",
      "license": "MIT",
      "dependencies": {
        "ndarray": "^1.0.15",
        "ndarray-sort": "^1.0.0"
      }
    },
    "node_modules/simplify-planar-graph": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/simplify-planar-graph/-/simplify-planar-graph-2.0.1.tgz",
      "integrity": "sha1-vIWJNyXzLo+oriVoE5hEbSy892Y=",
      "dependencies": {
        "robust-orientation": "^1.0.1",
        "simplicial-complex": "^0.3.3"
      }
    },
    "node_modules/simplify-planar-graph/node_modules/bit-twiddle": {
      "version": "0.0.2",
      "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-0.0.2.tgz",
      "integrity": "sha1-wurruVKjuUrMFASX4c3NLxoz9Y4="
    },
    "node_modules/simplify-planar-graph/node_modules/simplicial-complex": {
      "version": "0.3.3",
      "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-0.3.3.tgz",
      "integrity": "sha1-TDDK1X+eRXKd2PMGyHU1efRr6Z4=",
      "dependencies": {
        "bit-twiddle": "~0.0.1",
        "union-find": "~0.0.3"
      }
    },
    "node_modules/simplify-planar-graph/node_modules/union-find": {
      "version": "0.0.4",
      "resolved": "https://registry.npmjs.org/union-find/-/union-find-0.0.4.tgz",
      "integrity": "sha1-uFSzMBYZva0USwAUx4+W6sDS8PY="
    },
    "node_modules/slab-decomposition": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/slab-decomposition/-/slab-decomposition-1.0.3.tgz",
      "integrity": "sha512-1EfR304JHvX9vYQkUi4AKqN62mLsjk6W45xTk/TxwN8zd3HGwS7PVj9zj0I6fgCZqfGlimDEY+RzzASHn97ZmQ==",
      "dependencies": {
        "binary-search-bounds": "^2.0.0",
        "functional-red-black-tree": "^1.0.0",
        "robust-orientation": "^1.1.3"
      }
    },
    "node_modules/source-map": {
      "version": "0.6.1",
      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
      "optional": true,
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/split-polygon": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz",
      "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=",
      "dependencies": {
        "robust-dot-product": "^1.0.0",
        "robust-sum": "^1.0.0"
      }
    },
    "node_modules/sprintf-js": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
      "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
    },
    "node_modules/stack-trace": {
      "version": "0.0.9",
      "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz",
      "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=",
      "engines": {
        "node": "*"
      }
    },
    "node_modules/static-eval": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz",
      "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==",
      "dependencies": {
        "escodegen": "^1.11.1"
      }
    },
    "node_modules/stream-shift": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
      "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
    },
    "node_modules/string_decoder": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
      "dependencies": {
        "safe-buffer": "~5.1.0"
      }
    },
    "node_modules/string_decoder/node_modules/safe-buffer": {
      "version": "5.1.2",
      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
    },
    "node_modules/surface-nets": {
      "version": "1.1.1",
      "resolved": "git+ssh://git@github.com/plotly/surface-nets.git#d80900ed4c39a1b07f9d8577180960945236d996",
      "license": "MIT",
      "dependencies": {
        "ndarray-extract-contour": "^1.0.0",
        "zero-crossings": "^1.0.0"
      }
    },
    "node_modules/text-cache": {
      "version": "4.2.2",
      "resolved": "https://registry.npmjs.org/text-cache/-/text-cache-4.2.2.tgz",
      "integrity": "sha512-zky+UDYiX0a/aPw/YTBD+EzKMlCTu1chFuCMZeAkgoRiceySdROu1V2kJXhCbtEdBhiOviYnAdGiSYl58HW0ZQ==",
      "dependencies": {
        "vectorize-text": "^3.2.1"
      }
    },
    "node_modules/through2": {
      "version": "0.6.5",
      "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
      "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
      "dependencies": {
        "readable-stream": ">=1.0.33-1 <1.1.0-0",
        "xtend": ">=4.0.0 <4.1.0-0"
      }
    },
    "node_modules/through2/node_modules/isarray": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
    },
    "node_modules/through2/node_modules/readable-stream": {
      "version": "1.0.34",
      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
      "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
      "dependencies": {
        "core-util-is": "~1.0.0",
        "inherits": "~2.0.1",
        "isarray": "0.0.1",
        "string_decoder": "~0.10.x"
      }
    },
    "node_modules/through2/node_modules/string_decoder": {
      "version": "0.10.31",
      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
    },
    "node_modules/to-px": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz",
      "integrity": "sha1-W7rtXl1PdkRbzJA8KTojB90yRkY=",
      "dependencies": {
        "parse-unit": "^1.0.1"
      }
    },
    "node_modules/triangulate-polyline": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/triangulate-polyline/-/triangulate-polyline-1.0.3.tgz",
      "integrity": "sha1-v4uod6hQVBA/65+lphtOjXAXgU0=",
      "dependencies": {
        "cdt2d": "^1.0.0"
      }
    },
    "node_modules/turntable-camera-controller": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/turntable-camera-controller/-/turntable-camera-controller-3.0.1.tgz",
      "integrity": "sha1-jb0/4AVQGRxlFky4iJcQSVeK/Zk=",
      "dependencies": {
        "filtered-vector": "^1.2.1",
        "gl-mat4": "^1.0.2",
        "gl-vec3": "^1.0.2"
      }
    },
    "node_modules/two-product": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz",
      "integrity": "sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo="
    },
    "node_modules/two-sum": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz",
      "integrity": "sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q="
    },
    "node_modules/type-check": {
      "version": "0.3.2",
      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
      "dependencies": {
        "prelude-ls": "~1.1.2"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/typedarray": {
      "version": "0.0.6",
      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
    },
    "node_modules/typedarray-pool": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz",
      "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==",
      "dependencies": {
        "bit-twiddle": "^1.0.0",
        "dup": "^1.0.0"
      }
    },
    "node_modules/union-find": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/union-find/-/union-find-1.0.2.tgz",
      "integrity": "sha1-KSusQV5q06iVNdI3AQ20pTYoTlg="
    },
    "node_modules/uniq": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8="
    },
    "node_modules/util-deprecate": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
    },
    "node_modules/vectorize-text": {
      "version": "3.2.2",
      "resolved": "https://registry.npmjs.org/vectorize-text/-/vectorize-text-3.2.2.tgz",
      "integrity": "sha512-34NVOCpMMQVXujU4vb/c6u98h6djI0jGdtC202H4Huvzn48B6ARsR7cmGh1xsAc0pHNQiUKGK/aHF05VtGv+eA==",
      "dependencies": {
        "cdt2d": "^1.0.0",
        "clean-pslg": "^1.1.0",
        "ndarray": "^1.0.11",
        "planar-graph-to-polyline": "^1.0.6",
        "simplify-planar-graph": "^2.0.1",
        "surface-nets": "^1.0.0",
        "triangulate-polyline": "^1.0.0"
      }
    },
    "node_modules/weak-map": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz",
      "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes="
    },
    "node_modules/weakmap-shim": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/weakmap-shim/-/weakmap-shim-1.1.1.tgz",
      "integrity": "sha1-1lr9eEEJshZuAP9XHDMVDsKkC0k="
    },
    "node_modules/word-wrap": {
      "version": "1.2.3",
      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
    },
    "node_modules/xtend": {
      "version": "4.0.2",
      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
      "engines": {
        "node": ">=0.4"
      }
    },
    "node_modules/zero-crossings": {
      "version": "1.1.0",
      "resolved": "git+ssh://git@github.com/plotly/zero-crossings.git#4746771f490344e21c84d1f631cb661d8c5ff508",
      "license": "MIT"
    }
  },
  "dependencies": {
    "@choojs/findup": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz",
      "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==",
      "requires": {
        "commander": "^2.15.1"
      }
    },
    "@plotly/point-cluster": {
      "version": "3.1.9",
      "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz",
      "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==",
      "requires": {
        "array-bounds": "^1.0.1",
        "binary-search-bounds": "^2.0.4",
        "clamp": "^1.0.1",
        "defined": "^1.0.0",
        "dtype": "^2.0.0",
        "flatten-vertex-data": "^1.0.2",
        "is-obj": "^1.0.1",
        "math-log2": "^1.0.1",
        "parse-rect": "^1.2.0",
        "pick-by-alias": "^1.2.0"
      }
    },
    "3d-view": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.1.tgz",
      "integrity": "sha512-YSLRHXNpSziaaiK2R0pI5+JKguoJVbtWmIv9YyBFtl0+q42kQwJB/JUulbFR/1zYFm58ifjKQ6kVdgZ6tyKtCA==",
      "requires": {
        "matrix-camera-controller": "^2.1.1",
        "orbit-camera-controller": "^4.0.0",
        "turntable-camera-controller": "^3.0.0"
      }
    },
    "a-big-triangle": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/a-big-triangle/-/a-big-triangle-1.0.3.tgz",
      "integrity": "sha1-7v0wsCqPUl6LH3K7a7GwwWdRx5Q=",
      "requires": {
        "gl-buffer": "^2.1.1",
        "gl-vao": "^1.2.0",
        "weak-map": "^1.0.5"
      }
    },
    "acorn": {
      "version": "7.4.1",
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
    },
    "add-line-numbers": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/add-line-numbers/-/add-line-numbers-1.0.1.tgz",
      "integrity": "sha1-SNu96kfb0jTer+rGyTzqb3C0t+M=",
      "requires": {
        "pad-left": "^1.0.2"
      }
    },
    "affine-hull": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/affine-hull/-/affine-hull-1.0.0.tgz",
      "integrity": "sha1-dj/x040GPOt+Jy8X7k17vK+QXF0=",
      "requires": {
        "robust-orientation": "^1.1.3"
      }
    },
    "alpha-complex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/alpha-complex/-/alpha-complex-1.0.0.tgz",
      "integrity": "sha1-kIZYcNawVCrnPAwTHU75iWabctI=",
      "requires": {
        "circumradius": "^1.0.0",
        "delaunay-triangulate": "^1.1.6"
      }
    },
    "alpha-shape": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/alpha-shape/-/alpha-shape-1.0.0.tgz",
      "integrity": "sha1-yDEJkj7P2mZ9IWP+Tyb+JHJvZKk=",
      "requires": {
        "alpha-complex": "^1.0.0",
        "simplicial-complex-boundary": "^1.0.0"
      }
    },
    "array-bounds": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz",
      "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ=="
    },
    "atob-lite": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-1.0.0.tgz",
      "integrity": "sha1-uI3KYAaSK5YglPdVaCa6sxxKKWs="
    },
    "barycentric": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/barycentric/-/barycentric-1.0.1.tgz",
      "integrity": "sha1-8VYruJGyb0/sRjqC7to2V4AOxog=",
      "requires": {
        "robust-linear-solve": "^1.0.0"
      }
    },
    "big-rat": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/big-rat/-/big-rat-1.0.4.tgz",
      "integrity": "sha1-do0JO7V5MN0Y7Vdcf8on3FORreo=",
      "requires": {
        "bit-twiddle": "^1.0.2",
        "bn.js": "^4.11.6",
        "double-bits": "^1.1.1"
      }
    },
    "binary-search-bounds": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz",
      "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA=="
    },
    "bit-twiddle": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz",
      "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4="
    },
    "bl": {
      "version": "2.2.1",
      "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
      "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
      "requires": {
        "readable-stream": "^2.3.5",
        "safe-buffer": "^5.1.1"
      }
    },
    "bn.js": {
      "version": "4.12.0",
      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
      "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
    },
    "boundary-cells": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/boundary-cells/-/boundary-cells-2.0.2.tgz",
      "integrity": "sha512-/S48oUFYEgZMNvdqC87iYRbLBAPHYijPRNrNpm/sS8u7ijIViKm/hrV3YD4sx/W68AsG5zLMyBEditVHApHU5w=="
    },
    "box-intersect": {
      "version": "git+ssh://git@github.com/plotly/box-intersect.git#1c21ef897c37eb69e5c1efeca7087726dd8d6a23",
      "from": "box-intersect@plotly/box-intersect#v1.1.0",
      "requires": {
        "bit-twiddle": "^1.0.2",
        "typedarray-pool": "^1.1.0"
      }
    },
    "buffer-from": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
    },
    "cdt2d": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/cdt2d/-/cdt2d-1.0.0.tgz",
      "integrity": "sha1-TyEkNLzWe9s9aLj+9KzcLFRBUUE=",
      "requires": {
        "binary-search-bounds": "^2.0.3",
        "robust-in-sphere": "^1.1.3",
        "robust-orientation": "^1.1.3"
      }
    },
    "cell-orientation": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/cell-orientation/-/cell-orientation-1.0.1.tgz",
      "integrity": "sha1-tQStlqZq0obZ7dmFoiU9A7gNKFA="
    },
    "chttps": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/chttps/-/chttps-1.0.6.tgz",
      "integrity": "sha512-53/mkdPvQzlHAb/2sYNj4PXGdIeXygdx2VA8RjHtKwBXjuqHlmC0S81bD43d3kq+ie9noxe9CW2CU/JG1KWu7A==",
      "dev": true
    },
    "circumcenter": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/circumcenter/-/circumcenter-1.0.0.tgz",
      "integrity": "sha1-INeqE7F/usUvUtpPVMasi5Bu5Sk=",
      "requires": {
        "dup": "^1.0.0",
        "robust-linear-solve": "^1.0.0"
      }
    },
    "circumradius": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/circumradius/-/circumradius-1.0.0.tgz",
      "integrity": "sha1-cGxEfj5VzR7T0RvRM+N8JSzDBbU=",
      "requires": {
        "circumcenter": "^1.0.0"
      }
    },
    "clamp": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz",
      "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ="
    },
    "clean-pslg": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/clean-pslg/-/clean-pslg-1.1.2.tgz",
      "integrity": "sha1-vTXHRgt+irWp92Gl7VF5aqPIbBE=",
      "requires": {
        "big-rat": "^1.0.3",
        "box-intersect": "^1.0.1",
        "nextafter": "^1.0.0",
        "rat-vec": "^1.1.1",
        "robust-segment-intersect": "^1.0.1",
        "union-find": "^1.0.2",
        "uniq": "^1.0.1"
      }
    },
    "colormap": {
      "version": "2.3.2",
      "resolved": "https://registry.npmjs.org/colormap/-/colormap-2.3.2.tgz",
      "integrity": "sha512-jDOjaoEEmA9AgA11B/jCSAvYE95r3wRoAyTf3LEHGiUVlNHJaL1mRkf5AyLSpQBVGfTEPwGEqCIzL+kgr2WgNA==",
      "requires": {
        "lerp": "^1.0.3"
      }
    },
    "commander": {
      "version": "2.20.3",
      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
    },
    "compare-angle": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/compare-angle/-/compare-angle-1.0.1.tgz",
      "integrity": "sha1-pOtjQW6jx0f8a9bItjZotN5PoSk=",
      "requires": {
        "robust-orientation": "^1.0.2",
        "robust-product": "^1.0.0",
        "robust-sum": "^1.0.0",
        "signum": "^0.0.0",
        "two-sum": "^1.0.0"
      },
      "dependencies": {
        "signum": {
          "version": "0.0.0",
          "resolved": "https://registry.npmjs.org/signum/-/signum-0.0.0.tgz",
          "integrity": "sha1-q1UbEAM1EHCnBHg/GgnF52kfnPY="
        }
      }
    },
    "compare-cell": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/compare-cell/-/compare-cell-1.0.0.tgz",
      "integrity": "sha1-qetwj24OQa73qlZrEw8ZaNyeGqo="
    },
    "compare-oriented-cell": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/compare-oriented-cell/-/compare-oriented-cell-1.0.1.tgz",
      "integrity": "sha1-ahSf7vnfxPj8YjWOUd1C7/u9w54=",
      "requires": {
        "cell-orientation": "^1.0.1",
        "compare-cell": "^1.0.0"
      }
    },
    "concat-stream": {
      "version": "1.6.2",
      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
      "requires": {
        "buffer-from": "^1.0.0",
        "inherits": "^2.0.3",
        "readable-stream": "^2.2.2",
        "typedarray": "^0.0.6"
      }
    },
    "convex-hull": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/convex-hull/-/convex-hull-1.0.3.tgz",
      "integrity": "sha1-IKOqbOh/St6i/30XlxyfwcZ+H/8=",
      "requires": {
        "affine-hull": "^1.0.0",
        "incremental-convex-hull": "^1.0.1",
        "monotone-convex-hull-2d": "^1.0.1"
      }
    },
    "core-util-is": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
    },
    "cubic-hermite": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/cubic-hermite/-/cubic-hermite-1.0.0.tgz",
      "integrity": "sha1-hOOy8nKzFFToOTuZu2rtRRaMFOU="
    },
    "deep-is": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
    },
    "defined": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
    },
    "delaunay-triangulate": {
      "version": "1.1.6",
      "resolved": "https://registry.npmjs.org/delaunay-triangulate/-/delaunay-triangulate-1.1.6.tgz",
      "integrity": "sha1-W7yiGweBmNS8PHV5ajXLuYwllUw=",
      "requires": {
        "incremental-convex-hull": "^1.0.1",
        "uniq": "^1.0.1"
      }
    },
    "double-bits": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/double-bits/-/double-bits-1.1.1.tgz",
      "integrity": "sha1-WKu6RUlNpND6Nrc60RoobJGEscY="
    },
    "dtype": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz",
      "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ="
    },
    "dup": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz",
      "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk="
    },
    "duplexify": {
      "version": "3.7.1",
      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
      "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
      "requires": {
        "end-of-stream": "^1.0.0",
        "inherits": "^2.0.1",
        "readable-stream": "^2.0.0",
        "stream-shift": "^1.0.0"
      }
    },
    "edges-to-adjacency-list": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/edges-to-adjacency-list/-/edges-to-adjacency-list-1.0.0.tgz",
      "integrity": "sha1-wUbS4ISt37p0pRKTxuAZmkn3V/E=",
      "requires": {
        "uniq": "^1.0.0"
      }
    },
    "end-of-stream": {
      "version": "1.4.4",
      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
      "requires": {
        "once": "^1.4.0"
      }
    },
    "escodegen": {
      "version": "1.14.3",
      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
      "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
      "requires": {
        "esprima": "^4.0.1",
        "estraverse": "^4.2.0",
        "esutils": "^2.0.2",
        "optionator": "^0.8.1",
        "source-map": "~0.6.1"
      }
    },
    "esprima": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
    },
    "estraverse": {
      "version": "4.3.0",
      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
    },
    "esutils": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
    },
    "events": {
      "version": "3.3.0",
      "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
      "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
    },
    "extract-frustum-planes": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/extract-frustum-planes/-/extract-frustum-planes-1.0.0.tgz",
      "integrity": "sha1-l9VwP/BWTIw8aDjKxF+ee8UsnvU="
    },
    "falafel": {
      "version": "2.2.4",
      "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz",
      "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==",
      "requires": {
        "acorn": "^7.1.1",
        "foreach": "^2.0.5",
        "isarray": "^2.0.1",
        "object-keys": "^1.0.6"
      }
    },
    "fast-levenshtein": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
    },
    "filtered-vector": {
      "version": "1.2.5",
      "resolved": "https://registry.npmjs.org/filtered-vector/-/filtered-vector-1.2.5.tgz",
      "integrity": "sha512-5Vu6wdtQJ1O2nRmz39dIr9m3hEDq1skYby5k1cJQdNWK4dMgvYcUEiA/9j7NcKfNZ5LGxn8w2LSLiigyH7pTAw==",
      "requires": {
        "binary-search-bounds": "^2.0.0",
        "cubic-hermite": "^1.0.0"
      }
    },
    "flatten-vertex-data": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz",
      "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==",
      "requires": {
        "dtype": "^2.0.0"
      }
    },
    "foreach": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
      "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
    },
    "from2": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
      "requires": {
        "inherits": "^2.0.1",
        "readable-stream": "^2.0.0"
      }
    },
    "function-bind": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
    },
    "functional-red-black-tree": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
      "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
    },
    "gl-axes3d": {
      "version": "1.5.3",
      "resolved": "https://registry.npmjs.org/gl-axes3d/-/gl-axes3d-1.5.3.tgz",
      "integrity": "sha512-KRYbguKQcDQ6PcB9g1pgqB8Ly4TY1DQODpPKiDTasyWJ8PxQk0t2Q7XoQQijNqvsguITCpVVCzNb5GVtIWiVlQ==",
      "requires": {
        "bit-twiddle": "^1.0.2",
        "dup": "^1.0.0",
        "extract-frustum-planes": "^1.0.0",
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-state": "^1.0.0",
        "gl-vao": "^1.3.0",
        "gl-vec4": "^1.0.1",
        "glslify": "^7.0.0",
        "robust-orientation": "^1.1.3",
        "split-polygon": "^1.0.0",
        "vectorize-text": "^3.2.1"
      }
    },
    "gl-buffer": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/gl-buffer/-/gl-buffer-2.1.2.tgz",
      "integrity": "sha1-LbjZwaVSf7oM25EonCBuiCuInNs=",
      "requires": {
        "ndarray": "^1.0.15",
        "ndarray-ops": "^1.1.0",
        "typedarray-pool": "^1.0.0"
      }
    },
    "gl-cone3d": {
      "version": "1.5.2",
      "resolved": "https://registry.npmjs.org/gl-cone3d/-/gl-cone3d-1.5.2.tgz",
      "integrity": "sha512-1JNeHH4sUtUmDA4ZK7Om8/kShwb8IZVAsnxaaB7IPRJsNGciLj1sTpODrJGeMl41RNkex5kXD2SQFrzyEAR2Rw==",
      "requires": {
        "colormap": "^2.3.1",
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-texture2d": "^2.1.0",
        "gl-vao": "^1.3.0",
        "gl-vec3": "^1.1.3",
        "glsl-inverse": "^1.0.0",
        "glsl-out-of-range": "^1.0.4",
        "glsl-specular-cook-torrance": "^2.0.1",
        "glslify": "^7.0.0",
        "ndarray": "^1.0.18"
      }
    },
    "gl-constants": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gl-constants/-/gl-constants-1.0.0.tgz",
      "integrity": "sha1-WXpQTjZHUP9QJTqjX43qevSl0jM="
    },
    "gl-error3d": {
      "version": "1.0.16",
      "resolved": "https://registry.npmjs.org/gl-error3d/-/gl-error3d-1.0.16.tgz",
      "integrity": "sha512-TGJewnKSp7ZnqGgG3XCF9ldrDbxZrO+OWlx6oIet4OdOM//n8xJ5isArnIV/sdPJnFbhfoLxWrW9f5fxHFRQ1A==",
      "requires": {
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glslify": "^7.0.0"
      }
    },
    "gl-fbo": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/gl-fbo/-/gl-fbo-2.0.5.tgz",
      "integrity": "sha1-D6daSXz3h2lVMGkcjwSrtvtV+iI=",
      "requires": {
        "gl-texture2d": "^2.0.0"
      }
    },
    "gl-format-compiler-error": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/gl-format-compiler-error/-/gl-format-compiler-error-1.0.3.tgz",
      "integrity": "sha1-DHmxdRiZzpcy6GJA8JCqQemEcag=",
      "requires": {
        "add-line-numbers": "^1.0.1",
        "gl-constants": "^1.0.0",
        "glsl-shader-name": "^1.0.0",
        "sprintf-js": "^1.0.3"
      }
    },
    "gl-heatmap2d": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/gl-heatmap2d/-/gl-heatmap2d-1.1.1.tgz",
      "integrity": "sha512-6Vo1fPIB1vQFWBA/MR6JAA16XuQuhwvZRbSjYEq++m4QV33iqjGS2HcVIRfJGX+fomd5eiz6bwkVZcKm69zQPw==",
      "requires": {
        "binary-search-bounds": "^2.0.4",
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "glslify": "^7.0.0",
        "iota-array": "^1.0.0",
        "typedarray-pool": "^1.2.0"
      }
    },
    "gl-line3d": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/gl-line3d/-/gl-line3d-1.2.1.tgz",
      "integrity": "sha512-eeb0+RI2ZBRqMYJK85SgsRiJK7c4aiOjcnirxv0830A3jmOc99snY3AbPcV8KvKmW0Yaf3KA4e+qNCbHiTOTnA==",
      "requires": {
        "binary-search-bounds": "^2.0.4",
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "gl-texture2d": "^2.1.0",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glslify": "^7.0.0",
        "ndarray": "^1.0.18"
      }
    },
    "gl-mat3": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gl-mat3/-/gl-mat3-1.0.0.tgz",
      "integrity": "sha1-iWMyGcpCk3mha5GF2V1BcTRTuRI="
    },
    "gl-mat4": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz",
      "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA=="
    },
    "gl-mesh3d": {
      "version": "2.3.1",
      "resolved": "https://registry.npmjs.org/gl-mesh3d/-/gl-mesh3d-2.3.1.tgz",
      "integrity": "sha512-pXECamyGgu4/9HeAQSE5OEUuLBGS1aq9V4BCsTcxsND4fNLaajEkYKUz/WY2QSYElqKdsMBVsldGiKRKwlybqA==",
      "requires": {
        "barycentric": "^1.0.1",
        "colormap": "^2.3.1",
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-texture2d": "^2.1.0",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glsl-specular-cook-torrance": "^2.0.1",
        "glslify": "^7.0.0",
        "ndarray": "^1.0.18",
        "normals": "^1.1.0",
        "polytope-closest-point": "^1.0.0",
        "simplicial-complex-contour": "^1.0.2",
        "typedarray-pool": "^1.1.0"
      }
    },
    "gl-plot2d": {
      "version": "1.4.5",
      "resolved": "https://registry.npmjs.org/gl-plot2d/-/gl-plot2d-1.4.5.tgz",
      "integrity": "sha512-6GmCN10SWtV+qHFQ1gjdnVubeHFVsm6P4zmo0HrPIl9TcdePCUHDlBKWAuE6XtFhiMKMj7R8rApOX8O8uXUYog==",
      "requires": {
        "binary-search-bounds": "^2.0.4",
        "gl-buffer": "^2.1.2",
        "gl-select-static": "^2.0.7",
        "gl-shader": "^4.2.1",
        "glsl-inverse": "^1.0.0",
        "glslify": "^7.0.0",
        "text-cache": "^4.2.2"
      }
    },
    "gl-plot3d": {
      "version": "2.4.7",
      "resolved": "https://registry.npmjs.org/gl-plot3d/-/gl-plot3d-2.4.7.tgz",
      "integrity": "sha512-mLDVWrl4Dj0O0druWyHUK5l7cBQrRIJRn2oROEgrRuOgbbrLAzsREKefwMO0bA0YqkiZMFMnV5VvPA9j57X5Xg==",
      "requires": {
        "3d-view": "^2.0.0",
        "a-big-triangle": "^1.0.3",
        "gl-axes3d": "^1.5.3",
        "gl-fbo": "^2.0.5",
        "gl-mat4": "^1.2.0",
        "gl-select-static": "^2.0.7",
        "gl-shader": "^4.2.1",
        "gl-spikes3d": "^1.0.10",
        "glslify": "^7.0.0",
        "has-passive-events": "^1.0.0",
        "is-mobile": "^4.0.0",
        "mouse-change": "^1.4.0",
        "mouse-event-offset": "^3.0.2",
        "mouse-wheel": "^1.2.0",
        "ndarray": "^1.0.19",
        "right-now": "^1.0.0"
      }
    },
    "gl-pointcloud2d": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/gl-pointcloud2d/-/gl-pointcloud2d-1.0.3.tgz",
      "integrity": "sha512-OS2e1irvJXVRpg/GziXj10xrFJm9kkRfFoB6BLUvkjCQV7ZRNNcs2CD+YSK1r0gvMwTg2T3lfLM3UPwNtz+4Xw==",
      "requires": {
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "glslify": "^7.0.0",
        "typedarray-pool": "^1.1.0"
      }
    },
    "gl-quat": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gl-quat/-/gl-quat-1.0.0.tgz",
      "integrity": "sha1-CUXskjOG9FMpvl3DV7HIwtR1hsU=",
      "requires": {
        "gl-mat3": "^1.0.0",
        "gl-vec3": "^1.0.3",
        "gl-vec4": "^1.0.0"
      }
    },
    "gl-scatter3d": {
      "version": "1.2.3",
      "resolved": "https://registry.npmjs.org/gl-scatter3d/-/gl-scatter3d-1.2.3.tgz",
      "integrity": "sha512-nXqPlT1w5Qt51dTksj+DUqrZqwWAEWg0PocsKcoDnVNv0X8sGA+LBZ0Y+zrA+KNXUL0PPCX9WR9cF2uJAZl1Sw==",
      "requires": {
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glslify": "^7.0.0",
        "is-string-blank": "^1.0.1",
        "typedarray-pool": "^1.1.0",
        "vectorize-text": "^3.2.1"
      }
    },
    "gl-select-box": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/gl-select-box/-/gl-select-box-1.0.4.tgz",
      "integrity": "sha512-mKsCnglraSKyBbQiGq0Ila0WF+m6Tr+EWT2yfaMn/Sh9aMHq5Wt0F/l6Cf/Ed3CdERq5jHWAY5yxLviZteYu2w==",
      "requires": {
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "glslify": "^7.0.0"
      }
    },
    "gl-select-static": {
      "version": "2.0.7",
      "resolved": "https://registry.npmjs.org/gl-select-static/-/gl-select-static-2.0.7.tgz",
      "integrity": "sha512-OvpYprd+ngl3liEatBTdXhSyNBjwvjMSvV2rN0KHpTU+BTi4viEETXNZXFgGXY37qARs0L28ybk3UQEW6C5Nnw==",
      "requires": {
        "bit-twiddle": "^1.0.2",
        "gl-fbo": "^2.0.5",
        "ndarray": "^1.0.18",
        "typedarray-pool": "^1.1.0"
      }
    },
    "gl-shader": {
      "version": "4.3.1",
      "resolved": "https://registry.npmjs.org/gl-shader/-/gl-shader-4.3.1.tgz",
      "integrity": "sha512-xLoN6XtRLlg97SEqtuzfKc+pVWpVkQ3YjDI1kuCale8tF7+zMhiKlMfmG4IMQPMdKJZQbIc/Ny8ZusEpfh5U+w==",
      "requires": {
        "gl-format-compiler-error": "^1.0.2",
        "weakmap-shim": "^1.1.0"
      }
    },
    "gl-spikes2d": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/gl-spikes2d/-/gl-spikes2d-1.0.2.tgz",
      "integrity": "sha512-QVeOZsi9nQuJJl7NB3132CCv5KA10BWxAY2QgJNsKqbLsG53B/TrGJpjIAohnJftdZ4fT6b3ZojWgeaXk8bOOA=="
    },
    "gl-spikes3d": {
      "version": "1.0.10",
      "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.10.tgz",
      "integrity": "sha512-lT3xroowOFxMvlhT5Mof76B2TE02l5zt/NIWljhczV2FFHgIVhA4jMrd5dIv1so1RXMBDJIKu0uJI3QKliDVLg==",
      "requires": {
        "gl-buffer": "^2.1.2",
        "gl-shader": "^4.2.1",
        "gl-vao": "^1.3.0",
        "glslify": "^7.0.0"
      }
    },
    "gl-state": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gl-state/-/gl-state-1.0.0.tgz",
      "integrity": "sha1-Ji+qdYNbC5xTLBLzitxCXR0wzRc=",
      "requires": {
        "uniq": "^1.0.0"
      }
    },
    "gl-streamtube3d": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/gl-streamtube3d/-/gl-streamtube3d-1.4.1.tgz",
      "integrity": "sha512-rH02v00kgwgdpkXVo7KsSoPp38bIAYR9TE1iONjcQ4cQAlDhrGRauqT/P5sUaOIzs17A2DxWGcXM+EpNQs9pUA==",
      "requires": {
        "gl-cone3d": "^1.5.2",
        "gl-vec3": "^1.1.3",
        "gl-vec4": "^1.0.1",
        "glsl-inverse": "^1.0.0",
        "glsl-out-of-range": "^1.0.4",
        "glsl-specular-cook-torrance": "^2.0.1",
        "glslify": "^7.0.0"
      }
    },
    "gl-surface3d": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/gl-surface3d/-/gl-surface3d-1.6.0.tgz",
      "integrity": "sha512-x15+u4712ysnB85G55RLJEml6mOB4VaDn0VTlXCc9JcjRl5Es10Tk7lhGGyiPtkCfHwvhnkxzYA1/rHHYN7Y0A==",
      "requires": {
        "binary-search-bounds": "^2.0.4",
        "bit-twiddle": "^1.0.2",
        "colormap": "^2.3.1",
        "dup": "^1.0.0",
        "gl-buffer": "^2.1.2",
        "gl-mat4": "^1.2.0",
        "gl-shader": "^4.2.1",
        "gl-texture2d": "^2.1.0",
        "gl-vao": "^1.3.0",
        "glsl-out-of-range": "^1.0.4",
        "glsl-specular-beckmann": "^1.1.2",
        "glslify": "^7.0.0",
        "ndarray": "^1.0.18",
        "ndarray-gradient": "^1.0.0",
        "ndarray-ops": "^1.2.2",
        "ndarray-pack": "^1.2.1",
        "ndarray-scratch": "^1.2.0",
        "surface-nets": "^1.0.2",
        "typedarray-pool": "^1.1.0"
      }
    },
    "gl-texture2d": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/gl-texture2d/-/gl-texture2d-2.1.0.tgz",
      "integrity": "sha1-/2gk5+fDGoum/c2+nlxpXX4hh8c=",
      "requires": {
        "ndarray": "^1.0.15",
        "ndarray-ops": "^1.2.2",
        "typedarray-pool": "^1.1.0"
      }
    },
    "gl-vao": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/gl-vao/-/gl-vao-1.3.0.tgz",
      "integrity": "sha1-6ekqqVWIyrnVwvBLaTRAw99pGSM="
    },
    "gl-vec3": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/gl-vec3/-/gl-vec3-1.1.3.tgz",
      "integrity": "sha512-jduKUqT0SGH02l8Yl+mV1yVsDfYgQAJyXGxkJQGyxPLHRiW25DwVIRPt6uvhrEMHftJfqhqKthRcyZqNEl9Xdw=="
    },
    "gl-vec4": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/gl-vec4/-/gl-vec4-1.0.1.tgz",
      "integrity": "sha1-l9loeCgbFLUyy84QF4Xf0cs0CWQ="
    },
    "glsl-inject-defines": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz",
      "integrity": "sha1-3RqswsF/yyvT/DJBHGYz0Ne2D9Q=",
      "requires": {
        "glsl-token-inject-block": "^1.0.0",
        "glsl-token-string": "^1.0.1",
        "glsl-tokenizer": "^2.0.2"
      }
    },
    "glsl-inverse": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/glsl-inverse/-/glsl-inverse-1.0.0.tgz",
      "integrity": "sha1-EsCx0GX1WERNHm/q95td34qRiuY="
    },
    "glsl-out-of-range": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/glsl-out-of-range/-/glsl-out-of-range-1.0.4.tgz",
      "integrity": "sha512-fCcDu2LCQ39VBvfe1FbhuazXEf0CqMZI9OYXrYlL6uUARG48CTAbL04+tZBtVM0zo1Ljx4OLu2AxNquq++lxWQ=="
    },
    "glsl-resolve": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz",
      "integrity": "sha1-iUvvc5ENeSyBtRQxgANdCnivdtM=",
      "requires": {
        "resolve": "^0.6.1",
        "xtend": "^2.1.2"
      },
      "dependencies": {
        "resolve": {
          "version": "0.6.3",
          "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz",
          "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY="
        },
        "xtend": {
          "version": "2.2.0",
          "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz",
          "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak="
        }
      }
    },
    "glsl-shader-name": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/glsl-shader-name/-/glsl-shader-name-1.0.0.tgz",
      "integrity": "sha1-osMLO6c0mb77DMcYTXx3M91LSH0=",
      "requires": {
        "atob-lite": "^1.0.0",
        "glsl-tokenizer": "^2.0.2"
      }
    },
    "glsl-specular-beckmann": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/glsl-specular-beckmann/-/glsl-specular-beckmann-1.1.2.tgz",
      "integrity": "sha1-/OkFaTPs3yRWJ4N2pU0IKJPndfE="
    },
    "glsl-specular-cook-torrance": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/glsl-specular-cook-torrance/-/glsl-specular-cook-torrance-2.0.1.tgz",
      "integrity": "sha1-qJHMBsjHtPRyhwK0gk/ay7ln148=",
      "requires": {
        "glsl-specular-beckmann": "^1.1.1"
      }
    },
    "glsl-token-assignments": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz",
      "integrity": "sha1-pdgqt4SZwuimuDy2lJXm5mXOAZ8="
    },
    "glsl-token-defines": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz",
      "integrity": "sha1-y4kqqVmTYjFyhHDU90AySJaX+p0=",
      "requires": {
        "glsl-tokenizer": "^2.0.0"
      }
    },
    "glsl-token-depth": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz",
      "integrity": "sha1-I8XjDuK9JViEtKKLyFC495HpXYQ="
    },
    "glsl-token-descope": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz",
      "integrity": "sha1-D8kKsyYYa4L1l7LnfcniHvzTIHY=",
      "requires": {
        "glsl-token-assignments": "^2.0.0",
        "glsl-token-depth": "^1.1.0",
        "glsl-token-properties": "^1.0.0",
        "glsl-token-scope": "^1.1.0"
      }
    },
    "glsl-token-inject-block": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz",
      "integrity": "sha1-4QFfWYDBCRgkraomJfHf3ovQADQ="
    },
    "glsl-token-properties": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz",
      "integrity": "sha1-SD3D2Dnw1LXGFx0VkfJJvlPCip4="
    },
    "glsl-token-scope": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz",
      "integrity": "sha1-oXKOeN8kRE+cuT/RjvD3VQOmQ7E="
    },
    "glsl-token-string": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz",
      "integrity": "sha1-WUQdL4V958NEnJRWZgIezjWOSOw="
    },
    "glsl-token-whitespace-trim": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz",
      "integrity": "sha1-RtHf6Yx1vX1QTAXX0RsbPpzJOxA="
    },
    "glsl-tokenizer": {
      "version": "2.1.5",
      "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz",
      "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==",
      "requires": {
        "through2": "^0.6.3"
      }
    },
    "glslify": {
      "version": "7.1.1",
      "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz",
      "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==",
      "requires": {
        "bl": "^2.2.1",
        "concat-stream": "^1.5.2",
        "duplexify": "^3.4.5",
        "falafel": "^2.1.0",
        "from2": "^2.3.0",
        "glsl-resolve": "0.0.1",
        "glsl-token-whitespace-trim": "^1.0.0",
        "glslify-bundle": "^5.0.0",
        "glslify-deps": "^1.2.5",
        "minimist": "^1.2.5",
        "resolve": "^1.1.5",
        "stack-trace": "0.0.9",
        "static-eval": "^2.0.5",
        "through2": "^2.0.1",
        "xtend": "^4.0.0"
      },
      "dependencies": {
        "through2": {
          "version": "2.0.5",
          "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
          "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
          "requires": {
            "readable-stream": "~2.3.6",
            "xtend": "~4.0.1"
          }
        }
      }
    },
    "glslify-bundle": {
      "version": "5.1.1",
      "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz",
      "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==",
      "requires": {
        "glsl-inject-defines": "^1.0.1",
        "glsl-token-defines": "^1.0.0",
        "glsl-token-depth": "^1.1.1",
        "glsl-token-descope": "^1.0.2",
        "glsl-token-scope": "^1.1.1",
        "glsl-token-string": "^1.0.1",
        "glsl-token-whitespace-trim": "^1.0.0",
        "glsl-tokenizer": "^2.0.2",
        "murmurhash-js": "^1.0.0",
        "shallow-copy": "0.0.1"
      }
    },
    "glslify-deps": {
      "version": "1.3.2",
      "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz",
      "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==",
      "requires": {
        "@choojs/findup": "^0.2.0",
        "events": "^3.2.0",
        "glsl-resolve": "0.0.1",
        "glsl-tokenizer": "^2.0.0",
        "graceful-fs": "^4.1.2",
        "inherits": "^2.0.1",
        "map-limit": "0.0.1",
        "resolve": "^1.0.0"
      }
    },
    "graceful-fs": {
      "version": "4.2.8",
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
      "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
    },
    "has": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
      "requires": {
        "function-bind": "^1.1.1"
      }
    },
    "has-passive-events": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz",
      "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==",
      "requires": {
        "is-browser": "^2.0.1"
      }
    },
    "incremental-convex-hull": {
      "version": "git+ssh://git@github.com/plotly/incremental-convex-hull.git#352d9e73861913695fd4e1a4c6ad79898c0c8268",
      "from": "incremental-convex-hull@plotly/incremental-convex-hull#v1.1.0",
      "requires": {
        "robust-orientation": "^1.1.2",
        "simplicial-complex": "^1.0.0"
      }
    },
    "inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
    },
    "interval-tree-1d": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/interval-tree-1d/-/interval-tree-1d-1.0.4.tgz",
      "integrity": "sha512-wY8QJH+6wNI0uh4pDQzMvl+478Qh7Rl4qLmqiluxALlNvl+I+o5x38Pw3/z7mDPTPS1dQalZJXsmbvxx5gclhQ==",
      "requires": {
        "binary-search-bounds": "^2.0.0"
      }
    },
    "iota-array": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz",
      "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc="
    },
    "is-browser": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz",
      "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ=="
    },
    "is-buffer": {
      "version": "1.1.6",
      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
    },
    "is-core-module": {
      "version": "2.8.0",
      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
      "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
      "requires": {
        "has": "^1.0.3"
      }
    },
    "is-mobile": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz",
      "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew=="
    },
    "is-obj": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
      "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
    },
    "is-string-blank": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz",
      "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw=="
    },
    "isarray": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
      "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
    },
    "lerp": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/lerp/-/lerp-1.0.3.tgz",
      "integrity": "sha1-oYyJaPkXiW3hXM/MKNVaa3Med24="
    },
    "levn": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
      "requires": {
        "prelude-ls": "~1.1.2",
        "type-check": "~0.3.2"
      }
    },
    "map-limit": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz",
      "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=",
      "requires": {
        "once": "~1.3.0"
      },
      "dependencies": {
        "once": {
          "version": "1.3.3",
          "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
          "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
          "requires": {
            "wrappy": "1"
          }
        }
      }
    },
    "mat4-decompose": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/mat4-decompose/-/mat4-decompose-1.0.4.tgz",
      "integrity": "sha1-ZetP451wh496RE60Yk1S9+frL68=",
      "requires": {
        "gl-mat4": "^1.0.1",
        "gl-vec3": "^1.0.2"
      }
    },
    "mat4-interpolate": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/mat4-interpolate/-/mat4-interpolate-1.0.4.tgz",
      "integrity": "sha1-Vf/p6zw1KV4sDVqfdyXZBoqJ/3Q=",
      "requires": {
        "gl-mat4": "^1.0.1",
        "gl-vec3": "^1.0.2",
        "mat4-decompose": "^1.0.3",
        "mat4-recompose": "^1.0.3",
        "quat-slerp": "^1.0.0"
      }
    },
    "mat4-recompose": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/mat4-recompose/-/mat4-recompose-1.0.4.tgz",
      "integrity": "sha1-OVPCMP8kc9x3LuAUpSySXPgbDk0=",
      "requires": {
        "gl-mat4": "^1.0.1"
      }
    },
    "math-log2": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz",
      "integrity": "sha1-+4lBvl9evol55xjmJzsXjlhpRWU="
    },
    "matrix-camera-controller": {
      "version": "2.1.4",
      "resolved": "https://registry.npmjs.org/matrix-camera-controller/-/matrix-camera-controller-2.1.4.tgz",
      "integrity": "sha512-zsPGPONclrKSImNpqqKDTcqFpWLAIwMXEJtCde4IFPOw1dA9udzFg4HOFytOTosOFanchrx7+Hqq6glLATIxBA==",
      "requires": {
        "binary-search-bounds": "^2.0.0",
        "gl-mat4": "^1.1.2",
        "gl-vec3": "^1.0.3",
        "mat4-interpolate": "^1.0.3"
      }
    },
    "minimist": {
      "version": "1.2.6",
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
      "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
    },
    "monotone-convex-hull-2d": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz",
      "integrity": "sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw=",
      "requires": {
        "robust-orientation": "^1.1.3"
      }
    },
    "mouse-change": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz",
      "integrity": "sha1-wrd+W/o0pDzhRFyBV6Tk3JiVwU8=",
      "requires": {
        "mouse-event": "^1.0.0"
      }
    },
    "mouse-event": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz",
      "integrity": "sha1-s3ie23EJmX1aky0dAdqhVDpQFzI="
    },
    "mouse-event-offset": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz",
      "integrity": "sha1-39hqbiSMa6jK1TuQXVA3ogY+mYQ="
    },
    "mouse-wheel": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz",
      "integrity": "sha1-bSkDseqPtI5h8bU7kDZ3PwQs21w=",
      "requires": {
        "right-now": "^1.0.0",
        "signum": "^1.0.0",
        "to-px": "^1.0.1"
      }
    },
    "murmurhash-js": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
      "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E="
    },
    "ndarray": {
      "version": "git+ssh://git@github.com/plotly/ndarray.git#70ec67233be65de444307a6916aba2655e28bd84",
      "from": "ndarray@plotly/ndarray#v1.1.0",
      "requires": {
        "is-buffer": "^1.0.2"
      }
    },
    "ndarray-extract-contour": {
      "version": "git+ssh://git@github.com/plotly/ndarray-extract-contour.git#0d8ed3a2fee873f08868c35894d608794e8e9d83",
      "from": "ndarray-extract-contour@plotly/ndarray-extract-contour#v1.1.0",
      "requires": {
        "typedarray-pool": "^1.0.0"
      }
    },
    "ndarray-gradient": {
      "version": "git+ssh://git@github.com/plotly/ndarray-gradient.git#c43b0856d77084cfac7c9d96c6ddc73aeddc0bd8",
      "from": "ndarray-gradient@plotly/ndarray-gradient#v1.1.0",
      "requires": {
        "dup": "^1.0.0"
      }
    },
    "ndarray-linear-interpolate": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/ndarray-linear-interpolate/-/ndarray-linear-interpolate-1.0.0.tgz",
      "integrity": "sha1-eLySuFuavBW25n7mWCj54hN65ys="
    },
    "ndarray-ops": {
      "version": "git+ssh://git@github.com/plotly/ndarray-ops.git#afac881492696196c9966f77507558737f60c716",
      "from": "ndarray-ops@plotly/ndarray-ops#v1.3.0"
    },
    "ndarray-pack": {
      "version": "git+ssh://git@github.com/plotly/ndarray-pack.git#b0cd1f835c2b623f860a3dbb0c5709c98b30aea0",
      "from": "ndarray-pack@plotly/ndarray-pack#v1.3.0",
      "requires": {
        "ndarray": "^1.0.13"
      }
    },
    "ndarray-scratch": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/ndarray-scratch/-/ndarray-scratch-1.2.0.tgz",
      "integrity": "sha1-YwRjbWLrqT20cnrBPGkzQdulDgE=",
      "requires": {
        "ndarray": "^1.0.14",
        "ndarray-ops": "^1.2.1",
        "typedarray-pool": "^1.0.2"
      }
    },
    "ndarray-sort": {
      "version": "git+ssh://git@github.com/plotly/ndarray-sort.git#8b3c03c0c58906640a0551505601544c9775a87a",
      "from": "ndarray-sort@plotly/ndarray-sort#v1.1.0",
      "requires": {
        "typedarray-pool": "^1.0.0"
      }
    },
    "nextafter": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/nextafter/-/nextafter-1.0.0.tgz",
      "integrity": "sha1-t9d7U1MQ4+CX5gJauwqQNHfsGjo=",
      "requires": {
        "double-bits": "^1.1.0"
      }
    },
    "normals": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/normals/-/normals-1.1.0.tgz",
      "integrity": "sha1-MltZXtNK/kZ6bFWhT9kIV4f/WcA="
    },
    "numeric": {
      "version": "1.2.6",
      "resolved": "https://registry.npmjs.org/numeric/-/numeric-1.2.6.tgz",
      "integrity": "sha1-dlsCvvl5iPz4gNTrPza4D6MTNao="
    },
    "object-keys": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
    },
    "once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
      "requires": {
        "wrappy": "1"
      }
    },
    "optionator": {
      "version": "0.8.3",
      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
      "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
      "requires": {
        "deep-is": "~0.1.3",
        "fast-levenshtein": "~2.0.6",
        "levn": "~0.3.0",
        "prelude-ls": "~1.1.2",
        "type-check": "~0.3.2",
        "word-wrap": "~1.2.3"
      }
    },
    "orbit-camera-controller": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/orbit-camera-controller/-/orbit-camera-controller-4.0.0.tgz",
      "integrity": "sha1-bis28OeHhmPDMPUNqbfOaGwncAU=",
      "requires": {
        "filtered-vector": "^1.2.1",
        "gl-mat4": "^1.0.3"
      }
    },
    "pad-left": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-1.0.2.tgz",
      "integrity": "sha1-GeVzXqmDlaJs7carkm6tEPMQDUw=",
      "requires": {
        "repeat-string": "^1.3.0"
      }
    },
    "parse-rect": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz",
      "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==",
      "requires": {
        "pick-by-alias": "^1.2.0"
      }
    },
    "parse-unit": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz",
      "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8="
    },
    "path-parse": {
      "version": "1.0.7",
      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
    },
    "pick-by-alias": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz",
      "integrity": "sha1-X3yysfIabh6ISgyHhVqko3NhEHs="
    },
    "planar-dual": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/planar-dual/-/planar-dual-1.0.2.tgz",
      "integrity": "sha1-tqQjVSOxsMt55fkm+OozXdmC1WM=",
      "requires": {
        "compare-angle": "^1.0.0",
        "dup": "^1.0.0"
      }
    },
    "planar-graph-to-polyline": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/planar-graph-to-polyline/-/planar-graph-to-polyline-1.0.6.tgz",
      "integrity": "sha512-h8a9kdAjo7mRhC0X6HZ42xzFp7vKDZA+Hygyhsq/08Qi4vVAQYJaLLYLvKUUzRbVKvdYqq0reXHyV0EygyEBHA==",
      "requires": {
        "edges-to-adjacency-list": "^1.0.0",
        "planar-dual": "^1.0.0",
        "point-in-big-polygon": "^2.0.1",
        "robust-orientation": "^1.0.1",
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.0",
        "uniq": "^1.0.0"
      }
    },
    "point-in-big-polygon": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/point-in-big-polygon/-/point-in-big-polygon-2.0.1.tgz",
      "integrity": "sha512-DtrN8pa2VfMlvmWlCcypTFeBE4+OYz1ojDNJLKCWa4doiVAD6PRBbxFYAT71tsp5oKaRXT5sxEiHCAQKb1zr2Q==",
      "requires": {
        "binary-search-bounds": "^2.0.0",
        "interval-tree-1d": "^1.0.1",
        "robust-orientation": "^1.1.3",
        "slab-decomposition": "^1.0.1"
      }
    },
    "polytope-closest-point": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/polytope-closest-point/-/polytope-closest-point-1.0.0.tgz",
      "integrity": "sha1-5uV/QIGrXox3i4Ee8G4sSK4zjD8=",
      "requires": {
        "numeric": "^1.2.6"
      }
    },
    "prelude-ls": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
    },
    "process-nextick-args": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
    },
    "quat-slerp": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/quat-slerp/-/quat-slerp-1.0.1.tgz",
      "integrity": "sha1-K6oVzjprvcMkHZcusXKDE57Wnyk=",
      "requires": {
        "gl-quat": "^1.0.0"
      }
    },
    "rat-vec": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/rat-vec/-/rat-vec-1.1.1.tgz",
      "integrity": "sha1-Dd4rZrezS7G80qI4BerIBth/0X8=",
      "requires": {
        "big-rat": "^1.0.3"
      }
    },
    "readable-stream": {
      "version": "2.3.7",
      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
      "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
      "requires": {
        "core-util-is": "~1.0.0",
        "inherits": "~2.0.3",
        "isarray": "~1.0.0",
        "process-nextick-args": "~2.0.0",
        "safe-buffer": "~5.1.1",
        "string_decoder": "~1.1.1",
        "util-deprecate": "~1.0.1"
      },
      "dependencies": {
        "isarray": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
        },
        "safe-buffer": {
          "version": "5.1.2",
          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
        }
      }
    },
    "reduce-simplicial-complex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/reduce-simplicial-complex/-/reduce-simplicial-complex-1.0.0.tgz",
      "integrity": "sha1-dNaWovg196bc2SBl/YxRgfLt+Lw=",
      "requires": {
        "cell-orientation": "^1.0.1",
        "compare-cell": "^1.0.0",
        "compare-oriented-cell": "^1.0.1"
      }
    },
    "repeat-string": {
      "version": "1.6.1",
      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
    },
    "resolve": {
      "version": "1.20.0",
      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
      "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
      "requires": {
        "is-core-module": "^2.2.0",
        "path-parse": "^1.0.6"
      }
    },
    "right-now": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
      "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
    },
    "robust-compress": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-compress/-/robust-compress-1.0.0.tgz",
      "integrity": "sha1-TPYsSzGNgwhRYBK7jBF1Lzkymxs="
    },
    "robust-determinant": {
      "version": "git+ssh://git@github.com/plotly/robust-determinant.git#0414d049016d32d18f7dae934cb7d5968e00504a",
      "from": "robust-determinant@plotly/robust-determinant#v1.2.2",
      "requires": {
        "robust-compress": "^1.0.0",
        "robust-scale": "^1.0.0",
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.0"
      }
    },
    "robust-dot-product": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-dot-product/-/robust-dot-product-1.0.0.tgz",
      "integrity": "sha1-yboBeL0sMEv9cl9Y6Inx2UYARVM=",
      "requires": {
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.0"
      }
    },
    "robust-in-sphere": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/robust-in-sphere/-/robust-in-sphere-1.2.1.tgz",
      "integrity": "sha512-3zJdcMIOP1gdwux93MKTS0RiMYEGwQBoE5R1IW/9ZQmGeZzP7f7i4+xdcK8ujJvF/dEOS1WPuI9IB1WNFbj3Cg==",
      "requires": {
        "robust-scale": "^1.0.0",
        "robust-subtract": "^1.0.0",
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.0"
      }
    },
    "robust-linear-solve": {
      "version": "git+ssh://git@github.com/plotly/robust-linear-solve.git#c9deb96692f9b9c1479bc92a40e0cc985480ecef",
      "from": "robust-linear-solve@plotly/robust-linear-solve#v1.1.2",
      "requires": {
        "robust-determinant": "^1.1.0"
      }
    },
    "robust-orientation": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.2.1.tgz",
      "integrity": "sha512-FuTptgKwY6iNuU15nrIJDLjXzCChWB+T4AvksRtwPS/WZ3HuP1CElCm1t+OBfgQKfWbtZIawip+61k7+buRKAg==",
      "requires": {
        "robust-scale": "^1.0.2",
        "robust-subtract": "^1.0.0",
        "robust-sum": "^1.0.0",
        "two-product": "^1.0.2"
      }
    },
    "robust-product": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-product/-/robust-product-1.0.0.tgz",
      "integrity": "sha1-aFJQAHzbunzx3nW/9tKScBEJir4=",
      "requires": {
        "robust-scale": "^1.0.0",
        "robust-sum": "^1.0.0"
      }
    },
    "robust-scale": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz",
      "integrity": "sha1-d1Ey7QlULQKOWLLMecBikLz3jDI=",
      "requires": {
        "two-product": "^1.0.2",
        "two-sum": "^1.0.0"
      }
    },
    "robust-segment-intersect": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/robust-segment-intersect/-/robust-segment-intersect-1.0.1.tgz",
      "integrity": "sha1-MlK2oPwboUreaRXMvgnLzpqrHBw=",
      "requires": {
        "robust-orientation": "^1.1.3"
      }
    },
    "robust-subtract": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz",
      "integrity": "sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo="
    },
    "robust-sum": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz",
      "integrity": "sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k="
    },
    "safe-buffer": {
      "version": "5.2.1",
      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
    },
    "shallow-copy": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
      "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA="
    },
    "signum": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz",
      "integrity": "sha1-dKfSvyogtA66FqkrFSEk8dVZ+nc="
    },
    "simplicial-complex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-1.0.0.tgz",
      "integrity": "sha1-bDOk7Wn81Nkbe8rdOzC2NoPq4kE=",
      "requires": {
        "bit-twiddle": "^1.0.0",
        "union-find": "^1.0.0"
      }
    },
    "simplicial-complex-boundary": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/simplicial-complex-boundary/-/simplicial-complex-boundary-1.0.1.tgz",
      "integrity": "sha1-csn/HiTeqjdMm7L6DL8MCB6++BU=",
      "requires": {
        "boundary-cells": "^2.0.0",
        "reduce-simplicial-complex": "^1.0.0"
      }
    },
    "simplicial-complex-contour": {
      "version": "git+ssh://git@github.com/plotly/simplicial-complex-contour.git#3c09d0c163385b874fedc0a366b29b6e713bfd99",
      "from": "simplicial-complex-contour@plotly/simplicial-complex-contour#v1.1.0",
      "requires": {
        "ndarray": "^1.0.15",
        "ndarray-sort": "^1.0.0"
      }
    },
    "simplify-planar-graph": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/simplify-planar-graph/-/simplify-planar-graph-2.0.1.tgz",
      "integrity": "sha1-vIWJNyXzLo+oriVoE5hEbSy892Y=",
      "requires": {
        "robust-orientation": "^1.0.1",
        "simplicial-complex": "^0.3.3"
      },
      "dependencies": {
        "bit-twiddle": {
          "version": "0.0.2",
          "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-0.0.2.tgz",
          "integrity": "sha1-wurruVKjuUrMFASX4c3NLxoz9Y4="
        },
        "simplicial-complex": {
          "version": "0.3.3",
          "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-0.3.3.tgz",
          "integrity": "sha1-TDDK1X+eRXKd2PMGyHU1efRr6Z4=",
          "requires": {
            "bit-twiddle": "~0.0.1",
            "union-find": "~0.0.3"
          }
        },
        "union-find": {
          "version": "0.0.4",
          "resolved": "https://registry.npmjs.org/union-find/-/union-find-0.0.4.tgz",
          "integrity": "sha1-uFSzMBYZva0USwAUx4+W6sDS8PY="
        }
      }
    },
    "slab-decomposition": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/slab-decomposition/-/slab-decomposition-1.0.3.tgz",
      "integrity": "sha512-1EfR304JHvX9vYQkUi4AKqN62mLsjk6W45xTk/TxwN8zd3HGwS7PVj9zj0I6fgCZqfGlimDEY+RzzASHn97ZmQ==",
      "requires": {
        "binary-search-bounds": "^2.0.0",
        "functional-red-black-tree": "^1.0.0",
        "robust-orientation": "^1.1.3"
      }
    },
    "source-map": {
      "version": "0.6.1",
      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
      "optional": true
    },
    "split-polygon": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz",
      "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=",
      "requires": {
        "robust-dot-product": "^1.0.0",
        "robust-sum": "^1.0.0"
      }
    },
    "sprintf-js": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
      "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
    },
    "stack-trace": {
      "version": "0.0.9",
      "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz",
      "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU="
    },
    "static-eval": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz",
      "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==",
      "requires": {
        "escodegen": "^1.11.1"
      }
    },
    "stream-shift": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
      "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
    },
    "string_decoder": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
      "requires": {
        "safe-buffer": "~5.1.0"
      },
      "dependencies": {
        "safe-buffer": {
          "version": "5.1.2",
          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
        }
      }
    },
    "surface-nets": {
      "version": "git+ssh://git@github.com/plotly/surface-nets.git#d80900ed4c39a1b07f9d8577180960945236d996",
      "from": "surface-nets@plotly/surface-nets#v1.1.1",
      "requires": {
        "ndarray-extract-contour": "^1.0.0",
        "zero-crossings": "^1.0.0"
      }
    },
    "text-cache": {
      "version": "4.2.2",
      "resolved": "https://registry.npmjs.org/text-cache/-/text-cache-4.2.2.tgz",
      "integrity": "sha512-zky+UDYiX0a/aPw/YTBD+EzKMlCTu1chFuCMZeAkgoRiceySdROu1V2kJXhCbtEdBhiOviYnAdGiSYl58HW0ZQ==",
      "requires": {
        "vectorize-text": "^3.2.1"
      }
    },
    "through2": {
      "version": "0.6.5",
      "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
      "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
      "requires": {
        "readable-stream": ">=1.0.33-1 <1.1.0-0",
        "xtend": ">=4.0.0 <4.1.0-0"
      },
      "dependencies": {
        "isarray": {
          "version": "0.0.1",
          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
        },
        "readable-stream": {
          "version": "1.0.34",
          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
          "requires": {
            "core-util-is": "~1.0.0",
            "inherits": "~2.0.1",
            "isarray": "0.0.1",
            "string_decoder": "~0.10.x"
          }
        },
        "string_decoder": {
          "version": "0.10.31",
          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
        }
      }
    },
    "to-px": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz",
      "integrity": "sha1-W7rtXl1PdkRbzJA8KTojB90yRkY=",
      "requires": {
        "parse-unit": "^1.0.1"
      }
    },
    "triangulate-polyline": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/triangulate-polyline/-/triangulate-polyline-1.0.3.tgz",
      "integrity": "sha1-v4uod6hQVBA/65+lphtOjXAXgU0=",
      "requires": {
        "cdt2d": "^1.0.0"
      }
    },
    "turntable-camera-controller": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/turntable-camera-controller/-/turntable-camera-controller-3.0.1.tgz",
      "integrity": "sha1-jb0/4AVQGRxlFky4iJcQSVeK/Zk=",
      "requires": {
        "filtered-vector": "^1.2.1",
        "gl-mat4": "^1.0.2",
        "gl-vec3": "^1.0.2"
      }
    },
    "two-product": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz",
      "integrity": "sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo="
    },
    "two-sum": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz",
      "integrity": "sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q="
    },
    "type-check": {
      "version": "0.3.2",
      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
      "requires": {
        "prelude-ls": "~1.1.2"
      }
    },
    "typedarray": {
      "version": "0.0.6",
      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
    },
    "typedarray-pool": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz",
      "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==",
      "requires": {
        "bit-twiddle": "^1.0.0",
        "dup": "^1.0.0"
      }
    },
    "union-find": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/union-find/-/union-find-1.0.2.tgz",
      "integrity": "sha1-KSusQV5q06iVNdI3AQ20pTYoTlg="
    },
    "uniq": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8="
    },
    "util-deprecate": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
    },
    "vectorize-text": {
      "version": "3.2.2",
      "resolved": "https://registry.npmjs.org/vectorize-text/-/vectorize-text-3.2.2.tgz",
      "integrity": "sha512-34NVOCpMMQVXujU4vb/c6u98h6djI0jGdtC202H4Huvzn48B6ARsR7cmGh1xsAc0pHNQiUKGK/aHF05VtGv+eA==",
      "requires": {
        "cdt2d": "^1.0.0",
        "clean-pslg": "^1.1.0",
        "ndarray": "^1.0.11",
        "planar-graph-to-polyline": "^1.0.6",
        "simplify-planar-graph": "^2.0.1",
        "surface-nets": "^1.0.0",
        "triangulate-polyline": "^1.0.0"
      }
    },
    "weak-map": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz",
      "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes="
    },
    "weakmap-shim": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/weakmap-shim/-/weakmap-shim-1.1.1.tgz",
      "integrity": "sha1-1lr9eEEJshZuAP9XHDMVDsKkC0k="
    },
    "word-wrap": {
      "version": "1.2.3",
      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
    },
    "wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
    },
    "xtend": {
      "version": "4.0.2",
      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
    },
    "zero-crossings": {
      "version": "git+ssh://git@github.com/plotly/zero-crossings.git#4746771f490344e21c84d1f631cb661d8c5ff508",
      "from": "zero-crossings@plotly/zero-crossings#v1.1.0"
    }
  }
}
