/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./node_modules/@babel/runtime/regenerator/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/regenerator/index.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/Base64.js":
/*!************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/Base64.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Base64),\n/* harmony export */   \"fromArrayBuffer\": () => (/* binding */ fromArrayBuffer),\n/* harmony export */   \"toArrayBuffer\": () => (/* binding */ toArrayBuffer)\n/* harmony export */ });\n/* eslint-disable no-bitwise */\n// ----------------------------------------------------------------------------\n// Decoding infrastructure\n// ----------------------------------------------------------------------------\nvar REVERSE_LOOKUP = [];\nREVERSE_LOOKUP['-'.charCodeAt(0)] = 62;\nREVERSE_LOOKUP['_'.charCodeAt(0)] = 63;\nvar BASE64_CODE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0; i < BASE64_CODE.length; i++) {\n  REVERSE_LOOKUP[BASE64_CODE.charCodeAt(i)] = i;\n} // ----------------------------------------------------------------------------\n// Base64 analysis\n// ----------------------------------------------------------------------------\n\n\nfunction isValidChar(c) {\n  return REVERSE_LOOKUP[c.charCodeAt(0)] !== undefined;\n}\n\nfunction extractChunks(b64Str) {\n  var strSize = b64Str.length;\n  var chunks = [];\n  var currentChunk = null;\n\n  for (var _i = 0; _i < strSize; _i++) {\n    if (isValidChar(b64Str[_i])) {\n      if (!currentChunk) {\n        currentChunk = {\n          start: _i,\n          count: 0\n        };\n      }\n\n      currentChunk.count++;\n      currentChunk.end = _i;\n    } else if (b64Str[_i] === '=' && currentChunk) {\n      // End of chunk (found padding char)\n      chunks.push(currentChunk);\n      currentChunk = null;\n    }\n  }\n\n  if (currentChunk) {\n    chunks.push(currentChunk);\n  }\n\n  return chunks;\n}\n\nfunction writeChunk(b64Str, chunk, dstOffset, uint8) {\n  var start = chunk.start,\n      count = chunk.count;\n  var remain = count % 4;\n  var fourCharProcessCount = Math.floor(count / 4);\n  var charIdx = start;\n  var tmp = null;\n  var offset = dstOffset; // Handle 4=>3\n\n  for (var _i2 = 0; _i2 < fourCharProcessCount; _i2++) {\n    while (!isValidChar(b64Str[charIdx])) {\n      charIdx++;\n    }\n\n    tmp = REVERSE_LOOKUP[b64Str.charCodeAt(charIdx++)] << 18;\n\n    while (!isValidChar(b64Str[charIdx])) {\n      charIdx++;\n    }\n\n    tmp |= REVERSE_LOOKUP[b64Str.charCodeAt(charIdx++)] << 12;\n\n    while (!isValidChar(b64Str[charIdx])) {\n      charIdx++;\n    }\n\n    tmp |= REVERSE_LOOKUP[b64Str.charCodeAt(charIdx++)] << 6;\n\n    while (!isValidChar(b64Str[charIdx])) {\n      charIdx++;\n    }\n\n    tmp |= REVERSE_LOOKUP[b64Str.charCodeAt(charIdx++)];\n    uint8[offset++] = tmp >> 16 & 0xff;\n    uint8[offset++] = tmp >> 8 & 0xff;\n    uint8[offset++] = tmp & 0xff;\n  } // Handle remain\n\n\n  switch (remain) {\n    case 3:\n      while (!isValidChar(b64Str[charIdx])) {\n        charIdx++;\n      }\n\n      tmp = REVERSE_LOOKUP[b64Str.charCodeAt(charIdx++)] << 10;\n\n      while (!isValidChar(b64Str[charIdx])) {\n        charIdx++;\n      }\n\n      tmp |= REVERSE_LOOKUP[b64Str.charCodeAt(charIdx++)] << 4;\n\n      while (!isValidChar(b64Str[charIdx])) {\n        charIdx++;\n      }\n\n      tmp |= REVERSE_LOOKUP[b64Str.charCodeAt(charIdx++)] >> 2;\n      uint8[offset++] = tmp >> 8 & 0xff;\n      uint8[offset++] = tmp & 0xff;\n      break;\n\n    case 2:\n      while (!isValidChar(b64Str[charIdx])) {\n        charIdx++;\n      }\n\n      tmp = REVERSE_LOOKUP[b64Str.charCodeAt(charIdx++)] << 2;\n\n      while (!isValidChar(b64Str[charIdx])) {\n        charIdx++;\n      }\n\n      tmp |= REVERSE_LOOKUP[b64Str.charCodeAt(charIdx++)] >> 4;\n      uint8[offset++] = tmp & 0xff;\n      break;\n\n    case 1:\n      throw new Error('BASE64: remain 1 should not happen');\n  }\n\n  return offset;\n}\n\nfunction toArrayBuffer(b64Str) {\n  var chunks = extractChunks(b64Str);\n  var totalEncodedLength = chunks[chunks.length - 1].end + 1;\n  var padding = (4 - totalEncodedLength % 4) % 4; // -length mod 4\n  // Any padding chars in the middle of b64Str is to be interpreted as \\x00,\n  // whereas the terminating padding chars are to be interpreted as literal padding.\n\n  var totalSize = (totalEncodedLength + padding) * 3 / 4 - padding;\n  var arrayBuffer = new ArrayBuffer(totalSize);\n  var view = new Uint8Array(arrayBuffer);\n  var dstOffset = 0;\n\n  for (var _i3 = 0; _i3 < chunks.length; _i3++) {\n    dstOffset += writeChunk(b64Str, chunks[_i3], dstOffset, view);\n    dstOffset += (4 - chunks[_i3].count % 4) % 4;\n  }\n\n  return arrayBuffer;\n}\n\nfunction encodeTriplet(v1, v2, v3) {\n  var triplet = (v1 << 16) + (v2 << 8) + v3;\n  return BASE64_CODE[triplet >> 18] + BASE64_CODE[triplet >> 12 & 0x3f] + BASE64_CODE[triplet >> 6 & 0x3f] + BASE64_CODE[triplet & 0x3f];\n}\n\nfunction fromArrayBuffer(ab) {\n  var uint8 = new Uint8Array(ab);\n  var leftoverLength = ab.byteLength % 3;\n  var maxTripletIndex = ab.byteLength - leftoverLength;\n  var segments = Array(maxTripletIndex / 3);\n\n  for (var _i4 = 0; _i4 < segments.length; _i4++) {\n    var bufOffset = _i4 * 3;\n    segments[_i4] = encodeTriplet(uint8[bufOffset], uint8[bufOffset + 1], uint8[bufOffset + 2]);\n  }\n\n  if (leftoverLength > 0) {\n    var segment = encodeTriplet(uint8[maxTripletIndex], uint8[maxTripletIndex + 1] || 0, uint8[maxTripletIndex + 2] || 0);\n\n    if (leftoverLength === 1) {\n      segments.push(\"\".concat(segment.substr(0, 2), \"==\"));\n    } else if (leftoverLength === 2) {\n      segments.push(\"\".concat(segment.substr(0, 3), \"=\"));\n    }\n  }\n\n  return segments.join('');\n}\nvar Base64 = {\n  toArrayBuffer: toArrayBuffer,\n  fromArrayBuffer: fromArrayBuffer\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/Base64.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/CellArray.js":
/*!***************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/CellArray.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"default\": () => (/* binding */ vtkCellArray$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _DataArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DataArray/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js\");\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction extractCellSizes(cellArray) {\n  var currentIdx = 0;\n  return cellArray.filter(function (value, index) {\n    if (index === currentIdx) {\n      currentIdx += value + 1;\n      return true;\n    }\n\n    return false;\n  });\n}\n\nfunction getNumberOfCells(cellArray) {\n  return extractCellSizes(cellArray).length;\n} // ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\n\nvar STATIC = {\n  extractCellSizes: extractCellSizes,\n  getNumberOfCells: getNumberOfCells\n}; // ----------------------------------------------------------------------------\n// vtkCellArray methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCellArray(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkCellArray');\n\n  publicAPI.getNumberOfCells = function (recompute) {\n    if (model.numberOfCells !== undefined && !recompute) {\n      return model.numberOfCells;\n    }\n\n    model.cellSizes = extractCellSizes(model.values);\n    model.numberOfCells = model.cellSizes.length;\n    return model.numberOfCells;\n  };\n\n  publicAPI.getCellSizes = function (recompute) {\n    if (model.cellSizes !== undefined && !recompute) {\n      return model.cellSizes;\n    }\n\n    model.cellSizes = extractCellSizes(model.values);\n    return model.cellSizes;\n  };\n\n  var superSetData = publicAPI.setData;\n\n  publicAPI.setData = function (typedArray) {\n    superSetData(typedArray, 1);\n    model.numberOfCells = undefined;\n    model.cellSizes = undefined;\n  };\n  /**\n   * Returns the point indexes at the given location as a subarray.\n   */\n\n\n  publicAPI.getCell = function (loc) {\n    var cellLoc = loc;\n    var numberOfPoints = model.values[cellLoc++];\n    return model.values.subarray(cellLoc, cellLoc + numberOfPoints);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nfunction defaultValues(initialValues) {\n  return _objectSpread({\n    empty: true,\n    numberOfComponents: 1,\n    dataType: _DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_3__.VtkDataTypes.UNSIGNED_INT\n  }, initialValues);\n} // ----------------------------------------------------------------------------\n\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  _DataArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, defaultValues(initialValues));\n  vtkCellArray(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkCellArray'); // ----------------------------------------------------------------------------\n\nvar vtkCellArray$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, STATIC);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/CellArray.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/ClassHierarchy.js":
/*!********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/ClassHierarchy.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ClassHierarchy)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/get */ \"./node_modules/@babel/runtime/helpers/esm/get.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var _babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js\");\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar ClassHierarchy = /*#__PURE__*/function (_Array) {\n  (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(ClassHierarchy, _Array);\n\n  var _super = _createSuper(ClassHierarchy);\n\n  function ClassHierarchy() {\n    (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, ClassHierarchy);\n\n    return _super.apply(this, arguments);\n  }\n\n  (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(ClassHierarchy, [{\n    key: \"push\",\n    value: function push() {\n      var _this = this,\n          _get2;\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      // no perf issue since args.length should be small\n      var newArgs = args.filter(function (arg) {\n        return !_this.includes(arg);\n      });\n      return (_get2 = (0,_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_3__[\"default\"])((0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(ClassHierarchy.prototype), \"push\", this)).call.apply(_get2, [this].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(newArgs)));\n    }\n  }]);\n\n  return ClassHierarchy;\n}( /*#__PURE__*/(0,_babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(Array));\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/ClassHierarchy.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/DataArray.js":
/*!***************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/DataArray.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"default\": () => (/* binding */ vtkDataArray$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DataArray/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Math_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar DefaultDataType = _DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].DefaultDataType;\nvar TUPLE_HOLDER = []; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n// Original source from https://www.npmjs.com/package/compute-range\n// Modified to accept type arrays\n\nfunction fastComputeRange(arr, offset, numberOfComponents) {\n  var len = arr.length;\n  var min;\n  var max;\n  var x;\n  var i;\n\n  if (len === 0) {\n    return {\n      min: Number.MAX_VALUE,\n      max: -Number.MAX_VALUE\n    };\n  }\n\n  min = arr[offset];\n  max = min;\n\n  for (i = offset; i < len; i += numberOfComponents) {\n    x = arr[i];\n\n    if (x < min) {\n      min = x;\n    } else if (x > max) {\n      max = x;\n    }\n  }\n\n  return {\n    min: min,\n    max: max\n  };\n}\n/**\n * @deprecated please use fastComputeRange instead\n */\n\n\nfunction createRangeHelper() {\n  var min = Number.MAX_VALUE;\n  var max = -Number.MAX_VALUE;\n  var count = 0;\n  var sum = 0;\n  return {\n    add: function add(value) {\n      if (min > value) {\n        min = value;\n      }\n\n      if (max < value) {\n        max = value;\n      }\n\n      count++;\n      sum += value;\n    },\n    get: function get() {\n      return {\n        min: min,\n        max: max,\n        count: count,\n        sum: sum,\n        mean: sum / count\n      };\n    },\n    getRange: function getRange() {\n      return {\n        min: min,\n        max: max\n      };\n    }\n  };\n}\n\nfunction computeRange(values) {\n  var component = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var numberOfComponents = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n  if (component < 0 && numberOfComponents > 1) {\n    // Compute magnitude\n    var size = values.length;\n    var numberOfValues = size / numberOfComponents;\n    var data = new Float64Array(numberOfValues);\n\n    for (var i = 0, j = 0; i < numberOfValues; ++i) {\n      var _i;\n\n      for (var nextJ = j + numberOfComponents; j < nextJ; ++j) {\n        data[i] += values[j] * values[j];\n      }\n\n      _i = i, data[_i] = Math.pow(data[_i], 0.5);\n    }\n\n    return fastComputeRange(data, 0, 1);\n  }\n\n  return fastComputeRange(values, component < 0 ? 0 : component, numberOfComponents);\n}\n\nfunction ensureRangeSize(rangeArray) {\n  var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var ranges = rangeArray || []; // Pad ranges with null value to get the\n\n  while (ranges.length <= size) {\n    ranges.push(null);\n  }\n\n  return ranges;\n}\n\nfunction getDataType(typedArray) {\n  // Expects toString() to return \"[object ...Array]\"\n  return Object.prototype.toString.call(typedArray).slice(8, -1);\n}\n\nfunction getMaxNorm(normArray) {\n  var numComps = normArray.getNumberOfComponents();\n  var maxNorm = 0.0;\n\n  for (var i = 0; i < normArray.getNumberOfTuples(); ++i) {\n    var norm$1 = (0,_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.n)(normArray.getTuple(i), numComps);\n\n    if (norm$1 > maxNorm) {\n      maxNorm = norm$1;\n    }\n  }\n\n  return maxNorm;\n} // ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\n\nvar STATIC = {\n  computeRange: computeRange,\n  createRangeHelper: createRangeHelper,\n  fastComputeRange: fastComputeRange,\n  getDataType: getDataType,\n  getMaxNorm: getMaxNorm\n}; // ----------------------------------------------------------------------------\n// vtkDataArray methods\n// ----------------------------------------------------------------------------\n\nfunction vtkDataArray(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkDataArray');\n\n  function dataChange() {\n    model.ranges = null;\n    publicAPI.modified();\n  }\n\n  publicAPI.getElementComponentSize = function () {\n    return model.values.BYTES_PER_ELEMENT;\n  }; // Description:\n  // Return the data component at the location specified by tupleIdx and\n  // compIdx.\n\n\n  publicAPI.getComponent = function (tupleIdx) {\n    var compIdx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    return model.values[tupleIdx * model.numberOfComponents + compIdx];\n  }; // Description:\n  // Set the data component at the location specified by tupleIdx and compIdx\n  // to value.\n  // Note that i is less than NumberOfTuples and j is less than\n  //  NumberOfComponents. Make sure enough memory has been allocated\n  // (use SetNumberOfTuples() and SetNumberOfComponents()).\n\n\n  publicAPI.setComponent = function (tupleIdx, compIdx, value) {\n    if (value !== model.values[tupleIdx * model.numberOfComponents + compIdx]) {\n      model.values[tupleIdx * model.numberOfComponents + compIdx] = value;\n      dataChange();\n    }\n  };\n\n  publicAPI.getData = function () {\n    return model.values;\n  };\n\n  publicAPI.getRange = function () {\n    var componentIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n    var rangeIdx = componentIndex < 0 ? model.numberOfComponents : componentIndex;\n    var range = null;\n\n    if (!model.ranges) {\n      model.ranges = ensureRangeSize(model.ranges, model.numberOfComponents);\n    }\n\n    range = model.ranges[rangeIdx];\n\n    if (range) {\n      model.rangeTuple[0] = range.min;\n      model.rangeTuple[1] = range.max;\n      return model.rangeTuple;\n    } // Need to compute ranges...\n\n\n    range = computeRange(model.values, componentIndex, model.numberOfComponents);\n    model.ranges[rangeIdx] = range;\n    model.rangeTuple[0] = range.min;\n    model.rangeTuple[1] = range.max;\n    return model.rangeTuple;\n  };\n\n  publicAPI.setRange = function (rangeValue, componentIndex) {\n    if (!model.ranges) {\n      model.ranges = ensureRangeSize(model.ranges, model.numberOfComponents);\n    }\n\n    var range = {\n      min: rangeValue.min,\n      max: rangeValue.max\n    };\n    model.ranges[componentIndex] = range;\n    model.rangeTuple[0] = range.min;\n    model.rangeTuple[1] = range.max;\n    return model.rangeTuple;\n  };\n\n  publicAPI.setTuple = function (idx, tuple) {\n    var offset = idx * model.numberOfComponents;\n\n    for (var i = 0; i < model.numberOfComponents; i++) {\n      model.values[offset + i] = tuple[i];\n    }\n  };\n\n  publicAPI.getTuple = function (idx) {\n    var tupleToFill = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : TUPLE_HOLDER;\n    var numberOfComponents = model.numberOfComponents || 1;\n\n    if (tupleToFill.length !== numberOfComponents) {\n      tupleToFill.length = numberOfComponents;\n    }\n\n    var offset = idx * numberOfComponents; // Check most common component sizes first\n    // to avoid doing a for loop if possible\n\n    if (numberOfComponents === 1) {\n      tupleToFill[0] = model.values[offset];\n    } else if (numberOfComponents === 2) {\n      tupleToFill[0] = model.values[offset];\n      tupleToFill[1] = model.values[offset + 1];\n    } else if (numberOfComponents === 3) {\n      tupleToFill[0] = model.values[offset];\n      tupleToFill[1] = model.values[offset + 1];\n      tupleToFill[2] = model.values[offset + 2];\n    } else if (numberOfComponents === 4) {\n      tupleToFill[0] = model.values[offset];\n      tupleToFill[1] = model.values[offset + 1];\n      tupleToFill[2] = model.values[offset + 2];\n      tupleToFill[3] = model.values[offset + 3];\n    } else {\n      for (var i = 0; i < numberOfComponents; i++) {\n        tupleToFill[i] = model.values[offset + i];\n      }\n    }\n\n    return tupleToFill;\n  };\n\n  publicAPI.getTupleLocation = function () {\n    var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n    return idx * model.numberOfComponents;\n  };\n\n  publicAPI.getNumberOfComponents = function () {\n    return model.numberOfComponents;\n  };\n\n  publicAPI.getNumberOfValues = function () {\n    return model.values.length;\n  };\n\n  publicAPI.getNumberOfTuples = function () {\n    return model.values.length / model.numberOfComponents;\n  };\n\n  publicAPI.getDataType = function () {\n    return model.dataType;\n  };\n  /* eslint-disable no-use-before-define */\n\n\n  publicAPI.newClone = function () {\n    return newInstance({\n      empty: true,\n      name: model.name,\n      dataType: model.dataType,\n      numberOfComponents: model.numberOfComponents\n    });\n  };\n  /* eslint-enable no-use-before-define */\n\n\n  publicAPI.getName = function () {\n    if (!model.name) {\n      publicAPI.modified();\n      model.name = \"vtkDataArray\".concat(publicAPI.getMTime());\n    }\n\n    return model.name;\n  };\n\n  publicAPI.setData = function (typedArray, numberOfComponents) {\n    model.values = typedArray;\n    model.size = typedArray.length;\n    model.dataType = getDataType(typedArray);\n\n    if (numberOfComponents) {\n      model.numberOfComponents = numberOfComponents;\n    }\n\n    if (model.size % model.numberOfComponents !== 0) {\n      model.numberOfComponents = 1;\n    }\n\n    dataChange();\n  }; // Override serialization support\n\n\n  publicAPI.getState = function () {\n    if (model.deleted) {\n      return null;\n    }\n\n    var jsonArchive = _objectSpread(_objectSpread({}, model), {}, {\n      vtkClass: publicAPI.getClassName()\n    }); // Convert typed array to regular array\n\n\n    jsonArchive.values = Array.from(jsonArchive.values);\n    delete jsonArchive.buffer; // Clean any empty data\n\n    Object.keys(jsonArchive).forEach(function (keyName) {\n      if (!jsonArchive[keyName]) {\n        delete jsonArchive[keyName];\n      }\n    }); // Sort resulting object by key name\n\n    var sortedObj = {};\n    Object.keys(jsonArchive).sort().forEach(function (name) {\n      sortedObj[name] = jsonArchive[name];\n    }); // Remove mtime\n\n    if (sortedObj.mtime) {\n      delete sortedObj.mtime;\n    }\n\n    return sortedObj;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  name: '',\n  numberOfComponents: 1,\n  size: 0,\n  dataType: DefaultDataType,\n  rangeTuple: [0, 0] // values: null,\n  // ranges: null,\n\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n\n  if (!model.empty && !model.values && !model.size) {\n    throw new TypeError('Cannot create vtkDataArray object without: size > 0, values');\n  }\n\n  if (!model.values) {\n    model.values = (0,_macros_js__WEBPACK_IMPORTED_MODULE_2__.newTypedArray)(model.dataType, model.size);\n  } else if (Array.isArray(model.values)) {\n    model.values = (0,_macros_js__WEBPACK_IMPORTED_MODULE_2__.newTypedArrayFrom)(model.dataType, model.values);\n  }\n\n  if (model.values) {\n    model.size = model.values.length;\n    model.dataType = getDataType(model.values);\n  } // Object methods\n\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_2__.obj)(publicAPI, model);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_2__.set)(publicAPI, model, ['name', 'numberOfComponents']); // Object specific methods\n\n  vtkDataArray(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_2__.newInstance)(extend, 'vtkDataArray'); // ----------------------------------------------------------------------------\n\nvar vtkDataArray$1 = _objectSpread(_objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, STATIC), _DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/DataArray.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"DataTypeByteSize\": () => (/* binding */ DataTypeByteSize),\n/* harmony export */   \"DefaultDataType\": () => (/* binding */ DefaultDataType),\n/* harmony export */   \"VtkDataTypes\": () => (/* binding */ VtkDataTypes),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar DataTypeByteSize = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\nvar VtkDataTypes = {\n  VOID: '',\n  // not sure to know what that should be\n  CHAR: 'Int8Array',\n  SIGNED_CHAR: 'Int8Array',\n  UNSIGNED_CHAR: 'Uint8Array',\n  SHORT: 'Int16Array',\n  UNSIGNED_SHORT: 'Uint16Array',\n  INT: 'Int32Array',\n  UNSIGNED_INT: 'Uint32Array',\n  FLOAT: 'Float32Array',\n  DOUBLE: 'Float64Array'\n};\nvar DefaultDataType = VtkDataTypes.FLOAT;\nvar Constants = {\n  DefaultDataType: DefaultDataType,\n  DataTypeByteSize: DataTypeByteSize,\n  VtkDataTypes: VtkDataTypes\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/Endian.js":
/*!************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/Endian.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"ENDIANNESS\": () => (/* binding */ ENDIANNESS),\n/* harmony export */   \"default\": () => (/* binding */ Endian),\n/* harmony export */   \"getEndianness\": () => (/* binding */ getEndianness),\n/* harmony export */   \"swapBytes\": () => (/* binding */ swapBytes)\n/* harmony export */ });\nfunction getEndianness() {\n  var a = new ArrayBuffer(4);\n  var b = new Uint8Array(a);\n  var c = new Uint32Array(a);\n  b[0] = 0xa1;\n  b[1] = 0xb2;\n  b[2] = 0xc3;\n  b[3] = 0xd4;\n  if (c[0] === 0xd4c3b2a1) return 'LittleEndian';\n  if (c[0] === 0xa1b2c3d4) return 'BigEndian';\n  return null;\n}\nvar ENDIANNESS = getEndianness();\nfunction swapBytes(buffer, wordSize) {\n  if (wordSize < 2) {\n    return;\n  }\n\n  var bytes = new Int8Array(buffer);\n  var size = bytes.length;\n  var tempBuffer = [];\n\n  for (var i = 0; i < size; i += wordSize) {\n    for (var j = 0; j < wordSize; j++) {\n      tempBuffer.push(bytes[i + j]);\n    }\n\n    for (var _j = 0; _j < wordSize; _j++) {\n      bytes[i + _j] = tempBuffer.pop();\n    }\n  }\n}\nvar Endian = {\n  ENDIANNESS: ENDIANNESS,\n  getEndianness: getEndianness,\n  swapBytes: swapBytes\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/Endian.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/HalfFloat.js":
/*!***************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/HalfFloat.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ HalfFloat)\n/* harmony export */ });\n/* eslint-disable no-bitwise */\nvar floatView = new Float32Array(1);\nvar int32View = new Int32Array(floatView.buffer);\n/* eslint-disable no-bitwise */\n\n/* This method is faster than the OpenEXR implementation (very often\n * used, eg. in Ogre), with the additional benefit of rounding, inspired\n * by James Tursa?s half-precision code. */\n\nfunction toHalf(val) {\n  floatView[0] = val;\n  var x = int32View[0];\n  var bits = x >> 16 & 0x8000;\n  /* Get the sign */\n\n  var m = x >> 12 & 0x07ff;\n  /* Keep one extra bit for rounding */\n\n  var e = x >> 23 & 0xff;\n  /* Using int is faster here */\n\n  /* If zero, or denormal, or exponent underflows too much for a denormal\n   * half, return signed zero. */\n\n  if (e < 103) {\n    return bits;\n  }\n  /* If NaN, return NaN. If Inf or exponent overflow, return Inf. */\n\n\n  if (e > 142) {\n    bits |= 0x7c00;\n    /* If exponent was 0xff and one mantissa bit was set, it means NaN,\n     * not Inf, so make sure we set one mantissa bit too. */\n\n    bits |= (e === 255 ? 0 : 1) && x & 0x007fffff;\n    return bits;\n  }\n  /* If exponent underflows but not too much, return a denormal */\n\n\n  if (e < 113) {\n    m |= 0x0800;\n    /* Extra rounding may overflow and set mantissa to 0 and exponent\n     * to 1, which is OK. */\n\n    bits |= (m >> 114 - e) + (m >> 113 - e & 1);\n    return bits;\n  }\n\n  bits |= e - 112 << 10 | m >> 1;\n  /* Extra rounding. An overflow will set mantissa to 0 and increment\n   * the exponent, which is OK. */\n\n  bits += m & 1;\n  return bits;\n}\n\nfunction fromHalf(h) {\n  var s = (h & 0x8000) >> 15;\n  var e = (h & 0x7c00) >> 10;\n  var f = h & 0x03ff;\n\n  if (e === 0) {\n    return (s ? -1 : 1) * Math.pow(2, -14) * (f / Math.pow(2, 10));\n  }\n\n  if (e === 0x1f) {\n    return f ? NaN : (s ? -1 : 1) * Infinity;\n  }\n\n  return (s ? -1 : 1) * Math.pow(2, e - 15) * (1 + f / Math.pow(2, 10));\n}\n\nvar HalfFloat = {\n  fromHalf: fromHalf,\n  toHalf: toHalf\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/HalfFloat.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/LookupTable.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/LookupTable.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkLookupTable$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Math_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _ScalarsToColors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ScalarsToColors.js */ \"./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors.js\");\n/* harmony import */ var _ScalarsToColors_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ScalarsToColors/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors/Constants.js\");\n/* harmony import */ var _DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DataArray/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js\");\n\n\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n// Add module-level functions or api that you want to expose statically via\n// the next section...\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nvar BELOW_RANGE_COLOR_INDEX = 0;\nvar ABOVE_RANGE_COLOR_INDEX = 1;\nvar NAN_COLOR_INDEX = 2; // ----------------------------------------------------------------------------\n// vtkMyClass methods\n// ----------------------------------------------------------------------------\n\nfunction vtkLookupTable(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkLookupTable'); //----------------------------------------------------------------------------\n  // Description:\n  // Return true if all of the values defining the mapping have an opacity\n  // equal to 1. Default implementation return true.\n\n  publicAPI.isOpaque = function () {\n    if (model.opaqueFlagBuildTime.getMTime() < publicAPI.getMTime()) {\n      var opaque = true;\n\n      if (model.nanColor[3] < 1.0) {\n        opaque = 0;\n      }\n\n      if (model.useBelowRangeColor && model.belowRangeColor[3] < 1.0) {\n        opaque = 0;\n      }\n\n      if (model.useAboveRangeColor && model.aboveRangeColor[3] < 1.0) {\n        opaque = 0;\n      }\n\n      for (var i = 3; i < model.table.length && opaque; i += 4) {\n        if (model.table[i] < 255) {\n          opaque = false;\n        }\n      }\n\n      model.opaqueFlag = opaque;\n      model.opaqueFlagBuildTime.modified();\n    }\n\n    return model.opaqueFlag;\n  };\n\n  publicAPI.usingLogScale = function () {\n    return false;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getNumberOfAvailableColors = function () {\n    return model.table.length;\n  }; //----------------------------------------------------------------------------\n  // Apply shift/scale to the scalar value v and return the index.\n\n\n  publicAPI.linearIndexLookup = function (v, p) {\n    var dIndex = 0;\n\n    if (v < p.range[0]) {\n      dIndex = p.maxIndex + BELOW_RANGE_COLOR_INDEX + 1.5;\n    } else if (v > p.range[1]) {\n      dIndex = p.maxIndex + ABOVE_RANGE_COLOR_INDEX + 1.5;\n    } else {\n      dIndex = (v + p.shift) * p.scale; // This conditional is needed because when v is very close to\n      // p.Range[1], it may map above p.MaxIndex in the linear mapping\n      // above.\n\n      dIndex = dIndex < p.maxIndex ? dIndex : p.maxIndex;\n    }\n\n    return Math.floor(dIndex);\n  };\n\n  publicAPI.linearLookup = function (v, table, p) {\n    var index = 0;\n\n    if ((0,_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.i)(v)) {\n      index = Math.floor(p.maxIndex + 1.5 + NAN_COLOR_INDEX);\n    } else {\n      index = publicAPI.linearIndexLookup(v, p);\n    }\n\n    var offset = 4 * index;\n    return [table[offset], table[offset + 1], table[offset + 2], table[offset + 3]];\n  };\n\n  publicAPI.indexedLookupFunction = function (v, table, p) {\n    var index = publicAPI.getAnnotatedValueIndexInternal(v);\n\n    if (index === -1) {\n      index = model.numberOfColors + NAN_COLOR_INDEX;\n    }\n\n    var offset = 4 * index;\n    return [table[offset], table[offset + 1], table[offset + 2], table[offset + 3]];\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.lookupShiftAndScale = function (range, p) {\n    p.shift = -range[0];\n    p.scale = Number.MAX_VALUE;\n\n    if (range[1] > range[0]) {\n      p.scale = (p.maxIndex + 1) / (range[1] - range[0]);\n    }\n  }; // Public API methods\n\n\n  publicAPI.mapScalarsThroughTable = function (input, output, outFormat, inputOffset) {\n    var lookupFunc = publicAPI.linearLookup;\n\n    if (model.indexedLookup) {\n      lookupFunc = publicAPI.indexedLookupFunction;\n    }\n\n    var trange = publicAPI.getMappingRange();\n    var p = {\n      maxIndex: publicAPI.getNumberOfColors() - 1,\n      range: trange,\n      shift: 0.0,\n      scale: 0.0\n    };\n    publicAPI.lookupShiftAndScale(trange, p);\n    var alpha = publicAPI.getAlpha();\n    var length = input.getNumberOfTuples();\n    var inIncr = input.getNumberOfComponents();\n    var outputV = output.getData();\n    var inputV = input.getData();\n\n    if (alpha >= 1.0) {\n      if (outFormat === _ScalarsToColors_Constants_js__WEBPACK_IMPORTED_MODULE_3__.ScalarMappingTarget.RGBA) {\n        for (var i = 0; i < length; i++) {\n          var cptr = lookupFunc(inputV[i * inIncr + inputOffset], model.table, p);\n          outputV[i * 4] = cptr[0];\n          outputV[i * 4 + 1] = cptr[1];\n          outputV[i * 4 + 2] = cptr[2];\n          outputV[i * 4 + 3] = cptr[3];\n        }\n      }\n    } else {\n      /* eslint-disable no-lonely-if */\n      if (outFormat === _ScalarsToColors_Constants_js__WEBPACK_IMPORTED_MODULE_3__.ScalarMappingTarget.RGBA) {\n        for (var _i = 0; _i < length; _i++) {\n          var _cptr = lookupFunc(inputV[_i * inIncr + inputOffset], model.table, p);\n\n          outputV[_i * 4] = _cptr[0];\n          outputV[_i * 4 + 1] = _cptr[1];\n          outputV[_i * 4 + 2] = _cptr[2];\n          outputV[_i * 4 + 3] = Math.floor(_cptr[3] * alpha + 0.5);\n        }\n      }\n    } // alpha blending\n\n  };\n\n  publicAPI.forceBuild = function () {\n    var hinc = 0.0;\n    var sinc = 0.0;\n    var vinc = 0.0;\n    var ainc = 0.0;\n    var maxIndex = model.numberOfColors - 1;\n\n    if (maxIndex) {\n      hinc = (model.hueRange[1] - model.hueRange[0]) / maxIndex;\n      sinc = (model.saturationRange[1] - model.saturationRange[0]) / maxIndex;\n      vinc = (model.valueRange[1] - model.valueRange[0]) / maxIndex;\n      ainc = (model.alphaRange[1] - model.alphaRange[0]) / maxIndex;\n    }\n\n    var hsv = [];\n    var rgba = [];\n\n    for (var i = 0; i <= maxIndex; i++) {\n      hsv[0] = model.hueRange[0] + i * hinc;\n      hsv[1] = model.saturationRange[0] + i * sinc;\n      hsv[2] = model.valueRange[0] + i * vinc;\n      (0,_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.h)(hsv, rgba);\n      rgba[3] = model.alphaRange[0] + i * ainc; //  case VTK_RAMP_LINEAR:\n\n      model.table[i * 4] = rgba[0] * 255.0 + 0.5;\n      model.table[i * 4 + 1] = rgba[1] * 255.0 + 0.5;\n      model.table[i * 4 + 2] = rgba[2] * 255.0 + 0.5;\n      model.table[i * 4 + 3] = rgba[3] * 255.0 + 0.5;\n    }\n\n    publicAPI.buildSpecialColors();\n    model.buildTime.modified();\n  };\n\n  publicAPI.setTable = function (table) {\n    if (table.getNumberOfComponents() !== 4) {\n      vtkErrorMacro('Expected 4 components for RGBA colors');\n      return;\n    }\n\n    if (table.getDataType() !== _DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_4__.VtkDataTypes.UNSIGNED_CHAR) {\n      vtkErrorMacro('Expected unsigned char values for RGBA colors');\n      return;\n    }\n\n    model.numberOfColors = table.getNumberOfTuples();\n    var data = table.getData();\n\n    for (var i = 0; i < data.length; i++) {\n      model.table[i] = data[i];\n    }\n\n    publicAPI.buildSpecialColors();\n    model.insertTime.modified();\n    publicAPI.modified();\n  };\n\n  publicAPI.buildSpecialColors = function () {\n    // Add \"special\" colors (NaN, below range, above range) to table here.\n    var numberOfColors = model.numberOfColors;\n    var tptr = model.table;\n    var base = (numberOfColors + BELOW_RANGE_COLOR_INDEX) * 4; // Below range color\n\n    if (model.useBelowRangeColor || numberOfColors === 0) {\n      tptr[base] = model.belowRangeColor[0] * 255.0 + 0.5;\n      tptr[base + 1] = model.belowRangeColor[1] * 255.0 + 0.5;\n      tptr[base + 2] = model.belowRangeColor[2] * 255.0 + 0.5;\n      tptr[base + 3] = model.belowRangeColor[3] * 255.0 + 0.5;\n    } else {\n      // Duplicate the first color in the table.\n      tptr[base] = tptr[0];\n      tptr[base + 1] = tptr[1];\n      tptr[base + 2] = tptr[2];\n      tptr[base + 3] = tptr[3];\n    } // Above range color\n\n\n    base = (numberOfColors + ABOVE_RANGE_COLOR_INDEX) * 4;\n\n    if (model.useAboveRangeColor || numberOfColors === 0) {\n      tptr[base] = model.aboveRangeColor[0] * 255.0 + 0.5;\n      tptr[base + 1] = model.aboveRangeColor[1] * 255.0 + 0.5;\n      tptr[base + 2] = model.aboveRangeColor[2] * 255.0 + 0.5;\n      tptr[base + 3] = model.aboveRangeColor[3] * 255.0 + 0.5;\n    } else {\n      // Duplicate the last color in the table.\n      tptr[base] = tptr[4 * (numberOfColors - 1) + 0];\n      tptr[base + 1] = tptr[4 * (numberOfColors - 1) + 1];\n      tptr[base + 2] = tptr[4 * (numberOfColors - 1) + 2];\n      tptr[base + 3] = tptr[4 * (numberOfColors - 1) + 3];\n    } // Always use NanColor\n\n\n    base = (numberOfColors + NAN_COLOR_INDEX) * 4;\n    tptr[base] = model.nanColor[0] * 255.0 + 0.5;\n    tptr[base + 1] = model.nanColor[1] * 255.0 + 0.5;\n    tptr[base + 2] = model.nanColor[2] * 255.0 + 0.5;\n    tptr[base + 3] = model.nanColor[3] * 255.0 + 0.5;\n  };\n\n  publicAPI.build = function () {\n    if (model.table.length < 1 || publicAPI.getMTime() > model.buildTime.getMTime() && model.insertTime.getMTime() <= model.buildTime.getMTime()) {\n      publicAPI.forceBuild();\n    }\n  };\n\n  if (model.table.length > 0) {\n    // ensure insertTime is more recently modified than buildTime if\n    // a table is provided via the constructor\n    model.insertTime.modified();\n  }\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  numberOfColors: 256,\n  // table: null,\n  hueRange: [0.0, 0.66667],\n  saturationRange: [1.0, 1.0],\n  valueRange: [1.0, 1.0],\n  alphaRange: [1.0, 1.0],\n  nanColor: [0.5, 0.0, 0.0, 1.0],\n  belowRangeColor: [0.0, 0.0, 0.0, 1.0],\n  aboveRangeColor: [1.0, 1.0, 1.0, 1.0],\n  useAboveRangeColor: false,\n  useBelowRangeColor: false,\n  alpha: 1.0 // buildTime: null,\n  // opaqueFlagBuildTime: null,\n  // insertTime: null,\n\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _ScalarsToColors_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues); // Internal objects initialization\n\n  if (!model.table) {\n    model.table = [];\n  }\n\n  model.buildTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.buildTime);\n  model.opaqueFlagBuildTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.opaqueFlagBuildTime, {\n    mtime: 0\n  });\n  model.insertTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.insertTime, {\n    mtime: 0\n  }); // Create get-only macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['buildTime']); // Create get-set macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['numberOfColors', 'useAboveRangeColor', 'useBelowRangeColor']); // Create set macros for array (needs to know size)\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setArray(publicAPI, model, ['alphaRange', 'hueRange', 'saturationRange', 'valueRange'], 2);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setArray(publicAPI, model, ['nanColor', 'belowRangeColor', 'aboveRangeColor'], 4); // Create get macros for array\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getArray(publicAPI, model, ['hueRange', 'saturationRange', 'valueRange', 'alphaRange', 'nanColor', 'belowRangeColor', 'aboveRangeColor']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkLookupTable(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkLookupTable'); // ----------------------------------------------------------------------------\n\nvar vtkLookupTable$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/LookupTable.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/Math/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/Math/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"$\": () => (/* binding */ binomial),\n/* harmony export */   \"A\": () => (/* binding */ degreesFromRadians),\n/* harmony export */   \"B\": () => (/* binding */ areEquals),\n/* harmony export */   \"C\": () => (/* binding */ clampValue),\n/* harmony export */   \"D\": () => (/* binding */ arrayRange),\n/* harmony export */   \"E\": () => (/* binding */ getMajorAxisIndex),\n/* harmony export */   \"F\": () => (/* binding */ isInf),\n/* harmony export */   \"G\": () => (/* binding */ rgb2hsv),\n/* harmony export */   \"H\": () => (/* binding */ rgb2lab),\n/* harmony export */   \"I\": () => (/* binding */ lab2rgb),\n/* harmony export */   \"J\": () => (/* binding */ floor),\n/* harmony export */   \"K\": () => (/* binding */ round),\n/* harmony export */   \"L\": () => (/* binding */ normalize2D),\n/* harmony export */   \"M\": () => (/* binding */ nearestPowerOfTwo),\n/* harmony export */   \"N\": () => (/* binding */ createUninitializedBounds),\n/* harmony export */   \"O\": () => (/* binding */ multiply3x3_vect3),\n/* harmony export */   \"P\": () => (/* binding */ areBoundsInitialized),\n/* harmony export */   \"Q\": () => (/* binding */ isPowerOfTwo),\n/* harmony export */   \"R\": () => (/* binding */ angleBetweenVectors),\n/* harmony export */   \"S\": () => (/* binding */ signedAngleBetweenVectors),\n/* harmony export */   \"T\": () => (/* binding */ Pi),\n/* harmony export */   \"U\": () => (/* binding */ ceil),\n/* harmony export */   \"V\": () => (/* binding */ min),\n/* harmony export */   \"W\": () => (/* binding */ max),\n/* harmony export */   \"X\": () => (/* binding */ arrayMin),\n/* harmony export */   \"Y\": () => (/* binding */ arrayMax),\n/* harmony export */   \"Z\": () => (/* binding */ ceilLog2),\n/* harmony export */   \"_\": () => (/* binding */ factorial),\n/* harmony export */   \"a\": () => (/* binding */ areMatricesEqual),\n/* harmony export */   \"a0\": () => (/* binding */ beginCombination),\n/* harmony export */   \"a1\": () => (/* binding */ nextCombination),\n/* harmony export */   \"a2\": () => (/* binding */ randomSeed),\n/* harmony export */   \"a3\": () => (/* binding */ getSeed),\n/* harmony export */   \"a4\": () => (/* binding */ gaussian),\n/* harmony export */   \"a5\": () => (/* binding */ multiplyScalar2D),\n/* harmony export */   \"a6\": () => (/* binding */ multiplyAccumulate2D),\n/* harmony export */   \"a7\": () => (/* binding */ outer),\n/* harmony export */   \"a8\": () => (/* binding */ projectVector),\n/* harmony export */   \"a9\": () => (/* binding */ dot2D),\n/* harmony export */   \"aA\": () => (/* binding */ hex2float),\n/* harmony export */   \"aB\": () => (/* binding */ lab2xyz),\n/* harmony export */   \"aC\": () => (/* binding */ xyz2lab),\n/* harmony export */   \"aD\": () => (/* binding */ xyz2rgb),\n/* harmony export */   \"aE\": () => (/* binding */ rgb2xyz),\n/* harmony export */   \"aF\": () => (/* binding */ clampAndNormalizeValue),\n/* harmony export */   \"aG\": () => (/* binding */ getScalarTypeFittingRange),\n/* harmony export */   \"aH\": () => (/* binding */ getAdjustedScalarRange),\n/* harmony export */   \"aI\": () => (/* binding */ extentIsWithinOtherExtent),\n/* harmony export */   \"aJ\": () => (/* binding */ boundsIsWithinOtherBounds),\n/* harmony export */   \"aK\": () => (/* binding */ pointIsWithinBounds),\n/* harmony export */   \"aL\": () => (/* binding */ solve3PointCircle),\n/* harmony export */   \"aM\": () => (/* binding */ inf),\n/* harmony export */   \"aN\": () => (/* binding */ negInf),\n/* harmony export */   \"aO\": () => (/* binding */ isFinite),\n/* harmony export */   \"aP\": () => (/* binding */ isNaN),\n/* harmony export */   \"aQ\": () => (/* binding */ floatToHex2),\n/* harmony export */   \"aR\": () => (/* binding */ floatRGB2HexCode),\n/* harmony export */   \"aS\": () => (/* binding */ float2CssRGBA),\n/* harmony export */   \"aa\": () => (/* binding */ projectVector2D),\n/* harmony export */   \"ab\": () => (/* binding */ gaussianAmplitude),\n/* harmony export */   \"ac\": () => (/* binding */ gaussianWeight),\n/* harmony export */   \"ad\": () => (/* binding */ outer2D),\n/* harmony export */   \"ae\": () => (/* binding */ norm2D),\n/* harmony export */   \"af\": () => (/* binding */ LUFactor3x3),\n/* harmony export */   \"ag\": () => (/* binding */ LUSolve3x3),\n/* harmony export */   \"ah\": () => (/* binding */ linearSolve3x3),\n/* harmony export */   \"ai\": () => (/* binding */ multiply3x3_mat3),\n/* harmony export */   \"aj\": () => (/* binding */ multiplyMatrix),\n/* harmony export */   \"ak\": () => (/* binding */ transpose3x3),\n/* harmony export */   \"al\": () => (/* binding */ invert3x3),\n/* harmony export */   \"am\": () => (/* binding */ identity3x3),\n/* harmony export */   \"an\": () => (/* binding */ quaternionToMatrix3x3),\n/* harmony export */   \"ao\": () => (/* binding */ roundNumber),\n/* harmony export */   \"ap\": () => (/* binding */ matrix3x3ToQuaternion),\n/* harmony export */   \"aq\": () => (/* binding */ multiplyQuaternion),\n/* harmony export */   \"ar\": () => (/* binding */ orthogonalize3x3),\n/* harmony export */   \"as\": () => (/* binding */ diagonalize3x3),\n/* harmony export */   \"at\": () => (/* binding */ singularValueDecomposition3x3),\n/* harmony export */   \"au\": () => (/* binding */ luFactorLinearSystem),\n/* harmony export */   \"av\": () => (/* binding */ luSolveLinearSystem),\n/* harmony export */   \"aw\": () => (/* binding */ invertMatrix),\n/* harmony export */   \"ax\": () => (/* binding */ estimateMatrixCondition),\n/* harmony export */   \"ay\": () => (/* binding */ solveHomogeneousLeastSquares),\n/* harmony export */   \"az\": () => (/* binding */ solveLeastSquares),\n/* harmony export */   \"b\": () => (/* binding */ roundVector),\n/* harmony export */   \"c\": () => (/* binding */ computeBoundsFromPoints),\n/* harmony export */   \"d\": () => (/* binding */ dot),\n/* harmony export */   \"e\": () => (/* binding */ clampVector),\n/* harmony export */   \"f\": () => (/* binding */ distance2BetweenPoints),\n/* harmony export */   \"g\": () => (/* binding */ subtract),\n/* harmony export */   \"h\": () => (/* binding */ hsv2rgb),\n/* harmony export */   \"i\": () => (/* binding */ isNan),\n/* harmony export */   \"j\": () => (/* binding */ cross),\n/* harmony export */   \"k\": () => (/* binding */ add),\n/* harmony export */   \"l\": () => (/* binding */ normalize),\n/* harmony export */   \"m\": () => (/* binding */ multiplyAccumulate),\n/* harmony export */   \"n\": () => (/* binding */ norm),\n/* harmony export */   \"o\": () => (/* binding */ determinant2x2),\n/* harmony export */   \"p\": () => (/* binding */ jacobiN),\n/* harmony export */   \"q\": () => (/* binding */ perpendiculars),\n/* harmony export */   \"r\": () => (/* binding */ radiansFromDegrees),\n/* harmony export */   \"s\": () => (/* binding */ solveLinearSystem),\n/* harmony export */   \"t\": () => (/* binding */ jacobi),\n/* harmony export */   \"u\": () => (/* binding */ uninitializeBounds),\n/* harmony export */   \"v\": () => (/* binding */ vtkMath$1),\n/* harmony export */   \"w\": () => (/* binding */ vtkMath),\n/* harmony export */   \"x\": () => (/* binding */ multiplyScalar),\n/* harmony export */   \"y\": () => (/* binding */ random),\n/* harmony export */   \"z\": () => (/* binding */ determinant3x3)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var seedrandom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! seedrandom */ \"./node_modules/seedrandom/index.js\");\n/* harmony import */ var seedrandom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(seedrandom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].vtkErrorMacro,\n    vtkWarningMacro = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].vtkWarningMacro; // ----------------------------------------------------------------------------\n\n/* eslint-disable camelcase                                                  */\n\n/* eslint-disable no-cond-assign                                             */\n\n/* eslint-disable no-bitwise                                                 */\n\n/* eslint-disable no-multi-assign                                            */\n// ----------------------------------------------------------------------------\n\nvar randomSeedValue = 0;\nvar VTK_MAX_ROTATIONS = 20;\nvar VTK_SMALL_NUMBER = 1.0e-12;\n\nfunction notImplemented(method) {\n  return function () {\n    return vtkErrorMacro(\"vtkMath::\".concat(method, \" - NOT IMPLEMENTED\"));\n  };\n}\n\nfunction vtkSwapVectors3(v1, v2) {\n  for (var i = 0; i < 3; i++) {\n    var tmp = v1[i];\n    v1[i] = v2[i];\n    v2[i] = tmp;\n  }\n}\n\nfunction createArray() {\n  var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3;\n  var array = [];\n\n  while (array.length < size) {\n    array.push(0);\n  }\n\n  return array;\n} // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\n\nvar Pi = function Pi() {\n  return Math.PI;\n};\nfunction radiansFromDegrees(deg) {\n  return deg / 180 * Math.PI;\n}\nfunction degreesFromRadians(rad) {\n  return rad * 180 / Math.PI;\n}\nvar round = Math.round,\n    floor = Math.floor,\n    ceil = Math.ceil,\n    min = Math.min,\n    max = Math.max;\nfunction arrayMin(arr) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var stride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  var minValue = Infinity;\n\n  for (var i = offset, len = arr.length; i < len; i += stride) {\n    if (arr[i] < minValue) {\n      minValue = arr[i];\n    }\n  }\n\n  return minValue;\n}\nfunction arrayMax(arr) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var stride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  var maxValue = -Infinity;\n\n  for (var i = offset, len = arr.length; i < len; i += stride) {\n    if (maxValue < arr[i]) {\n      maxValue = arr[i];\n    }\n  }\n\n  return maxValue;\n}\nfunction arrayRange(arr) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var stride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  var minValue = Infinity;\n  var maxValue = -Infinity;\n\n  for (var i = offset, len = arr.length; i < len; i += stride) {\n    if (arr[i] < minValue) {\n      minValue = arr[i];\n    }\n\n    if (maxValue < arr[i]) {\n      maxValue = arr[i];\n    }\n  }\n\n  return [minValue, maxValue];\n}\nvar ceilLog2 = notImplemented('ceilLog2');\nvar factorial = notImplemented('factorial');\nfunction nearestPowerOfTwo(xi) {\n  var v = 1;\n\n  while (v < xi) {\n    v *= 2;\n  }\n\n  return v;\n}\nfunction isPowerOfTwo(x) {\n  return x === nearestPowerOfTwo(x);\n}\nfunction binomial(m, n) {\n  var r = 1;\n\n  for (var i = 1; i <= n; ++i) {\n    r *= (m - i + 1) / i;\n  }\n\n  return Math.floor(r);\n}\nfunction beginCombination(m, n) {\n  if (m < n) {\n    return 0;\n  }\n\n  var r = createArray(n);\n\n  for (var i = 0; i < n; ++i) {\n    r[i] = i;\n  }\n\n  return r;\n}\nfunction nextCombination(m, n, r) {\n  var status = 0;\n\n  for (var i = n - 1; i >= 0; --i) {\n    if (r[i] < m - n + i) {\n      var j = r[i] + 1;\n\n      while (i < n) {\n        r[i++] = j++;\n      }\n\n      status = 1;\n      break;\n    }\n  }\n\n  return status;\n}\nfunction randomSeed(seed) {\n  seedrandom__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(seed), {\n    global: true\n  });\n  randomSeedValue = seed;\n}\nfunction getSeed() {\n  return randomSeedValue;\n}\nfunction random() {\n  var minValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  var maxValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  var delta = maxValue - minValue;\n  return minValue + delta * Math.random();\n}\nvar gaussian = notImplemented('gaussian'); // Vect3 operations\n\nfunction add(a, b, out) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  out[2] = a[2] + b[2];\n  return out;\n}\nfunction subtract(a, b, out) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  out[2] = a[2] - b[2];\n  return out;\n}\nfunction multiplyScalar(vec, scalar) {\n  vec[0] *= scalar;\n  vec[1] *= scalar;\n  vec[2] *= scalar;\n  return vec;\n}\nfunction multiplyScalar2D(vec, scalar) {\n  vec[0] *= scalar;\n  vec[1] *= scalar;\n  return vec;\n}\nfunction multiplyAccumulate(a, b, scalar, out) {\n  out[0] = a[0] + b[0] * scalar;\n  out[1] = a[1] + b[1] * scalar;\n  out[2] = a[2] + b[2] * scalar;\n  return out;\n}\nfunction multiplyAccumulate2D(a, b, scalar, out) {\n  out[0] = a[0] + b[0] * scalar;\n  out[1] = a[1] + b[1] * scalar;\n  return out;\n}\nfunction dot(x, y) {\n  return x[0] * y[0] + x[1] * y[1] + x[2] * y[2];\n}\nfunction outer(x, y, out_3x3) {\n  for (var i = 0; i < 3; i++) {\n    for (var j = 0; j < 3; j++) {\n      out_3x3[i][j] = x[i] * y[j];\n    }\n  }\n}\nfunction cross(x, y, out) {\n  var Zx = x[1] * y[2] - x[2] * y[1];\n  var Zy = x[2] * y[0] - x[0] * y[2];\n  var Zz = x[0] * y[1] - x[1] * y[0];\n  out[0] = Zx;\n  out[1] = Zy;\n  out[2] = Zz;\n  return out;\n}\nfunction norm(x) {\n  var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;\n\n  switch (n) {\n    case 1:\n      return Math.abs(x);\n\n    case 2:\n      return Math.sqrt(x[0] * x[0] + x[1] * x[1]);\n\n    case 3:\n      return Math.sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]);\n\n    default:\n      {\n        var sum = 0;\n\n        for (var i = 0; i < n; i++) {\n          sum += x[i] * x[i];\n        }\n\n        return Math.sqrt(sum);\n      }\n  }\n}\nfunction normalize(x) {\n  var den = norm(x);\n\n  if (den !== 0.0) {\n    x[0] /= den;\n    x[1] /= den;\n    x[2] /= den;\n  }\n\n  return den;\n}\nfunction perpendiculars(x, y, z, theta) {\n  var x2 = x[0] * x[0];\n  var y2 = x[1] * x[1];\n  var z2 = x[2] * x[2];\n  var r = Math.sqrt(x2 + y2 + z2);\n  var dx;\n  var dy;\n  var dz; // transpose the vector to avoid divide-by-zero error\n\n  if (x2 > y2 && x2 > z2) {\n    dx = 0;\n    dy = 1;\n    dz = 2;\n  } else if (y2 > z2) {\n    dx = 1;\n    dy = 2;\n    dz = 0;\n  } else {\n    dx = 2;\n    dy = 0;\n    dz = 1;\n  }\n\n  var a = x[dx] / r;\n  var b = x[dy] / r;\n  var c = x[dz] / r;\n  var tmp = Math.sqrt(a * a + c * c);\n\n  if (theta !== 0) {\n    var sintheta = Math.sin(theta);\n    var costheta = Math.cos(theta);\n\n    if (y) {\n      y[dx] = (c * costheta - a * b * sintheta) / tmp;\n      y[dy] = sintheta * tmp;\n      y[dz] = (-(a * costheta) - b * c * sintheta) / tmp;\n    }\n\n    if (z) {\n      z[dx] = (-(c * sintheta) - a * b * costheta) / tmp;\n      z[dy] = costheta * tmp;\n      z[dz] = (a * sintheta - b * c * costheta) / tmp;\n    }\n  } else {\n    if (y) {\n      y[dx] = c / tmp;\n      y[dy] = 0;\n      y[dz] = -a / tmp;\n    }\n\n    if (z) {\n      z[dx] = -a * b / tmp;\n      z[dy] = tmp;\n      z[dz] = -b * c / tmp;\n    }\n  }\n}\nfunction projectVector(a, b, projection) {\n  var bSquared = dot(b, b);\n\n  if (bSquared === 0) {\n    projection[0] = 0;\n    projection[1] = 0;\n    projection[2] = 0;\n    return false;\n  }\n\n  var scale = dot(a, b) / bSquared;\n\n  for (var i = 0; i < 3; i++) {\n    projection[i] = b[i];\n  }\n\n  multiplyScalar(projection, scale);\n  return true;\n}\nfunction dot2D(x, y) {\n  return x[0] * y[0] + x[1] * y[1];\n}\nfunction projectVector2D(a, b, projection) {\n  var bSquared = dot2D(b, b);\n\n  if (bSquared === 0) {\n    projection[0] = 0;\n    projection[1] = 0;\n    return false;\n  }\n\n  var scale = dot2D(a, b) / bSquared;\n\n  for (var i = 0; i < 2; i++) {\n    projection[i] = b[i];\n  }\n\n  multiplyScalar2D(projection, scale);\n  return true;\n}\nfunction distance2BetweenPoints(x, y) {\n  return (x[0] - y[0]) * (x[0] - y[0]) + (x[1] - y[1]) * (x[1] - y[1]) + (x[2] - y[2]) * (x[2] - y[2]);\n}\nfunction angleBetweenVectors(v1, v2) {\n  var crossVect = [0, 0, 0];\n  cross(v1, v2, crossVect);\n  return Math.atan2(norm(crossVect), dot(v1, v2));\n}\nfunction signedAngleBetweenVectors(v1, v2, vN) {\n  var crossVect = [0, 0, 0];\n  cross(v1, v2, crossVect);\n  var angle = Math.atan2(norm(crossVect), dot(v1, v2));\n  return dot(crossVect, vN) >= 0 ? angle : -angle;\n}\nfunction gaussianAmplitude(mean, variance, position) {\n  var distanceFromMean = Math.abs(mean - position);\n  return 1 / Math.sqrt(2 * Math.PI * variance) * Math.exp(-Math.pow(distanceFromMean, 2) / (2 * variance));\n}\nfunction gaussianWeight(mean, variance, position) {\n  var distanceFromMean = Math.abs(mean - position);\n  return Math.exp(-Math.pow(distanceFromMean, 2) / (2 * variance));\n}\nfunction outer2D(x, y, out_2x2) {\n  for (var i = 0; i < 2; i++) {\n    for (var j = 0; j < 2; j++) {\n      out_2x2[i][j] = x[i] * y[j];\n    }\n  }\n}\nfunction norm2D(x2D) {\n  return Math.sqrt(x2D[0] * x2D[0] + x2D[1] * x2D[1]);\n}\nfunction normalize2D(x) {\n  var den = norm2D(x);\n\n  if (den !== 0.0) {\n    x[0] /= den;\n    x[1] /= den;\n  }\n\n  return den;\n}\nfunction determinant2x2() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  if (args.length === 2) {\n    return args[0][0] * args[1][1] - args[1][0] * args[0][1];\n  }\n\n  if (args.length === 4) {\n    return args[0] * args[3] - args[1] * args[2];\n  }\n\n  return Number.NaN;\n}\nfunction LUFactor3x3(mat_3x3, index_3) {\n  var maxI;\n  var tmp;\n  var largest;\n  var scale = [0, 0, 0]; // Loop over rows to get implicit scaling information\n\n  for (var i = 0; i < 3; i++) {\n    largest = Math.abs(mat_3x3[i][0]);\n\n    if ((tmp = Math.abs(mat_3x3[i][1])) > largest) {\n      largest = tmp;\n    }\n\n    if ((tmp = Math.abs(mat_3x3[i][2])) > largest) {\n      largest = tmp;\n    }\n\n    scale[i] = 1 / largest;\n  } // Loop over all columns using Crout's method\n  // first column\n\n\n  largest = scale[0] * Math.abs(mat_3x3[0][0]);\n  maxI = 0;\n\n  if ((tmp = scale[1] * Math.abs(mat_3x3[1][0])) >= largest) {\n    largest = tmp;\n    maxI = 1;\n  }\n\n  if ((tmp = scale[2] * Math.abs(mat_3x3[2][0])) >= largest) {\n    maxI = 2;\n  }\n\n  if (maxI !== 0) {\n    vtkSwapVectors3(mat_3x3[maxI], mat_3x3[0]);\n    scale[maxI] = scale[0];\n  }\n\n  index_3[0] = maxI;\n  mat_3x3[1][0] /= mat_3x3[0][0];\n  mat_3x3[2][0] /= mat_3x3[0][0]; // second column\n\n  mat_3x3[1][1] -= mat_3x3[1][0] * mat_3x3[0][1];\n  mat_3x3[2][1] -= mat_3x3[2][0] * mat_3x3[0][1];\n  largest = scale[1] * Math.abs(mat_3x3[1][1]);\n  maxI = 1;\n\n  if ((tmp = scale[2] * Math.abs(mat_3x3[2][1])) >= largest) {\n    maxI = 2;\n    vtkSwapVectors3(mat_3x3[2], mat_3x3[1]);\n    scale[2] = scale[1];\n  }\n\n  index_3[1] = maxI;\n  mat_3x3[2][1] /= mat_3x3[1][1]; // third column\n\n  mat_3x3[1][2] -= mat_3x3[1][0] * mat_3x3[0][2];\n  mat_3x3[2][2] -= mat_3x3[2][0] * mat_3x3[0][2] + mat_3x3[2][1] * mat_3x3[1][2];\n  index_3[2] = 2;\n}\nfunction LUSolve3x3(mat_3x3, index_3, x_3) {\n  // forward substitution\n  var sum = x_3[index_3[0]];\n  x_3[index_3[0]] = x_3[0];\n  x_3[0] = sum;\n  sum = x_3[index_3[1]];\n  x_3[index_3[1]] = x_3[1];\n  x_3[1] = sum - mat_3x3[1][0] * x_3[0];\n  sum = x_3[index_3[2]];\n  x_3[index_3[2]] = x_3[2];\n  x_3[2] = sum - mat_3x3[2][0] * x_3[0] - mat_3x3[2][1] * x_3[1]; // back substitution\n\n  x_3[2] /= mat_3x3[2][2];\n  x_3[1] = (x_3[1] - mat_3x3[1][2] * x_3[2]) / mat_3x3[1][1];\n  x_3[0] = (x_3[0] - mat_3x3[0][1] * x_3[1] - mat_3x3[0][2] * x_3[2]) / mat_3x3[0][0];\n}\nfunction linearSolve3x3(mat_3x3, x_3, y_3) {\n  var a1 = mat_3x3[0][0];\n  var b1 = mat_3x3[0][1];\n  var c1 = mat_3x3[0][2];\n  var a2 = mat_3x3[1][0];\n  var b2 = mat_3x3[1][1];\n  var c2 = mat_3x3[1][2];\n  var a3 = mat_3x3[2][0];\n  var b3 = mat_3x3[2][1];\n  var c3 = mat_3x3[2][2]; // Compute the adjoint\n\n  var d1 = +determinant2x2(b2, b3, c2, c3);\n  var d2 = -determinant2x2(a2, a3, c2, c3);\n  var d3 = +determinant2x2(a2, a3, b2, b3);\n  var e1 = -determinant2x2(b1, b3, c1, c3);\n  var e2 = +determinant2x2(a1, a3, c1, c3);\n  var e3 = -determinant2x2(a1, a3, b1, b3);\n  var f1 = +determinant2x2(b1, b2, c1, c2);\n  var f2 = -determinant2x2(a1, a2, c1, c2);\n  var f3 = +determinant2x2(a1, a2, b1, b2); // Compute the determinant\n\n  var det = a1 * d1 + b1 * d2 + c1 * d3; // Multiply by the adjoint\n\n  var v1 = d1 * x_3[0] + e1 * x_3[1] + f1 * x_3[2];\n  var v2 = d2 * x_3[0] + e2 * x_3[1] + f2 * x_3[2];\n  var v3 = d3 * x_3[0] + e3 * x_3[1] + f3 * x_3[2]; // Divide by the determinant\n\n  y_3[0] = v1 / det;\n  y_3[1] = v2 / det;\n  y_3[2] = v3 / det;\n}\nfunction multiply3x3_vect3(mat_3x3, in_3, out_3) {\n  var x = mat_3x3[0][0] * in_3[0] + mat_3x3[0][1] * in_3[1] + mat_3x3[0][2] * in_3[2];\n  var y = mat_3x3[1][0] * in_3[0] + mat_3x3[1][1] * in_3[1] + mat_3x3[1][2] * in_3[2];\n  var z = mat_3x3[2][0] * in_3[0] + mat_3x3[2][1] * in_3[1] + mat_3x3[2][2] * in_3[2];\n  out_3[0] = x;\n  out_3[1] = y;\n  out_3[2] = z;\n}\nfunction multiply3x3_mat3(a_3x3, b_3x3, out_3x3) {\n  var tmp = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];\n\n  for (var i = 0; i < 3; i++) {\n    tmp[0][i] = a_3x3[0][0] * b_3x3[0][i] + a_3x3[0][1] * b_3x3[1][i] + a_3x3[0][2] * b_3x3[2][i];\n    tmp[1][i] = a_3x3[1][0] * b_3x3[0][i] + a_3x3[1][1] * b_3x3[1][i] + a_3x3[1][2] * b_3x3[2][i];\n    tmp[2][i] = a_3x3[2][0] * b_3x3[0][i] + a_3x3[2][1] * b_3x3[1][i] + a_3x3[2][2] * b_3x3[2][i];\n  }\n\n  for (var j = 0; j < 3; j++) {\n    out_3x3[j][0] = tmp[j][0];\n    out_3x3[j][1] = tmp[j][1];\n    out_3x3[j][2] = tmp[j][2];\n  }\n}\nfunction multiplyMatrix(a, b, rowA, colA, rowB, colB, out_rowXcol) {\n  // we need colA == rowB\n  if (colA !== rowB) {\n    vtkErrorMacro('Number of columns of A must match number of rows of B.');\n  } // output matrix is rowA*colB\n  // output row\n\n\n  for (var i = 0; i < rowA; i++) {\n    // output col\n    for (var j = 0; j < colB; j++) {\n      out_rowXcol[i][j] = 0; // sum for this point\n\n      for (var k = 0; k < colA; k++) {\n        out_rowXcol[i][j] += a[i][k] * b[k][j];\n      }\n    }\n  }\n}\nfunction transpose3x3(in_3x3, outT_3x3) {\n  var tmp;\n  tmp = in_3x3[1][0];\n  outT_3x3[1][0] = in_3x3[0][1];\n  outT_3x3[0][1] = tmp;\n  tmp = in_3x3[2][0];\n  outT_3x3[2][0] = in_3x3[0][2];\n  outT_3x3[0][2] = tmp;\n  tmp = in_3x3[2][1];\n  outT_3x3[2][1] = in_3x3[1][2];\n  outT_3x3[1][2] = tmp;\n  outT_3x3[0][0] = in_3x3[0][0];\n  outT_3x3[1][1] = in_3x3[1][1];\n  outT_3x3[2][2] = in_3x3[2][2];\n}\nfunction invert3x3(in_3x3, outI_3x3) {\n  var a1 = in_3x3[0][0];\n  var b1 = in_3x3[0][1];\n  var c1 = in_3x3[0][2];\n  var a2 = in_3x3[1][0];\n  var b2 = in_3x3[1][1];\n  var c2 = in_3x3[1][2];\n  var a3 = in_3x3[2][0];\n  var b3 = in_3x3[2][1];\n  var c3 = in_3x3[2][2]; // Compute the adjoint\n\n  var d1 = +determinant2x2(b2, b3, c2, c3);\n  var d2 = -determinant2x2(a2, a3, c2, c3);\n  var d3 = +determinant2x2(a2, a3, b2, b3);\n  var e1 = -determinant2x2(b1, b3, c1, c3);\n  var e2 = +determinant2x2(a1, a3, c1, c3);\n  var e3 = -determinant2x2(a1, a3, b1, b3);\n  var f1 = +determinant2x2(b1, b2, c1, c2);\n  var f2 = -determinant2x2(a1, a2, c1, c2);\n  var f3 = +determinant2x2(a1, a2, b1, b2); // Divide by the determinant\n\n  var det = a1 * d1 + b1 * d2 + c1 * d3;\n  outI_3x3[0][0] = d1 / det;\n  outI_3x3[1][0] = d2 / det;\n  outI_3x3[2][0] = d3 / det;\n  outI_3x3[0][1] = e1 / det;\n  outI_3x3[1][1] = e2 / det;\n  outI_3x3[2][1] = e3 / det;\n  outI_3x3[0][2] = f1 / det;\n  outI_3x3[1][2] = f2 / det;\n  outI_3x3[2][2] = f3 / det;\n}\nfunction identity3x3(mat_3x3) {\n  for (var i = 0; i < 3; i++) {\n    mat_3x3[i][0] = mat_3x3[i][1] = mat_3x3[i][2] = 0;\n    mat_3x3[i][i] = 1;\n  }\n}\nfunction determinant3x3(mat_3x3) {\n  return mat_3x3[0][0] * mat_3x3[1][1] * mat_3x3[2][2] + mat_3x3[1][0] * mat_3x3[2][1] * mat_3x3[0][2] + mat_3x3[2][0] * mat_3x3[0][1] * mat_3x3[1][2] - mat_3x3[0][0] * mat_3x3[2][1] * mat_3x3[1][2] - mat_3x3[1][0] * mat_3x3[0][1] * mat_3x3[2][2] - mat_3x3[2][0] * mat_3x3[1][1] * mat_3x3[0][2];\n}\nfunction quaternionToMatrix3x3(quat_4, mat_3x3) {\n  var ww = quat_4[0] * quat_4[0];\n  var wx = quat_4[0] * quat_4[1];\n  var wy = quat_4[0] * quat_4[2];\n  var wz = quat_4[0] * quat_4[3];\n  var xx = quat_4[1] * quat_4[1];\n  var yy = quat_4[2] * quat_4[2];\n  var zz = quat_4[3] * quat_4[3];\n  var xy = quat_4[1] * quat_4[2];\n  var xz = quat_4[1] * quat_4[3];\n  var yz = quat_4[2] * quat_4[3];\n  var rr = xx + yy + zz; // normalization factor, just in case quaternion was not normalized\n\n  var f = 1 / (ww + rr);\n  var s = (ww - rr) * f;\n  f *= 2;\n  mat_3x3[0][0] = xx * f + s;\n  mat_3x3[1][0] = (xy + wz) * f;\n  mat_3x3[2][0] = (xz - wy) * f;\n  mat_3x3[0][1] = (xy - wz) * f;\n  mat_3x3[1][1] = yy * f + s;\n  mat_3x3[2][1] = (yz + wx) * f;\n  mat_3x3[0][2] = (xz + wy) * f;\n  mat_3x3[1][2] = (yz - wx) * f;\n  mat_3x3[2][2] = zz * f + s;\n}\n/**\n * Returns true if elements of both arrays are equals.\n * @param {Array} a an array of numbers (vector, point, matrix...)\n * @param {Array} b an array of numbers (vector, point, matrix...)\n * @param {Number} eps tolerance\n */\n\nfunction areEquals(a, b) {\n  var eps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1e-6;\n\n  if (a.length !== b.length) {\n    return false;\n  }\n\n  function isEqual(element, index) {\n    return Math.abs(element - b[index]) <= eps;\n  }\n\n  return a.every(isEqual);\n}\nvar areMatricesEqual = areEquals;\nfunction roundNumber(num) {\n  var digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n  if (!\"\".concat(num).includes('e')) {\n    return +\"\".concat(Math.round(\"\".concat(num, \"e+\").concat(digits)), \"e-\").concat(digits);\n  }\n\n  var arr = \"\".concat(num).split('e');\n  var sig = '';\n\n  if (+arr[1] + digits > 0) {\n    sig = '+';\n  }\n\n  return +\"\".concat(Math.round(\"\".concat(+arr[0], \"e\").concat(sig).concat(+arr[1] + digits)), \"e-\").concat(digits);\n}\nfunction roundVector(vector) {\n  var out = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0];\n  var digits = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n  out[0] = roundNumber(vector[0], digits);\n  out[1] = roundNumber(vector[1], digits);\n  out[2] = roundNumber(vector[2], digits);\n  return out;\n}\nfunction jacobiN(a, n, w, v) {\n  var i;\n  var j;\n  var k;\n  var iq;\n  var ip;\n  var numPos;\n  var tresh;\n  var theta;\n  var t;\n  var tau;\n  var sm;\n  var s;\n  var h;\n  var g;\n  var c;\n  var tmp;\n  var b = createArray(n);\n  var z = createArray(n);\n\n  var vtkROTATE = function vtkROTATE(aa, ii, jj, kk, ll) {\n    g = aa[ii][jj];\n    h = aa[kk][ll];\n    aa[ii][jj] = g - s * (h + g * tau);\n    aa[kk][ll] = h + s * (g - h * tau);\n  }; // initialize\n\n\n  for (ip = 0; ip < n; ip++) {\n    for (iq = 0; iq < n; iq++) {\n      v[ip][iq] = 0.0;\n    }\n\n    v[ip][ip] = 1.0;\n  }\n\n  for (ip = 0; ip < n; ip++) {\n    b[ip] = w[ip] = a[ip][ip];\n    z[ip] = 0.0;\n  } // begin rotation sequence\n\n\n  for (i = 0; i < VTK_MAX_ROTATIONS; i++) {\n    sm = 0.0;\n\n    for (ip = 0; ip < n - 1; ip++) {\n      for (iq = ip + 1; iq < n; iq++) {\n        sm += Math.abs(a[ip][iq]);\n      }\n    }\n\n    if (sm === 0.0) {\n      break;\n    } // first 3 sweeps\n\n\n    if (i < 3) {\n      tresh = 0.2 * sm / (n * n);\n    } else {\n      tresh = 0.0;\n    }\n\n    for (ip = 0; ip < n - 1; ip++) {\n      for (iq = ip + 1; iq < n; iq++) {\n        g = 100.0 * Math.abs(a[ip][iq]); // after 4 sweeps\n\n        if (i > 3 && Math.abs(w[ip]) + g === Math.abs(w[ip]) && Math.abs(w[iq]) + g === Math.abs(w[iq])) {\n          a[ip][iq] = 0.0;\n        } else if (Math.abs(a[ip][iq]) > tresh) {\n          h = w[iq] - w[ip];\n\n          if (Math.abs(h) + g === Math.abs(h)) {\n            t = a[ip][iq] / h;\n          } else {\n            theta = 0.5 * h / a[ip][iq];\n            t = 1.0 / (Math.abs(theta) + Math.sqrt(1.0 + theta * theta));\n\n            if (theta < 0.0) {\n              t = -t;\n            }\n          }\n\n          c = 1.0 / Math.sqrt(1 + t * t);\n          s = t * c;\n          tau = s / (1.0 + c);\n          h = t * a[ip][iq];\n          z[ip] -= h;\n          z[iq] += h;\n          w[ip] -= h;\n          w[iq] += h;\n          a[ip][iq] = 0.0; // ip already shifted left by 1 unit\n\n          for (j = 0; j <= ip - 1; j++) {\n            vtkROTATE(a, j, ip, j, iq);\n          } // ip and iq already shifted left by 1 unit\n\n\n          for (j = ip + 1; j <= iq - 1; j++) {\n            vtkROTATE(a, ip, j, j, iq);\n          } // iq already shifted left by 1 unit\n\n\n          for (j = iq + 1; j < n; j++) {\n            vtkROTATE(a, ip, j, iq, j);\n          }\n\n          for (j = 0; j < n; j++) {\n            vtkROTATE(v, j, ip, j, iq);\n          }\n        }\n      }\n    }\n\n    for (ip = 0; ip < n; ip++) {\n      b[ip] += z[ip];\n      w[ip] = b[ip];\n      z[ip] = 0.0;\n    }\n  } // this is NEVER called\n\n\n  if (i >= VTK_MAX_ROTATIONS) {\n    vtkWarningMacro('vtkMath::Jacobi: Error extracting eigenfunctions');\n    return 0;\n  } // sort eigenfunctions: these changes do not affect accuracy\n\n\n  for (j = 0; j < n - 1; j++) {\n    // boundary incorrect\n    k = j;\n    tmp = w[k];\n\n    for (i = j + 1; i < n; i++) {\n      // boundary incorrect, shifted already\n      if (w[i] >= tmp || Math.abs(w[i] - tmp) < VTK_SMALL_NUMBER) {\n        // why exchange if same?\n        k = i;\n        tmp = w[k];\n      }\n    }\n\n    if (k !== j) {\n      w[k] = w[j];\n      w[j] = tmp;\n\n      for (i = 0; i < n; i++) {\n        tmp = v[i][j];\n        v[i][j] = v[i][k];\n        v[i][k] = tmp;\n      }\n    }\n  } // ensure eigenvector consistency (i.e., Jacobi can compute vectors that\n  // are negative of one another (.707,.707,0) and (-.707,-.707,0). This can\n  // reek havoc in hyperstreamline/other stuff. We will select the most\n  // positive eigenvector.\n\n\n  var ceil_half_n = (n >> 1) + (n & 1);\n\n  for (j = 0; j < n; j++) {\n    for (numPos = 0, i = 0; i < n; i++) {\n      if (v[i][j] >= 0.0) {\n        numPos++;\n      }\n    } //    if ( numPos < ceil(double(n)/double(2.0)) )\n\n\n    if (numPos < ceil_half_n) {\n      for (i = 0; i < n; i++) {\n        v[i][j] *= -1.0;\n      }\n    }\n  }\n\n  return 1;\n}\nfunction matrix3x3ToQuaternion(mat_3x3, quat_4) {\n  var tmp = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]; // on-diagonal elements\n\n  tmp[0][0] = mat_3x3[0][0] + mat_3x3[1][1] + mat_3x3[2][2];\n  tmp[1][1] = mat_3x3[0][0] - mat_3x3[1][1] - mat_3x3[2][2];\n  tmp[2][2] = -mat_3x3[0][0] + mat_3x3[1][1] - mat_3x3[2][2];\n  tmp[3][3] = -mat_3x3[0][0] - mat_3x3[1][1] + mat_3x3[2][2]; // off-diagonal elements\n\n  tmp[0][1] = tmp[1][0] = mat_3x3[2][1] - mat_3x3[1][2];\n  tmp[0][2] = tmp[2][0] = mat_3x3[0][2] - mat_3x3[2][0];\n  tmp[0][3] = tmp[3][0] = mat_3x3[1][0] - mat_3x3[0][1];\n  tmp[1][2] = tmp[2][1] = mat_3x3[1][0] + mat_3x3[0][1];\n  tmp[1][3] = tmp[3][1] = mat_3x3[0][2] + mat_3x3[2][0];\n  tmp[2][3] = tmp[3][2] = mat_3x3[2][1] + mat_3x3[1][2];\n  var eigenvectors = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];\n  var eigenvalues = [0, 0, 0, 0]; // convert into format that JacobiN can use,\n  // then use Jacobi to find eigenvalues and eigenvectors\n\n  var NTemp = [0, 0, 0, 0];\n  var eigenvectorsTemp = [0, 0, 0, 0];\n\n  for (var i = 0; i < 4; i++) {\n    NTemp[i] = tmp[i];\n    eigenvectorsTemp[i] = eigenvectors[i];\n  }\n\n  jacobiN(NTemp, 4, eigenvalues, eigenvectorsTemp); // the first eigenvector is the one we want\n\n  quat_4[0] = eigenvectors[0][0];\n  quat_4[1] = eigenvectors[1][0];\n  quat_4[2] = eigenvectors[2][0];\n  quat_4[3] = eigenvectors[3][0];\n}\nfunction multiplyQuaternion(quat_1, quat_2, quat_out) {\n  var ww = quat_1[0] * quat_2[0];\n  var wx = quat_1[0] * quat_2[1];\n  var wy = quat_1[0] * quat_2[2];\n  var wz = quat_1[0] * quat_2[3];\n  var xw = quat_1[1] * quat_2[0];\n  var xx = quat_1[1] * quat_2[1];\n  var xy = quat_1[1] * quat_2[2];\n  var xz = quat_1[1] * quat_2[3];\n  var yw = quat_1[2] * quat_2[0];\n  var yx = quat_1[2] * quat_2[1];\n  var yy = quat_1[2] * quat_2[2];\n  var yz = quat_1[2] * quat_2[3];\n  var zw = quat_1[3] * quat_2[0];\n  var zx = quat_1[3] * quat_2[1];\n  var zy = quat_1[3] * quat_2[2];\n  var zz = quat_1[3] * quat_2[3];\n  quat_out[0] = ww - xx - yy - zz;\n  quat_out[1] = wx + xw + yz - zy;\n  quat_out[2] = wy - xz + yw + zx;\n  quat_out[3] = wz + xy - yx + zw;\n}\nfunction orthogonalize3x3(a_3x3, out_3x3) {\n  // copy the matrix\n  for (var i = 0; i < 3; i++) {\n    out_3x3[0][i] = a_3x3[0][i];\n    out_3x3[1][i] = a_3x3[1][i];\n    out_3x3[2][i] = a_3x3[2][i];\n  } // Pivot the matrix to improve accuracy\n\n\n  var scale = createArray(3);\n  var index = createArray(3);\n  var largest; // Loop over rows to get implicit scaling information\n\n  for (var _i = 0; _i < 3; _i++) {\n    var _x = Math.abs(out_3x3[_i][0]);\n\n    var _x2 = Math.abs(out_3x3[_i][1]);\n\n    var _x3 = Math.abs(out_3x3[_i][2]);\n\n    largest = _x2 > _x ? _x2 : _x;\n    largest = _x3 > largest ? _x3 : largest;\n    scale[_i] = 1;\n\n    if (largest !== 0) {\n      scale[_i] /= largest;\n    }\n  } // first column\n\n\n  var x1 = Math.abs(out_3x3[0][0]) * scale[0];\n  var x2 = Math.abs(out_3x3[1][0]) * scale[1];\n  var x3 = Math.abs(out_3x3[2][0]) * scale[2];\n  index[0] = 0;\n  largest = x1;\n\n  if (x2 >= largest) {\n    largest = x2;\n    index[0] = 1;\n  }\n\n  if (x3 >= largest) {\n    index[0] = 2;\n  }\n\n  if (index[0] !== 0) {\n    vtkSwapVectors3(out_3x3[index[0]], out_3x3[0]);\n    scale[index[0]] = scale[0];\n  } // second column\n\n\n  var y2 = Math.abs(out_3x3[1][1]) * scale[1];\n  var y3 = Math.abs(out_3x3[2][1]) * scale[2];\n  index[1] = 1;\n  largest = y2;\n\n  if (y3 >= largest) {\n    index[1] = 2;\n    vtkSwapVectors3(out_3x3[2], out_3x3[1]);\n  } // third column\n\n\n  index[2] = 2; // A quaternion can only describe a pure rotation, not\n  // a rotation with a flip, therefore the flip must be\n  // removed before the matrix is converted to a quaternion.\n\n  var flip = 0;\n\n  if (determinant3x3(out_3x3) < 0) {\n    flip = 1;\n\n    for (var _i2 = 0; _i2 < 3; _i2++) {\n      out_3x3[0][_i2] = -out_3x3[0][_i2];\n      out_3x3[1][_i2] = -out_3x3[1][_i2];\n      out_3x3[2][_i2] = -out_3x3[2][_i2];\n    }\n  } // Do orthogonalization using a quaternion intermediate\n  // (this, essentially, does the orthogonalization via\n  // diagonalization of an appropriately constructed symmetric\n  // 4x4 matrix rather than by doing SVD of the 3x3 matrix)\n\n\n  var quat = createArray(4);\n  matrix3x3ToQuaternion(out_3x3, quat);\n  quaternionToMatrix3x3(quat, out_3x3); // Put the flip back into the orthogonalized matrix.\n\n  if (flip) {\n    for (var _i3 = 0; _i3 < 3; _i3++) {\n      out_3x3[0][_i3] = -out_3x3[0][_i3];\n      out_3x3[1][_i3] = -out_3x3[1][_i3];\n      out_3x3[2][_i3] = -out_3x3[2][_i3];\n    }\n  } // Undo the pivoting\n\n\n  if (index[1] !== 1) {\n    vtkSwapVectors3(out_3x3[index[1]], out_3x3[1]);\n  }\n\n  if (index[0] !== 0) {\n    vtkSwapVectors3(out_3x3[index[0]], out_3x3[0]);\n  }\n}\nfunction diagonalize3x3(a_3x3, w_3, v_3x3) {\n  var i;\n  var j;\n  var k;\n  var maxI;\n  var tmp;\n  var maxVal; // do the matrix[3][3] to **matrix conversion for Jacobi\n\n  var C = [createArray(3), createArray(3), createArray(3)];\n  var ATemp = createArray(3);\n  var VTemp = createArray(3);\n\n  for (i = 0; i < 3; i++) {\n    C[i][0] = a_3x3[i][0];\n    C[i][1] = a_3x3[i][1];\n    C[i][2] = a_3x3[i][2];\n    ATemp[i] = C[i];\n    VTemp[i] = v_3x3[i];\n  } // diagonalize using Jacobi\n\n\n  jacobiN(ATemp, 3, w_3, VTemp); // if all the eigenvalues are the same, return identity matrix\n\n  if (w_3[0] === w_3[1] && w_3[0] === w_3[2]) {\n    identity3x3(v_3x3);\n    return;\n  } // transpose temporarily, it makes it easier to sort the eigenvectors\n\n\n  transpose3x3(v_3x3, v_3x3); // if two eigenvalues are the same, re-orthogonalize to optimally line\n  // up the eigenvectors with the x, y, and z axes\n\n  for (i = 0; i < 3; i++) {\n    // two eigenvalues are the same\n    if (w_3[(i + 1) % 3] === w_3[(i + 2) % 3]) {\n      // find maximum element of the independent eigenvector\n      maxVal = Math.abs(v_3x3[i][0]);\n      maxI = 0;\n\n      for (j = 1; j < 3; j++) {\n        if (maxVal < (tmp = Math.abs(v_3x3[i][j]))) {\n          maxVal = tmp;\n          maxI = j;\n        }\n      } // swap the eigenvector into its proper position\n\n\n      if (maxI !== i) {\n        tmp = w_3[maxI];\n        w_3[maxI] = w_3[i];\n        w_3[i] = tmp;\n        vtkSwapVectors3(v_3x3[i], v_3x3[maxI]);\n      } // maximum element of eigenvector should be positive\n\n\n      if (v_3x3[maxI][maxI] < 0) {\n        v_3x3[maxI][0] = -v_3x3[maxI][0];\n        v_3x3[maxI][1] = -v_3x3[maxI][1];\n        v_3x3[maxI][2] = -v_3x3[maxI][2];\n      } // re-orthogonalize the other two eigenvectors\n\n\n      j = (maxI + 1) % 3;\n      k = (maxI + 2) % 3;\n      v_3x3[j][0] = 0.0;\n      v_3x3[j][1] = 0.0;\n      v_3x3[j][2] = 0.0;\n      v_3x3[j][j] = 1.0;\n      cross(v_3x3[maxI], v_3x3[j], v_3x3[k]);\n      normalize(v_3x3[k]);\n      cross(v_3x3[k], v_3x3[maxI], v_3x3[j]); // transpose vectors back to columns\n\n      transpose3x3(v_3x3, v_3x3);\n      return;\n    }\n  } // the three eigenvalues are different, just sort the eigenvectors\n  // to align them with the x, y, and z axes\n  // find the vector with the largest x element, make that vector\n  // the first vector\n\n\n  maxVal = Math.abs(v_3x3[0][0]);\n  maxI = 0;\n\n  for (i = 1; i < 3; i++) {\n    if (maxVal < (tmp = Math.abs(v_3x3[i][0]))) {\n      maxVal = tmp;\n      maxI = i;\n    }\n  } // swap eigenvalue and eigenvector\n\n\n  if (maxI !== 0) {\n    tmp = w_3[maxI];\n    w_3[maxI] = w_3[0];\n    w_3[0] = tmp;\n    vtkSwapVectors3(v_3x3[maxI], v_3x3[0]);\n  } // do the same for the y element\n\n\n  if (Math.abs(v_3x3[1][1]) < Math.abs(v_3x3[2][1])) {\n    tmp = w_3[2];\n    w_3[2] = w_3[1];\n    w_3[1] = tmp;\n    vtkSwapVectors3(v_3x3[2], v_3x3[1]);\n  } // ensure that the sign of the eigenvectors is correct\n\n\n  for (i = 0; i < 2; i++) {\n    if (v_3x3[i][i] < 0) {\n      v_3x3[i][0] = -v_3x3[i][0];\n      v_3x3[i][1] = -v_3x3[i][1];\n      v_3x3[i][2] = -v_3x3[i][2];\n    }\n  } // set sign of final eigenvector to ensure that determinant is positive\n\n\n  if (determinant3x3(v_3x3) < 0) {\n    v_3x3[2][0] = -v_3x3[2][0];\n    v_3x3[2][1] = -v_3x3[2][1];\n    v_3x3[2][2] = -v_3x3[2][2];\n  } // transpose the eigenvectors back again\n\n\n  transpose3x3(v_3x3, v_3x3);\n}\nfunction singularValueDecomposition3x3(a_3x3, u_3x3, w_3, vT_3x3) {\n  var i;\n  var B = [createArray(3), createArray(3), createArray(3)]; // copy so that A can be used for U or VT without risk\n\n  for (i = 0; i < 3; i++) {\n    B[0][i] = a_3x3[0][i];\n    B[1][i] = a_3x3[1][i];\n    B[2][i] = a_3x3[2][i];\n  } // temporarily flip if determinant is negative\n\n\n  var d = determinant3x3(B);\n\n  if (d < 0) {\n    for (i = 0; i < 3; i++) {\n      B[0][i] = -B[0][i];\n      B[1][i] = -B[1][i];\n      B[2][i] = -B[2][i];\n    }\n  } // orthogonalize, diagonalize, etc.\n\n\n  orthogonalize3x3(B, u_3x3);\n  transpose3x3(B, B);\n  multiply3x3_mat3(B, u_3x3, vT_3x3);\n  diagonalize3x3(vT_3x3, w_3, vT_3x3);\n  multiply3x3_mat3(u_3x3, vT_3x3, u_3x3);\n  transpose3x3(vT_3x3, vT_3x3); // re-create the flip\n\n  if (d < 0) {\n    w_3[0] = -w_3[0];\n    w_3[1] = -w_3[1];\n    w_3[2] = -w_3[2];\n  }\n}\nfunction luFactorLinearSystem(A, index, size) {\n  var i;\n  var j;\n  var k;\n  var largest;\n  var maxI = 0;\n  var sum;\n  var temp1;\n  var temp2;\n  var scale = createArray(size); //\n  // Loop over rows to get implicit scaling information\n  //\n\n  for (i = 0; i < size; i++) {\n    for (largest = 0.0, j = 0; j < size; j++) {\n      if ((temp2 = Math.abs(A[i][j])) > largest) {\n        largest = temp2;\n      }\n    }\n\n    if (largest === 0.0) {\n      vtkWarningMacro('Unable to factor linear system');\n      return 0;\n    }\n\n    scale[i] = 1.0 / largest;\n  } //\n  // Loop over all columns using Crout's method\n  //\n\n\n  for (j = 0; j < size; j++) {\n    for (i = 0; i < j; i++) {\n      sum = A[i][j];\n\n      for (k = 0; k < i; k++) {\n        sum -= A[i][k] * A[k][j];\n      }\n\n      A[i][j] = sum;\n    } //\n    // Begin search for largest pivot element\n    //\n\n\n    for (largest = 0.0, i = j; i < size; i++) {\n      sum = A[i][j];\n\n      for (k = 0; k < j; k++) {\n        sum -= A[i][k] * A[k][j];\n      }\n\n      A[i][j] = sum;\n\n      if ((temp1 = scale[i] * Math.abs(sum)) >= largest) {\n        largest = temp1;\n        maxI = i;\n      }\n    } //\n    // Check for row interchange\n    //\n\n\n    if (j !== maxI) {\n      for (k = 0; k < size; k++) {\n        temp1 = A[maxI][k];\n        A[maxI][k] = A[j][k];\n        A[j][k] = temp1;\n      }\n\n      scale[maxI] = scale[j];\n    } //\n    // Divide by pivot element and perform elimination\n    //\n\n\n    index[j] = maxI;\n\n    if (Math.abs(A[j][j]) <= VTK_SMALL_NUMBER) {\n      vtkWarningMacro('Unable to factor linear system');\n      return 0;\n    }\n\n    if (j !== size - 1) {\n      temp1 = 1.0 / A[j][j];\n\n      for (i = j + 1; i < size; i++) {\n        A[i][j] *= temp1;\n      }\n    }\n  }\n\n  return 1;\n}\nfunction luSolveLinearSystem(A, index, x, size) {\n  var i;\n  var j;\n  var ii;\n  var idx;\n  var sum; //\n  // Proceed with forward and backsubstitution for L and U\n  // matrices.  First, forward substitution.\n  //\n\n  for (ii = -1, i = 0; i < size; i++) {\n    idx = index[i];\n    sum = x[idx];\n    x[idx] = x[i];\n\n    if (ii >= 0) {\n      for (j = ii; j <= i - 1; j++) {\n        sum -= A[i][j] * x[j];\n      }\n    } else if (sum !== 0.0) {\n      ii = i;\n    }\n\n    x[i] = sum;\n  } //\n  // Now, back substitution\n  //\n\n\n  for (i = size - 1; i >= 0; i--) {\n    sum = x[i];\n\n    for (j = i + 1; j < size; j++) {\n      sum -= A[i][j] * x[j];\n    }\n\n    x[i] = sum / A[i][i];\n  }\n}\nfunction solveLinearSystem(A, x, size) {\n  // if we solving something simple, just solve it\n  if (size === 2) {\n    var y = createArray(2);\n    var det = determinant2x2(A[0][0], A[0][1], A[1][0], A[1][1]);\n\n    if (det === 0.0) {\n      // Unable to solve linear system\n      return 0;\n    }\n\n    y[0] = (A[1][1] * x[0] - A[0][1] * x[1]) / det;\n    y[1] = (-(A[1][0] * x[0]) + A[0][0] * x[1]) / det;\n    x[0] = y[0];\n    x[1] = y[1];\n    return 1;\n  }\n\n  if (size === 1) {\n    if (A[0][0] === 0.0) {\n      // Unable to solve linear system\n      return 0;\n    }\n\n    x[0] /= A[0][0];\n    return 1;\n  } //\n  // System of equations is not trivial, use Crout's method\n  //\n  // Check on allocation of working vectors\n\n\n  var index = createArray(size); // Factor and solve matrix\n\n  if (luFactorLinearSystem(A, index, size) === 0) {\n    return 0;\n  }\n\n  luSolveLinearSystem(A, index, x, size);\n  return 1;\n}\nfunction invertMatrix(A, AI, size) {\n  var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n  var column = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n  var tmp1Size = index || createArray(size);\n  var tmp2Size = column || createArray(size); // Factor matrix; then begin solving for inverse one column at a time.\n  // Note: tmp1Size returned value is used later, tmp2Size is just working\n  // memory whose values are not used in LUSolveLinearSystem\n\n  if (luFactorLinearSystem(A, tmp1Size, size) === 0) {\n    return 0;\n  }\n\n  for (var j = 0; j < size; j++) {\n    for (var i = 0; i < size; i++) {\n      tmp2Size[i] = 0.0;\n    }\n\n    tmp2Size[j] = 1.0;\n    luSolveLinearSystem(A, tmp1Size, tmp2Size, size);\n\n    for (var _i4 = 0; _i4 < size; _i4++) {\n      AI[_i4][j] = tmp2Size[_i4];\n    }\n  }\n\n  return 1;\n}\nfunction estimateMatrixCondition(A, size) {\n  var minValue = +Number.MAX_VALUE;\n  var maxValue = -Number.MAX_VALUE; // find the maximum value\n\n  for (var i = 0; i < size; i++) {\n    for (var j = i; j < size; j++) {\n      if (Math.abs(A[i][j]) > max) {\n        maxValue = Math.abs(A[i][j]);\n      }\n    }\n  } // find the minimum diagonal value\n\n\n  for (var _i5 = 0; _i5 < size; _i5++) {\n    if (Math.abs(A[_i5][_i5]) < min) {\n      minValue = Math.abs(A[_i5][_i5]);\n    }\n  }\n\n  if (minValue === 0.0) {\n    return Number.MAX_VALUE;\n  }\n\n  return maxValue / minValue;\n}\nfunction jacobi(a_3x3, w, v) {\n  return jacobiN(a_3x3, 3, w, v);\n}\nfunction solveHomogeneousLeastSquares(numberOfSamples, xt, xOrder, mt) {\n  // check dimensional consistency\n  if (numberOfSamples < xOrder) {\n    vtkWarningMacro('Insufficient number of samples. Underdetermined.');\n    return 0;\n  }\n\n  var i;\n  var j;\n  var k; // set up intermediate variables\n  // Allocate matrix to hold X times transpose of X\n\n  var XXt = createArray(xOrder); // size x by x\n  // Allocate the array of eigenvalues and eigenvectors\n\n  var eigenvals = createArray(xOrder);\n  var eigenvecs = createArray(xOrder); // Clear the upper triangular region (and btw, allocate the eigenvecs as well)\n\n  for (i = 0; i < xOrder; i++) {\n    eigenvecs[i] = createArray(xOrder);\n    XXt[i] = createArray(xOrder);\n\n    for (j = 0; j < xOrder; j++) {\n      XXt[i][j] = 0.0;\n    }\n  } // Calculate XXt upper half only, due to symmetry\n\n\n  for (k = 0; k < numberOfSamples; k++) {\n    for (i = 0; i < xOrder; i++) {\n      for (j = i; j < xOrder; j++) {\n        XXt[i][j] += xt[k][i] * xt[k][j];\n      }\n    }\n  } // now fill in the lower half of the XXt matrix\n\n\n  for (i = 0; i < xOrder; i++) {\n    for (j = 0; j < i; j++) {\n      XXt[i][j] = XXt[j][i];\n    }\n  } // Compute the eigenvectors and eigenvalues\n\n\n  jacobiN(XXt, xOrder, eigenvals, eigenvecs); // Smallest eigenval is at the end of the list (xOrder-1), and solution is\n  // corresponding eigenvec.\n\n  for (i = 0; i < xOrder; i++) {\n    mt[i][0] = eigenvecs[i][xOrder - 1];\n  }\n\n  return 1;\n}\nfunction solveLeastSquares(numberOfSamples, xt, xOrder, yt, yOrder, mt) {\n  var checkHomogeneous = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : true;\n\n  // check dimensional consistency\n  if (numberOfSamples < xOrder || numberOfSamples < yOrder) {\n    vtkWarningMacro('Insufficient number of samples. Underdetermined.');\n    return 0;\n  }\n\n  var homogenFlags = createArray(yOrder);\n  var allHomogeneous = 1;\n  var hmt;\n  var homogRC = 0;\n  var i;\n  var j;\n  var k;\n  var someHomogeneous = 0; // Ok, first init some flags check and see if all the systems are homogeneous\n\n  if (checkHomogeneous) {\n    // If Y' is zero, it's a homogeneous system and can't be solved via\n    // the pseudoinverse method. Detect this case, warn the user, and\n    // invoke SolveHomogeneousLeastSquares instead. Note that it doesn't\n    // really make much sense for yOrder to be greater than one in this case,\n    // since that's just yOrder occurrences of a 0 vector on the RHS, but\n    // we allow it anyway. N\n    // Initialize homogeneous flags on a per-right-hand-side basis\n    for (j = 0; j < yOrder; j++) {\n      homogenFlags[j] = 1;\n    }\n\n    for (i = 0; i < numberOfSamples; i++) {\n      for (j = 0; j < yOrder; j++) {\n        if (Math.abs(yt[i][j]) > VTK_SMALL_NUMBER) {\n          allHomogeneous = 0;\n          homogenFlags[j] = 0;\n        }\n      }\n    } // If we've got one system, and it's homogeneous, do it and bail out quickly.\n\n\n    if (allHomogeneous && yOrder === 1) {\n      vtkWarningMacro('Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()');\n      return solveHomogeneousLeastSquares(numberOfSamples, xt, xOrder, mt);\n    } // Ok, we've got more than one system of equations.\n    // Figure out if we need to calculate the homogeneous equation solution for\n    // any of them.\n\n\n    if (allHomogeneous) {\n      someHomogeneous = 1;\n    } else {\n      for (j = 0; j < yOrder; j++) {\n        if (homogenFlags[j]) {\n          someHomogeneous = 1;\n        }\n      }\n    }\n  } // If necessary, solve the homogeneous problem\n\n\n  if (someHomogeneous) {\n    // hmt is the homogeneous equation version of mt, the general solution.\n    hmt = createArray(xOrder);\n\n    for (j = 0; j < xOrder; j++) {\n      // Only allocate 1 here, not yOrder, because here we're going to solve\n      // just the one homogeneous equation subset of the entire problem\n      hmt[j] = [0];\n    } // Ok, solve the homogeneous problem\n\n\n    homogRC = solveHomogeneousLeastSquares(numberOfSamples, xt, xOrder, hmt);\n  } // set up intermediate variables\n\n\n  var XXt = createArray(xOrder); // size x by x\n\n  var XXtI = createArray(xOrder); // size x by x\n\n  var XYt = createArray(xOrder); // size x by y\n\n  for (i = 0; i < xOrder; i++) {\n    XXt[i] = createArray(xOrder);\n    XXtI[i] = createArray(xOrder);\n\n    for (j = 0; j < xOrder; j++) {\n      XXt[i][j] = 0.0;\n      XXtI[i][j] = 0.0;\n    }\n\n    XYt[i] = createArray(yOrder);\n\n    for (j = 0; j < yOrder; j++) {\n      XYt[i][j] = 0.0;\n    }\n  } // first find the pseudoinverse matrix\n\n\n  for (k = 0; k < numberOfSamples; k++) {\n    for (i = 0; i < xOrder; i++) {\n      // first calculate the XXt matrix, only do the upper half (symmetrical)\n      for (j = i; j < xOrder; j++) {\n        XXt[i][j] += xt[k][i] * xt[k][j];\n      } // now calculate the XYt matrix\n\n\n      for (j = 0; j < yOrder; j++) {\n        XYt[i][j] += xt[k][i] * yt[k][j];\n      }\n    }\n  } // now fill in the lower half of the XXt matrix\n\n\n  for (i = 0; i < xOrder; i++) {\n    for (j = 0; j < i; j++) {\n      XXt[i][j] = XXt[j][i];\n    }\n  }\n\n  var successFlag = invertMatrix(XXt, XXtI, xOrder); // next get the inverse of XXt\n\n  if (successFlag) {\n    for (i = 0; i < xOrder; i++) {\n      for (j = 0; j < yOrder; j++) {\n        mt[i][j] = 0.0;\n\n        for (k = 0; k < xOrder; k++) {\n          mt[i][j] += XXtI[i][k] * XYt[k][j];\n        }\n      }\n    }\n  } // Fix up any of the solutions that correspond to the homogeneous equation\n  // problem.\n\n\n  if (someHomogeneous) {\n    for (j = 0; j < yOrder; j++) {\n      if (homogenFlags[j]) {\n        // Fix this one\n        for (i = 0; i < xOrder; i++) {\n          mt[i][j] = hmt[i][0];\n        }\n      }\n    }\n  }\n\n  if (someHomogeneous) {\n    return homogRC && successFlag;\n  }\n\n  return successFlag;\n}\nfunction hex2float(hexStr) {\n  var outFloatArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0.5, 1];\n\n  switch (hexStr.length) {\n    case 3:\n      // abc => #aabbcc\n      outFloatArray[0] = parseInt(hexStr[0], 16) * 17 / 255;\n      outFloatArray[1] = parseInt(hexStr[1], 16) * 17 / 255;\n      outFloatArray[2] = parseInt(hexStr[2], 16) * 17 / 255;\n      return outFloatArray;\n\n    case 4:\n      // #abc => #aabbcc\n      outFloatArray[0] = parseInt(hexStr[1], 16) * 17 / 255;\n      outFloatArray[1] = parseInt(hexStr[2], 16) * 17 / 255;\n      outFloatArray[2] = parseInt(hexStr[3], 16) * 17 / 255;\n      return outFloatArray;\n\n    case 6:\n      // ab01df => #ab01df\n      outFloatArray[0] = parseInt(hexStr.substr(0, 2), 16) / 255;\n      outFloatArray[1] = parseInt(hexStr.substr(2, 2), 16) / 255;\n      outFloatArray[2] = parseInt(hexStr.substr(4, 2), 16) / 255;\n      return outFloatArray;\n\n    case 7:\n      // #ab01df\n      outFloatArray[0] = parseInt(hexStr.substr(1, 2), 16) / 255;\n      outFloatArray[1] = parseInt(hexStr.substr(3, 2), 16) / 255;\n      outFloatArray[2] = parseInt(hexStr.substr(5, 2), 16) / 255;\n      return outFloatArray;\n\n    case 9:\n      // #ab01df00\n      outFloatArray[0] = parseInt(hexStr.substr(1, 2), 16) / 255;\n      outFloatArray[1] = parseInt(hexStr.substr(3, 2), 16) / 255;\n      outFloatArray[2] = parseInt(hexStr.substr(5, 2), 16) / 255;\n      outFloatArray[3] = parseInt(hexStr.substr(7, 2), 16) / 255;\n      return outFloatArray;\n\n    default:\n      return outFloatArray;\n  }\n}\nfunction rgb2hsv(rgb, hsv) {\n  var h;\n  var s;\n\n  var _rgb = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(rgb, 3),\n      r = _rgb[0],\n      g = _rgb[1],\n      b = _rgb[2];\n\n  var onethird = 1.0 / 3.0;\n  var onesixth = 1.0 / 6.0;\n  var twothird = 2.0 / 3.0;\n  var cmax = r;\n  var cmin = r;\n\n  if (g > cmax) {\n    cmax = g;\n  } else if (g < cmin) {\n    cmin = g;\n  }\n\n  if (b > cmax) {\n    cmax = b;\n  } else if (b < cmin) {\n    cmin = b;\n  }\n\n  var v = cmax;\n\n  if (v > 0.0) {\n    s = (cmax - cmin) / cmax;\n  } else {\n    s = 0.0;\n  }\n\n  if (s > 0) {\n    if (r === cmax) {\n      h = onesixth * (g - b) / (cmax - cmin);\n    } else if (g === cmax) {\n      h = onethird + onesixth * (b - r) / (cmax - cmin);\n    } else {\n      h = twothird + onesixth * (r - g) / (cmax - cmin);\n    }\n\n    if (h < 0.0) {\n      h += 1.0;\n    }\n  } else {\n    h = 0.0;\n  } // Set the values back to the array\n\n\n  hsv[0] = h;\n  hsv[1] = s;\n  hsv[2] = v;\n}\nfunction hsv2rgb(hsv, rgb) {\n  var _hsv = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(hsv, 3),\n      h = _hsv[0],\n      s = _hsv[1],\n      v = _hsv[2];\n\n  var onethird = 1.0 / 3.0;\n  var onesixth = 1.0 / 6.0;\n  var twothird = 2.0 / 3.0;\n  var fivesixth = 5.0 / 6.0;\n  var r;\n  var g;\n  var b; // compute RGB from HSV\n\n  if (h > onesixth && h <= onethird) {\n    // green/red\n    g = 1.0;\n    r = (onethird - h) / onesixth;\n    b = 0.0;\n  } else if (h > onethird && h <= 0.5) {\n    // green/blue\n    g = 1.0;\n    b = (h - onethird) / onesixth;\n    r = 0.0;\n  } else if (h > 0.5 && h <= twothird) {\n    // blue/green\n    b = 1.0;\n    g = (twothird - h) / onesixth;\n    r = 0.0;\n  } else if (h > twothird && h <= fivesixth) {\n    // blue/red\n    b = 1.0;\n    r = (h - twothird) / onesixth;\n    g = 0.0;\n  } else if (h > fivesixth && h <= 1.0) {\n    // red/blue\n    r = 1.0;\n    b = (1.0 - h) / onesixth;\n    g = 0.0;\n  } else {\n    // red/green\n    r = 1.0;\n    g = h / onesixth;\n    b = 0.0;\n  } // add Saturation to the equation.\n\n\n  r = s * r + (1.0 - s);\n  g = s * g + (1.0 - s);\n  b = s * b + (1.0 - s);\n  r *= v;\n  g *= v;\n  b *= v; // Assign back to the array\n\n  rgb[0] = r;\n  rgb[1] = g;\n  rgb[2] = b;\n}\nfunction lab2xyz(lab, xyz) {\n  // LAB to XYZ\n  var _lab = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(lab, 3),\n      L = _lab[0],\n      a = _lab[1],\n      b = _lab[2];\n\n  var var_Y = (L + 16) / 116;\n  var var_X = a / 500 + var_Y;\n  var var_Z = var_Y - b / 200;\n\n  if (Math.pow(var_Y, 3) > 0.008856) {\n    var_Y = Math.pow(var_Y, 3);\n  } else {\n    var_Y = (var_Y - 16.0 / 116.0) / 7.787;\n  }\n\n  if (Math.pow(var_X, 3) > 0.008856) {\n    var_X = Math.pow(var_X, 3);\n  } else {\n    var_X = (var_X - 16.0 / 116.0) / 7.787;\n  }\n\n  if (Math.pow(var_Z, 3) > 0.008856) {\n    var_Z = Math.pow(var_Z, 3);\n  } else {\n    var_Z = (var_Z - 16.0 / 116.0) / 7.787;\n  }\n\n  var ref_X = 0.9505;\n  var ref_Y = 1.0;\n  var ref_Z = 1.089;\n  xyz[0] = ref_X * var_X; // ref_X = 0.9505  Observer= 2 deg Illuminant= D65\n\n  xyz[1] = ref_Y * var_Y; // ref_Y = 1.000\n\n  xyz[2] = ref_Z * var_Z; // ref_Z = 1.089\n}\nfunction xyz2lab(xyz, lab) {\n  var _xyz = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xyz, 3),\n      x = _xyz[0],\n      y = _xyz[1],\n      z = _xyz[2];\n\n  var ref_X = 0.9505;\n  var ref_Y = 1.0;\n  var ref_Z = 1.089;\n  var var_X = x / ref_X; // ref_X = 0.9505  Observer= 2 deg, Illuminant= D65\n\n  var var_Y = y / ref_Y; // ref_Y = 1.000\n\n  var var_Z = z / ref_Z; // ref_Z = 1.089\n\n  if (var_X > 0.008856) var_X = Math.pow(var_X, 1.0 / 3.0);else var_X = 7.787 * var_X + 16.0 / 116.0;\n  if (var_Y > 0.008856) var_Y = Math.pow(var_Y, 1.0 / 3.0);else var_Y = 7.787 * var_Y + 16.0 / 116.0;\n  if (var_Z > 0.008856) var_Z = Math.pow(var_Z, 1.0 / 3.0);else var_Z = 7.787 * var_Z + 16.0 / 116.0;\n  lab[0] = 116 * var_Y - 16;\n  lab[1] = 500 * (var_X - var_Y);\n  lab[2] = 200 * (var_Y - var_Z);\n}\nfunction xyz2rgb(xyz, rgb) {\n  var _xyz2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xyz, 3),\n      x = _xyz2[0],\n      y = _xyz2[1],\n      z = _xyz2[2];\n\n  var r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n  var g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n  var b = x * 0.0557 + y * -0.204 + z * 1.057; // The following performs a \"gamma correction\" specified by the sRGB color\n  // space.  sRGB is defined by a canonical definition of a display monitor and\n  // has been standardized by the International Electrotechnical Commission (IEC\n  // 61966-2-1).  The nonlinearity of the correction is designed to make the\n  // colors more perceptually uniform.  This color space has been adopted by\n  // several applications including Adobe Photoshop and Microsoft Windows color\n  // management.  OpenGL is agnostic on its RGB color space, but it is reasonable\n  // to assume it is close to this one.\n\n  if (r > 0.0031308) r = 1.055 * Math.pow(r, 1 / 2.4) - 0.055;else r *= 12.92;\n  if (g > 0.0031308) g = 1.055 * Math.pow(g, 1 / 2.4) - 0.055;else g *= 12.92;\n  if (b > 0.0031308) b = 1.055 * Math.pow(b, 1 / 2.4) - 0.055;else b *= 12.92; // Clip colors. ideally we would do something that is perceptually closest\n  // (since we can see colors outside of the display gamut), but this seems to\n  // work well enough.\n\n  var maxVal = r;\n  if (maxVal < g) maxVal = g;\n  if (maxVal < b) maxVal = b;\n\n  if (maxVal > 1.0) {\n    r /= maxVal;\n    g /= maxVal;\n    b /= maxVal;\n  }\n\n  if (r < 0) r = 0;\n  if (g < 0) g = 0;\n  if (b < 0) b = 0; // Push values back to array\n\n  rgb[0] = r;\n  rgb[1] = g;\n  rgb[2] = b;\n}\nfunction rgb2xyz(rgb, xyz) {\n  var _rgb2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(rgb, 3),\n      r = _rgb2[0],\n      g = _rgb2[1],\n      b = _rgb2[2]; // The following performs a \"gamma correction\" specified by the sRGB color\n  // space.  sRGB is defined by a canonical definition of a display monitor and\n  // has been standardized by the International Electrotechnical Commission (IEC\n  // 61966-2-1).  The nonlinearity of the correction is designed to make the\n  // colors more perceptually uniform.  This color space has been adopted by\n  // several applications including Adobe Photoshop and Microsoft Windows color\n  // management.  OpenGL is agnostic on its RGB color space, but it is reasonable\n  // to assume it is close to this one.\n\n\n  if (r > 0.04045) r = Math.pow((r + 0.055) / 1.055, 2.4);else r /= 12.92;\n  if (g > 0.04045) g = Math.pow((g + 0.055) / 1.055, 2.4);else g /= 12.92;\n  if (b > 0.04045) b = Math.pow((b + 0.055) / 1.055, 2.4);else b /= 12.92; // Observer. = 2 deg, Illuminant = D65\n\n  xyz[0] = r * 0.4124 + g * 0.3576 + b * 0.1805;\n  xyz[1] = r * 0.2126 + g * 0.7152 + b * 0.0722;\n  xyz[2] = r * 0.0193 + g * 0.1192 + b * 0.9505;\n}\nfunction rgb2lab(rgb, lab) {\n  var xyz = [0, 0, 0];\n  rgb2xyz(rgb, xyz);\n  xyz2lab(xyz, lab);\n}\nfunction lab2rgb(lab, rgb) {\n  var xyz = [0, 0, 0];\n  lab2xyz(lab, xyz);\n  xyz2rgb(xyz, rgb);\n}\nfunction uninitializeBounds(bounds) {\n  bounds[0] = 1.0;\n  bounds[1] = -1.0;\n  bounds[2] = 1.0;\n  bounds[3] = -1.0;\n  bounds[4] = 1.0;\n  bounds[5] = -1.0;\n  return bounds;\n}\nfunction areBoundsInitialized(bounds) {\n  return !(bounds[1] - bounds[0] < 0.0);\n}\nfunction computeBoundsFromPoints(point1, point2, bounds) {\n  bounds[0] = Math.min(point1[0], point2[0]);\n  bounds[1] = Math.max(point1[0], point2[0]);\n  bounds[2] = Math.min(point1[1], point2[1]);\n  bounds[3] = Math.max(point1[1], point2[1]);\n  bounds[4] = Math.min(point1[2], point2[2]);\n  bounds[5] = Math.max(point1[2], point2[2]);\n  return bounds;\n}\nfunction clampValue(value, minValue, maxValue) {\n  if (value < minValue) {\n    return minValue;\n  }\n\n  if (value > maxValue) {\n    return maxValue;\n  }\n\n  return value;\n}\nfunction clampVector(vector, minVector, maxVector) {\n  var out = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [0, 0, 0];\n  out[0] = clampValue(vector[0], minVector[0], maxVector[0]);\n  out[1] = clampValue(vector[1], minVector[1], maxVector[1]);\n  out[2] = clampValue(vector[2], minVector[2], maxVector[2]);\n  return out;\n}\nfunction clampAndNormalizeValue(value, range) {\n  var result = 0;\n\n  if (range[0] !== range[1]) {\n    // clamp\n    if (value < range[0]) {\n      result = range[0];\n    } else if (value > range[1]) {\n      result = range[1];\n    } else {\n      result = value;\n    } // normalize\n\n\n    result = (result - range[0]) / (range[1] - range[0]);\n  }\n\n  return result;\n}\nvar getScalarTypeFittingRange = notImplemented('GetScalarTypeFittingRange');\nvar getAdjustedScalarRange = notImplemented('GetAdjustedScalarRange');\nfunction extentIsWithinOtherExtent(extent1, extent2) {\n  if (!extent1 || !extent2) {\n    return 0;\n  }\n\n  for (var i = 0; i < 6; i += 2) {\n    if (extent1[i] < extent2[i] || extent1[i] > extent2[i + 1] || extent1[i + 1] < extent2[i] || extent1[i + 1] > extent2[i + 1]) {\n      return 0;\n    }\n  }\n\n  return 1;\n}\nfunction boundsIsWithinOtherBounds(bounds1_6, bounds2_6, delta_3) {\n  if (!bounds1_6 || !bounds2_6) {\n    return 0;\n  }\n\n  for (var i = 0; i < 6; i += 2) {\n    if (bounds1_6[i] + delta_3[i / 2] < bounds2_6[i] || bounds1_6[i] - delta_3[i / 2] > bounds2_6[i + 1] || bounds1_6[i + 1] + delta_3[i / 2] < bounds2_6[i] || bounds1_6[i + 1] - delta_3[i / 2] > bounds2_6[i + 1]) {\n      return 0;\n    }\n  }\n\n  return 1;\n}\nfunction pointIsWithinBounds(point_3, bounds_6, delta_3) {\n  if (!point_3 || !bounds_6 || !delta_3) {\n    return 0;\n  }\n\n  for (var i = 0; i < 3; i++) {\n    if (point_3[i] + delta_3[i] < bounds_6[2 * i] || point_3[i] - delta_3[i] > bounds_6[2 * i + 1]) {\n      return 0;\n    }\n  }\n\n  return 1;\n}\nfunction solve3PointCircle(p1, p2, p3, center) {\n  var v21 = createArray(3);\n  var v32 = createArray(3);\n  var v13 = createArray(3);\n  var v12 = createArray(3);\n  var v23 = createArray(3);\n  var v31 = createArray(3);\n\n  for (var i = 0; i < 3; ++i) {\n    v21[i] = p1[i] - p2[i];\n    v32[i] = p2[i] - p3[i];\n    v13[i] = p3[i] - p1[i];\n    v12[i] = -v21[i];\n    v23[i] = -v32[i];\n    v31[i] = -v13[i];\n  }\n\n  var norm12 = norm(v12);\n  var norm23 = norm(v23);\n  var norm13 = norm(v13);\n  var crossv21v32 = createArray(3);\n  cross(v21, v32, crossv21v32);\n  var normCross = norm(crossv21v32);\n  var radius = norm12 * norm23 * norm13 / (2 * normCross);\n  var normCross22 = 2 * normCross * normCross;\n  var alpha = norm23 * norm23 * dot(v21, v31) / normCross22;\n  var beta = norm13 * norm13 * dot(v12, v32) / normCross22;\n  var gamma = norm12 * norm12 * dot(v13, v23) / normCross22;\n\n  for (var _i6 = 0; _i6 < 3; ++_i6) {\n    center[_i6] = alpha * p1[_i6] + beta * p2[_i6] + gamma * p3[_i6];\n  }\n\n  return radius;\n}\nvar inf = Infinity;\nvar negInf = -Infinity;\nvar isInf = function isInf(value) {\n  return !Number.isFinite(value);\n};\nvar isFinite = Number.isFinite,\n    isNaN = Number.isNaN;\nvar isNan = isNaN; // JavaScript - add-on ----------------------\n\nfunction createUninitializedBounds() {\n  return [].concat([Number.MAX_VALUE, -Number.MAX_VALUE, // X\n  Number.MAX_VALUE, -Number.MAX_VALUE, // Y\n  Number.MAX_VALUE, -Number.MAX_VALUE // Z\n  ]);\n}\nfunction getMajorAxisIndex(vector) {\n  var maxValue = -1;\n  var axisIndex = -1;\n\n  for (var i = 0; i < vector.length; i++) {\n    var value = Math.abs(vector[i]);\n\n    if (value > maxValue) {\n      axisIndex = i;\n      maxValue = value;\n    }\n  }\n\n  return axisIndex;\n}\nfunction floatToHex2(value) {\n  var integer = Math.floor(value * 255);\n\n  if (integer > 15) {\n    return integer.toString(16);\n  }\n\n  return \"0\".concat(integer.toString(16));\n}\nfunction floatRGB2HexCode(rgbArray) {\n  var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '#';\n  return \"\".concat(prefix).concat(rgbArray.map(floatToHex2).join(''));\n}\n\nfunction floatToChar(f) {\n  return Math.round(f * 255);\n}\n\nfunction float2CssRGBA(rgbArray) {\n  if (rgbArray.length === 3) {\n    return \"rgb(\".concat(rgbArray.map(floatToChar).join(', '), \")\");\n  }\n\n  return \"rgba(\".concat(floatToChar(rgbArray[0] || 0), \", \").concat(floatToChar(rgbArray[1] || 0), \", \").concat(floatToChar(rgbArray[2] || 0), \", \").concat(rgbArray[3] || 0, \")\");\n} // ----------------------------------------------------------------------------\n// Only Static API\n// ----------------------------------------------------------------------------\n\nvar vtkMath = {\n  Pi: Pi,\n  radiansFromDegrees: radiansFromDegrees,\n  degreesFromRadians: degreesFromRadians,\n  round: round,\n  floor: floor,\n  ceil: ceil,\n  ceilLog2: ceilLog2,\n  min: min,\n  max: max,\n  arrayMin: arrayMin,\n  arrayMax: arrayMax,\n  arrayRange: arrayRange,\n  isPowerOfTwo: isPowerOfTwo,\n  nearestPowerOfTwo: nearestPowerOfTwo,\n  factorial: factorial,\n  binomial: binomial,\n  beginCombination: beginCombination,\n  nextCombination: nextCombination,\n  randomSeed: randomSeed,\n  getSeed: getSeed,\n  random: random,\n  gaussian: gaussian,\n  add: add,\n  subtract: subtract,\n  multiplyScalar: multiplyScalar,\n  multiplyScalar2D: multiplyScalar2D,\n  multiplyAccumulate: multiplyAccumulate,\n  multiplyAccumulate2D: multiplyAccumulate2D,\n  dot: dot,\n  outer: outer,\n  cross: cross,\n  norm: norm,\n  normalize: normalize,\n  perpendiculars: perpendiculars,\n  projectVector: projectVector,\n  projectVector2D: projectVector2D,\n  distance2BetweenPoints: distance2BetweenPoints,\n  angleBetweenVectors: angleBetweenVectors,\n  gaussianAmplitude: gaussianAmplitude,\n  gaussianWeight: gaussianWeight,\n  dot2D: dot2D,\n  outer2D: outer2D,\n  norm2D: norm2D,\n  normalize2D: normalize2D,\n  determinant2x2: determinant2x2,\n  LUFactor3x3: LUFactor3x3,\n  LUSolve3x3: LUSolve3x3,\n  linearSolve3x3: linearSolve3x3,\n  multiply3x3_vect3: multiply3x3_vect3,\n  multiply3x3_mat3: multiply3x3_mat3,\n  multiplyMatrix: multiplyMatrix,\n  transpose3x3: transpose3x3,\n  invert3x3: invert3x3,\n  identity3x3: identity3x3,\n  determinant3x3: determinant3x3,\n  quaternionToMatrix3x3: quaternionToMatrix3x3,\n  areEquals: areEquals,\n  areMatricesEqual: areMatricesEqual,\n  roundNumber: roundNumber,\n  roundVector: roundVector,\n  matrix3x3ToQuaternion: matrix3x3ToQuaternion,\n  multiplyQuaternion: multiplyQuaternion,\n  orthogonalize3x3: orthogonalize3x3,\n  diagonalize3x3: diagonalize3x3,\n  singularValueDecomposition3x3: singularValueDecomposition3x3,\n  solveLinearSystem: solveLinearSystem,\n  invertMatrix: invertMatrix,\n  luFactorLinearSystem: luFactorLinearSystem,\n  luSolveLinearSystem: luSolveLinearSystem,\n  estimateMatrixCondition: estimateMatrixCondition,\n  jacobi: jacobi,\n  jacobiN: jacobiN,\n  solveHomogeneousLeastSquares: solveHomogeneousLeastSquares,\n  solveLeastSquares: solveLeastSquares,\n  hex2float: hex2float,\n  rgb2hsv: rgb2hsv,\n  hsv2rgb: hsv2rgb,\n  lab2xyz: lab2xyz,\n  xyz2lab: xyz2lab,\n  xyz2rgb: xyz2rgb,\n  rgb2xyz: rgb2xyz,\n  rgb2lab: rgb2lab,\n  lab2rgb: lab2rgb,\n  uninitializeBounds: uninitializeBounds,\n  areBoundsInitialized: areBoundsInitialized,\n  computeBoundsFromPoints: computeBoundsFromPoints,\n  clampValue: clampValue,\n  clampVector: clampVector,\n  clampAndNormalizeValue: clampAndNormalizeValue,\n  getScalarTypeFittingRange: getScalarTypeFittingRange,\n  getAdjustedScalarRange: getAdjustedScalarRange,\n  extentIsWithinOtherExtent: extentIsWithinOtherExtent,\n  boundsIsWithinOtherBounds: boundsIsWithinOtherBounds,\n  pointIsWithinBounds: pointIsWithinBounds,\n  solve3PointCircle: solve3PointCircle,\n  inf: inf,\n  negInf: negInf,\n  isInf: isInf,\n  isNan: isNaN,\n  isNaN: isNaN,\n  isFinite: isFinite,\n  // JS add-on\n  createUninitializedBounds: createUninitializedBounds,\n  getMajorAxisIndex: getMajorAxisIndex,\n  floatToHex2: floatToHex2,\n  floatRGB2HexCode: floatRGB2HexCode,\n  float2CssRGBA: float2CssRGBA\n};\n\nvar vtkMath$1 = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  Pi: Pi,\n  radiansFromDegrees: radiansFromDegrees,\n  degreesFromRadians: degreesFromRadians,\n  round: round,\n  floor: floor,\n  ceil: ceil,\n  min: min,\n  max: max,\n  arrayMin: arrayMin,\n  arrayMax: arrayMax,\n  arrayRange: arrayRange,\n  ceilLog2: ceilLog2,\n  factorial: factorial,\n  nearestPowerOfTwo: nearestPowerOfTwo,\n  isPowerOfTwo: isPowerOfTwo,\n  binomial: binomial,\n  beginCombination: beginCombination,\n  nextCombination: nextCombination,\n  randomSeed: randomSeed,\n  getSeed: getSeed,\n  random: random,\n  gaussian: gaussian,\n  add: add,\n  subtract: subtract,\n  multiplyScalar: multiplyScalar,\n  multiplyScalar2D: multiplyScalar2D,\n  multiplyAccumulate: multiplyAccumulate,\n  multiplyAccumulate2D: multiplyAccumulate2D,\n  dot: dot,\n  outer: outer,\n  cross: cross,\n  norm: norm,\n  normalize: normalize,\n  perpendiculars: perpendiculars,\n  projectVector: projectVector,\n  dot2D: dot2D,\n  projectVector2D: projectVector2D,\n  distance2BetweenPoints: distance2BetweenPoints,\n  angleBetweenVectors: angleBetweenVectors,\n  signedAngleBetweenVectors: signedAngleBetweenVectors,\n  gaussianAmplitude: gaussianAmplitude,\n  gaussianWeight: gaussianWeight,\n  outer2D: outer2D,\n  norm2D: norm2D,\n  normalize2D: normalize2D,\n  determinant2x2: determinant2x2,\n  LUFactor3x3: LUFactor3x3,\n  LUSolve3x3: LUSolve3x3,\n  linearSolve3x3: linearSolve3x3,\n  multiply3x3_vect3: multiply3x3_vect3,\n  multiply3x3_mat3: multiply3x3_mat3,\n  multiplyMatrix: multiplyMatrix,\n  transpose3x3: transpose3x3,\n  invert3x3: invert3x3,\n  identity3x3: identity3x3,\n  determinant3x3: determinant3x3,\n  quaternionToMatrix3x3: quaternionToMatrix3x3,\n  areEquals: areEquals,\n  areMatricesEqual: areMatricesEqual,\n  roundNumber: roundNumber,\n  roundVector: roundVector,\n  jacobiN: jacobiN,\n  matrix3x3ToQuaternion: matrix3x3ToQuaternion,\n  multiplyQuaternion: multiplyQuaternion,\n  orthogonalize3x3: orthogonalize3x3,\n  diagonalize3x3: diagonalize3x3,\n  singularValueDecomposition3x3: singularValueDecomposition3x3,\n  luFactorLinearSystem: luFactorLinearSystem,\n  luSolveLinearSystem: luSolveLinearSystem,\n  solveLinearSystem: solveLinearSystem,\n  invertMatrix: invertMatrix,\n  estimateMatrixCondition: estimateMatrixCondition,\n  jacobi: jacobi,\n  solveHomogeneousLeastSquares: solveHomogeneousLeastSquares,\n  solveLeastSquares: solveLeastSquares,\n  hex2float: hex2float,\n  rgb2hsv: rgb2hsv,\n  hsv2rgb: hsv2rgb,\n  lab2xyz: lab2xyz,\n  xyz2lab: xyz2lab,\n  xyz2rgb: xyz2rgb,\n  rgb2xyz: rgb2xyz,\n  rgb2lab: rgb2lab,\n  lab2rgb: lab2rgb,\n  uninitializeBounds: uninitializeBounds,\n  areBoundsInitialized: areBoundsInitialized,\n  computeBoundsFromPoints: computeBoundsFromPoints,\n  clampValue: clampValue,\n  clampVector: clampVector,\n  clampAndNormalizeValue: clampAndNormalizeValue,\n  getScalarTypeFittingRange: getScalarTypeFittingRange,\n  getAdjustedScalarRange: getAdjustedScalarRange,\n  extentIsWithinOtherExtent: extentIsWithinOtherExtent,\n  boundsIsWithinOtherBounds: boundsIsWithinOtherBounds,\n  pointIsWithinBounds: pointIsWithinBounds,\n  solve3PointCircle: solve3PointCircle,\n  inf: inf,\n  negInf: negInf,\n  isInf: isInf,\n  isFinite: isFinite,\n  isNaN: isNaN,\n  isNan: isNan,\n  createUninitializedBounds: createUninitializedBounds,\n  getMajorAxisIndex: getMajorAxisIndex,\n  floatToHex2: floatToHex2,\n  floatRGB2HexCode: floatRGB2HexCode,\n  float2CssRGBA: float2CssRGBA,\n  'default': vtkMath\n});\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/Math/index.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/Points.js":
/*!************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/Points.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkPoints$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _DataArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DataArray/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js\");\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro;\nvar INVALID_BOUNDS = [1, -1, 1, -1, 1, -1]; // ----------------------------------------------------------------------------\n// vtkPoints methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPoints(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkPoints'); // Forwarding methods\n\n  publicAPI.getNumberOfPoints = publicAPI.getNumberOfTuples;\n\n  publicAPI.setNumberOfPoints = function (nbPoints) {\n    var dimension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;\n\n    if (publicAPI.getNumberOfPoints() !== nbPoints) {\n      model.size = nbPoints * dimension;\n      model.values = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newTypedArray(model.dataType, model.size);\n      publicAPI.setNumberOfComponents(dimension);\n      publicAPI.modified();\n    }\n  };\n\n  publicAPI.setPoint = function (idx) {\n    var offset = idx * model.numberOfComponents;\n\n    for (var i = 0; i < model.numberOfComponents; i++) {\n      model.values[offset + i] = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];\n    }\n  };\n\n  publicAPI.getPoint = publicAPI.getTuple;\n\n  publicAPI.getBounds = function () {\n    if (publicAPI.getNumberOfComponents() === 3) {\n      var _xRange = publicAPI.getRange(0);\n\n      model.bounds[0] = _xRange[0];\n      model.bounds[1] = _xRange[1];\n\n      var _yRange = publicAPI.getRange(1);\n\n      model.bounds[2] = _yRange[0];\n      model.bounds[3] = _yRange[1];\n      var zRange = publicAPI.getRange(2);\n      model.bounds[4] = zRange[0];\n      model.bounds[5] = zRange[1];\n      return model.bounds;\n    }\n\n    if (publicAPI.getNumberOfComponents() !== 2) {\n      vtkErrorMacro(\"getBounds called on an array with components of\\n        \".concat(publicAPI.getNumberOfComponents()));\n      return INVALID_BOUNDS;\n    }\n\n    var xRange = publicAPI.getRange(0);\n    model.bounds[0] = xRange[0];\n    model.bounds[1] = xRange[1];\n    var yRange = publicAPI.getRange(1);\n    model.bounds[2] = yRange[0];\n    model.bounds[3] = yRange[1];\n    model.bounds[4] = 0;\n    model.bounds[5] = 0;\n    return model.bounds;\n  }; // Trigger the computation of bounds\n\n\n  publicAPI.computeBounds = publicAPI.getBounds; // Initialize\n\n  publicAPI.setNumberOfComponents(model.numberOfComponents < 2 ? 3 : model.numberOfComponents);\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  empty: true,\n  numberOfComponents: 3,\n  dataType: _DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_2__.VtkDataTypes.FLOAT,\n  bounds: [1, -1, 1, -1, 1, -1]\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  _DataArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues);\n  vtkPoints(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkPoints'); // ----------------------------------------------------------------------------\n\nvar vtkPoints$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/Points.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkScalarsToColors$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _DataArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _ScalarsToColors_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ScalarsToColors/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors/Constants.js\");\n/* harmony import */ var _Rendering_Core_Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Rendering/Core/Mapper/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Constants.js\");\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar ScalarMappingTarget = _ScalarsToColors_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ScalarMappingTarget,\n    VectorMode = _ScalarsToColors_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].VectorMode;\nvar VtkDataTypes = _DataArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].VtkDataTypes;\nvar ColorMode = _Rendering_Core_Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].ColorMode;\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n// Add module-level functions or api that you want to expose statically via\n// the next section...\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nfunction intColorToUChar(c) {\n  return c;\n}\n\nfunction floatColorToUChar(c) {\n  return Math.floor(c * 255.0 + 0.5);\n} // ----------------------------------------------------------------------------\n// vtkScalarsToColors methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkScalarsToColors(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkScalarsToColors');\n\n  publicAPI.setVectorModeToMagnitude = function () {\n    return publicAPI.setVectorMode(VectorMode.MAGNITUDE);\n  };\n\n  publicAPI.setVectorModeToComponent = function () {\n    return publicAPI.setVectorMode(VectorMode.COMPONENT);\n  };\n\n  publicAPI.setVectorModeToRGBColors = function () {\n    return publicAPI.setVectorMode(VectorMode.RGBCOLORS);\n  };\n\n  publicAPI.build = function () {};\n\n  publicAPI.isOpaque = function () {\n    return true;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.setAnnotations = function (values, annotations) {\n    if (values && !annotations || !values && annotations) {\n      return;\n    }\n\n    if (values && annotations && values.length !== annotations.length) {\n      vtkErrorMacro('Values and annotations do not have the same number of tuples so ignoring');\n      return;\n    }\n\n    model.annotationArray = [];\n\n    if (annotations && values) {\n      var num = annotations.length;\n\n      for (var i = 0; i < num; i++) {\n        model.annotationArray.push({\n          value: values[i],\n          annotation: String(annotations[i])\n        });\n      }\n    }\n\n    publicAPI.updateAnnotatedValueMap();\n    publicAPI.modified();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.setAnnotation = function (value, annotation) {\n    var i = publicAPI.checkForAnnotatedValue(value);\n    var modified = false;\n\n    if (i >= 0) {\n      if (model.annotationArray[i].annotation !== annotation) {\n        model.annotationArray[i].annotation = annotation;\n        modified = true;\n      }\n    } else {\n      model.annotationArray.push({\n        value: value,\n        annotation: annotation\n      });\n      i = model.annotationArray.length - 1;\n      modified = true;\n    }\n\n    if (modified) {\n      publicAPI.updateAnnotatedValueMap();\n      publicAPI.modified();\n    }\n\n    return i;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getNumberOfAnnotatedValues = function () {\n    return model.annotationArray.length;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getAnnotatedValue = function (idx) {\n    if (idx < 0 || idx >= model.annotationArray.length) {\n      return null;\n    }\n\n    return model.annotationArray[idx].value;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getAnnotation = function (idx) {\n    if (model.annotationArray[idx] === undefined) {\n      return null;\n    }\n\n    return model.annotationArray[idx].annotation;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getAnnotatedValueIndex = function (val) {\n    return model.annotationArray.length ? publicAPI.checkForAnnotatedValue(val) : -1;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.removeAnnotation = function (value) {\n    var i = publicAPI.checkForAnnotatedValue(value);\n    var needToRemove = i >= 0;\n\n    if (needToRemove) {\n      model.annotationArray.splice(i, 1);\n      publicAPI.updateAnnotatedValueMap();\n      publicAPI.modified();\n    }\n\n    return needToRemove;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.resetAnnotations = function () {\n    model.annotationArray = [];\n    model.annotatedValueMap = [];\n    publicAPI.modified();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getAnnotationColor = function (val, rgba) {\n    if (model.indexedLookup) {\n      var i = publicAPI.getAnnotatedValueIndex(val);\n      publicAPI.getIndexedColor(i, rgba);\n    } else {\n      publicAPI.getColor(parseFloat(val), rgba);\n      rgba[3] = 1.0;\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.checkForAnnotatedValue = function (value) {\n    return publicAPI.getAnnotatedValueIndexInternal(value);\n  }; //----------------------------------------------------------------------------\n  // An unsafe version of vtkScalarsToColors::CheckForAnnotatedValue for\n  // internal use (no pointer checks performed)\n\n\n  publicAPI.getAnnotatedValueIndexInternal = function (value) {\n    if (model.annotatedValueMap[value] !== undefined) {\n      var na = model.annotationArray.length;\n      return model.annotatedValueMap[value] % na;\n    } // Treat as a NaN\n\n\n    return -1;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getIndexedColor = function (val, rgba) {\n    rgba[0] = 0.0;\n    rgba[1] = 0.0;\n    rgba[2] = 0.0;\n    rgba[3] = 0.0;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.updateAnnotatedValueMap = function () {\n    model.annotatedValueMap = [];\n    var na = model.annotationArray.length;\n\n    for (var i = 0; i < na; i++) {\n      model.annotatedValueMap[model.annotationArray[i].value] = i;\n    }\n  }; // Description:\n  // Internal methods that map a data array into a 4-component,\n  // unsigned char RGBA array. The color mode determines the behavior\n  // of mapping. If ColorMode.DEFAULT is set, then unsigned char\n  // data arrays are treated as colors (and converted to RGBA if\n  // necessary); If ColorMode.DIRECT_SCALARS is set, then all arrays\n  // are treated as colors (integer types are clamped in the range 0-255,\n  // floating point arrays are clamped in the range 0.0-1.0. Note 'char' does\n  // not have enough values to represent a color so mapping this type is\n  // considered an error);\n  // otherwise, the data is mapped through this instance\n  // of ScalarsToColors. The component argument is used for data\n  // arrays with more than one component; it indicates which component\n  // to use to do the blending.  When the component argument is -1,\n  // then the this object uses its own selected technique to change a\n  // vector into a scalar to map.\n\n\n  publicAPI.mapScalars = function (scalars, colorMode, componentIn) {\n    var numberOfComponents = scalars.getNumberOfComponents();\n    var newColors = null; // map scalars through lookup table only if needed\n\n    if (colorMode === ColorMode.DEFAULT && scalars.getDataType() === VtkDataTypes.UNSIGNED_CHAR || colorMode === ColorMode.DIRECT_SCALARS && scalars) {\n      newColors = publicAPI.convertToRGBA(scalars, numberOfComponents, scalars.getNumberOfTuples());\n    } else {\n      var newscalars = {\n        type: 'vtkDataArray',\n        name: 'temp',\n        numberOfComponents: 4,\n        dataType: VtkDataTypes.UNSIGNED_CHAR\n      };\n      var s = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newTypedArray(newscalars.dataType, 4 * scalars.getNumberOfTuples());\n      newscalars.values = s;\n      newscalars.size = s.length;\n      newColors = _DataArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance(newscalars);\n      var component = componentIn; // If mapper did not specify a component, use the VectorMode\n\n      if (component < 0 && numberOfComponents > 1) {\n        publicAPI.mapVectorsThroughTable(scalars, newColors, ScalarMappingTarget.RGBA, -1, -1);\n      } else {\n        if (component < 0) {\n          component = 0;\n        }\n\n        if (component >= numberOfComponents) {\n          component = numberOfComponents - 1;\n        } // Map the scalars to colors\n\n\n        publicAPI.mapScalarsThroughTable(scalars, newColors, ScalarMappingTarget.RGBA, component);\n      }\n    }\n\n    return newColors;\n  };\n\n  publicAPI.mapVectorsToMagnitude = function (input, output, compsToUse) {\n    var length = input.getNumberOfTuples();\n    var inIncr = input.getNumberOfComponents();\n    var outputV = output.getData();\n    var inputV = input.getData();\n\n    for (var i = 0; i < length; i++) {\n      var sum = 0.0;\n\n      for (var j = 0; j < compsToUse; j++) {\n        sum += inputV[i * inIncr + j] * inputV[i * inIncr + j];\n      }\n\n      outputV[i] = Math.sqrt(sum);\n    }\n  }; //----------------------------------------------------------------------------\n  // Map a set of vector values through the table\n\n\n  publicAPI.mapVectorsThroughTable = function (input, output, outputFormat, vectorComponentIn, vectorSizeIn) {\n    var vectorMode = publicAPI.getVectorMode();\n    var vectorSize = vectorSizeIn;\n    var vectorComponent = vectorComponentIn;\n    var inComponents = input.getNumberOfComponents();\n\n    if (vectorMode === VectorMode.COMPONENT) {\n      // make sure vectorComponent is within allowed range\n      if (vectorComponent === -1) {\n        // if set to -1, use default value provided by table\n        vectorComponent = publicAPI.getVectorComponent();\n      }\n\n      if (vectorComponent < 0) {\n        vectorComponent = 0;\n      }\n\n      if (vectorComponent >= inComponents) {\n        vectorComponent = inComponents - 1;\n      }\n    } else {\n      // make sure vectorSize is within allowed range\n      if (vectorSize === -1) {\n        // if set to -1, use default value provided by table\n        vectorSize = publicAPI.getVectorSize();\n      }\n\n      if (vectorSize <= 0) {\n        vectorComponent = 0;\n        vectorSize = inComponents;\n      } else {\n        if (vectorComponent < 0) {\n          vectorComponent = 0;\n        }\n\n        if (vectorComponent >= inComponents) {\n          vectorComponent = inComponents - 1;\n        }\n\n        if (vectorComponent + vectorSize > inComponents) {\n          vectorSize = inComponents - vectorComponent;\n        }\n      }\n\n      if (vectorMode === VectorMode.MAGNITUDE && (inComponents === 1 || vectorSize === 1)) {\n        vectorMode = VectorMode.COMPONENT;\n      }\n    } // increment input pointer to the first component to map\n\n\n    var inputOffset = 0;\n\n    if (vectorComponent > 0) {\n      inputOffset = vectorComponent;\n    } // map according to the current vector mode\n\n\n    switch (vectorMode) {\n      case VectorMode.COMPONENT:\n        {\n          publicAPI.mapScalarsThroughTable(input, output, outputFormat, inputOffset);\n          break;\n        }\n\n      case VectorMode.RGBCOLORS:\n        {\n          // publicAPI.mapColorsToColors(\n          //   input, output, inComponents, vectorSize,\n          //   outputFormat);\n          break;\n        }\n      // MAGNITUDE is considered default\n\n      case VectorMode.MAGNITUDE:\n      default:\n        {\n          var magValues = _DataArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n            numberOfComponents: 1,\n            values: new Float32Array(input.getNumberOfTuples())\n          });\n          publicAPI.mapVectorsToMagnitude(input, magValues, vectorSize);\n          publicAPI.mapScalarsThroughTable(magValues, output, outputFormat, 0);\n          break;\n        }\n    }\n  };\n\n  publicAPI.luminanceToRGBA = function (newColors, colors, alpha, convtFun) {\n    var a = convtFun(alpha);\n    var values = colors.getData();\n    var newValues = newColors.getData();\n    var size = values.length;\n    var component = 0;\n    var tuple = 1;\n    var count = 0;\n\n    for (var i = component; i < size; i += tuple) {\n      var l = convtFun(values[i]);\n      newValues[count * 4] = l;\n      newValues[count * 4 + 1] = l;\n      newValues[count * 4 + 2] = l;\n      newValues[count * 4 + 3] = a;\n      count++;\n    }\n  };\n\n  publicAPI.luminanceAlphaToRGBA = function (newColors, colors, alpha, convtFun) {\n    var values = colors.getData();\n    var newValues = newColors.getData();\n    var size = values.length;\n    var component = 0;\n    var tuple = 2;\n    var count = 0;\n\n    for (var i = component; i < size; i += tuple) {\n      var l = convtFun(values[i]);\n      newValues[count] = l;\n      newValues[count + 1] = l;\n      newValues[count + 2] = l;\n      newValues[count + 3] = convtFun(values[i + 1]) * alpha;\n      count += 4;\n    }\n  };\n\n  publicAPI.rGBToRGBA = function (newColors, colors, alpha, convtFun) {\n    var a = floatColorToUChar(alpha);\n    var values = colors.getData();\n    var newValues = newColors.getData();\n    var size = values.length;\n    var component = 0;\n    var tuple = 3;\n    var count = 0;\n\n    for (var i = component; i < size; i += tuple) {\n      newValues[count * 4] = convtFun(values[i]);\n      newValues[count * 4 + 1] = convtFun(values[i + 1]);\n      newValues[count * 4 + 2] = convtFun(values[i + 2]);\n      newValues[count * 4 + 3] = a;\n      count++;\n    }\n  };\n\n  publicAPI.rGBAToRGBA = function (newColors, colors, alpha, convtFun) {\n    var values = colors.getData();\n    var newValues = newColors.getData();\n    var size = values.length;\n    var component = 0;\n    var tuple = 4;\n    var count = 0;\n\n    for (var i = component; i < size; i += tuple) {\n      newValues[count * 4] = convtFun(values[i]);\n      newValues[count * 4 + 1] = convtFun(values[i + 1]);\n      newValues[count * 4 + 2] = convtFun(values[i + 2]);\n      newValues[count * 4 + 3] = convtFun(values[i + 3]) * alpha;\n      count++;\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.convertToRGBA = function (colors, numComp, numTuples) {\n    var alpha = model.alpha;\n\n    if (numComp === 4 && alpha >= 1.0 && colors.getDataType() === VtkDataTypes.UNSIGNED_CHAR) {\n      return colors;\n    }\n\n    var newColors = _DataArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n      numberOfComponents: 4,\n      empty: true,\n      size: 4 * numTuples,\n      dataType: VtkDataTypes.UNSIGNED_CHAR\n    });\n\n    if (numTuples <= 0) {\n      return newColors;\n    }\n\n    alpha = alpha > 0 ? alpha : 0;\n    alpha = alpha < 1 ? alpha : 1;\n    var convtFun = intColorToUChar;\n\n    if (colors.getDataType() === VtkDataTypes.FLOAT || colors.getDataType() === VtkDataTypes.DOUBLE) {\n      convtFun = floatColorToUChar;\n    }\n\n    switch (numComp) {\n      case 1:\n        publicAPI.luminanceToRGBA(newColors, colors, alpha, convtFun);\n        break;\n\n      case 2:\n        publicAPI.luminanceAlphaToRGBA(newColors, colors, convtFun);\n        break;\n\n      case 3:\n        publicAPI.rGBToRGBA(newColors, colors, alpha, convtFun);\n        break;\n\n      case 4:\n        publicAPI.rGBAToRGBA(newColors, colors, alpha, convtFun);\n        break;\n\n      default:\n        vtkErrorMacro('Cannot convert colors');\n        return null;\n    }\n\n    return newColors;\n  };\n\n  publicAPI.usingLogScale = function () {\n    return false;\n  };\n\n  publicAPI.getNumberOfAvailableColors = function () {\n    return 256 * 256 * 256;\n  };\n\n  publicAPI.setRange = function (min, max) {\n    return publicAPI.setMappingRange(min, max);\n  };\n\n  publicAPI.getRange = function (min, max) {\n    return publicAPI.getMappingRange();\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  alpha: 1.0,\n  vectorComponent: 0,\n  vectorSize: -1,\n  vectorMode: VectorMode.COMPONENT,\n  mappingRange: null,\n  annotationArray: null,\n  annotatedValueMap: null,\n  indexedLookup: false\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  model.mappingRange = [0, 255];\n  model.annotationArray = [];\n  model.annotatedValueMap = []; // Create get-set macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['vectorSize', 'vectorComponent', 'vectorMode', 'alpha', 'indexedLookup']); // Create set macros for array (needs to know size)\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setArray(publicAPI, model, ['mappingRange'], 2); // Create get macros for array\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getArray(publicAPI, model, ['mappingRange']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkScalarsToColors(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkScalarsToColors'); // ----------------------------------------------------------------------------\n\nvar vtkScalarsToColors$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _ScalarsToColors_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors/Constants.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors/Constants.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"ScalarMappingTarget\": () => (/* binding */ ScalarMappingTarget),\n/* harmony export */   \"VectorMode\": () => (/* binding */ VectorMode),\n/* harmony export */   \"default\": () => (/* binding */ vtkScalarsToColors)\n/* harmony export */ });\nvar VectorMode = {\n  MAGNITUDE: 0,\n  COMPONENT: 1,\n  RGBCOLORS: 2\n};\nvar ScalarMappingTarget = {\n  LUMINANCE: 1,\n  LUMINANCE_ALPHA: 2,\n  RGB: 3,\n  RGBA: 4\n};\nvar vtkScalarsToColors = {\n  VectorMode: VectorMode,\n  ScalarMappingTarget: ScalarMappingTarget\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/Core/URLExtract.js":
/*!****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/Core/URLExtract.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkURLExtract)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n\n\nfunction identity(i) {\n  return i;\n}\n\nfunction toNativeType(str) {\n  if (str === null || str === 'null') {\n    return null;\n  }\n\n  if (str === 'true') {\n    return true;\n  }\n\n  if (str === 'false') {\n    return false;\n  }\n\n  if (str === undefined || str === 'undefined') {\n    return undefined;\n  }\n\n  if (str[0] === '[' && str[str.length - 1] === ']') {\n    return str.substring(1, str.length - 1).split(',').map(function (s) {\n      return toNativeType(s.trim());\n    });\n  }\n\n  if (str === '' || Number.isNaN(Number(str))) {\n    return str;\n  }\n\n  return Number(str);\n}\n\nfunction extractURLParameters() {\n  var castToNativeType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.location.search;\n  var summary = {};\n  var convert = castToNativeType ? toNativeType : identity;\n  var queryTokens = (query || '').replace(/#.*/, '') // remove hash query\n  .replace('?', '') // Remove ? from the head\n  .split('&'); // extract token pair\n\n  queryTokens.forEach(function (token) {\n    var _token$split$map = token.split('=').map(function (s) {\n      return decodeURIComponent(s);\n    }),\n        _token$split$map2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_token$split$map, 2),\n        key = _token$split$map2[0],\n        value = _token$split$map2[1];\n\n    if (key) {\n      summary[key] = value ? convert(value) : true;\n    }\n  });\n  return summary;\n}\n\nvar vtkURLExtract = {\n  toNativeType: toNativeType,\n  extractURLParameters: extractURLParameters\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/Core/URLExtract.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/BoundingBox.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/BoundingBox.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"addBounds\": () => (/* binding */ _addBounds),\n/* harmony export */   \"addPoint\": () => (/* binding */ _addPoint),\n/* harmony export */   \"computeCornerPoints\": () => (/* binding */ _computeCornerPoints),\n/* harmony export */   \"computeLocalBounds\": () => (/* binding */ _computeLocalBounds),\n/* harmony export */   \"computeScale3\": () => (/* binding */ _computeScale),\n/* harmony export */   \"contains\": () => (/* binding */ contains),\n/* harmony export */   \"containsPoint\": () => (/* binding */ _containsPoint),\n/* harmony export */   \"cutWithPlane\": () => (/* binding */ _cutWithPlane),\n/* harmony export */   \"default\": () => (/* binding */ vtkBoundingBox),\n/* harmony export */   \"equals\": () => (/* binding */ _equals),\n/* harmony export */   \"getCenter\": () => (/* binding */ _getCenter),\n/* harmony export */   \"getCorners\": () => (/* binding */ _getCorners),\n/* harmony export */   \"getDiagonalLength\": () => (/* binding */ _getDiagonalLength),\n/* harmony export */   \"getLength\": () => (/* binding */ _getLength),\n/* harmony export */   \"getLengths\": () => (/* binding */ _getLengths),\n/* harmony export */   \"getMaxLength\": () => (/* binding */ _getMaxLength),\n/* harmony export */   \"getMaxPoint\": () => (/* binding */ _getMaxPoint),\n/* harmony export */   \"getMinPoint\": () => (/* binding */ _getMinPoint),\n/* harmony export */   \"getXRange\": () => (/* binding */ _getXRange),\n/* harmony export */   \"getYRange\": () => (/* binding */ _getYRange),\n/* harmony export */   \"getZRange\": () => (/* binding */ _getZRange),\n/* harmony export */   \"inflate\": () => (/* binding */ _inflate),\n/* harmony export */   \"intersect\": () => (/* binding */ _intersect),\n/* harmony export */   \"intersectBox\": () => (/* binding */ _intersectBox),\n/* harmony export */   \"intersectPlane\": () => (/* binding */ _intersectPlane),\n/* harmony export */   \"intersects\": () => (/* binding */ _intersects),\n/* harmony export */   \"isValid\": () => (/* binding */ _isValid),\n/* harmony export */   \"reset\": () => (/* binding */ _reset),\n/* harmony export */   \"scale\": () => (/* binding */ _scale),\n/* harmony export */   \"scaleAboutCenter\": () => (/* binding */ scaleAboutCenter),\n/* harmony export */   \"setBounds\": () => (/* binding */ _setBounds),\n/* harmony export */   \"setMaxPoint\": () => (/* binding */ _setMaxPoint),\n/* harmony export */   \"setMinPoint\": () => (/* binding */ _setMinPoint)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Plane_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Plane.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/Plane.js\");\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar INIT_BOUNDS = [Number.MAX_VALUE, -Number.MAX_VALUE, // X\nNumber.MAX_VALUE, -Number.MAX_VALUE, // Y\nNumber.MAX_VALUE, -Number.MAX_VALUE // Z\n]; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction _equals(a, b) {\n  return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5];\n}\n\nfunction _isValid(bounds) {\n  return bounds[0] <= bounds[1] && bounds[2] <= bounds[3] && bounds[4] <= bounds[5];\n}\n\nfunction _setBounds(bounds, otherBounds) {\n  bounds[0] = otherBounds[0];\n  bounds[1] = otherBounds[1];\n  bounds[2] = otherBounds[2];\n  bounds[3] = otherBounds[3];\n  bounds[4] = otherBounds[4];\n  bounds[5] = otherBounds[5];\n  return bounds;\n}\n\nfunction _reset(bounds) {\n  return _setBounds(bounds, INIT_BOUNDS);\n}\n\nfunction _addPoint(bounds) {\n  var _bounds = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(bounds, 6),\n      xMin = _bounds[0],\n      xMax = _bounds[1],\n      yMin = _bounds[2],\n      yMax = _bounds[3],\n      zMin = _bounds[4],\n      zMax = _bounds[5];\n\n  bounds[0] = xMin < (arguments.length <= 1 ? undefined : arguments[1]) ? xMin : arguments.length <= 1 ? undefined : arguments[1];\n  bounds[1] = xMax > (arguments.length <= 1 ? undefined : arguments[1]) ? xMax : arguments.length <= 1 ? undefined : arguments[1];\n  bounds[2] = yMin < (arguments.length <= 2 ? undefined : arguments[2]) ? yMin : arguments.length <= 2 ? undefined : arguments[2];\n  bounds[3] = yMax > (arguments.length <= 2 ? undefined : arguments[2]) ? yMax : arguments.length <= 2 ? undefined : arguments[2];\n  bounds[4] = zMin < (arguments.length <= 3 ? undefined : arguments[3]) ? zMin : arguments.length <= 3 ? undefined : arguments[3];\n  bounds[5] = zMax > (arguments.length <= 3 ? undefined : arguments[3]) ? zMax : arguments.length <= 3 ? undefined : arguments[3];\n  return bounds;\n}\n\nfunction _addBounds(bounds, xMin, xMax, yMin, yMax, zMin, zMax) {\n  var _bounds2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(bounds, 6),\n      _xMin = _bounds2[0],\n      _xMax = _bounds2[1],\n      _yMin = _bounds2[2],\n      _yMax = _bounds2[3],\n      _zMin = _bounds2[4],\n      _zMax = _bounds2[5];\n\n  if (zMax === undefined) {\n    bounds[0] = Math.min(xMin[0], _xMin);\n    bounds[1] = Math.max(xMin[1], _xMax);\n    bounds[2] = Math.min(xMin[2], _yMin);\n    bounds[3] = Math.max(xMin[3], _yMax);\n    bounds[4] = Math.min(xMin[4], _zMin);\n    bounds[5] = Math.max(xMin[5], _zMax);\n  } else {\n    bounds[0] = Math.min(xMin, _xMin);\n    bounds[1] = Math.max(xMax, _xMax);\n    bounds[2] = Math.min(yMin, _yMin);\n    bounds[3] = Math.max(yMax, _yMax);\n    bounds[4] = Math.min(zMin, _zMin);\n    bounds[5] = Math.max(zMax, _zMax);\n  }\n\n  return bounds;\n}\n\nfunction _setMinPoint(bounds, x, y, z) {\n  var _bounds3 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(bounds, 6),\n      xMin = _bounds3[0],\n      xMax = _bounds3[1],\n      yMin = _bounds3[2],\n      yMax = _bounds3[3],\n      zMin = _bounds3[4],\n      zMax = _bounds3[5];\n\n  bounds[0] = x;\n  bounds[1] = x > xMax ? x : xMax;\n  bounds[2] = y;\n  bounds[3] = y > yMax ? y : yMax;\n  bounds[4] = z;\n  bounds[5] = z > zMax ? z : zMax;\n  return xMin !== x || yMin !== y || zMin !== z;\n}\n\nfunction _setMaxPoint(bounds, x, y, z) {\n  var _bounds4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(bounds, 6),\n      xMin = _bounds4[0],\n      xMax = _bounds4[1],\n      yMin = _bounds4[2],\n      yMax = _bounds4[3],\n      zMin = _bounds4[4],\n      zMax = _bounds4[5];\n\n  bounds[0] = x < xMin ? x : xMin;\n  bounds[1] = x;\n  bounds[2] = y < yMin ? y : yMin;\n  bounds[3] = y;\n  bounds[4] = z < zMin ? z : zMin;\n  bounds[5] = z;\n  return xMax !== x || yMax !== y || zMax !== z;\n}\n\nfunction _inflate(bounds, delta) {\n  bounds[0] -= delta;\n  bounds[1] += delta;\n  bounds[2] -= delta;\n  bounds[3] += delta;\n  bounds[4] -= delta;\n  bounds[5] += delta;\n  return bounds;\n}\n\nfunction _scale(bounds, sx, sy, sz) {\n  if (!_isValid(bounds)) {\n    return false;\n  }\n\n  if (sx >= 0.0) {\n    bounds[0] *= sx;\n    bounds[1] *= sx;\n  } else {\n    bounds[0] = sx * bounds[1];\n    bounds[1] = sx * bounds[0];\n  }\n\n  if (sy >= 0.0) {\n    bounds[2] *= sy;\n    bounds[3] *= sy;\n  } else {\n    bounds[2] = sy * bounds[3];\n    bounds[3] = sy * bounds[2];\n  }\n\n  if (sz >= 0.0) {\n    bounds[4] *= sz;\n    bounds[5] *= sz;\n  } else {\n    bounds[4] = sz * bounds[5];\n    bounds[5] = sz * bounds[4];\n  }\n\n  return true;\n}\n\nfunction _getCenter(bounds) {\n  return [0.5 * (bounds[0] + bounds[1]), 0.5 * (bounds[2] + bounds[3]), 0.5 * (bounds[4] + bounds[5])];\n}\nfunction scaleAboutCenter(bounds, sx, sy, sz) {\n  if (!_isValid(bounds)) {\n    return false;\n  }\n\n  var center = _getCenter(bounds);\n\n  bounds[0] -= center[0];\n  bounds[1] -= center[0];\n  bounds[2] -= center[1];\n  bounds[3] -= center[1];\n  bounds[4] -= center[2];\n  bounds[5] -= center[2];\n\n  _scale(bounds, sx, sy, sz);\n\n  bounds[0] += center[0];\n  bounds[1] += center[0];\n  bounds[2] += center[1];\n  bounds[3] += center[1];\n  bounds[4] += center[2];\n  bounds[5] += center[2];\n  return true;\n}\n\nfunction _getLength(bounds, index) {\n  return bounds[index * 2 + 1] - bounds[index * 2];\n}\n\nfunction _getLengths(bounds) {\n  return [_getLength(bounds, 0), _getLength(bounds, 1), _getLength(bounds, 2)];\n}\n\nfunction _getXRange(bounds) {\n  return bounds.slice(0, 2);\n}\n\nfunction _getYRange(bounds) {\n  return bounds.slice(2, 4);\n}\n\nfunction _getZRange(bounds) {\n  return bounds.slice(4, 6);\n}\n\nfunction _getMaxLength(bounds) {\n  var l = _getLengths(bounds);\n\n  if (l[0] > l[1]) {\n    if (l[0] > l[2]) {\n      return l[0];\n    }\n\n    return l[2];\n  }\n\n  if (l[1] > l[2]) {\n    return l[1];\n  }\n\n  return l[2];\n}\n\nfunction _getDiagonalLength(bounds) {\n  if (_isValid(bounds)) {\n    var l = _getLengths(bounds);\n\n    return Math.sqrt(l[0] * l[0] + l[1] * l[1] + l[2] * l[2]);\n  }\n\n  return null;\n}\n\nfunction _getMinPoint(bounds) {\n  return [bounds[0], bounds[2], bounds[4]];\n}\n\nfunction _getMaxPoint(bounds) {\n  return [bounds[1], bounds[3], bounds[5]];\n}\n\nfunction oppositeSign(a, b) {\n  return a <= 0 && b >= 0 || a >= 0 && b <= 0;\n}\n\nfunction _getCorners(bounds, corners) {\n  var count = 0;\n\n  for (var ix = 0; ix < 2; ix++) {\n    for (var iy = 2; iy < 4; iy++) {\n      for (var iz = 4; iz < 6; iz++) {\n        corners[count] = [bounds[ix], bounds[iy], bounds[iz]];\n        count++;\n      }\n    }\n  }\n\n  return corners;\n} // Computes the two corners with minimal and miximal coordinates\n\nfunction _computeCornerPoints(bounds, point1, point2) {\n  point1[0] = bounds[0];\n  point1[1] = bounds[2];\n  point1[2] = bounds[4];\n  point2[0] = bounds[1];\n  point2[1] = bounds[3];\n  point2[2] = bounds[5];\n  return point1;\n}\n\nfunction _computeScale(bounds) {\n  var scale3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  scale3[0] = 0.5 * (bounds[1] - bounds[0]);\n  scale3[1] = 0.5 * (bounds[3] - bounds[2]);\n  scale3[2] = 0.5 * (bounds[5] - bounds[4]);\n  return scale3;\n}\n\nfunction _computeLocalBounds(points, u, v, w) {\n  var bounds = [].concat(INIT_BOUNDS);\n  var pointsData = points.getData();\n\n  for (var i = 0; i < pointsData.length; i += 3) {\n    var point = [pointsData[i], pointsData[i + 1], pointsData[i + 2]];\n    var du = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.d)(point, u);\n    bounds[0] = Math.min(du, bounds[0]);\n    bounds[1] = Math.max(du, bounds[1]);\n    var dv = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.d)(point, v);\n    bounds[2] = Math.min(dv, bounds[2]);\n    bounds[3] = Math.max(dv, bounds[3]);\n    var dw = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.d)(point, w);\n    bounds[4] = Math.min(dw, bounds[4]);\n    bounds[5] = Math.max(dw, bounds[5]);\n  }\n\n  return bounds;\n} // The method returns a non-zero value if the bounding box is hit.\n\nfunction _intersectBox(bounds, origin, dir, coord, tolerance) {\n  var inside = true;\n  var quadrant = [];\n  var whichPlane = 0;\n  var maxT = [];\n  var candidatePlane = [0.0, 0.0, 0.0];\n  var RIGHT = 0;\n  var LEFT = 1;\n  var MIDDLE = 2; // First find closest planes\n\n  for (var i = 0; i < 3; i++) {\n    if (origin[i] < bounds[2 * i]) {\n      quadrant[i] = LEFT;\n      candidatePlane[i] = bounds[2 * i];\n      inside = false;\n    } else if (origin[i] > bounds[2 * i + 1]) {\n      quadrant[i] = RIGHT;\n      candidatePlane[i] = bounds[2 * i + 1];\n      inside = false;\n    } else {\n      quadrant[i] = MIDDLE;\n    }\n  } // Check whether origin of ray is inside bbox\n\n\n  if (inside) {\n    coord[0] = origin[0];\n    coord[1] = origin[1];\n    coord[2] = origin[2];\n    tolerance[0] = 0;\n    return 1;\n  } // Calculate parametric distance to plane\n\n\n  for (var _i = 0; _i < 3; _i++) {\n    if (quadrant[_i] !== MIDDLE && dir[_i] !== 0.0) {\n      maxT[_i] = (candidatePlane[_i] - origin[_i]) / dir[_i];\n    } else {\n      maxT[_i] = -1.0;\n    }\n  } // Find the largest parametric value of intersection\n\n\n  for (var _i2 = 0; _i2 < 3; _i2++) {\n    if (maxT[whichPlane] < maxT[_i2]) {\n      whichPlane = _i2;\n    }\n  } // Check for valie intersection along line\n\n\n  if (maxT[whichPlane] > 1.0 || maxT[whichPlane] < 0.0) {\n    return 0;\n  }\n\n  tolerance[0] = maxT[whichPlane]; // Intersection point along line is okay. Check bbox.\n\n  for (var _i3 = 0; _i3 < 3; _i3++) {\n    if (whichPlane !== _i3) {\n      coord[_i3] = origin[_i3] + maxT[whichPlane] * dir[_i3];\n\n      if (coord[_i3] < bounds[2 * _i3] || coord[_i3] > bounds[2 * _i3 + 1]) {\n        return 0;\n      }\n    } else {\n      coord[_i3] = candidatePlane[_i3];\n    }\n  }\n\n  return 1;\n} // Plane intersection with box\n\nfunction _intersectPlane(bounds, origin, normal) {\n  var p = [];\n  var d = 0;\n  var sign = 1;\n  var firstOne = 1; // Evaluate the eight points. If there is a sign change, there is an intersection\n\n  for (var z = 4; z <= 5; ++z) {\n    p[2] = bounds[z];\n\n    for (var y = 2; y <= 3; ++y) {\n      p[1] = bounds[y];\n\n      for (var x = 0; x <= 1; ++x) {\n        p[0] = bounds[x];\n        d = _Plane_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].evaluate(normal, origin, p);\n\n        if (firstOne) {\n          sign = d >= 0 ? 1 : -1;\n          firstOne = 0;\n        }\n\n        if (d === 0.0 || sign > 0 && d < 0.0 || sign < 0 && d > 0.0) {\n          return 1;\n        }\n      }\n    }\n  }\n\n  return 0; // no intersection\n}\n\nfunction _intersect(bounds, bBounds) {\n  if (!(_isValid(bounds) && _isValid(bBounds))) {\n    return false;\n  }\n\n  var newBounds = [0, 0, 0, 0, 0, 0];\n  var intersection;\n\n  for (var i = 0; i < 3; i++) {\n    intersection = false;\n\n    if (bBounds[i * 2] >= bounds[i * 2] && bBounds[i * 2] <= bounds[i * 2 + 1]) {\n      intersection = true;\n      newBounds[i * 2] = bBounds[i * 2];\n    } else if (bounds[i * 2] >= bBounds[i * 2] && bounds[i * 2] <= bBounds[i * 2 + 1]) {\n      intersection = true;\n      newBounds[i * 2] = bounds[i * 2];\n    }\n\n    if (bBounds[i * 2 + 1] >= bounds[i * 2] && bBounds[i * 2 + 1] <= bounds[i * 2 + 1]) {\n      intersection = true;\n      newBounds[i * 2 + 1] = bBounds[2 * i + 1];\n    } else if (bounds[i * 2 + 1] >= bBounds[i * 2] && bounds[i * 2 + 1] <= bBounds[i * 2 + 1]) {\n      intersection = true;\n      newBounds[i * 2 + 1] = bounds[i * 2 + 1];\n    }\n\n    if (!intersection) {\n      return false;\n    }\n  } // OK they did intersect - set the box to be the result\n\n\n  bounds[0] = newBounds[0];\n  bounds[1] = newBounds[1];\n  bounds[2] = newBounds[2];\n  bounds[3] = newBounds[3];\n  bounds[4] = newBounds[4];\n  bounds[5] = newBounds[5];\n  return true;\n}\n\nfunction _intersects(bounds, bBounds) {\n  if (!(_isValid(bounds) && _isValid(bBounds))) {\n    return false;\n  }\n  /* eslint-disable no-continue */\n\n\n  for (var i = 0; i < 3; i++) {\n    if (bBounds[i * 2] >= bounds[i * 2] && bBounds[i * 2] <= bounds[i * 2 + 1]) {\n      continue;\n    } else if (bounds[i * 2] >= bBounds[i * 2] && bounds[i * 2] <= bBounds[i * 2 + 1]) {\n      continue;\n    }\n\n    if (bBounds[i * 2 + 1] >= bounds[i * 2] && bBounds[i * 2 + 1] <= bounds[i * 2 + 1]) {\n      continue;\n    } else if (bounds[i * 2 + 1] >= bBounds[i * 2] && bounds[i * 2 + 1] <= bBounds[i * 2 + 1]) {\n      continue;\n    }\n\n    return false;\n  }\n  /* eslint-enable no-continue */\n\n\n  return true;\n}\n\nfunction _containsPoint(bounds, x, y, z) {\n  if (x < bounds[0] || x > bounds[1]) {\n    return false;\n  }\n\n  if (y < bounds[2] || y > bounds[3]) {\n    return false;\n  }\n\n  if (z < bounds[4] || z > bounds[5]) {\n    return false;\n  }\n\n  return true;\n}\nfunction contains(bounds, otherBounds) {\n  // if either box is not valid or they don't intersect\n  if (!_intersects(bounds, otherBounds)) {\n    return false;\n  }\n\n  if (!_containsPoint.apply(void 0, [bounds].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_getMinPoint(otherBounds))))) {\n    return false;\n  }\n\n  if (!_containsPoint.apply(void 0, [bounds].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_getMaxPoint(otherBounds))))) {\n    return false;\n  }\n\n  return true;\n}\n/**\n * Returns true if plane intersects bounding box.\n * If so, the box is cut by the plane\n * @param {array} origin\n * @param {array} normal\n */\n\nfunction _cutWithPlane(bounds, origin, normal) {\n  // Index[0..2] represents the order of traversing the corners of a cube\n  // in (x,y,z), (y,x,z) and (z,x,y) ordering, respectively\n  var index = [[0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 4, 5, 2, 3, 6, 7], [0, 2, 4, 6, 1, 3, 5, 7]]; // stores the signed distance to a plane\n\n  var d = [0, 0, 0, 0, 0, 0, 0, 0];\n  var idx = 0;\n\n  for (var ix = 0; ix < 2; ix++) {\n    for (var iy = 2; iy < 4; iy++) {\n      for (var iz = 4; iz < 6; iz++) {\n        var x = [bounds[ix], bounds[iy], bounds[iz]];\n        d[idx++] = _Plane_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].evaluate(normal, origin, x);\n      }\n    }\n  }\n\n  var dir = 2;\n\n  while (dir--) {\n    // in each direction, we test if the vertices of two orthogonal faces\n    // are on either side of the plane\n    if (oppositeSign(d[index[dir][0]], d[index[dir][4]]) && oppositeSign(d[index[dir][1]], d[index[dir][5]]) && oppositeSign(d[index[dir][2]], d[index[dir][6]]) && oppositeSign(d[index[dir][3]], d[index[dir][7]])) {\n      break;\n    }\n  }\n\n  if (dir < 0) {\n    return false;\n  }\n\n  var sign = Math.sign(normal[dir]);\n  var size = Math.abs((bounds[dir * 2 + 1] - bounds[dir * 2]) * normal[dir]);\n  var t = sign > 0 ? 1 : 0;\n  /* eslint-disable no-continue */\n\n  for (var i = 0; i < 4; i++) {\n    if (size === 0) {\n      continue; // shouldn't happen\n    }\n\n    var ti = Math.abs(d[index[dir][i]]) / size;\n\n    if (sign > 0 && ti < t) {\n      t = ti;\n    }\n\n    if (sign < 0 && ti > t) {\n      t = ti;\n    }\n  }\n  /* eslint-enable no-continue */\n\n\n  var bound = (1.0 - t) * bounds[dir * 2] + t * bounds[dir * 2 + 1];\n\n  if (sign > 0) {\n    bounds[dir * 2] = bound;\n  } else {\n    bounds[dir * 2 + 1] = bound;\n  }\n\n  return true;\n} // ----------------------------------------------------------------------------\n\nvar BoundingBox = /*#__PURE__*/function () {\n  function BoundingBox(refBounds) {\n    (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, BoundingBox);\n\n    this.bounds = refBounds;\n\n    if (!this.bounds) {\n      this.bounds = new Float64Array(INIT_BOUNDS);\n    }\n  }\n\n  (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(BoundingBox, [{\n    key: \"getBounds\",\n    value: function getBounds() {\n      return this.bounds;\n    }\n  }, {\n    key: \"equals\",\n    value: function equals(otherBounds) {\n      return _equals(this.bounds, otherBounds);\n    }\n  }, {\n    key: \"isValid\",\n    value: function isValid() {\n      return _isValid(this.bounds);\n    }\n  }, {\n    key: \"setBounds\",\n    value: function setBounds(otherBounds) {\n      return _setBounds(this.bounds, otherBounds);\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      return _reset(this.bounds);\n    }\n  }, {\n    key: \"addPoint\",\n    value: function addPoint() {\n      for (var _len = arguments.length, xyz = new Array(_len), _key = 0; _key < _len; _key++) {\n        xyz[_key] = arguments[_key];\n      }\n\n      return _addPoint(this.bounds, xyz);\n    }\n  }, {\n    key: \"addBounds\",\n    value: function addBounds(xMin, xMax, yMin, yMax, zMin, zMax) {\n      return _addBounds(this.bounds, xMin, xMax, yMin, yMax, zMin, zMax);\n    }\n  }, {\n    key: \"setMinPoint\",\n    value: function setMinPoint(x, y, z) {\n      return _setMinPoint(this.bounds, x, y, z);\n    }\n  }, {\n    key: \"setMaxPoint\",\n    value: function setMaxPoint(x, y, z) {\n      return _setMaxPoint(this.bounds, x, y, z);\n    }\n  }, {\n    key: \"inflate\",\n    value: function inflate(delta) {\n      return _inflate(this.bounds, delta);\n    }\n  }, {\n    key: \"scale\",\n    value: function scale(sx, sy, sz) {\n      return _scale(this.bounds, sx, sy, sz);\n    }\n  }, {\n    key: \"getCenter\",\n    value: function getCenter() {\n      return _getCenter(this.bounds);\n    }\n  }, {\n    key: \"getLength\",\n    value: function getLength(index) {\n      return _getLength(this.bounds, index);\n    }\n  }, {\n    key: \"getLengths\",\n    value: function getLengths() {\n      return _getLengths(this.bounds);\n    }\n  }, {\n    key: \"getMaxLength\",\n    value: function getMaxLength() {\n      return _getMaxLength(this.bounds);\n    }\n  }, {\n    key: \"getDiagonalLength\",\n    value: function getDiagonalLength() {\n      return _getDiagonalLength(this.bounds);\n    }\n  }, {\n    key: \"getMinPoint\",\n    value: function getMinPoint() {\n      return _getMinPoint(this.bounds);\n    }\n  }, {\n    key: \"getMaxPoint\",\n    value: function getMaxPoint() {\n      return _getMaxPoint(this.bounds);\n    }\n  }, {\n    key: \"getXRange\",\n    value: function getXRange() {\n      return _getXRange(this.bounds);\n    }\n  }, {\n    key: \"getYRange\",\n    value: function getYRange() {\n      return _getYRange(this.bounds);\n    }\n  }, {\n    key: \"getZRange\",\n    value: function getZRange() {\n      return _getZRange(this.bounds);\n    }\n  }, {\n    key: \"getCorners\",\n    value: function getCorners(corners) {\n      return _getCorners(this.bounds, corners);\n    }\n  }, {\n    key: \"computeCornerPoints\",\n    value: function computeCornerPoints(point1, point2) {\n      return _computeCornerPoints(this.bounds, point1, point2);\n    }\n  }, {\n    key: \"computeLocalBounds\",\n    value: function computeLocalBounds(u, v, w) {\n      return _computeLocalBounds(this.bounds, u, v, w);\n    }\n  }, {\n    key: \"computeScale3\",\n    value: function computeScale3(scale3) {\n      return _computeScale(this.bounds, scale3);\n    }\n  }, {\n    key: \"cutWithPlane\",\n    value: function cutWithPlane(origin, normal) {\n      return _cutWithPlane(this.bounds, origin, normal);\n    }\n  }, {\n    key: \"intersectBox\",\n    value: function intersectBox(origin, dir, coord, tolerance) {\n      return _intersectBox(this.bounds, origin, dir, coord, tolerance);\n    }\n  }, {\n    key: \"intersectPlane\",\n    value: function intersectPlane(origin, normal) {\n      return _intersectPlane(this.bounds, origin, normal);\n    }\n  }, {\n    key: \"intersect\",\n    value: function intersect(otherBounds) {\n      return _intersect(this.bounds, otherBounds);\n    }\n  }, {\n    key: \"intersects\",\n    value: function intersects(otherBounds) {\n      return _intersects(this.bounds, otherBounds);\n    }\n  }, {\n    key: \"containsPoint\",\n    value: function containsPoint(x, y, z) {\n      return _containsPoint(this.bounds, x, y, z);\n    }\n  }, {\n    key: \"contains\",\n    value: function contains(otherBounds) {\n      return _intersects(this.bounds, otherBounds);\n    }\n  }]);\n\n  return BoundingBox;\n}();\n\nfunction newInstance(initialValues) {\n  var bounds = initialValues && initialValues.bounds;\n  return new BoundingBox(bounds);\n} // ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\n\nvar STATIC = {\n  equals: _equals,\n  isValid: _isValid,\n  setBounds: _setBounds,\n  reset: _reset,\n  addPoint: _addPoint,\n  addBounds: _addBounds,\n  setMinPoint: _setMinPoint,\n  setMaxPoint: _setMaxPoint,\n  inflate: _inflate,\n  scale: _scale,\n  scaleAboutCenter: scaleAboutCenter,\n  getCenter: _getCenter,\n  getLength: _getLength,\n  getLengths: _getLengths,\n  getMaxLength: _getMaxLength,\n  getDiagonalLength: _getDiagonalLength,\n  getMinPoint: _getMinPoint,\n  getMaxPoint: _getMaxPoint,\n  getXRange: _getXRange,\n  getYRange: _getYRange,\n  getZRange: _getZRange,\n  getCorners: _getCorners,\n  computeCornerPoints: _computeCornerPoints,\n  computeLocalBounds: _computeLocalBounds,\n  computeScale3: _computeScale,\n  cutWithPlane: _cutWithPlane,\n  intersectBox: _intersectBox,\n  intersectPlane: _intersectPlane,\n  intersect: _intersect,\n  intersects: _intersects,\n  containsPoint: _containsPoint,\n  contains: contains,\n  INIT_BOUNDS: INIT_BOUNDS\n};\nvar vtkBoundingBox = _objectSpread({\n  newInstance: newInstance\n}, STATIC);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/BoundingBox.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/Cell.js":
/*!***************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/Cell.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkCell$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Core_Points_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Points.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Points.js\");\n\n\n\n\n// vtkCell methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCell(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkCell');\n\n  publicAPI.initialize = function (points) {\n    var pointIdsList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    if (!pointIdsList) {\n      model.points = points;\n      model.pointsIds = new Array(points.getNumberOfPoints());\n\n      for (var i = points.getNumberOfPoints() - 1; i >= 0; --i) {\n        model.pointsIds[i] = i;\n      }\n    } else {\n      model.pointsIds = pointIdsList;\n      var triangleData = model.points.getData();\n\n      if (triangleData.length !== 3 * model.pointsIds.length) {\n        triangleData = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newTypedArray(points.getDataType(), 3 * model.pointsIds.length);\n      }\n\n      var pointsData = points.getData();\n      model.pointsIds.forEach(function (pointId, index) {\n        // const start = 3 * pointId;\n        // pointsData.set(p.subarray(start, start + 3), 3 * index);\n        var pointOffset = 3 * pointId;\n        var trianglePointOffset = 3 * index;\n        triangleData[trianglePointOffset] = pointsData[pointOffset];\n        triangleData[++trianglePointOffset] = pointsData[++pointOffset];\n        triangleData[++trianglePointOffset] = pointsData[++pointOffset];\n      });\n      model.points.setData(triangleData);\n    }\n  };\n\n  publicAPI.getBounds = function () {\n    var nbPoints = model.points.getNumberOfPoints();\n    var x = [];\n\n    if (nbPoints) {\n      model.points.getPoint(0, x);\n      model.bounds[0] = x[0];\n      model.bounds[1] = x[0];\n      model.bounds[2] = x[1];\n      model.bounds[3] = x[1];\n      model.bounds[4] = x[2];\n      model.bounds[5] = x[2];\n\n      for (var i = 1; i < nbPoints; i++) {\n        model.points.getPoint(i, x);\n        model.bounds[0] = x[0] < model.bounds[0] ? x[0] : model.bounds[0];\n        model.bounds[1] = x[0] > model.bounds[1] ? x[0] : model.bounds[1];\n        model.bounds[2] = x[1] < model.bounds[2] ? x[1] : model.bounds[2];\n        model.bounds[3] = x[1] > model.bounds[3] ? x[1] : model.bounds[3];\n        model.bounds[4] = x[2] < model.bounds[4] ? x[2] : model.bounds[4];\n        model.bounds[5] = x[2] > model.bounds[5] ? x[2] : model.bounds[5];\n      }\n    } else {\n      (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.u)(model.bounds);\n    }\n\n    return model.bounds;\n  };\n\n  publicAPI.getLength2 = function () {\n    publicAPI.getBounds();\n    var length = 0.0;\n    var diff = 0;\n\n    for (var i = 0; i < 3; i++) {\n      diff = model.bounds[2 * i + 1] - model.bounds[2 * i];\n      length += diff * diff;\n    }\n\n    return length;\n  };\n\n  publicAPI.getParametricDistance = function (pcoords) {\n    var pDist;\n    var pDistMax = 0.0;\n\n    for (var i = 0; i < 3; i++) {\n      if (pcoords[i] < 0.0) {\n        pDist = -pcoords[i];\n      } else if (pcoords[i] > 1.0) {\n        pDist = pcoords[i] - 1.0;\n      } else {\n        // inside the cell in the parametric direction\n        pDist = 0.0;\n      }\n\n      if (pDist > pDistMax) {\n        pDistMax = pDist;\n      }\n    }\n\n    return pDistMax;\n  };\n\n  publicAPI.getNumberOfPoints = function () {\n    return model.points.getNumberOfPoints();\n  };\n\n  publicAPI.deepCopy = function (cell) {\n    cell.initialize(model.points, model.pointsIds);\n  };\n\n  publicAPI.getCellDimension = function () {}; // virtual\n\n\n  publicAPI.intersectWithLine = function (p1, p2, tol, t, x, pcoords, subId) {}; // virtual\n\n\n  publicAPI.evaluatePosition = function (x, closestPoint, subId, pcoords, dist2, weights) {}; // virtual\n\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  bounds: [-1, -1, -1, -1, -1, -1],\n  pointsIds: []\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n\n  if (!model.points) {\n    model.points = _Core_Points_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n  }\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['points', 'pointsIds']);\n  vtkCell(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkCell'); // ----------------------------------------------------------------------------\n\nvar vtkCell$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/Cell.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/CellLinks.js":
/*!********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/CellLinks.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"InitLink\": () => (/* binding */ InitLink),\n/* harmony export */   \"default\": () => (/* binding */ vtkCellLinks$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Cell_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Cell.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/Cell.js\");\n\n\n\n\n// Global methods\n// ----------------------------------------------------------------------------\n\nvar InitLink = {\n  ncells: 0,\n  cells: null\n};\n\nfunction resize(model, sz) {\n  var newSize = sz;\n\n  if (sz >= model.array.length) {\n    newSize += model.array.length;\n  }\n\n  while (newSize > model.array.length) {\n    model.array.push({\n      ncells: 0,\n      cells: null\n    });\n  }\n\n  model.array.length = newSize;\n} // ----------------------------------------------------------------------------\n// vtkCellLinks methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkCellLinks(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkCellLinks');\n  /**\n   * Build the link list array. All subclasses of vtkAbstractCellLinks\n   * must support this method.\n   */\n\n  publicAPI.buildLinks = function (data) {\n    var numPts = data.getPoints().getNumberOfPoints();\n    var numCells = data.getNumberOfCells(); // fill out lists with number of references to cells\n\n    var linkLoc = new Uint32Array(numPts); // Use fast path if polydata\n\n    if (data.isA('vtkPolyData')) {\n      // traverse data to determine number of uses of each point\n      for (var cellId = 0; cellId < numCells; ++cellId) {\n        var _data$getCellPoints = data.getCellPoints(cellId),\n            cellPointIds = _data$getCellPoints.cellPointIds;\n\n        cellPointIds.forEach(function (cellPointId) {\n          publicAPI.incrementLinkCount(cellPointId);\n        });\n      } // now allocate storage for the links\n\n\n      publicAPI.allocateLinks(numPts);\n      model.maxId = numPts - 1;\n\n      var _loop = function _loop(_cellId) {\n        var _data$getCellPoints2 = data.getCellPoints(_cellId),\n            cellPointIds = _data$getCellPoints2.cellPointIds;\n\n        cellPointIds.forEach(function (cellPointId) {\n          publicAPI.insertCellReference(cellPointId, linkLoc[cellPointId]++, _cellId);\n        });\n      };\n\n      for (var _cellId = 0; _cellId < numCells; ++_cellId) {\n        _loop(_cellId);\n      }\n    } // any other type of dataset\n    else {\n      // traverse data to determine number of uses of each point\n      for (var _cellId2 = 0; _cellId2 < numCells; _cellId2++) {\n        // TODO: Currently not supported: const cell = data.getCell(cellId);\n        var cell = _Cell_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n        cell.getPointsIds().forEach(function (cellPointId) {\n          publicAPI.incrementLinkCount(cellPointId);\n        });\n      } // now allocate storage for the links\n\n\n      publicAPI.allocateLinks(numPts);\n      model.maxId = numPts - 1;\n\n      var _loop2 = function _loop2(_cellId3) {\n        // TODO: Currently not supported: const cell = data.getCell(cellId);\n        var cell = _Cell_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n        cell.getPointsIds().forEach(function (cellPointId) {\n          publicAPI.insertCellReference(cellPointId, linkLoc[cellPointId]++, _cellId3);\n        });\n      };\n\n      for (var _cellId3 = 0; _cellId3 < numCells; ++_cellId3) {\n        _loop2(_cellId3);\n      }\n    } // end else\n\n  };\n  /**\n   * Build the link list array with a provided connectivity array.\n   */\n  // publicAPI.buildLinks = (data, connectivity) => {};\n\n  /**\n   * Allocate the specified number of links (i.e., number of points) that\n   * will be built.\n   */\n\n\n  publicAPI.allocate = function (numLinks) {\n    var ext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n    model.array = Array(numLinks).fill().map(function () {\n      return {\n        ncells: 0,\n        cells: null\n      };\n    });\n    model.extend = ext;\n    model.maxId = -1;\n  };\n\n  publicAPI.initialize = function () {\n    model.array = null;\n  };\n  /**\n   * Get a link structure given a point id.\n   */\n\n\n  publicAPI.getLink = function (ptId) {\n    return model.array[ptId];\n  };\n  /**\n   * Get the number of cells using the point specified by ptId.\n   */\n\n\n  publicAPI.getNcells = function (ptId) {\n    return model.array[ptId].ncells;\n  };\n  /**\n   * Return a list of cell ids using the point.\n   */\n\n\n  publicAPI.getCells = function (ptId) {\n    return model.array[ptId].cells;\n  };\n  /**\n   * Insert a new point into the cell-links data structure. The size parameter\n   * is the initial size of the list.\n   */\n\n\n  publicAPI.insertNextPoint = function (numLinks) {\n    model.array.push({\n      ncells: numLinks,\n      cells: Array(numLinks)\n    });\n    ++model.maxId;\n  };\n  /**\n   * Insert a cell id into the list of cells (at the end) using the cell id\n   * provided. (Make sure to extend the link list (if necessary) using the\n   * method resizeCellList().)\n   */\n\n\n  publicAPI.insertNextCellReference = function (ptId, cellId) {\n    model.array[ptId].cells[model.array[ptId].ncells++] = cellId;\n  };\n  /**\n   * Delete point (and storage) by destroying links to using cells.\n   */\n\n\n  publicAPI.deletePoint = function (ptId) {\n    model.array[ptId].ncells = 0;\n    model.array[ptId].cells = null;\n  };\n  /**\n   * Delete the reference to the cell (cellId) from the point (ptId). This\n   * removes the reference to the cellId from the cell list, but does not\n   * resize the list (recover memory with resizeCellList(), if necessary).\n   */\n\n\n  publicAPI.removeCellReference = function (cellId, ptId) {\n    model.array[ptId].cells = model.array[ptId].cells.filter(function (cell) {\n      return cell !== cellId;\n    });\n    model.array[ptId].ncells = model.array[ptId].cells.length;\n  };\n  /**\n   * Add the reference to the cell (cellId) from the point (ptId). This\n   * adds a reference to the cellId from the cell list, but does not resize\n   * the list (extend memory with resizeCellList(), if necessary).\n   */\n\n\n  publicAPI.addCellReference = function (cellId, ptId) {\n    model.array[ptId].cells[model.array[ptId].ncells++] = cellId;\n  };\n  /**\n   * Change the length of a point's link list (i.e., list of cells using a\n   * point) by the size specified.\n   */\n\n\n  publicAPI.resizeCellList = function (ptId, size) {\n    model.array[ptId].cells.length = size;\n  };\n  /**\n   * Reclaim any unused memory.\n   */\n\n\n  publicAPI.squeeze = function () {\n    resize(model, model.maxId + 1);\n  };\n  /**\n   * Reset to a state of no entries without freeing the memory.\n   */\n\n\n  publicAPI.reset = function () {\n    model.maxId = -1;\n  };\n  /**\n   * Standard DeepCopy method.  Since this object contains no reference\n   * to other objects, there is no ShallowCopy.\n   */\n\n\n  publicAPI.deepCopy = function (src) {\n    model.array = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(src.array);\n    model.extend = src.extend;\n    model.maxId = src.maxId;\n  };\n  /**\n   * Increment the count of the number of cells using the point.\n   */\n\n\n  publicAPI.incrementLinkCount = function (ptId) {\n    ++model.array[ptId].ncells;\n  };\n\n  publicAPI.allocateLinks = function (n) {\n    for (var i = 0; i < n; ++i) {\n      model.array[i].cells = new Array(model.array[i].ncells);\n    }\n  };\n  /**\n   * Insert a cell id into the list of cells using the point.\n   */\n\n\n  publicAPI.insertCellReference = function (ptId, pos, cellId) {\n    model.array[ptId].cells[pos] = cellId;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  array: null,\n  // pointer to data\n  maxId: 0,\n  // maximum index inserted thus far\n  extend: 0 // grow array by this point\n\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  vtkCellLinks(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkCellLinks'); // ----------------------------------------------------------------------------\n\nvar vtkCellLinks$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/CellLinks.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes.js":
/*!********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"default\": () => (/* binding */ vtkCellTypes$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CellTypes/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes/Constants.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// Global methods\n// ----------------------------------------------------------------------------\n\n/**\n * Given an int (as defined in vtkCellType.h) identifier for a class\n * return it's classname.\n */\n\nfunction getClassNameFromTypeId(typeId) {\n  return typeId < _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_2__.CellTypesStrings.length ? _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_2__.CellTypesStrings[typeId] : 'UnknownClass';\n}\n/**\n * Given a data object classname, return it's int identified (as\n * defined in vtkCellType.h)\n */\n\n\nfunction getTypeIdFromClassName(cellTypeString) {\n  return _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_2__.CellTypesStrings.findIndex(cellTypeString);\n}\n/**\n * This convenience method is a fast check to determine if a cell type\n * represents a linear or nonlinear cell.  This is generally much more\n * efficient than getting the appropriate vtkCell and checking its IsLinear\n * method.\n */\n\n\nfunction isLinear(type) {\n  return type < _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_2__.CellType.VTK_QUADRATIC_EDGE || type === _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_2__.CellType.VTK_CONVEX_POINT_SET || type === _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_2__.CellType.VTK_POLYHEDRON;\n} // ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\n\nvar STATIC = {\n  getClassNameFromTypeId: getClassNameFromTypeId,\n  getTypeIdFromClassName: getTypeIdFromClassName,\n  isLinear: isLinear\n}; // ----------------------------------------------------------------------------\n// vtkCellTypes methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCellTypes(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkCellTypes');\n  /**\n   * Allocate memory for this array. Delete old storage only if necessary.\n   */\n\n  publicAPI.allocate = function () {\n    var sz = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 512;\n    var ext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n    model.size = sz > 0 ? sz : 1;\n    model.extend = ext > 0 ? ext : 1;\n    model.maxId = -1;\n    model.typeArray = new Uint8Array(sz);\n    model.locationArray = new Uint32Array(sz);\n  };\n  /**\n   * Add a cell at specified id.\n   */\n\n\n  publicAPI.insertCell = function (cellId, type, loc) {\n    model.typeArray[cellId] = type;\n    model.locationArray[cellId] = loc;\n\n    if (cellId > model.maxId) {\n      model.maxId = cellId;\n    }\n  };\n  /**\n   * Add a cell to the object in the next available slot.\n   */\n\n\n  publicAPI.insertNextCell = function (type, loc) {\n    publicAPI.insertCell(++model.maxId, type, loc);\n    return model.maxId;\n  };\n  /**\n   * Specify a group of cell types. This version is provided to maintain\n   * backwards compatibility and does a copy of the cellLocations\n   */\n\n\n  publicAPI.setCellTypes = function (ncells, cellTypes, cellLocations) {\n    model.size = ncells;\n    model.typeArray = cellTypes;\n    model.locationArray = cellLocations;\n    model.maxId = ncells - 1;\n  };\n  /**\n   * Return the location of the cell in the associated vtkCellArray.\n   */\n\n\n  publicAPI.getCellLocation = function (cellId) {\n    return model.locationArray[cellId];\n  };\n  /**\n   * Delete cell by setting to nullptr cell type.\n   */\n\n\n  publicAPI.deleteCell = function (cellId) {\n    model.typeArray[cellId] = _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_2__.CellType.VTK_EMPTY_CELL;\n  };\n  /**\n   * Return the number of types in the list.\n   */\n\n\n  publicAPI.getNumberOfTypes = function () {\n    return model.maxId + 1;\n  };\n  /**\n   * Return true if type specified is contained in list; false otherwise.\n   */\n\n\n  publicAPI.isType = function (type) {\n    var numTypes = publicAPI.getNumberOfTypes();\n\n    for (var i = 0; i < numTypes; ++i) {\n      if (type === publicAPI.getCellType(i)) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n  /**\n   * Add the type specified to the end of the list. Range checking is performed.\n   */\n\n\n  publicAPI.insertNextType = function (type) {\n    return publicAPI.insertNextCell(type, -1);\n  };\n  /**\n   * Return the type of cell.\n   */\n\n\n  publicAPI.getCellType = function (cellId) {\n    return model.typeArray[cellId];\n  };\n  /**\n   * Reclaim any extra memory.\n   */\n  // TODO: publicAPI.squeeze = () =>  {};\n\n  /**\n   * Initialize object without releasing memory.\n   */\n\n\n  publicAPI.reset = function () {\n    model.maxId = -1;\n  };\n  /**\n   * Standard DeepCopy method.  Since this object contains no reference\n   * to other objects, there is no ShallowCopy.\n   */\n\n\n  publicAPI.deepCopy = function (src) {\n    publicAPI.allocate(src.getSize(), src.getExtend());\n    model.typeArray.set(src.getTypeArray());\n    model.locationArray.set(src.getLocationArray());\n    model.maxId = src.getMaxId();\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  // typeArray: null, // pointer to types array\n  // locationArray: null;   // pointer to array of offsets\n  size: 0,\n  // allocated size of data\n  maxId: -1,\n  // maximum index inserted thus far\n  extend: 1000 // grow array by this point\n\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['size', 'maxId', 'extend']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getArray(publicAPI, model, ['typeArray', 'locationArray']);\n  vtkCellTypes(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkCellTypes'); // ----------------------------------------------------------------------------\n\nvar vtkCellTypes$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, STATIC);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes/Constants.js":
/*!******************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes/Constants.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"CellType\": () => (/* binding */ CellType),\n/* harmony export */   \"CellTypesStrings\": () => (/* binding */ CellTypesStrings),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar CellType = {\n  // Linear cells\n  VTK_EMPTY_CELL: 0,\n  VTK_VERTEX: 1,\n  VTK_POLY_VERTEX: 2,\n  VTK_LINE: 3,\n  VTK_POLY_LINE: 4,\n  VTK_TRIANGLE: 5,\n  VTK_TRIANGLE_STRIP: 6,\n  VTK_POLYGON: 7,\n  VTK_PIXEL: 8,\n  VTK_QUAD: 9,\n  VTK_TETRA: 10,\n  VTK_VOXEL: 11,\n  VTK_HEXAHEDRON: 12,\n  VTK_WEDGE: 13,\n  VTK_PYRAMID: 14,\n  VTK_PENTAGONAL_PRISM: 15,\n  VTK_HEXAGONAL_PRISM: 16,\n  // Quadratic, isoparametric cells\n  VTK_QUADRATIC_EDGE: 21,\n  VTK_QUADRATIC_TRIANGLE: 22,\n  VTK_QUADRATIC_QUAD: 23,\n  VTK_QUADRATIC_POLYGON: 36,\n  VTK_QUADRATIC_TETRA: 24,\n  VTK_QUADRATIC_HEXAHEDRON: 25,\n  VTK_QUADRATIC_WEDGE: 26,\n  VTK_QUADRATIC_PYRAMID: 27,\n  VTK_BIQUADRATIC_QUAD: 28,\n  VTK_TRIQUADRATIC_HEXAHEDRON: 29,\n  VTK_QUADRATIC_LINEAR_QUAD: 30,\n  VTK_QUADRATIC_LINEAR_WEDGE: 31,\n  VTK_BIQUADRATIC_QUADRATIC_WEDGE: 32,\n  VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON: 33,\n  VTK_BIQUADRATIC_TRIANGLE: 34,\n  // Cubic, isoparametric cell\n  VTK_CUBIC_LINE: 35,\n  // Special class of cells formed by convex group of points\n  VTK_CONVEX_POINT_SET: 41,\n  // Polyhedron cell (consisting of polygonal faces)\n  VTK_POLYHEDRON: 42,\n  // Higher order cells in parametric form\n  VTK_PARAMETRIC_CURVE: 51,\n  VTK_PARAMETRIC_SURFACE: 52,\n  VTK_PARAMETRIC_TRI_SURFACE: 53,\n  VTK_PARAMETRIC_QUAD_SURFACE: 54,\n  VTK_PARAMETRIC_TETRA_REGION: 55,\n  VTK_PARAMETRIC_HEX_REGION: 56,\n  // Higher order cells\n  VTK_HIGHER_ORDER_EDGE: 60,\n  VTK_HIGHER_ORDER_TRIANGLE: 61,\n  VTK_HIGHER_ORDER_QUAD: 62,\n  VTK_HIGHER_ORDER_POLYGON: 63,\n  VTK_HIGHER_ORDER_TETRAHEDRON: 64,\n  VTK_HIGHER_ORDER_WEDGE: 65,\n  VTK_HIGHER_ORDER_PYRAMID: 66,\n  VTK_HIGHER_ORDER_HEXAHEDRON: 67,\n  // Arbitrary order Lagrange elements (formulated separated from generic higher order cells)\n  VTK_LAGRANGE_CURVE: 68,\n  VTK_LAGRANGE_TRIANGLE: 69,\n  VTK_LAGRANGE_QUADRILATERAL: 70,\n  VTK_LAGRANGE_TETRAHEDRON: 71,\n  VTK_LAGRANGE_HEXAHEDRON: 72,\n  VTK_LAGRANGE_WEDGE: 73,\n  VTK_LAGRANGE_PYRAMID: 74,\n  VTK_NUMBER_OF_CELL_TYPES: 75\n}; // This list should contain the cell class names in\n// the same order as in CellType.\n\nvar CellTypesStrings = ['vtkEmptyCell', 'vtkVertex', 'vtkPolyVertex', 'vtkLine', 'vtkPolyLine', 'vtkTriangle', 'vtkTriangleStrip', 'vtkPolygon', 'vtkPixel', 'vtkQuad', 'vtkTetra', 'vtkVoxel', 'vtkHexahedron', 'vtkWedge', 'vtkPyramid', 'vtkPentagonalPrism', 'vtkHexagonalPrism', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'vtkQuadraticEdge', 'vtkQuadraticTriangle', 'vtkQuadraticQuad', 'vtkQuadraticTetra', 'vtkQuadraticHexahedron', 'vtkQuadraticWedge', 'vtkQuadraticPyramid', 'vtkBiQuadraticQuad', 'vtkTriQuadraticHexahedron', 'vtkQuadraticLinearQuad', 'vtkQuadraticLinearWedge', 'vtkBiQuadraticQuadraticWedge', 'vtkBiQuadraticQuadraticHexahedron', 'vtkBiQuadraticTriangle', 'vtkCubicLine', 'vtkQuadraticPolygon', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'vtkConvexPointSet', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'vtkParametricCurve', 'vtkParametricSurface', 'vtkParametricTriSurface', 'vtkParametricQuadSurface', 'vtkParametricTetraRegion', 'vtkParametricHexRegion', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'vtkHigherOrderEdge', 'vtkHigherOrderTriangle', 'vtkHigherOrderQuad', 'vtkHigherOrderPolygon', 'vtkHigherOrderTetrahedron', 'vtkHigherOrderWedge', 'vtkHigherOrderPyramid', 'vtkHigherOrderHexahedron'];\nvar Constants = {\n  CellType: CellType,\n  CellTypesStrings: CellTypesStrings\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/DataSet.js":
/*!******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/DataSet.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkDataSet$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _vtk_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vtk.js */ \"./node_modules/@kitware/vtk.js/vtk.js\");\n/* harmony import */ var _DataSetAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DataSetAttributes.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes.js\");\n/* harmony import */ var _DataSet_Constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DataSet/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/DataSet/Constants.js\");\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// import * as vtkMath from '../../Core/Math';\n//\n// function getBounds(dataset) {\n//   if (dataset.bounds) {\n//     return dataset.bounds;\n//   }\n//   if (dataset.type && dataset[dataset.type]) {\n//     const ds = dataset[dataset.type];\n//     if (ds.bounds) {\n//       return ds.bounds;\n//     }\n//     if (ds.Points && ds.Points.bounds) {\n//       return ds.Points.bounds;\n//     }\n//     if (ds.Points && ds.Points.values) {\n//       const array = ds.Points.values;\n//       const bbox = [...vtkBoundingBox.INIT_BOUNDS];\n//       const size = array.length;\n//       const delta = ds.Points.numberOfComponents ? ds.Points.numberOfComponents : 3;\n//       for (let idx = 0; idx < size; idx += delta) {\n//         vtkBoundingBox.addPoint(bbox, array[idx * delta], array[(idx * delta) + 1], array[(idx * delta) + 2]);\n//       }\n//       ds.Points.bounds = bbox;\n//       return ds.Points.bounds;\n//     }\n//   }\n//   return vtkMath.createUninitializedBounds();\n// }\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nvar DATASET_FIELDS = ['pointData', 'cellData', 'fieldData']; // ----------------------------------------------------------------------------\n// vtkDataSet methods\n// ----------------------------------------------------------------------------\n\nfunction vtkDataSet(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkDataSet'); // Add dataset attributes\n\n  DATASET_FIELDS.forEach(function (fieldName) {\n    if (!model[fieldName]) {\n      model[fieldName] = _DataSetAttributes_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n    } else {\n      model[fieldName] = (0,_vtk_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(model[fieldName]);\n    }\n  });\n  var superShallowCopy = publicAPI.shallowCopy;\n\n  publicAPI.shallowCopy = function (other) {\n    var debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    superShallowCopy(other, debug);\n    DATASET_FIELDS.forEach(function (fieldName) {\n      model[fieldName] = _DataSetAttributes_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n      model[fieldName].shallowCopy(other.getReferenceByName(fieldName));\n    });\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {// pointData: null,\n  // cellData: null,\n  // fieldData: null,\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, DATASET_FIELDS); // Object specific methods\n\n  vtkDataSet(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkDataSet'); // ----------------------------------------------------------------------------\n\nvar vtkDataSet$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _DataSet_Constants_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/DataSet.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/DataSet/Constants.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/DataSet/Constants.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"FieldAssociations\": () => (/* binding */ FieldAssociations),\n/* harmony export */   \"FieldDataTypes\": () => (/* binding */ FieldDataTypes),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\n// Specify how data arrays can be used by data objects\nvar FieldDataTypes = {\n  UNIFORM: 0,\n  // data that does not vary over points/cells/etc.\n  DATA_OBJECT_FIELD: 0,\n  // to match VTK\n  COORDINATE: 1,\n  // data that specifies the location of each point\n  POINT_DATA: 1,\n  // to match VTK\n  POINT: 2,\n  // data defined at each point, but that does not specify the point location\n  POINT_FIELD_DATA: 2,\n  // to match VTK\n  CELL: 3,\n  // data defined at each cell, but that does not specify the cell\n  CELL_FIELD_DATA: 3,\n  // to match VTK\n  VERTEX: 4,\n  // data defined at each graph vertex, but that does not specify the graph vertex\n  VERTEX_FIELD_DATA: 4,\n  // to match VTK\n  EDGE: 5,\n  // data defined at each graph edge, but that does not specify the graph edge\n  EDGE_FIELD_DATA: 5,\n  // to match VTK\n  ROW: 6,\n  // data specifying a table row\n  ROW_DATA: 6 // to match VTK\n\n};\nvar FieldAssociations = {\n  FIELD_ASSOCIATION_POINTS: 0,\n  FIELD_ASSOCIATION_CELLS: 1,\n  FIELD_ASSOCIATION_NONE: 2,\n  FIELD_ASSOCIATION_POINTS_THEN_CELLS: 3,\n  FIELD_ASSOCIATION_VERTICES: 4,\n  FIELD_ASSOCIATION_EDGES: 5,\n  FIELD_ASSOCIATION_ROWS: 6,\n  NUMBER_OF_ASSOCIATIONS: 7\n};\nvar Constants = {\n  FieldDataTypes: FieldDataTypes,\n  FieldAssociations: FieldAssociations\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/DataSet/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkDataSetAttributes$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _DataSetAttributes_FieldData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DataSetAttributes/FieldData.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/FieldData.js\");\n/* harmony import */ var _DataSetAttributes_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DataSetAttributes/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/Constants.js\");\n/* harmony import */ var _Core_DataArray_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar AttributeTypes = _DataSetAttributes_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].AttributeTypes,\n    AttributeCopyOperations = _DataSetAttributes_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].AttributeCopyOperations;\nvar vtkWarningMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkWarningMacro; // ----------------------------------------------------------------------------\n// vtkDataSetAttributes methods\n// ----------------------------------------------------------------------------\n\nfunction vtkDataSetAttributes(publicAPI, model) {\n  var attrTypes = ['Scalars', 'Vectors', 'Normals', 'TCoords', 'Tensors', 'GlobalIds', 'PedigreeIds'];\n\n  function cleanAttributeType(attType) {\n    // Given an integer or string, convert the result to one of the\n    // strings in the \"attrTypes\" array above or null (if\n    // no match is found)\n    var cleanAttType = attrTypes.find(function (ee) {\n      return AttributeTypes[ee.toUpperCase()] === attType || typeof attType !== 'number' && ee.toLowerCase() === attType.toLowerCase();\n    });\n\n    if (typeof cleanAttType === 'undefined') {\n      cleanAttType = null;\n    }\n\n    return cleanAttType;\n  } // Set our className\n\n\n  model.classHierarchy.push('vtkDataSetAttributes');\n\n  publicAPI.checkNumberOfComponents = function (x) {\n    return true;\n  }; // TODO\n\n\n  publicAPI.setAttribute = function (arr, uncleanAttType) {\n    var attType = cleanAttributeType(uncleanAttType);\n\n    if (arr && attType.toUpperCase() === 'PEDIGREEIDS' && !arr.isA('vtkDataArray')) {\n      vtkWarningMacro(\"Cannot set attribute \".concat(attType, \". The attribute must be a vtkDataArray.\"));\n      return -1;\n    }\n\n    if (arr && !publicAPI.checkNumberOfComponents(arr, attType)) {\n      vtkWarningMacro(\"Cannot set attribute \".concat(attType, \". Incorrect number of components.\"));\n      return -1;\n    }\n\n    var currentAttribute = model[\"active\".concat(attType)];\n\n    if (currentAttribute >= 0 && currentAttribute < model.arrays.length) {\n      if (model.arrays[currentAttribute] === arr) {\n        return currentAttribute;\n      }\n\n      publicAPI.removeArrayByIndex(currentAttribute);\n    }\n\n    if (arr) {\n      currentAttribute = publicAPI.addArray(arr);\n      model[\"active\".concat(attType)] = currentAttribute;\n    } else {\n      model[\"active\".concat(attType)] = -1;\n    }\n\n    publicAPI.modified();\n    return model[\"active\".concat(attType)];\n  };\n\n  publicAPI.setActiveAttributeByName = function (arrayName, attType) {\n    return publicAPI.setActiveAttributeByIndex(publicAPI.getArrayWithIndex(arrayName).index, attType);\n  };\n\n  publicAPI.setActiveAttributeByIndex = function (arrayIdx, uncleanAttType) {\n    var attType = cleanAttributeType(uncleanAttType);\n\n    if (arrayIdx >= 0 && arrayIdx < model.arrays.length) {\n      if (attType.toUpperCase() !== 'PEDIGREEIDS') {\n        var arr = publicAPI.getArrayByIndex(arrayIdx);\n\n        if (!arr.isA('vtkDataArray')) {\n          vtkWarningMacro(\"Cannot set attribute \".concat(attType, \". Only vtkDataArray subclasses can be set as active attributes.\"));\n          return -1;\n        }\n\n        if (!publicAPI.checkNumberOfComponents(arr, attType)) {\n          vtkWarningMacro(\"Cannot set attribute \".concat(attType, \". Incorrect number of components.\"));\n          return -1;\n        }\n      }\n\n      model[\"active\".concat(attType)] = arrayIdx;\n      publicAPI.modified();\n      return arrayIdx;\n    }\n\n    if (arrayIdx === -1) {\n      model[\"active\".concat(attType)] = arrayIdx;\n      publicAPI.modified();\n    }\n\n    return -1;\n  };\n\n  publicAPI.getActiveAttribute = function (attType) {\n    // Given an integer enum value or a string (with random capitalization),\n    // find the matching string in attrTypes.\n    var cleanAttType = cleanAttributeType(attType);\n    return publicAPI[\"get\".concat(cleanAttType)]();\n  }; // Override to allow proper handling of active attributes\n\n\n  publicAPI.removeAllArrays = function () {\n    model.arrays = [];\n    attrTypes.forEach(function (attType) {\n      model[\"active\".concat(attType)] = -1;\n    });\n  }; // Override to allow proper handling of active attributes\n\n\n  publicAPI.removeArray = function (arrayName) {\n    model.arrays = model.arrays.filter(function (entry, idx) {\n      if (arrayName === entry.data.getName()) {\n        // Found the array to remove, but is it an active attribute?\n        attrTypes.forEach(function (attType) {\n          if (idx === model[\"active\".concat(attType)]) {\n            model[\"active\".concat(attType)] = -1;\n          }\n        });\n        return false;\n      }\n\n      return true;\n    });\n  }; // Override to allow proper handling of active attributes\n\n\n  publicAPI.removeArrayByIndex = function (arrayIdx) {\n    model.arrays = model.arrays.filter(function (entry, idx) {\n      return idx !== arrayIdx;\n    });\n    attrTypes.forEach(function (attType) {\n      if (arrayIdx === model[\"active\".concat(attType)]) {\n        model[\"active\".concat(attType)] = -1;\n      }\n    });\n  };\n\n  attrTypes.forEach(function (value) {\n    var activeVal = \"active\".concat(value);\n\n    publicAPI[\"get\".concat(value)] = function () {\n      return publicAPI.getArrayByIndex(model[activeVal]);\n    };\n\n    publicAPI[\"set\".concat(value)] = function (da) {\n      return publicAPI.setAttribute(da, value);\n    };\n\n    publicAPI[\"setActive\".concat(value)] = function (arrayName) {\n      return publicAPI.setActiveAttributeByIndex(publicAPI.getArrayWithIndex(arrayName).index, value);\n    };\n\n    publicAPI[\"copy\".concat(value, \"Off\")] = function () {\n      var attType = value.toUpperCase();\n      model.copyAttributeFlags[AttributeCopyOperations.PASSDATA][AttributeTypes[attType]] = false;\n    };\n  });\n\n  publicAPI.initializeAttributeCopyFlags = function () {\n    // Default to copying all attributes in every circumstance:\n    model.copyAttributeFlags = [];\n    Object.keys(AttributeCopyOperations).filter(function (op) {\n      return op !== 'ALLCOPY';\n    }).forEach(function (attCopyOp) {\n      model.copyAttributeFlags[AttributeCopyOperations[attCopyOp]] = Object.keys(AttributeTypes).filter(function (ty) {\n        return ty !== 'NUM_ATTRIBUTES';\n      }).reduce(function (a, b) {\n        a[AttributeTypes[b]] = true;\n        return a;\n      }, []);\n    }); // Override some operations where we don't want to copy:\n\n    model.copyAttributeFlags[AttributeCopyOperations.COPYTUPLE][AttributeTypes.GLOBALIDS] = false;\n    model.copyAttributeFlags[AttributeCopyOperations.INTERPOLATE][AttributeTypes.GLOBALIDS] = false;\n    model.copyAttributeFlags[AttributeCopyOperations.COPYTUPLE][AttributeTypes.PEDIGREEIDS] = false;\n  };\n\n  publicAPI.initialize = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].chain(publicAPI.initialize, publicAPI.initializeAttributeCopyFlags); // Process dataArrays if any\n\n  if (model.dataArrays && Object.keys(model.dataArrays).length) {\n    Object.keys(model.dataArrays).forEach(function (name) {\n      if (!model.dataArrays[name].ref && model.dataArrays[name].type === 'vtkDataArray') {\n        publicAPI.addArray(_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance(model.dataArrays[name]));\n      }\n    });\n  }\n\n  var superShallowCopy = publicAPI.shallowCopy;\n\n  publicAPI.shallowCopy = function (other, debug) {\n    superShallowCopy(other, debug);\n    model.arrays = other.getArrays().map(function (arr) {\n      var arrNew = arr.newClone();\n      arrNew.shallowCopy(arr, debug);\n      return {\n        data: arrNew\n      };\n    });\n  };\n\n  publicAPI.initializeAttributeCopyFlags();\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  activeScalars: -1,\n  activeVectors: -1,\n  activeTensors: -1,\n  activeNormals: -1,\n  activeTCoords: -1,\n  activeGlobalIds: -1,\n  activePedigreeIds: -1\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _DataSetAttributes_FieldData_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['activeScalars', 'activeNormals', 'activeTCoords', 'activeVectors', 'activeTensors', 'activeGlobalIds', 'activePedigreeIds']);\n\n  if (!model.arrays) {\n    model.arrays = {};\n  } // Object specific methods\n\n\n  vtkDataSetAttributes(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkDataSetAttributes'); // ----------------------------------------------------------------------------\n\nvar vtkDataSetAttributes$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _DataSetAttributes_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/Constants.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/Constants.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"AttributeCopyOperations\": () => (/* binding */ AttributeCopyOperations),\n/* harmony export */   \"AttributeLimitTypes\": () => (/* binding */ AttributeLimitTypes),\n/* harmony export */   \"AttributeTypes\": () => (/* binding */ AttributeTypes),\n/* harmony export */   \"CellGhostTypes\": () => (/* binding */ CellGhostTypes),\n/* harmony export */   \"DesiredOutputPrecision\": () => (/* binding */ DesiredOutputPrecision),\n/* harmony export */   \"PointGhostTypes\": () => (/* binding */ PointGhostTypes),\n/* harmony export */   \"default\": () => (/* binding */ Constants),\n/* harmony export */   \"ghostArrayName\": () => (/* binding */ ghostArrayName)\n/* harmony export */ });\nvar AttributeTypes = {\n  SCALARS: 0,\n  VECTORS: 1,\n  NORMALS: 2,\n  TCOORDS: 3,\n  TENSORS: 4,\n  GLOBALIDS: 5,\n  PEDIGREEIDS: 6,\n  EDGEFLAG: 7,\n  NUM_ATTRIBUTES: 8\n};\nvar AttributeLimitTypes = {\n  MAX: 0,\n  EXACT: 1,\n  NOLIMIT: 2\n};\nvar CellGhostTypes = {\n  DUPLICATECELL: 1,\n  // the cell is present on multiple processors\n  HIGHCONNECTIVITYCELL: 2,\n  // the cell has more neighbors than in a regular mesh\n  LOWCONNECTIVITYCELL: 4,\n  // the cell has less neighbors than in a regular mesh\n  REFINEDCELL: 8,\n  // other cells are present that refines it.\n  EXTERIORCELL: 16,\n  // the cell is on the exterior of the data set\n  HIDDENCELL: 32 // the cell is needed to maintain connectivity, but the data values should be ignored.\n\n};\nvar PointGhostTypes = {\n  DUPLICATEPOINT: 1,\n  // the cell is present on multiple processors\n  HIDDENPOINT: 2 // the point is needed to maintain connectivity, but the data values should be ignored.\n\n};\nvar AttributeCopyOperations = {\n  COPYTUPLE: 0,\n  INTERPOLATE: 1,\n  PASSDATA: 2,\n  ALLCOPY: 3 // all of the above\n\n};\nvar ghostArrayName = 'vtkGhostType';\nvar DesiredOutputPrecision = {\n  DEFAULT: 0,\n  // use the point type that does not truncate any data\n  SINGLE: 1,\n  // use Float32Array\n  DOUBLE: 2 // use Float64Array\n\n};\nvar Constants = {\n  AttributeCopyOperations: AttributeCopyOperations,\n  AttributeLimitTypes: AttributeLimitTypes,\n  AttributeTypes: AttributeTypes,\n  CellGhostTypes: CellGhostTypes,\n  DesiredOutputPrecision: DesiredOutputPrecision,\n  PointGhostTypes: PointGhostTypes,\n  ghostArrayName: ghostArrayName\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/FieldData.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/FieldData.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkFieldData$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _vtk_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../vtk.js */ \"./node_modules/@kitware/vtk.js/vtk.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_DataArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n\n\n\n\n// vtkFieldData methods\n// ----------------------------------------------------------------------------\n\nfunction vtkFieldData(publicAPI, model) {\n  model.classHierarchy.push('vtkFieldData');\n  var superGetState = publicAPI.getState; // Decode serialized data if any\n\n  if (model.arrays) {\n    model.arrays = model.arrays.map(function (item) {\n      return {\n        data: (0,_vtk_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item.data)\n      };\n    });\n  }\n\n  publicAPI.initialize = function () {\n    publicAPI.initializeFields();\n    publicAPI.copyAllOn();\n    publicAPI.clearFieldFlags();\n  };\n\n  publicAPI.initializeFields = function () {\n    model.arrays = [];\n    model.copyFieldFlags = {};\n    publicAPI.modified();\n  };\n\n  publicAPI.copyStructure = function (other) {\n    publicAPI.initializeFields();\n    model.copyFieldFlags = other.getCopyFieldFlags().map(function (x) {\n      return x;\n    }); // Deep-copy\n\n    model.arrays = other.arrays().map(function (x) {\n      return {\n        array: x\n      };\n    }); // Deep-copy\n    // TODO: Copy array information objects (once we support information objects)\n  };\n\n  publicAPI.getNumberOfArrays = function () {\n    return model.arrays.length;\n  };\n\n  publicAPI.getNumberOfActiveArrays = function () {\n    return model.arrays.length;\n  };\n\n  publicAPI.addArray = function (arr) {\n    model.arrays = [].concat(model.arrays, {\n      data: arr\n    });\n    return model.arrays.length - 1;\n  };\n\n  publicAPI.removeAllArrays = function () {\n    model.arrays = [];\n  };\n\n  publicAPI.removeArray = function (arrayName) {\n    model.arrays = model.arrays.filter(function (entry) {\n      return arrayName !== entry.data.getName();\n    });\n  };\n\n  publicAPI.removeArrayByIndex = function (arrayIdx) {\n    model.arrays = model.arrays.filter(function (entry, idx) {\n      return idx !== arrayIdx;\n    });\n  };\n\n  publicAPI.getArrays = function () {\n    return model.arrays.map(function (entry) {\n      return entry.data;\n    });\n  };\n\n  publicAPI.getArray = function (arraySpec) {\n    return typeof arraySpec === 'number' ? publicAPI.getArrayByIndex(arraySpec) : publicAPI.getArrayByName(arraySpec);\n  };\n\n  publicAPI.getArrayByName = function (arrayName) {\n    return model.arrays.reduce(function (a, b, i) {\n      return b.data.getName() === arrayName ? b.data : a;\n    }, null);\n  };\n\n  publicAPI.getArrayWithIndex = function (arrayName) {\n    return model.arrays.reduce(function (a, b, i) {\n      return b.data && b.data.getName() === arrayName ? {\n        array: b.data,\n        index: i\n      } : a;\n    }, {\n      array: null,\n      index: -1\n    });\n  };\n\n  publicAPI.getArrayByIndex = function (idx) {\n    return idx >= 0 && idx < model.arrays.length ? model.arrays[idx].data : null;\n  };\n\n  publicAPI.hasArray = function (arrayName) {\n    return publicAPI.getArrayWithIndex(arrayName).index >= 0;\n  };\n\n  publicAPI.getArrayName = function (idx) {\n    var arr = model.arrays[idx];\n    return arr ? arr.data.getName() : '';\n  };\n\n  publicAPI.getCopyFieldFlags = function () {\n    return model.copyFieldFlags;\n  };\n\n  publicAPI.getFlag = function (arrayName) {\n    return model.copyFieldFlags[arrayName];\n  };\n\n  publicAPI.passData = function (other) {\n    var fromId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n    var toId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;\n    other.getArrays().forEach(function (arr) {\n      var copyFlag = publicAPI.getFlag(arr.getName());\n\n      if (copyFlag !== false && !(model.doCopyAllOff && copyFlag !== true) && arr) {\n        var destArr = publicAPI.getArrayByName(arr.getName());\n\n        if (!destArr) {\n          if (fromId < 0 || fromId > arr.getNumberOfTuples()) {\n            publicAPI.addArray(arr);\n          } else {\n            var ncomps = arr.getNumberOfComponents();\n            var newSize = arr.getNumberOfValues();\n            var tId = toId > -1 ? toId : fromId;\n\n            if (newSize < tId * ncomps) {\n              newSize = (tId + 1) * ncomps;\n            }\n\n            destArr = _Core_DataArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n              name: arr.getName(),\n              dataType: arr.getDataType(),\n              numberOfComponents: arr.getNumberOfComponents(),\n              size: newSize\n            });\n            destArr.setTuple(tId, arr.getTuple(fromId));\n            publicAPI.addArray(destArr);\n          }\n        } else if (arr.getNumberOfComponents() === destArr.getNumberOfComponents()) {\n          if (fromId > -1 && fromId < arr.getNumberOfTuples()) {\n            var _tId = toId > -1 ? toId : fromId;\n\n            destArr.setTuple(_tId, arr.getTuple(fromId));\n          } else {\n            // if fromId and not provided, just copy all (or as much possible)\n            // of arr to destArr.\n            for (var i = 0; i < arr.getNumberOfTuples(); ++i) {\n              destArr.setTuple(i, arr.getTuple(i));\n            }\n          }\n        }\n      }\n    });\n  };\n\n  publicAPI.copyFieldOn = function (arrayName) {\n    model.copyFieldFlags[arrayName] = true;\n  };\n\n  publicAPI.copyFieldOff = function (arrayName) {\n    model.copyFieldFlags[arrayName] = false;\n  };\n\n  publicAPI.copyAllOn = function () {\n    if (!model.doCopyAllOn || model.doCopyAllOff) {\n      model.doCopyAllOn = true;\n      model.doCopyAllOff = false;\n      publicAPI.modified();\n    }\n  };\n\n  publicAPI.copyAllOff = function () {\n    if (model.doCopyAllOn || !model.doCopyAllOff) {\n      model.doCopyAllOn = false;\n      model.doCopyAllOff = true;\n      publicAPI.modified();\n    }\n  };\n\n  publicAPI.clearFieldFlags = function () {\n    model.copyFieldFlags = {};\n  };\n\n  publicAPI.deepCopy = function (other) {\n    model.arrays = other.getArrays().map(function (arr) {\n      var arrNew = arr.newClone();\n      arrNew.deepCopy(arr);\n      return {\n        data: arrNew\n      };\n    });\n  };\n\n  publicAPI.copyFlags = function (other) {\n    return other.getCopyFieldFlags().map(function (x) {\n      return x;\n    });\n  }; // TODO: publicAPI.squeeze = () => model.arrays.forEach(entry => entry.data.squeeze());\n\n\n  publicAPI.reset = function () {\n    return model.arrays.forEach(function (entry) {\n      return entry.data.reset();\n    });\n  }; // TODO: getActualMemorySize\n\n\n  publicAPI.getMTime = function () {\n    return model.arrays.reduce(function (a, b) {\n      return b.data.getMTime() > a ? b.data.getMTime() : a;\n    }, model.mtime);\n  }; // TODO: publicAPI.getField = (ids, other) => { copy ids from other into this model's arrays }\n  // TODO: publicAPI.getArrayContainingComponent = (component) => ...\n\n\n  publicAPI.getNumberOfComponents = function () {\n    return model.arrays.reduce(function (a, b) {\n      return a + b.data.getNumberOfComponents();\n    }, 0);\n  };\n\n  publicAPI.getNumberOfTuples = function () {\n    return model.arrays.length > 0 ? model.arrays[0].getNumberOfTuples() : 0;\n  };\n\n  publicAPI.getState = function () {\n    var result = superGetState();\n\n    if (result) {\n      result.arrays = model.arrays.map(function (item) {\n        return {\n          data: item.data.getState()\n        };\n      });\n    }\n\n    return result;\n  };\n}\n\nvar DEFAULT_VALUES = {\n  arrays: [],\n  copyFieldFlags: [],\n  // fields not to copy\n  doCopyAllOn: true,\n  doCopyAllOff: false\n};\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  vtkFieldData(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkFieldData'); // ----------------------------------------------------------------------------\n\nvar vtkFieldData$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/FieldData.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/ImageData.js":
/*!********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/ImageData.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkImageData$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _BoundingBox_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./BoundingBox.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/BoundingBox.js\");\n/* harmony import */ var _DataSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DataSet.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/DataSet.js\");\n/* harmony import */ var _StructuredData_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./StructuredData.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData.js\");\n/* harmony import */ var _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./StructuredData/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData/Constants.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat3.js\");\n\n\n\n\n\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro; // ----------------------------------------------------------------------------\n// vtkImageData methods\n// ----------------------------------------------------------------------------\n\nfunction vtkImageData(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkImageData');\n\n  publicAPI.setExtent = function () {\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return false;\n    }\n\n    for (var _len = arguments.length, inExtent = new Array(_len), _key = 0; _key < _len; _key++) {\n      inExtent[_key] = arguments[_key];\n    }\n\n    var extentArray = inExtent.length === 1 ? inExtent[0] : inExtent;\n\n    if (extentArray.length !== 6) {\n      return false;\n    }\n\n    var changeDetected = false;\n    model.extent.forEach(function (item, index) {\n      if (item !== extentArray[index]) {\n        if (changeDetected) {\n          return;\n        }\n\n        changeDetected = true;\n      }\n    });\n\n    if (changeDetected) {\n      model.extent = extentArray.slice();\n      model.dataDescription = _StructuredData_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].getDataDescriptionFromExtent(model.extent);\n      publicAPI.modified();\n    }\n\n    return changeDetected;\n  };\n\n  publicAPI.setDimensions = function () {\n    var i;\n    var j;\n    var k;\n\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return;\n    }\n\n    if (arguments.length === 1) {\n      var array = arguments.length <= 0 ? undefined : arguments[0];\n      i = array[0];\n      j = array[1];\n      k = array[2];\n    } else if (arguments.length === 3) {\n      i = arguments.length <= 0 ? undefined : arguments[0];\n      j = arguments.length <= 1 ? undefined : arguments[1];\n      k = arguments.length <= 2 ? undefined : arguments[2];\n    } else {\n      vtkErrorMacro('Bad dimension specification');\n      return;\n    }\n\n    publicAPI.setExtent(0, i - 1, 0, j - 1, 0, k - 1);\n  };\n\n  publicAPI.getDimensions = function () {\n    return [model.extent[1] - model.extent[0] + 1, model.extent[3] - model.extent[2] + 1, model.extent[5] - model.extent[4] + 1];\n  };\n\n  publicAPI.getNumberOfCells = function () {\n    var dims = publicAPI.getDimensions();\n    var nCells = 1;\n\n    for (var i = 0; i < 3; i++) {\n      if (dims[i] === 0) {\n        return 0;\n      }\n\n      if (dims[i] > 1) {\n        nCells *= dims[i] - 1;\n      }\n    }\n\n    return nCells;\n  };\n\n  publicAPI.getNumberOfPoints = function () {\n    var dims = publicAPI.getDimensions();\n    return dims[0] * dims[1] * dims[2];\n  };\n\n  publicAPI.getPoint = function (index) {\n    var dims = publicAPI.getDimensions();\n\n    if (dims[0] === 0 || dims[1] === 0 || dims[2] === 0) {\n      vtkErrorMacro('Requesting a point from an empty image.');\n      return null;\n    }\n\n    var ijk = new Float64Array(3);\n\n    switch (model.dataDescription) {\n      case _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.EMPTY:\n        return null;\n\n      case _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.SINGLE_POINT:\n        break;\n\n      case _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.X_LINE:\n        ijk[0] = index;\n        break;\n\n      case _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.Y_LINE:\n        ijk[1] = index;\n        break;\n\n      case _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.Z_LINE:\n        ijk[2] = index;\n        break;\n\n      case _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.XY_PLANE:\n        ijk[0] = index % dims[0];\n        ijk[1] = index / dims[0];\n        break;\n\n      case _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.YZ_PLANE:\n        ijk[1] = index % dims[1];\n        ijk[2] = index / dims[1];\n        break;\n\n      case _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.XZ_PLANE:\n        ijk[0] = index % dims[0];\n        ijk[2] = index / dims[0];\n        break;\n\n      case _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.XYZ_GRID:\n        ijk[0] = index % dims[0];\n        ijk[1] = index / dims[0] % dims[1];\n        ijk[2] = index / (dims[0] * dims[1]);\n        break;\n\n      default:\n        vtkErrorMacro('Invalid dataDescription');\n        break;\n    }\n\n    var coords = [0, 0, 0];\n    publicAPI.indexToWorld(ijk, coords);\n    return coords;\n  }; // vtkCell *GetCell(vtkIdType cellId) VTK_OVERRIDE;\n  // void GetCell(vtkIdType cellId, vtkGenericCell *cell) VTK_OVERRIDE;\n  // void GetCellBounds(vtkIdType cellId, double bounds[6]) VTK_OVERRIDE;\n  // virtual vtkIdType FindPoint(double x, double y, double z)\n  // {\n  //   return this->vtkDataSet::FindPoint(x, y, z);\n  // }\n  // vtkIdType FindPoint(double x[3]) VTK_OVERRIDE;\n  // vtkIdType FindCell(\n  //   double x[3], vtkCell *cell, vtkIdType cellId, double tol2,\n  //   int& subId, double pcoords[3], double *weights) VTK_OVERRIDE;\n  // vtkIdType FindCell(\n  //   double x[3], vtkCell *cell, vtkGenericCell *gencell,\n  //   vtkIdType cellId, double tol2, int& subId,\n  //   double pcoords[3], double *weights) VTK_OVERRIDE;\n  // vtkCell *FindAndGetCell(double x[3], vtkCell *cell, vtkIdType cellId,\n  //                                 double tol2, int& subId, double pcoords[3],\n  //                                 double *weights) VTK_OVERRIDE;\n  // int GetCellType(vtkIdType cellId) VTK_OVERRIDE;\n  // void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds) VTK_OVERRIDE\n  //   {vtkStructuredData::GetCellPoints(cellId,ptIds,this->DataDescription,\n  //                                     this->GetDimensions());}\n  // void GetPointCells(vtkIdType ptId, vtkIdList *cellIds) VTK_OVERRIDE\n  //   {vtkStructuredData::GetPointCells(ptId,cellIds,this->GetDimensions());}\n  // void ComputeBounds() VTK_OVERRIDE;\n  // int GetMaxCellSize() VTK_OVERRIDE {return 8;}; //voxel is the largest\n\n\n  publicAPI.getBounds = function () {\n    return publicAPI.extentToBounds(publicAPI.getSpatialExtent());\n  };\n\n  publicAPI.extentToBounds = function (ex) {\n    // prettier-ignore\n    var corners = [ex[0], ex[2], ex[4], ex[1], ex[2], ex[4], ex[0], ex[3], ex[4], ex[1], ex[3], ex[4], ex[0], ex[2], ex[5], ex[1], ex[2], ex[5], ex[0], ex[3], ex[5], ex[1], ex[3], ex[5]];\n    var idx = new Float64Array([corners[0], corners[1], corners[2]]);\n    var vout = new Float64Array(3);\n    publicAPI.indexToWorld(idx, vout);\n    var bounds = [vout[0], vout[0], vout[1], vout[1], vout[2], vout[2]];\n\n    for (var i = 3; i < 24; i += 3) {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_7__.set(idx, corners[i], corners[i + 1], corners[i + 2]);\n      publicAPI.indexToWorld(idx, vout);\n\n      if (vout[0] < bounds[0]) {\n        bounds[0] = vout[0];\n      }\n\n      if (vout[1] < bounds[2]) {\n        bounds[2] = vout[1];\n      }\n\n      if (vout[2] < bounds[4]) {\n        bounds[4] = vout[2];\n      }\n\n      if (vout[0] > bounds[1]) {\n        bounds[1] = vout[0];\n      }\n\n      if (vout[1] > bounds[3]) {\n        bounds[3] = vout[1];\n      }\n\n      if (vout[2] > bounds[5]) {\n        bounds[5] = vout[2];\n      }\n    }\n\n    return bounds;\n  };\n\n  publicAPI.getSpatialExtent = function () {\n    var boundingBox = _BoundingBox_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n    boundingBox.setBounds(model.extent);\n    boundingBox.inflate(0.5);\n    return boundingBox.getBounds();\n  }; // Internal, shouldn't need to call this manually.\n\n\n  publicAPI.computeTransforms = function () {\n    gl_matrix__WEBPACK_IMPORTED_MODULE_8__.fromTranslation(model.indexToWorld, model.origin);\n    model.indexToWorld[0] = model.direction[0];\n    model.indexToWorld[1] = model.direction[1];\n    model.indexToWorld[2] = model.direction[2];\n    model.indexToWorld[4] = model.direction[3];\n    model.indexToWorld[5] = model.direction[4];\n    model.indexToWorld[6] = model.direction[5];\n    model.indexToWorld[8] = model.direction[6];\n    model.indexToWorld[9] = model.direction[7];\n    model.indexToWorld[10] = model.direction[8];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_8__.scale(model.indexToWorld, model.indexToWorld, model.spacing);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_8__.invert(model.worldToIndex, model.indexToWorld);\n  }; //\n  // The direction matrix is a 3x3 basis for the I, J, K axes\n  // of the image. The rows of the matrix correspond to the\n  // axes directions in world coordinates. Direction must\n  // form an orthonormal basis, results are undefined if\n  // it is not.\n  //\n\n\n  publicAPI.setDirection = function () {\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return false;\n    }\n\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    var array = args; // allow an array passed as a single arg.\n\n    if (array.length === 1 && (Array.isArray(array[0]) || array[0].constructor === Float32Array || array[0].constructor === Float64Array)) {\n      array = array[0];\n    }\n\n    if (array.length !== 9) {\n      throw new RangeError('Invalid number of values for array setter');\n    }\n\n    var changeDetected = false;\n    model.direction.forEach(function (item, index) {\n      if (item !== array[index]) {\n        if (changeDetected) {\n          return;\n        }\n\n        changeDetected = true;\n      }\n    });\n\n    if (changeDetected) {\n      for (var i = 0; i < 9; ++i) {\n        model.direction[i] = array[i];\n      }\n\n      publicAPI.modified();\n    }\n\n    return true;\n  };\n\n  publicAPI.indexToWorld = function (ain) {\n    var aout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(aout, ain, model.indexToWorld);\n    return aout;\n  };\n\n  publicAPI.indexToWorldVec3 = publicAPI.indexToWorld;\n\n  publicAPI.worldToIndex = function (ain) {\n    var aout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(aout, ain, model.worldToIndex);\n    return aout;\n  };\n\n  publicAPI.worldToIndexVec3 = publicAPI.worldToIndex;\n\n  publicAPI.indexToWorldBounds = function (bin) {\n    var bout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    var in1 = [0, 0, 0];\n    var in2 = [0, 0, 0];\n    _BoundingBox_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].computeCornerPoints(bin, in1, in2);\n    var out1 = [0, 0, 0];\n    var out2 = [0, 0, 0];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(out1, in1, model.indexToWorld);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(out2, in2, model.indexToWorld);\n    return (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.c)(out1, out2, bout);\n  };\n\n  publicAPI.worldToIndexBounds = function (bin) {\n    var bout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    var in1 = [0, 0, 0];\n    var in2 = [0, 0, 0];\n    _BoundingBox_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].computeCornerPoints(bin, in1, in2);\n    var out1 = [0, 0, 0];\n    var out2 = [0, 0, 0];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(out1, in1, model.worldToIndex);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(out2, in2, model.worldToIndex);\n    return (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.c)(out1, out2, bout);\n  }; // Make sure the transform is correct\n\n\n  publicAPI.onModified(publicAPI.computeTransforms);\n  publicAPI.computeTransforms();\n\n  publicAPI.getCenter = function () {\n    var bounds = publicAPI.getBounds();\n    var center = [];\n\n    for (var i = 0; i < 3; i++) {\n      center[i] = (bounds[2 * i + 1] + bounds[2 * i]) / 2;\n    }\n\n    return center;\n  };\n\n  publicAPI.computeHistogram = function (worldBounds) {\n    var voxelFunc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var bounds = [0, 0, 0, 0, 0, 0];\n    publicAPI.worldToIndexBounds(worldBounds, bounds);\n    var point1 = [0, 0, 0];\n    var point2 = [0, 0, 0];\n    _BoundingBox_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].computeCornerPoints(bounds, point1, point2);\n    (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.b)(point1, point1);\n    (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.b)(point2, point2);\n    var dimensions = publicAPI.getDimensions();\n    (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.e)(point1, [0, 0, 0], [dimensions[0] - 1, dimensions[1] - 1, dimensions[2] - 1], point1);\n    (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.e)(point2, [0, 0, 0], [dimensions[0] - 1, dimensions[1] - 1, dimensions[2] - 1], point2);\n    var yStride = dimensions[0];\n    var zStride = dimensions[0] * dimensions[1];\n    var pixels = publicAPI.getPointData().getScalars().getData();\n    var maximum = -Infinity;\n    var minimum = Infinity;\n    var sumOfSquares = 0;\n    var isum = 0;\n    var inum = 0;\n\n    for (var z = point1[2]; z <= point2[2]; z++) {\n      for (var y = point1[1]; y <= point2[1]; y++) {\n        var index = point1[0] + y * yStride + z * zStride;\n\n        for (var x = point1[0]; x <= point2[0]; x++) {\n          if (!voxelFunc || voxelFunc([x, y, z], bounds)) {\n            var pixel = pixels[index];\n            if (pixel > maximum) maximum = pixel;\n            if (pixel < minimum) minimum = pixel;\n            sumOfSquares += pixel * pixel;\n            isum += pixel;\n            inum += 1;\n          }\n\n          ++index;\n        }\n      }\n    }\n\n    var average = inum > 0 ? isum / inum : 0;\n    var variance = inum ? Math.abs(sumOfSquares / inum - average * average) : 0;\n    var sigma = Math.sqrt(variance);\n    return {\n      minimum: minimum,\n      maximum: maximum,\n      average: average,\n      variance: variance,\n      sigma: sigma,\n      count: inum\n    };\n  }; // TODO: use the unimplemented `vtkDataSetAttributes` for scalar length, that is currently also a TODO (GetNumberOfComponents).\n  // Scalar data could be tuples for color information?\n\n\n  publicAPI.computeIncrements = function (extent) {\n    var numberOfComponents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    var increments = [];\n    var incr = numberOfComponents; // Calculate array increment offsets\n    // similar to c++ vtkImageData::ComputeIncrements\n\n    for (var idx = 0; idx < 3; ++idx) {\n      increments[idx] = incr;\n      incr *= extent[idx * 2 + 1] - extent[idx * 2] + 1;\n    }\n\n    return increments;\n  };\n  /**\n   * @param {Number[]} index the localized `[i,j,k]` pixel array position. Float values will be rounded.\n   * @return {Number} the corresponding flattened index in the scalar array\n   */\n\n\n  publicAPI.computeOffsetIndex = function (_ref) {\n    var _ref2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_ref, 3),\n        i = _ref2[0],\n        j = _ref2[1],\n        k = _ref2[2];\n\n    var extent = publicAPI.getExtent();\n    var numberOfComponents = publicAPI.getPointData().getScalars().getNumberOfComponents();\n    var increments = publicAPI.computeIncrements(extent, numberOfComponents); // Use the array increments to find the pixel index\n    // similar to c++ vtkImageData::GetArrayPointer\n    // Math.floor to catch \"practically 0\" e^-15 scenarios.\n\n    return Math.floor((Math.round(i) - extent[0]) * increments[0] + (Math.round(j) - extent[2]) * increments[1] + (Math.round(k) - extent[4]) * increments[2]);\n  };\n  /**\n   * @param {Number[]} xyz the [x,y,z] Array in world coordinates\n   * @return {Number|NaN} the corresponding pixel's index in the scalar array\n   */\n\n\n  publicAPI.getOffsetIndexFromWorld = function (xyz) {\n    var extent = publicAPI.getExtent();\n    var index = publicAPI.worldToIndex(xyz); // Confirm indexed i,j,k coords are within the bounds of the volume\n\n    for (var idx = 0; idx < 3; ++idx) {\n      if (index[idx] < extent[idx * 2] || index[idx] > extent[idx * 2 + 1]) {\n        vtkErrorMacro(\"GetScalarPointer: Pixel \".concat(index, \" is not in memory. Current extent = \").concat(extent));\n        return NaN;\n      }\n    } // Assumed the index here is within 0 <-> scalarData.length, but doesn't hurt to check upstream\n\n\n    return publicAPI.computeOffsetIndex(index);\n  };\n  /**\n   * @param {Number[]} xyz the [x,y,z] Array in world coordinates\n   * @param {Number?} comp the scalar component index for multi-component scalars\n   * @return {Number|NaN} the corresponding pixel's scalar value\n   */\n\n\n  publicAPI.getScalarValueFromWorld = function (xyz) {\n    var comp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    var numberOfComponents = publicAPI.getPointData().getScalars().getNumberOfComponents();\n\n    if (comp < 0 || comp >= numberOfComponents) {\n      vtkErrorMacro(\"GetScalarPointer: Scalar Component \".concat(comp, \" is not within bounds. Current Scalar numberOfComponents: \").concat(numberOfComponents));\n      return NaN;\n    }\n\n    var offsetIndex = publicAPI.getOffsetIndexFromWorld(xyz);\n\n    if (Number.isNaN(offsetIndex)) {\n      // VTK Error Macro will have been tripped already, no need to do it again,\n      return offsetIndex;\n    }\n\n    return publicAPI.getPointData().getScalars().getComponent(offsetIndex, comp);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  direction: null,\n  // a mat3\n  indexToWorld: null,\n  // a mat4\n  worldToIndex: null,\n  // a mat4\n  spacing: [1.0, 1.0, 1.0],\n  origin: [0.0, 0.0, 0.0],\n  extent: [0, -1, 0, -1, 0, -1],\n  dataDescription: _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_6__.StructuredType.EMPTY\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _DataSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend(publicAPI, model, initialValues);\n\n  if (!model.direction) {\n    model.direction = gl_matrix__WEBPACK_IMPORTED_MODULE_9__.identity(new Float64Array(9));\n  } else if (Array.isArray(model.direction)) {\n    model.direction = new Float64Array(model.direction.slice(0, 9));\n  }\n\n  model.indexToWorld = new Float64Array(16);\n  model.worldToIndex = new Float64Array(16); // Set/Get methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['direction', 'indexToWorld', 'worldToIndex']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGetArray(publicAPI, model, ['origin', 'spacing'], 3);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getArray(publicAPI, model, ['extent'], 6); // Object specific methods\n\n  vtkImageData(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkImageData'); // ----------------------------------------------------------------------------\n\nvar vtkImageData$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/ImageData.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/Line.js":
/*!***************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/Line.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"default\": () => (/* binding */ vtkLine$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Line_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Line/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/Line/Constants.js\");\n/* harmony import */ var _Cell_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Cell.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/Cell.js\");\n/* harmony import */ var _Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar IntersectionState = _Line_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].IntersectionState; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction distanceToLine(x, p1, p2) {\n  var closestPoint = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n  var outObj = {\n    t: Number.MIN_VALUE,\n    distance: 0\n  };\n  var p21 = [];\n  var closest; // Determine appropriate vector\n\n  p21[0] = p2[0] - p1[0];\n  p21[1] = p2[1] - p1[1];\n  p21[2] = p2[2] - p1[2]; // Get parametric location\n\n  var num = p21[0] * (x[0] - p1[0]) + p21[1] * (x[1] - p1[1]) + p21[2] * (x[2] - p1[2]);\n  var denom = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.d)(p21, p21); // trying to avoid an expensive fabs\n\n  var tolerance = 1e-5 * num;\n\n  if (denom !== 0.0) {\n    outObj.t = num / denom;\n  }\n\n  if (tolerance < 0.0) {\n    tolerance = -tolerance;\n  }\n\n  if (-tolerance < denom && denom < tolerance) {\n    closest = p1;\n  } else if (denom <= 0.0 || outObj.t < 0.0) {\n    // If parametric coordinate is within 0<=p<=1, then the point is closest to\n    // the line.  Otherwise, it's closest to a point at the end of the line.\n    closest = p1;\n  } else if (outObj.t > 1.0) {\n    closest = p2;\n  } else {\n    closest = p21;\n    p21[0] = p1[0] + outObj.t * p21[0];\n    p21[1] = p1[1] + outObj.t * p21[1];\n    p21[2] = p1[2] + outObj.t * p21[2];\n  }\n\n  if (closestPoint) {\n    closestPoint[0] = closest[0];\n    closestPoint[1] = closest[1];\n    closestPoint[2] = closest[2];\n  }\n\n  outObj.distance = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.f)(closest, x);\n  return outObj;\n}\n\nfunction intersection(a1, a2, b1, b2, u, v) {\n  var a21 = [];\n  var b21 = [];\n  var b1a1 = [];\n  u[0] = 0.0;\n  v[0] = 0.0; // Determine line vectors.\n\n  a21[0] = a2[0] - a1[0];\n  a21[1] = a2[1] - a1[1];\n  a21[2] = a2[2] - a1[2];\n  b21[0] = b2[0] - b1[0];\n  b21[1] = b2[1] - b1[1];\n  b21[2] = b2[2] - b1[2];\n  b1a1[0] = b1[0] - a1[0];\n  b1a1[1] = b1[1] - a1[1];\n  b1a1[2] = b1[2] - a1[2]; // Compute the system (least squares) matrix.\n\n  var A = [];\n  A[0] = [(0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.d)(a21, a21), -(0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.d)(a21, b21)];\n  A[1] = [A[0][1], (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.d)(b21, b21)]; // Compute the least squares system constant term.\n\n  var c = [];\n  c[0] = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.d)(a21, b1a1);\n  c[1] = -(0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.d)(b21, b1a1); // Solve the system of equations\n\n  if ((0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.s)(A, c, 2) === 0) {\n    // The lines are colinear. Therefore, one of the four endpoints is the\n    // point of closest approach\n    var minDist = Number.MAX_VALUE;\n    var p = [a1, a2, b1, b2];\n    var l1 = [b1, b1, a1, a1];\n    var l2 = [b2, b2, a2, a2];\n    var uv1 = [v[0], v[0], u[0], u[0]];\n    var uv2 = [u[0], u[0], v[0], v[0]];\n    var obj;\n\n    for (var i = 0; i < 4; i++) {\n      obj = distanceToLine(p[i], l1[i], l2[i]);\n\n      if (obj.distance < minDist) {\n        minDist = obj.distance;\n        uv1[i] = obj.t;\n        uv2[i] = i % 2;\n      }\n    }\n\n    return IntersectionState.ON_LINE;\n  }\n\n  u[0] = c[0];\n  v[0] = c[1]; // Check parametric coordinates for intersection.\n\n  if (u[0] >= 0.0 && u[0] <= 1.0 && v[0] >= 0.0 && v[0] <= 1.0) {\n    return IntersectionState.YES_INTERSECTION;\n  }\n\n  return IntersectionState.NO_INTERSECTION;\n} // ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\n\nvar STATIC = {\n  distanceToLine: distanceToLine,\n  intersection: intersection\n}; // ----------------------------------------------------------------------------\n// vtkLine methods\n// ----------------------------------------------------------------------------\n\nfunction vtkLine(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkLine');\n\n  function isBetweenPoints(t) {\n    return t >= 0.0 && t <= 1.0;\n  }\n\n  publicAPI.getCellDimension = function () {\n    return 1;\n  };\n\n  publicAPI.intersectWithLine = function (p1, p2, tol, x, pcoords) {\n    var outObj = {\n      intersect: 0,\n      t: Number.MAX_VALUE,\n      subId: 0,\n      betweenPoints: null\n    };\n    pcoords[1] = 0.0;\n    pcoords[2] = 0.0;\n    var projXYZ = [];\n    var a1 = [];\n    var a2 = [];\n    model.points.getPoint(0, a1);\n    model.points.getPoint(1, a2);\n    var u = [];\n    var v = [];\n    var intersect = intersection(p1, p2, a1, a2, u, v);\n    outObj.t = u[0];\n    outObj.betweenPoints = isBetweenPoints(outObj.t);\n    pcoords[0] = v[0];\n\n    if (intersect === IntersectionState.YES_INTERSECTION) {\n      // make sure we are within tolerance\n      for (var i = 0; i < 3; i++) {\n        x[i] = a1[i] + pcoords[0] * (a2[i] - a1[i]);\n        projXYZ[i] = p1[i] + outObj.t * (p2[i] - p1[i]);\n      }\n\n      if ((0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.f)(x, projXYZ) <= tol * tol) {\n        outObj.intersect = 1;\n        return outObj;\n      }\n    } else {\n      var outDistance; // check to see if it lies within tolerance\n      // one of the parametric coords must be outside 0-1\n\n      if (outObj.t < 0.0) {\n        outDistance = distanceToLine(p1, a1, a2, x);\n\n        if (outDistance.distance <= tol * tol) {\n          outObj.t = 0.0;\n          outObj.intersect = 1;\n          outObj.betweenPoints = true; // Intersection is near p1\n\n          return outObj;\n        }\n\n        return outObj;\n      }\n\n      if (outObj.t > 1.0) {\n        outDistance = distanceToLine(p2, a1, a2, x);\n\n        if (outDistance.distance <= tol * tol) {\n          outObj.t = 1.0;\n          outObj.intersect = 1;\n          outObj.betweenPoints = true; // Intersection is near p2\n\n          return outObj;\n        }\n\n        return outObj;\n      }\n\n      if (pcoords[0] < 0.0) {\n        pcoords[0] = 0.0;\n        outDistance = distanceToLine(a1, p1, p2, x);\n        outObj.t = outDistance.t;\n\n        if (outDistance.distance <= tol * tol) {\n          outObj.intersect = 1;\n          return outObj;\n        }\n\n        return outObj;\n      }\n\n      if (pcoords[0] > 1.0) {\n        pcoords[0] = 1.0;\n        outDistance = distanceToLine(a2, p1, p2, x);\n        outObj.t = outDistance.t;\n\n        if (outDistance.distance <= tol * tol) {\n          outObj.intersect = 1;\n          return outObj;\n        }\n\n        return outObj;\n      }\n    }\n\n    return outObj;\n  };\n\n  publicAPI.evaluatePosition = function (x, closestPoint, subId, pcoords, dist2, weights) {}; // virtual\n\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  _Cell_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].extend(publicAPI, model, initialValues);\n  vtkLine(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkLine'); // ----------------------------------------------------------------------------\n\nvar vtkLine$1 = _objectSpread(_objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, STATIC), _Line_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/Line.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/Line/Constants.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/Line/Constants.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"IntersectionState\": () => (/* binding */ IntersectionState),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar IntersectionState = {\n  NO_INTERSECTION: 0,\n  YES_INTERSECTION: 1,\n  ON_LINE: 2\n};\nvar Constants = {\n  IntersectionState: IntersectionState\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/Line/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/Plane.js":
/*!****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/Plane.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"default\": () => (/* binding */ vtkPlane$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance),\n/* harmony export */   \"vtkPlane\": () => (/* binding */ vtkPlane)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar PLANE_TOLERANCE = 1.0e-6;\nvar COINCIDE = 'coincide';\nvar DISJOINT = 'disjoint'; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction evaluate(normal, origin, x) {\n  return normal[0] * (x[0] - origin[0]) + normal[1] * (x[1] - origin[1]) + normal[2] * (x[2] - origin[2]);\n}\n\nfunction distanceToPlane(x, origin, normal) {\n  var distance = normal[0] * (x[0] - origin[0]) + normal[1] * (x[1] - origin[1]) + normal[2] * (x[2] - origin[2]);\n  return Math.abs(distance);\n}\n\nfunction projectPoint(x, origin, normal, xproj) {\n  var xo = [];\n  (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.g)(x, origin, xo);\n  var t = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(normal, xo);\n  xproj[0] = x[0] - t * normal[0];\n  xproj[1] = x[1] - t * normal[1];\n  xproj[2] = x[2] - t * normal[2];\n}\n\nfunction projectVector(v, normal, vproj) {\n  var t = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(v, normal);\n  var n2 = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(normal, normal);\n\n  if (n2 === 0) {\n    n2 = 1.0;\n  }\n\n  vproj[0] = v[0] - t * normal[0] / n2;\n  vproj[1] = v[1] - t * normal[1] / n2;\n  vproj[2] = v[2] - t * normal[2] / n2;\n  return vproj;\n}\n\nfunction generalizedProjectPoint(x, origin, normal, xproj) {\n  var xo = [];\n  (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.g)(x, origin, xo);\n  var t = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(normal, xo);\n  var n2 = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(normal, normal);\n\n  if (n2 !== 0) {\n    xproj[0] = x[0] - t * normal[0] / n2;\n    xproj[1] = x[1] - t * normal[1] / n2;\n    xproj[2] = x[2] - t * normal[2] / n2;\n  } else {\n    xproj[0] = x[0];\n    xproj[1] = x[1];\n    xproj[2] = x[2];\n  }\n}\n\nfunction intersectWithLine(p1, p2, origin, normal) {\n  var outObj = {\n    intersection: false,\n    betweenPoints: false,\n    t: Number.MAX_VALUE,\n    x: []\n  };\n  var p21 = [];\n  var p1Origin = []; // Compute line vector\n\n  (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.g)(p2, p1, p21);\n  (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.g)(origin, p1, p1Origin); // Compute denominator.  If ~0, line and plane are parallel.\n  // const num = vtkMath.dot(normal, origin) - vtkMath.dot(normal, p1);\n\n  var num = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(normal, p1Origin);\n  var den = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(normal, p21); // If denominator with respect to numerator is \"zero\", then the line and\n  // plane are considered parallel.\n\n  var fabsden;\n  var fabstolerance; // Trying to avoid an expensive call to fabs()\n\n  if (den < 0.0) {\n    fabsden = -den;\n  } else {\n    fabsden = den;\n  }\n\n  if (num < 0.0) {\n    fabstolerance = -num * PLANE_TOLERANCE;\n  } else {\n    fabstolerance = num * PLANE_TOLERANCE;\n  }\n\n  if (fabsden <= fabstolerance) {\n    return outObj;\n  } // Where on the line between p1 and p2 is the intersection\n  // If between 0 and 1, it is between the two points. If < 0 it's before p1, if > 1 it's after p2\n\n\n  outObj.t = num / den;\n  outObj.x[0] = p1[0] + outObj.t * p21[0];\n  outObj.x[1] = p1[1] + outObj.t * p21[1];\n  outObj.x[2] = p1[2] + outObj.t * p21[2];\n  outObj.intersection = true;\n  outObj.betweenPoints = outObj.t >= 0.0 && outObj.t <= 1.0;\n  return outObj;\n}\n\nfunction intersectWithPlane(plane1Origin, plane1Normal, plane2Origin, plane2Normal) {\n  var outObj = {\n    intersection: false,\n    l0: [],\n    l1: [],\n    error: null\n  };\n  var cross$1 = [];\n  (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.j)(plane1Normal, plane2Normal, cross$1);\n  var absCross = cross$1.map(function (n) {\n    return Math.abs(n);\n  }); // test if the two planes are parallel\n\n  if (absCross[0] + absCross[1] + absCross[2] < PLANE_TOLERANCE) {\n    // test if disjoint or coincide\n    var v = [];\n    (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.g)(plane1Origin, plane2Origin, v);\n\n    if ((0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(plane1Normal, v) === 0) {\n      outObj.error = COINCIDE;\n    } else {\n      outObj.error = DISJOINT;\n    }\n\n    return outObj;\n  } // Plane1 and Plane2 intersect in a line\n  // first determine max abs coordinate of the cross product\n\n\n  var maxc;\n\n  if (absCross[0] > absCross[1] && absCross[0] > absCross[2]) {\n    maxc = 'x';\n  } else if (absCross[1] > absCross[2]) {\n    maxc = 'y';\n  } else {\n    maxc = 'z';\n  } // To get a point on the intersect line, zero the max coord, and solve for the other two\n\n\n  var iP = []; // intersectionPoint\n  // the constants in the 2 plane equations\n\n  var d1 = -(0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(plane1Normal, plane1Origin);\n  var d2 = -(0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.d)(plane2Normal, plane2Origin); // eslint-disable-next-line default-case\n\n  switch (maxc) {\n    case 'x':\n      // intersect with x=0\n      iP[0] = 0;\n      iP[1] = (d2 * plane1Normal[2] - d1 * plane2Normal[2]) / cross$1[0];\n      iP[2] = (d1 * plane2Normal[1] - d2 * plane1Normal[1]) / cross$1[0];\n      break;\n\n    case 'y':\n      // intersect with y=0\n      iP[0] = (d1 * plane2Normal[2] - d2 * plane1Normal[2]) / cross$1[1];\n      iP[1] = 0;\n      iP[2] = (d2 * plane1Normal[0] - d1 * plane2Normal[0]) / cross$1[1];\n      break;\n\n    case 'z':\n      // intersect with z=0\n      iP[0] = (d2 * plane1Normal[1] - d1 * plane2Normal[1]) / cross$1[2];\n      iP[1] = (d1 * plane2Normal[0] - d2 * plane1Normal[0]) / cross$1[2];\n      iP[2] = 0;\n      break;\n  }\n\n  outObj.l0 = iP;\n  (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.k)(iP, cross$1, outObj.l1);\n  outObj.intersection = true;\n  return outObj;\n} // ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\n\nvar STATIC = {\n  evaluate: evaluate,\n  distanceToPlane: distanceToPlane,\n  projectPoint: projectPoint,\n  projectVector: projectVector,\n  generalizedProjectPoint: generalizedProjectPoint,\n  intersectWithLine: intersectWithLine,\n  intersectWithPlane: intersectWithPlane,\n  DISJOINT: DISJOINT,\n  COINCIDE: COINCIDE\n}; // ----------------------------------------------------------------------------\n// vtkPlane methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPlane(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkPlane');\n\n  publicAPI.distanceToPlane = function (x) {\n    return distanceToPlane(x, model.origin, model.normal);\n  };\n\n  publicAPI.projectPoint = function (x, xproj) {\n    projectPoint(x, model.origin, model.normal, xproj);\n  };\n\n  publicAPI.projectVector = function (v, vproj) {\n    return projectVector(v, model.normal, vproj);\n  };\n\n  publicAPI.push = function (distance) {\n    if (distance === 0.0) {\n      return;\n    }\n\n    for (var i = 0; i < 3; i++) {\n      model.origin[i] += distance * model.normal[i];\n    }\n  };\n\n  publicAPI.generalizedProjectPoint = function (x, xproj) {\n    generalizedProjectPoint(x, model.origin, model.normal, xproj);\n  };\n\n  publicAPI.evaluateFunction = function (x, y, z) {\n    if (!Array.isArray(x)) {\n      return model.normal[0] * (x - model.origin[0]) + model.normal[1] * (y - model.origin[1]) + model.normal[2] * (z - model.origin[2]);\n    }\n\n    return model.normal[0] * (x[0] - model.origin[0]) + model.normal[1] * (x[1] - model.origin[1]) + model.normal[2] * (x[2] - model.origin[2]);\n  };\n\n  publicAPI.evaluateGradient = function (xyz) {\n    var retVal = [model.normal[0], model.normal[1], model.normal[2]];\n    return retVal;\n  };\n\n  publicAPI.intersectWithLine = function (p1, p2) {\n    return intersectWithLine(p1, p2, model.origin, model.normal);\n  };\n\n  publicAPI.intersectWithPlane = function (planeOrigin, planeNormal) {\n    return intersectWithPlane(planeOrigin, planeNormal, model.origin, model.normal);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nvar DEFAULT_VALUES = {\n  normal: [0.0, 0.0, 1.0],\n  origin: [0.0, 0.0, 0.0]\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setGetArray(publicAPI, model, ['normal', 'origin'], 3);\n  vtkPlane(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance(extend, 'vtkPlane'); // ----------------------------------------------------------------------------\n\nvar vtkPlane$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, STATIC);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/Plane.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/PointSet.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/PointSet.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkPointSet$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _vtk_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../vtk.js */ \"./node_modules/@kitware/vtk.js/vtk.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _DataSet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DataSet.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/DataSet.js\");\n/* harmony import */ var _Core_Points_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/Points.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Points.js\");\n\n\n\n\n\n// Global methods\n// ----------------------------------------------------------------------------\n// ----------------------------------------------------------------------------\n// vtkPointSet methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPointSet(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkPointSet'); // Create empty points\n\n  if (!model.points) {\n    model.points = _Core_Points_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n  } else {\n    model.points = (0,_vtk_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.points);\n  }\n\n  publicAPI.getNumberOfPoints = function () {\n    return model.points.getNumberOfPoints();\n  };\n\n  publicAPI.getBounds = function () {\n    return model.points.getBounds();\n  };\n\n  publicAPI.computeBounds = function () {\n    publicAPI.getBounds();\n  };\n\n  var superShallowCopy = publicAPI.shallowCopy;\n\n  publicAPI.shallowCopy = function (other) {\n    var debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    superShallowCopy(other, debug);\n    model.points = _Core_Points_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n    model.points.shallowCopy(other.getPoints());\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {// points: null,\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _DataSet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['points']); // Object specific methods\n\n  vtkPointSet(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkPointSet'); // ----------------------------------------------------------------------------\n\nvar vtkPointSet$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/PointSet.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"CELL_FACTORY\": () => (/* binding */ CELL_FACTORY),\n/* harmony export */   \"default\": () => (/* binding */ vtkPolyData$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _vtk_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vtk.js */ \"./node_modules/@kitware/vtk.js/vtk.js\");\n/* harmony import */ var _Core_CellArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/CellArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/CellArray.js\");\n/* harmony import */ var _CellLinks_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CellLinks.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/CellLinks.js\");\n/* harmony import */ var _CellTypes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CellTypes.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes.js\");\n/* harmony import */ var _Line_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Line.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/Line.js\");\n/* harmony import */ var _PointSet_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PointSet.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/PointSet.js\");\n/* harmony import */ var _Triangle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Triangle.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/Triangle.js\");\n/* harmony import */ var _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CellTypes/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes/Constants.js\");\n/* harmony import */ var _PolyData_Constants_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./PolyData/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/PolyData/Constants.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar _CELL_FACTORY;\nvar vtkWarningMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkWarningMacro;\nvar CELL_FACTORY = (_CELL_FACTORY = {}, (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_CELL_FACTORY, _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_LINE, _Line_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]), (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_CELL_FACTORY, _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_POLY_LINE, _Line_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]), (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_CELL_FACTORY, _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_TRIANGLE, _Triangle_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]), _CELL_FACTORY); // ----------------------------------------------------------------------------\n// vtkPolyData methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPolyData(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkPolyData');\n\n  function camelize(str) {\n    return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function (letter) {\n      return letter.toUpperCase();\n    }).replace(/\\s+/g, '');\n  } // build empty cell arrays and set methods\n\n\n  _PolyData_Constants_js__WEBPACK_IMPORTED_MODULE_10__.POLYDATA_FIELDS.forEach(function (type) {\n    publicAPI[\"getNumberOf\".concat(camelize(type))] = function () {\n      return model[type].getNumberOfCells();\n    };\n\n    if (!model[type]) {\n      model[type] = _Core_CellArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n    } else {\n      model[type] = (0,_vtk_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(model[type]);\n    }\n  });\n\n  publicAPI.getNumberOfCells = function () {\n    return _PolyData_Constants_js__WEBPACK_IMPORTED_MODULE_10__.POLYDATA_FIELDS.reduce(function (num, cellType) {\n      return num + model[cellType].getNumberOfCells();\n    }, 0);\n  };\n\n  var superShallowCopy = publicAPI.shallowCopy;\n\n  publicAPI.shallowCopy = function (other) {\n    var debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    superShallowCopy(other, debug);\n    _PolyData_Constants_js__WEBPACK_IMPORTED_MODULE_10__.POLYDATA_FIELDS.forEach(function (type) {\n      model[type] = _Core_CellArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n      model[type].shallowCopy(other.getReferenceByName(type));\n    });\n  };\n\n  publicAPI.buildCells = function () {\n    // here are the number of cells we have\n    var nVerts = publicAPI.getNumberOfVerts();\n    var nLines = publicAPI.getNumberOfLines();\n    var nPolys = publicAPI.getNumberOfPolys();\n    var nStrips = publicAPI.getNumberOfStrips(); // pre-allocate the space we need\n\n    var nCells = nVerts + nLines + nPolys + nStrips;\n    var types = new Uint8Array(nCells);\n    var pTypes = types;\n    var locs = new Uint32Array(nCells);\n    var pLocs = locs; // record locations and type of each cell.\n    // verts\n\n    if (nVerts) {\n      var nextCellPts = 0;\n      model.verts.getCellSizes().forEach(function (numCellPts, index) {\n        pLocs[index] = nextCellPts;\n        pTypes[index] = numCellPts > 1 ? _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_POLY_VERTEX : _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_VERTEX;\n        nextCellPts += numCellPts + 1;\n      });\n      pLocs = pLocs.subarray(nVerts);\n      pTypes = pTypes.subarray(nVerts);\n    } // lines\n\n\n    if (nLines) {\n      var _nextCellPts = 0;\n      model.lines.getCellSizes().forEach(function (numCellPts, index) {\n        pLocs[index] = _nextCellPts;\n        pTypes[index] = numCellPts > 2 ? _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_POLY_LINE : _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_LINE;\n\n        if (numCellPts === 1) {\n          vtkWarningMacro('Building VTK_LINE ', index, ' with only one point, but VTK_LINE needs at least two points. Check the input.');\n        }\n\n        _nextCellPts += numCellPts + 1;\n      });\n      pLocs = pLocs.subarray(nLines);\n      pTypes = pTypes.subarray(nLines);\n    } // polys\n\n\n    if (nPolys) {\n      var _nextCellPts2 = 0;\n      model.polys.getCellSizes().forEach(function (numCellPts, index) {\n        pLocs[index] = _nextCellPts2;\n\n        switch (numCellPts) {\n          case 3:\n            pTypes[index] = _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_TRIANGLE;\n            break;\n\n          case 4:\n            pTypes[index] = _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_QUAD;\n            break;\n\n          default:\n            pTypes[index] = _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_POLYGON;\n            break;\n        }\n\n        if (numCellPts < 3) {\n          vtkWarningMacro('Building VTK_TRIANGLE ', index, ' with less than three points, but VTK_TRIANGLE needs at least three points. Check the input.');\n        }\n\n        _nextCellPts2 += numCellPts + 1;\n      });\n      pLocs += pLocs.subarray(nPolys);\n      pTypes += pTypes.subarray(nPolys);\n    } // strips\n\n\n    if (nStrips) {\n      var _nextCellPts3 = 0;\n      pTypes.fill(_CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_TRIANGLE_STRIP, 0, nStrips);\n      model.strips.getCellSizes().forEach(function (numCellPts, index) {\n        pLocs[index] = _nextCellPts3;\n        _nextCellPts3 += numCellPts + 1;\n      });\n    } // set up the cell types data structure\n\n\n    model.cells = _CellTypes_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance();\n    model.cells.setCellTypes(nCells, types, locs);\n  };\n  /**\n   * Create upward links from points to cells that use each point. Enables\n   * topologically complex queries.\n   */\n\n\n  publicAPI.buildLinks = function () {\n    var initialSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n    if (model.cells === undefined) {\n      publicAPI.buildCells();\n    }\n\n    model.links = _CellLinks_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance();\n\n    if (initialSize > 0) {\n      model.links.allocate(initialSize);\n    } else {\n      model.links.allocate(publicAPI.getPoints().getNumberOfPoints());\n    }\n\n    model.links.buildLinks(publicAPI);\n  };\n\n  publicAPI.getCellType = function (cellId) {\n    return model.cells.getCellType(cellId);\n  };\n\n  publicAPI.getCellPoints = function (cellId) {\n    var cellType = publicAPI.getCellType(cellId);\n    var cells = null;\n\n    switch (cellType) {\n      case _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_VERTEX:\n      case _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_POLY_VERTEX:\n        cells = model.verts;\n        break;\n\n      case _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_LINE:\n      case _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_POLY_LINE:\n        cells = model.lines;\n        break;\n\n      case _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_TRIANGLE:\n      case _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_QUAD:\n      case _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_POLYGON:\n        cells = model.polys;\n        break;\n\n      case _CellTypes_Constants_js__WEBPACK_IMPORTED_MODULE_9__.CellType.VTK_TRIANGLE_STRIP:\n        cells = model.strips;\n        break;\n\n      default:\n        cells = null;\n        return {\n          type: 0,\n          cellPointIds: null\n        };\n    }\n\n    var loc = model.cells.getCellLocation(cellId);\n    var cellPointIds = cells.getCell(loc);\n    return {\n      cellType: cellType,\n      cellPointIds: cellPointIds\n    };\n  };\n\n  publicAPI.getPointCells = function (ptId) {\n    return model.links.getCells(ptId);\n  };\n\n  publicAPI.getCellEdgeNeighbors = function (cellId, point1, point2) {\n    var link1 = model.links.getLink(point1);\n    var link2 = model.links.getLink(point2);\n    return link1.cells.filter(function (cell) {\n      return cell !== cellId && link2.cells.indexOf(cell) !== -1;\n    });\n  };\n  /**\n   * If you know the type of cell, you may provide it to improve performances.\n   */\n\n\n  publicAPI.getCell = function (cellId) {\n    var cellHint = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var cellInfo = publicAPI.getCellPoints(cellId);\n    var cell = cellHint || CELL_FACTORY[cellInfo.cellType].newInstance();\n    cell.initialize(publicAPI.getPoints(), cellInfo.cellPointIds);\n    return cell;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {// verts: null,\n  // lines: null,\n  // polys: null,\n  // strips: null,\n  // cells: null,\n  // links: null,\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _PointSet_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['cells', 'links']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['verts', 'lines', 'polys', 'strips']); // Object specific methods\n\n  vtkPolyData(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkPolyData'); // ----------------------------------------------------------------------------\n\nvar vtkPolyData$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/PolyData/Constants.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/PolyData/Constants.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"POLYDATA_FIELDS\": () => (/* binding */ POLYDATA_FIELDS),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar POLYDATA_FIELDS = ['verts', 'lines', 'polys', 'strips'];\nvar Constants = {\n  POLYDATA_FIELDS: POLYDATA_FIELDS\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/PolyData/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/SelectionNode.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/SelectionNode.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkSelectionNode$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SelectionNode_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SelectionNode/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/SelectionNode/Constants.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// vtkSelectionNode methods\n// ----------------------------------------------------------------------------\n\nfunction vtkSelectionNode(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkSelectionNode');\n\n  publicAPI.getBounds = function () {\n    return model.points.getBounds();\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  contentType: -1,\n  fieldType: -1,\n  properties: null,\n  selectionList: []\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  model.properties = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['contentType', 'fieldType', 'properties', 'selectionList']); // Object specific methods\n\n  vtkSelectionNode(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkSelectionNode'); // ----------------------------------------------------------------------------\n\nvar vtkSelectionNode$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _SelectionNode_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/SelectionNode.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/SelectionNode/Constants.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/SelectionNode/Constants.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"SelectionContent\": () => (/* binding */ SelectionContent),\n/* harmony export */   \"SelectionField\": () => (/* binding */ SelectionField),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\n/**\n * The (primary) property that describes the content of a selection\n * node's data. Other auxiliary description properties follow.\n * GLOBALIDS means that the selection list contains values from the\n * vtkDataSetAttribute array of the same name.\n * PEDIGREEIDS means that the selection list contains values from the\n * vtkDataSetAttribute array of the same name.\n * VALUES means the the selection list contains values from an\n * arbitrary attribute array (ignores any globalids attribute)\n * INDICES means that the selection list contains indexes into the\n * cell or point arrays.\n * FRUSTUM means the set of points and cells inside a frustum\n * LOCATIONS means the set of points and cells near a set of positions\n * THRESHOLDS means the points and cells with values within a set of ranges\n * getContentType() returns -1 if the content type is not set.\n */\n// Specify how data arrays can be used by data objects\nvar SelectionContent = {\n  GLOBALIDS: 0,\n  PEDIGREEIDS: 1,\n  VALUES: 2,\n  INDICES: 3,\n  FRUSTUM: 4,\n  LOCATIONS: 5,\n  THRESHOLDS: 6,\n  BLOCKS: 7,\n  QUERY: 8\n};\nvar SelectionField = {\n  CELL: 0,\n  POINT: 1,\n  FIELD: 2,\n  VERTEX: 3,\n  EDGE: 4,\n  ROW: 5\n};\nvar Constants = {\n  SelectionContent: SelectionContent,\n  SelectionField: SelectionField\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/SelectionNode/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkStructuredData),\n/* harmony export */   \"getDataDescriptionFromExtent\": () => (/* binding */ getDataDescriptionFromExtent)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StructuredData/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData/Constants.js\");\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar StructuredType = _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].StructuredType;\nfunction getDataDescriptionFromExtent(inExt) {\n  var dataDim = 0;\n\n  for (var i = 0; i < 3; ++i) {\n    if (inExt[i * 2] < inExt[i * 2 + 1]) {\n      dataDim++;\n    }\n  }\n\n  if (inExt[0] > inExt[1] || inExt[2] > inExt[3] || inExt[4] > inExt[5]) {\n    return StructuredType.EMPTY;\n  }\n\n  if (dataDim === 3) {\n    return StructuredType.XYZ_GRID;\n  }\n\n  if (dataDim === 2) {\n    if (inExt[0] === inExt[1]) {\n      return StructuredType.YZ_PLANE;\n    }\n\n    if (inExt[2] === inExt[3]) {\n      return StructuredType.XZ_PLANE;\n    }\n\n    return StructuredType.XY_PLANE;\n  }\n\n  if (dataDim === 1) {\n    if (inExt[0] < inExt[1]) {\n      return StructuredType.X_LINE;\n    }\n\n    if (inExt[2] < inExt[3]) {\n      return StructuredType.Y_LINE;\n    }\n\n    return StructuredType.Z_LINE;\n  }\n\n  return StructuredType.SINGLE_POINT;\n}\nvar vtkStructuredData = _objectSpread({\n  getDataDescriptionFromExtent: getDataDescriptionFromExtent\n}, _StructuredData_Constants_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData/Constants.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData/Constants.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"StructuredType\": () => (/* binding */ StructuredType),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar StructuredType = {\n  UNCHANGED: 0,\n  SINGLE_POINT: 1,\n  X_LINE: 2,\n  Y_LINE: 3,\n  Z_LINE: 4,\n  XY_PLANE: 5,\n  YZ_PLANE: 6,\n  XZ_PLANE: 7,\n  XYZ_GRID: 8,\n  EMPTY: 9\n};\nvar Constants = {\n  StructuredType: StructuredType\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Common/DataModel/Triangle.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Common/DataModel/Triangle.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"default\": () => (/* binding */ vtkTriangle$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Cell_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Cell.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/Cell.js\");\n/* harmony import */ var _Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Line_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Line.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/Line.js\");\n/* harmony import */ var _Plane_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Plane.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/Plane.js\");\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction computeNormalDirection(v1, v2, v3, n) {\n  // order is important!!! maintain consistency with triangle vertex order\n  var ax = v3[0] - v2[0];\n  var ay = v3[1] - v2[1];\n  var az = v3[2] - v2[2];\n  var bx = v1[0] - v2[0];\n  var by = v1[1] - v2[1];\n  var bz = v1[2] - v2[2];\n  n[0] = ay * bz - az * by;\n  n[1] = az * bx - ax * bz;\n  n[2] = ax * by - ay * bx;\n}\n\nfunction computeNormal(v1, v2, v3, n) {\n  computeNormalDirection(v1, v2, v3, n);\n  var length = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]);\n\n  if (length !== 0.0) {\n    n[0] /= length;\n    n[1] /= length;\n    n[2] /= length;\n  }\n}\n\nfunction intersectWithTriangle(p1, q1, r1, p2, q2, r2) {\n  var tolerance = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 1e-6;\n  var coplanar = false;\n  var pt1 = [];\n  var pt2 = [];\n  var surfaceId = [];\n  var n1 = [];\n  var n2 = []; // Compute supporting plane normals.\n\n  computeNormal(p1, q1, r1, n1);\n  computeNormal(p2, q2, r2, n2);\n  var s1 = -(0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(n1, p1);\n  var s2 = -(0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(n2, p2); // Compute signed distances of points p1, q1, r1 from supporting\n  // plane of second triangle.\n\n  var dist1 = [(0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(n2, p1) + s2, (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(n2, q1) + s2, (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(n2, r1) + s2]; // If signs of all points are the same, all the points lie on the\n  // same side of the supporting plane, and we can exit early.\n\n  if (dist1[0] * dist1[1] > tolerance && dist1[0] * dist1[2] > tolerance) {\n    // vtkDebugMacro(<<\"Same side supporting plane 1!\");\n    return {\n      intersect: false,\n      coplanar: coplanar,\n      pt1: pt1,\n      pt2: pt2,\n      surfaceId: surfaceId\n    };\n  } // Do the same for p2, q2, r2 and supporting plane of first\n  // triangle.\n\n\n  var dist2 = [(0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(n1, p2) + s1, (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(n1, q2) + s1, (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(n1, r2) + s1]; // If signs of all points are the same, all the points lie on the\n  // same side of the supporting plane, and we can exit early.\n\n  if (dist2[0] * dist2[1] > tolerance && dist2[0] * dist2[2] > tolerance) {\n    // vtkDebugMacro(<<\"Same side supporting plane 2!\");\n    return {\n      intersect: false,\n      coplanar: coplanar,\n      pt1: pt1,\n      pt2: pt2,\n      surfaceId: surfaceId\n    };\n  } // Check for coplanarity of the supporting planes.\n\n\n  if (Math.abs(n1[0] - n2[0]) < 1e-9 && Math.abs(n1[1] - n2[1]) < 1e-9 && Math.abs(n1[2] - n2[2]) < 1e-9 && Math.abs(s1 - s2) < 1e-9) {\n    coplanar = true; // vtkDebugMacro(<<\"Coplanar!\");\n\n    return {\n      intersect: false,\n      coplanar: coplanar,\n      pt1: pt1,\n      pt2: pt2,\n      surfaceId: surfaceId\n    };\n  } // There are more efficient ways to find the intersection line (if\n  // it exists), but this is clear enough.\n\n\n  var pts1 = [p1, q1, r1];\n  var pts2 = [p2, q2, r2]; // Find line of intersection (L = p + t*v) between two planes.\n\n  var n1n2 = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(n1, n2);\n  var a = (s1 - s2 * n1n2) / (n1n2 * n1n2 - 1.0);\n  var b = (s2 - s1 * n1n2) / (n1n2 * n1n2 - 1.0);\n  var p = [a * n1[0] + b * n2[0], a * n1[1] + b * n2[1], a * n1[2] + b * n2[2]];\n  var v = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.j)(n1, n2, []);\n  (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.l)(v);\n  var index1 = 0;\n  var index2 = 0;\n  var t1 = [];\n  var t2 = [];\n  var ts1 = 50;\n  var ts2 = 50;\n\n  for (var i = 0; i < 3; i++) {\n    var id1 = i;\n    var id2 = (i + 1) % 3; // Find t coordinate on line of intersection between two planes.\n\n    var val1 = _Plane_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].intersectWithLine(pts1[id1], pts1[id2], p2, n2);\n\n    if (val1.intersection && val1.t > 0 - tolerance && val1.t < 1 + tolerance) {\n      if (val1.t < 1 + tolerance && val1.t > 1 - tolerance) {\n        ts1 = index1;\n      }\n\n      t1[index1++] = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(val1.x, v) - (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(p, v);\n    }\n\n    var val2 = _Plane_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].intersectWithLine(pts2[id1], pts2[id2], p1, n1);\n\n    if (val2.intersection && val2.t > 0 - tolerance && val2.t < 1 + tolerance) {\n      if (val2.t < 1 + tolerance && val2.t > 1 - tolerance) {\n        ts2 = index2;\n      }\n\n      t2[index2++] = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(val2.x, v) - (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(p, v);\n    }\n  } // If the value of the index is greater than 2, the intersecting point\n  // actually is intersected by all three edges. In this case, set the two\n  // edges to the two edges where the intersecting point is not the end point\n\n\n  if (index1 > 2) {\n    index1--; // swap\n\n    var t12 = t1[2];\n    t1[2] = t1[ts1];\n    t1[ts1] = t12;\n  }\n\n  if (index2 > 2) {\n    index2--;\n    var t22 = t2[2];\n    t2[2] = t2[ts2];\n    t2[ts2] = t22;\n  } // Check if only one edge or all edges intersect the supporting\n  // planes intersection.\n\n\n  if (index1 !== 2 || index2 !== 2) {\n    // vtkDebugMacro(<<\"Only one edge intersecting!\");\n    return {\n      intersect: false,\n      coplanar: coplanar,\n      pt1: pt1,\n      pt2: pt2,\n      surfaceId: surfaceId\n    };\n  } // Check for NaNs\n\n\n  if (Number.isNaN(t1[0]) || Number.isNaN(t1[1]) || Number.isNaN(t2[0]) || Number.isNaN(t2[1])) {\n    // vtkWarningMacro(<<\"NaNs!\");\n    return {\n      intersect: false,\n      coplanar: coplanar,\n      pt1: pt1,\n      pt2: pt2,\n      surfaceId: surfaceId\n    };\n  }\n\n  if (t1[0] > t1[1]) {\n    // swap\n    var t11 = t1[1];\n    t1[1] = t1[0];\n    t1[0] = t11;\n  }\n\n  if (t2[0] > t2[1]) {\n    // swap\n    var t21 = t2[1];\n    t2[1] = t2[0];\n    t2[0] = t21;\n  } // Handle the different interval configuration cases.\n\n\n  var tt1;\n  var tt2;\n\n  if (t1[1] < t2[0] || t2[1] < t1[0]) {\n    // vtkDebugMacro(<<\"No Overlap!\");\n    return {\n      intersect: false,\n      coplanar: coplanar,\n      pt1: pt1,\n      pt2: pt2,\n      surfaceId: surfaceId\n    }; // No overlap\n  }\n\n  if (t1[0] < t2[0]) {\n    if (t1[1] < t2[1]) {\n      // First point on surface 2, second point on surface 1\n      surfaceId[0] = 2;\n      surfaceId[1] = 1;\n      tt1 = t2[0];\n      tt2 = t1[1];\n    } else {\n      // Both points belong to lines on surface 2\n      surfaceId[0] = 2;\n      surfaceId[1] = 2;\n      tt1 = t2[0];\n      tt2 = t2[1];\n    }\n  } // t1[0] >= t2[0]\n  else if (t1[1] < t2[1]) {\n    // Both points belong to lines on surface 1\n    surfaceId[0] = 1;\n    surfaceId[1] = 1;\n    tt1 = t1[0];\n    tt2 = t1[1];\n  } else {\n    // First point on surface 1, second point on surface 2\n    surfaceId[0] = 1;\n    surfaceId[1] = 2;\n    tt1 = t1[0];\n    tt2 = t2[1];\n  } // Create actual intersection points.\n\n\n  (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.m)(p, v, tt1, pt1);\n  (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.m)(p, v, tt2, pt2);\n  return {\n    intersect: true,\n    coplanar: coplanar,\n    pt1: pt1,\n    pt2: pt2,\n    surfaceId: surfaceId\n  };\n} // ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\n\nvar STATIC = {\n  computeNormalDirection: computeNormalDirection,\n  computeNormal: computeNormal,\n  intersectWithTriangle: intersectWithTriangle\n}; // ----------------------------------------------------------------------------\n// vtkTriangle methods\n// ----------------------------------------------------------------------------\n\nfunction vtkTriangle(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkTriangle');\n\n  publicAPI.getCellDimension = function () {\n    return 2;\n  };\n\n  publicAPI.intersectWithLine = function (p1, p2, tol, x, pcoords) {\n    var outObj = {\n      subId: 0,\n      t: Number.MAX_VALUE,\n      intersect: 0,\n      betweenPoints: false\n    };\n    pcoords[2] = 0.0;\n    var closestPoint = [];\n    var tol2 = tol * tol; // Get normal for triangle\n\n    var pt1 = [];\n    var pt2 = [];\n    var pt3 = [];\n    model.points.getPoint(0, pt1);\n    model.points.getPoint(1, pt2);\n    model.points.getPoint(2, pt3);\n    var n = [];\n    var weights = [];\n    computeNormal(pt1, pt2, pt3, n);\n\n    if (n[0] !== 0 || n[1] !== 0 || n[2] !== 0) {\n      // Intersect plane of triangle with line\n      var plane = _Plane_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].intersectWithLine(p1, p2, pt1, n);\n      outObj.betweenPoints = plane.betweenPoints;\n      outObj.t = plane.t;\n      x[0] = plane.x[0];\n      x[1] = plane.x[1];\n      x[2] = plane.x[2];\n\n      if (!plane.intersection) {\n        pcoords[0] = 0.0;\n        pcoords[1] = 0.0;\n        outObj.intersect = 0;\n        return outObj;\n      } // Evaluate position\n\n\n      var inside = publicAPI.evaluatePosition(x, closestPoint, pcoords, weights);\n\n      if (inside.evaluation >= 0) {\n        if (inside.dist2 <= tol2) {\n          outObj.intersect = 1;\n          return outObj;\n        }\n\n        outObj.intersect = inside.evaluation;\n        return outObj;\n      }\n    } // Normals are null, so the triangle is degenerated and\n    // we still need to check intersection between line and\n    // the longest edge.\n\n\n    var dist2Pt1Pt2 = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.f)(pt1, pt2);\n    var dist2Pt2Pt3 = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.f)(pt2, pt3);\n    var dist2Pt3Pt1 = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.f)(pt3, pt1);\n\n    if (!model.line) {\n      model.line = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance();\n    }\n\n    if (dist2Pt1Pt2 > dist2Pt2Pt3 && dist2Pt1Pt2 > dist2Pt3Pt1) {\n      model.line.getPoints().setPoint(0, pt1);\n      model.line.getPoints().setPoint(1, pt2);\n    } else if (dist2Pt2Pt3 > dist2Pt3Pt1 && dist2Pt2Pt3 > dist2Pt1Pt2) {\n      model.line.getPoints().setPoint(0, pt2);\n      model.line.getPoints().setPoint(1, pt3);\n    } else {\n      model.line.getPoints().setPoint(0, pt3);\n      model.line.getPoints().setPoint(1, pt1);\n    }\n\n    var intersectLine = model.line.intersectWithLine(p1, p2, tol, x, pcoords);\n    outObj.betweenPoints = intersectLine.betweenPoints;\n    outObj.t = intersectLine.t;\n\n    if (intersectLine.intersect) {\n      var pt3Pt1 = [];\n      var pt3Pt2 = [];\n      var pt3X = []; // Compute r and s manually, using dot and norm.\n\n      for (var i = 0; i < 3; i++) {\n        pt3Pt1[i] = pt1[i] - pt3[i];\n        pt3Pt2[i] = pt2[i] - pt3[i];\n        pt3X[i] = x[i] - pt3[i];\n      }\n\n      pcoords[0] = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(pt3X, pt3Pt1) / dist2Pt3Pt1;\n      pcoords[1] = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(pt3X, pt3Pt2) / dist2Pt2Pt3;\n      outObj.intersect = 1;\n      return outObj;\n    }\n\n    pcoords[0] = 0.0;\n    pcoords[1] = 0.0;\n    outObj.intersect = 0;\n    return outObj;\n  };\n\n  publicAPI.evaluatePosition = function (x, closestPoint, pcoords, weights) {\n    // will return obj\n    var outObj = {\n      subId: 0,\n      dist2: 0,\n      evaluation: -1\n    };\n    var i;\n    var j;\n    var pt1 = [];\n    var pt2 = [];\n    var pt3 = [];\n    var n = [];\n    var fabsn;\n    var rhs = [];\n    var c1 = [];\n    var c2 = [];\n    var det = 0;\n    var idx = 0;\n    var indices = [];\n    var dist2Point;\n    var dist2Line1;\n    var dist2Line2;\n    var closest = [];\n    var closestPoint1 = [];\n    var closestPoint2 = [];\n    var cp = [];\n    outObj.subId = 0;\n    pcoords[2] = 0.0; // Get normal for triangle, only the normal direction is needed, i.e. the\n    // normal need not be normalized (unit length)\n    //\n\n    model.points.getPoint(1, pt1);\n    model.points.getPoint(2, pt2);\n    model.points.getPoint(0, pt3);\n    computeNormalDirection(pt1, pt2, pt3, n); // Project point to plane\n\n    _Plane_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].generalizedProjectPoint(x, pt1, n, cp); // Construct matrices.  Since we have over determined system, need to find\n    // which 2 out of 3 equations to use to develop equations. (Any 2 should\n    // work since we've projected point to plane.)\n\n    var maxComponent = 0.0;\n\n    for (i = 0; i < 3; i++) {\n      // trying to avoid an expensive call to fabs()\n      if (n[i] < 0) {\n        fabsn = -n[i];\n      } else {\n        fabsn = n[i];\n      }\n\n      if (fabsn > maxComponent) {\n        maxComponent = fabsn;\n        idx = i;\n      }\n    }\n\n    for (j = 0, i = 0; i < 3; i++) {\n      if (i !== idx) {\n        indices[j++] = i;\n      }\n    }\n\n    for (i = 0; i < 2; i++) {\n      rhs[i] = cp[indices[i]] - pt3[indices[i]];\n      c1[i] = pt1[indices[i]] - pt3[indices[i]];\n      c2[i] = pt2[indices[i]] - pt3[indices[i]];\n    }\n\n    det = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.o)(c1, c2);\n\n    if (det === 0.0) {\n      pcoords[0] = 0.0;\n      pcoords[1] = 0.0;\n      outObj.evaluation = -1;\n      return outObj;\n    }\n\n    pcoords[0] = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.o)(rhs, c2) / det;\n    pcoords[1] = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.o)(c1, rhs) / det; // Okay, now find closest point to element\n\n    weights[0] = 1 - (pcoords[0] + pcoords[1]);\n    weights[1] = pcoords[0];\n    weights[2] = pcoords[1];\n\n    if (weights[0] >= 0.0 && weights[0] <= 1.0 && weights[1] >= 0.0 && weights[1] <= 1.0 && weights[2] >= 0.0 && weights[2] <= 1.0) {\n      // projection distance\n      if (closestPoint) {\n        outObj.dist2 = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.f)(cp, x);\n        closestPoint[0] = cp[0];\n        closestPoint[1] = cp[1];\n        closestPoint[2] = cp[2];\n      }\n\n      outObj.evaluation = 1;\n    } else {\n      var t;\n\n      if (closestPoint) {\n        if (weights[1] < 0.0 && weights[2] < 0.0) {\n          dist2Point = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.f)(x, pt3);\n          dist2Line1 = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].distanceToLine(x, pt1, pt3, t, closestPoint1);\n          dist2Line2 = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].distanceToLine(x, pt3, pt2, t, closestPoint2);\n\n          if (dist2Point < dist2Line1) {\n            outObj.dist2 = dist2Point;\n            closest = pt3;\n          } else {\n            outObj.dist2 = dist2Line1;\n            closest = closestPoint1;\n          }\n\n          if (dist2Line2 < outObj.dist2) {\n            outObj.dist2 = dist2Line2;\n            closest = closestPoint2;\n          }\n\n          for (i = 0; i < 3; i++) {\n            closestPoint[i] = closest[i];\n          }\n        } else if (weights[2] < 0.0 && weights[0] < 0.0) {\n          dist2Point = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.f)(x, pt1);\n          dist2Line1 = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].distanceToLine(x, pt1, pt3, t, closestPoint1);\n          dist2Line2 = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].distanceToLine(x, pt1, pt2, t, closestPoint2);\n\n          if (dist2Point < dist2Line1) {\n            outObj.dist2 = dist2Point;\n            closest = pt1;\n          } else {\n            outObj.dist2 = dist2Line1;\n            closest = closestPoint1;\n          }\n\n          if (dist2Line2 < outObj.dist2) {\n            outObj.dist2 = dist2Line2;\n            closest = closestPoint2;\n          }\n\n          for (i = 0; i < 3; i++) {\n            closestPoint[i] = closest[i];\n          }\n        } else if (weights[1] < 0.0 && weights[0] < 0.0) {\n          dist2Point = (0,_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.f)(x, pt2);\n          dist2Line1 = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].distanceToLine(x, pt2, pt3, t, closestPoint1);\n          dist2Line2 = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].distanceToLine(x, pt1, pt2, t, closestPoint2);\n\n          if (dist2Point < dist2Line1) {\n            outObj.dist2 = dist2Point;\n            closest = pt2;\n          } else {\n            outObj.dist2 = dist2Line1;\n            closest = closestPoint1;\n          }\n\n          if (dist2Line2 < outObj.dist2) {\n            outObj.dist2 = dist2Line2;\n            closest = closestPoint2;\n          }\n\n          for (i = 0; i < 3; i++) {\n            closestPoint[i] = closest[i];\n          }\n        } else if (weights[0] < 0.0) {\n          var lineDistance = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].distanceToLine(x, pt1, pt2, closestPoint);\n          outObj.dist2 = lineDistance.distance;\n        } else if (weights[1] < 0.0) {\n          var _lineDistance = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].distanceToLine(x, pt2, pt3, closestPoint);\n\n          outObj.dist2 = _lineDistance.distance;\n        } else if (weights[2] < 0.0) {\n          var _lineDistance2 = _Line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].distanceToLine(x, pt1, pt3, closestPoint);\n\n          outObj.dist2 = _lineDistance2.distance;\n        }\n      }\n\n      outObj.evaluation = 0;\n    }\n\n    return outObj;\n  };\n\n  publicAPI.evaluateLocation = function (pcoords, x, weights) {\n    var p0 = [];\n    var p1 = [];\n    var p2 = [];\n    model.points.getPoint(0, p0);\n    model.points.getPoint(1, p1);\n    model.points.getPoint(2, p2);\n    var u3 = 1.0 - pcoords[0] - pcoords[1];\n\n    for (var i = 0; i < 3; i++) {\n      x[i] = p0[i] * u3 + p1[i] * pcoords[0] + p2[i] * pcoords[1];\n    }\n\n    weights[0] = u3;\n    weights[1] = pcoords[0];\n    weights[2] = pcoords[1];\n  };\n\n  publicAPI.getParametricDistance = function (pcoords) {\n    var pDist;\n    var pDistMax = 0.0;\n    var pc = [];\n    pc[0] = pcoords[0];\n    pc[1] = pcoords[1];\n    pc[2] = 1.0 - pcoords[0] - pcoords[1];\n\n    for (var i = 0; i < 3; i++) {\n      if (pc[i] < 0.0) {\n        pDist = -pc[i];\n      } else if (pc[i] > 1.0) {\n        pDist = pc[i] - 1.0;\n      } else {\n        // inside the cell in the parametric direction\n        pDist = 0.0;\n      }\n\n      if (pDist > pDistMax) {\n        pDistMax = pDist;\n      }\n    }\n\n    return pDistMax;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  _Cell_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  vtkTriangle(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkTriangle'); // ----------------------------------------------------------------------------\n\nvar vtkTriangle$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, STATIC);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Common/DataModel/Triangle.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/IO/Core/BinaryHelper.js":
/*!**************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/IO/Core/BinaryHelper.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BinaryHelper)\n/* harmony export */ });\n/**\n * Converts a binary buffer in an ArrayBuffer to a string.\n *\n * Note this does not take encoding into consideration, so don't\n * expect proper Unicode or any other encoding.\n */\nfunction arrayBufferToString(arrayBuffer) {\n  var decoder = new TextDecoder('latin1');\n  return decoder.decode(arrayBuffer);\n}\n/**\n * Extracts binary data out of a file ArrayBuffer given a prefix/suffix.\n */\n\n\nfunction extractBinary(arrayBuffer, prefixRegex) {\n  var suffixRegex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  var str = arrayBufferToString(arrayBuffer);\n  var prefixMatch = prefixRegex.exec(str);\n\n  if (!prefixMatch) {\n    return {\n      text: str\n    };\n  }\n\n  var dataStartIndex = prefixMatch.index + prefixMatch[0].length;\n  var strFirstHalf = str.substring(0, dataStartIndex);\n  var retVal = null;\n  var suffixMatch = suffixRegex ? suffixRegex.exec(str) : null;\n\n  if (suffixMatch) {\n    var strSecondHalf = str.substr(suffixMatch.index);\n    retVal = {\n      text: strFirstHalf + strSecondHalf,\n      binaryBuffer: arrayBuffer.slice(dataStartIndex, suffixMatch.index)\n    };\n  } else {\n    // no suffix, so just take all the data starting from dataStartIndex\n    retVal = {\n      text: strFirstHalf,\n      binaryBuffer: arrayBuffer.slice(dataStartIndex)\n    };\n  }\n\n  return retVal;\n}\n\nvar BinaryHelper = {\n  arrayBufferToString: arrayBufferToString,\n  extractBinary: extractBinary\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/IO/Core/BinaryHelper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper.js":
/*!******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DataAccessHelper),\n/* harmony export */   \"get\": () => (/* binding */ get),\n/* harmony export */   \"has\": () => (/* binding */ has),\n/* harmony export */   \"registerType\": () => (/* binding */ registerType)\n/* harmony export */ });\nvar TYPE_MAPPING = {};\nfunction has(type) {\n  return !!TYPE_MAPPING[type];\n}\nfunction get() {\n  var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return TYPE_MAPPING[type](options);\n}\nfunction registerType(type, fn) {\n  TYPE_MAPPING[type] = fn;\n}\nvar DataAccessHelper = {\n  get: get,\n  has: has,\n  registerType: registerType\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ HtmlDataAccessHelper)\n/* harmony export */ });\n/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pako */ \"./node_modules/pako/dist/pako.esm.mjs\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_Base64_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../Common/Core/Base64.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Base64.js\");\n/* harmony import */ var _Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../Common/Core/Endian.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Endian.js\");\n/* harmony import */ var _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../Common/Core/DataArray/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js\");\n/* harmony import */ var _DataAccessHelper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../DataAccessHelper.js */ \"./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper.js\");\n\n\n\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro,\n    vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkDebugMacro;\nvar requestCount = 0;\n\nfunction getContent(url) {\n  var el = document.querySelector(\".webResource[data-url=\\\"\".concat(url, \"\\\"]\"));\n  return el ? el.innerHTML : null;\n}\n\nfunction getElement(url) {\n  return document.querySelector(\".webResource[data-url=\\\"\".concat(url, \"\\\"]\"));\n}\n\nfunction removeLeadingSlash(str) {\n  return str[0] === '/' ? str.substr(1) : str;\n}\n\nfunction fetchText(instance, url) {\n  return new Promise(function (resolve, reject) {\n    var txt = getContent(url);\n\n    if (txt === null) {\n      reject(new Error(\"No such text \".concat(url)));\n    } else {\n      resolve(txt);\n    }\n  });\n}\n\nfunction fetchJSON(instance, url) {\n  return new Promise(function (resolve, reject) {\n    var txt = getContent(removeLeadingSlash(url));\n\n    if (txt === null) {\n      reject(new Error(\"No such JSON \".concat(url)));\n    } else {\n      resolve(JSON.parse(txt));\n    }\n  });\n}\n\nfunction fetchArray(instance, baseURL, array) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  return new Promise(function (resolve, reject) {\n    var url = removeLeadingSlash([baseURL, array.ref.basepath, options.compression ? \"\".concat(array.ref.id, \".gz\") : array.ref.id].join('/'));\n    var txt = getContent(url);\n\n    if (txt === null) {\n      reject(new Error(\"No such array \".concat(url)));\n    } else {\n      if (array.dataType === 'string') {\n        var bText = atob(txt);\n\n        if (options.compression) {\n          bText = pako__WEBPACK_IMPORTED_MODULE_0__[\"default\"].inflate(bText, {\n            to: 'string'\n          });\n        }\n\n        array.values = JSON.parse(bText);\n      } else {\n        var uint8array = new Uint8Array(_Common_Core_Base64_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].toArrayBuffer(txt));\n        array.buffer = new ArrayBuffer(uint8array.length); // copy uint8array to buffer\n\n        var view = new Uint8Array(array.buffer);\n        view.set(uint8array);\n\n        if (options.compression) {\n          if (array.dataType === 'string' || array.dataType === 'JSON') {\n            array.buffer = pako__WEBPACK_IMPORTED_MODULE_0__[\"default\"].inflate(new Uint8Array(array.buffer), {\n              to: 'string'\n            });\n          } else {\n            array.buffer = pako__WEBPACK_IMPORTED_MODULE_0__[\"default\"].inflate(new Uint8Array(array.buffer)).buffer;\n          }\n        }\n\n        if (array.ref.encode === 'JSON') {\n          array.values = JSON.parse(array.buffer);\n        } else {\n          if (_Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ENDIANNESS !== array.ref.encode && _Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ENDIANNESS) {\n            // Need to swap bytes\n            vtkDebugMacro(\"Swap bytes of \".concat(array.name));\n            _Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].swapBytes(array.buffer, _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_4__.DataTypeByteSize[array.dataType]);\n          }\n\n          array.values = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newTypedArray(array.dataType, array.buffer);\n        }\n\n        if (array.values.length !== array.size) {\n          vtkErrorMacro(\"Error in FetchArray: \".concat(array.name, \" does not have the proper array size. Got \").concat(array.values.length, \", instead of \").concat(array.size));\n        }\n      } // Done with the ref and work\n\n\n      delete array.ref;\n\n      if (--requestCount === 0 && instance !== null && instance !== void 0 && instance.invokeBusy) {\n        instance.invokeBusy(false);\n      }\n\n      if (instance !== null && instance !== void 0 && instance.modified) {\n        instance.modified();\n      }\n\n      resolve(array);\n    }\n  });\n} // ----------------------------------------------------------------------------\n\n\nfunction fetchImage(instance, url) {\n  return new Promise(function (resolve, reject) {\n    var img = getElement(url);\n\n    if (img) {\n      resolve(img);\n    } else {\n      reject(new Error(\"No such image \".concat(url)));\n    }\n  });\n} // ----------------------------------------------------------------------------\n\n\nvar HtmlDataAccessHelper = {\n  fetchJSON: fetchJSON,\n  fetchText: fetchText,\n  fetchArray: fetchArray,\n  fetchImage: fetchImage\n};\n(0,_DataAccessHelper_js__WEBPACK_IMPORTED_MODULE_5__.registerType)('html', function (options) {\n  return HtmlDataAccessHelper;\n}); // Export fetch methods\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ JSZipDataAccessHelper)\n/* harmony export */ });\n/* harmony import */ var jszip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jszip */ \"./node_modules/jszip/dist/jszip.min.js\");\n/* harmony import */ var jszip__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jszip__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! pako */ \"./node_modules/pako/dist/pako.esm.mjs\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../Common/Core/Endian.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Endian.js\");\n/* harmony import */ var _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../Common/Core/DataArray/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js\");\n/* harmony import */ var _DataAccessHelper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../DataAccessHelper.js */ \"./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper.js\");\n\n\n\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].vtkErrorMacro,\n    vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].vtkDebugMacro;\n\nfunction toMimeType(url) {\n  var ext = url.split('.').pop().toLowerCase();\n\n  if (ext === 'jpg') {\n    return 'jpeg';\n  }\n\n  return ext;\n}\n\nfunction handleUint8Array(array, compression, done) {\n  return function (uint8array) {\n    array.buffer = new ArrayBuffer(uint8array.length); // copy uint8array to buffer\n\n    var view = new Uint8Array(array.buffer);\n    view.set(uint8array);\n\n    if (compression) {\n      if (array.dataType === 'string' || array.dataType === 'JSON') {\n        array.buffer = pako__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inflate(new Uint8Array(array.buffer), {\n          to: 'string'\n        });\n      } else {\n        array.buffer = pako__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inflate(new Uint8Array(array.buffer)).buffer;\n      }\n    }\n\n    if (array.ref.encode === 'JSON') {\n      array.values = JSON.parse(array.buffer);\n    } else {\n      if (_Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ENDIANNESS !== array.ref.encode && _Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ENDIANNESS) {\n        // Need to swap bytes\n        vtkDebugMacro(\"Swap bytes of \".concat(array.name));\n        _Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].swapBytes(array.buffer, _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_4__.DataTypeByteSize[array.dataType]);\n      }\n\n      array.values = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newTypedArray(array.dataType, array.buffer);\n    }\n\n    if (array.values.length !== array.size) {\n      vtkErrorMacro(\"Error in FetchArray: \".concat(array.name, \" does not have the proper array size. Got \").concat(array.values.length, \", instead of \").concat(array.size));\n    }\n\n    done();\n  };\n}\n\nfunction handleString(array, compression, done) {\n  return function (string) {\n    if (compression) {\n      array.values = JSON.parse(pako__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inflate(string, {\n        to: 'string'\n      }));\n    } else {\n      array.values = JSON.parse(string);\n    }\n\n    done();\n  };\n}\n\nvar handlers = {\n  uint8array: handleUint8Array,\n  string: handleString\n};\n\nfunction removeLeadingSlash(str) {\n  return str[0] === '/' ? str.substr(1) : str;\n}\n\nfunction normalizePath(str) {\n  return new URL(str, 'http://any').pathname;\n}\n\nfunction cleanUpPath(str) {\n  return removeLeadingSlash(normalizePath(str));\n}\n\nfunction create(createOptions) {\n  var ready = false;\n  var requestCount = 0;\n  var zip = new (jszip__WEBPACK_IMPORTED_MODULE_0___default())();\n  var zipRoot = zip;\n  zip.loadAsync(createOptions.zipContent).then(function () {\n    ready = true; // Find root index.json\n\n    var metaFiles = [];\n    zip.forEach(function (relativePath, zipEntry) {\n      if (relativePath.indexOf('index.json') !== -1) {\n        metaFiles.push(relativePath);\n      }\n    });\n    metaFiles.sort(function (a, b) {\n      return a.length - b.length;\n    });\n    var fullRootPath = metaFiles[0].split('/');\n\n    while (fullRootPath.length > 1) {\n      var dirName = fullRootPath.shift();\n      zipRoot = zipRoot.folder(dirName);\n    }\n\n    if (createOptions.callback) {\n      createOptions.callback(zip);\n    }\n  });\n  return {\n    fetchArray: function fetchArray(instance, baseURL, array) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      return new Promise(function (resolve, reject) {\n        if (!ready) {\n          vtkErrorMacro('ERROR!!! zip not ready...');\n        }\n\n        var url = cleanUpPath([baseURL, array.ref.basepath, options.compression ? \"\".concat(array.ref.id, \".gz\") : array.ref.id].join('/'));\n\n        if (++requestCount === 1 && instance !== null && instance !== void 0 && instance.invokeBusy) {\n          instance.invokeBusy(true);\n        }\n\n        function doneCleanUp() {\n          // Done with the ref and work\n          delete array.ref;\n\n          if (--requestCount === 0 && instance !== null && instance !== void 0 && instance.invokeBusy) {\n            instance.invokeBusy(false);\n          }\n\n          if (instance !== null && instance !== void 0 && instance.modified) {\n            instance.modified();\n          }\n\n          resolve(array);\n        }\n\n        var asyncType = array.dataType === 'string' && !options.compression ? 'string' : 'uint8array';\n        var asyncCallback = handlers[asyncType](array, options.compression, doneCleanUp);\n        zipRoot.file(url).async(asyncType).then(asyncCallback);\n      });\n    },\n    fetchJSON: function fetchJSON(instance, url) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var path = cleanUpPath(url);\n\n      if (!ready) {\n        vtkErrorMacro('ERROR!!! zip not ready...');\n      }\n\n      if (options.compression) {\n        if (options.compression === 'gz') {\n          return zipRoot.file(path).async('uint8array').then(function (uint8array) {\n            var str = pako__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inflate(uint8array, {\n              to: 'string'\n            });\n            return Promise.resolve(JSON.parse(str));\n          });\n        }\n\n        return Promise.reject(new Error('Invalid compression'));\n      }\n\n      return zipRoot.file(path).async('string').then(function (str) {\n        return Promise.resolve(JSON.parse(str));\n      });\n    },\n    fetchText: function fetchText(instance, url) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var path = cleanUpPath(url);\n\n      if (!ready) {\n        vtkErrorMacro('ERROR!!! zip not ready...');\n      }\n\n      if (options.compression) {\n        if (options.compression === 'gz') {\n          return zipRoot.file(path).async('uint8array').then(function (uint8array) {\n            var str = pako__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inflate(uint8array, {\n              to: 'string'\n            });\n            return Promise.resolve(str);\n          });\n        }\n\n        return Promise.reject(new Error('Invalid compression'));\n      }\n\n      return zipRoot.file(path).async('string').then(function (str) {\n        return Promise.resolve(str);\n      });\n    },\n    fetchImage: function fetchImage(instance, url) {\n      var path = cleanUpPath(url);\n\n      if (!ready) {\n        vtkErrorMacro('ERROR!!! zip not ready...');\n      }\n\n      return new Promise(function (resolve, reject) {\n        var img = new Image();\n\n        img.onload = function () {\n          return resolve(img);\n        };\n\n        img.onerror = reject;\n        zipRoot.file(path).async('base64').then(function (str) {\n          img.src = \"data:image/\".concat(toMimeType(path), \";base64,\").concat(str);\n        });\n      });\n    },\n    fetchBinary: function fetchBinary(instance, url) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var path = cleanUpPath(url);\n\n      if (!ready) {\n        vtkErrorMacro('ERROR!!! zip not ready...');\n      }\n\n      if (options.compression) {\n        if (options.compression === 'gz') {\n          return zipRoot.file(path).then(function (data) {\n            var array = pako__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inflate(data).buffer;\n            return Promise.resolve(array);\n          });\n        }\n\n        return Promise.reject(new Error('Invalid compression'));\n      }\n\n      return zipRoot.file(path).async('arraybuffer').then(function (data) {\n        return Promise.resolve(data);\n      });\n    }\n  };\n}\n\nvar JSZipDataAccessHelper = {\n  create: create\n};\n(0,_DataAccessHelper_js__WEBPACK_IMPORTED_MODULE_5__.registerType)('zip', function (options) {\n  return JSZipDataAccessHelper.create(options);\n});\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js ***!
  \*******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ LiteHttpDataAccessHelper)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../Common/Core/Endian.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Endian.js\");\n/* harmony import */ var _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../Common/Core/DataArray/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js\");\n/* harmony import */ var _DataAccessHelper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../DataAccessHelper.js */ \"./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper.js\");\n\n\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro,\n    vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkDebugMacro;\n\nvar REJECT_COMPRESSION = function REJECT_COMPRESSION() {\n  vtkErrorMacro('LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead.');\n  return Promise.reject(new Error('LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead.'));\n};\n/* eslint-disable prefer-promise-reject-errors */\n\n\nvar requestCount = 0;\n\nfunction openAsyncXHR(method, url) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var xhr = new XMLHttpRequest();\n  xhr.open(method, url, true);\n\n  if (options.headers) {\n    Object.entries(options.headers).forEach(function (_ref) {\n      var _ref2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_ref, 2),\n          key = _ref2[0],\n          value = _ref2[1];\n\n      return xhr.setRequestHeader(key, value);\n    });\n  }\n\n  if (options.progressCallback) {\n    xhr.addEventListener('progress', options.progressCallback);\n  }\n\n  return xhr;\n}\n\nfunction fetchBinary(url) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return new Promise(function (resolve, reject) {\n    var xhr = openAsyncXHR('GET', url, options);\n\n    xhr.onreadystatechange = function (e) {\n      if (xhr.readyState === 4) {\n        if (xhr.status === 200 || xhr.status === 0) {\n          resolve(xhr.response);\n        } else {\n          reject({\n            xhr: xhr,\n            e: e\n          });\n        }\n      }\n    }; // Make request\n\n\n    xhr.responseType = 'arraybuffer';\n    xhr.send();\n  });\n}\n\nfunction fetchArray(instance, baseURL, array) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n  if (options && options.compression) {\n    return REJECT_COMPRESSION();\n  }\n\n  if (array.ref && !array.ref.pending) {\n    return new Promise(function (resolve, reject) {\n      var url = [baseURL, array.ref.basepath, array.ref.id].join('/');\n      var xhr = openAsyncXHR('GET', url, options);\n\n      xhr.onreadystatechange = function (e) {\n        if (xhr.readyState === 1) {\n          array.ref.pending = true;\n\n          if (++requestCount === 1 && instance !== null && instance !== void 0 && instance.invokeBusy) {\n            instance.invokeBusy(true);\n          }\n        }\n\n        if (xhr.readyState === 4) {\n          array.ref.pending = false;\n\n          if (xhr.status === 200 || xhr.status === 0) {\n            array.buffer = xhr.response;\n\n            if (array.ref.encode === 'JSON') {\n              array.values = JSON.parse(array.buffer);\n            } else {\n              if (_Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ENDIANNESS !== array.ref.encode && _Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ENDIANNESS) {\n                // Need to swap bytes\n                vtkDebugMacro(\"Swap bytes of \".concat(array.name));\n                _Common_Core_Endian_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].swapBytes(array.buffer, _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_3__.DataTypeByteSize[array.dataType]);\n              }\n\n              array.values = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newTypedArray(array.dataType, array.buffer);\n            }\n\n            if (array.values.length !== array.size) {\n              vtkErrorMacro(\"Error in FetchArray: \".concat(array.name, \", does not have the proper array size. Got \").concat(array.values.length, \", instead of \").concat(array.size));\n            } // Done with the ref and work\n\n\n            delete array.ref;\n\n            if (--requestCount === 0 && instance !== null && instance !== void 0 && instance.invokeBusy) {\n              instance.invokeBusy(false);\n            }\n\n            if (instance !== null && instance !== void 0 && instance.modified) {\n              instance.modified();\n            }\n\n            resolve(array);\n          } else {\n            reject({\n              xhr: xhr,\n              e: e\n            });\n          }\n        }\n      }; // Make request\n\n\n      xhr.responseType = array.dataType !== 'string' ? 'arraybuffer' : 'text';\n      xhr.send();\n    });\n  }\n\n  return Promise.resolve(array);\n} // ----------------------------------------------------------------------------\n\n\nfunction fetchJSON(instance, url) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (options && options.compression) {\n    return REJECT_COMPRESSION();\n  }\n\n  return new Promise(function (resolve, reject) {\n    var xhr = openAsyncXHR('GET', url, options);\n\n    xhr.onreadystatechange = function (e) {\n      if (xhr.readyState === 1) {\n        if (++requestCount === 1 && instance !== null && instance !== void 0 && instance.invokeBusy) {\n          instance.invokeBusy(true);\n        }\n      }\n\n      if (xhr.readyState === 4) {\n        if (--requestCount === 0 && instance !== null && instance !== void 0 && instance.invokeBusy) {\n          instance.invokeBusy(false);\n        }\n\n        if (xhr.status === 200 || xhr.status === 0) {\n          resolve(JSON.parse(xhr.responseText));\n        } else {\n          reject({\n            xhr: xhr,\n            e: e\n          });\n        }\n      }\n    }; // Make request\n\n\n    xhr.responseType = 'text';\n    xhr.send();\n  });\n} // ----------------------------------------------------------------------------\n\n\nfunction fetchText(instance, url) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (options && options.compression) {\n    return REJECT_COMPRESSION();\n  }\n\n  return new Promise(function (resolve, reject) {\n    var xhr = openAsyncXHR('GET', url, options);\n\n    xhr.onreadystatechange = function (e) {\n      if (xhr.readyState === 1) {\n        if (++requestCount === 1 && instance !== null && instance !== void 0 && instance.invokeBusy) {\n          instance.invokeBusy(true);\n        }\n      }\n\n      if (xhr.readyState === 4) {\n        if (--requestCount === 0 && instance !== null && instance !== void 0 && instance.invokeBusy) {\n          instance.invokeBusy(false);\n        }\n\n        if (xhr.status === 200 || xhr.status === 0) {\n          resolve(xhr.responseText);\n        } else {\n          reject({\n            xhr: xhr,\n            e: e\n          });\n        }\n      }\n    }; // Make request\n\n\n    xhr.responseType = 'text';\n    xhr.send();\n  });\n} // ----------------------------------------------------------------------------\n\n\nfunction fetchImage(instance, url) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  return new Promise(function (resolve, reject) {\n    var img = new Image();\n\n    if (options.crossOrigin) {\n      img.crossOrigin = options.crossOrigin;\n    }\n\n    img.onload = function () {\n      return resolve(img);\n    };\n\n    img.onerror = reject;\n    img.src = url;\n  });\n}\n/* eslint-enable prefer-promise-reject-errors */\n// ----------------------------------------------------------------------------\n\n\nvar LiteHttpDataAccessHelper = {\n  fetchArray: fetchArray,\n  fetchJSON: fetchJSON,\n  fetchText: fetchText,\n  fetchBinary: fetchBinary,\n  // Only for HTTP\n  fetchImage: fetchImage\n}; // The lite version should never override a full feature one...\n\nif (!(0,_DataAccessHelper_js__WEBPACK_IMPORTED_MODULE_4__.has)('http')) {\n  (0,_DataAccessHelper_js__WEBPACK_IMPORTED_MODULE_4__.registerType)('http', function (options) {\n    return LiteHttpDataAccessHelper;\n  });\n}\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/IO/XML/XMLPolyDataReader.js":
/*!******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/IO/XML/XMLPolyDataReader.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkXMLPolyDataReader$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Common/DataModel/PolyData.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js\");\n/* harmony import */ var _XMLReader_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./XMLReader.js */ \"./node_modules/@kitware/vtk.js/IO/XML/XMLReader.js\");\n\n\n\n\n// Global method\n// ----------------------------------------------------------------------------\n\nfunction handleArray(polydata, cellType, piece, compressor, byteOrder, headerType, binaryBuffer) {\n  var size = Number(piece.getAttribute(\"NumberOf\".concat(cellType)));\n\n  if (size > 0) {\n    var dataArrayElem = piece.getElementsByTagName(cellType)[0].getElementsByTagName('DataArray')[0];\n\n    var _vtkXMLReader$process = _XMLReader_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].processDataArray(size, dataArrayElem, compressor, byteOrder, headerType, binaryBuffer),\n        values = _vtkXMLReader$process.values,\n        numberOfComponents = _vtkXMLReader$process.numberOfComponents;\n\n    polydata[\"get\".concat(cellType)]().setData(values, numberOfComponents);\n  }\n\n  return size;\n} // ----------------------------------------------------------------------------\n\n\nfunction handleCells(polydata, cellType, piece, compressor, byteOrder, headerType, binaryBuffer) {\n  var size = Number(piece.getAttribute(\"NumberOf\".concat(cellType)));\n\n  if (size > 0) {\n    var values = _XMLReader_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].processCells(size, piece.getElementsByTagName(cellType)[0], compressor, byteOrder, headerType, binaryBuffer);\n    polydata[\"get\".concat(cellType)]().setData(values);\n  }\n\n  return size;\n} // ----------------------------------------------------------------------------\n// vtkXMLPolyDataReader methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkXMLPolyDataReader(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkXMLPolyDataReader');\n\n  publicAPI.parseXML = function (rootElem, type, compressor, byteOrder, headerType) {\n    var datasetElem = rootElem.getElementsByTagName(model.dataType)[0];\n    var pieces = datasetElem.getElementsByTagName('Piece');\n    var nbPieces = pieces.length;\n\n    var _loop = function _loop(outputIndex) {\n      // Create dataset\n      var polydata = _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n      var piece = pieces[outputIndex]; // Points\n\n      var nbPoints = handleArray(polydata, 'Points', piece, compressor, byteOrder, headerType, model.binaryBuffer); // Cells\n\n      var nbCells = 0;\n      ['Verts', 'Lines', 'Strips', 'Polys'].forEach(function (cellType) {\n        nbCells += handleCells(polydata, cellType, piece, compressor, byteOrder, headerType, model.binaryBuffer);\n      }); // Fill data\n\n      _XMLReader_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].processFieldData(nbPoints, piece.getElementsByTagName('PointData')[0], polydata.getPointData(), compressor, byteOrder, headerType, model.binaryBuffer);\n      _XMLReader_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].processFieldData(nbCells, piece.getElementsByTagName('CellData')[0], polydata.getCellData(), compressor, byteOrder, headerType, model.binaryBuffer); // Add new output\n\n      model.output[outputIndex] = polydata;\n    };\n\n    for (var outputIndex = 0; outputIndex < nbPieces; outputIndex++) {\n      _loop(outputIndex);\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  dataType: 'PolyData'\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  _XMLReader_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  vtkXMLPolyDataReader(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkXMLPolyDataReader'); // ----------------------------------------------------------------------------\n\nvar vtkXMLPolyDataReader$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/IO/XML/XMLPolyDataReader.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/IO/XML/XMLReader.js":
/*!**********************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/IO/XML/XMLReader.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkXMLReader$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"findAllTags\": () => (/* binding */ findAllTags),\n/* harmony export */   \"findFirstTag\": () => (/* binding */ findFirstTag)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var xmlbuilder2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! xmlbuilder2 */ \"./node_modules/xmlbuilder2/lib/xmlbuilder2.min.js\");\n/* harmony import */ var xmlbuilder2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(xmlbuilder2__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! pako */ \"./node_modules/pako/dist/pako.esm.mjs\");\n/* harmony import */ var _Core_DataAccessHelper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/DataAccessHelper.js */ \"./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper.js\");\n/* harmony import */ var _Common_Core_Base64_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Common/Core/Base64.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Base64.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Common/Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _Core_BinaryHelper_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Core/BinaryHelper.js */ \"./node_modules/@kitware/vtk.js/IO/Core/BinaryHelper.js\");\n/* harmony import */ var _Core_DataAccessHelper_LiteHttpDataAccessHelper_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Core/DataAccessHelper/LiteHttpDataAccessHelper.js */ \"./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js\");\n\n\n\n\n\n\n\n\n\n\n// import 'vtk.js/Sources/IO/Core/DataAccessHelper/HttpDataAccessHelper'; // HTTP + zip\n// import 'vtk.js/Sources/IO/Core/DataAccessHelper/HtmlDataAccessHelper'; // html + base64 + zip\n// import 'vtk.js/Sources/IO/Core/DataAccessHelper/JSZipDataAccessHelper'; // zip\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction findAllTags(node, tagName) {\n  return (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node.getElementsByTagName(tagName));\n}\nfunction findFirstTag(node, tagName) {\n  return findAllTags(node, tagName)[0];\n}\n\nfunction parseXML(xmlStr) {\n  // see xmlbuilder2 docs on the object format\n  return (0,xmlbuilder2__WEBPACK_IMPORTED_MODULE_1__.create)(xmlStr);\n}\n\nfunction extractAppendedData(buffer) {\n  // search for appended data tag\n  var prefixRegex = /^\\s*<AppendedData\\s+encoding=\"raw\">\\s*_/m;\n  var suffixRegex = /\\n\\s*<\\/AppendedData>/m;\n  return _Core_BinaryHelper_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].extractBinary(buffer, prefixRegex, suffixRegex);\n} // ----------------------------------------------------------------------------\n\n\nvar TYPED_ARRAY = {\n  Int8: Int8Array,\n  UInt8: Uint8Array,\n  Int16: Int16Array,\n  UInt16: Uint16Array,\n  Int32: Int32Array,\n  UInt32: Uint32Array,\n  Int64: Int32Array,\n  // Not supported with JavaScript will cause error in binary\n  UInt64: Uint32Array,\n  // Not supported with JavaScript will cause error in binary\n  Float32: Float32Array,\n  Float64: Float64Array\n}; // ----------------------------------------------------------------------------\n\nvar TYPED_ARRAY_BYTES = {\n  Int8: 1,\n  UInt8: 1,\n  Int16: 2,\n  UInt16: 2,\n  Int32: 4,\n  UInt32: 4,\n  Int64: 8,\n  // Not supported with JavaScript will cause error in binary\n  UInt64: 8,\n  // Not supported with JavaScript will cause error in binary\n  Float32: 4,\n  Float64: 8\n}; // ----------------------------------------------------------------------------\n\nfunction integer64to32(array) {\n  var maxIdx = array.length - 1; // Skip last\n\n  return array.filter(function (v, i) {\n    return i < maxIdx && i % 2 === 0;\n  });\n} // ----------------------------------------------------------------------------\n\n\nfunction readerHeader(uint8, headerType) {\n  // We do not handle endianness or if more than 32 bits are needed to encode the data\n  if (headerType === 'UInt64') {\n    var _offset = 8;\n\n    var _uint = new Uint32Array(uint8.buffer, 0, 6);\n\n    var _nbBlocks = _uint[0];\n    var _s = _uint[2];\n    var _s2 = _uint[4];\n    var _resultArray = [_offset, _nbBlocks, _s, _s2];\n    _uint = new Uint32Array(uint8.buffer, 3 * 8, _nbBlocks * 2);\n\n    for (var i = 0; i < _nbBlocks; i++) {\n      _resultArray.push(_uint[i * 2]);\n    }\n\n    return _resultArray;\n  } // UInt32\n\n\n  var uint32 = new Uint32Array(uint8.buffer, 0, 3);\n  var offset = 4;\n  var nbBlocks = uint32[0];\n  var s1 = uint32[1];\n  var s2 = uint32[2];\n  var resultArray = [offset, nbBlocks, s1, s2];\n  uint32 = new Uint32Array(uint8.buffer, 3 * 4, nbBlocks);\n\n  for (var _i = 0; _i < nbBlocks; _i++) {\n    resultArray.push(uint32[_i]);\n  }\n\n  return resultArray;\n} // ----------------------------------------------------------------------------\n\n\nfunction uncompressBlock(compressedUint8, output) {\n  var uncompressedBlock = pako__WEBPACK_IMPORTED_MODULE_2__[\"default\"].inflate(compressedUint8);\n  output.uint8.set(uncompressedBlock, output.offset);\n  output.offset += uncompressedBlock.length;\n} // ----------------------------------------------------------------------------\n\n\nfunction processDataArray(size, dataArrayElem, compressor, byteOrder, headerType, binaryBuffer) {\n  var dataType = dataArrayElem.getAttribute('type');\n  var name = dataArrayElem.getAttribute('Name');\n  var format = dataArrayElem.getAttribute('format'); // binary, ascii, appended\n\n  var numberOfComponents = Number(dataArrayElem.getAttribute('NumberOfComponents') || '1');\n  var values = null;\n\n  if (format === 'ascii') {\n    values = new TYPED_ARRAY[dataType](size * numberOfComponents);\n    var offset = 0;\n    dataArrayElem.firstChild.nodeValue.split(/[\\\\t \\\\n]+/).forEach(function (token) {\n      if (token.trim().length) {\n        values[offset++] = Number(token);\n      }\n    });\n  } else if (format === 'binary') {\n    var uint8 = new Uint8Array(_Common_Core_Base64_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].toArrayBuffer(dataArrayElem.firstChild.nodeValue.trim()));\n\n    if (compressor === 'vtkZLibDataCompressor') {\n      var buffer = new ArrayBuffer(TYPED_ARRAY_BYTES[dataType] * size * numberOfComponents);\n      values = new TYPED_ARRAY[dataType](buffer);\n      var output = {\n        offset: 0,\n        uint8: new Uint8Array(buffer)\n      }; // ----------------------------------------------------------------------\n      // Layout of the data\n      // header[N, s1, s1, blockSize1, ..., blockSizeN], [padding???], block[compressedData], ..., block[compressedData]\n      // [header] N, s1 and s2 are uint 32 or 64 (defined by header_type=\"UInt64\" attribute on the root node)\n      // [header] s1: uncompress size of each block except the last one\n      // [header] s2: uncompress size of the last blocks\n      // [header] blockSize: size of the block in compressed space that represent to bloc to inflate in zlib. (This also give the offset to the next block)\n      // ----------------------------------------------------------------------\n      // Header reading\n\n      var header = readerHeader(uint8, headerType);\n      var nbBlocks = header[1];\n\n      var _offset2 = uint8.length - (header.reduce(function (a, b) {\n        return a + b;\n      }, 0) - (header[0] + header[1] + header[2] + header[3]));\n\n      for (var i = 0; i < nbBlocks; i++) {\n        var blockSize = header[4 + i];\n        var compressedBlock = new Uint8Array(uint8.buffer, _offset2, blockSize);\n        uncompressBlock(compressedBlock, output);\n        _offset2 += blockSize;\n      } // Handle (u)int64 hoping for no overflow...\n\n\n      if (dataType.indexOf('Int64') !== -1) {\n        values = integer64to32(values);\n      }\n    } else {\n      values = new TYPED_ARRAY[dataType](uint8.buffer, TYPED_ARRAY_BYTES[headerType]); // Skip the count\n      // Handle (u)int64 hoping no overflow...\n\n      if (dataType.indexOf('Int64') !== -1) {\n        values = integer64to32(values);\n      }\n    }\n  } else if (format === 'appended') {\n    var _offset3 = Number(dataArrayElem.getAttribute('offset')); // read header\n    // NOTE: this will incorrectly read the size if headerType is (U)Int64 and\n    // the value requires (U)Int64.\n\n\n    var _header;\n\n    if (_offset3 % TYPED_ARRAY_BYTES[headerType] === 0) {\n      _header = new TYPED_ARRAY[headerType](binaryBuffer, _offset3, 1);\n    } else {\n      _header = new TYPED_ARRAY[headerType](binaryBuffer.slice(_offset3, _offset3 + TYPED_ARRAY_BYTES[headerType]));\n    }\n\n    var arraySize = _header[0] / TYPED_ARRAY_BYTES[dataType]; // if we are dealing with Uint64, we need to get double the values since\n    // TYPED_ARRAY[Uint64] is Uint32.\n\n    if (dataType.indexOf('Int64') !== -1) {\n      arraySize *= 2;\n    }\n\n    _offset3 += TYPED_ARRAY_BYTES[headerType]; // read values\n    // if offset is aligned to dataType, use view. Otherwise, slice due to misalignment.\n\n    if (_offset3 % TYPED_ARRAY_BYTES[dataType] === 0) {\n      values = new TYPED_ARRAY[dataType](binaryBuffer, _offset3, arraySize);\n    } else {\n      values = new TYPED_ARRAY[dataType](binaryBuffer.slice(_offset3, _offset3 + _header[0]));\n    } // remove higher order 32 bits assuming they're not used.\n\n\n    if (dataType.indexOf('Int64') !== -1) {\n      values = integer64to32(values);\n    }\n  } else {\n    console.error('Format not supported', format);\n  }\n\n  return {\n    name: name,\n    values: values,\n    numberOfComponents: numberOfComponents\n  };\n} // ----------------------------------------------------------------------------\n\n\nfunction processCells(size, containerElem, compressor, byteOrder, headerType, binaryBuffer) {\n  var arrayElems = {};\n  var dataArrayElems = containerElem.getElementsByTagName('DataArray');\n\n  for (var elIdx = 0; elIdx < dataArrayElems.length; elIdx++) {\n    var el = dataArrayElems[elIdx];\n    arrayElems[el.getAttribute('Name')] = el;\n  }\n\n  var offsets = processDataArray(size, arrayElems.offsets, compressor, byteOrder, headerType, binaryBuffer).values;\n  var connectivitySize = offsets[offsets.length - 1];\n  var connectivity = processDataArray(connectivitySize, arrayElems.connectivity, compressor, byteOrder, headerType, binaryBuffer).values;\n  var values = new Uint32Array(size + connectivitySize);\n  var writeOffset = 0;\n  var previousOffset = 0;\n  offsets.forEach(function (v) {\n    var cellSize = v - previousOffset;\n    values[writeOffset++] = cellSize;\n\n    for (var i = 0; i < cellSize; i++) {\n      values[writeOffset++] = connectivity[previousOffset + i];\n    } // save previous offset\n\n\n    previousOffset = v;\n  });\n  return values;\n} // ----------------------------------------------------------------------------\n\n\nfunction processFieldData(size, fieldElem, fieldContainer, compressor, byteOrder, headerType, binaryBuffer) {\n  if (fieldElem) {\n    var attributes = ['Scalars', 'Vectors', 'Normals', 'Tensors', 'TCoords'];\n    var nameBinding = {};\n    attributes.forEach(function (attrName) {\n      var arrayName = fieldElem.getAttribute(attrName);\n\n      if (arrayName) {\n        nameBinding[arrayName] = fieldContainer[\"set\".concat(attrName)];\n      }\n    });\n    var dataArrayElems = fieldElem.getElementsByTagName('DataArray');\n    var nbArrays = dataArrayElems.length;\n\n    for (var idx = 0; idx < nbArrays; idx++) {\n      var array = dataArrayElems[idx];\n      var dataArray = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance(processDataArray(size, array, compressor, byteOrder, headerType, binaryBuffer));\n      var name = dataArray.getName();\n      (nameBinding[name] || fieldContainer.addArray)(dataArray);\n    }\n  }\n} // ----------------------------------------------------------------------------\n\n\nfunction handleFieldDataArrays(fieldDataElem, compressor, byteOrder, headerType, binaryBuffer) {\n  return (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fieldDataElem.getElementsByTagName('DataArray')).map(function (daElem) {\n    return _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance(processDataArray(Number(daElem.getAttribute('NumberOfTuples')), daElem, compressor, byteOrder, headerType, binaryBuffer));\n  });\n} // ----------------------------------------------------------------------------\n// vtkXMLReader methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkXMLReader(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkXMLReader'); // Create default dataAccessHelper if not available\n\n  if (!model.dataAccessHelper) {\n    model.dataAccessHelper = _Core_DataAccessHelper_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].get('http');\n  } // Internal method to fetch Array\n\n\n  function fetchData(url) {\n    var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    return model.dataAccessHelper.fetchBinary(url, option);\n  } // Set DataSet url\n\n\n  publicAPI.setUrl = function (url) {\n    var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    model.url = url; // Remove the file in the URL\n\n    var path = url.split('/');\n    path.pop();\n    model.baseURL = path.join('/'); // Fetch metadata\n\n    return publicAPI.loadData(option);\n  }; // Fetch the actual data arrays\n\n\n  publicAPI.loadData = function () {\n    var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    return fetchData(model.url, option).then(publicAPI.parseAsArrayBuffer);\n  };\n\n  publicAPI.parseAsArrayBuffer = function (arrayBuffer) {\n    if (!arrayBuffer) {\n      return false;\n    }\n\n    if (arrayBuffer !== model.rawDataBuffer) {\n      publicAPI.modified();\n    } else {\n      return true;\n    }\n\n    var _extractAppendedData = extractAppendedData(arrayBuffer),\n        content = _extractAppendedData.text,\n        binaryBuffer = _extractAppendedData.binaryBuffer;\n\n    model.rawDataBuffer = arrayBuffer;\n    model.binaryBuffer = binaryBuffer; // Parse data here...\n\n    var doc = parseXML(content);\n    var rootElem = doc.root().node;\n    var type = rootElem.getAttribute('type');\n    var compressor = rootElem.getAttribute('compressor');\n    var byteOrder = rootElem.getAttribute('byte_order'); // default to UInt32. I think version 0.1 vtp/vti files default to UInt32.\n\n    var headerType = rootElem.getAttribute('header_type') || 'UInt32';\n\n    if (compressor && compressor !== 'vtkZLibDataCompressor') {\n      console.error('Invalid compressor', compressor);\n      return false;\n    }\n\n    if (byteOrder && byteOrder !== 'LittleEndian') {\n      console.error('Only LittleEndian encoding is supported');\n      return false;\n    }\n\n    if (type !== model.dataType) {\n      console.error('Invalid data type', type, 'expecting', model.dataType);\n      return false;\n    } // appended format\n\n\n    if (findFirstTag(rootElem, 'AppendedData')) {\n      var appendedDataElem = findFirstTag(rootElem, 'AppendedData');\n      var encoding = appendedDataElem.getAttribute('encoding');\n      var arrayElems = findAllTags(rootElem, 'DataArray');\n      var appendedBuffer = model.binaryBuffer;\n\n      if (encoding === 'base64') {\n        // substr(1) is to remove the '_' prefix\n        appendedBuffer = appendedDataElem.textContent.trim().substr(1);\n      } // get data array chunks\n\n\n      var dataArrays = [];\n\n      for (var i = 0; i < arrayElems.length; ++i) {\n        var offset = Number(arrayElems[i].getAttribute('offset'));\n        var nextOffset = 0;\n\n        if (i === arrayElems.length - 1) {\n          nextOffset = appendedBuffer.length || appendedBuffer.byteLength;\n        } else {\n          nextOffset = Number(arrayElems[i + 1].getAttribute('offset'));\n        }\n\n        if (encoding === 'base64') {\n          dataArrays.push(new Uint8Array(_Common_Core_Base64_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].toArrayBuffer(appendedBuffer.substring(offset, nextOffset))));\n        } else {\n          // encoding === 'raw'\n          // Need to slice the ArrayBuffer so readerHeader() works properly\n          dataArrays.push(new Uint8Array(appendedBuffer.slice(offset, nextOffset)));\n        }\n      }\n\n      if (compressor === 'vtkZLibDataCompressor') {\n        for (var arrayidx = 0; arrayidx < dataArrays.length; ++arrayidx) {\n          var dataArray = dataArrays[arrayidx]; // Header reading\n          // Refer to processDataArray() above for info on header fields\n\n          var header = readerHeader(dataArray, headerType);\n          var nbBlocks = header[1];\n          var compressedOffset = dataArray.length - (header.reduce(function (a, b) {\n            return a + b;\n          }, 0) - (header[0] + header[1] + header[2] + header[3]));\n          var _buffer = null;\n\n          if (nbBlocks > 0) {\n            // If the last block's size is labeled as 0, that means the last block\n            // really has size header[2].\n            if (header[3] === 0) {\n              _buffer = new ArrayBuffer(header[2] * nbBlocks);\n            } else {\n              _buffer = new ArrayBuffer(header[2] * (nbBlocks - 1) + header[3]);\n            }\n          } else {\n            // if there is no blocks, then default to a zero array of size 0.\n            _buffer = new ArrayBuffer(0);\n          } // uncompressed buffer\n\n\n          var uncompressed = new Uint8Array(_buffer);\n          var output = {\n            offset: 0,\n            uint8: uncompressed\n          };\n\n          for (var _i2 = 0; _i2 < nbBlocks; _i2++) {\n            var blockSize = header[4 + _i2];\n            var compressedBlock = new Uint8Array(dataArray.buffer, compressedOffset, blockSize);\n            uncompressBlock(compressedBlock, output);\n            compressedOffset += blockSize;\n          }\n\n          var data = new Uint8Array(uncompressed.length + TYPED_ARRAY_BYTES[headerType]); // set length header\n          // TODO this does not work for lengths that are greater than the max Uint32 value.\n\n          new TYPED_ARRAY[headerType](data.buffer, 0, 1)[0] = uncompressed.length;\n          data.set(uncompressed, TYPED_ARRAY_BYTES[headerType]);\n          dataArrays[arrayidx] = data;\n        }\n      }\n\n      var bufferLength = dataArrays.reduce(function (acc, arr) {\n        return acc + arr.length;\n      }, 0);\n      var buffer = new ArrayBuffer(bufferLength);\n      var view = new Uint8Array(buffer);\n\n      for (var _i3 = 0, _offset4 = 0; _i3 < dataArrays.length; ++_i3) {\n        // set correct offsets\n        arrayElems[_i3].setAttribute('offset', _offset4); // set final buffer data\n\n\n        view.set(dataArrays[_i3], _offset4);\n        _offset4 += dataArrays[_i3].length;\n      }\n\n      model.binaryBuffer = buffer;\n\n      if (!model.binaryBuffer) {\n        console.error('Processing appended data format: requires binaryBuffer to parse');\n        return false;\n      }\n    }\n\n    publicAPI.parseXML(rootElem, type, compressor, byteOrder, headerType);\n    var datasetElem = rootElem.getElementsByTagName(type)[0];\n    var fieldDataElem = datasetElem.getElementsByTagName('FieldData')[0];\n\n    if (fieldDataElem) {\n      var fieldDataArrays = handleFieldDataArrays(fieldDataElem, compressor, byteOrder, headerType, model.binaryBuffer);\n\n      for (var _i4 = 0; _i4 < model.output.length; _i4++) {\n        var fieldData = model.output[_i4].getFieldData();\n\n        for (var j = 0; j < fieldDataArrays.length; j++) {\n          fieldData.addArray(fieldDataArrays[j]);\n        }\n      }\n    }\n\n    return true;\n  };\n\n  publicAPI.requestData = function (inData, outData) {\n    publicAPI.parseAsArrayBuffer(model.rawDataBuffer);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {// baseURL: null,\n  // dataAccessHelper: null,\n  // url: null,\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get(publicAPI, model, ['url', 'baseURL']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].setGet(publicAPI, model, ['dataAccessHelper']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].algo(publicAPI, model, 0, 1); // vtkXMLReader methods\n\n  vtkXMLReader(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar vtkXMLReader$1 = {\n  extend: extend,\n  processDataArray: processDataArray,\n  processFieldData: processFieldData,\n  processCells: processCells\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/IO/XML/XMLReader.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Interaction/Style/InteractorStyleTrackballCamera.js":
/*!******************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Interaction/Style/InteractorStyleTrackballCamera.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkInteractorStyleTrackballCamera$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Rendering_Core_InteractorStyle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Rendering/Core/InteractorStyle.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/InteractorStyle.js\");\n/* harmony import */ var _Rendering_Core_InteractorStyle_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Rendering/Core/InteractorStyle/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/InteractorStyle/Constants.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Rendering_Core_RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Rendering/Core/RenderWindowInteractor/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor/Constants.js\");\n\n\n\n\n\n\nvar States = _Rendering_Core_InteractorStyle_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].States;\n/* eslint-disable no-lonely-if */\n// ----------------------------------------------------------------------------\n// vtkInteractorStyleTrackballCamera methods\n// ----------------------------------------------------------------------------\n\nfunction vtkInteractorStyleTrackballCamera(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkInteractorStyleTrackballCamera'); // Public API methods\n\n  publicAPI.handleMouseMove = function (callData) {\n    var pos = callData.position;\n    var renderer = callData.pokedRenderer;\n\n    switch (model.state) {\n      case States.IS_ROTATE:\n        publicAPI.handleMouseRotate(renderer, pos);\n        publicAPI.invokeInteractionEvent({\n          type: 'InteractionEvent'\n        });\n        break;\n\n      case States.IS_PAN:\n        publicAPI.handleMousePan(renderer, pos);\n        publicAPI.invokeInteractionEvent({\n          type: 'InteractionEvent'\n        });\n        break;\n\n      case States.IS_DOLLY:\n        publicAPI.handleMouseDolly(renderer, pos);\n        publicAPI.invokeInteractionEvent({\n          type: 'InteractionEvent'\n        });\n        break;\n\n      case States.IS_SPIN:\n        publicAPI.handleMouseSpin(renderer, pos);\n        publicAPI.invokeInteractionEvent({\n          type: 'InteractionEvent'\n        });\n        break;\n    }\n\n    model.previousPosition = pos;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handleButton3D = function (ed) {\n    if (ed && ed.pressed && ed.device === _Rendering_Core_RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_4__.Device.RightController && (ed.input === _Rendering_Core_RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_4__.Input.Trigger || ed.input === _Rendering_Core_RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_4__.Input.TrackPad)) {\n      publicAPI.startCameraPose();\n      return;\n    }\n\n    if (ed && !ed.pressed && ed.device === _Rendering_Core_RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_4__.Device.RightController && (ed.input === _Rendering_Core_RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_4__.Input.Trigger || ed.input === _Rendering_Core_RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_4__.Input.TrackPad) && model.state === States.IS_CAMERA_POSE) {\n      publicAPI.endCameraPose(); // return;\n    }\n  };\n\n  publicAPI.handleMove3D = function (ed) {\n    switch (model.state) {\n      case States.IS_CAMERA_POSE:\n        publicAPI.updateCameraPose(ed);\n        break;\n    }\n  };\n\n  publicAPI.updateCameraPose = function (ed) {\n    // move the world in the direction of the\n    // controller\n    var camera = ed.pokedRenderer.getActiveCamera();\n    var oldTrans = camera.getPhysicalTranslation(); // look at the y axis to determine how fast / what direction to move\n\n    var speed = 0.5; // ed.gamepad.axes[1];\n    // 0.05 meters / frame movement\n\n    var pscale = speed * 0.05 * camera.getPhysicalScale(); // convert orientation to world coordinate direction\n\n    var dir = camera.physicalOrientationToWorldDirection([ed.orientation.x, ed.orientation.y, ed.orientation.z, ed.orientation.w]);\n    camera.setPhysicalTranslation(oldTrans[0] + dir[0] * pscale, oldTrans[1] + dir[1] * pscale, oldTrans[2] + dir[2] * pscale);\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handleLeftButtonPress = function (callData) {\n    var pos = callData.position;\n    model.previousPosition = pos;\n\n    if (callData.shiftKey) {\n      if (callData.controlKey || callData.altKey) {\n        publicAPI.startDolly();\n      } else {\n        publicAPI.startPan();\n      }\n    } else {\n      if (callData.controlKey || callData.altKey) {\n        publicAPI.startSpin();\n      } else {\n        publicAPI.startRotate();\n      }\n    }\n  }; //--------------------------------------------------------------------------\n\n\n  publicAPI.handleLeftButtonRelease = function () {\n    switch (model.state) {\n      case States.IS_DOLLY:\n        publicAPI.endDolly();\n        break;\n\n      case States.IS_PAN:\n        publicAPI.endPan();\n        break;\n\n      case States.IS_SPIN:\n        publicAPI.endSpin();\n        break;\n\n      case States.IS_ROTATE:\n        publicAPI.endRotate();\n        break;\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handleStartMouseWheel = function (callData) {\n    publicAPI.startDolly();\n    publicAPI.handleMouseWheel(callData);\n  }; //--------------------------------------------------------------------------\n\n\n  publicAPI.handleEndMouseWheel = function () {\n    publicAPI.endDolly();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handleStartPinch = function (callData) {\n    model.previousScale = callData.scale;\n    publicAPI.startDolly();\n  }; //--------------------------------------------------------------------------\n\n\n  publicAPI.handleEndPinch = function () {\n    publicAPI.endDolly();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handleStartRotate = function (callData) {\n    model.previousRotation = callData.rotation;\n    publicAPI.startRotate();\n  }; //--------------------------------------------------------------------------\n\n\n  publicAPI.handleEndRotate = function () {\n    publicAPI.endRotate();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handleStartPan = function (callData) {\n    model.previousTranslation = callData.translation;\n    publicAPI.startPan();\n  }; //--------------------------------------------------------------------------\n\n\n  publicAPI.handleEndPan = function () {\n    publicAPI.endPan();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handlePinch = function (callData) {\n    publicAPI.dollyByFactor(callData.pokedRenderer, callData.scale / model.previousScale);\n    model.previousScale = callData.scale;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handlePan = function (callData) {\n    var camera = callData.pokedRenderer.getActiveCamera(); // Calculate the focal depth since we'll be using it a lot\n\n    var viewFocus = camera.getFocalPoint();\n    viewFocus = publicAPI.computeWorldToDisplay(callData.pokedRenderer, viewFocus[0], viewFocus[1], viewFocus[2]);\n    var focalDepth = viewFocus[2];\n    var trans = callData.translation;\n    var lastTrans = model.previousTranslation;\n    var newPickPoint = publicAPI.computeDisplayToWorld(callData.pokedRenderer, viewFocus[0] + trans[0] - lastTrans[0], viewFocus[1] + trans[1] - lastTrans[1], focalDepth); // Has to recalc old mouse point since the viewport has moved,\n    // so can't move it outside the loop\n\n    var oldPickPoint = publicAPI.computeDisplayToWorld(callData.pokedRenderer, viewFocus[0], viewFocus[1], focalDepth); // Camera motion is reversed\n\n    var motionVector = [];\n    motionVector[0] = oldPickPoint[0] - newPickPoint[0];\n    motionVector[1] = oldPickPoint[1] - newPickPoint[1];\n    motionVector[2] = oldPickPoint[2] - newPickPoint[2];\n    viewFocus = camera.getFocalPoint();\n    var viewPoint = camera.getPosition();\n    camera.setFocalPoint(motionVector[0] + viewFocus[0], motionVector[1] + viewFocus[1], motionVector[2] + viewFocus[2]);\n    camera.setPosition(motionVector[0] + viewPoint[0], motionVector[1] + viewPoint[1], motionVector[2] + viewPoint[2]);\n\n    if (model._interactor.getLightFollowCamera()) {\n      callData.pokedRenderer.updateLightsGeometryToFollowCamera();\n    }\n\n    camera.orthogonalizeViewUp();\n    model.previousTranslation = callData.translation;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handleRotate = function (callData) {\n    var camera = callData.pokedRenderer.getActiveCamera();\n    camera.roll(callData.rotation - model.previousRotation);\n    camera.orthogonalizeViewUp();\n    model.previousRotation = callData.rotation;\n  }; //--------------------------------------------------------------------------\n\n\n  publicAPI.handleMouseRotate = function (renderer, position) {\n    var rwi = model._interactor;\n    var dx = position.x - model.previousPosition.x;\n    var dy = position.y - model.previousPosition.y;\n    var size = rwi.getView().getViewportSize(renderer);\n    var deltaElevation = -0.1;\n    var deltaAzimuth = -0.1;\n\n    if (size[0] && size[1]) {\n      deltaElevation = -20.0 / size[1];\n      deltaAzimuth = -20.0 / size[0];\n    }\n\n    var rxf = dx * deltaAzimuth * model.motionFactor;\n    var ryf = dy * deltaElevation * model.motionFactor;\n    var camera = renderer.getActiveCamera();\n\n    if (!Number.isNaN(rxf) && !Number.isNaN(ryf)) {\n      camera.azimuth(rxf);\n      camera.elevation(ryf);\n      camera.orthogonalizeViewUp();\n    }\n\n    if (model.autoAdjustCameraClippingRange) {\n      renderer.resetCameraClippingRange();\n    }\n\n    if (rwi.getLightFollowCamera()) {\n      renderer.updateLightsGeometryToFollowCamera();\n    }\n  }; //--------------------------------------------------------------------------\n\n\n  publicAPI.handleMouseSpin = function (renderer, position) {\n    var rwi = model._interactor;\n    var camera = renderer.getActiveCamera();\n    var center = rwi.getView().getViewportCenter(renderer);\n    var oldAngle = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.A)(Math.atan2(model.previousPosition.y - center[1], model.previousPosition.x - center[0]));\n    var newAngle = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.A)(Math.atan2(position.y - center[1], position.x - center[0])) - oldAngle;\n\n    if (!Number.isNaN(newAngle)) {\n      camera.roll(newAngle);\n      camera.orthogonalizeViewUp();\n    }\n  }; //--------------------------------------------------------------------------\n\n\n  publicAPI.handleMousePan = function (renderer, position) {\n    var camera = renderer.getActiveCamera(); // Calculate the focal depth since we'll be using it a lot\n\n    var viewFocus = camera.getFocalPoint();\n    viewFocus = publicAPI.computeWorldToDisplay(renderer, viewFocus[0], viewFocus[1], viewFocus[2]);\n    var focalDepth = viewFocus[2];\n    var newPickPoint = publicAPI.computeDisplayToWorld(renderer, position.x, position.y, focalDepth); // Has to recalc old mouse point since the viewport has moved,\n    // so can't move it outside the loop\n\n    var oldPickPoint = publicAPI.computeDisplayToWorld(renderer, model.previousPosition.x, model.previousPosition.y, focalDepth); // Camera motion is reversed\n\n    var motionVector = [];\n    motionVector[0] = oldPickPoint[0] - newPickPoint[0];\n    motionVector[1] = oldPickPoint[1] - newPickPoint[1];\n    motionVector[2] = oldPickPoint[2] - newPickPoint[2];\n    viewFocus = camera.getFocalPoint();\n    var viewPoint = camera.getPosition();\n    camera.setFocalPoint(motionVector[0] + viewFocus[0], motionVector[1] + viewFocus[1], motionVector[2] + viewFocus[2]);\n    camera.setPosition(motionVector[0] + viewPoint[0], motionVector[1] + viewPoint[1], motionVector[2] + viewPoint[2]);\n\n    if (model._interactor.getLightFollowCamera()) {\n      renderer.updateLightsGeometryToFollowCamera();\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handleMouseDolly = function (renderer, position) {\n    var dy = position.y - model.previousPosition.y;\n    var rwi = model._interactor;\n    var center = rwi.getView().getViewportCenter(renderer);\n    var dyf = model.motionFactor * dy / center[1];\n    publicAPI.dollyByFactor(renderer, Math.pow(1.1, dyf));\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.handleMouseWheel = function (callData) {\n    var dyf = 1 - callData.spinY / model.zoomFactor;\n    publicAPI.dollyByFactor(callData.pokedRenderer, dyf);\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.dollyByFactor = function (renderer, factor) {\n    if (Number.isNaN(factor)) {\n      return;\n    }\n\n    var camera = renderer.getActiveCamera();\n\n    if (camera.getParallelProjection()) {\n      camera.setParallelScale(camera.getParallelScale() / factor);\n    } else {\n      camera.dolly(factor);\n\n      if (model.autoAdjustCameraClippingRange) {\n        renderer.resetCameraClippingRange();\n      }\n    }\n\n    if (model._interactor.getLightFollowCamera()) {\n      renderer.updateLightsGeometryToFollowCamera();\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  motionFactor: 10.0,\n  zoomFactor: 10.0\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _Rendering_Core_InteractorStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues); // Create get-set macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['motionFactor', 'zoomFactor']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkInteractorStyleTrackballCamera(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkInteractorStyleTrackballCamera'); // ----------------------------------------------------------------------------\n\nvar vtkInteractorStyleTrackballCamera$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Interaction/Style/InteractorStyleTrackballCamera.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Interaction/UI/FPSMonitor.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Interaction/UI/FPSMonitor.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkFPSMonitor$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FPSMonitor/FPSMonitor.module.css.js */ \"./node_modules/@kitware/vtk.js/Interaction/UI/FPSMonitor/FPSMonitor.module.css.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar noOp = Function.prototype;\n\nfunction formatNumbers(n) {\n  var sections = [];\n  var size = n;\n\n  while (size > 1000) {\n    sections.push(\"000\".concat(size % 1000).slice(-3));\n    size = Math.floor(size / 1000);\n  }\n\n  if (size > 0) {\n    sections.push(size);\n  }\n\n  sections.reverse();\n  return sections.join(\"'\");\n} // ----------------------------------------------------------------------------\n// vtkFPSMonitor methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkFPSMonitor(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkFPSMonitor');\n  model.fpsMonitorContainer = document.createElement('div');\n  model.fpsMonitorContainer.setAttribute('class', model.orientationClass);\n  model.fpsMonitorContainer.innerHTML = \"\\n    <div class=\\\"\".concat(_FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.leftPane, \"\\\">\\n      <div class=\\\"js-title \").concat(_FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.title, \"\\\">Mean N/A - Current N/A</div>\\n      <canvas class=\\\"js-graph \").concat(_FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.graph, \"\\\"></canvas>\\n    </div>\\n    <div class=\\\"js-info \").concat(_FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.rightPane, \"\\\">\\n    </div>\"); // Extract various containers\n\n  model.canvas = model.fpsMonitorContainer.querySelector('.js-graph');\n  model.title = model.fpsMonitorContainer.querySelector('.js-title');\n  model.info = model.fpsMonitorContainer.querySelector('.js-info'); // --------------------------------------------------------------------------\n  // Private methods\n  // --------------------------------------------------------------------------\n\n  function renderTitle() {\n    model.title.style.display = model.titleVisibility ? 'block' : 'none';\n\n    if (!model.titleVisibility) {\n      return;\n    }\n\n    var nextFPS = model.buffer[model.buffer.length - 1];\n    var newTxt = \"Mean: \".concat(Math.round(model.fpsSum / model.buffer.length), \" - Current: \").concat(Math.round(nextFPS));\n\n    if (newTxt !== model.lastText) {\n      model.lastText = newTxt;\n      model.title.innerHTML = newTxt;\n    }\n  }\n\n  function renderInfo() {\n    model.info.style.display = model.infoVisibility ? 'grid' : 'none';\n\n    if (!model.infoVisibility) {\n      return;\n    }\n\n    var infoItems = [];\n\n    if (model.renderWindow) {\n      var realView = model.renderWindow.getViews()[0];\n\n      if (realView && realView.getSize) {\n        infoItems.push(\"<label class=\\\"\".concat(_FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.label, \"\\\">Resolution</label><span class=\\\"\").concat(_FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.value, \"\\\">\").concat(realView.getSize().join('x'), \"</span>\"));\n      }\n\n      var stats = _objectSpread(_objectSpread({}, model.renderWindow.getStatistics()), model.addOnStats);\n\n      var keys = Object.keys(stats);\n      keys.sort();\n\n      for (var i = 0; i < keys.length; i++) {\n        if (keys[i] === 'str') {\n          continue; // eslint-disable-line\n        }\n\n        if (stats[keys[i]]) {\n          infoItems.push(\"<label class=\\\"\".concat(_FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.label, \"\\\">\").concat(keys[i], \"</label><span class=\\\"\").concat(_FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.value, \"\\\">\").concat(formatNumbers(stats[keys[i]]), \"</span>\"));\n        }\n      }\n    }\n\n    model.info.innerHTML = infoItems.join('');\n  }\n\n  function renderCanvas() {\n    model.canvas.style.display = model.canvasVisibility ? 'block' : 'none';\n\n    if (!model.canvasVisibility) {\n      return;\n    } // Although this is called frequently, setting an attribute to the same value is a no-op\n\n\n    model.canvas.setAttribute('width', model.bufferSize);\n    model.canvas.setAttribute('height', model.graphHeight);\n    var ctx = model.canvas.getContext('2d');\n    var _model$canvas = model.canvas,\n        width = _model$canvas.width,\n        height = _model$canvas.height;\n    ctx.clearRect(0, 0, width, height); // Current fps\n\n    ctx.strokeStyle = 'green';\n    ctx.beginPath();\n    ctx.moveTo(0, height - model.buffer[0]);\n\n    for (var i = 1; i < model.buffer.length; i++) {\n      ctx.lineTo(i, height - model.buffer[i]);\n    }\n\n    ctx.stroke(); // 60 fps ref\n\n    ctx.strokeStyle = 'black';\n    ctx.beginPath();\n    ctx.moveTo(0, height - 60);\n    ctx.lineTo(width, height - 60);\n    ctx.stroke();\n  }\n\n  function frameChanged() {\n    if (!model.interactor) {\n      return;\n    }\n\n    var nextFPS = 1 / model.interactor.getLastFrameTime();\n    model.buffer.push(nextFPS);\n    model.fpsSum += nextFPS;\n\n    while (model.buffer.length > model.bufferSize) {\n      model.fpsSum -= model.buffer.shift();\n    }\n\n    renderTitle();\n    renderCanvas();\n  } // --------------------------------------------------------------------------\n  // Public methods\n  // --------------------------------------------------------------------------\n\n\n  publicAPI.update = function () {\n    publicAPI.render();\n  }; // --------------------------------------------------------------------------\n\n\n  publicAPI.setRenderWindow = function (rw) {\n    while (model.subscriptions.length) {\n      model.subscriptions.pop().unsubscribe();\n    }\n\n    model.renderWindow = rw;\n    model.interactor = rw ? rw.getInteractor() : null;\n\n    if (model.interactor) {\n      model.subscriptions.push(model.interactor.onAnimation(frameChanged));\n    }\n  }; // --------------------------------------------------------------------------\n\n\n  publicAPI.setContainer = function (el) {\n    if (model.container && model.container !== el) {\n      model.container.removeChild(model.fpsMonitorContainer);\n    }\n\n    if (model.container !== el) {\n      model.container = el;\n\n      if (model.container) {\n        model.container.appendChild(model.fpsMonitorContainer);\n        publicAPI.resize();\n      }\n\n      publicAPI.modified();\n    }\n  }; // --------------------------------------------------------------------------\n\n\n  publicAPI.render = function () {\n    renderTitle();\n    renderInfo();\n    renderCanvas();\n  }; // --------------------------------------------------------------------------\n\n\n  publicAPI.resize = noOp; // --------------------------------------------------------------------------\n\n  publicAPI.setOrientationToHorizontal = function () {\n    model.fpsMonitorContainer.classList.remove(model.orientationClass);\n    model.orientationClass = _FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.horizontalContainer;\n    model.fpsMonitorContainer.classList.add(model.orientationClass);\n  }; // --------------------------------------------------------------------------\n\n\n  publicAPI.setOrientationToVertical = function () {\n    model.fpsMonitorContainer.classList.remove(model.orientationClass);\n    model.orientationClass = _FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.verticalContainer;\n    model.fpsMonitorContainer.classList.add(model.orientationClass);\n  }; // --------------------------------------------------------------------------\n\n\n  publicAPI.setOrientation = function () {\n    var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'horizontal';\n\n    if (mode === 'horizontal') {\n      publicAPI.setOrientationToHorizontal();\n    } else {\n      publicAPI.setOrientationToVertical();\n    }\n  }; // --------------------------------------------------------------------------\n\n\n  publicAPI.setAddOnStats = function (addOn) {\n    if (!model.addOnStats) {\n      model.addOnStats = {};\n    }\n\n    Object.assign(model.addOnStats, addOn);\n    renderInfo();\n  }; // --------------------------------------------------------------------------\n\n\n  publicAPI.setMonitorVisibility = function () {\n    var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    var graph = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    var info = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    publicAPI.setCanvasVisibility(graph);\n    publicAPI.setInfoVisibility(info);\n    publicAPI.setTitleVisibility(title);\n  }; // --------------------------------------------------------------------------\n\n\n  var superDelete = publicAPI.delete;\n\n  publicAPI.delete = function () {\n    publicAPI.setRenderWindow(null);\n    publicAPI.setContainer(null);\n    superDelete();\n  }; // --------------------------------------------------------------------------\n\n\n  model.subscriptions.push(publicAPI.onModified(publicAPI.update));\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  bufferSize: 200,\n  graphHeight: 120,\n  buffer: [60],\n  subscriptions: [],\n  fpsSum: 0,\n  orientationClass: _FPSMonitor_FPSMonitor_module_css_js__WEBPACK_IMPORTED_MODULE_2__.s.horizontalContainer,\n  canvasVisibility: true,\n  titleVisibility: true,\n  infoVisibility: true\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['fpsMonitorContainer', 'renderWindow', 'addOnStats']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['bufferSize', 'canvasVisibility', 'infoVisibility', 'titleVisibility']); // Object specific methods\n\n  vtkFPSMonitor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkFPSMonitor'); // ----------------------------------------------------------------------------\n\nvar vtkFPSMonitor$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Interaction/UI/FPSMonitor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Interaction/UI/FPSMonitor/FPSMonitor.module.css.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Interaction/UI/FPSMonitor/FPSMonitor.module.css.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"s\": () => (/* binding */ style)\n/* harmony export */ });\n/* harmony import */ var _vendor_style_inject_dist_style_inject_es_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../vendor/style-inject/dist/style-inject.es.js */ \"./node_modules/@kitware/vtk.js/vendor/style-inject/dist/style-inject.es.js\");\n\n\nvar css_248z = \".FPSMonitor-module_verticalContainer__1oES5 {\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: flex-start;\\n  align-items: stretch;\\n}\\n\\n.FPSMonitor-module_horizontalContainer__3dO_q {\\n  display: flex;\\n  flex-direction: row;\\n  justify-content: flex-start;\\n}\\n\\n.FPSMonitor-module_leftPane__3PHsp {\\n  flex: none;\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: flex-start;\\n  align-items: stretch;\\n}\\n\\n.FPSMonitor-module_rightPane__30Een {\\n  flex: 1;\\n  display: grid;\\n  grid-template-columns: auto auto;\\n  grid-auto-rows: 1.5em;\\n  grid-column-gap: 5px;\\n  grid-row-gap: 2px;\\n  padding: 10px;\\n}\\n\\n.FPSMonitor-module_title__3a5vQ {\\n  flex: 1;\\n  font-weight: bold;\\n  padding: 5px 10px 0 10px;\\n}\\n\\n.FPSMonitor-module_graph__lvtIQ {\\n  flex: none;\\n  border: solid 1px black;\\n  margin: 10px ;\\n  border-radius: 2px;\\n  overflow: hidden;\\n}\\n\\n.FPSMonitor-module_label__3saqc {\\n  font-weight: bold;\\n  text-transform: capitalize;\\n  text-align: right;\\n  align-self: center;\\n}\\n\\n.FPSMonitor-module_value__2WrfF {\\n  font-style: italic;\\n  text-align: center;\\n  align-self: center;\\n}\\n\";\nvar style = {\"verticalContainer\":\"FPSMonitor-module_verticalContainer__1oES5\",\"horizontalContainer\":\"FPSMonitor-module_horizontalContainer__3dO_q\",\"leftPane\":\"FPSMonitor-module_leftPane__3PHsp\",\"rightPane\":\"FPSMonitor-module_rightPane__30Een\",\"title\":\"FPSMonitor-module_title__3a5vQ\",\"graph\":\"FPSMonitor-module_graph__lvtIQ\",\"label\":\"FPSMonitor-module_label__3saqc\",\"value\":\"FPSMonitor-module_value__2WrfF\"};\n(0,_vendor_style_inject_dist_style_inject_es_js__WEBPACK_IMPORTED_MODULE_0__.s)(css_248z);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Interaction/UI/FPSMonitor/FPSMonitor.module.css.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkAbstractMapper$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n// vtkAbstractMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkAbstractMapper(publicAPI, model) {\n  model.classHierarchy.push('vtkAbstractMapper');\n\n  publicAPI.update = function () {\n    publicAPI.getInputData();\n  };\n\n  publicAPI.addClippingPlane = function (plane) {\n    if (!plane.isA('vtkPlane')) {\n      return false;\n    }\n\n    if (!model.clippingPlanes.includes(plane)) {\n      model.clippingPlanes.push(plane);\n      publicAPI.modified();\n      return true;\n    }\n\n    return false;\n  };\n\n  publicAPI.getNumberOfClippingPlanes = function () {\n    return model.clippingPlanes.length;\n  };\n\n  publicAPI.removeAllClippingPlanes = function () {\n    model.clippingPlanes.length = 0;\n  };\n\n  publicAPI.removeClippingPlane = function (clippingPlane) {\n    var i = model.clippingPlanes.indexOf(clippingPlane);\n\n    if (i === -1) {\n      return false;\n    }\n\n    model.clippingPlanes.splice(i, 1);\n    publicAPI.modified();\n    return true;\n  };\n\n  publicAPI.getClippingPlanes = function () {\n    return model.clippingPlanes;\n  };\n\n  publicAPI.setClippingPlanes = function (planes) {\n    if (!planes) {\n      return;\n    }\n\n    if (!Array.isArray(planes)) {\n      publicAPI.addClippingPlane(planes);\n    } else {\n      var nbPlanes = planes.length;\n\n      for (var i = 0; i < nbPlanes && i < 6; i++) {\n        publicAPI.addClippingPlane(planes[i]);\n      }\n    }\n  };\n\n  publicAPI.getClippingPlaneInDataCoords = function (propMatrix, i, hnormal) {\n    var clipPlanes = model.clippingPlanes;\n    var mat = propMatrix;\n\n    if (clipPlanes) {\n      var n = clipPlanes.length;\n\n      if (i >= 0 && i < n) {\n        // Get the plane\n        var plane = clipPlanes[i];\n        var normal = plane.getNormal();\n        var origin = plane.getOrigin(); // Compute the plane equation\n\n        var v1 = normal[0];\n        var v2 = normal[1];\n        var v3 = normal[2];\n        var v4 = -(v1 * origin[0] + v2 * origin[1] + v3 * origin[2]); // Transform normal from world to data coords\n\n        hnormal[0] = v1 * mat[0] + v2 * mat[4] + v3 * mat[8] + v4 * mat[12];\n        hnormal[1] = v1 * mat[1] + v2 * mat[5] + v3 * mat[9] + v4 * mat[13];\n        hnormal[2] = v1 * mat[2] + v2 * mat[6] + v3 * mat[10] + v4 * mat[14];\n        hnormal[3] = v1 * mat[3] + v2 * mat[7] + v3 * mat[11] + v4 * mat[15];\n        return;\n      }\n    }\n\n    _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro(\"Clipping plane index \".concat(i, \" is out of range.\"));\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  clippingPlanes: []\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].algo(publicAPI, model, 1, 0);\n\n  if (!model.clippingPlanes) {\n    model.clippingPlanes = [];\n  }\n\n  vtkAbstractMapper(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar vtkAbstractMapper$1 = {\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper3D.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper3D.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkAbstractMapper3D$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend)\n/* harmony export */ });\n/* harmony import */ var _AbstractMapper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AbstractMapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n\n\n\n// vtkAbstractMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkAbstractMapper3D(publicAPI, model) {\n  publicAPI.getBounds = function () {\n    return 0;\n  };\n\n  publicAPI.getBounds = function (bounds) {\n    publicAPI.getBounds();\n\n    for (var i = 0; i < 6; i++) {\n      bounds[i] = model.bounds[i];\n    }\n  };\n\n  publicAPI.getCenter = function () {\n    publicAPI.getBounds();\n\n    for (var i = 0; i < 3; i++) {\n      model.center[i] = (model.bounds[2 * i + 1] + model.bounds[2 * i]) / 2.0;\n    }\n\n    return model.center.slice();\n  };\n\n  publicAPI.getLength = function () {\n    var diff = 0.0;\n    var l = 0.0;\n    publicAPI.getBounds();\n\n    for (var i = 0; i < 3; i++) {\n      diff = model.bounds[2 * i + 1] - model.bounds[2 * i];\n      l += diff * diff;\n    }\n\n    return Math.sqrt(l);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  bounds: [1, -1, 1, -1, 1, -1],\n  center: [0, 0, 0]\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _AbstractMapper_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].extend(publicAPI, model, initialValues);\n\n  if (!model.bounds) {\n    (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.u)(model.bounds);\n  }\n\n  if (!model.center) {\n    model.center = [0.0, 0.0, 0.0];\n  }\n\n  vtkAbstractMapper3D(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar vtkAbstractMapper3D$1 = {\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper3D.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Actor.js":
/*!**************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Actor.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkActor$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/DataModel/BoundingBox.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/BoundingBox.js\");\n/* harmony import */ var _Prop3D_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Prop3D.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Prop3D.js\");\n/* harmony import */ var _Property_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Property.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property.js\");\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkDebugMacro; // ----------------------------------------------------------------------------\n// vtkActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkActor(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkActor'); // Capture 'parentClass' api for internal use\n\n  var superClass = _objectSpread({}, publicAPI);\n\n  publicAPI.getActors = function () {\n    return [publicAPI];\n  };\n\n  publicAPI.getIsOpaque = function () {\n    if (model.forceOpaque) {\n      return true;\n    }\n\n    if (model.forceTranslucent) {\n      return false;\n    } // make sure we have a property\n\n\n    if (!model.property) {\n      // force creation of a property\n      publicAPI.getProperty();\n    }\n\n    var isOpaque = model.property.getOpacity() >= 1.0; // are we using an opaque texture, if any?\n\n    isOpaque = isOpaque && (!model.texture || !model.texture.isTranslucent()); // are we using an opaque scalar array, if any?\n\n    isOpaque = isOpaque && (!model.mapper || model.mapper.getIsOpaque());\n    return isOpaque;\n  };\n\n  publicAPI.hasTranslucentPolygonalGeometry = function () {\n    if (model.mapper === null) {\n      return false;\n    } // make sure we have a property\n\n\n    if (model.property === null) {\n      // force creation of a property\n      publicAPI.setProperty(publicAPI.makeProperty());\n    } // is this actor opaque ?\n\n\n    return !publicAPI.getIsOpaque();\n  };\n\n  publicAPI.makeProperty = _Property_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance;\n\n  publicAPI.getProperty = function () {\n    if (model.property === null) {\n      model.property = publicAPI.makeProperty();\n    }\n\n    return model.property;\n  };\n\n  publicAPI.getBounds = function () {\n    if (model.mapper === null) {\n      return model.bounds;\n    } // Check for the special case when the mapper's bounds are unknown\n\n\n    var bds = model.mapper.getBounds();\n\n    if (!bds || bds.length !== 6) {\n      return bds;\n    } // Check for the special case when the actor is empty.\n\n\n    if (bds[0] > bds[1]) {\n      model.mapperBounds = bds.concat(); // copy the mapper's bounds\n\n      model.bounds = [1, -1, 1, -1, 1, -1];\n      model.boundsMTime.modified();\n      return bds;\n    } // Check if we have cached values for these bounds - we cache the\n    // values returned by model.mapper.getBounds() and we store the time\n    // of caching. If the values returned this time are different, or\n    // the modified time of this class is newer than the cached time,\n    // then we need to rebuild.\n\n\n    if (!model.mapperBounds || bds[0] !== model.mapperBounds[0] || bds[1] !== model.mapperBounds[1] || bds[2] !== model.mapperBounds[2] || bds[3] !== model.mapperBounds[3] || bds[4] !== model.mapperBounds[4] || bds[5] !== model.mapperBounds[5] || publicAPI.getMTime() > model.boundsMTime.getMTime()) {\n      vtkDebugMacro('Recomputing bounds...');\n      model.mapperBounds = bds.concat(); // copy the mapper's bounds\n\n      var bbox = [];\n      _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCorners(bds, bbox);\n      publicAPI.computeMatrix();\n      var tmp4 = new Float64Array(16);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transpose(tmp4, model.matrix);\n      bbox.forEach(function (pt) {\n        return gl_matrix__WEBPACK_IMPORTED_MODULE_6__.transformMat4(pt, pt, tmp4);\n      });\n      /* eslint-disable no-multi-assign */\n\n      model.bounds[0] = model.bounds[2] = model.bounds[4] = Number.MAX_VALUE;\n      model.bounds[1] = model.bounds[3] = model.bounds[5] = -Number.MAX_VALUE;\n      /* eslint-enable no-multi-assign */\n\n      model.bounds = model.bounds.map(function (d, i) {\n        return i % 2 === 0 ? bbox.reduce(function (a, b) {\n          return a > b[i / 2] ? b[i / 2] : a;\n        }, d) : bbox.reduce(function (a, b) {\n          return a < b[(i - 1) / 2] ? b[(i - 1) / 2] : a;\n        }, d);\n      });\n      model.boundsMTime.modified();\n    }\n\n    return model.bounds;\n  };\n\n  publicAPI.getMTime = function () {\n    var mt = superClass.getMTime();\n\n    if (model.property !== null) {\n      var time = model.property.getMTime();\n      mt = time > mt ? time : mt;\n    }\n\n    if (model.backfaceProperty !== null) {\n      var _time = model.backfaceProperty.getMTime();\n\n      mt = _time > mt ? _time : mt;\n    }\n\n    return mt;\n  };\n\n  publicAPI.getRedrawMTime = function () {\n    var mt = model.mtime;\n\n    if (model.mapper !== null) {\n      var time = model.mapper.getMTime();\n      mt = time > mt ? time : mt;\n\n      if (model.mapper.getInput() !== null) {\n        // FIXME !!! getInputAlgorithm / getInput\n        model.mapper.getInputAlgorithm().update();\n        time = model.mapper.getInput().getMTime();\n        mt = time > mt ? time : mt;\n      }\n    }\n\n    return mt;\n  };\n\n  publicAPI.getSupportsSelection = function () {\n    return model.mapper ? model.mapper.getSupportsSelection() : false;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  mapper: null,\n  property: null,\n  backfaceProperty: null,\n  forceOpaque: false,\n  forceTranslucent: false,\n  bounds: [1, -1, 1, -1, 1, -1]\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _Prop3D_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].extend(publicAPI, model, initialValues); // vtkTimeStamp\n\n  model.boundsMTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(model.boundsMTime); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].set(publicAPI, model, ['property']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['backfaceProperty', 'forceOpaque', 'forceTranslucent', 'mapper']); // Object methods\n\n  vtkActor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkActor'); // ----------------------------------------------------------------------------\n\nvar vtkActor$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Actor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Camera.js":
/*!***************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Camera.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"DEFAULT_VALUES\": () => (/* binding */ DEFAULT_VALUES),\n/* harmony export */   \"default\": () => (/* binding */ vtkCamera$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/quat.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n\n\n\n\n\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkDebugMacro;\n/* eslint-disable new-cap */\n\n/*\n * Convenience function to access elements of a gl-matrix.  If it turns\n * out I have rows and columns swapped everywhere, then I'll just change\n * the order of 'row' and 'col' parameters in this function\n */\n// function getMatrixElement(matrix, row, col) {\n//   const idx = (row * 4) + col;\n//   return matrix[idx];\n// }\n// ----------------------------------------------------------------------------\n// vtkCamera methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCamera(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkCamera'); // Set up private variables and methods\n\n  var origin = new Float64Array(3);\n  var dopbasis = new Float64Array([0.0, 0.0, -1.0]);\n  var upbasis = new Float64Array([0.0, 1.0, 0.0]);\n  var tmpMatrix = gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(new Float64Array(16));\n  var tmpvec1 = new Float64Array(3);\n  var tmpvec2 = new Float64Array(3);\n  var tmpvec3 = new Float64Array(3);\n  var rotateMatrix = gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(new Float64Array(16));\n  var trans = gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(new Float64Array(16));\n  var newPosition = new Float64Array(3);\n  var newFocalPoint = new Float64Array(3); // Internal Functions that don't need to be public\n\n  function computeViewPlaneNormal() {\n    // VPN is -DOP\n    model.viewPlaneNormal[0] = -model.directionOfProjection[0];\n    model.viewPlaneNormal[1] = -model.directionOfProjection[1];\n    model.viewPlaneNormal[2] = -model.directionOfProjection[2];\n  }\n\n  publicAPI.orthogonalizeViewUp = function () {\n    var vt = publicAPI.getViewMatrix();\n    model.viewUp[0] = vt[4];\n    model.viewUp[1] = vt[5];\n    model.viewUp[2] = vt[6];\n    publicAPI.modified();\n  };\n\n  publicAPI.setPosition = function (x, y, z) {\n    if (x === model.position[0] && y === model.position[1] && z === model.position[2]) {\n      return;\n    }\n\n    model.position[0] = x;\n    model.position[1] = y;\n    model.position[2] = z; // recompute the focal distance\n\n    publicAPI.computeDistance();\n    publicAPI.modified();\n  };\n\n  publicAPI.setFocalPoint = function (x, y, z) {\n    if (x === model.focalPoint[0] && y === model.focalPoint[1] && z === model.focalPoint[2]) {\n      return;\n    }\n\n    model.focalPoint[0] = x;\n    model.focalPoint[1] = y;\n    model.focalPoint[2] = z; // recompute the focal distance\n\n    publicAPI.computeDistance();\n    publicAPI.modified();\n  };\n\n  publicAPI.setDistance = function (d) {\n    if (model.distance === d) {\n      return;\n    }\n\n    model.distance = d;\n\n    if (model.distance < 1e-20) {\n      model.distance = 1e-20;\n      vtkDebugMacro('Distance is set to minimum.');\n    } // we want to keep the camera pointing in the same direction\n\n\n    var vec = model.directionOfProjection; // recalculate FocalPoint\n\n    model.focalPoint[0] = model.position[0] + vec[0] * model.distance;\n    model.focalPoint[1] = model.position[1] + vec[1] * model.distance;\n    model.focalPoint[2] = model.position[2] + vec[2] * model.distance;\n    publicAPI.modified();\n  }; //----------------------------------------------------------------------------\n  // This method must be called when the focal point or camera position changes\n\n\n  publicAPI.computeDistance = function () {\n    var dx = model.focalPoint[0] - model.position[0];\n    var dy = model.focalPoint[1] - model.position[1];\n    var dz = model.focalPoint[2] - model.position[2];\n    model.distance = Math.sqrt(dx * dx + dy * dy + dz * dz);\n\n    if (model.distance < 1e-20) {\n      model.distance = 1e-20;\n      vtkDebugMacro('Distance is set to minimum.');\n      var vec = model.directionOfProjection; // recalculate FocalPoint\n\n      model.focalPoint[0] = model.position[0] + vec[0] * model.distance;\n      model.focalPoint[1] = model.position[1] + vec[1] * model.distance;\n      model.focalPoint[2] = model.position[2] + vec[2] * model.distance;\n    }\n\n    model.directionOfProjection[0] = dx / model.distance;\n    model.directionOfProjection[1] = dy / model.distance;\n    model.directionOfProjection[2] = dz / model.distance;\n    computeViewPlaneNormal();\n  }; //----------------------------------------------------------------------------\n  // Move the position of the camera along the view plane normal. Moving\n  // towards the focal point (e.g., > 1) is a dolly-in, moving away\n  // from the focal point (e.g., < 1) is a dolly-out.\n\n\n  publicAPI.dolly = function (amount) {\n    if (amount <= 0.0) {\n      return;\n    } // dolly moves the camera towards the focus\n\n\n    var d = model.distance / amount;\n    publicAPI.setPosition(model.focalPoint[0] - d * model.directionOfProjection[0], model.focalPoint[1] - d * model.directionOfProjection[1], model.focalPoint[2] - d * model.directionOfProjection[2]);\n  };\n\n  publicAPI.roll = function (angle) {\n    var eye = model.position;\n    var at = model.focalPoint;\n    var up = model.viewUp;\n    var viewUpVec4 = new Float64Array([up[0], up[1], up[2], 0.0]);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(rotateMatrix);\n    var viewDir = new Float64Array([at[0] - eye[0], at[1] - eye[1], at[2] - eye[2]]);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.rotate(rotateMatrix, rotateMatrix, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(angle), viewDir);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_4__.transformMat4(viewUpVec4, viewUpVec4, rotateMatrix);\n    model.viewUp[0] = viewUpVec4[0];\n    model.viewUp[1] = viewUpVec4[1];\n    model.viewUp[2] = viewUpVec4[2];\n    publicAPI.modified();\n  };\n\n  publicAPI.azimuth = function (angle) {\n    var fp = model.focalPoint;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(trans); // translate the focal point to the origin,\n    // rotate about view up,\n    // translate back again\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(trans, trans, fp);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.rotate(trans, trans, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(angle), model.viewUp);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(trans, trans, [-fp[0], -fp[1], -fp[2]]); // apply the transform to the position\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(newPosition, model.position, trans);\n    publicAPI.setPosition(newPosition[0], newPosition[1], newPosition[2]);\n  };\n\n  publicAPI.yaw = function (angle) {\n    var position = model.position;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(trans); // translate the camera to the origin,\n    // rotate about axis,\n    // translate back again\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(trans, trans, position);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.rotate(trans, trans, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(angle), model.viewUp);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(trans, trans, [-position[0], -position[1], -position[2]]); // apply the transform to the position\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(newFocalPoint, model.focalPoint, trans);\n    publicAPI.setFocalPoint(newFocalPoint[0], newFocalPoint[1], newFocalPoint[2]);\n  };\n\n  publicAPI.elevation = function (angle) {\n    var fp = model.focalPoint; // get the eye / camera position from the viewMatrix\n\n    var vt = publicAPI.getViewMatrix();\n    var axis = [-vt[0], -vt[1], -vt[2]];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(trans); // translate the focal point to the origin,\n    // rotate about view up,\n    // translate back again\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(trans, trans, fp);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.rotate(trans, trans, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(angle), axis);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(trans, trans, [-fp[0], -fp[1], -fp[2]]); // apply the transform to the position\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(newPosition, model.position, trans);\n    publicAPI.setPosition(newPosition[0], newPosition[1], newPosition[2]);\n  };\n\n  publicAPI.pitch = function (angle) {\n    var position = model.position;\n    var vt = publicAPI.getViewMatrix();\n    var axis = [vt[0], vt[1], vt[2]];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(trans); // translate the camera to the origin,\n    // rotate about axis,\n    // translate back again\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(trans, trans, position);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.rotate(trans, trans, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(angle), axis);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(trans, trans, [-position[0], -position[1], -position[2]]); // apply the transform to the focal point\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(newFocalPoint, model.focalPoint, trans);\n    publicAPI.setFocalPoint.apply(publicAPI, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(newFocalPoint));\n  };\n\n  publicAPI.zoom = function (factor) {\n    if (factor <= 0) {\n      return;\n    }\n\n    if (model.parallelProjection) {\n      model.parallelScale /= factor;\n    } else {\n      model.viewAngle /= factor;\n    }\n\n    publicAPI.modified();\n  };\n\n  publicAPI.translate = function (x, y, z) {\n    var offset = [x, y, z];\n    (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.k)(model.position, offset, model.position);\n    (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.k)(model.focalPoint, offset, model.focalPoint);\n    publicAPI.computeDistance();\n    publicAPI.modified();\n  };\n\n  publicAPI.applyTransform = function (transformMat4) {\n    var vuOld = [].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.viewUp), [1.0]);\n    var posNew = [];\n    var fpNew = [];\n    var vuNew = [];\n    vuOld[0] += model.position[0];\n    vuOld[1] += model.position[1];\n    vuOld[2] += model.position[2];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_4__.transformMat4(posNew, [].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.position), [1.0]), transformMat4);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_4__.transformMat4(fpNew, [].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.focalPoint), [1.0]), transformMat4);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_4__.transformMat4(vuNew, vuOld, transformMat4);\n    vuNew[0] -= posNew[0];\n    vuNew[1] -= posNew[1];\n    vuNew[2] -= posNew[2];\n    publicAPI.setPosition.apply(publicAPI, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(posNew.slice(0, 3)));\n    publicAPI.setFocalPoint.apply(publicAPI, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fpNew.slice(0, 3)));\n    publicAPI.setViewUp.apply(publicAPI, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(vuNew.slice(0, 3)));\n  };\n\n  publicAPI.getThickness = function () {\n    return model.clippingRange[1] - model.clippingRange[0];\n  };\n\n  publicAPI.setThickness = function (thickness) {\n    var t = thickness;\n\n    if (t < 1e-20) {\n      t = 1e-20;\n      vtkDebugMacro('Thickness is set to minimum.');\n    }\n\n    publicAPI.setClippingRange(model.clippingRange[0], model.clippingRange[0] + t);\n  };\n\n  publicAPI.setThicknessFromFocalPoint = function (thickness) {\n    var t = thickness;\n\n    if (t < 1e-20) {\n      t = 1e-20;\n      vtkDebugMacro('Thickness is set to minimum.');\n    }\n\n    publicAPI.setClippingRange(model.distance - t / 2, model.distance + t / 2);\n  }; // Unimplemented functions\n\n\n  publicAPI.setRoll = function (angle) {}; // dependency on GetOrientation() and a model.ViewTransform object, see https://github.com/Kitware/VTK/blob/master/Common/Transforms/vtkTransform.cxx and https://vtk.org/doc/nightly/html/classvtkTransform.html\n\n\n  publicAPI.getRoll = function () {};\n\n  publicAPI.setObliqueAngles = function (alpha, beta) {};\n\n  publicAPI.getOrientation = function () {};\n\n  publicAPI.getOrientationWXYZ = function () {};\n\n  publicAPI.getFrustumPlanes = function (aspect) {// Return array of 24 params (4 params for each of 6 plane equations)\n  };\n\n  publicAPI.getCameraLightTransformMatrix = function () {};\n\n  publicAPI.deepCopy = function (sourceCamera) {};\n\n  publicAPI.physicalOrientationToWorldDirection = function (ori) {\n    // push the x axis through the orientation quat\n    var oriq = gl_matrix__WEBPACK_IMPORTED_MODULE_6__.fromValues(ori[0], ori[1], ori[2], ori[3]);\n    var coriq = gl_matrix__WEBPACK_IMPORTED_MODULE_6__.create();\n    var qdir = gl_matrix__WEBPACK_IMPORTED_MODULE_6__.fromValues(0.0, 0.0, 1.0, 0.0);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.conjugate(coriq, oriq); // rotate the z axis by the quat\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.multiply(qdir, oriq, qdir);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.multiply(qdir, qdir, coriq); // return the z axis in world coords\n\n    return [qdir[0], qdir[1], qdir[2]];\n  };\n\n  publicAPI.getPhysicalToWorldMatrix = function (result) {\n    publicAPI.getWorldToPhysicalMatrix(result);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.invert(result, result);\n  };\n\n  publicAPI.getWorldToPhysicalMatrix = function (result) {\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(result); // now the physical to vtk world rotation tform\n\n    var physVRight = [3];\n    (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.j)(model.physicalViewNorth, model.physicalViewUp, physVRight);\n    result[0] = physVRight[0];\n    result[1] = physVRight[1];\n    result[2] = physVRight[2];\n    result[4] = model.physicalViewUp[0];\n    result[5] = model.physicalViewUp[1];\n    result[6] = model.physicalViewUp[2];\n    result[8] = -model.physicalViewNorth[0];\n    result[9] = -model.physicalViewNorth[1];\n    result[10] = -model.physicalViewNorth[2];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(result, result);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.set(tmpvec1, 1 / model.physicalScale, 1 / model.physicalScale, 1 / model.physicalScale);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.scale(result, result, tmpvec1);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(result, result, model.physicalTranslation);\n  };\n\n  publicAPI.computeViewParametersFromViewMatrix = function (vmat) {\n    // invert to get view to world\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.invert(tmpMatrix, vmat); // note with glmatrix operations happen in\n    // the reverse order\n    // mat.scale\n    // mat.translate\n    // will result in the translation then the scale\n    // mat.mult(a,b)\n    // results in perform the B transformation then A\n    // then extract the params position, orientation\n    // push 0,0,0 through to get a translation\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(tmpvec1, origin, tmpMatrix);\n    publicAPI.computeDistance();\n    var oldDist = model.distance;\n    publicAPI.setPosition(tmpvec1[0], tmpvec1[1], tmpvec1[2]); // push basis vectors to get orientation\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(tmpvec2, dopbasis, tmpMatrix);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.subtract(tmpvec2, tmpvec2, tmpvec1);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.normalize(tmpvec2, tmpvec2);\n    publicAPI.setDirectionOfProjection(tmpvec2[0], tmpvec2[1], tmpvec2[2]);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(tmpvec3, upbasis, tmpMatrix);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.subtract(tmpvec3, tmpvec3, tmpvec1);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.normalize(tmpvec3, tmpvec3);\n    publicAPI.setViewUp(tmpvec3[0], tmpvec3[1], tmpvec3[2]);\n    publicAPI.setDistance(oldDist);\n  }; // the provided matrix should include\n  // translation and orientation only\n  // mat is physical to view\n\n\n  publicAPI.computeViewParametersFromPhysicalMatrix = function (mat) {\n    // get the WorldToPhysicalMatrix\n    publicAPI.getWorldToPhysicalMatrix(tmpMatrix); // first convert the physical -> view matrix to be\n    // world -> view\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.multiply(tmpMatrix, mat, tmpMatrix);\n    publicAPI.computeViewParametersFromViewMatrix(tmpMatrix);\n  };\n\n  publicAPI.setViewMatrix = function (mat) {\n    model.viewMatrix = mat;\n\n    if (model.viewMatrix) {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.copy(tmpMatrix, model.viewMatrix);\n      publicAPI.computeViewParametersFromViewMatrix(tmpMatrix);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(model.viewMatrix, model.viewMatrix);\n    }\n  };\n\n  publicAPI.getViewMatrix = function () {\n    if (model.viewMatrix) {\n      return model.viewMatrix;\n    }\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.lookAt(tmpMatrix, model.position, // eye\n    model.focalPoint, // at\n    model.viewUp // up\n    );\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(tmpMatrix, tmpMatrix);\n    var result = new Float64Array(16);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.copy(result, tmpMatrix);\n    return result;\n  };\n\n  publicAPI.setProjectionMatrix = function (mat) {\n    model.projectionMatrix = mat;\n  };\n\n  publicAPI.getProjectionMatrix = function (aspect, nearz, farz) {\n    var result = new Float64Array(16);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(result);\n\n    if (model.projectionMatrix) {\n      var scale = 1 / model.physicalScale;\n      gl_matrix__WEBPACK_IMPORTED_MODULE_5__.set(tmpvec1, scale, scale, scale);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.copy(result, model.projectionMatrix);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.scale(result, result, tmpvec1);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(result, result);\n      return result;\n    }\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(tmpMatrix); // FIXME: Not sure what to do about adjust z buffer here\n    // adjust Z-buffer range\n    // this->ProjectionTransform->AdjustZBuffer( -1, +1, nearz, farz );\n\n    var cWidth = model.clippingRange[1] - model.clippingRange[0];\n    var cRange = [model.clippingRange[0] + (nearz + 1) * cWidth / 2.0, model.clippingRange[0] + (farz + 1) * cWidth / 2.0];\n\n    if (model.parallelProjection) {\n      // set up a rectangular parallelipiped\n      var width = model.parallelScale * aspect;\n      var height = model.parallelScale;\n      var xmin = (model.windowCenter[0] - 1.0) * width;\n      var xmax = (model.windowCenter[0] + 1.0) * width;\n      var ymin = (model.windowCenter[1] - 1.0) * height;\n      var ymax = (model.windowCenter[1] + 1.0) * height;\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.ortho(tmpMatrix, xmin, xmax, ymin, ymax, cRange[0], cRange[1]);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(tmpMatrix, tmpMatrix);\n    } else if (model.useOffAxisProjection) {\n      throw new Error('Off-Axis projection is not supported at this time');\n    } else {\n      var tmp = Math.tan((0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(model.viewAngle) / 2.0);\n\n      var _width;\n\n      var _height;\n\n      if (model.useHorizontalViewAngle === true) {\n        _width = model.clippingRange[0] * tmp;\n        _height = model.clippingRange[0] * tmp / aspect;\n      } else {\n        _width = model.clippingRange[0] * tmp * aspect;\n        _height = model.clippingRange[0] * tmp;\n      }\n\n      var _xmin = (model.windowCenter[0] - 1.0) * _width;\n\n      var _xmax = (model.windowCenter[0] + 1.0) * _width;\n\n      var _ymin = (model.windowCenter[1] - 1.0) * _height;\n\n      var _ymax = (model.windowCenter[1] + 1.0) * _height;\n\n      var znear = cRange[0];\n      var zfar = cRange[1];\n      tmpMatrix[0] = 2.0 * znear / (_xmax - _xmin);\n      tmpMatrix[5] = 2.0 * znear / (_ymax - _ymin);\n      tmpMatrix[2] = (_xmin + _xmax) / (_xmax - _xmin);\n      tmpMatrix[6] = (_ymin + _ymax) / (_ymax - _ymin);\n      tmpMatrix[10] = -(znear + zfar) / (zfar - znear);\n      tmpMatrix[14] = -1.0;\n      tmpMatrix[11] = -2.0 * znear * zfar / (zfar - znear);\n      tmpMatrix[15] = 0.0;\n    }\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.copy(result, tmpMatrix);\n    return result;\n  };\n\n  publicAPI.getCompositeProjectionMatrix = function (aspect, nearz, farz) {\n    var vMat = publicAPI.getViewMatrix();\n    var pMat = publicAPI.getProjectionMatrix(aspect, nearz, farz); // mats are transposed so the order is A then B\n    // we reuse pMat as it is a copy so we can do what we want with it\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.multiply(pMat, vMat, pMat);\n    return pMat;\n  };\n\n  publicAPI.setDirectionOfProjection = function (x, y, z) {\n    if (model.directionOfProjection[0] === x && model.directionOfProjection[1] === y && model.directionOfProjection[2] === z) {\n      return;\n    }\n\n    model.directionOfProjection[0] = x;\n    model.directionOfProjection[1] = y;\n    model.directionOfProjection[2] = z;\n    var vec = model.directionOfProjection; // recalculate FocalPoint\n\n    model.focalPoint[0] = model.position[0] + vec[0] * model.distance;\n    model.focalPoint[1] = model.position[1] + vec[1] * model.distance;\n    model.focalPoint[2] = model.position[2] + vec[2] * model.distance;\n    computeViewPlaneNormal();\n  }; // used to handle convert js device orientation angles\n  // when you use this method the camera will adjust to the\n  // device orientation such that the physicalViewUp you set\n  // in world coordinates looks up, and the physicalViewNorth\n  // you set in world coorindates will (maybe) point north\n  //\n  // NOTE WARNING - much of the documentation out there on how\n  // orientation works is seriously wrong. Even worse the Chrome\n  // device orientation simulator is completely wrong and should\n  // never be used. OMG it is so messed up.\n  //\n  // how it seems to work on iOS is that the device orientation\n  // is specified in extrinsic angles with a alpha, beta, gamma\n  // convention with axes of Z, X, Y (the code below substitutes\n  // the physical coordinate system for these axes to get the right\n  // modified coordinate system.\n\n\n  publicAPI.setDeviceAngles = function (alpha, beta, gamma, screen) {\n    var physVRight = [3];\n    (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.j)(model.physicalViewNorth, model.physicalViewUp, physVRight); // phone to physical coordinates\n\n    var rotmat = gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(new Float64Array(16));\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.rotate(rotmat, rotmat, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(alpha), model.physicalViewUp);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.rotate(rotmat, rotmat, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(beta), physVRight);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.rotate(rotmat, rotmat, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(gamma), model.physicalViewNorth);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.rotate(rotmat, rotmat, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(-screen), model.physicalViewUp);\n    var dop = new Float64Array([-model.physicalViewUp[0], -model.physicalViewUp[1], -model.physicalViewUp[2]]);\n    var vup = new Float64Array(model.physicalViewNorth);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(dop, dop, rotmat);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(vup, vup, rotmat);\n    publicAPI.setDirectionOfProjection(dop[0], dop[1], dop[2]);\n    publicAPI.setViewUp(vup[0], vup[1], vup[2]);\n    publicAPI.modified();\n  };\n\n  publicAPI.setOrientationWXYZ = function (degrees, x, y, z) {\n    var quatMat = gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(new Float64Array(16));\n\n    if (degrees !== 0.0 && (x !== 0.0 || y !== 0.0 || z !== 0.0)) {\n      // convert to radians\n      var angle = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(degrees);\n      var q = gl_matrix__WEBPACK_IMPORTED_MODULE_6__.create();\n      gl_matrix__WEBPACK_IMPORTED_MODULE_6__.setAxisAngle(q, [x, y, z], angle);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.fromQuat(quatMat, q);\n    }\n\n    var newdop = new Float64Array(3);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(newdop, [0.0, 0.0, -1.0], quatMat);\n    var newvup = new Float64Array(3);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transformMat4(newvup, [0.0, 1.0, 0.0], quatMat);\n    publicAPI.setDirectionOfProjection.apply(publicAPI, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(newdop));\n    publicAPI.setViewUp.apply(publicAPI, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(newvup));\n    publicAPI.modified();\n  };\n\n  publicAPI.computeClippingRange = function (bounds) {\n    var vn = null;\n    var position = null;\n    vn = model.viewPlaneNormal;\n    position = model.position;\n    var a = -vn[0];\n    var b = -vn[1];\n    var c = -vn[2];\n    var d = -(a * position[0] + b * position[1] + c * position[2]); // Set the max near clipping plane and the min far clipping plane\n\n    var range = [a * bounds[0] + b * bounds[2] + c * bounds[4] + d, 1e-18]; // Find the closest / farthest bounding box vertex\n\n    for (var k = 0; k < 2; k++) {\n      for (var j = 0; j < 2; j++) {\n        for (var i = 0; i < 2; i++) {\n          var dist = a * bounds[i] + b * bounds[2 + j] + c * bounds[4 + k] + d;\n          range[0] = dist < range[0] ? dist : range[0];\n          range[1] = dist > range[1] ? dist : range[1];\n        }\n      }\n    }\n\n    return range;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  position: [0, 0, 1],\n  focalPoint: [0, 0, 0],\n  viewUp: [0, 1, 0],\n  directionOfProjection: [0, 0, -1],\n  parallelProjection: false,\n  useHorizontalViewAngle: false,\n  viewAngle: 30,\n  parallelScale: 1,\n  clippingRange: [0.01, 1000.01],\n  windowCenter: [0, 0],\n  viewPlaneNormal: [0, 0, 1],\n  useOffAxisProjection: false,\n  screenBottomLeft: [-0.5, -0.5, -0.5],\n  screenBottomRight: [0.5, -0.5, -0.5],\n  screenTopRight: [0.5, 0.5, -0.5],\n  freezeFocalPoint: false,\n  projectionMatrix: null,\n  viewMatrix: null,\n  // used for world to physical transformations\n  physicalTranslation: [0, 0, 0],\n  physicalScale: 1.0,\n  physicalViewUp: [0, 1, 0],\n  physicalViewNorth: [0, 0, -1]\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['distance']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['parallelProjection', 'useHorizontalViewAngle', 'viewAngle', 'parallelScale', 'useOffAxisProjection', 'freezeFocalPoint', 'physicalScale']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getArray(publicAPI, model, ['directionOfProjection', 'viewPlaneNormal', 'position', 'focalPoint']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGetArray(publicAPI, model, ['clippingRange', 'windowCenter'], 2);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGetArray(publicAPI, model, ['viewUp', 'screenBottomLeft', 'screenBottomRight', 'screenTopRight', 'physicalTranslation', 'physicalViewUp', 'physicalViewNorth'], 3); // Object methods\n\n  vtkCamera(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkCamera'); // ----------------------------------------------------------------------------\n\nvar vtkCamera$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Camera.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction.js":
/*!******************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkColorTransferFunction$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Common_Core_ScalarsToColors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Common/Core/ScalarsToColors.js */ \"./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors.js\");\n/* harmony import */ var _ColorTransferFunction_Constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColorTransferFunction/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/Constants.js\");\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar ColorSpace = _ColorTransferFunction_Constants_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].ColorSpace,\n    Scale = _ColorTransferFunction_Constants_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].Scale;\nvar ScalarMappingTarget = _Common_Core_ScalarsToColors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ScalarMappingTarget;\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkDebugMacro,\n    vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro,\n    vtkWarningMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkWarningMacro; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\n/* eslint-disable no-continue                                                */\n// Convert to and from a special polar version of CIELAB (useful for creating\n// continuous diverging color maps).\n\nfunction vtkColorTransferFunctionLabToMsh(lab, msh) {\n  var L = lab[0];\n  var a = lab[1];\n  var b = lab[2];\n  var M = Math.sqrt(L * L + a * a + b * b);\n  var s = M > 0.001 ? Math.acos(L / M) : 0.0;\n  var h = s > 0.001 ? Math.atan2(b, a) : 0.0;\n  msh[0] = M;\n  msh[1] = s;\n  msh[2] = h;\n}\n\nfunction vtkColorTransferFunctionMshToLab(msh, lab) {\n  var M = msh[0];\n  var s = msh[1];\n  var h = msh[2];\n  lab[0] = M * Math.cos(s);\n  lab[1] = M * Math.sin(s) * Math.cos(h);\n  lab[2] = M * Math.sin(s) * Math.sin(h);\n} // For the case when interpolating from a saturated color to an unsaturated\n// color, find a hue for the unsaturated color that makes sense.\n\n\nfunction vtkColorTransferFunctionAdjustHue(msh, unsatM) {\n  if (msh[0] >= unsatM - 0.1) {\n    // The best we can do is hold hue constant.\n    return msh[2];\n  } // This equation is designed to make the perceptual change of the\n  // interpolation to be close to constant.\n\n\n  var hueSpin = msh[1] * Math.sqrt(unsatM * unsatM - msh[0] * msh[0]) / (msh[0] * Math.sin(msh[1])); // Spin hue away from 0 except in purple hues.\n\n  if (msh[2] > -0.3 * Math.PI) {\n    return msh[2] + hueSpin;\n  }\n\n  return msh[2] - hueSpin;\n}\n\nfunction vtkColorTransferFunctionAngleDiff(a1, a2) {\n  var adiff = a1 - a2;\n\n  if (adiff < 0.0) {\n    adiff = -adiff;\n  }\n\n  while (adiff >= 2.0 * Math.PI) {\n    adiff -= 2.0 * Math.PI;\n  }\n\n  if (adiff > Math.PI) {\n    adiff = 2.0 * Math.PI - adiff;\n  }\n\n  return adiff;\n} // Interpolate a diverging color map.\n\n\nfunction vtkColorTransferFunctionInterpolateDiverging(s, rgb1, rgb2, result) {\n  var lab1 = [];\n  var lab2 = [];\n  (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.H)(rgb1, lab1);\n  (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.H)(rgb2, lab2);\n  var msh1 = [];\n  var msh2 = [];\n  vtkColorTransferFunctionLabToMsh(lab1, msh1);\n  vtkColorTransferFunctionLabToMsh(lab2, msh2); // If the endpoints are distinct saturated colors, then place white in between\n  // them.\n\n  var localS = s;\n\n  if (msh1[1] > 0.05 && msh2[1] > 0.05 && vtkColorTransferFunctionAngleDiff(msh1[2], msh2[2]) > 0.33 * Math.PI) {\n    // Insert the white midpoint by setting one end to white and adjusting the\n    // scalar value.\n    var Mmid = Math.max(msh1[0], msh2[0]);\n    Mmid = Math.max(88.0, Mmid);\n\n    if (s < 0.5) {\n      msh2[0] = Mmid;\n      msh2[1] = 0.0;\n      msh2[2] = 0.0;\n      localS *= 2.0;\n    } else {\n      msh1[0] = Mmid;\n      msh1[1] = 0.0;\n      msh1[2] = 0.0;\n      localS = 2.0 * localS - 1.0;\n    }\n  } // If one color has no saturation, then its hue value is invalid.  In this\n  // case, we want to set it to something logical so that the interpolation of\n  // hue makes sense.\n\n\n  if (msh1[1] < 0.05 && msh2[1] > 0.05) {\n    msh1[2] = vtkColorTransferFunctionAdjustHue(msh2, msh1[0]);\n  } else if (msh2[1] < 0.05 && msh1[1] > 0.05) {\n    msh2[2] = vtkColorTransferFunctionAdjustHue(msh1, msh2[0]);\n  }\n\n  var mshTmp = [];\n  mshTmp[0] = (1 - localS) * msh1[0] + localS * msh2[0];\n  mshTmp[1] = (1 - localS) * msh1[1] + localS * msh2[1];\n  mshTmp[2] = (1 - localS) * msh1[2] + localS * msh2[2]; // Now convert back to RGB\n\n  var labTmp = [];\n  vtkColorTransferFunctionMshToLab(mshTmp, labTmp);\n  (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.I)(labTmp, result);\n} // ----------------------------------------------------------------------------\n// vtkColorTransferFunction methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkColorTransferFunction(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkColorTransferFunction'); // Return the number of points which specify this function\n\n  publicAPI.getSize = function () {\n    return model.nodes.length;\n  }; //----------------------------------------------------------------------------\n  // Add a point defined in RGB\n\n\n  publicAPI.addRGBPoint = function (x, r, g, b) {\n    return publicAPI.addRGBPointLong(x, r, g, b, 0.5, 0.0);\n  }; //----------------------------------------------------------------------------\n  // Add a point defined in RGB\n\n\n  publicAPI.addRGBPointLong = function (x, r, g, b) {\n    var midpoint = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0.5;\n    var sharpness = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0.0;\n\n    // Error check\n    if (midpoint < 0.0 || midpoint > 1.0) {\n      vtkErrorMacro('Midpoint outside range [0.0, 1.0]');\n      return -1;\n    }\n\n    if (sharpness < 0.0 || sharpness > 1.0) {\n      vtkErrorMacro('Sharpness outside range [0.0, 1.0]');\n      return -1;\n    } // remove any node already at this X location\n\n\n    if (!model.allowDuplicateScalars) {\n      publicAPI.removePoint(x);\n    } // Create the new node\n\n\n    var node = {\n      x: x,\n      r: r,\n      g: g,\n      b: b,\n      midpoint: midpoint,\n      sharpness: sharpness\n    }; // Add it, then sort to get everything in order\n\n    model.nodes.push(node);\n    publicAPI.sortAndUpdateRange(); // We need to find the index of the node we just added in order\n    // to return this value\n\n    var i = 0;\n\n    for (; i < model.nodes.length; i++) {\n      if (model.nodes[i].x === x) {\n        break;\n      }\n    } // If we didn't find it, something went horribly wrong so\n    // return -1\n\n\n    if (i < model.nodes.length) {\n      return i;\n    }\n\n    return -1;\n  }; //----------------------------------------------------------------------------\n  // Add a point defined in HSV\n\n\n  publicAPI.addHSVPoint = function (x, h, s, v) {\n    return publicAPI.addHSVPointLong(x, h, s, v, 0.5, 0.0);\n  }; //----------------------------------------------------------------------------\n  // Add a point defined in HSV\n\n\n  publicAPI.addHSVPointLong = function (x, h, s, v) {\n    var midpoint = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0.5;\n    var sharpness = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0.0;\n    var rgb = [];\n    var hsv = [h, s, v];\n    (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.h)(hsv, rgb);\n    return publicAPI.addRGBPoint(x, rgb[0], rgb[1], rgb[2], midpoint, sharpness);\n  }; //----------------------------------------------------------------------------\n  // Set nodes directly\n\n\n  publicAPI.setNodes = function (nodes) {\n    if (model.nodes !== nodes) {\n      var before = JSON.stringify(model.nodes);\n      model.nodes = nodes;\n      var after = JSON.stringify(model.nodes);\n\n      if (publicAPI.sortAndUpdateRange() || before !== after) {\n        publicAPI.modified();\n        return true;\n      }\n    }\n\n    return false;\n  }; //----------------------------------------------------------------------------\n  // Sort the vector in increasing order, then fill in\n  // the Range\n\n\n  publicAPI.sortAndUpdateRange = function () {\n    var before = JSON.stringify(model.nodes);\n    model.nodes.sort(function (a, b) {\n      return a.x - b.x;\n    });\n    var after = JSON.stringify(model.nodes);\n    var modifiedInvoked = publicAPI.updateRange(); // If range is updated, Modified() has been called, don't call it again.\n\n    if (!modifiedInvoked && before !== after) {\n      publicAPI.modified();\n      return true;\n    }\n\n    return modifiedInvoked;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.updateRange = function () {\n    var oldRange = [2];\n    oldRange[0] = model.mappingRange[0];\n    oldRange[1] = model.mappingRange[1];\n    var size = model.nodes.length;\n\n    if (size) {\n      model.mappingRange[0] = model.nodes[0].x;\n      model.mappingRange[1] = model.nodes[size - 1].x;\n    } else {\n      model.mappingRange[0] = 0;\n      model.mappingRange[1] = 0;\n    } // If the range is the same, then no need to call Modified()\n\n\n    if (oldRange[0] === model.mappingRange[0] && oldRange[1] === model.mappingRange[1]) {\n      return false;\n    }\n\n    publicAPI.modified();\n    return true;\n  }; //----------------------------------------------------------------------------\n  // Remove a point\n\n\n  publicAPI.removePoint = function (x) {\n    // First find the node since we need to know its\n    // index as our return value\n    var i = 0;\n\n    for (; i < model.nodes.length; i++) {\n      if (model.nodes[i].x === x) {\n        break;\n      }\n    }\n\n    var retVal = i; // If the node doesn't exist, we return -1\n\n    if (i >= model.nodes.length) {\n      return -1;\n    } // If the first or last point has been removed, then we update the range\n    // No need to sort here as the order of points hasn't changed.\n\n\n    var modifiedInvoked = false;\n    model.nodes.splice(i, 1);\n\n    if (i === 0 || i === model.nodes.length) {\n      modifiedInvoked = publicAPI.updateRange();\n    }\n\n    if (!modifiedInvoked) {\n      publicAPI.modified();\n    }\n\n    return retVal;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.movePoint = function (oldX, newX) {\n    if (oldX === newX) {\n      // Nothing to do.\n      return;\n    }\n\n    publicAPI.removePoint(newX);\n\n    for (var i = 0; i < model.nodes.length; i++) {\n      if (model.nodes[i].x === oldX) {\n        model.nodes[i].x = newX;\n        publicAPI.sortAndUpdateRange();\n        break;\n      }\n    }\n  }; //----------------------------------------------------------------------------\n  // Remove all points\n\n\n  publicAPI.removeAllPoints = function () {\n    model.nodes = [];\n    publicAPI.sortAndUpdateRange();\n  }; //----------------------------------------------------------------------------\n  // Add a line defined in RGB\n\n\n  publicAPI.addRGBSegment = function (x1, r1, g1, b1, x2, r2, g2, b2) {\n    // First, find all points in this range and remove them\n    publicAPI.sortAndUpdateRange();\n\n    for (var i = 0; i < model.nodes.length;) {\n      if (model.nodes[i].x >= x1 && model.nodes[i].x <= x2) {\n        model.nodes.splice(i, 1);\n      } else {\n        i++;\n      }\n    } // Now add the points\n\n\n    publicAPI.addRGBPointLong(x1, r1, g1, b1, 0.5, 0.0);\n    publicAPI.addRGBPointLong(x2, r2, g2, b2, 0.5, 0.0);\n    publicAPI.modified();\n  }; //----------------------------------------------------------------------------\n  // Add a line defined in HSV\n\n\n  publicAPI.addHSVSegment = function (x1, h1, s1, v1, x2, h2, s2, v2) {\n    var hsv1 = [h1, s1, v1];\n    var hsv2 = [h2, s2, v2];\n    var rgb1 = [];\n    var rgb2 = [];\n    (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.h)(hsv1, rgb1);\n    (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.h)(hsv2, rgb2);\n    publicAPI.addRGBSegment(x1, rgb1[0], rgb1[1], rgb1[2], x2, rgb2[0], rgb2[1], rgb2[2]);\n  }; //----------------------------------------------------------------------------\n  // Returns the RGBA color evaluated at the specified location\n\n\n  publicAPI.mapValue = function (x) {\n    var rgb = [];\n    publicAPI.getColor(x, rgb);\n    return [Math.floor(255.0 * rgb[0] + 0.5), Math.floor(255.0 * rgb[1] + 0.5), Math.floor(255.0 * rgb[2] + 0.5), 255];\n  }; //----------------------------------------------------------------------------\n  // Returns the RGB color evaluated at the specified location\n\n\n  publicAPI.getColor = function (x, rgb) {\n    if (model.indexedLookup) {\n      var numNodes = publicAPI.getSize(); // todo\n\n      var idx = publicAPI.getAnnotatedValueIndexInternal(x);\n\n      if (idx < 0 || numNodes === 0) {\n        publicAPI.getNanColor(rgb);\n      } else {\n        var nodeVal = [];\n        publicAPI.getNodeValue(idx % numNodes, nodeVal);\n        rgb[0] = nodeVal.r;\n        rgb[1] = nodeVal.g;\n        rgb[2] = nodeVal.b;\n      }\n\n      return;\n    }\n\n    publicAPI.getTable(x, x, 1, rgb);\n  }; //----------------------------------------------------------------------------\n  // Returns the red color evaluated at the specified location\n\n\n  publicAPI.getRedValue = function (x) {\n    var rgb = [];\n    publicAPI.getColor(x, rgb);\n    return rgb[0];\n  }; //----------------------------------------------------------------------------\n  // Returns the green color evaluated at the specified location\n\n\n  publicAPI.getGreenValue = function (x) {\n    var rgb = [];\n    publicAPI.getColor(x, rgb);\n    return rgb[1];\n  }; //----------------------------------------------------------------------------\n  // Returns the blue color evaluated at the specified location\n\n\n  publicAPI.getBlueValue = function (x) {\n    var rgb = [];\n    publicAPI.getColor(x, rgb);\n    return rgb[2];\n  }; //----------------------------------------------------------------------------\n  // Returns a table of RGB colors at regular intervals along the function\n\n\n  publicAPI.getTable = function (xStart, xEnd, size, table) {\n    // Special case: If either the start or end is a NaN, then all any\n    // interpolation done on them is also a NaN.  Therefore, fill the table with\n    // the NaN color.\n    if ((0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.i)(xStart) || (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.i)(xEnd)) {\n      for (var i = 0; i < size; i++) {\n        table[i * 3 + 0] = model.nanColor[0];\n        table[i * 3 + 1] = model.nanColor[1];\n        table[i * 3 + 2] = model.nanColor[2];\n      }\n\n      return;\n    }\n\n    var idx = 0;\n    var numNodes = model.nodes.length; // Need to keep track of the last value so that\n    // we can fill in table locations past this with\n    // this value if Clamping is On.\n\n    var lastR = 0.0;\n    var lastG = 0.0;\n    var lastB = 0.0;\n\n    if (numNodes !== 0) {\n      lastR = model.nodes[numNodes - 1].r;\n      lastG = model.nodes[numNodes - 1].g;\n      lastB = model.nodes[numNodes - 1].b;\n    }\n\n    var x = 0.0;\n    var x1 = 0.0;\n    var x2 = 0.0;\n    var rgb1 = [0.0, 0.0, 0.0];\n    var rgb2 = [0.0, 0.0, 0.0];\n    var midpoint = 0.0;\n    var sharpness = 0.0;\n    var tmpVec = []; // If the scale is logarithmic, make sure the range is valid.\n\n    var usingLogScale = model.scale === Scale.LOG10;\n\n    if (usingLogScale) {\n      // Note: This requires range[0] <= range[1].\n      usingLogScale = model.mappingRange[0] > 0.0;\n    }\n\n    var logStart = 0.0;\n    var logEnd = 0.0;\n    var logX = 0.0;\n\n    if (usingLogScale) {\n      logStart = Math.log10(xStart);\n      logEnd = Math.log10(xEnd);\n    } // For each table entry\n\n\n    for (var _i = 0; _i < size; _i++) {\n      // Find our location in the table\n      var tidx = 3 * _i; // Find our X location. If we are taking only 1 sample, make\n      // it halfway between start and end (usually start and end will\n      // be the same in this case)\n\n      if (size > 1) {\n        if (usingLogScale) {\n          logX = logStart + _i / (size - 1.0) * (logEnd - logStart);\n          x = Math.pow(10.0, logX);\n        } else {\n          x = xStart + _i / (size - 1.0) * (xEnd - xStart);\n        }\n      } else if (usingLogScale) {\n        logX = 0.5 * (logStart + logEnd);\n        x = Math.pow(10.0, logX);\n      } else {\n        x = 0.5 * (xStart + xEnd);\n      } // Linearly map x from mappingRange to [0, numberOfValues-1],\n      // discretize (round down to the closest integer),\n      // then map back to mappingRange\n\n\n      if (model.discretize) {\n        var range = model.mappingRange;\n\n        if (x >= range[0] && x <= range[1]) {\n          var numberOfValues = model.numberOfValues;\n          var deltaRange = range[1] - range[0];\n\n          if (numberOfValues <= 1) {\n            x = range[0] + deltaRange / 2.0;\n          } else {\n            // normalize x\n            var xn = (x - range[0]) / deltaRange; // discretize\n\n            var discretizeIndex = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.J)(numberOfValues * xn); // get discretized x\n\n            x = range[0] + discretizeIndex / (numberOfValues - 1) * deltaRange;\n          }\n        }\n      } // Do we need to move to the next node?\n\n\n      while (idx < numNodes && x > model.nodes[idx].x) {\n        idx++; // If we are at a valid point index, fill in\n        // the value at this node, and the one before (the\n        // two that surround our current sample location)\n        // idx cannot be 0 since we just incremented it.\n\n        if (idx < numNodes) {\n          x1 = model.nodes[idx - 1].x;\n          x2 = model.nodes[idx].x;\n\n          if (usingLogScale) {\n            x1 = Math.log10(x1);\n            x2 = Math.log10(x2);\n          }\n\n          rgb1[0] = model.nodes[idx - 1].r;\n          rgb2[0] = model.nodes[idx].r;\n          rgb1[1] = model.nodes[idx - 1].g;\n          rgb2[1] = model.nodes[idx].g;\n          rgb1[2] = model.nodes[idx - 1].b;\n          rgb2[2] = model.nodes[idx].b; // We only need the previous midpoint and sharpness\n          // since these control this region\n\n          midpoint = model.nodes[idx - 1].midpoint;\n          sharpness = model.nodes[idx - 1].sharpness; // Move midpoint away from extreme ends of range to avoid\n          // degenerate math\n\n          if (midpoint < 0.00001) {\n            midpoint = 0.00001;\n          }\n\n          if (midpoint > 0.99999) {\n            midpoint = 0.99999;\n          }\n        }\n      } // Are we at or past the end? If so, just use the last value\n\n\n      if (x > model.mappingRange[1]) {\n        table[tidx] = 0.0;\n        table[tidx + 1] = 0.0;\n        table[tidx + 2] = 0.0;\n\n        if (model.clamping) {\n          if (publicAPI.getUseAboveRangeColor()) {\n            table[tidx] = model.aboveRangeColor[0];\n            table[tidx + 1] = model.aboveRangeColor[1];\n            table[tidx + 2] = model.aboveRangeColor[2];\n          } else {\n            table[tidx] = lastR;\n            table[tidx + 1] = lastG;\n            table[tidx + 2] = lastB;\n          }\n        }\n      } else if (x < model.mappingRange[0] || (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.F)(x) && x < 0) {\n        // we are before the first node? If so, duplicate this node's values.\n        // We have to deal with -inf here\n        table[tidx] = 0.0;\n        table[tidx + 1] = 0.0;\n        table[tidx + 2] = 0.0;\n\n        if (model.clamping) {\n          if (publicAPI.getUseBelowRangeColor()) {\n            table[tidx] = model.belowRangeColor[0];\n            table[tidx + 1] = model.belowRangeColor[1];\n            table[tidx + 2] = model.belowRangeColor[2];\n          } else if (numNodes > 0) {\n            table[tidx] = model.nodes[0].r;\n            table[tidx + 1] = model.nodes[0].g;\n            table[tidx + 2] = model.nodes[0].b;\n          }\n        }\n      } else if (idx === 0 && (Math.abs(x - xStart) < 1e-6 || model.discretize)) {\n        if (numNodes > 0) {\n          table[tidx] = model.nodes[0].r;\n          table[tidx + 1] = model.nodes[0].g;\n          table[tidx + 2] = model.nodes[0].b;\n        } else {\n          table[tidx] = 0.0;\n          table[tidx + 1] = 0.0;\n          table[tidx + 2] = 0.0;\n        }\n      } else {\n        // OK, we are between two nodes - interpolate\n        // Our first attempt at a normalized location [0,1] -\n        // we will be modifying this based on midpoint and\n        // sharpness to get the curve shape we want and to have\n        // it pass through (y1+y2)/2 at the midpoint.\n        var s = 0.0;\n\n        if (usingLogScale) {\n          s = (logX - x1) / (x2 - x1);\n        } else {\n          s = (x - x1) / (x2 - x1);\n        } // Readjust based on the midpoint - linear adjustment\n\n\n        if (s < midpoint) {\n          s = 0.5 * s / midpoint;\n        } else {\n          s = 0.5 + 0.5 * (s - midpoint) / (1.0 - midpoint);\n        } // override for sharpness > 0.99\n        // In this case we just want piecewise constant\n\n\n        if (sharpness > 0.99) {\n          // Use the first value since we are below the midpoint\n          if (s < 0.5) {\n            table[tidx] = rgb1[0];\n            table[tidx + 1] = rgb1[1];\n            table[tidx + 2] = rgb1[2];\n            continue;\n          } else {\n            // Use the second value at or above the midpoint\n            table[tidx] = rgb2[0];\n            table[tidx + 1] = rgb2[1];\n            table[tidx + 2] = rgb2[2];\n            continue;\n          }\n        } // Override for sharpness < 0.01\n        // In this case we want piecewise linear\n\n\n        if (sharpness < 0.01) {\n          // Simple linear interpolation\n          if (model.colorSpace === ColorSpace.RGB) {\n            table[tidx] = (1 - s) * rgb1[0] + s * rgb2[0];\n            table[tidx + 1] = (1 - s) * rgb1[1] + s * rgb2[1];\n            table[tidx + 2] = (1 - s) * rgb1[2] + s * rgb2[2];\n          } else if (model.colorSpace === ColorSpace.HSV) {\n            var hsv1 = [];\n            var hsv2 = [];\n            (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.G)(rgb1, hsv1);\n            (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.G)(rgb2, hsv2);\n\n            if (model.hSVWrap && (hsv1[0] - hsv2[0] > 0.5 || hsv2[0] - hsv1[0] > 0.5)) {\n              if (hsv1[0] > hsv2[0]) {\n                hsv1[0] -= 1.0;\n              } else {\n                hsv2[0] -= 1.0;\n              }\n            }\n\n            var hsvTmp = [];\n            hsvTmp[0] = (1.0 - s) * hsv1[0] + s * hsv2[0];\n\n            if (hsvTmp[0] < 0.0) {\n              hsvTmp[0] += 1.0;\n            }\n\n            hsvTmp[1] = (1.0 - s) * hsv1[1] + s * hsv2[1];\n            hsvTmp[2] = (1.0 - s) * hsv1[2] + s * hsv2[2]; // Now convert this back to RGB\n\n            (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.h)(hsvTmp, tmpVec);\n            table[tidx] = tmpVec[0];\n            table[tidx + 1] = tmpVec[1];\n            table[tidx + 2] = tmpVec[2];\n          } else if (model.colorSpace === ColorSpace.LAB) {\n            var lab1 = [];\n            var lab2 = [];\n            (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.H)(rgb1, lab1);\n            (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.H)(rgb2, lab2);\n            var labTmp = [];\n            labTmp[0] = (1 - s) * lab1[0] + s * lab2[0];\n            labTmp[1] = (1 - s) * lab1[1] + s * lab2[1];\n            labTmp[2] = (1 - s) * lab1[2] + s * lab2[2]; // Now convert back to RGB\n\n            (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.I)(labTmp, tmpVec);\n            table[tidx] = tmpVec[0];\n            table[tidx + 1] = tmpVec[1];\n            table[tidx + 2] = tmpVec[2];\n          } else if (model.colorSpace === ColorSpace.DIVERGING) {\n            vtkColorTransferFunctionInterpolateDiverging(s, rgb1, rgb2, tmpVec);\n            table[tidx] = tmpVec[0];\n            table[tidx + 1] = tmpVec[1];\n            table[tidx + 2] = tmpVec[2];\n          } else {\n            vtkErrorMacro('ColorSpace set to invalid value.', model.colorSpace);\n          }\n\n          continue;\n        } // We have a sharpness between [0.01, 0.99] - we will\n        // used a modified hermite curve interpolation where we\n        // derive the slope based on the sharpness, and we compress\n        // the curve non-linearly based on the sharpness\n        // First, we will adjust our position based on sharpness in\n        // order to make the curve sharper (closer to piecewise constant)\n\n\n        if (s < 0.5) {\n          s = 0.5 * Math.pow(s * 2.0, 1.0 + 10.0 * sharpness);\n        } else if (s > 0.5) {\n          s = 1.0 - 0.5 * Math.pow((1.0 - s) * 2, 1 + 10.0 * sharpness);\n        } // Compute some coefficients we will need for the hermite curve\n\n\n        var ss = s * s;\n        var sss = ss * s;\n        var h1 = 2.0 * sss - 3 * ss + 1;\n        var h2 = -2 * sss + 3 * ss;\n        var h3 = sss - 2 * ss + s;\n        var h4 = sss - ss;\n        var slope = void 0;\n        var t = void 0;\n\n        if (model.colorSpace === ColorSpace.RGB) {\n          for (var j = 0; j < 3; j++) {\n            // Use one slope for both end points\n            slope = rgb2[j] - rgb1[j];\n            t = (1.0 - sharpness) * slope; // Compute the value\n\n            table[tidx + j] = h1 * rgb1[j] + h2 * rgb2[j] + h3 * t + h4 * t;\n          }\n        } else if (model.colorSpace === ColorSpace.HSV) {\n          var _hsv = [];\n          var _hsv2 = [];\n          (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.G)(rgb1, _hsv);\n          (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.G)(rgb2, _hsv2);\n\n          if (model.hSVWrap && (_hsv[0] - _hsv2[0] > 0.5 || _hsv2[0] - _hsv[0] > 0.5)) {\n            if (_hsv[0] > _hsv2[0]) {\n              _hsv[0] -= 1.0;\n            } else {\n              _hsv2[0] -= 1.0;\n            }\n          }\n\n          var _hsvTmp = [];\n\n          for (var _j = 0; _j < 3; _j++) {\n            // Use one slope for both end points\n            slope = _hsv2[_j] - _hsv[_j];\n            t = (1.0 - sharpness) * slope; // Compute the value\n\n            _hsvTmp[_j] = h1 * _hsv[_j] + h2 * _hsv2[_j] + h3 * t + h4 * t;\n\n            if (_j === 0 && _hsvTmp[_j] < 0.0) {\n              _hsvTmp[_j] += 1.0;\n            }\n          } // Now convert this back to RGB\n\n\n          (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.h)(_hsvTmp, tmpVec);\n          table[tidx] = tmpVec[0];\n          table[tidx + 1] = tmpVec[1];\n          table[tidx + 2] = tmpVec[2];\n        } else if (model.colorSpace === ColorSpace.LAB) {\n          var _lab = [];\n          var _lab2 = [];\n          (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.H)(rgb1, _lab);\n          (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.H)(rgb2, _lab2);\n          var _labTmp = [];\n\n          for (var _j2 = 0; _j2 < 3; _j2++) {\n            // Use one slope for both end points\n            slope = _lab2[_j2] - _lab[_j2];\n            t = (1.0 - sharpness) * slope; // Compute the value\n\n            _labTmp[_j2] = h1 * _lab[_j2] + h2 * _lab2[_j2] + h3 * t + h4 * t;\n          } // Now convert this back to RGB\n\n\n          (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.I)(_labTmp, tmpVec);\n          table[tidx] = tmpVec[0];\n          table[tidx + 1] = tmpVec[1];\n          table[tidx + 2] = tmpVec[2];\n        } else if (model.colorSpace === ColorSpace.DIVERGING) {\n          // I have not implemented proper interpolation by a hermite curve for\n          // the diverging color map, but I cannot think of a good use case for\n          // that anyway.\n          vtkColorTransferFunctionInterpolateDiverging(s, rgb1, rgb2, tmpVec);\n          table[tidx] = tmpVec[0];\n          table[tidx + 1] = tmpVec[1];\n          table[tidx + 2] = tmpVec[2];\n        } else {\n          vtkErrorMacro('ColorSpace set to invalid value.');\n        } // Final error check to make sure we don't go outside [0,1]\n\n\n        for (var _j3 = 0; _j3 < 3; _j3++) {\n          table[tidx + _j3] = table[tidx + _j3] < 0.0 ? 0.0 : table[tidx + _j3];\n          table[tidx + _j3] = table[tidx + _j3] > 1.0 ? 1.0 : table[tidx + _j3];\n        }\n      }\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getUint8Table = function (xStart, xEnd, size) {\n    var withAlpha = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n    if (publicAPI.getMTime() <= model.buildTime && model.tableSize === size && model.tableWithAlpha !== withAlpha) {\n      return model.table;\n    }\n\n    if (model.nodes.length === 0) {\n      vtkErrorMacro('Attempting to lookup a value with no points in the function');\n      return model.table;\n    }\n\n    var nbChannels = withAlpha ? 4 : 3;\n\n    if (model.tableSize !== size || model.tableWithAlpha !== withAlpha) {\n      model.table = new Uint8Array(size * nbChannels);\n      model.tableSize = size;\n      model.tableWithAlpha = withAlpha;\n    }\n\n    var tmpTable = [];\n    publicAPI.getTable(xStart, xEnd, size, tmpTable);\n\n    for (var i = 0; i < size; i++) {\n      model.table[i * nbChannels + 0] = Math.floor(tmpTable[i * 3 + 0] * 255.0 + 0.5);\n      model.table[i * nbChannels + 1] = Math.floor(tmpTable[i * 3 + 1] * 255.0 + 0.5);\n      model.table[i * nbChannels + 2] = Math.floor(tmpTable[i * 3 + 2] * 255.0 + 0.5);\n\n      if (withAlpha) {\n        model.table[i * nbChannels + 3] = 255;\n      }\n    }\n\n    model.buildTime.modified();\n    return model.table;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.buildFunctionFromTable = function (xStart, xEnd, size, table) {\n    var inc = 0.0;\n    publicAPI.removeAllPoints();\n\n    if (size > 1) {\n      inc = (xEnd - xStart) / (size - 1.0);\n    }\n\n    for (var i = 0; i < size; i++) {\n      var node = {\n        x: xStart + inc * i,\n        r: table[i * 3],\n        g: table[i * 3 + 1],\n        b: table[i * 3 + 2],\n        sharpness: 0.0,\n        midpoint: 0.5\n      };\n      model.nodes.push(node);\n    }\n\n    publicAPI.sortAndUpdateRange();\n  }; //----------------------------------------------------------------------------\n  // For a specified index value, get the node parameters\n\n\n  publicAPI.getNodeValue = function (index, val) {\n    if (index < 0 || index >= model.nodes.length) {\n      vtkErrorMacro('Index out of range!');\n      return -1;\n    }\n\n    val[0] = model.nodes[index].x;\n    val[1] = model.nodes[index].r;\n    val[2] = model.nodes[index].g;\n    val[3] = model.nodes[index].b;\n    val[4] = model.nodes[index].midpoint;\n    val[5] = model.nodes[index].sharpness;\n    return 1;\n  }; //----------------------------------------------------------------------------\n  // For a specified index value, get the node parameters\n\n\n  publicAPI.setNodeValue = function (index, val) {\n    if (index < 0 || index >= model.nodes.length) {\n      vtkErrorMacro('Index out of range!');\n      return -1;\n    }\n\n    var oldX = model.nodes[index].x;\n    model.nodes[index].x = val[0];\n    model.nodes[index].r = val[1];\n    model.nodes[index].g = val[2];\n    model.nodes[index].b = val[3];\n    model.nodes[index].midpoint = val[4];\n    model.nodes[index].sharpness = val[5];\n\n    if (oldX !== val[0]) {\n      // The point has been moved, the order of points or the range might have\n      // been modified.\n      publicAPI.sortAndUpdateRange(); // No need to call Modified() here because SortAndUpdateRange() has done it\n      // already.\n    } else {\n      publicAPI.modified();\n    }\n\n    return 1;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getNumberOfAvailableColors = function () {\n    if (model.indexedLookup && publicAPI.getSize()) {\n      return publicAPI.getSize();\n    }\n\n    if (model.tableSize) {\n      // Not sure if this is correct since it is only set if\n      // \"const unsigned char *::GetTable(double xStart, double xEnd,int size)\"\n      // has been called.\n      return model.tableSize;\n    }\n\n    return 16777216; // 2^24\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getIndexedColor = function (idx, rgba) {\n    var n = publicAPI.getSize();\n\n    if (n > 0 && idx >= 0) {\n      var nodeValue = [];\n      publicAPI.getNodeValue(idx % n, nodeValue);\n\n      for (var j = 0; j < 3; ++j) {\n        rgba[j] = nodeValue[j + 1];\n      }\n\n      rgba[3] = 1.0; // NodeColor is RGB-only.\n\n      return;\n    }\n\n    publicAPI.getNanColor(rgba);\n    rgba[3] = 1.0; // NanColor is RGB-only.\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.fillFromDataPointer = function (nb, ptr) {\n    if (nb <= 0 || !ptr) {\n      return;\n    }\n\n    publicAPI.removeAllPoints();\n\n    for (var i = 0; i < nb; i++) {\n      publicAPI.addRGBPoint(ptr[i * 4], ptr[i * 4 + 1], ptr[i * 4 + 2], ptr[i * 4 + 3]);\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.setMappingRange = function (min, max) {\n    var range = [min, max];\n    var originalRange = publicAPI.getRange();\n\n    if (originalRange[1] === range[1] && originalRange[0] === range[0]) {\n      return;\n    }\n\n    if (range[1] === range[0]) {\n      vtkErrorMacro('attempt to set zero width color range');\n      return;\n    }\n\n    var scale = (range[1] - range[0]) / (originalRange[1] - originalRange[0]);\n    var shift = range[0] - originalRange[0] * scale;\n\n    for (var i = 0; i < model.nodes.length; ++i) {\n      model.nodes[i].x = model.nodes[i].x * scale + shift;\n    }\n\n    model.mappingRange[0] = range[0];\n    model.mappingRange[1] = range[1];\n    publicAPI.modified();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.adjustRange = function (range) {\n    var functionRange = publicAPI.getRange(); // Make sure we have points at each end of the range\n\n    var rgb = [];\n\n    if (functionRange[0] < range[0]) {\n      publicAPI.getColor(range[0], rgb);\n      publicAPI.addRGBPoint(range[0], rgb[0], rgb[1], rgb[2]);\n    } else {\n      publicAPI.getColor(functionRange[0], rgb);\n      publicAPI.addRGBPoint(range[0], rgb[0], rgb[1], rgb[2]);\n    }\n\n    if (functionRange[1] > range[1]) {\n      publicAPI.getColor(range[1], rgb);\n      publicAPI.addRGBPoint(range[1], rgb[0], rgb[1], rgb[2]);\n    } else {\n      publicAPI.getColor(functionRange[1], rgb);\n      publicAPI.addRGBPoint(range[1], rgb[0], rgb[1], rgb[2]);\n    } // Remove all points out-of-range\n\n\n    publicAPI.sortAndUpdateRange();\n\n    for (var i = 0; i < model.nodes.length;) {\n      if (model.nodes[i].x >= range[0] && model.nodes[i].x <= range[1]) {\n        model.nodes.splice(i, 1);\n      } else {\n        ++i;\n      }\n    }\n\n    return 1;\n  }; //--------------------------------------------------------------------------\n\n\n  publicAPI.estimateMinNumberOfSamples = function (x1, x2) {\n    var d = publicAPI.findMinimumXDistance();\n    return Math.ceil((x2 - x1) / d);\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.findMinimumXDistance = function () {\n    if (model.nodes.length < 2) {\n      return -1.0;\n    }\n\n    var distance = Number.MAX_VALUE;\n\n    for (var i = 0; i < model.nodes.length - 1; i++) {\n      var currentDist = model.nodes[i + 1].x - model.nodes[i].x;\n\n      if (currentDist < distance) {\n        distance = currentDist;\n      }\n    }\n\n    return distance;\n  };\n\n  publicAPI.mapScalarsThroughTable = function (input, output, outFormat, inputOffset) {\n    if (publicAPI.getSize() === 0) {\n      vtkDebugMacro('Transfer Function Has No Points!');\n      return;\n    }\n\n    if (model.indexedLookup) {\n      publicAPI.mapDataIndexed(input, output, outFormat, inputOffset);\n    } else {\n      publicAPI.mapData(input, output, outFormat, inputOffset);\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.mapData = function (input, output, outFormat, inputOffset) {\n    if (publicAPI.getSize() === 0) {\n      vtkWarningMacro('Transfer Function Has No Points!');\n      return;\n    }\n\n    var alpha = Math.floor(publicAPI.getAlpha() * 255.0 + 0.5);\n    var length = input.getNumberOfTuples();\n    var inIncr = input.getNumberOfComponents();\n    var outputV = output.getData();\n    var inputV = input.getData();\n    var rgb = [];\n\n    if (outFormat === ScalarMappingTarget.RGBA) {\n      for (var i = 0; i < length; i++) {\n        var x = inputV[i * inIncr + inputOffset];\n        publicAPI.getColor(x, rgb);\n        outputV[i * 4] = Math.floor(rgb[0] * 255.0 + 0.5);\n        outputV[i * 4 + 1] = Math.floor(rgb[1] * 255.0 + 0.5);\n        outputV[i * 4 + 2] = Math.floor(rgb[2] * 255.0 + 0.5);\n        outputV[i * 4 + 3] = alpha;\n      }\n    }\n\n    if (outFormat === ScalarMappingTarget.RGB) {\n      for (var _i2 = 0; _i2 < length; _i2++) {\n        var _x = inputV[_i2 * inIncr + inputOffset];\n        publicAPI.getColor(_x, rgb);\n        outputV[_i2 * 3] = Math.floor(rgb[0] * 255.0 + 0.5);\n        outputV[_i2 * 3 + 1] = Math.floor(rgb[1] * 255.0 + 0.5);\n        outputV[_i2 * 3 + 2] = Math.floor(rgb[2] * 255.0 + 0.5);\n      }\n    }\n\n    if (outFormat === ScalarMappingTarget.LUMINANCE) {\n      for (var _i3 = 0; _i3 < length; _i3++) {\n        var _x2 = inputV[_i3 * inIncr + inputOffset];\n        publicAPI.getColor(_x2, rgb);\n        outputV[_i3] = Math.floor(rgb[0] * 76.5 + rgb[1] * 150.45 + rgb[2] * 28.05 + 0.5);\n      }\n    }\n\n    if (outFormat === ScalarMappingTarget.LUMINANCE_ALPHA) {\n      for (var _i4 = 0; _i4 < length; _i4++) {\n        var _x3 = inputV[_i4 * inIncr + inputOffset];\n        publicAPI.getColor(_x3, rgb);\n        outputV[_i4 * 2] = Math.floor(rgb[0] * 76.5 + rgb[1] * 150.45 + rgb[2] * 28.05 + 0.5);\n        outputV[_i4 * 2 + 1] = alpha;\n      }\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.applyColorMap = function (colorMap) {\n    if (colorMap.ColorSpace) {\n      model.colorSpace = ColorSpace[colorMap.ColorSpace.toUpperCase()];\n\n      if (model.colorSpace === undefined) {\n        vtkErrorMacro(\"ColorSpace \".concat(colorMap.ColorSpace, \" not supported, using RGB instead\"));\n        model.colorSpace = ColorSpace.RGB;\n      }\n    }\n\n    if (colorMap.NanColor) {\n      model.nanColor = [].concat(colorMap.NanColor);\n\n      while (model.nanColor.length < 4) {\n        model.nanColor.push(1.0);\n      }\n    }\n\n    if (colorMap.RGBPoints) {\n      var size = colorMap.RGBPoints.length;\n      model.nodes = [];\n      var midpoint = 0.5;\n      var sharpness = 0.0;\n\n      for (var i = 0; i < size; i += 4) {\n        model.nodes.push({\n          x: colorMap.RGBPoints[i],\n          r: colorMap.RGBPoints[i + 1],\n          g: colorMap.RGBPoints[i + 2],\n          b: colorMap.RGBPoints[i + 3],\n          midpoint: midpoint,\n          sharpness: sharpness\n        });\n      }\n    } // FIXME: not supported ?\n    // if (colorMap.IndexedColors) {\n    // }\n    // if (colorMap.Annotations) {\n    // }\n\n\n    publicAPI.sortAndUpdateRange();\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  clamping: true,\n  colorSpace: ColorSpace.RGB,\n  hSVWrap: true,\n  scale: Scale.LINEAR,\n  nanColor: null,\n  belowRangeColor: null,\n  aboveRangeColor: null,\n  useAboveRangeColor: false,\n  useBelowRangeColor: false,\n  allowDuplicateScalars: false,\n  table: null,\n  tableSize: 0,\n  buildTime: null,\n  nodes: null,\n  discretize: false,\n  numberOfValues: 256\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _Common_Core_ScalarsToColors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].extend(publicAPI, model, initialValues); // Internal objects initialization\n\n  model.table = [];\n  model.nodes = [];\n  model.nanColor = [0.5, 0.0, 0.0, 1.0];\n  model.belowRangeColor = [0.0, 0.0, 0.0, 1.0];\n  model.aboveRangeColor = [1.0, 1.0, 1.0, 1.0];\n  model.buildTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(model.buildTime); // Create get-only macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['buildTime', 'mappingRange']); // Create get-set macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['useAboveRangeColor', 'useBelowRangeColor', 'colorSpace', 'discretize', 'numberOfValues']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setArray(publicAPI, model, ['nanColor', 'belowRangeColor', 'aboveRangeColor'], 4); // Create get macros for array\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getArray(publicAPI, model, ['nanColor', 'belowRangeColor', 'aboveRangeColor']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkColorTransferFunction(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkColorTransferFunction'); // ----------------------------------------------------------------------------\n\nvar vtkColorTransferFunction$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _ColorTransferFunction_Constants_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkColorMaps)\n/* harmony export */ });\n/* harmony import */ var _ColorMaps_json_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ColorMaps.json.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps.json.js\");\n\n\nvar presetMap = Object.create(null);\n_ColorMaps_json_js__WEBPACK_IMPORTED_MODULE_0__.v.filter(function (p) {\n  return p.RGBPoints;\n}).filter(function (p) {\n  return p.ColorSpace !== 'CIELAB';\n}).forEach(function (p) {\n  presetMap[p.Name] = p;\n}); // ----------------------------------------------------------------------------\n\nvar rgbPresetNames = Object.keys(presetMap);\nrgbPresetNames.sort(); // ----------------------------------------------------------------------------\n\nfunction getPresetByName(name) {\n  return presetMap[name];\n} // ----------------------------------------------------------------------------\n\n\nfunction addPreset(preset) {\n  if (!preset.RGBPoints || preset.ColorSpace === 'CIELAB') {\n    return;\n  }\n\n  if (!presetMap[preset.Name]) {\n    rgbPresetNames.push(preset.Name);\n    rgbPresetNames.sort();\n  }\n\n  presetMap[preset.Name] = preset;\n} // ----------------------------------------------------------------------------\n\n\nfunction removePresetByName(name) {\n  var index = rgbPresetNames.indexOf(name);\n\n  if (index > -1) {\n    rgbPresetNames.splice(index, 1);\n  }\n\n  delete presetMap[name];\n} // ----------------------------------------------------------------------------\n\n\nvar vtkColorMaps = {\n  addPreset: addPreset,\n  removePresetByName: removePresetByName,\n  getPresetByName: getPresetByName,\n  rgbPresetNames: rgbPresetNames\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps.json.js":
/*!*********************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps.json.js ***!
  \*********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"v\": () => (/* binding */ vtkColorMaps)\n/* harmony export */ });\nvar vtkColorMaps = [\n\t{\n\t\tName: \"KAAMS\",\n\t\tIndexedColors: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.63,\n\t\t\t0.63,\n\t\t\t1,\n\t\t\t0.67,\n\t\t\t0.5,\n\t\t\t0.33,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0.75,\n\t\t\t0.53,\n\t\t\t0.35,\n\t\t\t0.7,\n\t\t\t1,\n\t\t\t0.75,\n\t\t\t0.5\n\t\t],\n\t\tAnnotations: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t2,\n\t\t\t2,\n\t\t\t3,\n\t\t\t3,\n\t\t\t4,\n\t\t\t4,\n\t\t\t5,\n\t\t\t5,\n\t\t\t6,\n\t\t\t6,\n\t\t\t7,\n\t\t\t7,\n\t\t\t8,\n\t\t\t8,\n\t\t\t9,\n\t\t\t9,\n\t\t\t10,\n\t\t\t10,\n\t\t\t11,\n\t\t\t11\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Diverging\",\n\t\tName: \"Cool to Warm\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.23137254902,\n\t\t\t0.298039215686,\n\t\t\t0.752941176471,\n\t\t\t0.5,\n\t\t\t0.865,\n\t\t\t0.865,\n\t\t\t0.865,\n\t\t\t1,\n\t\t\t0.705882352941,\n\t\t\t0.0156862745098,\n\t\t\t0.149019607843\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tCreator: \"Francesca Samsel\",\n\t\tName: \"Cool to Warm (Extended)\",\n\t\tNanColor: [\n\t\t\t0.25,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.34902,\n\t\t\t0.03125,\n\t\t\t0.039216,\n\t\t\t0.062745,\n\t\t\t0.380392,\n\t\t\t0.0625,\n\t\t\t0.062745,\n\t\t\t0.117647,\n\t\t\t0.411765,\n\t\t\t0.09375,\n\t\t\t0.090196,\n\t\t\t0.184314,\n\t\t\t0.45098,\n\t\t\t0.125,\n\t\t\t0.12549,\n\t\t\t0.262745,\n\t\t\t0.501961,\n\t\t\t0.15625,\n\t\t\t0.160784,\n\t\t\t0.337255,\n\t\t\t0.541176,\n\t\t\t0.1875,\n\t\t\t0.2,\n\t\t\t0.396078,\n\t\t\t0.568627,\n\t\t\t0.21875,\n\t\t\t0.239216,\n\t\t\t0.454902,\n\t\t\t0.6,\n\t\t\t0.25,\n\t\t\t0.286275,\n\t\t\t0.521569,\n\t\t\t0.65098,\n\t\t\t0.28125,\n\t\t\t0.337255,\n\t\t\t0.592157,\n\t\t\t0.701961,\n\t\t\t0.3125,\n\t\t\t0.388235,\n\t\t\t0.654902,\n\t\t\t0.74902,\n\t\t\t0.34375,\n\t\t\t0.466667,\n\t\t\t0.737255,\n\t\t\t0.819608,\n\t\t\t0.375,\n\t\t\t0.572549,\n\t\t\t0.819608,\n\t\t\t0.878431,\n\t\t\t0.40625,\n\t\t\t0.654902,\n\t\t\t0.866667,\n\t\t\t0.909804,\n\t\t\t0.4375,\n\t\t\t0.752941,\n\t\t\t0.917647,\n\t\t\t0.941176,\n\t\t\t0.46875,\n\t\t\t0.823529,\n\t\t\t0.956863,\n\t\t\t0.968627,\n\t\t\t0.5,\n\t\t\t0.988235,\n\t\t\t0.960784,\n\t\t\t0.901961,\n\t\t\t0.5,\n\t\t\t0.941176,\n\t\t\t0.984314,\n\t\t\t0.988235,\n\t\t\t0.52,\n\t\t\t0.988235,\n\t\t\t0.945098,\n\t\t\t0.85098,\n\t\t\t0.54,\n\t\t\t0.980392,\n\t\t\t0.898039,\n\t\t\t0.784314,\n\t\t\t0.5625,\n\t\t\t0.968627,\n\t\t\t0.835294,\n\t\t\t0.698039,\n\t\t\t0.59375,\n\t\t\t0.94902,\n\t\t\t0.733333,\n\t\t\t0.588235,\n\t\t\t0.625,\n\t\t\t0.929412,\n\t\t\t0.65098,\n\t\t\t0.509804,\n\t\t\t0.65625,\n\t\t\t0.909804,\n\t\t\t0.564706,\n\t\t\t0.435294,\n\t\t\t0.6875,\n\t\t\t0.878431,\n\t\t\t0.458824,\n\t\t\t0.352941,\n\t\t\t0.71875,\n\t\t\t0.839216,\n\t\t\t0.388235,\n\t\t\t0.286275,\n\t\t\t0.75,\n\t\t\t0.760784,\n\t\t\t0.294118,\n\t\t\t0.211765,\n\t\t\t0.78125,\n\t\t\t0.701961,\n\t\t\t0.211765,\n\t\t\t0.168627,\n\t\t\t0.8125,\n\t\t\t0.65098,\n\t\t\t0.156863,\n\t\t\t0.129412,\n\t\t\t0.84375,\n\t\t\t0.6,\n\t\t\t0.094118,\n\t\t\t0.094118,\n\t\t\t0.875,\n\t\t\t0.54902,\n\t\t\t0.066667,\n\t\t\t0.098039,\n\t\t\t0.90625,\n\t\t\t0.501961,\n\t\t\t0.05098,\n\t\t\t0.12549,\n\t\t\t0.9375,\n\t\t\t0.45098,\n\t\t\t0.054902,\n\t\t\t0.172549,\n\t\t\t0.96875,\n\t\t\t0.4,\n\t\t\t0.054902,\n\t\t\t0.192157,\n\t\t\t1,\n\t\t\t0.34902,\n\t\t\t0.070588,\n\t\t\t0.211765\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Diverging\",\n\t\tName: \"Warm to Cool\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.705882352941,\n\t\t\t0.0156862745098,\n\t\t\t0.149019607843,\n\t\t\t0.5,\n\t\t\t0.865,\n\t\t\t0.865,\n\t\t\t0.865,\n\t\t\t1,\n\t\t\t0.23137254902,\n\t\t\t0.298039215686,\n\t\t\t0.752941176471\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tCreator: \"Francesca Samsel\",\n\t\tName: \"Warm to Cool (Extended)\",\n\t\tNanColor: [\n\t\t\t0.250004,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.34902,\n\t\t\t0,\n\t\t\t0.129412,\n\t\t\t0.025,\n\t\t\t0.4,\n\t\t\t0.00392157,\n\t\t\t0.101961,\n\t\t\t0.05,\n\t\t\t0.470588,\n\t\t\t0.0156863,\n\t\t\t0.0901961,\n\t\t\t0.075,\n\t\t\t0.54902,\n\t\t\t0.027451,\n\t\t\t0.0705882,\n\t\t\t0.1,\n\t\t\t0.619608,\n\t\t\t0.0627451,\n\t\t\t0.0431373,\n\t\t\t0.125,\n\t\t\t0.690196,\n\t\t\t0.12549,\n\t\t\t0.0627451,\n\t\t\t0.15,\n\t\t\t0.741176,\n\t\t\t0.184314,\n\t\t\t0.0745098,\n\t\t\t0.175,\n\t\t\t0.788235,\n\t\t\t0.266667,\n\t\t\t0.0941176,\n\t\t\t0.2,\n\t\t\t0.811765,\n\t\t\t0.345098,\n\t\t\t0.113725,\n\t\t\t0.225,\n\t\t\t0.831373,\n\t\t\t0.411765,\n\t\t\t0.133333,\n\t\t\t0.25,\n\t\t\t0.85098,\n\t\t\t0.47451,\n\t\t\t0.145098,\n\t\t\t0.275,\n\t\t\t0.870588,\n\t\t\t0.54902,\n\t\t\t0.156863,\n\t\t\t0.3,\n\t\t\t0.878431,\n\t\t\t0.619608,\n\t\t\t0.168627,\n\t\t\t0.325,\n\t\t\t0.890196,\n\t\t\t0.658824,\n\t\t\t0.196078,\n\t\t\t0.35,\n\t\t\t0.909804,\n\t\t\t0.717647,\n\t\t\t0.235294,\n\t\t\t0.375,\n\t\t\t0.929412,\n\t\t\t0.776471,\n\t\t\t0.278431,\n\t\t\t0.395522,\n\t\t\t0.94902,\n\t\t\t0.823529,\n\t\t\t0.321569,\n\t\t\t0.418905,\n\t\t\t0.968627,\n\t\t\t0.87451,\n\t\t\t0.407843,\n\t\t\t0.444278,\n\t\t\t0.980392,\n\t\t\t0.917647,\n\t\t\t0.509804,\n\t\t\t0.470149,\n\t\t\t0.988235,\n\t\t\t0.956863,\n\t\t\t0.643137,\n\t\t\t0.483582,\n\t\t\t0.992157,\n\t\t\t0.964706,\n\t\t\t0.713725,\n\t\t\t0.499,\n\t\t\t0.988235,\n\t\t\t0.980392,\n\t\t\t0.870588,\n\t\t\t0.5,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.501,\n\t\t\t0.913725,\n\t\t\t0.988235,\n\t\t\t0.937255,\n\t\t\t0.516418,\n\t\t\t0.827451,\n\t\t\t0.980392,\n\t\t\t0.886275,\n\t\t\t0.531343,\n\t\t\t0.764706,\n\t\t\t0.980392,\n\t\t\t0.866667,\n\t\t\t0.546766,\n\t\t\t0.658824,\n\t\t\t0.980392,\n\t\t\t0.843137,\n\t\t\t0.564179,\n\t\t\t0.572549,\n\t\t\t0.964706,\n\t\t\t0.835294,\n\t\t\t0.587562,\n\t\t\t0.423529,\n\t\t\t0.941176,\n\t\t\t0.87451,\n\t\t\t0.60597,\n\t\t\t0.262745,\n\t\t\t0.901961,\n\t\t\t0.862745,\n\t\t\t0.629851,\n\t\t\t0.0705882,\n\t\t\t0.854902,\n\t\t\t0.870588,\n\t\t\t0.651741,\n\t\t\t0.0509804,\n\t\t\t0.8,\n\t\t\t0.85098,\n\t\t\t0.681592,\n\t\t\t0.0235294,\n\t\t\t0.709804,\n\t\t\t0.831373,\n\t\t\t0.712935,\n\t\t\t0.0313725,\n\t\t\t0.615686,\n\t\t\t0.811765,\n\t\t\t0.75,\n\t\t\t0.0313725,\n\t\t\t0.537255,\n\t\t\t0.788235,\n\t\t\t0.775,\n\t\t\t0.0392157,\n\t\t\t0.466667,\n\t\t\t0.768627,\n\t\t\t0.8,\n\t\t\t0.0509804,\n\t\t\t0.396078,\n\t\t\t0.741176,\n\t\t\t0.825,\n\t\t\t0.054902,\n\t\t\t0.317647,\n\t\t\t0.709804,\n\t\t\t0.85,\n\t\t\t0.054902,\n\t\t\t0.243137,\n\t\t\t0.678431,\n\t\t\t0.875,\n\t\t\t0.0431373,\n\t\t\t0.164706,\n\t\t\t0.639216,\n\t\t\t0.9,\n\t\t\t0.0313725,\n\t\t\t0.0980392,\n\t\t\t0.6,\n\t\t\t0.925,\n\t\t\t0.0392157,\n\t\t\t0.0392157,\n\t\t\t0.560784,\n\t\t\t0.95,\n\t\t\t0.105882,\n\t\t\t0.0509804,\n\t\t\t0.509804,\n\t\t\t0.975,\n\t\t\t0.113725,\n\t\t\t0.0235294,\n\t\t\t0.45098,\n\t\t\t1,\n\t\t\t0.12549,\n\t\t\t0,\n\t\t\t0.380392\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Rainbow Desaturated\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.278431372549,\n\t\t\t0.278431372549,\n\t\t\t0.858823529412,\n\t\t\t0.143,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.360784313725,\n\t\t\t0.285,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.429,\n\t\t\t0,\n\t\t\t0.501960784314,\n\t\t\t0,\n\t\t\t0.571,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.714,\n\t\t\t1,\n\t\t\t0.380392156863,\n\t\t\t0,\n\t\t\t0.857,\n\t\t\t0.419607843137,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.878431372549,\n\t\t\t0.301960784314,\n\t\t\t0.301960784314\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Cold and Hot\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.45,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.501960784314,\n\t\t\t0.55,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Black-Body Radiation\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t0.498039215686,\n\t\t\t1\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.4,\n\t\t\t0.901960784314,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.8,\n\t\t\t0.901960784314,\n\t\t\t0.901960784314,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"X Ray\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Grayscale\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"BkRd\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t1\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"BkGn\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t0,\n\t\t\t1\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"BkBu\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"BkMa\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"BkCy\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t1\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Black, Blue and White\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.333,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.501960784314,\n\t\t\t0.666,\n\t\t\t0,\n\t\t\t0.501960784314,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Black, Orange and White\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.333,\n\t\t\t0.501960784314,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.666,\n\t\t\t1,\n\t\t\t0.501960784314,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tCreator: \"Francesca Samsel\",\n\t\tName: \"Linear YGB 1211g\",\n\t\tNanColor: [\n\t\t\t0.25,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.988235,\n\t\t\t0.968627,\n\t\t\t0.02,\n\t\t\t1,\n\t\t\t0.952941,\n\t\t\t0.878431,\n\t\t\t0.05,\n\t\t\t0.968627,\n\t\t\t0.905882,\n\t\t\t0.776471,\n\t\t\t0.1,\n\t\t\t0.94902,\n\t\t\t0.898039,\n\t\t\t0.647059,\n\t\t\t0.15,\n\t\t\t0.901961,\n\t\t\t0.878431,\n\t\t\t0.556863,\n\t\t\t0.2,\n\t\t\t0.847059,\n\t\t\t0.858824,\n\t\t\t0.482353,\n\t\t\t0.25,\n\t\t\t0.690196,\n\t\t\t0.819608,\n\t\t\t0.435294,\n\t\t\t0.3,\n\t\t\t0.513725,\n\t\t\t0.768627,\n\t\t\t0.384314,\n\t\t\t0.35,\n\t\t\t0.337255,\n\t\t\t0.721569,\n\t\t\t0.337255,\n\t\t\t0.4,\n\t\t\t0.278431,\n\t\t\t0.658824,\n\t\t\t0.392157,\n\t\t\t0.45,\n\t\t\t0.231373,\n\t\t\t0.639216,\n\t\t\t0.435294,\n\t\t\t0.5,\n\t\t\t0.203922,\n\t\t\t0.6,\n\t\t\t0.486275,\n\t\t\t0.55,\n\t\t\t0.172549,\n\t\t\t0.568627,\n\t\t\t0.537255,\n\t\t\t0.6,\n\t\t\t0.141176,\n\t\t\t0.517647,\n\t\t\t0.54902,\n\t\t\t0.65,\n\t\t\t0.133333,\n\t\t\t0.458824,\n\t\t\t0.541176,\n\t\t\t0.7,\n\t\t\t0.12549,\n\t\t\t0.396078,\n\t\t\t0.529412,\n\t\t\t0.75,\n\t\t\t0.117647,\n\t\t\t0.321569,\n\t\t\t0.521569,\n\t\t\t0.8,\n\t\t\t0.121569,\n\t\t\t0.258824,\n\t\t\t0.509804,\n\t\t\t0.85,\n\t\t\t0.133333,\n\t\t\t0.227451,\n\t\t\t0.501961,\n\t\t\t0.9,\n\t\t\t0.145098,\n\t\t\t0.192157,\n\t\t\t0.490196,\n\t\t\t0.95,\n\t\t\t0.188235,\n\t\t\t0.164706,\n\t\t\t0.470588,\n\t\t\t1,\n\t\t\t0.258824,\n\t\t\t0.196078,\n\t\t\t0.439216\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"CIELAB\",\n\t\tCreator: \"Francesca Samsel\",\n\t\tName: \"Linear Green (Gr4L)\",\n\t\tNanColor: [\n\t\t\t0.25,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.054902,\n\t\t\t0.109804,\n\t\t\t0.121569,\n\t\t\t0.05,\n\t\t\t0.07451,\n\t\t\t0.172549,\n\t\t\t0.180392,\n\t\t\t0.1,\n\t\t\t0.086275,\n\t\t\t0.231373,\n\t\t\t0.219608,\n\t\t\t0.15,\n\t\t\t0.094118,\n\t\t\t0.278431,\n\t\t\t0.25098,\n\t\t\t0.2,\n\t\t\t0.109804,\n\t\t\t0.34902,\n\t\t\t0.278431,\n\t\t\t0.25,\n\t\t\t0.113725,\n\t\t\t0.4,\n\t\t\t0.278431,\n\t\t\t0.3,\n\t\t\t0.117647,\n\t\t\t0.45098,\n\t\t\t0.270588,\n\t\t\t0.35,\n\t\t\t0.117647,\n\t\t\t0.490196,\n\t\t\t0.243137,\n\t\t\t0.4,\n\t\t\t0.113725,\n\t\t\t0.521569,\n\t\t\t0.203922,\n\t\t\t0.45,\n\t\t\t0.109804,\n\t\t\t0.54902,\n\t\t\t0.152941,\n\t\t\t0.5,\n\t\t\t0.082353,\n\t\t\t0.588235,\n\t\t\t0.082353,\n\t\t\t0.55,\n\t\t\t0.109804,\n\t\t\t0.631373,\n\t\t\t0.05098,\n\t\t\t0.6,\n\t\t\t0.211765,\n\t\t\t0.678431,\n\t\t\t0.082353,\n\t\t\t0.65,\n\t\t\t0.317647,\n\t\t\t0.721569,\n\t\t\t0.113725,\n\t\t\t0.7,\n\t\t\t0.431373,\n\t\t\t0.760784,\n\t\t\t0.160784,\n\t\t\t0.75,\n\t\t\t0.556863,\n\t\t\t0.8,\n\t\t\t0.239216,\n\t\t\t0.8,\n\t\t\t0.666667,\n\t\t\t0.839216,\n\t\t\t0.294118,\n\t\t\t0.85,\n\t\t\t0.784314,\n\t\t\t0.878431,\n\t\t\t0.396078,\n\t\t\t0.9,\n\t\t\t0.886275,\n\t\t\t0.921569,\n\t\t\t0.533333,\n\t\t\t0.95,\n\t\t\t0.960784,\n\t\t\t0.94902,\n\t\t\t0.670588,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.984314,\n\t\t\t0.901961\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tCreator: \"Francesca Samsel\",\n\t\tName: \"Linear Blue (8_31f)\",\n\t\tNanColor: [\n\t\t\t0.25,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.960784,\n\t\t\t1,\n\t\t\t0.980392,\n\t\t\t0.05,\n\t\t\t0.815686,\n\t\t\t0.960784,\n\t\t\t0.913725,\n\t\t\t0.1,\n\t\t\t0.670588,\n\t\t\t0.929412,\n\t\t\t0.870588,\n\t\t\t0.15,\n\t\t\t0.556863,\n\t\t\t0.901961,\n\t\t\t0.843137,\n\t\t\t0.2,\n\t\t\t0.478431,\n\t\t\t0.870588,\n\t\t\t0.823529,\n\t\t\t0.25,\n\t\t\t0.439216,\n\t\t\t0.831373,\n\t\t\t0.803922,\n\t\t\t0.3,\n\t\t\t0.4,\n\t\t\t0.8,\n\t\t\t0.788235,\n\t\t\t0.35,\n\t\t\t0.376471,\n\t\t\t0.768627,\n\t\t\t0.768627,\n\t\t\t0.4,\n\t\t\t0.34902,\n\t\t\t0.709804,\n\t\t\t0.729412,\n\t\t\t0.45,\n\t\t\t0.32549,\n\t\t\t0.654902,\n\t\t\t0.690196,\n\t\t\t0.5,\n\t\t\t0.301961,\n\t\t\t0.607843,\n\t\t\t0.658824,\n\t\t\t0.55,\n\t\t\t0.247059,\n\t\t\t0.545098,\n\t\t\t0.619608,\n\t\t\t0.6,\n\t\t\t0.239216,\n\t\t\t0.494118,\n\t\t\t0.580392,\n\t\t\t0.65,\n\t\t\t0.227451,\n\t\t\t0.439216,\n\t\t\t0.541176,\n\t\t\t0.7,\n\t\t\t0.227451,\n\t\t\t0.403922,\n\t\t\t0.521569,\n\t\t\t0.75,\n\t\t\t0.231373,\n\t\t\t0.368627,\n\t\t\t0.501961,\n\t\t\t0.8,\n\t\t\t0.227451,\n\t\t\t0.321569,\n\t\t\t0.470588,\n\t\t\t0.85,\n\t\t\t0.219608,\n\t\t\t0.282353,\n\t\t\t0.439216,\n\t\t\t0.9,\n\t\t\t0.192157,\n\t\t\t0.235294,\n\t\t\t0.4,\n\t\t\t0.95,\n\t\t\t0.160784,\n\t\t\t0.184314,\n\t\t\t0.34902,\n\t\t\t1,\n\t\t\t0.133333,\n\t\t\t0.12549,\n\t\t\t0.301961\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"HSV\",\n\t\tName: \"Blue to Red Rainbow\",\n\t\tNanColor: [\n\t\t\t0.498039215686,\n\t\t\t0.498039215686,\n\t\t\t0.498039215686\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"HSV\",\n\t\tName: \"Red to Blue Rainbow\",\n\t\tNanColor: [\n\t\t\t0.498039215686,\n\t\t\t0.498039215686,\n\t\t\t0.498039215686\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Rainbow Blended White\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.17,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.34,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.67,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.84,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.878431372549,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Rainbow Blended Grey\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.317647058824,\n\t\t\t0.341176470588,\n\t\t\t0.43137254902,\n\t\t\t0.17,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.34,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.67,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.84,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.878431372549,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Rainbow Blended Black\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.17,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.34,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.67,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.84,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.878431372549,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Blue to Yellow\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.0392156862745,\n\t\t\t0.0392156862745,\n\t\t\t0.949019607843,\n\t\t\t1,\n\t\t\t0.949019607843,\n\t\t\t0.949019607843,\n\t\t\t0.0392156862745\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"HSV\",\n\t\tName: \"blot\",\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.166,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.167,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.332,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.333,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.501,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.666,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.667,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.832,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.833,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"CIELab Blue to Red\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.6,\n\t\t\t0.749019607843,\n\t\t\t1,\n\t\t\t0.76862745098,\n\t\t\t0.466666666667,\n\t\t\t0.341176470588\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"jet\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.5625,\n\t\t\t-0.777778,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t-0.269841,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t-0.015873,\n\t\t\t0.5,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0.238095,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.746032,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"rainbow\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t-0.5,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.5,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_rainbow_bright\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.32549,\n\t\t\t0.14902,\n\t\t\t0.960784,\n\t\t\t-0.866221,\n\t\t\t0.297047,\n\t\t\t0.375586,\n\t\t\t0.963836,\n\t\t\t-0.732441,\n\t\t\t0.180302,\n\t\t\t0.536818,\n\t\t\t0.964627,\n\t\t\t-0.598662,\n\t\t\t0.1302,\n\t\t\t0.649207,\n\t\t\t0.929647,\n\t\t\t-0.464883,\n\t\t\t0.0445143,\n\t\t\t0.749654,\n\t\t\t0.855998,\n\t\t\t-0.331104,\n\t\t\t0.0271325,\n\t\t\t0.830713,\n\t\t\t0.721527,\n\t\t\t-0.197324,\n\t\t\t0.259504,\n\t\t\t0.866145,\n\t\t\t0.543555,\n\t\t\t-0.0635452,\n\t\t\t0.428364,\n\t\t\t0.890725,\n\t\t\t0.329819,\n\t\t\t0.0702341,\n\t\t\t0.568503,\n\t\t\t0.898508,\n\t\t\t0.187623,\n\t\t\t0.204013,\n\t\t\t0.738259,\n\t\t\t0.890317,\n\t\t\t0.0825461,\n\t\t\t0.337793,\n\t\t\t0.84546,\n\t\t\t0.86136,\n\t\t\t0.0147555,\n\t\t\t0.471572,\n\t\t\t0.912191,\n\t\t\t0.808018,\n\t\t\t0,\n\t\t\t0.605351,\n\t\t\t0.962848,\n\t\t\t0.710445,\n\t\t\t0,\n\t\t\t0.73913,\n\t\t\t0.999469,\n\t\t\t0.600258,\n\t\t\t0.0176284,\n\t\t\t0.87291,\n\t\t\t0.994156,\n\t\t\t0.445975,\n\t\t\t0.193912,\n\t\t\t1,\n\t\t\t0.980407,\n\t\t\t0.247105,\n\t\t\t0.262699\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_rainbow_dark\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.423499,\n\t\t\t-0.866221,\n\t\t\t0,\n\t\t\t0.119346,\n\t\t\t0.529237,\n\t\t\t-0.732441,\n\t\t\t0,\n\t\t\t0.238691,\n\t\t\t0.634976,\n\t\t\t-0.598662,\n\t\t\t0,\n\t\t\t0.346852,\n\t\t\t0.68788,\n\t\t\t-0.464883,\n\t\t\t0,\n\t\t\t0.45022,\n\t\t\t0.718141,\n\t\t\t-0.331104,\n\t\t\t0,\n\t\t\t0.553554,\n\t\t\t0.664839,\n\t\t\t-0.197324,\n\t\t\t0,\n\t\t\t0.651082,\n\t\t\t0.519303,\n\t\t\t-0.0635452,\n\t\t\t0.115841,\n\t\t\t0.72479,\n\t\t\t0.352857,\n\t\t\t0.0702341,\n\t\t\t0.326771,\n\t\t\t0.781195,\n\t\t\t0.140187,\n\t\t\t0.204013,\n\t\t\t0.522765,\n\t\t\t0.798524,\n\t\t\t0.0284624,\n\t\t\t0.337793,\n\t\t\t0.703162,\n\t\t\t0.788685,\n\t\t\t0.00885756,\n\t\t\t0.471572,\n\t\t\t0.845118,\n\t\t\t0.751133,\n\t\t\t0,\n\t\t\t0.605351,\n\t\t\t0.955734,\n\t\t\t0.690825,\n\t\t\t0,\n\t\t\t0.73913,\n\t\t\t0.995402,\n\t\t\t0.567916,\n\t\t\t0.0618524,\n\t\t\t0.87291,\n\t\t\t0.987712,\n\t\t\t0.403398,\n\t\t\t0.164851,\n\t\t\t1,\n\t\t\t0.980407,\n\t\t\t0.247105,\n\t\t\t0.262699\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"nic_CubicL\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.479965,\n\t\t\t0.0118108,\n\t\t\t0.5307,\n\t\t\t-0.87451,\n\t\t\t0.522213,\n\t\t\t0.0551282,\n\t\t\t0.706919,\n\t\t\t-0.74902,\n\t\t\t0.50839,\n\t\t\t0.237278,\n\t\t\t0.867764,\n\t\t\t-0.623529,\n\t\t\t0.451617,\n\t\t\t0.373834,\n\t\t\t0.987255,\n\t\t\t-0.498039,\n\t\t\t0.39365,\n\t\t\t0.497255,\n\t\t\t0.97506,\n\t\t\t-0.372549,\n\t\t\t0.328631,\n\t\t\t0.599639,\n\t\t\t0.891843,\n\t\t\t-0.247059,\n\t\t\t0.250043,\n\t\t\t0.690286,\n\t\t\t0.778553,\n\t\t\t-0.121569,\n\t\t\t0.249656,\n\t\t\t0.764905,\n\t\t\t0.645857,\n\t\t\t0.00392157,\n\t\t\t0.297954,\n\t\t\t0.821466,\n\t\t\t0.50449,\n\t\t\t0.129412,\n\t\t\t0.337509,\n\t\t\t0.872595,\n\t\t\t0.358447,\n\t\t\t0.254902,\n\t\t\t0.430011,\n\t\t\t0.913789,\n\t\t\t0.297079,\n\t\t\t0.380392,\n\t\t\t0.587191,\n\t\t\t0.931381,\n\t\t\t0.333353,\n\t\t\t0.505882,\n\t\t\t0.727937,\n\t\t\t0.93591,\n\t\t\t0.353742,\n\t\t\t0.631373,\n\t\t\t0.826403,\n\t\t\t0.921081,\n\t\t\t0.365066,\n\t\t\t0.756863,\n\t\t\t0.893201,\n\t\t\t0.846317,\n\t\t\t0.372662,\n\t\t\t0.882353,\n\t\t\t0.965347,\n\t\t\t0.73884,\n\t\t\t0.378506,\n\t\t\t1,\n\t\t\t0.983235,\n\t\t\t0.597451,\n\t\t\t0.366856\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"nic_CubicYF\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.5151,\n\t\t\t0.0482,\n\t\t\t0.6697,\n\t\t\t-0.87451,\n\t\t\t0.520711,\n\t\t\t0.168955,\n\t\t\t0.800574,\n\t\t\t-0.74902,\n\t\t\t0.493694,\n\t\t\t0.278596,\n\t\t\t0.911824,\n\t\t\t-0.623529,\n\t\t\t0.440026,\n\t\t\t0.369475,\n\t\t\t0.984978,\n\t\t\t-0.498039,\n\t\t\t0.398932,\n\t\t\t0.457593,\n\t\t\t0.987053,\n\t\t\t-0.372549,\n\t\t\t0.350651,\n\t\t\t0.540644,\n\t\t\t0.929608,\n\t\t\t-0.247059,\n\t\t\t0.298827,\n\t\t\t0.615625,\n\t\t\t0.857729,\n\t\t\t-0.121569,\n\t\t\t0.239928,\n\t\t\t0.685061,\n\t\t\t0.769531,\n\t\t\t0.00392157,\n\t\t\t0.228832,\n\t\t\t0.739349,\n\t\t\t0.673287,\n\t\t\t0.129412,\n\t\t\t0.263297,\n\t\t\t0.78608,\n\t\t\t0.569988,\n\t\t\t0.254902,\n\t\t\t0.298107,\n\t\t\t0.828337,\n\t\t\t0.460214,\n\t\t\t0.380392,\n\t\t\t0.33092,\n\t\t\t0.864071,\n\t\t\t0.352674,\n\t\t\t0.505882,\n\t\t\t0.38306,\n\t\t\t0.898169,\n\t\t\t0.287309,\n\t\t\t0.631373,\n\t\t\t0.49023,\n\t\t\t0.917481,\n\t\t\t0.307961,\n\t\t\t0.756863,\n\t\t\t0.62372,\n\t\t\t0.926026,\n\t\t\t0.332309,\n\t\t\t0.882353,\n\t\t\t0.717458,\n\t\t\t0.92527,\n\t\t\t0.342476,\n\t\t\t1,\n\t\t\t0.8,\n\t\t\t0.9255,\n\t\t\t0.3529\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"gist_earth\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.239216,\n\t\t\t0.027451,\n\t\t\t0.415686,\n\t\t\t-0.74902,\n\t\t\t0.0901961,\n\t\t\t0.254902,\n\t\t\t0.556863,\n\t\t\t-0.623529,\n\t\t\t0.0941176,\n\t\t\t0.352941,\n\t\t\t0.54902,\n\t\t\t-0.498039,\n\t\t\t0.105882,\n\t\t\t0.435294,\n\t\t\t0.533333,\n\t\t\t-0.372549,\n\t\t\t0.12549,\n\t\t\t0.52549,\n\t\t\t0.501961,\n\t\t\t-0.247059,\n\t\t\t0.156863,\n\t\t\t0.596078,\n\t\t\t0.443137,\n\t\t\t-0.121569,\n\t\t\t0.196078,\n\t\t\t0.65098,\n\t\t\t0.380392,\n\t\t\t0.00392157,\n\t\t\t0.282353,\n\t\t\t0.717647,\n\t\t\t0.301961,\n\t\t\t0.129412,\n\t\t\t0.466667,\n\t\t\t0.772549,\n\t\t\t0.27451,\n\t\t\t0.254902,\n\t\t\t0.678431,\n\t\t\t0.784314,\n\t\t\t0.309804,\n\t\t\t0.380392,\n\t\t\t0.901961,\n\t\t\t0.756863,\n\t\t\t0.376471,\n\t\t\t0.505882,\n\t\t\t0.992157,\n\t\t\t0.705882,\n\t\t\t0.521569,\n\t\t\t0.631373,\n\t\t\t1,\n\t\t\t0.721569,\n\t\t\t0.701961,\n\t\t\t0.756863,\n\t\t\t1,\n\t\t\t0.784314,\n\t\t\t0.784314,\n\t\t\t0.882353,\n\t\t\t1,\n\t\t\t0.866667,\n\t\t\t0.866667,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"2hot\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.0416667,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.873016,\n\t\t\t0.208333,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.746032,\n\t\t\t0.375,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.619048,\n\t\t\t0.541667,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.492063,\n\t\t\t0.708333,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.365079,\n\t\t\t0.854137,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.238095,\n\t\t\t0.937488,\n\t\t\t0.039062,\n\t\t\t0,\n\t\t\t-0.111111,\n\t\t\t1,\n\t\t\t0.208333,\n\t\t\t0,\n\t\t\t0.015873,\n\t\t\t1,\n\t\t\t0.375,\n\t\t\t0,\n\t\t\t0.142857,\n\t\t\t1,\n\t\t\t0.541667,\n\t\t\t0,\n\t\t\t0.269841,\n\t\t\t1,\n\t\t\t0.708333,\n\t\t\t0,\n\t\t\t0.396825,\n\t\t\t1,\n\t\t\t0.858805,\n\t\t\t0.03125,\n\t\t\t0.52381,\n\t\t\t1,\n\t\t\t0.947392,\n\t\t\t0.15625,\n\t\t\t0.650794,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.3125,\n\t\t\t0.777778,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.5625,\n\t\t\t0.904762,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8125,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_red2yellow_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t7.54296e-7,\n\t\t\t0,\n\t\t\t0.0000109827,\n\t\t\t-0.87451,\n\t\t\t0.18285,\n\t\t\t0.0264094,\n\t\t\t0,\n\t\t\t-0.74902,\n\t\t\t0.3066,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.623529,\n\t\t\t0.422841,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.498039,\n\t\t\t0.522945,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.372549,\n\t\t\t0.605721,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.247059,\n\t\t\t0.672502,\n\t\t\t0.14168,\n\t\t\t0,\n\t\t\t-0.121569,\n\t\t\t0.728167,\n\t\t\t0.244025,\n\t\t\t0,\n\t\t\t0.00392157,\n\t\t\t0.781215,\n\t\t\t0.333454,\n\t\t\t0,\n\t\t\t0.129412,\n\t\t\t0.825,\n\t\t\t0.423586,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t0.855893,\n\t\t\t0.516793,\n\t\t\t0,\n\t\t\t0.380392,\n\t\t\t0.880491,\n\t\t\t0.608846,\n\t\t\t0,\n\t\t\t0.505882,\n\t\t\t0.910305,\n\t\t\t0.695505,\n\t\t\t0,\n\t\t\t0.631373,\n\t\t\t0.94109,\n\t\t\t0.779067,\n\t\t\t0.223528,\n\t\t\t0.756863,\n\t\t\t0.967873,\n\t\t\t0.858572,\n\t\t\t0.473521,\n\t\t\t0.882353,\n\t\t\t0.986815,\n\t\t\t0.933211,\n\t\t\t0.751583,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999997\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_marine2gold_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t1.11641e-7,\n\t\t\t0,\n\t\t\t0.00000162551,\n\t\t\t-0.87451,\n\t\t\t0.0413146,\n\t\t\t0.0619808,\n\t\t\t0.209857,\n\t\t\t-0.74902,\n\t\t\t0.0185557,\n\t\t\t0.101341,\n\t\t\t0.350684,\n\t\t\t-0.623529,\n\t\t\t0.00486405,\n\t\t\t0.149847,\n\t\t\t0.461054,\n\t\t\t-0.498039,\n\t\t\t0.0836345,\n\t\t\t0.210845,\n\t\t\t0.517906,\n\t\t\t-0.372549,\n\t\t\t0.173222,\n\t\t\t0.276134,\n\t\t\t0.541793,\n\t\t\t-0.247059,\n\t\t\t0.259857,\n\t\t\t0.343877,\n\t\t\t0.535869,\n\t\t\t-0.121569,\n\t\t\t0.362299,\n\t\t\t0.408124,\n\t\t\t0.504293,\n\t\t\t0.00392157,\n\t\t\t0.468266,\n\t\t\t0.468276,\n\t\t\t0.468257,\n\t\t\t0.129412,\n\t\t\t0.582781,\n\t\t\t0.527545,\n\t\t\t0.374914,\n\t\t\t0.254902,\n\t\t\t0.691591,\n\t\t\t0.585251,\n\t\t\t0.274266,\n\t\t\t0.380392,\n\t\t\t0.784454,\n\t\t\t0.645091,\n\t\t\t0.247332,\n\t\t\t0.505882,\n\t\t\t0.862299,\n\t\t\t0.710383,\n\t\t\t0.27518,\n\t\t\t0.631373,\n\t\t\t0.920863,\n\t\t\t0.782923,\n\t\t\t0.351563,\n\t\t\t0.756863,\n\t\t\t0.955792,\n\t\t\t0.859699,\n\t\t\t0.533541,\n\t\t\t0.882353,\n\t\t\t0.976162,\n\t\t\t0.93433,\n\t\t\t0.780671,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999983\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_blue2gold_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.0742735,\n\t\t\t0.0440331,\n\t\t\t0.230013,\n\t\t\t-0.74902,\n\t\t\t0.125276,\n\t\t\t0.0258685,\n\t\t\t0.415826,\n\t\t\t-0.623529,\n\t\t\t0.143879,\n\t\t\t0.0163031,\n\t\t\t0.591346,\n\t\t\t-0.498039,\n\t\t\t0.212261,\n\t\t\t0.0627855,\n\t\t\t0.705239,\n\t\t\t-0.372549,\n\t\t\t0.306048,\n\t\t\t0.141178,\n\t\t\t0.763636,\n\t\t\t-0.247059,\n\t\t\t0.391537,\n\t\t\t0.232286,\n\t\t\t0.773263,\n\t\t\t-0.121569,\n\t\t\t0.461734,\n\t\t\t0.336633,\n\t\t\t0.708321,\n\t\t\t0.00392157,\n\t\t\t0.54209,\n\t\t\t0.427581,\n\t\t\t0.590007,\n\t\t\t0.129412,\n\t\t\t0.61704,\n\t\t\t0.508623,\n\t\t\t0.460978,\n\t\t\t0.254902,\n\t\t\t0.702703,\n\t\t\t0.579586,\n\t\t\t0.309117,\n\t\t\t0.380392,\n\t\t\t0.790336,\n\t\t\t0.644811,\n\t\t\t0.170397,\n\t\t\t0.505882,\n\t\t\t0.870173,\n\t\t\t0.710733,\n\t\t\t0.117134,\n\t\t\t0.631373,\n\t\t\t0.93656,\n\t\t\t0.781991,\n\t\t\t0.157144,\n\t\t\t0.756863,\n\t\t\t0.965672,\n\t\t\t0.862068,\n\t\t\t0.409836,\n\t\t\t0.882353,\n\t\t\t0.985751,\n\t\t\t0.936296,\n\t\t\t0.714162,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999999\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_sapphire2gold_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.107704,\n\t\t\t0.107708,\n\t\t\t0.107694,\n\t\t\t-0.87451,\n\t\t\t0.1851,\n\t\t\t0.112354,\n\t\t\t0.308554,\n\t\t\t-0.74902,\n\t\t\t0.236782,\n\t\t\t0.114233,\n\t\t\t0.48788,\n\t\t\t-0.623529,\n\t\t\t0.28296,\n\t\t\t0.126187,\n\t\t\t0.639464,\n\t\t\t-0.498039,\n\t\t\t0.344787,\n\t\t\t0.171643,\n\t\t\t0.739713,\n\t\t\t-0.372549,\n\t\t\t0.413325,\n\t\t\t0.242371,\n\t\t\t0.76913,\n\t\t\t-0.247059,\n\t\t\t0.481863,\n\t\t\t0.3131,\n\t\t\t0.719841,\n\t\t\t-0.121569,\n\t\t\t0.550402,\n\t\t\t0.383829,\n\t\t\t0.612222,\n\t\t\t0.00392157,\n\t\t\t0.61894,\n\t\t\t0.454558,\n\t\t\t0.51126,\n\t\t\t0.129412,\n\t\t\t0.687478,\n\t\t\t0.525287,\n\t\t\t0.39993,\n\t\t\t0.254902,\n\t\t\t0.756017,\n\t\t\t0.596016,\n\t\t\t0.289923,\n\t\t\t0.380392,\n\t\t\t0.824555,\n\t\t\t0.666745,\n\t\t\t0.255498,\n\t\t\t0.505882,\n\t\t\t0.892979,\n\t\t\t0.736822,\n\t\t\t0.27696,\n\t\t\t0.631373,\n\t\t\t0.938851,\n\t\t\t0.804966,\n\t\t\t0.351734,\n\t\t\t0.756863,\n\t\t\t0.966491,\n\t\t\t0.874853,\n\t\t\t0.53572,\n\t\t\t0.882353,\n\t\t\t0.982105,\n\t\t\t0.94153,\n\t\t\t0.782579,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999986\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_red2purple_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.167793,\n\t\t\t0.0166271,\n\t\t\t0.0431278,\n\t\t\t-0.74902,\n\t\t\t0.262608,\n\t\t\t0.0107595,\n\t\t\t0.0791181,\n\t\t\t-0.623529,\n\t\t\t0.351902,\n\t\t\t0.0101858,\n\t\t\t0.100926,\n\t\t\t-0.498039,\n\t\t\t0.441257,\n\t\t\t0.0160835,\n\t\t\t0.131919,\n\t\t\t-0.372549,\n\t\t\t0.5221,\n\t\t\t0.0555972,\n\t\t\t0.195625,\n\t\t\t-0.247059,\n\t\t\t0.593852,\n\t\t\t0.104294,\n\t\t\t0.310234,\n\t\t\t-0.121569,\n\t\t\t0.654628,\n\t\t\t0.158115,\n\t\t\t0.448486,\n\t\t\t0.00392157,\n\t\t\t0.707443,\n\t\t\t0.220914,\n\t\t\t0.570253,\n\t\t\t0.129412,\n\t\t\t0.749504,\n\t\t\t0.293268,\n\t\t\t0.67897,\n\t\t\t0.254902,\n\t\t\t0.781587,\n\t\t\t0.370517,\n\t\t\t0.779269,\n\t\t\t0.380392,\n\t\t\t0.809951,\n\t\t\t0.451099,\n\t\t\t0.855831,\n\t\t\t0.505882,\n\t\t\t0.84424,\n\t\t\t0.531462,\n\t\t\t0.900451,\n\t\t\t0.631373,\n\t\t\t0.865174,\n\t\t\t0.620901,\n\t\t\t0.91606,\n\t\t\t0.756863,\n\t\t\t0.875041,\n\t\t\t0.714054,\n\t\t\t0.910284,\n\t\t\t0.882353,\n\t\t\t0.880764,\n\t\t\t0.80554,\n\t\t\t0.896276,\n\t\t\t1,\n\t\t\t0.887572,\n\t\t\t0.887591,\n\t\t\t0.887556\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_purple2pink_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.117562,\n\t\t\t0.0291202,\n\t\t\t0.175876,\n\t\t\t-0.74902,\n\t\t\t0.178368,\n\t\t\t0.0458476,\n\t\t\t0.285454,\n\t\t\t-0.623529,\n\t\t\t0.237731,\n\t\t\t0.0680173,\n\t\t\t0.387717,\n\t\t\t-0.498039,\n\t\t\t0.300877,\n\t\t\t0.0956291,\n\t\t\t0.484802,\n\t\t\t-0.372549,\n\t\t\t0.370929,\n\t\t\t0.136858,\n\t\t\t0.554985,\n\t\t\t-0.247059,\n\t\t\t0.449033,\n\t\t\t0.189273,\n\t\t\t0.58863,\n\t\t\t-0.121569,\n\t\t\t0.529971,\n\t\t\t0.245796,\n\t\t\t0.598587,\n\t\t\t0.00392157,\n\t\t\t0.609914,\n\t\t\t0.300643,\n\t\t\t0.610244,\n\t\t\t0.129412,\n\t\t\t0.697079,\n\t\t\t0.351286,\n\t\t\t0.616371,\n\t\t\t0.254902,\n\t\t\t0.785858,\n\t\t\t0.401991,\n\t\t\t0.617376,\n\t\t\t0.380392,\n\t\t\t0.862517,\n\t\t\t0.45745,\n\t\t\t0.64463,\n\t\t\t0.505882,\n\t\t\t0.91359,\n\t\t\t0.525462,\n\t\t\t0.705336,\n\t\t\t0.631373,\n\t\t\t0.932583,\n\t\t\t0.61064,\n\t\t\t0.767412,\n\t\t\t0.756863,\n\t\t\t0.922478,\n\t\t\t0.706966,\n\t\t\t0.817522,\n\t\t\t0.882353,\n\t\t\t0.901302,\n\t\t\t0.803071,\n\t\t\t0.856311,\n\t\t\t1,\n\t\t\t0.887571,\n\t\t\t0.887591,\n\t\t\t0.887549\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_pbj_lin\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.091821,\n\t\t\t0.0611476,\n\t\t\t0.10617,\n\t\t\t-0.74902,\n\t\t\t0.160311,\n\t\t\t0.0900022,\n\t\t\t0.192713,\n\t\t\t-0.623529,\n\t\t\t0.22484,\n\t\t\t0.12126,\n\t\t\t0.272128,\n\t\t\t-0.498039,\n\t\t\t0.291263,\n\t\t\t0.157469,\n\t\t\t0.340828,\n\t\t\t-0.372549,\n\t\t\t0.360015,\n\t\t\t0.200388,\n\t\t\t0.388903,\n\t\t\t-0.247059,\n\t\t\t0.437497,\n\t\t\t0.250058,\n\t\t\t0.387201,\n\t\t\t-0.121569,\n\t\t\t0.512636,\n\t\t\t0.304969,\n\t\t\t0.355955,\n\t\t\t0.00392157,\n\t\t\t0.582603,\n\t\t\t0.360874,\n\t\t\t0.33488,\n\t\t\t0.129412,\n\t\t\t0.655126,\n\t\t\t0.416374,\n\t\t\t0.306351,\n\t\t\t0.254902,\n\t\t\t0.725889,\n\t\t\t0.473329,\n\t\t\t0.279051,\n\t\t\t0.380392,\n\t\t\t0.778125,\n\t\t\t0.537928,\n\t\t\t0.302697,\n\t\t\t0.505882,\n\t\t\t0.815894,\n\t\t\t0.606931,\n\t\t\t0.382431,\n\t\t\t0.631373,\n\t\t\t0.839159,\n\t\t\t0.679308,\n\t\t\t0.497608,\n\t\t\t0.756863,\n\t\t\t0.854748,\n\t\t\t0.751666,\n\t\t\t0.631792,\n\t\t\t0.882353,\n\t\t\t0.869483,\n\t\t\t0.822508,\n\t\t\t0.768592,\n\t\t\t1,\n\t\t\t0.887572,\n\t\t\t0.887589,\n\t\t\t0.887565\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_blue2green_muted\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.107704,\n\t\t\t0.107708,\n\t\t\t0.107695,\n\t\t\t-0.87451,\n\t\t\t0.141522,\n\t\t\t0.13066,\n\t\t\t0.270741,\n\t\t\t-0.74902,\n\t\t\t0.180123,\n\t\t\t0.146119,\n\t\t\t0.42308,\n\t\t\t-0.623529,\n\t\t\t0.210161,\n\t\t\t0.169674,\n\t\t\t0.551795,\n\t\t\t-0.498039,\n\t\t\t0.239701,\n\t\t\t0.212939,\n\t\t\t0.634969,\n\t\t\t-0.372549,\n\t\t\t0.253916,\n\t\t\t0.282947,\n\t\t\t0.653641,\n\t\t\t-0.247059,\n\t\t\t0.242791,\n\t\t\t0.366933,\n\t\t\t0.608521,\n\t\t\t-0.121569,\n\t\t\t0.226302,\n\t\t\t0.446776,\n\t\t\t0.52693,\n\t\t\t0.00392157,\n\t\t\t0.236237,\n\t\t\t0.514689,\n\t\t\t0.458798,\n\t\t\t0.129412,\n\t\t\t0.274641,\n\t\t\t0.577589,\n\t\t\t0.376069,\n\t\t\t0.254902,\n\t\t\t0.349625,\n\t\t\t0.633993,\n\t\t\t0.288131,\n\t\t\t0.380392,\n\t\t\t0.4437,\n\t\t\t0.683677,\n\t\t\t0.260497,\n\t\t\t0.505882,\n\t\t\t0.536247,\n\t\t\t0.731214,\n\t\t\t0.285424,\n\t\t\t0.631373,\n\t\t\t0.628472,\n\t\t\t0.777128,\n\t\t\t0.349151,\n\t\t\t0.756863,\n\t\t\t0.718259,\n\t\t\t0.819287,\n\t\t\t0.496825,\n\t\t\t0.882353,\n\t\t\t0.804768,\n\t\t\t0.856164,\n\t\t\t0.703299,\n\t\t\t1,\n\t\t\t0.887571,\n\t\t\t0.887591,\n\t\t\t0.887548\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_blue2green_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t3.63578e-7,\n\t\t\t0,\n\t\t\t0.00000529374,\n\t\t\t-0.87451,\n\t\t\t0.0539915,\n\t\t\t0.0577948,\n\t\t\t0.212806,\n\t\t\t-0.74902,\n\t\t\t0.0620393,\n\t\t\t0.0758942,\n\t\t\t0.388959,\n\t\t\t-0.623529,\n\t\t\t0.0697499,\n\t\t\t0.102032,\n\t\t\t0.54177,\n\t\t\t-0.498039,\n\t\t\t0.113295,\n\t\t\t0.156156,\n\t\t\t0.64334,\n\t\t\t-0.372549,\n\t\t\t0.152047,\n\t\t\t0.243196,\n\t\t\t0.670283,\n\t\t\t-0.247059,\n\t\t\t0.158096,\n\t\t\t0.344084,\n\t\t\t0.622864,\n\t\t\t-0.121569,\n\t\t\t0.151142,\n\t\t\t0.43922,\n\t\t\t0.532767,\n\t\t\t0.00392157,\n\t\t\t0.17155,\n\t\t\t0.521588,\n\t\t\t0.457719,\n\t\t\t0.129412,\n\t\t\t0.225861,\n\t\t\t0.599141,\n\t\t\t0.363997,\n\t\t\t0.254902,\n\t\t\t0.32328,\n\t\t\t0.67007,\n\t\t\t0.259083,\n\t\t\t0.380392,\n\t\t\t0.442344,\n\t\t\t0.733697,\n\t\t\t0.223754,\n\t\t\t0.505882,\n\t\t\t0.558409,\n\t\t\t0.794941,\n\t\t\t0.257411,\n\t\t\t0.631373,\n\t\t\t0.673875,\n\t\t\t0.854344,\n\t\t\t0.340822,\n\t\t\t0.756863,\n\t\t\t0.787244,\n\t\t\t0.909326,\n\t\t\t0.524717,\n\t\t\t0.882353,\n\t\t\t0.896483,\n\t\t\t0.958063,\n\t\t\t0.775914,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999982\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"GREEN-WHITE_LINEAR\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0,\n\t\t\t0.062745,\n\t\t\t0,\n\t\t\t-0.74902,\n\t\t\t0,\n\t\t\t0.12549,\n\t\t\t0,\n\t\t\t-0.623529,\n\t\t\t0,\n\t\t\t0.188235,\n\t\t\t0,\n\t\t\t-0.498039,\n\t\t\t0,\n\t\t\t0.25098,\n\t\t\t0,\n\t\t\t-0.372549,\n\t\t\t0,\n\t\t\t0.313725,\n\t\t\t0,\n\t\t\t-0.247059,\n\t\t\t0,\n\t\t\t0.376471,\n\t\t\t0,\n\t\t\t-0.121569,\n\t\t\t0.094118,\n\t\t\t0.439216,\n\t\t\t0,\n\t\t\t0.00392157,\n\t\t\t0.196078,\n\t\t\t0.501961,\n\t\t\t0,\n\t\t\t0.129412,\n\t\t\t0.294118,\n\t\t\t0.564706,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t0.396078,\n\t\t\t0.627451,\n\t\t\t0,\n\t\t\t0.380392,\n\t\t\t0.498039,\n\t\t\t0.690196,\n\t\t\t0,\n\t\t\t0.505882,\n\t\t\t0.6,\n\t\t\t0.752941,\n\t\t\t0.145098,\n\t\t\t0.631373,\n\t\t\t0.701961,\n\t\t\t0.815686,\n\t\t\t0.364706,\n\t\t\t0.756863,\n\t\t\t0.8,\n\t\t\t0.878431,\n\t\t\t0.580392,\n\t\t\t0.882353,\n\t\t\t0.901961,\n\t\t\t0.941176,\n\t\t\t0.796078,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_green2yellow_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0,\n\t\t\t0.105542,\n\t\t\t0.0603919,\n\t\t\t-0.74902,\n\t\t\t0,\n\t\t\t0.159454,\n\t\t\t0.104148,\n\t\t\t-0.623529,\n\t\t\t0,\n\t\t\t0.219502,\n\t\t\t0.15542,\n\t\t\t-0.498039,\n\t\t\t0,\n\t\t\t0.282276,\n\t\t\t0.203811,\n\t\t\t-0.372549,\n\t\t\t0,\n\t\t\t0.346331,\n\t\t\t0.235652,\n\t\t\t-0.247059,\n\t\t\t0,\n\t\t\t0.411765,\n\t\t\t0.235428,\n\t\t\t-0.121569,\n\t\t\t0,\n\t\t\t0.477177,\n\t\t\t0.217977,\n\t\t\t0.00392157,\n\t\t\t0.0593644,\n\t\t\t0.541635,\n\t\t\t0.21361,\n\t\t\t0.129412,\n\t\t\t0.233081,\n\t\t\t0.604722,\n\t\t\t0.210591,\n\t\t\t0.254902,\n\t\t\t0.369803,\n\t\t\t0.664942,\n\t\t\t0.226536,\n\t\t\t0.380392,\n\t\t\t0.498446,\n\t\t\t0.722367,\n\t\t\t0.288237,\n\t\t\t0.505882,\n\t\t\t0.601929,\n\t\t\t0.782244,\n\t\t\t0.380815,\n\t\t\t0.631373,\n\t\t\t0.703207,\n\t\t\t0.840497,\n\t\t\t0.512134,\n\t\t\t0.756863,\n\t\t\t0.803186,\n\t\t\t0.896433,\n\t\t\t0.674462,\n\t\t\t0.882353,\n\t\t\t0.903834,\n\t\t\t0.950266,\n\t\t\t0.846715,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999981\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"blue2cyan\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0,\n\t\t\t0.152941,\n\t\t\t0.364706,\n\t\t\t-0.74902,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t0.470588,\n\t\t\t-0.623529,\n\t\t\t0,\n\t\t\t0.34902,\n\t\t\t0.572549,\n\t\t\t-0.498039,\n\t\t\t0,\n\t\t\t0.443137,\n\t\t\t0.670588,\n\t\t\t-0.372549,\n\t\t\t0,\n\t\t\t0.537255,\n\t\t\t0.772549,\n\t\t\t-0.247059,\n\t\t\t0,\n\t\t\t0.627451,\n\t\t\t0.870588,\n\t\t\t-0.121569,\n\t\t\t0,\n\t\t\t0.717647,\n\t\t\t0.964706,\n\t\t\t0.00392157,\n\t\t\t0.0784314,\n\t\t\t0.772549,\n\t\t\t1,\n\t\t\t0.129412,\n\t\t\t0.207843,\n\t\t\t0.858824,\n\t\t\t1,\n\t\t\t0.254902,\n\t\t\t0.32549,\n\t\t\t0.941176,\n\t\t\t1,\n\t\t\t0.380392,\n\t\t\t0.45098,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.505882,\n\t\t\t0.560784,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.631373,\n\t\t\t0.662745,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.756863,\n\t\t\t0.760784,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.882353,\n\t\t\t0.870588,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_blue2cyan_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t4.05298e-7,\n\t\t\t0,\n\t\t\t0.0000059012,\n\t\t\t-0.87451,\n\t\t\t0.0207526,\n\t\t\t0.0740933,\n\t\t\t0.18093,\n\t\t\t-0.74902,\n\t\t\t0,\n\t\t\t0.121033,\n\t\t\t0.30343,\n\t\t\t-0.623529,\n\t\t\t0,\n\t\t\t0.166892,\n\t\t\t0.416095,\n\t\t\t-0.498039,\n\t\t\t0,\n\t\t\t0.216768,\n\t\t\t0.524796,\n\t\t\t-0.372549,\n\t\t\t0.0164769,\n\t\t\t0.275471,\n\t\t\t0.608585,\n\t\t\t-0.247059,\n\t\t\t0.0544527,\n\t\t\t0.344824,\n\t\t\t0.659267,\n\t\t\t-0.121569,\n\t\t\t0.0880643,\n\t\t\t0.419118,\n\t\t\t0.688675,\n\t\t\t0.00392157,\n\t\t\t0.127938,\n\t\t\t0.492556,\n\t\t\t0.720256,\n\t\t\t0.129412,\n\t\t\t0.149476,\n\t\t\t0.566946,\n\t\t\t0.756918,\n\t\t\t0.254902,\n\t\t\t0.188961,\n\t\t\t0.641333,\n\t\t\t0.792122,\n\t\t\t0.380392,\n\t\t\t0.245482,\n\t\t\t0.715336,\n\t\t\t0.827609,\n\t\t\t0.505882,\n\t\t\t0.329216,\n\t\t\t0.786235,\n\t\t\t0.874761,\n\t\t\t0.631373,\n\t\t\t0.453558,\n\t\t\t0.852803,\n\t\t\t0.918466,\n\t\t\t0.756863,\n\t\t\t0.626281,\n\t\t\t0.910493,\n\t\t\t0.954,\n\t\t\t0.882353,\n\t\t\t0.82257,\n\t\t\t0.958709,\n\t\t\t0.980146,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999989\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_blue_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.0425591,\n\t\t\t0.0763529,\n\t\t\t0.150682,\n\t\t\t-0.74902,\n\t\t\t0.0569472,\n\t\t\t0.119154,\n\t\t\t0.275403,\n\t\t\t-0.623529,\n\t\t\t0.0635978,\n\t\t\t0.164772,\n\t\t\t0.395427,\n\t\t\t-0.498039,\n\t\t\t0.0774342,\n\t\t\t0.213851,\n\t\t\t0.510014,\n\t\t\t-0.372549,\n\t\t\t0.106815,\n\t\t\t0.267034,\n\t\t\t0.615102,\n\t\t\t-0.247059,\n\t\t\t0.122093,\n\t\t\t0.324649,\n\t\t\t0.720068,\n\t\t\t-0.121569,\n\t\t\t0.160851,\n\t\t\t0.387068,\n\t\t\t0.806956,\n\t\t\t0.00392157,\n\t\t\t0.213754,\n\t\t\t0.453516,\n\t\t\t0.878012,\n\t\t\t0.129412,\n\t\t\t0.26722,\n\t\t\t0.524656,\n\t\t\t0.932436,\n\t\t\t0.254902,\n\t\t\t0.326844,\n\t\t\t0.599279,\n\t\t\t0.968038,\n\t\t\t0.380392,\n\t\t\t0.403403,\n\t\t\t0.674712,\n\t\t\t0.984784,\n\t\t\t0.505882,\n\t\t\t0.499703,\n\t\t\t0.745519,\n\t\t\t1,\n\t\t\t0.631373,\n\t\t\t0.615055,\n\t\t\t0.813983,\n\t\t\t1,\n\t\t\t0.756863,\n\t\t\t0.74405,\n\t\t\t0.879228,\n\t\t\t1,\n\t\t\t0.882353,\n\t\t\t0.877909,\n\t\t\t0.941913,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999996\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"BLUE-WHITE\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.082353,\n\t\t\t-0.74902,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.168627,\n\t\t\t-0.623529,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t-0.498039,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.337255,\n\t\t\t-0.372549,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.423529,\n\t\t\t-0.247059,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.509804,\n\t\t\t-0.121569,\n\t\t\t0,\n\t\t\t0.101961,\n\t\t\t0.592157,\n\t\t\t0.00392157,\n\t\t\t0,\n\t\t\t0.203922,\n\t\t\t0.678431,\n\t\t\t0.129412,\n\t\t\t0,\n\t\t\t0.301961,\n\t\t\t0.764706,\n\t\t\t0.254902,\n\t\t\t0,\n\t\t\t0.403922,\n\t\t\t0.85098,\n\t\t\t0.380392,\n\t\t\t0,\n\t\t\t0.505882,\n\t\t\t0.933333,\n\t\t\t0.505882,\n\t\t\t0,\n\t\t\t0.603922,\n\t\t\t1,\n\t\t\t0.631373,\n\t\t\t0.254902,\n\t\t\t0.705882,\n\t\t\t1,\n\t\t\t0.756863,\n\t\t\t0.509804,\n\t\t\t0.807843,\n\t\t\t1,\n\t\t\t0.882353,\n\t\t\t0.764706,\n\t\t\t0.905882,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_purple_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t4.264e-8,\n\t\t\t0,\n\t\t\t6.20844e-7,\n\t\t\t-0.87451,\n\t\t\t0.100579,\n\t\t\t0.0593111,\n\t\t\t0.145666,\n\t\t\t-0.74902,\n\t\t\t0.167794,\n\t\t\t0.0889224,\n\t\t\t0.254953,\n\t\t\t-0.623529,\n\t\t\t0.231446,\n\t\t\t0.123339,\n\t\t\t0.360511,\n\t\t\t-0.498039,\n\t\t\t0.296699,\n\t\t\t0.163027,\n\t\t\t0.461278,\n\t\t\t-0.372549,\n\t\t\t0.363211,\n\t\t\t0.209286,\n\t\t\t0.55306,\n\t\t\t-0.247059,\n\t\t\t0.431136,\n\t\t\t0.260776,\n\t\t\t0.637195,\n\t\t\t-0.121569,\n\t\t\t0.498202,\n\t\t\t0.320012,\n\t\t\t0.705799,\n\t\t\t0.00392157,\n\t\t\t0.567456,\n\t\t\t0.380459,\n\t\t\t0.778091,\n\t\t\t0.129412,\n\t\t\t0.629381,\n\t\t\t0.445284,\n\t\t\t0.8448,\n\t\t\t0.254902,\n\t\t\t0.688373,\n\t\t\t0.517374,\n\t\t\t0.895694,\n\t\t\t0.380392,\n\t\t\t0.74891,\n\t\t\t0.590906,\n\t\t\t0.93976,\n\t\t\t0.505882,\n\t\t\t0.805017,\n\t\t\t0.667956,\n\t\t\t0.977626,\n\t\t\t0.631373,\n\t\t\t0.850914,\n\t\t\t0.752618,\n\t\t\t0.992396,\n\t\t\t0.756863,\n\t\t\t0.89724,\n\t\t\t0.838454,\n\t\t\t0.994093,\n\t\t\t0.882353,\n\t\t\t0.948461,\n\t\t\t0.922603,\n\t\t\t0.994449,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999967\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_magenta_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.0000254023,\n\t\t\t-0.87451,\n\t\t\t0.128696,\n\t\t\t0.0456782,\n\t\t\t0.11635,\n\t\t\t-0.74902,\n\t\t\t0.228133,\n\t\t\t0.0476299,\n\t\t\t0.201452,\n\t\t\t-0.623529,\n\t\t\t0.327273,\n\t\t\t0.0374065,\n\t\t\t0.282107,\n\t\t\t-0.498039,\n\t\t\t0.420953,\n\t\t\t0.0408166,\n\t\t\t0.35709,\n\t\t\t-0.372549,\n\t\t\t0.511562,\n\t\t\t0.0642203,\n\t\t\t0.430511,\n\t\t\t-0.247059,\n\t\t\t0.599552,\n\t\t\t0.102686,\n\t\t\t0.504257,\n\t\t\t-0.121569,\n\t\t\t0.684646,\n\t\t\t0.150536,\n\t\t\t0.579429,\n\t\t\t0.00392157,\n\t\t\t0.765817,\n\t\t\t0.205978,\n\t\t\t0.656062,\n\t\t\t0.129412,\n\t\t\t0.839176,\n\t\t\t0.27229,\n\t\t\t0.731807,\n\t\t\t0.254902,\n\t\t\t0.89536,\n\t\t\t0.357594,\n\t\t\t0.797309,\n\t\t\t0.380392,\n\t\t\t0.930238,\n\t\t\t0.457825,\n\t\t\t0.846984,\n\t\t\t0.505882,\n\t\t\t0.945921,\n\t\t\t0.564536,\n\t\t\t0.880571,\n\t\t\t0.631373,\n\t\t\t0.948995,\n\t\t\t0.670753,\n\t\t\t0.902279,\n\t\t\t0.756863,\n\t\t\t0.947124,\n\t\t\t0.772819,\n\t\t\t0.918171,\n\t\t\t0.882353,\n\t\t\t0.947265,\n\t\t\t0.869424,\n\t\t\t0.934352,\n\t\t\t1,\n\t\t\t0.954719,\n\t\t\t0.95475,\n\t\t\t0.954726\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"magenta\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.364706,\n\t\t\t0,\n\t\t\t0.152941,\n\t\t\t-0.74902,\n\t\t\t0.470588,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t-0.623529,\n\t\t\t0.572549,\n\t\t\t0,\n\t\t\t0.34902,\n\t\t\t-0.498039,\n\t\t\t0.670588,\n\t\t\t0,\n\t\t\t0.443137,\n\t\t\t-0.372549,\n\t\t\t0.772549,\n\t\t\t0,\n\t\t\t0.537255,\n\t\t\t-0.247059,\n\t\t\t0.870588,\n\t\t\t0,\n\t\t\t0.627451,\n\t\t\t-0.121569,\n\t\t\t0.964706,\n\t\t\t0,\n\t\t\t0.717647,\n\t\t\t0.00392157,\n\t\t\t1,\n\t\t\t0.0784314,\n\t\t\t0.772549,\n\t\t\t0.129412,\n\t\t\t1,\n\t\t\t0.207843,\n\t\t\t0.858824,\n\t\t\t0.254902,\n\t\t\t1,\n\t\t\t0.32549,\n\t\t\t0.941176,\n\t\t\t0.380392,\n\t\t\t1,\n\t\t\t0.45098,\n\t\t\t1,\n\t\t\t0.505882,\n\t\t\t1,\n\t\t\t0.560784,\n\t\t\t1,\n\t\t\t0.631373,\n\t\t\t1,\n\t\t\t0.662745,\n\t\t\t1,\n\t\t\t0.756863,\n\t\t\t1,\n\t\t\t0.760784,\n\t\t\t1,\n\t\t\t0.882353,\n\t\t\t1,\n\t\t\t0.870588,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"RED-PURPLE\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.188235,\n\t\t\t0,\n\t\t\t0.007843,\n\t\t\t-0.74902,\n\t\t\t0.345098,\n\t\t\t0,\n\t\t\t0.035294,\n\t\t\t-0.623529,\n\t\t\t0.439216,\n\t\t\t0,\n\t\t\t0.098039,\n\t\t\t-0.498039,\n\t\t\t0.533333,\n\t\t\t0,\n\t\t\t0.152941,\n\t\t\t-0.372549,\n\t\t\t0.627451,\n\t\t\t0.015686,\n\t\t\t0.211765,\n\t\t\t-0.247059,\n\t\t\t0.721569,\n\t\t\t0.031373,\n\t\t\t0.266667,\n\t\t\t-0.121569,\n\t\t\t0.8,\n\t\t\t0.047059,\n\t\t\t0.329412,\n\t\t\t0.00392157,\n\t\t\t0.862745,\n\t\t\t0.047059,\n\t\t\t0.403922,\n\t\t\t0.129412,\n\t\t\t0.941176,\n\t\t\t0.062745,\n\t\t\t0.466667,\n\t\t\t0.254902,\n\t\t\t0.988235,\n\t\t\t0.078431,\n\t\t\t0.54902,\n\t\t\t0.380392,\n\t\t\t0.988235,\n\t\t\t0.141176,\n\t\t\t0.643137,\n\t\t\t0.505882,\n\t\t\t0.988235,\n\t\t\t0.25098,\n\t\t\t0.729412,\n\t\t\t0.631373,\n\t\t\t0.988235,\n\t\t\t0.376471,\n\t\t\t0.811765,\n\t\t\t0.756863,\n\t\t\t0.988235,\n\t\t\t0.54902,\n\t\t\t0.886275,\n\t\t\t0.882353,\n\t\t\t0.988235,\n\t\t\t0.752941,\n\t\t\t0.952941,\n\t\t\t1,\n\t\t\t0.996078,\n\t\t\t0.996078,\n\t\t\t0.996078\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_red_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.147204,\n\t\t\t0.0480135,\n\t\t\t0.0401815,\n\t\t\t-0.74902,\n\t\t\t0.253411,\n\t\t\t0.0617478,\n\t\t\t0.0301333,\n\t\t\t-0.623529,\n\t\t\t0.356059,\n\t\t\t0.0746331,\n\t\t\t0.0446897,\n\t\t\t-0.498039,\n\t\t\t0.457731,\n\t\t\t0.0934935,\n\t\t\t0.0636931,\n\t\t\t-0.372549,\n\t\t\t0.557199,\n\t\t\t0.122714,\n\t\t\t0.0860013,\n\t\t\t-0.247059,\n\t\t\t0.665179,\n\t\t\t0.144238,\n\t\t\t0.105585,\n\t\t\t-0.121569,\n\t\t\t0.763833,\n\t\t\t0.187056,\n\t\t\t0.138326,\n\t\t\t0.00392157,\n\t\t\t0.847035,\n\t\t\t0.254558,\n\t\t\t0.189407,\n\t\t\t0.129412,\n\t\t\t0.905663,\n\t\t\t0.345937,\n\t\t\t0.258215,\n\t\t\t0.254902,\n\t\t\t0.941431,\n\t\t\t0.447111,\n\t\t\t0.346277,\n\t\t\t0.380392,\n\t\t\t0.962608,\n\t\t\t0.546927,\n\t\t\t0.457571,\n\t\t\t0.505882,\n\t\t\t0.987833,\n\t\t\t0.637276,\n\t\t\t0.569944,\n\t\t\t0.631373,\n\t\t\t0.994202,\n\t\t\t0.732176,\n\t\t\t0.687958,\n\t\t\t0.756863,\n\t\t\t0.993304,\n\t\t\t0.826268,\n\t\t\t0.800567,\n\t\t\t0.882353,\n\t\t\t0.994413,\n\t\t\t0.917205,\n\t\t\t0.906393,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.999979\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"RED_TEMPERATURE\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.090196,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.74902,\n\t\t\t0.180392,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.623529,\n\t\t\t0.270588,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.498039,\n\t\t\t0.360784,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.372549,\n\t\t\t0.45098,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.247059,\n\t\t\t0.545098,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.121569,\n\t\t\t0.635294,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.00392157,\n\t\t\t0.72549,\n\t\t\t0.058824,\n\t\t\t0,\n\t\t\t0.129412,\n\t\t\t0.815686,\n\t\t\t0.176471,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t0.905882,\n\t\t\t0.294118,\n\t\t\t0,\n\t\t\t0.380392,\n\t\t\t1,\n\t\t\t0.411765,\n\t\t\t0,\n\t\t\t0.505882,\n\t\t\t1,\n\t\t\t0.533333,\n\t\t\t0.027451,\n\t\t\t0.631373,\n\t\t\t1,\n\t\t\t0.65098,\n\t\t\t0.27451,\n\t\t\t0.756863,\n\t\t\t1,\n\t\t\t0.768627,\n\t\t\t0.521569,\n\t\t\t0.882353,\n\t\t\t1,\n\t\t\t0.886275,\n\t\t\t0.768627,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_orange_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.0000253806,\n\t\t\t-0.87451,\n\t\t\t0.135871,\n\t\t\t0.0593824,\n\t\t\t0,\n\t\t\t-0.74902,\n\t\t\t0.224328,\n\t\t\t0.0907216,\n\t\t\t0,\n\t\t\t-0.623529,\n\t\t\t0.318083,\n\t\t\t0.119647,\n\t\t\t0,\n\t\t\t-0.498039,\n\t\t\t0.414443,\n\t\t\t0.150246,\n\t\t\t0,\n\t\t\t-0.372549,\n\t\t\t0.511077,\n\t\t\t0.184884,\n\t\t\t0,\n\t\t\t-0.247059,\n\t\t\t0.605501,\n\t\t\t0.226033,\n\t\t\t0,\n\t\t\t-0.121569,\n\t\t\t0.695274,\n\t\t\t0.275491,\n\t\t\t0,\n\t\t\t0.00392157,\n\t\t\t0.777826,\n\t\t\t0.334445,\n\t\t\t0,\n\t\t\t0.129412,\n\t\t\t0.851498,\n\t\t\t0.402441,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t0.915899,\n\t\t\t0.47759,\n\t\t\t0.000602975,\n\t\t\t0.380392,\n\t\t\t0.971984,\n\t\t\t0.557882,\n\t\t\t0.0361443,\n\t\t\t0.505882,\n\t\t\t1,\n\t\t\t0.641287,\n\t\t\t0.135967,\n\t\t\t0.631373,\n\t\t\t1,\n\t\t\t0.725198,\n\t\t\t0.27997,\n\t\t\t0.756863,\n\t\t\t1,\n\t\t\t0.808205,\n\t\t\t0.438135,\n\t\t\t0.882353,\n\t\t\t1,\n\t\t\t0.89306,\n\t\t\t0.587036,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.977928,\n\t\t\t0.721599\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"heated_object\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.34902,\n\t\t\t0.0862745,\n\t\t\t0,\n\t\t\t-0.74902,\n\t\t\t0.45098,\n\t\t\t0.172549,\n\t\t\t0,\n\t\t\t-0.623529,\n\t\t\t0.52549,\n\t\t\t0.231373,\n\t\t\t0,\n\t\t\t-0.498039,\n\t\t\t0.580392,\n\t\t\t0.278431,\n\t\t\t0,\n\t\t\t-0.372549,\n\t\t\t0.623529,\n\t\t\t0.313725,\n\t\t\t0,\n\t\t\t-0.247059,\n\t\t\t0.670588,\n\t\t\t0.352941,\n\t\t\t0,\n\t\t\t-0.121569,\n\t\t\t0.717647,\n\t\t\t0.392157,\n\t\t\t0,\n\t\t\t0.00392157,\n\t\t\t0.772549,\n\t\t\t0.439216,\n\t\t\t0,\n\t\t\t0.129412,\n\t\t\t0.839216,\n\t\t\t0.494118,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t0.901961,\n\t\t\t0.541176,\n\t\t\t0,\n\t\t\t0.380392,\n\t\t\t0.968627,\n\t\t\t0.6,\n\t\t\t0,\n\t\t\t0.505882,\n\t\t\t1,\n\t\t\t0.658824,\n\t\t\t0,\n\t\t\t0.631373,\n\t\t\t1,\n\t\t\t0.721569,\n\t\t\t0,\n\t\t\t0.756863,\n\t\t\t1,\n\t\t\t0.827451,\n\t\t\t0.298039,\n\t\t\t0.882353,\n\t\t\t1,\n\t\t\t0.976471,\n\t\t\t0.72549,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_gold_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.0000190933,\n\t\t\t-0.87451,\n\t\t\t0.128363,\n\t\t\t0.0636265,\n\t\t\t0,\n\t\t\t-0.74902,\n\t\t\t0.193795,\n\t\t\t0.111057,\n\t\t\t0,\n\t\t\t-0.623529,\n\t\t\t0.25976,\n\t\t\t0.15987,\n\t\t\t0,\n\t\t\t-0.498039,\n\t\t\t0.328546,\n\t\t\t0.210589,\n\t\t\t0,\n\t\t\t-0.372549,\n\t\t\t0.399726,\n\t\t\t0.26332,\n\t\t\t0,\n\t\t\t-0.247059,\n\t\t\t0.472969,\n\t\t\t0.318261,\n\t\t\t0,\n\t\t\t-0.121569,\n\t\t\t0.546245,\n\t\t\t0.375827,\n\t\t\t0,\n\t\t\t0.00392157,\n\t\t\t0.61745,\n\t\t\t0.436719,\n\t\t\t0,\n\t\t\t0.129412,\n\t\t\t0.685545,\n\t\t\t0.501113,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t0.749578,\n\t\t\t0.568799,\n\t\t\t0,\n\t\t\t0.380392,\n\t\t\t0.80962,\n\t\t\t0.6394,\n\t\t\t0,\n\t\t\t0.505882,\n\t\t\t0.865572,\n\t\t\t0.712699,\n\t\t\t0.10257,\n\t\t\t0.631373,\n\t\t\t0.917709,\n\t\t\t0.787569,\n\t\t\t0.233665,\n\t\t\t0.756863,\n\t\t\t0.966914,\n\t\t\t0.863138,\n\t\t\t0.369608,\n\t\t\t0.882353,\n\t\t\t1,\n\t\t\t0.939405,\n\t\t\t0.496104,\n\t\t\t1,\n\t\t\t0.999225,\n\t\t\t1,\n\t\t\t0.612275\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_brown_BW\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t3.3216e-7,\n\t\t\t0,\n\t\t\t0.00000483629,\n\t\t\t-0.87451,\n\t\t\t0.14693,\n\t\t\t0.0518172,\n\t\t\t0,\n\t\t\t-0.74902,\n\t\t\t0.225806,\n\t\t\t0.0814996,\n\t\t\t0,\n\t\t\t-0.623529,\n\t\t\t0.301681,\n\t\t\t0.111452,\n\t\t\t0,\n\t\t\t-0.498039,\n\t\t\t0.370487,\n\t\t\t0.150664,\n\t\t\t0,\n\t\t\t-0.372549,\n\t\t\t0.43108,\n\t\t\t0.199477,\n\t\t\t0,\n\t\t\t-0.247059,\n\t\t\t0.4849,\n\t\t\t0.255107,\n\t\t\t0,\n\t\t\t-0.121569,\n\t\t\t0.536798,\n\t\t\t0.313486,\n\t\t\t0,\n\t\t\t0.00392157,\n\t\t\t0.59286,\n\t\t\t0.371167,\n\t\t\t0,\n\t\t\t0.129412,\n\t\t\t0.653119,\n\t\t\t0.428135,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t0.714589,\n\t\t\t0.485917,\n\t\t\t0.0379541,\n\t\t\t0.380392,\n\t\t\t0.774667,\n\t\t\t0.54565,\n\t\t\t0.116634,\n\t\t\t0.505882,\n\t\t\t0.831222,\n\t\t\t0.608047,\n\t\t\t0.183895,\n\t\t\t0.631373,\n\t\t\t0.880305,\n\t\t\t0.674199,\n\t\t\t0.260298,\n\t\t\t0.756863,\n\t\t\t0.922314,\n\t\t\t0.742472,\n\t\t\t0.367086,\n\t\t\t0.882353,\n\t\t\t0.959408,\n\t\t\t0.811222,\n\t\t\t0.497258,\n\t\t\t1,\n\t\t\t0.993548,\n\t\t\t0.875183,\n\t\t\t0.622093\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"copper_Matlab\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.0784314,\n\t\t\t0.0501961,\n\t\t\t0.0313725,\n\t\t\t-0.74902,\n\t\t\t0.156863,\n\t\t\t0.100392,\n\t\t\t0.0627451,\n\t\t\t-0.623529,\n\t\t\t0.235294,\n\t\t\t0.150588,\n\t\t\t0.0941176,\n\t\t\t-0.498039,\n\t\t\t0.313725,\n\t\t\t0.200784,\n\t\t\t0.12549,\n\t\t\t-0.372549,\n\t\t\t0.392157,\n\t\t\t0.25098,\n\t\t\t0.156863,\n\t\t\t-0.247059,\n\t\t\t0.470588,\n\t\t\t0.301176,\n\t\t\t0.188235,\n\t\t\t-0.121569,\n\t\t\t0.54902,\n\t\t\t0.351373,\n\t\t\t0.219608,\n\t\t\t0.00392157,\n\t\t\t0.627451,\n\t\t\t0.401569,\n\t\t\t0.25098,\n\t\t\t0.129412,\n\t\t\t0.705882,\n\t\t\t0.451765,\n\t\t\t0.282353,\n\t\t\t0.254902,\n\t\t\t0.784314,\n\t\t\t0.501961,\n\t\t\t0.313725,\n\t\t\t0.380392,\n\t\t\t0.862745,\n\t\t\t0.552157,\n\t\t\t0.345098,\n\t\t\t0.505882,\n\t\t\t0.941176,\n\t\t\t0.602353,\n\t\t\t0.376471,\n\t\t\t0.631373,\n\t\t\t1,\n\t\t\t0.652549,\n\t\t\t0.407843,\n\t\t\t0.756863,\n\t\t\t1,\n\t\t\t0.702745,\n\t\t\t0.439216,\n\t\t\t0.882353,\n\t\t\t1,\n\t\t\t0.752941,\n\t\t\t0.470588,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8,\n\t\t\t0.5\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"pink_Matlab\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.312416,\n\t\t\t0.204524,\n\t\t\t0.204524,\n\t\t\t-0.74902,\n\t\t\t0.441822,\n\t\t\t0.289241,\n\t\t\t0.289241,\n\t\t\t-0.623529,\n\t\t\t0.54112,\n\t\t\t0.354246,\n\t\t\t0.354246,\n\t\t\t-0.498039,\n\t\t\t0.624831,\n\t\t\t0.409048,\n\t\t\t0.409048,\n\t\t\t-0.372549,\n\t\t\t0.698582,\n\t\t\t0.45733,\n\t\t\t0.45733,\n\t\t\t-0.247059,\n\t\t\t0.764404,\n\t\t\t0.502282,\n\t\t\t0.500979,\n\t\t\t-0.121569,\n\t\t\t0.791292,\n\t\t\t0.591516,\n\t\t\t0.54112,\n\t\t\t0.00392157,\n\t\t\t0.817297,\n\t\t\t0.66895,\n\t\t\t0.578481,\n\t\t\t0.129412,\n\t\t\t0.842499,\n\t\t\t0.738308,\n\t\t\t0.613572,\n\t\t\t0.254902,\n\t\t\t0.866968,\n\t\t\t0.801687,\n\t\t\t0.646762,\n\t\t\t0.380392,\n\t\t\t0.890766,\n\t\t\t0.86041,\n\t\t\t0.678329,\n\t\t\t0.505882,\n\t\t\t0.913944,\n\t\t\t0.913944,\n\t\t\t0.711254,\n\t\t\t0.631373,\n\t\t\t0.936549,\n\t\t\t0.936549,\n\t\t\t0.79459,\n\t\t\t0.756863,\n\t\t\t0.958621,\n\t\t\t0.958621,\n\t\t\t0.869979,\n\t\t\t0.882353,\n\t\t\t0.980196,\n\t\t\t0.980196,\n\t\t\t0.939336,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"bone_Matlab\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.054902,\n\t\t\t0.054902,\n\t\t\t0.075817,\n\t\t\t-0.74902,\n\t\t\t0.109804,\n\t\t\t0.109804,\n\t\t\t0.151634,\n\t\t\t-0.623529,\n\t\t\t0.164706,\n\t\t\t0.164706,\n\t\t\t0.227451,\n\t\t\t-0.498039,\n\t\t\t0.219608,\n\t\t\t0.219608,\n\t\t\t0.303268,\n\t\t\t-0.372549,\n\t\t\t0.27451,\n\t\t\t0.27451,\n\t\t\t0.379085,\n\t\t\t-0.247059,\n\t\t\t0.329412,\n\t\t\t0.329902,\n\t\t\t0.454412,\n\t\t\t-0.121569,\n\t\t\t0.384314,\n\t\t\t0.405719,\n\t\t\t0.509314,\n\t\t\t0.00392157,\n\t\t\t0.439216,\n\t\t\t0.481536,\n\t\t\t0.564216,\n\t\t\t0.129412,\n\t\t\t0.494118,\n\t\t\t0.557353,\n\t\t\t0.619118,\n\t\t\t0.254902,\n\t\t\t0.54902,\n\t\t\t0.63317,\n\t\t\t0.67402,\n\t\t\t0.380392,\n\t\t\t0.603922,\n\t\t\t0.708987,\n\t\t\t0.728922,\n\t\t\t0.505882,\n\t\t\t0.660294,\n\t\t\t0.783824,\n\t\t\t0.783824,\n\t\t\t0.631373,\n\t\t\t0.746569,\n\t\t\t0.838725,\n\t\t\t0.838725,\n\t\t\t0.756863,\n\t\t\t0.832843,\n\t\t\t0.893627,\n\t\t\t0.893627,\n\t\t\t0.882353,\n\t\t\t0.919118,\n\t\t\t0.948529,\n\t\t\t0.948529,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"gray_Matlab\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.0627451,\n\t\t\t0.0627451,\n\t\t\t0.0627451,\n\t\t\t-0.74902,\n\t\t\t0.12549,\n\t\t\t0.12549,\n\t\t\t0.12549,\n\t\t\t-0.623529,\n\t\t\t0.188235,\n\t\t\t0.188235,\n\t\t\t0.188235,\n\t\t\t-0.498039,\n\t\t\t0.25098,\n\t\t\t0.25098,\n\t\t\t0.25098,\n\t\t\t-0.372549,\n\t\t\t0.313725,\n\t\t\t0.313725,\n\t\t\t0.313725,\n\t\t\t-0.247059,\n\t\t\t0.376471,\n\t\t\t0.376471,\n\t\t\t0.376471,\n\t\t\t-0.121569,\n\t\t\t0.439216,\n\t\t\t0.439216,\n\t\t\t0.439216,\n\t\t\t0.00392157,\n\t\t\t0.501961,\n\t\t\t0.501961,\n\t\t\t0.501961,\n\t\t\t0.129412,\n\t\t\t0.564706,\n\t\t\t0.564706,\n\t\t\t0.564706,\n\t\t\t0.254902,\n\t\t\t0.627451,\n\t\t\t0.627451,\n\t\t\t0.627451,\n\t\t\t0.380392,\n\t\t\t0.690196,\n\t\t\t0.690196,\n\t\t\t0.690196,\n\t\t\t0.505882,\n\t\t\t0.752941,\n\t\t\t0.752941,\n\t\t\t0.752941,\n\t\t\t0.631373,\n\t\t\t0.815686,\n\t\t\t0.815686,\n\t\t\t0.815686,\n\t\t\t0.756863,\n\t\t\t0.878431,\n\t\t\t0.878431,\n\t\t\t0.878431,\n\t\t\t0.882353,\n\t\t\t0.941176,\n\t\t\t0.941176,\n\t\t\t0.941176,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"Purples\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.247059,\n\t\t\t0,\n\t\t\t0.490196,\n\t\t\t-0.87451,\n\t\t\t0.288397,\n\t\t\t0.07677,\n\t\t\t0.525629,\n\t\t\t-0.74902,\n\t\t\t0.32975,\n\t\t\t0.153587,\n\t\t\t0.561092,\n\t\t\t-0.623529,\n\t\t\t0.373057,\n\t\t\t0.236263,\n\t\t\t0.600461,\n\t\t\t-0.498039,\n\t\t\t0.416363,\n\t\t\t0.319,\n\t\t\t0.639923,\n\t\t\t-0.372549,\n\t\t\t0.459669,\n\t\t\t0.405613,\n\t\t\t0.685198,\n\t\t\t-0.247059,\n\t\t\t0.503345,\n\t\t\t0.491534,\n\t\t\t0.730058,\n\t\t\t-0.121569,\n\t\t\t0.562399,\n\t\t\t0.54862,\n\t\t\t0.757616,\n\t\t\t0.00392157,\n\t\t\t0.621453,\n\t\t\t0.606075,\n\t\t\t0.785544,\n\t\t\t0.129412,\n\t\t\t0.680508,\n\t\t\t0.674971,\n\t\t\t0.824914,\n\t\t\t0.254902,\n\t\t\t0.739562,\n\t\t\t0.743406,\n\t\t\t0.863899,\n\t\t\t0.380392,\n\t\t\t0.798616,\n\t\t\t0.800492,\n\t\t\t0.893426,\n\t\t\t0.505882,\n\t\t\t0.85684,\n\t\t\t0.856655,\n\t\t\t0.922491,\n\t\t\t0.631373,\n\t\t\t0.898178,\n\t\t\t0.894056,\n\t\t\t0.942176,\n\t\t\t0.756863,\n\t\t\t0.938654,\n\t\t\t0.930919,\n\t\t\t0.961646,\n\t\t\t0.882353,\n\t\t\t0.964245,\n\t\t\t0.958478,\n\t\t\t0.977393,\n\t\t\t1,\n\t\t\t0.988235,\n\t\t\t0.984314,\n\t\t\t0.992157\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"Blues\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.031373,\n\t\t\t0.188235,\n\t\t\t0.419608,\n\t\t\t-0.87451,\n\t\t\t0.031373,\n\t\t\t0.253195,\n\t\t\t0.516063,\n\t\t\t-0.74902,\n\t\t\t0.031757,\n\t\t\t0.318139,\n\t\t\t0.612149,\n\t\t\t-0.623529,\n\t\t\t0.080969,\n\t\t\t0.38113,\n\t\t\t0.661361,\n\t\t\t-0.498039,\n\t\t\t0.130427,\n\t\t\t0.444152,\n\t\t\t0.710327,\n\t\t\t-0.372549,\n\t\t\t0.195386,\n\t\t\t0.509112,\n\t\t\t0.743791,\n\t\t\t-0.247059,\n\t\t\t0.260715,\n\t\t\t0.573841,\n\t\t\t0.777209,\n\t\t\t-0.121569,\n\t\t\t0.341423,\n\t\t\t0.628958,\n\t\t\t0.808704,\n\t\t\t0.00392157,\n\t\t\t0.422745,\n\t\t\t0.684075,\n\t\t\t0.839892,\n\t\t\t0.129412,\n\t\t\t0.523137,\n\t\t\t0.739193,\n\t\t\t0.861546,\n\t\t\t0.254902,\n\t\t\t0.622684,\n\t\t\t0.793464,\n\t\t\t0.883429,\n\t\t\t0.380392,\n\t\t\t0.701423,\n\t\t\t0.826928,\n\t\t\t0.910988,\n\t\t\t0.505882,\n\t\t\t0.778685,\n\t\t\t0.8603,\n\t\t\t0.937993,\n\t\t\t0.631373,\n\t\t\t0.825928,\n\t\t\t0.891795,\n\t\t\t0.953741,\n\t\t\t0.756863,\n\t\t\t0.87328,\n\t\t\t0.923291,\n\t\t\t0.969489,\n\t\t\t0.882353,\n\t\t\t0.922491,\n\t\t\t0.954787,\n\t\t\t0.985236,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.984314,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"Greens\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0.266667,\n\t\t\t0.105882,\n\t\t\t-0.87451,\n\t\t\t0,\n\t\t\t0.347374,\n\t\t\t0.139346,\n\t\t\t-0.74902,\n\t\t\t0.000538,\n\t\t\t0.427912,\n\t\t\t0.172933,\n\t\t\t-0.623529,\n\t\t\t0.069435,\n\t\t\t0.486967,\n\t\t\t0.222145,\n\t\t\t-0.498039,\n\t\t\t0.138178,\n\t\t\t0.546082,\n\t\t\t0.271326,\n\t\t\t-0.372549,\n\t\t\t0.197232,\n\t\t\t0.609073,\n\t\t\t0.31857,\n\t\t\t-0.247059,\n\t\t\t0.257255,\n\t\t\t0.671742,\n\t\t\t0.365859,\n\t\t\t-0.121569,\n\t\t\t0.357647,\n\t\t\t0.720953,\n\t\t\t0.415071,\n\t\t\t0.00392157,\n\t\t\t0.45767,\n\t\t\t0.769919,\n\t\t\t0.465021,\n\t\t\t0.129412,\n\t\t\t0.546251,\n\t\t\t0.811257,\n\t\t\t0.537855,\n\t\t\t0.254902,\n\t\t\t0.634295,\n\t\t\t0.852211,\n\t\t\t0.610688,\n\t\t\t0.380392,\n\t\t\t0.709097,\n\t\t\t0.883706,\n\t\t\t0.683522,\n\t\t\t0.505882,\n\t\t\t0.78316,\n\t\t\t0.914833,\n\t\t\t0.755894,\n\t\t\t0.631373,\n\t\t\t0.842215,\n\t\t\t0.938454,\n\t\t\t0.818885,\n\t\t\t0.756863,\n\t\t\t0.899977,\n\t\t\t0.961538,\n\t\t\t0.880692,\n\t\t\t0.882353,\n\t\t\t0.935409,\n\t\t\t0.975317,\n\t\t\t0.92203,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.988235,\n\t\t\t0.960784\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"PuBu\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.301961,\n\t\t\t0,\n\t\t\t0.294118,\n\t\t\t-0.87451,\n\t\t\t0.404321,\n\t\t\t0.029527,\n\t\t\t0.390573,\n\t\t\t-0.74902,\n\t\t\t0.50599,\n\t\t\t0.059592,\n\t\t\t0.486782,\n\t\t\t-0.623529,\n\t\t\t0.519769,\n\t\t\t0.158016,\n\t\t\t0.551742,\n\t\t\t-0.498039,\n\t\t\t0.533456,\n\t\t\t0.256194,\n\t\t\t0.616301,\n\t\t\t-0.372549,\n\t\t\t0.54133,\n\t\t\t0.33887,\n\t\t\t0.655671,\n\t\t\t-0.247059,\n\t\t\t0.54902,\n\t\t\t0.421592,\n\t\t\t0.695087,\n\t\t\t-0.121569,\n\t\t\t0.54902,\n\t\t\t0.506236,\n\t\t\t0.736424,\n\t\t\t0.00392157,\n\t\t\t0.550127,\n\t\t\t0.590573,\n\t\t\t0.777701,\n\t\t\t0.129412,\n\t\t\t0.585559,\n\t\t\t0.665375,\n\t\t\t0.81707,\n\t\t\t0.254902,\n\t\t\t0.622145,\n\t\t\t0.739023,\n\t\t\t0.855825,\n\t\t\t0.380392,\n\t\t\t0.687105,\n\t\t\t0.784298,\n\t\t\t0.879446,\n\t\t\t0.505882,\n\t\t\t0.752065,\n\t\t\t0.829758,\n\t\t\t0.903253,\n\t\t\t0.631373,\n\t\t\t0.817024,\n\t\t\t0.87897,\n\t\t\t0.930811,\n\t\t\t0.756863,\n\t\t\t0.880907,\n\t\t\t0.927213,\n\t\t\t0.957832,\n\t\t\t0.882353,\n\t\t\t0.926182,\n\t\t\t0.958708,\n\t\t\t0.975548,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.988235,\n\t\t\t0.992157\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"BuPu\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.007843,\n\t\t\t0.219608,\n\t\t\t0.345098,\n\t\t\t-0.87451,\n\t\t\t0.01178,\n\t\t\t0.286536,\n\t\t\t0.449427,\n\t\t\t-0.74902,\n\t\t\t0.015702,\n\t\t\t0.35328,\n\t\t\t0.553479,\n\t\t\t-0.623529,\n\t\t\t0.01767,\n\t\t\t0.396586,\n\t\t\t0.622376,\n\t\t\t-0.498039,\n\t\t\t0.021115,\n\t\t\t0.4402,\n\t\t\t0.690688,\n\t\t\t-0.372549,\n\t\t\t0.11757,\n\t\t\t0.503191,\n\t\t\t0.722184,\n\t\t\t-0.247059,\n\t\t\t0.214625,\n\t\t\t0.565859,\n\t\t\t0.753633,\n\t\t\t-0.121569,\n\t\t\t0.336671,\n\t\t\t0.615071,\n\t\t\t0.78316,\n\t\t\t0.00392157,\n\t\t\t0.457978,\n\t\t\t0.663975,\n\t\t\t0.812503,\n\t\t\t0.129412,\n\t\t\t0.556401,\n\t\t\t0.703345,\n\t\t\t0.836125,\n\t\t\t0.254902,\n\t\t\t0.65421,\n\t\t\t0.742714,\n\t\t\t0.859669,\n\t\t\t0.380392,\n\t\t\t0.736886,\n\t\t\t0.782084,\n\t\t\t0.881323,\n\t\t\t0.505882,\n\t\t\t0.81827,\n\t\t\t0.821638,\n\t\t\t0.903068,\n\t\t\t0.631373,\n\t\t\t0.873387,\n\t\t\t0.864944,\n\t\t\t0.92669,\n\t\t\t0.756863,\n\t\t\t0.927536,\n\t\t\t0.907605,\n\t\t\t0.949988,\n\t\t\t0.882353,\n\t\t\t0.964937,\n\t\t\t0.9391,\n\t\t\t0.967705,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.984314\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"BuGn\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.031373,\n\t\t\t0.25098,\n\t\t\t0.505882,\n\t\t\t-0.87451,\n\t\t\t0.031373,\n\t\t\t0.329719,\n\t\t\t0.590527,\n\t\t\t-0.74902,\n\t\t\t0.031911,\n\t\t\t0.408397,\n\t\t\t0.674787,\n\t\t\t-0.623529,\n\t\t\t0.100807,\n\t\t\t0.479262,\n\t\t\t0.710219,\n\t\t\t-0.498039,\n\t\t\t0.169704,\n\t\t\t0.550219,\n\t\t\t0.745744,\n\t\t\t-0.372549,\n\t\t\t0.238601,\n\t\t\t0.62699,\n\t\t\t0.787082,\n\t\t\t-0.247059,\n\t\t\t0.307958,\n\t\t\t0.703114,\n\t\t\t0.826759,\n\t\t\t-0.121569,\n\t\t\t0.39654,\n\t\t\t0.752326,\n\t\t\t0.797232,\n\t\t\t0.00392157,\n\t\t\t0.485121,\n\t\t\t0.801046,\n\t\t\t0.767705,\n\t\t\t0.129412,\n\t\t\t0.573702,\n\t\t\t0.83451,\n\t\t\t0.738178,\n\t\t\t0.254902,\n\t\t\t0.661592,\n\t\t\t0.867743,\n\t\t\t0.711034,\n\t\t\t0.380392,\n\t\t\t0.732457,\n\t\t\t0.895302,\n\t\t\t0.74253,\n\t\t\t0.505882,\n\t\t\t0.801845,\n\t\t\t0.922307,\n\t\t\t0.774579,\n\t\t\t0.631373,\n\t\t\t0.841215,\n\t\t\t0.938055,\n\t\t\t0.817885,\n\t\t\t0.756863,\n\t\t\t0.880907,\n\t\t\t0.95391,\n\t\t\t0.861084,\n\t\t\t0.882353,\n\t\t\t0.926182,\n\t\t\t0.971626,\n\t\t\t0.902422,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.988235,\n\t\t\t0.941176\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"GnBu\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0.266667,\n\t\t\t0.105882,\n\t\t\t-0.87451,\n\t\t\t0,\n\t\t\t0.347374,\n\t\t\t0.139346,\n\t\t\t-0.74902,\n\t\t\t0.000538,\n\t\t\t0.427912,\n\t\t\t0.172933,\n\t\t\t-0.623529,\n\t\t\t0.069435,\n\t\t\t0.486967,\n\t\t\t0.222145,\n\t\t\t-0.498039,\n\t\t\t0.138178,\n\t\t\t0.546175,\n\t\t\t0.272095,\n\t\t\t-0.372549,\n\t\t\t0.197232,\n\t\t\t0.615071,\n\t\t\t0.368551,\n\t\t\t-0.247059,\n\t\t\t0.256609,\n\t\t\t0.683276,\n\t\t\t0.464867,\n\t\t\t-0.121569,\n\t\t\t0.329443,\n\t\t\t0.722645,\n\t\t\t0.555417,\n\t\t\t0.00392157,\n\t\t\t0.403137,\n\t\t\t0.762138,\n\t\t\t0.645413,\n\t\t\t0.129412,\n\t\t\t0.503529,\n\t\t\t0.805444,\n\t\t\t0.718247,\n\t\t\t0.254902,\n\t\t\t0.603922,\n\t\t\t0.848597,\n\t\t\t0.790465,\n\t\t\t0.380392,\n\t\t\t0.704314,\n\t\t\t0.887966,\n\t\t\t0.847551,\n\t\t\t0.505882,\n\t\t\t0.802307,\n\t\t\t0.926321,\n\t\t\t0.903714,\n\t\t\t0.631373,\n\t\t\t0.851519,\n\t\t\t0.944037,\n\t\t\t0.941115,\n\t\t\t0.756863,\n\t\t\t0.899977,\n\t\t\t0.961538,\n\t\t\t0.976901,\n\t\t\t0.882353,\n\t\t\t0.935409,\n\t\t\t0.975317,\n\t\t\t0.984775,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.988235,\n\t\t\t0.992157\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"GnBuPu\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.003922,\n\t\t\t0.27451,\n\t\t\t0.211765,\n\t\t\t-0.87451,\n\t\t\t0.003922,\n\t\t\t0.349312,\n\t\t\t0.280661,\n\t\t\t-0.74902,\n\t\t\t0.003937,\n\t\t\t0.423852,\n\t\t\t0.349773,\n\t\t\t-0.623529,\n\t\t\t0.005905,\n\t\t\t0.46519,\n\t\t\t0.446228,\n\t\t\t-0.498039,\n\t\t\t0.009443,\n\t\t\t0.506344,\n\t\t\t0.542837,\n\t\t\t-0.372549,\n\t\t\t0.111803,\n\t\t\t0.535871,\n\t\t\t0.649135,\n\t\t\t-0.247059,\n\t\t\t0.214025,\n\t\t\t0.565859,\n\t\t\t0.753633,\n\t\t\t-0.121569,\n\t\t\t0.310481,\n\t\t\t0.615071,\n\t\t\t0.78316,\n\t\t\t0.00392157,\n\t\t\t0.407797,\n\t\t\t0.663975,\n\t\t\t0.812503,\n\t\t\t0.129412,\n\t\t\t0.531811,\n\t\t\t0.703345,\n\t\t\t0.836125,\n\t\t\t0.254902,\n\t\t\t0.65421,\n\t\t\t0.742714,\n\t\t\t0.859669,\n\t\t\t0.380392,\n\t\t\t0.736886,\n\t\t\t0.782084,\n\t\t\t0.881323,\n\t\t\t0.505882,\n\t\t\t0.81827,\n\t\t\t0.821176,\n\t\t\t0.902884,\n\t\t\t0.631373,\n\t\t\t0.873387,\n\t\t\t0.854641,\n\t\t\t0.922568,\n\t\t\t0.756863,\n\t\t\t0.927536,\n\t\t\t0.888535,\n\t\t\t0.942361,\n\t\t\t0.882353,\n\t\t\t0.964937,\n\t\t\t0.929873,\n\t\t\t0.964014,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.984314\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"BuGnYl\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.031373,\n\t\t\t0.113725,\n\t\t\t0.345098,\n\t\t\t-0.87451,\n\t\t\t0.088458,\n\t\t\t0.159,\n\t\t\t0.463206,\n\t\t\t-0.74902,\n\t\t\t0.145052,\n\t\t\t0.204567,\n\t\t\t0.5807,\n\t\t\t-0.623529,\n\t\t\t0.139146,\n\t\t\t0.287243,\n\t\t\t0.620069,\n\t\t\t-0.498039,\n\t\t\t0.13318,\n\t\t\t0.370196,\n\t\t\t0.659562,\n\t\t\t-0.372549,\n\t\t\t0.123337,\n\t\t\t0.470588,\n\t\t\t0.706805,\n\t\t\t-0.247059,\n\t\t\t0.115386,\n\t\t\t0.570335,\n\t\t\t0.753126,\n\t\t\t-0.121569,\n\t\t\t0.186251,\n\t\t\t0.643168,\n\t\t\t0.761,\n\t\t\t0.00392157,\n\t\t\t0.258716,\n\t\t\t0.71514,\n\t\t\t0.768074,\n\t\t\t0.129412,\n\t\t\t0.380761,\n\t\t\t0.760415,\n\t\t\t0.750358,\n\t\t\t0.254902,\n\t\t\t0.503576,\n\t\t\t0.806075,\n\t\t\t0.732795,\n\t\t\t0.380392,\n\t\t\t0.645306,\n\t\t\t0.861192,\n\t\t\t0.719016,\n\t\t\t0.505882,\n\t\t\t0.783899,\n\t\t\t0.91511,\n\t\t\t0.705606,\n\t\t\t0.631373,\n\t\t\t0.858701,\n\t\t\t0.944637,\n\t\t\t0.6997,\n\t\t\t0.756863,\n\t\t\t0.931349,\n\t\t\t0.973303,\n\t\t\t0.698424,\n\t\t\t0.882353,\n\t\t\t0.966782,\n\t\t\t0.987082,\n\t\t\t0.777163,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.85098\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"PuRd\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.286275,\n\t\t\t0,\n\t\t\t0.415686,\n\t\t\t-0.87451,\n\t\t\t0.38273,\n\t\t\t0.001968,\n\t\t\t0.441276,\n\t\t\t-0.74902,\n\t\t\t0.479231,\n\t\t\t0.003922,\n\t\t\t0.466774,\n\t\t\t-0.623529,\n\t\t\t0.581592,\n\t\t\t0.003922,\n\t\t\t0.480554,\n\t\t\t-0.498039,\n\t\t\t0.683799,\n\t\t\t0.00549,\n\t\t\t0.494887,\n\t\t\t-0.372549,\n\t\t\t0.776317,\n\t\t\t0.105882,\n\t\t\t0.544098,\n\t\t\t-0.247059,\n\t\t\t0.867866,\n\t\t\t0.206321,\n\t\t\t0.592618,\n\t\t\t-0.121569,\n\t\t\t0.919047,\n\t\t\t0.308681,\n\t\t\t0.612303,\n\t\t\t0.00392157,\n\t\t\t0.968812,\n\t\t\t0.411226,\n\t\t\t0.632603,\n\t\t\t0.129412,\n\t\t\t0.974717,\n\t\t\t0.519493,\n\t\t\t0.671972,\n\t\t\t0.254902,\n\t\t\t0.980546,\n\t\t\t0.626451,\n\t\t\t0.71065,\n\t\t\t0.380392,\n\t\t\t0.984483,\n\t\t\t0.701253,\n\t\t\t0.732303,\n\t\t\t0.505882,\n\t\t\t0.988328,\n\t\t\t0.77504,\n\t\t\t0.755617,\n\t\t\t0.631373,\n\t\t\t0.990296,\n\t\t\t0.828189,\n\t\t\t0.812703,\n\t\t\t0.756863,\n\t\t\t0.992372,\n\t\t\t0.880907,\n\t\t\t0.869035,\n\t\t\t0.882353,\n\t\t\t0.996309,\n\t\t\t0.926182,\n\t\t\t0.912341,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.952941\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"RdPu\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.403922,\n\t\t\t0,\n\t\t\t0.121569,\n\t\t\t-0.87451,\n\t\t\t0.500377,\n\t\t\t0,\n\t\t\t0.192434,\n\t\t\t-0.74902,\n\t\t\t0.596909,\n\t\t\t0.000277,\n\t\t\t0.263037,\n\t\t\t-0.623529,\n\t\t\t0.703206,\n\t\t\t0.035709,\n\t\t\t0.300438,\n\t\t\t-0.498039,\n\t\t\t0.808612,\n\t\t\t0.071296,\n\t\t\t0.338854,\n\t\t\t-0.372549,\n\t\t\t0.857824,\n\t\t\t0.116571,\n\t\t\t0.441215,\n\t\t\t-0.247059,\n\t\t\t0.905513,\n\t\t\t0.163552,\n\t\t\t0.54293,\n\t\t\t-0.121569,\n\t\t\t0.889765,\n\t\t\t0.281661,\n\t\t\t0.617732,\n\t\t\t0.00392157,\n\t\t\t0.873156,\n\t\t\t0.39897,\n\t\t\t0.691611,\n\t\t\t0.129412,\n\t\t\t0.82985,\n\t\t\t0.491488,\n\t\t\t0.736886,\n\t\t\t0.254902,\n\t\t\t0.789081,\n\t\t\t0.583237,\n\t\t\t0.781853,\n\t\t\t0.380392,\n\t\t\t0.810734,\n\t\t\t0.656071,\n\t\t\t0.819254,\n\t\t\t0.505882,\n\t\t\t0.833126,\n\t\t\t0.729181,\n\t\t\t0.85684,\n\t\t\t0.631373,\n\t\t\t0.870527,\n\t\t\t0.80792,\n\t\t\t0.898178,\n\t\t\t0.756863,\n\t\t\t0.907605,\n\t\t\t0.884398,\n\t\t\t0.938331,\n\t\t\t0.882353,\n\t\t\t0.9391,\n\t\t\t0.921799,\n\t\t\t0.958016,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.956863,\n\t\t\t0.976471\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"Oranges\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.498039,\n\t\t\t0.152941,\n\t\t\t0.015686,\n\t\t\t-0.87451,\n\t\t\t0.57481,\n\t\t\t0.182468,\n\t\t\t0.013718,\n\t\t\t-0.74902,\n\t\t\t0.651765,\n\t\t\t0.212042,\n\t\t\t0.011734,\n\t\t\t-0.623529,\n\t\t\t0.752157,\n\t\t\t0.247474,\n\t\t\t0.007797,\n\t\t\t-0.498039,\n\t\t\t0.851719,\n\t\t\t0.283368,\n\t\t\t0.004475,\n\t\t\t-0.372549,\n\t\t\t0.898962,\n\t\t\t0.348328,\n\t\t\t0.039908,\n\t\t\t-0.247059,\n\t\t\t0.945652,\n\t\t\t0.413426,\n\t\t\t0.076401,\n\t\t\t-0.121569,\n\t\t\t0.969273,\n\t\t\t0.484291,\n\t\t\t0.157109,\n\t\t\t0.00392157,\n\t\t\t0.992157,\n\t\t\t0.554971,\n\t\t\t0.238185,\n\t\t\t0.129412,\n\t\t\t0.992157,\n\t\t\t0.619931,\n\t\t\t0.330704,\n\t\t\t0.254902,\n\t\t\t0.992157,\n\t\t\t0.684967,\n\t\t\t0.423837,\n\t\t\t0.380392,\n\t\t\t0.992157,\n\t\t\t0.751895,\n\t\t\t0.532103,\n\t\t\t0.505882,\n\t\t\t0.992249,\n\t\t\t0.817716,\n\t\t\t0.639354,\n\t\t\t0.631373,\n\t\t\t0.994218,\n\t\t\t0.861023,\n\t\t\t0.725967,\n\t\t\t0.756863,\n\t\t\t0.996186,\n\t\t\t0.903576,\n\t\t\t0.810965,\n\t\t\t0.882353,\n\t\t\t0.998155,\n\t\t\t0.933103,\n\t\t\t0.868051,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.960784,\n\t\t\t0.921569\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"Reds\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.403922,\n\t\t\t0,\n\t\t\t0.05098,\n\t\t\t-0.87451,\n\t\t\t0.525967,\n\t\t\t0.029527,\n\t\t\t0.066728,\n\t\t\t-0.74902,\n\t\t\t0.647643,\n\t\t\t0.058962,\n\t\t\t0.082476,\n\t\t\t-0.623529,\n\t\t\t0.722445,\n\t\t\t0.076678,\n\t\t\t0.098224,\n\t\t\t-0.498039,\n\t\t\t0.797186,\n\t\t\t0.095194,\n\t\t\t0.114187,\n\t\t\t-0.372549,\n\t\t\t0.868051,\n\t\t\t0.164091,\n\t\t\t0.143714,\n\t\t\t-0.247059,\n\t\t\t0.937809,\n\t\t\t0.233541,\n\t\t\t0.173933,\n\t\t\t-0.121569,\n\t\t\t0.96143,\n\t\t\t0.326059,\n\t\t\t0.232987,\n\t\t\t0.00392157,\n\t\t\t0.984375,\n\t\t\t0.418147,\n\t\t\t0.292657,\n\t\t\t0.129412,\n\t\t\t0.986344,\n\t\t\t0.496886,\n\t\t\t0.371396,\n\t\t\t0.254902,\n\t\t\t0.988235,\n\t\t\t0.575702,\n\t\t\t0.450673,\n\t\t\t0.380392,\n\t\t\t0.988235,\n\t\t\t0.656409,\n\t\t\t0.543191,\n\t\t\t0.505882,\n\t\t\t0.98842,\n\t\t\t0.736747,\n\t\t\t0.635894,\n\t\t\t0.631373,\n\t\t\t0.992357,\n\t\t\t0.809581,\n\t\t\t0.732349,\n\t\t\t0.756863,\n\t\t\t0.996186,\n\t\t\t0.880692,\n\t\t\t0.826759,\n\t\t\t0.882353,\n\t\t\t0.998155,\n\t\t\t0.92203,\n\t\t\t0.885813,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.960784,\n\t\t\t0.941176\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"RdOr\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.498039,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.87451,\n\t\t\t0.6004,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.74902,\n\t\t\t0.702514,\n\t\t\t0.000738,\n\t\t\t0.000477,\n\t\t\t-0.623529,\n\t\t\t0.773379,\n\t\t\t0.095225,\n\t\t\t0.061499,\n\t\t\t-0.498039,\n\t\t\t0.843875,\n\t\t\t0.189865,\n\t\t\t0.12283,\n\t\t\t-0.372549,\n\t\t\t0.891119,\n\t\t\t0.294195,\n\t\t\t0.203537,\n\t\t\t-0.247059,\n\t\t\t0.937855,\n\t\t\t0.397924,\n\t\t\t0.283137,\n\t\t\t-0.121569,\n\t\t\t0.963445,\n\t\t\t0.476663,\n\t\t\t0.316601,\n\t\t\t0.00392157,\n\t\t\t0.988297,\n\t\t\t0.555771,\n\t\t\t0.351665,\n\t\t\t0.129412,\n\t\t\t0.990265,\n\t\t\t0.646321,\n\t\t\t0.436309,\n\t\t\t0.254902,\n\t\t\t0.992157,\n\t\t\t0.735256,\n\t\t\t0.519646,\n\t\t\t0.380392,\n\t\t\t0.992157,\n\t\t\t0.784468,\n\t\t\t0.570827,\n\t\t\t0.505882,\n\t\t\t0.992249,\n\t\t\t0.833218,\n\t\t\t0.623483,\n\t\t\t0.631373,\n\t\t\t0.994218,\n\t\t\t0.872587,\n\t\t\t0.706159,\n\t\t\t0.756863,\n\t\t\t0.996186,\n\t\t\t0.911419,\n\t\t\t0.788189,\n\t\t\t0.882353,\n\t\t\t0.998155,\n\t\t\t0.940946,\n\t\t\t0.859054,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.968627,\n\t\t\t0.92549\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"BrOrYl\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.4,\n\t\t\t0.145098,\n\t\t\t0.023529,\n\t\t\t-0.87451,\n\t\t\t0.500392,\n\t\t\t0.174625,\n\t\t\t0.019592,\n\t\t\t-0.74902,\n\t\t\t0.600784,\n\t\t\t0.204291,\n\t\t\t0.015656,\n\t\t\t-0.623529,\n\t\t\t0.701176,\n\t\t\t0.251534,\n\t\t\t0.011719,\n\t\t\t-0.498039,\n\t\t\t0.800984,\n\t\t\t0.299146,\n\t\t\t0.008397,\n\t\t\t-0.372549,\n\t\t\t0.863975,\n\t\t\t0.370012,\n\t\t\t0.043829,\n\t\t\t-0.247059,\n\t\t\t0.926321,\n\t\t\t0.441107,\n\t\t\t0.0794,\n\t\t\t-0.121569,\n\t\t\t0.961753,\n\t\t\t0.521815,\n\t\t\t0.120738,\n\t\t\t0.00392157,\n\t\t\t0.996078,\n\t\t\t0.602645,\n\t\t\t0.163122,\n\t\t\t0.129412,\n\t\t\t0.996078,\n\t\t\t0.68729,\n\t\t\t0.237924,\n\t\t\t0.254902,\n\t\t\t0.996078,\n\t\t\t0.771011,\n\t\t\t0.314879,\n\t\t\t0.380392,\n\t\t\t0.996078,\n\t\t\t0.832034,\n\t\t\t0.444798,\n\t\t\t0.505882,\n\t\t\t0.996171,\n\t\t\t0.892042,\n\t\t\t0.572595,\n\t\t\t0.631373,\n\t\t\t0.998139,\n\t\t\t0.931411,\n\t\t\t0.65724,\n\t\t\t0.756863,\n\t\t\t1,\n\t\t\t0.969489,\n\t\t\t0.741669,\n\t\t\t0.882353,\n\t\t\t1,\n\t\t\t0.985236,\n\t\t\t0.822376,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.898039\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"RdOrYl\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.501961,\n\t\t\t0,\n\t\t\t0.14902,\n\t\t\t-0.87451,\n\t\t\t0.622038,\n\t\t\t0,\n\t\t\t0.14902,\n\t\t\t-0.74902,\n\t\t\t0.741761,\n\t\t\t0.0004,\n\t\t\t0.148866,\n\t\t\t-0.623529,\n\t\t\t0.816563,\n\t\t\t0.05158,\n\t\t\t0.129181,\n\t\t\t-0.498039,\n\t\t\t0.890965,\n\t\t\t0.10356,\n\t\t\t0.110235,\n\t\t\t-0.372549,\n\t\t\t0.940177,\n\t\t\t0.205921,\n\t\t\t0.137793,\n\t\t\t-0.247059,\n\t\t\t0.988281,\n\t\t\t0.308789,\n\t\t\t0.165536,\n\t\t\t-0.121569,\n\t\t\t0.99025,\n\t\t\t0.432803,\n\t\t\t0.200969,\n\t\t\t0.00392157,\n\t\t\t0.992218,\n\t\t\t0.555217,\n\t\t\t0.236278,\n\t\t\t0.129412,\n\t\t\t0.994187,\n\t\t\t0.628051,\n\t\t\t0.267774,\n\t\t\t0.254902,\n\t\t\t0.996078,\n\t\t\t0.701038,\n\t\t\t0.301269,\n\t\t\t0.380392,\n\t\t\t0.996078,\n\t\t\t0.777809,\n\t\t\t0.383945,\n\t\t\t0.505882,\n\t\t\t0.996171,\n\t\t\t0.852826,\n\t\t\t0.466621,\n\t\t\t0.631373,\n\t\t\t0.998139,\n\t\t\t0.892195,\n\t\t\t0.549296,\n\t\t\t0.756863,\n\t\t\t1,\n\t\t\t0.931349,\n\t\t\t0.632188,\n\t\t\t0.882353,\n\t\t\t1,\n\t\t\t0.966782,\n\t\t\t0.7188,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"CIELab_blue2red\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0.6,\n\t\t\t0.74902,\n\t\t\t1,\n\t\t\t0.76863,\n\t\t\t0.46667,\n\t\t\t0.34118\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"blue2yellow\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.5,\n\t\t\t0.5,\n\t\t\t0.5,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_blue2gold\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.175119,\n\t\t\t0.0438468,\n\t\t\t1,\n\t\t\t-0.874016,\n\t\t\t0.22383,\n\t\t\t0.159771,\n\t\t\t0.94557,\n\t\t\t-0.748031,\n\t\t\t0.27254,\n\t\t\t0.233611,\n\t\t\t0.891216,\n\t\t\t-0.622047,\n\t\t\t0.321251,\n\t\t\t0.296526,\n\t\t\t0.836857,\n\t\t\t-0.496063,\n\t\t\t0.369962,\n\t\t\t0.354296,\n\t\t\t0.782359,\n\t\t\t-0.370079,\n\t\t\t0.418672,\n\t\t\t0.409139,\n\t\t\t0.72754,\n\t\t\t-0.244094,\n\t\t\t0.467383,\n\t\t\t0.462152,\n\t\t\t0.672148,\n\t\t\t-0.11811,\n\t\t\t0.51609,\n\t\t\t0.51396,\n\t\t\t0.615825,\n\t\t\t0.00787402,\n\t\t\t0.572863,\n\t\t\t0.55452,\n\t\t\t0.559172,\n\t\t\t0.133858,\n\t\t\t0.630269,\n\t\t\t0.593822,\n\t\t\t0.517729,\n\t\t\t0.259843,\n\t\t\t0.689588,\n\t\t\t0.624668,\n\t\t\t0.47446,\n\t\t\t0.385827,\n\t\t\t0.745394,\n\t\t\t0.656113,\n\t\t\t0.428638,\n\t\t\t0.511811,\n\t\t\t0.798624,\n\t\t\t0.688104,\n\t\t\t0.379105,\n\t\t\t0.637795,\n\t\t\t0.849926,\n\t\t\t0.720593,\n\t\t\t0.323834,\n\t\t\t0.76378,\n\t\t\t0.899765,\n\t\t\t0.753543,\n\t\t\t0.258657,\n\t\t\t0.889764,\n\t\t\t0.948487,\n\t\t\t0.78692,\n\t\t\t0.171778,\n\t\t\t1,\n\t\t\t0.990413,\n\t\t\t0.816451,\n\t\t\t0.00729848\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_blue2yellow\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.0830122,\n\t\t\t0,\n\t\t\t0.495617,\n\t\t\t-0.87451,\n\t\t\t0.141973,\n\t\t\t0.0551288,\n\t\t\t0.57363,\n\t\t\t-0.74902,\n\t\t\t0.193048,\n\t\t\t0.110258,\n\t\t\t0.604561,\n\t\t\t-0.623529,\n\t\t\t0.234231,\n\t\t\t0.165386,\n\t\t\t0.57643,\n\t\t\t-0.498039,\n\t\t\t0.275413,\n\t\t\t0.220515,\n\t\t\t0.548299,\n\t\t\t-0.372549,\n\t\t\t0.316596,\n\t\t\t0.275644,\n\t\t\t0.520169,\n\t\t\t-0.247059,\n\t\t\t0.357778,\n\t\t\t0.330773,\n\t\t\t0.492038,\n\t\t\t-0.121569,\n\t\t\t0.398961,\n\t\t\t0.385901,\n\t\t\t0.463908,\n\t\t\t0.00392157,\n\t\t\t0.449929,\n\t\t\t0.438487,\n\t\t\t0.426815,\n\t\t\t0.129412,\n\t\t\t0.511572,\n\t\t\t0.488299,\n\t\t\t0.379944,\n\t\t\t0.254902,\n\t\t\t0.581222,\n\t\t\t0.53603,\n\t\t\t0.325741,\n\t\t\t0.380392,\n\t\t\t0.650871,\n\t\t\t0.583761,\n\t\t\t0.271538,\n\t\t\t0.505882,\n\t\t\t0.720521,\n\t\t\t0.631493,\n\t\t\t0.217335,\n\t\t\t0.631373,\n\t\t\t0.79017,\n\t\t\t0.679224,\n\t\t\t0.163132,\n\t\t\t0.756863,\n\t\t\t0.85982,\n\t\t\t0.726955,\n\t\t\t0.108929,\n\t\t\t0.882353,\n\t\t\t0.910254,\n\t\t\t0.774159,\n\t\t\t0.14112,\n\t\t\t1,\n\t\t\t0.927513,\n\t\t\t0.81759,\n\t\t\t0.306289\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_cyan2orange\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.0471513,\n\t\t\t0.213874,\n\t\t\t0.414329,\n\t\t\t-0.87451,\n\t\t\t0.0674702,\n\t\t\t0.256648,\n\t\t\t0.439027,\n\t\t\t-0.74902,\n\t\t\t0.0959957,\n\t\t\t0.299331,\n\t\t\t0.462089,\n\t\t\t-0.623529,\n\t\t\t0.132428,\n\t\t\t0.341872,\n\t\t\t0.483212,\n\t\t\t-0.498039,\n\t\t\t0.188743,\n\t\t\t0.38277,\n\t\t\t0.500597,\n\t\t\t-0.372549,\n\t\t\t0.268511,\n\t\t\t0.420229,\n\t\t\t0.512179,\n\t\t\t-0.247059,\n\t\t\t0.352945,\n\t\t\t0.455602,\n\t\t\t0.519101,\n\t\t\t-0.121569,\n\t\t\t0.43893,\n\t\t\t0.489368,\n\t\t\t0.521538,\n\t\t\t0.00392157,\n\t\t\t0.522445,\n\t\t\t0.522495,\n\t\t\t0.522436,\n\t\t\t0.129412,\n\t\t\t0.600089,\n\t\t\t0.555682,\n\t\t\t0.53205,\n\t\t\t0.254902,\n\t\t\t0.67988,\n\t\t\t0.587981,\n\t\t\t0.539163,\n\t\t\t0.380392,\n\t\t\t0.761011,\n\t\t\t0.619586,\n\t\t\t0.544439,\n\t\t\t0.505882,\n\t\t\t0.84278,\n\t\t\t0.650741,\n\t\t\t0.548567,\n\t\t\t0.631373,\n\t\t\t0.910713,\n\t\t\t0.687347,\n\t\t\t0.557822,\n\t\t\t0.756863,\n\t\t\t0.952232,\n\t\t\t0.734972,\n\t\t\t0.577775,\n\t\t\t0.882353,\n\t\t\t0.975642,\n\t\t\t0.789858,\n\t\t\t0.604868,\n\t\t\t1,\n\t\t\t0.990752,\n\t\t\t0.843643,\n\t\t\t0.632857\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_purple2green\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.235006,\n\t\t\t0.0483128,\n\t\t\t0.530899,\n\t\t\t-0.87451,\n\t\t\t0.302968,\n\t\t\t0.108419,\n\t\t\t0.552391,\n\t\t\t-0.74902,\n\t\t\t0.360241,\n\t\t\t0.166059,\n\t\t\t0.569502,\n\t\t\t-0.623529,\n\t\t\t0.406746,\n\t\t\t0.226782,\n\t\t\t0.579373,\n\t\t\t-0.498039,\n\t\t\t0.444073,\n\t\t\t0.28964,\n\t\t\t0.582094,\n\t\t\t-0.372549,\n\t\t\t0.473648,\n\t\t\t0.353774,\n\t\t\t0.577947,\n\t\t\t-0.247059,\n\t\t\t0.497636,\n\t\t\t0.418154,\n\t\t\t0.567911,\n\t\t\t-0.121569,\n\t\t\t0.519086,\n\t\t\t0.481741,\n\t\t\t0.553968,\n\t\t\t0.00392157,\n\t\t\t0.542884,\n\t\t\t0.542914,\n\t\t\t0.542875,\n\t\t\t0.129412,\n\t\t\t0.566303,\n\t\t\t0.603989,\n\t\t\t0.527499,\n\t\t\t0.254902,\n\t\t\t0.595218,\n\t\t\t0.662965,\n\t\t\t0.516857,\n\t\t\t0.380392,\n\t\t\t0.628641,\n\t\t\t0.720701,\n\t\t\t0.510673,\n\t\t\t0.505882,\n\t\t\t0.665373,\n\t\t\t0.777849,\n\t\t\t0.508165,\n\t\t\t0.631373,\n\t\t\t0.704182,\n\t\t\t0.834921,\n\t\t\t0.508303,\n\t\t\t0.756863,\n\t\t\t0.743846,\n\t\t\t0.892328,\n\t\t\t0.50999,\n\t\t\t0.882353,\n\t\t\t0.783158,\n\t\t\t0.950422,\n\t\t\t0.512181,\n\t\t\t1,\n\t\t\t0.818617,\n\t\t\t1,\n\t\t\t0.513888\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_purple2green_dark\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.107656,\n\t\t\t0,\n\t\t\t0.428682,\n\t\t\t-0.87451,\n\t\t\t0.1924,\n\t\t\t0,\n\t\t\t0.449799,\n\t\t\t-0.74902,\n\t\t\t0.255118,\n\t\t\t0.0648939,\n\t\t\t0.466726,\n\t\t\t-0.623529,\n\t\t\t0.304256,\n\t\t\t0.133066,\n\t\t\t0.476703,\n\t\t\t-0.498039,\n\t\t\t0.343202,\n\t\t\t0.19716,\n\t\t\t0.479793,\n\t\t\t-0.372549,\n\t\t\t0.373876,\n\t\t\t0.260353,\n\t\t\t0.476241,\n\t\t\t-0.247059,\n\t\t\t0.398497,\n\t\t\t0.322872,\n\t\t\t0.466953,\n\t\t\t-0.121569,\n\t\t\t0.420016,\n\t\t\t0.384252,\n\t\t\t0.453785,\n\t\t\t0.00392157,\n\t\t\t0.44319,\n\t\t\t0.443216,\n\t\t\t0.443186,\n\t\t\t0.129412,\n\t\t\t0.465553,\n\t\t\t0.502139,\n\t\t\t0.428233,\n\t\t\t0.254902,\n\t\t\t0.492959,\n\t\t\t0.559151,\n\t\t\t0.417591,\n\t\t\t0.380392,\n\t\t\t0.524654,\n\t\t\t0.615092,\n\t\t\t0.411016,\n\t\t\t0.505882,\n\t\t\t0.55959,\n\t\t\t0.670583,\n\t\t\t0.40779,\n\t\t\t0.631373,\n\t\t\t0.596614,\n\t\t\t0.726102,\n\t\t\t0.406948,\n\t\t\t0.756863,\n\t\t\t0.634544,\n\t\t\t0.782032,\n\t\t\t0.407439,\n\t\t\t0.882353,\n\t\t\t0.672183,\n\t\t\t0.838703,\n\t\t\t0.408237,\n\t\t\t1,\n\t\t\t0.706131,\n\t\t\t0.892759,\n\t\t\t0.408452\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"coolwarm\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.229806,\n\t\t\t0.298718,\n\t\t\t0.753683,\n\t\t\t-0.875,\n\t\t\t0.303869,\n\t\t\t0.406535,\n\t\t\t0.844959,\n\t\t\t-0.75,\n\t\t\t0.383013,\n\t\t\t0.509419,\n\t\t\t0.917388,\n\t\t\t-0.625,\n\t\t\t0.466667,\n\t\t\t0.604563,\n\t\t\t0.968155,\n\t\t\t-0.5,\n\t\t\t0.552953,\n\t\t\t0.688929,\n\t\t\t0.995376,\n\t\t\t-0.375,\n\t\t\t0.639176,\n\t\t\t0.7596,\n\t\t\t0.998151,\n\t\t\t-0.25,\n\t\t\t0.722193,\n\t\t\t0.813953,\n\t\t\t0.976575,\n\t\t\t-0.125,\n\t\t\t0.798692,\n\t\t\t0.849786,\n\t\t\t0.931689,\n\t\t\t0,\n\t\t\t0.865395,\n\t\t\t0.86541,\n\t\t\t0.865396,\n\t\t\t0.125,\n\t\t\t0.924128,\n\t\t\t0.827385,\n\t\t\t0.774508,\n\t\t\t0.25,\n\t\t\t0.958853,\n\t\t\t0.769768,\n\t\t\t0.678008,\n\t\t\t0.375,\n\t\t\t0.969954,\n\t\t\t0.694267,\n\t\t\t0.579375,\n\t\t\t0.5,\n\t\t\t0.958003,\n\t\t\t0.602842,\n\t\t\t0.481776,\n\t\t\t0.625,\n\t\t\t0.923945,\n\t\t\t0.497309,\n\t\t\t0.38797,\n\t\t\t0.75,\n\t\t\t0.869187,\n\t\t\t0.378313,\n\t\t\t0.300267,\n\t\t\t0.875,\n\t\t\t0.795632,\n\t\t\t0.241284,\n\t\t\t0.220526,\n\t\t\t1,\n\t\t\t0.705673,\n\t\t\t0.0155562,\n\t\t\t0.150233\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"BuRd\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.019608,\n\t\t\t0.188235,\n\t\t\t0.380392,\n\t\t\t-0.87451,\n\t\t\t0.088504,\n\t\t\t0.321107,\n\t\t\t0.564937,\n\t\t\t-0.74902,\n\t\t\t0.163399,\n\t\t\t0.444983,\n\t\t\t0.697501,\n\t\t\t-0.623529,\n\t\t\t0.247059,\n\t\t\t0.555709,\n\t\t\t0.754095,\n\t\t\t-0.498039,\n\t\t\t0.420684,\n\t\t\t0.676432,\n\t\t\t0.818685,\n\t\t\t-0.372549,\n\t\t\t0.606459,\n\t\t\t0.789773,\n\t\t\t0.880277,\n\t\t\t-0.247059,\n\t\t\t0.761476,\n\t\t\t0.868512,\n\t\t\t0.924567,\n\t\t\t-0.121569,\n\t\t\t0.878047,\n\t\t\t0.925721,\n\t\t\t0.951942,\n\t\t\t0.00392157,\n\t\t\t0.969089,\n\t\t\t0.966474,\n\t\t\t0.964937,\n\t\t\t0.129412,\n\t\t\t0.983852,\n\t\t\t0.897578,\n\t\t\t0.846828,\n\t\t\t0.254902,\n\t\t\t0.982468,\n\t\t\t0.800692,\n\t\t\t0.706113,\n\t\t\t0.380392,\n\t\t\t0.960323,\n\t\t\t0.66782,\n\t\t\t0.536332,\n\t\t\t0.505882,\n\t\t\t0.894579,\n\t\t\t0.503806,\n\t\t\t0.399769,\n\t\t\t0.631373,\n\t\t\t0.81707,\n\t\t\t0.33218,\n\t\t\t0.281046,\n\t\t\t0.756863,\n\t\t\t0.728489,\n\t\t\t0.155017,\n\t\t\t0.197386,\n\t\t\t0.882353,\n\t\t\t0.576932,\n\t\t\t0.055363,\n\t\t\t0.14925,\n\t\t\t1,\n\t\t\t0.403922,\n\t\t\t0,\n\t\t\t0.121569\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"Spectral_lowBlue\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.368627,\n\t\t\t0.309804,\n\t\t\t0.635294,\n\t\t\t-0.87451,\n\t\t\t0.260361,\n\t\t\t0.450058,\n\t\t\t0.70173,\n\t\t\t-0.74902,\n\t\t\t0.248058,\n\t\t\t0.591311,\n\t\t\t0.717186,\n\t\t\t-0.623529,\n\t\t\t0.376009,\n\t\t\t0.734025,\n\t\t\t0.658132,\n\t\t\t-0.498039,\n\t\t\t0.537947,\n\t\t\t0.814764,\n\t\t\t0.64506,\n\t\t\t-0.372549,\n\t\t\t0.702345,\n\t\t\t0.879585,\n\t\t\t0.636678,\n\t\t\t-0.247059,\n\t\t\t0.84752,\n\t\t\t0.938639,\n\t\t\t0.607151,\n\t\t\t-0.121569,\n\t\t\t0.940408,\n\t\t\t0.976163,\n\t\t\t0.656055,\n\t\t\t0.00392157,\n\t\t\t0.999923,\n\t\t\t0.997616,\n\t\t\t0.745021,\n\t\t\t0.129412,\n\t\t\t0.997463,\n\t\t\t0.921338,\n\t\t\t0.61707,\n\t\t\t0.254902,\n\t\t\t0.995002,\n\t\t\t0.824606,\n\t\t\t0.499885,\n\t\t\t0.380392,\n\t\t\t0.992541,\n\t\t\t0.701576,\n\t\t\t0.39654,\n\t\t\t0.505882,\n\t\t\t0.973472,\n\t\t\t0.547405,\n\t\t\t0.318108,\n\t\t\t0.631373,\n\t\t\t0.937793,\n\t\t\t0.398539,\n\t\t\t0.270127,\n\t\t\t0.756863,\n\t\t\t0.861515,\n\t\t\t0.282891,\n\t\t\t0.299654,\n\t\t\t0.882353,\n\t\t\t0.746482,\n\t\t\t0.144637,\n\t\t\t0.288812,\n\t\t\t1,\n\t\t\t0.619608,\n\t\t\t0.003922,\n\t\t\t0.258824\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"GnRP\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0.266667,\n\t\t\t0.105882,\n\t\t\t-0.87451,\n\t\t\t0.066436,\n\t\t\t0.394617,\n\t\t\t0.174779,\n\t\t\t-0.74902,\n\t\t\t0.168858,\n\t\t\t0.524567,\n\t\t\t0.25767,\n\t\t\t-0.623529,\n\t\t\t0.323875,\n\t\t\t0.657439,\n\t\t\t0.361015,\n\t\t\t-0.498039,\n\t\t\t0.504883,\n\t\t\t0.772318,\n\t\t\t0.506344,\n\t\t\t-0.372549,\n\t\t\t0.678431,\n\t\t\t0.870127,\n\t\t\t0.654902,\n\t\t\t-0.247059,\n\t\t\t0.803922,\n\t\t\t0.921799,\n\t\t\t0.780392,\n\t\t\t-0.121569,\n\t\t\t0.897116,\n\t\t\t0.951942,\n\t\t\t0.882814,\n\t\t\t0.00392157,\n\t\t\t0.967397,\n\t\t\t0.965936,\n\t\t\t0.967474,\n\t\t\t0.129412,\n\t\t\t0.928028,\n\t\t\t0.879815,\n\t\t\t0.930565,\n\t\t\t0.254902,\n\t\t\t0.866052,\n\t\t\t0.780777,\n\t\t\t0.882891,\n\t\t\t0.380392,\n\t\t\t0.77501,\n\t\t\t0.665129,\n\t\t\t0.821376,\n\t\t\t0.505882,\n\t\t\t0.675663,\n\t\t\t0.537024,\n\t\t\t0.737024,\n\t\t\t0.631373,\n\t\t\t0.57847,\n\t\t\t0.396155,\n\t\t\t0.645982,\n\t\t\t0.756863,\n\t\t\t0.492349,\n\t\t\t0.223914,\n\t\t\t0.547559,\n\t\t\t0.882353,\n\t\t\t0.375548,\n\t\t\t0.096886,\n\t\t\t0.423299,\n\t\t\t1,\n\t\t\t0.25098,\n\t\t\t0,\n\t\t\t0.294118\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"GYPi\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.152941,\n\t\t\t0.392157,\n\t\t\t0.098039,\n\t\t\t-0.87451,\n\t\t\t0.246444,\n\t\t\t0.505344,\n\t\t\t0.117724,\n\t\t\t-0.74902,\n\t\t\t0.351942,\n\t\t\t0.614533,\n\t\t\t0.161399,\n\t\t\t-0.623529,\n\t\t\t0.474971,\n\t\t\t0.717878,\n\t\t\t0.240138,\n\t\t\t-0.498039,\n\t\t\t0.611995,\n\t\t\t0.811226,\n\t\t\t0.392849,\n\t\t\t-0.372549,\n\t\t\t0.746328,\n\t\t\t0.893118,\n\t\t\t0.565321,\n\t\t\t-0.247059,\n\t\t\t0.859516,\n\t\t\t0.94233,\n\t\t\t0.747405,\n\t\t\t-0.121569,\n\t\t\t0.928105,\n\t\t\t0.96386,\n\t\t\t0.875663,\n\t\t\t0.00392157,\n\t\t\t0.969089,\n\t\t\t0.966859,\n\t\t\t0.968012,\n\t\t\t0.129412,\n\t\t\t0.983852,\n\t\t\t0.910265,\n\t\t\t0.948328,\n\t\t\t0.254902,\n\t\t\t0.979239,\n\t\t\t0.833218,\n\t\t\t0.914648,\n\t\t\t0.380392,\n\t\t\t0.949712,\n\t\t\t0.729873,\n\t\t\t0.862976,\n\t\t\t0.505882,\n\t\t\t0.905652,\n\t\t\t0.58293,\n\t\t\t0.763552,\n\t\t\t0.631373,\n\t\t\t0.85521,\n\t\t\t0.410073,\n\t\t\t0.652211,\n\t\t\t0.756863,\n\t\t\t0.793695,\n\t\t\t0.183699,\n\t\t\t0.531642,\n\t\t\t0.882353,\n\t\t\t0.683737,\n\t\t\t0.063899,\n\t\t\t0.420761,\n\t\t\t1,\n\t\t\t0.556863,\n\t\t\t0.003922,\n\t\t\t0.321569\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"GnYlRd\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0.407843,\n\t\t\t0.215686,\n\t\t\t-0.87451,\n\t\t\t0.063975,\n\t\t\t0.525952,\n\t\t\t0.277201,\n\t\t\t-0.74902,\n\t\t\t0.177932,\n\t\t\t0.633064,\n\t\t\t0.332718,\n\t\t\t-0.623529,\n\t\t\t0.364937,\n\t\t\t0.724106,\n\t\t\t0.379469,\n\t\t\t-0.498039,\n\t\t\t0.527951,\n\t\t\t0.797155,\n\t\t\t0.40223,\n\t\t\t-0.372549,\n\t\t\t0.678431,\n\t\t\t0.862822,\n\t\t\t0.433449,\n\t\t\t-0.247059,\n\t\t\t0.803922,\n\t\t\t0.916955,\n\t\t\t0.514648,\n\t\t\t-0.121569,\n\t\t\t0.909419,\n\t\t\t0.961861,\n\t\t\t0.625067,\n\t\t\t0.00392157,\n\t\t\t0.999923,\n\t\t\t0.997616,\n\t\t\t0.745021,\n\t\t\t0.129412,\n\t\t\t0.997463,\n\t\t\t0.921338,\n\t\t\t0.61707,\n\t\t\t0.254902,\n\t\t\t0.995002,\n\t\t\t0.824606,\n\t\t\t0.499885,\n\t\t\t0.380392,\n\t\t\t0.992541,\n\t\t\t0.701576,\n\t\t\t0.39654,\n\t\t\t0.505882,\n\t\t\t0.973472,\n\t\t\t0.547405,\n\t\t\t0.318108,\n\t\t\t0.631373,\n\t\t\t0.939023,\n\t\t\t0.389927,\n\t\t\t0.245521,\n\t\t\t0.756863,\n\t\t\t0.867666,\n\t\t\t0.239831,\n\t\t\t0.176624,\n\t\t\t0.882353,\n\t\t\t0.762399,\n\t\t\t0.110727,\n\t\t\t0.151326,\n\t\t\t1,\n\t\t\t0.647059,\n\t\t\t0,\n\t\t\t0.14902\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"GBBr\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0,\n\t\t\t0.235294,\n\t\t\t0.188235,\n\t\t\t-0.87451,\n\t\t\t0.002461,\n\t\t\t0.338639,\n\t\t\t0.301423,\n\t\t\t-0.74902,\n\t\t\t0.055902,\n\t\t\t0.448981,\n\t\t\t0.417609,\n\t\t\t-0.623529,\n\t\t\t0.183852,\n\t\t\t0.56955,\n\t\t\t0.538178,\n\t\t\t-0.498039,\n\t\t\t0.357785,\n\t\t\t0.700115,\n\t\t\t0.660746,\n\t\t\t-0.372549,\n\t\t\t0.540177,\n\t\t\t0.819531,\n\t\t\t0.77624,\n\t\t\t-0.247059,\n\t\t\t0.714879,\n\t\t\t0.890888,\n\t\t\t0.864821,\n\t\t\t-0.121569,\n\t\t\t0.851134,\n\t\t\t0.934564,\n\t\t\t0.922645,\n\t\t\t0.00392157,\n\t\t\t0.960861,\n\t\t\t0.959785,\n\t\t\t0.95694,\n\t\t\t0.129412,\n\t\t\t0.963322,\n\t\t\t0.927797,\n\t\t\t0.83391,\n\t\t\t0.254902,\n\t\t\t0.939946,\n\t\t\t0.868897,\n\t\t\t0.68935,\n\t\t\t0.380392,\n\t\t\t0.883353,\n\t\t\t0.775394,\n\t\t\t0.517109,\n\t\t\t0.505882,\n\t\t\t0.808074,\n\t\t\t0.625836,\n\t\t\t0.324106,\n\t\t\t0.631373,\n\t\t\t0.717647,\n\t\t\t0.476355,\n\t\t\t0.15494,\n\t\t\t0.756863,\n\t\t\t0.592157,\n\t\t\t0.358247,\n\t\t\t0.06882,\n\t\t\t0.882353,\n\t\t\t0.458593,\n\t\t\t0.26436,\n\t\t\t0.031142,\n\t\t\t1,\n\t\t\t0.329412,\n\t\t\t0.188235,\n\t\t\t0.019608\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"PuOr\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.498039,\n\t\t\t0.231373,\n\t\t\t0.031373,\n\t\t\t-0.87451,\n\t\t\t0.62599,\n\t\t\t0.30273,\n\t\t\t0.026451,\n\t\t\t-0.74902,\n\t\t\t0.746943,\n\t\t\t0.387082,\n\t\t\t0.037524,\n\t\t\t-0.623529,\n\t\t\t0.85767,\n\t\t\t0.490427,\n\t\t\t0.071972,\n\t\t\t-0.498039,\n\t\t\t0.936409,\n\t\t\t0.617762,\n\t\t\t0.236371,\n\t\t\t-0.372549,\n\t\t\t0.992695,\n\t\t\t0.743099,\n\t\t\t0.43291,\n\t\t\t-0.247059,\n\t\t\t0.995156,\n\t\t\t0.841523,\n\t\t\t0.63714,\n\t\t\t-0.121569,\n\t\t\t0.985313,\n\t\t\t0.913802,\n\t\t\t0.813687,\n\t\t\t0.00392157,\n\t\t\t0.966244,\n\t\t\t0.966398,\n\t\t\t0.967705,\n\t\t\t0.129412,\n\t\t\t0.889965,\n\t\t\t0.89504,\n\t\t\t0.938178,\n\t\t\t0.254902,\n\t\t\t0.806151,\n\t\t\t0.804306,\n\t\t\t0.894656,\n\t\t\t0.380392,\n\t\t\t0.712649,\n\t\t\t0.688658,\n\t\t\t0.833141,\n\t\t\t0.505882,\n\t\t\t0.594233,\n\t\t\t0.554325,\n\t\t\t0.744637,\n\t\t\t0.631373,\n\t\t\t0.474894,\n\t\t\t0.404229,\n\t\t\t0.652364,\n\t\t\t0.756863,\n\t\t\t0.366628,\n\t\t\t0.217224,\n\t\t\t0.563783,\n\t\t\t0.882353,\n\t\t\t0.266436,\n\t\t\t0.089965,\n\t\t\t0.434833,\n\t\t\t1,\n\t\t\t0.176471,\n\t\t\t0,\n\t\t\t0.294118\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"PRGn\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.25098,\n\t\t\t0,\n\t\t\t0.294118,\n\t\t\t-0.87451,\n\t\t\t0.383852,\n\t\t\t0.103345,\n\t\t\t0.431911,\n\t\t\t-0.74902,\n\t\t\t0.497732,\n\t\t\t0.234679,\n\t\t\t0.55371,\n\t\t\t-0.623529,\n\t\t\t0.583852,\n\t\t\t0.40692,\n\t\t\t0.652134,\n\t\t\t-0.498039,\n\t\t\t0.681968,\n\t\t\t0.545175,\n\t\t\t0.742561,\n\t\t\t-0.372549,\n\t\t\t0.7807,\n\t\t\t0.672357,\n\t\t\t0.825221,\n\t\t\t-0.247059,\n\t\t\t0.871742,\n\t\t\t0.788005,\n\t\t\t0.886736,\n\t\t\t-0.121569,\n\t\t\t0.930488,\n\t\t\t0.885198,\n\t\t\t0.932872,\n\t\t\t0.00392157,\n\t\t\t0.966321,\n\t\t\t0.968089,\n\t\t\t0.965859,\n\t\t\t0.129412,\n\t\t\t0.892503,\n\t\t\t0.950865,\n\t\t\t0.877278,\n\t\t\t0.254902,\n\t\t\t0.796078,\n\t\t\t0.91857,\n\t\t\t0.772549,\n\t\t\t0.380392,\n\t\t\t0.670588,\n\t\t\t0.866897,\n\t\t\t0.647059,\n\t\t\t0.505882,\n\t\t\t0.493195,\n\t\t\t0.765398,\n\t\t\t0.496655,\n\t\t\t0.631373,\n\t\t\t0.314187,\n\t\t\t0.649135,\n\t\t\t0.354556,\n\t\t\t0.756863,\n\t\t\t0.15917,\n\t\t\t0.516263,\n\t\t\t0.251211,\n\t\t\t0.882353,\n\t\t\t0.062284,\n\t\t\t0.386621,\n\t\t\t0.170473,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.266667,\n\t\t\t0.105882\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"PiYG\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.556863,\n\t\t\t0.003922,\n\t\t\t0.321569,\n\t\t\t-0.87451,\n\t\t\t0.692195,\n\t\t\t0.067897,\n\t\t\t0.427374,\n\t\t\t-0.74902,\n\t\t\t0.797539,\n\t\t\t0.197847,\n\t\t\t0.539177,\n\t\t\t-0.623529,\n\t\t\t0.859054,\n\t\t\t0.424221,\n\t\t\t0.659746,\n\t\t\t-0.498039,\n\t\t\t0.908574,\n\t\t\t0.592618,\n\t\t\t0.770319,\n\t\t\t-0.372549,\n\t\t\t0.951557,\n\t\t\t0.736332,\n\t\t\t0.866205,\n\t\t\t-0.247059,\n\t\t\t0.981084,\n\t\t\t0.839677,\n\t\t\t0.917878,\n\t\t\t-0.121569,\n\t\t\t0.98293,\n\t\t\t0.913802,\n\t\t\t0.949558,\n\t\t\t0.00392157,\n\t\t\t0.96732,\n\t\t\t0.968474,\n\t\t\t0.965629,\n\t\t\t0.129412,\n\t\t\t0.92549,\n\t\t\t0.963552,\n\t\t\t0.869666,\n\t\t\t0.254902,\n\t\t\t0.852441,\n\t\t\t0.939254,\n\t\t\t0.736025,\n\t\t\t0.380392,\n\t\t\t0.739254,\n\t\t\t0.890042,\n\t\t\t0.553941,\n\t\t\t0.505882,\n\t\t\t0.60323,\n\t\t\t0.805536,\n\t\t\t0.382238,\n\t\t\t0.631373,\n\t\t\t0.467282,\n\t\t\t0.711419,\n\t\t\t0.235217,\n\t\t\t0.756863,\n\t\t\t0.344252,\n\t\t\t0.608074,\n\t\t\t0.156478,\n\t\t\t0.882353,\n\t\t\t0.2406,\n\t\t\t0.49827,\n\t\t\t0.116494,\n\t\t\t1,\n\t\t\t0.152941,\n\t\t\t0.392157,\n\t\t\t0.098039\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"OrPu\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.176471,\n\t\t\t0,\n\t\t\t0.294118,\n\t\t\t-0.87451,\n\t\t\t0.272434,\n\t\t\t0.095963,\n\t\t\t0.444214,\n\t\t\t-0.74902,\n\t\t\t0.373395,\n\t\t\t0.228912,\n\t\t\t0.56932,\n\t\t\t-0.623529,\n\t\t\t0.481661,\n\t\t\t0.415917,\n\t\t\t0.657901,\n\t\t\t-0.498039,\n\t\t\t0.601922,\n\t\t\t0.562937,\n\t\t\t0.750481,\n\t\t\t-0.372549,\n\t\t\t0.718493,\n\t\t\t0.695886,\n\t\t\t0.836986,\n\t\t\t-0.247059,\n\t\t\t0.811995,\n\t\t\t0.811534,\n\t\t\t0.898501,\n\t\t\t-0.121569,\n\t\t\t0.894733,\n\t\t\t0.8995,\n\t\t\t0.940023,\n\t\t\t0.00392157,\n\t\t\t0.969166,\n\t\t\t0.966859,\n\t\t\t0.963629,\n\t\t\t0.129412,\n\t\t\t0.98639,\n\t\t\t0.910265,\n\t\t\t0.803691,\n\t\t\t0.254902,\n\t\t\t0.995002,\n\t\t\t0.835371,\n\t\t\t0.624375,\n\t\t\t0.380392,\n\t\t\t0.992541,\n\t\t\t0.736947,\n\t\t\t0.420146,\n\t\t\t0.505882,\n\t\t\t0.931949,\n\t\t\t0.609458,\n\t\t\t0.224221,\n\t\t\t0.631373,\n\t\t\t0.85075,\n\t\t\t0.483968,\n\t\t\t0.069819,\n\t\t\t0.756863,\n\t\t\t0.740023,\n\t\t\t0.380623,\n\t\t\t0.035371,\n\t\t\t0.882353,\n\t\t\t0.617993,\n\t\t\t0.29827,\n\t\t\t0.026759,\n\t\t\t1,\n\t\t\t0.498039,\n\t\t\t0.231373,\n\t\t\t0.031373\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"BrBG\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.329412,\n\t\t\t0.188235,\n\t\t\t0.019608,\n\t\t\t-0.87451,\n\t\t\t0.467205,\n\t\t\t0.269435,\n\t\t\t0.031911,\n\t\t\t-0.74902,\n\t\t\t0.6,\n\t\t\t0.365629,\n\t\t\t0.074202,\n\t\t\t-0.623529,\n\t\t\t0.72549,\n\t\t\t0.483737,\n\t\t\t0.160323,\n\t\t\t-0.498039,\n\t\t\t0.812995,\n\t\t\t0.635832,\n\t\t\t0.336409,\n\t\t\t-0.372549,\n\t\t\t0.88689,\n\t\t\t0.781238,\n\t\t\t0.527874,\n\t\t\t-0.247059,\n\t\t\t0.943483,\n\t\t\t0.87474,\n\t\t\t0.700115,\n\t\t\t-0.121569,\n\t\t\t0.963168,\n\t\t\t0.929796,\n\t\t\t0.841599,\n\t\t\t0.00392157,\n\t\t\t0.957247,\n\t\t\t0.959938,\n\t\t\t0.959554,\n\t\t\t0.129412,\n\t\t\t0.84406,\n\t\t\t0.932872,\n\t\t\t0.920185,\n\t\t\t0.254902,\n\t\t\t0.70396,\n\t\t\t0.886428,\n\t\t\t0.859285,\n\t\t\t0.380392,\n\t\t\t0.529258,\n\t\t\t0.815071,\n\t\t\t0.770704,\n\t\t\t0.505882,\n\t\t\t0.346251,\n\t\t\t0.691811,\n\t\t\t0.653057,\n\t\t\t0.631373,\n\t\t\t0.175855,\n\t\t\t0.562015,\n\t\t\t0.530642,\n\t\t\t0.756863,\n\t\t\t0.047905,\n\t\t\t0.441446,\n\t\t\t0.410073,\n\t\t\t0.882353,\n\t\t\t0.002307,\n\t\t\t0.33218,\n\t\t\t0.294348,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.235294,\n\t\t\t0.188235\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"GyRd\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.101961,\n\t\t\t0.101961,\n\t\t\t0.101961,\n\t\t\t-0.87451,\n\t\t\t0.227451,\n\t\t\t0.227451,\n\t\t\t0.227451,\n\t\t\t-0.74902,\n\t\t\t0.359939,\n\t\t\t0.359939,\n\t\t\t0.359939,\n\t\t\t-0.623529,\n\t\t\t0.502653,\n\t\t\t0.502653,\n\t\t\t0.502653,\n\t\t\t-0.498039,\n\t\t\t0.631373,\n\t\t\t0.631373,\n\t\t\t0.631373,\n\t\t\t-0.372549,\n\t\t\t0.749865,\n\t\t\t0.749865,\n\t\t\t0.749865,\n\t\t\t-0.247059,\n\t\t\t0.843368,\n\t\t\t0.843368,\n\t\t\t0.843368,\n\t\t\t-0.121569,\n\t\t\t0.926105,\n\t\t\t0.926105,\n\t\t\t0.926105,\n\t\t\t0.00392157,\n\t\t\t0.999846,\n\t\t\t0.997232,\n\t\t\t0.995694,\n\t\t\t0.129412,\n\t\t\t0.994925,\n\t\t\t0.908651,\n\t\t\t0.857901,\n\t\t\t0.254902,\n\t\t\t0.982468,\n\t\t\t0.800692,\n\t\t\t0.706113,\n\t\t\t0.380392,\n\t\t\t0.960323,\n\t\t\t0.66782,\n\t\t\t0.536332,\n\t\t\t0.505882,\n\t\t\t0.894579,\n\t\t\t0.503806,\n\t\t\t0.399769,\n\t\t\t0.631373,\n\t\t\t0.81707,\n\t\t\t0.33218,\n\t\t\t0.281046,\n\t\t\t0.756863,\n\t\t\t0.728489,\n\t\t\t0.155017,\n\t\t\t0.197386,\n\t\t\t0.882353,\n\t\t\t0.576932,\n\t\t\t0.055363,\n\t\t\t0.14925,\n\t\t\t1,\n\t\t\t0.403922,\n\t\t\t0,\n\t\t\t0.121569\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_divHi_purpleGreen\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.297553,\n\t\t\t0,\n\t\t\t0.489074,\n\t\t\t-0.87451,\n\t\t\t0.40259,\n\t\t\t0.151146,\n\t\t\t0.567754,\n\t\t\t-0.74902,\n\t\t\t0.516038,\n\t\t\t0.284843,\n\t\t\t0.658231,\n\t\t\t-0.623529,\n\t\t\t0.629783,\n\t\t\t0.423646,\n\t\t\t0.750938,\n\t\t\t-0.498039,\n\t\t\t0.735198,\n\t\t\t0.563697,\n\t\t\t0.835956,\n\t\t\t-0.372549,\n\t\t\t0.82408,\n\t\t\t0.695541,\n\t\t\t0.903582,\n\t\t\t-0.247059,\n\t\t\t0.889091,\n\t\t\t0.807454,\n\t\t\t0.944862,\n\t\t\t-0.121569,\n\t\t\t0.92334,\n\t\t\t0.886917,\n\t\t\t0.951839,\n\t\t\t0.00392157,\n\t\t\t0.921045,\n\t\t\t0.921084,\n\t\t\t0.921003,\n\t\t\t0.129412,\n\t\t\t0.877324,\n\t\t\t0.907455,\n\t\t\t0.845381,\n\t\t\t0.254902,\n\t\t\t0.797649,\n\t\t\t0.849713,\n\t\t\t0.734695,\n\t\t\t0.380392,\n\t\t\t0.691646,\n\t\t\t0.75964,\n\t\t\t0.600532,\n\t\t\t0.505882,\n\t\t\t0.568981,\n\t\t\t0.649159,\n\t\t\t0.453807,\n\t\t\t0.631373,\n\t\t\t0.438945,\n\t\t\t0.529756,\n\t\t\t0.304259,\n\t\t\t0.756863,\n\t\t\t0.30973,\n\t\t\t0.412001,\n\t\t\t0.158303,\n\t\t\t0.882353,\n\t\t\t0.187078,\n\t\t\t0.305111,\n\t\t\t0.00251458,\n\t\t\t1,\n\t\t\t0.101655,\n\t\t\t0.220836,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_divHi_purpleGreen_dim\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.404088,\n\t\t\t0.131038,\n\t\t\t0.592767,\n\t\t\t-0.87451,\n\t\t\t0.486469,\n\t\t\t0.230957,\n\t\t\t0.651243,\n\t\t\t-0.74902,\n\t\t\t0.575165,\n\t\t\t0.339335,\n\t\t\t0.717723,\n\t\t\t-0.623529,\n\t\t\t0.662741,\n\t\t\t0.454332,\n\t\t\t0.784263,\n\t\t\t-0.498039,\n\t\t\t0.742071,\n\t\t\t0.570213,\n\t\t\t0.842918,\n\t\t\t-0.372549,\n\t\t\t0.806935,\n\t\t\t0.678992,\n\t\t\t0.886227,\n\t\t\t-0.247059,\n\t\t\t0.852219,\n\t\t\t0.771315,\n\t\t\t0.90763,\n\t\t\t-0.121569,\n\t\t\t0.873345,\n\t\t\t0.837327,\n\t\t\t0.901572,\n\t\t\t0.00392157,\n\t\t\t0.866783,\n\t\t\t0.86682,\n\t\t\t0.866745,\n\t\t\t0.129412,\n\t\t\t0.82839,\n\t\t\t0.858225,\n\t\t\t0.796812,\n\t\t\t0.254902,\n\t\t\t0.762578,\n\t\t\t0.814287,\n\t\t\t0.700202,\n\t\t\t0.380392,\n\t\t\t0.676429,\n\t\t\t0.744229,\n\t\t\t0.585735,\n\t\t\t0.505882,\n\t\t\t0.577033,\n\t\t\t0.65732,\n\t\t\t0.461526,\n\t\t\t0.631373,\n\t\t\t0.47128,\n\t\t\t0.562476,\n\t\t\t0.33476,\n\t\t\t0.756863,\n\t\t\t0.365461,\n\t\t\t0.467957,\n\t\t\t0.21076,\n\t\t\t0.882353,\n\t\t\t0.264758,\n\t\t\t0.381138,\n\t\t\t0.0878313,\n\t\t\t1,\n\t\t\t0.182591,\n\t\t\t0.312249,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_divLow_icePeach\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.480048,\n\t\t\t0.817441,\n\t\t\t0.998056,\n\t\t\t-0.87451,\n\t\t\t0.425898,\n\t\t\t0.726921,\n\t\t\t0.883187,\n\t\t\t-0.74902,\n\t\t\t0.366682,\n\t\t\t0.629445,\n\t\t\t0.761936,\n\t\t\t-0.623529,\n\t\t\t0.308756,\n\t\t\t0.531002,\n\t\t\t0.640217,\n\t\t\t-0.498039,\n\t\t\t0.258021,\n\t\t\t0.43705,\n\t\t\t0.523433,\n\t\t\t-0.372549,\n\t\t\t0.219244,\n\t\t\t0.352381,\n\t\t\t0.416348,\n\t\t\t-0.247059,\n\t\t\t0.195127,\n\t\t\t0.281032,\n\t\t\t0.322979,\n\t\t\t-0.121569,\n\t\t\t0.186286,\n\t\t\t0.22627,\n\t\t\t0.246525,\n\t\t\t0.00392157,\n\t\t\t0.192352,\n\t\t\t0.19236,\n\t\t\t0.192364,\n\t\t\t0.129412,\n\t\t\t0.255927,\n\t\t\t0.214469,\n\t\t\t0.191756,\n\t\t\t0.254902,\n\t\t\t0.340459,\n\t\t\t0.254426,\n\t\t\t0.206666,\n\t\t\t0.380392,\n\t\t\t0.444655,\n\t\t\t0.309315,\n\t\t\t0.234029,\n\t\t\t0.505882,\n\t\t\t0.565353,\n\t\t\t0.376004,\n\t\t\t0.270969,\n\t\t\t0.631373,\n\t\t\t0.697917,\n\t\t\t0.450748,\n\t\t\t0.314293,\n\t\t\t0.756863,\n\t\t\t0.836657,\n\t\t\t0.529064,\n\t\t\t0.360227,\n\t\t\t0.882353,\n\t\t\t0.972695,\n\t\t\t0.614884,\n\t\t\t0.413123,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.705904,\n\t\t\t0.472699\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_divLow_purpleGreen\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.956034,\n\t\t\t0.666487,\n\t\t\t0.952663,\n\t\t\t-0.87451,\n\t\t\t0.874457,\n\t\t\t0.572698,\n\t\t\t0.936352,\n\t\t\t-0.74902,\n\t\t\t0.753465,\n\t\t\t0.488253,\n\t\t\t0.909063,\n\t\t\t-0.623529,\n\t\t\t0.63309,\n\t\t\t0.413507,\n\t\t\t0.763833,\n\t\t\t-0.498039,\n\t\t\t0.514491,\n\t\t\t0.345878,\n\t\t\t0.620015,\n\t\t\t-0.372549,\n\t\t\t0.405008,\n\t\t\t0.288141,\n\t\t\t0.484376,\n\t\t\t-0.247059,\n\t\t\t0.311388,\n\t\t\t0.241986,\n\t\t\t0.363556,\n\t\t\t-0.121569,\n\t\t\t0.238722,\n\t\t\t0.209044,\n\t\t\t0.263449,\n\t\t\t0.00392157,\n\t\t\t0.192352,\n\t\t\t0.192366,\n\t\t\t0.192362,\n\t\t\t0.129412,\n\t\t\t0.200379,\n\t\t\t0.233201,\n\t\t\t0.168618,\n\t\t\t0.254902,\n\t\t\t0.230151,\n\t\t\t0.291737,\n\t\t\t0.165227,\n\t\t\t0.380392,\n\t\t\t0.279481,\n\t\t\t0.366076,\n\t\t\t0.178607,\n\t\t\t0.505882,\n\t\t\t0.344927,\n\t\t\t0.453267,\n\t\t\t0.205703,\n\t\t\t0.631373,\n\t\t\t0.421554,\n\t\t\t0.549449,\n\t\t\t0.242643,\n\t\t\t0.756863,\n\t\t\t0.503334,\n\t\t\t0.649999,\n\t\t\t0.284377,\n\t\t\t0.882353,\n\t\t\t0.583497,\n\t\t\t0.749672,\n\t\t\t0.324969,\n\t\t\t1,\n\t\t\t0.650705,\n\t\t\t0.837228,\n\t\t\t0.356264\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"Haze_green\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t1,\n\t\t\t0.835294,\n\t\t\t0.886275,\n\t\t\t-0.87451,\n\t\t\t0.937255,\n\t\t\t0.756863,\n\t\t\t0.870443,\n\t\t\t-0.74902,\n\t\t\t0.875817,\n\t\t\t0.666376,\n\t\t\t0.857807,\n\t\t\t-0.623529,\n\t\t\t0.778359,\n\t\t\t0.583007,\n\t\t\t0.808134,\n\t\t\t-0.498039,\n\t\t\t0.676253,\n\t\t\t0.494118,\n\t\t\t0.745098,\n\t\t\t-0.372549,\n\t\t\t0.561365,\n\t\t\t0.390123,\n\t\t\t0.682353,\n\t\t\t-0.247059,\n\t\t\t0.438344,\n\t\t\t0.262745,\n\t\t\t0.621496,\n\t\t\t-0.121569,\n\t\t\t0.321133,\n\t\t\t0.141031,\n\t\t\t0.558751,\n\t\t\t0.00392157,\n\t\t\t0.203922,\n\t\t\t0.0217865,\n\t\t\t0.495861,\n\t\t\t0.129412,\n\t\t\t0.265505,\n\t\t\t0.129412,\n\t\t\t0.433261,\n\t\t\t0.254902,\n\t\t\t0.311692,\n\t\t\t0.255338,\n\t\t\t0.37008,\n\t\t\t0.380392,\n\t\t\t0.356282,\n\t\t\t0.377342,\n\t\t\t0.310821,\n\t\t\t0.505882,\n\t\t\t0.39971,\n\t\t\t0.488889,\n\t\t\t0.258243,\n\t\t\t0.631373,\n\t\t\t0.442556,\n\t\t\t0.604357,\n\t\t\t0.205519,\n\t\t\t0.756863,\n\t\t\t0.48671,\n\t\t\t0.71968,\n\t\t\t0.152941,\n\t\t\t0.882353,\n\t\t\t0.529847,\n\t\t\t0.830356,\n\t\t\t0.100944,\n\t\t\t1,\n\t\t\t0.572549,\n\t\t\t0.933333,\n\t\t\t0.054902\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"Haze_lime\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.704034,\n\t\t\t0.784196,\n\t\t\t1,\n\t\t\t-0.87451,\n\t\t\t0.633111,\n\t\t\t0.691418,\n\t\t\t0.956078,\n\t\t\t-0.74902,\n\t\t\t0.564021,\n\t\t\t0.600606,\n\t\t\t0.912157,\n\t\t\t-0.623529,\n\t\t\t0.496827,\n\t\t\t0.51189,\n\t\t\t0.868235,\n\t\t\t-0.498039,\n\t\t\t0.43157,\n\t\t\t0.425416,\n\t\t\t0.824314,\n\t\t\t-0.372549,\n\t\t\t0.368248,\n\t\t\t0.341347,\n\t\t\t0.780392,\n\t\t\t-0.247059,\n\t\t\t0.306767,\n\t\t\t0.259855,\n\t\t\t0.736471,\n\t\t\t-0.121569,\n\t\t\t0.246862,\n\t\t\t0.181069,\n\t\t\t0.692549,\n\t\t\t0.00392157,\n\t\t\t0.191619,\n\t\t\t0.109542,\n\t\t\t0.648627,\n\t\t\t0.129412,\n\t\t\t0.257404,\n\t\t\t0.194031,\n\t\t\t0.604706,\n\t\t\t0.254902,\n\t\t\t0.321794,\n\t\t\t0.278775,\n\t\t\t0.560784,\n\t\t\t0.380392,\n\t\t\t0.387909,\n\t\t\t0.364617,\n\t\t\t0.516863,\n\t\t\t0.505882,\n\t\t\t0.456569,\n\t\t\t0.451881,\n\t\t\t0.472941,\n\t\t\t0.631373,\n\t\t\t0.527424,\n\t\t\t0.540773,\n\t\t\t0.42902,\n\t\t\t0.756863,\n\t\t\t0.599759,\n\t\t\t0.631427,\n\t\t\t0.385098,\n\t\t\t0.882353,\n\t\t\t0.673065,\n\t\t\t0.723898,\n\t\t\t0.341176,\n\t\t\t1,\n\t\t\t0.742751,\n\t\t\t0.812252,\n\t\t\t0.3\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"Haze\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t1,\n\t\t\t0.835294,\n\t\t\t0.996078,\n\t\t\t-0.00392157,\n\t\t\t0.023529,\n\t\t\t0.141176,\n\t\t\t0.498039,\n\t\t\t0.00392157,\n\t\t\t0.015686,\n\t\t\t0.137255,\n\t\t\t0.494118,\n\t\t\t1,\n\t\t\t0.984314,\n\t\t\t0.764706,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"Haze_cyan\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.956863,\n\t\t\t1,\n\t\t\t0.835294,\n\t\t\t-0.87451,\n\t\t\t0.933188,\n\t\t\t0.921714,\n\t\t\t0.760784,\n\t\t\t-0.74902,\n\t\t\t0.870588,\n\t\t\t0.803486,\n\t\t\t0.671605,\n\t\t\t-0.623529,\n\t\t\t0.807843,\n\t\t\t0.684096,\n\t\t\t0.583297,\n\t\t\t-0.498039,\n\t\t\t0.745098,\n\t\t\t0.569208,\n\t\t\t0.494118,\n\t\t\t-0.372549,\n\t\t\t0.682353,\n\t\t\t0.437763,\n\t\t\t0.390123,\n\t\t\t-0.247059,\n\t\t\t0.621496,\n\t\t\t0.288163,\n\t\t\t0.262745,\n\t\t\t-0.121569,\n\t\t\t0.558751,\n\t\t\t0.144517,\n\t\t\t0.141031,\n\t\t\t0.00392157,\n\t\t\t0.495861,\n\t\t\t0.0217865,\n\t\t\t0.0413943,\n\t\t\t0.129412,\n\t\t\t0.433261,\n\t\t\t0.137255,\n\t\t\t0.129412,\n\t\t\t0.254902,\n\t\t\t0.37008,\n\t\t\t0.263181,\n\t\t\t0.255338,\n\t\t\t0.380392,\n\t\t\t0.306318,\n\t\t\t0.381845,\n\t\t\t0.372694,\n\t\t\t0.505882,\n\t\t\t0.243137,\n\t\t\t0.503994,\n\t\t\t0.494263,\n\t\t\t0.631373,\n\t\t\t0.180392,\n\t\t\t0.629484,\n\t\t\t0.619753,\n\t\t\t0.756863,\n\t\t\t0.117647,\n\t\t\t0.754975,\n\t\t\t0.747131,\n\t\t\t0.882353,\n\t\t\t0.054902,\n\t\t\t0.876398,\n\t\t\t0.866812,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.988235,\n\t\t\t0.976471\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"nic_Edge\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.191208,\n\t\t\t0.191208,\n\t\t\t0.191208,\n\t\t\t-0.87451,\n\t\t\t0.239484,\n\t\t\t0.00545035,\n\t\t\t0.614821,\n\t\t\t-0.74902,\n\t\t\t0.220593,\n\t\t\t0.0617459,\n\t\t\t0.863547,\n\t\t\t-0.623529,\n\t\t\t0.17509,\n\t\t\t0.278988,\n\t\t\t0.97794,\n\t\t\t-0.498039,\n\t\t\t0.143526,\n\t\t\t0.576069,\n\t\t\t0.998553,\n\t\t\t-0.372549,\n\t\t\t0.166456,\n\t\t\t0.871883,\n\t\t\t0.96594,\n\t\t\t-0.247059,\n\t\t\t0.376202,\n\t\t\t0.993555,\n\t\t\t0.981833,\n\t\t\t-0.121569,\n\t\t\t0.681996,\n\t\t\t0.991297,\n\t\t\t0.999239,\n\t\t\t0.00392157,\n\t\t\t0.954172,\n\t\t\t0.952734,\n\t\t\t0.94374,\n\t\t\t0.129412,\n\t\t\t0.999735,\n\t\t\t0.99301,\n\t\t\t0.662896,\n\t\t\t0.254902,\n\t\t\t0.979399,\n\t\t\t0.991466,\n\t\t\t0.357973,\n\t\t\t0.380392,\n\t\t\t0.968771,\n\t\t\t0.854967,\n\t\t\t0.162659,\n\t\t\t0.505882,\n\t\t\t0.999245,\n\t\t\t0.556697,\n\t\t\t0.144323,\n\t\t\t0.631373,\n\t\t\t0.973959,\n\t\t\t0.26223,\n\t\t\t0.177946,\n\t\t\t0.756863,\n\t\t\t0.852358,\n\t\t\t0.0526707,\n\t\t\t0.222974,\n\t\t\t0.882353,\n\t\t\t0.593889,\n\t\t\t0.00912724,\n\t\t\t0.238855,\n\t\t\t1,\n\t\t\t0.191208,\n\t\t\t0.191208,\n\t\t\t0.191208\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_iceFire_H\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t4.05432e-7,\n\t\t\t0,\n\t\t\t0.00000590122,\n\t\t\t-0.87451,\n\t\t\t0,\n\t\t\t0.120401,\n\t\t\t0.302675,\n\t\t\t-0.74902,\n\t\t\t0,\n\t\t\t0.216583,\n\t\t\t0.524574,\n\t\t\t-0.623529,\n\t\t\t0.0552475,\n\t\t\t0.345025,\n\t\t\t0.6595,\n\t\t\t-0.498039,\n\t\t\t0.128047,\n\t\t\t0.492588,\n\t\t\t0.720288,\n\t\t\t-0.372549,\n\t\t\t0.188955,\n\t\t\t0.641309,\n\t\t\t0.792092,\n\t\t\t-0.247059,\n\t\t\t0.327673,\n\t\t\t0.784935,\n\t\t\t0.873434,\n\t\t\t-0.121569,\n\t\t\t0.60824,\n\t\t\t0.892164,\n\t\t\t0.935547,\n\t\t\t0.00392157,\n\t\t\t0.881371,\n\t\t\t0.912178,\n\t\t\t0.818099,\n\t\t\t0.129412,\n\t\t\t0.951407,\n\t\t\t0.835621,\n\t\t\t0.449279,\n\t\t\t0.254902,\n\t\t\t0.904481,\n\t\t\t0.690489,\n\t\t\t0,\n\t\t\t0.380392,\n\t\t\t0.85407,\n\t\t\t0.510864,\n\t\t\t0,\n\t\t\t0.505882,\n\t\t\t0.777093,\n\t\t\t0.33018,\n\t\t\t0.00088199,\n\t\t\t0.631373,\n\t\t\t0.672862,\n\t\t\t0.139087,\n\t\t\t0.00269398,\n\t\t\t0.756863,\n\t\t\t0.508815,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.882353,\n\t\t\t0.299417,\n\t\t\t0.000366289,\n\t\t\t0.000547829,\n\t\t\t1,\n\t\t\t0.0157519,\n\t\t\t0.00332021,\n\t\t\t4.55569e-8\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"erdc_iceFire_L\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.870485,\n\t\t\t0.913768,\n\t\t\t0.832905,\n\t\t\t-0.87451,\n\t\t\t0.586919,\n\t\t\t0.887865,\n\t\t\t0.934003,\n\t\t\t-0.74902,\n\t\t\t0.31583,\n\t\t\t0.776442,\n\t\t\t0.867858,\n\t\t\t-0.623529,\n\t\t\t0.18302,\n\t\t\t0.632034,\n\t\t\t0.787722,\n\t\t\t-0.498039,\n\t\t\t0.117909,\n\t\t\t0.484134,\n\t\t\t0.713825,\n\t\t\t-0.372549,\n\t\t\t0.0507239,\n\t\t\t0.335979,\n\t\t\t0.654741,\n\t\t\t-0.247059,\n\t\t\t0,\n\t\t\t0.209874,\n\t\t\t0.511832,\n\t\t\t-0.121569,\n\t\t\t0,\n\t\t\t0.114689,\n\t\t\t0.28935,\n\t\t\t0.00392157,\n\t\t\t0.0157519,\n\t\t\t0.00332021,\n\t\t\t4.55569e-8,\n\t\t\t0.129412,\n\t\t\t0.312914,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.254902,\n\t\t\t0.520865,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.380392,\n\t\t\t0.680105,\n\t\t\t0.15255,\n\t\t\t0.0025996,\n\t\t\t0.505882,\n\t\t\t0.785109,\n\t\t\t0.339479,\n\t\t\t0.000797922,\n\t\t\t0.631373,\n\t\t\t0.857354,\n\t\t\t0.522494,\n\t\t\t0,\n\t\t\t0.756863,\n\t\t\t0.910974,\n\t\t\t0.699774,\n\t\t\t0,\n\t\t\t0.882353,\n\t\t\t0.951921,\n\t\t\t0.842817,\n\t\t\t0.478545,\n\t\t\t1,\n\t\t\t0.881371,\n\t\t\t0.912178,\n\t\t\t0.818099\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"RGB\",\n\t\tName: \"hsv\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-0.666666,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t-0.333333,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.33333,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.66666,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tName: \"hue_L60\",\n\t\tRGBPoints: [\n\t\t\t-1,\n\t\t\t0.964784,\n\t\t\t0.400592,\n\t\t\t0.349549,\n\t\t\t-0.87451,\n\t\t\t0.964915,\n\t\t\t0.372498,\n\t\t\t0.53785,\n\t\t\t-0.74902,\n\t\t\t0.892353,\n\t\t\t0.401039,\n\t\t\t0.759569,\n\t\t\t-0.623529,\n\t\t\t0.79263,\n\t\t\t0.446956,\n\t\t\t0.903017,\n\t\t\t-0.498039,\n\t\t\t0.682208,\n\t\t\t0.49954,\n\t\t\t0.966673,\n\t\t\t-0.372549,\n\t\t\t0.56392,\n\t\t\t0.553082,\n\t\t\t0.968836,\n\t\t\t-0.247059,\n\t\t\t0.442031,\n\t\t\t0.606396,\n\t\t\t0.901601,\n\t\t\t-0.121569,\n\t\t\t0.305499,\n\t\t\t0.65701,\n\t\t\t0.765784,\n\t\t\t0.00392157,\n\t\t\t0.197251,\n\t\t\t0.687914,\n\t\t\t0.620914,\n\t\t\t0.129412,\n\t\t\t0.193882,\n\t\t\t0.701887,\n\t\t\t0.472654,\n\t\t\t0.254902,\n\t\t\t0.249866,\n\t\t\t0.706123,\n\t\t\t0.320005,\n\t\t\t0.380392,\n\t\t\t0.35132,\n\t\t\t0.697417,\n\t\t\t0.202919,\n\t\t\t0.505882,\n\t\t\t0.498097,\n\t\t\t0.669467,\n\t\t\t0.125232,\n\t\t\t0.631373,\n\t\t\t0.637477,\n\t\t\t0.626239,\n\t\t\t0.107431,\n\t\t\t0.756863,\n\t\t\t0.762115,\n\t\t\t0.56872,\n\t\t\t0.155812,\n\t\t\t0.882353,\n\t\t\t0.889434,\n\t\t\t0.481116,\n\t\t\t0.240445,\n\t\t\t1,\n\t\t\t0.964784,\n\t\t\t0.400592,\n\t\t\t0.349549\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.8941176470588236,\n\t\t\t0.1019607843137255,\n\t\t\t0.1098039215686274,\n\t\t\t0.2156862745098039,\n\t\t\t0.4941176470588236,\n\t\t\t0.7215686274509804,\n\t\t\t0.3019607843137255,\n\t\t\t0.6862745098039216,\n\t\t\t0.2901960784313726,\n\t\t\t0.596078431372549,\n\t\t\t0.3058823529411765,\n\t\t\t0.6392156862745098,\n\t\t\t1,\n\t\t\t0.4980392156862745,\n\t\t\t0,\n\t\t\t0.6509803921568628,\n\t\t\t0.3372549019607843,\n\t\t\t0.1568627450980392\n\t\t],\n\t\tName: \"Spectrum\",\n\t\tNanColor: [\n\t\t\t0.6509803921568628,\n\t\t\t0.3372549019607843,\n\t\t\t0.1568627450980392\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.4745098039215686,\n\t\t\t0.09019607843137255,\n\t\t\t0.09019607843137255,\n\t\t\t0.7098039215686275,\n\t\t\t0.00392156862745098,\n\t\t\t0.00392156862745098,\n\t\t\t0.9372549019607843,\n\t\t\t0.2784313725490196,\n\t\t\t0.09803921568627451,\n\t\t\t0.9764705882352941,\n\t\t\t0.5137254901960784,\n\t\t\t0.1411764705882353,\n\t\t\t1,\n\t\t\t0.7058823529411765,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.8980392156862745,\n\t\t\t0.02352941176470588\n\t\t],\n\t\tName: \"Warm\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t0.8980392156862745,\n\t\t\t0.02352941176470588\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.4588235294117647,\n\t\t\t0.6941176470588235,\n\t\t\t0.00392156862745098,\n\t\t\t0.3450980392156863,\n\t\t\t0.5019607843137255,\n\t\t\t0.1607843137254902,\n\t\t\t0.3137254901960784,\n\t\t\t0.8431372549019608,\n\t\t\t0.7490196078431373,\n\t\t\t0.1098039215686274,\n\t\t\t0.5843137254901961,\n\t\t\t0.803921568627451,\n\t\t\t0.2313725490196079,\n\t\t\t0.407843137254902,\n\t\t\t0.6705882352941176,\n\t\t\t0.6039215686274509,\n\t\t\t0.407843137254902,\n\t\t\t1,\n\t\t\t0.3725490196078431,\n\t\t\t0.2,\n\t\t\t0.5019607843137255\n\t\t],\n\t\tName: \"Cool\",\n\t\tNanColor: [\n\t\t\t0.3725490196078431,\n\t\t\t0.2,\n\t\t\t0.5019607843137255\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.2313725490196079,\n\t\t\t0.407843137254902,\n\t\t\t0.6705882352941176,\n\t\t\t0.1098039215686274,\n\t\t\t0.5843137254901961,\n\t\t\t0.803921568627451,\n\t\t\t0.3058823529411765,\n\t\t\t0.8509803921568627,\n\t\t\t0.9176470588235294,\n\t\t\t0.4509803921568628,\n\t\t\t0.6039215686274509,\n\t\t\t0.8352941176470589,\n\t\t\t0.2588235294117647,\n\t\t\t0.2392156862745098,\n\t\t\t0.6627450980392157,\n\t\t\t0.3137254901960784,\n\t\t\t0.3294117647058823,\n\t\t\t0.5294117647058824,\n\t\t\t0.06274509803921569,\n\t\t\t0.1647058823529412,\n\t\t\t0.3215686274509804\n\t\t],\n\t\tName: \"Blues\",\n\t\tNanColor: [\n\t\t\t0.06274509803921569,\n\t\t\t0.1647058823529412,\n\t\t\t0.3215686274509804\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.1098039215686274,\n\t\t\t0.5843137254901961,\n\t\t\t0.803921568627451,\n\t\t\t0.2313725490196079,\n\t\t\t0.407843137254902,\n\t\t\t0.6705882352941176,\n\t\t\t0.4,\n\t\t\t0.2431372549019608,\n\t\t\t0.7176470588235294,\n\t\t\t0.6352941176470588,\n\t\t\t0.3294117647058823,\n\t\t\t0.8117647058823529,\n\t\t\t0.8705882352941177,\n\t\t\t0.3803921568627451,\n\t\t\t0.807843137254902,\n\t\t\t0.8627450980392157,\n\t\t\t0.3803921568627451,\n\t\t\t0.5843137254901961,\n\t\t\t0.2392156862745098,\n\t\t\t0.06274509803921569,\n\t\t\t0.3215686274509804\n\t\t],\n\t\tName: \"Wild Flower\",\n\t\tNanColor: [\n\t\t\t0.2392156862745098,\n\t\t\t0.06274509803921569,\n\t\t\t0.3215686274509804\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.396078431372549,\n\t\t\t0.4862745098039216,\n\t\t\t0.2156862745098039,\n\t\t\t0.4588235294117647,\n\t\t\t0.6941176470588235,\n\t\t\t0.00392156862745098,\n\t\t\t0.6980392156862745,\n\t\t\t0.7294117647058823,\n\t\t\t0.1882352941176471,\n\t\t\t1,\n\t\t\t0.8980392156862745,\n\t\t\t0.02352941176470588,\n\t\t\t1,\n\t\t\t0.7058823529411765,\n\t\t\t0,\n\t\t\t0.9764705882352941,\n\t\t\t0.5137254901960784,\n\t\t\t0.1411764705882353\n\t\t],\n\t\tName: \"Citrus\",\n\t\tNanColor: [\n\t\t\t0.9764705882352941,\n\t\t\t0.5137254901960784,\n\t\t\t0.1411764705882353\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.4980392156862745,\n\t\t\t0.2313725490196079,\n\t\t\t0.03137254901960784,\n\t\t\t0.7019607843137254,\n\t\t\t0.3450980392156863,\n\t\t\t0.02352941176470588,\n\t\t\t0.8784313725490196,\n\t\t\t0.5098039215686274,\n\t\t\t0.0784313725490196,\n\t\t\t0.9921568627450981,\n\t\t\t0.7215686274509804,\n\t\t\t0.3882352941176471,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.7137254901960784,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.8470588235294118,\n\t\t\t0.8549019607843137,\n\t\t\t0.9215686274509803,\n\t\t\t0.6980392156862745,\n\t\t\t0.6705882352941176,\n\t\t\t0.8235294117647058,\n\t\t\t0.5019607843137255,\n\t\t\t0.4509803921568628,\n\t\t\t0.6745098039215687,\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333,\n\t\t\t0.1764705882352941,\n\t\t\t0,\n\t\t\t0.2941176470588235\n\t\t],\n\t\tName: \"Brewer Diverging Purple-Orange (11)\",\n\t\tNanColor: [\n\t\t\t0.1764705882352941,\n\t\t\t0,\n\t\t\t0.2941176470588235\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.4980392156862745,\n\t\t\t0.2313725490196079,\n\t\t\t0.03137254901960784,\n\t\t\t0.7019607843137254,\n\t\t\t0.3450980392156863,\n\t\t\t0.02352941176470588,\n\t\t\t0.8784313725490196,\n\t\t\t0.5098039215686274,\n\t\t\t0.0784313725490196,\n\t\t\t0.9921568627450981,\n\t\t\t0.7215686274509804,\n\t\t\t0.3882352941176471,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.7137254901960784,\n\t\t\t0.8470588235294118,\n\t\t\t0.8549019607843137,\n\t\t\t0.9215686274509803,\n\t\t\t0.6980392156862745,\n\t\t\t0.6705882352941176,\n\t\t\t0.8235294117647058,\n\t\t\t0.5019607843137255,\n\t\t\t0.4509803921568628,\n\t\t\t0.6745098039215687,\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333,\n\t\t\t0.1764705882352941,\n\t\t\t0,\n\t\t\t0.2941176470588235\n\t\t],\n\t\tName: \"Brewer Diverging Purple-Orange (10)\",\n\t\tNanColor: [\n\t\t\t0.1764705882352941,\n\t\t\t0,\n\t\t\t0.2941176470588235\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.7019607843137254,\n\t\t\t0.3450980392156863,\n\t\t\t0.02352941176470588,\n\t\t\t0.8784313725490196,\n\t\t\t0.5098039215686274,\n\t\t\t0.0784313725490196,\n\t\t\t0.9921568627450981,\n\t\t\t0.7215686274509804,\n\t\t\t0.3882352941176471,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.7137254901960784,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.8470588235294118,\n\t\t\t0.8549019607843137,\n\t\t\t0.9215686274509803,\n\t\t\t0.6980392156862745,\n\t\t\t0.6705882352941176,\n\t\t\t0.8235294117647058,\n\t\t\t0.5019607843137255,\n\t\t\t0.4509803921568628,\n\t\t\t0.6745098039215687,\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333\n\t\t],\n\t\tName: \"Brewer Diverging Purple-Orange (9)\",\n\t\tNanColor: [\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.7019607843137254,\n\t\t\t0.3450980392156863,\n\t\t\t0.02352941176470588,\n\t\t\t0.8784313725490196,\n\t\t\t0.5098039215686274,\n\t\t\t0.0784313725490196,\n\t\t\t0.9921568627450981,\n\t\t\t0.7215686274509804,\n\t\t\t0.3882352941176471,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.7137254901960784,\n\t\t\t0.8470588235294118,\n\t\t\t0.8549019607843137,\n\t\t\t0.9215686274509803,\n\t\t\t0.6980392156862745,\n\t\t\t0.6705882352941176,\n\t\t\t0.8235294117647058,\n\t\t\t0.5019607843137255,\n\t\t\t0.4509803921568628,\n\t\t\t0.6745098039215687,\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333\n\t\t],\n\t\tName: \"Brewer Diverging Purple-Orange (8)\",\n\t\tNanColor: [\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.7019607843137254,\n\t\t\t0.3450980392156863,\n\t\t\t0.02352941176470588,\n\t\t\t0.9450980392156862,\n\t\t\t0.6392156862745098,\n\t\t\t0.2509803921568627,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.7137254901960784,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.8470588235294118,\n\t\t\t0.8549019607843137,\n\t\t\t0.9215686274509803,\n\t\t\t0.6,\n\t\t\t0.5568627450980392,\n\t\t\t0.7647058823529411,\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333\n\t\t],\n\t\tName: \"Brewer Diverging Purple-Orange (7)\",\n\t\tNanColor: [\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.7019607843137254,\n\t\t\t0.3450980392156863,\n\t\t\t0.02352941176470588,\n\t\t\t0.9450980392156862,\n\t\t\t0.6392156862745098,\n\t\t\t0.2509803921568627,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.7137254901960784,\n\t\t\t0.8470588235294118,\n\t\t\t0.8549019607843137,\n\t\t\t0.9215686274509803,\n\t\t\t0.6,\n\t\t\t0.5568627450980392,\n\t\t\t0.7647058823529411,\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333\n\t\t],\n\t\tName: \"Brewer Diverging Purple-Orange (6)\",\n\t\tNanColor: [\n\t\t\t0.3294117647058823,\n\t\t\t0.1529411764705882,\n\t\t\t0.5333333333333333\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9019607843137255,\n\t\t\t0.3803921568627451,\n\t\t\t0.00392156862745098,\n\t\t\t0.9921568627450981,\n\t\t\t0.7215686274509804,\n\t\t\t0.3882352941176471,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.6980392156862745,\n\t\t\t0.6705882352941176,\n\t\t\t0.8235294117647058,\n\t\t\t0.3686274509803922,\n\t\t\t0.2352941176470588,\n\t\t\t0.6\n\t\t],\n\t\tName: \"Brewer Diverging Purple-Orange (5)\",\n\t\tNanColor: [\n\t\t\t0.3686274509803922,\n\t\t\t0.2352941176470588,\n\t\t\t0.6\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9019607843137255,\n\t\t\t0.3803921568627451,\n\t\t\t0.00392156862745098,\n\t\t\t0.9921568627450981,\n\t\t\t0.7215686274509804,\n\t\t\t0.3882352941176471,\n\t\t\t0.6980392156862745,\n\t\t\t0.6705882352941176,\n\t\t\t0.8235294117647058,\n\t\t\t0.3686274509803922,\n\t\t\t0.2352941176470588,\n\t\t\t0.6\n\t\t],\n\t\tName: \"Brewer Diverging Purple-Orange (4)\",\n\t\tNanColor: [\n\t\t\t0.3686274509803922,\n\t\t\t0.2352941176470588,\n\t\t\t0.6\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9450980392156862,\n\t\t\t0.6392156862745098,\n\t\t\t0.2509803921568627,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.9686274509803922,\n\t\t\t0.6,\n\t\t\t0.5568627450980392,\n\t\t\t0.7647058823529411\n\t\t],\n\t\tName: \"Brewer Diverging Purple-Orange (3)\",\n\t\tNanColor: [\n\t\t\t0.6,\n\t\t\t0.5568627450980392,\n\t\t\t0.7647058823529411\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.6196078431372549,\n\t\t\t0.00392156862745098,\n\t\t\t0.2588235294117647,\n\t\t\t0.8352941176470589,\n\t\t\t0.2431372549019608,\n\t\t\t0.3098039215686275,\n\t\t\t0.9568627450980393,\n\t\t\t0.4274509803921568,\n\t\t\t0.2627450980392157,\n\t\t\t0.9921568627450981,\n\t\t\t0.6823529411764706,\n\t\t\t0.3803921568627451,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.5450980392156862,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.7490196078431373,\n\t\t\t0.9019607843137255,\n\t\t\t0.9607843137254902,\n\t\t\t0.596078431372549,\n\t\t\t0.6705882352941176,\n\t\t\t0.8666666666666667,\n\t\t\t0.6431372549019608,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6470588235294118,\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353,\n\t\t\t0.3686274509803922,\n\t\t\t0.3098039215686275,\n\t\t\t0.6352941176470588\n\t\t],\n\t\tName: \"Brewer Diverging Spectral (11)\",\n\t\tNanColor: [\n\t\t\t0.3686274509803922,\n\t\t\t0.3098039215686275,\n\t\t\t0.6352941176470588\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.6196078431372549,\n\t\t\t0.00392156862745098,\n\t\t\t0.2588235294117647,\n\t\t\t0.8352941176470589,\n\t\t\t0.2431372549019608,\n\t\t\t0.3098039215686275,\n\t\t\t0.9568627450980393,\n\t\t\t0.4274509803921568,\n\t\t\t0.2627450980392157,\n\t\t\t0.9921568627450981,\n\t\t\t0.6823529411764706,\n\t\t\t0.3803921568627451,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.5450980392156862,\n\t\t\t0.9019607843137255,\n\t\t\t0.9607843137254902,\n\t\t\t0.596078431372549,\n\t\t\t0.6705882352941176,\n\t\t\t0.8666666666666667,\n\t\t\t0.6431372549019608,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6470588235294118,\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353,\n\t\t\t0.3686274509803922,\n\t\t\t0.3098039215686275,\n\t\t\t0.6352941176470588\n\t\t],\n\t\tName: \"Brewer Diverging Spectral (10)\",\n\t\tNanColor: [\n\t\t\t0.3686274509803922,\n\t\t\t0.3098039215686275,\n\t\t\t0.6352941176470588\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8352941176470589,\n\t\t\t0.2431372549019608,\n\t\t\t0.3098039215686275,\n\t\t\t0.9568627450980393,\n\t\t\t0.4274509803921568,\n\t\t\t0.2627450980392157,\n\t\t\t0.9921568627450981,\n\t\t\t0.6823529411764706,\n\t\t\t0.3803921568627451,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.5450980392156862,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.7490196078431373,\n\t\t\t0.9019607843137255,\n\t\t\t0.9607843137254902,\n\t\t\t0.596078431372549,\n\t\t\t0.6705882352941176,\n\t\t\t0.8666666666666667,\n\t\t\t0.6431372549019608,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6470588235294118,\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353\n\t\t],\n\t\tName: \"Brewer Diverging Spectral (9)\",\n\t\tNanColor: [\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8352941176470589,\n\t\t\t0.2431372549019608,\n\t\t\t0.3098039215686275,\n\t\t\t0.9568627450980393,\n\t\t\t0.4274509803921568,\n\t\t\t0.2627450980392157,\n\t\t\t0.9921568627450981,\n\t\t\t0.6823529411764706,\n\t\t\t0.3803921568627451,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.5450980392156862,\n\t\t\t0.9019607843137255,\n\t\t\t0.9607843137254902,\n\t\t\t0.596078431372549,\n\t\t\t0.6705882352941176,\n\t\t\t0.8666666666666667,\n\t\t\t0.6431372549019608,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6470588235294118,\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353\n\t\t],\n\t\tName: \"Brewer Diverging Spectral (8)\",\n\t\tNanColor: [\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8352941176470589,\n\t\t\t0.2431372549019608,\n\t\t\t0.3098039215686275,\n\t\t\t0.9882352941176471,\n\t\t\t0.5529411764705883,\n\t\t\t0.3490196078431372,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.5450980392156862,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.7490196078431373,\n\t\t\t0.9019607843137255,\n\t\t\t0.9607843137254902,\n\t\t\t0.596078431372549,\n\t\t\t0.6,\n\t\t\t0.8352941176470589,\n\t\t\t0.5803921568627451,\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353\n\t\t],\n\t\tName: \"Brewer Diverging Spectral (7)\",\n\t\tNanColor: [\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8352941176470589,\n\t\t\t0.2431372549019608,\n\t\t\t0.3098039215686275,\n\t\t\t0.9882352941176471,\n\t\t\t0.5529411764705883,\n\t\t\t0.3490196078431372,\n\t\t\t0.996078431372549,\n\t\t\t0.8784313725490196,\n\t\t\t0.5450980392156862,\n\t\t\t0.9019607843137255,\n\t\t\t0.9607843137254902,\n\t\t\t0.596078431372549,\n\t\t\t0.6,\n\t\t\t0.8352941176470589,\n\t\t\t0.5803921568627451,\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353\n\t\t],\n\t\tName: \"Brewer Diverging Spectral (6)\",\n\t\tNanColor: [\n\t\t\t0.196078431372549,\n\t\t\t0.5333333333333333,\n\t\t\t0.7411764705882353\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8431372549019608,\n\t\t\t0.09803921568627451,\n\t\t\t0.1098039215686274,\n\t\t\t0.9921568627450981,\n\t\t\t0.6823529411764706,\n\t\t\t0.3803921568627451,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.7490196078431373,\n\t\t\t0.6705882352941176,\n\t\t\t0.8666666666666667,\n\t\t\t0.6431372549019608,\n\t\t\t0.1686274509803922,\n\t\t\t0.5137254901960784,\n\t\t\t0.7294117647058823\n\t\t],\n\t\tName: \"Brewer Diverging Spectral (5)\",\n\t\tNanColor: [\n\t\t\t0.1686274509803922,\n\t\t\t0.5137254901960784,\n\t\t\t0.7294117647058823\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8431372549019608,\n\t\t\t0.09803921568627451,\n\t\t\t0.1098039215686274,\n\t\t\t0.9921568627450981,\n\t\t\t0.6823529411764706,\n\t\t\t0.3803921568627451,\n\t\t\t0.6705882352941176,\n\t\t\t0.8666666666666667,\n\t\t\t0.6431372549019608,\n\t\t\t0.1686274509803922,\n\t\t\t0.5137254901960784,\n\t\t\t0.7294117647058823\n\t\t],\n\t\tName: \"Brewer Diverging Spectral (4)\",\n\t\tNanColor: [\n\t\t\t0.1686274509803922,\n\t\t\t0.5137254901960784,\n\t\t\t0.7294117647058823\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9882352941176471,\n\t\t\t0.5529411764705883,\n\t\t\t0.3490196078431372,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.7490196078431373,\n\t\t\t0.6,\n\t\t\t0.8352941176470589,\n\t\t\t0.5803921568627451\n\t\t],\n\t\tName: \"Brewer Diverging Spectral (3)\",\n\t\tNanColor: [\n\t\t\t0.6,\n\t\t\t0.8352941176470589,\n\t\t\t0.5803921568627451\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.3294117647058823,\n\t\t\t0.1882352941176471,\n\t\t\t0.0196078431372549,\n\t\t\t0.5490196078431373,\n\t\t\t0.3176470588235294,\n\t\t\t0.0392156862745098,\n\t\t\t0.7490196078431373,\n\t\t\t0.5058823529411764,\n\t\t\t0.1764705882352941,\n\t\t\t0.8745098039215686,\n\t\t\t0.7607843137254902,\n\t\t\t0.4901960784313725,\n\t\t\t0.9647058823529412,\n\t\t\t0.9098039215686274,\n\t\t\t0.7647058823529411,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.7803921568627451,\n\t\t\t0.9176470588235294,\n\t\t\t0.8980392156862745,\n\t\t\t0.5019607843137255,\n\t\t\t0.803921568627451,\n\t\t\t0.7568627450980392,\n\t\t\t0.207843137254902,\n\t\t\t0.592156862745098,\n\t\t\t0.5607843137254902,\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922,\n\t\t\t0,\n\t\t\t0.2352941176470588,\n\t\t\t0.1882352941176471\n\t\t],\n\t\tName: \"Brewer Diverging Brown-Blue-Green (11)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t0.2352941176470588,\n\t\t\t0.1882352941176471\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.3294117647058823,\n\t\t\t0.1882352941176471,\n\t\t\t0.0196078431372549,\n\t\t\t0.5490196078431373,\n\t\t\t0.3176470588235294,\n\t\t\t0.0392156862745098,\n\t\t\t0.7490196078431373,\n\t\t\t0.5058823529411764,\n\t\t\t0.1764705882352941,\n\t\t\t0.8745098039215686,\n\t\t\t0.7607843137254902,\n\t\t\t0.4901960784313725,\n\t\t\t0.9647058823529412,\n\t\t\t0.9098039215686274,\n\t\t\t0.7647058823529411,\n\t\t\t0.7803921568627451,\n\t\t\t0.9176470588235294,\n\t\t\t0.8980392156862745,\n\t\t\t0.5019607843137255,\n\t\t\t0.803921568627451,\n\t\t\t0.7568627450980392,\n\t\t\t0.207843137254902,\n\t\t\t0.592156862745098,\n\t\t\t0.5607843137254902,\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922,\n\t\t\t0,\n\t\t\t0.2352941176470588,\n\t\t\t0.1882352941176471\n\t\t],\n\t\tName: \"Brewer Diverging Brown-Blue-Green (10)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t0.2352941176470588,\n\t\t\t0.1882352941176471\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.5490196078431373,\n\t\t\t0.3176470588235294,\n\t\t\t0.0392156862745098,\n\t\t\t0.7490196078431373,\n\t\t\t0.5058823529411764,\n\t\t\t0.1764705882352941,\n\t\t\t0.8745098039215686,\n\t\t\t0.7607843137254902,\n\t\t\t0.4901960784313725,\n\t\t\t0.9647058823529412,\n\t\t\t0.9098039215686274,\n\t\t\t0.7647058823529411,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.7803921568627451,\n\t\t\t0.9176470588235294,\n\t\t\t0.8980392156862745,\n\t\t\t0.5019607843137255,\n\t\t\t0.803921568627451,\n\t\t\t0.7568627450980392,\n\t\t\t0.207843137254902,\n\t\t\t0.592156862745098,\n\t\t\t0.5607843137254902,\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922\n\t\t],\n\t\tName: \"Brewer Diverging Brown-Blue-Green (9)\",\n\t\tNanColor: [\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.5490196078431373,\n\t\t\t0.3176470588235294,\n\t\t\t0.0392156862745098,\n\t\t\t0.7490196078431373,\n\t\t\t0.5058823529411764,\n\t\t\t0.1764705882352941,\n\t\t\t0.8745098039215686,\n\t\t\t0.7607843137254902,\n\t\t\t0.4901960784313725,\n\t\t\t0.9647058823529412,\n\t\t\t0.9098039215686274,\n\t\t\t0.7647058823529411,\n\t\t\t0.7803921568627451,\n\t\t\t0.9176470588235294,\n\t\t\t0.8980392156862745,\n\t\t\t0.5019607843137255,\n\t\t\t0.803921568627451,\n\t\t\t0.7568627450980392,\n\t\t\t0.207843137254902,\n\t\t\t0.592156862745098,\n\t\t\t0.5607843137254902,\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922\n\t\t],\n\t\tName: \"Brewer Diverging Brown-Blue-Green (8)\",\n\t\tNanColor: [\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.5490196078431373,\n\t\t\t0.3176470588235294,\n\t\t\t0.0392156862745098,\n\t\t\t0.8470588235294118,\n\t\t\t0.7019607843137254,\n\t\t\t0.396078431372549,\n\t\t\t0.9647058823529412,\n\t\t\t0.9098039215686274,\n\t\t\t0.7647058823529411,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.7803921568627451,\n\t\t\t0.9176470588235294,\n\t\t\t0.8980392156862745,\n\t\t\t0.3529411764705883,\n\t\t\t0.7058823529411765,\n\t\t\t0.6745098039215687,\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922\n\t\t],\n\t\tName: \"Brewer Diverging Brown-Blue-Green (7)\",\n\t\tNanColor: [\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.5490196078431373,\n\t\t\t0.3176470588235294,\n\t\t\t0.0392156862745098,\n\t\t\t0.8470588235294118,\n\t\t\t0.7019607843137254,\n\t\t\t0.396078431372549,\n\t\t\t0.9647058823529412,\n\t\t\t0.9098039215686274,\n\t\t\t0.7647058823529411,\n\t\t\t0.7803921568627451,\n\t\t\t0.9176470588235294,\n\t\t\t0.8980392156862745,\n\t\t\t0.3529411764705883,\n\t\t\t0.7058823529411765,\n\t\t\t0.6745098039215687,\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922\n\t\t],\n\t\tName: \"Brewer Diverging Brown-Blue-Green (6)\",\n\t\tNanColor: [\n\t\t\t0.00392156862745098,\n\t\t\t0.4,\n\t\t\t0.3686274509803922\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.6509803921568628,\n\t\t\t0.3803921568627451,\n\t\t\t0.1019607843137255,\n\t\t\t0.8745098039215686,\n\t\t\t0.7607843137254902,\n\t\t\t0.4901960784313725,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.5019607843137255,\n\t\t\t0.803921568627451,\n\t\t\t0.7568627450980392,\n\t\t\t0.00392156862745098,\n\t\t\t0.5215686274509804,\n\t\t\t0.4431372549019608\n\t\t],\n\t\tName: \"Brewer Diverging Brown-Blue-Green (5)\",\n\t\tNanColor: [\n\t\t\t0.00392156862745098,\n\t\t\t0.5215686274509804,\n\t\t\t0.4431372549019608\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.6509803921568628,\n\t\t\t0.3803921568627451,\n\t\t\t0.1019607843137255,\n\t\t\t0.8745098039215686,\n\t\t\t0.7607843137254902,\n\t\t\t0.4901960784313725,\n\t\t\t0.5019607843137255,\n\t\t\t0.803921568627451,\n\t\t\t0.7568627450980392,\n\t\t\t0.00392156862745098,\n\t\t\t0.5215686274509804,\n\t\t\t0.4431372549019608\n\t\t],\n\t\tName: \"Brewer Diverging Brown-Blue-Green (4)\",\n\t\tNanColor: [\n\t\t\t0.00392156862745098,\n\t\t\t0.5215686274509804,\n\t\t\t0.4431372549019608\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8470588235294118,\n\t\t\t0.7019607843137254,\n\t\t\t0.396078431372549,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.9607843137254902,\n\t\t\t0.3529411764705883,\n\t\t\t0.7058823529411765,\n\t\t\t0.6745098039215687\n\t\t],\n\t\tName: \"Brewer Diverging Brown-Blue-Green (3)\",\n\t\tNanColor: [\n\t\t\t0.3529411764705883,\n\t\t\t0.7058823529411765,\n\t\t\t0.6745098039215687\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9686274509803922,\n\t\t\t0.9882352941176471,\n\t\t\t0.9921568627450981,\n\t\t\t0.8980392156862745,\n\t\t\t0.9607843137254902,\n\t\t\t0.9764705882352941,\n\t\t\t0.8,\n\t\t\t0.9254901960784314,\n\t\t\t0.9019607843137255,\n\t\t\t0.6,\n\t\t\t0.8470588235294118,\n\t\t\t0.788235294117647,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6431372549019608,\n\t\t\t0.2549019607843137,\n\t\t\t0.6823529411764706,\n\t\t\t0.4627450980392157,\n\t\t\t0.1372549019607843,\n\t\t\t0.5450980392156862,\n\t\t\t0.2705882352941176,\n\t\t\t0,\n\t\t\t0.4274509803921568,\n\t\t\t0.1725490196078431,\n\t\t\t0,\n\t\t\t0.2666666666666667,\n\t\t\t0.1058823529411765\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Green (9)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t0.2666666666666667,\n\t\t\t0.1058823529411765\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9686274509803922,\n\t\t\t0.9882352941176471,\n\t\t\t0.9921568627450981,\n\t\t\t0.8980392156862745,\n\t\t\t0.9607843137254902,\n\t\t\t0.9764705882352941,\n\t\t\t0.8,\n\t\t\t0.9254901960784314,\n\t\t\t0.9019607843137255,\n\t\t\t0.6,\n\t\t\t0.8470588235294118,\n\t\t\t0.788235294117647,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6431372549019608,\n\t\t\t0.2549019607843137,\n\t\t\t0.6823529411764706,\n\t\t\t0.4627450980392157,\n\t\t\t0.1372549019607843,\n\t\t\t0.5450980392156862,\n\t\t\t0.2705882352941176,\n\t\t\t0,\n\t\t\t0.3450980392156863,\n\t\t\t0.1411764705882353\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Green (8)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t0.3450980392156863,\n\t\t\t0.1411764705882353\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9294117647058824,\n\t\t\t0.9725490196078431,\n\t\t\t0.984313725490196,\n\t\t\t0.8,\n\t\t\t0.9254901960784314,\n\t\t\t0.9019607843137255,\n\t\t\t0.8,\n\t\t\t0.9254901960784314,\n\t\t\t0.9019607843137255,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6431372549019608,\n\t\t\t0.2549019607843137,\n\t\t\t0.6823529411764706,\n\t\t\t0.4627450980392157,\n\t\t\t0.1372549019607843,\n\t\t\t0.5450980392156862,\n\t\t\t0.2705882352941176,\n\t\t\t0,\n\t\t\t0.3450980392156863,\n\t\t\t0.1411764705882353\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Green (7)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t0.3450980392156863,\n\t\t\t0.1411764705882353\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9294117647058824,\n\t\t\t0.9725490196078431,\n\t\t\t0.984313725490196,\n\t\t\t0.8,\n\t\t\t0.9254901960784314,\n\t\t\t0.9019607843137255,\n\t\t\t0.6,\n\t\t\t0.8470588235294118,\n\t\t\t0.788235294117647,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6431372549019608,\n\t\t\t0.1725490196078431,\n\t\t\t0.6352941176470588,\n\t\t\t0.3725490196078431,\n\t\t\t0,\n\t\t\t0.4274509803921568,\n\t\t\t0.1725490196078431\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Green (6)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t0.4274509803921568,\n\t\t\t0.1725490196078431\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9294117647058824,\n\t\t\t0.9725490196078431,\n\t\t\t0.984313725490196,\n\t\t\t0.6980392156862745,\n\t\t\t0.8862745098039215,\n\t\t\t0.8862745098039215,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6431372549019608,\n\t\t\t0.1725490196078431,\n\t\t\t0.6352941176470588,\n\t\t\t0.3725490196078431,\n\t\t\t0,\n\t\t\t0.4274509803921568,\n\t\t\t0.1725490196078431\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Green (5)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t0.4274509803921568,\n\t\t\t0.1725490196078431\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9294117647058824,\n\t\t\t0.9725490196078431,\n\t\t\t0.984313725490196,\n\t\t\t0.6980392156862745,\n\t\t\t0.8862745098039215,\n\t\t\t0.8862745098039215,\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6431372549019608,\n\t\t\t0.1372549019607843,\n\t\t\t0.5450980392156862,\n\t\t\t0.2705882352941176\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Green (4)\",\n\t\tNanColor: [\n\t\t\t0.1372549019607843,\n\t\t\t0.5450980392156862,\n\t\t\t0.2705882352941176\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8980392156862745,\n\t\t\t0.9607843137254902,\n\t\t\t0.9764705882352941,\n\t\t\t0.6,\n\t\t\t0.8470588235294118,\n\t\t\t0.788235294117647,\n\t\t\t0.1725490196078431,\n\t\t\t0.6352941176470588,\n\t\t\t0.3725490196078431\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Green (3)\",\n\t\tNanColor: [\n\t\t\t0.1725490196078431,\n\t\t\t0.6352941176470588,\n\t\t\t0.3725490196078431\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8980392156862745,\n\t\t\t1,\n\t\t\t0.9686274509803922,\n\t\t\t0.7372549019607844,\n\t\t\t0.996078431372549,\n\t\t\t0.8901960784313725,\n\t\t\t0.5686274509803921,\n\t\t\t0.996078431372549,\n\t\t\t0.7686274509803922,\n\t\t\t0.3098039215686275,\n\t\t\t0.996078431372549,\n\t\t\t0.6,\n\t\t\t0.1607843137254902,\n\t\t\t0.9254901960784314,\n\t\t\t0.4392156862745098,\n\t\t\t0.0784313725490196,\n\t\t\t0.8,\n\t\t\t0.2980392156862745,\n\t\t\t0.00784313725490196,\n\t\t\t0.6,\n\t\t\t0.203921568627451,\n\t\t\t0.01568627450980392,\n\t\t\t0.4,\n\t\t\t0.1450980392156863,\n\t\t\t0.02352941176470588\n\t\t],\n\t\tName: \"Brewer Sequential Yellow-Orange-Brown (9)\",\n\t\tNanColor: [\n\t\t\t0.4,\n\t\t\t0.1450980392156863,\n\t\t\t0.02352941176470588\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8980392156862745,\n\t\t\t1,\n\t\t\t0.9686274509803922,\n\t\t\t0.7372549019607844,\n\t\t\t0.996078431372549,\n\t\t\t0.8901960784313725,\n\t\t\t0.5686274509803921,\n\t\t\t0.996078431372549,\n\t\t\t0.7686274509803922,\n\t\t\t0.3098039215686275,\n\t\t\t0.996078431372549,\n\t\t\t0.6,\n\t\t\t0.1607843137254902,\n\t\t\t0.9254901960784314,\n\t\t\t0.4392156862745098,\n\t\t\t0.0784313725490196,\n\t\t\t0.8,\n\t\t\t0.2980392156862745,\n\t\t\t0.00784313725490196,\n\t\t\t0.5490196078431373,\n\t\t\t0.1764705882352941,\n\t\t\t0.01568627450980392\n\t\t],\n\t\tName: \"Brewer Sequential Yellow-Orange-Brown (8)\",\n\t\tNanColor: [\n\t\t\t0.5490196078431373,\n\t\t\t0.1764705882352941,\n\t\t\t0.01568627450980392\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8313725490196079,\n\t\t\t0.996078431372549,\n\t\t\t0.8901960784313725,\n\t\t\t0.5686274509803921,\n\t\t\t0.996078431372549,\n\t\t\t0.7686274509803922,\n\t\t\t0.3098039215686275,\n\t\t\t0.996078431372549,\n\t\t\t0.6,\n\t\t\t0.1607843137254902,\n\t\t\t0.9254901960784314,\n\t\t\t0.4392156862745098,\n\t\t\t0.0784313725490196,\n\t\t\t0.8,\n\t\t\t0.2980392156862745,\n\t\t\t0.00784313725490196,\n\t\t\t0.5490196078431373,\n\t\t\t0.1764705882352941,\n\t\t\t0.01568627450980392\n\t\t],\n\t\tName: \"Brewer Sequential Yellow-Orange-Brown (7)\",\n\t\tNanColor: [\n\t\t\t0.5490196078431373,\n\t\t\t0.1764705882352941,\n\t\t\t0.01568627450980392\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8313725490196079,\n\t\t\t0.996078431372549,\n\t\t\t0.8901960784313725,\n\t\t\t0.5686274509803921,\n\t\t\t0.996078431372549,\n\t\t\t0.7686274509803922,\n\t\t\t0.3098039215686275,\n\t\t\t0.996078431372549,\n\t\t\t0.6,\n\t\t\t0.1607843137254902,\n\t\t\t0.8509803921568627,\n\t\t\t0.3725490196078431,\n\t\t\t0.05490196078431372,\n\t\t\t0.6,\n\t\t\t0.203921568627451,\n\t\t\t0.01568627450980392\n\t\t],\n\t\tName: \"Brewer Sequential Yellow-Orange-Brown (6)\",\n\t\tNanColor: [\n\t\t\t0.6,\n\t\t\t0.203921568627451,\n\t\t\t0.01568627450980392\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8313725490196079,\n\t\t\t0.996078431372549,\n\t\t\t0.8509803921568627,\n\t\t\t0.5568627450980392,\n\t\t\t0.996078431372549,\n\t\t\t0.6,\n\t\t\t0.1607843137254902,\n\t\t\t0.8509803921568627,\n\t\t\t0.3725490196078431,\n\t\t\t0.05490196078431372,\n\t\t\t0.6,\n\t\t\t0.203921568627451,\n\t\t\t0.01568627450980392\n\t\t],\n\t\tName: \"Brewer Sequential Yellow-Orange-Brown (5)\",\n\t\tNanColor: [\n\t\t\t0.6,\n\t\t\t0.203921568627451,\n\t\t\t0.01568627450980392\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8313725490196079,\n\t\t\t0.996078431372549,\n\t\t\t0.8509803921568627,\n\t\t\t0.5568627450980392,\n\t\t\t0.996078431372549,\n\t\t\t0.6,\n\t\t\t0.1607843137254902,\n\t\t\t0.8,\n\t\t\t0.2980392156862745,\n\t\t\t0.00784313725490196\n\t\t],\n\t\tName: \"Brewer Sequential Yellow-Orange-Brown (4)\",\n\t\tNanColor: [\n\t\t\t0.8,\n\t\t\t0.2980392156862745,\n\t\t\t0.00784313725490196\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t1,\n\t\t\t0.9686274509803922,\n\t\t\t0.7372549019607844,\n\t\t\t0.996078431372549,\n\t\t\t0.7686274509803922,\n\t\t\t0.3098039215686275,\n\t\t\t0.8509803921568627,\n\t\t\t0.3725490196078431,\n\t\t\t0.05490196078431372\n\t\t],\n\t\tName: \"Brewer Sequential Yellow-Orange-Brown (3)\",\n\t\tNanColor: [\n\t\t\t0.8509803921568627,\n\t\t\t0.3725490196078431,\n\t\t\t0.05490196078431372\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9686274509803922,\n\t\t\t0.9882352941176471,\n\t\t\t0.9921568627450981,\n\t\t\t0.8784313725490196,\n\t\t\t0.9254901960784314,\n\t\t\t0.9568627450980393,\n\t\t\t0.7490196078431373,\n\t\t\t0.8274509803921568,\n\t\t\t0.9019607843137255,\n\t\t\t0.6196078431372549,\n\t\t\t0.7372549019607844,\n\t\t\t0.8549019607843137,\n\t\t\t0.5490196078431373,\n\t\t\t0.5882352941176471,\n\t\t\t0.7764705882352941,\n\t\t\t0.5490196078431373,\n\t\t\t0.4196078431372549,\n\t\t\t0.6941176470588235,\n\t\t\t0.5333333333333333,\n\t\t\t0.2549019607843137,\n\t\t\t0.615686274509804,\n\t\t\t0.5058823529411764,\n\t\t\t0.05882352941176471,\n\t\t\t0.4862745098039216,\n\t\t\t0.3019607843137255,\n\t\t\t0,\n\t\t\t0.2941176470588235\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Purple (9)\",\n\t\tNanColor: [\n\t\t\t0.3019607843137255,\n\t\t\t0,\n\t\t\t0.2941176470588235\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9686274509803922,\n\t\t\t0.9882352941176471,\n\t\t\t0.9921568627450981,\n\t\t\t0.8784313725490196,\n\t\t\t0.9254901960784314,\n\t\t\t0.9568627450980393,\n\t\t\t0.7490196078431373,\n\t\t\t0.8274509803921568,\n\t\t\t0.9019607843137255,\n\t\t\t0.6196078431372549,\n\t\t\t0.7372549019607844,\n\t\t\t0.8549019607843137,\n\t\t\t0.5490196078431373,\n\t\t\t0.5882352941176471,\n\t\t\t0.7764705882352941,\n\t\t\t0.5490196078431373,\n\t\t\t0.4196078431372549,\n\t\t\t0.6941176470588235,\n\t\t\t0.5333333333333333,\n\t\t\t0.2549019607843137,\n\t\t\t0.615686274509804,\n\t\t\t0.4313725490196079,\n\t\t\t0.00392156862745098,\n\t\t\t0.4196078431372549\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Purple (8)\",\n\t\tNanColor: [\n\t\t\t0.4313725490196079,\n\t\t\t0.00392156862745098,\n\t\t\t0.4196078431372549\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9294117647058824,\n\t\t\t0.9725490196078431,\n\t\t\t0.984313725490196,\n\t\t\t0.7490196078431373,\n\t\t\t0.8274509803921568,\n\t\t\t0.9019607843137255,\n\t\t\t0.6196078431372549,\n\t\t\t0.7372549019607844,\n\t\t\t0.8549019607843137,\n\t\t\t0.5490196078431373,\n\t\t\t0.5882352941176471,\n\t\t\t0.7764705882352941,\n\t\t\t0.5490196078431373,\n\t\t\t0.4196078431372549,\n\t\t\t0.6941176470588235,\n\t\t\t0.5333333333333333,\n\t\t\t0.2549019607843137,\n\t\t\t0.615686274509804,\n\t\t\t0.4313725490196079,\n\t\t\t0.00392156862745098,\n\t\t\t0.4196078431372549\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Purple (7)\",\n\t\tNanColor: [\n\t\t\t0.4313725490196079,\n\t\t\t0.00392156862745098,\n\t\t\t0.4196078431372549\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9294117647058824,\n\t\t\t0.9725490196078431,\n\t\t\t0.984313725490196,\n\t\t\t0.7490196078431373,\n\t\t\t0.8274509803921568,\n\t\t\t0.9019607843137255,\n\t\t\t0.6196078431372549,\n\t\t\t0.7372549019607844,\n\t\t\t0.8549019607843137,\n\t\t\t0.5490196078431373,\n\t\t\t0.5882352941176471,\n\t\t\t0.7764705882352941,\n\t\t\t0.5333333333333333,\n\t\t\t0.3372549019607843,\n\t\t\t0.6549019607843137,\n\t\t\t0.5058823529411764,\n\t\t\t0.05882352941176471,\n\t\t\t0.4862745098039216\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Purple (6)\",\n\t\tNanColor: [\n\t\t\t0.5058823529411764,\n\t\t\t0.05882352941176471,\n\t\t\t0.4862745098039216\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9294117647058824,\n\t\t\t0.9725490196078431,\n\t\t\t0.984313725490196,\n\t\t\t0.7019607843137254,\n\t\t\t0.803921568627451,\n\t\t\t0.8901960784313725,\n\t\t\t0.5490196078431373,\n\t\t\t0.5882352941176471,\n\t\t\t0.7764705882352941,\n\t\t\t0.5333333333333333,\n\t\t\t0.3372549019607843,\n\t\t\t0.6549019607843137,\n\t\t\t0.5058823529411764,\n\t\t\t0.05882352941176471,\n\t\t\t0.4862745098039216\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Purple (5)\",\n\t\tNanColor: [\n\t\t\t0.5058823529411764,\n\t\t\t0.05882352941176471,\n\t\t\t0.4862745098039216\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.9294117647058824,\n\t\t\t0.9725490196078431,\n\t\t\t0.984313725490196,\n\t\t\t0.7019607843137254,\n\t\t\t0.803921568627451,\n\t\t\t0.8901960784313725,\n\t\t\t0.5490196078431373,\n\t\t\t0.5882352941176471,\n\t\t\t0.7764705882352941,\n\t\t\t0.5333333333333333,\n\t\t\t0.2549019607843137,\n\t\t\t0.615686274509804\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Purple (4)\",\n\t\tNanColor: [\n\t\t\t0.5333333333333333,\n\t\t\t0.2549019607843137,\n\t\t\t0.615686274509804\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8784313725490196,\n\t\t\t0.9254901960784314,\n\t\t\t0.9568627450980393,\n\t\t\t0.6196078431372549,\n\t\t\t0.7372549019607844,\n\t\t\t0.8549019607843137,\n\t\t\t0.5333333333333333,\n\t\t\t0.3372549019607843,\n\t\t\t0.6549019607843137\n\t\t],\n\t\tName: \"Brewer Sequential Blue-Purple (3)\",\n\t\tNanColor: [\n\t\t\t0.5333333333333333,\n\t\t\t0.3372549019607843,\n\t\t\t0.6549019607843137\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.4980392156862745,\n\t\t\t0.788235294117647,\n\t\t\t0.4980392156862745,\n\t\t\t0.7450980392156863,\n\t\t\t0.6823529411764706,\n\t\t\t0.8313725490196079,\n\t\t\t0.9921568627450981,\n\t\t\t0.7529411764705882,\n\t\t\t0.5254901960784314,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.6,\n\t\t\t0.2196078431372549,\n\t\t\t0.4235294117647059,\n\t\t\t0.6901960784313725,\n\t\t\t0.9411764705882353,\n\t\t\t0.00784313725490196,\n\t\t\t0.4980392156862745,\n\t\t\t0.7490196078431373,\n\t\t\t0.3568627450980392,\n\t\t\t0.09019607843137255,\n\t\t\t0.4,\n\t\t\t0.4,\n\t\t\t0.4\n\t\t],\n\t\tName: \"Brewer Qualitative Accent\",\n\t\tNanColor: [\n\t\t\t0.4,\n\t\t\t0.4,\n\t\t\t0.4\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.1058823529411765,\n\t\t\t0.6196078431372549,\n\t\t\t0.4666666666666667,\n\t\t\t0.8509803921568627,\n\t\t\t0.3725490196078431,\n\t\t\t0.00784313725490196,\n\t\t\t0.4588235294117647,\n\t\t\t0.4392156862745098,\n\t\t\t0.7019607843137254,\n\t\t\t0.9058823529411765,\n\t\t\t0.1607843137254902,\n\t\t\t0.5411764705882353,\n\t\t\t0.4,\n\t\t\t0.6509803921568628,\n\t\t\t0.1176470588235294,\n\t\t\t0.9019607843137255,\n\t\t\t0.6705882352941176,\n\t\t\t0.00784313725490196,\n\t\t\t0.6509803921568628,\n\t\t\t0.4627450980392157,\n\t\t\t0.1137254901960784,\n\t\t\t0.4,\n\t\t\t0.4,\n\t\t\t0.4\n\t\t],\n\t\tName: \"Brewer Qualitative Dark2\",\n\t\tNanColor: [\n\t\t\t0.4,\n\t\t\t0.4,\n\t\t\t0.4\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.4,\n\t\t\t0.7607843137254902,\n\t\t\t0.6470588235294118,\n\t\t\t0.9882352941176471,\n\t\t\t0.5529411764705883,\n\t\t\t0.3843137254901961,\n\t\t\t0.5529411764705883,\n\t\t\t0.6274509803921569,\n\t\t\t0.796078431372549,\n\t\t\t0.9058823529411765,\n\t\t\t0.5411764705882353,\n\t\t\t0.7647058823529411,\n\t\t\t0.6509803921568628,\n\t\t\t0.8470588235294118,\n\t\t\t0.3294117647058823,\n\t\t\t1,\n\t\t\t0.8509803921568627,\n\t\t\t0.1843137254901961,\n\t\t\t0.8980392156862745,\n\t\t\t0.7686274509803922,\n\t\t\t0.5803921568627451,\n\t\t\t0.7019607843137254,\n\t\t\t0.7019607843137254,\n\t\t\t0.7019607843137254\n\t\t],\n\t\tName: \"Brewer Qualitative Set2\",\n\t\tNanColor: [\n\t\t\t0.7019607843137254,\n\t\t\t0.7019607843137254,\n\t\t\t0.7019607843137254\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.7019607843137254,\n\t\t\t0.8862745098039215,\n\t\t\t0.803921568627451,\n\t\t\t0.9921568627450981,\n\t\t\t0.803921568627451,\n\t\t\t0.6745098039215687,\n\t\t\t0.796078431372549,\n\t\t\t0.8352941176470589,\n\t\t\t0.9098039215686274,\n\t\t\t0.9568627450980393,\n\t\t\t0.792156862745098,\n\t\t\t0.8941176470588236,\n\t\t\t0.9019607843137255,\n\t\t\t0.9607843137254902,\n\t\t\t0.788235294117647,\n\t\t\t1,\n\t\t\t0.9490196078431372,\n\t\t\t0.6823529411764706,\n\t\t\t0.9450980392156862,\n\t\t\t0.8862745098039215,\n\t\t\t0.8,\n\t\t\t0.8,\n\t\t\t0.8,\n\t\t\t0.8\n\t\t],\n\t\tName: \"Brewer Qualitative Pastel2\",\n\t\tNanColor: [\n\t\t\t0.8,\n\t\t\t0.8,\n\t\t\t0.8\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.984313725490196,\n\t\t\t0.7058823529411765,\n\t\t\t0.6823529411764706,\n\t\t\t0.7019607843137254,\n\t\t\t0.803921568627451,\n\t\t\t0.8901960784313725,\n\t\t\t0.8,\n\t\t\t0.9215686274509803,\n\t\t\t0.7725490196078432,\n\t\t\t0.8705882352941177,\n\t\t\t0.796078431372549,\n\t\t\t0.8941176470588236,\n\t\t\t0.996078431372549,\n\t\t\t0.8509803921568627,\n\t\t\t0.6509803921568628,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8,\n\t\t\t0.8980392156862745,\n\t\t\t0.8470588235294118,\n\t\t\t0.7411764705882353,\n\t\t\t0.9921568627450981,\n\t\t\t0.8549019607843137,\n\t\t\t0.9254901960784314,\n\t\t\t0.9490196078431372,\n\t\t\t0.9490196078431372,\n\t\t\t0.9490196078431372\n\t\t],\n\t\tName: \"Brewer Qualitative Pastel1\",\n\t\tNanColor: [\n\t\t\t0.9490196078431372,\n\t\t\t0.9490196078431372,\n\t\t\t0.9490196078431372\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.8941176470588236,\n\t\t\t0.1019607843137255,\n\t\t\t0.1098039215686274,\n\t\t\t0.2156862745098039,\n\t\t\t0.4941176470588236,\n\t\t\t0.7215686274509804,\n\t\t\t0.3019607843137255,\n\t\t\t0.6862745098039216,\n\t\t\t0.2901960784313726,\n\t\t\t0.596078431372549,\n\t\t\t0.3058823529411765,\n\t\t\t0.6392156862745098,\n\t\t\t1,\n\t\t\t0.4980392156862745,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.2,\n\t\t\t0.6509803921568628,\n\t\t\t0.3372549019607843,\n\t\t\t0.1568627450980392,\n\t\t\t0.9686274509803922,\n\t\t\t0.5058823529411764,\n\t\t\t0.7490196078431373,\n\t\t\t0.6,\n\t\t\t0.6,\n\t\t\t0.6\n\t\t],\n\t\tName: \"Brewer Qualitative Set1\",\n\t\tNanColor: [\n\t\t\t0.6,\n\t\t\t0.6,\n\t\t\t0.6\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.6509803921568628,\n\t\t\t0.807843137254902,\n\t\t\t0.8901960784313725,\n\t\t\t0.1215686274509804,\n\t\t\t0.4705882352941176,\n\t\t\t0.7058823529411765,\n\t\t\t0.6980392156862745,\n\t\t\t0.8745098039215686,\n\t\t\t0.5411764705882353,\n\t\t\t0.2,\n\t\t\t0.6274509803921569,\n\t\t\t0.1725490196078431,\n\t\t\t0.984313725490196,\n\t\t\t0.6039215686274509,\n\t\t\t0.6,\n\t\t\t0.8901960784313725,\n\t\t\t0.1019607843137255,\n\t\t\t0.1098039215686274,\n\t\t\t0.9921568627450981,\n\t\t\t0.7490196078431373,\n\t\t\t0.4352941176470588,\n\t\t\t1,\n\t\t\t0.4980392156862745,\n\t\t\t0,\n\t\t\t0.792156862745098,\n\t\t\t0.6980392156862745,\n\t\t\t0.8392156862745098,\n\t\t\t0.4156862745098039,\n\t\t\t0.2392156862745098,\n\t\t\t0.6039215686274509,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.6\n\t\t],\n\t\tName: \"Brewer Qualitative Paired\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.6\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.5529411764705883,\n\t\t\t0.8274509803921568,\n\t\t\t0.7803921568627451,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.7019607843137254,\n\t\t\t0.7450980392156863,\n\t\t\t0.7294117647058823,\n\t\t\t0.8549019607843137,\n\t\t\t0.984313725490196,\n\t\t\t0.5019607843137255,\n\t\t\t0.4470588235294118,\n\t\t\t0.5019607843137255,\n\t\t\t0.6941176470588235,\n\t\t\t0.8274509803921568,\n\t\t\t0.9921568627450981,\n\t\t\t0.7058823529411765,\n\t\t\t0.3843137254901961,\n\t\t\t0.7019607843137254,\n\t\t\t0.8705882352941177,\n\t\t\t0.4117647058823529,\n\t\t\t0.9882352941176471,\n\t\t\t0.803921568627451,\n\t\t\t0.8980392156862745,\n\t\t\t0.8509803921568627,\n\t\t\t0.8509803921568627,\n\t\t\t0.8509803921568627,\n\t\t\t0.7372549019607844,\n\t\t\t0.5019607843137255,\n\t\t\t0.7411764705882353,\n\t\t\t0.8,\n\t\t\t0.9215686274509803,\n\t\t\t0.7725490196078432,\n\t\t\t1,\n\t\t\t0.9294117647058824,\n\t\t\t0.4352941176470588\n\t\t],\n\t\tName: \"Brewer Qualitative Set3\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t0.9294117647058824,\n\t\t\t0.4352941176470588\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.862745,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.695201,\n\t\t\t0\n\t\t],\n\t\tName: \"Traffic Lights\",\n\t\tNanColor: [\n\t\t\t0.803922,\n\t\t\t0,\n\t\t\t0.803922\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.908659,\n\t\t\t0.604013,\n\t\t\t0.581857,\n\t\t\t1,\n\t\t\t0.862745,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0.695201,\n\t\t\t0\n\t\t],\n\t\tName: \"Traffic Lights For Deuteranopes\",\n\t\tNanColor: [\n\t\t\t0.803922,\n\t\t\t0,\n\t\t\t0.803922\n\t\t]\n\t},\n\t{\n\t\tIndexedColors: [\n\t\t\t0.4196078431372549,\n\t\t\t0,\n\t\t\t0.07058823529411765,\n\t\t\t0.9019607843137255,\n\t\t\t0.9411764705882353,\n\t\t\t0.0196078431372549,\n\t\t\t0.01568627450980392,\n\t\t\t0.6196078431372549,\n\t\t\t0.00784313725490196\n\t\t],\n\t\tName: \"Traffic Lights For Deuteranopes 2\",\n\t\tNanColor: [\n\t\t\t0.803922,\n\t\t\t0,\n\t\t\t0.803922\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tCreator: \"Francesca Samsel\",\n\t\tName: \"Muted Blue-Green\",\n\t\tNanColor: [\n\t\t\t0.25,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.109804,\n\t\t\t0.27451,\n\t\t\t0.301961,\n\t\t\t0.02,\n\t\t\t0.129412,\n\t\t\t0.309804,\n\t\t\t0.341176,\n\t\t\t0.05,\n\t\t\t0.14902,\n\t\t\t0.341176,\n\t\t\t0.380392,\n\t\t\t0.1,\n\t\t\t0.188235,\n\t\t\t0.403922,\n\t\t\t0.458824,\n\t\t\t0.15,\n\t\t\t0.227451,\n\t\t\t0.447059,\n\t\t\t0.521569,\n\t\t\t0.2,\n\t\t\t0.290196,\n\t\t\t0.494118,\n\t\t\t0.588235,\n\t\t\t0.25,\n\t\t\t0.368627,\n\t\t\t0.552941,\n\t\t\t0.670588,\n\t\t\t0.3,\n\t\t\t0.458824,\n\t\t\t0.619608,\n\t\t\t0.74902,\n\t\t\t0.35,\n\t\t\t0.588235,\n\t\t\t0.713725,\n\t\t\t0.85098,\n\t\t\t0.4,\n\t\t\t0.72549,\n\t\t\t0.815686,\n\t\t\t0.941176,\n\t\t\t0.45,\n\t\t\t0.831373,\n\t\t\t0.882353,\n\t\t\t0.980392,\n\t\t\t0.475,\n\t\t\t0.909804,\n\t\t\t0.933333,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0.980392,\n\t\t\t0.984314,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0.996078,\n\t\t\t1,\n\t\t\t0.94902,\n\t\t\t0.5,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.980392,\n\t\t\t0.5,\n\t\t\t0.980392,\n\t\t\t0.984314,\n\t\t\t1,\n\t\t\t0.525,\n\t\t\t0.972549,\n\t\t\t0.988235,\n\t\t\t0.890196,\n\t\t\t0.55,\n\t\t\t0.917647,\n\t\t\t0.960784,\n\t\t\t0.835294,\n\t\t\t0.6,\n\t\t\t0.835294,\n\t\t\t0.921569,\n\t\t\t0.772549,\n\t\t\t0.65,\n\t\t\t0.768627,\n\t\t\t0.901961,\n\t\t\t0.737255,\n\t\t\t0.7,\n\t\t\t0.670588,\n\t\t\t0.831373,\n\t\t\t0.654902,\n\t\t\t0.75,\n\t\t\t0.576471,\n\t\t\t0.760784,\n\t\t\t0.584314,\n\t\t\t0.8,\n\t\t\t0.498039,\n\t\t\t0.678431,\n\t\t\t0.521569,\n\t\t\t0.85,\n\t\t\t0.392157,\n\t\t\t0.560784,\n\t\t\t0.427451,\n\t\t\t0.9,\n\t\t\t0.294118,\n\t\t\t0.45098,\n\t\t\t0.333333,\n\t\t\t0.95,\n\t\t\t0.211765,\n\t\t\t0.34902,\n\t\t\t0.254902,\n\t\t\t1,\n\t\t\t0.152941,\n\t\t\t0.278431,\n\t\t\t0.196078\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tCreator: \"Francesca Samsel\",\n\t\tName: \"Green-Blue Asymmetric Divergent (62Blbc)\",\n\t\tNanColor: [\n\t\t\t0.25,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.121569,\n\t\t\t0.2,\n\t\t\t0.145098,\n\t\t\t0.05,\n\t\t\t0.196078,\n\t\t\t0.301961,\n\t\t\t0.223529,\n\t\t\t0.1,\n\t\t\t0.258824,\n\t\t\t0.4,\n\t\t\t0.278431,\n\t\t\t0.2,\n\t\t\t0.341176,\n\t\t\t0.54902,\n\t\t\t0.341176,\n\t\t\t0.25,\n\t\t\t0.419608,\n\t\t\t0.619608,\n\t\t\t0.376471,\n\t\t\t0.3,\n\t\t\t0.545098,\n\t\t\t0.701961,\n\t\t\t0.392157,\n\t\t\t0.35,\n\t\t\t0.643137,\n\t\t\t0.780392,\n\t\t\t0.403922,\n\t\t\t0.4,\n\t\t\t0.729412,\n\t\t\t0.819608,\n\t\t\t0.45098,\n\t\t\t0.45,\n\t\t\t0.811765,\n\t\t\t0.870588,\n\t\t\t0.521569,\n\t\t\t0.5,\n\t\t\t0.898039,\n\t\t\t0.909804,\n\t\t\t0.564706,\n\t\t\t0.55,\n\t\t\t0.941176,\n\t\t\t0.92549,\n\t\t\t0.686275,\n\t\t\t0.6,\n\t\t\t0.960784,\n\t\t\t0.94902,\n\t\t\t0.776471,\n\t\t\t0.64,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.65,\n\t\t\t0.890196,\n\t\t\t0.988235,\n\t\t\t0.972549,\n\t\t\t0.7,\n\t\t\t0.721569,\n\t\t\t0.894118,\n\t\t\t0.901961,\n\t\t\t0.75,\n\t\t\t0.631373,\n\t\t\t0.823529,\n\t\t\t0.839216,\n\t\t\t0.8,\n\t\t\t0.517647,\n\t\t\t0.662745,\n\t\t\t0.701961,\n\t\t\t0.85,\n\t\t\t0.384314,\n\t\t\t0.494118,\n\t\t\t0.54902,\n\t\t\t0.9,\n\t\t\t0.298039,\n\t\t\t0.360784,\n\t\t\t0.45098,\n\t\t\t0.95,\n\t\t\t0.223529,\n\t\t\t0.25098,\n\t\t\t0.34902,\n\t\t\t0.99,\n\t\t\t0.156863,\n\t\t\t0.172549,\n\t\t\t0.25098,\n\t\t\t1,\n\t\t\t0.137255,\n\t\t\t0.137255,\n\t\t\t0.188235\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tCreator: \"Francesca Samsel\",\n\t\tName: \"Asymmtrical Earth Tones (6_21b)\",\n\t\tNanColor: [\n\t\t\t0.25,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.141176,\n\t\t\t0.14902,\n\t\t\t0.2,\n\t\t\t0.05,\n\t\t\t0.215686,\n\t\t\t0.258824,\n\t\t\t0.321569,\n\t\t\t0.1,\n\t\t\t0.243137,\n\t\t\t0.368627,\n\t\t\t0.380392,\n\t\t\t0.15,\n\t\t\t0.27451,\n\t\t\t0.439216,\n\t\t\t0.4,\n\t\t\t0.2,\n\t\t\t0.32549,\n\t\t\t0.501961,\n\t\t\t0.384314,\n\t\t\t0.25,\n\t\t\t0.403922,\n\t\t\t0.6,\n\t\t\t0.419608,\n\t\t\t0.3,\n\t\t\t0.486275,\n\t\t\t0.701961,\n\t\t\t0.454902,\n\t\t\t0.35,\n\t\t\t0.556863,\n\t\t\t0.74902,\n\t\t\t0.494118,\n\t\t\t0.4,\n\t\t\t0.670588,\n\t\t\t0.8,\n\t\t\t0.545098,\n\t\t\t0.5,\n\t\t\t0.854902,\n\t\t\t0.901961,\n\t\t\t0.631373,\n\t\t\t0.55,\n\t\t\t0.92549,\n\t\t\t0.941176,\n\t\t\t0.694118,\n\t\t\t0.6,\n\t\t\t0.960784,\n\t\t\t0.94902,\n\t\t\t0.776471,\n\t\t\t0.65,\n\t\t\t0.988235,\n\t\t\t0.968627,\n\t\t\t0.909804,\n\t\t\t0.7,\n\t\t\t0.839216,\n\t\t\t0.815686,\n\t\t\t0.772549,\n\t\t\t0.75,\n\t\t\t0.701961,\n\t\t\t0.662745,\n\t\t\t0.615686,\n\t\t\t0.8,\n\t\t\t0.6,\n\t\t\t0.529412,\n\t\t\t0.478431,\n\t\t\t0.85,\n\t\t\t0.501961,\n\t\t\t0.403922,\n\t\t\t0.360784,\n\t\t\t0.9,\n\t\t\t0.439216,\n\t\t\t0.313725,\n\t\t\t0.290196,\n\t\t\t1,\n\t\t\t0.301961,\n\t\t\t0.164706,\n\t\t\t0.176471\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Lab\",\n\t\tCreator: \"Francesca Samsel\",\n\t\tName: \"Yellow 15\",\n\t\tNanColor: [\n\t\t\t0.25,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.988235,\n\t\t\t0.002,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.988235,\n\t\t\t0.05,\n\t\t\t0.984314,\n\t\t\t0.988235,\n\t\t\t0.843137,\n\t\t\t0.1,\n\t\t\t0.988235,\n\t\t\t0.988235,\n\t\t\t0.741176,\n\t\t\t0.15,\n\t\t\t0.980392,\n\t\t\t0.968627,\n\t\t\t0.654902,\n\t\t\t0.2,\n\t\t\t0.980392,\n\t\t\t0.945098,\n\t\t\t0.576471,\n\t\t\t0.25,\n\t\t\t0.968627,\n\t\t\t0.905882,\n\t\t\t0.486275,\n\t\t\t0.3,\n\t\t\t0.968627,\n\t\t\t0.862745,\n\t\t\t0.388235,\n\t\t\t0.35,\n\t\t\t0.960784,\n\t\t\t0.803922,\n\t\t\t0.286275,\n\t\t\t0.4,\n\t\t\t0.94902,\n\t\t\t0.741176,\n\t\t\t0.219608,\n\t\t\t0.45,\n\t\t\t0.941176,\n\t\t\t0.678431,\n\t\t\t0.14902,\n\t\t\t0.5,\n\t\t\t0.929412,\n\t\t\t0.607843,\n\t\t\t0.094118,\n\t\t\t0.55,\n\t\t\t0.921569,\n\t\t\t0.545098,\n\t\t\t0.054902,\n\t\t\t0.6,\n\t\t\t0.909804,\n\t\t\t0.486275,\n\t\t\t0.035294,\n\t\t\t0.65,\n\t\t\t0.890196,\n\t\t\t0.411765,\n\t\t\t0.019608,\n\t\t\t0.7,\n\t\t\t0.8,\n\t\t\t0.305882,\n\t\t\t0,\n\t\t\t0.75,\n\t\t\t0.760784,\n\t\t\t0.239216,\n\t\t\t0,\n\t\t\t0.8,\n\t\t\t0.678431,\n\t\t\t0.180392,\n\t\t\t0.011765,\n\t\t\t0.85,\n\t\t\t0.6,\n\t\t\t0.121569,\n\t\t\t0.023529,\n\t\t\t0.9,\n\t\t\t0.501961,\n\t\t\t0.054902,\n\t\t\t0.031373,\n\t\t\t0.95,\n\t\t\t0.4,\n\t\t\t0.039216,\n\t\t\t0.058824,\n\t\t\t1,\n\t\t\t0.301961,\n\t\t\t0.047059,\n\t\t\t0.090196\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Diverging\",\n\t\tName: \"Magma (matplotlib)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tSource: \"https://github.com/BIDS/colormap/blob/master/colormaps.py\",\n\t\tLicense: \"CC0\",\n\t\tCreator: \"Nathaniel J. Smith & Stefan van der Walt\",\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.001462,\n\t\t\t0.000466,\n\t\t\t0.013866,\n\t\t\t0.003922,\n\t\t\t0.002258,\n\t\t\t0.001295,\n\t\t\t0.018331,\n\t\t\t0.007843,\n\t\t\t0.003279,\n\t\t\t0.002305,\n\t\t\t0.023708,\n\t\t\t0.011765,\n\t\t\t0.004512,\n\t\t\t0.00349,\n\t\t\t0.029965,\n\t\t\t0.015686,\n\t\t\t0.00595,\n\t\t\t0.004843,\n\t\t\t0.03713,\n\t\t\t0.019608,\n\t\t\t0.007588,\n\t\t\t0.006356,\n\t\t\t0.044973,\n\t\t\t0.023529,\n\t\t\t0.009426,\n\t\t\t0.008022,\n\t\t\t0.052844,\n\t\t\t0.027451,\n\t\t\t0.011465,\n\t\t\t0.009828,\n\t\t\t0.06075,\n\t\t\t0.031373,\n\t\t\t0.013708,\n\t\t\t0.011771,\n\t\t\t0.068667,\n\t\t\t0.035294,\n\t\t\t0.016156,\n\t\t\t0.01384,\n\t\t\t0.076603,\n\t\t\t0.039216,\n\t\t\t0.018815,\n\t\t\t0.016026,\n\t\t\t0.084584,\n\t\t\t0.043137,\n\t\t\t0.021692,\n\t\t\t0.01832,\n\t\t\t0.09261,\n\t\t\t0.047059,\n\t\t\t0.024792,\n\t\t\t0.020715,\n\t\t\t0.100676,\n\t\t\t0.05098,\n\t\t\t0.028123,\n\t\t\t0.023201,\n\t\t\t0.108787,\n\t\t\t0.054902,\n\t\t\t0.031696,\n\t\t\t0.025765,\n\t\t\t0.116965,\n\t\t\t0.058824,\n\t\t\t0.03552,\n\t\t\t0.028397,\n\t\t\t0.125209,\n\t\t\t0.062745,\n\t\t\t0.039608,\n\t\t\t0.03109,\n\t\t\t0.133515,\n\t\t\t0.066667,\n\t\t\t0.04383,\n\t\t\t0.03383,\n\t\t\t0.141886,\n\t\t\t0.070588,\n\t\t\t0.048062,\n\t\t\t0.036607,\n\t\t\t0.150327,\n\t\t\t0.07451,\n\t\t\t0.05232,\n\t\t\t0.039407,\n\t\t\t0.158841,\n\t\t\t0.078431,\n\t\t\t0.056615,\n\t\t\t0.04216,\n\t\t\t0.167446,\n\t\t\t0.082353,\n\t\t\t0.060949,\n\t\t\t0.044794,\n\t\t\t0.176129,\n\t\t\t0.086275,\n\t\t\t0.06533,\n\t\t\t0.047318,\n\t\t\t0.184892,\n\t\t\t0.090196,\n\t\t\t0.069764,\n\t\t\t0.049726,\n\t\t\t0.193735,\n\t\t\t0.094118,\n\t\t\t0.074257,\n\t\t\t0.052017,\n\t\t\t0.20266,\n\t\t\t0.098039,\n\t\t\t0.078815,\n\t\t\t0.054184,\n\t\t\t0.211667,\n\t\t\t0.101961,\n\t\t\t0.083446,\n\t\t\t0.056225,\n\t\t\t0.220755,\n\t\t\t0.105882,\n\t\t\t0.088155,\n\t\t\t0.058133,\n\t\t\t0.229922,\n\t\t\t0.109804,\n\t\t\t0.092949,\n\t\t\t0.059904,\n\t\t\t0.239164,\n\t\t\t0.113725,\n\t\t\t0.097833,\n\t\t\t0.061531,\n\t\t\t0.248477,\n\t\t\t0.117647,\n\t\t\t0.102815,\n\t\t\t0.06301,\n\t\t\t0.257854,\n\t\t\t0.121569,\n\t\t\t0.107899,\n\t\t\t0.064335,\n\t\t\t0.267289,\n\t\t\t0.12549,\n\t\t\t0.113094,\n\t\t\t0.065492,\n\t\t\t0.276784,\n\t\t\t0.129412,\n\t\t\t0.118405,\n\t\t\t0.066479,\n\t\t\t0.286321,\n\t\t\t0.133333,\n\t\t\t0.123833,\n\t\t\t0.067295,\n\t\t\t0.295879,\n\t\t\t0.137255,\n\t\t\t0.12938,\n\t\t\t0.067935,\n\t\t\t0.305443,\n\t\t\t0.141176,\n\t\t\t0.135053,\n\t\t\t0.068391,\n\t\t\t0.315,\n\t\t\t0.145098,\n\t\t\t0.140858,\n\t\t\t0.068654,\n\t\t\t0.324538,\n\t\t\t0.14902,\n\t\t\t0.146785,\n\t\t\t0.068738,\n\t\t\t0.334011,\n\t\t\t0.152941,\n\t\t\t0.152839,\n\t\t\t0.068637,\n\t\t\t0.343404,\n\t\t\t0.156863,\n\t\t\t0.159018,\n\t\t\t0.068354,\n\t\t\t0.352688,\n\t\t\t0.160784,\n\t\t\t0.165308,\n\t\t\t0.067911,\n\t\t\t0.361816,\n\t\t\t0.164706,\n\t\t\t0.171713,\n\t\t\t0.067305,\n\t\t\t0.370771,\n\t\t\t0.168627,\n\t\t\t0.178212,\n\t\t\t0.066576,\n\t\t\t0.379497,\n\t\t\t0.172549,\n\t\t\t0.184801,\n\t\t\t0.065732,\n\t\t\t0.387973,\n\t\t\t0.176471,\n\t\t\t0.19146,\n\t\t\t0.064818,\n\t\t\t0.396152,\n\t\t\t0.180392,\n\t\t\t0.198177,\n\t\t\t0.063862,\n\t\t\t0.404009,\n\t\t\t0.184314,\n\t\t\t0.204935,\n\t\t\t0.062907,\n\t\t\t0.411514,\n\t\t\t0.188235,\n\t\t\t0.211718,\n\t\t\t0.061992,\n\t\t\t0.418647,\n\t\t\t0.192157,\n\t\t\t0.218512,\n\t\t\t0.061158,\n\t\t\t0.425392,\n\t\t\t0.196078,\n\t\t\t0.225302,\n\t\t\t0.060445,\n\t\t\t0.431742,\n\t\t\t0.2,\n\t\t\t0.232077,\n\t\t\t0.059889,\n\t\t\t0.437695,\n\t\t\t0.203922,\n\t\t\t0.238826,\n\t\t\t0.059517,\n\t\t\t0.443256,\n\t\t\t0.207843,\n\t\t\t0.245543,\n\t\t\t0.059352,\n\t\t\t0.448436,\n\t\t\t0.211765,\n\t\t\t0.25222,\n\t\t\t0.059415,\n\t\t\t0.453248,\n\t\t\t0.215686,\n\t\t\t0.258857,\n\t\t\t0.059706,\n\t\t\t0.45771,\n\t\t\t0.219608,\n\t\t\t0.265447,\n\t\t\t0.060237,\n\t\t\t0.46184,\n\t\t\t0.223529,\n\t\t\t0.271994,\n\t\t\t0.060994,\n\t\t\t0.46566,\n\t\t\t0.227451,\n\t\t\t0.278493,\n\t\t\t0.061978,\n\t\t\t0.46919,\n\t\t\t0.231373,\n\t\t\t0.284951,\n\t\t\t0.063168,\n\t\t\t0.472451,\n\t\t\t0.235294,\n\t\t\t0.291366,\n\t\t\t0.064553,\n\t\t\t0.475462,\n\t\t\t0.239216,\n\t\t\t0.29774,\n\t\t\t0.066117,\n\t\t\t0.478243,\n\t\t\t0.243137,\n\t\t\t0.304081,\n\t\t\t0.067835,\n\t\t\t0.480812,\n\t\t\t0.247059,\n\t\t\t0.310382,\n\t\t\t0.069702,\n\t\t\t0.483186,\n\t\t\t0.25098,\n\t\t\t0.316654,\n\t\t\t0.07169,\n\t\t\t0.48538,\n\t\t\t0.254902,\n\t\t\t0.322899,\n\t\t\t0.073782,\n\t\t\t0.487408,\n\t\t\t0.258824,\n\t\t\t0.329114,\n\t\t\t0.075972,\n\t\t\t0.489287,\n\t\t\t0.262745,\n\t\t\t0.335308,\n\t\t\t0.078236,\n\t\t\t0.491024,\n\t\t\t0.266667,\n\t\t\t0.341482,\n\t\t\t0.080564,\n\t\t\t0.492631,\n\t\t\t0.270588,\n\t\t\t0.347636,\n\t\t\t0.082946,\n\t\t\t0.494121,\n\t\t\t0.27451,\n\t\t\t0.353773,\n\t\t\t0.085373,\n\t\t\t0.495501,\n\t\t\t0.278431,\n\t\t\t0.359898,\n\t\t\t0.087831,\n\t\t\t0.496778,\n\t\t\t0.282353,\n\t\t\t0.366012,\n\t\t\t0.090314,\n\t\t\t0.49796,\n\t\t\t0.286275,\n\t\t\t0.372116,\n\t\t\t0.092816,\n\t\t\t0.499053,\n\t\t\t0.290196,\n\t\t\t0.378211,\n\t\t\t0.095332,\n\t\t\t0.500067,\n\t\t\t0.294118,\n\t\t\t0.384299,\n\t\t\t0.097855,\n\t\t\t0.501002,\n\t\t\t0.298039,\n\t\t\t0.390384,\n\t\t\t0.100379,\n\t\t\t0.501864,\n\t\t\t0.301961,\n\t\t\t0.396467,\n\t\t\t0.102902,\n\t\t\t0.502658,\n\t\t\t0.305882,\n\t\t\t0.402548,\n\t\t\t0.10542,\n\t\t\t0.503386,\n\t\t\t0.309804,\n\t\t\t0.408629,\n\t\t\t0.10793,\n\t\t\t0.504052,\n\t\t\t0.313725,\n\t\t\t0.414709,\n\t\t\t0.110431,\n\t\t\t0.504662,\n\t\t\t0.317647,\n\t\t\t0.420791,\n\t\t\t0.11292,\n\t\t\t0.505215,\n\t\t\t0.321569,\n\t\t\t0.426877,\n\t\t\t0.115395,\n\t\t\t0.505714,\n\t\t\t0.32549,\n\t\t\t0.432967,\n\t\t\t0.117855,\n\t\t\t0.50616,\n\t\t\t0.329412,\n\t\t\t0.439062,\n\t\t\t0.120298,\n\t\t\t0.506555,\n\t\t\t0.333333,\n\t\t\t0.445163,\n\t\t\t0.122724,\n\t\t\t0.506901,\n\t\t\t0.337255,\n\t\t\t0.451271,\n\t\t\t0.125132,\n\t\t\t0.507198,\n\t\t\t0.341176,\n\t\t\t0.457386,\n\t\t\t0.127522,\n\t\t\t0.507448,\n\t\t\t0.345098,\n\t\t\t0.463508,\n\t\t\t0.129893,\n\t\t\t0.507652,\n\t\t\t0.34902,\n\t\t\t0.46964,\n\t\t\t0.132245,\n\t\t\t0.507809,\n\t\t\t0.352941,\n\t\t\t0.47578,\n\t\t\t0.134577,\n\t\t\t0.507921,\n\t\t\t0.356863,\n\t\t\t0.481929,\n\t\t\t0.136891,\n\t\t\t0.507989,\n\t\t\t0.360784,\n\t\t\t0.488088,\n\t\t\t0.139186,\n\t\t\t0.508011,\n\t\t\t0.364706,\n\t\t\t0.494258,\n\t\t\t0.141462,\n\t\t\t0.507988,\n\t\t\t0.368627,\n\t\t\t0.500438,\n\t\t\t0.143719,\n\t\t\t0.50792,\n\t\t\t0.372549,\n\t\t\t0.506629,\n\t\t\t0.145958,\n\t\t\t0.507806,\n\t\t\t0.376471,\n\t\t\t0.512831,\n\t\t\t0.148179,\n\t\t\t0.507648,\n\t\t\t0.380392,\n\t\t\t0.519045,\n\t\t\t0.150383,\n\t\t\t0.507443,\n\t\t\t0.384314,\n\t\t\t0.52527,\n\t\t\t0.152569,\n\t\t\t0.507192,\n\t\t\t0.388235,\n\t\t\t0.531507,\n\t\t\t0.154739,\n\t\t\t0.506895,\n\t\t\t0.392157,\n\t\t\t0.537755,\n\t\t\t0.156894,\n\t\t\t0.506551,\n\t\t\t0.396078,\n\t\t\t0.544015,\n\t\t\t0.159033,\n\t\t\t0.506159,\n\t\t\t0.4,\n\t\t\t0.550287,\n\t\t\t0.161158,\n\t\t\t0.505719,\n\t\t\t0.403922,\n\t\t\t0.556571,\n\t\t\t0.163269,\n\t\t\t0.50523,\n\t\t\t0.407843,\n\t\t\t0.562866,\n\t\t\t0.165368,\n\t\t\t0.504692,\n\t\t\t0.411765,\n\t\t\t0.569172,\n\t\t\t0.167454,\n\t\t\t0.504105,\n\t\t\t0.415686,\n\t\t\t0.57549,\n\t\t\t0.16953,\n\t\t\t0.503466,\n\t\t\t0.419608,\n\t\t\t0.581819,\n\t\t\t0.171596,\n\t\t\t0.502777,\n\t\t\t0.423529,\n\t\t\t0.588158,\n\t\t\t0.173652,\n\t\t\t0.502035,\n\t\t\t0.427451,\n\t\t\t0.594508,\n\t\t\t0.175701,\n\t\t\t0.501241,\n\t\t\t0.431373,\n\t\t\t0.600868,\n\t\t\t0.177743,\n\t\t\t0.500394,\n\t\t\t0.435294,\n\t\t\t0.607238,\n\t\t\t0.179779,\n\t\t\t0.499492,\n\t\t\t0.439216,\n\t\t\t0.613617,\n\t\t\t0.181811,\n\t\t\t0.498536,\n\t\t\t0.443137,\n\t\t\t0.620005,\n\t\t\t0.18384,\n\t\t\t0.497524,\n\t\t\t0.447059,\n\t\t\t0.626401,\n\t\t\t0.185867,\n\t\t\t0.496456,\n\t\t\t0.45098,\n\t\t\t0.632805,\n\t\t\t0.187893,\n\t\t\t0.495332,\n\t\t\t0.454902,\n\t\t\t0.639216,\n\t\t\t0.189921,\n\t\t\t0.49415,\n\t\t\t0.458824,\n\t\t\t0.645633,\n\t\t\t0.191952,\n\t\t\t0.49291,\n\t\t\t0.462745,\n\t\t\t0.652056,\n\t\t\t0.193986,\n\t\t\t0.491611,\n\t\t\t0.466667,\n\t\t\t0.658483,\n\t\t\t0.196027,\n\t\t\t0.490253,\n\t\t\t0.470588,\n\t\t\t0.664915,\n\t\t\t0.198075,\n\t\t\t0.488836,\n\t\t\t0.47451,\n\t\t\t0.671349,\n\t\t\t0.200133,\n\t\t\t0.487358,\n\t\t\t0.478431,\n\t\t\t0.677786,\n\t\t\t0.202203,\n\t\t\t0.485819,\n\t\t\t0.482353,\n\t\t\t0.684224,\n\t\t\t0.204286,\n\t\t\t0.484219,\n\t\t\t0.486275,\n\t\t\t0.690661,\n\t\t\t0.206384,\n\t\t\t0.482558,\n\t\t\t0.490196,\n\t\t\t0.697098,\n\t\t\t0.208501,\n\t\t\t0.480835,\n\t\t\t0.494118,\n\t\t\t0.703532,\n\t\t\t0.210638,\n\t\t\t0.479049,\n\t\t\t0.498039,\n\t\t\t0.709962,\n\t\t\t0.212797,\n\t\t\t0.477201,\n\t\t\t0.501961,\n\t\t\t0.716387,\n\t\t\t0.214982,\n\t\t\t0.47529,\n\t\t\t0.505882,\n\t\t\t0.722805,\n\t\t\t0.217194,\n\t\t\t0.473316,\n\t\t\t0.509804,\n\t\t\t0.729216,\n\t\t\t0.219437,\n\t\t\t0.471279,\n\t\t\t0.513725,\n\t\t\t0.735616,\n\t\t\t0.221713,\n\t\t\t0.46918,\n\t\t\t0.517647,\n\t\t\t0.742004,\n\t\t\t0.224025,\n\t\t\t0.467018,\n\t\t\t0.521569,\n\t\t\t0.748378,\n\t\t\t0.226377,\n\t\t\t0.464794,\n\t\t\t0.52549,\n\t\t\t0.754737,\n\t\t\t0.228772,\n\t\t\t0.462509,\n\t\t\t0.529412,\n\t\t\t0.761077,\n\t\t\t0.231214,\n\t\t\t0.460162,\n\t\t\t0.533333,\n\t\t\t0.767398,\n\t\t\t0.233705,\n\t\t\t0.457755,\n\t\t\t0.537255,\n\t\t\t0.773695,\n\t\t\t0.236249,\n\t\t\t0.455289,\n\t\t\t0.541176,\n\t\t\t0.779968,\n\t\t\t0.238851,\n\t\t\t0.452765,\n\t\t\t0.545098,\n\t\t\t0.786212,\n\t\t\t0.241514,\n\t\t\t0.450184,\n\t\t\t0.54902,\n\t\t\t0.792427,\n\t\t\t0.244242,\n\t\t\t0.447543,\n\t\t\t0.552941,\n\t\t\t0.798608,\n\t\t\t0.24704,\n\t\t\t0.444848,\n\t\t\t0.556863,\n\t\t\t0.804752,\n\t\t\t0.249911,\n\t\t\t0.442102,\n\t\t\t0.560784,\n\t\t\t0.810855,\n\t\t\t0.252861,\n\t\t\t0.439305,\n\t\t\t0.564706,\n\t\t\t0.816914,\n\t\t\t0.255895,\n\t\t\t0.436461,\n\t\t\t0.568627,\n\t\t\t0.822926,\n\t\t\t0.259016,\n\t\t\t0.433573,\n\t\t\t0.572549,\n\t\t\t0.828886,\n\t\t\t0.262229,\n\t\t\t0.430644,\n\t\t\t0.576471,\n\t\t\t0.834791,\n\t\t\t0.26554,\n\t\t\t0.427671,\n\t\t\t0.580392,\n\t\t\t0.840636,\n\t\t\t0.268953,\n\t\t\t0.424666,\n\t\t\t0.584314,\n\t\t\t0.846416,\n\t\t\t0.272473,\n\t\t\t0.421631,\n\t\t\t0.588235,\n\t\t\t0.852126,\n\t\t\t0.276106,\n\t\t\t0.418573,\n\t\t\t0.592157,\n\t\t\t0.857763,\n\t\t\t0.279857,\n\t\t\t0.415496,\n\t\t\t0.596078,\n\t\t\t0.86332,\n\t\t\t0.283729,\n\t\t\t0.412403,\n\t\t\t0.6,\n\t\t\t0.868793,\n\t\t\t0.287728,\n\t\t\t0.409303,\n\t\t\t0.603922,\n\t\t\t0.874176,\n\t\t\t0.291859,\n\t\t\t0.406205,\n\t\t\t0.607843,\n\t\t\t0.879464,\n\t\t\t0.296125,\n\t\t\t0.403118,\n\t\t\t0.611765,\n\t\t\t0.884651,\n\t\t\t0.30053,\n\t\t\t0.400047,\n\t\t\t0.615686,\n\t\t\t0.889731,\n\t\t\t0.305079,\n\t\t\t0.397002,\n\t\t\t0.619608,\n\t\t\t0.8947,\n\t\t\t0.309773,\n\t\t\t0.393995,\n\t\t\t0.623529,\n\t\t\t0.899552,\n\t\t\t0.314616,\n\t\t\t0.391037,\n\t\t\t0.627451,\n\t\t\t0.904281,\n\t\t\t0.31961,\n\t\t\t0.388137,\n\t\t\t0.631373,\n\t\t\t0.908884,\n\t\t\t0.324755,\n\t\t\t0.385308,\n\t\t\t0.635294,\n\t\t\t0.913354,\n\t\t\t0.330052,\n\t\t\t0.382563,\n\t\t\t0.639216,\n\t\t\t0.917689,\n\t\t\t0.3355,\n\t\t\t0.379915,\n\t\t\t0.643137,\n\t\t\t0.921884,\n\t\t\t0.341098,\n\t\t\t0.377376,\n\t\t\t0.647059,\n\t\t\t0.925937,\n\t\t\t0.346844,\n\t\t\t0.374959,\n\t\t\t0.65098,\n\t\t\t0.929845,\n\t\t\t0.352734,\n\t\t\t0.372677,\n\t\t\t0.654902,\n\t\t\t0.933606,\n\t\t\t0.358764,\n\t\t\t0.370541,\n\t\t\t0.658824,\n\t\t\t0.937221,\n\t\t\t0.364929,\n\t\t\t0.368567,\n\t\t\t0.662745,\n\t\t\t0.940687,\n\t\t\t0.371224,\n\t\t\t0.366762,\n\t\t\t0.666667,\n\t\t\t0.944006,\n\t\t\t0.377643,\n\t\t\t0.365136,\n\t\t\t0.670588,\n\t\t\t0.94718,\n\t\t\t0.384178,\n\t\t\t0.363701,\n\t\t\t0.67451,\n\t\t\t0.95021,\n\t\t\t0.39082,\n\t\t\t0.362468,\n\t\t\t0.678431,\n\t\t\t0.953099,\n\t\t\t0.397563,\n\t\t\t0.361438,\n\t\t\t0.682353,\n\t\t\t0.955849,\n\t\t\t0.4044,\n\t\t\t0.360619,\n\t\t\t0.686275,\n\t\t\t0.958464,\n\t\t\t0.411324,\n\t\t\t0.360014,\n\t\t\t0.690196,\n\t\t\t0.960949,\n\t\t\t0.418323,\n\t\t\t0.35963,\n\t\t\t0.694118,\n\t\t\t0.96331,\n\t\t\t0.42539,\n\t\t\t0.359469,\n\t\t\t0.698039,\n\t\t\t0.965549,\n\t\t\t0.432519,\n\t\t\t0.359529,\n\t\t\t0.701961,\n\t\t\t0.967671,\n\t\t\t0.439703,\n\t\t\t0.35981,\n\t\t\t0.705882,\n\t\t\t0.96968,\n\t\t\t0.446936,\n\t\t\t0.360311,\n\t\t\t0.709804,\n\t\t\t0.971582,\n\t\t\t0.45421,\n\t\t\t0.36103,\n\t\t\t0.713725,\n\t\t\t0.973381,\n\t\t\t0.46152,\n\t\t\t0.361965,\n\t\t\t0.717647,\n\t\t\t0.975082,\n\t\t\t0.468861,\n\t\t\t0.363111,\n\t\t\t0.721569,\n\t\t\t0.97669,\n\t\t\t0.476226,\n\t\t\t0.364466,\n\t\t\t0.72549,\n\t\t\t0.97821,\n\t\t\t0.483612,\n\t\t\t0.366025,\n\t\t\t0.729412,\n\t\t\t0.979645,\n\t\t\t0.491014,\n\t\t\t0.367783,\n\t\t\t0.733333,\n\t\t\t0.981,\n\t\t\t0.498428,\n\t\t\t0.369734,\n\t\t\t0.737255,\n\t\t\t0.982279,\n\t\t\t0.505851,\n\t\t\t0.371874,\n\t\t\t0.741176,\n\t\t\t0.983485,\n\t\t\t0.51328,\n\t\t\t0.374198,\n\t\t\t0.745098,\n\t\t\t0.984622,\n\t\t\t0.520713,\n\t\t\t0.376698,\n\t\t\t0.74902,\n\t\t\t0.985693,\n\t\t\t0.528148,\n\t\t\t0.379371,\n\t\t\t0.752941,\n\t\t\t0.9867,\n\t\t\t0.535582,\n\t\t\t0.38221,\n\t\t\t0.756863,\n\t\t\t0.987646,\n\t\t\t0.543015,\n\t\t\t0.38521,\n\t\t\t0.760784,\n\t\t\t0.988533,\n\t\t\t0.550446,\n\t\t\t0.388365,\n\t\t\t0.764706,\n\t\t\t0.989363,\n\t\t\t0.557873,\n\t\t\t0.391671,\n\t\t\t0.768627,\n\t\t\t0.990138,\n\t\t\t0.565296,\n\t\t\t0.395122,\n\t\t\t0.772549,\n\t\t\t0.990871,\n\t\t\t0.572706,\n\t\t\t0.398714,\n\t\t\t0.776471,\n\t\t\t0.991558,\n\t\t\t0.580107,\n\t\t\t0.402441,\n\t\t\t0.780392,\n\t\t\t0.992196,\n\t\t\t0.587502,\n\t\t\t0.406299,\n\t\t\t0.784314,\n\t\t\t0.992785,\n\t\t\t0.594891,\n\t\t\t0.410283,\n\t\t\t0.788235,\n\t\t\t0.993326,\n\t\t\t0.602275,\n\t\t\t0.41439,\n\t\t\t0.792157,\n\t\t\t0.993834,\n\t\t\t0.609644,\n\t\t\t0.418613,\n\t\t\t0.796078,\n\t\t\t0.994309,\n\t\t\t0.616999,\n\t\t\t0.42295,\n\t\t\t0.8,\n\t\t\t0.994738,\n\t\t\t0.62435,\n\t\t\t0.427397,\n\t\t\t0.803922,\n\t\t\t0.995122,\n\t\t\t0.631696,\n\t\t\t0.431951,\n\t\t\t0.807843,\n\t\t\t0.99548,\n\t\t\t0.639027,\n\t\t\t0.436607,\n\t\t\t0.811765,\n\t\t\t0.99581,\n\t\t\t0.646344,\n\t\t\t0.441361,\n\t\t\t0.815686,\n\t\t\t0.996096,\n\t\t\t0.653659,\n\t\t\t0.446213,\n\t\t\t0.819608,\n\t\t\t0.996341,\n\t\t\t0.660969,\n\t\t\t0.45116,\n\t\t\t0.823529,\n\t\t\t0.99658,\n\t\t\t0.668256,\n\t\t\t0.456192,\n\t\t\t0.827451,\n\t\t\t0.996775,\n\t\t\t0.675541,\n\t\t\t0.461314,\n\t\t\t0.831373,\n\t\t\t0.996925,\n\t\t\t0.682828,\n\t\t\t0.466526,\n\t\t\t0.835294,\n\t\t\t0.997077,\n\t\t\t0.690088,\n\t\t\t0.471811,\n\t\t\t0.839216,\n\t\t\t0.997186,\n\t\t\t0.697349,\n\t\t\t0.477182,\n\t\t\t0.843137,\n\t\t\t0.997254,\n\t\t\t0.704611,\n\t\t\t0.482635,\n\t\t\t0.847059,\n\t\t\t0.997325,\n\t\t\t0.711848,\n\t\t\t0.488154,\n\t\t\t0.85098,\n\t\t\t0.997351,\n\t\t\t0.719089,\n\t\t\t0.493755,\n\t\t\t0.854902,\n\t\t\t0.997351,\n\t\t\t0.726324,\n\t\t\t0.499428,\n\t\t\t0.858824,\n\t\t\t0.997341,\n\t\t\t0.733545,\n\t\t\t0.505167,\n\t\t\t0.862745,\n\t\t\t0.997285,\n\t\t\t0.740772,\n\t\t\t0.510983,\n\t\t\t0.866667,\n\t\t\t0.997228,\n\t\t\t0.747981,\n\t\t\t0.516859,\n\t\t\t0.870588,\n\t\t\t0.997138,\n\t\t\t0.75519,\n\t\t\t0.522806,\n\t\t\t0.87451,\n\t\t\t0.997019,\n\t\t\t0.762398,\n\t\t\t0.528821,\n\t\t\t0.878431,\n\t\t\t0.996898,\n\t\t\t0.769591,\n\t\t\t0.534892,\n\t\t\t0.882353,\n\t\t\t0.996727,\n\t\t\t0.776795,\n\t\t\t0.541039,\n\t\t\t0.886275,\n\t\t\t0.996571,\n\t\t\t0.783977,\n\t\t\t0.547233,\n\t\t\t0.890196,\n\t\t\t0.996369,\n\t\t\t0.791167,\n\t\t\t0.553499,\n\t\t\t0.894118,\n\t\t\t0.996162,\n\t\t\t0.798348,\n\t\t\t0.55982,\n\t\t\t0.898039,\n\t\t\t0.995932,\n\t\t\t0.805527,\n\t\t\t0.566202,\n\t\t\t0.901961,\n\t\t\t0.99568,\n\t\t\t0.812706,\n\t\t\t0.572645,\n\t\t\t0.905882,\n\t\t\t0.995424,\n\t\t\t0.819875,\n\t\t\t0.57914,\n\t\t\t0.909804,\n\t\t\t0.995131,\n\t\t\t0.827052,\n\t\t\t0.585701,\n\t\t\t0.913725,\n\t\t\t0.994851,\n\t\t\t0.834213,\n\t\t\t0.592307,\n\t\t\t0.917647,\n\t\t\t0.994524,\n\t\t\t0.841387,\n\t\t\t0.598983,\n\t\t\t0.921569,\n\t\t\t0.994222,\n\t\t\t0.84854,\n\t\t\t0.605696,\n\t\t\t0.92549,\n\t\t\t0.993866,\n\t\t\t0.855711,\n\t\t\t0.612482,\n\t\t\t0.929412,\n\t\t\t0.993545,\n\t\t\t0.862859,\n\t\t\t0.619299,\n\t\t\t0.933333,\n\t\t\t0.99317,\n\t\t\t0.870024,\n\t\t\t0.626189,\n\t\t\t0.937255,\n\t\t\t0.992831,\n\t\t\t0.877168,\n\t\t\t0.633109,\n\t\t\t0.941176,\n\t\t\t0.99244,\n\t\t\t0.88433,\n\t\t\t0.640099,\n\t\t\t0.945098,\n\t\t\t0.992089,\n\t\t\t0.89147,\n\t\t\t0.647116,\n\t\t\t0.94902,\n\t\t\t0.991688,\n\t\t\t0.898627,\n\t\t\t0.654202,\n\t\t\t0.952941,\n\t\t\t0.991332,\n\t\t\t0.905763,\n\t\t\t0.661309,\n\t\t\t0.956863,\n\t\t\t0.99093,\n\t\t\t0.912915,\n\t\t\t0.668481,\n\t\t\t0.960784,\n\t\t\t0.99057,\n\t\t\t0.920049,\n\t\t\t0.675675,\n\t\t\t0.964706,\n\t\t\t0.990175,\n\t\t\t0.927196,\n\t\t\t0.682926,\n\t\t\t0.968627,\n\t\t\t0.989815,\n\t\t\t0.934329,\n\t\t\t0.690198,\n\t\t\t0.972549,\n\t\t\t0.989434,\n\t\t\t0.94147,\n\t\t\t0.697519,\n\t\t\t0.976471,\n\t\t\t0.989077,\n\t\t\t0.948604,\n\t\t\t0.704863,\n\t\t\t0.980392,\n\t\t\t0.988717,\n\t\t\t0.955742,\n\t\t\t0.712242,\n\t\t\t0.984314,\n\t\t\t0.988367,\n\t\t\t0.962878,\n\t\t\t0.719649,\n\t\t\t0.988235,\n\t\t\t0.988033,\n\t\t\t0.970012,\n\t\t\t0.727077,\n\t\t\t0.992157,\n\t\t\t0.987691,\n\t\t\t0.977154,\n\t\t\t0.734536,\n\t\t\t0.996078,\n\t\t\t0.987387,\n\t\t\t0.984288,\n\t\t\t0.742002,\n\t\t\t1,\n\t\t\t0.987053,\n\t\t\t0.991438,\n\t\t\t0.749504\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Diverging\",\n\t\tName: \"Inferno (matplotlib)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tSource: \"https://github.com/BIDS/colormap/blob/master/colormaps.py\",\n\t\tLicense: \"CC0\",\n\t\tCreator: \"Nathaniel J. Smith & Stefan van der Walt\",\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.001462,\n\t\t\t0.000466,\n\t\t\t0.013866,\n\t\t\t0.003922,\n\t\t\t0.002267,\n\t\t\t0.00127,\n\t\t\t0.01857,\n\t\t\t0.007843,\n\t\t\t0.003299,\n\t\t\t0.002249,\n\t\t\t0.024239,\n\t\t\t0.011765,\n\t\t\t0.004547,\n\t\t\t0.003392,\n\t\t\t0.030909,\n\t\t\t0.015686,\n\t\t\t0.006006,\n\t\t\t0.004692,\n\t\t\t0.038558,\n\t\t\t0.019608,\n\t\t\t0.007676,\n\t\t\t0.006136,\n\t\t\t0.046836,\n\t\t\t0.023529,\n\t\t\t0.009561,\n\t\t\t0.007713,\n\t\t\t0.055143,\n\t\t\t0.027451,\n\t\t\t0.011663,\n\t\t\t0.009417,\n\t\t\t0.06346,\n\t\t\t0.031373,\n\t\t\t0.013995,\n\t\t\t0.011225,\n\t\t\t0.071862,\n\t\t\t0.035294,\n\t\t\t0.016561,\n\t\t\t0.013136,\n\t\t\t0.080282,\n\t\t\t0.039216,\n\t\t\t0.019373,\n\t\t\t0.015133,\n\t\t\t0.088767,\n\t\t\t0.043137,\n\t\t\t0.022447,\n\t\t\t0.017199,\n\t\t\t0.097327,\n\t\t\t0.047059,\n\t\t\t0.025793,\n\t\t\t0.019331,\n\t\t\t0.10593,\n\t\t\t0.05098,\n\t\t\t0.029432,\n\t\t\t0.021503,\n\t\t\t0.114621,\n\t\t\t0.054902,\n\t\t\t0.033385,\n\t\t\t0.023702,\n\t\t\t0.123397,\n\t\t\t0.058824,\n\t\t\t0.037668,\n\t\t\t0.025921,\n\t\t\t0.132232,\n\t\t\t0.062745,\n\t\t\t0.042253,\n\t\t\t0.028139,\n\t\t\t0.141141,\n\t\t\t0.066667,\n\t\t\t0.046915,\n\t\t\t0.030324,\n\t\t\t0.150164,\n\t\t\t0.070588,\n\t\t\t0.051644,\n\t\t\t0.032474,\n\t\t\t0.159254,\n\t\t\t0.07451,\n\t\t\t0.056449,\n\t\t\t0.034569,\n\t\t\t0.168414,\n\t\t\t0.078431,\n\t\t\t0.06134,\n\t\t\t0.03659,\n\t\t\t0.177642,\n\t\t\t0.082353,\n\t\t\t0.066331,\n\t\t\t0.038504,\n\t\t\t0.186962,\n\t\t\t0.086275,\n\t\t\t0.071429,\n\t\t\t0.040294,\n\t\t\t0.196354,\n\t\t\t0.090196,\n\t\t\t0.076637,\n\t\t\t0.041905,\n\t\t\t0.205799,\n\t\t\t0.094118,\n\t\t\t0.081962,\n\t\t\t0.043328,\n\t\t\t0.215289,\n\t\t\t0.098039,\n\t\t\t0.087411,\n\t\t\t0.044556,\n\t\t\t0.224813,\n\t\t\t0.101961,\n\t\t\t0.09299,\n\t\t\t0.045583,\n\t\t\t0.234358,\n\t\t\t0.105882,\n\t\t\t0.098702,\n\t\t\t0.046402,\n\t\t\t0.243904,\n\t\t\t0.109804,\n\t\t\t0.104551,\n\t\t\t0.047008,\n\t\t\t0.25343,\n\t\t\t0.113725,\n\t\t\t0.110536,\n\t\t\t0.047399,\n\t\t\t0.262912,\n\t\t\t0.117647,\n\t\t\t0.116656,\n\t\t\t0.047574,\n\t\t\t0.272321,\n\t\t\t0.121569,\n\t\t\t0.122908,\n\t\t\t0.047536,\n\t\t\t0.281624,\n\t\t\t0.12549,\n\t\t\t0.129285,\n\t\t\t0.047293,\n\t\t\t0.290788,\n\t\t\t0.129412,\n\t\t\t0.135778,\n\t\t\t0.046856,\n\t\t\t0.299776,\n\t\t\t0.133333,\n\t\t\t0.142378,\n\t\t\t0.046242,\n\t\t\t0.308553,\n\t\t\t0.137255,\n\t\t\t0.149073,\n\t\t\t0.045468,\n\t\t\t0.317085,\n\t\t\t0.141176,\n\t\t\t0.15585,\n\t\t\t0.044559,\n\t\t\t0.325338,\n\t\t\t0.145098,\n\t\t\t0.162689,\n\t\t\t0.043554,\n\t\t\t0.333277,\n\t\t\t0.14902,\n\t\t\t0.169575,\n\t\t\t0.042489,\n\t\t\t0.340874,\n\t\t\t0.152941,\n\t\t\t0.176493,\n\t\t\t0.041402,\n\t\t\t0.348111,\n\t\t\t0.156863,\n\t\t\t0.183429,\n\t\t\t0.040329,\n\t\t\t0.354971,\n\t\t\t0.160784,\n\t\t\t0.190367,\n\t\t\t0.039309,\n\t\t\t0.361447,\n\t\t\t0.164706,\n\t\t\t0.197297,\n\t\t\t0.0384,\n\t\t\t0.367535,\n\t\t\t0.168627,\n\t\t\t0.204209,\n\t\t\t0.037632,\n\t\t\t0.373238,\n\t\t\t0.172549,\n\t\t\t0.211095,\n\t\t\t0.03703,\n\t\t\t0.378563,\n\t\t\t0.176471,\n\t\t\t0.217949,\n\t\t\t0.036615,\n\t\t\t0.383522,\n\t\t\t0.180392,\n\t\t\t0.224763,\n\t\t\t0.036405,\n\t\t\t0.388129,\n\t\t\t0.184314,\n\t\t\t0.231538,\n\t\t\t0.036405,\n\t\t\t0.3924,\n\t\t\t0.188235,\n\t\t\t0.238273,\n\t\t\t0.036621,\n\t\t\t0.396353,\n\t\t\t0.192157,\n\t\t\t0.244967,\n\t\t\t0.037055,\n\t\t\t0.400007,\n\t\t\t0.196078,\n\t\t\t0.25162,\n\t\t\t0.037705,\n\t\t\t0.403378,\n\t\t\t0.2,\n\t\t\t0.258234,\n\t\t\t0.038571,\n\t\t\t0.406485,\n\t\t\t0.203922,\n\t\t\t0.26481,\n\t\t\t0.039647,\n\t\t\t0.409345,\n\t\t\t0.207843,\n\t\t\t0.271347,\n\t\t\t0.040922,\n\t\t\t0.411976,\n\t\t\t0.211765,\n\t\t\t0.27785,\n\t\t\t0.042353,\n\t\t\t0.414392,\n\t\t\t0.215686,\n\t\t\t0.284321,\n\t\t\t0.043933,\n\t\t\t0.416608,\n\t\t\t0.219608,\n\t\t\t0.290763,\n\t\t\t0.045644,\n\t\t\t0.418637,\n\t\t\t0.223529,\n\t\t\t0.297178,\n\t\t\t0.04747,\n\t\t\t0.420491,\n\t\t\t0.227451,\n\t\t\t0.303568,\n\t\t\t0.049396,\n\t\t\t0.422182,\n\t\t\t0.231373,\n\t\t\t0.309935,\n\t\t\t0.051407,\n\t\t\t0.423721,\n\t\t\t0.235294,\n\t\t\t0.316282,\n\t\t\t0.05349,\n\t\t\t0.425116,\n\t\t\t0.239216,\n\t\t\t0.32261,\n\t\t\t0.055634,\n\t\t\t0.426377,\n\t\t\t0.243137,\n\t\t\t0.328921,\n\t\t\t0.057827,\n\t\t\t0.427511,\n\t\t\t0.247059,\n\t\t\t0.335217,\n\t\t\t0.06006,\n\t\t\t0.428524,\n\t\t\t0.25098,\n\t\t\t0.3415,\n\t\t\t0.062325,\n\t\t\t0.429425,\n\t\t\t0.254902,\n\t\t\t0.347771,\n\t\t\t0.064616,\n\t\t\t0.430217,\n\t\t\t0.258824,\n\t\t\t0.354032,\n\t\t\t0.066925,\n\t\t\t0.430906,\n\t\t\t0.262745,\n\t\t\t0.360284,\n\t\t\t0.069247,\n\t\t\t0.431497,\n\t\t\t0.266667,\n\t\t\t0.366529,\n\t\t\t0.071579,\n\t\t\t0.431994,\n\t\t\t0.270588,\n\t\t\t0.372768,\n\t\t\t0.073915,\n\t\t\t0.4324,\n\t\t\t0.27451,\n\t\t\t0.379001,\n\t\t\t0.076253,\n\t\t\t0.432719,\n\t\t\t0.278431,\n\t\t\t0.385228,\n\t\t\t0.078591,\n\t\t\t0.432955,\n\t\t\t0.282353,\n\t\t\t0.391453,\n\t\t\t0.080927,\n\t\t\t0.433109,\n\t\t\t0.286275,\n\t\t\t0.397674,\n\t\t\t0.083257,\n\t\t\t0.433183,\n\t\t\t0.290196,\n\t\t\t0.403894,\n\t\t\t0.08558,\n\t\t\t0.433179,\n\t\t\t0.294118,\n\t\t\t0.410113,\n\t\t\t0.087896,\n\t\t\t0.433098,\n\t\t\t0.298039,\n\t\t\t0.416331,\n\t\t\t0.090203,\n\t\t\t0.432943,\n\t\t\t0.301961,\n\t\t\t0.422549,\n\t\t\t0.092501,\n\t\t\t0.432714,\n\t\t\t0.305882,\n\t\t\t0.428768,\n\t\t\t0.09479,\n\t\t\t0.432412,\n\t\t\t0.309804,\n\t\t\t0.434987,\n\t\t\t0.097069,\n\t\t\t0.432039,\n\t\t\t0.313725,\n\t\t\t0.441207,\n\t\t\t0.099338,\n\t\t\t0.431594,\n\t\t\t0.317647,\n\t\t\t0.447428,\n\t\t\t0.101597,\n\t\t\t0.43108,\n\t\t\t0.321569,\n\t\t\t0.453651,\n\t\t\t0.103848,\n\t\t\t0.430498,\n\t\t\t0.32549,\n\t\t\t0.459875,\n\t\t\t0.106089,\n\t\t\t0.429846,\n\t\t\t0.329412,\n\t\t\t0.4661,\n\t\t\t0.108322,\n\t\t\t0.429125,\n\t\t\t0.333333,\n\t\t\t0.472328,\n\t\t\t0.110547,\n\t\t\t0.428334,\n\t\t\t0.337255,\n\t\t\t0.478558,\n\t\t\t0.112764,\n\t\t\t0.427475,\n\t\t\t0.341176,\n\t\t\t0.484789,\n\t\t\t0.114974,\n\t\t\t0.426548,\n\t\t\t0.345098,\n\t\t\t0.491022,\n\t\t\t0.117179,\n\t\t\t0.425552,\n\t\t\t0.34902,\n\t\t\t0.497257,\n\t\t\t0.119379,\n\t\t\t0.424488,\n\t\t\t0.352941,\n\t\t\t0.503493,\n\t\t\t0.121575,\n\t\t\t0.423356,\n\t\t\t0.356863,\n\t\t\t0.50973,\n\t\t\t0.123769,\n\t\t\t0.422156,\n\t\t\t0.360784,\n\t\t\t0.515967,\n\t\t\t0.12596,\n\t\t\t0.420887,\n\t\t\t0.364706,\n\t\t\t0.522206,\n\t\t\t0.12815,\n\t\t\t0.419549,\n\t\t\t0.368627,\n\t\t\t0.528444,\n\t\t\t0.130341,\n\t\t\t0.418142,\n\t\t\t0.372549,\n\t\t\t0.534683,\n\t\t\t0.132534,\n\t\t\t0.416667,\n\t\t\t0.376471,\n\t\t\t0.54092,\n\t\t\t0.134729,\n\t\t\t0.415123,\n\t\t\t0.380392,\n\t\t\t0.547157,\n\t\t\t0.136929,\n\t\t\t0.413511,\n\t\t\t0.384314,\n\t\t\t0.553392,\n\t\t\t0.139134,\n\t\t\t0.411829,\n\t\t\t0.388235,\n\t\t\t0.559624,\n\t\t\t0.141346,\n\t\t\t0.410078,\n\t\t\t0.392157,\n\t\t\t0.565854,\n\t\t\t0.143567,\n\t\t\t0.408258,\n\t\t\t0.396078,\n\t\t\t0.572081,\n\t\t\t0.145797,\n\t\t\t0.406369,\n\t\t\t0.4,\n\t\t\t0.578304,\n\t\t\t0.148039,\n\t\t\t0.404411,\n\t\t\t0.403922,\n\t\t\t0.584521,\n\t\t\t0.150294,\n\t\t\t0.402385,\n\t\t\t0.407843,\n\t\t\t0.590734,\n\t\t\t0.152563,\n\t\t\t0.40029,\n\t\t\t0.411765,\n\t\t\t0.59694,\n\t\t\t0.154848,\n\t\t\t0.398125,\n\t\t\t0.415686,\n\t\t\t0.603139,\n\t\t\t0.157151,\n\t\t\t0.395891,\n\t\t\t0.419608,\n\t\t\t0.60933,\n\t\t\t0.159474,\n\t\t\t0.393589,\n\t\t\t0.423529,\n\t\t\t0.615513,\n\t\t\t0.161817,\n\t\t\t0.391219,\n\t\t\t0.427451,\n\t\t\t0.621685,\n\t\t\t0.164184,\n\t\t\t0.388781,\n\t\t\t0.431373,\n\t\t\t0.627847,\n\t\t\t0.166575,\n\t\t\t0.386276,\n\t\t\t0.435294,\n\t\t\t0.633998,\n\t\t\t0.168992,\n\t\t\t0.383704,\n\t\t\t0.439216,\n\t\t\t0.640135,\n\t\t\t0.171438,\n\t\t\t0.381065,\n\t\t\t0.443137,\n\t\t\t0.64626,\n\t\t\t0.173914,\n\t\t\t0.378359,\n\t\t\t0.447059,\n\t\t\t0.652369,\n\t\t\t0.176421,\n\t\t\t0.375586,\n\t\t\t0.45098,\n\t\t\t0.658463,\n\t\t\t0.178962,\n\t\t\t0.372748,\n\t\t\t0.454902,\n\t\t\t0.66454,\n\t\t\t0.181539,\n\t\t\t0.369846,\n\t\t\t0.458824,\n\t\t\t0.670599,\n\t\t\t0.184153,\n\t\t\t0.366879,\n\t\t\t0.462745,\n\t\t\t0.676638,\n\t\t\t0.186807,\n\t\t\t0.363849,\n\t\t\t0.466667,\n\t\t\t0.682656,\n\t\t\t0.189501,\n\t\t\t0.360757,\n\t\t\t0.470588,\n\t\t\t0.688653,\n\t\t\t0.192239,\n\t\t\t0.357603,\n\t\t\t0.47451,\n\t\t\t0.694627,\n\t\t\t0.195021,\n\t\t\t0.354388,\n\t\t\t0.478431,\n\t\t\t0.700576,\n\t\t\t0.197851,\n\t\t\t0.351113,\n\t\t\t0.482353,\n\t\t\t0.7065,\n\t\t\t0.200728,\n\t\t\t0.347777,\n\t\t\t0.486275,\n\t\t\t0.712396,\n\t\t\t0.203656,\n\t\t\t0.344383,\n\t\t\t0.490196,\n\t\t\t0.718264,\n\t\t\t0.206636,\n\t\t\t0.340931,\n\t\t\t0.494118,\n\t\t\t0.724103,\n\t\t\t0.20967,\n\t\t\t0.337424,\n\t\t\t0.498039,\n\t\t\t0.729909,\n\t\t\t0.212759,\n\t\t\t0.333861,\n\t\t\t0.501961,\n\t\t\t0.735683,\n\t\t\t0.215906,\n\t\t\t0.330245,\n\t\t\t0.505882,\n\t\t\t0.741423,\n\t\t\t0.219112,\n\t\t\t0.326576,\n\t\t\t0.509804,\n\t\t\t0.747127,\n\t\t\t0.222378,\n\t\t\t0.322856,\n\t\t\t0.513725,\n\t\t\t0.752794,\n\t\t\t0.225706,\n\t\t\t0.319085,\n\t\t\t0.517647,\n\t\t\t0.758422,\n\t\t\t0.229097,\n\t\t\t0.315266,\n\t\t\t0.521569,\n\t\t\t0.76401,\n\t\t\t0.232554,\n\t\t\t0.311399,\n\t\t\t0.52549,\n\t\t\t0.769556,\n\t\t\t0.236077,\n\t\t\t0.307485,\n\t\t\t0.529412,\n\t\t\t0.775059,\n\t\t\t0.239667,\n\t\t\t0.303526,\n\t\t\t0.533333,\n\t\t\t0.780517,\n\t\t\t0.243327,\n\t\t\t0.299523,\n\t\t\t0.537255,\n\t\t\t0.785929,\n\t\t\t0.247056,\n\t\t\t0.295477,\n\t\t\t0.541176,\n\t\t\t0.791293,\n\t\t\t0.250856,\n\t\t\t0.29139,\n\t\t\t0.545098,\n\t\t\t0.796607,\n\t\t\t0.254728,\n\t\t\t0.287264,\n\t\t\t0.54902,\n\t\t\t0.801871,\n\t\t\t0.258674,\n\t\t\t0.283099,\n\t\t\t0.552941,\n\t\t\t0.807082,\n\t\t\t0.262692,\n\t\t\t0.278898,\n\t\t\t0.556863,\n\t\t\t0.812239,\n\t\t\t0.266786,\n\t\t\t0.274661,\n\t\t\t0.560784,\n\t\t\t0.817341,\n\t\t\t0.270954,\n\t\t\t0.27039,\n\t\t\t0.564706,\n\t\t\t0.822386,\n\t\t\t0.275197,\n\t\t\t0.266085,\n\t\t\t0.568627,\n\t\t\t0.827372,\n\t\t\t0.279517,\n\t\t\t0.26175,\n\t\t\t0.572549,\n\t\t\t0.832299,\n\t\t\t0.283913,\n\t\t\t0.257383,\n\t\t\t0.576471,\n\t\t\t0.837165,\n\t\t\t0.288385,\n\t\t\t0.252988,\n\t\t\t0.580392,\n\t\t\t0.841969,\n\t\t\t0.292933,\n\t\t\t0.248564,\n\t\t\t0.584314,\n\t\t\t0.846709,\n\t\t\t0.297559,\n\t\t\t0.244113,\n\t\t\t0.588235,\n\t\t\t0.851384,\n\t\t\t0.30226,\n\t\t\t0.239636,\n\t\t\t0.592157,\n\t\t\t0.855992,\n\t\t\t0.307038,\n\t\t\t0.235133,\n\t\t\t0.596078,\n\t\t\t0.860533,\n\t\t\t0.311892,\n\t\t\t0.230606,\n\t\t\t0.6,\n\t\t\t0.865006,\n\t\t\t0.316822,\n\t\t\t0.226055,\n\t\t\t0.603922,\n\t\t\t0.869409,\n\t\t\t0.321827,\n\t\t\t0.221482,\n\t\t\t0.607843,\n\t\t\t0.873741,\n\t\t\t0.326906,\n\t\t\t0.216886,\n\t\t\t0.611765,\n\t\t\t0.878001,\n\t\t\t0.33206,\n\t\t\t0.212268,\n\t\t\t0.615686,\n\t\t\t0.882188,\n\t\t\t0.337287,\n\t\t\t0.207628,\n\t\t\t0.619608,\n\t\t\t0.886302,\n\t\t\t0.342586,\n\t\t\t0.202968,\n\t\t\t0.623529,\n\t\t\t0.890341,\n\t\t\t0.347957,\n\t\t\t0.198286,\n\t\t\t0.627451,\n\t\t\t0.894305,\n\t\t\t0.353399,\n\t\t\t0.193584,\n\t\t\t0.631373,\n\t\t\t0.898192,\n\t\t\t0.358911,\n\t\t\t0.18886,\n\t\t\t0.635294,\n\t\t\t0.902003,\n\t\t\t0.364492,\n\t\t\t0.184116,\n\t\t\t0.639216,\n\t\t\t0.905735,\n\t\t\t0.37014,\n\t\t\t0.17935,\n\t\t\t0.643137,\n\t\t\t0.90939,\n\t\t\t0.375856,\n\t\t\t0.174563,\n\t\t\t0.647059,\n\t\t\t0.912966,\n\t\t\t0.381636,\n\t\t\t0.169755,\n\t\t\t0.65098,\n\t\t\t0.916462,\n\t\t\t0.387481,\n\t\t\t0.164924,\n\t\t\t0.654902,\n\t\t\t0.919879,\n\t\t\t0.393389,\n\t\t\t0.16007,\n\t\t\t0.658824,\n\t\t\t0.923215,\n\t\t\t0.399359,\n\t\t\t0.155193,\n\t\t\t0.662745,\n\t\t\t0.92647,\n\t\t\t0.405389,\n\t\t\t0.150292,\n\t\t\t0.666667,\n\t\t\t0.929644,\n\t\t\t0.411479,\n\t\t\t0.145367,\n\t\t\t0.670588,\n\t\t\t0.932737,\n\t\t\t0.417627,\n\t\t\t0.140417,\n\t\t\t0.67451,\n\t\t\t0.935747,\n\t\t\t0.423831,\n\t\t\t0.13544,\n\t\t\t0.678431,\n\t\t\t0.938675,\n\t\t\t0.430091,\n\t\t\t0.130438,\n\t\t\t0.682353,\n\t\t\t0.941521,\n\t\t\t0.436405,\n\t\t\t0.125409,\n\t\t\t0.686275,\n\t\t\t0.944285,\n\t\t\t0.442772,\n\t\t\t0.120354,\n\t\t\t0.690196,\n\t\t\t0.946965,\n\t\t\t0.449191,\n\t\t\t0.115272,\n\t\t\t0.694118,\n\t\t\t0.949562,\n\t\t\t0.45566,\n\t\t\t0.110164,\n\t\t\t0.698039,\n\t\t\t0.952075,\n\t\t\t0.462178,\n\t\t\t0.105031,\n\t\t\t0.701961,\n\t\t\t0.954506,\n\t\t\t0.468744,\n\t\t\t0.099874,\n\t\t\t0.705882,\n\t\t\t0.956852,\n\t\t\t0.475356,\n\t\t\t0.094695,\n\t\t\t0.709804,\n\t\t\t0.959114,\n\t\t\t0.482014,\n\t\t\t0.089499,\n\t\t\t0.713725,\n\t\t\t0.961293,\n\t\t\t0.488716,\n\t\t\t0.084289,\n\t\t\t0.717647,\n\t\t\t0.963387,\n\t\t\t0.495462,\n\t\t\t0.079073,\n\t\t\t0.721569,\n\t\t\t0.965397,\n\t\t\t0.502249,\n\t\t\t0.073859,\n\t\t\t0.72549,\n\t\t\t0.967322,\n\t\t\t0.509078,\n\t\t\t0.068659,\n\t\t\t0.729412,\n\t\t\t0.969163,\n\t\t\t0.515946,\n\t\t\t0.063488,\n\t\t\t0.733333,\n\t\t\t0.970919,\n\t\t\t0.522853,\n\t\t\t0.058367,\n\t\t\t0.737255,\n\t\t\t0.97259,\n\t\t\t0.529798,\n\t\t\t0.053324,\n\t\t\t0.741176,\n\t\t\t0.974176,\n\t\t\t0.53678,\n\t\t\t0.048392,\n\t\t\t0.745098,\n\t\t\t0.975677,\n\t\t\t0.543798,\n\t\t\t0.043618,\n\t\t\t0.74902,\n\t\t\t0.977092,\n\t\t\t0.55085,\n\t\t\t0.03905,\n\t\t\t0.752941,\n\t\t\t0.978422,\n\t\t\t0.557937,\n\t\t\t0.034931,\n\t\t\t0.756863,\n\t\t\t0.979666,\n\t\t\t0.565057,\n\t\t\t0.031409,\n\t\t\t0.760784,\n\t\t\t0.980824,\n\t\t\t0.572209,\n\t\t\t0.028508,\n\t\t\t0.764706,\n\t\t\t0.981895,\n\t\t\t0.579392,\n\t\t\t0.02625,\n\t\t\t0.768627,\n\t\t\t0.982881,\n\t\t\t0.586606,\n\t\t\t0.024661,\n\t\t\t0.772549,\n\t\t\t0.983779,\n\t\t\t0.593849,\n\t\t\t0.02377,\n\t\t\t0.776471,\n\t\t\t0.984591,\n\t\t\t0.601122,\n\t\t\t0.023606,\n\t\t\t0.780392,\n\t\t\t0.985315,\n\t\t\t0.608422,\n\t\t\t0.024202,\n\t\t\t0.784314,\n\t\t\t0.985952,\n\t\t\t0.61575,\n\t\t\t0.025592,\n\t\t\t0.788235,\n\t\t\t0.986502,\n\t\t\t0.623105,\n\t\t\t0.027814,\n\t\t\t0.792157,\n\t\t\t0.986964,\n\t\t\t0.630485,\n\t\t\t0.030908,\n\t\t\t0.796078,\n\t\t\t0.987337,\n\t\t\t0.63789,\n\t\t\t0.034916,\n\t\t\t0.8,\n\t\t\t0.987622,\n\t\t\t0.64532,\n\t\t\t0.039886,\n\t\t\t0.803922,\n\t\t\t0.987819,\n\t\t\t0.652773,\n\t\t\t0.045581,\n\t\t\t0.807843,\n\t\t\t0.987926,\n\t\t\t0.66025,\n\t\t\t0.05175,\n\t\t\t0.811765,\n\t\t\t0.987945,\n\t\t\t0.667748,\n\t\t\t0.058329,\n\t\t\t0.815686,\n\t\t\t0.987874,\n\t\t\t0.675267,\n\t\t\t0.065257,\n\t\t\t0.819608,\n\t\t\t0.987714,\n\t\t\t0.682807,\n\t\t\t0.072489,\n\t\t\t0.823529,\n\t\t\t0.987464,\n\t\t\t0.690366,\n\t\t\t0.07999,\n\t\t\t0.827451,\n\t\t\t0.987124,\n\t\t\t0.697944,\n\t\t\t0.087731,\n\t\t\t0.831373,\n\t\t\t0.986694,\n\t\t\t0.70554,\n\t\t\t0.095694,\n\t\t\t0.835294,\n\t\t\t0.986175,\n\t\t\t0.713153,\n\t\t\t0.103863,\n\t\t\t0.839216,\n\t\t\t0.985566,\n\t\t\t0.720782,\n\t\t\t0.112229,\n\t\t\t0.843137,\n\t\t\t0.984865,\n\t\t\t0.728427,\n\t\t\t0.120785,\n\t\t\t0.847059,\n\t\t\t0.984075,\n\t\t\t0.736087,\n\t\t\t0.129527,\n\t\t\t0.85098,\n\t\t\t0.983196,\n\t\t\t0.743758,\n\t\t\t0.138453,\n\t\t\t0.854902,\n\t\t\t0.982228,\n\t\t\t0.751442,\n\t\t\t0.147565,\n\t\t\t0.858824,\n\t\t\t0.981173,\n\t\t\t0.759135,\n\t\t\t0.156863,\n\t\t\t0.862745,\n\t\t\t0.980032,\n\t\t\t0.766837,\n\t\t\t0.166353,\n\t\t\t0.866667,\n\t\t\t0.978806,\n\t\t\t0.774545,\n\t\t\t0.176037,\n\t\t\t0.870588,\n\t\t\t0.977497,\n\t\t\t0.782258,\n\t\t\t0.185923,\n\t\t\t0.87451,\n\t\t\t0.976108,\n\t\t\t0.789974,\n\t\t\t0.196018,\n\t\t\t0.878431,\n\t\t\t0.974638,\n\t\t\t0.797692,\n\t\t\t0.206332,\n\t\t\t0.882353,\n\t\t\t0.973088,\n\t\t\t0.805409,\n\t\t\t0.216877,\n\t\t\t0.886275,\n\t\t\t0.971468,\n\t\t\t0.813122,\n\t\t\t0.227658,\n\t\t\t0.890196,\n\t\t\t0.969783,\n\t\t\t0.820825,\n\t\t\t0.238686,\n\t\t\t0.894118,\n\t\t\t0.968041,\n\t\t\t0.828515,\n\t\t\t0.249972,\n\t\t\t0.898039,\n\t\t\t0.966243,\n\t\t\t0.836191,\n\t\t\t0.261534,\n\t\t\t0.901961,\n\t\t\t0.964394,\n\t\t\t0.843848,\n\t\t\t0.273391,\n\t\t\t0.905882,\n\t\t\t0.962517,\n\t\t\t0.851476,\n\t\t\t0.285546,\n\t\t\t0.909804,\n\t\t\t0.960626,\n\t\t\t0.859069,\n\t\t\t0.29801,\n\t\t\t0.913725,\n\t\t\t0.95872,\n\t\t\t0.866624,\n\t\t\t0.31082,\n\t\t\t0.917647,\n\t\t\t0.956834,\n\t\t\t0.874129,\n\t\t\t0.323974,\n\t\t\t0.921569,\n\t\t\t0.954997,\n\t\t\t0.881569,\n\t\t\t0.337475,\n\t\t\t0.92549,\n\t\t\t0.953215,\n\t\t\t0.888942,\n\t\t\t0.351369,\n\t\t\t0.929412,\n\t\t\t0.951546,\n\t\t\t0.896226,\n\t\t\t0.365627,\n\t\t\t0.933333,\n\t\t\t0.950018,\n\t\t\t0.903409,\n\t\t\t0.380271,\n\t\t\t0.937255,\n\t\t\t0.948683,\n\t\t\t0.910473,\n\t\t\t0.395289,\n\t\t\t0.941176,\n\t\t\t0.947594,\n\t\t\t0.917399,\n\t\t\t0.410665,\n\t\t\t0.945098,\n\t\t\t0.946809,\n\t\t\t0.924168,\n\t\t\t0.426373,\n\t\t\t0.94902,\n\t\t\t0.946392,\n\t\t\t0.930761,\n\t\t\t0.442367,\n\t\t\t0.952941,\n\t\t\t0.946403,\n\t\t\t0.937159,\n\t\t\t0.458592,\n\t\t\t0.956863,\n\t\t\t0.946903,\n\t\t\t0.943348,\n\t\t\t0.47497,\n\t\t\t0.960784,\n\t\t\t0.947937,\n\t\t\t0.949318,\n\t\t\t0.491426,\n\t\t\t0.964706,\n\t\t\t0.949545,\n\t\t\t0.955063,\n\t\t\t0.50786,\n\t\t\t0.968627,\n\t\t\t0.95174,\n\t\t\t0.960587,\n\t\t\t0.524203,\n\t\t\t0.972549,\n\t\t\t0.954529,\n\t\t\t0.965896,\n\t\t\t0.540361,\n\t\t\t0.976471,\n\t\t\t0.957896,\n\t\t\t0.971003,\n\t\t\t0.556275,\n\t\t\t0.980392,\n\t\t\t0.961812,\n\t\t\t0.975924,\n\t\t\t0.571925,\n\t\t\t0.984314,\n\t\t\t0.966249,\n\t\t\t0.980678,\n\t\t\t0.587206,\n\t\t\t0.988235,\n\t\t\t0.971162,\n\t\t\t0.985282,\n\t\t\t0.602154,\n\t\t\t0.992157,\n\t\t\t0.976511,\n\t\t\t0.989753,\n\t\t\t0.61676,\n\t\t\t0.996078,\n\t\t\t0.982257,\n\t\t\t0.994109,\n\t\t\t0.631017,\n\t\t\t1,\n\t\t\t0.988362,\n\t\t\t0.998364,\n\t\t\t0.644924\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Diverging\",\n\t\tName: \"Plasma (matplotlib)\",\n\t\tNanColor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t0\n\t\t],\n\t\tSource: \"https://github.com/BIDS/colormap/blob/master/colormaps.py\",\n\t\tLicense: \"CC0\",\n\t\tCreator: \"Nathaniel J. Smith & Stefan van der Walt\",\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.050383,\n\t\t\t0.029803,\n\t\t\t0.527975,\n\t\t\t0.003922,\n\t\t\t0.063536,\n\t\t\t0.028426,\n\t\t\t0.533124,\n\t\t\t0.007843,\n\t\t\t0.075353,\n\t\t\t0.027206,\n\t\t\t0.538007,\n\t\t\t0.011765,\n\t\t\t0.086222,\n\t\t\t0.026125,\n\t\t\t0.542658,\n\t\t\t0.015686,\n\t\t\t0.096379,\n\t\t\t0.025165,\n\t\t\t0.547103,\n\t\t\t0.019608,\n\t\t\t0.10598,\n\t\t\t0.024309,\n\t\t\t0.551368,\n\t\t\t0.023529,\n\t\t\t0.115124,\n\t\t\t0.023556,\n\t\t\t0.555468,\n\t\t\t0.027451,\n\t\t\t0.123903,\n\t\t\t0.022878,\n\t\t\t0.559423,\n\t\t\t0.031373,\n\t\t\t0.132381,\n\t\t\t0.022258,\n\t\t\t0.56325,\n\t\t\t0.035294,\n\t\t\t0.140603,\n\t\t\t0.021687,\n\t\t\t0.566959,\n\t\t\t0.039216,\n\t\t\t0.148607,\n\t\t\t0.021154,\n\t\t\t0.570562,\n\t\t\t0.043137,\n\t\t\t0.156421,\n\t\t\t0.020651,\n\t\t\t0.574065,\n\t\t\t0.047059,\n\t\t\t0.16407,\n\t\t\t0.020171,\n\t\t\t0.577478,\n\t\t\t0.05098,\n\t\t\t0.171574,\n\t\t\t0.019706,\n\t\t\t0.580806,\n\t\t\t0.054902,\n\t\t\t0.17895,\n\t\t\t0.019252,\n\t\t\t0.584054,\n\t\t\t0.058824,\n\t\t\t0.186213,\n\t\t\t0.018803,\n\t\t\t0.587228,\n\t\t\t0.062745,\n\t\t\t0.193374,\n\t\t\t0.018354,\n\t\t\t0.59033,\n\t\t\t0.066667,\n\t\t\t0.200445,\n\t\t\t0.017902,\n\t\t\t0.593364,\n\t\t\t0.070588,\n\t\t\t0.207435,\n\t\t\t0.017442,\n\t\t\t0.596333,\n\t\t\t0.07451,\n\t\t\t0.21435,\n\t\t\t0.016973,\n\t\t\t0.599239,\n\t\t\t0.078431,\n\t\t\t0.221197,\n\t\t\t0.016497,\n\t\t\t0.602083,\n\t\t\t0.082353,\n\t\t\t0.227983,\n\t\t\t0.016007,\n\t\t\t0.604867,\n\t\t\t0.086275,\n\t\t\t0.234715,\n\t\t\t0.015502,\n\t\t\t0.607592,\n\t\t\t0.090196,\n\t\t\t0.241396,\n\t\t\t0.014979,\n\t\t\t0.610259,\n\t\t\t0.094118,\n\t\t\t0.248032,\n\t\t\t0.014439,\n\t\t\t0.612868,\n\t\t\t0.098039,\n\t\t\t0.254627,\n\t\t\t0.013882,\n\t\t\t0.615419,\n\t\t\t0.101961,\n\t\t\t0.261183,\n\t\t\t0.013308,\n\t\t\t0.617911,\n\t\t\t0.105882,\n\t\t\t0.267703,\n\t\t\t0.012716,\n\t\t\t0.620346,\n\t\t\t0.109804,\n\t\t\t0.274191,\n\t\t\t0.012109,\n\t\t\t0.622722,\n\t\t\t0.113725,\n\t\t\t0.280648,\n\t\t\t0.011488,\n\t\t\t0.625038,\n\t\t\t0.117647,\n\t\t\t0.287076,\n\t\t\t0.010855,\n\t\t\t0.627295,\n\t\t\t0.121569,\n\t\t\t0.293478,\n\t\t\t0.010213,\n\t\t\t0.62949,\n\t\t\t0.12549,\n\t\t\t0.299855,\n\t\t\t0.009561,\n\t\t\t0.631624,\n\t\t\t0.129412,\n\t\t\t0.30621,\n\t\t\t0.008902,\n\t\t\t0.633694,\n\t\t\t0.133333,\n\t\t\t0.312543,\n\t\t\t0.008239,\n\t\t\t0.6357,\n\t\t\t0.137255,\n\t\t\t0.318856,\n\t\t\t0.007576,\n\t\t\t0.63764,\n\t\t\t0.141176,\n\t\t\t0.32515,\n\t\t\t0.006915,\n\t\t\t0.639512,\n\t\t\t0.145098,\n\t\t\t0.331426,\n\t\t\t0.006261,\n\t\t\t0.641316,\n\t\t\t0.14902,\n\t\t\t0.337683,\n\t\t\t0.005618,\n\t\t\t0.643049,\n\t\t\t0.152941,\n\t\t\t0.343925,\n\t\t\t0.004991,\n\t\t\t0.64471,\n\t\t\t0.156863,\n\t\t\t0.35015,\n\t\t\t0.004382,\n\t\t\t0.646298,\n\t\t\t0.160784,\n\t\t\t0.356359,\n\t\t\t0.003798,\n\t\t\t0.64781,\n\t\t\t0.164706,\n\t\t\t0.362553,\n\t\t\t0.003243,\n\t\t\t0.649245,\n\t\t\t0.168627,\n\t\t\t0.368733,\n\t\t\t0.002724,\n\t\t\t0.650601,\n\t\t\t0.172549,\n\t\t\t0.374897,\n\t\t\t0.002245,\n\t\t\t0.651876,\n\t\t\t0.176471,\n\t\t\t0.381047,\n\t\t\t0.001814,\n\t\t\t0.653068,\n\t\t\t0.180392,\n\t\t\t0.387183,\n\t\t\t0.001434,\n\t\t\t0.654177,\n\t\t\t0.184314,\n\t\t\t0.393304,\n\t\t\t0.001114,\n\t\t\t0.655199,\n\t\t\t0.188235,\n\t\t\t0.399411,\n\t\t\t0.000859,\n\t\t\t0.656133,\n\t\t\t0.192157,\n\t\t\t0.405503,\n\t\t\t0.000678,\n\t\t\t0.656977,\n\t\t\t0.196078,\n\t\t\t0.41158,\n\t\t\t0.000577,\n\t\t\t0.65773,\n\t\t\t0.2,\n\t\t\t0.417642,\n\t\t\t0.000564,\n\t\t\t0.65839,\n\t\t\t0.203922,\n\t\t\t0.423689,\n\t\t\t0.000646,\n\t\t\t0.658956,\n\t\t\t0.207843,\n\t\t\t0.429719,\n\t\t\t0.000831,\n\t\t\t0.659425,\n\t\t\t0.211765,\n\t\t\t0.435734,\n\t\t\t0.001127,\n\t\t\t0.659797,\n\t\t\t0.215686,\n\t\t\t0.441732,\n\t\t\t0.00154,\n\t\t\t0.660069,\n\t\t\t0.219608,\n\t\t\t0.447714,\n\t\t\t0.00208,\n\t\t\t0.66024,\n\t\t\t0.223529,\n\t\t\t0.453677,\n\t\t\t0.002755,\n\t\t\t0.66031,\n\t\t\t0.227451,\n\t\t\t0.459623,\n\t\t\t0.003574,\n\t\t\t0.660277,\n\t\t\t0.231373,\n\t\t\t0.46555,\n\t\t\t0.004545,\n\t\t\t0.660139,\n\t\t\t0.235294,\n\t\t\t0.471457,\n\t\t\t0.005678,\n\t\t\t0.659897,\n\t\t\t0.239216,\n\t\t\t0.477344,\n\t\t\t0.00698,\n\t\t\t0.659549,\n\t\t\t0.243137,\n\t\t\t0.48321,\n\t\t\t0.00846,\n\t\t\t0.659095,\n\t\t\t0.247059,\n\t\t\t0.489055,\n\t\t\t0.010127,\n\t\t\t0.658534,\n\t\t\t0.25098,\n\t\t\t0.494877,\n\t\t\t0.01199,\n\t\t\t0.657865,\n\t\t\t0.254902,\n\t\t\t0.500678,\n\t\t\t0.014055,\n\t\t\t0.657088,\n\t\t\t0.258824,\n\t\t\t0.506454,\n\t\t\t0.016333,\n\t\t\t0.656202,\n\t\t\t0.262745,\n\t\t\t0.512206,\n\t\t\t0.018833,\n\t\t\t0.655209,\n\t\t\t0.266667,\n\t\t\t0.517933,\n\t\t\t0.021563,\n\t\t\t0.654109,\n\t\t\t0.270588,\n\t\t\t0.523633,\n\t\t\t0.024532,\n\t\t\t0.652901,\n\t\t\t0.27451,\n\t\t\t0.529306,\n\t\t\t0.027747,\n\t\t\t0.651586,\n\t\t\t0.278431,\n\t\t\t0.534952,\n\t\t\t0.031217,\n\t\t\t0.650165,\n\t\t\t0.282353,\n\t\t\t0.54057,\n\t\t\t0.03495,\n\t\t\t0.64864,\n\t\t\t0.286275,\n\t\t\t0.546157,\n\t\t\t0.038954,\n\t\t\t0.64701,\n\t\t\t0.290196,\n\t\t\t0.551715,\n\t\t\t0.043136,\n\t\t\t0.645277,\n\t\t\t0.294118,\n\t\t\t0.557243,\n\t\t\t0.047331,\n\t\t\t0.643443,\n\t\t\t0.298039,\n\t\t\t0.562738,\n\t\t\t0.051545,\n\t\t\t0.641509,\n\t\t\t0.301961,\n\t\t\t0.568201,\n\t\t\t0.055778,\n\t\t\t0.639477,\n\t\t\t0.305882,\n\t\t\t0.573632,\n\t\t\t0.060028,\n\t\t\t0.637349,\n\t\t\t0.309804,\n\t\t\t0.579029,\n\t\t\t0.064296,\n\t\t\t0.635126,\n\t\t\t0.313725,\n\t\t\t0.584391,\n\t\t\t0.068579,\n\t\t\t0.632812,\n\t\t\t0.317647,\n\t\t\t0.589719,\n\t\t\t0.072878,\n\t\t\t0.630408,\n\t\t\t0.321569,\n\t\t\t0.595011,\n\t\t\t0.07719,\n\t\t\t0.627917,\n\t\t\t0.32549,\n\t\t\t0.600266,\n\t\t\t0.081516,\n\t\t\t0.625342,\n\t\t\t0.329412,\n\t\t\t0.605485,\n\t\t\t0.085854,\n\t\t\t0.622686,\n\t\t\t0.333333,\n\t\t\t0.610667,\n\t\t\t0.090204,\n\t\t\t0.619951,\n\t\t\t0.337255,\n\t\t\t0.615812,\n\t\t\t0.094564,\n\t\t\t0.61714,\n\t\t\t0.341176,\n\t\t\t0.620919,\n\t\t\t0.098934,\n\t\t\t0.614257,\n\t\t\t0.345098,\n\t\t\t0.625987,\n\t\t\t0.103312,\n\t\t\t0.611305,\n\t\t\t0.34902,\n\t\t\t0.631017,\n\t\t\t0.107699,\n\t\t\t0.608287,\n\t\t\t0.352941,\n\t\t\t0.636008,\n\t\t\t0.112092,\n\t\t\t0.605205,\n\t\t\t0.356863,\n\t\t\t0.640959,\n\t\t\t0.116492,\n\t\t\t0.602065,\n\t\t\t0.360784,\n\t\t\t0.645872,\n\t\t\t0.120898,\n\t\t\t0.598867,\n\t\t\t0.364706,\n\t\t\t0.650746,\n\t\t\t0.125309,\n\t\t\t0.595617,\n\t\t\t0.368627,\n\t\t\t0.65558,\n\t\t\t0.129725,\n\t\t\t0.592317,\n\t\t\t0.372549,\n\t\t\t0.660374,\n\t\t\t0.134144,\n\t\t\t0.588971,\n\t\t\t0.376471,\n\t\t\t0.665129,\n\t\t\t0.138566,\n\t\t\t0.585582,\n\t\t\t0.380392,\n\t\t\t0.669845,\n\t\t\t0.142992,\n\t\t\t0.582154,\n\t\t\t0.384314,\n\t\t\t0.674522,\n\t\t\t0.147419,\n\t\t\t0.578688,\n\t\t\t0.388235,\n\t\t\t0.67916,\n\t\t\t0.151848,\n\t\t\t0.575189,\n\t\t\t0.392157,\n\t\t\t0.683758,\n\t\t\t0.156278,\n\t\t\t0.57166,\n\t\t\t0.396078,\n\t\t\t0.688318,\n\t\t\t0.160709,\n\t\t\t0.568103,\n\t\t\t0.4,\n\t\t\t0.69284,\n\t\t\t0.165141,\n\t\t\t0.564522,\n\t\t\t0.403922,\n\t\t\t0.697324,\n\t\t\t0.169573,\n\t\t\t0.560919,\n\t\t\t0.407843,\n\t\t\t0.701769,\n\t\t\t0.174005,\n\t\t\t0.557296,\n\t\t\t0.411765,\n\t\t\t0.706178,\n\t\t\t0.178437,\n\t\t\t0.553657,\n\t\t\t0.415686,\n\t\t\t0.710549,\n\t\t\t0.182868,\n\t\t\t0.550004,\n\t\t\t0.419608,\n\t\t\t0.714883,\n\t\t\t0.187299,\n\t\t\t0.546338,\n\t\t\t0.423529,\n\t\t\t0.719181,\n\t\t\t0.191729,\n\t\t\t0.542663,\n\t\t\t0.427451,\n\t\t\t0.723444,\n\t\t\t0.196158,\n\t\t\t0.538981,\n\t\t\t0.431373,\n\t\t\t0.72767,\n\t\t\t0.200586,\n\t\t\t0.535293,\n\t\t\t0.435294,\n\t\t\t0.731862,\n\t\t\t0.205013,\n\t\t\t0.531601,\n\t\t\t0.439216,\n\t\t\t0.736019,\n\t\t\t0.209439,\n\t\t\t0.527908,\n\t\t\t0.443137,\n\t\t\t0.740143,\n\t\t\t0.213864,\n\t\t\t0.524216,\n\t\t\t0.447059,\n\t\t\t0.744232,\n\t\t\t0.218288,\n\t\t\t0.520524,\n\t\t\t0.45098,\n\t\t\t0.748289,\n\t\t\t0.222711,\n\t\t\t0.516834,\n\t\t\t0.454902,\n\t\t\t0.752312,\n\t\t\t0.227133,\n\t\t\t0.513149,\n\t\t\t0.458824,\n\t\t\t0.756304,\n\t\t\t0.231555,\n\t\t\t0.509468,\n\t\t\t0.462745,\n\t\t\t0.760264,\n\t\t\t0.235976,\n\t\t\t0.505794,\n\t\t\t0.466667,\n\t\t\t0.764193,\n\t\t\t0.240396,\n\t\t\t0.502126,\n\t\t\t0.470588,\n\t\t\t0.76809,\n\t\t\t0.244817,\n\t\t\t0.498465,\n\t\t\t0.47451,\n\t\t\t0.771958,\n\t\t\t0.249237,\n\t\t\t0.494813,\n\t\t\t0.478431,\n\t\t\t0.775796,\n\t\t\t0.253658,\n\t\t\t0.491171,\n\t\t\t0.482353,\n\t\t\t0.779604,\n\t\t\t0.258078,\n\t\t\t0.487539,\n\t\t\t0.486275,\n\t\t\t0.783383,\n\t\t\t0.2625,\n\t\t\t0.483918,\n\t\t\t0.490196,\n\t\t\t0.787133,\n\t\t\t0.266922,\n\t\t\t0.480307,\n\t\t\t0.494118,\n\t\t\t0.790855,\n\t\t\t0.271345,\n\t\t\t0.476706,\n\t\t\t0.498039,\n\t\t\t0.794549,\n\t\t\t0.27577,\n\t\t\t0.473117,\n\t\t\t0.501961,\n\t\t\t0.798216,\n\t\t\t0.280197,\n\t\t\t0.469538,\n\t\t\t0.505882,\n\t\t\t0.801855,\n\t\t\t0.284626,\n\t\t\t0.465971,\n\t\t\t0.509804,\n\t\t\t0.805467,\n\t\t\t0.289057,\n\t\t\t0.462415,\n\t\t\t0.513725,\n\t\t\t0.809052,\n\t\t\t0.293491,\n\t\t\t0.45887,\n\t\t\t0.517647,\n\t\t\t0.812612,\n\t\t\t0.297928,\n\t\t\t0.455338,\n\t\t\t0.521569,\n\t\t\t0.816144,\n\t\t\t0.302368,\n\t\t\t0.451816,\n\t\t\t0.52549,\n\t\t\t0.819651,\n\t\t\t0.306812,\n\t\t\t0.448306,\n\t\t\t0.529412,\n\t\t\t0.823132,\n\t\t\t0.311261,\n\t\t\t0.444806,\n\t\t\t0.533333,\n\t\t\t0.826588,\n\t\t\t0.315714,\n\t\t\t0.441316,\n\t\t\t0.537255,\n\t\t\t0.830018,\n\t\t\t0.320172,\n\t\t\t0.437836,\n\t\t\t0.541176,\n\t\t\t0.833422,\n\t\t\t0.324635,\n\t\t\t0.434366,\n\t\t\t0.545098,\n\t\t\t0.836801,\n\t\t\t0.329105,\n\t\t\t0.430905,\n\t\t\t0.54902,\n\t\t\t0.840155,\n\t\t\t0.33358,\n\t\t\t0.427455,\n\t\t\t0.552941,\n\t\t\t0.843484,\n\t\t\t0.338062,\n\t\t\t0.424013,\n\t\t\t0.556863,\n\t\t\t0.846788,\n\t\t\t0.342551,\n\t\t\t0.420579,\n\t\t\t0.560784,\n\t\t\t0.850066,\n\t\t\t0.347048,\n\t\t\t0.417153,\n\t\t\t0.564706,\n\t\t\t0.853319,\n\t\t\t0.351553,\n\t\t\t0.413734,\n\t\t\t0.568627,\n\t\t\t0.856547,\n\t\t\t0.356066,\n\t\t\t0.410322,\n\t\t\t0.572549,\n\t\t\t0.85975,\n\t\t\t0.360588,\n\t\t\t0.406917,\n\t\t\t0.576471,\n\t\t\t0.862927,\n\t\t\t0.365119,\n\t\t\t0.403519,\n\t\t\t0.580392,\n\t\t\t0.866078,\n\t\t\t0.36966,\n\t\t\t0.400126,\n\t\t\t0.584314,\n\t\t\t0.869203,\n\t\t\t0.374212,\n\t\t\t0.396738,\n\t\t\t0.588235,\n\t\t\t0.872303,\n\t\t\t0.378774,\n\t\t\t0.393355,\n\t\t\t0.592157,\n\t\t\t0.875376,\n\t\t\t0.383347,\n\t\t\t0.389976,\n\t\t\t0.596078,\n\t\t\t0.878423,\n\t\t\t0.387932,\n\t\t\t0.3866,\n\t\t\t0.6,\n\t\t\t0.881443,\n\t\t\t0.392529,\n\t\t\t0.383229,\n\t\t\t0.603922,\n\t\t\t0.884436,\n\t\t\t0.397139,\n\t\t\t0.37986,\n\t\t\t0.607843,\n\t\t\t0.887402,\n\t\t\t0.401762,\n\t\t\t0.376494,\n\t\t\t0.611765,\n\t\t\t0.89034,\n\t\t\t0.406398,\n\t\t\t0.37313,\n\t\t\t0.615686,\n\t\t\t0.89325,\n\t\t\t0.411048,\n\t\t\t0.369768,\n\t\t\t0.619608,\n\t\t\t0.896131,\n\t\t\t0.415712,\n\t\t\t0.366407,\n\t\t\t0.623529,\n\t\t\t0.898984,\n\t\t\t0.420392,\n\t\t\t0.363047,\n\t\t\t0.627451,\n\t\t\t0.901807,\n\t\t\t0.425087,\n\t\t\t0.359688,\n\t\t\t0.631373,\n\t\t\t0.904601,\n\t\t\t0.429797,\n\t\t\t0.356329,\n\t\t\t0.635294,\n\t\t\t0.907365,\n\t\t\t0.434524,\n\t\t\t0.35297,\n\t\t\t0.639216,\n\t\t\t0.910098,\n\t\t\t0.439268,\n\t\t\t0.34961,\n\t\t\t0.643137,\n\t\t\t0.9128,\n\t\t\t0.444029,\n\t\t\t0.346251,\n\t\t\t0.647059,\n\t\t\t0.915471,\n\t\t\t0.448807,\n\t\t\t0.34289,\n\t\t\t0.65098,\n\t\t\t0.918109,\n\t\t\t0.453603,\n\t\t\t0.339529,\n\t\t\t0.654902,\n\t\t\t0.920714,\n\t\t\t0.458417,\n\t\t\t0.336166,\n\t\t\t0.658824,\n\t\t\t0.923287,\n\t\t\t0.463251,\n\t\t\t0.332801,\n\t\t\t0.662745,\n\t\t\t0.925825,\n\t\t\t0.468103,\n\t\t\t0.329435,\n\t\t\t0.666667,\n\t\t\t0.928329,\n\t\t\t0.472975,\n\t\t\t0.326067,\n\t\t\t0.670588,\n\t\t\t0.930798,\n\t\t\t0.477867,\n\t\t\t0.322697,\n\t\t\t0.67451,\n\t\t\t0.933232,\n\t\t\t0.48278,\n\t\t\t0.319325,\n\t\t\t0.678431,\n\t\t\t0.93563,\n\t\t\t0.487712,\n\t\t\t0.315952,\n\t\t\t0.682353,\n\t\t\t0.93799,\n\t\t\t0.492667,\n\t\t\t0.312575,\n\t\t\t0.686275,\n\t\t\t0.940313,\n\t\t\t0.497642,\n\t\t\t0.309197,\n\t\t\t0.690196,\n\t\t\t0.942598,\n\t\t\t0.502639,\n\t\t\t0.305816,\n\t\t\t0.694118,\n\t\t\t0.944844,\n\t\t\t0.507658,\n\t\t\t0.302433,\n\t\t\t0.698039,\n\t\t\t0.947051,\n\t\t\t0.512699,\n\t\t\t0.299049,\n\t\t\t0.701961,\n\t\t\t0.949217,\n\t\t\t0.517763,\n\t\t\t0.295662,\n\t\t\t0.705882,\n\t\t\t0.951344,\n\t\t\t0.52285,\n\t\t\t0.292275,\n\t\t\t0.709804,\n\t\t\t0.953428,\n\t\t\t0.52796,\n\t\t\t0.288883,\n\t\t\t0.713725,\n\t\t\t0.95547,\n\t\t\t0.533093,\n\t\t\t0.28549,\n\t\t\t0.717647,\n\t\t\t0.957469,\n\t\t\t0.53825,\n\t\t\t0.282096,\n\t\t\t0.721569,\n\t\t\t0.959424,\n\t\t\t0.543431,\n\t\t\t0.278701,\n\t\t\t0.72549,\n\t\t\t0.961336,\n\t\t\t0.548636,\n\t\t\t0.275305,\n\t\t\t0.729412,\n\t\t\t0.963203,\n\t\t\t0.553865,\n\t\t\t0.271909,\n\t\t\t0.733333,\n\t\t\t0.965024,\n\t\t\t0.559118,\n\t\t\t0.268513,\n\t\t\t0.737255,\n\t\t\t0.966798,\n\t\t\t0.564396,\n\t\t\t0.265118,\n\t\t\t0.741176,\n\t\t\t0.968526,\n\t\t\t0.5697,\n\t\t\t0.261721,\n\t\t\t0.745098,\n\t\t\t0.970205,\n\t\t\t0.575028,\n\t\t\t0.258325,\n\t\t\t0.74902,\n\t\t\t0.971835,\n\t\t\t0.580382,\n\t\t\t0.254931,\n\t\t\t0.752941,\n\t\t\t0.973416,\n\t\t\t0.585761,\n\t\t\t0.25154,\n\t\t\t0.756863,\n\t\t\t0.974947,\n\t\t\t0.591165,\n\t\t\t0.248151,\n\t\t\t0.760784,\n\t\t\t0.976428,\n\t\t\t0.596595,\n\t\t\t0.244767,\n\t\t\t0.764706,\n\t\t\t0.977856,\n\t\t\t0.602051,\n\t\t\t0.241387,\n\t\t\t0.768627,\n\t\t\t0.979233,\n\t\t\t0.607532,\n\t\t\t0.238013,\n\t\t\t0.772549,\n\t\t\t0.980556,\n\t\t\t0.613039,\n\t\t\t0.234646,\n\t\t\t0.776471,\n\t\t\t0.981826,\n\t\t\t0.618572,\n\t\t\t0.231287,\n\t\t\t0.780392,\n\t\t\t0.983041,\n\t\t\t0.624131,\n\t\t\t0.227937,\n\t\t\t0.784314,\n\t\t\t0.984199,\n\t\t\t0.629718,\n\t\t\t0.224595,\n\t\t\t0.788235,\n\t\t\t0.985301,\n\t\t\t0.63533,\n\t\t\t0.221265,\n\t\t\t0.792157,\n\t\t\t0.986345,\n\t\t\t0.640969,\n\t\t\t0.217948,\n\t\t\t0.796078,\n\t\t\t0.987332,\n\t\t\t0.646633,\n\t\t\t0.214648,\n\t\t\t0.8,\n\t\t\t0.98826,\n\t\t\t0.652325,\n\t\t\t0.211364,\n\t\t\t0.803922,\n\t\t\t0.989128,\n\t\t\t0.658043,\n\t\t\t0.2081,\n\t\t\t0.807843,\n\t\t\t0.989935,\n\t\t\t0.663787,\n\t\t\t0.204859,\n\t\t\t0.811765,\n\t\t\t0.990681,\n\t\t\t0.669558,\n\t\t\t0.201642,\n\t\t\t0.815686,\n\t\t\t0.991365,\n\t\t\t0.675355,\n\t\t\t0.198453,\n\t\t\t0.819608,\n\t\t\t0.991985,\n\t\t\t0.681179,\n\t\t\t0.195295,\n\t\t\t0.823529,\n\t\t\t0.992541,\n\t\t\t0.68703,\n\t\t\t0.19217,\n\t\t\t0.827451,\n\t\t\t0.993032,\n\t\t\t0.692907,\n\t\t\t0.189084,\n\t\t\t0.831373,\n\t\t\t0.993456,\n\t\t\t0.69881,\n\t\t\t0.186041,\n\t\t\t0.835294,\n\t\t\t0.993814,\n\t\t\t0.704741,\n\t\t\t0.183043,\n\t\t\t0.839216,\n\t\t\t0.994103,\n\t\t\t0.710698,\n\t\t\t0.180097,\n\t\t\t0.843137,\n\t\t\t0.994324,\n\t\t\t0.716681,\n\t\t\t0.177208,\n\t\t\t0.847059,\n\t\t\t0.994474,\n\t\t\t0.722691,\n\t\t\t0.174381,\n\t\t\t0.85098,\n\t\t\t0.994553,\n\t\t\t0.728728,\n\t\t\t0.171622,\n\t\t\t0.854902,\n\t\t\t0.994561,\n\t\t\t0.734791,\n\t\t\t0.168938,\n\t\t\t0.858824,\n\t\t\t0.994495,\n\t\t\t0.74088,\n\t\t\t0.166335,\n\t\t\t0.862745,\n\t\t\t0.994355,\n\t\t\t0.746995,\n\t\t\t0.163821,\n\t\t\t0.866667,\n\t\t\t0.994141,\n\t\t\t0.753137,\n\t\t\t0.161404,\n\t\t\t0.870588,\n\t\t\t0.993851,\n\t\t\t0.759304,\n\t\t\t0.159092,\n\t\t\t0.87451,\n\t\t\t0.993482,\n\t\t\t0.765499,\n\t\t\t0.156891,\n\t\t\t0.878431,\n\t\t\t0.993033,\n\t\t\t0.77172,\n\t\t\t0.154808,\n\t\t\t0.882353,\n\t\t\t0.992505,\n\t\t\t0.777967,\n\t\t\t0.152855,\n\t\t\t0.886275,\n\t\t\t0.991897,\n\t\t\t0.784239,\n\t\t\t0.151042,\n\t\t\t0.890196,\n\t\t\t0.991209,\n\t\t\t0.790537,\n\t\t\t0.149377,\n\t\t\t0.894118,\n\t\t\t0.990439,\n\t\t\t0.796859,\n\t\t\t0.14787,\n\t\t\t0.898039,\n\t\t\t0.989587,\n\t\t\t0.803205,\n\t\t\t0.146529,\n\t\t\t0.901961,\n\t\t\t0.988648,\n\t\t\t0.809579,\n\t\t\t0.145357,\n\t\t\t0.905882,\n\t\t\t0.987621,\n\t\t\t0.815978,\n\t\t\t0.144363,\n\t\t\t0.909804,\n\t\t\t0.986509,\n\t\t\t0.822401,\n\t\t\t0.143557,\n\t\t\t0.913725,\n\t\t\t0.985314,\n\t\t\t0.828846,\n\t\t\t0.142945,\n\t\t\t0.917647,\n\t\t\t0.984031,\n\t\t\t0.835315,\n\t\t\t0.142528,\n\t\t\t0.921569,\n\t\t\t0.982653,\n\t\t\t0.841812,\n\t\t\t0.142303,\n\t\t\t0.92549,\n\t\t\t0.98119,\n\t\t\t0.848329,\n\t\t\t0.142279,\n\t\t\t0.929412,\n\t\t\t0.979644,\n\t\t\t0.854866,\n\t\t\t0.142453,\n\t\t\t0.933333,\n\t\t\t0.977995,\n\t\t\t0.861432,\n\t\t\t0.142808,\n\t\t\t0.937255,\n\t\t\t0.976265,\n\t\t\t0.868016,\n\t\t\t0.143351,\n\t\t\t0.941176,\n\t\t\t0.974443,\n\t\t\t0.874622,\n\t\t\t0.144061,\n\t\t\t0.945098,\n\t\t\t0.97253,\n\t\t\t0.88125,\n\t\t\t0.144923,\n\t\t\t0.94902,\n\t\t\t0.970533,\n\t\t\t0.887896,\n\t\t\t0.145919,\n\t\t\t0.952941,\n\t\t\t0.968443,\n\t\t\t0.894564,\n\t\t\t0.147014,\n\t\t\t0.956863,\n\t\t\t0.966271,\n\t\t\t0.901249,\n\t\t\t0.14818,\n\t\t\t0.960784,\n\t\t\t0.964021,\n\t\t\t0.90795,\n\t\t\t0.14937,\n\t\t\t0.964706,\n\t\t\t0.961681,\n\t\t\t0.914672,\n\t\t\t0.15052,\n\t\t\t0.968627,\n\t\t\t0.959276,\n\t\t\t0.921407,\n\t\t\t0.151566,\n\t\t\t0.972549,\n\t\t\t0.956808,\n\t\t\t0.928152,\n\t\t\t0.152409,\n\t\t\t0.976471,\n\t\t\t0.954287,\n\t\t\t0.934908,\n\t\t\t0.152921,\n\t\t\t0.980392,\n\t\t\t0.951726,\n\t\t\t0.941671,\n\t\t\t0.152925,\n\t\t\t0.984314,\n\t\t\t0.949151,\n\t\t\t0.948435,\n\t\t\t0.152178,\n\t\t\t0.988235,\n\t\t\t0.946602,\n\t\t\t0.95519,\n\t\t\t0.150328,\n\t\t\t0.992157,\n\t\t\t0.944152,\n\t\t\t0.961916,\n\t\t\t0.146861,\n\t\t\t0.996078,\n\t\t\t0.941896,\n\t\t\t0.96859,\n\t\t\t0.140956,\n\t\t\t1,\n\t\t\t0.940015,\n\t\t\t0.975158,\n\t\t\t0.131326\n\t\t]\n\t},\n\t{\n\t\tColorSpace: \"Diverging\",\n\t\tName: \"Viridis (matplotlib)\",\n\t\tNanColor: [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\tSource: \"https://github.com/BIDS/colormap/blob/master/colormaps.py\",\n\t\tLicense: \"CC0\",\n\t\tCreator: \"Eric Firing\",\n\t\tRGBPoints: [\n\t\t\t0,\n\t\t\t0.267004,\n\t\t\t0.004874,\n\t\t\t0.329415,\n\t\t\t0.003922,\n\t\t\t0.26851,\n\t\t\t0.009605,\n\t\t\t0.335427,\n\t\t\t0.007843,\n\t\t\t0.269944,\n\t\t\t0.014625,\n\t\t\t0.341379,\n\t\t\t0.011765,\n\t\t\t0.271305,\n\t\t\t0.019942,\n\t\t\t0.347269,\n\t\t\t0.015686,\n\t\t\t0.272594,\n\t\t\t0.025563,\n\t\t\t0.353093,\n\t\t\t0.019608,\n\t\t\t0.273809,\n\t\t\t0.031497,\n\t\t\t0.358853,\n\t\t\t0.023529,\n\t\t\t0.274952,\n\t\t\t0.037752,\n\t\t\t0.364543,\n\t\t\t0.027451,\n\t\t\t0.276022,\n\t\t\t0.044167,\n\t\t\t0.370164,\n\t\t\t0.031373,\n\t\t\t0.277018,\n\t\t\t0.050344,\n\t\t\t0.375715,\n\t\t\t0.035294,\n\t\t\t0.277941,\n\t\t\t0.056324,\n\t\t\t0.381191,\n\t\t\t0.039216,\n\t\t\t0.278791,\n\t\t\t0.062145,\n\t\t\t0.386592,\n\t\t\t0.043137,\n\t\t\t0.279566,\n\t\t\t0.067836,\n\t\t\t0.391917,\n\t\t\t0.047059,\n\t\t\t0.280267,\n\t\t\t0.073417,\n\t\t\t0.397163,\n\t\t\t0.05098,\n\t\t\t0.280894,\n\t\t\t0.078907,\n\t\t\t0.402329,\n\t\t\t0.054902,\n\t\t\t0.281446,\n\t\t\t0.08432,\n\t\t\t0.407414,\n\t\t\t0.058824,\n\t\t\t0.281924,\n\t\t\t0.089666,\n\t\t\t0.412415,\n\t\t\t0.062745,\n\t\t\t0.282327,\n\t\t\t0.094955,\n\t\t\t0.417331,\n\t\t\t0.066667,\n\t\t\t0.282656,\n\t\t\t0.100196,\n\t\t\t0.42216,\n\t\t\t0.070588,\n\t\t\t0.28291,\n\t\t\t0.105393,\n\t\t\t0.426902,\n\t\t\t0.07451,\n\t\t\t0.283091,\n\t\t\t0.110553,\n\t\t\t0.431554,\n\t\t\t0.078431,\n\t\t\t0.283197,\n\t\t\t0.11568,\n\t\t\t0.436115,\n\t\t\t0.082353,\n\t\t\t0.283229,\n\t\t\t0.120777,\n\t\t\t0.440584,\n\t\t\t0.086275,\n\t\t\t0.283187,\n\t\t\t0.125848,\n\t\t\t0.44496,\n\t\t\t0.090196,\n\t\t\t0.283072,\n\t\t\t0.130895,\n\t\t\t0.449241,\n\t\t\t0.094118,\n\t\t\t0.282884,\n\t\t\t0.13592,\n\t\t\t0.453427,\n\t\t\t0.098039,\n\t\t\t0.282623,\n\t\t\t0.140926,\n\t\t\t0.457517,\n\t\t\t0.101961,\n\t\t\t0.28229,\n\t\t\t0.145912,\n\t\t\t0.46151,\n\t\t\t0.105882,\n\t\t\t0.281887,\n\t\t\t0.150881,\n\t\t\t0.465405,\n\t\t\t0.109804,\n\t\t\t0.281412,\n\t\t\t0.155834,\n\t\t\t0.469201,\n\t\t\t0.113725,\n\t\t\t0.280868,\n\t\t\t0.160771,\n\t\t\t0.472899,\n\t\t\t0.117647,\n\t\t\t0.280255,\n\t\t\t0.165693,\n\t\t\t0.476498,\n\t\t\t0.121569,\n\t\t\t0.279574,\n\t\t\t0.170599,\n\t\t\t0.479997,\n\t\t\t0.12549,\n\t\t\t0.278826,\n\t\t\t0.17549,\n\t\t\t0.483397,\n\t\t\t0.129412,\n\t\t\t0.278012,\n\t\t\t0.180367,\n\t\t\t0.486697,\n\t\t\t0.133333,\n\t\t\t0.277134,\n\t\t\t0.185228,\n\t\t\t0.489898,\n\t\t\t0.137255,\n\t\t\t0.276194,\n\t\t\t0.190074,\n\t\t\t0.493001,\n\t\t\t0.141176,\n\t\t\t0.275191,\n\t\t\t0.194905,\n\t\t\t0.496005,\n\t\t\t0.145098,\n\t\t\t0.274128,\n\t\t\t0.199721,\n\t\t\t0.498911,\n\t\t\t0.14902,\n\t\t\t0.273006,\n\t\t\t0.20452,\n\t\t\t0.501721,\n\t\t\t0.152941,\n\t\t\t0.271828,\n\t\t\t0.209303,\n\t\t\t0.504434,\n\t\t\t0.156863,\n\t\t\t0.270595,\n\t\t\t0.214069,\n\t\t\t0.507052,\n\t\t\t0.160784,\n\t\t\t0.269308,\n\t\t\t0.218818,\n\t\t\t0.509577,\n\t\t\t0.164706,\n\t\t\t0.267968,\n\t\t\t0.223549,\n\t\t\t0.512008,\n\t\t\t0.168627,\n\t\t\t0.26658,\n\t\t\t0.228262,\n\t\t\t0.514349,\n\t\t\t0.172549,\n\t\t\t0.265145,\n\t\t\t0.232956,\n\t\t\t0.516599,\n\t\t\t0.176471,\n\t\t\t0.263663,\n\t\t\t0.237631,\n\t\t\t0.518762,\n\t\t\t0.180392,\n\t\t\t0.262138,\n\t\t\t0.242286,\n\t\t\t0.520837,\n\t\t\t0.184314,\n\t\t\t0.260571,\n\t\t\t0.246922,\n\t\t\t0.522828,\n\t\t\t0.188235,\n\t\t\t0.258965,\n\t\t\t0.251537,\n\t\t\t0.524736,\n\t\t\t0.192157,\n\t\t\t0.257322,\n\t\t\t0.25613,\n\t\t\t0.526563,\n\t\t\t0.196078,\n\t\t\t0.255645,\n\t\t\t0.260703,\n\t\t\t0.528312,\n\t\t\t0.2,\n\t\t\t0.253935,\n\t\t\t0.265254,\n\t\t\t0.529983,\n\t\t\t0.203922,\n\t\t\t0.252194,\n\t\t\t0.269783,\n\t\t\t0.531579,\n\t\t\t0.207843,\n\t\t\t0.250425,\n\t\t\t0.27429,\n\t\t\t0.533103,\n\t\t\t0.211765,\n\t\t\t0.248629,\n\t\t\t0.278775,\n\t\t\t0.534556,\n\t\t\t0.215686,\n\t\t\t0.246811,\n\t\t\t0.283237,\n\t\t\t0.535941,\n\t\t\t0.219608,\n\t\t\t0.244972,\n\t\t\t0.287675,\n\t\t\t0.53726,\n\t\t\t0.223529,\n\t\t\t0.243113,\n\t\t\t0.292092,\n\t\t\t0.538516,\n\t\t\t0.227451,\n\t\t\t0.241237,\n\t\t\t0.296485,\n\t\t\t0.539709,\n\t\t\t0.231373,\n\t\t\t0.239346,\n\t\t\t0.300855,\n\t\t\t0.540844,\n\t\t\t0.235294,\n\t\t\t0.237441,\n\t\t\t0.305202,\n\t\t\t0.541921,\n\t\t\t0.239216,\n\t\t\t0.235526,\n\t\t\t0.309527,\n\t\t\t0.542944,\n\t\t\t0.243137,\n\t\t\t0.233603,\n\t\t\t0.313828,\n\t\t\t0.543914,\n\t\t\t0.247059,\n\t\t\t0.231674,\n\t\t\t0.318106,\n\t\t\t0.544834,\n\t\t\t0.25098,\n\t\t\t0.229739,\n\t\t\t0.322361,\n\t\t\t0.545706,\n\t\t\t0.254902,\n\t\t\t0.227802,\n\t\t\t0.326594,\n\t\t\t0.546532,\n\t\t\t0.258824,\n\t\t\t0.225863,\n\t\t\t0.330805,\n\t\t\t0.547314,\n\t\t\t0.262745,\n\t\t\t0.223925,\n\t\t\t0.334994,\n\t\t\t0.548053,\n\t\t\t0.266667,\n\t\t\t0.221989,\n\t\t\t0.339161,\n\t\t\t0.548752,\n\t\t\t0.270588,\n\t\t\t0.220057,\n\t\t\t0.343307,\n\t\t\t0.549413,\n\t\t\t0.27451,\n\t\t\t0.21813,\n\t\t\t0.347432,\n\t\t\t0.550038,\n\t\t\t0.278431,\n\t\t\t0.21621,\n\t\t\t0.351535,\n\t\t\t0.550627,\n\t\t\t0.282353,\n\t\t\t0.214298,\n\t\t\t0.355619,\n\t\t\t0.551184,\n\t\t\t0.286275,\n\t\t\t0.212395,\n\t\t\t0.359683,\n\t\t\t0.55171,\n\t\t\t0.290196,\n\t\t\t0.210503,\n\t\t\t0.363727,\n\t\t\t0.552206,\n\t\t\t0.294118,\n\t\t\t0.208623,\n\t\t\t0.367752,\n\t\t\t0.552675,\n\t\t\t0.298039,\n\t\t\t0.206756,\n\t\t\t0.371758,\n\t\t\t0.553117,\n\t\t\t0.301961,\n\t\t\t0.204903,\n\t\t\t0.375746,\n\t\t\t0.553533,\n\t\t\t0.305882,\n\t\t\t0.203063,\n\t\t\t0.379716,\n\t\t\t0.553925,\n\t\t\t0.309804,\n\t\t\t0.201239,\n\t\t\t0.38367,\n\t\t\t0.554294,\n\t\t\t0.313725,\n\t\t\t0.19943,\n\t\t\t0.387607,\n\t\t\t0.554642,\n\t\t\t0.317647,\n\t\t\t0.197636,\n\t\t\t0.391528,\n\t\t\t0.554969,\n\t\t\t0.321569,\n\t\t\t0.19586,\n\t\t\t0.395433,\n\t\t\t0.555276,\n\t\t\t0.32549,\n\t\t\t0.1941,\n\t\t\t0.399323,\n\t\t\t0.555565,\n\t\t\t0.329412,\n\t\t\t0.192357,\n\t\t\t0.403199,\n\t\t\t0.555836,\n\t\t\t0.333333,\n\t\t\t0.190631,\n\t\t\t0.407061,\n\t\t\t0.556089,\n\t\t\t0.337255,\n\t\t\t0.188923,\n\t\t\t0.41091,\n\t\t\t0.556326,\n\t\t\t0.341176,\n\t\t\t0.187231,\n\t\t\t0.414746,\n\t\t\t0.556547,\n\t\t\t0.345098,\n\t\t\t0.185556,\n\t\t\t0.41857,\n\t\t\t0.556753,\n\t\t\t0.34902,\n\t\t\t0.183898,\n\t\t\t0.422383,\n\t\t\t0.556944,\n\t\t\t0.352941,\n\t\t\t0.182256,\n\t\t\t0.426184,\n\t\t\t0.55712,\n\t\t\t0.356863,\n\t\t\t0.180629,\n\t\t\t0.429975,\n\t\t\t0.557282,\n\t\t\t0.360784,\n\t\t\t0.179019,\n\t\t\t0.433756,\n\t\t\t0.55743,\n\t\t\t0.364706,\n\t\t\t0.177423,\n\t\t\t0.437527,\n\t\t\t0.557565,\n\t\t\t0.368627,\n\t\t\t0.175841,\n\t\t\t0.44129,\n\t\t\t0.557685,\n\t\t\t0.372549,\n\t\t\t0.174274,\n\t\t\t0.445044,\n\t\t\t0.557792,\n\t\t\t0.376471,\n\t\t\t0.172719,\n\t\t\t0.448791,\n\t\t\t0.557885,\n\t\t\t0.380392,\n\t\t\t0.171176,\n\t\t\t0.45253,\n\t\t\t0.557965,\n\t\t\t0.384314,\n\t\t\t0.169646,\n\t\t\t0.456262,\n\t\t\t0.55803,\n\t\t\t0.388235,\n\t\t\t0.168126,\n\t\t\t0.459988,\n\t\t\t0.558082,\n\t\t\t0.392157,\n\t\t\t0.166617,\n\t\t\t0.463708,\n\t\t\t0.558119,\n\t\t\t0.396078,\n\t\t\t0.165117,\n\t\t\t0.467423,\n\t\t\t0.558141,\n\t\t\t0.4,\n\t\t\t0.163625,\n\t\t\t0.471133,\n\t\t\t0.558148,\n\t\t\t0.403922,\n\t\t\t0.162142,\n\t\t\t0.474838,\n\t\t\t0.55814,\n\t\t\t0.407843,\n\t\t\t0.160665,\n\t\t\t0.47854,\n\t\t\t0.558115,\n\t\t\t0.411765,\n\t\t\t0.159194,\n\t\t\t0.482237,\n\t\t\t0.558073,\n\t\t\t0.415686,\n\t\t\t0.157729,\n\t\t\t0.485932,\n\t\t\t0.558013,\n\t\t\t0.419608,\n\t\t\t0.15627,\n\t\t\t0.489624,\n\t\t\t0.557936,\n\t\t\t0.423529,\n\t\t\t0.154815,\n\t\t\t0.493313,\n\t\t\t0.55784,\n\t\t\t0.427451,\n\t\t\t0.153364,\n\t\t\t0.497,\n\t\t\t0.557724,\n\t\t\t0.431373,\n\t\t\t0.151918,\n\t\t\t0.500685,\n\t\t\t0.557587,\n\t\t\t0.435294,\n\t\t\t0.150476,\n\t\t\t0.504369,\n\t\t\t0.55743,\n\t\t\t0.439216,\n\t\t\t0.149039,\n\t\t\t0.508051,\n\t\t\t0.55725,\n\t\t\t0.443137,\n\t\t\t0.147607,\n\t\t\t0.511733,\n\t\t\t0.557049,\n\t\t\t0.447059,\n\t\t\t0.14618,\n\t\t\t0.515413,\n\t\t\t0.556823,\n\t\t\t0.45098,\n\t\t\t0.144759,\n\t\t\t0.519093,\n\t\t\t0.556572,\n\t\t\t0.454902,\n\t\t\t0.143343,\n\t\t\t0.522773,\n\t\t\t0.556295,\n\t\t\t0.458824,\n\t\t\t0.141935,\n\t\t\t0.526453,\n\t\t\t0.555991,\n\t\t\t0.462745,\n\t\t\t0.140536,\n\t\t\t0.530132,\n\t\t\t0.555659,\n\t\t\t0.466667,\n\t\t\t0.139147,\n\t\t\t0.533812,\n\t\t\t0.555298,\n\t\t\t0.470588,\n\t\t\t0.13777,\n\t\t\t0.537492,\n\t\t\t0.554906,\n\t\t\t0.47451,\n\t\t\t0.136408,\n\t\t\t0.541173,\n\t\t\t0.554483,\n\t\t\t0.478431,\n\t\t\t0.135066,\n\t\t\t0.544853,\n\t\t\t0.554029,\n\t\t\t0.482353,\n\t\t\t0.133743,\n\t\t\t0.548535,\n\t\t\t0.553541,\n\t\t\t0.486275,\n\t\t\t0.132444,\n\t\t\t0.552216,\n\t\t\t0.553018,\n\t\t\t0.490196,\n\t\t\t0.131172,\n\t\t\t0.555899,\n\t\t\t0.552459,\n\t\t\t0.494118,\n\t\t\t0.129933,\n\t\t\t0.559582,\n\t\t\t0.551864,\n\t\t\t0.498039,\n\t\t\t0.128729,\n\t\t\t0.563265,\n\t\t\t0.551229,\n\t\t\t0.501961,\n\t\t\t0.127568,\n\t\t\t0.566949,\n\t\t\t0.550556,\n\t\t\t0.505882,\n\t\t\t0.126453,\n\t\t\t0.570633,\n\t\t\t0.549841,\n\t\t\t0.509804,\n\t\t\t0.125394,\n\t\t\t0.574318,\n\t\t\t0.549086,\n\t\t\t0.513725,\n\t\t\t0.124395,\n\t\t\t0.578002,\n\t\t\t0.548287,\n\t\t\t0.517647,\n\t\t\t0.123463,\n\t\t\t0.581687,\n\t\t\t0.547445,\n\t\t\t0.521569,\n\t\t\t0.122606,\n\t\t\t0.585371,\n\t\t\t0.546557,\n\t\t\t0.52549,\n\t\t\t0.121831,\n\t\t\t0.589055,\n\t\t\t0.545623,\n\t\t\t0.529412,\n\t\t\t0.121148,\n\t\t\t0.592739,\n\t\t\t0.544641,\n\t\t\t0.533333,\n\t\t\t0.120565,\n\t\t\t0.596422,\n\t\t\t0.543611,\n\t\t\t0.537255,\n\t\t\t0.120092,\n\t\t\t0.600104,\n\t\t\t0.54253,\n\t\t\t0.541176,\n\t\t\t0.119738,\n\t\t\t0.603785,\n\t\t\t0.5414,\n\t\t\t0.545098,\n\t\t\t0.119512,\n\t\t\t0.607464,\n\t\t\t0.540218,\n\t\t\t0.54902,\n\t\t\t0.119423,\n\t\t\t0.611141,\n\t\t\t0.538982,\n\t\t\t0.552941,\n\t\t\t0.119483,\n\t\t\t0.614817,\n\t\t\t0.537692,\n\t\t\t0.556863,\n\t\t\t0.119699,\n\t\t\t0.61849,\n\t\t\t0.536347,\n\t\t\t0.560784,\n\t\t\t0.120081,\n\t\t\t0.622161,\n\t\t\t0.534946,\n\t\t\t0.564706,\n\t\t\t0.120638,\n\t\t\t0.625828,\n\t\t\t0.533488,\n\t\t\t0.568627,\n\t\t\t0.12138,\n\t\t\t0.629492,\n\t\t\t0.531973,\n\t\t\t0.572549,\n\t\t\t0.122312,\n\t\t\t0.633153,\n\t\t\t0.530398,\n\t\t\t0.576471,\n\t\t\t0.123444,\n\t\t\t0.636809,\n\t\t\t0.528763,\n\t\t\t0.580392,\n\t\t\t0.12478,\n\t\t\t0.640461,\n\t\t\t0.527068,\n\t\t\t0.584314,\n\t\t\t0.126326,\n\t\t\t0.644107,\n\t\t\t0.525311,\n\t\t\t0.588235,\n\t\t\t0.128087,\n\t\t\t0.647749,\n\t\t\t0.523491,\n\t\t\t0.592157,\n\t\t\t0.130067,\n\t\t\t0.651384,\n\t\t\t0.521608,\n\t\t\t0.596078,\n\t\t\t0.132268,\n\t\t\t0.655014,\n\t\t\t0.519661,\n\t\t\t0.6,\n\t\t\t0.134692,\n\t\t\t0.658636,\n\t\t\t0.517649,\n\t\t\t0.603922,\n\t\t\t0.137339,\n\t\t\t0.662252,\n\t\t\t0.515571,\n\t\t\t0.607843,\n\t\t\t0.14021,\n\t\t\t0.665859,\n\t\t\t0.513427,\n\t\t\t0.611765,\n\t\t\t0.143303,\n\t\t\t0.669459,\n\t\t\t0.511215,\n\t\t\t0.615686,\n\t\t\t0.146616,\n\t\t\t0.67305,\n\t\t\t0.508936,\n\t\t\t0.619608,\n\t\t\t0.150148,\n\t\t\t0.676631,\n\t\t\t0.506589,\n\t\t\t0.623529,\n\t\t\t0.153894,\n\t\t\t0.680203,\n\t\t\t0.504172,\n\t\t\t0.627451,\n\t\t\t0.157851,\n\t\t\t0.683765,\n\t\t\t0.501686,\n\t\t\t0.631373,\n\t\t\t0.162016,\n\t\t\t0.687316,\n\t\t\t0.499129,\n\t\t\t0.635294,\n\t\t\t0.166383,\n\t\t\t0.690856,\n\t\t\t0.496502,\n\t\t\t0.639216,\n\t\t\t0.170948,\n\t\t\t0.694384,\n\t\t\t0.493803,\n\t\t\t0.643137,\n\t\t\t0.175707,\n\t\t\t0.6979,\n\t\t\t0.491033,\n\t\t\t0.647059,\n\t\t\t0.180653,\n\t\t\t0.701402,\n\t\t\t0.488189,\n\t\t\t0.65098,\n\t\t\t0.185783,\n\t\t\t0.704891,\n\t\t\t0.485273,\n\t\t\t0.654902,\n\t\t\t0.19109,\n\t\t\t0.708366,\n\t\t\t0.482284,\n\t\t\t0.658824,\n\t\t\t0.196571,\n\t\t\t0.711827,\n\t\t\t0.479221,\n\t\t\t0.662745,\n\t\t\t0.202219,\n\t\t\t0.715272,\n\t\t\t0.476084,\n\t\t\t0.666667,\n\t\t\t0.20803,\n\t\t\t0.718701,\n\t\t\t0.472873,\n\t\t\t0.670588,\n\t\t\t0.214,\n\t\t\t0.722114,\n\t\t\t0.469588,\n\t\t\t0.67451,\n\t\t\t0.220124,\n\t\t\t0.725509,\n\t\t\t0.466226,\n\t\t\t0.678431,\n\t\t\t0.226397,\n\t\t\t0.728888,\n\t\t\t0.462789,\n\t\t\t0.682353,\n\t\t\t0.232815,\n\t\t\t0.732247,\n\t\t\t0.459277,\n\t\t\t0.686275,\n\t\t\t0.239374,\n\t\t\t0.735588,\n\t\t\t0.455688,\n\t\t\t0.690196,\n\t\t\t0.24607,\n\t\t\t0.73891,\n\t\t\t0.452024,\n\t\t\t0.694118,\n\t\t\t0.252899,\n\t\t\t0.742211,\n\t\t\t0.448284,\n\t\t\t0.698039,\n\t\t\t0.259857,\n\t\t\t0.745492,\n\t\t\t0.444467,\n\t\t\t0.701961,\n\t\t\t0.266941,\n\t\t\t0.748751,\n\t\t\t0.440573,\n\t\t\t0.705882,\n\t\t\t0.274149,\n\t\t\t0.751988,\n\t\t\t0.436601,\n\t\t\t0.709804,\n\t\t\t0.281477,\n\t\t\t0.755203,\n\t\t\t0.432552,\n\t\t\t0.713725,\n\t\t\t0.288921,\n\t\t\t0.758394,\n\t\t\t0.428426,\n\t\t\t0.717647,\n\t\t\t0.296479,\n\t\t\t0.761561,\n\t\t\t0.424223,\n\t\t\t0.721569,\n\t\t\t0.304148,\n\t\t\t0.764704,\n\t\t\t0.419943,\n\t\t\t0.72549,\n\t\t\t0.311925,\n\t\t\t0.767822,\n\t\t\t0.415586,\n\t\t\t0.729412,\n\t\t\t0.319809,\n\t\t\t0.770914,\n\t\t\t0.411152,\n\t\t\t0.733333,\n\t\t\t0.327796,\n\t\t\t0.77398,\n\t\t\t0.40664,\n\t\t\t0.737255,\n\t\t\t0.335885,\n\t\t\t0.777018,\n\t\t\t0.402049,\n\t\t\t0.741176,\n\t\t\t0.344074,\n\t\t\t0.780029,\n\t\t\t0.397381,\n\t\t\t0.745098,\n\t\t\t0.35236,\n\t\t\t0.783011,\n\t\t\t0.392636,\n\t\t\t0.74902,\n\t\t\t0.360741,\n\t\t\t0.785964,\n\t\t\t0.387814,\n\t\t\t0.752941,\n\t\t\t0.369214,\n\t\t\t0.788888,\n\t\t\t0.382914,\n\t\t\t0.756863,\n\t\t\t0.377779,\n\t\t\t0.791781,\n\t\t\t0.377939,\n\t\t\t0.760784,\n\t\t\t0.386433,\n\t\t\t0.794644,\n\t\t\t0.372886,\n\t\t\t0.764706,\n\t\t\t0.395174,\n\t\t\t0.797475,\n\t\t\t0.367757,\n\t\t\t0.768627,\n\t\t\t0.404001,\n\t\t\t0.800275,\n\t\t\t0.362552,\n\t\t\t0.772549,\n\t\t\t0.412913,\n\t\t\t0.803041,\n\t\t\t0.357269,\n\t\t\t0.776471,\n\t\t\t0.421908,\n\t\t\t0.805774,\n\t\t\t0.35191,\n\t\t\t0.780392,\n\t\t\t0.430983,\n\t\t\t0.808473,\n\t\t\t0.346476,\n\t\t\t0.784314,\n\t\t\t0.440137,\n\t\t\t0.811138,\n\t\t\t0.340967,\n\t\t\t0.788235,\n\t\t\t0.449368,\n\t\t\t0.813768,\n\t\t\t0.335384,\n\t\t\t0.792157,\n\t\t\t0.458674,\n\t\t\t0.816363,\n\t\t\t0.329727,\n\t\t\t0.796078,\n\t\t\t0.468053,\n\t\t\t0.818921,\n\t\t\t0.323998,\n\t\t\t0.8,\n\t\t\t0.477504,\n\t\t\t0.821444,\n\t\t\t0.318195,\n\t\t\t0.803922,\n\t\t\t0.487026,\n\t\t\t0.823929,\n\t\t\t0.312321,\n\t\t\t0.807843,\n\t\t\t0.496615,\n\t\t\t0.826376,\n\t\t\t0.306377,\n\t\t\t0.811765,\n\t\t\t0.506271,\n\t\t\t0.828786,\n\t\t\t0.300362,\n\t\t\t0.815686,\n\t\t\t0.515992,\n\t\t\t0.831158,\n\t\t\t0.294279,\n\t\t\t0.819608,\n\t\t\t0.525776,\n\t\t\t0.833491,\n\t\t\t0.288127,\n\t\t\t0.823529,\n\t\t\t0.535621,\n\t\t\t0.835785,\n\t\t\t0.281908,\n\t\t\t0.827451,\n\t\t\t0.545524,\n\t\t\t0.838039,\n\t\t\t0.275626,\n\t\t\t0.831373,\n\t\t\t0.555484,\n\t\t\t0.840254,\n\t\t\t0.269281,\n\t\t\t0.835294,\n\t\t\t0.565498,\n\t\t\t0.84243,\n\t\t\t0.262877,\n\t\t\t0.839216,\n\t\t\t0.575563,\n\t\t\t0.844566,\n\t\t\t0.256415,\n\t\t\t0.843137,\n\t\t\t0.585678,\n\t\t\t0.846661,\n\t\t\t0.249897,\n\t\t\t0.847059,\n\t\t\t0.595839,\n\t\t\t0.848717,\n\t\t\t0.243329,\n\t\t\t0.85098,\n\t\t\t0.606045,\n\t\t\t0.850733,\n\t\t\t0.236712,\n\t\t\t0.854902,\n\t\t\t0.616293,\n\t\t\t0.852709,\n\t\t\t0.230052,\n\t\t\t0.858824,\n\t\t\t0.626579,\n\t\t\t0.854645,\n\t\t\t0.223353,\n\t\t\t0.862745,\n\t\t\t0.636902,\n\t\t\t0.856542,\n\t\t\t0.21662,\n\t\t\t0.866667,\n\t\t\t0.647257,\n\t\t\t0.8584,\n\t\t\t0.209861,\n\t\t\t0.870588,\n\t\t\t0.657642,\n\t\t\t0.860219,\n\t\t\t0.203082,\n\t\t\t0.87451,\n\t\t\t0.668054,\n\t\t\t0.861999,\n\t\t\t0.196293,\n\t\t\t0.878431,\n\t\t\t0.678489,\n\t\t\t0.863742,\n\t\t\t0.189503,\n\t\t\t0.882353,\n\t\t\t0.688944,\n\t\t\t0.865448,\n\t\t\t0.182725,\n\t\t\t0.886275,\n\t\t\t0.699415,\n\t\t\t0.867117,\n\t\t\t0.175971,\n\t\t\t0.890196,\n\t\t\t0.709898,\n\t\t\t0.868751,\n\t\t\t0.169257,\n\t\t\t0.894118,\n\t\t\t0.720391,\n\t\t\t0.87035,\n\t\t\t0.162603,\n\t\t\t0.898039,\n\t\t\t0.730889,\n\t\t\t0.871916,\n\t\t\t0.156029,\n\t\t\t0.901961,\n\t\t\t0.741388,\n\t\t\t0.873449,\n\t\t\t0.149561,\n\t\t\t0.905882,\n\t\t\t0.751884,\n\t\t\t0.874951,\n\t\t\t0.143228,\n\t\t\t0.909804,\n\t\t\t0.762373,\n\t\t\t0.876424,\n\t\t\t0.137064,\n\t\t\t0.913725,\n\t\t\t0.772852,\n\t\t\t0.877868,\n\t\t\t0.131109,\n\t\t\t0.917647,\n\t\t\t0.783315,\n\t\t\t0.879285,\n\t\t\t0.125405,\n\t\t\t0.921569,\n\t\t\t0.79376,\n\t\t\t0.880678,\n\t\t\t0.120005,\n\t\t\t0.92549,\n\t\t\t0.804182,\n\t\t\t0.882046,\n\t\t\t0.114965,\n\t\t\t0.929412,\n\t\t\t0.814576,\n\t\t\t0.883393,\n\t\t\t0.110347,\n\t\t\t0.933333,\n\t\t\t0.82494,\n\t\t\t0.88472,\n\t\t\t0.106217,\n\t\t\t0.937255,\n\t\t\t0.83527,\n\t\t\t0.886029,\n\t\t\t0.102646,\n\t\t\t0.941176,\n\t\t\t0.845561,\n\t\t\t0.887322,\n\t\t\t0.099702,\n\t\t\t0.945098,\n\t\t\t0.85581,\n\t\t\t0.888601,\n\t\t\t0.097452,\n\t\t\t0.94902,\n\t\t\t0.866013,\n\t\t\t0.889868,\n\t\t\t0.095953,\n\t\t\t0.952941,\n\t\t\t0.876168,\n\t\t\t0.891125,\n\t\t\t0.09525,\n\t\t\t0.956863,\n\t\t\t0.886271,\n\t\t\t0.892374,\n\t\t\t0.095374,\n\t\t\t0.960784,\n\t\t\t0.89632,\n\t\t\t0.893616,\n\t\t\t0.096335,\n\t\t\t0.964706,\n\t\t\t0.906311,\n\t\t\t0.894855,\n\t\t\t0.098125,\n\t\t\t0.968627,\n\t\t\t0.916242,\n\t\t\t0.896091,\n\t\t\t0.100717,\n\t\t\t0.972549,\n\t\t\t0.926106,\n\t\t\t0.89733,\n\t\t\t0.104071,\n\t\t\t0.976471,\n\t\t\t0.935904,\n\t\t\t0.89857,\n\t\t\t0.108131,\n\t\t\t0.980392,\n\t\t\t0.945636,\n\t\t\t0.899815,\n\t\t\t0.112838,\n\t\t\t0.984314,\n\t\t\t0.9553,\n\t\t\t0.901065,\n\t\t\t0.118128,\n\t\t\t0.988235,\n\t\t\t0.964894,\n\t\t\t0.902323,\n\t\t\t0.123941,\n\t\t\t0.992157,\n\t\t\t0.974417,\n\t\t\t0.90359,\n\t\t\t0.130215,\n\t\t\t0.996078,\n\t\t\t0.983868,\n\t\t\t0.904867,\n\t\t\t0.136897,\n\t\t\t1,\n\t\t\t0.993248,\n\t\t\t0.906157,\n\t\t\t0.143936\n\t\t]\n\t},\n\t{\n\t\tShowIndexedColorActiveValues: 1,\n\t\tIndexedColors: [\n\t\t\t0.07,\n\t\t\t0.5,\n\t\t\t0.7,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.85,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.8,\n\t\t\t0.5,\n\t\t\t1,\n\t\t\t0.76,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.71,\n\t\t\t0.71,\n\t\t\t0.5,\n\t\t\t0.5,\n\t\t\t0.5,\n\t\t\t0.05,\n\t\t\t0.05,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.05,\n\t\t\t0.05,\n\t\t\t0.7,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.7,\n\t\t\t0.89,\n\t\t\t0.96,\n\t\t\t0.67,\n\t\t\t0.36,\n\t\t\t0.95,\n\t\t\t0.54,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.75,\n\t\t\t0.65,\n\t\t\t0.65,\n\t\t\t0.5,\n\t\t\t0.6,\n\t\t\t0.6,\n\t\t\t1,\n\t\t\t0.5,\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.19,\n\t\t\t0.12,\n\t\t\t0.94,\n\t\t\t0.12,\n\t\t\t0.5,\n\t\t\t0.82,\n\t\t\t0.89,\n\t\t\t0.56,\n\t\t\t0.25,\n\t\t\t0.83,\n\t\t\t0.24,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.9,\n\t\t\t0.9,\n\t\t\t0.9,\n\t\t\t0.75,\n\t\t\t0.76,\n\t\t\t0.78,\n\t\t\t0.65,\n\t\t\t0.65,\n\t\t\t0.67,\n\t\t\t0.54,\n\t\t\t0.6,\n\t\t\t0.78,\n\t\t\t0.61,\n\t\t\t0.48,\n\t\t\t0.78,\n\t\t\t0.5,\n\t\t\t0.48,\n\t\t\t0.78,\n\t\t\t0.44,\n\t\t\t0.48,\n\t\t\t0.78,\n\t\t\t0.36,\n\t\t\t0.48,\n\t\t\t0.76,\n\t\t\t1,\n\t\t\t0.48,\n\t\t\t0.38,\n\t\t\t0.49,\n\t\t\t0.5,\n\t\t\t0.69,\n\t\t\t0.76,\n\t\t\t0.56,\n\t\t\t0.56,\n\t\t\t0.4,\n\t\t\t0.56,\n\t\t\t0.56,\n\t\t\t0.74,\n\t\t\t0.5,\n\t\t\t0.89,\n\t\t\t1,\n\t\t\t0.63,\n\t\t\t0,\n\t\t\t0.65,\n\t\t\t0.16,\n\t\t\t0.16,\n\t\t\t0.36,\n\t\t\t0.72,\n\t\t\t0.82,\n\t\t\t0.44,\n\t\t\t0.18,\n\t\t\t0.69,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.58,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.58,\n\t\t\t0.88,\n\t\t\t0.88,\n\t\t\t0.45,\n\t\t\t0.76,\n\t\t\t0.79,\n\t\t\t0.33,\n\t\t\t0.71,\n\t\t\t0.71,\n\t\t\t0.23,\n\t\t\t0.62,\n\t\t\t0.62,\n\t\t\t0.14,\n\t\t\t0.56,\n\t\t\t0.56,\n\t\t\t0.04,\n\t\t\t0.49,\n\t\t\t0.55,\n\t\t\t0,\n\t\t\t0.41,\n\t\t\t0.52,\n\t\t\t0.88,\n\t\t\t0.88,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.85,\n\t\t\t0.56,\n\t\t\t0.65,\n\t\t\t0.46,\n\t\t\t0.45,\n\t\t\t0.4,\n\t\t\t0.5,\n\t\t\t0.5,\n\t\t\t0.62,\n\t\t\t0.39,\n\t\t\t0.71,\n\t\t\t0.83,\n\t\t\t0.48,\n\t\t\t0,\n\t\t\t0.58,\n\t\t\t0,\n\t\t\t0.58,\n\t\t\t0.26,\n\t\t\t0.62,\n\t\t\t0.69,\n\t\t\t0.34,\n\t\t\t0.09,\n\t\t\t0.56,\n\t\t\t0,\n\t\t\t0.79,\n\t\t\t0,\n\t\t\t0.44,\n\t\t\t0.83,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1,\n\t\t\t0.78,\n\t\t\t0.85,\n\t\t\t1,\n\t\t\t0.78,\n\t\t\t0.78,\n\t\t\t1,\n\t\t\t0.78,\n\t\t\t0.64,\n\t\t\t1,\n\t\t\t0.78,\n\t\t\t0.56,\n\t\t\t1,\n\t\t\t0.78,\n\t\t\t0.38,\n\t\t\t1,\n\t\t\t0.78,\n\t\t\t0.27,\n\t\t\t1,\n\t\t\t0.78,\n\t\t\t0.19,\n\t\t\t1,\n\t\t\t0.78,\n\t\t\t0.12,\n\t\t\t1,\n\t\t\t0.78,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0.61,\n\t\t\t0,\n\t\t\t0.9,\n\t\t\t0.46,\n\t\t\t0,\n\t\t\t0.83,\n\t\t\t0.32,\n\t\t\t0,\n\t\t\t0.75,\n\t\t\t0.22,\n\t\t\t0,\n\t\t\t0.67,\n\t\t\t0.14,\n\t\t\t0.3,\n\t\t\t0.76,\n\t\t\t1,\n\t\t\t0.3,\n\t\t\t0.65,\n\t\t\t1,\n\t\t\t0.13,\n\t\t\t0.58,\n\t\t\t0.84,\n\t\t\t0.15,\n\t\t\t0.49,\n\t\t\t0.67,\n\t\t\t0.15,\n\t\t\t0.4,\n\t\t\t0.59,\n\t\t\t0.09,\n\t\t\t0.33,\n\t\t\t0.53,\n\t\t\t0.96,\n\t\t\t0.93,\n\t\t\t0.82,\n\t\t\t0.8,\n\t\t\t0.82,\n\t\t\t0.12,\n\t\t\t0.71,\n\t\t\t0.71,\n\t\t\t0.76,\n\t\t\t0.65,\n\t\t\t0.33,\n\t\t\t0.3,\n\t\t\t0.34,\n\t\t\t0.35,\n\t\t\t0.38,\n\t\t\t0.62,\n\t\t\t0.31,\n\t\t\t0.71,\n\t\t\t0.67,\n\t\t\t0.36,\n\t\t\t0,\n\t\t\t0.46,\n\t\t\t0.31,\n\t\t\t0.27,\n\t\t\t0.26,\n\t\t\t0.51,\n\t\t\t0.59,\n\t\t\t0.26,\n\t\t\t0,\n\t\t\t0.4,\n\t\t\t0,\n\t\t\t0.49,\n\t\t\t0,\n\t\t\t0.44,\n\t\t\t0.67,\n\t\t\t0.98,\n\t\t\t0,\n\t\t\t0.73,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.63,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.56,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.5,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.42,\n\t\t\t1,\n\t\t\t0.33,\n\t\t\t0.36,\n\t\t\t0.95,\n\t\t\t0.47,\n\t\t\t0.36,\n\t\t\t0.89,\n\t\t\t0.54,\n\t\t\t0.31,\n\t\t\t0.89,\n\t\t\t0.63,\n\t\t\t0.21,\n\t\t\t0.83,\n\t\t\t0.7,\n\t\t\t0.12,\n\t\t\t0.83,\n\t\t\t0.7,\n\t\t\t0.12,\n\t\t\t0.73,\n\t\t\t0.7,\n\t\t\t0.05,\n\t\t\t0.65,\n\t\t\t0.74,\n\t\t\t0.05,\n\t\t\t0.53,\n\t\t\t0.78,\n\t\t\t0,\n\t\t\t0.4,\n\t\t\t0.8,\n\t\t\t0,\n\t\t\t0.35,\n\t\t\t0.82,\n\t\t\t0,\n\t\t\t0.31,\n\t\t\t0.85,\n\t\t\t0,\n\t\t\t0.27,\n\t\t\t0.88,\n\t\t\t0,\n\t\t\t0.22,\n\t\t\t0.9,\n\t\t\t0,\n\t\t\t0.18,\n\t\t\t0.91,\n\t\t\t0,\n\t\t\t0.15,\n\t\t\t0.92,\n\t\t\t0,\n\t\t\t0.14,\n\t\t\t0.93,\n\t\t\t0,\n\t\t\t0.13,\n\t\t\t0.94,\n\t\t\t0,\n\t\t\t0.12,\n\t\t\t0.95,\n\t\t\t0,\n\t\t\t0.11,\n\t\t\t0.96,\n\t\t\t0,\n\t\t\t0.1,\n\t\t\t0.97,\n\t\t\t0,\n\t\t\t0.09,\n\t\t\t0.98,\n\t\t\t0,\n\t\t\t0.08,\n\t\t\t0.99,\n\t\t\t0,\n\t\t\t0.07,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0.06\n\t\t],\n\t\tAnnotations: [\n\t\t\t0,\n\t\t\t\"Xx\",\n\t\t\t1,\n\t\t\t\"H\",\n\t\t\t2,\n\t\t\t\"He\",\n\t\t\t3,\n\t\t\t\"Li\",\n\t\t\t4,\n\t\t\t\"Be\",\n\t\t\t5,\n\t\t\t\"B\",\n\t\t\t6,\n\t\t\t\"C\",\n\t\t\t7,\n\t\t\t\"N\",\n\t\t\t8,\n\t\t\t\"O\",\n\t\t\t9,\n\t\t\t\"F\",\n\t\t\t10,\n\t\t\t\"Ne\",\n\t\t\t11,\n\t\t\t\"Na\",\n\t\t\t12,\n\t\t\t\"Mg\",\n\t\t\t13,\n\t\t\t\"Al\",\n\t\t\t14,\n\t\t\t\"Si\",\n\t\t\t15,\n\t\t\t\"P\",\n\t\t\t16,\n\t\t\t\"S\",\n\t\t\t17,\n\t\t\t\"Cl\",\n\t\t\t18,\n\t\t\t\"Ar\",\n\t\t\t19,\n\t\t\t\"K\",\n\t\t\t20,\n\t\t\t\"Ca\",\n\t\t\t21,\n\t\t\t\"Sc\",\n\t\t\t22,\n\t\t\t\"Ti\",\n\t\t\t23,\n\t\t\t\"V\",\n\t\t\t24,\n\t\t\t\"Cr\",\n\t\t\t25,\n\t\t\t\"Mn\",\n\t\t\t26,\n\t\t\t\"Fe\",\n\t\t\t27,\n\t\t\t\"Co\",\n\t\t\t28,\n\t\t\t\"Ni\",\n\t\t\t29,\n\t\t\t\"Cu\",\n\t\t\t30,\n\t\t\t\"Zn\",\n\t\t\t31,\n\t\t\t\"Ga\",\n\t\t\t32,\n\t\t\t\"Ge\",\n\t\t\t33,\n\t\t\t\"As\",\n\t\t\t34,\n\t\t\t\"Se\",\n\t\t\t35,\n\t\t\t\"Br\",\n\t\t\t36,\n\t\t\t\"Kr\",\n\t\t\t37,\n\t\t\t\"Rb\",\n\t\t\t38,\n\t\t\t\"Sr\",\n\t\t\t39,\n\t\t\t\"Y\",\n\t\t\t40,\n\t\t\t\"Zr\",\n\t\t\t41,\n\t\t\t\"Nb\",\n\t\t\t42,\n\t\t\t\"Mo\",\n\t\t\t43,\n\t\t\t\"Tc\",\n\t\t\t44,\n\t\t\t\"Ru\",\n\t\t\t45,\n\t\t\t\"Rh\",\n\t\t\t46,\n\t\t\t\"Pd\",\n\t\t\t47,\n\t\t\t\"Ag\",\n\t\t\t48,\n\t\t\t\"Cd\",\n\t\t\t49,\n\t\t\t\"In\",\n\t\t\t50,\n\t\t\t\"Sn\",\n\t\t\t51,\n\t\t\t\"Sb\",\n\t\t\t52,\n\t\t\t\"Te\",\n\t\t\t53,\n\t\t\t\"I\",\n\t\t\t54,\n\t\t\t\"Xe\",\n\t\t\t55,\n\t\t\t\"Cs\",\n\t\t\t56,\n\t\t\t\"Ba\",\n\t\t\t57,\n\t\t\t\"La\",\n\t\t\t58,\n\t\t\t\"Ce\",\n\t\t\t59,\n\t\t\t\"Pr\",\n\t\t\t60,\n\t\t\t\"Nd\",\n\t\t\t61,\n\t\t\t\"Pm\",\n\t\t\t62,\n\t\t\t\"Sm\",\n\t\t\t63,\n\t\t\t\"Eu\",\n\t\t\t64,\n\t\t\t\"Gd\",\n\t\t\t65,\n\t\t\t\"Tb\",\n\t\t\t66,\n\t\t\t\"Dy\",\n\t\t\t67,\n\t\t\t\"Ho\",\n\t\t\t68,\n\t\t\t\"Er\",\n\t\t\t69,\n\t\t\t\"Tm\",\n\t\t\t70,\n\t\t\t\"Yb\",\n\t\t\t71,\n\t\t\t\"Lu\",\n\t\t\t72,\n\t\t\t\"Hf\",\n\t\t\t73,\n\t\t\t\"Ta\",\n\t\t\t74,\n\t\t\t\"W\",\n\t\t\t75,\n\t\t\t\"Re\",\n\t\t\t76,\n\t\t\t\"Os\",\n\t\t\t77,\n\t\t\t\"Ir\",\n\t\t\t78,\n\t\t\t\"Pt\",\n\t\t\t79,\n\t\t\t\"Au\",\n\t\t\t80,\n\t\t\t\"Hg\",\n\t\t\t81,\n\t\t\t\"Tl\",\n\t\t\t82,\n\t\t\t\"Pb\",\n\t\t\t83,\n\t\t\t\"Bi\",\n\t\t\t84,\n\t\t\t\"Po\",\n\t\t\t85,\n\t\t\t\"At\",\n\t\t\t86,\n\t\t\t\"Rn\",\n\t\t\t87,\n\t\t\t\"Fr\",\n\t\t\t88,\n\t\t\t\"Ra\",\n\t\t\t89,\n\t\t\t\"Ac\",\n\t\t\t90,\n\t\t\t\"Th\",\n\t\t\t91,\n\t\t\t\"Pa\",\n\t\t\t92,\n\t\t\t\"U\",\n\t\t\t93,\n\t\t\t\"Np\",\n\t\t\t94,\n\t\t\t\"Pu\",\n\t\t\t95,\n\t\t\t\"Am\",\n\t\t\t96,\n\t\t\t\"Cm\",\n\t\t\t97,\n\t\t\t\"Bk\",\n\t\t\t98,\n\t\t\t\"Cf\",\n\t\t\t99,\n\t\t\t\"Es\",\n\t\t\t100,\n\t\t\t\"Fm\",\n\t\t\t101,\n\t\t\t\"Md\",\n\t\t\t102,\n\t\t\t\"No\",\n\t\t\t103,\n\t\t\t\"Lr\",\n\t\t\t104,\n\t\t\t\"Rf\",\n\t\t\t105,\n\t\t\t\"Db\",\n\t\t\t106,\n\t\t\t\"Sg\",\n\t\t\t107,\n\t\t\t\"Bh\",\n\t\t\t108,\n\t\t\t\"Hs\",\n\t\t\t109,\n\t\t\t\"Mt\",\n\t\t\t110,\n\t\t\t\"Ds\",\n\t\t\t111,\n\t\t\t\"Rg\",\n\t\t\t112,\n\t\t\t\"Cn\",\n\t\t\t113,\n\t\t\t\"Uut\",\n\t\t\t114,\n\t\t\t\"Uuq\",\n\t\t\t115,\n\t\t\t\"Uup\",\n\t\t\t116,\n\t\t\t\"Uuh\",\n\t\t\t117,\n\t\t\t\"Uus\",\n\t\t\t118,\n\t\t\t\"Uuo\"\n\t\t],\n\t\tName: \"BlueObeliskElements\"\n\t}\n];\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps.json.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/Constants.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/Constants.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"ColorSpace\": () => (/* binding */ ColorSpace),\n/* harmony export */   \"Scale\": () => (/* binding */ Scale),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar ColorSpace = {\n  RGB: 0,\n  HSV: 1,\n  LAB: 2,\n  DIVERGING: 3\n};\nvar Scale = {\n  LINEAR: 0,\n  LOG10: 1\n};\nvar Constants = {\n  ColorSpace: ColorSpace,\n  Scale: Scale\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/CubeAxesActor.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/CubeAxesActor.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkCubeAxesActor$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! d3-scale */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Actor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Actor.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Actor.js\");\n/* harmony import */ var _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Common/DataModel/BoundingBox.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/BoundingBox.js\");\n/* harmony import */ var _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Common/Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _Mapper_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Mapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js\");\n/* harmony import */ var _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../Common/DataModel/PolyData.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Texture.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// vtkCubeAxesActor\n// ----------------------------------------------------------------------------\n// faces are -x x -y y -z z\n// point 0 is 0,0,0 and then +x fastest changing, +y then +z\n\nvar faceNormals = [[-1, 0, 0], [1, 0, 0], [0, -1, 0], [0, 1, 0], [0, 0, -1], [0, 0, 1]];\nvar faceEdges = [[8, 7, 11, 3], [9, 1, 10, 5], [4, 9, 0, 8], [2, 11, 6, 10], [0, 3, 2, 1], [4, 5, 6, 7]];\nvar edgePoints = [[0, 1], [1, 3], [2, 3], [0, 2], [4, 5], [5, 7], [6, 7], [4, 6], [0, 4], [1, 5], [3, 7], [2, 6]];\nvar edgeAxes = [0, 1, 0, 1, 0, 1, 0, 1, 2, 2, 2, 2];\nvar faceAxes = [[1, 2], [1, 2], [0, 2], [0, 2], [0, 1], [0, 1]]; //\n// Developer note: This class is broken into the main class and a helper\n// class. The main class holds view independent properties (those properties\n// that do not change as the view's resolution/aspect ratio change). The\n// helper class is instantiated one per view and holds properties that can\n// depend on view specific values such as resolution. The helper class code\n// could have been left to the View specific implementation (such as\n// vtkWebGPUCubeAxesActor) but is instead placed here to it can be shared by\n// multiple rendering backends.\n//\n// some shared temp variables to reduce heap allocs\n\nvar ptv3 = new Float64Array(3);\nvar pt2v3 = new Float64Array(3);\nvar tmpv3 = new Float64Array(3);\nvar tmp2v3 = new Float64Array(3);\nvar xDir = new Float64Array(3);\nvar yDir = new Float64Array(3);\nvar invmat = new Float64Array(16);\n\nfunction applyTextStyle(ctx, style) {\n  ctx.strokeStyle = style.strokeColor;\n  ctx.lineWidth = style.strokeSize;\n  ctx.fillStyle = style.fontColor;\n  ctx.font = \"\".concat(style.fontStyle, \" \").concat(style.fontSize, \"px \").concat(style.fontFamily);\n} // many properties of this actor depend on the API specific view The main\n// dependency being the resolution as that drives what font sizes to use.\n// Bacause of this we need to do some of the calculations in a API specific\n// subclass. But... we don't want a lot of duplicated code between WebGL and\n// WebGPU for example so we have this helper class, that is designed to be\n// fairly API independent so that API specific views can call this to do\n// most of the work.\n\n\nfunction vtkCubeAxesActorHelper(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkCubeAxesActorHelper');\n\n  publicAPI.setRenderable = function (renderable) {\n    if (model.renderable === renderable) {\n      return;\n    }\n\n    model.renderable = renderable;\n    model.tmActor.addTexture(model.renderable.getTmTexture());\n    model.tmActor.setProperty(renderable.getProperty());\n    model.tmActor.setParentProp(renderable);\n    publicAPI.modified();\n  }; // called by updateTexturePolyData\n\n\n  publicAPI.createPolyDataForOneLabel = function (text, pos, cmat, imat, dir, offset, results) {\n    var value = model.renderable.get_tmAtlas().get(text);\n\n    if (!value) {\n      return;\n    }\n\n    var coords = model.renderable.getTextPolyData().getPoints().getData(); // compute pixel to distance factors\n\n    var size = model.lastSize;\n    ptv3[0] = coords[pos * 3];\n    ptv3[1] = coords[pos * 3 + 1];\n    ptv3[2] = coords[pos * 3 + 2];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.transformMat4(tmpv3, ptv3, cmat); // moving 0.1 in NDC\n\n    tmpv3[0] += 0.1;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.transformMat4(pt2v3, tmpv3, imat); // results in WC move of\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.subtract(xDir, pt2v3, ptv3);\n    tmpv3[0] -= 0.1;\n    tmpv3[1] += 0.1;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.transformMat4(pt2v3, tmpv3, imat); // results in WC move of\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.subtract(yDir, pt2v3, ptv3);\n\n    for (var i = 0; i < 3; i++) {\n      xDir[i] /= 0.5 * 0.1 * size[0];\n      yDir[i] /= 0.5 * 0.1 * size[1];\n    } // have to find the four corners of the texture polygon for this label\n    // convert anchor point to View Coords\n\n\n    var ptIdx = results.ptIdx;\n    var cellIdx = results.cellIdx;\n    ptv3[0] = coords[pos * 3];\n    ptv3[1] = coords[pos * 3 + 1];\n    ptv3[2] = coords[pos * 3 + 2]; // horizontal left, right, or middle alignment based on dir[0]\n\n    if (dir[0] < -0.5) {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_10__.scale(tmpv3, xDir, dir[0] * offset - value.width);\n    } else if (dir[0] > 0.5) {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_10__.scale(tmpv3, xDir, dir[0] * offset);\n    } else {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_10__.scale(tmpv3, xDir, dir[0] * offset - value.width / 2.0);\n    }\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.add(ptv3, ptv3, tmpv3);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.scale(tmpv3, yDir, dir[1] * offset - value.height / 2.0);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.add(ptv3, ptv3, tmpv3);\n    results.points[ptIdx * 3] = ptv3[0];\n    results.points[ptIdx * 3 + 1] = ptv3[1];\n    results.points[ptIdx * 3 + 2] = ptv3[2];\n    results.tcoords[ptIdx * 2] = value.tcoords[0];\n    results.tcoords[ptIdx * 2 + 1] = value.tcoords[1];\n    ptIdx++;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.scale(tmpv3, xDir, value.width);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.add(ptv3, ptv3, tmpv3);\n    results.points[ptIdx * 3] = ptv3[0];\n    results.points[ptIdx * 3 + 1] = ptv3[1];\n    results.points[ptIdx * 3 + 2] = ptv3[2];\n    results.tcoords[ptIdx * 2] = value.tcoords[2];\n    results.tcoords[ptIdx * 2 + 1] = value.tcoords[3];\n    ptIdx++;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.scale(tmpv3, yDir, value.height);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.add(ptv3, ptv3, tmpv3);\n    results.points[ptIdx * 3] = ptv3[0];\n    results.points[ptIdx * 3 + 1] = ptv3[1];\n    results.points[ptIdx * 3 + 2] = ptv3[2];\n    results.tcoords[ptIdx * 2] = value.tcoords[4];\n    results.tcoords[ptIdx * 2 + 1] = value.tcoords[5];\n    ptIdx++;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.scale(tmpv3, xDir, value.width);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_10__.subtract(ptv3, ptv3, tmpv3);\n    results.points[ptIdx * 3] = ptv3[0];\n    results.points[ptIdx * 3 + 1] = ptv3[1];\n    results.points[ptIdx * 3 + 2] = ptv3[2];\n    results.tcoords[ptIdx * 2] = value.tcoords[6];\n    results.tcoords[ptIdx * 2 + 1] = value.tcoords[7];\n    ptIdx++; // add the two triangles to represent the quad\n\n    results.polys[cellIdx * 4] = 3;\n    results.polys[cellIdx * 4 + 1] = ptIdx - 4;\n    results.polys[cellIdx * 4 + 2] = ptIdx - 3;\n    results.polys[cellIdx * 4 + 3] = ptIdx - 2;\n    cellIdx++;\n    results.polys[cellIdx * 4] = 3;\n    results.polys[cellIdx * 4 + 1] = ptIdx - 4;\n    results.polys[cellIdx * 4 + 2] = ptIdx - 2;\n    results.polys[cellIdx * 4 + 3] = ptIdx - 1;\n    results.ptIdx += 4;\n    results.cellIdx += 2;\n  }; // update the polydata associated with drawing the text labels\n  // specifically the quads used for each label and their associated tcoords\n  // etc. This changes every time the camera viewpoint changes\n\n\n  publicAPI.updateTexturePolyData = function () {\n    var cmat = model.camera.getCompositeProjectionMatrix(model.lastAspectRatio, -1, 1);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transpose(cmat, cmat); // update the polydata\n\n    var numLabels = model.renderable.getTextValues().length;\n    var numPts = numLabels * 4;\n    var numTris = numLabels * 2;\n    var points = new Float64Array(numPts * 3);\n    var polys = new Uint16Array(numTris * 4);\n    var tcoords = new Float32Array(numPts * 2);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.invert(invmat, cmat);\n    var results = {\n      ptIdx: 0,\n      cellIdx: 0,\n      polys: polys,\n      points: points,\n      tcoords: tcoords\n    };\n    var ptIdx = 0;\n    var textIdx = 0;\n    var axisIdx = 0;\n    var coords = model.renderable.getTextPolyData().getPoints().getData();\n    var textValues = model.renderable.getTextValues();\n\n    while (ptIdx < coords.length / 3) {\n      // compute the direction to move out\n      ptv3[0] = coords[ptIdx * 3];\n      ptv3[1] = coords[ptIdx * 3 + 1];\n      ptv3[2] = coords[ptIdx * 3 + 2];\n      gl_matrix__WEBPACK_IMPORTED_MODULE_10__.transformMat4(tmpv3, ptv3, cmat);\n      ptv3[0] = coords[ptIdx * 3 + 3];\n      ptv3[1] = coords[ptIdx * 3 + 4];\n      ptv3[2] = coords[ptIdx * 3 + 5];\n      gl_matrix__WEBPACK_IMPORTED_MODULE_10__.transformMat4(tmp2v3, ptv3, cmat);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_10__.subtract(tmpv3, tmpv3, tmp2v3);\n      var dir = [tmpv3[0], tmpv3[1]];\n      (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.L)(dir); // write the axis label\n\n      publicAPI.createPolyDataForOneLabel(textValues[textIdx], ptIdx, cmat, invmat, dir, model.renderable.getAxisTitlePixelOffset(), results);\n      ptIdx += 2;\n      textIdx++; // write the tick labels\n\n      for (var t = 0; t < model.renderable.getTickCounts()[axisIdx]; t++) {\n        publicAPI.createPolyDataForOneLabel(textValues[textIdx], ptIdx, cmat, invmat, dir, model.renderable.getTickLabelPixelOffset(), results);\n        ptIdx++;\n        textIdx++;\n      }\n\n      axisIdx++;\n    }\n\n    var tcoordDA = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance({\n      numberOfComponents: 2,\n      values: tcoords,\n      name: 'TextureCoordinates'\n    });\n    model.tmPolyData.getPointData().setTCoords(tcoordDA);\n    model.tmPolyData.getPoints().setData(points, 3);\n    model.tmPolyData.getPoints().modified();\n    model.tmPolyData.getPolys().setData(polys, 1);\n    model.tmPolyData.getPolys().modified();\n    model.tmPolyData.modified();\n  };\n\n  publicAPI.updateAPISpecificData = function (size, camera, renderWindow) {\n    // has the size changed?\n    if (model.lastSize[0] !== size[0] || model.lastSize[1] !== size[1]) {\n      model.lastSize[0] = size[0];\n      model.lastSize[1] = size[1];\n      model.lastAspectRatio = size[0] / size[1];\n      model.forceUpdate = true;\n    }\n\n    model.camera = camera; // compute bounds for label quads whenever the camera changes\n\n    publicAPI.updateTexturePolyData();\n  };\n}\n\nvar newCubeAxesActorHelper = _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance(function (publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n    renderable: null\n  };\n  Object.assign(model, {}, initialValues); // Inheritance\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].obj(publicAPI, model);\n  model.tmPolyData = _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance();\n  model.tmMapper = _Mapper_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance();\n  model.tmMapper.setInputData(model.tmPolyData);\n  model.tmActor = _Actor_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance({\n    parentProp: publicAPI\n  });\n  model.tmActor.setMapper(model.tmMapper);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setGet(publicAPI, model, ['renderable']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].get(publicAPI, model, ['lastSize', 'lastAspectRatio', 'axisTextStyle', 'tickTextStyle', 'tmActor', 'ticks']);\n  model.forceUpdate = false;\n  model.lastRedrawTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].obj(model.lastRedrawTime, {\n    mtime: 0\n  });\n  model.lastRebuildTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].obj(model.lastRebuildTime, {\n    mtime: 0\n  });\n  model.lastSize = [-1, -1]; // internal variables\n\n  model.lastTickBounds = [];\n  vtkCubeAxesActorHelper(publicAPI, model);\n}, 'vtkCubeAxesActorHelper');\n\nfunction vtkCubeAxesActor(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkCubeAxesActor');\n\n  publicAPI.setCamera = function (cam) {\n    if (model.camera === cam) {\n      return;\n    }\n\n    if (model.cameraModifiedSub) {\n      model.cameraModifiedSub.unsubscribe();\n      model.cameraModifiedSub = null;\n    }\n\n    model.camera = cam;\n\n    if (cam) {\n      model.cameraModifiedSub = cam.onModified(publicAPI.update);\n    }\n\n    publicAPI.update();\n    publicAPI.modified();\n  }; // estimate from a camera model what faces to draw\n  // return true if the list of faces to draw has changed\n\n\n  publicAPI.computeFacesToDraw = function () {\n    var cmat = model.camera.getViewMatrix();\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transpose(cmat, cmat);\n    var changed = false;\n    var length = _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].getDiagonalLength(model.dataBounds);\n    var faceDot = Math.sin(model.faceVisibilityAngle * Math.PI / 180.0);\n\n    for (var f = 0; f < 6; f++) {\n      var drawit = false;\n      var faceAxis = Math.floor(f / 2);\n      var otherAxis1 = (faceAxis + 1) % 3;\n      var otherAxis2 = (faceAxis + 2) % 3; // only for non degenerate axes\n\n      if (model.dataBounds[otherAxis1 * 2] !== model.dataBounds[otherAxis1 * 2 + 1] && model.dataBounds[otherAxis2 * 2] !== model.dataBounds[otherAxis2 * 2 + 1]) {\n        // for each face transform the center and off center to get a direction vector\n        ptv3[faceAxis] = model.dataBounds[f] - 0.1 * length * faceNormals[f][faceAxis];\n        ptv3[otherAxis1] = 0.5 * (model.dataBounds[otherAxis1 * 2] + model.dataBounds[otherAxis1 * 2 + 1]);\n        ptv3[otherAxis2] = 0.5 * (model.dataBounds[otherAxis2 * 2] + model.dataBounds[otherAxis2 * 2 + 1]);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_10__.transformMat4(tmpv3, ptv3, cmat);\n        ptv3[faceAxis] = model.dataBounds[f];\n        gl_matrix__WEBPACK_IMPORTED_MODULE_10__.transformMat4(tmp2v3, ptv3, cmat);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_10__.subtract(tmpv3, tmp2v3, tmpv3);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_10__.normalize(tmpv3, tmpv3); // tmpv3 now holds the face normal vector\n\n        drawit = tmpv3[2] > faceDot; // for perspctive we need the view direction to the plane\n\n        if (!model.camera.getParallelProjection()) {\n          gl_matrix__WEBPACK_IMPORTED_MODULE_10__.normalize(tmp2v3, tmp2v3);\n          drawit = gl_matrix__WEBPACK_IMPORTED_MODULE_10__.dot(tmp2v3, tmpv3) > faceDot;\n        }\n      }\n\n      if (drawit !== model.lastFacesToDraw[f]) {\n        model.lastFacesToDraw[f] = drawit;\n        changed = true;\n      }\n    }\n\n    return changed;\n  }; // update the polydata that represents the boundingd edges and gridlines\n\n\n  publicAPI.updatePolyData = function (facesToDraw, edgesToDraw, ticks) {\n    // compute the number of points and lines required\n    var numPts = 0;\n    var numLines = 0;\n    numPts += 8; // always start with the 8 cube points\n    // count edgesToDraw\n\n    var numEdgesToDraw = 0;\n\n    for (var e = 0; e < 12; e++) {\n      if (edgesToDraw[e] > 0) {\n        numEdgesToDraw++;\n      }\n    }\n\n    numLines += numEdgesToDraw; // add values for gridlines\n\n    if (model.gridLines) {\n      for (var f = 0; f < 6; f++) {\n        if (facesToDraw[f]) {\n          numPts += ticks[faceAxes[f][0]].length * 2 + ticks[faceAxes[f][1]].length * 2;\n          numLines += ticks[faceAxes[f][0]].length + ticks[faceAxes[f][1]].length;\n        }\n      }\n    } // now allocate the memory\n\n\n    var points = new Float64Array(numPts * 3);\n    var lines = new Uint32Array(numLines * 3);\n    var ptIdx = 0;\n    var lineIdx = 0; // add the 8 corner points\n\n    for (var z = 0; z < 2; z++) {\n      for (var y = 0; y < 2; y++) {\n        for (var x = 0; x < 2; x++) {\n          points[ptIdx * 3] = model.dataBounds[x];\n          points[ptIdx * 3 + 1] = model.dataBounds[2 + y];\n          points[ptIdx * 3 + 2] = model.dataBounds[4 + z];\n          ptIdx++;\n        }\n      }\n    } // draw the edges\n\n\n    for (var _e = 0; _e < 12; _e++) {\n      if (edgesToDraw[_e] > 0) {\n        lines[lineIdx * 3] = 2;\n        lines[lineIdx * 3 + 1] = edgePoints[_e][0];\n        lines[lineIdx * 3 + 2] = edgePoints[_e][1];\n        lineIdx++;\n      }\n    } // now handle gridlines\n    // grid lines are tick[axis1] + ticks[axes2] lines each having two points\n    // for simplicity we don;t worry about duplicating points, this is tiny\n\n\n    if (model.gridLines) {\n      // for each visible face\n      // add the points\n      for (var _f = 0; _f < 6; _f++) {\n        if (facesToDraw[_f]) {\n          var faceIdx = Math.floor(_f / 2);\n          var aticks = ticks[faceAxes[_f][0]];\n\n          for (var t = 0; t < aticks.length; t++) {\n            points[ptIdx * 3 + faceIdx] = model.dataBounds[_f];\n            points[ptIdx * 3 + faceAxes[_f][0]] = aticks[t];\n            points[ptIdx * 3 + faceAxes[_f][1]] = model.dataBounds[faceAxes[_f][1] * 2];\n            ptIdx++;\n            points[ptIdx * 3 + faceIdx] = model.dataBounds[_f];\n            points[ptIdx * 3 + faceAxes[_f][0]] = aticks[t];\n            points[ptIdx * 3 + faceAxes[_f][1]] = model.dataBounds[faceAxes[_f][1] * 2 + 1];\n            ptIdx++;\n            lines[lineIdx * 3] = 2;\n            lines[lineIdx * 3 + 1] = ptIdx - 2;\n            lines[lineIdx * 3 + 2] = ptIdx - 1;\n            lineIdx++;\n          }\n\n          aticks = ticks[faceAxes[_f][1]];\n\n          for (var _t = 0; _t < aticks.length; _t++) {\n            points[ptIdx * 3 + faceIdx] = model.dataBounds[_f];\n            points[ptIdx * 3 + faceAxes[_f][1]] = aticks[_t];\n            points[ptIdx * 3 + faceAxes[_f][0]] = model.dataBounds[faceAxes[_f][0] * 2];\n            ptIdx++;\n            points[ptIdx * 3 + faceIdx] = model.dataBounds[_f];\n            points[ptIdx * 3 + faceAxes[_f][1]] = aticks[_t];\n            points[ptIdx * 3 + faceAxes[_f][0]] = model.dataBounds[faceAxes[_f][0] * 2 + 1];\n            ptIdx++;\n            lines[lineIdx * 3] = 2;\n            lines[lineIdx * 3 + 1] = ptIdx - 2;\n            lines[lineIdx * 3 + 2] = ptIdx - 1;\n            lineIdx++;\n          }\n        }\n      }\n    }\n\n    model.polyData.getPoints().setData(points, 3);\n    model.polyData.getPoints().modified();\n    model.polyData.getLines().setData(lines, 1);\n    model.polyData.getLines().modified();\n    model.polyData.modified();\n  }; // update the data that represents where to put the labels\n  // in world coordinates. This only changes when faces to draw changes\n  // of dataBounds changes\n\n\n  publicAPI.updateTextData = function (facesToDraw, edgesToDraw, ticks, tickStrings) {\n    // count outside edgesToDraw\n    var textPointCount = 0;\n\n    for (var e = 0; e < 12; e++) {\n      if (edgesToDraw[e] === 1) {\n        textPointCount += 2;\n        textPointCount += ticks[edgeAxes[e]].length;\n      }\n    }\n\n    var points = model.polyData.getPoints().getData();\n    var textPoints = new Float64Array(textPointCount * 3);\n    var ptIdx = 0;\n    var textIdx = 0;\n    var axisCount = 0;\n\n    for (var f = 0; f < 6; f++) {\n      if (facesToDraw[f]) {\n        for (var _e2 = 0; _e2 < 4; _e2++) {\n          var edgeIdx = faceEdges[f][_e2];\n\n          if (edgesToDraw[edgeIdx] === 1) {\n            var edgeAxis = edgeAxes[edgeIdx]; // add a middle point on the edge\n\n            var ptIdx1 = edgePoints[edgeIdx][0] * 3;\n            var ptIdx2 = edgePoints[edgeIdx][1] * 3;\n            textPoints[ptIdx * 3] = 0.5 * (points[ptIdx1] + points[ptIdx2]);\n            textPoints[ptIdx * 3 + 1] = 0.5 * (points[ptIdx1 + 1] + points[ptIdx2 + 1]);\n            textPoints[ptIdx * 3 + 2] = 0.5 * (points[ptIdx1 + 2] + points[ptIdx2 + 2]);\n            ptIdx++; // add a middle face point, we use this to\n            // move the labels away from the edge in the right direction\n\n            var faceIdx = Math.floor(f / 2);\n            textPoints[ptIdx * 3 + faceIdx] = model.dataBounds[f];\n            textPoints[ptIdx * 3 + faceAxes[f][0]] = 0.5 * (model.dataBounds[faceAxes[f][0] * 2] + model.dataBounds[faceAxes[f][0] * 2 + 1]);\n            textPoints[ptIdx * 3 + faceAxes[f][1]] = 0.5 * (model.dataBounds[faceAxes[f][1] * 2] + model.dataBounds[faceAxes[f][1] * 2 + 1]);\n            ptIdx++; // set the text\n\n            model.textValues[textIdx] = model.axisLabels[edgeAxis];\n            textIdx++; // now add the tick marks along the edgeAxis\n\n            var otherAxis1 = (edgeAxis + 1) % 3;\n            var otherAxis2 = (edgeAxis + 2) % 3;\n            var aticks = ticks[edgeAxis];\n            var atickStrings = tickStrings[edgeAxis];\n            model.tickCounts[axisCount] = aticks.length;\n\n            for (var t = 0; t < aticks.length; t++) {\n              textPoints[ptIdx * 3 + edgeAxis] = aticks[t];\n              textPoints[ptIdx * 3 + otherAxis1] = points[ptIdx1 + otherAxis1];\n              textPoints[ptIdx * 3 + otherAxis2] = points[ptIdx1 + otherAxis2];\n              ptIdx++; // set the text\n\n              model.textValues[textIdx] = atickStrings[t];\n              textIdx++;\n            }\n\n            axisCount++;\n          }\n        }\n      }\n    }\n\n    model.textPolyData.getPoints().setData(textPoints, 3);\n    model.textPolyData.modified();\n  }; // main method to rebuild the cube axes, gets called on camera modify\n  // and changes to key members\n\n\n  publicAPI.update = function () {\n    // Can't do anything if we don't have a camera...\n    if (!model.camera) {\n      return;\n    } // compute what faces to draw\n\n\n    var facesChanged = publicAPI.computeFacesToDraw();\n    var facesToDraw = model.lastFacesToDraw; // have the bounds changed?\n\n    var boundsChanged = false;\n\n    for (var i = 0; i < 6; i++) {\n      if (model.dataBounds[i] !== model.lastTickBounds[i]) {\n        boundsChanged = true;\n        model.lastTickBounds[i] = model.dataBounds[i];\n      }\n    } // did something significant change? If so rebuild a lot of things\n\n\n    if (facesChanged || boundsChanged || model.forceUpdate) {\n      // compute the edges to draw\n      // for each drawn face, mark edges, all single mark edges we draw\n      var edgesToDraw = new Array(12).fill(0);\n\n      for (var f = 0; f < 6; f++) {\n        if (facesToDraw[f]) {\n          for (var e = 0; e < 4; e++) {\n            edgesToDraw[faceEdges[f][e]]++;\n          }\n        }\n      } // compute tick marks for axes\n\n\n      var ticks = [];\n      var tickStrings = [];\n\n      for (var _i = 0; _i < 3; _i++) {\n        var scale = d3_scale__WEBPACK_IMPORTED_MODULE_12__[\"default\"]().domain([model.dataBounds[_i * 2], model.dataBounds[_i * 2 + 1]]);\n        ticks[_i] = scale.ticks(5);\n        var format = scale.tickFormat(5);\n        tickStrings[_i] = ticks[_i].map(format);\n      } // update gridlines / edge lines\n\n\n      publicAPI.updatePolyData(facesToDraw, edgesToDraw, ticks); // compute label world coords and text\n\n      publicAPI.updateTextData(facesToDraw, edgesToDraw, ticks, tickStrings); // rebuild the texture only when force or changed bounds, face\n      // visibility changes do to change the atlas\n\n      if (boundsChanged || model.forceUpdate) {\n        publicAPI.updateTextureAtlas(tickStrings);\n      }\n    }\n\n    model.forceUpdate = false;\n  }; // create the texture map atlas that contains the rendering of\n  // all the text strings. Only needs to be called when the text strings\n  // have changed (labels and ticks)\n\n\n  publicAPI.updateTextureAtlas = function (tickStrings) {\n    // compute the width and height we need\n    // set the text properties\n    model.tmContext.textBaseline = 'bottom';\n    model.tmContext.textAlign = 'left'; // first the three labels\n\n    model._tmAtlas.clear();\n\n    var maxWidth = 0;\n    var totalHeight = 1; // start one pixel in so we have a border\n\n    for (var i = 0; i < 3; i++) {\n      if (!model._tmAtlas.has(model.axisLabels[i])) {\n        applyTextStyle(model.tmContext, model.axisTextStyle);\n        var metrics = model.tmContext.measureText(model.axisLabels[i]);\n        var entry = {\n          height: metrics.actualBoundingBoxAscent + 2,\n          startingHeight: totalHeight,\n          width: metrics.width + 2,\n          textStyle: model.axisTextStyle\n        };\n\n        model._tmAtlas.set(model.axisLabels[i], entry);\n\n        totalHeight += entry.height;\n\n        if (maxWidth < entry.width) {\n          maxWidth = entry.width;\n        }\n      } // and the ticks\n\n\n      applyTextStyle(model.tmContext, model.tickTextStyle);\n\n      for (var t = 0; t < tickStrings[i].length; t++) {\n        if (!model._tmAtlas.has(tickStrings[i][t])) {\n          var _metrics = model.tmContext.measureText(tickStrings[i][t]);\n\n          var _entry = {\n            height: _metrics.actualBoundingBoxAscent + 2,\n            startingHeight: totalHeight,\n            width: _metrics.width + 2,\n            textStyle: model.tickTextStyle\n          };\n\n          model._tmAtlas.set(tickStrings[i][t], _entry);\n\n          totalHeight += _entry.height;\n\n          if (maxWidth < _entry.width) {\n            maxWidth = _entry.width;\n          }\n        }\n      }\n    } // always use power of two to avoid interpolation\n    // in cases where PO2 is required\n\n\n    maxWidth = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.M)(maxWidth);\n    totalHeight = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.M)(totalHeight); // set the tcoord values\n\n    model._tmAtlas.forEach(function (value) {\n      value.tcoords = [0.0, (totalHeight - value.startingHeight - value.height) / totalHeight, value.width / maxWidth, (totalHeight - value.startingHeight - value.height) / totalHeight, value.width / maxWidth, (totalHeight - value.startingHeight) / totalHeight, 0.0, (totalHeight - value.startingHeight) / totalHeight];\n    }); // make sure we have power of two dimensions\n\n\n    model.tmCanvas.width = maxWidth;\n    model.tmCanvas.height = totalHeight;\n    model.tmContext.textBaseline = 'bottom';\n    model.tmContext.textAlign = 'left';\n    model.tmContext.clearRect(0, 0, maxWidth, totalHeight); // draw the text onto the texture\n\n    model._tmAtlas.forEach(function (value, key) {\n      applyTextStyle(model.tmContext, value.textStyle);\n      model.tmContext.fillText(key, 1, value.startingHeight + value.height - 1);\n    });\n\n    model.tmTexture.setCanvas(model.tmCanvas);\n    model.tmTexture.modified();\n  }; // Make sure the data is correct\n\n\n  publicAPI.onModified(function () {\n    model.forceUpdate = true;\n    publicAPI.update();\n  });\n\n  publicAPI.setTickTextStyle = function (tickStyle) {\n    model.tickTextStyle = _objectSpread(_objectSpread({}, model.tickTextStyle), tickStyle);\n    publicAPI.modified();\n  };\n\n  publicAPI.setAxisTextStyle = function (axisStyle) {\n    model.axisTextStyle = _objectSpread(_objectSpread({}, model.axisTextStyle), axisStyle);\n    publicAPI.modified();\n  };\n\n  publicAPI.get_tmAtlas = function () {\n    return model._tmAtlas;\n  }; // try to get the bounds for the annotation. This is complicated\n  // as it relies on the pixel size of the window. Every time the camera\n  // changes the bounds change. This method simplifies by just expanding\n  // the grid bounds by a user specified factor.\n\n\n  publicAPI.getBounds = function () {\n    publicAPI.update();\n    _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].setBounds(model.bounds, model.gridActor.getBounds());\n    _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].scaleAboutCenter(model.bounds, model.boundsScaleFactor, model.boundsScaleFactor, model.boundsScaleFactor);\n    return model.bounds;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nfunction defaultValues(initialValues) {\n  return _objectSpread({\n    boundsScaleFactor: 1.3,\n    camera: null,\n    dataBounds: (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].INIT_BOUNDS),\n    faceVisibilityAngle: 8,\n    gridLines: true,\n    axisLabels: null,\n    axisTitlePixelOffset: 35.0,\n    axisTextStyle: {\n      fontColor: 'white',\n      fontStyle: 'normal',\n      fontSize: 18,\n      fontFamily: 'serif'\n    },\n    tickLabelPixelOffset: 12.0,\n    tickTextStyle: {\n      fontColor: 'white',\n      fontStyle: 'normal',\n      fontSize: 14,\n      fontFamily: 'serif'\n    }\n  }, initialValues);\n} // ----------------------------------------------------------------------------\n\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, defaultValues(initialValues)); // Inheritance\n\n  _Actor_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend(publicAPI, model, initialValues); // internal variables\n\n  model.lastFacesToDraw = [false, false, false, false, false, false];\n  model.axisLabels = ['X-Axis', 'Y-Axis', 'Z-Axis'];\n  model.tickCounts = [];\n  model.textValues = [];\n  model.lastTickBounds = [];\n  model.tmCanvas = document.createElement('canvas');\n  model.tmContext = model.tmCanvas.getContext('2d');\n  model._tmAtlas = new Map(); // for texture atlas\n\n  model.tmTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].newInstance();\n  model.tmTexture.setInterpolate(false);\n  publicAPI.getProperty().setDiffuse(0.0);\n  publicAPI.getProperty().setAmbient(1.0);\n  model.gridMapper = _Mapper_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance();\n  model.polyData = _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance();\n  model.gridMapper.setInputData(model.polyData);\n  model.gridActor = _Actor_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance();\n  model.gridActor.setMapper(model.gridMapper);\n  model.gridActor.setProperty(publicAPI.getProperty());\n  model.gridActor.setParentProp(publicAPI);\n  model.textPolyData = _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance();\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setGet(publicAPI, model, ['axisTitlePixelOffset', 'boundsScaleFactor', 'faceVisibilityAngle', 'gridLines', 'tickLabelPixelOffset']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setGetArray(publicAPI, model, ['dataBounds'], 6);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setGetArray(publicAPI, model, ['axisLabels'], 3);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].get(publicAPI, model, ['axisTextStyle', 'tickTextStyle', 'camera', 'tmTexture', 'textValues', 'textPolyData', 'tickCounts', 'gridActor']); // Object methods\n\n  vtkCubeAxesActor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance(extend, 'vtkCubeAxesActor'); // ----------------------------------------------------------------------------\n\nvar vtkCubeAxesActor$1 = {\n  newInstance: newInstance,\n  extend: extend,\n  newCubeAxesActorHelper: newCubeAxesActorHelper\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/CubeAxesActor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/HardwareSelector.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/HardwareSelector.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkHardwareSelector$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_DataModel_DataSet_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Common/DataModel/DataSet.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/DataSet.js\");\n\n\n\n\n\nvar FieldAssociations = _Common_DataModel_DataSet_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FieldAssociations; // ----------------------------------------------------------------------------\n// vtkHardwareSelector methods\n// ----------------------------------------------------------------------------\n\nfunction vtkHardwareSelector(publicAPI, model) {\n  model.classHierarchy.push('vtkHardwareSelector'); // get the source data that is used for generating a selection. This\n  // must be called at least once before calling generateSelection. In\n  // raster based backends this method will capture the buffers. You can\n  // call this once and then make multiple calls to generateSelection.\n\n  publicAPI.getSourceDataAsync = /*#__PURE__*/function () {\n    var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(renderer, fx1, fy1, fx2, fy2) {\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee);\n    }));\n\n    return function (_x, _x2, _x3, _x4, _x5) {\n      return _ref.apply(this, arguments);\n    };\n  }();\n\n  publicAPI.selectAsync = /*#__PURE__*/function () {\n    var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2(renderer, fx1, fy1, fx2, fy2) {\n      var srcData;\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              _context2.next = 2;\n              return publicAPI.getSourceDataAsync(renderer, fx1, fy1, fx2, fy2);\n\n            case 2:\n              srcData = _context2.sent;\n\n              if (!srcData) {\n                _context2.next = 5;\n                break;\n              }\n\n              return _context2.abrupt(\"return\", srcData.generateSelection(fx1, fy1, fx2, fy2));\n\n            case 5:\n              return _context2.abrupt(\"return\", []);\n\n            case 6:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, _callee2);\n    }));\n\n    return function (_x6, _x7, _x8, _x9, _x10) {\n      return _ref2.apply(this, arguments);\n    };\n  }();\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  fieldAssociation: FieldAssociations.FIELD_ASSOCIATION_CELLS,\n  captureZValues: false\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setGet(publicAPI, model, ['fieldAssociation', 'captureZValues']); // Object methods\n\n  vtkHardwareSelector(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance(extend, 'vtkHardwareSelector'); // ----------------------------------------------------------------------------\n\nvar vtkHardwareSelector$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/HardwareSelector.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/InteractorObserver.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/InteractorObserver.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"default\": () => (/* binding */ vtkInteractorObserver$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _RenderWindowInteractor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RenderWindowInteractor.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro,\n    VOID = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].VOID; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n//----------------------------------------------------------------------------\n// Description:\n// Transform from world to display coordinates.\n\nfunction computeWorldToDisplay(renderer, x, y, z) {\n  var view = renderer.getRenderWindow().getViews()[0];\n  return view.worldToDisplay(x, y, z, renderer);\n} //----------------------------------------------------------------------------\n// Description:\n// Transform from display to world coordinates.\n\n\nfunction computeDisplayToWorld(renderer, x, y, z) {\n  var view = renderer.getRenderWindow().getViews()[0];\n  return view.displayToWorld(x, y, z, renderer);\n} // ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\n\nvar STATIC = {\n  computeWorldToDisplay: computeWorldToDisplay,\n  computeDisplayToWorld: computeDisplayToWorld\n}; // ----------------------------------------------------------------------------\n// vtkInteractorObserver methods\n// ----------------------------------------------------------------------------\n\nfunction vtkInteractorObserver(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkInteractorObserver');\n\n  var superClass = _objectSpread({}, publicAPI); //----------------------------------------------------------------------------\n\n\n  function unsubscribeFromEvents() {\n    while (model.subscribedEvents.length) {\n      model.subscribedEvents.pop().unsubscribe();\n    }\n  } //----------------------------------------------------------------------------\n  // Check what events we can handle and register callbacks\n\n\n  function subscribeToEvents() {\n    _RenderWindowInteractor_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].handledEvents.forEach(function (eventName) {\n      if (publicAPI[\"handle\".concat(eventName)]) {\n        model.subscribedEvents.push(model._interactor[\"on\".concat(eventName)](function (callData) {\n          if (model.processEvents) {\n            return publicAPI[\"handle\".concat(eventName)](callData);\n          }\n\n          return VOID;\n        }, model.priority));\n      }\n    });\n  } //----------------------------------------------------------------------------\n  // Public API methods\n  //----------------------------------------------------------------------------\n\n\n  publicAPI.setInteractor = function (i) {\n    if (i === model._interactor) {\n      return;\n    }\n\n    unsubscribeFromEvents();\n    model._interactor = i;\n\n    if (i && model.enabled) {\n      subscribeToEvents();\n    }\n\n    publicAPI.modified();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.setEnabled = function (enable) {\n    if (enable === model.enabled) {\n      return;\n    }\n\n    unsubscribeFromEvents();\n\n    if (enable) {\n      if (model._interactor) {\n        subscribeToEvents();\n      } else {\n        vtkErrorMacro(\"\\n          The interactor must be set before subscribing to events\\n        \");\n      }\n    }\n\n    model.enabled = enable;\n    publicAPI.modified();\n  }; //----------------------------------------------------------------------------\n  // Description:\n  // Transform from display to world coordinates.\n\n\n  publicAPI.computeDisplayToWorld = function (renderer, x, y, z) {\n    if (!renderer) {\n      return null;\n    }\n\n    return model._interactor.getView().displayToWorld(x, y, z, renderer);\n  }; //----------------------------------------------------------------------------\n  // Description:\n  // Transform from world to display coordinates.\n\n\n  publicAPI.computeWorldToDisplay = function (renderer, x, y, z) {\n    if (!renderer) {\n      return null;\n    }\n\n    return model._interactor.getView().worldToDisplay(x, y, z, renderer);\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.setPriority = function (priority) {\n    var modified = superClass.setPriority(priority);\n\n    if (modified && model._interactor) {\n      unsubscribeFromEvents();\n      subscribeToEvents();\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  enabled: true,\n  // _interactor: null,\n  priority: 0.0,\n  processEvents: true,\n  subscribedEvents: []\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].event(publicAPI, model, 'InteractionEvent');\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].event(publicAPI, model, 'StartInteractionEvent');\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].event(publicAPI, model, 'EndInteractionEvent'); // Create get-only macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['_interactor', 'enabled']); // Create get-set macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['priority', 'processEvents']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].moveToProtected(publicAPI, model, ['interactor']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkInteractorObserver(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkInteractorObserver'); // ----------------------------------------------------------------------------\n\nvar vtkInteractorObserver$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, STATIC);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/InteractorObserver.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/InteractorStyle.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/InteractorStyle.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkInteractorStyle$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _InteractorObserver_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./InteractorObserver.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/InteractorObserver.js\");\n/* harmony import */ var _InteractorStyle_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./InteractorStyle/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/InteractorStyle/Constants.js\");\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar States = _InteractorStyle_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].States; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n// Add module-level functions or api that you want to expose statically via\n// the next section...\n\nvar stateNames = {\n  Rotate: States.IS_ROTATE,\n  Pan: States.IS_PAN,\n  Spin: States.IS_SPIN,\n  Dolly: States.IS_DOLLY,\n  CameraPose: States.IS_CAMERA_POSE,\n  WindowLevel: States.IS_WINDOW_LEVEL,\n  Slice: States.IS_SLICE\n}; // ----------------------------------------------------------------------------\n// vtkInteractorStyle methods\n// ----------------------------------------------------------------------------\n\nfunction vtkInteractorStyle(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkInteractorStyle'); // Public API methods\n  // create bunch of Start/EndState methods\n\n  Object.keys(stateNames).forEach(function (key) {\n    _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].event(publicAPI, model, \"Start\".concat(key, \"Event\"));\n\n    publicAPI[\"start\".concat(key)] = function () {\n      if (model.state !== States.IS_NONE) {\n        return;\n      }\n\n      model.state = stateNames[key];\n\n      model._interactor.requestAnimation(publicAPI);\n\n      publicAPI.invokeStartInteractionEvent({\n        type: 'StartInteractionEvent'\n      });\n      publicAPI[\"invokeStart\".concat(key, \"Event\")]({\n        type: \"Start\".concat(key, \"Event\")\n      });\n    };\n\n    _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].event(publicAPI, model, \"End\".concat(key, \"Event\"));\n\n    publicAPI[\"end\".concat(key)] = function () {\n      if (model.state !== stateNames[key]) {\n        return;\n      }\n\n      model.state = States.IS_NONE;\n\n      model._interactor.cancelAnimation(publicAPI);\n\n      publicAPI.invokeEndInteractionEvent({\n        type: 'EndInteractionEvent'\n      });\n      publicAPI[\"invokeEnd\".concat(key, \"Event\")]({\n        type: \"End\".concat(key, \"Event\")\n      });\n\n      model._interactor.render();\n    };\n  }); //----------------------------------------------------------------------------\n\n  publicAPI.handleKeyPress = function (callData) {\n    var rwi = model._interactor;\n    var ac = null;\n\n    switch (callData.key) {\n      case 'r':\n      case 'R':\n        callData.pokedRenderer.resetCamera();\n        rwi.render();\n        break;\n\n      case 'w':\n      case 'W':\n        ac = callData.pokedRenderer.getActors();\n        ac.forEach(function (anActor) {\n          var prop = anActor.getProperty();\n\n          if (prop.setRepresentationToWireframe) {\n            prop.setRepresentationToWireframe();\n          }\n        });\n        rwi.render();\n        break;\n\n      case 's':\n      case 'S':\n        ac = callData.pokedRenderer.getActors();\n        ac.forEach(function (anActor) {\n          var prop = anActor.getProperty();\n\n          if (prop.setRepresentationToSurface) {\n            prop.setRepresentationToSurface();\n          }\n        });\n        rwi.render();\n        break;\n\n      case 'v':\n      case 'V':\n        ac = callData.pokedRenderer.getActors();\n        ac.forEach(function (anActor) {\n          var prop = anActor.getProperty();\n\n          if (prop.setRepresentationToPoints) {\n            prop.setRepresentationToPoints();\n          }\n        });\n        rwi.render();\n        break;\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  state: States.IS_NONE,\n  handleObservers: 1,\n  autoAdjustCameraClippingRange: 1\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _InteractorObserver_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues); // Object specific methods\n\n  vtkInteractorStyle(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkInteractorStyle'); // ----------------------------------------------------------------------------\n\nvar vtkInteractorStyle$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _InteractorStyle_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/InteractorStyle.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/InteractorStyle/Constants.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/InteractorStyle/Constants.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"States\": () => (/* binding */ States),\n/* harmony export */   \"default\": () => (/* binding */ vtkInteractorStyleConstants)\n/* harmony export */ });\nvar States = {\n  IS_START: 0,\n  IS_NONE: 0,\n  IS_ROTATE: 1,\n  IS_PAN: 2,\n  IS_SPIN: 3,\n  IS_DOLLY: 4,\n  IS_CAMERA_POSE: 11,\n  IS_WINDOW_LEVEL: 1024,\n  IS_SLICE: 1025\n};\nvar vtkInteractorStyleConstants = {\n  States: States\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/InteractorStyle/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Light.js":
/*!**************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Light.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"LIGHT_TYPES\": () => (/* binding */ LIGHT_TYPES),\n/* harmony export */   \"default\": () => (/* binding */ vtkLight$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n\n\n\nvar LIGHT_TYPES = ['HeadLight', 'CameraLight', 'SceneLight']; // ----------------------------------------------------------------------------\n// vtkLight methods\n// ----------------------------------------------------------------------------\n\nfunction vtkLight(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkLight');\n\n  publicAPI.getTransformedPosition = function () {\n    if (model.transformMatrix) {\n      return []; // FIXME !!!!\n    }\n\n    return [].concat(model.position);\n  };\n\n  publicAPI.getTransformedFocalPoint = function () {\n    if (model.transformMatrix) {\n      return []; // FIXME !!!!\n    }\n\n    return [].concat(model.focalPoint);\n  };\n\n  publicAPI.getDirection = function () {\n    if (model.directionMTime < model.mtime) {\n      model.direction[0] = model.focalPoint[0] - model.position[0];\n      model.direction[1] = model.focalPoint[1] - model.position[1];\n      model.direction[2] = model.focalPoint[2] - model.position[2];\n      (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.l)(model.direction);\n      model.directionMTime = model.mtime;\n    }\n\n    return model.direction;\n  };\n\n  publicAPI.setDirectionAngle = function (elevation, azimuth) {\n    var elevationRadians = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.r)(elevation);\n    var azimuthRadians = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_1__.r)(azimuth);\n    publicAPI.setPosition(Math.cos(elevationRadians) * Math.sin(azimuthRadians), Math.sin(elevationRadians), Math.cos(elevationRadians) * Math.cos(azimuthRadians));\n    publicAPI.setFocalPoint(0, 0, 0);\n    publicAPI.setPositional(0);\n  };\n\n  publicAPI.setLightTypeToHeadLight = function () {\n    publicAPI.setLightType('HeadLight');\n  };\n\n  publicAPI.setLightTypeToCameraLight = function () {\n    publicAPI.setLightType('CameraLight');\n  };\n\n  publicAPI.setLightTypeToSceneLight = function () {\n    publicAPI.setTransformMatrix(null);\n    publicAPI.setLightType('SceneLight');\n  };\n\n  publicAPI.lightTypeIsHeadLight = function () {\n    return model.lightType === 'HeadLight';\n  };\n\n  publicAPI.lightTypeIsSceneLight = function () {\n    return model.lightType === 'SceneLight';\n  };\n\n  publicAPI.lightTypeIsCameraLight = function () {\n    return model.lightType === 'CameraLight';\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  switch: true,\n  intensity: 1,\n  color: [1, 1, 1],\n  position: [0, 0, 1],\n  focalPoint: [0, 0, 0],\n  positional: false,\n  exponent: 1,\n  coneAngle: 30,\n  attenuationValues: [1, 0, 0],\n  transformMatrix: null,\n  lightType: 'SceneLight',\n  shadowAttenuation: 1,\n  direction: [0, 0, 0],\n  directionMTime: 0\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['intensity', 'switch', 'positional', 'exponent', 'coneAngle', 'transformMatrix', 'lightType', 'shadowAttenuation']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGetArray(publicAPI, model, ['color', 'position', 'focalPoint', 'attenuationValues'], 3); // Object methods\n\n  vtkLight(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkLight'); // ----------------------------------------------------------------------------\n\nvar vtkLight$1 = {\n  newInstance: newInstance,\n  extend: extend,\n  LIGHT_TYPES: LIGHT_TYPES\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Light.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js":
/*!***************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkMapper$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _AbstractMapper3D_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AbstractMapper3D.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper3D.js\");\n/* harmony import */ var _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Common/Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _Common_DataModel_ImageData_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Common/DataModel/ImageData.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/ImageData.js\");\n/* harmony import */ var _Common_Core_LookupTable_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Common/Core/LookupTable.js */ \"./node_modules/@kitware/vtk.js/Common/Core/LookupTable.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Common_Core_ScalarsToColors_Constants_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Common/Core/ScalarsToColors/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors/Constants.js\");\n/* harmony import */ var _Mapper_CoincidentTopologyHelper_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Mapper/CoincidentTopologyHelper.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/CoincidentTopologyHelper.js\");\n/* harmony import */ var _Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Mapper/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Constants.js\");\n\n\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar staticOffsetAPI = _Mapper_CoincidentTopologyHelper_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].staticOffsetAPI,\n    otherStaticMethods = _Mapper_CoincidentTopologyHelper_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].otherStaticMethods;\nvar ColorMode = _Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].ColorMode,\n    ScalarMode = _Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].ScalarMode,\n    GetArray = _Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].GetArray;\nvar VectorMode = _Common_Core_ScalarsToColors_Constants_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].VectorMode;\nvar VtkDataTypes = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].VtkDataTypes; // ----------------------------------------------------------------------------\n\nfunction notImplemented(method) {\n  return function () {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro(\"vtkMapper::\".concat(method, \" - NOT IMPLEMENTED\"));\n  };\n} // ----------------------------------------------------------------------------\n// vtkMapper methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkMapper(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkMapper');\n\n  publicAPI.getBounds = function () {\n    var input = publicAPI.getInputData();\n\n    if (!input) {\n      model.bounds = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_6__.N)();\n    } else {\n      if (!model.static) {\n        publicAPI.update();\n      }\n\n      model.bounds = input.getBounds();\n    }\n\n    return model.bounds;\n  };\n\n  publicAPI.setForceCompileOnly = function (v) {\n    model.forceCompileOnly = v; // make sure we do NOT call modified()\n  };\n\n  publicAPI.createDefaultLookupTable = function () {\n    model.lookupTable = _Common_Core_LookupTable_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance();\n  };\n\n  publicAPI.getColorModeAsString = function () {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].enumToString(ColorMode, model.colorMode);\n  };\n\n  publicAPI.setColorModeToDefault = function () {\n    return publicAPI.setColorMode(0);\n  };\n\n  publicAPI.setColorModeToMapScalars = function () {\n    return publicAPI.setColorMode(1);\n  };\n\n  publicAPI.setColorModeToDirectScalars = function () {\n    return publicAPI.setColorMode(2);\n  };\n\n  publicAPI.getScalarModeAsString = function () {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].enumToString(ScalarMode, model.scalarMode);\n  };\n\n  publicAPI.setScalarModeToDefault = function () {\n    return publicAPI.setScalarMode(0);\n  };\n\n  publicAPI.setScalarModeToUsePointData = function () {\n    return publicAPI.setScalarMode(1);\n  };\n\n  publicAPI.setScalarModeToUseCellData = function () {\n    return publicAPI.setScalarMode(2);\n  };\n\n  publicAPI.setScalarModeToUsePointFieldData = function () {\n    return publicAPI.setScalarMode(3);\n  };\n\n  publicAPI.setScalarModeToUseCellFieldData = function () {\n    return publicAPI.setScalarMode(4);\n  };\n\n  publicAPI.setScalarModeToUseFieldData = function () {\n    return publicAPI.setScalarMode(5);\n  };\n\n  publicAPI.getAbstractScalars = function (input, scalarMode, arrayAccessMode, arrayId, arrayName) {\n    // make sure we have an input\n    if (!input || !model.scalarVisibility) {\n      return {\n        scalars: null,\n        cellFLag: false\n      };\n    }\n\n    var scalars = null;\n    var cellFlag = false; // get and scalar data according to scalar mode\n\n    if (scalarMode === ScalarMode.DEFAULT) {\n      scalars = input.getPointData().getScalars();\n\n      if (!scalars) {\n        scalars = input.getCellData().getScalars();\n        cellFlag = true;\n      }\n    } else if (scalarMode === ScalarMode.USE_POINT_DATA) {\n      scalars = input.getPointData().getScalars();\n    } else if (scalarMode === ScalarMode.USE_CELL_DATA) {\n      scalars = input.getCellData().getScalars();\n      cellFlag = true;\n    } else if (scalarMode === ScalarMode.USE_POINT_FIELD_DATA) {\n      var pd = input.getPointData();\n\n      if (arrayAccessMode === GetArray.BY_ID) {\n        scalars = pd.getArrayByIndex(arrayId);\n      } else {\n        scalars = pd.getArrayByName(arrayName);\n      }\n    } else if (scalarMode === ScalarMode.USE_CELL_FIELD_DATA) {\n      var cd = input.getCellData();\n      cellFlag = true;\n\n      if (arrayAccessMode === GetArray.BY_ID) {\n        scalars = cd.getArrayByIndex(arrayId);\n      } else {\n        scalars = cd.getArrayByName(arrayName);\n      }\n    } else if (scalarMode === ScalarMode.USE_FIELD_DATA) {\n      var fd = input.getFieldData();\n\n      if (arrayAccessMode === GetArray.BY_ID) {\n        scalars = fd.getArrayByIndex(arrayId);\n      } else {\n        scalars = fd.getArrayByName(arrayName);\n      }\n    }\n\n    return {\n      scalars: scalars,\n      cellFlag: cellFlag\n    };\n  };\n\n  publicAPI.mapScalars = function (input, alpha) {\n    var scalars = publicAPI.getAbstractScalars(input, model.scalarMode, model.arrayAccessMode, model.arrayId, model.colorByArrayName).scalars;\n\n    if (!scalars) {\n      model.colorCoordinates = null;\n      model.colorTextureMap = null;\n      model.colorMapColors = null;\n      return;\n    } // we want to only recompute when something has changed\n\n\n    var toString = \"\".concat(publicAPI.getMTime()).concat(scalars.getMTime()).concat(alpha);\n    if (model.colorBuildString === toString) return;\n\n    if (!model.useLookupTableScalarRange) {\n      publicAPI.getLookupTable().setRange(model.scalarRange[0], model.scalarRange[1]);\n    } // Decide between texture color or vertex color.\n    // Cell data always uses vertex color.\n    // Only point data can use both texture and vertex coloring.\n\n\n    if (publicAPI.canUseTextureMapForColoring(input)) {\n      publicAPI.mapScalarsToTexture(scalars, alpha);\n    } else {\n      model.colorCoordinates = null;\n      model.colorTextureMap = null;\n      var lut = publicAPI.getLookupTable();\n\n      if (lut) {\n        // Ensure that the lookup table is built\n        lut.build();\n        model.colorMapColors = lut.mapScalars(scalars, model.colorMode, model.fieldDataTupleId);\n      }\n    }\n\n    model.colorBuildString = \"\".concat(publicAPI.getMTime()).concat(scalars.getMTime()).concat(alpha);\n  }; //-----------------------------------------------------------------------------\n\n\n  publicAPI.scalarToTextureCoordinate = function (scalarValue, // Input scalar\n  rangeMin, // range[0]\n  invRangeWidth) {\n    // 1/(range[1]-range[0])\n    var texCoordS = 0.5; // Scalar value is arbitrary when NaN\n\n    var texCoordT = 1.0; // 1.0 in t coordinate means NaN\n\n    if (!(0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_6__.i)(scalarValue)) {\n      // 0.0 in t coordinate means not NaN.  So why am I setting it to 0.49?\n      // Because when you are mapping scalars and you have a NaN adjacent to\n      // anything else, the interpolation everywhere should be NaN.  Thus, I\n      // want the NaN color everywhere except right on the non-NaN neighbors.\n      // To simulate this, I set the t coord for the real numbers close to\n      // the threshold so that the interpolation almost immediately looks up\n      // the NaN value.\n      texCoordT = 0.49;\n      texCoordS = (scalarValue - rangeMin) * invRangeWidth; // Some implementations apparently don't handle relatively large\n      // numbers (compared to the range [0.0, 1.0]) very well. In fact,\n      // values above 1122.0f appear to cause texture wrap-around on\n      // some systems even when edge clamping is enabled. Why 1122.0f? I\n      // don't know. For safety, we'll clamp at +/- 1000. This will\n      // result in incorrect images when the texture value should be\n      // above or below 1000, but I don't have a better solution.\n\n      if (texCoordS > 1000.0) {\n        texCoordS = 1000.0;\n      } else if (texCoordS < -1000.0) {\n        texCoordS = -1000.0;\n      }\n    }\n\n    return {\n      texCoordS: texCoordS,\n      texCoordT: texCoordT\n    };\n  }; //-----------------------------------------------------------------------------\n\n\n  publicAPI.createColorTextureCoordinates = function (input, output, numScalars, numComps, component, range, tableRange, tableNumberOfColors, useLogScale) {\n    // We have to change the range used for computing texture\n    // coordinates slightly to accommodate the special above- and\n    // below-range colors that are the first and last texels,\n    // respectively.\n    var scalarTexelWidth = (range[1] - range[0]) / tableNumberOfColors;\n    var paddedRange = [];\n    paddedRange[0] = range[0] - scalarTexelWidth;\n    paddedRange[1] = range[1] + scalarTexelWidth;\n    var invRangeWidth = 1.0 / (paddedRange[1] - paddedRange[0]);\n    var outputV = output.getData();\n    var inputV = input.getData();\n    var count = 0;\n    var outputCount = 0;\n\n    if (component < 0 || component >= numComps) {\n      for (var scalarIdx = 0; scalarIdx < numScalars; ++scalarIdx) {\n        var sum = 0;\n\n        for (var compIdx = 0; compIdx < numComps; ++compIdx) {\n          sum += inputV[count] * inputV[count];\n          count++;\n        }\n\n        var magnitude = Math.sqrt(sum);\n\n        if (useLogScale) {\n          magnitude = _Common_Core_LookupTable_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].applyLogScale(magnitude, tableRange, range);\n        }\n\n        var outputs = publicAPI.scalarToTextureCoordinate(magnitude, paddedRange[0], invRangeWidth);\n        outputV[outputCount] = outputs.texCoordS;\n        outputV[outputCount + 1] = outputs.texCoordT;\n        outputCount += 2;\n      }\n    } else {\n      count += component;\n\n      for (var _scalarIdx = 0; _scalarIdx < numScalars; ++_scalarIdx) {\n        var inputValue = inputV[count];\n\n        if (useLogScale) {\n          inputValue = _Common_Core_LookupTable_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].applyLogScale(inputValue, tableRange, range);\n        }\n\n        var _outputs = publicAPI.scalarToTextureCoordinate(inputValue, paddedRange[0], invRangeWidth);\n\n        outputV[outputCount] = _outputs.texCoordS;\n        outputV[outputCount + 1] = _outputs.texCoordT;\n        outputCount += 2;\n        count += numComps;\n      }\n    }\n  };\n\n  publicAPI.mapScalarsToTexture = function (scalars, alpha) {\n    var range = model.lookupTable.getRange();\n    var useLogScale = model.lookupTable.usingLogScale();\n\n    if (useLogScale) {\n      // convert range to log.\n      _Common_Core_LookupTable_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].getLogRange(range, range);\n    }\n\n    var origAlpha = model.lookupTable.getAlpha(); // Get rid of vertex color array.  Only texture or vertex coloring\n    // can be active at one time.  The existence of the array is the\n    // signal to use that technique.\n\n    model.colorMapColors = null; // If the lookup table has changed, then recreate the color texture map.\n    // Set a new lookup table changes this->MTime.\n\n    if (model.colorTextureMap == null || publicAPI.getMTime() > model.colorTextureMap.getMTime() || model.lookupTable.getMTime() > model.colorTextureMap.getMTime() || model.lookupTable.getAlpha() !== alpha) {\n      model.lookupTable.setAlpha(alpha);\n      model.colorTextureMap = null; // Get the texture map from the lookup table.\n      // Create a dummy ramp of scalars.\n      // In the future, we could extend vtkScalarsToColors.\n\n      model.lookupTable.build();\n      var numberOfColors = model.lookupTable.getNumberOfAvailableColors();\n\n      if (numberOfColors > 4094) {\n        numberOfColors = 4094;\n      }\n\n      numberOfColors += 2;\n      var k = (range[1] - range[0]) / (numberOfColors - 1 - 2);\n      var newArray = new Float64Array(numberOfColors * 2);\n\n      for (var i = 0; i < numberOfColors; ++i) {\n        newArray[i] = range[0] + i * k - k; // minus k to start at below range color\n\n        if (useLogScale) {\n          newArray[i] = Math.pow(10.0, newArray[i]);\n        }\n      } // Dimension on NaN.\n\n\n      for (var _i = 0; _i < numberOfColors; ++_i) {\n        newArray[_i + numberOfColors] = NaN;\n      }\n\n      model.colorTextureMap = _Common_DataModel_ImageData_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance();\n      model.colorTextureMap.setExtent(0, numberOfColors - 1, 0, 1, 0, 0);\n      var tmp = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance({\n        numberOfComponents: 1,\n        values: newArray\n      });\n      model.colorTextureMap.getPointData().setScalars(model.lookupTable.mapScalars(tmp, model.colorMode, 0));\n      model.lookupTable.setAlpha(origAlpha);\n    } // Create new coordinates if necessary.\n    // Need to compare lookup table in case the range has changed.\n\n\n    if (!model.colorCoordinates || publicAPI.getMTime() > model.colorCoordinates.getMTime() || publicAPI.getInputData(0).getMTime() > model.colorCoordinates.getMTime() || model.lookupTable.getMTime() > model.colorCoordinates.getMTime()) {\n      // Get rid of old colors\n      model.colorCoordinates = null; // Now create the color texture coordinates.\n\n      var numComps = scalars.getNumberOfComponents();\n      var num = scalars.getNumberOfTuples(); // const fArray = new FloatArray(num * 2);\n\n      model.colorCoordinates = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance({\n        numberOfComponents: 2,\n        values: new Float32Array(num * 2)\n      });\n      var scalarComponent = model.lookupTable.getVectorComponent(); // Although I like the feature of applying magnitude to single component\n      // scalars, it is not how the old MapScalars for vertex coloring works.\n\n      if (model.lookupTable.getVectorMode() === VectorMode.MAGNITUDE && scalars.getNumberOfComponents() > 1) {\n        scalarComponent = -1;\n      }\n\n      publicAPI.createColorTextureCoordinates(scalars, model.colorCoordinates, num, numComps, scalarComponent, range, model.lookupTable.getRange(), model.colorTextureMap.getPointData().getScalars().getNumberOfTuples() / 2 - 2, useLogScale);\n    }\n  };\n\n  publicAPI.getIsOpaque = function () {\n    var lut = publicAPI.getLookupTable();\n\n    if (lut) {\n      // Ensure that the lookup table is built\n      lut.build();\n      return lut.isOpaque();\n    }\n\n    return true;\n  };\n\n  publicAPI.canUseTextureMapForColoring = function (input) {\n    if (!model.interpolateScalarsBeforeMapping) {\n      return false; // user doesn't want us to use texture maps at all.\n    } // index color does not use textures\n\n\n    if (model.lookupTable && model.lookupTable.getIndexedLookup()) {\n      return false;\n    }\n\n    var gasResult = publicAPI.getAbstractScalars(input, model.scalarMode, model.arrayAccessMode, model.arrayId, model.colorByArrayName);\n    var scalars = gasResult.scalars;\n\n    if (!scalars) {\n      // no scalars on this dataset, we don't care if texture is used at all.\n      return false;\n    }\n\n    if (gasResult.cellFlag) {\n      return false; // cell data colors, don't use textures.\n    }\n\n    if (model.colorMode === ColorMode.DEFAULT && scalars.getDataType() === VtkDataTypes.UNSIGNED_CHAR || model.colorMode === ColorMode.DIRECT_SCALARS) {\n      // Don't use texture is direct coloring using RGB unsigned chars is\n      // requested.\n      return false;\n    }\n\n    return true;\n  };\n\n  publicAPI.clearColorArrays = function () {\n    model.colorMapColors = null;\n    model.colorCoordinates = null;\n    model.colorTextureMap = null;\n  };\n\n  publicAPI.getLookupTable = function () {\n    if (!model.lookupTable) {\n      publicAPI.createDefaultLookupTable();\n    }\n\n    return model.lookupTable;\n  };\n\n  publicAPI.getMTime = function () {\n    var mt = model.mtime;\n\n    if (model.lookupTable !== null) {\n      var time = model.lookupTable.getMTime();\n      mt = time > mt ? time : mt;\n    }\n\n    return mt;\n  };\n\n  publicAPI.getPrimitiveCount = function () {\n    var input = publicAPI.getInputData();\n    var pcount = {\n      points: input.getPoints().getNumberOfValues() / 3,\n      verts: input.getVerts().getNumberOfValues() - input.getVerts().getNumberOfCells(),\n      lines: input.getLines().getNumberOfValues() - 2 * input.getLines().getNumberOfCells(),\n      triangles: input.getPolys().getNumberOfValues() - 3 * input.getLines().getNumberOfCells()\n    };\n    return pcount;\n  };\n\n  publicAPI.acquireInvertibleLookupTable = notImplemented('AcquireInvertibleLookupTable');\n  publicAPI.valueToColor = notImplemented('ValueToColor');\n  publicAPI.colorToValue = notImplemented('ColorToValue');\n  publicAPI.useInvertibleColorFor = notImplemented('UseInvertibleColorFor');\n  publicAPI.clearInvertibleColor = notImplemented('ClearInvertibleColor');\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  colorMapColors: null,\n  // Same as this->Colors\n  static: false,\n  lookupTable: null,\n  scalarVisibility: true,\n  scalarRange: [0, 1],\n  useLookupTableScalarRange: false,\n  colorMode: 0,\n  scalarMode: 0,\n  arrayAccessMode: 1,\n  // By_NAME\n  renderTime: 0,\n  colorByArrayName: null,\n  fieldDataTupleId: -1,\n  interpolateScalarsBeforeMapping: false,\n  colorCoordinates: null,\n  colorTextureMap: null,\n  forceCompileOnly: 0,\n  useInvertibleColors: false,\n  invertibleScalars: null,\n  viewSpecificProperties: null,\n  customShaderAttributes: []\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _AbstractMapper3D_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['colorCoordinates', 'colorMapColors', 'colorTextureMap']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['colorByArrayName', 'arrayAccessMode', 'colorMode', 'fieldDataTupleId', 'interpolateScalarsBeforeMapping', 'lookupTable', 'renderTime', 'scalarMode', 'scalarVisibility', 'static', 'useLookupTableScalarRange', 'viewSpecificProperties', 'customShaderAttributes' // point data array names that will be transferred to the VBO\n  ]);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGetArray(publicAPI, model, ['scalarRange'], 2);\n\n  if (!model.viewSpecificProperties) {\n    model.viewSpecificProperties = {};\n  }\n\n  _Mapper_CoincidentTopologyHelper_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].implementCoincidentTopologyMethods(publicAPI, model); // Object methods\n\n  vtkMapper(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkMapper'); // ----------------------------------------------------------------------------\n\nvar vtkMapper$1 = _objectSpread(_objectSpread(_objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, staticOffsetAPI), otherStaticMethods), _Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/CoincidentTopologyHelper.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/CoincidentTopologyHelper.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"CATEGORIES\": () => (/* binding */ CATEGORIES),\n/* harmony export */   \"default\": () => (/* binding */ CoincidentTopologyHelper)\n/* harmony export */ });\n/* harmony import */ var _Static_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Static.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Static.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n\n/* eslint-disable arrow-body-style */\n\nfunction addCoincidentTopologyMethods(publicAPI, model, nameList) {\n  nameList.forEach(function (item) {\n    publicAPI[\"get\".concat(item.method)] = function () {\n      return model[item.key];\n    };\n\n    publicAPI[\"set\".concat(item.method)] = function (factor, offset) {\n      model[item.key] = {\n        factor: factor,\n        offset: offset\n      };\n    };\n  });\n}\n\nvar CATEGORIES = ['Polygon', 'Line', 'Point']; // CoincidentTopology static methods ------------------------------------------\n\nvar staticOffsetModel = {\n  Polygon: {\n    factor: 2,\n    offset: 0\n  },\n  Line: {\n    factor: 1,\n    offset: -1\n  },\n  Point: {\n    factor: 0,\n    offset: -2\n  }\n};\nvar staticOffsetAPI = {};\naddCoincidentTopologyMethods(staticOffsetAPI, staticOffsetModel, CATEGORIES.map(function (key) {\n  return {\n    key: key,\n    method: \"ResolveCoincidentTopology\".concat(key, \"OffsetParameters\")\n  };\n}));\n\nfunction implementCoincidentTopologyMethods(publicAPI, model) {\n  if (model.resolveCoincidentTopology === undefined) {\n    model.resolveCoincidentTopology = false;\n  }\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['resolveCoincidentTopology']); // Relative methods\n\n  model.topologyOffset = {\n    Polygon: {\n      factor: 0,\n      offset: 0\n    },\n    Line: {\n      factor: 0,\n      offset: 0\n    },\n    Point: {\n      factor: 0,\n      offset: 0\n    }\n  }; // Add Static methods to our instance\n\n  Object.keys(_Static_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]).forEach(function (methodName) {\n    publicAPI[methodName] = _Static_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"][methodName];\n  });\n  Object.keys(staticOffsetAPI).forEach(function (methodName) {\n    publicAPI[methodName] = staticOffsetAPI[methodName];\n  });\n  addCoincidentTopologyMethods(publicAPI, model.topologyOffset, CATEGORIES.map(function (key) {\n    return {\n      key: key,\n      method: \"RelativeCoincidentTopology\".concat(key, \"OffsetParameters\")\n    };\n  }));\n\n  publicAPI.getCoincidentTopologyPolygonOffsetParameters = function () {\n    var globalValue = staticOffsetAPI.getResolveCoincidentTopologyPolygonOffsetParameters();\n    var localValue = publicAPI.getRelativeCoincidentTopologyPolygonOffsetParameters();\n    return {\n      factor: globalValue.factor + localValue.factor,\n      offset: globalValue.offset + localValue.offset\n    };\n  };\n\n  publicAPI.getCoincidentTopologyLineOffsetParameters = function () {\n    var globalValue = staticOffsetAPI.getResolveCoincidentTopologyLineOffsetParameters();\n    var localValue = publicAPI.getRelativeCoincidentTopologyLineOffsetParameters();\n    return {\n      factor: globalValue.factor + localValue.factor,\n      offset: globalValue.offset + localValue.offset\n    };\n  };\n\n  publicAPI.getCoincidentTopologyPointOffsetParameter = function () {\n    var globalValue = staticOffsetAPI.getResolveCoincidentTopologyPointOffsetParameters();\n    var localValue = publicAPI.getRelativeCoincidentTopologyPointOffsetParameters();\n    return {\n      factor: globalValue.factor + localValue.factor,\n      offset: globalValue.offset + localValue.offset\n    };\n  };\n}\n\nvar CoincidentTopologyHelper = {\n  implementCoincidentTopologyMethods: implementCoincidentTopologyMethods,\n  staticOffsetAPI: staticOffsetAPI,\n  otherStaticMethods: _Static_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  CATEGORIES: CATEGORIES\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/CoincidentTopologyHelper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Constants.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Constants.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"ColorMode\": () => (/* binding */ ColorMode),\n/* harmony export */   \"GetArray\": () => (/* binding */ GetArray),\n/* harmony export */   \"ScalarMode\": () => (/* binding */ ScalarMode),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar ColorMode = {\n  DEFAULT: 0,\n  MAP_SCALARS: 1,\n  DIRECT_SCALARS: 2\n};\nvar ScalarMode = {\n  DEFAULT: 0,\n  USE_POINT_DATA: 1,\n  USE_CELL_DATA: 2,\n  USE_POINT_FIELD_DATA: 3,\n  USE_CELL_FIELD_DATA: 4,\n  USE_FIELD_DATA: 5\n};\nvar GetArray = {\n  BY_ID: 0,\n  BY_NAME: 1\n};\nvar Constants = {\n  ColorMode: ColorMode,\n  GetArray: GetArray,\n  ScalarMode: ScalarMode\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Static.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Static.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"RESOLVE_COINCIDENT_TOPOLOGY_MODE\": () => (/* binding */ RESOLVE_COINCIDENT_TOPOLOGY_MODE),\n/* harmony export */   \"default\": () => (/* binding */ otherStaticMethods),\n/* harmony export */   \"getResolveCoincidentTopology\": () => (/* binding */ getResolveCoincidentTopology),\n/* harmony export */   \"getResolveCoincidentTopologyAsString\": () => (/* binding */ getResolveCoincidentTopologyAsString),\n/* harmony export */   \"getResolveCoincidentTopologyPolygonOffsetFaces\": () => (/* binding */ getResolveCoincidentTopologyPolygonOffsetFaces),\n/* harmony export */   \"setResolveCoincidentTopology\": () => (/* binding */ setResolveCoincidentTopology),\n/* harmony export */   \"setResolveCoincidentTopologyPolygonOffsetFaces\": () => (/* binding */ setResolveCoincidentTopologyPolygonOffsetFaces),\n/* harmony export */   \"setResolveCoincidentTopologyToDefault\": () => (/* binding */ setResolveCoincidentTopologyToDefault),\n/* harmony export */   \"setResolveCoincidentTopologyToOff\": () => (/* binding */ setResolveCoincidentTopologyToOff),\n/* harmony export */   \"setResolveCoincidentTopologyToPolygonOffset\": () => (/* binding */ setResolveCoincidentTopologyToPolygonOffset)\n/* harmony export */ });\nvar resolveCoincidentTopologyPolygonOffsetFaces = 1;\nvar resolveCoincidentTopology = 0;\nvar RESOLVE_COINCIDENT_TOPOLOGY_MODE = ['VTK_RESOLVE_OFF', 'VTK_RESOLVE_POLYGON_OFFSET'];\nfunction getResolveCoincidentTopologyPolygonOffsetFaces() {\n  return resolveCoincidentTopologyPolygonOffsetFaces;\n}\nfunction setResolveCoincidentTopologyPolygonOffsetFaces(value) {\n  resolveCoincidentTopologyPolygonOffsetFaces = value;\n}\nfunction getResolveCoincidentTopology() {\n  return resolveCoincidentTopology;\n}\nfunction setResolveCoincidentTopology() {\n  var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  resolveCoincidentTopology = mode;\n}\nfunction setResolveCoincidentTopologyToDefault() {\n  setResolveCoincidentTopology(0); // VTK_RESOLVE_OFF\n}\nfunction setResolveCoincidentTopologyToOff() {\n  setResolveCoincidentTopology(0); // VTK_RESOLVE_OFF\n}\nfunction setResolveCoincidentTopologyToPolygonOffset() {\n  setResolveCoincidentTopology(1); // VTK_RESOLVE_POLYGON_OFFSET\n}\nfunction getResolveCoincidentTopologyAsString() {\n  return RESOLVE_COINCIDENT_TOPOLOGY_MODE[resolveCoincidentTopology];\n}\nvar otherStaticMethods = {\n  getResolveCoincidentTopologyAsString: getResolveCoincidentTopologyAsString,\n  getResolveCoincidentTopologyPolygonOffsetFaces: getResolveCoincidentTopologyPolygonOffsetFaces,\n  getResolveCoincidentTopology: getResolveCoincidentTopology,\n  setResolveCoincidentTopology: setResolveCoincidentTopology,\n  setResolveCoincidentTopologyPolygonOffsetFaces: setResolveCoincidentTopologyPolygonOffsetFaces,\n  setResolveCoincidentTopologyToDefault: setResolveCoincidentTopologyToDefault,\n  setResolveCoincidentTopologyToOff: setResolveCoincidentTopologyToOff,\n  setResolveCoincidentTopologyToPolygonOffset: setResolveCoincidentTopologyToPolygonOffset\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Static.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Mapper2D.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Mapper2D.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkMapper2D$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _AbstractMapper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbstractMapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper.js\");\n/* harmony import */ var _Common_Core_LookupTable_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/LookupTable.js */ \"./node_modules/@kitware/vtk.js/Common/Core/LookupTable.js\");\n/* harmony import */ var _Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Mapper/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Constants.js\");\n\n\n\n\n\nvar ColorMode = _Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ColorMode,\n    ScalarMode = _Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ScalarMode,\n    GetArray = _Mapper_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].GetArray; // ---------------------------------------------------------------------------\n// vtkMapper2D methods\n// ---------------------------------------------------------------------------\n\nfunction vtkMapper2D(publicAPI, model) {\n  // Set out className\n  model.classHierarchy.push('vtkMapper2D');\n\n  publicAPI.createDefaultLookupTable = function () {\n    model.lookupTable = _Common_Core_LookupTable_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n  };\n\n  publicAPI.getColorModeAsString = function () {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].enumToString(ColorMode, model.colorMode);\n  };\n\n  publicAPI.setColorModeToDefault = function () {\n    return publicAPI.setColorMode(0);\n  };\n\n  publicAPI.setColorModeToMapScalars = function () {\n    return publicAPI.setColorMode(1);\n  };\n\n  publicAPI.setColorModeToDirectScalars = function () {\n    return publicAPI.setColorMode(2);\n  };\n\n  publicAPI.getScalarModeAsString = function () {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].enumToString(ScalarMode, model.scalarMode);\n  };\n\n  publicAPI.setScalarModeToDefault = function () {\n    return publicAPI.setScalarMode(0);\n  };\n\n  publicAPI.setScalarModeToUsePointData = function () {\n    return publicAPI.setScalarMode(1);\n  };\n\n  publicAPI.setScalarModeToUseCellData = function () {\n    return publicAPI.setScalarMode(2);\n  };\n\n  publicAPI.setScalarModeToUsePointFieldData = function () {\n    return publicAPI.setScalarMode(3);\n  };\n\n  publicAPI.setScalarModeToUseCellFieldData = function () {\n    return publicAPI.setScalarMode(4);\n  };\n\n  publicAPI.setScalarModeToUseFieldData = function () {\n    return publicAPI.setScalarMode(5);\n  };\n\n  publicAPI.getAbstractScalars = function (input, scalarMode, arrayAccessMode, arrayId, arrayName) {\n    // make sure we have an input\n    if (!input || !model.scalarVisibility) {\n      return {\n        scalars: null,\n        cellFLag: false\n      };\n    }\n\n    var scalars = null;\n    var cellFlag = false; // get scalar data and point/cell attribute according to scalar mode\n\n    if (scalarMode === ScalarMode.DEFAULT) {\n      scalars = input.getPointData().getScalars();\n\n      if (!scalars) {\n        scalars = input.getCellData().getScalars();\n        cellFlag = true;\n      }\n    } else if (scalarMode === ScalarMode.USE_POINT_DATA) {\n      scalars = input.getPointData().getScalars();\n    } else if (scalarMode === ScalarMode.USE_CELL_DATA) {\n      scalars = input.getCellData().getScalars();\n      cellFlag = true;\n    } else if (scalarMode === ScalarMode.USE_POINT_FIELD_DATA) {\n      var pd = input.getPointData();\n\n      if (arrayAccessMode === GetArray.BY_ID) {\n        scalars = pd.getArrayByIndex(arrayId);\n      } else {\n        scalars = pd.getArrayByName(arrayName);\n      }\n    } else if (scalarMode === ScalarMode.USE_CELL_FIELD_DATA) {\n      var cd = input.getCellData();\n      cellFlag = true;\n\n      if (arrayAccessMode === GetArray.BY_ID) {\n        scalars = cd.getArrayByIndex(arrayId);\n      } else {\n        scalars = cd.getArrayByName(arrayName);\n      }\n    } else if (scalarMode === ScalarMode.USE_FIELD_DATA) {\n      var fd = input.getFieldData();\n\n      if (arrayAccessMode === GetArray.BY_ID) {\n        scalars = fd.getArrayByIndex(arrayId);\n      } else {\n        scalars = fd.getArrayByName(arrayName);\n      }\n    }\n\n    return {\n      scalars: scalars,\n      cellFlag: cellFlag\n    };\n  };\n\n  publicAPI.getLookupTable = function () {\n    if (!model.lookupTable) {\n      publicAPI.createDefaultLookupTable();\n    }\n\n    return model.lookupTable;\n  };\n\n  publicAPI.getMTime = function () {\n    var mt = model.mtime;\n\n    if (model.lookupTable !== null) {\n      var time = model.lookupTable.getMTime();\n      mt = time > mt ? time : mt;\n    }\n\n    return mt;\n  };\n\n  publicAPI.mapScalars = function (input, alpha) {\n    var scalars = publicAPI.getAbstractScalars(input, model.scalarMode, model.arrayAccessMode, model.arrayId, model.colorByArrayName).scalars;\n\n    if (!scalars) {\n      model.colorMapColors = null;\n      return;\n    } // we want to only recompute when something has changed\n\n\n    var toString = \"\".concat(publicAPI.getMTime()).concat(scalars.getMTime()).concat(alpha);\n    if (model.colorBuildString === toString) return;\n\n    if (!model.useLookupTableScalarRange) {\n      publicAPI.getLookupTable().setRange(model.scalarRange[0], model.scalarRange[1]);\n    }\n\n    var lut = publicAPI.getLookupTable();\n\n    if (lut) {\n      // Ensure that the lookup table is built\n      lut.build();\n      model.colorMapColors = lut.mapScalars(scalars, model.colorMode, model.fieldDataTupleId);\n    }\n\n    model.colorBuildString = \"\".concat(publicAPI.getMTime()).concat(scalars.getMTime()).concat(alpha);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  static: false,\n  lookupTable: null,\n  scalarVisibility: false,\n  scalarRange: [0, 1],\n  useLookupTableScalarRange: false,\n  colorMode: 0,\n  scalarMode: 0,\n  arrayAccessMode: 1,\n  // By_NAME\n  renderTime: 0,\n  colorByArrayName: null,\n  transformCoordinate: null,\n  viewSpecificProperties: null,\n  customShaderAttributes: []\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _AbstractMapper_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['colorMapColors']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['arrayAccessMode', 'colorByArrayName', 'colorMode', 'lookupTable', 'renderTime', 'scalarMode', 'scalarVisibility', 'static', 'transformCoordinate', 'useLookupTableScalarRange', 'viewSpecificProperties', 'customShaderAttributes' // point data array names that will be transferred to the VBO\n  ]);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGetArray(publicAPI, model, ['scalarRange'], 2);\n\n  if (!model.viewSpecificProperties) {\n    model.viewSpecificProperties = {};\n  } // Object methods\n\n\n  vtkMapper2D(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkMapper2D'); // ----------------------------------------------------------------------------\n\nvar vtkMapper2D$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Mapper2D.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Prop.js":
/*!*************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Prop.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkProp$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\nfunction notImplemented(method) {\n  return function () {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro(\"vtkProp::\".concat(method, \" - NOT IMPLEMENTED\"));\n  };\n} // ----------------------------------------------------------------------------\n// vtkProp methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkProp(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkProp');\n\n  publicAPI.getMTime = function () {\n    var m1 = model.mtime;\n\n    for (var index = 0; index < model.textures.length; ++index) {\n      var m2 = model.textures[index].getMTime();\n\n      if (m2 > m1) {\n        m1 = m2;\n      }\n    }\n\n    return m1;\n  };\n\n  publicAPI.getNestedProps = function () {\n    return null;\n  };\n\n  publicAPI.getActors = function () {\n    return [];\n  };\n\n  publicAPI.getActors2D = function () {\n    return [];\n  };\n\n  publicAPI.getVolumes = function () {\n    return [];\n  };\n\n  publicAPI.pick = notImplemented('pick');\n  publicAPI.hasKey = notImplemented('hasKey');\n\n  publicAPI.getNestedVisibility = function () {\n    return model.visibility && (!model._parentProp || model._parentProp.getNestedVisibility());\n  };\n\n  publicAPI.getNestedPickable = function () {\n    return model.pickable && (!model._parentProp || model._parentProp.getNestedPickable());\n  };\n\n  publicAPI.getNestedDragable = function () {\n    return model.dragable && (!model._parentProp || model._parentProp.getNestedDragable());\n  };\n\n  publicAPI.getRedrawMTime = function () {\n    return model.mtime;\n  };\n\n  publicAPI.setEstimatedRenderTime = function (t) {\n    model.estimatedRenderTime = t;\n    model.savedEstimatedRenderTime = t;\n  };\n\n  publicAPI.restoreEstimatedRenderTime = function () {\n    model.estimatedRenderTime = model.savedEstimatedRenderTime;\n  };\n\n  publicAPI.addEstimatedRenderTime = function (t) {\n    model.estimatedRenderTime += t;\n  };\n\n  publicAPI.setAllocatedRenderTime = function (t) {\n    model.allocatedRenderTime = t;\n    model.savedEstimatedRenderTime = model.estimatedRenderTime;\n    model.estimatedRenderTime = 0;\n  };\n\n  publicAPI.getSupportsSelection = function () {\n    return false;\n  };\n\n  publicAPI.getTextures = function () {\n    return model.textures;\n  };\n\n  publicAPI.hasTexture = function (texture) {\n    return model.textures.indexOf(texture) !== -1;\n  };\n\n  publicAPI.addTexture = function (texture) {\n    if (texture && !publicAPI.hasTexture(texture)) {\n      model.textures = model.textures.concat(texture);\n      publicAPI.modified();\n    }\n  };\n\n  publicAPI.removeTexture = function (texture) {\n    var newTextureList = model.textures.filter(function (item) {\n      return item !== texture;\n    });\n\n    if (model.textures.length !== newTextureList.length) {\n      model.textures = newTextureList;\n      publicAPI.modified();\n    }\n  };\n\n  publicAPI.removeAllTextures = function () {\n    model.textures = [];\n    publicAPI.modified();\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  // _parentProp: null,\n  visibility: true,\n  pickable: true,\n  dragable: true,\n  useBounds: true,\n  allocatedRenderTime: 10,\n  estimatedRenderTime: 0,\n  savedEstimatedRenderTime: 0,\n  renderTimeMultiplier: 1,\n  paths: null,\n  textures: []\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['estimatedRenderTime', 'allocatedRenderTime']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['visibility', 'pickable', 'dragable', 'useBounds', 'renderTimeMultiplier', '_parentProp']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].moveToProtected(publicAPI, model, ['parentProp']); // Object methods\n\n  vtkProp(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkProp'); // ----------------------------------------------------------------------------\n\nvar vtkProp$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Prop.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Prop3D.js":
/*!***************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Prop3D.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkProp3D$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/quat.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Common/DataModel/BoundingBox.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/BoundingBox.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Prop_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Prop.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Prop.js\");\n\n\n\n\n\n\n// vtkProp3D methods\n// ----------------------------------------------------------------------------\n\nfunction vtkProp3D(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkProp3D');\n\n  publicAPI.addPosition = function (deltaXYZ) {\n    model.position = model.position.map(function (value, index) {\n      return value + deltaXYZ[index];\n    });\n    publicAPI.modified();\n  };\n\n  publicAPI.getOrientationWXYZ = function () {\n    var q = gl_matrix__WEBPACK_IMPORTED_MODULE_4__.create();\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.getRotation(q, model.rotation);\n    var oaxis = new Float64Array(3);\n    var w = gl_matrix__WEBPACK_IMPORTED_MODULE_4__.getAxisAngle(oaxis, q);\n    return [(0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.A)(w), oaxis[0], oaxis[1], oaxis[2]];\n  };\n\n  publicAPI.rotateX = function (val) {\n    if (val === 0.0) {\n      return;\n    }\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.rotateX(model.rotation, model.rotation, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(val));\n    publicAPI.modified();\n  };\n\n  publicAPI.rotateY = function (val) {\n    if (val === 0.0) {\n      return;\n    }\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.rotateY(model.rotation, model.rotation, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(val));\n    publicAPI.modified();\n  };\n\n  publicAPI.rotateZ = function (val) {\n    if (val === 0.0) {\n      return;\n    }\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.rotateZ(model.rotation, model.rotation, (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(val));\n    publicAPI.modified();\n  };\n\n  publicAPI.rotateWXYZ = function (degrees, x, y, z) {\n    if (degrees === 0.0 || x === 0.0 && y === 0.0 && z === 0.0) {\n      return;\n    } // convert to radians\n\n\n    var angle = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.r)(degrees);\n    var q = gl_matrix__WEBPACK_IMPORTED_MODULE_4__.create();\n    gl_matrix__WEBPACK_IMPORTED_MODULE_4__.setAxisAngle(q, [x, y, z], angle);\n    var quatMat = new Float64Array(16);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.fromQuat(quatMat, q);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.multiply(model.rotation, model.rotation, quatMat);\n    publicAPI.modified();\n  };\n\n  publicAPI.setOrientation = function (x, y, z) {\n    if (x === model.orientation[0] && y === model.orientation[1] && z === model.orientation[2]) {\n      return false;\n    }\n\n    model.orientation = [x, y, z];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.identity(model.rotation);\n    publicAPI.rotateZ(z);\n    publicAPI.rotateX(x);\n    publicAPI.rotateY(y);\n    publicAPI.modified();\n    return true;\n  };\n\n  publicAPI.setUserMatrix = function (matrix) {\n    gl_matrix__WEBPACK_IMPORTED_MODULE_5__.copy(model.userMatrix, matrix);\n    publicAPI.modified();\n  };\n\n  publicAPI.getMatrix = function () {\n    publicAPI.computeMatrix();\n    return model.matrix;\n  };\n\n  publicAPI.computeMatrix = function () {\n    // check whether or not need to rebuild the matrix\n    if (publicAPI.getMTime() > model.matrixMTime.getMTime()) {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_5__.identity(model.matrix);\n\n      if (model.userMatrix) {\n        gl_matrix__WEBPACK_IMPORTED_MODULE_5__.multiply(model.matrix, model.matrix, model.userMatrix);\n      }\n\n      gl_matrix__WEBPACK_IMPORTED_MODULE_5__.translate(model.matrix, model.matrix, model.origin);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_5__.translate(model.matrix, model.matrix, model.position);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_5__.multiply(model.matrix, model.matrix, model.rotation);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_5__.scale(model.matrix, model.matrix, model.scale);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_5__.translate(model.matrix, model.matrix, [-model.origin[0], -model.origin[1], -model.origin[2]]);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_5__.transpose(model.matrix, model.matrix); // check for identity\n\n      model.isIdentity = true;\n\n      for (var i = 0; i < 4; ++i) {\n        for (var j = 0; j < 4; ++j) {\n          if ((i === j ? 1.0 : 0.0) !== model.matrix[i + j * 4]) {\n            model.isIdentity = false;\n          }\n        }\n      }\n\n      model.matrixMTime.modified();\n    }\n  };\n\n  publicAPI.getCenter = function () {\n    return _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCenter(model.bounds);\n  };\n\n  publicAPI.getLength = function () {\n    return _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getLength(model.bounds);\n  };\n\n  publicAPI.getXRange = function () {\n    return _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getXRange(model.bounds);\n  };\n\n  publicAPI.getYRange = function () {\n    return _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getYRange(model.bounds);\n  };\n\n  publicAPI.getZRange = function () {\n    return _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getZRange(model.bounds);\n  };\n\n  publicAPI.getUserMatrix = function () {\n    return model.userMatrix;\n  };\n\n  function updateIdentityFlag() {\n    publicAPI.computeMatrix();\n  }\n\n  publicAPI.onModified(updateIdentityFlag);\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  origin: [0, 0, 0],\n  position: [0, 0, 0],\n  orientation: [0, 0, 0],\n  rotation: null,\n  scale: [1, 1, 1],\n  bounds: [1, -1, 1, -1, 1, -1],\n  userMatrix: null,\n  userMatrixMTime: null,\n  cachedProp3D: null,\n  isIdentity: true,\n  matrixMTime: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _Prop_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].extend(publicAPI, model, initialValues);\n  model.matrixMTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.matrixMTime); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['bounds', 'isIdentity']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getArray(publicAPI, model, ['orientation']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGetArray(publicAPI, model, ['origin', 'position', 'scale'], 3); // Object internal instance\n\n  model.matrix = gl_matrix__WEBPACK_IMPORTED_MODULE_5__.identity(new Float64Array(16));\n  model.rotation = gl_matrix__WEBPACK_IMPORTED_MODULE_5__.identity(new Float64Array(16));\n  model.userMatrix = gl_matrix__WEBPACK_IMPORTED_MODULE_5__.identity(new Float64Array(16));\n  model.transform = null; // FIXME\n  // Object methods\n\n  vtkProp3D(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkProp3D'); // ----------------------------------------------------------------------------\n\nvar vtkProp3D$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Prop3D.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Property.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Property.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkProperty$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Property_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Property/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property/Constants.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar Representation = _Property_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Representation,\n    Interpolation = _Property_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Interpolation;\n\nfunction notImplemented(method) {\n  return function () {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro(\"vtkProperty::\".concat(method, \" - NOT IMPLEMENTED\"));\n  };\n} // ----------------------------------------------------------------------------\n// vtkProperty methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkProperty(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkProperty');\n\n  publicAPI.setColor = function (r, g, b) {\n    if (Array.isArray(r)) {\n      if (model.color[0] !== r[0] || model.color[1] !== r[1] || model.color[2] !== r[2]) {\n        model.color[0] = r[0];\n        model.color[1] = r[1];\n        model.color[2] = r[2];\n        publicAPI.modified();\n      }\n    } else if (model.color[0] !== r || model.color[1] !== g || model.color[2] !== b) {\n      model.color[0] = r;\n      model.color[1] = g;\n      model.color[2] = b;\n      publicAPI.modified();\n    }\n\n    publicAPI.setDiffuseColor(model.color);\n    publicAPI.setAmbientColor(model.color);\n    publicAPI.setSpecularColor(model.color);\n  };\n\n  publicAPI.computeCompositeColor = notImplemented('ComputeCompositeColor');\n\n  publicAPI.getColor = function () {\n    // Inline computeCompositeColor\n    var norm = 0.0;\n\n    if (model.ambient + model.diffuse + model.specular > 0) {\n      norm = 1.0 / (model.ambient + model.diffuse + model.specular);\n    }\n\n    for (var i = 0; i < 3; i++) {\n      model.color[i] = norm * (model.ambient * model.ambientColor[i] + model.diffuse * model.diffuseColor[i] + model.specular * model.specularColor[i]);\n    }\n\n    return [].concat(model.color);\n  };\n\n  publicAPI.addShaderVariable = notImplemented('AddShaderVariable');\n\n  publicAPI.setInterpolationToFlat = function () {\n    return publicAPI.setInterpolation(Interpolation.FLAT);\n  };\n\n  publicAPI.setInterpolationToGouraud = function () {\n    return publicAPI.setInterpolation(Interpolation.GOURAUD);\n  };\n\n  publicAPI.setInterpolationToPhong = function () {\n    return publicAPI.setInterpolation(Interpolation.PHONG);\n  };\n\n  publicAPI.getInterpolationAsString = function () {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].enumToString(Interpolation, model.interpolation);\n  };\n\n  publicAPI.setRepresentationToWireframe = function () {\n    return publicAPI.setRepresentation(Representation.WIREFRAME);\n  };\n\n  publicAPI.setRepresentationToSurface = function () {\n    return publicAPI.setRepresentation(Representation.SURFACE);\n  };\n\n  publicAPI.setRepresentationToPoints = function () {\n    return publicAPI.setRepresentation(Representation.POINTS);\n  };\n\n  publicAPI.getRepresentationAsString = function () {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].enumToString(Representation, model.representation);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  color: [1, 1, 1],\n  ambientColor: [1, 1, 1],\n  diffuseColor: [1, 1, 1],\n  specularColor: [1, 1, 1],\n  edgeColor: [0, 0, 0],\n  ambient: 0,\n  diffuse: 1,\n  specular: 0,\n  specularPower: 1,\n  opacity: 1,\n  interpolation: Interpolation.GOURAUD,\n  representation: Representation.SURFACE,\n  edgeVisibility: false,\n  backfaceCulling: false,\n  frontfaceCulling: false,\n  pointSize: 1,\n  lineWidth: 1,\n  lighting: true,\n  shading: false,\n  materialName: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['lighting', 'interpolation', 'ambient', 'diffuse', 'specular', 'specularPower', 'opacity', 'edgeVisibility', 'lineWidth', 'pointSize', 'backfaceCulling', 'frontfaceCulling', 'representation']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGetArray(publicAPI, model, ['ambientColor', 'specularColor', 'diffuseColor', 'edgeColor'], 3); // Object methods\n\n  vtkProperty(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkProperty'); // ----------------------------------------------------------------------------\n\nvar vtkProperty$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _Property_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Property.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Property/Constants.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Property/Constants.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Interpolation\": () => (/* binding */ Interpolation),\n/* harmony export */   \"Representation\": () => (/* binding */ Representation),\n/* harmony export */   \"Shading\": () => (/* binding */ Shading),\n/* harmony export */   \"default\": () => (/* binding */ PropertyConst)\n/* harmony export */ });\nvar Shading = {\n  FLAT: 0,\n  GOURAUD: 1,\n  PHONG: 2\n};\nvar Representation = {\n  POINTS: 0,\n  WIREFRAME: 1,\n  SURFACE: 2\n};\nvar Interpolation = Shading;\nvar PropertyConst = {\n  Shading: Shading,\n  Representation: Representation,\n  Interpolation: Interpolation\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Property/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Property2D/Constants.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Property2D/Constants.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"DisplayLocation\": () => (/* binding */ DisplayLocation),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar DisplayLocation = {\n  BACKGROUND: 0,\n  FOREGROUND: 1\n};\nvar Constants = {\n  DisplayLocation: DisplayLocation\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Property2D/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindow.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindow.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkRenderWindow$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"listViewAPIs\": () => (/* binding */ listViewAPIs),\n/* harmony export */   \"newAPISpecificView\": () => (/* binding */ newAPISpecificView),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance),\n/* harmony export */   \"registerViewConstructor\": () => (/* binding */ registerViewConstructor)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\nvar DEFAULT_VIEW_API = navigator.gpu ? 'WebGPU' : 'WebGL';\nvar VIEW_CONSTRUCTORS = Object.create(null); // ----------------------------------------------------------------------------\n// static methods\n// ----------------------------------------------------------------------------\n\nfunction registerViewConstructor(name, constructor) {\n  VIEW_CONSTRUCTORS[name] = constructor;\n}\nfunction listViewAPIs() {\n  return Object.keys(VIEW_CONSTRUCTORS);\n}\nfunction newAPISpecificView(name) {\n  var initialValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return VIEW_CONSTRUCTORS[name] && VIEW_CONSTRUCTORS[name](initialValues);\n} // ----------------------------------------------------------------------------\n// vtkRenderWindow methods\n// ----------------------------------------------------------------------------\n\nfunction vtkRenderWindow(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkRenderWindow'); // Add renderer\n\n  publicAPI.addRenderer = function (renderer) {\n    if (publicAPI.hasRenderer(renderer)) {\n      return;\n    }\n\n    renderer.setRenderWindow(publicAPI);\n    model.renderers.push(renderer); // for (this->Renderers->InitTraversal(rsit);\n    //      (aren = this->Renderers->GetNextRenderer(rsit)); )\n    //   {\n    //   aren->SetAllocatedRenderTime\n    //     (1.0/(this->DesiredUpdateRate*this->Renderers->GetNumberOfItems()));\n    //   }\n\n    publicAPI.modified();\n  }; // Remove renderer\n\n\n  publicAPI.removeRenderer = function (renderer) {\n    model.renderers = model.renderers.filter(function (r) {\n      return r !== renderer;\n    });\n    publicAPI.modified();\n  };\n\n  publicAPI.hasRenderer = function (ren) {\n    return model.renderers.indexOf(ren) !== -1;\n  }; // get an API specific view of this data\n\n\n  publicAPI.newAPISpecificView = function (name) {\n    var initialValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    return newAPISpecificView(name || model.defaultViewAPI, initialValues);\n  }; // Add renderer\n\n\n  publicAPI.addView = function (view) {\n    if (publicAPI.hasView(view)) {\n      return;\n    }\n\n    view.setRenderable(publicAPI);\n    model.views.push(view);\n    publicAPI.modified();\n  }; // Remove renderer\n\n\n  publicAPI.removeView = function (view) {\n    model.views = model.views.filter(function (r) {\n      return r !== view;\n    });\n    publicAPI.modified();\n  };\n\n  publicAPI.hasView = function (view) {\n    return model.views.indexOf(view) !== -1;\n  }; // handle any pre render initializations\n\n\n  publicAPI.preRender = function () {\n    model.renderers.forEach(function (ren) {\n      // make sure we have a camera\n      if (!ren.isActiveCameraCreated()) {\n        ren.resetCamera();\n      }\n    });\n  };\n\n  publicAPI.render = function () {\n    publicAPI.preRender();\n\n    if (model.interactor) {\n      model.interactor.render();\n    } else {\n      model.views.forEach(function (view) {\n        return view.traverseAllPasses();\n      });\n    }\n  };\n\n  publicAPI.getStatistics = function () {\n    var results = {\n      propCount: 0,\n      invisiblePropCount: 0\n    };\n    model.renderers.forEach(function (ren) {\n      var props = ren.getViewProps();\n      props.forEach(function (prop) {\n        if (prop.getVisibility()) {\n          results.propCount += 1;\n          var mpr = prop.getMapper && prop.getMapper();\n\n          if (mpr && mpr.getPrimitiveCount) {\n            var pcount = mpr.getPrimitiveCount();\n            Object.keys(pcount).forEach(function (keyName) {\n              if (!results[keyName]) {\n                results[keyName] = 0;\n              }\n\n              results[keyName] += pcount[keyName];\n            });\n          }\n        } else {\n          results.invisiblePropCount += 1;\n        }\n      });\n    });\n    results.str = Object.keys(results).map(function (keyName) {\n      return \"\".concat(keyName, \": \").concat(results[keyName]);\n    }).join('\\n');\n    return results;\n  };\n\n  publicAPI.captureImages = function () {\n    var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'image/png';\n    var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setImmediate(publicAPI.render);\n    return model.views.map(function (view) {\n      return view.captureNextImage ? view.captureNextImage(format, opts) : undefined;\n    }).filter(function (i) {\n      return !!i;\n    });\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  defaultViewAPI: DEFAULT_VIEW_API,\n  renderers: [],\n  views: [],\n  interactor: null,\n  neverRendered: true,\n  numberOfLayers: 1\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['interactor', 'numberOfLayers', 'views', 'defaultViewAPI']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['neverRendered']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getArray(publicAPI, model, ['renderers']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].event(publicAPI, model, 'completion'); // Object methods\n\n  vtkRenderWindow(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkRenderWindow'); // ----------------------------------------------------------------------------\n\nvar vtkRenderWindow$1 = {\n  newInstance: newInstance,\n  extend: extend,\n  registerViewConstructor: registerViewConstructor,\n  listViewAPIs: listViewAPIs,\n  newAPISpecificView: newAPISpecificView\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindow.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkRenderWindowInteractor$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RenderWindowInteractor/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor/Constants.js\");\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar Device = _RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Device,\n    Input = _RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Input;\nvar vtkWarningMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkWarningMacro,\n    vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro,\n    normalizeWheel = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].normalizeWheel,\n    vtkOnceErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkOnceErrorMacro; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nvar deviceInputMap = {\n  'xr-standard': [Input.Trigger, Input.Grip, Input.TrackPad, Input.Thumbstick, Input.A, Input.B]\n};\nvar handledEvents = ['StartAnimation', 'Animation', 'EndAnimation', 'MouseEnter', 'MouseLeave', 'StartMouseMove', 'MouseMove', 'EndMouseMove', 'LeftButtonPress', 'LeftButtonRelease', 'MiddleButtonPress', 'MiddleButtonRelease', 'RightButtonPress', 'RightButtonRelease', 'KeyPress', 'KeyDown', 'KeyUp', 'StartMouseWheel', 'MouseWheel', 'EndMouseWheel', 'StartPinch', 'Pinch', 'EndPinch', 'StartPan', 'Pan', 'EndPan', 'StartRotate', 'Rotate', 'EndRotate', 'Button3D', 'Move3D', 'StartPointerLock', 'EndPointerLock', 'StartInteraction', 'Interaction', 'EndInteraction', 'AnimationFrameRateUpdate'];\n\nfunction preventDefault(event) {\n  if (event.cancelable) {\n    event.stopPropagation();\n    event.preventDefault();\n  }\n\n  return false;\n} // ----------------------------------------------------------------------------\n// vtkRenderWindowInteractor methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkRenderWindowInteractor(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkRenderWindowInteractor'); // Initialize list of requesters\n\n  var animationRequesters = new Set(); // track active event listeners to handle simultaneous button tracking\n\n  var activeListenerCount = 0; // Public API methods\n  //----------------------------------------------------------------------\n\n  publicAPI.start = function () {\n    // Let the compositing handle the event loop if it wants to.\n    // if (publicAPI.HasObserver(vtkCommand::StartEvent) && !publicAPI.HandleEventLoop) {\n    //   publicAPI.invokeEvent({ type: 'StartEvent' });\n    //   return;\n    // }\n    // As a convenience, initialize if we aren't initialized yet.\n    if (!model.initialized) {\n      publicAPI.initialize();\n\n      if (!model.initialized) {\n        return;\n      }\n    } // Pass execution to the subclass which will run the event loop,\n    // this will not return until TerminateApp is called.\n\n\n    publicAPI.startEventLoop();\n  }; //----------------------------------------------------------------------\n\n\n  publicAPI.setRenderWindow = function (aren) {\n    vtkErrorMacro('you want to call setView(view) instead of setRenderWindow on a vtk.js interactor');\n  }; //----------------------------------------------------------------------\n\n\n  publicAPI.setInteractorStyle = function (style) {\n    if (model.interactorStyle !== style) {\n      if (model.interactorStyle != null) {\n        model.interactorStyle.setInteractor(null);\n      }\n\n      model.interactorStyle = style;\n\n      if (model.interactorStyle != null) {\n        if (model.interactorStyle.getInteractor() !== publicAPI) {\n          model.interactorStyle.setInteractor(publicAPI);\n        }\n      }\n    }\n  }; //---------------------------------------------------------------------\n\n\n  publicAPI.initialize = function () {\n    model.initialized = true;\n    publicAPI.enable();\n    publicAPI.render();\n  };\n\n  publicAPI.enable = function () {\n    return publicAPI.setEnabled(true);\n  };\n\n  publicAPI.disable = function () {\n    return publicAPI.setEnabled(false);\n  };\n\n  publicAPI.startEventLoop = function () {\n    return vtkWarningMacro('empty event loop');\n  };\n\n  function updateCurrentRenderer(x, y) {\n    if (!model._forcedRenderer) {\n      model.currentRenderer = publicAPI.findPokedRenderer(x, y);\n    }\n  }\n\n  publicAPI.getCurrentRenderer = function () {\n    if (model.currentRenderer) {\n      return model.currentRenderer;\n    }\n\n    updateCurrentRenderer(0, 0);\n    return model.currentRenderer;\n  };\n\n  function getScreenEventPositionFor(source) {\n    var bounds = model.container.getBoundingClientRect();\n\n    var canvas = model._view.getCanvas();\n\n    var scaleX = canvas.width / bounds.width;\n    var scaleY = canvas.height / bounds.height;\n    var position = {\n      x: scaleX * (source.clientX - bounds.left),\n      y: scaleY * (bounds.height - source.clientY + bounds.top),\n      z: 0\n    };\n    updateCurrentRenderer(position.x, position.y);\n    return position;\n  }\n\n  function getTouchEventPositionsFor(touches) {\n    var positions = {};\n\n    for (var i = 0; i < touches.length; i++) {\n      var touch = touches[i];\n      positions[touch.identifier] = getScreenEventPositionFor(touch);\n    }\n\n    return positions;\n  }\n\n  function getModifierKeysFor(event) {\n    return {\n      controlKey: event.ctrlKey,\n      altKey: event.altKey,\n      shiftKey: event.shiftKey\n    };\n  }\n\n  function getKeysFor(event) {\n    var modifierKeys = getModifierKeysFor(event);\n\n    var keys = _objectSpread({\n      key: event.key,\n      keyCode: event.charCode\n    }, modifierKeys);\n\n    return keys;\n  }\n\n  function interactionRegistration(addListeners) {\n    var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var rootElm = document;\n    var method = addListeners ? 'addEventListener' : 'removeEventListener';\n    var invMethod = addListeners ? 'removeEventListener' : 'addEventListener';\n\n    if (!force && !addListeners && activeListenerCount > 0) {\n      --activeListenerCount;\n    } // only add/remove listeners when there are no registered listeners\n\n\n    if (!activeListenerCount || force) {\n      activeListenerCount = 0;\n\n      if (model.container) {\n        model.container[invMethod]('mousemove', publicAPI.handleMouseMove);\n      }\n\n      rootElm[method]('mouseup', publicAPI.handleMouseUp);\n      rootElm[method]('mousemove', publicAPI.handleMouseMove);\n      rootElm[method]('touchend', publicAPI.handleTouchEnd, false);\n      rootElm[method]('touchcancel', publicAPI.handleTouchEnd, {\n        passive: false,\n        capture: false\n      });\n      rootElm[method]('touchmove', publicAPI.handleTouchMove, {\n        passive: false,\n        capture: false\n      });\n    }\n\n    if (!force && addListeners) {\n      ++activeListenerCount;\n    }\n  }\n\n  publicAPI.bindEvents = function (container) {\n    model.container = container;\n    container.addEventListener('contextmenu', preventDefault); // container.addEventListener('click', preventDefault); // Avoid stopping event propagation\n\n    container.addEventListener('wheel', publicAPI.handleWheel);\n    container.addEventListener('DOMMouseScroll', publicAPI.handleWheel);\n    container.addEventListener('mouseenter', publicAPI.handleMouseEnter);\n    container.addEventListener('mouseleave', publicAPI.handleMouseLeave);\n    container.addEventListener('mousemove', publicAPI.handleMouseMove);\n    container.addEventListener('mousedown', publicAPI.handleMouseDown);\n    document.addEventListener('keypress', publicAPI.handleKeyPress);\n    document.addEventListener('keydown', publicAPI.handleKeyDown);\n    document.addEventListener('keyup', publicAPI.handleKeyUp);\n    document.addEventListener('pointerlockchange', publicAPI.handlePointerLockChange);\n    container.addEventListener('touchstart', publicAPI.handleTouchStart, {\n      passive: false,\n      capture: false\n    });\n  };\n\n  publicAPI.unbindEvents = function () {\n    // force unbinding listeners\n    interactionRegistration(false, true);\n    model.container.removeEventListener('contextmenu', preventDefault); // model.container.removeEventListener('click', preventDefault); // Avoid stopping event propagation\n\n    model.container.removeEventListener('wheel', publicAPI.handleWheel);\n    model.container.removeEventListener('DOMMouseScroll', publicAPI.handleWheel);\n    model.container.removeEventListener('mouseenter', publicAPI.handleMouseEnter);\n    model.container.removeEventListener('mouseleave', publicAPI.handleMouseLeave);\n    model.container.removeEventListener('mousemove', publicAPI.handleMouseMove);\n    model.container.removeEventListener('mousedown', publicAPI.handleMouseDown);\n    document.removeEventListener('keypress', publicAPI.handleKeyPress);\n    document.removeEventListener('keydown', publicAPI.handleKeyDown);\n    document.removeEventListener('keyup', publicAPI.handleKeyUp);\n    document.removeEventListener('pointerlockchange', publicAPI.handlePointerLockChange);\n    model.container.removeEventListener('touchstart', publicAPI.handleTouchStart, {\n      passive: false,\n      capture: false\n    });\n    model.container = null;\n  };\n\n  publicAPI.handleKeyPress = function (event) {\n    var data = getKeysFor(event);\n    publicAPI.keyPressEvent(data);\n  };\n\n  publicAPI.handleKeyDown = function (event) {\n    var data = getKeysFor(event);\n    publicAPI.keyDownEvent(data);\n  };\n\n  publicAPI.handleKeyUp = function (event) {\n    var data = getKeysFor(event);\n    publicAPI.keyUpEvent(data);\n  };\n\n  publicAPI.handleMouseDown = function (event) {\n    if (event.button > 2) {\n      // ignore events from extra mouse buttons such as `back` and `forward`\n      return;\n    }\n\n    interactionRegistration(true);\n    preventDefault(event);\n\n    var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {\n      position: getScreenEventPositionFor(event)\n    });\n\n    switch (event.button) {\n      case 0:\n        publicAPI.leftButtonPressEvent(callData);\n        break;\n\n      case 1:\n        publicAPI.middleButtonPressEvent(callData);\n        break;\n\n      case 2:\n        publicAPI.rightButtonPressEvent(callData);\n        break;\n\n      default:\n        vtkErrorMacro(\"Unknown mouse button pressed: \".concat(event.button));\n        break;\n    }\n  }; //----------------------------------------------------------------------\n\n\n  publicAPI.requestPointerLock = function () {\n    var canvas = publicAPI.getView().getCanvas();\n    canvas.requestPointerLock();\n  }; //----------------------------------------------------------------------\n\n\n  publicAPI.exitPointerLock = function () {\n    return document.exitPointerLock();\n  }; //----------------------------------------------------------------------\n\n\n  publicAPI.isPointerLocked = function () {\n    return !!document.pointerLockElement;\n  }; //----------------------------------------------------------------------\n\n\n  publicAPI.handlePointerLockChange = function () {\n    if (publicAPI.isPointerLocked()) {\n      publicAPI.startPointerLockEvent();\n    } else {\n      publicAPI.endPointerLockEvent();\n    }\n  }; //----------------------------------------------------------------------\n\n\n  function forceRender() {\n    if (model._view && model.enabled && model.enableRender) {\n      model.inRender = true;\n\n      model._view.traverseAllPasses();\n\n      model.inRender = false;\n    } // outside the above test so that third-party code can redirect\n    // the render to the appropriate class\n\n\n    publicAPI.invokeRenderEvent();\n  }\n\n  publicAPI.requestAnimation = function (requestor) {\n    if (requestor === undefined) {\n      vtkErrorMacro(\"undefined requester, can not start animating\");\n      return;\n    }\n\n    if (animationRequesters.has(requestor)) {\n      vtkWarningMacro(\"requester is already registered for animating\");\n      return;\n    }\n\n    animationRequesters.add(requestor);\n\n    if (!model.animationRequest && animationRequesters.size === 1 && !model.xrAnimation) {\n      model._animationStartTime = Date.now();\n      model._animationFrameCount = 0;\n      model.animationRequest = requestAnimationFrame(publicAPI.handleAnimation);\n      publicAPI.startAnimationEvent();\n    }\n  }; // continue animating for at least the specified duration of\n  // milliseconds.\n\n\n  publicAPI.extendAnimation = function (duration) {\n    var newEnd = Date.now() + duration;\n    model._animationExtendedEnd = Math.max(model._animationExtendedEnd, newEnd);\n\n    if (!model.animationRequest && animationRequesters.size === 0 && !model.xrAnimation) {\n      model._animationStartTime = Date.now();\n      model._animationFrameCount = 0;\n      model.animationRequest = requestAnimationFrame(publicAPI.handleAnimation);\n      publicAPI.startAnimationEvent();\n    }\n  };\n\n  publicAPI.isAnimating = function () {\n    return model.xrAnimation || model.animationRequest !== null;\n  };\n\n  publicAPI.cancelAnimation = function (requestor) {\n    var skipWarning = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    if (!animationRequesters.has(requestor)) {\n      if (!skipWarning) {\n        var requestStr = requestor && requestor.getClassName ? requestor.getClassName() : requestor;\n        vtkWarningMacro(\"\".concat(requestStr, \" did not request an animation\"));\n      }\n\n      return;\n    }\n\n    animationRequesters.delete(requestor);\n\n    if (model.animationRequest && animationRequesters.size === 0 && Date.now() > model._animationExtendedEnd) {\n      cancelAnimationFrame(model.animationRequest);\n      model.animationRequest = null;\n      publicAPI.endAnimationEvent();\n      publicAPI.render();\n    }\n  };\n\n  publicAPI.switchToXRAnimation = function () {\n    // cancel existing animation if any\n    if (model.animationRequest) {\n      cancelAnimationFrame(model.animationRequest);\n      model.animationRequest = null;\n    }\n\n    model.xrAnimation = true;\n  };\n\n  publicAPI.returnFromXRAnimation = function () {\n    model.xrAnimation = false;\n\n    if (animationRequesters.size !== 0) {\n      model.recentAnimationFrameRate = 10.0;\n      model.animationRequest = requestAnimationFrame(publicAPI.handleAnimation);\n    }\n  };\n\n  publicAPI.updateXRGamepads = function (xrSession, xrFrame, xrRefSpace) {\n    // watch for when buttons change state and fire events\n    xrSession.inputSources.forEach(function (inputSource) {\n      var gripPose = inputSource.gripSpace == null ? null : xrFrame.getPose(inputSource.gripSpace, xrRefSpace);\n      var gp = inputSource.gamepad;\n      var hand = inputSource.handedness;\n\n      if (gp) {\n        if (!(gp.index in model.lastGamepadValues)) {\n          model.lastGamepadValues[gp.index] = {\n            left: {\n              buttons: {}\n            },\n            right: {\n              buttons: {}\n            }\n          };\n        }\n\n        for (var b = 0; b < gp.buttons.length; ++b) {\n          if (!(b in model.lastGamepadValues[gp.index][hand].buttons)) {\n            model.lastGamepadValues[gp.index][hand].buttons[b] = false;\n          }\n\n          if (model.lastGamepadValues[gp.index][hand].buttons[b] !== gp.buttons[b].pressed && gripPose != null) {\n            publicAPI.button3DEvent({\n              gamepad: gp,\n              position: gripPose.transform.position,\n              orientation: gripPose.transform.orientation,\n              pressed: gp.buttons[b].pressed,\n              device: inputSource.handedness === 'left' ? Device.LeftController : Device.RightController,\n              input: deviceInputMap[gp.mapping] && deviceInputMap[gp.mapping][b] ? deviceInputMap[gp.mapping][b] : Input.Trigger\n            });\n            model.lastGamepadValues[gp.index][hand].buttons[b] = gp.buttons[b].pressed;\n          }\n\n          if (model.lastGamepadValues[gp.index][hand].buttons[b] && gripPose != null) {\n            publicAPI.move3DEvent({\n              gamepad: gp,\n              position: gripPose.transform.position,\n              orientation: gripPose.transform.orientation,\n              device: inputSource.handedness === 'left' ? Device.LeftController : Device.RightController\n            });\n          }\n        }\n      }\n    });\n  };\n\n  publicAPI.handleMouseMove = function (event) {\n    // Do not consume event for move\n    // preventDefault(event);\n    var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {\n      position: getScreenEventPositionFor(event)\n    });\n\n    if (model.moveTimeoutID === 0) {\n      publicAPI.startMouseMoveEvent(callData);\n    } else {\n      publicAPI.mouseMoveEvent(callData);\n      clearTimeout(model.moveTimeoutID);\n    } // start a timer to keep us animating while we get mouse move events\n\n\n    model.moveTimeoutID = setTimeout(function () {\n      publicAPI.endMouseMoveEvent();\n      model.moveTimeoutID = 0;\n    }, 200);\n  };\n\n  publicAPI.handleAnimation = function () {\n    var currTime = Date.now();\n    model._animationFrameCount++;\n\n    if (currTime - model._animationStartTime > 1000.0 && model._animationFrameCount > 1) {\n      model.recentAnimationFrameRate = 1000.0 * (model._animationFrameCount - 1) / (currTime - model._animationStartTime);\n      model.lastFrameTime = 1.0 / model.recentAnimationFrameRate;\n      publicAPI.animationFrameRateUpdateEvent();\n      model._animationStartTime = currTime;\n      model._animationFrameCount = 1;\n    }\n\n    publicAPI.animationEvent();\n    forceRender();\n\n    if (animationRequesters.size > 0 || Date.now() < model._animationExtendedEnd) {\n      model.animationRequest = requestAnimationFrame(publicAPI.handleAnimation);\n    } else {\n      cancelAnimationFrame(model.animationRequest);\n      model.animationRequest = null;\n      publicAPI.endAnimationEvent();\n      publicAPI.render();\n    }\n  };\n\n  publicAPI.handleWheel = function (event) {\n    preventDefault(event);\n    /**\n     * wheel event values can vary significantly across browsers, platforms\n     * and devices [1]. `normalizeWheel` uses facebook's solution from their\n     * fixed-data-table repository [2].\n     *\n     * [1] https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel\n     * [2] https://github.com/facebookarchive/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js\n     *\n     * This code will return an object with properties:\n     *\n     *   spinX   -- normalized spin speed (use for zoom) - x plane\n     *   spinY   -- \" - y plane\n     *   pixelX  -- normalized distance (to pixels) - x plane\n     *   pixelY  -- \" - y plane\n     *\n     */\n\n    var callData = _objectSpread(_objectSpread(_objectSpread({}, normalizeWheel(event)), getModifierKeysFor(event)), {}, {\n      position: getScreenEventPositionFor(event)\n    });\n\n    if (model.wheelTimeoutID === 0) {\n      publicAPI.startMouseWheelEvent(callData);\n    } else {\n      publicAPI.mouseWheelEvent(callData);\n      clearTimeout(model.wheelTimeoutID);\n    } // start a timer to keep us animating while we get wheel events\n\n\n    model.wheelTimeoutID = setTimeout(function () {\n      publicAPI.extendAnimation(600);\n      publicAPI.endMouseWheelEvent();\n      model.wheelTimeoutID = 0;\n    }, 200);\n  };\n\n  publicAPI.handleMouseEnter = function (event) {\n    var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {\n      position: getScreenEventPositionFor(event)\n    });\n\n    publicAPI.mouseEnterEvent(callData);\n  };\n\n  publicAPI.handleMouseLeave = function (event) {\n    var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {\n      position: getScreenEventPositionFor(event)\n    });\n\n    publicAPI.mouseLeaveEvent(callData);\n  };\n\n  publicAPI.handleMouseUp = function (event) {\n    interactionRegistration(false);\n    preventDefault(event);\n\n    var callData = _objectSpread(_objectSpread({}, getModifierKeysFor(event)), {}, {\n      position: getScreenEventPositionFor(event)\n    });\n\n    switch (event.button) {\n      case 0:\n        publicAPI.leftButtonReleaseEvent(callData);\n        break;\n\n      case 1:\n        publicAPI.middleButtonReleaseEvent(callData);\n        break;\n\n      case 2:\n        publicAPI.rightButtonReleaseEvent(callData);\n        break;\n\n      default:\n        vtkErrorMacro(\"Unknown mouse button released: \".concat(event.button));\n        break;\n    }\n  };\n\n  publicAPI.handleTouchStart = function (event) {\n    interactionRegistration(true);\n    preventDefault(event); // If multitouch\n\n    if (model.recognizeGestures && event.touches.length > 1) {\n      var positions = getTouchEventPositionsFor(event.touches); // did we just transition to multitouch?\n\n      if (event.touches.length === 2) {\n        var touch = event.touches[0];\n        var callData = {\n          position: getScreenEventPositionFor(touch),\n          shiftKey: false,\n          altKey: false,\n          controlKey: false\n        };\n        publicAPI.leftButtonReleaseEvent(callData);\n      } // handle the gesture\n\n\n      publicAPI.recognizeGesture('TouchStart', positions);\n    } else {\n      var _touch = event.touches[0];\n      var _callData = {\n        position: getScreenEventPositionFor(_touch),\n        shiftKey: false,\n        altKey: false,\n        controlKey: false\n      };\n      publicAPI.leftButtonPressEvent(_callData);\n    }\n  };\n\n  publicAPI.handleTouchMove = function (event) {\n    preventDefault(event);\n\n    if (model.recognizeGestures && event.touches.length > 1) {\n      var positions = getTouchEventPositionsFor(event.touches);\n      publicAPI.recognizeGesture('TouchMove', positions);\n    } else {\n      var touch = event.touches[0];\n      var callData = {\n        position: getScreenEventPositionFor(touch),\n        shiftKey: false,\n        altKey: false,\n        controlKey: false\n      };\n      publicAPI.mouseMoveEvent(callData);\n    }\n  };\n\n  publicAPI.handleTouchEnd = function (event) {\n    preventDefault(event);\n\n    if (model.recognizeGestures) {\n      // No more fingers down\n      if (event.touches.length === 0) {\n        // If just one finger released, consider as left button\n        if (event.changedTouches.length === 1) {\n          var touch = event.changedTouches[0];\n          var callData = {\n            position: getScreenEventPositionFor(touch),\n            shiftKey: false,\n            altKey: false,\n            controlKey: false\n          };\n          publicAPI.leftButtonReleaseEvent(callData);\n          interactionRegistration(false);\n        } else {\n          // If more than one finger released, recognize touchend\n          var positions = getTouchEventPositionsFor(event.changedTouches);\n          publicAPI.recognizeGesture('TouchEnd', positions);\n          interactionRegistration(false);\n        }\n      } else if (event.touches.length === 1) {\n        // If one finger left, end touch and start button press\n        var _positions = getTouchEventPositionsFor(event.changedTouches);\n\n        publicAPI.recognizeGesture('TouchEnd', _positions);\n        var _touch2 = event.touches[0];\n        var _callData2 = {\n          position: getScreenEventPositionFor(_touch2),\n          shiftKey: false,\n          altKey: false,\n          controlKey: false\n        };\n        publicAPI.leftButtonPressEvent(_callData2);\n      } else {\n        // If more than one finger left, keep touch move\n        var _positions2 = getTouchEventPositionsFor(event.touches);\n\n        publicAPI.recognizeGesture('TouchMove', _positions2);\n      }\n    } else {\n      var _touch3 = event.changedTouches[0];\n      var _callData3 = {\n        position: getScreenEventPositionFor(_touch3),\n        shiftKey: false,\n        altKey: false,\n        controlKey: false\n      };\n      publicAPI.leftButtonReleaseEvent(_callData3);\n      interactionRegistration(false);\n    }\n  };\n\n  publicAPI.setView = function (val) {\n    if (model._view === val) {\n      return;\n    }\n\n    model._view = val;\n\n    model._view.getRenderable().setInteractor(publicAPI);\n\n    publicAPI.modified();\n  };\n\n  publicAPI.getFirstRenderer = function () {\n    var _model$_view, _model$_view$getRende, _model$_view$getRende2;\n\n    return (_model$_view = model._view) === null || _model$_view === void 0 ? void 0 : (_model$_view$getRende = _model$_view.getRenderable()) === null || _model$_view$getRende === void 0 ? void 0 : (_model$_view$getRende2 = _model$_view$getRende.getRenderersByReference()) === null || _model$_view$getRende2 === void 0 ? void 0 : _model$_view$getRende2[0];\n  };\n\n  publicAPI.findPokedRenderer = function () {\n    var _model$_view2, _model$_view2$getRend;\n\n    var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n    if (!model._view) {\n      return null;\n    } // The original order of renderers needs to remain as\n    // the first one is the one we want to manipulate the camera on.\n\n\n    var rc = (_model$_view2 = model._view) === null || _model$_view2 === void 0 ? void 0 : (_model$_view2$getRend = _model$_view2.getRenderable()) === null || _model$_view2$getRend === void 0 ? void 0 : _model$_view2$getRend.getRenderers();\n\n    if (!rc) {\n      return null;\n    }\n\n    rc.sort(function (a, b) {\n      return a.getLayer() - b.getLayer();\n    });\n    var interactiveren = null;\n    var viewportren = null;\n    var currentRenderer = null;\n    var count = rc.length;\n\n    while (count--) {\n      var aren = rc[count];\n\n      if (model._view.isInViewport(x, y, aren) && aren.getInteractive()) {\n        currentRenderer = aren;\n        break;\n      }\n\n      if (interactiveren === null && aren.getInteractive()) {\n        // Save this renderer in case we can't find one in the viewport that\n        // is interactive.\n        interactiveren = aren;\n      }\n\n      if (viewportren === null && model._view.isInViewport(x, y, aren)) {\n        // Save this renderer in case we can't find one in the viewport that\n        // is interactive.\n        viewportren = aren;\n      }\n    } // We must have a value.  If we found an interactive renderer before, that's\n    // better than a non-interactive renderer.\n\n\n    if (currentRenderer === null) {\n      currentRenderer = interactiveren;\n    } // We must have a value.  If we found a renderer that is in the viewport,\n    // that is better than any old viewport (but not as good as an interactive\n    // one).\n\n\n    if (currentRenderer === null) {\n      currentRenderer = viewportren;\n    } // We must have a value - take anything.\n\n\n    if (currentRenderer == null) {\n      currentRenderer = rc[0];\n    }\n\n    return currentRenderer;\n  }; // only render if we are not animating. If we are animating\n  // then renders will happen naturally anyhow and we definitely\n  // do not want extra renders as the make the apparent interaction\n  // rate slower.\n\n\n  publicAPI.render = function () {\n    if (!publicAPI.isAnimating() && !model.inRender) {\n      forceRender();\n    }\n  }; // create the generic Event methods\n\n\n  handledEvents.forEach(function (eventName) {\n    var lowerFirst = eventName.charAt(0).toLowerCase() + eventName.slice(1);\n\n    publicAPI[\"\".concat(lowerFirst, \"Event\")] = function (arg) {\n      // Check that interactor enabled\n      if (!model.enabled) {\n        return;\n      } // Check that a poked renderer exists\n\n\n      var renderer = publicAPI.getCurrentRenderer();\n\n      if (!renderer) {\n        vtkOnceErrorMacro(\"\\n          Can not forward events without a current renderer on the interactor.\\n        \");\n        return;\n      } // Pass the eventName and the poked renderer\n\n\n      var callData = _objectSpread({\n        type: eventName,\n        pokedRenderer: model.currentRenderer,\n        firstRenderer: publicAPI.getFirstRenderer()\n      }, arg); // Call invoke\n\n\n      publicAPI[\"invoke\".concat(eventName)](callData);\n    };\n  }); // we know we are in multitouch now, so start recognizing\n\n  publicAPI.recognizeGesture = function (event, positions) {\n    // more than two pointers we ignore\n    if (Object.keys(positions).length > 2) {\n      return;\n    }\n\n    if (!model.startingEventPositions) {\n      model.startingEventPositions = {};\n    } // store the initial positions\n\n\n    if (event === 'TouchStart') {\n      Object.keys(positions).forEach(function (key) {\n        model.startingEventPositions[key] = positions[key];\n      }); // we do not know what the gesture is yet\n\n      model.currentGesture = 'Start';\n      return;\n    } // end the gesture if needed\n\n\n    if (event === 'TouchEnd') {\n      if (model.currentGesture === 'Pinch') {\n        publicAPI.render();\n        publicAPI.endPinchEvent();\n      }\n\n      if (model.currentGesture === 'Rotate') {\n        publicAPI.render();\n        publicAPI.endRotateEvent();\n      }\n\n      if (model.currentGesture === 'Pan') {\n        publicAPI.render();\n        publicAPI.endPanEvent();\n      }\n\n      model.currentGesture = 'Start';\n      model.startingEventPositions = {};\n      return;\n    } // what are the two pointers we are working with\n\n\n    var count = 0;\n    var posVals = [];\n    var startVals = [];\n    Object.keys(positions).forEach(function (key) {\n      posVals[count] = positions[key];\n      startVals[count] = model.startingEventPositions[key];\n      count++;\n    }); // The meat of the algorithm\n    // on move events we analyze them to determine what type\n    // of movement it is and then deal with it.\n    // calculate the distances\n\n    var originalDistance = Math.sqrt((startVals[0].x - startVals[1].x) * (startVals[0].x - startVals[1].x) + (startVals[0].y - startVals[1].y) * (startVals[0].y - startVals[1].y));\n    var newDistance = Math.sqrt((posVals[0].x - posVals[1].x) * (posVals[0].x - posVals[1].x) + (posVals[0].y - posVals[1].y) * (posVals[0].y - posVals[1].y)); // calculate rotations\n\n    var originalAngle = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.A)(Math.atan2(startVals[1].y - startVals[0].y, startVals[1].x - startVals[0].x));\n    var newAngle = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.A)(Math.atan2(posVals[1].y - posVals[0].y, posVals[1].x - posVals[0].x)); // angles are cyclic so watch for that, 1 and 359 are only 2 apart :)\n\n    var angleDeviation = newAngle - originalAngle;\n    newAngle = newAngle + 180.0 >= 360.0 ? newAngle - 180.0 : newAngle + 180.0;\n    originalAngle = originalAngle + 180.0 >= 360.0 ? originalAngle - 180.0 : originalAngle + 180.0;\n\n    if (Math.abs(newAngle - originalAngle) < Math.abs(angleDeviation)) {\n      angleDeviation = newAngle - originalAngle;\n    } // calculate the translations\n\n\n    var trans = [];\n    trans[0] = (posVals[0].x - startVals[0].x + posVals[1].x - startVals[1].x) / 2.0;\n    trans[1] = (posVals[0].y - startVals[0].y + posVals[1].y - startVals[1].y) / 2.0;\n\n    if (event === 'TouchMove') {\n      // OK we want to\n      // - immediately respond to the user\n      // - allow the user to zoom without panning (saves focal point)\n      // - allow the user to rotate without panning (saves focal point)\n      // do we know what gesture we are doing yet? If not\n      // see if we can figure it out\n      if (model.currentGesture === 'Start') {\n        // pinch is a move to/from the center point\n        // rotate is a move along the circumference\n        // pan is a move of the center point\n        // compute the distance along each of these axes in pixels\n        // the first to break thresh wins\n        var thresh = 0.01 * Math.sqrt(model.container.clientWidth * model.container.clientWidth + model.container.clientHeight * model.container.clientHeight);\n\n        if (thresh < 15.0) {\n          thresh = 15.0;\n        }\n\n        var pinchDistance = Math.abs(newDistance - originalDistance);\n        var rotateDistance = newDistance * 3.1415926 * Math.abs(angleDeviation) / 360.0;\n        var panDistance = Math.sqrt(trans[0] * trans[0] + trans[1] * trans[1]);\n\n        if (pinchDistance > thresh && pinchDistance > rotateDistance && pinchDistance > panDistance) {\n          model.currentGesture = 'Pinch';\n          var callData = {\n            scale: 1.0,\n            touches: positions\n          };\n          publicAPI.startPinchEvent(callData);\n        } else if (rotateDistance > thresh && rotateDistance > panDistance) {\n          model.currentGesture = 'Rotate';\n          var _callData4 = {\n            rotation: 0.0,\n            touches: positions\n          };\n          publicAPI.startRotateEvent(_callData4);\n        } else if (panDistance > thresh) {\n          model.currentGesture = 'Pan';\n          var _callData5 = {\n            translation: [0, 0],\n            touches: positions\n          };\n          publicAPI.startPanEvent(_callData5);\n        }\n      } else {\n        // if we have found a specific type of movement then\n        // handle it\n        if (model.currentGesture === 'Rotate') {\n          var _callData6 = {\n            rotation: angleDeviation,\n            touches: positions\n          };\n          publicAPI.rotateEvent(_callData6);\n        }\n\n        if (model.currentGesture === 'Pinch') {\n          var _callData7 = {\n            scale: newDistance / originalDistance,\n            touches: positions\n          };\n          publicAPI.pinchEvent(_callData7);\n        }\n\n        if (model.currentGesture === 'Pan') {\n          var _callData8 = {\n            translation: trans,\n            touches: positions\n          };\n          publicAPI.panEvent(_callData8);\n        }\n      }\n    }\n  };\n\n  publicAPI.handleVisibilityChange = function () {\n    model._animationStartTime = Date.now();\n    model._animationFrameCount = 0;\n  };\n\n  publicAPI.setCurrentRenderer = function (r) {\n    model._forcedRenderer = !!r;\n    model.currentRenderer = r;\n  }; // Stop animating if the renderWindowInteractor is deleted.\n\n\n  var superDelete = publicAPI.delete;\n\n  publicAPI.delete = function () {\n    while (animationRequesters.size) {\n      publicAPI.cancelAnimation(animationRequesters.values().next().value);\n    }\n\n    if (typeof document.hidden !== 'undefined') {\n      document.removeEventListener('visibilitychange', publicAPI.handleVisibilityChange);\n    }\n\n    superDelete();\n  }; // Use the Page Visibility API to detect when we switch away from or back to\n  // this tab, and reset the animationFrameStart. When tabs are not active, browsers\n  // will stop calling requestAnimationFrame callbacks.\n\n\n  if (typeof document.hidden !== 'undefined') {\n    document.addEventListener('visibilitychange', publicAPI.handleVisibilityChange, false);\n  }\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  renderWindow: null,\n  interactorStyle: null,\n  picker: null,\n  pickingManager: null,\n  initialized: false,\n  enabled: false,\n  enableRender: true,\n  currentRenderer: null,\n  lightFollowCamera: true,\n  desiredUpdateRate: 30.0,\n  stillUpdateRate: 2.0,\n  container: null,\n  // _view: null,\n  recognizeGestures: true,\n  currentGesture: 'Start',\n  animationRequest: null,\n  lastFrameTime: 0.1,\n  recentAnimationFrameRate: 10.0,\n  wheelTimeoutID: 0,\n  moveTimeoutID: 0,\n  lastGamepadValues: {}\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model); // run animation at least until this time\n\n  model._animationExtendedEnd = 0;\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].event(publicAPI, model, 'RenderEvent');\n  handledEvents.forEach(function (eventName) {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].event(publicAPI, model, eventName);\n  }); // Create get-only macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['initialized', 'container', 'interactorStyle', 'lastFrameTime', 'recentAnimationFrameRate', '_view']); // Create get-set macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['lightFollowCamera', 'enabled', 'enableRender', 'recognizeGestures', 'desiredUpdateRate', 'stillUpdateRate', 'picker']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].moveToProtected(publicAPI, model, ['view']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkRenderWindowInteractor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkRenderWindowInteractor'); // ----------------------------------------------------------------------------\n\nvar vtkRenderWindowInteractor$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend,\n  handledEvents: handledEvents\n}, _RenderWindowInteractor_Constants_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor/Constants.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor/Constants.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Axis\": () => (/* binding */ Axis),\n/* harmony export */   \"Device\": () => (/* binding */ Device),\n/* harmony export */   \"Input\": () => (/* binding */ Input),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar Device = {\n  Unknown: 0,\n  LeftController: 1,\n  RightController: 2\n};\nvar Input = {\n  Unknown: 0,\n  Trigger: 1,\n  TrackPad: 2,\n  Grip: 3,\n  Thumbstick: 4,\n  A: 5,\n  B: 6,\n  ApplicationMenu: 7 // Not exposed in WebXR API\n\n};\nvar Axis = {\n  Unknown: 0,\n  TouchpadX: 1,\n  TouchpadY: 2,\n  ThumbstickX: 3,\n  ThumbstickY: 4\n};\nvar Constants = {\n  Device: Device,\n  Input: Input,\n  Axis: Axis\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Renderer.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Renderer.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkRenderer$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Camera_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Camera.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Camera.js\");\n/* harmony import */ var _Light_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Light.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Light.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Viewport_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Viewport.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Viewport.js\");\n/* harmony import */ var _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Common/DataModel/BoundingBox.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/BoundingBox.js\");\n\n\n\n\n\n\n\n\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkDebugMacro,\n    vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro,\n    vtkWarningMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkWarningMacro;\n\nfunction notImplemented(method) {\n  return function () {\n    return vtkErrorMacro(\"vtkRenderer::\".concat(method, \" - NOT IMPLEMENTED\"));\n  };\n} // ----------------------------------------------------------------------------\n// vtkRenderer methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkRenderer(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkRenderer'); // Events\n\n  var COMPUTE_VISIBLE_PROP_BOUNDS_EVENT = {\n    type: 'ComputeVisiblePropBoundsEvent',\n    renderer: publicAPI\n  };\n  var RESET_CAMERA_CLIPPING_RANGE_EVENT = {\n    type: 'ResetCameraClippingRangeEvent',\n    renderer: publicAPI\n  };\n  var RESET_CAMERA_EVENT = {\n    type: 'ResetCameraEvent',\n    renderer: publicAPI\n  };\n\n  publicAPI.updateCamera = function () {\n    if (!model.activeCamera) {\n      vtkDebugMacro('No cameras are on, creating one.'); // the get method will automagically create a camera\n      // and reset it since one hasn't been specified yet.\n\n      publicAPI.getActiveCameraAndResetIfCreated();\n    } // update the viewing transformation\n\n\n    model.activeCamera.render(publicAPI);\n    return true;\n  };\n\n  publicAPI.updateLightsGeometryToFollowCamera = function () {\n    // only update the light's geometry if this Renderer is tracking\n    // this lights.  That allows one renderer to view the lights that\n    // another renderer is setting up.\n    var camera = publicAPI.getActiveCameraAndResetIfCreated();\n    model.lights.forEach(function (light) {\n      if (light.lightTypeIsSceneLight() || light.lightTypeIsCameraLight()) ; else if (light.lightTypeIsHeadLight()) {\n        // update position and orientation of light to match camera.\n        light.setPositionFrom(camera.getPositionByReference());\n        light.setFocalPointFrom(camera.getFocalPointByReference());\n        light.modified(camera.getMTime());\n      } else {\n        vtkErrorMacro('light has unknown light type', light.get());\n      }\n    });\n  };\n\n  publicAPI.updateLightGeometry = function () {\n    if (model.lightFollowCamera) {\n      // only update the light's geometry if this Renderer is tracking\n      // this lights.  That allows one renderer to view the lights that\n      // another renderer is setting up.\n      return publicAPI.updateLightsGeometryToFollowCamera();\n    }\n\n    return true;\n  };\n\n  publicAPI.allocateTime = notImplemented('allocateTime');\n  publicAPI.updateGeometry = notImplemented('updateGeometry');\n\n  publicAPI.getVTKWindow = function () {\n    return model._renderWindow;\n  };\n\n  publicAPI.setLayer = function (layer) {\n    vtkDebugMacro(publicAPI.getClassName(), publicAPI, 'setting Layer to ', layer);\n\n    if (model.layer !== layer) {\n      model.layer = layer;\n      publicAPI.modified();\n    }\n\n    publicAPI.setPreserveColorBuffer(!!layer);\n  };\n\n  publicAPI.setActiveCamera = function (camera) {\n    if (model.activeCamera === camera) {\n      return false;\n    }\n\n    model.activeCamera = camera;\n    publicAPI.modified();\n    publicAPI.invokeEvent({\n      type: 'ActiveCameraEvent',\n      camera: camera\n    });\n    return true;\n  };\n\n  publicAPI.makeCamera = function () {\n    var camera = _Camera_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n    publicAPI.invokeEvent({\n      type: 'CreateCameraEvent',\n      camera: camera\n    });\n    return camera;\n  }; // Replace the set/get macro method\n\n\n  publicAPI.getActiveCamera = function () {\n    if (!model.activeCamera) {\n      model.activeCamera = publicAPI.makeCamera();\n    }\n\n    return model.activeCamera;\n  };\n\n  publicAPI.getActiveCameraAndResetIfCreated = function () {\n    if (!model.activeCamera) {\n      publicAPI.getActiveCamera();\n      publicAPI.resetCamera();\n    }\n\n    return model.activeCamera;\n  };\n\n  publicAPI.getActors = function () {\n    model.actors = [];\n    model.props.forEach(function (prop) {\n      model.actors = model.actors.concat(prop.getActors());\n    });\n    return model.actors;\n  };\n\n  publicAPI.addActor = publicAPI.addViewProp;\n\n  publicAPI.removeActor = function (actor) {\n    model.actors = model.actors.filter(function (a) {\n      return a !== actor;\n    });\n    publicAPI.removeViewProp(actor);\n    publicAPI.modified();\n  };\n\n  publicAPI.removeAllActors = function () {\n    var actors = publicAPI.getActors();\n    actors.forEach(function (actor) {\n      publicAPI.removeViewProp(actor);\n    });\n    model.actors = [];\n    publicAPI.modified();\n  };\n\n  publicAPI.getVolumes = function () {\n    model.volumes = [];\n    model.props.forEach(function (prop) {\n      model.volumes = model.volumes.concat(prop.getVolumes());\n    });\n    return model.volumes;\n  };\n\n  publicAPI.addVolume = publicAPI.addViewProp;\n\n  publicAPI.removeVolume = function (volume) {\n    model.volumes = model.volumes.filter(function (v) {\n      return v !== volume;\n    });\n    publicAPI.removeViewProp(volume);\n    publicAPI.modified();\n  };\n\n  publicAPI.removeAllVolumes = function () {\n    var volumes = publicAPI.getVolumes();\n    volumes.forEach(function (volume) {\n      publicAPI.removeViewProp(volume);\n    });\n    model.volumes = [];\n    publicAPI.modified();\n  };\n\n  publicAPI.addLight = function (light) {\n    model.lights = [].concat(model.lights, light);\n    publicAPI.modified();\n  };\n\n  publicAPI.removeLight = function (light) {\n    model.lights = model.lights.filter(function (l) {\n      return l !== light;\n    });\n    publicAPI.modified();\n  };\n\n  publicAPI.removeAllLights = function () {\n    model.lights = [];\n    publicAPI.modified();\n  };\n\n  publicAPI.setLightCollection = function (lights) {\n    model.lights = lights;\n    publicAPI.modified();\n  };\n\n  publicAPI.makeLight = _Light_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance;\n\n  publicAPI.createLight = function () {\n    if (!model.automaticLightCreation) {\n      return;\n    }\n\n    if (model._createdLight) {\n      publicAPI.removeLight(model._createdLight);\n\n      model._createdLight.delete();\n\n      model._createdLight = null;\n    }\n\n    model._createdLight = publicAPI.makeLight();\n    publicAPI.addLight(model._createdLight);\n\n    model._createdLight.setLightTypeToHeadLight(); // set these values just to have a good default should LightFollowCamera\n    // be turned off.\n\n\n    model._createdLight.setPosition(publicAPI.getActiveCamera().getPosition());\n\n    model._createdLight.setFocalPoint(publicAPI.getActiveCamera().getFocalPoint());\n  }; // requires the aspect ratio of the viewport as X/Y\n\n\n  publicAPI.normalizedDisplayToWorld = function (x, y, z, aspect) {\n    var vpd = publicAPI.normalizedDisplayToProjection(x, y, z);\n    vpd = publicAPI.projectionToView(vpd[0], vpd[1], vpd[2], aspect);\n    return publicAPI.viewToWorld(vpd[0], vpd[1], vpd[2]);\n  }; // requires the aspect ratio of the viewport as X/Y\n\n\n  publicAPI.worldToNormalizedDisplay = function (x, y, z, aspect) {\n    var vpd = publicAPI.worldToView(x, y, z);\n    vpd = publicAPI.viewToProjection(vpd[0], vpd[1], vpd[2], aspect);\n    return publicAPI.projectionToNormalizedDisplay(vpd[0], vpd[1], vpd[2]);\n  }; // requires the aspect ratio of the viewport as X/Y\n\n\n  publicAPI.viewToWorld = function (x, y, z) {\n    if (model.activeCamera === null) {\n      vtkErrorMacro('ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0');\n      return [0, 0, 0];\n    } // get the view matrix from the active camera\n\n\n    var matrix = model.activeCamera.getViewMatrix();\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.invert(matrix, matrix);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.transpose(matrix, matrix); // Transform point to world coordinates\n\n    var result = new Float64Array([x, y, z]);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(result, result, matrix);\n    return result;\n  };\n\n  publicAPI.projectionToView = function (x, y, z, aspect) {\n    if (model.activeCamera === null) {\n      vtkErrorMacro('ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0');\n      return [0, 0, 0];\n    } // get the projection transformation from the active camera\n\n\n    var matrix = model.activeCamera.getProjectionMatrix(aspect, -1.0, 1.0);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.invert(matrix, matrix);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.transpose(matrix, matrix); // Transform point to world coordinates\n\n    var result = new Float64Array([x, y, z]);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(result, result, matrix);\n    return result;\n  }; // Convert world point coordinates to view coordinates.\n\n\n  publicAPI.worldToView = function (x, y, z) {\n    if (model.activeCamera === null) {\n      vtkErrorMacro('WorldToView: no active camera, cannot compute view to world, returning 0,0,0');\n      return [0, 0, 0];\n    } // get the view transformation from the active camera\n\n\n    var matrix = model.activeCamera.getViewMatrix();\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.transpose(matrix, matrix);\n    var result = new Float64Array([x, y, z]);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(result, result, matrix);\n    return result;\n  }; // Convert world point coordinates to view coordinates.\n  // requires the aspect ratio of the viewport as X/Y\n\n\n  publicAPI.viewToProjection = function (x, y, z, aspect) {\n    if (model.activeCamera === null) {\n      vtkErrorMacro('ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0');\n      return [0, 0, 0];\n    } // get the projeciton transformation from the active camera\n\n\n    var matrix = model.activeCamera.getProjectionMatrix(aspect, -1.0, 1.0);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.transpose(matrix, matrix);\n    var result = new Float64Array([x, y, z]);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_7__.transformMat4(result, result, matrix);\n    return result;\n  };\n\n  publicAPI.computeVisiblePropBounds = function () {\n    model.allBounds[0] = _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].INIT_BOUNDS[0];\n    model.allBounds[1] = _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].INIT_BOUNDS[1];\n    model.allBounds[2] = _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].INIT_BOUNDS[2];\n    model.allBounds[3] = _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].INIT_BOUNDS[3];\n    model.allBounds[4] = _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].INIT_BOUNDS[4];\n    model.allBounds[5] = _Common_DataModel_BoundingBox_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].INIT_BOUNDS[5];\n    var nothingVisible = true;\n    publicAPI.invokeEvent(COMPUTE_VISIBLE_PROP_BOUNDS_EVENT); // loop through all props\n\n    for (var index = 0; index < model.props.length; ++index) {\n      var prop = model.props[index];\n\n      if (prop.getVisibility() && prop.getUseBounds()) {\n        var bounds = prop.getBounds();\n\n        if (bounds && (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.P)(bounds)) {\n          nothingVisible = false;\n\n          if (bounds[0] < model.allBounds[0]) {\n            model.allBounds[0] = bounds[0];\n          }\n\n          if (bounds[1] > model.allBounds[1]) {\n            model.allBounds[1] = bounds[1];\n          }\n\n          if (bounds[2] < model.allBounds[2]) {\n            model.allBounds[2] = bounds[2];\n          }\n\n          if (bounds[3] > model.allBounds[3]) {\n            model.allBounds[3] = bounds[3];\n          }\n\n          if (bounds[4] < model.allBounds[4]) {\n            model.allBounds[4] = bounds[4];\n          }\n\n          if (bounds[5] > model.allBounds[5]) {\n            model.allBounds[5] = bounds[5];\n          }\n        }\n      }\n    }\n\n    if (nothingVisible) {\n      (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.u)(model.allBounds);\n      vtkDebugMacro(\"Can't compute bounds, no 3D props are visible\");\n    }\n\n    return model.allBounds;\n  };\n\n  publicAPI.resetCamera = function () {\n    var bounds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    var boundsToUse = bounds || publicAPI.computeVisiblePropBounds();\n    var center = [0, 0, 0];\n\n    if (!(0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.P)(boundsToUse)) {\n      vtkDebugMacro('Cannot reset camera!');\n      return false;\n    }\n\n    var vn = null;\n\n    if (publicAPI.getActiveCamera()) {\n      vn = model.activeCamera.getViewPlaneNormal();\n    } else {\n      vtkErrorMacro('Trying to reset non-existent camera');\n      return false;\n    } // Reset the perspective zoom factors, otherwise subsequent zooms will cause\n    // the view angle to become very small and cause bad depth sorting.\n\n\n    model.activeCamera.setViewAngle(30.0);\n    center[0] = (boundsToUse[0] + boundsToUse[1]) / 2.0;\n    center[1] = (boundsToUse[2] + boundsToUse[3]) / 2.0;\n    center[2] = (boundsToUse[4] + boundsToUse[5]) / 2.0;\n    var w1 = boundsToUse[1] - boundsToUse[0];\n    var w2 = boundsToUse[3] - boundsToUse[2];\n    var w3 = boundsToUse[5] - boundsToUse[4];\n    w1 *= w1;\n    w2 *= w2;\n    w3 *= w3;\n    var radius = w1 + w2 + w3; // If we have just a single point, pick a radius of 1.0\n\n    radius = radius === 0 ? 1.0 : radius; // compute the radius of the enclosing sphere\n\n    radius = Math.sqrt(radius) * 0.5; // default so that the bounding sphere fits within the view fustrum\n    // compute the distance from the intersection of the view frustum with the\n    // bounding sphere. Basically in 2D draw a circle representing the bounding\n    // sphere in 2D then draw a horizontal line going out from the center of\n    // the circle. That is the camera view. Then draw a line from the camera\n    // position to the point where it intersects the circle. (it will be tangent\n    // to the circle at this point, this is important, only go to the tangent\n    // point, do not draw all the way to the view plane). Then draw the radius\n    // from the tangent point to the center of the circle. You will note that\n    // this forms a right triangle with one side being the radius, another being\n    // the target distance for the camera, then just find the target dist using\n    // a sin.\n\n    var angle = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.r)(model.activeCamera.getViewAngle());\n    var parallelScale = radius;\n    var distance = radius / Math.sin(angle * 0.5); // check view-up vector against view plane normal\n\n    var vup = model.activeCamera.getViewUp();\n\n    if (Math.abs((0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.d)(vup, vn)) > 0.999) {\n      vtkWarningMacro('Resetting view-up since view plane normal is parallel');\n      model.activeCamera.setViewUp(-vup[2], vup[0], vup[1]);\n    } // update the camera\n\n\n    model.activeCamera.setFocalPoint(center[0], center[1], center[2]);\n    model.activeCamera.setPosition(center[0] + distance * vn[0], center[1] + distance * vn[1], center[2] + distance * vn[2]);\n    publicAPI.resetCameraClippingRange(boundsToUse); // setup default parallel scale\n\n    model.activeCamera.setParallelScale(parallelScale); // update reasonable world to physical values\n\n    model.activeCamera.setPhysicalScale(radius);\n    model.activeCamera.setPhysicalTranslation(-center[0], -center[1], -center[2]); // Here to let parallel/distributed compositing intercept\n    // and do the right thing.\n\n    publicAPI.invokeEvent(RESET_CAMERA_EVENT);\n    return true;\n  };\n\n  publicAPI.resetCameraClippingRange = function () {\n    var bounds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    var boundsToUse = bounds || publicAPI.computeVisiblePropBounds();\n\n    if (!(0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.P)(boundsToUse)) {\n      vtkDebugMacro('Cannot reset camera clipping range!');\n      return false;\n    } // Make sure we have an active camera\n\n\n    publicAPI.getActiveCameraAndResetIfCreated();\n\n    if (!model.activeCamera) {\n      vtkErrorMacro('Trying to reset clipping range of non-existent camera');\n      return false;\n    } // Get the exact range for the bounds\n\n\n    var range = model.activeCamera.computeClippingRange(boundsToUse); // do not let far - near be less than 0.1 of the window height\n    // this is for cases such as 2D images which may have zero range\n\n    var minGap = 0.0;\n\n    if (model.activeCamera.getParallelProjection()) {\n      minGap = 0.2 * model.activeCamera.getParallelScale();\n    } else {\n      var angle = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.r)(model.activeCamera.getViewAngle());\n      minGap = 0.2 * Math.tan(angle / 2.0) * range[1];\n    }\n\n    if (range[1] - range[0] < minGap) {\n      minGap = minGap - range[1] + range[0];\n      range[1] += minGap / 2.0;\n      range[0] -= minGap / 2.0;\n    } // Do not let the range behind the camera throw off the calculation.\n\n\n    if (range[0] < 0.0) {\n      range[0] = 0.0;\n    } // Give ourselves a little breathing room\n\n\n    range[0] = 0.99 * range[0] - (range[1] - range[0]) * model.clippingRangeExpansion;\n    range[1] = 1.01 * range[1] + (range[1] - range[0]) * model.clippingRangeExpansion; // Make sure near is not bigger than far\n\n    range[0] = range[0] >= range[1] ? 0.01 * range[1] : range[0]; // Make sure near is at least some fraction of far - this prevents near\n    // from being behind the camera or too close in front. How close is too\n    // close depends on the resolution of the depth buffer\n\n    if (!model.nearClippingPlaneTolerance) {\n      model.nearClippingPlaneTolerance = 0.01;\n    } // make sure the front clipping range is not too far from the far clippnig\n    // range, this is to make sure that the zbuffer resolution is effectively\n    // used\n\n\n    if (range[0] < model.nearClippingPlaneTolerance * range[1]) {\n      range[0] = model.nearClippingPlaneTolerance * range[1];\n    }\n\n    model.activeCamera.setClippingRange(range[0], range[1]); // Here to let parallel/distributed compositing intercept\n    // and do the right thing.\n\n    publicAPI.invokeEvent(RESET_CAMERA_CLIPPING_RANGE_EVENT);\n    return false;\n  };\n\n  publicAPI.setRenderWindow = function (renderWindow) {\n    if (renderWindow !== model._renderWindow) {\n      model._vtkWindow = renderWindow;\n      model._renderWindow = renderWindow;\n    }\n  };\n\n  publicAPI.visibleActorCount = function () {\n    return model.props.filter(function (prop) {\n      return prop.getVisibility();\n    }).length;\n  };\n\n  publicAPI.visibleVolumeCount = publicAPI.visibleActorCount;\n\n  publicAPI.getMTime = function () {\n    var m1 = model.mtime;\n    var m2 = model.activeCamera ? model.activeCamera.getMTime() : 0;\n\n    if (m2 > m1) {\n      m1 = m2;\n    }\n\n    var m3 = model._createdLight ? model._createdLight.getMTime() : 0;\n\n    if (m3 > m1) {\n      m1 = m3;\n    }\n\n    return m1;\n  };\n\n  publicAPI.getTransparent = function () {\n    return !!model.preserveColorBuffer;\n  };\n\n  publicAPI.isActiveCameraCreated = function () {\n    return !!model.activeCamera;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  pickedProp: null,\n  activeCamera: null,\n  allBounds: [],\n  ambient: [1, 1, 1],\n  allocatedRenderTime: 100,\n  timeFactor: 1,\n  automaticLightCreation: true,\n  twoSidedLighting: true,\n  lastRenderTimeInSeconds: -1,\n  renderWindow: null,\n  lights: [],\n  actors: [],\n  volumes: [],\n  lightFollowCamera: true,\n  numberOfPropsRendered: 0,\n  propArray: null,\n  pathArray: null,\n  layer: 0,\n  preserveColorBuffer: false,\n  preserveDepthBuffer: false,\n  computeVisiblePropBounds: (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_3__.N)(),\n  interactive: true,\n  nearClippingPlaneTolerance: 0,\n  clippingRangeExpansion: 0.05,\n  erase: true,\n  draw: true,\n  useShadows: false,\n  useDepthPeeling: false,\n  occlusionRatio: 0,\n  maximumNumberOfPeels: 4,\n  selector: null,\n  delegate: null,\n  texturedBackground: false,\n  backgroundTexture: null,\n  pass: 0\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _Viewport_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend(publicAPI, model, initialValues); // make sure background has 4 entries. Default to opaque black\n\n  if (!model.background) model.background = [0, 0, 0, 1];\n\n  while (model.background.length < 3) {\n    model.background.push(0);\n  }\n\n  if (model.background.length === 3) model.background.push(1); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['_renderWindow', 'allocatedRenderTime', 'timeFactor', 'lastRenderTimeInSeconds', 'numberOfPropsRendered', 'lastRenderingUsedDepthPeeling', 'selector']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['twoSidedLighting', 'lightFollowCamera', 'automaticLightCreation', 'erase', 'draw', 'nearClippingPlaneTolerance', 'clippingRangeExpansion', 'backingStore', 'interactive', 'layer', 'preserveColorBuffer', 'preserveDepthBuffer', 'useDepthPeeling', 'occlusionRatio', 'maximumNumberOfPeels', 'delegate', 'backgroundTexture', 'texturedBackground', 'useShadows', 'pass']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.getArray)(publicAPI, model, ['actors', 'volumes', 'lights']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGetArray)(publicAPI, model, ['background'], 4, 1.0);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.moveToProtected)(publicAPI, model, ['renderWindow']); // Object methods\n\n  vtkRenderer(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkRenderer'); // ----------------------------------------------------------------------------\n\nvar vtkRenderer$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Renderer.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/ScalarBarActor.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/ScalarBarActor.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkScalarBarActor$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! d3-scale */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Actor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Actor.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Actor.js\");\n/* harmony import */ var _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Common/Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _Common_Core_ScalarsToColors_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Common/Core/ScalarsToColors.js */ \"./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors.js\");\n/* harmony import */ var _Mapper_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Mapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js\");\n/* harmony import */ var _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../Common/DataModel/PolyData.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Texture.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar VectorMode = _Common_Core_ScalarsToColors_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].VectorMode; // ----------------------------------------------------------------------------\n// vtkScalarBarActor\n//\n// Note log scales are currently not supported\n//\n// Developer note: This class is broken into the main class and a helper\n// class. The main class holds view independent properties (those properties\n// that do not change as the view's resolution/aspect ratio change). The\n// helper class is instantiated one per view and holds properties that can\n// depend on view specific values such as resolution. The helper class code\n// could have been left to the View specific implementation (such as\n// vtkWebGPUScalarBarActor) but is instead placed here to it can be shared by\n// multiple rendering backends.\n//\n// ----------------------------------------------------------------------------\n// some shared temp variables to reduce heap allocs\n\nvar ptv3 = new Float64Array(3);\nvar pt2v3 = new Float64Array(3);\nvar tmpv3 = new Float64Array(3);\nvar tmp2v3 = new Float64Array(3);\nvar xDir = new Float64Array(3);\nvar yDir = new Float64Array(3);\nvar invmat = new Float64Array(16);\n\nfunction applyTextStyle(ctx, style) {\n  ctx.strokeStyle = style.strokeColor;\n  ctx.lineWidth = style.strokeSize;\n  ctx.fillStyle = style.fontColor;\n  ctx.font = \"\".concat(style.fontStyle, \" \").concat(style.fontSize, \"px \").concat(style.fontFamily);\n} // ----------------------------------------------------------------------------\n// Default autoLayout function\n// ----------------------------------------------------------------------------\n// compute good values to use based on window size etc a bunch of heuristics\n// here with hand tuned constants These values worked for me but really this\n// method could be redically changed. The basic gist is\n// 1) compute a resonable font size\n// 2) render the text atlas using those font sizes\n// 3) pick horizontal or vertical bsed on window size\n// 4) based on the size of the title and tick labels rendered\n//    compute the box size and position such that\n//    the text will all fit nicely and the bar will be a resonable size\n// 5) compute the bar segments based on the above settings\n//\n// Note that this function can and should read values from the\n// ScalarBarActor but should only write values to the view dependent helper\n// instance that is provided as those values are the ones that will be used\n// for rendering.\n//\n\n\nfunction defaultAutoLayout(publicAPI, model) {\n  return function (helper) {\n    // we don't do a linear scale, the proportions for\n    // a 700 pixel window differ from a 1400\n    var lastSize = helper.getLastSize();\n    var xAxisAdjust = Math.pow(lastSize[0] / 700, 0.8);\n    var yAxisAdjust = Math.pow(lastSize[1] / 700, 0.8);\n    var minAdjust = Math.min(xAxisAdjust, yAxisAdjust);\n    var axisTextStyle = helper.getAxisTextStyle();\n    var tickTextStyle = helper.getTickTextStyle();\n    Object.assign(axisTextStyle, model.axisTextStyle);\n    Object.assign(tickTextStyle, model.tickTextStyle); // compute a reasonable font size first\n\n    axisTextStyle.fontSize = Math.max(24 * minAdjust, 12);\n\n    if (helper.getLastAspectRatio() > 1.0) {\n      tickTextStyle.fontSize = Math.max(20 * minAdjust, 10);\n    } else {\n      tickTextStyle.fontSize = Math.max(16 * minAdjust, 10);\n    } // rebuild the text atlas\n\n\n    var textSizes = helper.updateTextureAtlas(); // now compute the boxSize and pixel offsets, different algorithm\n    // for horizonal versus vertical\n\n    helper.setTopTitle(false);\n    var boxSize = helper.getBoxSizeByReference(); // if vertical\n\n    if (helper.getLastAspectRatio() > 1.0) {\n      helper.setTickLabelPixelOffset(0.4 * tickTextStyle.fontSize);\n      var tickWidth = 2.0 * (textSizes.tickWidth + helper.getTickLabelPixelOffset()) / lastSize[0];\n      helper.setAxisTitlePixelOffset(0.8 * axisTextStyle.fontSize); // width required if the title is vertical\n\n      var titleWidth = 2.0 * (textSizes.titleHeight + helper.getAxisTitlePixelOffset()) / lastSize[0]; // if the title will fit within the width of the bar then that looks\n      // nicer to put it at the top (helper.topTitle), otherwise rotate it\n      // and place it sideways\n\n      if (tickWidth + 0.4 * titleWidth > 2.0 * textSizes.titleWidth / lastSize[0]) {\n        helper.setTopTitle(true);\n        boxSize[0] = tickWidth + 0.4 * titleWidth;\n        helper.setBoxPosition([0.98 - boxSize[0], -0.92]);\n      } else {\n        boxSize[0] = tickWidth + 1.4 * titleWidth;\n        helper.setBoxPosition([0.99 - boxSize[0], -0.92]);\n      }\n\n      boxSize[1] = Math.max(1.2, Math.min(1.84 / yAxisAdjust, 1.84));\n    } else {\n      // horizontal\n      helper.setAxisTitlePixelOffset(2.0 * tickTextStyle.fontSize);\n      helper.setTickLabelPixelOffset(0.5 * tickTextStyle.fontSize);\n      var tickHeight = 2.0 * (textSizes.tickHeight + helper.getTickLabelPixelOffset()) / lastSize[1];\n      var titleHeight = 2.0 * (textSizes.titleHeight + helper.getAxisTitlePixelOffset()) / lastSize[1];\n\n      var _tickWidth = 2.0 * textSizes.tickWidth / lastSize[0];\n\n      boxSize[0] = Math.min(1.9, Math.max(1.4, 1.4 * _tickWidth * (helper.getTicks().length + 3)));\n      boxSize[1] = tickHeight + titleHeight;\n      helper.setBoxPosition([-0.5 * boxSize[0], -0.97]);\n    } // recomute bar segments based on positioning\n\n\n    helper.recomputeBarSegments(textSizes);\n  };\n} // many properties of this actor depend on the API specific view The main\n// dependency being the resolution as that drives what font sizes to use.\n// Bacause of this we need to do some of the calculations in a API specific\n// subclass. But... we don't want a lot of duplicated code between WebGL and\n// WebGPU for example so we have this helper class, that is designed to be\n// fairly API independent so that API specific views can call this to do\n// most of the work.\n\n\nfunction vtkScalarBarActorHelper(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkScalarBarActorHelper');\n\n  publicAPI.setRenderable = function (renderable) {\n    if (model.renderable === renderable) {\n      return;\n    }\n\n    model.renderable = renderable;\n    model.barActor.setProperty(renderable.getProperty());\n    model.barActor.setParentProp(renderable);\n    model.tmActor.setProperty(renderable.getProperty());\n    model.tmActor.setParentProp(renderable);\n    model.axisTextStyle = _objectSpread({}, renderable.getAxisTextStyle());\n    model.tickTextStyle = _objectSpread({}, renderable.getTickTextStyle());\n    publicAPI.modified();\n  };\n\n  publicAPI.updateAPISpecificData = function (size, camera, renderWindow) {\n    // has the size changed?\n    if (model.lastSize[0] !== size[0] || model.lastSize[1] !== size[1]) {\n      model.lastSize[0] = size[0];\n      model.lastSize[1] = size[1];\n      model.lastAspectRatio = size[0] / size[1];\n      model.forceUpdate = true;\n    }\n\n    var scalarsToColors = model.renderable.getScalarsToColors();\n\n    if (!scalarsToColors || !model.renderable.getVisibility()) {\n      return;\n    } // make sure the lut is assigned to our mapper\n\n\n    model.barMapper.setLookupTable(scalarsToColors); // camera should be the same for all views\n\n    model.camera = camera;\n    model.renderWindow = renderWindow; // did something significant change? If so rebuild a lot of things\n\n    if (model.forceUpdate || Math.max(scalarsToColors.getMTime(), publicAPI.getMTime()) > model.lastRebuildTime.getMTime()) {\n      var range = scalarsToColors.getMappingRange();\n      model.lastTickBounds = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(range);\n      model.barMapper.setScalarRange(model.lastTickBounds); // compute tick marks for axes (update for log scale)\n\n      var scale = d3_scale__WEBPACK_IMPORTED_MODULE_10__[\"default\"]().domain([model.lastTickBounds[0], model.lastTickBounds[1]]);\n      model.ticks = scale.ticks(5);\n      var format = scale.tickFormat(5);\n      model.tickstrings = model.ticks.map(format);\n\n      if (model.renderable.getAutomated()) {\n        model.renderable.getAutoLayout()(publicAPI);\n      } else {\n        // copy values from renderable\n        model.axisTextStyle = _objectSpread({}, model.renderable.getAxisTextStyle());\n        model.tickTextStyle = _objectSpread({}, model.renderable.getTickTextStyle());\n        model.barPosition = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.renderable.getBarPosition());\n        model.barSize = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.renderable.getBarSize());\n        model.boxPosition = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.renderable.getBoxPosition());\n        model.boxSize = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.renderable.getBoxSize());\n        model.axisTitlePixelOffset = model.renderable.getAxisTitlePixelOffset();\n        model.tickLabelPixelOffset = model.renderable.getTickLabelPixelOffset(); // rebuild the texture only when force or changed bounds, face\n        // visibility changes do to change the atlas\n\n        var textSizes = publicAPI.updateTextureAtlas(); // recompute bar segments based on positioning\n\n        publicAPI.recomputeBarSegments(textSizes);\n      }\n\n      model.forceViewUpdate = true;\n      model.lastRebuildTime.modified();\n      model.forceUpdate = false;\n    } // compute bounds for label quads whenever the camera changes or forced\n    // the polydata mapper could be modified to accept NDC coords then this\n    // would be called far less often\n\n\n    if (model.forceViewUpdate || model.camera.getMTime() > model.lastRedrawTime.getMTime()) {\n      publicAPI.updatePolyDataForLabels();\n      publicAPI.updatePolyDataForBarSegments();\n      model.lastRedrawTime.modified();\n      model.forceViewUpdate = false;\n    }\n  }; // create the texture map atlas that contains the rendering of\n  // all the text strings. Only needs to be called when the text strings\n  // have changed (labels and ticks)\n\n\n  publicAPI.updateTextureAtlas = function () {\n    // set the text properties\n    model.tmContext.textBaseline = 'bottom';\n    model.tmContext.textAlign = 'left'; // return some factors about the text atlas\n\n    var results = {}; // first the axislabel\n\n    var newTmAtlas = new Map();\n    var maxWidth = 0;\n    var totalHeight = 1; // start one pixel in so we have a border\n\n    applyTextStyle(model.tmContext, model.axisTextStyle);\n    var metrics = model.tmContext.measureText(model.renderable.getAxisLabel());\n    var entry = {\n      height: metrics.actualBoundingBoxAscent + 2,\n      startingHeight: totalHeight,\n      width: metrics.width + 2,\n      textStyle: model.axisTextStyle\n    };\n    newTmAtlas.set(model.renderable.getAxisLabel(), entry);\n    totalHeight += entry.height;\n    maxWidth = entry.width;\n    results.titleWidth = entry.width;\n    results.titleHeight = entry.height; // and the ticks, NaN Below and Above\n\n    results.tickWidth = 0;\n    results.tickHeight = 0;\n    applyTextStyle(model.tmContext, model.tickTextStyle);\n    var strings = [].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.tickstrings), ['NaN', 'Below', 'Above']);\n\n    for (var t = 0; t < strings.length; t++) {\n      if (!newTmAtlas.has(strings[t])) {\n        metrics = model.tmContext.measureText(strings[t]);\n        entry = {\n          height: metrics.actualBoundingBoxAscent + 2,\n          startingHeight: totalHeight,\n          width: metrics.width + 2,\n          textStyle: model.tickTextStyle\n        };\n        newTmAtlas.set(strings[t], entry);\n        totalHeight += entry.height;\n\n        if (maxWidth < entry.width) {\n          maxWidth = entry.width;\n        }\n\n        if (results.tickWidth < entry.width) {\n          results.tickWidth = entry.width;\n        }\n\n        if (results.tickHeight < entry.height) {\n          results.tickHeight = entry.height;\n        }\n      }\n    } // always use power of two to avoid interpolation\n    // in cases where PO2 is required\n\n\n    maxWidth = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.M)(maxWidth);\n    totalHeight = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.M)(totalHeight); // set the tcoord values\n\n    newTmAtlas.forEach(function (value) {\n      value.tcoords = [0.0, (totalHeight - value.startingHeight - value.height) / totalHeight, value.width / maxWidth, (totalHeight - value.startingHeight - value.height) / totalHeight, value.width / maxWidth, (totalHeight - value.startingHeight) / totalHeight, 0.0, (totalHeight - value.startingHeight) / totalHeight];\n    }); // make sure we have power of two dimensions\n\n    model.tmCanvas.width = maxWidth;\n    model.tmCanvas.height = totalHeight;\n    model.tmContext.textBaseline = 'bottom';\n    model.tmContext.textAlign = 'left';\n    model.tmContext.clearRect(0, 0, maxWidth, totalHeight); // draw the text onto the texture\n\n    newTmAtlas.forEach(function (value, key) {\n      applyTextStyle(model.tmContext, value.textStyle);\n      model.tmContext.fillText(key, 1, value.startingHeight + value.height - 1);\n    });\n    model.tmTexture.setCanvas(model.tmCanvas); // mark as modified since the canvas typically doesn't change\n\n    model.tmTexture.modified();\n    model._tmAtlas = newTmAtlas;\n    return results;\n  };\n\n  publicAPI.computeBarSize = function (textSizes) {\n    // compute orientation\n    model.vertical = model.boxSize[1] > model.boxSize[0];\n    var tickHeight = 2.0 * textSizes.tickHeight / model.lastSize[1];\n    var segSize = [1, 1]; // horizontal and vertical have different astetics so adjust based on\n    // orientation\n\n    if (model.vertical) {\n      var tickWidth = 2.0 * (textSizes.tickWidth + model.tickLabelPixelOffset) / model.lastSize[0];\n\n      if (model.topTitle) {\n        var titleHeight = 2.0 * (textSizes.titleHeight + model.axisTitlePixelOffset) / model.lastSize[1];\n        model.barSize[0] = model.boxSize[0] - tickWidth;\n        model.barSize[1] = model.boxSize[1] - titleHeight;\n      } else {\n        // rotated title so width is based off height\n        var titleWidth = 2.0 * (textSizes.titleHeight + model.axisTitlePixelOffset) / model.lastSize[0];\n        model.barSize[0] = model.boxSize[0] - titleWidth - tickWidth;\n        model.barSize[1] = model.boxSize[1];\n      }\n\n      model.barPosition[0] = model.boxPosition[0] + tickWidth;\n      model.barPosition[1] = model.boxPosition[1];\n      segSize[1] = tickHeight;\n    } else {\n      var _tickWidth2 = (2.0 * textSizes.tickWidth - 8) / model.lastSize[0];\n\n      var _titleHeight = 2.0 * (textSizes.titleHeight + model.axisTitlePixelOffset) / model.lastSize[1];\n\n      model.barSize[0] = model.boxSize[0];\n      model.barPosition[0] = model.boxPosition[0];\n      model.barSize[1] = model.boxSize[1] - _titleHeight - tickHeight;\n      model.barPosition[1] = model.boxPosition[1];\n      segSize[0] = _tickWidth2;\n    }\n\n    return segSize;\n  }; // based on all the settins compute a barSegments array\n  // containing the segments opf the scalar bar\n  // each segment contains\n  //   corners[4][2]\n  //   title - e.g. NaN, Above, ticks\n  //   scalars - the normalized scalars values to use for that segment\n  //\n  // Note that the bar consumes the space in the box that remains after\n  // leaving room for the text labels\n\n\n  publicAPI.recomputeBarSegments = function (textSizes) {\n    var _model$renderable$get, _model$renderable$get2, _model$renderable$get3, _model$renderable$get4;\n\n    // first compute the barSize/Position\n    var segSize = publicAPI.computeBarSize(textSizes);\n    model.barSegments = [];\n    var startPos = [0.0, 0.0]; // horizontal and vertical have different astetics so adjust based on\n    // orientation\n\n    var barAxis = model.vertical ? 1 : 0;\n    var segSpace = model.vertical ? 0.01 : 0.02;\n\n    function pushSeg(title, scalars) {\n      model.barSegments.push({\n        corners: [[].concat(startPos), [startPos[0] + segSize[0], startPos[1]], [startPos[0] + segSize[0], startPos[1] + segSize[1]], [startPos[0], startPos[1] + segSize[1]]],\n        scalars: scalars,\n        title: title\n      });\n      startPos[barAxis] += segSize[barAxis] + segSpace;\n    }\n\n    if (model.renderable.getDrawNanAnnotation() && model.renderable.getScalarsToColors().getNanColor()) {\n      pushSeg('NaN', [NaN, NaN, NaN, NaN]);\n    }\n\n    if (model.renderable.getDrawBelowRangeSwatch() && (_model$renderable$get = (_model$renderable$get2 = model.renderable.getScalarsToColors()).getUseBelowRangeColor) !== null && _model$renderable$get !== void 0 && _model$renderable$get.call(_model$renderable$get2)) {\n      pushSeg('Below', [-0.1, -0.1, -0.1, -0.1]);\n    }\n\n    var haveAbove = (_model$renderable$get3 = (_model$renderable$get4 = model.renderable.getScalarsToColors()).getUseAboveRangeColor) === null || _model$renderable$get3 === void 0 ? void 0 : _model$renderable$get3.call(_model$renderable$get4); // extra space around the ticks section\n\n    startPos[barAxis] += segSpace;\n    var oldSegSize = segSize[barAxis];\n    segSize[barAxis] = haveAbove ? 1.0 - 2.0 * segSpace - segSize[barAxis] - startPos[barAxis] : 1.0 - segSpace - startPos[barAxis];\n    pushSeg('ticks', model.vertical ? [0, 0, 0.995, 0.995] : [0, 0.995, 0.995, 0]);\n\n    if (model.renderable.getDrawAboveRangeSwatch() && haveAbove) {\n      segSize[barAxis] = oldSegSize;\n      startPos[barAxis] += segSpace;\n      pushSeg('Above', [1.1, 1.1, 1.1, 1.1]);\n    }\n  }; // called by updatePolyDataForLabels\n  // modifies class constants ptv3, tmpv3\n\n\n  publicAPI.createPolyDataForOneLabel = function (text, pos, xdir, ydir, dir, offset, results) {\n    var value = model._tmAtlas.get(text);\n\n    if (!value) {\n      return;\n    } // have to find the four corners of the texture polygon for this label\n    // convert anchor point to View Coords\n\n\n    var ptIdx = results.ptIdx;\n    var cellIdx = results.cellIdx;\n    ptv3[0] = pos[0];\n    ptv3[1] = pos[1];\n    ptv3[2] = pos[2]; // horizontal left, right, or middle alignment based on dir[0]\n\n    if (dir[0] < -0.5) {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_11__.scale(tmpv3, xdir, dir[0] * offset - value.width);\n    } else if (dir[0] > 0.5) {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_11__.scale(tmpv3, xdir, dir[0] * offset);\n    } else {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_11__.scale(tmpv3, xdir, dir[0] * offset - value.width / 2.0);\n    }\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.add(ptv3, ptv3, tmpv3);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.scale(tmpv3, ydir, dir[1] * offset - value.height / 2.0);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.add(ptv3, ptv3, tmpv3);\n    results.points[ptIdx * 3] = ptv3[0];\n    results.points[ptIdx * 3 + 1] = ptv3[1];\n    results.points[ptIdx * 3 + 2] = ptv3[2];\n    results.tcoords[ptIdx * 2] = value.tcoords[0];\n    results.tcoords[ptIdx * 2 + 1] = value.tcoords[1];\n    ptIdx++;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.scale(tmpv3, xdir, value.width);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.add(ptv3, ptv3, tmpv3);\n    results.points[ptIdx * 3] = ptv3[0];\n    results.points[ptIdx * 3 + 1] = ptv3[1];\n    results.points[ptIdx * 3 + 2] = ptv3[2];\n    results.tcoords[ptIdx * 2] = value.tcoords[2];\n    results.tcoords[ptIdx * 2 + 1] = value.tcoords[3];\n    ptIdx++;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.scale(tmpv3, ydir, value.height);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.add(ptv3, ptv3, tmpv3);\n    results.points[ptIdx * 3] = ptv3[0];\n    results.points[ptIdx * 3 + 1] = ptv3[1];\n    results.points[ptIdx * 3 + 2] = ptv3[2];\n    results.tcoords[ptIdx * 2] = value.tcoords[4];\n    results.tcoords[ptIdx * 2 + 1] = value.tcoords[5];\n    ptIdx++;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.scale(tmpv3, xdir, value.width);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.subtract(ptv3, ptv3, tmpv3);\n    results.points[ptIdx * 3] = ptv3[0];\n    results.points[ptIdx * 3 + 1] = ptv3[1];\n    results.points[ptIdx * 3 + 2] = ptv3[2];\n    results.tcoords[ptIdx * 2] = value.tcoords[6];\n    results.tcoords[ptIdx * 2 + 1] = value.tcoords[7];\n    ptIdx++; // add the two triangles to represent the quad\n\n    results.polys[cellIdx * 4] = 3;\n    results.polys[cellIdx * 4 + 1] = ptIdx - 4;\n    results.polys[cellIdx * 4 + 2] = ptIdx - 3;\n    results.polys[cellIdx * 4 + 3] = ptIdx - 2;\n    cellIdx++;\n    results.polys[cellIdx * 4] = 3;\n    results.polys[cellIdx * 4 + 1] = ptIdx - 4;\n    results.polys[cellIdx * 4 + 2] = ptIdx - 2;\n    results.polys[cellIdx * 4 + 3] = ptIdx - 1;\n    results.ptIdx += 4;\n    results.cellIdx += 2;\n  }; // update the polydata associated with drawing the text labels\n  // specifically the quads used for each label and their associated tcoords\n  // etc. This changes every time the camera viewpoint changes\n\n\n  publicAPI.updatePolyDataForLabels = function () {\n    var cmat = model.camera.getCompositeProjectionMatrix(model.lastAspectRatio, -1, 1);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_12__.transpose(cmat, cmat);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_12__.invert(invmat, cmat);\n    var size = model.lastSize; // compute pixel to distance factors\n\n    tmpv3[0] = 0.0;\n    tmpv3[1] = 0.0;\n    tmpv3[2] = -0.99; // near plane\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transformMat4(ptv3, tmpv3, invmat); // moving 0.1 in NDC\n\n    tmpv3[0] += 0.1;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transformMat4(pt2v3, tmpv3, invmat); // results in WC move of\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.subtract(xDir, pt2v3, ptv3);\n    tmpv3[0] -= 0.1;\n    tmpv3[1] += 0.1;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transformMat4(pt2v3, tmpv3, invmat); // results in WC move of\n\n    gl_matrix__WEBPACK_IMPORTED_MODULE_11__.subtract(yDir, pt2v3, ptv3);\n\n    for (var i = 0; i < 3; i++) {\n      xDir[i] /= 0.5 * 0.1 * size[0];\n      yDir[i] /= 0.5 * 0.1 * size[1];\n    } // update the polydata\n\n\n    var numLabels = model.tickstrings.length + model.barSegments.length;\n    var numPts = numLabels * 4;\n    var numTris = numLabels * 2;\n    var points = new Float64Array(numPts * 3);\n    var polys = new Uint16Array(numTris * 4);\n    var tcoords = new Float32Array(numPts * 2);\n    var results = {\n      ptIdx: 0,\n      cellIdx: 0,\n      polys: polys,\n      points: points,\n      tcoords: tcoords\n    }; // compute the direction vector, to make the code general we place text\n\n    var offsetAxis = model.vertical ? 0 : 1;\n    var spacedAxis = model.vertical ? 1 : 0; // draw the title\n\n    var dir = [0, 1];\n\n    if (model.vertical) {\n      if (model.topTitle) {\n        tmpv3[0] = model.boxPosition[0] + 0.5 * model.boxSize[0];\n        tmpv3[1] = model.barPosition[1] + model.barSize[1];\n        gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transformMat4(ptv3, tmpv3, invmat); // write the axis label\n\n        publicAPI.createPolyDataForOneLabel(model.renderable.getAxisLabel(), ptv3, xDir, yDir, [0, 1], model.axisTitlePixelOffset, results);\n      } else {\n        tmpv3[0] = model.barPosition[0] + model.barSize[0];\n        tmpv3[1] = model.barPosition[1] + 0.5 * model.barSize[1];\n        gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transformMat4(ptv3, tmpv3, invmat); // write the axis label\n\n        gl_matrix__WEBPACK_IMPORTED_MODULE_11__.scale(xDir, xDir, -1);\n        publicAPI.createPolyDataForOneLabel(model.renderable.getAxisLabel(), ptv3, yDir, xDir, [0, -1], model.axisTitlePixelOffset, results);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_11__.scale(xDir, xDir, -1);\n      }\n\n      dir = [-1, 0];\n    } else {\n      tmpv3[0] = model.barPosition[0] + 0.5 * model.barSize[0];\n      tmpv3[1] = model.barPosition[1] + model.barSize[1];\n      gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transformMat4(ptv3, tmpv3, invmat);\n      publicAPI.createPolyDataForOneLabel(model.renderable.getAxisLabel(), ptv3, xDir, yDir, dir, model.axisTitlePixelOffset, results);\n    }\n\n    tmp2v3[2] = -0.99; // near plane\n\n    tmp2v3[offsetAxis] = model.barPosition[offsetAxis] + (0.5 * dir[offsetAxis] + 0.5) * model.barSize[offsetAxis];\n    tmp2v3[spacedAxis] = model.barPosition[spacedAxis] + model.barSize[spacedAxis] * 0.5; // draw bar segment labels\n\n    var tickSeg = null;\n\n    for (var _i = 0; _i < model.barSegments.length; _i++) {\n      var seg = model.barSegments[_i];\n\n      if (seg.title === 'ticks') {\n        // handle ticks below\n        tickSeg = seg;\n      } else {\n        tmp2v3[spacedAxis] = model.barPosition[spacedAxis] + 0.5 * model.barSize[spacedAxis] * (seg.corners[2][spacedAxis] + seg.corners[0][spacedAxis]);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transformMat4(ptv3, tmp2v3, invmat);\n        publicAPI.createPolyDataForOneLabel(seg.title, ptv3, xDir, yDir, dir, model.tickLabelPixelOffset, results);\n      }\n    } // write the tick labels\n\n\n    var tickSegmentStart = model.barPosition[spacedAxis] + model.barSize[spacedAxis] * tickSeg.corners[0][spacedAxis];\n    var tickSegmentSize = model.barSize[spacedAxis] * (tickSeg.corners[2][spacedAxis] - tickSeg.corners[0][spacedAxis]);\n\n    for (var t = 0; t < model.ticks.length; t++) {\n      var tickPos = (model.ticks[t] - model.lastTickBounds[0]) / (model.lastTickBounds[1] - model.lastTickBounds[0]);\n      tmp2v3[spacedAxis] = tickSegmentStart + tickSegmentSize * tickPos;\n      gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transformMat4(ptv3, tmp2v3, invmat);\n      publicAPI.createPolyDataForOneLabel(model.tickstrings[t], ptv3, xDir, yDir, dir, model.tickLabelPixelOffset, results);\n    }\n\n    var tcoordDA = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance({\n      numberOfComponents: 2,\n      values: tcoords,\n      name: 'TextureCoordinates'\n    });\n    model.tmPolyData.getPointData().setTCoords(tcoordDA);\n    model.tmPolyData.getPoints().setData(points, 3);\n    model.tmPolyData.getPoints().modified();\n    model.tmPolyData.getPolys().setData(polys, 1);\n    model.tmPolyData.getPolys().modified();\n    model.tmPolyData.modified();\n  };\n\n  publicAPI.updatePolyDataForBarSegments = function () {\n    var _scalarsToColors$getU, _scalarsToColors$getU2;\n\n    var cmat = model.camera.getCompositeProjectionMatrix(model.lastAspectRatio, -1, 1);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_12__.transpose(cmat, cmat);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_12__.invert(invmat, cmat);\n    var scalarsToColors = model.renderable.getScalarsToColors();\n    var numberOfExtraColors = 0;\n\n    if (model.renderable.getDrawNanAnnotation() && scalarsToColors.getNanColor()) {\n      numberOfExtraColors += 1;\n    }\n\n    if (model.renderable.getDrawBelowRangeSwatch() && (_scalarsToColors$getU = scalarsToColors.getUseBelowRangeColor) !== null && _scalarsToColors$getU !== void 0 && _scalarsToColors$getU.call(scalarsToColors)) {\n      numberOfExtraColors += 1;\n    }\n\n    if (model.renderable.getDrawAboveRangeSwatch() && (_scalarsToColors$getU2 = scalarsToColors.getUseAboveRangeColor) !== null && _scalarsToColors$getU2 !== void 0 && _scalarsToColors$getU2.call(scalarsToColors)) {\n      numberOfExtraColors += 1;\n    }\n\n    var numPts = 4 * (1 + numberOfExtraColors);\n    var numQuads = numPts; // handle vector component mode\n\n    var numComps = 1;\n\n    if (scalarsToColors.getVectorMode() === VectorMode.COMPONENT) {\n      numComps = scalarsToColors.getVectorComponent() + 1;\n    } // create the colored bars\n\n\n    var points = new Float64Array(numPts * 3);\n    var cells = new Uint16Array(numQuads * 5);\n    var scalars = new Float32Array(numPts * numComps);\n    var ptIdx = 0;\n    var cellIdx = 0;\n\n    for (var i = 0; i < model.barSegments.length; i++) {\n      var seg = model.barSegments[i];\n      tmp2v3[1] = model.barPosition[1] + model.barSize[1] * 0.5;\n      tmp2v3[2] = -0.99; // near plane\n\n      for (var e = 0; e < 4; e++) {\n        tmp2v3[0] = model.barPosition[0] + seg.corners[e][0] * model.barSize[0];\n        tmp2v3[1] = model.barPosition[1] + seg.corners[e][1] * model.barSize[1];\n        gl_matrix__WEBPACK_IMPORTED_MODULE_11__.transformMat4(ptv3, tmp2v3, invmat);\n        points[ptIdx * 3] = ptv3[0];\n        points[ptIdx * 3 + 1] = ptv3[1];\n        points[ptIdx * 3 + 2] = ptv3[2];\n\n        for (var nc = 0; nc < numComps; nc++) {\n          scalars[ptIdx * numComps + nc] = model.lastTickBounds[0] + seg.scalars[e] * (model.lastTickBounds[1] - model.lastTickBounds[0]);\n        }\n\n        ptIdx++;\n      }\n\n      cells[cellIdx * 5] = 4;\n      cells[cellIdx * 5 + 1] = ptIdx - 4;\n      cells[cellIdx * 5 + 2] = ptIdx - 3;\n      cells[cellIdx * 5 + 3] = ptIdx - 2;\n      cells[cellIdx * 5 + 4] = ptIdx - 1;\n      cellIdx++;\n    }\n\n    var scalarsDA = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance({\n      numberOfComponents: numComps,\n      values: scalars,\n      name: 'Scalars'\n    });\n    model.polyData.getPointData().setScalars(scalarsDA);\n    model.polyData.getPoints().setData(points, 3);\n    model.polyData.getPoints().modified();\n    model.polyData.getPolys().setData(cells, 1);\n    model.polyData.getPolys().modified();\n    model.polyData.modified();\n  };\n}\n\nvar newScalarBarActorHelper = _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance(function (publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n    renderable: null\n  };\n  Object.assign(model, {}, initialValues); // Inheritance\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setGet(publicAPI, model, ['axisTitlePixelOffset', 'tickLabelPixelOffset', 'renderable', 'topTitle']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].get(publicAPI, model, ['lastSize', 'lastAspectRatio', 'axisTextStyle', 'tickTextStyle', 'barActor', 'tmActor', 'ticks']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getArray(publicAPI, model, ['boxPosition', 'boxSize']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setArray(publicAPI, model, ['boxPosition', 'boxSize'], 2);\n  model.forceUpdate = false;\n  model.lastRedrawTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].obj(model.lastRedrawTime, {\n    mtime: 0\n  });\n  model.lastRebuildTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].obj(model.lastRebuildTime, {\n    mtime: 0\n  });\n  model.lastSize = [-1, -1];\n  model.tmCanvas = document.createElement('canvas');\n  model.tmContext = model.tmCanvas.getContext('2d');\n  model._tmAtlas = new Map();\n  model.barMapper = _Mapper_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance();\n  model.barMapper.setInterpolateScalarsBeforeMapping(true);\n  model.polyData = _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance();\n  model.barMapper.setInputData(model.polyData);\n  model.barActor = _Actor_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance();\n  model.barActor.setMapper(model.barMapper); // for texture atlas\n\n  model.tmPolyData = _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance();\n  model.tmMapper = _Mapper_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance();\n  model.tmMapper.setInputData(model.tmPolyData);\n  model.tmTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].newInstance();\n  model.tmTexture.setInterpolate(false);\n  model.tmActor = _Actor_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance({\n    parentProp: publicAPI\n  });\n  model.tmActor.setMapper(model.tmMapper);\n  model.tmActor.addTexture(model.tmTexture);\n  model.barPosition = [0, 0];\n  model.barSize = [0, 0];\n  model.boxPosition = [0.88, -0.92];\n  model.boxSize = [0.1, 1.1]; // internal variables\n\n  model.lastTickBounds = [];\n  vtkScalarBarActorHelper(publicAPI, model);\n}, 'vtkScalarBarActorHelper'); //\n// Now we define the public class that the application sets view independent\n// properties on. This class is fairly small as it mainly just holds\n// properties setter and getters leaving all calculations to the helper\n// class.\n//\n\nfunction vtkScalarBarActor(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkScalarBarActor');\n\n  publicAPI.setTickTextStyle = function (tickStyle) {\n    model.tickTextStyle = _objectSpread(_objectSpread({}, model.tickTextStyle), tickStyle);\n    publicAPI.modified();\n  };\n\n  publicAPI.setAxisTextStyle = function (axisStyle) {\n    model.axisTextStyle = _objectSpread(_objectSpread({}, model.axisTextStyle), axisStyle);\n    publicAPI.modified();\n  };\n\n  publicAPI.resetAutoLayoutToDefault = function () {\n    model.autoLayout = defaultAutoLayout(publicAPI, model);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nfunction defaultValues(initialValues) {\n  return _objectSpread({\n    automated: true,\n    autoLayout: null,\n    axisLabel: 'Scalar Value',\n    barPosition: [0, 0],\n    barSize: [0, 0],\n    boxPosition: [0.88, -0.92],\n    boxSize: [0.1, 1.1],\n    scalarToColors: null,\n    axisTitlePixelOffset: 36.0,\n    axisTextStyle: {\n      fontColor: 'white',\n      fontStyle: 'normal',\n      fontSize: 18,\n      fontFamily: 'serif'\n    },\n    tickLabelPixelOffset: 14.0,\n    tickTextStyle: {\n      fontColor: 'white',\n      fontStyle: 'normal',\n      fontSize: 14,\n      fontFamily: 'serif'\n    },\n    drawNanAnnotation: true,\n    drawBelowRangeSwatch: true,\n    drawAboveRangeSwatch: true\n  }, initialValues);\n} // ----------------------------------------------------------------------------\n\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, defaultValues(initialValues));\n  if (!model.autoLayout) model.autoLayout = defaultAutoLayout(publicAPI, model); // Inheritance\n\n  _Actor_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend(publicAPI, model, initialValues);\n  publicAPI.getProperty().setDiffuse(0.0);\n  publicAPI.getProperty().setAmbient(1.0);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setGet(publicAPI, model, ['automated', 'autoLayout', 'axisTitlePixelOffset', 'axisLabel', 'scalarsToColors', 'tickLabelPixelOffset', 'drawNanAnnotation', 'drawBelowRangeSwatch', 'drawAboveRangeSwatch']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].get(publicAPI, model, ['axisTextStyle', 'tickTextStyle']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getArray(publicAPI, model, ['barPosition', 'barSize', 'boxPosition', 'boxSize']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setArray(publicAPI, model, ['barPosition', 'barSize', 'boxPosition', 'boxSize'], 2); // Object methods\n\n  vtkScalarBarActor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance(extend, 'vtkScalarBarActor'); // ----------------------------------------------------------------------------\n\nvar vtkScalarBarActor$1 = {\n  newInstance: newInstance,\n  extend: extend,\n  newScalarBarActorHelper: newScalarBarActorHelper\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/ScalarBarActor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Texture.js":
/*!****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Texture.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkTexture$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n// vtkTexture methods\n// ----------------------------------------------------------------------------\n\nfunction vtkTexture(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkTexture');\n\n  publicAPI.imageLoaded = function () {\n    model.image.removeEventListener('load', publicAPI.imageLoaded);\n    model.imageLoaded = true;\n    publicAPI.modified();\n  };\n\n  publicAPI.setJsImageData = function (imageData) {\n    if (model.jsImageData === imageData) {\n      return;\n    } // clear other entries\n\n\n    if (imageData !== null) {\n      publicAPI.setInputData(null);\n      publicAPI.setInputConnection(null);\n      model.image = null;\n      model.canvas = null;\n    }\n\n    model.jsImageData = imageData;\n    model.imageLoaded = true;\n    publicAPI.modified();\n  };\n\n  publicAPI.setCanvas = function (canvas) {\n    if (model.canvas === canvas) {\n      return;\n    } // clear other entries\n\n\n    if (canvas !== null) {\n      publicAPI.setInputData(null);\n      publicAPI.setInputConnection(null);\n      model.image = null;\n      model.jsImageData = null;\n    }\n\n    model.canvas = canvas;\n    publicAPI.modified();\n  };\n\n  publicAPI.setImage = function (image) {\n    if (model.image === image) {\n      return;\n    } // clear other entries\n\n\n    if (image !== null) {\n      publicAPI.setInputData(null);\n      publicAPI.setInputConnection(null);\n      model.canvas = null;\n      model.jsImageData = null;\n    }\n\n    model.image = image;\n    model.imageLoaded = false;\n\n    if (image.complete) {\n      publicAPI.imageLoaded();\n    } else {\n      image.addEventListener('load', publicAPI.imageLoaded);\n    }\n\n    publicAPI.modified();\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  repeat: false,\n  interpolate: false,\n  edgeClamp: false,\n  image: null,\n  canvas: null,\n  imageLoaded: false,\n  jsImageData: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].algo(publicAPI, model, 6, 0);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['canvas', 'image', 'jsImageData', 'imageLoaded']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['repeat', 'edgeClamp', 'interpolate']);\n  vtkTexture(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkTexture'); // ----------------------------------------------------------------------------\n\nvar vtkTexture$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Texture.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/Viewport.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/Viewport.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkViewport$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro;\n\nfunction notImplemented(method) {\n  return function () {\n    return vtkErrorMacro(\"vtkViewport::\".concat(method, \" - NOT IMPLEMENTED\"));\n  };\n} // ----------------------------------------------------------------------------\n// vtkViewport methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkViewport(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkViewport'); // Public API methods\n\n  publicAPI.getViewProps = function () {\n    return model.props;\n  };\n\n  publicAPI.hasViewProp = function (prop) {\n    return !!model.props.filter(function (item) {\n      return item === prop;\n    }).length;\n  };\n\n  publicAPI.addViewProp = function (prop) {\n    if (prop && !publicAPI.hasViewProp(prop)) {\n      model.props = model.props.concat(prop);\n    }\n  };\n\n  publicAPI.removeViewProp = function (prop) {\n    var newPropList = model.props.filter(function (item) {\n      return item !== prop;\n    });\n\n    if (model.props.length !== newPropList.length) {\n      model.props = newPropList;\n    }\n  };\n\n  publicAPI.removeAllViewProps = function () {\n    model.props = [];\n  }; // this method get all the props including any nested props\n\n\n  function gatherProps(prop) {\n    var allProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    allProps.push(prop);\n    var children = prop.getNestedProps();\n\n    if (children && children.length) {\n      for (var i = 0; i < children.length; i++) {\n        gatherProps(children[i], allProps);\n      }\n    }\n\n    return allProps;\n  }\n\n  publicAPI.getViewPropsWithNestedProps = function () {\n    var allPropsArray = [];\n\n    for (var i = 0; i < model.props.length; i++) {\n      gatherProps(model.props[i], allPropsArray);\n    }\n\n    return allPropsArray;\n  };\n\n  publicAPI.addActor2D = publicAPI.addViewProp;\n\n  publicAPI.removeActor2D = function (prop) {\n    // VTK way: model.actors2D.RemoveItem(prop);\n    publicAPI.removeViewProp(prop);\n  };\n\n  publicAPI.getActors2D = function () {\n    model.actors2D = [];\n    model.props.forEach(function (prop) {\n      model.actors2D = model.actors2D.concat(prop.getActors2D());\n    });\n    return model.actors2D;\n  };\n\n  publicAPI.displayToView = function () {\n    return vtkErrorMacro('call displayToView on your view instead');\n  };\n\n  publicAPI.viewToDisplay = function () {\n    return vtkErrorMacro('callviewtodisplay on your view instead');\n  };\n\n  publicAPI.getSize = function () {\n    return vtkErrorMacro('call getSize on your View instead');\n  };\n\n  publicAPI.normalizedDisplayToProjection = function (x, y, z) {\n    // first to normalized viewport\n    var nvp = publicAPI.normalizedDisplayToNormalizedViewport(x, y, z); // then to view\n\n    return publicAPI.normalizedViewportToProjection(nvp[0], nvp[1], nvp[2]);\n  };\n\n  publicAPI.normalizedDisplayToNormalizedViewport = function (x, y, z) {\n    var scale = [model.viewport[2] - model.viewport[0], model.viewport[3] - model.viewport[1]];\n    return [(x - model.viewport[0]) / scale[0], (y - model.viewport[1]) / scale[1], z];\n  };\n\n  publicAPI.normalizedViewportToProjection = function (x, y, z) {\n    return [x * 2.0 - 1.0, y * 2.0 - 1.0, z * 2.0 - 1.0];\n  };\n\n  publicAPI.projectionToNormalizedDisplay = function (x, y, z) {\n    // first to nvp\n    var nvp = publicAPI.projectionToNormalizedViewport(x, y, z); // then to ndp\n\n    return publicAPI.normalizedViewportToNormalizedDisplay(nvp[0], nvp[1], nvp[2]);\n  };\n\n  publicAPI.normalizedViewportToNormalizedDisplay = function (x, y, z) {\n    var scale = [model.viewport[2] - model.viewport[0], model.viewport[3] - model.viewport[1]];\n    return [x * scale[0] + model.viewport[0], y * scale[1] + model.viewport[1], z];\n  };\n\n  publicAPI.projectionToNormalizedViewport = function (x, y, z) {\n    return [(x + 1.0) * 0.5, (y + 1.0) * 0.5, (z + 1.0) * 0.5];\n  };\n\n  publicAPI.PickPropFrom = notImplemented('PickPropFrom');\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  // _vtkWindow: null,\n  background: [0, 0, 0],\n  background2: [0.2, 0.2, 0.2],\n  gradientBackground: false,\n  viewport: [0, 0, 1, 1],\n  aspect: [1, 1],\n  pixelAspect: [1, 1],\n  props: [],\n  actors2D: []\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].event(publicAPI, model, 'event');\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGetArray(publicAPI, model, ['viewport'], 4);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGetArray(publicAPI, model, ['background', 'background2'], 3);\n  vtkViewport(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkViewport'); // ----------------------------------------------------------------------------\n\nvar vtkViewport$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/Viewport.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Core/VolumeMapper/Constants.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Core/VolumeMapper/Constants.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"BlendMode\": () => (/* binding */ BlendMode),\n/* harmony export */   \"FilterMode\": () => (/* binding */ FilterMode),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar BlendMode = {\n  COMPOSITE_BLEND: 0,\n  MAXIMUM_INTENSITY_BLEND: 1,\n  MINIMUM_INTENSITY_BLEND: 2,\n  AVERAGE_INTENSITY_BLEND: 3,\n  ADDITIVE_INTENSITY_BLEND: 4\n};\nvar FilterMode = {\n  OFF: 0,\n  NORMALIZED: 1,\n  RAW: 2\n};\nvar Constants = {\n  BlendMode: BlendMode,\n  FilterMode: FilterMode\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Core/VolumeMapper/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkFullScreenRenderWindow$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_Renderer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Renderer.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Renderer.js\");\n/* harmony import */ var _Core_RenderWindow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/RenderWindow.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindow.js\");\n/* harmony import */ var _Core_RenderWindowInteractor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Core/RenderWindowInteractor.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindowInteractor.js\");\n/* harmony import */ var _Interaction_Style_InteractorStyleTrackballCamera_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Interaction/Style/InteractorStyleTrackballCamera.js */ \"./node_modules/@kitware/vtk.js/Interaction/Style/InteractorStyleTrackballCamera.js\");\n/* harmony import */ var _Common_Core_URLExtract_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Common/Core/URLExtract.js */ \"./node_modules/@kitware/vtk.js/Common/Core/URLExtract.js\");\n/* harmony import */ var _Common_Core_Points_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Common/Core/Points.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Points.js\");\n/* harmony import */ var _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../Common/Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../Common/DataModel/PolyData.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js\");\n/* harmony import */ var _Core_Actor_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Core/Actor.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Actor.js\");\n/* harmony import */ var _Core_Mapper_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Core/Mapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js\");\n/* harmony import */ var _OpenGL_RenderWindow_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../OpenGL/RenderWindow.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/RenderWindow.js\");\n/* harmony import */ var _WebGPU_RenderWindow_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../WebGPU/RenderWindow.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderWindow.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar userParams = _Common_Core_URLExtract_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].extractURLParameters();\nvar STYLE_CONTAINER = {\n  margin: '0',\n  padding: '0',\n  position: 'absolute',\n  top: '0',\n  left: '0',\n  width: '100%',\n  height: '100%',\n  overflow: 'hidden'\n};\nvar STYLE_CONTROL_PANEL = {\n  position: 'absolute',\n  left: '25px',\n  top: '25px',\n  backgroundColor: 'white',\n  borderRadius: '5px',\n  listStyle: 'none',\n  padding: '5px 10px',\n  margin: '0',\n  display: 'block',\n  border: 'solid 1px black',\n  maxWidth: 'calc(100% - 70px)',\n  maxHeight: 'calc(100% - 60px)',\n  overflow: 'auto'\n};\n\nfunction applyStyle(el, style) {\n  Object.keys(style).forEach(function (key) {\n    el.style[key] = style[key];\n  });\n}\n\nfunction vtkFullScreenRenderWindow(publicAPI, model) {\n  model.classHierarchy.push('vtkFullScreenRenderWindow');\n  var body = document.querySelector('body'); // Full screen DOM handler\n\n  if (!model.rootContainer) {\n    model.rootContainer = body;\n  }\n\n  if (!model.container) {\n    model.container = document.createElement('div');\n    applyStyle(model.container, model.containerStyle || STYLE_CONTAINER);\n    model.rootContainer.appendChild(model.container);\n  } // apply 100% to html and body for fullscreen\n\n\n  if (model.rootContainer === body) {\n    document.documentElement.style.height = '100%';\n    body.style.height = '100%';\n    body.style.padding = '0';\n    body.style.margin = '0';\n  } // VTK renderWindow/renderer\n\n\n  model.renderWindow = _Core_RenderWindow_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n  model.renderer = _Core_Renderer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n  model.renderWindow.addRenderer(model.renderer); // apiSpecificRenderWindow\n\n  model.apiSpecificRenderWindow = model.renderWindow.newAPISpecificView(userParams.viewAPI);\n  model.apiSpecificRenderWindow.setContainer(model.container);\n  model.renderWindow.addView(model.apiSpecificRenderWindow); // Interactor\n\n  model.interactor = _Core_RenderWindowInteractor_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance();\n  model.interactor.setInteractorStyle(_Interaction_Style_InteractorStyleTrackballCamera_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance());\n  model.interactor.setView(model.apiSpecificRenderWindow);\n  model.interactor.initialize();\n  model.interactor.bindEvents(model.container); // Expose background\n\n  publicAPI.setBackground = model.renderer.setBackground;\n\n  publicAPI.removeController = function () {\n    var el = model.controlContainer;\n\n    if (el) {\n      el.parentNode.removeChild(el);\n    }\n  };\n\n  publicAPI.setControllerVisibility = function (visible) {\n    model.controllerVisibility = visible;\n\n    if (model.controlContainer) {\n      if (visible) {\n        model.controlContainer.style.display = 'block';\n      } else {\n        model.controlContainer.style.display = 'none';\n      }\n    }\n  };\n\n  publicAPI.toggleControllerVisibility = function () {\n    publicAPI.setControllerVisibility(!model.controllerVisibility);\n  };\n\n  publicAPI.addController = function (html) {\n    model.controlContainer = document.createElement('div');\n    applyStyle(model.controlContainer, model.controlPanelStyle || STYLE_CONTROL_PANEL);\n    model.rootContainer.appendChild(model.controlContainer);\n    model.controlContainer.innerHTML = html;\n    publicAPI.setControllerVisibility(model.controllerVisibility);\n    model.rootContainer.addEventListener('keypress', function (e) {\n      if (String.fromCharCode(e.charCode) === 'c') {\n        publicAPI.toggleControllerVisibility();\n      }\n    });\n  }; // Update BG color\n\n\n  publicAPI.setBackground.apply(publicAPI, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.background)); // Representation API\n\n  publicAPI.addRepresentation = function (representation) {\n    representation.getActors().forEach(function (actor) {\n      model.renderer.addActor(actor);\n    });\n  };\n\n  publicAPI.removeRepresentation = function (representation) {\n    representation.getActors().forEach(function (actor) {\n      return model.renderer.removeActor(actor);\n    });\n  }; // Properly release GL context\n\n\n  publicAPI.delete = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].chain(publicAPI.setContainer, model.apiSpecificRenderWindow.delete, publicAPI.delete); // Handle window resize\n\n  publicAPI.resize = function () {\n    var dims = model.container.getBoundingClientRect();\n    var devicePixelRatio = window.devicePixelRatio || 1;\n    model.apiSpecificRenderWindow.setSize(Math.floor(dims.width * devicePixelRatio), Math.floor(dims.height * devicePixelRatio));\n\n    if (model.resizeCallback) {\n      model.resizeCallback(dims);\n    }\n\n    model.renderWindow.render();\n  };\n\n  publicAPI.setResizeCallback = function (cb) {\n    model.resizeCallback = cb;\n    publicAPI.resize();\n  };\n\n  if (model.listenWindowResize) {\n    window.addEventListener('resize', publicAPI.resize);\n  }\n\n  publicAPI.resize();\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  background: [0.32, 0.34, 0.43],\n  containerStyle: null,\n  controlPanelStyle: null,\n  listenWindowResize: true,\n  resizeCallback: null,\n  controllerVisibility: true\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['renderWindow', 'renderer', 'apiSpecificRenderWindow', 'interactor', 'rootContainer', 'container', 'controlContainer']); // Object specific methods\n\n  vtkFullScreenRenderWindow(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkFullScreenRenderWindow$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Actor.js":
/*!****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Actor.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkActor),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat3.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n\n// vtkOpenGLActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLActor(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLActor'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model._openGLRenderWindow = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderWindow');\n      model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');\n      model.context = model._openGLRenderWindow.getContext();\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNodes(model.renderable.getTextures());\n      publicAPI.addMissingNode(model.renderable.getMapper());\n      publicAPI.removeUnusedNodes(); // we store textures and mapper\n\n      model.ogltextures = null;\n      model.activeTextures = null;\n\n      for (var index = 0; index < model.children.length; index++) {\n        var child = model.children[index];\n\n        if (child.isA('vtkOpenGLTexture')) {\n          if (!model.ogltextures) {\n            model.ogltextures = [];\n          }\n\n          model.ogltextures.push(child);\n        } else {\n          model.oglmapper = child;\n        }\n      }\n    }\n  };\n\n  publicAPI.traverseOpaqueZBufferPass = function (renderPass) {\n    if (!model.renderable || !model.renderable.getNestedVisibility() || model.openGLRenderer.getSelector() && !model.renderable.getNestedPickable()) {\n      return;\n    }\n\n    publicAPI.apply(renderPass, true);\n    model.oglmapper.traverse(renderPass);\n    publicAPI.apply(renderPass, false);\n  }; // we draw textures, then mapper, then post pass textures\n\n\n  publicAPI.traverseOpaquePass = function (renderPass) {\n    if (!model.renderable || !model.renderable.getNestedVisibility() || !model.renderable.getIsOpaque() || model.openGLRenderer.getSelector() && !model.renderable.getNestedPickable()) {\n      return;\n    }\n\n    publicAPI.apply(renderPass, true);\n    model.oglmapper.traverse(renderPass);\n    publicAPI.apply(renderPass, false);\n  }; // we draw textures, then mapper, then post pass textures\n\n\n  publicAPI.traverseTranslucentPass = function (renderPass) {\n    if (!model.renderable || !model.renderable.getNestedVisibility() || model.renderable.getIsOpaque() || model.openGLRenderer.getSelector() && !model.renderable.getNestedPickable()) {\n      return;\n    }\n\n    publicAPI.apply(renderPass, true);\n    model.oglmapper.traverse(renderPass);\n    publicAPI.apply(renderPass, false);\n  };\n\n  publicAPI.activateTextures = function () {\n    // always traverse textures first, then mapper\n    if (!model.ogltextures) {\n      return;\n    }\n\n    model.activeTextures = [];\n\n    for (var index = 0; index < model.ogltextures.length; index++) {\n      var child = model.ogltextures[index];\n      child.render();\n\n      if (child.getHandle()) {\n        model.activeTextures.push(child);\n      }\n    }\n  };\n\n  publicAPI.queryPass = function (prepass, renderPass) {\n    if (prepass) {\n      if (!model.renderable || !model.renderable.getVisibility()) {\n        return;\n      }\n\n      if (model.renderable.getIsOpaque()) {\n        renderPass.incrementOpaqueActorCount();\n      } else {\n        renderPass.incrementTranslucentActorCount();\n      }\n    }\n  };\n\n  publicAPI.opaqueZBufferPass = function (prepass, renderPass) {\n    return publicAPI.opaquePass(prepass, renderPass);\n  };\n\n  publicAPI.opaquePass = function (prepass, renderPass) {\n    if (prepass) {\n      model.context.depthMask(true);\n      publicAPI.activateTextures();\n    } else if (model.activeTextures) {\n      for (var index = 0; index < model.activeTextures.length; index++) {\n        model.activeTextures[index].deactivate();\n      }\n    }\n  }; // Renders myself\n\n\n  publicAPI.translucentPass = function (prepass, renderPass) {\n    if (prepass) {\n      model.context.depthMask(false);\n      publicAPI.activateTextures();\n    } else if (model.activeTextures) {\n      for (var index = 0; index < model.activeTextures.length; index++) {\n        model.activeTextures[index].deactivate();\n      }\n    }\n  };\n\n  publicAPI.getKeyMatrices = function () {\n    // has the actor changed?\n    if (model.renderable.getMTime() > model.keyMatrixTime.getMTime()) {\n      model.renderable.computeMatrix();\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.copy(model.keyMatrices.mcwc, model.renderable.getMatrix());\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(model.keyMatrices.mcwc, model.keyMatrices.mcwc);\n\n      if (model.renderable.getIsIdentity()) {\n        gl_matrix__WEBPACK_IMPORTED_MODULE_4__.identity(model.keyMatrices.normalMatrix);\n      } else {\n        gl_matrix__WEBPACK_IMPORTED_MODULE_4__.fromMat4(model.keyMatrices.normalMatrix, model.keyMatrices.mcwc);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_4__.invert(model.keyMatrices.normalMatrix, model.keyMatrices.normalMatrix);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_4__.transpose(model.keyMatrices.normalMatrix, model.keyMatrices.normalMatrix);\n      }\n\n      model.keyMatrixTime.modified();\n    }\n\n    return model.keyMatrices;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  context: null,\n  keyMatrixTime: null,\n  keyMatrices: null,\n  activeTextures: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues);\n  model.keyMatrixTime = {};\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(model.keyMatrixTime, {\n    mtime: 0\n  });\n  model.keyMatrices = {\n    normalMatrix: gl_matrix__WEBPACK_IMPORTED_MODULE_4__.identity(new Float64Array(9)),\n    mcwc: gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(new Float64Array(16))\n  }; // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['context']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['activeTextures']); // Object methods\n\n  vtkOpenGLActor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend); // ----------------------------------------------------------------------------\n\nvar vtkActor = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__.registerOverride)('vtkActor', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Actor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Actor2D.js":
/*!******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Actor2D.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkActor2D),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n// vtkOpenGLActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLActor2D(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLActor2D'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      if (!model.renderable) {\n        return;\n      }\n\n      model._openGLRenderWindow = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderWindow');\n      model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');\n      model.context = model._openGLRenderWindow.getContext();\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNodes(model.renderable.getTextures());\n      publicAPI.addMissingNode(model.renderable.getMapper());\n      publicAPI.removeUnusedNodes(); // we store textures and mapper\n\n      model.ogltextures = null;\n      model.activeTextures = null;\n\n      for (var index = 0; index < model.children.length; index++) {\n        var child = model.children[index];\n\n        if (child.isA('vtkOpenGLTexture')) {\n          if (!model.ogltextures) {\n            model.ogltextures = [];\n          }\n\n          model.ogltextures.push(child);\n        } else {\n          model.oglmapper = child;\n        }\n      }\n    }\n  };\n\n  publicAPI.queryPass = function (prepass, renderPass) {\n    if (prepass) {\n      if (!model.renderable || !model.renderable.getVisibility()) {\n        return;\n      }\n\n      renderPass.incrementOverlayActorCount();\n    }\n  }; // we draw textures, then mapper, then post pass textures\n\n\n  publicAPI.traverseOpaquePass = function (renderPass) {\n    if (!model.oglmapper || !model.renderable || !model.renderable.getNestedVisibility() || !model.renderable.getIsOpaque() || model.openGLRenderer.getSelector() && !model.renderable.getNestedPickable()) {\n      return;\n    }\n\n    publicAPI.apply(renderPass, true);\n    model.oglmapper.traverse(renderPass);\n    publicAPI.apply(renderPass, false);\n  }; // we draw textures, then mapper, then post pass textures\n\n\n  publicAPI.traverseTranslucentPass = function (renderPass) {\n    if (!model.oglmapper || !model.renderable || !model.renderable.getNestedVisibility() || model.renderable.getIsOpaque() || model.openGLRenderer.getSelector() && !model.renderable.getNestedPickable()) {\n      return;\n    }\n\n    publicAPI.apply(renderPass, true);\n    model.oglmapper.traverse(renderPass);\n    publicAPI.apply(renderPass, false);\n  };\n\n  publicAPI.traverseOverlayPass = function (renderPass) {\n    if (!model.oglmapper || !model.renderable || !model.renderable.getNestedVisibility() || model.openGLRenderer.getSelector() && !model.renderable.getNestedPickable) {\n      return;\n    }\n\n    publicAPI.apply(renderPass, true);\n    model.oglmapper.traverse(renderPass);\n    publicAPI.apply(renderPass, false);\n  };\n\n  publicAPI.activateTextures = function () {\n    // always traverse textures first, then mapper\n    if (!model.ogltextures) {\n      return;\n    }\n\n    model.activeTextures = [];\n\n    for (var index = 0; index < model.ogltextures.length; index++) {\n      var child = model.ogltextures[index];\n      child.render();\n\n      if (child.getHandle()) {\n        model.activeTextures.push(child);\n      }\n    }\n  }; // Renders myself\n\n\n  publicAPI.opaquePass = function (prepass, renderPass) {\n    if (prepass) {\n      model.context.depthMask(true);\n      publicAPI.activateTextures();\n    } else if (model.activeTextures) {\n      // deactivate textures\n      for (var index = 0; index < model.activeTextures.length; index++) {\n        model.activeTextures[index].deactivate();\n      }\n    }\n  }; // Renders myself\n\n\n  publicAPI.translucentPass = function (prepass, renderPass) {\n    if (prepass) {\n      model.context.depthMask(false);\n      publicAPI.activateTextures();\n    } else if (model.activeTextures) {\n      for (var index = 0; index < model.activeTextures.length; index++) {\n        model.activeTextures[index].deactivate();\n      }\n    }\n  }; // Renders myself\n\n\n  publicAPI.overlayPass = function (prepass, renderPass) {\n    if (prepass) {\n      model.context.depthMask(true);\n      publicAPI.activateTextures();\n    } else if (model.activeTextures) {\n      // deactivate textures\n      for (var index = 0; index < model.activeTextures.length; index++) {\n        model.activeTextures[index].deactivate();\n      }\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  context: null,\n  activeTextures: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['context']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['activeTextures']); // Object methods\n\n  vtkOpenGLActor2D(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend); // ----------------------------------------------------------------------------\n\nvar vtkActor2D = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__.registerOverride)('vtkActor2D', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Actor2D.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"default\": () => (/* binding */ vtkBufferObject),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _BufferObject_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BufferObject/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject/Constants.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar ObjectType = _BufferObject_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ObjectType; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nvar STATIC = {}; // ----------------------------------------------------------------------------\n// vtkOpenGLBufferObject methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLBufferObject(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLBufferObject'); // Class-specific private functions\n\n  function convertType(type) {\n    switch (type) {\n      case ObjectType.ELEMENT_ARRAY_BUFFER:\n        return model.context.ELEMENT_ARRAY_BUFFER;\n\n      case ObjectType.TEXTURE_BUFFER:\n        if ('TEXTURE_BUFFER' in model.context) {\n          return model.context.TEXTURE_BUFFER;\n        }\n\n      /* eslint-disable no-fallthrough */\n      // Intentional fallthrough in case there is no TEXTURE_BUFFER in WebGL\n\n      case ObjectType.ARRAY_BUFFER:\n      default:\n        return model.context.ARRAY_BUFFER;\n\n      /* eslint-enable no-fallthrough */\n    }\n  }\n\n  var internalType = null;\n  var internalHandle = null;\n  var dirty = true;\n  var error = ''; // Public API methods\n\n  publicAPI.getType = function () {\n    return internalType;\n  };\n\n  publicAPI.setType = function (value) {\n    internalType = value;\n  };\n\n  publicAPI.getHandle = function () {\n    return internalHandle;\n  };\n\n  publicAPI.isReady = function () {\n    return dirty === false;\n  };\n\n  publicAPI.generateBuffer = function (type) {\n    var objectTypeGL = convertType(type);\n\n    if (internalHandle === null) {\n      internalHandle = model.context.createBuffer();\n      internalType = type;\n    }\n\n    return convertType(internalType) === objectTypeGL;\n  };\n\n  publicAPI.upload = function (data, type) {\n    // buffer, size, type\n    var alreadyGenerated = publicAPI.generateBuffer(type);\n\n    if (!alreadyGenerated) {\n      error = 'Trying to upload array buffer to incompatible buffer.';\n      return false;\n    }\n\n    model.context.bindBuffer(convertType(internalType), internalHandle);\n    model.context.bufferData(convertType(internalType), data, model.context.STATIC_DRAW);\n    dirty = false;\n    return true;\n  };\n\n  publicAPI.bind = function () {\n    if (!internalHandle) {\n      return false;\n    }\n\n    model.context.bindBuffer(convertType(internalType), internalHandle);\n    return true;\n  };\n\n  publicAPI.release = function () {\n    if (!internalHandle) {\n      return false;\n    }\n\n    model.context.bindBuffer(convertType(internalType), null);\n    return true;\n  };\n\n  publicAPI.releaseGraphicsResources = function () {\n    if (internalHandle !== null) {\n      model.context.bindBuffer(convertType(internalType), null);\n      model.context.deleteBuffer(internalHandle);\n      internalHandle = null;\n    }\n  };\n\n  publicAPI.setOpenGLRenderWindow = function (rw) {\n    if (model._openGLRenderWindow === rw) {\n      return;\n    }\n\n    publicAPI.releaseGraphicsResources();\n    model._openGLRenderWindow = rw;\n    model.context = null;\n\n    if (rw) {\n      model.context = model._openGLRenderWindow.getContext();\n    }\n  };\n\n  publicAPI.getError = function () {\n    return error;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  objectType: ObjectType.ARRAY_BUFFER,\n  // _openGLRenderWindow: null,\n  context: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['_openGLRenderWindow']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].moveToProtected(publicAPI, model, ['openGLRenderWindow']);\n  vtkOpenGLBufferObject(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkBufferObject = _objectSpread(_objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, STATIC), _BufferObject_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject/Constants.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject/Constants.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"ObjectType\": () => (/* binding */ ObjectType),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar ObjectType = {\n  ARRAY_BUFFER: 0,\n  ELEMENT_ARRAY_BUFFER: 1,\n  TEXTURE_BUFFER: 2\n};\nvar Constants = {\n  ObjectType: ObjectType\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Camera.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Camera.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkCamera),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat3.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n\n// vtkOpenGLCamera methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLCamera(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLCamera');\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');\n      model._openGLRenderWindow = model.openGLRenderer.getParent();\n      model.context = model._openGLRenderWindow.getContext();\n    }\n  }; // Renders myself\n\n\n  publicAPI.opaquePass = function (prepass) {\n    if (prepass) {\n      var tsize = model.openGLRenderer.getTiledSizeAndOrigin();\n      model.context.viewport(tsize.lowerLeftU, tsize.lowerLeftV, tsize.usize, tsize.vsize);\n      model.context.scissor(tsize.lowerLeftU, tsize.lowerLeftV, tsize.usize, tsize.vsize);\n    }\n  };\n\n  publicAPI.translucentPass = publicAPI.opaquePass;\n  publicAPI.opaqueZBufferPass = publicAPI.opaquePass;\n  publicAPI.volumePass = publicAPI.opaquePass;\n\n  publicAPI.getKeyMatrices = function (ren) {\n    // has the camera changed?\n    if (ren !== model.lastRenderer || model._openGLRenderWindow.getMTime() > model.keyMatrixTime.getMTime() || publicAPI.getMTime() > model.keyMatrixTime.getMTime() || ren.getMTime() > model.keyMatrixTime.getMTime() || model.renderable.getMTime() > model.keyMatrixTime.getMTime()) {\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.copy(model.keyMatrices.wcvc, model.renderable.getViewMatrix());\n      gl_matrix__WEBPACK_IMPORTED_MODULE_4__.fromMat4(model.keyMatrices.normalMatrix, model.keyMatrices.wcvc);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_4__.invert(model.keyMatrices.normalMatrix, model.keyMatrices.normalMatrix);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(model.keyMatrices.wcvc, model.keyMatrices.wcvc);\n      var aspectRatio = model.openGLRenderer.getAspectRatio();\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.copy(model.keyMatrices.vcpc, model.renderable.getProjectionMatrix(aspectRatio, -1, 1));\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(model.keyMatrices.vcpc, model.keyMatrices.vcpc);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.multiply(model.keyMatrices.wcpc, model.keyMatrices.vcpc, model.keyMatrices.wcvc);\n      model.keyMatrixTime.modified();\n      model.lastRenderer = ren;\n    }\n\n    return model.keyMatrices;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  context: null,\n  lastRenderer: null,\n  keyMatrixTime: null,\n  keyMatrices: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues);\n  model.keyMatrixTime = {};\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(model.keyMatrixTime); // values always get set by the get method\n\n  model.keyMatrices = {\n    normalMatrix: new Float64Array(9),\n    vcpc: new Float64Array(16),\n    wcvc: new Float64Array(16),\n    wcpc: new Float64Array(16)\n  }; // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['context', 'keyMatrixTime']); // Object methods\n\n  vtkOpenGLCamera(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend); // ----------------------------------------------------------------------------\n\nvar vtkCamera = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__.registerOverride)('vtkCamera', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Camera.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/CellArrayBufferObject.js":
/*!********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/CellArrayBufferObject.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkCellArrayBufferObject),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/quat.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _BufferObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BufferObject.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject.js\");\n/* harmony import */ var _BufferObject_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BufferObject/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject/Constants.js\");\n/* harmony import */ var _Core_Property_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/Property/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property/Constants.js\");\n\n\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro; // ----------------------------------------------------------------------------\n// Static functions\n// ----------------------------------------------------------------------------\n\nfunction computeInverseShiftAndScaleMatrix(coordShift, coordScale) {\n  var inverseScale = new Float64Array(3);\n  gl_matrix__WEBPACK_IMPORTED_MODULE_4__.inverse(inverseScale, coordScale);\n  var matrix = new Float64Array(16);\n  gl_matrix__WEBPACK_IMPORTED_MODULE_5__.fromRotationTranslationScale(matrix, gl_matrix__WEBPACK_IMPORTED_MODULE_6__.create(), coordShift, inverseScale);\n  return matrix;\n}\n\nfunction shouldApplyCoordShiftAndScale(coordShift, coordScale) {\n  if (coordShift === null || coordScale === null) {\n    return false;\n  }\n\n  return !(gl_matrix__WEBPACK_IMPORTED_MODULE_4__.exactEquals(coordShift, [0, 0, 0]) && gl_matrix__WEBPACK_IMPORTED_MODULE_4__.exactEquals(coordScale, [1, 1, 1]));\n} // ----------------------------------------------------------------------------\n// vtkOpenGLCellArrayBufferObject methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkOpenGLCellArrayBufferObject(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLCellArrayBufferObject');\n  publicAPI.setType(_BufferObject_Constants_js__WEBPACK_IMPORTED_MODULE_2__.ObjectType.ARRAY_BUFFER);\n\n  publicAPI.createVBO = function (cellArray, inRep, outRep, options) {\n    if (!cellArray.getData() || !cellArray.getData().length) {\n      model.elementCount = 0;\n      return 0;\n    } // Figure out how big each block will be, currently 6 or 7 floats.\n\n\n    model.blockSize = 3;\n    model.vertexOffset = 0;\n    model.normalOffset = 0;\n    model.tCoordOffset = 0;\n    model.tCoordComponents = 0;\n    model.colorComponents = 0;\n    model.colorOffset = 0;\n    model.customData = [];\n    var pointData = options.points.getData();\n    var normalData = null;\n    var tcoordData = null;\n    var colorData = null;\n    var colorComponents = options.colors ? options.colors.getNumberOfComponents() : 0;\n    var textureComponents = options.tcoords ? options.tcoords.getNumberOfComponents() : 0; // the values of 4 below are because floats are 4 bytes\n\n    if (options.normals) {\n      model.normalOffset = 4 * model.blockSize;\n      model.blockSize += 3;\n      normalData = options.normals.getData();\n    }\n\n    if (options.customAttributes) {\n      options.customAttributes.forEach(function (a) {\n        if (a) {\n          model.customData.push({\n            data: a.getData(),\n            offset: 4 * model.blockSize,\n            components: a.getNumberOfComponents(),\n            name: a.getName()\n          });\n          model.blockSize += a.getNumberOfComponents();\n        }\n      });\n    }\n\n    if (options.tcoords) {\n      model.tCoordOffset = 4 * model.blockSize;\n      model.tCoordComponents = textureComponents;\n      model.blockSize += textureComponents;\n      tcoordData = options.tcoords.getData();\n    }\n\n    if (options.colors) {\n      model.colorComponents = options.colors.getNumberOfComponents();\n      model.colorOffset = 0;\n      colorData = options.colors.getData();\n\n      if (!model.colorBO) {\n        model.colorBO = _BufferObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n      }\n\n      model.colorBO.setOpenGLRenderWindow(model._openGLRenderWindow);\n    } else {\n      model.colorBO = null;\n    }\n\n    model.stride = 4 * model.blockSize;\n    var pointIdx = 0;\n    var normalIdx = 0;\n    var tcoordIdx = 0;\n    var colorIdx = 0;\n    var custIdx = 0;\n    var cellCount = 0;\n    var addAPoint;\n    var cellBuilders = {\n      // easy, every input point becomes an output point\n      anythingToPoints: function anythingToPoints(numPoints, cellPts, offset) {\n        for (var i = 0; i < numPoints; ++i) {\n          addAPoint(cellPts[offset + i]);\n        }\n      },\n      linesToWireframe: function linesToWireframe(numPoints, cellPts, offset) {\n        // for lines we add a bunch of segments\n        for (var i = 0; i < numPoints - 1; ++i) {\n          addAPoint(cellPts[offset + i]);\n          addAPoint(cellPts[offset + i + 1]);\n        }\n      },\n      polysToWireframe: function polysToWireframe(numPoints, cellPts, offset) {\n        // for polys we add a bunch of segments and close it\n        if (numPoints > 2) {\n          for (var i = 0; i < numPoints; ++i) {\n            addAPoint(cellPts[offset + i]);\n            addAPoint(cellPts[offset + (i + 1) % numPoints]);\n          }\n        }\n      },\n      stripsToWireframe: function stripsToWireframe(numPoints, cellPts, offset) {\n        if (numPoints > 2) {\n          // for strips we add a bunch of segments and close it\n          for (var i = 0; i < numPoints - 1; ++i) {\n            addAPoint(cellPts[offset + i]);\n            addAPoint(cellPts[offset + i + 1]);\n          }\n\n          for (var _i = 0; _i < numPoints - 2; _i++) {\n            addAPoint(cellPts[offset + _i]);\n            addAPoint(cellPts[offset + _i + 2]);\n          }\n        }\n      },\n      polysToSurface: function polysToSurface(npts, cellPts, offset) {\n        for (var i = 0; i < npts - 2; i++) {\n          addAPoint(cellPts[offset + 0]);\n          addAPoint(cellPts[offset + i + 1]);\n          addAPoint(cellPts[offset + i + 2]);\n        }\n      },\n      stripsToSurface: function stripsToSurface(npts, cellPts, offset) {\n        for (var i = 0; i < npts - 2; i++) {\n          addAPoint(cellPts[offset + i]);\n          addAPoint(cellPts[offset + i + 1 + i % 2]);\n          addAPoint(cellPts[offset + i + 1 + (i + 1) % 2]);\n        }\n      }\n    };\n    var cellCounters = {\n      // easy, every input point becomes an output point\n      anythingToPoints: function anythingToPoints(numPoints, cellPts) {\n        return numPoints;\n      },\n      linesToWireframe: function linesToWireframe(numPoints, cellPts) {\n        if (numPoints > 1) {\n          return (numPoints - 1) * 2;\n        }\n\n        return 0;\n      },\n      polysToWireframe: function polysToWireframe(numPoints, cellPts) {\n        if (numPoints > 2) {\n          return numPoints * 2;\n        }\n\n        return 0;\n      },\n      stripsToWireframe: function stripsToWireframe(numPoints, cellPts) {\n        if (numPoints > 2) {\n          return numPoints * 4 - 6;\n        }\n\n        return 0;\n      },\n      polysToSurface: function polysToSurface(npts, cellPts) {\n        if (npts > 2) {\n          return (npts - 2) * 3;\n        }\n\n        return 0;\n      },\n      stripsToSurface: function stripsToSurface(npts, cellPts, offset) {\n        if (npts > 2) {\n          return (npts - 2) * 3;\n        }\n\n        return 0;\n      }\n    };\n    var func = null;\n    var countFunc = null;\n\n    if (outRep === _Core_Property_Constants_js__WEBPACK_IMPORTED_MODULE_3__.Representation.POINTS || inRep === 'verts') {\n      func = cellBuilders.anythingToPoints;\n      countFunc = cellCounters.anythingToPoints;\n    } else if (outRep === _Core_Property_Constants_js__WEBPACK_IMPORTED_MODULE_3__.Representation.WIREFRAME || inRep === 'lines') {\n      func = cellBuilders[\"\".concat(inRep, \"ToWireframe\")];\n      countFunc = cellCounters[\"\".concat(inRep, \"ToWireframe\")];\n    } else {\n      func = cellBuilders[\"\".concat(inRep, \"ToSurface\")];\n      countFunc = cellCounters[\"\".concat(inRep, \"ToSurface\")];\n    }\n\n    var array = cellArray.getData();\n    var size = array.length;\n    var caboCount = 0;\n\n    for (var index = 0; index < size;) {\n      caboCount += countFunc(array[index], array);\n      index += array[index] + 1;\n    }\n\n    var packedUCVBO = null;\n    var packedVBO = new Float32Array(caboCount * model.blockSize);\n\n    if (colorData) {\n      packedUCVBO = new Uint8Array(caboCount * 4);\n    }\n\n    var vboidx = 0;\n    var ucidx = 0; // Find out if shift scale should be used\n    // Compute squares of diagonal size and distance from the origin\n\n    var diagSq = 0.0;\n    var distSq = 0.0;\n\n    for (var i = 0; i < 3; ++i) {\n      var range = options.points.getRange(i);\n      var delta = range[1] - range[0];\n      diagSq += delta * delta;\n      var distShift = 0.5 * (range[1] + range[0]);\n      distSq += distShift * distShift;\n    }\n\n    var useShiftAndScale = diagSq > 0 && (Math.abs(distSq) / diagSq > 1.0e6 || // If data is far from the origin relative to its size\n    Math.abs(Math.log10(diagSq)) > 3.0 || // If the size is huge when not far from the origin\n    diagSq === 0 && distSq > 1.0e6); // If data is a point, but far from the origin\n\n    if (useShiftAndScale) {\n      // Compute shift and scale vectors\n      var coordShift = new Float64Array(3);\n      var coordScale = new Float64Array(3);\n\n      for (var _i2 = 0; _i2 < 3; ++_i2) {\n        var _range = options.points.getRange(_i2);\n\n        var _delta = _range[1] - _range[0];\n\n        coordShift[_i2] = 0.5 * (_range[1] + _range[0]);\n        coordScale[_i2] = _delta > 0 ? 1.0 / _delta : 1.0;\n      }\n\n      publicAPI.setCoordShiftAndScale(coordShift, coordScale);\n    } else if (model.coordShiftAndScaleEnabled === true) {\n      // Make sure to reset\n      publicAPI.setCoordShiftAndScale(null, null);\n    }\n\n    addAPoint = function addAPointFunc(i) {\n      // Vertices\n      pointIdx = i * 3;\n\n      if (!model.coordShiftAndScaleEnabled) {\n        packedVBO[vboidx++] = pointData[pointIdx++];\n        packedVBO[vboidx++] = pointData[pointIdx++];\n        packedVBO[vboidx++] = pointData[pointIdx++];\n      } else {\n        // Apply shift and scale\n        packedVBO[vboidx++] = (pointData[pointIdx++] - model.coordShift[0]) * model.coordScale[0];\n        packedVBO[vboidx++] = (pointData[pointIdx++] - model.coordShift[1]) * model.coordScale[1];\n        packedVBO[vboidx++] = (pointData[pointIdx++] - model.coordShift[2]) * model.coordScale[2];\n      }\n\n      if (normalData !== null) {\n        if (options.haveCellNormals) {\n          normalIdx = (cellCount + options.cellOffset) * 3;\n        } else {\n          normalIdx = i * 3;\n        }\n\n        packedVBO[vboidx++] = normalData[normalIdx++];\n        packedVBO[vboidx++] = normalData[normalIdx++];\n        packedVBO[vboidx++] = normalData[normalIdx++];\n      }\n\n      model.customData.forEach(function (attr) {\n        custIdx = i * attr.components;\n\n        for (var j = 0; j < attr.components; ++j) {\n          packedVBO[vboidx++] = attr.data[custIdx++];\n        }\n      });\n\n      if (tcoordData !== null) {\n        tcoordIdx = i * textureComponents;\n\n        for (var j = 0; j < textureComponents; ++j) {\n          packedVBO[vboidx++] = tcoordData[tcoordIdx++];\n        }\n      }\n\n      if (colorData !== null) {\n        if (options.haveCellScalars) {\n          colorIdx = (cellCount + options.cellOffset) * colorComponents;\n        } else {\n          colorIdx = i * colorComponents;\n        }\n\n        packedUCVBO[ucidx++] = colorData[colorIdx++];\n        packedUCVBO[ucidx++] = colorData[colorIdx++];\n        packedUCVBO[ucidx++] = colorData[colorIdx++];\n        packedUCVBO[ucidx++] = colorComponents === 4 ? colorData[colorIdx++] : 255;\n      }\n    };\n\n    for (var _index = 0; _index < size;) {\n      func(array[_index], array, _index + 1);\n      _index += array[_index] + 1;\n      cellCount++;\n    }\n\n    model.elementCount = caboCount;\n    publicAPI.upload(packedVBO, _BufferObject_Constants_js__WEBPACK_IMPORTED_MODULE_2__.ObjectType.ARRAY_BUFFER);\n\n    if (model.colorBO) {\n      model.colorBOStride = 4;\n      model.colorBO.upload(packedUCVBO, _BufferObject_Constants_js__WEBPACK_IMPORTED_MODULE_2__.ObjectType.ARRAY_BUFFER);\n    }\n\n    return cellCount;\n  };\n\n  publicAPI.setCoordShiftAndScale = function (coordShift, coordScale) {\n    if (coordShift !== null && (coordShift.constructor !== Float64Array || coordShift.length !== 3)) {\n      vtkErrorMacro('Wrong type for coordShift, expected vec3 or null');\n      return;\n    }\n\n    if (coordScale !== null && (coordScale.constructor !== Float64Array || coordScale.length !== 3)) {\n      vtkErrorMacro('Wrong type for coordScale, expected vec3 or null');\n      return;\n    }\n\n    if (model.coordShift === null || coordShift === null || !gl_matrix__WEBPACK_IMPORTED_MODULE_4__.equals(coordShift, model.coordShift)) {\n      model.coordShift = coordShift;\n    }\n\n    if (model.coordScale === null || coordScale === null || !gl_matrix__WEBPACK_IMPORTED_MODULE_4__.equals(coordScale, model.coordScale)) {\n      model.coordScale = coordScale;\n    }\n\n    model.coordShiftAndScaleEnabled = shouldApplyCoordShiftAndScale(model.coordShift, model.coordScale);\n\n    if (model.coordShiftAndScaleEnabled) {\n      model.inverseShiftAndScaleMatrix = computeInverseShiftAndScaleMatrix(model.coordShift, model.coordScale);\n    } else {\n      model.inverseShiftAndScaleMatrix = null;\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  elementCount: 0,\n  stride: 0,\n  colorBOStride: 0,\n  vertexOffset: 0,\n  normalOffset: 0,\n  tCoordOffset: 0,\n  tCoordComponents: 0,\n  colorOffset: 0,\n  colorComponents: 0,\n  tcoordBO: null,\n  customData: [],\n  coordShift: null,\n  coordScale: null,\n  coordShiftAndScaleEnabled: false,\n  inverseShiftAndScaleMatrix: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _BufferObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['colorBO', 'elementCount', 'stride', 'colorBOStride', 'vertexOffset', 'normalOffset', 'tCoordOffset', 'tCoordComponents', 'colorOffset', 'colorComponents', 'customData']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['coordShift', 'coordScale', 'coordShiftAndScaleEnabled', 'inverseShiftAndScaleMatrix']); // Object specific methods\n\n  vtkOpenGLCellArrayBufferObject(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkCellArrayBufferObject = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/CellArrayBufferObject.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/CubeAxesActor.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/CubeAxesActor.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_CubeAxesActor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/CubeAxesActor.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/CubeAxesActor.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n\n// vtkOpenGLCubeAxesActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLCubeAxesActor(publicAPI, model) {\n  model.classHierarchy.push('vtkOpenGLCubeAxesActor'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');\n      model.openGLRenderWindow = model.openGLRenderer.getParent();\n\n      if (!model.CubeAxesActorHelper.getRenderable()) {\n        model.CubeAxesActorHelper.setRenderable(model.renderable);\n      }\n\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNode(model.CubeAxesActorHelper.getTmActor());\n      publicAPI.addMissingNode(model.renderable.getGridActor());\n      publicAPI.removeUnusedNodes();\n    }\n  };\n\n  publicAPI.opaquePass = function (prepass, renderPass) {\n    if (prepass) {\n      var camera = model.openGLRenderer ? model.openGLRenderer.getRenderable().getActiveCamera() : null;\n      var tsize = model.openGLRenderer.getTiledSizeAndOrigin();\n      model.CubeAxesActorHelper.updateAPISpecificData([tsize.usize, tsize.vsize], camera, model.openGLRenderWindow.getRenderable());\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  model.CubeAxesActorHelper = _Core_CubeAxesActor_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newCubeAxesActorHelper(); // Object methods\n\n  vtkOpenGLCubeAxesActor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkOpenGLCubeAxesActor'); // ----------------------------------------------------------------------------\n\nvar index = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_3__.registerOverride)('vtkCubeAxesActor', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/CubeAxesActor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/ForwardPass.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/ForwardPass.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkForwardPass$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Framebuffer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Framebuffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Framebuffer.js\");\n/* harmony import */ var _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SceneGraph/RenderPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js\");\n/* harmony import */ var _OrderIndependentTranslucentPass_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./OrderIndependentTranslucentPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/OrderIndependentTranslucentPass.js\");\n\n\n\n\n\nfunction vtkForwardPass(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkForwardPass'); // this pass implements a forward rendering pipeline\n  // if both volumes and opaque geometry are present\n  // it will mix the two together by capturing a zbuffer\n  // first\n\n  publicAPI.traverse = function (viewNode) {\n    var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    if (model.deleted) {\n      return;\n    } // we just render our delegates in order\n\n\n    model.currentParent = parent; // build\n\n    publicAPI.setCurrentOperation('buildPass');\n    viewNode.traverse(publicAPI);\n    var numlayers = viewNode.getRenderable().getNumberOfLayers(); // iterate over renderers\n\n    var renderers = viewNode.getChildren();\n\n    for (var i = 0; i < numlayers; i++) {\n      for (var index = 0; index < renderers.length; index++) {\n        var renNode = renderers[index];\n        var ren = viewNode.getRenderable().getRenderers()[index];\n\n        if (ren.getDraw() && ren.getLayer() === i) {\n          // check for both opaque and volume actors\n          model.opaqueActorCount = 0;\n          model.translucentActorCount = 0;\n          model.volumeCount = 0;\n          model.overlayActorCount = 0;\n          publicAPI.setCurrentOperation('queryPass');\n          renNode.traverse(publicAPI); // do we need to capture a zbuffer?\n\n          if (model.opaqueActorCount > 0 && model.volumeCount > 0 || model.depthRequested) {\n            var size = viewNode.getFramebufferSize(); // make sure the framebuffer is setup\n\n            if (model.framebuffer === null) {\n              model.framebuffer = _Framebuffer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n            }\n\n            model.framebuffer.setOpenGLRenderWindow(viewNode);\n            model.framebuffer.saveCurrentBindingsAndBuffers();\n            var fbSize = model.framebuffer.getSize();\n\n            if (fbSize === null || fbSize[0] !== size[0] || fbSize[1] !== size[1]) {\n              model.framebuffer.create(size[0], size[1]);\n              model.framebuffer.populateFramebuffer();\n            }\n\n            model.framebuffer.bind();\n            publicAPI.setCurrentOperation('opaqueZBufferPass');\n            renNode.traverse(publicAPI);\n            model.framebuffer.restorePreviousBindingsAndBuffers(); // reset now that we have done it\n\n            model.depthRequested = false;\n          }\n\n          publicAPI.setCurrentOperation('cameraPass');\n          renNode.traverse(publicAPI);\n\n          if (model.opaqueActorCount > 0) {\n            publicAPI.setCurrentOperation('opaquePass');\n            renNode.traverse(publicAPI);\n          }\n\n          if (model.translucentActorCount > 0) {\n            if (!model.translucentPass) {\n              model.translucentPass = _OrderIndependentTranslucentPass_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n            }\n\n            model.translucentPass.traverse(viewNode, renNode, publicAPI);\n          }\n\n          if (model.volumeCount > 0) {\n            publicAPI.setCurrentOperation('volumePass');\n            renNode.traverse(publicAPI);\n          }\n\n          if (model.overlayActorCount > 0) {\n            publicAPI.setCurrentOperation('overlayPass');\n            renNode.traverse(publicAPI);\n          }\n        }\n      }\n    }\n  };\n\n  publicAPI.getZBufferTexture = function () {\n    if (model.framebuffer) {\n      return model.framebuffer.getColorTexture();\n    }\n\n    return null;\n  };\n\n  publicAPI.requestDepth = function () {\n    model.depthRequested = true;\n  };\n\n  publicAPI.incrementOpaqueActorCount = function () {\n    return model.opaqueActorCount++;\n  };\n\n  publicAPI.incrementTranslucentActorCount = function () {\n    return model.translucentActorCount++;\n  };\n\n  publicAPI.incrementVolumeCount = function () {\n    return model.volumeCount++;\n  };\n\n  publicAPI.incrementOverlayActorCount = function () {\n    return model.overlayActorCount++;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  opaqueActorCount: 0,\n  translucentActorCount: 0,\n  volumeCount: 0,\n  overlayActorCount: 0,\n  framebuffer: null,\n  depthRequested: false\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['framebuffer', 'opaqueActorCount', 'translucentActorCount', 'volumeCount']); // Object methods\n\n  vtkForwardPass(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkForwardPass'); // ----------------------------------------------------------------------------\n\nvar vtkForwardPass$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/ForwardPass.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Framebuffer.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Framebuffer.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkOpenGLFramebuffer),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture.js\");\n/* harmony import */ var _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/DataArray/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js\");\n/* harmony import */ var _Texture_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Texture/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture/Constants.js\");\n\n\n\n\n\n// vtkFramebuffer methods\n// ----------------------------------------------------------------------------\n\nfunction vtkFramebuffer(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkFramebuffer');\n\n  publicAPI.getBothMode = function () {\n    return model.context.FRAMEBUFFER;\n  }; // publicAPI.getDrawMode = () => model.context.DRAW_FRAMEBUFFER;\n  // publicAPI.getReadMode = () => model.context.READ_FRAMEBUFFER;\n\n\n  publicAPI.saveCurrentBindingsAndBuffers = function (modeIn) {\n    var mode = typeof modeIn !== 'undefined' ? modeIn : publicAPI.getBothMode();\n    publicAPI.saveCurrentBindings(mode);\n    publicAPI.saveCurrentBuffers(mode);\n  };\n\n  publicAPI.saveCurrentBindings = function (modeIn) {\n    if (!model.context) {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('you must set the OpenGLRenderWindow before calling saveCurrentBindings');\n      return;\n    }\n\n    var gl = model.context;\n    model.previousDrawBinding = gl.getParameter(model.context.FRAMEBUFFER_BINDING);\n    model.previousActiveFramebuffer = model._openGLRenderWindow.getActiveFramebuffer();\n  };\n\n  publicAPI.saveCurrentBuffers = function (modeIn) {// noop on webgl 1\n  };\n\n  publicAPI.restorePreviousBindingsAndBuffers = function (modeIn) {\n    var mode = typeof modeIn !== 'undefined' ? modeIn : publicAPI.getBothMode();\n    publicAPI.restorePreviousBindings(mode);\n    publicAPI.restorePreviousBuffers(mode);\n  };\n\n  publicAPI.restorePreviousBindings = function (modeIn) {\n    if (!model.context) {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('you must set the OpenGLRenderWindow before calling restorePreviousBindings');\n      return;\n    }\n\n    var gl = model.context;\n    gl.bindFramebuffer(gl.FRAMEBUFFER, model.previousDrawBinding);\n\n    model._openGLRenderWindow.setActiveFramebuffer(model.previousActiveFramebuffer);\n  };\n\n  publicAPI.restorePreviousBuffers = function (modeIn) {// currently a noop on webgl1\n  };\n\n  publicAPI.bind = function () {\n    var modeArg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    var mode = modeArg;\n\n    if (mode === null) {\n      mode = model.context.FRAMEBUFFER;\n    }\n\n    model.context.bindFramebuffer(mode, model.glFramebuffer);\n\n    for (var i = 0; i < model.colorBuffers.length; i++) {\n      model.colorBuffers[i].bind();\n    }\n\n    model._openGLRenderWindow.setActiveFramebuffer(publicAPI);\n  };\n\n  publicAPI.create = function (width, height) {\n    if (!model.context) {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('you must set the OpenGLRenderWindow before calling create');\n      return;\n    }\n\n    model.glFramebuffer = model.context.createFramebuffer();\n    model.glFramebuffer.width = width;\n    model.glFramebuffer.height = height;\n  };\n\n  publicAPI.setColorBuffer = function (texture) {\n    var attachment = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    var gl = model.context;\n\n    if (!gl) {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('you must set the OpenGLRenderWindow before calling setColorBuffer');\n      return;\n    }\n\n    var glAttachment = gl.COLOR_ATTACHMENT0;\n\n    if (attachment > 0) {\n      if (model._openGLRenderWindow.getWebgl2()) {\n        glAttachment += attachment;\n      } else {\n        (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('Using multiple framebuffer attachments requires WebGL 2');\n        return;\n      }\n    }\n\n    model.colorBuffers[attachment] = texture;\n    gl.framebufferTexture2D(gl.FRAMEBUFFER, glAttachment, gl.TEXTURE_2D, texture.getHandle(), 0);\n  };\n\n  publicAPI.removeColorBuffer = function () {\n    var attachment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    var gl = model.context;\n\n    if (!gl) {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('you must set the OpenGLRenderWindow before calling removeColorBuffer');\n      return;\n    }\n\n    var glAttachment = gl.COLOR_ATTACHMENT0;\n\n    if (attachment > 0) {\n      if (model._openGLRenderWindow.getWebgl2()) {\n        glAttachment += attachment;\n      } else {\n        (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('Using multiple framebuffer attachments requires WebGL 2');\n        return;\n      }\n    }\n\n    gl.framebufferTexture2D(gl.FRAMEBUFFER, glAttachment, gl.TEXTURE_2D, null, 0);\n    model.colorBuffers = model.colorBuffers.splice(attachment, 1);\n  };\n\n  publicAPI.setDepthBuffer = function (texture) {\n    if (!model.context) {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('you must set the OpenGLRenderWindow before calling setDepthBuffer');\n      return;\n    }\n\n    if (model._openGLRenderWindow.getWebgl2()) {\n      var gl = model.context;\n      gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, texture.getHandle(), 0);\n    } else {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('Attaching depth buffer textures to fbo requires WebGL 2');\n    }\n  };\n\n  publicAPI.removeDepthBuffer = function () {\n    if (!model.context) {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('you must set the OpenGLRenderWindow before calling removeDepthBuffer');\n      return;\n    }\n\n    if (model._openGLRenderWindow.getWebgl2()) {\n      var gl = model.context;\n      gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, null, 0);\n    } else {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('Attaching depth buffer textures to framebuffers requires WebGL 2');\n    }\n  };\n\n  publicAPI.getGLFramebuffer = function () {\n    return model.glFramebuffer;\n  };\n\n  publicAPI.setOpenGLRenderWindow = function (rw) {\n    if (model._openGLRenderWindow === rw) {\n      return;\n    }\n\n    publicAPI.releaseGraphicsResources();\n    model._openGLRenderWindow = rw;\n    model.context = null;\n\n    if (rw) {\n      model.context = model._openGLRenderWindow.getContext();\n    }\n  };\n\n  publicAPI.releaseGraphicsResources = function () {\n    if (model.glFramebuffer) {\n      model.context.deleteFramebuffer(model.glFramebuffer);\n    }\n  };\n\n  publicAPI.getSize = function () {\n    var size = [0, 0];\n\n    if (model.glFramebuffer !== null) {\n      size[0] = model.glFramebuffer.width;\n      size[1] = model.glFramebuffer.height;\n    }\n\n    return size;\n  };\n\n  publicAPI.populateFramebuffer = function () {\n    if (!model.context) {\n      (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('you must set the OpenGLRenderWindow before calling populateFrameBuffer');\n      return;\n    }\n\n    publicAPI.bind();\n    var gl = model.context;\n    var texture = _Texture_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n    texture.setOpenGLRenderWindow(model._openGLRenderWindow);\n    texture.setMinificationFilter(_Texture_Constants_js__WEBPACK_IMPORTED_MODULE_3__.Filter.LINEAR);\n    texture.setMagnificationFilter(_Texture_Constants_js__WEBPACK_IMPORTED_MODULE_3__.Filter.LINEAR);\n    texture.create2DFromRaw(model.glFramebuffer.width, model.glFramebuffer.height, 4, _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_2__.VtkDataTypes.UNSIGNED_CHAR, null);\n    publicAPI.setColorBuffer(texture); // for now do not count on having a depth buffer texture\n    // as they are not standard webgl 1\n\n    model.depthTexture = gl.createRenderbuffer();\n    gl.bindRenderbuffer(gl.RENDERBUFFER, model.depthTexture);\n    gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, model.glFramebuffer.width, model.glFramebuffer.height);\n    gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, model.depthTexture);\n  }; // For backwards compatibility. Use getColorBuffers()[0] going forward.\n\n\n  publicAPI.getColorTexture = function () {\n    return model.colorBuffers[0];\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  // _openGLRenderWindow: null,\n  glFramebuffer: null,\n  colorBuffers: null,\n  depthTexture: null,\n  previousDrawBinding: 0,\n  previousReadBinding: 0,\n  previousDrawBuffer: 0,\n  previousReadBuffer: 0,\n  previousActiveFramebuffer: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(publicAPI, model);\n\n  if (model.colorBuffers) {\n    (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)('you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead.');\n  }\n\n  model.colorBuffers = [];\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.getArray)(publicAPI, model, ['colorBuffers']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkFramebuffer(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkFramebuffer'); // ----------------------------------------------------------------------------\n\nvar vtkOpenGLFramebuffer = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Framebuffer.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/HardwareSelector.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/HardwareSelector.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkHardwareSelector),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _HardwareSelector_Constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./HardwareSelector/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/HardwareSelector/Constants.js\");\n/* harmony import */ var _Core_HardwareSelector_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Core/HardwareSelector.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/HardwareSelector.js\");\n/* harmony import */ var _Framebuffer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Framebuffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Framebuffer.js\");\n/* harmony import */ var _Common_DataModel_SelectionNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../Common/DataModel/SelectionNode.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/SelectionNode.js\");\n/* harmony import */ var _Common_DataModel_DataSet_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../Common/DataModel/DataSet.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/DataSet.js\");\n\n\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar PassTypes = _HardwareSelector_Constants_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].PassTypes;\nvar SelectionContent = _Common_DataModel_SelectionNode_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SelectionContent,\n    SelectionField = _Common_DataModel_SelectionNode_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SelectionField;\nvar FieldAssociations = _Common_DataModel_DataSet_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].FieldAssociations;\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].vtkErrorMacro;\nvar idOffset = 1;\n\nfunction getInfoHash(info) {\n  return \"\".concat(info.propID, \" \").concat(info.compositeID);\n}\n\nfunction convert(xx, yy, pb, area) {\n  if (!pb) {\n    return 0;\n  }\n\n  var offset = (yy * (area[2] - area[0] + 1) + xx) * 4;\n  var rgb = [];\n  rgb[0] = pb[offset];\n  rgb[1] = pb[offset + 1];\n  rgb[2] = pb[offset + 2];\n  var val = rgb[2];\n  val *= 256;\n  val += rgb[1];\n  val *= 256;\n  val += rgb[0];\n  return val;\n}\n\nfunction getPixelInformationWithData(buffdata, inDisplayPosition, maxDistance, outSelectedPosition) {\n  // Base case\n  var maxDist = maxDistance < 0 ? 0 : maxDistance;\n\n  if (maxDist === 0) {\n    outSelectedPosition[0] = inDisplayPosition[0];\n    outSelectedPosition[1] = inDisplayPosition[1];\n\n    if (inDisplayPosition[0] < buffdata.area[0] || inDisplayPosition[0] > buffdata.area[2] || inDisplayPosition[1] < buffdata.area[1] || inDisplayPosition[1] > buffdata.area[3]) {\n      return null;\n    } // offset inDisplayPosition based on the lower-left-corner of the Area.\n\n\n    var displayPosition = [inDisplayPosition[0] - buffdata.area[0], inDisplayPosition[1] - buffdata.area[1]];\n    var actorid = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.ACTOR_PASS], buffdata.area);\n\n    if (actorid <= 0 || actorid - idOffset >= buffdata.props.length) {\n      // the pixel did not hit any actor.\n      return null;\n    }\n\n    var _info = {};\n    _info.valid = true;\n    _info.propID = actorid - idOffset;\n    _info.prop = buffdata.props[_info.propID];\n    var compositeID = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.COMPOSITE_INDEX_PASS], buffdata.area);\n\n    if (compositeID < 0 || compositeID > 0xffffff) {\n      compositeID = 0;\n    }\n\n    _info.compositeID = compositeID - idOffset;\n\n    if (buffdata.captureZValues) {\n      var offset = (displayPosition[1] * (buffdata.area[2] - buffdata.area[0] + 1) + displayPosition[0]) * 4;\n      _info.zValue = (256 * buffdata.zBuffer[offset] + buffdata.zBuffer[offset + 1]) / 65535.0;\n      _info.displayPosition = inDisplayPosition;\n    }\n\n    return _info;\n  } // Iterate over successively growing boxes.\n  // They recursively call the base case to handle single pixels.\n\n\n  var dispPos = [inDisplayPosition[0], inDisplayPosition[1]];\n  var curPos = [0, 0];\n  var info = getPixelInformationWithData(buffdata, inDisplayPosition, 0, outSelectedPosition);\n\n  if (info && info.valid) {\n    return info;\n  }\n\n  for (var dist = 1; dist < maxDist; ++dist) {\n    // Vertical sides of box.\n    for (var y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {\n      curPos[1] = y;\n\n      if (dispPos[0] >= dist) {\n        curPos[0] = dispPos[0] - dist;\n        info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);\n\n        if (info && info.valid) {\n          return info;\n        }\n      }\n\n      curPos[0] = dispPos[0] + dist;\n      info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);\n\n      if (info && info.valid) {\n        return info;\n      }\n    } // Horizontal sides of box.\n\n\n    for (var x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {\n      curPos[0] = x;\n\n      if (dispPos[1] >= dist) {\n        curPos[1] = dispPos[1] - dist;\n        info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);\n\n        if (info && info.valid) {\n          return info;\n        }\n      }\n\n      curPos[1] = dispPos[1] + dist;\n      info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);\n\n      if (info && info.valid) {\n        return info;\n      }\n    }\n  } // nothing hit.\n\n\n  outSelectedPosition[0] = inDisplayPosition[0];\n  outSelectedPosition[1] = inDisplayPosition[1];\n  return null;\n} //-----------------------------------------------------------------------------\n\n\nfunction convertSelection(fieldassociation, dataMap, captureZValues, renderer, openGLRenderWindow) {\n  var sel = [];\n  var count = 0;\n  dataMap.forEach(function (value, key) {\n    var child = _Common_DataModel_SelectionNode_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance();\n    child.setContentType(SelectionContent.INDICES);\n\n    switch (fieldassociation) {\n      case FieldAssociations.FIELD_ASSOCIATION_CELLS:\n        child.setFieldType(SelectionField.CELL);\n        break;\n\n      case FieldAssociations.FIELD_ASSOCIATION_POINTS:\n        child.setFieldType(SelectionField.POINT);\n        break;\n\n      default:\n        vtkErrorMacro('Unknown field association');\n    }\n\n    child.getProperties().propID = value.info.propID;\n    child.getProperties().prop = value.info.prop;\n    child.getProperties().compositeID = value.info.compositeID;\n    child.getProperties().pixelCount = value.pixelCount;\n\n    if (captureZValues) {\n      child.getProperties().displayPosition = [value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue];\n      child.getProperties().worldPosition = openGLRenderWindow.displayToWorld(value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue, renderer);\n    }\n\n    child.setSelectionList(value.attributeIDs);\n    sel[count] = child;\n    count++;\n  });\n  return sel;\n} //----------------------------------------------------------------------------\n\n\nfunction generateSelectionWithData(buffdata, fx1, fy1, fx2, fy2) {\n  var x1 = Math.floor(fx1);\n  var y1 = Math.floor(fy1);\n  var x2 = Math.floor(fx2);\n  var y2 = Math.floor(fy2);\n  var dataMap = new Map();\n  var outSelectedPosition = [0, 0];\n\n  for (var yy = y1; yy <= y2; yy++) {\n    for (var xx = x1; xx <= x2; xx++) {\n      var pos = [xx, yy];\n      var info = getPixelInformationWithData(buffdata, pos, 0, outSelectedPosition);\n\n      if (info && info.valid) {\n        var hash = getInfoHash(info);\n\n        if (!dataMap.has(hash)) {\n          dataMap.set(hash, {\n            info: info,\n            pixelCount: 1,\n            attributeIDs: [info.attributeID]\n          });\n        } else {\n          var dmv = dataMap.get(hash);\n          dmv.pixelCount++;\n\n          if (buffdata.captureZValues) {\n            if (info.zValue < dmv.info.zValue) {\n              dmv.info = info;\n            }\n          }\n\n          if (dmv.attributeIDs.indexOf(info.attributeID) === -1) {\n            dmv.attributeIDs.push(info.attributeID);\n          }\n        }\n      }\n    }\n  }\n\n  return convertSelection(buffdata.fieldAssociation, dataMap, buffdata.captureZValues, buffdata.renderer, buffdata.openGLRenderWindow);\n} // ----------------------------------------------------------------------------\n// vtkOpenGLHardwareSelector methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkOpenGLHardwareSelector(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLHardwareSelector'); //----------------------------------------------------------------------------\n\n  publicAPI.releasePixBuffers = function () {\n    model.pixBuffer = [];\n    model.zBuffer = null;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.beginSelection = function () {\n    model._openGLRenderer = model._openGLRenderWindow.getViewNodeFor(model._renderer);\n    model.maxAttributeId = 0;\n\n    var size = model._openGLRenderWindow.getSize();\n\n    if (!model.framebuffer) {\n      model.framebuffer = _Framebuffer_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance();\n      model.framebuffer.setOpenGLRenderWindow(model._openGLRenderWindow);\n      model.framebuffer.saveCurrentBindingsAndBuffers();\n      model.framebuffer.create(size[0], size[1]); // this calls model.framebuffer.bind()\n\n      model.framebuffer.populateFramebuffer();\n    } else {\n      model.framebuffer.setOpenGLRenderWindow(model._openGLRenderWindow);\n      model.framebuffer.saveCurrentBindingsAndBuffers();\n      var fbSize = model.framebuffer.getSize();\n\n      if (fbSize[0] !== size[0] || fbSize[1] !== size[1]) {\n        model.framebuffer.create(size[0], size[1]); // this calls model.framebuffer.bind()\n\n        model.framebuffer.populateFramebuffer();\n      } else {\n        model.framebuffer.bind();\n      }\n    }\n\n    model._openGLRenderer.clear();\n\n    model._openGLRenderer.setSelector(publicAPI);\n\n    model.hitProps = {};\n    model.props = [];\n    publicAPI.releasePixBuffers();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.endSelection = function () {\n    model.hitProps = {};\n\n    model._openGLRenderer.setSelector(null);\n\n    model.framebuffer.restorePreviousBindingsAndBuffers();\n  };\n\n  publicAPI.preCapturePass = function () {};\n\n  publicAPI.postCapturePass = function () {}; //----------------------------------------------------------------------------\n\n\n  publicAPI.select = function () {\n    var sel = null;\n\n    if (publicAPI.captureBuffers()) {\n      sel = publicAPI.generateSelection(model.area[0], model.area[1], model.area[2], model.area[3]);\n      publicAPI.releasePixBuffers();\n    }\n\n    return sel;\n  };\n\n  publicAPI.getSourceDataAsync = /*#__PURE__*/function () {\n    var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(renderer, fx1, fy1, fx2, fy2) {\n      var size, result;\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              // assign the renderer\n              model._renderer = renderer; // set area to all if no arguments provided\n\n              if (fx1 === undefined) {\n                size = model._openGLRenderWindow.getSize();\n                publicAPI.setArea(0, 0, size[0] - 1, size[1] - 1);\n              } else {\n                publicAPI.setArea(fx1, fy1, fx2, fy2);\n              } // just do capture buffers and package up the result\n\n\n              if (publicAPI.captureBuffers()) {\n                _context.next = 4;\n                break;\n              }\n\n              return _context.abrupt(\"return\", false);\n\n            case 4:\n              result = {\n                area: (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(model.area),\n                pixBuffer: (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(model.pixBuffer),\n                captureZValues: model.captureZValues,\n                zBuffer: model.zBuffer,\n                props: (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(model.props),\n                fieldAssociation: model.fieldAssociation,\n                renderer: renderer,\n                openGLRenderWindow: model._openGLRenderWindow\n              };\n\n              result.generateSelection = function () {\n                for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n                  args[_key] = arguments[_key];\n                }\n\n                return generateSelectionWithData.apply(void 0, [result].concat(args));\n              };\n\n              return _context.abrupt(\"return\", result);\n\n            case 7:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee);\n    }));\n\n    return function (_x, _x2, _x3, _x4, _x5) {\n      return _ref.apply(this, arguments);\n    };\n  }(); //----------------------------------------------------------------------------\n\n\n  publicAPI.captureBuffers = function () {\n    if (!model._renderer || !model._openGLRenderWindow) {\n      vtkErrorMacro('Renderer and view must be set before calling Select.');\n      return false;\n    }\n\n    model._openGLRenderer = model._openGLRenderWindow.getViewNodeFor(model._renderer); // todo revisit making selection part of core\n    // then we can do this in core\n\n    model._openGLRenderWindow.getRenderable().preRender(); // int rgba[4];\n    // rwin.getColorBufferSizes(rgba);\n    // if (rgba[0] < 8 || rgba[1] < 8 || rgba[2] < 8) {\n    //   vtkErrorMacro(\"Color buffer depth must be at least 8 bit. \"\n    //     \"Currently: \" << rgba[0] << \", \" << rgba[1] << \", \" <<rgba[2]);\n    //   return false;\n    // }\n\n\n    publicAPI.invokeEvent({\n      type: 'StartEvent'\n    }); // Initialize renderer for selection.\n    // change the renderer's background to black, which will indicate a miss\n\n    model.originalBackground = model._renderer.getBackgroundByReference();\n\n    model._renderer.setBackground(0.0, 0.0, 0.0);\n\n    var rpasses = model._openGLRenderWindow.getRenderPasses();\n\n    publicAPI.beginSelection();\n\n    for (model.currentPass = PassTypes.MIN_KNOWN_PASS; model.currentPass <= PassTypes.COMPOSITE_INDEX_PASS; model.currentPass++) {\n      if (publicAPI.passRequired(model.currentPass)) {\n        publicAPI.preCapturePass(model.currentPass);\n\n        if (model.captureZValues && model.currentPass === PassTypes.ACTOR_PASS && typeof rpasses[0].requestDepth === 'function' && typeof rpasses[0].getFramebuffer === 'function') {\n          rpasses[0].requestDepth();\n\n          model._openGLRenderWindow.traverseAllPasses();\n        } else {\n          model._openGLRenderWindow.traverseAllPasses();\n        }\n\n        publicAPI.postCapturePass(model.currentPass);\n        publicAPI.savePixelBuffer(model.currentPass);\n      }\n    }\n\n    publicAPI.endSelection(); // restore original background\n\n    model._renderer.setBackground(model.originalBackground);\n\n    publicAPI.invokeEvent({\n      type: 'EndEvent'\n    }); // restore image, not needed?\n    // model._openGLRenderWindow.traverseAllPasses();\n\n    return true;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.passRequired = function (pass) {\n    return true;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.savePixelBuffer = function (passNo) {\n    model.pixBuffer[passNo] = model._openGLRenderWindow.getPixelData(model.area[0], model.area[1], model.area[2], model.area[3]);\n\n    if (passNo === PassTypes.ACTOR_PASS) {\n      if (model.captureZValues) {\n        var rpasses = model._openGLRenderWindow.getRenderPasses();\n\n        if (typeof rpasses[0].requestDepth === 'function' && typeof rpasses[0].getFramebuffer === 'function') {\n          var fb = rpasses[0].getFramebuffer();\n          fb.saveCurrentBindingsAndBuffers();\n          fb.bind();\n          model.zBuffer = model._openGLRenderWindow.getPixelData(model.area[0], model.area[1], model.area[2], model.area[3]);\n          fb.restorePreviousBindingsAndBuffers();\n        }\n      }\n\n      publicAPI.buildPropHitList(model.pixBuffer[passNo]);\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.buildPropHitList = function (pixelbuffer) {\n    for (var yy = 0; yy <= model.area[3] - model.area[1]; yy++) {\n      for (var xx = 0; xx <= model.area[2] - model.area[0]; xx++) {\n        var val = convert(xx, yy, pixelbuffer, model.area);\n\n        if (val > 0) {\n          val--;\n\n          if (!(val in model.hitProps)) {\n            model.hitProps[val] = true;\n          }\n        }\n      }\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.renderProp = function (prop) {\n    if (model.currentPass === PassTypes.ACTOR_PASS) {\n      publicAPI.setPropColorValueFromInt(model.props.length + idOffset);\n      model.props.push(prop);\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.renderCompositeIndex = function (index) {\n    if (model.currentPass === PassTypes.COMPOSITE_INDEX_PASS) {\n      publicAPI.setPropColorValueFromInt(index + idOffset);\n    }\n  }; //----------------------------------------------------------------------------\n  // TODO: make inline\n\n\n  publicAPI.renderAttributeId = function (attribid) {\n    if (attribid < 0) {\n      // negative attribid is valid. It happens when rendering higher order\n      // elements where new points are added for rendering smooth surfaces.\n      return;\n    }\n\n    model.maxAttributeId = attribid > model.maxAttributeId ? attribid : model.maxAttributeId; // if (model.currentPass < PassTypes.ID_LOW24) {\n    //   return; // useless...\n    // }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.passTypeToString = function (type) {\n    return _macros_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].enumToString(PassTypes, type);\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.isPropHit = function (id) {\n    return Boolean(model.hitProps[id]);\n  };\n\n  publicAPI.setPropColorValueFromInt = function (val) {\n    model.propColorValue[0] = val % 256 / 255.0;\n    model.propColorValue[1] = Math.floor(val / 256) % 256 / 255.0;\n    model.propColorValue[2] = Math.floor(val / 65536) % 256 / 255.0;\n  }; // info has\n  //   valid\n  //   propId\n  //   prop\n  //   compositeID\n  //   attributeID\n  //----------------------------------------------------------------------------\n\n\n  publicAPI.getPixelInformation = function (inDisplayPosition, maxDistance, outSelectedPosition) {\n    // Base case\n    var maxDist = maxDistance < 0 ? 0 : maxDistance;\n\n    if (maxDist === 0) {\n      outSelectedPosition[0] = inDisplayPosition[0];\n      outSelectedPosition[1] = inDisplayPosition[1];\n\n      if (inDisplayPosition[0] < model.area[0] || inDisplayPosition[0] > model.area[2] || inDisplayPosition[1] < model.area[1] || inDisplayPosition[1] > model.area[3]) {\n        return null;\n      } // offset inDisplayPosition based on the lower-left-corner of the Area.\n\n\n      var displayPosition = [inDisplayPosition[0] - model.area[0], inDisplayPosition[1] - model.area[1]];\n      var actorid = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.ACTOR_PASS], model.area);\n\n      if (actorid <= 0 || actorid - idOffset >= model.props.length) {\n        // the pixel did not hit any actor.\n        return null;\n      }\n\n      var _info2 = {};\n      _info2.valid = true;\n      _info2.propID = actorid - idOffset;\n      _info2.prop = model.props[_info2.propID];\n      var compositeID = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.COMPOSITE_INDEX_PASS], model.area);\n\n      if (compositeID < 0 || compositeID > 0xffffff) {\n        compositeID = 0;\n      }\n\n      _info2.compositeID = compositeID - idOffset;\n\n      if (model.captureZValues) {\n        var offset = (displayPosition[1] * (model.area[2] - model.area[0] + 1) + displayPosition[0]) * 4;\n        _info2.zValue = (256 * model.zBuffer[offset] + model.zBuffer[offset + 1]) / 65535.0;\n        _info2.displayPosition = inDisplayPosition;\n      }\n\n      return _info2;\n    } // Iterate over successively growing boxes.\n    // They recursively call the base case to handle single pixels.\n\n\n    var dispPos = [inDisplayPosition[0], inDisplayPosition[1]];\n    var curPos = [0, 0];\n    var info = publicAPI.getPixelInformation(inDisplayPosition, 0, outSelectedPosition);\n\n    if (info && info.valid) {\n      return info;\n    }\n\n    for (var dist = 1; dist < maxDist; ++dist) {\n      // Vertical sides of box.\n      for (var y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {\n        curPos[1] = y;\n\n        if (dispPos[0] >= dist) {\n          curPos[0] = dispPos[0] - dist;\n          info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);\n\n          if (info && info.valid) {\n            return info;\n          }\n        }\n\n        curPos[0] = dispPos[0] + dist;\n        info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);\n\n        if (info && info.valid) {\n          return info;\n        }\n      } // Horizontal sides of box.\n\n\n      for (var x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {\n        curPos[0] = x;\n\n        if (dispPos[1] >= dist) {\n          curPos[1] = dispPos[1] - dist;\n          info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);\n\n          if (info && info.valid) {\n            return info;\n          }\n        }\n\n        curPos[1] = dispPos[1] + dist;\n        info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);\n\n        if (info && info.valid) {\n          return info;\n        }\n      }\n    } // nothing hit.\n\n\n    outSelectedPosition[0] = inDisplayPosition[0];\n    outSelectedPosition[1] = inDisplayPosition[1];\n    return null;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.generateSelection = function (fx1, fy1, fx2, fy2) {\n    var x1 = Math.floor(fx1);\n    var y1 = Math.floor(fy1);\n    var x2 = Math.floor(fx2);\n    var y2 = Math.floor(fy2);\n    var dataMap = new Map();\n    var outSelectedPosition = [0, 0];\n\n    for (var yy = y1; yy <= y2; yy++) {\n      for (var xx = x1; xx <= x2; xx++) {\n        var pos = [xx, yy];\n        var info = publicAPI.getPixelInformation(pos, 0, outSelectedPosition);\n\n        if (info && info.valid) {\n          var hash = getInfoHash(info);\n\n          if (!dataMap.has(hash)) {\n            dataMap.set(hash, {\n              info: info,\n              pixelCount: 1,\n              attributeIDs: [info.attributeID]\n            });\n          } else {\n            var dmv = dataMap.get(hash);\n            dmv.pixelCount++;\n\n            if (model.captureZValues) {\n              if (info.zValue < dmv.info.zValue) {\n                dmv.info = info;\n              }\n            }\n\n            if (dmv.attributeIDs.indexOf(info.attributeID) === -1) {\n              dmv.attributeIDs.push(info.attributeID);\n            }\n          }\n        }\n      }\n    }\n\n    return convertSelection(model.fieldAssociation, dataMap, model.captureZValues, model._renderer, model._openGLRenderWindow);\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.attach = function (w, r) {\n    model._openGLRenderWindow = w;\n    model._renderer = r;\n  }; // override\n\n\n  var superSetArea = publicAPI.setArea;\n\n  publicAPI.setArea = function () {\n    if (superSetArea.apply(void 0, arguments)) {\n      model.area[0] = Math.floor(model.area[0]);\n      model.area[1] = Math.floor(model.area[1]);\n      model.area[2] = Math.floor(model.area[2]);\n      model.area[3] = Math.floor(model.area[3]);\n      return true;\n    }\n\n    return false;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  area: undefined,\n  // _renderer: null,\n  // _openGLRenderWindow: null,\n  // _openGLRenderer: null,\n  currentPass: -1,\n  propColorValue: null,\n  props: null,\n  idOffset: 1\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _Core_HardwareSelector_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].extend(publicAPI, model, initialValues);\n  model.propColorValue = [0, 0, 0];\n  model.props = [];\n\n  if (!model.area) {\n    model.area = [0, 0, 0, 0];\n  }\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].setGetArray(publicAPI, model, ['area'], 4);\n  _macros_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].setGet(publicAPI, model, ['_renderer', 'currentPass', '_openGLRenderWindow']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].setGetArray(publicAPI, model, ['propColorValue'], 3);\n  _macros_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].moveToProtected(publicAPI, model, ['renderer', 'openGLRenderWindow']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].event(publicAPI, model, 'event'); // Object methods\n\n  vtkOpenGLHardwareSelector(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance(extend, 'vtkOpenGLHardwareSelector'); // ----------------------------------------------------------------------------\n\nvar vtkHardwareSelector = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _HardwareSelector_Constants_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/HardwareSelector.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/HardwareSelector/Constants.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/HardwareSelector/Constants.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"PassTypes\": () => (/* binding */ PassTypes),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar PassTypes = {\n  MIN_KNOWN_PASS: 0,\n  ACTOR_PASS: 0,\n  COMPOSITE_INDEX_PASS: 1,\n  ID_LOW24: 2,\n  MAX_KNOWN_PASS: 2\n};\nvar Constants = {\n  PassTypes: PassTypes\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/HardwareSelector/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Helper.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Helper.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkHelper),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance),\n/* harmony export */   \"primTypes\": () => (/* binding */ primTypes)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _CellArrayBufferObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CellArrayBufferObject.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/CellArrayBufferObject.js\");\n/* harmony import */ var _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ShaderProgram.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderProgram.js\");\n/* harmony import */ var _VertexArrayObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VertexArrayObject.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/VertexArrayObject.js\");\n/* harmony import */ var _Core_Property_Constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Core/Property/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property/Constants.js\");\n\n\n\n\n\n\nvar primTypes = {\n  Start: 0,\n  Points: 0,\n  Lines: 1,\n  Tris: 2,\n  TriStrips: 3,\n  TrisEdges: 4,\n  TriStripsEdges: 5,\n  End: 6\n}; // ----------------------------------------------------------------------------\n// vtkOpenGLHelper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLHelper(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLHelper');\n\n  publicAPI.setOpenGLRenderWindow = function (win) {\n    model.context = win.getContext();\n    model.program.setContext(model.context);\n    model.VAO.setOpenGLRenderWindow(win);\n    model.CABO.setOpenGLRenderWindow(win);\n  };\n\n  publicAPI.releaseGraphicsResources = function (oglwin) {\n    model.VAO.releaseGraphicsResources();\n    model.CABO.releaseGraphicsResources();\n    model.CABO.setElementCount(0);\n  };\n\n  publicAPI.drawArrays = function (ren, actor, rep, oglMapper) {\n    // Are there any entries\n    if (model.CABO.getElementCount()) {\n      // are we drawing edges\n      var mode = publicAPI.getOpenGLMode(rep);\n      var wideLines = publicAPI.haveWideLines(ren, actor);\n      var gl = model.context;\n      var drawingLines = mode === gl.LINES;\n\n      if (drawingLines && wideLines) {\n        publicAPI.updateShaders(ren, actor, oglMapper);\n        gl.drawArraysInstanced(mode, 0, model.CABO.getElementCount(), 2 * Math.ceil(actor.getProperty().getLineWidth()));\n      } else {\n        gl.lineWidth(actor.getProperty().getLineWidth());\n        publicAPI.updateShaders(ren, actor, oglMapper);\n        gl.drawArrays(mode, 0, model.CABO.getElementCount()); // reset the line width\n\n        gl.lineWidth(1);\n      }\n\n      var stride = (mode === gl.POINTS ? 1 : 0) || (mode === gl.LINES ? 2 : 3);\n      return model.CABO.getElementCount() / stride;\n    }\n\n    return 0;\n  };\n\n  publicAPI.getOpenGLMode = function (rep) {\n    var type = model.primitiveType;\n\n    if (rep === _Core_Property_Constants_js__WEBPACK_IMPORTED_MODULE_4__.Representation.POINTS || type === primTypes.Points) {\n      return model.context.POINTS;\n    }\n\n    if (rep === _Core_Property_Constants_js__WEBPACK_IMPORTED_MODULE_4__.Representation.WIREFRAME || type === primTypes.Lines || type === primTypes.TrisEdges || type === primTypes.TriStripsEdges) {\n      return model.context.LINES;\n    }\n\n    return model.context.TRIANGLES;\n  };\n\n  publicAPI.haveWideLines = function (ren, actor) {\n    if (actor.getProperty().getLineWidth() > 1.0) {\n      // we have wide lines, but the OpenGL implementation may\n      // actually support them, check the range to see if we\n      // really need have to implement our own wide lines\n      if (model.CABO.getOpenGLRenderWindow()) {\n        if (model.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth() >= actor.getProperty().getLineWidth()) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n\n    return false;\n  };\n\n  publicAPI.getNeedToRebuildShaders = function (ren, actor, oglMapper) {\n    // has something changed that would require us to recreate the shader?\n    // candidates are\n    // property modified (representation interpolation and lighting)\n    // input modified\n    // mapper modified (lighting complexity)\n    if (oglMapper.getNeedToRebuildShaders(publicAPI, ren, actor) || publicAPI.getProgram() === 0 || publicAPI.getShaderSourceTime().getMTime() < oglMapper.getMTime() || publicAPI.getShaderSourceTime().getMTime() < actor.getMTime()) {\n      return true;\n    }\n\n    return false;\n  };\n\n  publicAPI.updateShaders = function (ren, actor, oglMapper) {\n    // has something changed that would require us to recreate the shader?\n    if (publicAPI.getNeedToRebuildShaders(ren, actor, oglMapper)) {\n      var shaders = {\n        Vertex: null,\n        Fragment: null,\n        Geometry: null\n      };\n      oglMapper.buildShaders(shaders, ren, actor); // compile and bind the program if needed\n\n      var newShader = model.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(shaders.Vertex, shaders.Fragment, shaders.Geometry); // if the shader changed reinitialize the VAO\n\n      if (newShader !== publicAPI.getProgram()) {\n        publicAPI.setProgram(newShader); // reset the VAO as the shader has changed\n\n        publicAPI.getVAO().releaseGraphicsResources();\n      }\n\n      publicAPI.getShaderSourceTime().modified();\n    } else {\n      model.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(publicAPI.getProgram());\n    }\n\n    publicAPI.getVAO().bind();\n    oglMapper.setMapperShaderParameters(publicAPI, ren, actor);\n    oglMapper.setPropertyShaderParameters(publicAPI, ren, actor);\n    oglMapper.setCameraShaderParameters(publicAPI, ren, actor);\n    oglMapper.setLightingShaderParameters(publicAPI, ren, actor);\n    oglMapper.invokeShaderCallbacks(publicAPI, ren, actor);\n  };\n\n  publicAPI.setMapperShaderParameters = function (ren, actor, size) {\n    if (publicAPI.haveWideLines(ren, actor)) {\n      publicAPI.getProgram().setUniform2f('viewportSize', size.usize, size.vsize);\n      var lineWidth = parseFloat(actor.getProperty().getLineWidth());\n      var halfLineWidth = lineWidth / 2.0;\n      publicAPI.getProgram().setUniformf('lineWidthStepSize', lineWidth / Math.ceil(lineWidth));\n      publicAPI.getProgram().setUniformf('halfLineWidth', halfLineWidth);\n    }\n  };\n\n  publicAPI.replaceShaderPositionVC = function (shaders, ren, actor) {\n    var VSSource = shaders.Vertex; // for lines, make sure we add the width code\n\n    if (publicAPI.getOpenGLMode(actor.getProperty().getRepresentation()) === model.context.LINES && publicAPI.haveWideLines(ren, actor)) {\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(VSSource, '//VTK::PositionVC::Dec', ['//VTK::PositionVC::Dec', 'uniform vec2 viewportSize;', 'uniform float lineWidthStepSize;', 'uniform float halfLineWidth;']).result;\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(VSSource, '//VTK::PositionVC::Impl', ['//VTK::PositionVC::Impl', ' if (halfLineWidth > 0.0)', '   {', '   float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;', '   vec4 tmpPos = gl_Position;', '   vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;', '   tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];', '   tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];', '   gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);', '   }']).result;\n    } // for points make sure to add in the point size\n\n\n    if (actor.getProperty().getRepresentation() === _Core_Property_Constants_js__WEBPACK_IMPORTED_MODULE_4__.Representation.POINTS || model.primitiveType === primTypes.Points) {\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(VSSource, '//VTK::PositionVC::Impl', ['//VTK::PositionVC::Impl', \"  gl_PointSize = \".concat(actor.getProperty().getPointSize(), \".0;\")], false).result;\n    }\n\n    shaders.Vertex = VSSource;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  context: null,\n  program: null,\n  shaderSourceTime: null,\n  VAO: null,\n  attributeUpdateTime: null,\n  CABO: null,\n  primitiveType: 0\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  model.shaderSourceTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.shaderSourceTime);\n  model.attributeUpdateTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.attributeUpdateTime);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['program', 'shaderSourceTime', 'VAO', 'attributeUpdateTime', 'CABO', 'primitiveType']);\n  model.program = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n  model.VAO = _VertexArrayObject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n  model.CABO = _CellArrayBufferObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(); // Object methods\n\n  vtkOpenGLHelper(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkHelper = {\n  newInstance: newInstance,\n  extend: extend,\n  primTypes: primTypes\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Helper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/OrderIndependentTranslucentPass.js":
/*!******************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/OrderIndependentTranslucentPass.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkOpenGLOrderIndependentTranslucentPass$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture.js\");\n/* harmony import */ var _Framebuffer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Framebuffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Framebuffer.js\");\n/* harmony import */ var _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SceneGraph/RenderPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js\");\n/* harmony import */ var _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Common/Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _Helper_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Helper.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Helper.js\");\n/* harmony import */ var _Core_Property_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Core/Property.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property.js\");\n/* harmony import */ var _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ShaderProgram.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderProgram.js\");\n/* harmony import */ var _VertexArrayObject_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./VertexArrayObject.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/VertexArrayObject.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar Representation = _Core_Property_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].Representation;\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro; // ----------------------------------------------------------------------------\n\nfunction translucentShaderReplacement(shaders) {\n  var substituteRes = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].substitute(shaders.Fragment, '//VTK::RenderPassFragmentShader::Impl', \"\\n      float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0);\\n      gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a);\\n      gl_FragData[1].r = weight;\\n    \", false);\n  shaders.Fragment = substituteRes.result;\n}\n\nvar oitpFragTemplate = \"//VTK::System::Dec\\n\\nin vec2 tcoord;\\n\\nuniform sampler2D translucentRTexture;\\nuniform sampler2D translucentRGBATexture;\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nvoid main()\\n{\\n  vec4 t1Color = texture(translucentRGBATexture, tcoord);\\n  float t2Color = texture(translucentRTexture, tcoord).r;\\n  gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a);\\n}\\n\";\n\nfunction vtkOpenGLOrderIndependentTranslucentPass(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLOrderIndependentTranslucentPass'); // build vertices etc\n\n  publicAPI.createVertexBuffer = function () {\n    // 4 corner points in clipping space in order (x, y, z) where z is always set to -1\n    // prettier-ignore\n    var ptsArray = new Float32Array([-1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1]); // 4 corresponding corner points in texture space in order (x, y)\n\n    var tcoordArray = new Float32Array([0, 0, 1, 0, 0, 1, 1, 1]); // a square defined as cell relation ship in order (cell_size, v1, v2, v3, v4)\n\n    var cellArray = new Uint16Array([4, 0, 1, 3, 2]);\n    var points = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance({\n      numberOfComponents: 3,\n      values: ptsArray\n    });\n    points.setName('points');\n    var tcoords = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance({\n      numberOfComponents: 2,\n      values: tcoordArray\n    });\n    tcoords.setName('tcoords');\n    var cells = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance({\n      numberOfComponents: 1,\n      values: cellArray\n    });\n    model.tris.getCABO().createVBO(cells, 'polys', Representation.SURFACE, {\n      points: points,\n      tcoords: tcoords,\n      cellOffset: 0\n    });\n    model.VBOBuildTime.modified();\n  };\n\n  publicAPI.createFramebuffer = function (viewNode) {\n    var _model$framebuffer;\n\n    var size = viewNode.getSize();\n    var gl = viewNode.getContext();\n    model.framebuffer = _Framebuffer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n    model.framebuffer.setOpenGLRenderWindow(viewNode);\n\n    (_model$framebuffer = model.framebuffer).create.apply(_model$framebuffer, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(size));\n\n    model.framebuffer.saveCurrentBindingsAndBuffers();\n    model.framebuffer.bind();\n    model.translucentRGBATexture = _Texture_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n    model.translucentRGBATexture.setInternalFormat(gl.RGBA16F);\n    model.translucentRGBATexture.setFormat(gl.RGBA);\n    model.translucentRGBATexture.setOpenGLDataType(gl.HALF_FLOAT);\n    model.translucentRGBATexture.setOpenGLRenderWindow(viewNode);\n    model.translucentRGBATexture.create2DFromRaw(size[0], size[1], 4, 'Float32Array', null);\n    model.translucentRTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n    model.translucentRTexture.setInternalFormat(gl.R16F);\n    model.translucentRTexture.setFormat(gl.RED);\n    model.translucentRTexture.setOpenGLDataType(gl.HALF_FLOAT);\n    model.translucentRTexture.setOpenGLRenderWindow(viewNode);\n    model.translucentRTexture.create2DFromRaw(size[0], size[1], 1, 'Float32Array', null);\n    model.translucentZTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n    model.translucentZTexture.setOpenGLRenderWindow(viewNode);\n    model.translucentZTexture.createDepthFromRaw(size[0], size[1], 'Float32Array', null);\n    model.framebuffer.setColorBuffer(model.translucentRGBATexture, 0);\n    model.framebuffer.setColorBuffer(model.translucentRTexture, 1);\n    model.framebuffer.setDepthBuffer(model.translucentZTexture);\n  };\n\n  publicAPI.createCopyShader = function (viewNode) {\n    model.copyShader = viewNode.getShaderCache().readyShaderProgramArray(['//VTK::System::Dec', 'attribute vec4 vertexDC;', 'attribute vec2 tcoordTC;', 'varying vec2 tcoord;', 'void main() { tcoord = tcoordTC; gl_Position = vertexDC; }'].join('\\n'), oitpFragTemplate, '');\n  };\n\n  publicAPI.createVBO = function (viewNode) {\n    var gl = viewNode.getContext();\n    model.tris.setOpenGLRenderWindow(viewNode);\n    publicAPI.createVertexBuffer();\n    var program = model.copyShader; // prepare the vertex and triangle data for the image plane to render to\n\n    model.tris.getCABO().bind();\n\n    if (!model.copyVAO.addAttributeArray(program, model.tris.getCABO(), 'vertexDC', model.tris.getCABO().getVertexOffset(), model.tris.getCABO().getStride(), gl.FLOAT, 3, gl.FALSE)) {\n      vtkErrorMacro('Error setting vertexDC in copy shader VAO.');\n    }\n\n    if (!model.copyVAO.addAttributeArray(program, model.tris.getCABO(), 'tcoordTC', model.tris.getCABO().getTCoordOffset(), model.tris.getCABO().getStride(), gl.FLOAT, 2, gl.FALSE)) {\n      vtkErrorMacro('Error setting vertexDC in copy shader VAO.');\n    }\n  };\n\n  publicAPI.traverse = function (viewNode, renNode, forwardPass) {\n    if (model.deleted) {\n      return;\n    }\n\n    var size = viewNode.getSize();\n    var gl = viewNode.getContext(); // if we lack the webgl2 and half floatsupport just do\n    // basic alpha blending\n\n    model._supported = false;\n\n    if (renNode.getSelector() || !gl || !viewNode.getWebgl2() || !gl.getExtension('EXT_color_buffer_half_float') && !gl.getExtension('EXT_color_buffer_float')) {\n      publicAPI.setCurrentOperation('translucentPass');\n      renNode.traverse(publicAPI);\n      return;\n    }\n\n    model._supported = true; // prepare framebuffer // allocate framebuffer if needed and bind it\n\n    if (model.framebuffer === null) {\n      publicAPI.createFramebuffer(viewNode);\n    } else {\n      var fbSize = model.framebuffer.getSize();\n\n      if (fbSize === null || fbSize[0] !== size[0] || fbSize[1] !== size[1]) {\n        model.framebuffer.releaseGraphicsResources();\n        model.translucentRGBATexture.releaseGraphicsResources(viewNode);\n        model.translucentRTexture.releaseGraphicsResources(viewNode);\n        model.translucentZTexture.releaseGraphicsResources(viewNode);\n        publicAPI.createFramebuffer(viewNode);\n      } else {\n        // store framebuffer bindings to restore them later\n        model.framebuffer.saveCurrentBindingsAndBuffers();\n        model.framebuffer.bind();\n      }\n    }\n\n    gl.drawBuffers([gl.COLOR_ATTACHMENT0]);\n    gl.clearBufferfv(gl.COLOR, 0, [0.0, 0.0, 0.0, 0.0]);\n    gl.clearBufferfv(gl.DEPTH, 0, [1.0]);\n    gl.colorMask(false, false, false, false); // rerender the opaque pass to set the depth buffer\n    // TODO remove when webgl1 is deprecated and instead\n    // have the forward pass use a texture backed zbuffer\n\n    if (forwardPass.getOpaqueActorCount() > 0) {\n      forwardPass.setCurrentOperation('opaquePass');\n      renNode.traverse(forwardPass);\n    }\n\n    gl.colorMask(true, true, true, true);\n    gl.drawBuffers([gl.COLOR_ATTACHMENT0, gl.COLOR_ATTACHMENT1]);\n    gl.clearBufferfv(gl.COLOR, 0, [0.0, 0.0, 0.0, 1.0]);\n    gl.clearBufferfv(gl.COLOR, 1, [0.0, 0.0, 0.0, 0.0]);\n    gl.enable(gl.DEPTH_TEST);\n    gl.enable(gl.BLEND); // basic gist is we accumulate color into RGB We compute final opacity\n    // into A We store accumulated opacity into R of the R texture.\n\n    gl.blendFuncSeparate(gl.ONE, gl.ONE, gl.ZERO, gl.ONE_MINUS_SRC_ALPHA); // now do the translucent rendering\n\n    publicAPI.setCurrentOperation('translucentPass');\n    renNode.traverse(publicAPI);\n    gl.drawBuffers([gl.NONE]);\n    model.framebuffer.restorePreviousBindingsAndBuffers(); // gl.drawBuffers([gl.BACK]);\n    // make sure the copy shader is ready\n\n    if (model.copyShader === null) {\n      publicAPI.createCopyShader(viewNode);\n    } else {\n      viewNode.getShaderCache().readyShaderProgram(model.copyShader);\n    } // make sure we have a VAO\n\n\n    if (!model.copyVAO) {\n      model.copyVAO = _VertexArrayObject_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].newInstance();\n      model.copyVAO.setOpenGLRenderWindow(viewNode);\n    }\n\n    model.copyVAO.bind(); // make sure the VBO is up to date\n\n    if (model.VBOBuildTime.getMTime() < publicAPI.getMTime()) {\n      publicAPI.createVBO(viewNode);\n    }\n\n    gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n    gl.depthMask(false);\n    gl.depthFunc(gl.ALWAYS);\n    gl.viewport(0, 0, size[0], size[1]);\n    gl.scissor(0, 0, size[0], size[1]); // activate texture\n\n    model.translucentRGBATexture.activate();\n    model.copyShader.setUniformi('translucentRGBATexture', model.translucentRGBATexture.getTextureUnit());\n    model.translucentRTexture.activate();\n    model.copyShader.setUniformi('translucentRTexture', model.translucentRTexture.getTextureUnit()); // render quad\n\n    gl.drawArrays(gl.TRIANGLES, 0, model.tris.getCABO().getElementCount());\n    gl.depthMask(true);\n    gl.depthFunc(gl.LEQUAL);\n    model.translucentRGBATexture.deactivate();\n    model.translucentRTexture.deactivate();\n  };\n\n  publicAPI.getShaderReplacement = function () {\n    if (model._supported) {\n      return translucentShaderReplacement;\n    }\n\n    return null;\n  };\n\n  publicAPI.releaseGraphicsResources = function (viewNode) {\n    if (model.framebuffer) {\n      model.framebuffer.releaseGraphicsResources(viewNode);\n      model.framebuffer = null;\n    }\n\n    if (model.translucentRGBATexture) {\n      model.translucentRGBATexture.releaseGraphicsResources(viewNode);\n      model.translucentRGBATexture = null;\n    }\n\n    if (model.translucentRTexture) {\n      model.translucentRTexture.releaseGraphicsResources(viewNode);\n      model.translucentRTexture = null;\n    }\n\n    if (model.translucentZTexture) {\n      model.translucentZTexture.releaseGraphicsResources(viewNode);\n      model.translucentZTexture = null;\n    }\n\n    if (model.copyVAO) {\n      model.copyVAO.releaseGraphicsResources(viewNode);\n      model.copyVAO = null;\n    }\n\n    if (model.copyShader) {\n      model.copyShader.releaseGraphicsResources(viewNode);\n      model.copyShader = null;\n    }\n\n    if (model.tris) {\n      model.tris.releaseGraphicsResources(viewNode);\n      model.tris = null;\n    }\n\n    publicAPI.modified();\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  framebuffer: null,\n  copyShader: null,\n  tris: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend(publicAPI, model, initialValues);\n  model.VBOBuildTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(model.VBOBuildTime, {\n    mtime: 0\n  });\n  model.tris = _Helper_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance();\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['framebuffer']); // Object methods\n\n  vtkOpenGLOrderIndependentTranslucentPass(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkOpenGLOrderIndependentTranslucentPass'); // ----------------------------------------------------------------------------\n\nvar vtkOpenGLOrderIndependentTranslucentPass$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/OrderIndependentTranslucentPass.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/PixelSpaceCallbackMapper.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/PixelSpaceCallbackMapper.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkPixelSpaceCallbackMapper),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n// import { mat4, vec3 }     from 'gl-matrix';\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkDebugMacro; // ----------------------------------------------------------------------------\n// vtkOpenGLPixelSpaceCallbackMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLPixelSpaceCallbackMapper(publicAPI, model) {\n  model.classHierarchy.push('vtkOpenGLPixelSpaceCallbackMapper');\n\n  publicAPI.opaquePass = function (prepass, renderPass) {\n    model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');\n    model._openGLRenderWindow = model.openGLRenderer.getParent();\n    var aspectRatio = model.openGLRenderer.getAspectRatio();\n    var camera = model.openGLRenderer ? model.openGLRenderer.getRenderable().getActiveCamera() : null;\n    var tsize = model.openGLRenderer.getTiledSizeAndOrigin();\n    var texels = null;\n\n    if (model.renderable.getUseZValues()) {\n      var zbt = renderPass.getZBufferTexture();\n      var width = Math.floor(zbt.getWidth());\n      var height = Math.floor(zbt.getHeight());\n\n      var gl = model._openGLRenderWindow.getContext();\n\n      zbt.bind(); // Here we need to use vtkFramebuffer to save current settings (bindings/buffers)\n\n      var fb = renderPass.getFramebuffer();\n\n      if (!fb) {\n        vtkDebugMacro('No framebuffer to save/restore');\n      } else {\n        // save framebuffer settings\n        fb.saveCurrentBindingsAndBuffers();\n      }\n\n      var framebuffer = gl.createFramebuffer();\n      gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n      gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, zbt.getHandle(), 0);\n\n      if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) === gl.FRAMEBUFFER_COMPLETE) {\n        texels = new Uint8Array(width * height * 4);\n        gl.viewport(0, 0, width, height);\n        gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, texels);\n      } // Now we need to restore framebuffer bindings/buffers\n\n\n      if (fb) {\n        fb.restorePreviousBindingsAndBuffers();\n      }\n\n      gl.deleteFramebuffer(framebuffer);\n    }\n\n    model.renderable.invokeCallback(model.renderable.getInputData(), camera, aspectRatio, tsize, texels);\n  };\n\n  publicAPI.queryPass = function (prepass, renderPass) {\n    if (prepass) {\n      if (model.renderable.getUseZValues()) {\n        renderPass.requestDepth();\n      }\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues); // Object methods\n\n  vtkOpenGLPixelSpaceCallbackMapper(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkOpenGLPixelSpaceCallbackMapper'); // ----------------------------------------------------------------------------\n\nvar vtkPixelSpaceCallbackMapper = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__.registerOverride)('vtkPixelSpaceCallbackMapper', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/PixelSpaceCallbackMapper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/PolyDataMapper.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/PolyDataMapper.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkOpenGLPolyDataMapper$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat3.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Helper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Helper.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Helper.js\");\n/* harmony import */ var _Core_Mapper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/Mapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture.js\");\n/* harmony import */ var _Core_Property_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Core/Property.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property.js\");\n/* harmony import */ var _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ShaderProgram.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderProgram.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _glsl_vtkPolyDataVS_glsl_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./glsl/vtkPolyDataVS.glsl.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyDataVS.glsl.js\");\n/* harmony import */ var _glsl_vtkPolyDataFS_glsl_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./glsl/vtkPolyDataFS.glsl.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyDataFS.glsl.js\");\n/* harmony import */ var _ReplacementShaderMapper_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ReplacementShaderMapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ReplacementShaderMapper.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* eslint-disable no-lonely-if */\n\nvar primTypes = _Helper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].primTypes;\nvar Representation = _Core_Property_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Representation,\n    Shading = _Core_Property_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Shading;\nvar ScalarMode = _Core_Mapper_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ScalarMode;\nvar Filter = _Texture_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Filter,\n    Wrap = _Texture_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Wrap;\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__.vtkErrorMacro;\nvar StartEvent = {\n  type: 'StartEvent'\n};\nvar EndEvent = {\n  type: 'EndEvent'\n}; // ----------------------------------------------------------------------------\n// vtkOpenGLPolyDataMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLPolyDataMapper(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLPolyDataMapper');\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.currentRenderPass = null;\n      model.openGLActor = publicAPI.getFirstAncestorOfType('vtkOpenGLActor');\n      model.openGLRenderer = model.openGLActor.getFirstAncestorOfType('vtkOpenGLRenderer');\n      model._openGLRenderWindow = model.openGLRenderer.getParent();\n      model.openGLCamera = model.openGLRenderer.getViewNodeFor(model.openGLRenderer.getRenderable().getActiveCamera());\n    }\n  }; // Renders myself\n\n\n  publicAPI.translucentPass = function (prepass, renderPass) {\n    if (prepass) {\n      model.currentRenderPass = renderPass;\n      publicAPI.render();\n    }\n  };\n\n  publicAPI.opaqueZBufferPass = function (prepass) {\n    if (prepass) {\n      model.haveSeenDepthRequest = true;\n      model.renderDepth = true;\n      publicAPI.render();\n      model.renderDepth = false;\n    }\n  };\n\n  publicAPI.opaquePass = function (prepass) {\n    if (prepass) {\n      publicAPI.render();\n    }\n  };\n\n  publicAPI.render = function () {\n    var ctx = model._openGLRenderWindow.getContext();\n\n    if (model.context !== ctx) {\n      model.context = ctx;\n\n      for (var i = primTypes.Start; i < primTypes.End; i++) {\n        model.primitives[i].setOpenGLRenderWindow(model._openGLRenderWindow);\n      }\n    }\n\n    var actor = model.openGLActor.getRenderable();\n    var ren = model.openGLRenderer.getRenderable();\n    publicAPI.renderPiece(ren, actor);\n  };\n\n  publicAPI.buildShaders = function (shaders, ren, actor) {\n    publicAPI.getShaderTemplate(shaders, ren, actor); // apply any renderPassReplacements\n\n    if (model.lastRenderPassShaderReplacement) {\n      model.lastRenderPassShaderReplacement(shaders);\n    } // user specified pre replacements\n\n\n    var openGLSpec = model.renderable.getViewSpecificProperties().OpenGL;\n    var shaderReplacements = null;\n\n    if (openGLSpec) {\n      shaderReplacements = openGLSpec.ShaderReplacements;\n    }\n\n    if (shaderReplacements) {\n      for (var i = 0; i < shaderReplacements.length; i++) {\n        var currReplacement = shaderReplacements[i];\n\n        if (currReplacement.replaceFirst) {\n          var shaderType = currReplacement.shaderType;\n          var ssrc = shaders[shaderType];\n          var substituteRes = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(ssrc, currReplacement.originalValue, currReplacement.replacementValue, currReplacement.replaceAll);\n          shaders[shaderType] = substituteRes.result;\n        }\n      }\n    }\n\n    publicAPI.replaceShaderValues(shaders, ren, actor); // user specified post replacements\n\n    if (shaderReplacements) {\n      for (var _i = 0; _i < shaderReplacements.length; _i++) {\n        var _currReplacement = shaderReplacements[_i];\n\n        if (!_currReplacement.replaceFirst) {\n          var _shaderType = _currReplacement.shaderType;\n          var _ssrc = shaders[_shaderType];\n\n          var _substituteRes = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(_ssrc, _currReplacement.originalValue, _currReplacement.replacementValue, _currReplacement.replaceAll);\n\n          shaders[_shaderType] = _substituteRes.result;\n        }\n      }\n    }\n  };\n\n  publicAPI.getShaderTemplate = function (shaders, ren, actor) {\n    var openGLSpecProp = model.renderable.getViewSpecificProperties().OpenGL;\n    var vertexShaderCode = _glsl_vtkPolyDataVS_glsl_js__WEBPACK_IMPORTED_MODULE_9__.v;\n\n    if (openGLSpecProp) {\n      var vertexSpecProp = openGLSpecProp.VertexShaderCode;\n\n      if (vertexSpecProp !== undefined && vertexSpecProp !== '') {\n        vertexShaderCode = vertexSpecProp;\n      }\n    }\n\n    shaders.Vertex = vertexShaderCode;\n    var fragmentShaderCode = _glsl_vtkPolyDataFS_glsl_js__WEBPACK_IMPORTED_MODULE_10__.v;\n\n    if (openGLSpecProp) {\n      var fragmentSpecProp = openGLSpecProp.FragmentShaderCode;\n\n      if (fragmentSpecProp !== undefined && fragmentSpecProp !== '') {\n        fragmentShaderCode = fragmentSpecProp;\n      }\n    }\n\n    shaders.Fragment = fragmentShaderCode;\n    var geometryShaderCode = '';\n\n    if (openGLSpecProp) {\n      var geometrySpecProp = openGLSpecProp.GeometryShaderCode;\n\n      if (geometrySpecProp !== undefined) {\n        geometryShaderCode = geometrySpecProp;\n      }\n    }\n\n    shaders.Geometry = geometryShaderCode;\n  };\n\n  publicAPI.replaceShaderColor = function (shaders, ren, actor) {\n    var VSSource = shaders.Vertex;\n    var GSSource = shaders.Geometry;\n    var FSSource = shaders.Fragment;\n    var lastLightComplexity = model.lastBoundBO.getReferenceByName('lastLightComplexity'); // create the material/color property declarations, and VS implementation\n    // these are always defined\n\n    var colorDec = ['uniform float ambient;', 'uniform float diffuse;', 'uniform float specular;', 'uniform float opacityUniform; // the fragment opacity', 'uniform vec3 ambientColorUniform;', 'uniform vec3 diffuseColorUniform;']; // add more for specular\n\n    if (lastLightComplexity) {\n      colorDec = colorDec.concat(['uniform vec3 specularColorUniform;', 'uniform float specularPowerUniform;']);\n    } // now handle the more complex fragment shader implementation\n    // the following are always defined variables.  We start\n    // by assigning a default value from the uniform\n\n\n    var colorImpl = ['vec3 ambientColor;', '  vec3 diffuseColor;', '  float opacity;'];\n\n    if (lastLightComplexity) {\n      colorImpl = colorImpl.concat(['  vec3 specularColor;', '  float specularPower;']);\n    }\n\n    colorImpl = colorImpl.concat(['  ambientColor = ambientColorUniform;', '  diffuseColor = diffuseColorUniform;', '  opacity = opacityUniform;']);\n\n    if (lastLightComplexity) {\n      colorImpl = colorImpl.concat(['  specularColor = specularColorUniform;', '  specularPower = specularPowerUniform;']);\n    } // add scalar vertex coloring\n\n\n    if (model.lastBoundBO.getCABO().getColorComponents() !== 0 && !model.drawingEdges) {\n      colorDec = colorDec.concat(['varying vec4 vertexColorVSOutput;']);\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Color::Dec', ['attribute vec4 scalarColor;', 'varying vec4 vertexColorVSOutput;']).result;\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Color::Impl', ['vertexColorVSOutput =  scalarColor;']).result;\n      GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::Color::Dec', ['in vec4 vertexColorVSOutput[];', 'out vec4 vertexColorGSOutput;']).result;\n      GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::Color::Impl', ['vertexColorGSOutput = vertexColorVSOutput[i];']).result;\n    }\n\n    if (model.lastBoundBO.getCABO().getColorComponents() !== 0 && !model.drawingEdges) {\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Impl', colorImpl.concat(['  diffuseColor = vertexColorVSOutput.rgb;', '  ambientColor = vertexColorVSOutput.rgb;', '  opacity = opacity*vertexColorVSOutput.a;'])).result;\n    } else {\n      if (model.renderable.getInterpolateScalarsBeforeMapping() && model.renderable.getColorCoordinates() && !model.drawingEdges) {\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Impl', colorImpl.concat(['  vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);', '  diffuseColor = texColor.rgb;', '  ambientColor = texColor.rgb;', '  opacity = opacity*texColor.a;'])).result;\n      } else {\n        if (actor.getBackfaceProperty() && !model.drawingEdges) {\n          colorDec = colorDec.concat(['uniform float opacityUniformBF; // the fragment opacity', 'uniform float ambientIntensityBF; // the material ambient', 'uniform float diffuseIntensityBF; // the material diffuse', 'uniform vec3 ambientColorUniformBF; // ambient material color', 'uniform vec3 diffuseColorUniformBF; // diffuse material color']);\n\n          if (lastLightComplexity) {\n            colorDec = colorDec.concat(['uniform float specularIntensityBF; // the material specular intensity', 'uniform vec3 specularColorUniformBF; // intensity weighted color', 'uniform float specularPowerUniformBF;']);\n            colorImpl = colorImpl.concat(['if (gl_FrontFacing == false) {', '  ambientColor = ambientIntensityBF * ambientColorUniformBF;', '  diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;', '  specularColor = specularIntensityBF * specularColorUniformBF;', '  specularPower = specularPowerUniformBF;', '  opacity = opacityUniformBF; }']);\n          } else {\n            colorImpl = colorImpl.concat(['if (gl_FrontFacing == false) {', '  ambientColor = ambientIntensityBF * ambientColorUniformBF;', '  diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;', '  opacity = opacityUniformBF; }']);\n          }\n        }\n\n        if (model.haveCellScalars && !model.drawingEdges) {\n          colorDec = colorDec.concat(['uniform samplerBuffer texture1;']);\n        }\n\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Impl', colorImpl).result;\n      }\n    }\n\n    FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Dec', colorDec).result;\n    shaders.Vertex = VSSource;\n    shaders.Geometry = GSSource;\n    shaders.Fragment = FSSource;\n  };\n\n  publicAPI.replaceShaderLight = function (shaders, ren, actor) {\n    var FSSource = shaders.Fragment; // check for shadow maps\n\n    var shadowFactor = '';\n    var lastLightComplexity = model.lastBoundBO.getReferenceByName('lastLightComplexity');\n    var lastLightCount = model.lastBoundBO.getReferenceByName('lastLightCount');\n    var sstring = [];\n\n    switch (lastLightComplexity) {\n      case 0:\n        // no lighting or RENDER_VALUES\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Light::Impl', ['  gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);', '  //VTK::Light::Impl'], false).result;\n        break;\n\n      case 1:\n        // headlight\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Light::Impl', ['  float df = max(0.0, normalVCVSOutput.z);', '  float sf = pow(df, specularPower);', '  vec3 diffuseL = df * diffuseColor;', '  vec3 specularL = sf * specularColor;', '  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);', '  //VTK::Light::Impl'], false).result;\n        break;\n\n      case 2:\n        // light kit\n        for (var lc = 0; lc < lastLightCount; ++lc) {\n          sstring = sstring.concat([\"uniform vec3 lightColor\".concat(lc, \";\"), \"uniform vec3 lightDirectionVC\".concat(lc, \"; // normalized\"), \"uniform vec3 lightHalfAngleVC\".concat(lc, \"; // normalized\")]);\n        }\n\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Light::Dec', sstring).result;\n        sstring = ['vec3 diffuseL = vec3(0,0,0);', '  vec3 specularL = vec3(0,0,0);', '  float df;'];\n\n        for (var _lc = 0; _lc < lastLightCount; ++_lc) {\n          sstring = sstring.concat([\"  df = max(0.0, dot(normalVCVSOutput, -lightDirectionVC\".concat(_lc, \"));\"), \"  diffuseL += ((df\".concat(shadowFactor, \") * lightColor\").concat(_lc, \");\"), \"  if (dot(normalVCVSOutput, lightDirectionVC\".concat(_lc, \") < 0.0)\"), '    {', \"    float sf = pow( max(0.0, dot(lightHalfAngleVC\".concat(_lc, \",normalVCVSOutput)), specularPower);\"), \"    specularL += ((sf\".concat(shadowFactor, \") * lightColor\").concat(_lc, \");\"), '    }']);\n        }\n\n        sstring = sstring.concat(['  diffuseL = diffuseL * diffuseColor;', '  specularL = specularL * specularColor;', '  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);', '  //VTK::Light::Impl']);\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Light::Impl', sstring, false).result;\n        break;\n\n      case 3:\n        // positional\n        for (var _lc2 = 0; _lc2 < lastLightCount; ++_lc2) {\n          sstring = sstring.concat([\"uniform vec3 lightColor\".concat(_lc2, \";\"), \"uniform vec3 lightDirectionVC\".concat(_lc2, \"; // normalized\"), \"uniform vec3 lightHalfAngleVC\".concat(_lc2, \"; // normalized\"), \"uniform vec3 lightPositionVC\".concat(_lc2, \";\"), \"uniform vec3 lightAttenuation\".concat(_lc2, \";\"), \"uniform float lightConeAngle\".concat(_lc2, \";\"), \"uniform float lightExponent\".concat(_lc2, \";\"), \"uniform int lightPositional\".concat(_lc2, \";\")]);\n        }\n\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Light::Dec', sstring).result;\n        sstring = ['vec3 diffuseL = vec3(0,0,0);', '  vec3 specularL = vec3(0,0,0);', '  vec3 vertLightDirectionVC;', '  float attenuation;', '  float df;'];\n\n        for (var _lc3 = 0; _lc3 < lastLightCount; ++_lc3) {\n          sstring = sstring.concat(['  attenuation = 1.0;', \"  if (lightPositional\".concat(_lc3, \" == 0)\"), '    {', \"      vertLightDirectionVC = lightDirectionVC\".concat(_lc3, \";\"), '    }', '  else', '    {', \"    vertLightDirectionVC = vertexVC.xyz - lightPositionVC\".concat(_lc3, \";\"), '    float distanceVC = length(vertLightDirectionVC);', '    vertLightDirectionVC = normalize(vertLightDirectionVC);', '    attenuation = 1.0 /', \"      (lightAttenuation\".concat(_lc3, \".x\"), \"       + lightAttenuation\".concat(_lc3, \".y * distanceVC\"), \"       + lightAttenuation\".concat(_lc3, \".z * distanceVC * distanceVC);\"), '    // per OpenGL standard cone angle is 90 or less for a spot light', \"    if (lightConeAngle\".concat(_lc3, \" <= 90.0)\"), '      {', \"      float coneDot = dot(vertLightDirectionVC, lightDirectionVC\".concat(_lc3, \");\"), '      // if inside the cone', \"      if (coneDot >= cos(radians(lightConeAngle\".concat(_lc3, \")))\"), '        {', \"        attenuation = attenuation * pow(coneDot, lightExponent\".concat(_lc3, \");\"), '        }', '      else', '        {', '        attenuation = 0.0;', '        }', '      }', '    }', '    df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));', \"    diffuseL += ((df\".concat(shadowFactor, \") * lightColor\").concat(_lc3, \");\"), '    if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)', '      {', \"      float sf = attenuation*pow( max(0.0, dot(lightHalfAngleVC\".concat(_lc3, \",normalVCVSOutput)), specularPower);\"), \"    specularL += ((sf\".concat(shadowFactor, \") * lightColor\").concat(_lc3, \");\"), '    }']);\n        }\n\n        sstring = sstring.concat(['  diffuseL = diffuseL * diffuseColor;', '  specularL = specularL * specularColor;', '  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);', '  //VTK::Light::Impl']);\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Light::Impl', sstring, false).result;\n        break;\n\n      default:\n        vtkErrorMacro('bad light complexity');\n    }\n\n    shaders.Fragment = FSSource;\n  };\n\n  publicAPI.replaceShaderNormal = function (shaders, ren, actor) {\n    var lastLightComplexity = model.lastBoundBO.getReferenceByName('lastLightComplexity');\n\n    if (lastLightComplexity > 0) {\n      var VSSource = shaders.Vertex;\n      var GSSource = shaders.Geometry;\n      var FSSource = shaders.Fragment;\n\n      if (model.lastBoundBO.getCABO().getNormalOffset()) {\n        VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Normal::Dec', ['attribute vec3 normalMC;', 'uniform mat3 normalMatrix;', 'varying vec3 normalVCVSOutput;']).result;\n        VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Normal::Impl', ['normalVCVSOutput = normalMatrix * normalMC;']).result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::Normal::Dec', ['in vec3 normalVCVSOutput[];', 'out vec3 normalVCGSOutput;']).result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::Normal::Impl', ['normalVCGSOutput = normalVCVSOutput[i];']).result;\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Normal::Dec', ['varying vec3 normalVCVSOutput;']).result;\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Normal::Impl', ['vec3 normalVCVSOutput = normalize(normalVCVSOutput);', //  if (!gl_FrontFacing) does not work in intel hd4000 mac\n        //  if (int(gl_FrontFacing) == 0) does not work on mesa\n        '  if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }']).result;\n      } else {\n        if (model.haveCellNormals) {\n          FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Normal::Dec', ['uniform mat3 normalMatrix;', 'uniform samplerBuffer textureN;']).result;\n          FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Normal::Impl', ['vec3 normalVCVSOutput = normalize(normalMatrix *', '    texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);', '  if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }']).result;\n        } else {\n          if (model.lastBoundBO.getOpenGLMode(actor.getProperty().getRepresentation()) === model.context.LINES) {\n            // generate a normal for lines, it will be perpendicular to the line\n            // and maximally aligned with the camera view direction\n            // no clue if this is the best way to do this.\n            // the code below has been optimized a bit so what follows is\n            // an explanation of the basic approach. Compute the gradient of the line\n            // with respect to x and y, the the larger of the two\n            // cross that with the camera view direction. That gives a vector\n            // orthogonal to the camera view and the line. Note that the line and the camera\n            // view are probably not orthogonal. Which is why when we cross result that with\n            // the line gradient again we get a reasonable normal. It will be othogonal to\n            // the line (which is a plane but maximally aligned with the camera view.\n            FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::UniformFlow::Impl', ['  vec3 fdx = dFdx(vertexVC.xyz);', '  vec3 fdy = dFdy(vertexVC.xyz);', '  //VTK::UniformFlow::Impl'] // For further replacements\n            ).result;\n            FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Normal::Impl', ['vec3 normalVCVSOutput;', '  if (abs(fdx.x) > 0.0)', '    { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }', '  else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}']).result;\n          } else {\n            FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Normal::Dec', ['uniform int cameraParallel;']).result;\n            FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::UniformFlow::Impl', [// '  vec3 fdx = vec3(dFdx(vertexVC.x),dFdx(vertexVC.y),dFdx(vertexVC.z));',\n            // '  vec3 fdy = vec3(dFdy(vertexVC.x),dFdy(vertexVC.y),dFdy(vertexVC.z));',\n            '  vec3 fdx = dFdx(vertexVC.xyz);', '  vec3 fdy = dFdy(vertexVC.xyz);', '  //VTK::UniformFlow::Impl'] // For further replacements\n            ).result;\n            FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Normal::Impl', ['  fdx = normalize(fdx);', '  fdy = normalize(fdy);', '  vec3 normalVCVSOutput = normalize(cross(fdx,fdy));', // the code below is faster, but does not work on some devices\n            // 'vec3 normalVC = normalize(cross(dFdx(vertexVC.xyz), dFdy(vertexVC.xyz)));',\n            '  if (cameraParallel == 1 && normalVCVSOutput.z < 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }', '  if (cameraParallel == 0 && dot(normalVCVSOutput,vertexVC.xyz) > 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }']).result;\n          }\n        }\n      }\n\n      shaders.Vertex = VSSource;\n      shaders.Geometry = GSSource;\n      shaders.Fragment = FSSource;\n    }\n  };\n\n  publicAPI.replaceShaderPositionVC = function (shaders, ren, actor) {\n    // replace common shader code\n    model.lastBoundBO.replaceShaderPositionVC(shaders, ren, actor);\n    var VSSource = shaders.Vertex;\n    var GSSource = shaders.Geometry;\n    var FSSource = shaders.Fragment; // do we need the vertex in the shader in View Coordinates\n\n    var lastLightComplexity = model.lastBoundBO.getReferenceByName('lastLightComplexity');\n\n    if (lastLightComplexity > 0) {\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::PositionVC::Dec', ['varying vec4 vertexVCVSOutput;']).result;\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::PositionVC::Impl', ['vertexVCVSOutput = MCVCMatrix * vertexMC;', '  gl_Position = MCPCMatrix * vertexMC;']).result;\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Camera::Dec', ['uniform mat4 MCPCMatrix;', 'uniform mat4 MCVCMatrix;']).result;\n      GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::PositionVC::Dec', ['in vec4 vertexVCVSOutput[];', 'out vec4 vertexVCGSOutput;']).result;\n      GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::PositionVC::Impl', ['vertexVCGSOutput = vertexVCVSOutput[i];']).result;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::PositionVC::Dec', ['varying vec4 vertexVCVSOutput;']).result;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::PositionVC::Impl', ['vec4 vertexVC = vertexVCVSOutput;']).result;\n    } else {\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Camera::Dec', ['uniform mat4 MCPCMatrix;']).result;\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::PositionVC::Impl', ['  gl_Position = MCPCMatrix * vertexMC;']).result;\n    }\n\n    shaders.Vertex = VSSource;\n    shaders.Geometry = GSSource;\n    shaders.Fragment = FSSource;\n  };\n\n  publicAPI.replaceShaderTCoord = function (shaders, ren, actor) {\n    if (model.lastBoundBO.getCABO().getTCoordOffset()) {\n      var VSSource = shaders.Vertex;\n      var GSSource = shaders.Geometry;\n      var FSSource = shaders.Fragment;\n\n      if (model.drawingEdges) {\n        return;\n      }\n\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::TCoord::Impl', 'tcoordVCVSOutput = tcoordMC;').result; // we only handle the first texture by default\n      // additional textures are activated and we set the uniform\n      // for the texture unit they are assigned to, but you have to\n      // add in the shader code to do something with them\n\n      var tus = model.openGLActor.getActiveTextures();\n      var tNumComp = 2;\n      var tcdim = 2;\n\n      if (tus && tus.length > 0) {\n        tNumComp = tus[0].getComponents();\n\n        if (tus[0].getTarget() === model.context.TEXTURE_CUBE_MAP) {\n          tcdim = 3;\n        }\n      }\n\n      if (model.renderable.getColorTextureMap()) {\n        tNumComp = model.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents();\n        tcdim = 2;\n      }\n\n      if (tcdim === 2) {\n        VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::TCoord::Dec', 'attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;').result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::TCoord::Dec', ['in vec2 tcoordVCVSOutput[];', 'out vec2 tcoordVCGSOutput;']).result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::TCoord::Impl', 'tcoordVCGSOutput = tcoordVCVSOutput[i];').result;\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Dec', ['varying vec2 tcoordVCVSOutput;', 'uniform sampler2D texture1;']).result;\n\n        if (tus && tus.length >= 1) {\n          switch (tNumComp) {\n            case 1:\n              FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Impl', ['  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);', '  ambientColor = ambientColor*tcolor.r;', '  diffuseColor = diffuseColor*tcolor.r;']).result;\n              break;\n\n            case 2:\n              FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Impl', ['  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);', '  ambientColor = ambientColor*tcolor.r;', '  diffuseColor = diffuseColor*tcolor.r;', '  opacity = opacity * tcolor.g;']).result;\n              break;\n\n            default:\n              FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Impl', ['  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);', '  ambientColor = ambientColor*tcolor.rgb;', '  diffuseColor = diffuseColor*tcolor.rgb;', '  opacity = opacity * tcolor.a;']).result;\n          }\n        }\n      } else {\n        VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::TCoord::Dec', 'attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;').result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::TCoord::Dec', ['in vec3 tcoordVCVSOutput[];', 'out vec3 tcoordVCGSOutput;']).result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::TCoord::Impl', 'tcoordVCGSOutput = tcoordVCVSOutput[i];').result;\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Dec', ['varying vec3 tcoordVCVSOutput;', 'uniform samplerCube texture1;']).result;\n\n        switch (tNumComp) {\n          case 1:\n            FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Impl', ['  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);', '  ambientColor = ambientColor*tcolor.r;', '  diffuseColor = diffuseColor*tcolor.r;']).result;\n            break;\n\n          case 2:\n            FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Impl', ['  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);', '  ambientColor = ambientColor*tcolor.r;', '  diffuseColor = diffuseColor*tcolor.r;', '  opacity = opacity * tcolor.g;']).result;\n            break;\n\n          default:\n            FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Impl', ['  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);', '  ambientColor = ambientColor*tcolor.rgb;', '  diffuseColor = diffuseColor*tcolor.rgb;', '  opacity = opacity * tcolor.a;']).result;\n        }\n      }\n\n      shaders.Vertex = VSSource;\n      shaders.Geometry = GSSource;\n      shaders.Fragment = FSSource;\n    }\n  };\n\n  publicAPI.replaceShaderClip = function (shaders, ren, actor) {\n    var VSSource = shaders.Vertex;\n    var FSSource = shaders.Fragment;\n\n    if (model.renderable.getNumberOfClippingPlanes()) {\n      var numClipPlanes = model.renderable.getNumberOfClippingPlanes();\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Clip::Dec', ['uniform int numClipPlanes;', \"uniform vec4 clipPlanes[\".concat(numClipPlanes, \"];\"), \"varying float clipDistancesVSOutput[\".concat(numClipPlanes, \"];\")]).result;\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Clip::Impl', [\"for (int planeNum = 0; planeNum < \".concat(numClipPlanes, \"; planeNum++)\"), '    {', '    if (planeNum >= numClipPlanes)', '        {', '        break;', '        }', '    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);', '    }']).result;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Clip::Dec', ['uniform int numClipPlanes;', \"varying float clipDistancesVSOutput[\".concat(numClipPlanes, \"];\")]).result;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Clip::Impl', [\"for (int planeNum = 0; planeNum < \".concat(numClipPlanes, \"; planeNum++)\"), '    {', '    if (planeNum >= numClipPlanes)', '        {', '        break;', '        }', '    if (clipDistancesVSOutput[planeNum] < 0.0) discard;', '    }']).result;\n    }\n\n    shaders.Vertex = VSSource;\n    shaders.Fragment = FSSource;\n  };\n\n  publicAPI.getCoincidentParameters = function (ren, actor) {\n    // 1. ResolveCoincidentTopology is On and non zero for this primitive\n    // type\n    var cp = null;\n    var prop = actor.getProperty();\n\n    if (model.renderable.getResolveCoincidentTopology() || prop.getEdgeVisibility() && prop.getRepresentation() === Representation.SURFACE) {\n      var primType = model.lastBoundBO.getPrimitiveType();\n\n      if (primType === primTypes.Points || prop.getRepresentation() === Representation.POINTS) {\n        cp = model.renderable.getCoincidentTopologyPointOffsetParameter();\n      } else if (primType === primTypes.Lines || prop.getRepresentation() === Representation.WIREFRAME) {\n        cp = model.renderable.getCoincidentTopologyLineOffsetParameters();\n      } else if (primType === primTypes.Tris || primType === primTypes.TriStrips) {\n        cp = model.renderable.getCoincidentTopologyPolygonOffsetParameters();\n      }\n\n      if (primType === primTypes.TrisEdges || primType === primTypes.TriStripsEdges) {\n        cp = model.renderable.getCoincidentTopologyPolygonOffsetParameters();\n        cp.factor /= 2.0;\n        cp.offset /= 2.0;\n      }\n    } // hardware picking always offset due to saved zbuffer\n    // This gets you above the saved surface depth buffer.\n    // vtkHardwareSelector* selector = ren->GetSelector();\n    // if (selector &&\n    //     selector->GetFieldAssociation() == vtkDataObject::FIELD_ASSOCIATION_POINTS)\n    // {\n    //   offset -= 2.0;\n    //   return;\n    // }\n\n\n    return cp;\n  };\n\n  publicAPI.replaceShaderPicking = function (shaders, ren, actor) {\n    var FSSource = shaders.Fragment;\n    FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Picking::Dec', ['uniform vec3 mapperIndex;', 'uniform int picking;']).result;\n    FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Picking::Impl', '  gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];').result;\n    shaders.Fragment = FSSource;\n  };\n\n  publicAPI.replaceShaderValues = function (shaders, ren, actor) {\n    publicAPI.replaceShaderColor(shaders, ren, actor);\n    publicAPI.replaceShaderNormal(shaders, ren, actor);\n    publicAPI.replaceShaderLight(shaders, ren, actor);\n    publicAPI.replaceShaderTCoord(shaders, ren, actor);\n    publicAPI.replaceShaderPicking(shaders, ren, actor);\n    publicAPI.replaceShaderClip(shaders, ren, actor);\n    publicAPI.replaceShaderCoincidentOffset(shaders, ren, actor);\n    publicAPI.replaceShaderPositionVC(shaders, ren, actor);\n\n    if (model.haveSeenDepthRequest) {\n      var FSSource = shaders.Fragment;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::ZBuffer::Dec', 'uniform int depthRequest;').result;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::ZBuffer::Impl', ['if (depthRequest == 1) {', 'float iz = floor(gl_FragCoord.z*65535.0 + 0.1);', 'float rf = floor(iz/256.0)/255.0;', 'float gf = mod(iz,256.0)/255.0;', 'gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }']).result;\n      shaders.Fragment = FSSource;\n    }\n  };\n\n  publicAPI.getNeedToRebuildShaders = function (cellBO, ren, actor) {\n    var lightComplexity = 0;\n    var numberOfLights = 0;\n    var primType = cellBO.getPrimitiveType();\n    var poly = model.currentInput; // different algo from C++ as of 5/2019\n\n    var needLighting = false;\n    var pointNormals = poly.getPointData().getNormals();\n    var cellNormals = poly.getCellData().getNormals();\n    var flat = actor.getProperty().getInterpolation() === Shading.FLAT;\n    var representation = actor.getProperty().getRepresentation();\n    var mode = cellBO.getOpenGLMode(representation, primType); // 1) all surfaces need lighting\n\n    if (mode === model.context.TRIANGLES) {\n      needLighting = true; // 2) all cell normals without point normals need lighting\n    } else if (cellNormals && !pointNormals) {\n      needLighting = true; // 3) Phong + pointNormals need lighting\n    } else if (!flat && pointNormals) {\n      needLighting = true; // 4) Phong Lines need lighting\n    } else if (!flat && mode === model.context.LINES) {\n      needLighting = true;\n    } // 5) everything else is unlit\n    // do we need lighting?\n\n\n    if (actor.getProperty().getLighting() && needLighting) {\n      // consider the lighting complexity to determine which case applies\n      // simple headlight, Light Kit, the whole feature set of VTK\n      lightComplexity = 0;\n      var lights = ren.getLightsByReference();\n\n      for (var index = 0; index < lights.length; ++index) {\n        var light = lights[index];\n        var status = light.getSwitch();\n\n        if (status > 0) {\n          numberOfLights++;\n\n          if (lightComplexity === 0) {\n            lightComplexity = 1;\n          }\n        }\n\n        if (lightComplexity === 1 && (numberOfLights > 1 || light.getIntensity() !== 1.0 || !light.lightTypeIsHeadLight())) {\n          lightComplexity = 2;\n        }\n\n        if (lightComplexity < 3 && light.getPositional()) {\n          lightComplexity = 3;\n        }\n      }\n    }\n\n    var needRebuild = false;\n    var lastLightComplexity = model.lastBoundBO.getReferenceByName('lastLightComplexity');\n    var lastLightCount = model.lastBoundBO.getReferenceByName('lastLightCount');\n\n    if (lastLightComplexity !== lightComplexity || lastLightCount !== numberOfLights) {\n      model.lastBoundBO.set({\n        lastLightComplexity: lightComplexity\n      }, true);\n      model.lastBoundBO.set({\n        lastLightCount: numberOfLights\n      }, true);\n      needRebuild = true;\n    } // has the render pass shader replacement changed? Two options\n\n\n    if (!model.currentRenderPass && model.lastRenderPassShaderReplacement) {\n      needRebuild = true;\n      model.lastRenderPassShaderReplacement = null;\n    }\n\n    if (model.currentRenderPass && model.currentRenderPass.getShaderReplacement() !== model.lastRenderPassShaderReplacement) {\n      model.lastRenderPassShaderReplacement = model.currentRenderPass.getShaderReplacement();\n      needRebuild = true;\n    } // has something changed that would require us to recreate the shader?\n    // candidates are\n    // property modified (representation interpolation and lighting)\n    // input modified\n    // light complexity changed\n\n\n    if (model.lastHaveSeenDepthRequest !== model.haveSeenDepthRequest || cellBO.getShaderSourceTime().getMTime() < model.renderable.getMTime() || cellBO.getShaderSourceTime().getMTime() < model.currentInput.getMTime() || needRebuild) {\n      model.lastHaveSeenDepthRequest = model.haveSeenDepthRequest;\n      return true;\n    }\n\n    return false;\n  };\n\n  publicAPI.invokeShaderCallbacks = function (cellBO, ren, actor) {\n    var listCallbacks = model.renderable.getViewSpecificProperties().ShadersCallbacks;\n\n    if (listCallbacks) {\n      listCallbacks.forEach(function (object) {\n        object.callback(object.userData, cellBO, ren, actor);\n      });\n    }\n  };\n\n  publicAPI.setMapperShaderParameters = function (cellBO, ren, actor) {\n    // Now to update the VAO too, if necessary.\n    if (cellBO.getProgram().isUniformUsed('PrimitiveIDOffset')) {\n      cellBO.getProgram().setUniformi('PrimitiveIDOffset', model.primitiveIDOffset);\n    }\n\n    if (cellBO.getCABO().getElementCount() && (model.VBOBuildTime.getMTime() > cellBO.getAttributeUpdateTime().getMTime() || cellBO.getShaderSourceTime().getMTime() > cellBO.getAttributeUpdateTime().getMTime())) {\n      var lastLightComplexity = model.lastBoundBO.getReferenceByName('lastLightComplexity');\n\n      if (cellBO.getProgram().isAttributeUsed('vertexMC')) {\n        if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO(), 'vertexMC', cellBO.getCABO().getVertexOffset(), cellBO.getCABO().getStride(), model.context.FLOAT, 3, false)) {\n          vtkErrorMacro('Error setting vertexMC in shader VAO.');\n        }\n      }\n\n      if (cellBO.getProgram().isAttributeUsed('normalMC') && cellBO.getCABO().getNormalOffset() && lastLightComplexity > 0) {\n        if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO(), 'normalMC', cellBO.getCABO().getNormalOffset(), cellBO.getCABO().getStride(), model.context.FLOAT, 3, false)) {\n          vtkErrorMacro('Error setting normalMC in shader VAO.');\n        }\n      } else {\n        cellBO.getVAO().removeAttributeArray('normalMC');\n      }\n\n      model.renderable.getCustomShaderAttributes().forEach(function (attrName, idx) {\n        if (cellBO.getProgram().isAttributeUsed(\"\".concat(attrName, \"MC\"))) {\n          if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO(), \"\".concat(attrName, \"MC\"), cellBO.getCABO().getCustomData()[idx].offset, cellBO.getCABO().getStride(), model.context.FLOAT, cellBO.getCABO().getCustomData()[idx].components, false)) {\n            vtkErrorMacro(\"Error setting \".concat(attrName, \"MC in shader VAO.\"));\n          }\n        }\n      });\n\n      if (cellBO.getProgram().isAttributeUsed('tcoordMC') && cellBO.getCABO().getTCoordOffset()) {\n        if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO(), 'tcoordMC', cellBO.getCABO().getTCoordOffset(), cellBO.getCABO().getStride(), model.context.FLOAT, cellBO.getCABO().getTCoordComponents(), false)) {\n          vtkErrorMacro('Error setting tcoordMC in shader VAO.');\n        }\n      } else {\n        cellBO.getVAO().removeAttributeArray('tcoordMC');\n      }\n\n      if (cellBO.getProgram().isAttributeUsed('scalarColor') && cellBO.getCABO().getColorComponents()) {\n        if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO().getColorBO(), 'scalarColor', cellBO.getCABO().getColorOffset(), cellBO.getCABO().getColorBOStride(), model.context.UNSIGNED_BYTE, 4, true)) {\n          vtkErrorMacro('Error setting scalarColor in shader VAO.');\n        }\n      } else {\n        cellBO.getVAO().removeAttributeArray('scalarColor');\n      }\n\n      cellBO.getAttributeUpdateTime().modified();\n    }\n\n    if (model.renderable.getNumberOfClippingPlanes()) {\n      // add all the clipping planes\n      var numClipPlanes = model.renderable.getNumberOfClippingPlanes();\n      var planeEquations = [];\n      var shiftScaleEnabled = cellBO.getCABO().getCoordShiftAndScaleEnabled();\n      var inverseShiftScaleMatrix = shiftScaleEnabled ? cellBO.getCABO().getInverseShiftAndScaleMatrix() : null;\n      var mat = inverseShiftScaleMatrix ? gl_matrix__WEBPACK_IMPORTED_MODULE_13__.copy(model.tmpMat4, actor.getMatrix()) : actor.getMatrix();\n\n      if (inverseShiftScaleMatrix) {\n        gl_matrix__WEBPACK_IMPORTED_MODULE_13__.transpose(mat, mat);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_13__.multiply(mat, mat, inverseShiftScaleMatrix);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_13__.transpose(mat, mat);\n      }\n\n      for (var i = 0; i < numClipPlanes; i++) {\n        var planeEquation = [];\n        model.renderable.getClippingPlaneInDataCoords(mat, i, planeEquation);\n\n        for (var j = 0; j < 4; j++) {\n          planeEquations.push(planeEquation[j]);\n        }\n      }\n\n      cellBO.getProgram().setUniformi('numClipPlanes', numClipPlanes);\n      cellBO.getProgram().setUniform4fv('clipPlanes', planeEquations);\n    }\n\n    if (model.internalColorTexture && cellBO.getProgram().isUniformUsed('texture1')) {\n      cellBO.getProgram().setUniformi('texture1', model.internalColorTexture.getTextureUnit());\n    }\n\n    var tus = model.openGLActor.getActiveTextures();\n\n    if (tus) {\n      for (var index = 0; index < tus.length; ++index) {\n        var tex = tus[index];\n        var texUnit = tex.getTextureUnit();\n        var tname = \"texture\".concat(texUnit + 1);\n\n        if (cellBO.getProgram().isUniformUsed(tname)) {\n          cellBO.getProgram().setUniformi(tname, texUnit);\n        }\n      }\n    } // handle depth requests\n\n\n    if (model.haveSeenDepthRequest) {\n      cellBO.getProgram().setUniformi('depthRequest', model.renderDepth ? 1 : 0);\n    } // handle coincident\n\n\n    if (cellBO.getProgram().isUniformUsed('coffset')) {\n      var cp = publicAPI.getCoincidentParameters(ren, actor);\n      cellBO.getProgram().setUniformf('coffset', cp.offset); // cfactor isn't always used when coffset is.\n\n      if (cellBO.getProgram().isUniformUsed('cfactor')) {\n        cellBO.getProgram().setUniformf('cfactor', cp.factor);\n      }\n    } // handle wide lines\n\n\n    cellBO.setMapperShaderParameters(ren, actor, model.openGLRenderer.getTiledSizeAndOrigin());\n    var selector = model.openGLRenderer.getSelector();\n    cellBO.getProgram().setUniform3fArray('mapperIndex', selector ? selector.getPropColorValue() : [0.0, 0.0, 0.0]);\n    cellBO.getProgram().setUniformi('picking', selector ? selector.getCurrentPass() + 1 : 0);\n  };\n\n  publicAPI.setLightingShaderParameters = function (cellBO, ren, actor) {\n    // for unlit and headlight there are no lighting parameters\n    var lastLightComplexity = model.lastBoundBO.getReferenceByName('lastLightComplexity');\n\n    if (lastLightComplexity < 2) {\n      return;\n    }\n\n    var program = cellBO.getProgram(); // bind some light settings\n\n    var numberOfLights = 0;\n    var lights = ren.getLightsByReference();\n\n    for (var index = 0; index < lights.length; ++index) {\n      var light = lights[index];\n      var status = light.getSwitch();\n\n      if (status > 0.0) {\n        var dColor = light.getColorByReference();\n        var intensity = light.getIntensity();\n        model.lightColor[0] = dColor[0] * intensity;\n        model.lightColor[1] = dColor[1] * intensity;\n        model.lightColor[2] = dColor[2] * intensity; // get required info from light\n\n        var ld = light.getDirection();\n        var transform = ren.getActiveCamera().getViewMatrix();\n\n        var newLightDirection = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(ld);\n\n        if (light.lightTypeIsSceneLight()) {\n          newLightDirection[0] = transform[0] * ld[0] + transform[1] * ld[1] + transform[2] * ld[2];\n          newLightDirection[1] = transform[4] * ld[0] + transform[5] * ld[1] + transform[6] * ld[2];\n          newLightDirection[2] = transform[8] * ld[0] + transform[9] * ld[1] + transform[10] * ld[2];\n          (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.l)(newLightDirection);\n        }\n\n        model.lightDirection[0] = newLightDirection[0];\n        model.lightDirection[1] = newLightDirection[1];\n        model.lightDirection[2] = newLightDirection[2];\n        model.lightHalfAngle[0] = -model.lightDirection[0];\n        model.lightHalfAngle[1] = -model.lightDirection[1];\n        model.lightHalfAngle[2] = -model.lightDirection[2] + 1.0;\n        (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.l)(model.lightDirection);\n        program.setUniform3fArray(\"lightColor\".concat(numberOfLights), model.lightColor);\n        program.setUniform3fArray(\"lightDirectionVC\".concat(numberOfLights), model.lightDirection);\n        program.setUniform3fArray(\"lightHalfAngleVC\".concat(numberOfLights), model.lightHalfAngle);\n        numberOfLights++;\n      }\n    } // we are done unless we have positional lights\n\n\n    if (lastLightComplexity < 3) {\n      return;\n    } // for lightkit case there are some parameters to set\n\n\n    var cam = ren.getActiveCamera();\n    var viewTF = cam.getViewMatrix();\n    gl_matrix__WEBPACK_IMPORTED_MODULE_13__.transpose(viewTF, viewTF);\n    numberOfLights = 0;\n\n    for (var _index = 0; _index < lights.length; ++_index) {\n      var _light = lights[_index];\n\n      var _status = _light.getSwitch();\n\n      if (_status > 0.0) {\n        var lp = _light.getTransformedPosition();\n\n        var np = new Float64Array(3);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_14__.transformMat4(np, lp, viewTF);\n        program.setUniform3fArray(\"lightAttenuation\".concat(numberOfLights), _light.getAttenuationValuesByReference());\n        program.setUniformi(\"lightPositional\".concat(numberOfLights), _light.getPositional());\n        program.setUniformf(\"lightExponent\".concat(numberOfLights), _light.getExponent());\n        program.setUniformf(\"lightConeAngle\".concat(numberOfLights), _light.getConeAngle());\n        program.setUniform3fArray(\"lightPositionVC\".concat(numberOfLights), [np[0], np[1], np[2]]);\n        numberOfLights++;\n      }\n    }\n  };\n\n  function safeMatrixMultiply(matrixArray, matrixType, tmpMat) {\n    matrixType.identity(tmpMat);\n    return matrixArray.reduce(function (res, matrix, index) {\n      if (index === 0) {\n        return matrix ? matrixType.copy(res, matrix) : matrixType.identity(res);\n      }\n\n      return matrix ? matrixType.multiply(res, res, matrix) : res;\n    }, tmpMat);\n  }\n\n  publicAPI.setCameraShaderParameters = function (cellBO, ren, actor) {\n    var program = cellBO.getProgram(); // [WMVP]C == {world, model, view, projection} coordinates\n    // E.g., WCPC == world to projection coordinate transformation\n\n    var keyMats = model.openGLCamera.getKeyMatrices(ren);\n    var cam = ren.getActiveCamera();\n    var camm = model.openGLCamera.getKeyMatrixTime().getMTime();\n    var progm = program.getLastCameraMTime();\n    var shiftScaleEnabled = cellBO.getCABO().getCoordShiftAndScaleEnabled();\n    var inverseShiftScaleMatrix = shiftScaleEnabled ? cellBO.getCABO().getInverseShiftAndScaleMatrix() : null;\n    var actorIsIdentity = actor.getIsIdentity();\n    var actMats = actorIsIdentity ? {\n      mcwc: null,\n      normalMatrix: null\n    } : model.openGLActor.getKeyMatrices();\n    program.setUniformMatrix('MCPCMatrix', safeMatrixMultiply([keyMats.wcpc, actMats.mcwc, inverseShiftScaleMatrix], gl_matrix__WEBPACK_IMPORTED_MODULE_13__, model.tmpMat4));\n\n    if (program.isUniformUsed('MCVCMatrix')) {\n      program.setUniformMatrix('MCVCMatrix', safeMatrixMultiply([keyMats.wcvc, actMats.mcwc, inverseShiftScaleMatrix], gl_matrix__WEBPACK_IMPORTED_MODULE_13__, model.tmpMat4));\n    }\n\n    if (program.isUniformUsed('normalMatrix')) {\n      program.setUniformMatrix3x3('normalMatrix', safeMatrixMultiply([keyMats.normalMatrix, actMats.normalMatrix], gl_matrix__WEBPACK_IMPORTED_MODULE_15__, model.tmpMat3));\n    }\n\n    if (progm !== camm) {\n      if (program.isUniformUsed('cameraParallel')) {\n        program.setUniformi('cameraParallel', cam.getParallelProjection());\n      }\n\n      program.setLastCameraMTime(camm);\n    }\n\n    if (!actorIsIdentity) {\n      // reset the cam mtime as actor modified the shader values\n      program.setLastCameraMTime(0);\n    }\n  };\n\n  publicAPI.setPropertyShaderParameters = function (cellBO, ren, actor) {\n    var program = cellBO.getProgram();\n    var ppty = actor.getProperty();\n    var opacity = ppty.getOpacity();\n    var aColor = model.drawingEdges ? ppty.getEdgeColorByReference() : ppty.getAmbientColorByReference();\n    var dColor = model.drawingEdges ? ppty.getEdgeColorByReference() : ppty.getDiffuseColorByReference();\n    var aIntensity = model.drawingEdges ? 1.0 : ppty.getAmbient();\n    var dIntensity = model.drawingEdges ? 0.0 : ppty.getDiffuse();\n    var sIntensity = model.drawingEdges ? 0.0 : ppty.getSpecular();\n    var specularPower = ppty.getSpecularPower();\n    program.setUniformf('opacityUniform', opacity);\n    program.setUniform3fArray('ambientColorUniform', aColor);\n    program.setUniform3fArray('diffuseColorUniform', dColor);\n    program.setUniformf('ambient', aIntensity);\n    program.setUniformf('diffuse', dIntensity); // we are done unless we have lighting\n\n    var lastLightComplexity = model.lastBoundBO.getReferenceByName('lastLightComplexity');\n\n    if (lastLightComplexity < 1) {\n      return;\n    }\n\n    var sColor = ppty.getSpecularColorByReference();\n    program.setUniform3fArray('specularColorUniform', sColor);\n    program.setUniformf('specularPowerUniform', specularPower);\n    program.setUniformf('specular', sIntensity); // now set the backface properties if we have them\n\n    if (program.isUniformUsed('ambientIntensityBF')) {\n      ppty = actor.getBackfaceProperty();\n      opacity = ppty.getOpacity();\n      aColor = ppty.getAmbientColor();\n      aIntensity = ppty.getAmbient();\n      dColor = ppty.getDiffuseColor();\n      dIntensity = ppty.getDiffuse();\n      sColor = ppty.getSpecularColor();\n      sIntensity = ppty.getSpecular();\n      program.setUniformf('ambientIntensityBF', aIntensity);\n      program.setUniformf('diffuseIntensityBF', dIntensity);\n      program.setUniformf('opacityUniformBF', opacity);\n      program.setUniform3fArray('ambientColorUniformBF', aColor);\n      program.setUniform3fArray('diffuseColorUniformBF', dColor); // we are done unless we have lighting\n\n      if (lastLightComplexity < 1) {\n        return;\n      }\n\n      program.setUniformf('specularIntensityBF', sIntensity);\n      program.setUniform3fArray('specularColorUniformBF', sColor);\n      program.setUniformf('specularPowerUniformBF', specularPower);\n    }\n  };\n\n  publicAPI.renderPieceStart = function (ren, actor) {\n    model.primitiveIDOffset = 0;\n\n    if (model.openGLRenderer.getSelector()) {\n      switch (model.openGLRenderer.getSelector().getCurrentPass()) {\n        default:\n          model.openGLRenderer.getSelector().renderProp(actor);\n      }\n    } // make sure the BOs are up to date\n\n\n    publicAPI.updateBufferObjects(ren, actor); // If we are coloring by texture, then load the texture map.\n    // Use Map as indicator, because texture hangs around.\n\n    if (model.renderable.getColorTextureMap()) {\n      model.internalColorTexture.activate();\n    } // Bind the OpenGL, this is shared between the different primitive/cell types.\n\n\n    model.lastBoundBO = null;\n  };\n\n  publicAPI.renderPieceDraw = function (ren, actor) {\n    var representation = actor.getProperty().getRepresentation();\n    var drawSurfaceWithEdges = actor.getProperty().getEdgeVisibility() && representation === Representation.SURFACE; // for every primitive type\n\n    for (var i = primTypes.Start; i < primTypes.End; i++) {\n      // if there are entries\n      var cabo = model.primitives[i].getCABO();\n\n      if (cabo.getElementCount()) {\n        // are we drawing edges\n        model.drawingEdges = drawSurfaceWithEdges && (i === primTypes.TrisEdges || i === primTypes.TriStripsEdges);\n\n        if (!model.drawingEdges || !model.renderDepth) {\n          model.lastBoundBO = model.primitives[i];\n          model.primitiveIDOffset += model.primitives[i].drawArrays(ren, actor, representation, publicAPI);\n        }\n      }\n    }\n  };\n\n  publicAPI.renderPieceFinish = function (ren, actor) {\n    if (model.LastBoundBO) {\n      model.LastBoundBO.getVAO().release();\n    }\n\n    if (model.renderable.getColorTextureMap()) {\n      model.internalColorTexture.deactivate();\n    }\n  };\n\n  publicAPI.renderPiece = function (ren, actor) {\n    // Make sure that we have been properly initialized.\n    // if (ren.getRenderWindow().checkAbortStatus()) {\n    //   return;\n    // }\n    publicAPI.invokeEvent(StartEvent);\n\n    if (!model.renderable.getStatic()) {\n      model.renderable.update();\n    }\n\n    model.currentInput = model.renderable.getInputData();\n    publicAPI.invokeEvent(EndEvent);\n\n    if (!model.currentInput) {\n      vtkErrorMacro('No input!');\n      return;\n    } // if there are no points then we are done\n\n\n    if (!model.currentInput.getPoints || !model.currentInput.getPoints().getNumberOfValues()) {\n      return;\n    } // apply faceCulling\n\n\n    var gl = model.context;\n    var backfaceCulling = actor.getProperty().getBackfaceCulling();\n    var frontfaceCulling = actor.getProperty().getFrontfaceCulling();\n\n    if (!backfaceCulling && !frontfaceCulling) {\n      model._openGLRenderWindow.disableCullFace();\n    } else if (frontfaceCulling) {\n      model._openGLRenderWindow.enableCullFace();\n\n      gl.cullFace(gl.FRONT);\n    } else {\n      model._openGLRenderWindow.enableCullFace();\n\n      gl.cullFace(gl.BACK);\n    }\n\n    publicAPI.renderPieceStart(ren, actor);\n    publicAPI.renderPieceDraw(ren, actor);\n    publicAPI.renderPieceFinish(ren, actor);\n  };\n\n  publicAPI.computeBounds = function (ren, actor) {\n    if (!publicAPI.getInput()) {\n      (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_4__.u)(model.bounds);\n      return;\n    }\n\n    model.bounds = publicAPI.getInput().getBounds();\n  };\n\n  publicAPI.updateBufferObjects = function (ren, actor) {\n    // Rebuild buffers if needed\n    if (publicAPI.getNeedToRebuildBufferObjects(ren, actor)) {\n      publicAPI.buildBufferObjects(ren, actor);\n    }\n  };\n\n  publicAPI.getNeedToRebuildBufferObjects = function (ren, actor) {\n    // first do a coarse check\n    // Note that the actor's mtime includes it's properties mtime\n    var vmtime = model.VBOBuildTime.getMTime();\n\n    if (vmtime < publicAPI.getMTime() || vmtime < model.renderable.getMTime() || vmtime < actor.getMTime() || vmtime < model.currentInput.getMTime()) {\n      return true;\n    }\n\n    return false;\n  };\n\n  publicAPI.buildBufferObjects = function (ren, actor) {\n    var poly = model.currentInput;\n\n    if (poly === null) {\n      return;\n    }\n\n    model.renderable.mapScalars(poly, 1.0);\n    var c = model.renderable.getColorMapColors();\n    model.haveCellScalars = false;\n    var scalarMode = model.renderable.getScalarMode();\n\n    if (model.renderable.getScalarVisibility()) {\n      // We must figure out how the scalars should be mapped to the polydata.\n      if ((scalarMode === ScalarMode.USE_CELL_DATA || scalarMode === ScalarMode.USE_CELL_FIELD_DATA || scalarMode === ScalarMode.USE_FIELD_DATA || !poly.getPointData().getScalars()) && scalarMode !== ScalarMode.USE_POINT_FIELD_DATA && c) {\n        model.haveCellScalars = true;\n      }\n    } // Do we have normals?\n\n\n    var n = actor.getProperty().getInterpolation() !== Shading.FLAT ? poly.getPointData().getNormals() : null;\n\n    if (n === null && poly.getCellData().getNormals()) {\n      model.haveCellNormals = true;\n      n = poly.getCellData().getNormals();\n    } // rebuild the VBO if the data has changed we create a string for the VBO what\n    // can change the VBO? points normals tcoords colors so what can change those?\n    // the input data is clearly one as it can change all four items tcoords may\n    // haveTextures or not colors may change based on quite a few mapping\n    // parameters in the mapper\n\n\n    var representation = actor.getProperty().getRepresentation();\n    var tcoords = poly.getPointData().getTCoords();\n\n    if (!model.openGLActor.getActiveTextures()) {\n      tcoords = null;\n    } // handle color mapping via texture\n\n\n    if (model.renderable.getColorCoordinates()) {\n      tcoords = model.renderable.getColorCoordinates();\n\n      if (!model.internalColorTexture) {\n        model.internalColorTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance();\n      }\n\n      var tex = model.internalColorTexture; // the following 4 lines allow for NPOT textures\n\n      tex.setMinificationFilter(Filter.NEAREST);\n      tex.setMagnificationFilter(Filter.NEAREST);\n      tex.setWrapS(Wrap.CLAMP_TO_EDGE);\n      tex.setWrapT(Wrap.CLAMP_TO_EDGE);\n      tex.setOpenGLRenderWindow(model._openGLRenderWindow);\n      var input = model.renderable.getColorTextureMap();\n      var ext = input.getExtent();\n      var inScalars = input.getPointData().getScalars();\n      tex.create2DFromRaw(ext[1] - ext[0] + 1, ext[3] - ext[2] + 1, inScalars.getNumberOfComponents(), inScalars.getDataType(), inScalars.getData());\n      tex.activate();\n      tex.sendParameters();\n      tex.deactivate();\n    }\n\n    var toString = \"\".concat(poly.getMTime(), \"A\").concat(representation, \"B\").concat(poly.getMTime()) + \"C\".concat(n ? n.getMTime() : 1, \"D\").concat(c ? c.getMTime() : 1) + \"E\".concat(actor.getProperty().getEdgeVisibility()) + \"F\".concat(tcoords ? tcoords.getMTime() : 1);\n\n    if (model.VBOBuildString !== toString) {\n      // Build the VBOs\n      var points = poly.getPoints();\n      var options = {\n        points: points,\n        normals: n,\n        tcoords: tcoords,\n        colors: c,\n        cellOffset: 0,\n        haveCellScalars: model.haveCellScalars,\n        haveCellNormals: model.haveCellNormals,\n        customAttributes: model.renderable.getCustomShaderAttributes().map(function (arrayName) {\n          return poly.getPointData().getArrayByName(arrayName);\n        })\n      };\n      options.cellOffset += model.primitives[primTypes.Points].getCABO().createVBO(poly.getVerts(), 'verts', representation, options);\n      options.cellOffset += model.primitives[primTypes.Lines].getCABO().createVBO(poly.getLines(), 'lines', representation, options);\n      options.cellOffset += model.primitives[primTypes.Tris].getCABO().createVBO(poly.getPolys(), 'polys', representation, options);\n      options.cellOffset += model.primitives[primTypes.TriStrips].getCABO().createVBO(poly.getStrips(), 'strips', representation, options);\n      var drawSurfaceWithEdges = actor.getProperty().getEdgeVisibility() && representation === Representation.SURFACE; // if we have edge visibility build the edge VBOs\n\n      if (drawSurfaceWithEdges) {\n        model.primitives[primTypes.TrisEdges].getCABO().createVBO(poly.getPolys(), 'polys', Representation.WIREFRAME, {\n          points: points,\n          normals: n,\n          tcoords: null,\n          colors: null,\n          cellOffset: 0,\n          haveCellScalars: false,\n          haveCellNormals: false\n        });\n        model.primitives[primTypes.TriStripsEdges].getCABO().createVBO(poly.getStrips(), 'strips', Representation.WIREFRAME, {\n          points: points,\n          normals: n,\n          tcoords: null,\n          colors: null,\n          cellOffset: 0,\n          haveCellScalars: false,\n          haveCellNormals: false\n        });\n      } else {\n        // otherwise free them\n        model.primitives[primTypes.TrisEdges].releaseGraphicsResources(model._openGLRenderWindow);\n        model.primitives[primTypes.TriStripsEdges].releaseGraphicsResources(model._openGLRenderWindow);\n      }\n\n      model.VBOBuildTime.modified();\n      model.VBOBuildString = toString;\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  context: null,\n  VBOBuildTime: 0,\n  VBOBuildString: null,\n  primitives: null,\n  primTypes: null,\n  shaderRebuildString: null,\n  tmpMat4: null,\n  ambientColor: [],\n  // used internally\n  diffuseColor: [],\n  // used internally\n  specularColor: [],\n  // used internally\n  lightColor: [],\n  // used internally\n  lightHalfAngle: [],\n  // used internally\n  lightDirection: [],\n  // used internally\n  lastHaveSeenDepthRequest: false,\n  haveSeenDepthRequest: false\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].extend(publicAPI, model, initialValues);\n  _ReplacementShaderMapper_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"].implementReplaceShaderCoincidentOffset(publicAPI, model, initialValues);\n  model.primitives = [];\n  model.primTypes = primTypes;\n  model.tmpMat3 = gl_matrix__WEBPACK_IMPORTED_MODULE_15__.identity(new Float64Array(9));\n  model.tmpMat4 = gl_matrix__WEBPACK_IMPORTED_MODULE_13__.identity(new Float64Array(16));\n\n  for (var i = primTypes.Start; i < primTypes.End; i++) {\n    model.primitives[i] = _Helper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n    model.primitives[i].setPrimitiveType(i);\n    model.primitives[i].set({\n      lastLightComplexity: 0,\n      lastLightCount: 0,\n      lastSelectionPass: false\n    }, true);\n  } // Build VTK API\n\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_1__.setGet)(publicAPI, model, ['context']);\n  model.VBOBuildTime = {};\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_1__.obj)(model.VBOBuildTime, {\n    mtime: 0\n  }); // Object methods\n\n  vtkOpenGLPolyDataMapper(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_1__.newInstance)(extend, 'vtkOpenGLPolyDataMapper'); // ----------------------------------------------------------------------------\n\nvar vtkOpenGLPolyDataMapper$1 = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_12__.registerOverride)('vtkMapper', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/PolyDataMapper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/PolyDataMapper2D.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/PolyDataMapper2D.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkPolyDataMapper2D),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Helper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Helper.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Helper.js\");\n/* harmony import */ var _Core_Mapper2D_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Mapper2D.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper2D.js\");\n/* harmony import */ var _Common_Core_Points_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Common/Core/Points.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Points.js\");\n/* harmony import */ var _glsl_vtkPolyData2DFS_glsl_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./glsl/vtkPolyData2DFS.glsl.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyData2DFS.glsl.js\");\n/* harmony import */ var _glsl_vtkPolyData2DVS_glsl_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./glsl/vtkPolyData2DVS.glsl.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyData2DVS.glsl.js\");\n/* harmony import */ var _ReplacementShaderMapper_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ReplacementShaderMapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ReplacementShaderMapper.js\");\n/* harmony import */ var _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ShaderProgram.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderProgram.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Core_Property2D_Constants_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Core/Property2D/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property2D/Constants.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// import { mat3, mat4, vec3 } from 'gl-matrix';\nvar primTypes = _Helper_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].primTypes;\nvar ScalarMode = _Core_Mapper2D_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ScalarMode;\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro;\nvar StartEvent = {\n  type: 'StartEvent'\n};\nvar EndEvent = {\n  type: 'EndEvent'\n}; // ----------------------------------------------------------------------------\n// vtkOpenGLPolyDataMapper2D methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLPolyDataMapper2D(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLPolyDataMapper2D');\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.openGLActor2D = publicAPI.getFirstAncestorOfType('vtkOpenGLActor2D');\n      model.openGLRenderer = model.openGLActor2D.getFirstAncestorOfType('vtkOpenGLRenderer');\n      model._openGLRenderWindow = model.openGLRenderer.getParent();\n      model.openGLCamera = model.openGLRenderer.getViewNodeFor(model.openGLRenderer.getRenderable().getActiveCamera());\n    }\n  };\n\n  publicAPI.overlayPass = function (prepass) {\n    if (prepass) {\n      publicAPI.render();\n    }\n  };\n\n  publicAPI.getShaderTemplate = function (shaders, ren, actor) {\n    var openGLSpecProp = model.renderable.getViewSpecificProperties().OpenGL;\n    var vertexShaderCode = _glsl_vtkPolyData2DVS_glsl_js__WEBPACK_IMPORTED_MODULE_5__.v;\n\n    if (openGLSpecProp) {\n      var vertexSpecProp = openGLSpecProp.VertexShaderCode;\n\n      if (vertexSpecProp !== undefined && vertexSpecProp !== '') {\n        vertexShaderCode = vertexSpecProp;\n      }\n    }\n\n    shaders.Vertex = vertexShaderCode;\n    var fragmentShaderCode = _glsl_vtkPolyData2DFS_glsl_js__WEBPACK_IMPORTED_MODULE_4__.v;\n\n    if (openGLSpecProp) {\n      var fragmentSpecProp = openGLSpecProp.FragmentShaderCode;\n\n      if (fragmentSpecProp !== undefined && fragmentSpecProp !== '') {\n        fragmentShaderCode = fragmentSpecProp;\n      }\n    }\n\n    shaders.Fragment = fragmentShaderCode;\n    var geometryShaderCode = '';\n\n    if (openGLSpecProp) {\n      var geometrySpecProp = openGLSpecProp.GeometryShaderCode;\n\n      if (geometrySpecProp !== undefined) {\n        geometryShaderCode = geometrySpecProp;\n      }\n    }\n\n    shaders.Geometry = geometryShaderCode;\n  };\n\n  publicAPI.render = function () {\n    var ctx = model._openGLRenderWindow.getContext();\n\n    if (model.context !== ctx) {\n      model.context = ctx;\n\n      for (var i = primTypes.Start; i < primTypes.End; i++) {\n        model.primitives[i].setOpenGLRenderWindow(model._openGLRenderWindow);\n      }\n    }\n\n    var actor = model.openGLActor2D.getRenderable();\n    var ren = model.openGLRenderer.getRenderable();\n    publicAPI.renderPiece(ren, actor);\n  };\n\n  publicAPI.renderPiece = function (ren, actor) {\n    publicAPI.invokeEvent(StartEvent);\n\n    if (!model.renderable.getStatic()) {\n      model.renderable.update();\n    }\n\n    model.currentInput = model.renderable.getInputData();\n    publicAPI.invokeEvent(EndEvent);\n\n    if (!model.currentInput) {\n      vtkErrorMacro('No input!');\n      return;\n    } // if there are no points then we are done\n\n\n    if (!model.currentInput.getPoints || !model.currentInput.getPoints().getNumberOfValues()) {\n      return;\n    }\n\n    publicAPI.renderPieceStart(ren, actor);\n    publicAPI.renderPieceDraw(ren, actor);\n    publicAPI.renderPieceFinish(ren, actor);\n  };\n\n  publicAPI.renderPieceStart = function (ren, actor) {\n    model.primitiveIDOffset = 0;\n\n    if (model.openGLRenderer.getSelector()) {\n      switch (model.openGLRenderer.getSelector().getCurrentPass()) {\n        default:\n          model.openGLRenderer.getSelector().renderProp(actor);\n      }\n    } // make sure the BOs are up to date\n\n\n    publicAPI.updateBufferObjects(ren, actor); // Bind the OpenGL, this is shared between the different primitive/cell types.\n\n    model.lastBoundBO = null;\n  };\n\n  publicAPI.getNeedToRebuildShaders = function (cellBO, ren, actor) {\n    // has something changed that would require us to recreate the shader?\n    // candidates are\n    // property modified (representation interpolation and lighting)\n    // input modified\n    // light complexity changed\n    if (cellBO.getShaderSourceTime().getMTime() < model.renderable.getMTime() || cellBO.getShaderSourceTime().getMTime() < model.currentInput.getMTime()) {\n      return true;\n    }\n\n    return false;\n  };\n\n  publicAPI.updateBufferObjects = function (ren, actor) {\n    // Rebuild buffers if needed\n    if (publicAPI.getNeedToRebuildBufferObjects(ren, actor)) {\n      publicAPI.buildBufferObjects(ren, actor);\n    }\n  };\n\n  publicAPI.getNeedToRebuildBufferObjects = function (ren, actor) {\n    // first do a coarse check\n    // Note that the actor's mtime includes it's properties mtime\n    var vmtime = model.VBOBuildTime.getMTime();\n\n    if (vmtime < publicAPI.getMTime() || vmtime < model.renderable.getMTime() || vmtime < actor.getMTime() || vmtime < model.currentInput.getMTime() || model.renderable.getTransformCoordinate() && vmtime < ren.getMTime()) {\n      return true;\n    }\n\n    return false;\n  };\n\n  publicAPI.buildBufferObjects = function (ren, actor) {\n    var poly = model.currentInput;\n\n    if (poly === null) {\n      return;\n    }\n\n    model.renderable.mapScalars(poly, actor.getProperty().getOpacity());\n    var c = model.renderable.getColorMapColors();\n    model.haveCellScalars = false;\n    var scalarMode = model.renderable.getScalarMode();\n\n    if (model.renderable.getScalarVisibility()) {\n      // We must figure out how the scalars should be mapped to the polydata.\n      if ((scalarMode === ScalarMode.USE_CELL_DATA || scalarMode === ScalarMode.USE_CELL_FIELD_DATA || scalarMode === ScalarMode.USE_FIELD_DATA || !poly.getPointData().getScalars()) && scalarMode !== ScalarMode.USE_POINT_FIELD_DATA && c) {\n        model.haveCellScalars = true;\n      }\n    }\n\n    var representation = actor.getProperty().getRepresentation();\n    var tcoords = poly.getPointData().getTCoords();\n\n    if (!model.openGLActor2D.getActiveTextures()) {\n      tcoords = null;\n    }\n\n    var transformCoordinate = model.renderable.getTransformCoordinate();\n    var toString = \"\".concat(poly.getMTime(), \"A\").concat(representation, \"B\").concat(poly.getMTime()) + \"C\".concat(c ? c.getMTime() : 1) + \"D\".concat(tcoords ? tcoords.getMTime() : 1) + \"E\".concat(transformCoordinate ? ren.getMTime() : 1);\n\n    if (model.VBOBuildString !== toString) {\n      // Build the VBOs\n      var points = poly.getPoints();\n\n      if (transformCoordinate) {\n        var p = _Common_Core_Points_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n        var numPts = points.getNumberOfPoints();\n        p.setNumberOfPoints(numPts);\n\n        for (var i = 0; i < numPts; ++i) {\n          transformCoordinate.setValue(points.getPoint(i));\n          var v = transformCoordinate.getComputedDoubleViewportValue(ren);\n          p.setPoint(i, v[0], v[1], 0.0);\n        }\n\n        points = p;\n      }\n\n      var options = {\n        points: points,\n        tcoords: tcoords,\n        colors: c,\n        cellOffset: 0,\n        haveCellScalars: model.haveCellSCalars,\n        customAttributes: model.renderable.getCustomShaderAttributes().map(function (arrayName) {\n          return poly.getPointData().getArrayByName(arrayName);\n        })\n      };\n      options.cellOffset += model.primitives[primTypes.Points].getCABO().createVBO(poly.getVerts(), 'verts', representation, options);\n      options.cellOffset += model.primitives[primTypes.Lines].getCABO().createVBO(poly.getLines(), 'lines', representation, options);\n      options.cellOffset += model.primitives[primTypes.Tris].getCABO().createVBO(poly.getPolys(), 'polys', representation, options);\n      options.cellOffset += model.primitives[primTypes.TriStrips].getCABO().createVBO(poly.getStrips(), 'strips', representation, options);\n      model.VBOBuildTime.modified();\n      model.VBOBuildString = toString;\n    }\n  };\n\n  publicAPI.renderPieceDraw = function (ren, actor) {\n    var representation = actor.getProperty().getRepresentation();\n    var gl = model.context;\n    gl.depthMask(true); // for every primitive type\n\n    for (var i = primTypes.Start; i < primTypes.End; i++) {\n      // if there are entries\n      var cabo = model.primitives[i].getCABO();\n\n      if (cabo.getElementCount()) {\n        model.lastBoundBO = model.primitives[i];\n        model.primitiveIDOffset += model.primitives[i].drawArrays(ren, actor, representation, publicAPI);\n      }\n    }\n  };\n\n  publicAPI.renderPieceFinish = function (ren, actor) {\n    if (model.lastBoundBO) {\n      model.lastBoundBO.getVAO().release();\n    }\n  };\n\n  publicAPI.buildShaders = function (shaders, ren, actor) {\n    publicAPI.getShaderTemplate(shaders, ren, actor); // user specified pre replacements\n\n    var openGLSpec = model.renderable.getViewSpecificProperties().OpenGL;\n    var shaderReplacements = null;\n\n    if (openGLSpec) {\n      shaderReplacements = openGLSpec.ShaderReplacements;\n    }\n\n    if (shaderReplacements) {\n      for (var i = 0; i < shaderReplacements.length; i++) {\n        var currReplacement = shaderReplacements[i];\n\n        if (currReplacement.replaceFirst) {\n          var shaderType = currReplacement.shaderType;\n          var ssrc = shaders[shaderType];\n          var substituteRes = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(ssrc, currReplacement.originalValue, currReplacement.replacementValue, currReplacement.replaceAll);\n          shaders[shaderType] = substituteRes.result;\n        }\n      }\n    }\n\n    publicAPI.replaceShaderValues(shaders, ren, actor); // user specified post replacements\n\n    if (shaderReplacements) {\n      for (var _i = 0; _i < shaderReplacements.length; _i++) {\n        var _currReplacement = shaderReplacements[_i];\n\n        if (!_currReplacement.replaceFirst) {\n          var _shaderType = _currReplacement.shaderType;\n          var _ssrc = shaders[_shaderType];\n\n          var _substituteRes = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(_ssrc, _currReplacement.originalValue, _currReplacement.replacementValue, _currReplacement.replaceAll);\n\n          shaders[_shaderType] = _substituteRes.result;\n        }\n      }\n    }\n  };\n\n  publicAPI.replaceShaderValues = function (shaders, ren, actor) {\n    publicAPI.replaceShaderColor(shaders, ren, actor);\n    publicAPI.replaceShaderTCoord(shaders, ren, actor);\n    publicAPI.replaceShaderPicking(shaders, ren, actor);\n    publicAPI.replaceShaderPositionVC(shaders, ren, actor);\n  };\n\n  publicAPI.replaceShaderColor = function (shaders, ren, actor) {\n    var VSSource = shaders.Vertex;\n    var GSSource = shaders.Geometry;\n    var FSSource = shaders.Fragment;\n\n    if (model.haveCellScalars) {\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Dec', ['uniform samplerBuffer texture1;']).result;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Impl', ['gl_FragData[0] = texelFetchBuffer(texture1, gl_PrimitiveID + PrimitiveIDOffset);']).result;\n    }\n\n    if (model.lastBoundBO.getCABO().getColorComponents() !== 0) {\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Color::Dec', ['in vec4 diffuseColor;', 'out vec4 fcolorVSOutput;']).result;\n      VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::Color::Impl', ['fcolorVSOutput = diffuseColor;']).result;\n      GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::Color::Dec', ['in vec4 fcolorVSOutput[];\\n', 'out vec4 fcolorGSOutput;']).result;\n      GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::Color::Impl', ['fcolorGSOutput = fcolorVSOutput[i];']).result;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Dec', ['in vec4 fcolorVSOutput;']).result;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Impl', ['gl_FragData[0] = fcolorVSOutput;']).result;\n    } else {\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Dec', ['uniform vec4 diffuseColor;']).result;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Color::Impl', ['gl_FragData[0] = diffuseColor;']).result;\n    }\n\n    shaders.Vertex = VSSource;\n    shaders.Geometry = GSSource;\n    shaders.Fragment = FSSource;\n  };\n\n  publicAPI.replaceShaderTCoord = function (shaders, ren, actor) {\n    if (model.lastBoundBO.getCABO().getTCoordOffset()) {\n      var VSSource = shaders.Vertex;\n      var GSSource = shaders.Geometry;\n      var FSSource = shaders.Fragment;\n      var tcdim = model.lastBoundBO.getCABO().getTCoordComponents();\n\n      if (tcdim === 1) {\n        VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::TCoord::Dec', ['in float tcoordMC;', 'out float tcoordVCVSOutput;']).result;\n        VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::TCoord::Impl', ['tcoordVCVSOutput = tcoordMC;']).result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::TCoord::Dec', ['in float tcoordVCVSOutput[];\\n', 'out float tcoordVCGSOutput;']).result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, ['//VTK::TCoord::Impl', 'tcoordVCGSOutput = tcoordVCVSOutput[i];']).result;\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Dec', ['in float tcoordVCVSOutput;', 'uniform sampler2D texture1;']).result;\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Impl', ['gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));']).result;\n      } else if (tcdim === 2) {\n        VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::TCoord::Dec', ['in vec2 tcoordMC;', 'out vec2 tcoordVCVSOutput;']).result;\n        VSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(VSSource, '//VTK::TCoord::Impl', ['tcoordVCVSOutput = tcoordMC;']).result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::TCoord::Dec', ['in vec2 tcoordVCVSOutput[];\\n', 'out vec2 tcoordVCGSOutput;']).result;\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::TCoord::Impl', ['tcoordVCGSOutput = tcoordVCVSOutput[i];']).result;\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Dec', ['in vec2 tcoordVCVSOutput;', 'uniform sampler2D texture1;']).result;\n        FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::TCoord::Impl', ['gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);']).result;\n      }\n\n      if (model.haveCellScalars) {\n        GSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(GSSource, '//VTK::PrimID::Impl', ['gl_PrimitiveID = gl_PrimitiveIDIn;']).result;\n      }\n\n      shaders.Vertex = VSSource;\n      shaders.Geometry = GSSource;\n      shaders.Fragment = FSSource;\n    }\n  };\n\n  publicAPI.replaceShaderPicking = function (shaders, ren, actor) {\n    var FSSource = shaders.Fragment;\n    FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Picking::Dec', ['uniform vec3 mapperIndex;', 'uniform int picking;']).result;\n    FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].substitute(FSSource, '//VTK::Picking::Impl', '  gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];').result;\n    shaders.Fragment = FSSource;\n  };\n\n  publicAPI.replaceShaderPositionVC = function (shaders, ren, actor) {\n    // replace common shader code\n    model.lastBoundBO.replaceShaderPositionVC(shaders, ren, actor);\n  };\n\n  publicAPI.invokeShaderCallbacks = function (cellBO, ren, actor) {\n    var listCallbacks = model.renderable.getViewSpecificProperties().ShadersCallbacks;\n\n    if (listCallbacks) {\n      listCallbacks.forEach(function (object) {\n        object.callback(object.userData, cellBO, ren, actor);\n      });\n    }\n  };\n\n  publicAPI.setMapperShaderParameters = function (cellBO, ren, actor) {\n    // Now to update the VAO too, if necessary.\n    if (cellBO.getProgram().isUniformUsed('PrimitiveIDOffset')) {\n      cellBO.getProgram().setUniformi('PrimitiveIDOffset', model.primitiveIDOffset);\n    }\n\n    if (cellBO.getProgram().isAttributeUsed('vertexWC')) {\n      if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO(), 'vertexWC', cellBO.getCABO().getVertexOffset(), cellBO.getCABO().getStride(), model.context.FLOAT, 3, false)) {\n        vtkErrorMacro('Error setting vertexWC in shader VAO.');\n      }\n    }\n\n    if (cellBO.getCABO().getElementCount() && (model.VBOBuildTime.getMTime() > cellBO.getAttributeUpdateTime().getMTime() || cellBO.getShaderSourceTime().getMTime() > cellBO.getAttributeUpdateTime().getMTime())) {\n      model.renderable.getCustomShaderAttributes().forEach(function (attrName, idx) {\n        if (cellBO.getProgram().isAttributeUsed(\"\".concat(attrName, \"MC\"))) {\n          if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO(), \"\".concat(attrName, \"MC\"), cellBO.getCABO().getCustomData()[idx].offset, cellBO.getCABO().getStride(), model.context.FLOAT, cellBO.getCABO().getCustomData()[idx].components, false)) {\n            vtkErrorMacro(\"Error setting \".concat(attrName, \"MC in shader VAO.\"));\n          }\n        }\n      });\n\n      if (cellBO.getProgram().isAttributeUsed('tcoordMC') && cellBO.getCABO().getTCoordOffset()) {\n        if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO(), 'tcoordMC', cellBO.getCABO().getTCoordOffset(), cellBO.getCABO().getStride(), model.context.FLOAT, cellBO.getCABO().getTCoordComponents(), false)) {\n          vtkErrorMacro('Error setting tcoordMC in shader VAO.');\n        }\n      } else {\n        cellBO.getVAO().removeAttributeArray('tcoordMC');\n      }\n\n      if (model.internalColorTexture && cellBO.getProgram().isUniformUsed('texture1')) {\n        cellBO.getProgram().setUniformi('texture1', model.internalColorTexture.getTextureUnit());\n      }\n\n      var tus = model.openGLActor2D.getActiveTextures();\n\n      if (tus) {\n        for (var index = 0; index < tus.length; ++index) {\n          var tex = tus[index];\n          var texUnit = tex.getTextureUnit();\n          var tname = \"texture\".concat(texUnit + 1);\n\n          if (cellBO.getProgram().isUniformUsed(tname)) {\n            cellBO.getProgram().setUniformi(tname, texUnit);\n          }\n        }\n      } // handle wide lines\n\n\n      cellBO.setMapperShaderParameters(ren, actor, model.openGLRenderer.getTiledSizeAndOrigin());\n      var selector = model.openGLRenderer.getSelector();\n      cellBO.getProgram().setUniform3fArray('mapperIndex', selector ? selector.getPropColorValue() : [0.0, 0.0, 0.0]);\n      cellBO.getProgram().setUniformi('picking', selector ? selector.getCurrentPass() + 1 : 0);\n    }\n  };\n\n  publicAPI.setPropertyShaderParameters = function (cellBO, ren, actor) {\n    var c = model.renderable.getColorMapColors();\n\n    if (!c || c.getNumberOfComponents() === 0) {\n      var program = cellBO.getProgram();\n      var ppty = actor.getProperty();\n      var opacity = ppty.getOpacity();\n      var dColor = ppty.getColor();\n      var diffuseColor = [dColor[0], dColor[1], dColor[2], opacity];\n      program.setUniform4f('diffuseColor', diffuseColor);\n    }\n  };\n\n  publicAPI.setLightingShaderParameters = function (cellBO, ren, actor) {// no-op\n  };\n\n  function safeMatrixMultiply(matrixArray, matrixType, tmpMat) {\n    matrixType.identity(tmpMat);\n    return matrixArray.reduce(function (res, matrix, index) {\n      if (index === 0) {\n        return matrix ? matrixType.copy(res, matrix) : matrixType.identity(res);\n      }\n\n      return matrix ? matrixType.multiply(res, res, matrix) : res;\n    }, tmpMat);\n  }\n\n  publicAPI.setCameraShaderParameters = function (cellBO, ren, actor) {\n    var program = cellBO.getProgram();\n    var shiftScaleEnabled = cellBO.getCABO().getCoordShiftAndScaleEnabled();\n    var inverseShiftScaleMatrix = shiftScaleEnabled ? cellBO.getCABO().getInverseShiftAndScaleMatrix() : null; // Get the position of the actor\n\n    var view = ren.getRenderWindow().getViews()[0];\n    var size = view.getViewportSize(ren);\n    var vport = ren.getViewport();\n    var actorPos = actor.getActualPositionCoordinate().getComputedDoubleViewportValue(ren); // Get the window info\n    // Assume tile viewport is 0 1 based on vtkOpenGLRenderer\n\n    var tileViewport = [0.0, 0.0, 1.0, 1.0];\n    var visVP = [0.0, 0.0, 1.0, 1.0];\n    visVP[0] = vport[0] >= tileViewport[0] ? vport[0] : tileViewport[0];\n    visVP[1] = vport[1] >= tileViewport[1] ? vport[1] : tileViewport[1];\n    visVP[2] = vport[2] <= tileViewport[2] ? vport[2] : tileViewport[2];\n    visVP[3] = vport[3] <= tileViewport[3] ? vport[3] : tileViewport[3];\n\n    if (visVP[0] >= visVP[2]) {\n      return;\n    }\n\n    if (visVP[1] >= visVP[3]) {\n      return;\n    }\n\n    size[0] = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_9__.K)(size[0] * (visVP[2] - visVP[0]) / (vport[2] - vport[0]));\n    size[1] = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_9__.K)(size[1] * (visVP[3] - visVP[1]) / (vport[3] - vport[1]));\n    var winSize = model.openGLRenderer.getParent().getSize();\n    var xoff = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_9__.K)(actorPos[0] - (visVP[0] - vport[0]) * winSize[0]);\n    var yoff = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_9__.K)(actorPos[1] - (visVP[1] - vport[1]) * winSize[1]); // set ortho projection\n\n    var left = -xoff;\n    var right = -xoff + size[0];\n    var bottom = -yoff;\n    var top = -yoff + size[1]; // it's an error to call glOrtho with\n    // either left==right or top==bottom\n\n    if (left === right) {\n      right = left + 1.0;\n    }\n\n    if (bottom === top) {\n      top = bottom + 1.0;\n    } // compute the combined ModelView matrix and send it down to save time in the shader\n\n\n    var tmpMat4 = gl_matrix__WEBPACK_IMPORTED_MODULE_12__.identity(new Float64Array(16));\n    tmpMat4[0] = 2.0 / (right - left);\n    tmpMat4[1 * 4 + 1] = 2.0 / (top - bottom);\n    tmpMat4[0 * 4 + 3] = -1.0 * (right + left) / (right - left);\n    tmpMat4[1 * 4 + 3] = -1.0 * (top + bottom) / (top - bottom);\n    tmpMat4[2 * 4 + 2] = 0.0;\n    tmpMat4[2 * 4 + 3] = actor.getProperty().getDisplayLocation() === _Core_Property2D_Constants_js__WEBPACK_IMPORTED_MODULE_10__.DisplayLocation.FOREGROUND ? -1.0 : 1.0;\n    tmpMat4[3 * 4 + 3] = 1.0;\n    gl_matrix__WEBPACK_IMPORTED_MODULE_12__.transpose(tmpMat4, tmpMat4);\n    program.setUniformMatrix('WCVCMatrix', safeMatrixMultiply([tmpMat4, inverseShiftScaleMatrix], gl_matrix__WEBPACK_IMPORTED_MODULE_12__, model.tmpMat4));\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  context: null,\n  VBOBuildTime: 0,\n  VBOBuildString: null,\n  primitives: null,\n  primTypes: null,\n  shaderRebuildString: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].extend(publicAPI, model, initialValues);\n  _ReplacementShaderMapper_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].implementReplaceShaderCoincidentOffset(publicAPI, model, initialValues);\n  model.primitives = [];\n  model.primTypes = primTypes;\n  model.tmpMat4 = gl_matrix__WEBPACK_IMPORTED_MODULE_12__.identity(new Float64Array(16));\n\n  for (var i = primTypes.Start; i < primTypes.End; i++) {\n    model.primitives[i] = _Helper_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n    model.primitives[i].setPrimitiveType(i);\n    model.primitives[i].set({\n      lastLightComplexity: 0,\n      lastLightCount: 0,\n      lastSelectionPass: false\n    }, true);\n  } // Build VTK API\n\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['context']);\n  model.VBOBuildTime = {};\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(model.VBOBuildTime, {\n    mtime: 0\n  }); // Object methods\n\n  vtkOpenGLPolyDataMapper2D(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkOpenGLPolyDataMapper2D'); // ----------------------------------------------------------------------------\n\nvar vtkPolyDataMapper2D = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_11__.registerOverride)('vtkMapper2D', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/PolyDataMapper2D.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/RenderWindow.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/RenderWindow.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkRenderWindow),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance),\n/* harmony export */   \"popMonitorGLContextCount\": () => (/* binding */ popMonitorGLContextCount),\n/* harmony export */   \"pushMonitorGLContextCount\": () => (/* binding */ pushMonitorGLContextCount)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Common/Core/DataArray/Constants.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_RenderWindow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Core/RenderWindow.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindow.js\");\n/* harmony import */ var _ForwardPass_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ForwardPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ForwardPass.js\");\n/* harmony import */ var _HardwareSelector_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./HardwareSelector.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/HardwareSelector.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderCache.js\");\n/* harmony import */ var _TextureUnitManager_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./TextureUnitManager.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/TextureUnitManager.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n/* harmony import */ var _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../SceneGraph/RenderPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js\");\n/* harmony import */ var _SceneGraph_RenderWindowViewNode_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../SceneGraph/RenderWindowViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderWindowViewNode.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].vtkDebugMacro,\n    vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].vtkErrorMacro;\nvar SCREENSHOT_PLACEHOLDER = {\n  position: 'absolute',\n  top: 0,\n  left: 0,\n  width: '100%',\n  height: '100%'\n};\nvar DEFAULT_RESET_FACTORS = {\n  vr: {\n    rescaleFactor: 1.0,\n    translateZ: -0.7 // 0.7 m forward from the camera\n\n  },\n  ar: {\n    rescaleFactor: 0.25,\n    // scale down AR for viewing comfort by default\n    translateZ: -0.5 // 0.5 m forward from the camera\n\n  }\n};\n\nfunction checkRenderTargetSupport(gl, format, type) {\n  // create temporary frame buffer and texture\n  var framebuffer = gl.createFramebuffer();\n  var texture = gl.createTexture();\n  gl.bindTexture(gl.TEXTURE_2D, texture);\n  gl.texImage2D(gl.TEXTURE_2D, 0, format, 2, 2, 0, format, type, null);\n  gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n  gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); // check frame buffer status\n\n  var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER); // clean up\n\n  gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n  gl.bindTexture(gl.TEXTURE_2D, null);\n  return status === gl.FRAMEBUFFER_COMPLETE;\n} // ----------------------------------------------------------------------------\n// Monitor the usage of GL context across vtkOpenGLRenderWindow instances\n// ----------------------------------------------------------------------------\n\n\nvar GL_CONTEXT_COUNT = 0;\nvar GL_CONTEXT_LISTENERS = [];\n\nfunction createGLContext() {\n  GL_CONTEXT_COUNT++;\n  GL_CONTEXT_LISTENERS.forEach(function (cb) {\n    return cb(GL_CONTEXT_COUNT);\n  });\n}\n\nfunction deleteGLContext() {\n  GL_CONTEXT_COUNT--;\n  GL_CONTEXT_LISTENERS.forEach(function (cb) {\n    return cb(GL_CONTEXT_COUNT);\n  });\n}\n\nfunction pushMonitorGLContextCount(cb) {\n  GL_CONTEXT_LISTENERS.push(cb);\n}\nfunction popMonitorGLContextCount(cb) {\n  return GL_CONTEXT_LISTENERS.pop();\n} // ----------------------------------------------------------------------------\n// vtkOpenGLRenderWindow methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLRenderWindow(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLRenderWindow');\n\n  publicAPI.getViewNodeFactory = function () {\n    return model.myFactory;\n  }; // Auto update style\n\n\n  var previousSize = [0, 0];\n\n  function updateWindow() {\n    // Canvas size\n    if (model.renderable) {\n      if (model.size[0] !== previousSize[0] || model.size[1] !== previousSize[1]) {\n        previousSize[0] = model.size[0];\n        previousSize[1] = model.size[1];\n        model.canvas.setAttribute('width', model.size[0]);\n        model.canvas.setAttribute('height', model.size[1]);\n      }\n    } // ImageStream size\n\n\n    if (model.viewStream) {\n      // If same size that's a NoOp\n      model.viewStream.setSize(model.size[0], model.size[1]);\n    } // Offscreen ?\n\n\n    model.canvas.style.display = model.useOffScreen ? 'none' : 'block'; // Cursor type\n\n    if (model.el) {\n      model.el.style.cursor = model.cursorVisibility ? model.cursor : 'none';\n    } // Invalidate cached DOM container size\n\n\n    model.containerSize = null;\n  }\n\n  publicAPI.onModified(updateWindow); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      if (!model.renderable) {\n        return;\n      }\n\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNodes(model.renderable.getRenderersByReference());\n      publicAPI.removeUnusedNodes();\n      publicAPI.initialize();\n      model.children.forEach(function (child) {\n        child.setOpenGLRenderWindow(publicAPI);\n      });\n    }\n  };\n\n  publicAPI.initialize = function () {\n    if (!model.initialized) {\n      model.context = publicAPI.get3DContext();\n      model.textureUnitManager = _TextureUnitManager_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"].newInstance();\n      model.textureUnitManager.setContext(model.context);\n      model.shaderCache.setContext(model.context); // initialize blending for transparency\n\n      var gl = model.context;\n      gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n      gl.depthFunc(gl.LEQUAL);\n      gl.enable(gl.BLEND);\n      model.initialized = true;\n    }\n  };\n\n  publicAPI.makeCurrent = function () {\n    model.context.makeCurrent();\n  };\n\n  publicAPI.setContainer = function (el) {\n    if (model.el && model.el !== el) {\n      if (model.canvas.parentNode !== model.el) {\n        vtkErrorMacro('Error: canvas parent node does not match container');\n      } // Remove canvas from previous container\n\n\n      model.el.removeChild(model.canvas); // If the renderer has previously added\n      // a background image, remove it from the DOM.\n\n      if (model.el.contains(model.bgImage)) {\n        model.el.removeChild(model.bgImage);\n      }\n    }\n\n    if (model.el !== el) {\n      model.el = el;\n\n      if (model.el) {\n        model.el.appendChild(model.canvas); // If the renderer is set to use a background\n        // image, attach it to the DOM.\n\n        if (model.useBackgroundImage) {\n          model.el.appendChild(model.bgImage);\n        }\n      } // Trigger modified()\n\n\n      publicAPI.modified();\n    }\n  };\n\n  publicAPI.getContainer = function () {\n    return model.el;\n  };\n\n  publicAPI.getContainerSize = function () {\n    if (!model.containerSize && model.el) {\n      var _model$el$getBounding = model.el.getBoundingClientRect(),\n          width = _model$el$getBounding.width,\n          height = _model$el$getBounding.height;\n\n      model.containerSize = [width, height];\n    }\n\n    return model.containerSize || model.size;\n  };\n\n  publicAPI.getFramebufferSize = function () {\n    if (model.activeFramebuffer) {\n      return model.activeFramebuffer.getSize();\n    }\n\n    return model.size;\n  };\n\n  publicAPI.getPixelData = function (x1, y1, x2, y2) {\n    var pixels = new Uint8Array((x2 - x1 + 1) * (y2 - y1 + 1) * 4);\n    model.context.readPixels(x1, y1, x2 - x1 + 1, y2 - y1 + 1, model.context.RGBA, model.context.UNSIGNED_BYTE, pixels);\n    return pixels;\n  };\n\n  publicAPI.get3DContext = function () {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n      preserveDrawingBuffer: false,\n      depth: true,\n      alpha: true,\n      powerPreference: 'high-performance'\n    };\n    var result = null; // Do we have webxr support\n\n    if (navigator.xr !== undefined && navigator.xr.isSessionSupported('immersive-vr')) {\n      publicAPI.invokeHaveVRDisplay();\n    }\n\n    var webgl2Supported = typeof WebGL2RenderingContext !== 'undefined';\n    model.webgl2 = false;\n\n    if (model.defaultToWebgl2 && webgl2Supported) {\n      result = model.canvas.getContext('webgl2', options);\n\n      if (result) {\n        model.webgl2 = true;\n        vtkDebugMacro('using webgl2');\n      }\n    }\n\n    if (!result) {\n      vtkDebugMacro('using webgl1');\n      result = model.canvas.getContext('webgl', options) || model.canvas.getContext('experimental-webgl', options);\n    } // prevent default context lost handler\n\n\n    model.canvas.addEventListener('webglcontextlost', function (event) {\n      event.preventDefault();\n    }, false);\n    model.canvas.addEventListener('webglcontextrestored', publicAPI.restoreContext, false);\n    return result;\n  }; // Request an XR session on the user device with WebXR,\n  // typically in response to a user request such as a button press\n\n\n  publicAPI.startXR = function (isAR) {\n    if (navigator.xr === undefined) {\n      throw new Error('WebXR is not available');\n    }\n\n    model.xrSessionIsAR = isAR;\n    var sessionType = isAR ? 'immersive-ar' : 'immersive-vr';\n\n    if (!navigator.xr.isSessionSupported(sessionType)) {\n      if (isAR) {\n        throw new Error('Device does not support AR session');\n      } else {\n        throw new Error('VR display is not available');\n      }\n    }\n\n    if (model.xrSession === null) {\n      navigator.xr.requestSession(sessionType).then(publicAPI.enterXR, function () {\n        throw new Error('Failed to create XR session!');\n      });\n    } else {\n      throw new Error('XR Session already exists!');\n    }\n  }; // When an XR session is available, set up the XRWebGLLayer\n  // and request the first animation frame for the device\n\n\n  publicAPI.enterXR = /*#__PURE__*/function () {\n    var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(xrSession) {\n      var gl, glLayer;\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              model.xrSession = xrSession;\n              model.oldCanvasSize = model.size.slice();\n\n              if (!(model.xrSession !== null)) {\n                _context.next = 15;\n                break;\n              }\n\n              gl = publicAPI.get3DContext();\n              _context.next = 6;\n              return gl.makeXRCompatible();\n\n            case 6:\n              glLayer = new __webpack_require__.g.XRWebGLLayer(model.xrSession, gl);\n              publicAPI.setSize(glLayer.framebufferWidth, glLayer.framebufferHeight);\n              model.xrSession.updateRenderState({\n                baseLayer: glLayer\n              });\n              model.xrSession.requestReferenceSpace('local').then(function (refSpace) {\n                model.xrReferenceSpace = refSpace;\n              });\n              publicAPI.resetXRScene();\n              model.renderable.getInteractor().switchToXRAnimation();\n              model.xrSceneFrame = model.xrSession.requestAnimationFrame(publicAPI.xrRender);\n              _context.next = 16;\n              break;\n\n            case 15:\n              throw new Error('Failed to enter VR with a null xrSession.');\n\n            case 16:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee);\n    }));\n\n    return function (_x) {\n      return _ref.apply(this, arguments);\n    };\n  }();\n\n  publicAPI.resetXRScene = function () {\n    var inputRescaleFactor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_RESET_FACTORS.vr.rescaleFactor;\n    var inputTranslateZ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_RESET_FACTORS.vr.translateZ;\n    // Adjust world-to-physical parameters for different modalities\n    // Default parameter values are for VR (model.xrSessionIsAR == false)\n    var rescaleFactor = inputRescaleFactor;\n    var translateZ = inputTranslateZ;\n\n    if (model.xrSessionIsAR && rescaleFactor === DEFAULT_RESET_FACTORS.vr.rescaleFactor) {\n      // Scale down by default in AR\n      rescaleFactor = DEFAULT_RESET_FACTORS.ar.rescaleFactor;\n    }\n\n    if (model.xrSessionIsAR && translateZ === DEFAULT_RESET_FACTORS.vr.translateZ) {\n      // Default closer to the camera in AR\n      translateZ = DEFAULT_RESET_FACTORS.ar.translateZ;\n    }\n\n    var ren = model.renderable.getRenderers()[0];\n    ren.resetCamera();\n    var camera = ren.getActiveCamera();\n    var physicalScale = camera.getPhysicalScale();\n    var physicalTranslation = camera.getPhysicalTranslation();\n    physicalScale /= rescaleFactor;\n    translateZ *= physicalScale;\n    physicalTranslation[2] += translateZ;\n    camera.setPhysicalScale(physicalScale);\n    camera.setPhysicalTranslation(physicalTranslation);\n  };\n\n  publicAPI.stopXR = /*#__PURE__*/(0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() {\n    var gl, ren;\n    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            if (!(navigator.xr === undefined)) {\n              _context2.next = 2;\n              break;\n            }\n\n            return _context2.abrupt(\"return\");\n\n          case 2:\n            if (!(model.xrSession !== null)) {\n              _context2.next = 10;\n              break;\n            }\n\n            model.xrSession.cancelAnimationFrame(model.xrSceneFrame);\n            model.renderable.getInteractor().returnFromXRAnimation();\n            gl = publicAPI.get3DContext();\n            gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n            _context2.next = 9;\n            return model.xrSession.end().catch(function (error) {\n              if (!(error instanceof DOMException)) {\n                throw error;\n              }\n            });\n\n          case 9:\n            model.xrSession = null;\n\n          case 10:\n            if (model.oldCanvasSize !== undefined) {\n              publicAPI.setSize.apply(publicAPI, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(model.oldCanvasSize));\n            } // Reset to default canvas\n\n\n            ren = model.renderable.getRenderers()[0];\n            ren.getActiveCamera().setProjectionMatrix(null);\n            ren.resetCamera();\n            ren.setViewport(0.0, 0, 1.0, 1.0);\n            publicAPI.traverseAllPasses();\n\n          case 16:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2);\n  }));\n\n  publicAPI.xrRender = /*#__PURE__*/function () {\n    var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3(t, frame) {\n      var xrSession, xrPose, gl, glLayer, ren;\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee3$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              xrSession = frame.session;\n              model.renderable.getInteractor().updateXRGamepads(xrSession, frame, model.xrReferenceSpace);\n              model.xrSceneFrame = model.xrSession.requestAnimationFrame(publicAPI.xrRender);\n              xrPose = frame.getViewerPose(model.xrReferenceSpace);\n\n              if (xrPose) {\n                gl = publicAPI.get3DContext();\n\n                if (model.xrSessionIsAR && model.oldCanvasSize !== undefined) {\n                  gl.canvas.width = model.oldCanvasSize[0];\n                  gl.canvas.height = model.oldCanvasSize[1];\n                }\n\n                glLayer = xrSession.renderState.baseLayer;\n                gl.bindFramebuffer(gl.FRAMEBUFFER, glLayer.framebuffer);\n                gl.clear(gl.COLOR_BUFFER_BIT);\n                gl.clear(gl.DEPTH_BUFFER_BIT); // get the first renderer\n\n                ren = model.renderable.getRenderers()[0]; // Do a render pass for each eye\n\n                xrPose.views.forEach(function (view) {\n                  var viewport = glLayer.getViewport(view);\n                  gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height); // TODO: Appropriate handling for AR passthrough on HMDs\n                  // with two eyes will require further investigation.\n\n                  if (!model.xrSessionIsAR) {\n                    if (view.eye === 'left') {\n                      ren.setViewport(0, 0, 0.5, 1.0);\n                    } else if (view.eye === 'right') {\n                      ren.setViewport(0.5, 0, 1.0, 1.0);\n                    } else {\n                      // No handling for non-eye viewport\n                      return;\n                    }\n                  }\n\n                  ren.getActiveCamera().computeViewParametersFromPhysicalMatrix(view.transform.inverse.matrix);\n                  ren.getActiveCamera().setProjectionMatrix(view.projectionMatrix);\n                  publicAPI.traverseAllPasses();\n                });\n              }\n\n            case 5:\n            case \"end\":\n              return _context3.stop();\n          }\n        }\n      }, _callee3);\n    }));\n\n    return function (_x2, _x3) {\n      return _ref3.apply(this, arguments);\n    };\n  }();\n\n  publicAPI.restoreContext = function () {\n    var rp = _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"].newInstance();\n    rp.setCurrentOperation('Release');\n    rp.traverse(publicAPI, null);\n  };\n\n  publicAPI.activateTexture = function (texture) {\n    // Only add if it isn't already there\n    var result = model._textureResourceIds.get(texture);\n\n    if (result !== undefined) {\n      model.context.activeTexture(model.context.TEXTURE0 + result);\n      return;\n    }\n\n    var activeUnit = publicAPI.getTextureUnitManager().allocate();\n\n    if (activeUnit < 0) {\n      vtkErrorMacro('Hardware does not support the number of textures defined.');\n      return;\n    }\n\n    model._textureResourceIds.set(texture, activeUnit);\n\n    model.context.activeTexture(model.context.TEXTURE0 + activeUnit);\n  };\n\n  publicAPI.deactivateTexture = function (texture) {\n    // Only deactivate if it isn't already there\n    var result = model._textureResourceIds.get(texture);\n\n    if (result !== undefined) {\n      publicAPI.getTextureUnitManager().free(result);\n      delete model._textureResourceIds.delete(texture);\n    }\n  };\n\n  publicAPI.getTextureUnitForTexture = function (texture) {\n    var result = model._textureResourceIds.get(texture);\n\n    if (result !== undefined) {\n      return result;\n    }\n\n    return -1;\n  };\n\n  publicAPI.getDefaultTextureInternalFormat = function (vtktype, numComps, useFloat) {\n    if (model.webgl2) {\n      switch (vtktype) {\n        case _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_4__.VtkDataTypes.UNSIGNED_CHAR:\n          switch (numComps) {\n            case 1:\n              return model.context.R8;\n\n            case 2:\n              return model.context.RG8;\n\n            case 3:\n              return model.context.RGB8;\n\n            case 4:\n            default:\n              return model.context.RGBA8;\n          }\n\n        case _Common_Core_DataArray_Constants_js__WEBPACK_IMPORTED_MODULE_4__.VtkDataTypes.FLOAT:\n        default:\n          switch (numComps) {\n            case 1:\n              return model.context.R16F;\n\n            case 2:\n              return model.context.RG16F;\n\n            case 3:\n              return model.context.RGB16F;\n\n            case 4:\n            default:\n              return model.context.RGBA16F;\n          }\n\n      }\n    } // webgl1 only supports four types\n\n\n    switch (numComps) {\n      case 1:\n        return model.context.LUMINANCE;\n\n      case 2:\n        return model.context.LUMINANCE_ALPHA;\n\n      case 3:\n        return model.context.RGB;\n\n      case 4:\n      default:\n        return model.context.RGBA;\n    }\n  };\n\n  publicAPI.setBackgroundImage = function (img) {\n    model.bgImage.src = img.src;\n  };\n\n  publicAPI.setUseBackgroundImage = function (value) {\n    model.useBackgroundImage = value; // Add or remove the background image from the\n    // DOM as specified.\n\n    if (model.useBackgroundImage && !model.el.contains(model.bgImage)) {\n      model.el.appendChild(model.bgImage);\n    } else if (!model.useBackgroundImage && model.el.contains(model.bgImage)) {\n      model.el.removeChild(model.bgImage);\n    }\n  };\n\n  function getCanvasDataURL() {\n    var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : model.imageFormat;\n    // Copy current canvas to not modify the original\n    var temporaryCanvas = document.createElement('canvas');\n    var temporaryContext = temporaryCanvas.getContext('2d');\n    temporaryCanvas.width = model.canvas.width;\n    temporaryCanvas.height = model.canvas.height;\n    temporaryContext.drawImage(model.canvas, 0, 0); // Get current client rect to place canvas\n\n    var mainBoundingClientRect = model.canvas.getBoundingClientRect();\n    var renderWindow = model.renderable;\n    var renderers = renderWindow.getRenderers();\n    renderers.forEach(function (renderer) {\n      var viewProps = renderer.getViewProps();\n      viewProps.forEach(function (viewProp) {\n        // Check if the prop has a container that should have canvas\n        if (viewProp.getContainer) {\n          var container = viewProp.getContainer();\n          var canvasList = container.getElementsByTagName('canvas'); // Go throughout all canvas and copy it into temporary main canvas\n\n          for (var i = 0; i < canvasList.length; i++) {\n            var currentCanvas = canvasList[i];\n            var boundingClientRect = currentCanvas.getBoundingClientRect();\n            var newXPosition = boundingClientRect.x - mainBoundingClientRect.x;\n            var newYPosition = boundingClientRect.y - mainBoundingClientRect.y;\n            temporaryContext.drawImage(currentCanvas, newXPosition, newYPosition);\n          }\n        }\n      });\n    });\n    var screenshot = temporaryCanvas.toDataURL(format);\n    temporaryCanvas.remove();\n    publicAPI.invokeImageReady(screenshot);\n  }\n\n  publicAPI.captureNextImage = function () {\n    var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'image/png';\n\n    var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n        _ref4$resetCamera = _ref4.resetCamera,\n        resetCamera = _ref4$resetCamera === void 0 ? false : _ref4$resetCamera,\n        _ref4$size = _ref4.size,\n        size = _ref4$size === void 0 ? null : _ref4$size,\n        _ref4$scale = _ref4.scale,\n        scale = _ref4$scale === void 0 ? 1 : _ref4$scale;\n\n    if (model.deleted) {\n      return null;\n    }\n\n    model.imageFormat = format;\n    var previous = model.notifyStartCaptureImage;\n    model.notifyStartCaptureImage = true;\n    model._screenshot = {\n      size: !!size || scale !== 1 ? size || model.size.map(function (val) {\n        return val * scale;\n      }) : null\n    };\n    return new Promise(function (resolve, reject) {\n      var subscription = publicAPI.onImageReady(function (imageURL) {\n        if (model._screenshot.size === null) {\n          model.notifyStartCaptureImage = previous;\n          subscription.unsubscribe();\n\n          if (model._screenshot.placeHolder) {\n            // resize the main canvas back to its original size and show it\n            model.size = model._screenshot.originalSize; // process the resize\n\n            publicAPI.modified(); // restore the saved camera parameters, if applicable\n\n            if (model._screenshot.cameras) {\n              model._screenshot.cameras.forEach(function (_ref5) {\n                var restoreParamsFn = _ref5.restoreParamsFn,\n                    arg = _ref5.arg;\n                return restoreParamsFn(arg);\n              });\n            } // Trigger a render at the original size\n\n\n            publicAPI.traverseAllPasses(); // Remove and clean up the placeholder, revealing the original\n\n            model.el.removeChild(model._screenshot.placeHolder);\n\n            model._screenshot.placeHolder.remove();\n\n            model._screenshot = null;\n          }\n\n          resolve(imageURL);\n        } else {\n          // Create a placeholder image overlay while we resize and render\n          var tmpImg = document.createElement('img');\n          tmpImg.style = SCREENSHOT_PLACEHOLDER;\n          tmpImg.src = imageURL;\n          model._screenshot.placeHolder = model.el.appendChild(tmpImg); // hide the main canvas\n\n          model.canvas.style.display = 'none'; // remember the main canvas original size, then resize it\n\n          model._screenshot.originalSize = model.size;\n          model.size = model._screenshot.size;\n          model._screenshot.size = null; // process the resize\n\n          publicAPI.modified();\n\n          if (resetCamera) {\n            var isUserResetCamera = resetCamera !== true; // If resetCamera was requested, we first save camera parameters\n            // from all the renderers, so we can restore them later\n\n            model._screenshot.cameras = model.renderable.getRenderers().map(function (renderer) {\n              var camera = renderer.getActiveCamera();\n              var params = camera.get('focalPoint', 'position', 'parallelScale');\n              return {\n                resetCameraArgs: isUserResetCamera ? {\n                  renderer: renderer\n                } : undefined,\n                resetCameraFn: isUserResetCamera ? resetCamera : renderer.resetCamera,\n                restoreParamsFn: camera.set,\n                // \"clone\" the params so we don't keep refs to properties\n                arg: JSON.parse(JSON.stringify(params))\n              };\n            }); // Perform the resetCamera() on each renderer only after capturing\n            // the params from all active cameras, in case there happen to be\n            // linked cameras among the renderers.\n\n            model._screenshot.cameras.forEach(function (_ref6) {\n              var resetCameraFn = _ref6.resetCameraFn,\n                  resetCameraArgs = _ref6.resetCameraArgs;\n              return resetCameraFn(resetCameraArgs);\n            });\n          } // Trigger a render at the custom size\n\n\n          publicAPI.traverseAllPasses();\n        }\n      });\n    });\n  };\n\n  publicAPI.getHardwareMaximumLineWidth = function () {\n    var gl = publicAPI.get3DContext();\n    var lineWidthRange = gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE);\n    return lineWidthRange[1];\n  };\n\n  publicAPI.getGLInformations = function () {\n    var gl = publicAPI.get3DContext();\n    var glTextureFloat = gl.getExtension('OES_texture_float');\n    var glTextureHalfFloat = gl.getExtension('OES_texture_half_float');\n    var glDebugRendererInfo = gl.getExtension('WEBGL_debug_renderer_info');\n    var glDrawBuffers = gl.getExtension('WEBGL_draw_buffers');\n    var glAnisotropic = gl.getExtension('EXT_texture_filter_anisotropic') || gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic');\n    var params = [['Max Vertex Attributes', 'MAX_VERTEX_ATTRIBS', gl.getParameter(gl.MAX_VERTEX_ATTRIBS)], ['Max Varying Vectors', 'MAX_VARYING_VECTORS', gl.getParameter(gl.MAX_VARYING_VECTORS)], ['Max Vertex Uniform Vectors', 'MAX_VERTEX_UNIFORM_VECTORS', gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS)], ['Max Fragment Uniform Vectors', 'MAX_FRAGMENT_UNIFORM_VECTORS', gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS)], ['Max Fragment Texture Image Units', 'MAX_TEXTURE_IMAGE_UNITS', gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS)], ['Max Vertex Texture Image Units', 'MAX_VERTEX_TEXTURE_IMAGE_UNITS', gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS)], ['Max Combined Texture Image Units', 'MAX_COMBINED_TEXTURE_IMAGE_UNITS', gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS)], ['Max 2D Texture Size', 'MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE)], ['Max Cube Texture Size', 'MAX_CUBE_MAP_TEXTURE_SIZE', gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE)], ['Max Texture Anisotropy', 'MAX_TEXTURE_MAX_ANISOTROPY_EXT', glAnisotropic && gl.getParameter(glAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)], ['Point Size Range', 'ALIASED_POINT_SIZE_RANGE', gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE).join(' - ')], ['Line Width Range', 'ALIASED_LINE_WIDTH_RANGE', gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE).join(' - ')], ['Max Viewport Dimensions', 'MAX_VIEWPORT_DIMS', gl.getParameter(gl.MAX_VIEWPORT_DIMS).join(' - ')], ['Max Renderbuffer Size', 'MAX_RENDERBUFFER_SIZE', gl.getParameter(gl.MAX_RENDERBUFFER_SIZE)], ['Framebuffer Red Bits', 'RED_BITS', gl.getParameter(gl.RED_BITS)], ['Framebuffer Green Bits', 'GREEN_BITS', gl.getParameter(gl.GREEN_BITS)], ['Framebuffer Blue Bits', 'BLUE_BITS', gl.getParameter(gl.BLUE_BITS)], ['Framebuffer Alpha Bits', 'ALPHA_BITS', gl.getParameter(gl.ALPHA_BITS)], ['Framebuffer Depth Bits', 'DEPTH_BITS', gl.getParameter(gl.DEPTH_BITS)], ['Framebuffer Stencil Bits', 'STENCIL_BITS', gl.getParameter(gl.STENCIL_BITS)], ['Framebuffer Subpixel Bits', 'SUBPIXEL_BITS', gl.getParameter(gl.SUBPIXEL_BITS)], ['MSAA Samples', 'SAMPLES', gl.getParameter(gl.SAMPLES)], ['MSAA Sample Buffers', 'SAMPLE_BUFFERS', gl.getParameter(gl.SAMPLE_BUFFERS)], ['Supported Formats for UByte Render Targets     ', 'UNSIGNED_BYTE RENDER TARGET FORMATS', [glTextureFloat && checkRenderTargetSupport(gl, gl.RGBA, gl.UNSIGNED_BYTE) ? 'RGBA' : '', glTextureFloat && checkRenderTargetSupport(gl, gl.RGB, gl.UNSIGNED_BYTE) ? 'RGB' : '', glTextureFloat && checkRenderTargetSupport(gl, gl.LUMINANCE, gl.UNSIGNED_BYTE) ? 'LUMINANCE' : '', glTextureFloat && checkRenderTargetSupport(gl, gl.ALPHA, gl.UNSIGNED_BYTE) ? 'ALPHA' : '', glTextureFloat && checkRenderTargetSupport(gl, gl.LUMINANCE_ALPHA, gl.UNSIGNED_BYTE) ? 'LUMINANCE_ALPHA' : ''].join(' ')], ['Supported Formats for Half Float Render Targets', 'HALF FLOAT RENDER TARGET FORMATS', [glTextureHalfFloat && checkRenderTargetSupport(gl, gl.RGBA, glTextureHalfFloat.HALF_FLOAT_OES) ? 'RGBA' : '', glTextureHalfFloat && checkRenderTargetSupport(gl, gl.RGB, glTextureHalfFloat.HALF_FLOAT_OES) ? 'RGB' : '', glTextureHalfFloat && checkRenderTargetSupport(gl, gl.LUMINANCE, glTextureHalfFloat.HALF_FLOAT_OES) ? 'LUMINANCE' : '', glTextureHalfFloat && checkRenderTargetSupport(gl, gl.ALPHA, glTextureHalfFloat.HALF_FLOAT_OES) ? 'ALPHA' : '', glTextureHalfFloat && checkRenderTargetSupport(gl, gl.LUMINANCE_ALPHA, glTextureHalfFloat.HALF_FLOAT_OES) ? 'LUMINANCE_ALPHA' : ''].join(' ')], ['Supported Formats for Full Float Render Targets', 'FLOAT RENDER TARGET FORMATS', [glTextureFloat && checkRenderTargetSupport(gl, gl.RGBA, gl.FLOAT) ? 'RGBA' : '', glTextureFloat && checkRenderTargetSupport(gl, gl.RGB, gl.FLOAT) ? 'RGB' : '', glTextureFloat && checkRenderTargetSupport(gl, gl.LUMINANCE, gl.FLOAT) ? 'LUMINANCE' : '', glTextureFloat && checkRenderTargetSupport(gl, gl.ALPHA, gl.FLOAT) ? 'ALPHA' : '', glTextureFloat && checkRenderTargetSupport(gl, gl.LUMINANCE_ALPHA, gl.FLOAT) ? 'LUMINANCE_ALPHA' : ''].join(' ')], ['Max Multiple Render Targets Buffers', 'MAX_DRAW_BUFFERS_WEBGL', glDrawBuffers ? gl.getParameter(glDrawBuffers.MAX_DRAW_BUFFERS_WEBGL) : 0], ['High Float Precision in Vertex Shader', 'HIGH_FLOAT VERTEX_SHADER', [gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).rangeMax, '</sup>)'].join('')], ['Medium Float Precision in Vertex Shader', 'MEDIUM_FLOAT VERTEX_SHADER', [gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).rangeMax, '</sup>)'].join('')], ['Low Float Precision in Vertex Shader', 'LOW_FLOAT VERTEX_SHADER', [gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT).rangeMax, '</sup>)'].join('')], ['High Float Precision in Fragment Shader', 'HIGH_FLOAT FRAGMENT_SHADER', [gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).rangeMax, '</sup>)'].join('')], ['Medium Float Precision in Fragment Shader', 'MEDIUM_FLOAT FRAGMENT_SHADER', [gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).rangeMax, '</sup>)'].join('')], ['Low Float Precision in Fragment Shader', 'LOW_FLOAT FRAGMENT_SHADER', [gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_FLOAT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_FLOAT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_FLOAT).rangeMax, '</sup>)'].join('')], ['High Int Precision in Vertex Shader', 'HIGH_INT VERTEX_SHADER', [gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_INT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_INT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_INT).rangeMax, '</sup>)'].join('')], ['Medium Int Precision in Vertex Shader', 'MEDIUM_INT VERTEX_SHADER', [gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_INT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_INT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_INT).rangeMax, '</sup>)'].join('')], ['Low Int Precision in Vertex Shader', 'LOW_INT VERTEX_SHADER', [gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_INT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_INT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_INT).rangeMax, '</sup>)'].join('')], ['High Int Precision in Fragment Shader', 'HIGH_INT FRAGMENT_SHADER', [gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_INT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_INT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_INT).rangeMax, '</sup>)'].join('')], ['Medium Int Precision in Fragment Shader', 'MEDIUM_INT FRAGMENT_SHADER', [gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_INT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_INT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_INT).rangeMax, '</sup>)'].join('')], ['Low Int Precision in Fragment Shader', 'LOW_INT FRAGMENT_SHADER', [gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_INT).precision, ' (-2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_INT).rangeMin, '</sup> - 2<sup>', gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_INT).rangeMax, '</sup>)'].join('')], ['Supported Extensions', 'EXTENSIONS', gl.getSupportedExtensions().join('<br/>\\t\\t\\t\\t\\t    ')], ['WebGL Renderer', 'RENDERER', gl.getParameter(gl.RENDERER)], ['WebGL Vendor', 'VENDOR', gl.getParameter(gl.VENDOR)], ['WebGL Version', 'VERSION', gl.getParameter(gl.VERSION)], ['Shading Language Version', 'SHADING_LANGUAGE_VERSION', gl.getParameter(gl.SHADING_LANGUAGE_VERSION)], ['Unmasked Renderer', 'UNMASKED_RENDERER', glDebugRendererInfo && gl.getParameter(glDebugRendererInfo.UNMASKED_RENDERER_WEBGL)], ['Unmasked Vendor', 'UNMASKED_VENDOR', glDebugRendererInfo && gl.getParameter(glDebugRendererInfo.UNMASKED_VENDOR_WEBGL)], ['WebGL Version', 'WEBGL_VERSION', model.webgl2 ? 2 : 1]];\n    var result = {};\n\n    while (params.length) {\n      var _params$pop = params.pop(),\n          _params$pop2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_params$pop, 3),\n          label = _params$pop2[0],\n          key = _params$pop2[1],\n          value = _params$pop2[2];\n\n      if (key) {\n        result[key] = {\n          label: label,\n          value: value\n        };\n      }\n    }\n\n    return result;\n  };\n\n  publicAPI.traverseAllPasses = function () {\n    if (model.renderPasses) {\n      for (var index = 0; index < model.renderPasses.length; ++index) {\n        model.renderPasses[index].traverse(publicAPI, null);\n      }\n    }\n\n    if (model.notifyStartCaptureImage) {\n      getCanvasDataURL();\n    }\n  };\n\n  publicAPI.disableCullFace = function () {\n    if (model.cullFaceEnabled) {\n      model.context.disable(model.context.CULL_FACE);\n      model.cullFaceEnabled = false;\n    }\n  };\n\n  publicAPI.enableCullFace = function () {\n    if (!model.cullFaceEnabled) {\n      model.context.enable(model.context.CULL_FACE);\n      model.cullFaceEnabled = true;\n    }\n  };\n\n  publicAPI.setViewStream = function (stream) {\n    if (model.viewStream === stream) {\n      return false;\n    }\n\n    if (model.subscription) {\n      model.subscription.unsubscribe();\n      model.subscription = null;\n    }\n\n    model.viewStream = stream;\n\n    if (model.viewStream) {\n      // Force background to be transparent + render\n      var mainRenderer = model.renderable.getRenderers()[0];\n      mainRenderer.getBackgroundByReference()[3] = 0; // Enable display of the background image\n\n      publicAPI.setUseBackgroundImage(true); // Bind to remote stream\n\n      model.subscription = model.viewStream.onImageReady(function (e) {\n        return publicAPI.setBackgroundImage(e.image);\n      });\n      model.viewStream.setSize(model.size[0], model.size[1]);\n      model.viewStream.invalidateCache();\n      model.viewStream.render();\n      publicAPI.modified();\n    }\n\n    return true;\n  };\n\n  publicAPI.createSelector = function () {\n    var ret = _HardwareSelector_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance();\n    ret.setOpenGLRenderWindow(publicAPI);\n    return ret;\n  };\n\n  publicAPI.delete = _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].chain(publicAPI.delete, publicAPI.setViewStream, deleteGLContext);\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  cullFaceEnabled: false,\n  shaderCache: null,\n  initialized: false,\n  context: null,\n  canvas: null,\n  cursorVisibility: true,\n  cursor: 'pointer',\n  textureUnitManager: null,\n  textureResourceIds: null,\n  containerSize: null,\n  renderPasses: [],\n  notifyStartCaptureImage: false,\n  webgl2: false,\n  defaultToWebgl2: true,\n  // attempt webgl2 on by default\n  activeFramebuffer: null,\n  xrSession: null,\n  xrSessionIsAR: false,\n  xrReferenceSpace: null,\n  xrSupported: true,\n  imageFormat: 'image/png',\n  useOffScreen: false,\n  useBackgroundImage: false\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_RenderWindowViewNode_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"].extend(publicAPI, model, initialValues); // Create internal instances\n\n  model.canvas = document.createElement('canvas');\n  model.canvas.style.width = '100%';\n  createGLContext();\n\n  if (!model.selector) {\n    model.selector = _HardwareSelector_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance();\n    model.selector.setOpenGLRenderWindow(publicAPI);\n  } // Create internal bgImage\n\n\n  model.bgImage = new Image();\n  model.bgImage.style.position = 'absolute';\n  model.bgImage.style.left = '0';\n  model.bgImage.style.top = '0';\n  model.bgImage.style.width = '100%';\n  model.bgImage.style.height = '100%';\n  model.bgImage.style.zIndex = '-1';\n  model._textureResourceIds = new Map();\n  model.myFactory = _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"].newInstance();\n  /* eslint-disable no-use-before-define */\n\n  model.myFactory.registerOverride('vtkRenderWindow', newInstance);\n  /* eslint-enable no-use-before-define */\n\n  model.shaderCache = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].newInstance();\n  model.shaderCache.setOpenGLRenderWindow(publicAPI); // setup default forward pass rendering\n\n  model.renderPasses[0] = _ForwardPass_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance();\n  _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].event(publicAPI, model, 'imageReady');\n  _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].event(publicAPI, model, 'haveVRDisplay'); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get(publicAPI, model, ['shaderCache', 'textureUnitManager', 'webgl2', 'vrDisplay', 'useBackgroundImage', 'xrSupported']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].setGet(publicAPI, model, ['initialized', 'context', 'canvas', 'renderPasses', 'notifyStartCaptureImage', 'defaultToWebgl2', 'cursor', 'useOffScreen', // might want to make this not call modified as\n  // we change the active framebuffer a lot. Or maybe\n  // only mark modified if the size or depth\n  // of the buffer has changed\n  'activeFramebuffer']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].setGetArray(publicAPI, model, ['size'], 2); // Object methods\n\n  vtkOpenGLRenderWindow(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance(extend, 'vtkOpenGLRenderWindow'); // ----------------------------------------------------------------------------\n// Register API specific RenderWindow implementation\n// ----------------------------------------------------------------------------\n\n(0,_Core_RenderWindow_js__WEBPACK_IMPORTED_MODULE_6__.registerViewConstructor)('WebGL', newInstance); // ----------------------------------------------------------------------------\n\nvar vtkRenderWindow = {\n  newInstance: newInstance,\n  extend: extend,\n  pushMonitorGLContextCount: pushMonitorGLContextCount,\n  popMonitorGLContextCount: popMonitorGLContextCount\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/RenderWindow.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Renderer.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Renderer.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkRenderer),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkDebugMacro; // ----------------------------------------------------------------------------\n// vtkOpenGLRenderer methods\n// ----------------------------------------------------------------------------\n\n/* eslint-disable no-bitwise */\n\nfunction vtkOpenGLRenderer(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLRenderer'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      if (!model.renderable) {\n        return;\n      }\n\n      publicAPI.updateLights();\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNode(model.renderable.getActiveCamera());\n      publicAPI.addMissingNodes(model.renderable.getViewPropsWithNestedProps());\n      publicAPI.removeUnusedNodes();\n    }\n  };\n\n  publicAPI.updateLights = function () {\n    var count = 0;\n    var lights = model.renderable.getLightsByReference();\n\n    for (var index = 0; index < lights.length; ++index) {\n      if (lights[index].getSwitch() > 0.0) {\n        count++;\n      }\n    }\n\n    if (!count) {\n      vtkDebugMacro('No lights are on, creating one.');\n      model.renderable.createLight();\n    }\n\n    return count;\n  };\n\n  publicAPI.opaqueZBufferPass = function (prepass) {\n    if (prepass) {\n      var clearMask = 0;\n      var gl = model.context;\n\n      if (!model.renderable.getTransparent()) {\n        model.context.clearColor(1.0, 0.0, 0.0, 1.0);\n        clearMask |= gl.COLOR_BUFFER_BIT;\n      }\n\n      if (!model.renderable.getPreserveDepthBuffer()) {\n        gl.clearDepth(1.0);\n        clearMask |= gl.DEPTH_BUFFER_BIT;\n        model.context.depthMask(true);\n      }\n\n      var ts = publicAPI.getTiledSizeAndOrigin();\n      gl.enable(gl.SCISSOR_TEST);\n      gl.scissor(ts.lowerLeftU, ts.lowerLeftV, ts.usize, ts.vsize);\n      gl.viewport(ts.lowerLeftU, ts.lowerLeftV, ts.usize, ts.vsize);\n      gl.colorMask(true, true, true, true);\n      gl.clear(clearMask);\n      gl.enable(gl.DEPTH_TEST);\n    }\n  }; // Renders myself\n\n\n  publicAPI.cameraPass = function (prepass) {\n    if (prepass) {\n      publicAPI.clear();\n    }\n  };\n\n  publicAPI.getAspectRatio = function () {\n    var size = model._parent.getSizeByReference();\n\n    var viewport = model.renderable.getViewportByReference();\n    return size[0] * (viewport[2] - viewport[0]) / ((viewport[3] - viewport[1]) * size[1]);\n  };\n\n  publicAPI.getTiledSizeAndOrigin = function () {\n    var vport = model.renderable.getViewportByReference(); // if there is no window assume 0 1\n\n    var tileViewPort = [0.0, 0.0, 1.0, 1.0]; // find the lower left corner of the viewport, taking into account the\n    // lower left boundary of this tile\n\n    var vpu = vport[0] - tileViewPort[0];\n    var vpv = vport[1] - tileViewPort[1]; // store the result as a pixel value\n\n    var ndvp = model._parent.normalizedDisplayToDisplay(vpu, vpv);\n\n    var lowerLeftU = Math.round(ndvp[0]);\n    var lowerLeftV = Math.round(ndvp[1]); // find the upper right corner of the viewport, taking into account the\n    // lower left boundary of this tile\n\n    var vpu2 = vport[2] - tileViewPort[0];\n    var vpv2 = vport[3] - tileViewPort[1];\n\n    var ndvp2 = model._parent.normalizedDisplayToDisplay(vpu2, vpv2); // now compute the size of the intersection of the viewport with the\n    // current tile\n\n\n    var usize = Math.round(ndvp2[0]) - lowerLeftU;\n    var vsize = Math.round(ndvp2[1]) - lowerLeftV;\n\n    if (usize < 0) {\n      usize = 0;\n    }\n\n    if (vsize < 0) {\n      vsize = 0;\n    }\n\n    return {\n      usize: usize,\n      vsize: vsize,\n      lowerLeftU: lowerLeftU,\n      lowerLeftV: lowerLeftV\n    };\n  };\n\n  publicAPI.clear = function () {\n    var clearMask = 0;\n    var gl = model.context;\n\n    if (!model.renderable.getTransparent()) {\n      var background = model.renderable.getBackgroundByReference(); // renderable ensures that background has 4 entries.\n\n      model.context.clearColor(background[0], background[1], background[2], background[3]);\n      clearMask |= gl.COLOR_BUFFER_BIT;\n    }\n\n    if (!model.renderable.getPreserveDepthBuffer()) {\n      gl.clearDepth(1.0);\n      clearMask |= gl.DEPTH_BUFFER_BIT;\n      model.context.depthMask(true);\n    }\n\n    gl.colorMask(true, true, true, true);\n    var ts = publicAPI.getTiledSizeAndOrigin();\n    gl.enable(gl.SCISSOR_TEST);\n    gl.scissor(ts.lowerLeftU, ts.lowerLeftV, ts.usize, ts.vsize);\n    gl.viewport(ts.lowerLeftU, ts.lowerLeftV, ts.usize, ts.vsize);\n    gl.clear(clearMask);\n    gl.enable(gl.DEPTH_TEST);\n    /* eslint-enable no-bitwise */\n  };\n\n  publicAPI.releaseGraphicsResources = function () {\n    if (model.selector !== null) {\n      model.selector.releaseGraphicsResources();\n    }\n  };\n\n  publicAPI.setOpenGLRenderWindow = function (rw) {\n    if (model._openGLRenderWindow === rw) {\n      return;\n    }\n\n    publicAPI.releaseGraphicsResources();\n    model._openGLRenderWindow = rw;\n    model.context = null;\n\n    if (rw) {\n      model.context = model._openGLRenderWindow.getContext();\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  context: null,\n  // _openGLRenderWindow: null,\n  selector: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['shaderCache']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['selector']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.moveToProtected)(publicAPI, model, ['openGLRenderWindow']); // Object methods\n\n  vtkOpenGLRenderer(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkOpenGLRenderer'); // ----------------------------------------------------------------------------\n\nvar vtkRenderer = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__.registerOverride)('vtkRenderer', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Renderer.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/ReplacementShaderMapper.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/ReplacementShaderMapper.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkReplacementShaderMapper)\n/* harmony export */ });\n/* harmony import */ var _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ShaderProgram.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderProgram.js\");\n\n\nfunction implementReplaceShaderCoincidentOffset(publicAPI, model) {\n\n  publicAPI.replaceShaderCoincidentOffset = function (shaders, ren, actor) {\n    var cp = publicAPI.getCoincidentParameters(ren, actor); // if we need an offset handle it here\n    // The value of .000016 is suitable for depth buffers\n    // of at least 16 bit depth. We do not query the depth\n    // right now because we would need some mechanism to\n    // cache the result taking into account FBO changes etc.\n\n    if (cp && (cp.factor !== 0.0 || cp.offset !== 0.0)) {\n      var FSSource = shaders.Fragment;\n      FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].substitute(FSSource, '//VTK::Coincident::Dec', ['uniform float cfactor;', 'uniform float coffset;']).result;\n\n      if (model.context.getExtension('EXT_frag_depth')) {\n        if (cp.factor !== 0.0) {\n          FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].substitute(FSSource, '//VTK::UniformFlow::Impl', ['float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));', '//VTK::UniformFlow::Impl'], false).result;\n          FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].substitute(FSSource, '//VTK::Depth::Impl', 'gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;').result;\n        } else {\n          FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].substitute(FSSource, '//VTK::Depth::Impl', 'gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;').result;\n        }\n      }\n\n      if (model._openGLRenderWindow.getWebgl2()) {\n        if (cp.factor !== 0.0) {\n          FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].substitute(FSSource, '//VTK::UniformFlow::Impl', ['float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));', '//VTK::UniformFlow::Impl'], false).result;\n          FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].substitute(FSSource, '//VTK::Depth::Impl', 'gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;').result;\n        } else {\n          FSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].substitute(FSSource, '//VTK::Depth::Impl', 'gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;').result;\n        }\n      }\n\n      shaders.Fragment = FSSource;\n    }\n  };\n}\n\nvar vtkReplacementShaderMapper = {\n  implementReplaceShaderCoincidentOffset: implementReplaceShaderCoincidentOffset\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/ReplacementShaderMapper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/ScalarBarActor.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/ScalarBarActor.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_ScalarBarActor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/ScalarBarActor.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/ScalarBarActor.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n\n// vtkOpenGLScalarBarActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLScalarBarActor(publicAPI, model) {\n  model.classHierarchy.push('vtkOpenGLScalarBarActor'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');\n      model._openGLRenderWindow = model.openGLRenderer.getParent();\n\n      if (!model.scalarBarActorHelper.getRenderable()) {\n        model.scalarBarActorHelper.setRenderable(model.renderable);\n      }\n\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNode(model.scalarBarActorHelper.getBarActor());\n      publicAPI.addMissingNode(model.scalarBarActorHelper.getTmActor());\n      publicAPI.removeUnusedNodes();\n    }\n  };\n\n  publicAPI.opaquePass = function (prepass, renderPass) {\n    if (prepass) {\n      var camera = model.openGLRenderer ? model.openGLRenderer.getRenderable().getActiveCamera() : null;\n      var tsize = model.openGLRenderer.getTiledSizeAndOrigin();\n      model.scalarBarActorHelper.updateAPISpecificData([tsize.usize, tsize.vsize], camera, model._openGLRenderWindow.getRenderable());\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  model.scalarBarActorHelper = _Core_ScalarBarActor_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newScalarBarActorHelper(); // Object methods\n\n  vtkOpenGLScalarBarActor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkOpenGLScalarBarActor'); // ----------------------------------------------------------------------------\n\nvar index = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_3__.registerOverride)('vtkScalarBarActor', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/ScalarBarActor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Shader.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Shader.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkShader$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro; // export const SHADER_TYPES = ['Vertex', 'Fragment', 'Geometry', 'Unknown'];\n// ----------------------------------------------------------------------------\n// vtkShader methods\n// ----------------------------------------------------------------------------\n\nfunction vtkShader(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkShader');\n\n  publicAPI.compile = function () {\n    var stype = model.context.VERTEX_SHADER;\n\n    if (!model.source || !model.source.length || model.shaderType === 'Unknown') {\n      return false;\n    } // Ensure we delete the previous shader if necessary.\n\n\n    if (model.handle !== 0) {\n      model.context.deleteShader(model.handle);\n      model.handle = 0;\n    }\n\n    switch (model.shaderType) {\n      // case vtkShader::Geometry:\n      //   type = GL_GEOMETRY_SHADER;\n      //   break;\n      case 'Fragment':\n        stype = model.context.FRAGMENT_SHADER;\n        break;\n\n      case 'Vertex':\n      default:\n        stype = model.context.VERTEX_SHADER;\n        break;\n    }\n\n    model.handle = model.context.createShader(stype);\n    model.context.shaderSource(model.handle, model.source);\n    model.context.compileShader(model.handle);\n    var isCompiled = model.context.getShaderParameter(model.handle, model.context.COMPILE_STATUS);\n\n    if (!isCompiled) {\n      var lastError = model.context.getShaderInfoLog(model.handle);\n      vtkErrorMacro(\"Error compiling shader '\".concat(model.source, \"': \").concat(lastError));\n      model.context.deleteShader(model.handle);\n      model.handle = 0;\n      return false;\n    } // The shader compiled, store its handle and return success.\n\n\n    return true;\n  };\n\n  publicAPI.cleanup = function () {\n    if (model.shaderType === 'Unknown' || model.handle === 0) {\n      return;\n    }\n\n    model.context.deleteShader(model.handle);\n    model.handle = 0;\n    model.dirty = true;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  shaderType: 'Unknown',\n  source: '',\n  error: '',\n  handle: 0,\n  dirty: false,\n  context: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['shaderType', 'source', 'error', 'handle', 'context']); // Object methods\n\n  vtkShader(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkShader'); // ----------------------------------------------------------------------------\n\nvar vtkShader$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Shader.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderCache.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderCache.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkShaderCache$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var spark_md5__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! spark-md5 */ \"./node_modules/spark-md5/spark-md5.js\");\n/* harmony import */ var spark_md5__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(spark_md5__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ShaderProgram.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderProgram.js\");\n\n\n\n\nvar SET_GET_FIELDS = ['lastShaderBound', 'context', '_openGLRenderWindow']; // ----------------------------------------------------------------------------\n// vtkShaderCache methods\n// ----------------------------------------------------------------------------\n\nfunction vtkShaderCache(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkShaderCache');\n\n  publicAPI.replaceShaderValues = function (VSSource, FSSource, GSSource) {\n    // first handle renaming any Fragment shader inputs\n    // if we have a geometry shader. By default fragment shaders\n    // assume their inputs come from a Vertex Shader. When we\n    // have a Geometry shader we rename the frament shader inputs\n    // to come from the geometry shader\n    var nFSSource = FSSource;\n\n    if (GSSource.length > 0) {\n      nFSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(nFSSource, 'VSOut', 'GSOut').result;\n    }\n\n    var gl2 = model._openGLRenderWindow.getWebgl2();\n\n    var fragDepthString = '\\n';\n    var version = '#version 100\\n';\n\n    if (gl2) {\n      version = '#version 300 es\\n' + '#define attribute in\\n' + '#define textureCube texture\\n' + '#define texture2D texture\\n' + '#define textureCubeLod textureLod\\n' + '#define texture2DLod textureLod\\n';\n    } else {\n      model.context.getExtension('OES_standard_derivatives');\n\n      if (model.context.getExtension('EXT_frag_depth')) {\n        fragDepthString = '#extension GL_EXT_frag_depth : enable\\n';\n      }\n\n      if (model.context.getExtension('EXT_shader_texture_lod')) {\n        fragDepthString += '#extension GL_EXT_shader_texture_lod : enable\\n' + '#define textureCubeLod textureCubeLodEXT\\n' + '#define texture2DLod texture2DLodEXT';\n      }\n    }\n\n    nFSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(nFSSource, '//VTK::System::Dec', [\"\".concat(version, \"\\n\"), gl2 ? '' : '#extension GL_OES_standard_derivatives : enable\\n', fragDepthString, '#ifdef GL_FRAGMENT_PRECISION_HIGH', 'precision highp float;', 'precision highp int;', '#else', 'precision mediump float;', 'precision mediump int;', '#endif']).result;\n    var nVSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(VSSource, '//VTK::System::Dec', [\"\".concat(version, \"\\n\"), '#ifdef GL_FRAGMENT_PRECISION_HIGH', 'precision highp float;', 'precision highp int;', '#else', 'precision mediump float;', 'precision mediump int;', '#endif']).result;\n\n    if (gl2) {\n      nVSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(nVSSource, 'varying', 'out').result;\n      nFSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(nFSSource, 'varying', 'in').result;\n      var shaderOutputs = '';\n      var outputCount = 0;\n\n      while (nFSSource.includes(\"gl_FragData[\".concat(outputCount, \"]\"))) {\n        nFSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(nFSSource, \"gl_FragData\\\\[\".concat(outputCount, \"\\\\]\"), \"fragOutput\".concat(outputCount)).result;\n        shaderOutputs += \"layout(location = \".concat(outputCount, \") out vec4 fragOutput\").concat(outputCount, \";\\n\");\n        outputCount++;\n      }\n\n      nFSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(nFSSource, '//VTK::Output::Dec', shaderOutputs).result;\n    } // nFSSource = ShaderProgram.substitute(nFSSource, 'gl_FragData\\\\[0\\\\]',\n    //   'gl_FragColor').result;\n\n\n    var nGSSource = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].substitute(GSSource, '//VTK::System::Dec', version).result;\n    return {\n      VSSource: nVSSource,\n      FSSource: nFSSource,\n      GSSource: nGSSource\n    };\n  }; // return NULL if there is an issue\n\n\n  publicAPI.readyShaderProgramArray = function (vertexCode, fragmentCode, geometryCode) {\n    var data = publicAPI.replaceShaderValues(vertexCode, fragmentCode, geometryCode);\n    var shader = publicAPI.getShaderProgram(data.VSSource, data.FSSource, data.GSSource);\n    return publicAPI.readyShaderProgram(shader);\n  };\n\n  publicAPI.readyShaderProgram = function (shader) {\n    if (!shader) {\n      return null;\n    } // compile if needed\n\n\n    if (!shader.getCompiled() && !shader.compileShader()) {\n      return null;\n    } // bind if needed\n\n\n    if (!publicAPI.bindShader(shader)) {\n      return null;\n    }\n\n    return shader;\n  };\n\n  publicAPI.getShaderProgram = function (vertexCode, fragmentCode, geometryCode) {\n    // compute the MD5 and the check the map\n    var hashInput = \"\".concat(vertexCode).concat(fragmentCode).concat(geometryCode);\n    var result = spark_md5__WEBPACK_IMPORTED_MODULE_0___default().hash(hashInput); // does it already exist?\n\n    var loc = Object.keys(model.shaderPrograms).indexOf(result);\n\n    if (loc === -1) {\n      // create one\n      var sps = _ShaderProgram_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n      sps.setContext(model.context);\n      sps.getVertexShader().setSource(vertexCode);\n      sps.getFragmentShader().setSource(fragmentCode);\n\n      if (geometryCode) {\n        sps.getGeometryShader().setSource(geometryCode);\n      }\n\n      sps.setMd5Hash(result);\n      model.shaderPrograms[result] = sps;\n      return sps;\n    }\n\n    return model.shaderPrograms[result];\n  };\n\n  publicAPI.releaseGraphicsResources = function (win) {\n    // NOTE:\n    // In the current implementation as of October 26th, if a shader\n    // program is created by ShaderCache then it should make sure\n    // that it releases the graphics resources used by these programs.\n    // It is not wisely for callers to do that since then they would\n    // have to loop over all the programs were in use and invoke\n    // release graphics resources individually.\n    publicAPI.releaseCurrentShader();\n    Object.keys(model.shaderPrograms).map(function (key) {\n      return model.shaderPrograms[key];\n    }).forEach(function (sp) {\n      return sp.releaseGraphicsResources(win);\n    });\n  };\n\n  publicAPI.releaseGraphicsResources = function () {\n    // release prior shader\n    if (model.astShaderBound) {\n      model.lastShaderBound.release();\n      model.lastShaderBound = null;\n    }\n  };\n\n  publicAPI.bindShader = function (shader) {\n    if (model.lastShaderBound === shader) {\n      return 1;\n    } // release prior shader\n\n\n    if (model.lastShaderBound) {\n      model.lastShaderBound.release();\n    }\n\n    shader.bind();\n    model.lastShaderBound = shader;\n    return 1;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  lastShaderBound: null,\n  shaderPrograms: null,\n  context: null // _openGLRenderWindow: null,\n\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Internal objects\n\n  model.shaderPrograms = {}; // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, SET_GET_FIELDS);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].moveToProtected(publicAPI, model, ['openGLRenderWindow']); // Object methods\n\n  vtkShaderCache(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkShaderCache'); // ----------------------------------------------------------------------------\n\nvar vtkShaderCache$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderCache.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderProgram.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderProgram.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkShaderProgram$1)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Shader_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Shader.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Shader.js\");\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro; // perform in place string substitutions, indicate if a substitution was done\n// this is useful for building up shader strings which typically involve\n// lots of string substitutions. Return true if a substitution was done.\n\nfunction substitute(source, search, replace) {\n  var all = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n  var replaceStr = Array.isArray(replace) ? replace.join('\\n') : replace;\n  var replaced = false;\n\n  if (source.search(search) !== -1) {\n    replaced = true;\n  }\n\n  var gflag = '';\n\n  if (all) {\n    gflag = 'g';\n  }\n\n  var regex = new RegExp(search, gflag);\n  var resultstr = source.replace(regex, replaceStr);\n  return {\n    replace: replaced,\n    result: resultstr\n  };\n} // ----------------------------------------------------------------------------\n// vtkShaderProgram methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkShaderProgram(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkShaderProgram');\n\n  publicAPI.compileShader = function () {\n    if (!model.vertexShader.compile()) {\n      vtkErrorMacro(model.vertexShader.getSource().split('\\n').map(function (line, index) {\n        return \"\".concat(index, \": \").concat(line);\n      }).join('\\n'));\n      vtkErrorMacro(model.vertexShader.getError());\n      return 0;\n    }\n\n    if (!model.fragmentShader.compile()) {\n      vtkErrorMacro(model.fragmentShader.getSource().split('\\n').map(function (line, index) {\n        return \"\".concat(index, \": \").concat(line);\n      }).join('\\n'));\n      vtkErrorMacro(model.fragmentShader.getError());\n      return 0;\n    } // skip geometry for now\n\n\n    if (!publicAPI.attachShader(model.vertexShader)) {\n      vtkErrorMacro(model.error);\n      return 0;\n    }\n\n    if (!publicAPI.attachShader(model.fragmentShader)) {\n      vtkErrorMacro(model.error);\n      return 0;\n    }\n\n    if (!publicAPI.link()) {\n      vtkErrorMacro(\"Links failed: \".concat(model.error));\n      return 0;\n    }\n\n    publicAPI.setCompiled(true);\n    return 1;\n  };\n\n  publicAPI.cleanup = function () {\n    if (model.shaderType === 'Unknown' || model.handle === 0) {\n      return;\n    }\n\n    model.context.deleteShader(model.handle);\n    model.handle = 0;\n  };\n\n  publicAPI.bind = function () {\n    if (!model.linked && !publicAPI.link()) {\n      return false;\n    }\n\n    model.context.useProgram(model.handle);\n    publicAPI.setBound(true);\n    return true;\n  };\n\n  publicAPI.isBound = function () {\n    return !!model.bound;\n  };\n\n  publicAPI.release = function () {\n    model.context.useProgram(null);\n    publicAPI.setBound(false);\n  };\n\n  publicAPI.setContext = function (ctx) {\n    model.vertexShader.setContext(ctx);\n    model.fragmentShader.setContext(ctx);\n    model.geometryShader.setContext(ctx);\n  };\n\n  publicAPI.link = function () {\n    if (model.inked) {\n      return true;\n    }\n\n    if (model.handle === 0) {\n      model.error = 'Program has not been initialized, and/or does not have shaders.';\n      return false;\n    } // clear out the list of uniforms used\n\n\n    model.uniformLocs = {};\n    model.context.linkProgram(model.handle);\n    var isCompiled = model.context.getProgramParameter(model.handle, model.context.LINK_STATUS);\n\n    if (!isCompiled) {\n      var lastError = model.context.getProgramInfoLog(model.handle);\n      vtkErrorMacro(\"Error linking shader \".concat(lastError));\n      model.handle = 0;\n      return false;\n    }\n\n    publicAPI.setLinked(true);\n    model.attributeLocs = {};\n    return true;\n  };\n\n  publicAPI.setUniformMatrix = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    var f32 = new Float32Array(v);\n    model.context.uniformMatrix4fv(location, false, f32);\n    return true;\n  };\n\n  publicAPI.setUniformMatrix3x3 = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    var f32 = new Float32Array(v);\n    model.context.uniformMatrix3fv(location, false, f32);\n    return true;\n  };\n\n  publicAPI.setUniformf = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform1f(location, v);\n    return true;\n  };\n\n  publicAPI.setUniformfv = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform1fv(location, v);\n    return true;\n  };\n\n  publicAPI.setUniformi = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform1i(location, v);\n    return true;\n  };\n\n  publicAPI.setUniformiv = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform1iv(location, v);\n    return true;\n  };\n\n  publicAPI.setUniform2f = function (name, v1, v2) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    if (v2 === undefined) {\n      throw new RangeError('Invalid number of values for array');\n    }\n\n    model.context.uniform2f(location, v1, v2);\n    return true;\n  };\n\n  publicAPI.setUniform2fv = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform2fv(location, v);\n    return true;\n  };\n\n  publicAPI.setUniform2i = function (name, v1, v2) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    if (v2 === undefined) {\n      throw new RangeError('Invalid number of values for array');\n    }\n\n    model.context.uniform2i(location, v1, v2);\n    return true;\n  };\n\n  publicAPI.setUniform2iv = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform2iv(location, v);\n    return true;\n  };\n\n  publicAPI.setUniform3f = function (name, a1, a2, a3) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    if (a3 === undefined) {\n      throw new RangeError('Invalid number of values for array');\n    }\n\n    model.context.uniform3f(location, a1, a2, a3);\n    return true;\n  };\n\n  publicAPI.setUniform3fArray = function (name, a) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    if (!Array.isArray(a) || a.length !== 3) {\n      throw new RangeError('Invalid number of values for array');\n    }\n\n    model.context.uniform3f(location, a[0], a[1], a[2]);\n    return true;\n  };\n\n  publicAPI.setUniform3fv = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform3fv(location, v);\n    return true;\n  };\n\n  publicAPI.setUniform3i = function (name) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    var array = args; // allow an array passed as a single argument\n\n    if (array.length === 1 && Array.isArray(array[0])) {\n      array = array[0];\n    }\n\n    if (array.length !== 3) {\n      throw new RangeError('Invalid number of values for array');\n    }\n\n    model.context.uniform3i(location, array[0], array[1], array[2]);\n    return true;\n  };\n\n  publicAPI.setUniform3iv = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform3iv(location, v);\n    return true;\n  };\n\n  publicAPI.setUniform4f = function (name) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      args[_key2 - 1] = arguments[_key2];\n    }\n\n    var array = args; // allow an array passed as a single argument\n\n    if (array.length === 1 && Array.isArray(array[0])) {\n      array = array[0];\n    }\n\n    if (array.length !== 4) {\n      throw new RangeError('Invalid number of values for array');\n    }\n\n    model.context.uniform4f(location, array[0], array[1], array[2], array[3]);\n    return true;\n  };\n\n  publicAPI.setUniform4fv = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform4fv(location, v);\n    return true;\n  };\n\n  publicAPI.setUniform4i = function (name) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n      args[_key3 - 1] = arguments[_key3];\n    }\n\n    var array = args; // allow an array passed as a single argument\n\n    if (array.length === 1 && Array.isArray(array[0])) {\n      array = array[0];\n    }\n\n    if (array.length !== 4) {\n      throw new RangeError('Invalid number of values for array');\n    }\n\n    model.context.uniform4i(location, array[0], array[1], array[2], array[3]);\n    return true;\n  };\n\n  publicAPI.setUniform4iv = function (name, v) {\n    var location = publicAPI.findUniform(name);\n\n    if (location === -1) {\n      model.error = \"Could not set uniform \".concat(name, \" . No such uniform.\");\n      return false;\n    }\n\n    model.context.uniform4iv(location, v);\n    return true;\n  };\n\n  publicAPI.findUniform = function (name) {\n    if (!name || !model.linked) {\n      return -1;\n    } // see if we have cached the result\n\n\n    var loc = model.uniformLocs[name];\n\n    if (loc !== undefined) {\n      return loc;\n    }\n\n    loc = model.context.getUniformLocation(model.handle, name);\n\n    if (loc === null) {\n      model.error = \"Uniform \".concat(name, \" not found in current shader program.\");\n      model.uniformLocs[name] = -1;\n      return -1;\n    }\n\n    model.uniformLocs[name] = loc;\n    return loc;\n  };\n\n  publicAPI.isUniformUsed = function (name) {\n    if (!name) {\n      return false;\n    } // see if we have cached the result\n\n\n    var loc = model.uniformLocs[name];\n\n    if (loc !== undefined) {\n      return loc !== null;\n    }\n\n    if (!model.linked) {\n      vtkErrorMacro('attempt to find uniform when the shader program is not linked');\n      return false;\n    }\n\n    loc = model.context.getUniformLocation(model.handle, name);\n    model.uniformLocs[name] = loc;\n\n    if (loc === null) {\n      return false;\n    }\n\n    return true;\n  };\n\n  publicAPI.isAttributeUsed = function (name) {\n    if (!name) {\n      return false;\n    } // see if we have cached the result\n\n\n    var loc = Object.keys(model.attributeLocs).indexOf(name);\n\n    if (loc !== -1) {\n      return true;\n    }\n\n    if (!model.linked) {\n      vtkErrorMacro('attempt to find uniform when the shader program is not linked');\n      return false;\n    }\n\n    loc = model.context.getAttribLocation(model.handle, name);\n\n    if (loc === -1) {\n      return false;\n    }\n\n    model.attributeLocs[name] = loc;\n    return true;\n  };\n\n  publicAPI.attachShader = function (shader) {\n    if (shader.getHandle() === 0) {\n      model.error = 'Shader object was not initialized, cannot attach it.';\n      return false;\n    }\n\n    if (shader.getShaderType() === 'Unknown') {\n      model.error = 'Shader object is of type Unknown and cannot be used.';\n      return false;\n    }\n\n    if (model.handle === 0) {\n      var thandle = model.context.createProgram();\n\n      if (thandle === 0) {\n        model.error = 'Could not create shader program.';\n        return false;\n      }\n\n      model.handle = thandle;\n      model.linked = false;\n    }\n\n    if (shader.getShaderType() === 'Vertex') {\n      if (model.vertexShaderHandle !== 0) {\n        model.comntext.detachShader(model.handle, model.vertexShaderHandle);\n      }\n\n      model.vertexShaderHandle = shader.getHandle();\n    }\n\n    if (shader.getShaderType() === 'Fragment') {\n      if (model.fragmentShaderHandle !== 0) {\n        model.context.detachShader(model.handle, model.fragmentShaderHandle);\n      }\n\n      model.fragmentShaderHandle = shader.getHandle();\n    }\n\n    model.context.attachShader(model.handle, shader.getHandle());\n    publicAPI.setLinked(false);\n    return true;\n  };\n\n  publicAPI.detachShader = function (shader) {\n    if (shader.getHandle() === 0) {\n      model.error = 'shader object was not initialized, cannot attach it.';\n      return false;\n    }\n\n    if (shader.getShaderType() === 'Unknown') {\n      model.error = 'Shader object is of type Unknown and cannot be used.';\n      return false;\n    }\n\n    if (model.handle === 0) {\n      model.error = 'This shader program has not been initialized yet.';\n    }\n\n    switch (shader.getShaderType()) {\n      case 'Vertex':\n        if (model.vertexShaderHandle !== shader.getHandle()) {\n          model.error = 'The supplied shader was not attached to this program.';\n          return false;\n        }\n\n        model.context.detachShader(model.handle, shader.getHandle());\n        model.vertexShaderHandle = 0;\n        model.linked = false;\n        return true;\n\n      case 'Fragment':\n        if (model.fragmentShaderHandle !== shader.getHandle()) {\n          model.error = 'The supplied shader was not attached to this program.';\n          return false;\n        }\n\n        model.context.detachShader(model.handle, shader.getHandle());\n        model.fragmentShaderHandle = 0;\n        model.linked = false;\n        return true;\n\n      default:\n        return false;\n    }\n  };\n\n  publicAPI.setContext = function (ctx) {\n    model.context = ctx;\n    model.vertexShader.setContext(ctx);\n    model.fragmentShader.setContext(ctx);\n    model.geometryShader.setContext(ctx);\n  };\n\n  publicAPI.setLastCameraMTime = function (mtime) {\n    model.lastCameraMTime = mtime;\n  }; // publicAPI.enableAttributeArray = (name) => {\n  //   const location = publicAPI.findAttributeArray(name);\n  //   if (location === -1) {\n  //     model.error = `Could not enable attribute ${name} No such attribute.`;\n  //     return false;\n  //   }\n  //   model.context.enableVertexAttribArray(location);\n  //   return true;\n  // };\n  // publicAPI.disableAttributeArray = (name) => {\n  //   const location = publicAPI.findAttributeArray(name);\n  //   if (location === -1) {\n  //     model.error = `Could not enable attribute ${name} No such attribute.`;\n  //     return false;\n  //   }\n  //   model.context.disableVertexAttribArray(location);\n  //   return true;\n  // };\n\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  vertexShaderHandle: 0,\n  fragmentShaderHandle: 0,\n  geometryShaderHandle: 0,\n  vertexShader: null,\n  fragmentShader: null,\n  geometryShader: null,\n  linked: false,\n  bound: false,\n  compiled: false,\n  error: '',\n  handle: 0,\n  numberOfOutputs: 0,\n  attributesLocs: null,\n  uniformLocs: null,\n  md5Hash: 0,\n  context: null,\n  lastCameraMTime: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Instantiate internal objects\n\n  model.attributesLocs = {};\n  model.uniformLocs = {};\n  model.vertexShader = _Shader_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n  model.vertexShader.setShaderType('Vertex');\n  model.fragmentShader = _Shader_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n  model.fragmentShader.setShaderType('Fragment');\n  model.geometryShader = _Shader_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n  model.geometryShader.setShaderType('Geometry'); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['lastCameraMTime']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['error', 'handle', 'compiled', 'bound', 'md5Hash', 'vertexShader', 'fragmentShader', 'geometryShader', 'linked']); // Object methods\n\n  vtkShaderProgram(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkShaderProgram'); // ----------------------------------------------------------------------------\n\nvar vtkShaderProgram$1 = {\n  newInstance: newInstance,\n  extend: extend,\n  substitute: substitute\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/ShaderProgram.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Skybox.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Skybox.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkSkybox),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat3.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Common/Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _Helper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Helper.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Helper.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture.js\");\n/* harmony import */ var _Core_Property_Constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Core/Property/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property/Constants.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro; // ----------------------------------------------------------------------------\n// vtkOpenGLSkybox methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLSkybox(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLSkybox'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');\n      model._openGLRenderWindow = model.openGLRenderer.getParent();\n      model.context = model._openGLRenderWindow.getContext();\n      model.tris.setOpenGLRenderWindow(model._openGLRenderWindow);\n      model.openGLTexture.setOpenGLRenderWindow(model._openGLRenderWindow);\n      var ren = model.openGLRenderer.getRenderable();\n      model.openGLCamera = model.openGLRenderer.getViewNodeFor(ren.getActiveCamera());\n    }\n  };\n\n  publicAPI.queryPass = function (prepass, renderPass) {\n    if (prepass) {\n      if (!model.renderable || !model.renderable.getVisibility()) {\n        return;\n      }\n\n      renderPass.incrementOpaqueActorCount();\n    }\n  };\n\n  publicAPI.opaquePass = function (prepass, renderPass) {\n    if (prepass && !model.openGLRenderer.getSelector()) {\n      publicAPI.updateBufferObjects();\n      model.context.depthMask(true);\n\n      model._openGLRenderWindow.getShaderCache().readyShaderProgram(model.tris.getProgram());\n\n      model.openGLTexture.render(model._openGLRenderWindow);\n      var texUnit = model.openGLTexture.getTextureUnit();\n      model.tris.getProgram().setUniformi('sbtexture', texUnit);\n      var ren = model.openGLRenderer.getRenderable();\n      var keyMats = model.openGLCamera.getKeyMatrices(ren);\n      var imat = new Float64Array(16);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_7__.invert(imat, keyMats.wcpc);\n      model.tris.getProgram().setUniformMatrix('IMCPCMatrix', imat);\n\n      if (model.lastFormat === 'box') {\n        var camPos = ren.getActiveCamera().getPosition();\n        model.tris.getProgram().setUniform3f('camPos', camPos[0], camPos[1], camPos[2]);\n      }\n\n      model.tris.getVAO().bind(); // draw polygons\n\n      model.context.drawArrays(model.context.TRIANGLES, 0, model.tris.getCABO().getElementCount());\n      model.tris.getVAO().release();\n      model.openGLTexture.deactivate();\n    }\n  };\n\n  publicAPI.updateBufferObjects = function () {\n    // build the VBO if needed, only happens once\n    if (!model.tris.getCABO().getElementCount()) {\n      var ptsArray = new Float32Array(12);\n\n      for (var i = 0; i < 4; i++) {\n        ptsArray[i * 3] = i % 2 * 2 - 1.0;\n        ptsArray[i * 3 + 1] = i > 1 ? 1.0 : -1.0;\n        ptsArray[i * 3 + 2] = 1.0;\n      }\n\n      var points = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance({\n        numberOfComponents: 3,\n        values: ptsArray\n      });\n      points.setName('points');\n      var cellArray = new Uint16Array(8);\n      cellArray[0] = 3;\n      cellArray[1] = 0;\n      cellArray[2] = 1;\n      cellArray[3] = 3;\n      cellArray[4] = 3;\n      cellArray[5] = 0;\n      cellArray[6] = 3;\n      cellArray[7] = 2;\n      var cells = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance({\n        numberOfComponents: 1,\n        values: cellArray\n      });\n      model.tris.getCABO().createVBO(cells, 'polys', _Core_Property_Constants_js__WEBPACK_IMPORTED_MODULE_5__.Representation.SURFACE, {\n        points: points,\n        cellOffset: 0\n      });\n    } // update the program?\n\n\n    if (model.renderable.getFormat() !== model.lastFormat) {\n      model.lastFormat = model.renderable.getFormat();\n\n      if (model.lastFormat === 'box') {\n        // we invert Y below because opengl is messed up!\n        // Cube Maps have been specified to follow the RenderMan\n        // specification (for whatever reason), and RenderMan\n        // assumes the images' origin being in the upper left,\n        // contrary to the usual OpenGL behaviour of having the\n        // image origin in the lower left. That's why things get\n        // swapped in the Y direction. It totally breaks with the usual\n        // OpenGL semantics and doesn't make sense at all.\n        // But now we're stuck with it.  From\n        // https://stackoverflow.com/questions/11685608/convention-of-faces-in-opengl-cubemapping\n        //\n        model.tris.setProgram(model._openGLRenderWindow.getShaderCache().readyShaderProgramArray(\"//VTK::System::Dec\\n             attribute vec3 vertexMC;\\n             uniform mat4 IMCPCMatrix;\\n             varying vec3 TexCoords;\\n             void main () {\\n              gl_Position = vec4(vertexMC.xyz, 1.0);\\n              vec4 wpos = IMCPCMatrix * gl_Position;\\n              TexCoords = wpos.xyz/wpos.w;\\n             }\", \"//VTK::System::Dec\\n             //VTK::Output::Dec\\n             varying vec3 TexCoords;\\n             uniform samplerCube sbtexture;\\n             uniform vec3 camPos;\\n             void main () {\\n               // skybox looks from inside out\\n               // which means we have to adjust\\n               // our tcoords. Otherwise text would\\n               // be flipped\\n               vec3 tc = normalize(TexCoords - camPos);\\n               if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))\\n               {\\n                 tc = vec3(1.0, 1.0, -1.0) * tc;\\n               }\\n               else\\n               {\\n                 tc = vec3(-1.0, 1.0, 1.0) * tc;\\n               }\\n               gl_FragData[0] = textureCube(sbtexture, tc);\\n             }\", ''));\n      }\n\n      if (model.lastFormat === 'background') {\n        // maps the texture to the window\n        model.tris.setProgram(model._openGLRenderWindow.getShaderCache().readyShaderProgramArray(\"//VTK::System::Dec\\n             attribute vec3 vertexMC;\\n             uniform mat4 IMCPCMatrix;\\n             varying vec2 TexCoords;\\n             void main () {\\n              gl_Position = vec4(vertexMC.xyz, 1.0);\\n              vec4 wpos = IMCPCMatrix * gl_Position;\\n              TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\\n             }\", \"//VTK::System::Dec\\n             //VTK::Output::Dec\\n             varying vec2 TexCoords;\\n             uniform sampler2D sbtexture;\\n             void main () {\\n               gl_FragData[0] = texture2D(sbtexture, TexCoords);\\n             }\", ''));\n      }\n\n      model.tris.getShaderSourceTime().modified();\n      model.tris.getVAO().bind();\n\n      if (!model.tris.getVAO().addAttributeArray(model.tris.getProgram(), model.tris.getCABO(), 'vertexMC', model.tris.getCABO().getVertexOffset(), model.tris.getCABO().getStride(), model.context.FLOAT, 3, model.context.FALSE)) {\n        vtkErrorMacro('Error setting vertexMC in shader VAO.');\n      }\n    } // set/update the texture map if needed\n\n\n    var tmaps = model.renderable.getTextures();\n\n    if (!tmaps.length) {\n      vtkErrorMacro('vtkSkybox requires a texture map');\n    }\n\n    if (model.openGLTexture.getRenderable() !== tmaps[0]) {\n      model.openGLTexture.releaseGraphicsResources(model._openGLRenderWindow);\n      model.openGLTexture.setRenderable(tmaps[0]);\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  context: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].extend(publicAPI, model, initialValues);\n  model.openGLTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance();\n  model.tris = _Helper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n  model.keyMatrixTime = {};\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(model.keyMatrixTime, {\n    mtime: 0\n  });\n  model.keyMatrices = {\n    normalMatrix: gl_matrix__WEBPACK_IMPORTED_MODULE_8__.identity(new Float64Array(9)),\n    mcwc: gl_matrix__WEBPACK_IMPORTED_MODULE_7__.identity(new Float64Array(16))\n  }; // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['context']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['activeTextures']); // Object methods\n\n  vtkOpenGLSkybox(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend); // ----------------------------------------------------------------------------\n\nvar vtkSkybox = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_6__.registerOverride)('vtkSkybox', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Skybox.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture.js":
/*!******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkOpenGLTexture$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _Texture_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Texture/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture/Constants.js\");\n/* harmony import */ var _Common_Core_HalfFloat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/HalfFloat.js */ \"./node_modules/@kitware/vtk.js/Common/Core/HalfFloat.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Common/Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js\");\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar Wrap = _Texture_Constants_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Wrap,\n    Filter = _Texture_Constants_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Filter;\nvar VtkDataTypes = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].VtkDataTypes;\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_3__.vtkDebugMacro,\n    vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_3__.vtkErrorMacro,\n    vtkWarningMacro = _macros_js__WEBPACK_IMPORTED_MODULE_3__.vtkWarningMacro; // ----------------------------------------------------------------------------\n// vtkOpenGLTexture methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLTexture(publicAPI, model) {\n  var _this = this;\n\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLTexture'); // Renders myself\n\n  publicAPI.render = function () {\n    var renWin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n    if (renWin) {\n      model._openGLRenderWindow = renWin;\n    } else {\n      model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer'); // sync renderable properties\n\n      model._openGLRenderWindow = model.openGLRenderer.getParent();\n    }\n\n    model.context = model._openGLRenderWindow.getContext();\n\n    if (model.renderable.getInterpolate()) {\n      if (model.generateMipmap) {\n        publicAPI.setMinificationFilter(Filter.LINEAR_MIPMAP_LINEAR);\n      } else {\n        publicAPI.setMinificationFilter(Filter.LINEAR);\n      }\n\n      publicAPI.setMagnificationFilter(Filter.LINEAR);\n    } else {\n      publicAPI.setMinificationFilter(Filter.NEAREST);\n      publicAPI.setMagnificationFilter(Filter.NEAREST);\n    }\n\n    if (model.renderable.getRepeat()) {\n      publicAPI.setWrapR(Wrap.REPEAT);\n      publicAPI.setWrapS(Wrap.REPEAT);\n      publicAPI.setWrapT(Wrap.REPEAT);\n    } // clear image if input data is set\n\n\n    if (model.renderable.getInputData()) {\n      model.renderable.setImage(null);\n    } // create the texture if it is not done already\n\n\n    if (!model.handle || model.renderable.getMTime() > model.textureBuildTime.getMTime()) {\n      // if we have an Image\n      if (model.renderable.getImage() !== null) {\n        if (model.renderable.getInterpolate()) {\n          model.generateMipmap = true;\n          publicAPI.setMinificationFilter(Filter.LINEAR_MIPMAP_LINEAR);\n        } // Have an Image which may not be complete\n\n\n        if (model.renderable.getImage() && model.renderable.getImageLoaded()) {\n          publicAPI.create2DFromImage(model.renderable.getImage());\n          publicAPI.activate();\n          publicAPI.sendParameters();\n          model.textureBuildTime.modified();\n        }\n      } // if we have a canvas\n\n\n      if (model.renderable.getCanvas() !== null) {\n        if (model.renderable.getInterpolate()) {\n          model.generateMipmap = true;\n          publicAPI.setMinificationFilter(Filter.LINEAR_MIPMAP_LINEAR);\n        }\n\n        var canvas = model.renderable.getCanvas();\n        publicAPI.create2DFromRaw(canvas.width, canvas.height, 4, VtkDataTypes.UNSIGNED_CHAR, canvas, true);\n        publicAPI.activate();\n        publicAPI.sendParameters();\n        model.textureBuildTime.modified();\n      } // if we have jsImageData\n\n\n      if (model.renderable.getJsImageData() !== null) {\n        var jsid = model.renderable.getJsImageData();\n\n        if (model.renderable.getInterpolate()) {\n          model.generateMipmap = true;\n          publicAPI.setMinificationFilter(Filter.LINEAR_MIPMAP_LINEAR);\n        }\n\n        publicAPI.create2DFromRaw(jsid.width, jsid.height, 4, VtkDataTypes.UNSIGNED_CHAR, jsid.data, true);\n        publicAPI.activate();\n        publicAPI.sendParameters();\n        model.textureBuildTime.modified();\n      } // if we have InputData\n\n\n      var input = model.renderable.getInputData(0);\n\n      if (input && input.getPointData().getScalars()) {\n        var ext = input.getExtent();\n        var inScalars = input.getPointData().getScalars(); // do we have a cube map? Six inputs\n\n        var data = [];\n\n        for (var i = 0; i < model.renderable.getNumberOfInputPorts(); ++i) {\n          var indata = model.renderable.getInputData(i);\n          var scalars = indata ? indata.getPointData().getScalars().getData() : null;\n\n          if (scalars) {\n            data.push(scalars);\n          }\n        }\n\n        if (model.renderable.getInterpolate() && inScalars.getNumberOfComponents() === 4) {\n          model.generateMipmap = true;\n          publicAPI.setMinificationFilter(Filter.LINEAR_MIPMAP_LINEAR);\n        }\n\n        if (data.length % 6 === 0) {\n          publicAPI.createCubeFromRaw(ext[1] - ext[0] + 1, ext[3] - ext[2] + 1, inScalars.getNumberOfComponents(), inScalars.getDataType(), data);\n        } else {\n          publicAPI.create2DFromRaw(ext[1] - ext[0] + 1, ext[3] - ext[2] + 1, inScalars.getNumberOfComponents(), inScalars.getDataType(), inScalars.getData());\n        }\n\n        publicAPI.activate();\n        publicAPI.sendParameters();\n        model.textureBuildTime.modified();\n      }\n    }\n\n    if (model.handle) {\n      publicAPI.activate();\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.destroyTexture = function () {\n    // deactivate it first\n    publicAPI.deactivate();\n\n    if (model.context && model.handle) {\n      model.context.deleteTexture(model.handle);\n    }\n\n    model.handle = 0;\n    model.numberOfDimensions = 0;\n    model.target = 0;\n    model.components = 0;\n    model.width = 0;\n    model.height = 0;\n    model.depth = 0;\n    publicAPI.resetFormatAndType();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.createTexture = function () {\n    // reuse the existing handle if we have one\n    if (!model.handle) {\n      model.handle = model.context.createTexture();\n\n      if (model.target) {\n        model.context.bindTexture(model.target, model.handle); // See: http://www.openmodel.context..org/wiki/Common_Mistakes#Creating_a_complete_texture\n        // turn off mip map filter or set the base and max level correctly. here\n        // both are done.\n\n        model.context.texParameteri(model.target, model.context.TEXTURE_MIN_FILTER, publicAPI.getOpenGLFilterMode(model.minificationFilter));\n        model.context.texParameteri(model.target, model.context.TEXTURE_MAG_FILTER, publicAPI.getOpenGLFilterMode(model.magnificationFilter));\n        model.context.texParameteri(model.target, model.context.TEXTURE_WRAP_S, publicAPI.getOpenGLWrapMode(model.wrapS));\n        model.context.texParameteri(model.target, model.context.TEXTURE_WRAP_T, publicAPI.getOpenGLWrapMode(model.wrapT));\n\n        if (model._openGLRenderWindow.getWebgl2()) {\n          model.context.texParameteri(model.target, model.context.TEXTURE_WRAP_R, publicAPI.getOpenGLWrapMode(model.wrapR));\n        }\n\n        model.context.bindTexture(model.target, null);\n      }\n    }\n  }; //---------------------------------------------------------------------------\n\n\n  publicAPI.getTextureUnit = function () {\n    if (model._openGLRenderWindow) {\n      return model._openGLRenderWindow.getTextureUnitForTexture(publicAPI);\n    }\n\n    return -1;\n  }; //---------------------------------------------------------------------------\n\n\n  publicAPI.activate = function () {\n    // activate a free texture unit for this texture\n    model._openGLRenderWindow.activateTexture(publicAPI);\n\n    publicAPI.bind();\n  }; //---------------------------------------------------------------------------\n\n\n  publicAPI.deactivate = function () {\n    if (model._openGLRenderWindow) {\n      model._openGLRenderWindow.deactivateTexture(publicAPI);\n    }\n  }; //---------------------------------------------------------------------------\n\n\n  publicAPI.releaseGraphicsResources = function (rwin) {\n    if (rwin && model.handle) {\n      rwin.activateTexture(publicAPI);\n      rwin.deactivateTexture(publicAPI);\n      model.context.deleteTexture(model.handle);\n      model.handle = 0;\n      model.numberOfDimensions = 0;\n      model.target = 0;\n      model.internalFormat = 0;\n      model.format = 0;\n      model.openGLDataType = 0;\n      model.components = 0;\n      model.width = 0;\n      model.height = 0;\n      model.depth = 0;\n    }\n\n    if (model.shaderProgram) {\n      model.shaderProgram.releaseGraphicsResources(rwin);\n      model.shaderProgram = null;\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.bind = function () {\n    model.context.bindTexture(model.target, model.handle);\n\n    if (model.autoParameters && publicAPI.getMTime() > model.sendParametersTime.getMTime()) {\n      publicAPI.sendParameters();\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.isBound = function () {\n    var result = false;\n\n    if (model.context && model.handle) {\n      var target = 0;\n\n      switch (model.target) {\n        case model.context.TEXTURE_2D:\n          target = model.context.TEXTURE_BINDING_2D;\n          break;\n\n        default:\n          vtkWarningMacro('impossible case');\n          break;\n      }\n\n      var oid = model.context.getIntegerv(target);\n      result = oid === model.handle;\n    }\n\n    return result;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.sendParameters = function () {\n    model.context.texParameteri(model.target, model.context.TEXTURE_WRAP_S, publicAPI.getOpenGLWrapMode(model.wrapS));\n    model.context.texParameteri(model.target, model.context.TEXTURE_WRAP_T, publicAPI.getOpenGLWrapMode(model.wrapT));\n\n    if (model._openGLRenderWindow.getWebgl2()) {\n      model.context.texParameteri(model.target, model.context.TEXTURE_WRAP_R, publicAPI.getOpenGLWrapMode(model.wrapR));\n    }\n\n    model.context.texParameteri(model.target, model.context.TEXTURE_MIN_FILTER, publicAPI.getOpenGLFilterMode(model.minificationFilter));\n    model.context.texParameteri(model.target, model.context.TEXTURE_MAG_FILTER, publicAPI.getOpenGLFilterMode(model.magnificationFilter));\n\n    if (model._openGLRenderWindow.getWebgl2()) {\n      model.context.texParameteri(model.target, model.context.TEXTURE_BASE_LEVEL, model.baseLevel);\n      model.context.texParameteri(model.target, model.context.TEXTURE_MAX_LEVEL, model.maxLevel);\n    } // model.context.texParameterf(model.target, model.context.TEXTURE_MIN_LOD, model.minLOD);\n    // model.context.texParameterf(model.target, model.context.TEXTURE_MAX_LOD, model.maxLOD);\n\n\n    model.sendParametersTime.modified();\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getInternalFormat = function (vtktype, numComps) {\n    if (!model.internalFormat) {\n      model.internalFormat = publicAPI.getDefaultInternalFormat(vtktype, numComps);\n    }\n\n    if (!model.internalFormat) {\n      vtkDebugMacro(\"Unable to find suitable internal format for T=\".concat(vtktype, \" NC= \").concat(numComps));\n    }\n\n    return model.internalFormat;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getDefaultInternalFormat = function (vtktype, numComps) {\n    var result = 0; // try default next\n\n    result = model._openGLRenderWindow.getDefaultTextureInternalFormat(vtktype, numComps, false);\n\n    if (result) {\n      return result;\n    } // try floating point\n\n\n    result = _this._openGLRenderWindow.getDefaultTextureInternalFormat(vtktype, numComps, true);\n\n    if (!result) {\n      vtkDebugMacro('Unsupported internal texture type!');\n      vtkDebugMacro(\"Unable to find suitable internal format for T=\".concat(vtktype, \" NC= \").concat(numComps));\n    }\n\n    return result;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.setInternalFormat = function (iFormat) {\n    if (iFormat !== model.internalFormat) {\n      model.internalFormat = iFormat;\n      publicAPI.modified();\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getFormat = function (vtktype, numComps) {\n    model.format = publicAPI.getDefaultFormat(vtktype, numComps);\n    return model.format;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getDefaultFormat = function (vtktype, numComps) {\n    if (model._openGLRenderWindow.getWebgl2()) {\n      switch (numComps) {\n        case 1:\n          return model.context.RED;\n\n        case 2:\n          return model.context.RG;\n\n        case 3:\n          return model.context.RGB;\n\n        case 4:\n          return model.context.RGBA;\n\n        default:\n          return model.context.RGB;\n      }\n    } else {\n      // webgl1\n      switch (numComps) {\n        case 1:\n          return model.context.LUMINANCE;\n\n        case 2:\n          return model.context.LUMINANCE_ALPHA;\n\n        case 3:\n          return model.context.RGB;\n\n        case 4:\n          return model.context.RGBA;\n\n        default:\n          return model.context.RGB;\n      }\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.resetFormatAndType = function () {\n    model.format = 0;\n    model.internalFormat = 0;\n    model.openGLDataType = 0;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getDefaultDataType = function (vtkScalarType) {\n    var useHalfFloatType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    // DON'T DEAL with VTK_CHAR as this is platform dependent.\n    if (model._openGLRenderWindow.getWebgl2()) {\n      switch (vtkScalarType) {\n        // case VtkDataTypes.SIGNED_CHAR:\n        //   return model.context.BYTE;\n        case VtkDataTypes.UNSIGNED_CHAR:\n          return model.context.UNSIGNED_BYTE;\n\n        case useHalfFloatType && VtkDataTypes.SHORT:\n          return model.context.HALF_FLOAT;\n\n        case useHalfFloatType && VtkDataTypes.UNSIGNED_SHORT:\n          return model.context.HALF_FLOAT;\n        // case VtkDataTypes.INT:\n        //   return model.context.INT;\n        // case VtkDataTypes.UNSIGNED_INT:\n        //   return model.context.UNSIGNED_INT;\n\n        case VtkDataTypes.FLOAT:\n        case VtkDataTypes.VOID: // used for depth component textures.\n\n        default:\n          return model.context.FLOAT;\n      }\n    }\n\n    switch (vtkScalarType) {\n      // case VtkDataTypes.SIGNED_CHAR:\n      //   return model.context.BYTE;\n      case VtkDataTypes.UNSIGNED_CHAR:\n        return model.context.UNSIGNED_BYTE;\n      // case VtkDataTypes.SHORT:\n      //   return model.context.SHORT;\n      // case VtkDataTypes.UNSIGNED_SHORT:\n      //   return model.context.UNSIGNED_SHORT;\n      // case VtkDataTypes.INT:\n      //   return model.context.INT;\n      // case VtkDataTypes.UNSIGNED_INT:\n      //   return model.context.UNSIGNED_INT;\n\n      case VtkDataTypes.FLOAT:\n      case VtkDataTypes.VOID: // used for depth component textures.\n\n      default:\n        if (model.context.getExtension('OES_texture_float') && model.context.getExtension('OES_texture_float_linear')) {\n          return model.context.FLOAT;\n        }\n\n        {\n          var halfFloat = model.context.getExtension('OES_texture_half_float');\n\n          if (halfFloat && model.context.getExtension('OES_texture_half_float_linear')) {\n            return halfFloat.HALF_FLOAT_OES;\n          }\n        }\n        return model.context.UNSIGNED_BYTE;\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getOpenGLDataType = function (vtkScalarType) {\n    var useHalfFloatType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    if (!model.openGLDataType) {\n      model.openGLDataType = publicAPI.getDefaultDataType(vtkScalarType, useHalfFloatType);\n    }\n\n    return model.openGLDataType;\n  };\n\n  publicAPI.getShiftAndScale = function () {\n    var shift = 0.0;\n    var scale = 1.0; // for all float type internal formats\n\n    switch (model.openGLDataType) {\n      case model.context.BYTE:\n        scale = 127.5;\n        shift = scale - 128.0;\n        break;\n\n      case model.context.UNSIGNED_BYTE:\n        scale = 255.0;\n        shift = 0.0;\n        break;\n\n      case model.context.SHORT:\n        scale = 32767.5;\n        shift = scale - 32768.0;\n        break;\n\n      case model.context.UNSIGNED_SHORT:\n        scale = 65536.0;\n        shift = 0.0;\n        break;\n\n      case model.context.INT:\n        scale = 2147483647.5;\n        shift = scale - 2147483648.0;\n        break;\n\n      case model.context.UNSIGNED_INT:\n        scale = 4294967295.0;\n        shift = 0.0;\n        break;\n\n      case model.context.FLOAT:\n    }\n\n    return {\n      shift: shift,\n      scale: scale\n    };\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getOpenGLFilterMode = function (emode) {\n    switch (emode) {\n      case Filter.NEAREST:\n        return model.context.NEAREST;\n\n      case Filter.LINEAR:\n        return model.context.LINEAR;\n\n      case Filter.NEAREST_MIPMAP_NEAREST:\n        return model.context.NEAREST_MIPMAP_NEAREST;\n\n      case Filter.NEAREST_MIPMAP_LINEAR:\n        return model.context.NEAREST_MIPMAP_LINEAR;\n\n      case Filter.LINEAR_MIPMAP_NEAREST:\n        return model.context.LINEAR_MIPMAP_NEAREST;\n\n      case Filter.LINEAR_MIPMAP_LINEAR:\n        return model.context.LINEAR_MIPMAP_LINEAR;\n\n      default:\n        return model.context.NEAREST;\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getOpenGLWrapMode = function (vtktype) {\n    switch (vtktype) {\n      case Wrap.CLAMP_TO_EDGE:\n        return model.context.CLAMP_TO_EDGE;\n\n      case Wrap.REPEAT:\n        return model.context.REPEAT;\n\n      case Wrap.MIRRORED_REPEAT:\n        return model.context.MIRRORED_REPEAT;\n\n      default:\n        return model.context.CLAMP_TO_EDGE;\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  function updateArrayDataType(dataType, data) {\n    var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    var pixData = [];\n    var pixCount = model.width * model.height * model.components;\n\n    if (depth) {\n      pixCount *= model.depth;\n    } // if the opengl data type is float\n    // then the data array must be float\n\n\n    if (dataType !== VtkDataTypes.FLOAT && model.openGLDataType === model.context.FLOAT) {\n      for (var idx = 0; idx < data.length; idx++) {\n        if (data[idx]) {\n          var newArray = new Float32Array(pixCount);\n\n          for (var i = 0; i < pixCount; i++) {\n            newArray[i] = data[idx][i];\n          }\n\n          pixData.push(newArray);\n        } else {\n          pixData.push(null);\n        }\n      }\n    } // if the opengl data type is ubyte\n    // then the data array must be u8, we currently simply truncate the data\n\n\n    if (dataType !== VtkDataTypes.UNSIGNED_CHAR && model.openGLDataType === model.context.UNSIGNED_BYTE) {\n      for (var _idx = 0; _idx < data.length; _idx++) {\n        if (data[_idx]) {\n          var _newArray = new Uint8Array(pixCount);\n\n          for (var _i = 0; _i < pixCount; _i++) {\n            _newArray[_i] = data[_idx][_i];\n          }\n\n          pixData.push(_newArray);\n        } else {\n          pixData.push(null);\n        }\n      }\n    } // if the opengl data type is half float\n    // then the data array must be u16\n\n\n    var halfFloatExt = model.context.getExtension('OES_texture_half_float');\n    var halfFloat = model._openGLRenderWindow.getWebgl2() ? model.openGLDataType === model.context.HALF_FLOAT : halfFloatExt && model.openGLDataType === halfFloatExt.HALF_FLOAT_OES;\n\n    if (halfFloat) {\n      for (var _idx2 = 0; _idx2 < data.length; _idx2++) {\n        if (data[_idx2]) {\n          var _newArray2 = new Uint16Array(pixCount);\n\n          for (var _i2 = 0; _i2 < pixCount; _i2++) {\n            _newArray2[_i2] = _Common_Core_HalfFloat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].toHalf(data[_idx2][_i2]);\n          }\n\n          pixData.push(_newArray2);\n        } else {\n          pixData.push(null);\n        }\n      }\n    } // The output has to be filled\n\n\n    if (pixData.length === 0) {\n      for (var _i3 = 0; _i3 < data.length; _i3++) {\n        pixData.push(data[_i3]);\n      }\n    }\n\n    return pixData;\n  } //----------------------------------------------------------------------------\n\n\n  function scaleTextureToHighestPowerOfTwo(data) {\n    if (model._openGLRenderWindow.getWebgl2()) {\n      // No need if webGL2\n      return data;\n    }\n\n    var pixData = [];\n    var width = model.width;\n    var height = model.height;\n    var numComps = model.components;\n\n    if (data && (!(0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.Q)(width) || !(0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.Q)(height))) {\n      // Scale up the texture to the next highest power of two dimensions.\n      var halfFloat = model.context.getExtension('OES_texture_half_float');\n      var newWidth = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.M)(width);\n      var newHeight = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.M)(height);\n      var pixCount = newWidth * newHeight * model.components;\n\n      for (var idx = 0; idx < data.length; idx++) {\n        if (data[idx] !== null) {\n          var newArray = null;\n          var jFactor = height / newHeight;\n          var iFactor = width / newWidth;\n          var usingHalf = false;\n\n          if (model.openGLDataType === model.context.FLOAT) {\n            newArray = new Float32Array(pixCount);\n          } else if (halfFloat && model.openGLDataType === halfFloat.HALF_FLOAT_OES) {\n            newArray = new Uint16Array(pixCount);\n            usingHalf = true;\n          } else {\n            newArray = new Uint8Array(pixCount);\n          }\n\n          for (var j = 0; j < newHeight; j++) {\n            var joff = j * newWidth * numComps;\n            var jidx = j * jFactor;\n            var jlow = Math.floor(jidx);\n            var jhi = Math.ceil(jidx);\n\n            if (jhi >= height) {\n              jhi = height - 1;\n            }\n\n            var jmix = jidx - jlow;\n            var jmix1 = 1.0 - jmix;\n            jlow = jlow * width * numComps;\n            jhi = jhi * width * numComps;\n\n            for (var i = 0; i < newWidth; i++) {\n              var ioff = i * numComps;\n              var iidx = i * iFactor;\n              var ilow = Math.floor(iidx);\n              var ihi = Math.ceil(iidx);\n\n              if (ihi >= width) {\n                ihi = width - 1;\n              }\n\n              var imix = iidx - ilow;\n              ilow *= numComps;\n              ihi *= numComps;\n\n              for (var c = 0; c < numComps; c++) {\n                if (usingHalf) {\n                  newArray[joff + ioff + c] = _Common_Core_HalfFloat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].toHalf(_Common_Core_HalfFloat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].fromHalf(data[idx][jlow + ilow + c]) * jmix1 * (1.0 - imix) + _Common_Core_HalfFloat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].fromHalf(data[idx][jlow + ihi + c]) * jmix1 * imix + _Common_Core_HalfFloat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].fromHalf(data[idx][jhi + ilow + c]) * jmix * (1.0 - imix) + _Common_Core_HalfFloat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].fromHalf(data[idx][jhi + ihi + c]) * jmix * imix);\n                } else {\n                  newArray[joff + ioff + c] = data[idx][jlow + ilow + c] * jmix1 * (1.0 - imix) + data[idx][jlow + ihi + c] * jmix1 * imix + data[idx][jhi + ilow + c] * jmix * (1.0 - imix) + data[idx][jhi + ihi + c] * jmix * imix;\n                }\n              }\n            }\n          }\n\n          pixData.push(newArray);\n          model.width = newWidth;\n          model.height = newHeight;\n        } else {\n          pixData.push(null);\n        }\n      }\n    } // The output has to be filled\n\n\n    if (pixData.length === 0) {\n      for (var _i4 = 0; _i4 < data.length; _i4++) {\n        pixData.push(data[_i4]);\n      }\n    }\n\n    return pixData;\n  } //----------------------------------------------------------------------------\n\n\n  publicAPI.create2DFromRaw = function (width, height, numComps, dataType, data) {\n    var flip = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n    // Now determine the texture parameters using the arguments.\n    publicAPI.getOpenGLDataType(dataType);\n    publicAPI.getInternalFormat(dataType, numComps);\n    publicAPI.getFormat(dataType, numComps);\n\n    if (!model.internalFormat || !model.format || !model.openGLDataType) {\n      vtkErrorMacro('Failed to determine texture parameters.');\n      return false;\n    }\n\n    model.target = model.context.TEXTURE_2D;\n    model.components = numComps;\n    model.width = width;\n    model.height = height;\n    model.depth = 1;\n    model.numberOfDimensions = 2;\n\n    model._openGLRenderWindow.activateTexture(publicAPI);\n\n    publicAPI.createTexture();\n    publicAPI.bind(); // Create an array of texture with one texture\n\n    var dataArray = [data];\n    var pixData = updateArrayDataType(dataType, dataArray);\n    var scaledData = scaleTextureToHighestPowerOfTwo(pixData); // Source texture data from the PBO.\n\n    model.context.pixelStorei(model.context.UNPACK_FLIP_Y_WEBGL, flip);\n    model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n    model.context.texImage2D(model.target, 0, model.internalFormat, model.width, model.height, 0, model.format, model.openGLDataType, scaledData[0]);\n\n    if (model.generateMipmap) {\n      model.context.generateMipmap(model.target);\n    } // always reset the flip\n\n\n    if (flip) {\n      model.context.pixelStorei(model.context.UNPACK_FLIP_Y_WEBGL, false);\n    }\n\n    publicAPI.deactivate();\n    return true;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.createCubeFromRaw = function (width, height, numComps, dataType, data) {\n    // Now determine the texture parameters using the arguments.\n    publicAPI.getOpenGLDataType(dataType);\n    publicAPI.getInternalFormat(dataType, numComps);\n    publicAPI.getFormat(dataType, numComps);\n\n    if (!model.internalFormat || !model.format || !model.openGLDataType) {\n      vtkErrorMacro('Failed to determine texture parameters.');\n      return false;\n    }\n\n    model.target = model.context.TEXTURE_CUBE_MAP;\n    model.components = numComps;\n    model.width = width;\n    model.height = height;\n    model.depth = 1;\n    model.numberOfDimensions = 2;\n\n    model._openGLRenderWindow.activateTexture(publicAPI);\n\n    model.maxLevel = data.length / 6 - 1;\n    publicAPI.createTexture();\n    publicAPI.bind();\n    var pixData = updateArrayDataType(dataType, data);\n    var scaledData = scaleTextureToHighestPowerOfTwo(pixData); // invert the data because opengl is messed up with cube maps\n    // and uses the old renderman standard with Y going down\n    // even though it is completely at odds with OpenGL standards\n\n    var invertedData = [];\n    var widthLevel = model.width;\n    var heightLevel = model.height;\n\n    for (var i = 0; i < scaledData.length; i++) {\n      if (i % 6 === 0 && i !== 0) {\n        widthLevel /= 2;\n        heightLevel /= 2;\n      }\n\n      invertedData[i] = (0,_macros_js__WEBPACK_IMPORTED_MODULE_3__.newTypedArray)(dataType, heightLevel * widthLevel * model.components);\n\n      for (var y = 0; y < heightLevel; ++y) {\n        var row1 = y * widthLevel * model.components;\n        var row2 = (heightLevel - y - 1) * widthLevel * model.components;\n        invertedData[i].set(scaledData[i].slice(row2, row2 + widthLevel * model.components), row1);\n      }\n    } // Source texture data from the PBO.\n\n\n    model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1); // We get the 6 images\n\n    for (var _i5 = 0; _i5 < 6; _i5++) {\n      // For each mipmap level\n      var j = 0;\n      var w = model.width;\n      var h = model.height;\n\n      while (w >= 1 && h >= 1) {\n        // In webgl 1, all levels need to be defined. So if the latest level size is\n        // 8x8, we have to add 3 more null textures (4x4, 2x2, 1x1)\n        // In webgl 2, the attribute maxLevel will be use.\n        var tempData = null;\n\n        if (j <= model.maxLevel) {\n          tempData = invertedData[6 * j + _i5];\n        }\n\n        model.context.texImage2D(model.context.TEXTURE_CUBE_MAP_POSITIVE_X + _i5, j, model.internalFormat, w, h, 0, model.format, model.openGLDataType, tempData);\n        j++;\n        w /= 2;\n        h /= 2;\n      }\n    } // generateMipmap must not be called here because we manually upload all levels\n    // if it is called, all levels will be overwritten\n\n\n    publicAPI.deactivate();\n    return true;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.createDepthFromRaw = function (width, height, dataType, data) {\n    // Now determine the texture parameters using the arguments.\n    publicAPI.getOpenGLDataType(dataType);\n    model.format = model.context.DEPTH_COMPONENT;\n\n    if (model._openGLRenderWindow.getWebgl2()) {\n      if (dataType === VtkDataTypes.FLOAT) {\n        model.internalFormat = model.context.DEPTH_COMPONENT32F;\n      } else {\n        model.internalFormat = model.context.DEPTH_COMPONENT16;\n      }\n    } else {\n      model.internalFormat = model.context.DEPTH_COMPONENT;\n    }\n\n    if (!model.internalFormat || !model.format || !model.openGLDataType) {\n      vtkErrorMacro('Failed to determine texture parameters.');\n      return false;\n    }\n\n    model.target = model.context.TEXTURE_2D;\n    model.components = 1;\n    model.width = width;\n    model.height = height;\n    model.depth = 1;\n    model.numberOfDimensions = 2;\n\n    model._openGLRenderWindow.activateTexture(publicAPI);\n\n    publicAPI.createTexture();\n    publicAPI.bind(); // Source texture data from the PBO.\n    // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n\n    model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n    model.context.texImage2D(model.target, 0, model.internalFormat, model.width, model.height, 0, model.format, model.openGLDataType, data);\n\n    if (model.generateMipmap) {\n      model.context.generateMipmap(model.target);\n    }\n\n    publicAPI.deactivate();\n    return true;\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.create2DFromImage = function (image) {\n    // Now determine the texture parameters using the arguments.\n    publicAPI.getOpenGLDataType(VtkDataTypes.UNSIGNED_CHAR);\n    publicAPI.getInternalFormat(VtkDataTypes.UNSIGNED_CHAR, 4);\n    publicAPI.getFormat(VtkDataTypes.UNSIGNED_CHAR, 4);\n\n    if (!model.internalFormat || !model.format || !model.openGLDataType) {\n      vtkErrorMacro('Failed to determine texture parameters.');\n      return false;\n    }\n\n    model.target = model.context.TEXTURE_2D;\n    model.components = 4;\n    model.width = image.width;\n    model.height = image.height;\n    model.depth = 1;\n    model.numberOfDimensions = 2;\n\n    model._openGLRenderWindow.activateTexture(publicAPI);\n\n    publicAPI.createTexture();\n    publicAPI.bind(); // Source texture data from the PBO.\n    // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n\n    model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1); // Scale up the texture to the next highest power of two dimensions (if needed) and flip y.\n\n    var needNearestPowerOfTwo = !(0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.Q)(image.width) || !(0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.Q)(image.height);\n    var canvas = document.createElement('canvas');\n    canvas.width = needNearestPowerOfTwo ? (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.M)(image.width) : image.width;\n    canvas.height = needNearestPowerOfTwo ? (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.M)(image.height) : image.height;\n    var ctx = canvas.getContext('2d');\n    ctx.translate(0, canvas.height);\n    ctx.scale(1, -1);\n    ctx.drawImage(image, 0, 0, image.width, image.height, 0, 0, canvas.width, canvas.height);\n    var safeImage = canvas;\n    model.context.texImage2D(model.target, 0, model.internalFormat, model.format, model.openGLDataType, safeImage);\n\n    if (model.generateMipmap) {\n      model.context.generateMipmap(model.target);\n    }\n\n    publicAPI.deactivate();\n    return true;\n  };\n\n  function computeScaleOffsets(numComps, numPixelsIn, data) {\n    // compute min and max values per component\n    var min = [];\n    var max = [];\n\n    for (var c = 0; c < numComps; ++c) {\n      min[c] = data[c];\n      max[c] = data[c];\n    }\n\n    var count = 0;\n\n    for (var i = 0; i < numPixelsIn; ++i) {\n      for (var _c = 0; _c < numComps; ++_c) {\n        if (data[count] < min[_c]) {\n          min[_c] = data[count];\n        }\n\n        if (data[count] > max[_c]) {\n          max[_c] = data[count];\n        }\n\n        count++;\n      }\n    }\n\n    var offset = [];\n    var scale = [];\n\n    for (var _c2 = 0; _c2 < numComps; ++_c2) {\n      if (min[_c2] === max[_c2]) {\n        max[_c2] = min[_c2] + 1.0;\n      }\n\n      offset[_c2] = min[_c2];\n      scale[_c2] = max[_c2] - min[_c2];\n    }\n\n    return {\n      scale: scale,\n      offset: offset\n    };\n  } // HalfFloat only represents numbers between [-2048, 2048] exactly accurate,\n  // for numbers outside of this range there is a precision limitation\n\n\n  function hasExactHalfFloat(offset, scale) {\n    // Per Component\n    for (var c = 0; c < offset.length; c++) {\n      var min = offset[c];\n      var max = scale[c] + min;\n\n      if (min < -2048 || min > 2048 || max < -2048 || max > 2048) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  function checkUseHalfFloat(dataType, offset, scale, preferSizeOverAccuracy) {\n    var useHalfFloatType = true;\n    publicAPI.getOpenGLDataType(dataType, useHalfFloatType);\n    var halfFloatExt = model.context.getExtension('OES_texture_half_float');\n    var useHalfFloat = model._openGLRenderWindow.getWebgl2() ? model.openGLDataType === model.context.HALF_FLOAT : halfFloatExt && model.openGLDataType === halfFloatExt.HALF_FLOAT_OES;\n\n    if (!useHalfFloat) {\n      return false;\n    } // Don't consider halfFloat and convert back to Float when the range of data does not generate an accurate halfFloat\n    // AND it is not preferable to have a smaller texture than an exact texture.\n\n\n    if (!hasExactHalfFloat(offset, scale) && !preferSizeOverAccuracy) {\n      return false;\n    }\n\n    return true;\n  } //----------------------------------------------------------------------------\n\n\n  publicAPI.create3DFromRaw = function (width, height, depth, numComps, dataType, data) {\n    // Permit OpenGLDataType to be half float, if applicable, for 3D\n    var useHalfFloatType = true;\n    publicAPI.getOpenGLDataType(dataType, useHalfFloatType); // Now determine the texture parameters using the arguments.\n\n    publicAPI.getInternalFormat(dataType, numComps);\n    publicAPI.getFormat(dataType, numComps);\n\n    if (!model.internalFormat || !model.format || !model.openGLDataType) {\n      vtkErrorMacro('Failed to determine texture parameters.');\n      return false;\n    }\n\n    model.target = model.context.TEXTURE_3D;\n    model.components = numComps;\n    model.width = width;\n    model.height = height;\n    model.depth = depth;\n    model.numberOfDimensions = 3;\n\n    model._openGLRenderWindow.activateTexture(publicAPI);\n\n    publicAPI.createTexture();\n    publicAPI.bind(); // Create an array of texture with one texture\n\n    var dataArray = [data];\n    var is3DArray = true;\n    var pixData = updateArrayDataType(dataType, dataArray, is3DArray);\n    var scaledData = scaleTextureToHighestPowerOfTwo(pixData); // Source texture data from the PBO.\n    // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n    // model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n\n    model.context.texImage3D(model.target, 0, model.internalFormat, model.width, model.height, model.depth, 0, model.format, model.openGLDataType, scaledData[0]);\n\n    if (model.generateMipmap) {\n      model.context.generateMipmap(model.target);\n    }\n\n    publicAPI.deactivate();\n    return true;\n  }; //----------------------------------------------------------------------------\n  // This method simulates a 3D texture using 2D\n\n\n  publicAPI.create3DFilterableFromRaw = function (width, height, depth, numComps, dataType, data) {\n    var preferSizeOverAccuracy = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n    var numPixelsIn = width * height * depth; // initialize offset/scale\n\n    var offset = [];\n    var scale = [];\n\n    for (var c = 0; c < numComps; ++c) {\n      offset[c] = 0.0;\n      scale[c] = 1.0;\n    } // store the information, we will need it later\n    // offset and scale are the offset and scale required to get\n    // the texture value back to data values ala\n    // data = texture * scale + offset\n    // and texture = (data - offset)/scale\n\n\n    model.volumeInfo = {\n      scale: scale,\n      offset: offset,\n      width: width,\n      height: height,\n      depth: depth\n    }; // Check if we can accurately use halfFloat or whether it is preferred to have a smaller size texture\n    // compute min and max values\n\n    var _computeScaleOffsets = computeScaleOffsets(numComps, numPixelsIn, data),\n        computedOffset = _computeScaleOffsets.offset,\n        computedScale = _computeScaleOffsets.scale;\n\n    model.volumeInfo.dataComputedScale = computedScale;\n    model.volumeInfo.dataComputedOffset = computedOffset;\n    var useHalfFloat = checkUseHalfFloat(dataType, computedOffset, computedScale, preferSizeOverAccuracy); // WebGL2 path, we have 3d textures etc\n\n    if (model._openGLRenderWindow.getWebgl2()) {\n      if (dataType === VtkDataTypes.FLOAT || useHalfFloat && (dataType === VtkDataTypes.SHORT || dataType === VtkDataTypes.UNSIGNED_SHORT)) {\n        return publicAPI.create3DFromRaw(width, height, depth, numComps, dataType, data);\n      }\n\n      if (dataType === VtkDataTypes.UNSIGNED_CHAR) {\n        for (var _c3 = 0; _c3 < numComps; ++_c3) {\n          model.volumeInfo.scale[_c3] = 255.0;\n        }\n\n        return publicAPI.create3DFromRaw(width, height, depth, numComps, dataType, data);\n      } // otherwise convert to float\n\n\n      var _newArray3 = new Float32Array(numPixelsIn * numComps); // compute min and max values\n\n\n      model.volumeInfo.offset = computedOffset;\n      model.volumeInfo.scale = computedScale;\n      var count = 0;\n      var scaleInverse = computedScale.map(function (s) {\n        return 1 / s;\n      });\n\n      for (var i = 0; i < numPixelsIn; i++) {\n        for (var nc = 0; nc < numComps; nc++) {\n          _newArray3[count] = (data[count] - computedOffset[nc]) * scaleInverse[nc];\n          count++;\n        }\n      }\n\n      return publicAPI.create3DFromRaw(width, height, depth, numComps, VtkDataTypes.FLOAT, _newArray3);\n    } // not webgl2, deal with webgl1, no 3d textures\n    // and maybe no float textures\n    // compute min and max values\n\n\n    var res = computeScaleOffsets(numComps, numPixelsIn, data);\n\n    var volCopyData = function volCopyData(outArray, outIdx, inValue, smin, smax) {\n      outArray[outIdx] = inValue;\n    };\n\n    var dataTypeToUse = VtkDataTypes.UNSIGNED_CHAR; // unsigned char gets used as is\n\n    if (dataType === VtkDataTypes.UNSIGNED_CHAR) {\n      for (var _c4 = 0; _c4 < numComps; ++_c4) {\n        res.offset[_c4] = 0.0;\n        res.scale[_c4] = 255.0;\n      }\n    } else if (model.context.getExtension('OES_texture_float') && model.context.getExtension('OES_texture_float_linear')) {\n      // use float textures scaled to 0.0 to 1.0\n      dataTypeToUse = VtkDataTypes.FLOAT;\n\n      volCopyData = function volCopyData(outArray, outIdx, inValue, soffset, sscale) {\n        outArray[outIdx] = (inValue - soffset) / sscale;\n      };\n    } else {\n      // worst case, scale data to uchar\n      dataTypeToUse = VtkDataTypes.UNSIGNED_CHAR;\n\n      volCopyData = function volCopyData(outArray, outIdx, inValue, soffset, sscale) {\n        outArray[outIdx] = 255.0 * (inValue - soffset) / sscale;\n      };\n    } // Now determine the texture parameters using the arguments.\n\n\n    publicAPI.getOpenGLDataType(dataTypeToUse);\n    publicAPI.getInternalFormat(dataTypeToUse, numComps);\n    publicAPI.getFormat(dataTypeToUse, numComps);\n\n    if (!model.internalFormat || !model.format || !model.openGLDataType) {\n      vtkErrorMacro('Failed to determine texture parameters.');\n      return false;\n    } // have to pack this 3D texture into pot 2D texture\n\n\n    model.target = model.context.TEXTURE_2D;\n    model.components = numComps;\n    model.depth = 1;\n    model.numberOfDimensions = 2; // MAX_TEXTURE_SIZE gives the max dimensions that can be supported by the GPU,\n    // but it doesn't mean it will fit in memory. If we have to use a float data type\n    // or 4 components, there are good chances that the texture size will blow up\n    // and could not fit in the GPU memory. Use a smaller texture size in that case,\n    // which will force a downsampling of the dataset.\n    // That problem does not occur when using webGL2 since we can pack the data in\n    // denser textures based on our data type.\n    // TODO: try to fit in the biggest supported texture, catch the gl error if it\n    // does not fix (OUT_OF_MEMORY), then attempt with smaller texture\n\n    var maxTexDim = model.context.getParameter(model.context.MAX_TEXTURE_SIZE);\n\n    if (maxTexDim > 4096 && (dataTypeToUse === VtkDataTypes.FLOAT || numComps >= 3)) {\n      maxTexDim = 4096;\n    } // compute estimate for XY subsample\n\n\n    var xstride = 1;\n    var ystride = 1;\n\n    if (numPixelsIn > maxTexDim * maxTexDim) {\n      xstride = Math.ceil(Math.sqrt(numPixelsIn / (maxTexDim * maxTexDim)));\n      ystride = xstride;\n    }\n\n    var targetWidth = Math.sqrt(numPixelsIn) / xstride;\n    targetWidth = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.M)(targetWidth); // determine X reps\n\n    var xreps = Math.floor(targetWidth * xstride / width);\n    var yreps = Math.ceil(depth / xreps);\n    var targetHeight = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_5__.M)(height * yreps / ystride);\n    model.width = targetWidth;\n    model.height = targetHeight;\n\n    model._openGLRenderWindow.activateTexture(publicAPI);\n\n    publicAPI.createTexture();\n    publicAPI.bind(); // store the information, we will need it later\n\n    model.volumeInfo.xreps = xreps;\n    model.volumeInfo.yreps = yreps;\n    model.volumeInfo.xstride = xstride;\n    model.volumeInfo.ystride = ystride;\n    model.volumeInfo.offset = res.offset;\n    model.volumeInfo.scale = res.scale; // OK stuff the data into the 2d TEXTURE\n    // first allocate the new texture\n\n    var newArray;\n    var pixCount = targetWidth * targetHeight * numComps;\n\n    if (dataTypeToUse === VtkDataTypes.FLOAT) {\n      newArray = new Float32Array(pixCount);\n    } else {\n      newArray = new Uint8Array(pixCount);\n    } // then stuff the data into it, nothing fancy right now\n    // for stride\n\n\n    var outIdx = 0;\n    var tileWidth = Math.floor(width / xstride);\n    var tileHeight = Math.floor(height / ystride);\n\n    for (var yRep = 0; yRep < yreps; yRep++) {\n      var xrepsThisRow = Math.min(xreps, depth - yRep * xreps);\n      var outXContIncr = numComps * (model.width - xrepsThisRow * Math.floor(width / xstride));\n\n      for (var tileY = 0; tileY < tileHeight; tileY++) {\n        for (var xRep = 0; xRep < xrepsThisRow; xRep++) {\n          var inOffset = numComps * ((yRep * xreps + xRep) * width * height + ystride * tileY * width);\n\n          for (var tileX = 0; tileX < tileWidth; tileX++) {\n            // copy value\n            for (var _nc = 0; _nc < numComps; _nc++) {\n              volCopyData(newArray, outIdx, data[inOffset + xstride * tileX * numComps + _nc], res.offset[_nc], res.scale[_nc]);\n              outIdx++;\n            }\n          }\n        }\n\n        outIdx += outXContIncr;\n      }\n    } // Source texture data from the PBO.\n    // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n\n\n    model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n    model.context.texImage2D(model.target, 0, model.internalFormat, model.width, model.height, 0, model.format, model.openGLDataType, newArray);\n    publicAPI.deactivate();\n    return true;\n  };\n\n  publicAPI.setOpenGLRenderWindow = function (rw) {\n    if (model._openGLRenderWindow === rw) {\n      return;\n    }\n\n    publicAPI.releaseGraphicsResources();\n    model._openGLRenderWindow = rw;\n    model.context = null;\n\n    if (rw) {\n      model.context = model._openGLRenderWindow.getContext();\n    }\n  }; //----------------------------------------------------------------------------\n\n\n  publicAPI.getMaximumTextureSize = function (ctx) {\n    if (ctx && ctx.isCurrent()) {\n      return ctx.getIntegerv(ctx.MAX_TEXTURE_SIZE);\n    }\n\n    return -1;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  _openGLRenderWindow: null,\n  context: null,\n  handle: 0,\n  sendParametersTime: null,\n  textureBuildTime: null,\n  numberOfDimensions: 0,\n  target: 0,\n  format: 0,\n  openGLDataType: 0,\n  components: 0,\n  width: 0,\n  height: 0,\n  depth: 0,\n  autoParameters: true,\n  wrapS: Wrap.CLAMP_TO_EDGE,\n  wrapT: Wrap.CLAMP_TO_EDGE,\n  wrapR: Wrap.CLAMP_TO_EDGE,\n  minificationFilter: Filter.NEAREST,\n  magnificationFilter: Filter.NEAREST,\n  minLOD: -1000.0,\n  maxLOD: 1000.0,\n  baseLevel: 0,\n  maxLevel: 1000,\n  generateMipmap: false\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].extend(publicAPI, model, initialValues);\n  model.sendParametersTime = {};\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_3__.obj)(model.sendParametersTime, {\n    mtime: 0\n  });\n  model.textureBuildTime = {};\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_3__.obj)(model.textureBuildTime, {\n    mtime: 0\n  }); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_3__.set)(publicAPI, model, ['format', 'openGLDataType']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_3__.setGet)(publicAPI, model, ['keyMatrixTime', 'minificationFilter', 'magnificationFilter', 'wrapS', 'wrapT', 'wrapR', 'generateMipmap']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_3__.get)(publicAPI, model, ['width', 'height', 'volumeInfo', 'components', 'handle', 'target']); // Object methods\n\n  vtkOpenGLTexture(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_3__.newInstance)(extend, 'vtkOpenGLTexture'); // ----------------------------------------------------------------------------\n\nvar vtkOpenGLTexture$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _Texture_Constants_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]); // Register ourself to OpenGL backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_7__.registerOverride)('vtkTexture', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture/Constants.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture/Constants.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Filter\": () => (/* binding */ Filter),\n/* harmony export */   \"Wrap\": () => (/* binding */ Wrap),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar Wrap = {\n  CLAMP_TO_EDGE: 0,\n  REPEAT: 1,\n  MIRRORED_REPEAT: 2\n};\nvar Filter = {\n  NEAREST: 0,\n  LINEAR: 1,\n  NEAREST_MIPMAP_NEAREST: 2,\n  NEAREST_MIPMAP_LINEAR: 3,\n  LINEAR_MIPMAP_NEAREST: 4,\n  LINEAR_MIPMAP_LINEAR: 5\n};\nvar Constants = {\n  Wrap: Wrap,\n  Filter: Filter\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/TextureUnitManager.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/TextureUnitManager.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkTextureUnitManager),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro; // ----------------------------------------------------------------------------\n// vtkOpenGLTextureUnitManager methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLTextureUnitManager(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLTextureUnitManager'); // ----------------------------------------------------------------------------\n  // Description:\n  // Delete the allocation table and check if it is not called before\n  // all the texture units have been released.\n\n  publicAPI.deleteTable = function () {\n    for (var i = 0; i < model.numberOfTextureUnits; ++i) {\n      if (model.textureUnits[i] === true) {\n        vtkErrorMacro('some texture units  were not properly released');\n      }\n    }\n\n    model.textureUnits = [];\n    model.numberOfTextureUnits = 0;\n  }; // ----------------------------------------------------------------------------\n\n\n  publicAPI.setContext = function (ctx) {\n    if (model.context !== ctx) {\n      if (model.context !== 0) {\n        publicAPI.deleteTable();\n      }\n\n      model.context = ctx;\n\n      if (model.context) {\n        model.numberOfTextureUnits = ctx.getParameter(ctx.MAX_TEXTURE_IMAGE_UNITS);\n\n        for (var i = 0; i < model.numberOfTextureUnits; ++i) {\n          model.textureUnits[i] = false;\n        }\n      }\n\n      publicAPI.modified();\n    }\n  }; // ----------------------------------------------------------------------------\n  // Description:\n  // Reserve a texture unit. It returns its number.\n  // It returns -1 if the allocation failed (because there are no more\n  // texture units left).\n  // \\post valid_result: result==-1 || result>=0 && result<this->GetNumberOfTextureUnits())\n  // \\post allocated: result==-1 || this->IsAllocated(result)\n\n\n  publicAPI.allocate = function () {\n    for (var i = 0; i < model.numberOfTextureUnits; i++) {\n      if (!publicAPI.isAllocated(i)) {\n        model.textureUnits[i] = true;\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  publicAPI.allocateUnit = function (unit) {\n    if (publicAPI.isAllocated(unit)) {\n      return -1;\n    }\n\n    model.textureUnits[unit] = true;\n    return unit;\n  }; // ----------------------------------------------------------------------------\n  // Description:\n  // Tell if texture unit `textureUnitId' is already allocated.\n  // \\pre valid_id_range : textureUnitId>=0 && textureUnitId<this->GetNumberOfTextureUnits()\n\n\n  publicAPI.isAllocated = function (textureUnitId) {\n    return model.textureUnits[textureUnitId];\n  }; // ----------------------------------------------------------------------------\n  // Description:\n  // Release a texture unit.\n  // \\pre valid_id: textureUnitId>=0 && textureUnitId<this->GetNumberOfTextureUnits()\n  // \\pre allocated_id: this->IsAllocated(textureUnitId)\n\n\n  publicAPI.free = function (val) {\n    model.textureUnits[val] = false;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  context: null,\n  numberOfTextureUnits: 0,\n  textureUnits: 0\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  model.textureUnits = []; // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['numberOfTextureUnits']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['context']); // Object methods\n\n  vtkOpenGLTextureUnitManager(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkOpenGLTextureUnitManager'); // ----------------------------------------------------------------------------\n\nvar vtkTextureUnitManager = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/TextureUnitManager.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/VertexArrayObject.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/VertexArrayObject.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkVertexArrayObject),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _BufferObject_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BufferObject/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/BufferObject/Constants.js\");\n\n\n\n// vtkOpenGLVertexArrayObject methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLVertexArrayObject(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLVertexArrayObject'); // Public API methods\n\n  publicAPI.exposedMethod = function () {// This is a publicly exposed method of this object\n  };\n\n  publicAPI.initialize = function () {\n    model.instancingExtension = null;\n\n    if (!model._openGLRenderWindow.getWebgl2()) {\n      model.instancingExtension = model.context.getExtension('ANGLE_instanced_arrays');\n    }\n\n    if (!model.forceEmulation && model._openGLRenderWindow && model._openGLRenderWindow.getWebgl2()) {\n      model.extension = null;\n      model.supported = true;\n      model.handleVAO = model.context.createVertexArray();\n    } else {\n      model.extension = model.context.getExtension('OES_vertex_array_object'); // Start setting up VAO\n\n      if (!model.forceEmulation && model.extension) {\n        model.supported = true;\n        model.handleVAO = model.extension.createVertexArrayOES();\n      } else {\n        model.supported = false;\n      }\n    }\n  };\n\n  publicAPI.isReady = function () {\n    return (// We either probed and allocated a VAO, or are falling back as the current\n      // hardware does not support VAOs.\n      model.handleVAO !== 0 || model.supported === false\n    );\n  };\n\n  publicAPI.bind = function () {\n    // Either simply bind the VAO, or emulate behavior by binding all attributes.\n    if (!publicAPI.isReady()) {\n      publicAPI.initialize();\n    }\n\n    if (publicAPI.isReady() && model.supported) {\n      if (model.extension) {\n        model.extension.bindVertexArrayOES(model.handleVAO);\n      } else {\n        model.context.bindVertexArray(model.handleVAO);\n      }\n    } else if (publicAPI.isReady()) {\n      var gl = model.context;\n\n      for (var ibuff = 0; ibuff < model.buffers.length; ++ibuff) {\n        var buff = model.buffers[ibuff];\n        model.context.bindBuffer(gl.ARRAY_BUFFER, buff.buffer);\n\n        for (var iatt = 0; iatt < buff.attributes.length; ++iatt) {\n          var attrIt = buff.attributes[iatt];\n          var matrixCount = attrIt.isMatrix ? attrIt.size : 1;\n\n          for (var i = 0; i < matrixCount; ++i) {\n            gl.enableVertexAttribArray(attrIt.index + i);\n            gl.vertexAttribPointer(attrIt.index + i, attrIt.size, attrIt.type, attrIt.normalize, attrIt.stride, attrIt.offset + attrIt.stride * i / attrIt.size);\n\n            if (attrIt.divisor > 0) {\n              if (model.instancingExtension) {\n                model.instancingExtension.vertexAttribDivisorANGLE(attrIt.index + i, 1);\n              } else {\n                gl.vertexAttribDivisor(attrIt.index + i, 1);\n              }\n            }\n          }\n        }\n      }\n    }\n  };\n\n  publicAPI.release = function () {\n    // Either simply release the VAO, or emulate behavior by releasing all attributes.\n    if (publicAPI.isReady() && model.supported) {\n      if (model.extension) {\n        model.extension.bindVertexArrayOES(null);\n      } else {\n        model.context.bindVertexArray(null);\n      }\n    } else if (publicAPI.isReady()) {\n      var gl = model.context;\n\n      for (var ibuff = 0; ibuff < model.buffers.length; ++ibuff) {\n        var buff = model.buffers[ibuff];\n        model.context.bindBuffer(gl.ARRAY_BUFFER, buff.buffer);\n\n        for (var iatt = 0; iatt < buff.attributes.length; ++iatt) {\n          var attrIt = buff.attributes[iatt];\n          var matrixCount = attrIt.isMatrix ? attrIt.size : 1;\n\n          for (var i = 0; i < matrixCount; ++i) {\n            gl.enableVertexAttribArray(attrIt.index + i);\n            gl.vertexAttribPointer(attrIt.index + i, attrIt.size, attrIt.type, attrIt.normalize, attrIt.stride, attrIt.offset + attrIt.stride * i / attrIt.size);\n\n            if (attrIt.divisor > 0) {\n              if (model.instancingExtension) {\n                model.instancingExtension.vertexAttribDivisorANGLE(attrIt.index + i, 0);\n              } else {\n                gl.vertexAttribDivisor(attrIt.index + i, 0);\n              }\n            }\n\n            gl.disableVertexAttribArray(attrIt.index + i);\n          }\n        }\n      }\n    }\n  };\n\n  publicAPI.shaderProgramChanged = function () {\n    publicAPI.release();\n\n    if (model.handleVAO) {\n      if (model.extension) {\n        model.extension.deleteVertexArrayOES(model.handleVAO);\n      } else {\n        model.context.deleteVertexArray(model.handleVAO);\n      }\n    }\n\n    model.handleVAO = 0;\n    model.handleProgram = 0;\n  };\n\n  publicAPI.releaseGraphicsResources = function () {\n    publicAPI.shaderProgramChanged();\n\n    if (model.handleVAO) {\n      if (model.extension) {\n        model.extension.deleteVertexArrayOES(model.handleVAO);\n      } else {\n        model.context.deleteVertexArray(model.handleVAO);\n      }\n    }\n\n    model.handleVAO = 0;\n    model.supported = true;\n    model.handleProgram = 0;\n  };\n\n  publicAPI.addAttributeArray = function (program, buffer, name, offset, stride, elementType, elementTupleSize, normalize) {\n    return publicAPI.addAttributeArrayWithDivisor(program, buffer, name, offset, stride, elementType, elementTupleSize, normalize, 0, false);\n  };\n\n  publicAPI.addAttributeArrayWithDivisor = function (program, buffer, name, offset, stride, elementType, elementTupleSize, normalize, divisor, isMatrix) {\n    if (!program) {\n      return false;\n    } // Check the program is bound, and the buffer is valid.\n\n\n    if (!program.isBound() || buffer.getHandle() === 0 || buffer.getType() !== _BufferObject_Constants_js__WEBPACK_IMPORTED_MODULE_1__.ObjectType.ARRAY_BUFFER) {\n      return false;\n    } // Perform initialization if necessary, ensure program matches VAOs.\n\n\n    if (model.handleProgram === 0) {\n      model.handleProgram = program.getHandle();\n    }\n\n    if (!publicAPI.isReady()) {\n      publicAPI.initialize();\n    }\n\n    if (!publicAPI.isReady() || model.handleProgram !== program.getHandle()) {\n      return false;\n    }\n\n    var gl = model.context;\n    var attribs = {};\n    attribs.name = name;\n    attribs.index = gl.getAttribLocation(model.handleProgram, name);\n    attribs.offset = offset;\n    attribs.stride = stride;\n    attribs.type = elementType;\n    attribs.size = elementTupleSize;\n    attribs.normalize = normalize;\n    attribs.isMatrix = isMatrix;\n    attribs.divisor = divisor;\n\n    if (attribs.Index === -1) {\n      return false;\n    } // Always make the call as even the first use wants the attrib pointer setting\n    // up when we are emulating.\n\n\n    buffer.bind();\n    gl.enableVertexAttribArray(attribs.index);\n    gl.vertexAttribPointer(attribs.index, attribs.size, attribs.type, attribs.normalize, attribs.stride, attribs.offset);\n\n    if (divisor > 0) {\n      if (model.instancingExtension) {\n        model.instancingExtension.vertexAttribDivisorANGLE(attribs.index, 1);\n      } else {\n        gl.vertexAttribDivisor(attribs.index, 1);\n      }\n    }\n\n    attribs.buffer = buffer.getHandle(); // If vertex array objects are not supported then build up our list.\n\n    if (!model.supported) {\n      // find the buffer\n      var buffFound = false;\n\n      for (var ibuff = 0; ibuff < model.buffers.length; ++ibuff) {\n        var buff = model.buffers[ibuff];\n\n        if (buff.buffer === attribs.buffer) {\n          buffFound = true;\n          var found = false;\n\n          for (var iatt = 0; iatt < buff.attributes.length; ++iatt) {\n            var attrIt = buff.attributes[iatt];\n\n            if (attrIt.name === name) {\n              found = true;\n              buff.attributes[iatt] = attribs;\n            }\n          }\n\n          if (!found) {\n            buff.attributes.push(attribs);\n          }\n        }\n      }\n\n      if (!buffFound) {\n        model.buffers.push({\n          buffer: attribs.buffer,\n          attributes: [attribs]\n        });\n      }\n    }\n\n    return true;\n  };\n\n  publicAPI.addAttributeMatrixWithDivisor = function (program, buffer, name, offset, stride, elementType, elementTupleSize, normalize, divisor) {\n    // bind the first row of values\n    var result = publicAPI.addAttributeArrayWithDivisor(program, buffer, name, offset, stride, elementType, elementTupleSize, normalize, divisor, true);\n\n    if (!result) {\n      return result;\n    }\n\n    var gl = model.context;\n    var index = gl.getAttribLocation(model.handleProgram, name);\n\n    for (var i = 1; i < elementTupleSize; i++) {\n      gl.enableVertexAttribArray(index + i);\n      gl.vertexAttribPointer(index + i, elementTupleSize, elementType, normalize, stride, offset + stride * i / elementTupleSize);\n\n      if (divisor > 0) {\n        if (model.instancingExtension) {\n          model.instancingExtension.vertexAttribDivisorANGLE(index + i, 1);\n        } else {\n          gl.vertexAttribDivisor(index + i, 1);\n        }\n      }\n    }\n\n    return true;\n  };\n\n  publicAPI.removeAttributeArray = function (name) {\n    if (!publicAPI.isReady() || model.handleProgram === 0) {\n      return false;\n    } // If we don't have real VAOs find the entry and remove it too.\n\n\n    if (!model.supported) {\n      for (var ibuff = 0; ibuff < model.buffers.length; ++ibuff) {\n        var buff = model.buffers[ibuff];\n\n        for (var iatt = 0; iatt < buff.attributes.length; ++iatt) {\n          var attrIt = buff.attributes[iatt];\n\n          if (attrIt.name === name) {\n            buff.attributes.splice(iatt, 1);\n\n            if (!buff.attributes.length) {\n              model.buffers.splice(ibuff, 1);\n            }\n\n            return true;\n          }\n        }\n      }\n    }\n\n    return true;\n  };\n\n  publicAPI.setOpenGLRenderWindow = function (rw) {\n    if (model._openGLRenderWindow === rw) {\n      return;\n    }\n\n    publicAPI.releaseGraphicsResources();\n    model._openGLRenderWindow = rw;\n    model.context = null;\n\n    if (rw) {\n      model.context = model._openGLRenderWindow.getContext();\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  forceEmulation: false,\n  handleVAO: 0,\n  handleProgram: 0,\n  supported: true,\n  buffers: null,\n  context: null // _openGLRenderWindow: null,\n\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Internal objects initialization\n\n  model.buffers = []; // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model); // Create get-only macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['supported']); // Create get-set macros\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['forceEmulation']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkOpenGLVertexArrayObject(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkOpenGLVertexArrayObject'); // ----------------------------------------------------------------------------\n\nvar vtkVertexArrayObject = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/VertexArrayObject.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkViewNodeFactory),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance),\n/* harmony export */   \"registerOverride\": () => (/* binding */ registerOverride)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNodeFactory.js\");\n\n\n\nvar CLASS_MAPPING = Object.create(null);\nfunction registerOverride(className, fn) {\n  CLASS_MAPPING[className] = fn;\n} // ----------------------------------------------------------------------------\n// vtkOpenGLViewNodeFactory methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLViewNodeFactory(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkOpenGLViewNodeFactory');\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Static class mapping shared across instances\n\n  model.overrides = CLASS_MAPPING; // Inheritance\n\n  _SceneGraph_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues); // Object methods\n\n  vtkOpenGLViewNodeFactory(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkOpenGLViewNodeFactory'); // ----------------------------------------------------------------------------\n\nvar vtkViewNodeFactory = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/ViewNodeFactory.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyData2DFS.glsl.js":
/*!************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyData2DFS.glsl.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"v\": () => (/* binding */ vtkPolyData2DFS)\n/* harmony export */ });\nvar vtkPolyData2DFS = \"//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyData2DFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nuniform int PrimitiveIDOffset;\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// Scalar coloring\\n//VTK::Color::Dec\\n\\n// Depth Peeling\\n//VTK::DepthPeeling::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\nvoid main()\\n{\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  //VTK::Color::Impl\\n  //VTK::TCoord::Impl\\n\\n  //VTK::DepthPeeling::Impl\\n  //VTK::Picking::Impl\\n\\n  if (gl_FragData[0].a <= 0.0)\\n    {\\n    discard;\\n    }\\n}\\n\";\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyData2DFS.glsl.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyData2DVS.glsl.js":
/*!************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyData2DVS.glsl.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"v\": () => (/* binding */ vtkPolyData2DVS)\n/* harmony export */ });\nvar vtkPolyData2DVS = \"//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyData2DVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\n// all variables that represent positions or directions have a suffix\\n// indicating the coordinate system they are in. The possible values are\\n// MC - Model Coordinates\\n// WC - WC world coordinates\\n// VC - View Coordinates\\n// DC - Display Coordinates\\n\\nin vec4 vertexWC;\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\nuniform mat4 WCVCMatrix;  // World to view matrix\\n\\nvoid main()\\n{\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  gl_Position = WCVCMatrix*vertexWC;\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::PositionVC::Impl\\n}\\n\";\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyData2DVS.glsl.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyDataFS.glsl.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyDataFS.glsl.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"v\": () => (/* binding */ vtkPolyDataFS)\n/* harmony export */ });\nvar vtkPolyDataFS = \"//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyDataFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the polydata mappers fragment shader\\n\\nuniform int PrimitiveIDOffset;\\n\\n// VC position of this fragment\\n//VTK::PositionVC::Dec\\n\\n// optional color passed in from the vertex shader, vertexColor\\n//VTK::Color::Dec\\n\\n// optional surface normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// Depth Peeling Support\\n//VTK::DepthPeeling::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// handle coincident offsets\\n//VTK::Coincident::Dec\\n\\n//VTK::ZBuffer::Dec\\n\\nvoid main()\\n{\\n  // VC position of this fragment. This should not branch/return/discard.\\n  //VTK::PositionVC::Impl\\n\\n  // Place any calls that require uniform flow (e.g. dFdx) here.\\n  //VTK::UniformFlow::Impl\\n\\n  // Set gl_FragDepth here (gl_FragCoord.z by default)\\n  //VTK::Depth::Impl\\n\\n  // Early depth peeling abort:\\n  //VTK::DepthPeeling::PreColor\\n\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  //VTK::Color::Impl\\n\\n  // Generate the normal if we are not passed in one\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Light::Impl\\n\\n  if (gl_FragData[0].a <= 0.0)\\n    {\\n    discard;\\n    }\\n\\n  //VTK::DepthPeeling::Impl\\n\\n  //VTK::Picking::Impl\\n\\n  // handle coincident offsets\\n  //VTK::Coincident::Impl\\n\\n  //VTK::ZBuffer::Impl\\n\\n  //VTK::RenderPassFragmentShader::Impl\\n}\\n\";\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyDataFS.glsl.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyDataVS.glsl.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyDataVS.glsl.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"v\": () => (/* binding */ vtkPolyDataVS)\n/* harmony export */ });\nvar vtkPolyDataVS = \"//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyDataVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexMC;\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\nvoid main()\\n{\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  //VTK::PrimID::Impl\\n\\n  //VTK::PositionVC::Impl\\n\\n  //VTK::Light::Impl\\n\\n  //VTK::Picking::Impl\\n}\\n\";\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/OpenGL/glsl/vtkPolyDataVS.glsl.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/Profiles/Geometry.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/Profiles/Geometry.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _OpenGL_Camera_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../OpenGL/Camera.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Camera.js\");\n/* harmony import */ var _OpenGL_Renderer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OpenGL/Renderer.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Renderer.js\");\n/* harmony import */ var _OpenGL_Actor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OpenGL/Actor.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Actor.js\");\n/* harmony import */ var _OpenGL_Actor2D_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OpenGL/Actor2D.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Actor2D.js\");\n/* harmony import */ var _OpenGL_CubeAxesActor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OpenGL/CubeAxesActor.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/CubeAxesActor.js\");\n/* harmony import */ var _OpenGL_PolyDataMapper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../OpenGL/PolyDataMapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/PolyDataMapper.js\");\n/* harmony import */ var _OpenGL_PolyDataMapper2D_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../OpenGL/PolyDataMapper2D.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/PolyDataMapper2D.js\");\n/* harmony import */ var _OpenGL_ScalarBarActor_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../OpenGL/ScalarBarActor.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/ScalarBarActor.js\");\n/* harmony import */ var _OpenGL_Skybox_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../OpenGL/Skybox.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Skybox.js\");\n/* harmony import */ var _OpenGL_Texture_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../OpenGL/Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/Texture.js\");\n/* harmony import */ var _OpenGL_PixelSpaceCallbackMapper_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../OpenGL/PixelSpaceCallbackMapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/OpenGL/PixelSpaceCallbackMapper.js\");\n/* harmony import */ var _WebGPU_Camera_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../WebGPU/Camera.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Camera.js\");\n/* harmony import */ var _WebGPU_Renderer_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../WebGPU/Renderer.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Renderer.js\");\n/* harmony import */ var _WebGPU_Actor_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../WebGPU/Actor.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Actor.js\");\n/* harmony import */ var _WebGPU_CubeAxesActor_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../WebGPU/CubeAxesActor.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/CubeAxesActor.js\");\n/* harmony import */ var _WebGPU_PolyDataMapper_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../WebGPU/PolyDataMapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/PolyDataMapper.js\");\n/* harmony import */ var _WebGPU_ScalarBarActor_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../WebGPU/ScalarBarActor.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ScalarBarActor.js\");\n/* harmony import */ var _WebGPU_Texture_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../WebGPU/Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Texture.js\");\n/* harmony import */ var _WebGPU_PixelSpaceCallbackMapper_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../WebGPU/PixelSpaceCallbackMapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/PixelSpaceCallbackMapper.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/Profiles/Geometry.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkRenderPass$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\nfunction vtkRenderPass(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkRenderPass');\n\n  publicAPI.getOperation = function () {\n    return model.currentOperation;\n  };\n\n  publicAPI.setCurrentOperation = function (val) {\n    model.currentOperation = val;\n    model.currentTraverseOperation = \"traverse\".concat(_macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].capitalize(model.currentOperation));\n  };\n\n  publicAPI.getTraverseOperation = function () {\n    return model.currentTraverseOperation;\n  }; // by default this class will traverse all of its\n  // preDelegateOperations, then call its delegate render passes\n  // the traverse all of its postDelegateOperations\n  // any of those three arrays can be empty\n\n\n  publicAPI.traverse = function (viewNode) {\n    var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    if (model.deleted) {\n      return;\n    } // we just render our delegates in order\n\n\n    model.currentParent = parent;\n    model.preDelegateOperations.forEach(function (val) {\n      publicAPI.setCurrentOperation(val);\n      viewNode.traverse(publicAPI);\n    });\n    model.delegates.forEach(function (val) {\n      val.traverse(viewNode, publicAPI);\n    });\n    model.postDelegateOperations.forEach(function (val) {\n      publicAPI.setCurrentOperation(val);\n      viewNode.traverse(publicAPI);\n    });\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  delegates: [],\n  currentOperation: null,\n  preDelegateOperations: [],\n  postDelegateOperations: [],\n  currentParent: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['currentOperation']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['delegates', 'currentParent', 'preDelegateOperations', 'postDelegateOperations']); // Object methods\n\n  vtkRenderPass(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkRenderPass'); // ----------------------------------------------------------------------------\n\nvar vtkRenderPass$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderWindowViewNode.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderWindowViewNode.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkRenderWindowViewNode$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n\n\n\n// vtkRenderWindowViewNode is intended to be a superclass for all api specific\n// RenderWindows. It is intended to define a common API that can be invoked\n// upon an api specific render window and provide some common method\n// implementations. If your application requires communicating with an api specific\n// view try to limit such interactions to methods defined in this class.\n// ----------------------------------------------------------------------------\n// ----------------------------------------------------------------------------\n// vtkRenderWindowViewNode methods\n// ----------------------------------------------------------------------------\n\nfunction vtkRenderWindowViewNode(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkRenderWindowViewNode');\n\n  publicAPI.getViewNodeFactory = function () {\n    return null;\n  };\n\n  publicAPI.getAspectRatio = function () {\n    return model.size[0] / model.size[1];\n  };\n\n  publicAPI.getAspectRatioForRenderer = function (renderer) {\n    var viewport = renderer.getViewportByReference();\n    return model.size[0] * (viewport[2] - viewport[0]) / ((viewport[3] - viewport[1]) * model.size[1]);\n  };\n\n  publicAPI.isInViewport = function (x, y, viewport) {\n    var vCoords = viewport.getViewportByReference();\n    var size = publicAPI.getFramebufferSize();\n\n    if (vCoords[0] * size[0] <= x && vCoords[2] * size[0] >= x && vCoords[1] * size[1] <= y && vCoords[3] * size[1] >= y) {\n      return true;\n    }\n\n    return false;\n  };\n\n  publicAPI.getViewportSize = function (viewport) {\n    var vCoords = viewport.getViewportByReference();\n    var size = publicAPI.getFramebufferSize();\n    return [(vCoords[2] - vCoords[0]) * size[0], (vCoords[3] - vCoords[1]) * size[1]];\n  };\n\n  publicAPI.getViewportCenter = function (viewport) {\n    var size = publicAPI.getViewportSize(viewport);\n    return [size[0] * 0.5, size[1] * 0.5];\n  };\n\n  publicAPI.displayToNormalizedDisplay = function (x, y, z) {\n    var size = publicAPI.getFramebufferSize();\n    return [x / size[0], y / size[1], z];\n  };\n\n  publicAPI.normalizedDisplayToDisplay = function (x, y, z) {\n    var size = publicAPI.getFramebufferSize();\n    return [x * size[0], y * size[1], z];\n  };\n\n  publicAPI.worldToView = function (x, y, z, renderer) {\n    return renderer.worldToView(x, y, z);\n  };\n\n  publicAPI.viewToWorld = function (x, y, z, renderer) {\n    return renderer.viewToWorld(x, y, z);\n  };\n\n  publicAPI.worldToDisplay = function (x, y, z, renderer) {\n    var val = renderer.worldToView(x, y, z);\n    var dims = publicAPI.getViewportSize(renderer);\n    var val2 = renderer.viewToProjection(val[0], val[1], val[2], dims[0] / dims[1]);\n    var val3 = renderer.projectionToNormalizedDisplay(val2[0], val2[1], val2[2]);\n    return publicAPI.normalizedDisplayToDisplay(val3[0], val3[1], val3[2]);\n  };\n\n  publicAPI.displayToWorld = function (x, y, z, renderer) {\n    var val = publicAPI.displayToNormalizedDisplay(x, y, z);\n    var val2 = renderer.normalizedDisplayToProjection(val[0], val[1], val[2]);\n    var dims = publicAPI.getViewportSize(renderer);\n    var val3 = renderer.projectionToView(val2[0], val2[1], val2[2], dims[0] / dims[1]);\n    return renderer.viewToWorld(val3[0], val3[1], val3[2]);\n  };\n\n  publicAPI.normalizedDisplayToViewport = function (x, y, z, renderer) {\n    var vCoords = renderer.getViewportByReference();\n    vCoords = publicAPI.normalizedDisplayToDisplay(vCoords[0], vCoords[1], 0.0);\n    var coords = publicAPI.normalizedDisplayToDisplay(x, y, z);\n    return [coords[0] - vCoords[0] - 0.5, coords[1] - vCoords[1] - 0.5, z];\n  };\n\n  publicAPI.viewportToNormalizedViewport = function (x, y, z, renderer) {\n    var size = publicAPI.getViewportSize(renderer);\n\n    if (size && size[0] !== 0 && size[1] !== 0) {\n      return [x / (size[0] - 1.0), y / (size[1] - 1.0), z];\n    }\n\n    return [x, y, z];\n  };\n\n  publicAPI.normalizedViewportToViewport = function (x, y, z, renderer) {\n    var size = publicAPI.getViewportSize(renderer);\n    return [x * (size[0] - 1.0), y * (size[1] - 1.0), z];\n  };\n\n  publicAPI.displayToLocalDisplay = function (x, y, z) {\n    var size = publicAPI.getFramebufferSize();\n    return [x, size[1] - y - 1, z];\n  };\n\n  publicAPI.viewportToNormalizedDisplay = function (x, y, z, renderer) {\n    var vCoords = renderer.getViewportByReference();\n    vCoords = publicAPI.normalizedDisplayToDisplay(vCoords[0], vCoords[1], 0.0);\n    var x2 = x + vCoords[0] + 0.5;\n    var y2 = y + vCoords[1] + 0.5;\n    return publicAPI.displayToNormalizedDisplay(x2, y2, z);\n  };\n\n  publicAPI.getPixelData = function (x1, y1, x2, y2) {\n    _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro('not implemented');\n    return undefined;\n  };\n\n  publicAPI.createSelector = function () {\n    _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro('not implemented');\n    return undefined;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  size: undefined,\n  selector: undefined\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n\n  if (!model.size) {\n    model.size = [300, 300];\n  }\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getArray(publicAPI, model, ['size'], 2);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['selector']); // Inheritance\n\n  _ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues); // Object methods\n\n  vtkRenderWindowViewNode(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkRenderWindowViewNode'); // ----------------------------------------------------------------------------\n\nvar vtkRenderWindowViewNode$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderWindowViewNode.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkViewNode$1)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro;\nvar PASS_TYPES = ['Build', 'Render']; // ----------------------------------------------------------------------------\n// vtkViewNode methods\n// ----------------------------------------------------------------------------\n\nfunction vtkViewNode(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkViewNode'); // Builds myself.\n\n  publicAPI.build = function (prepass) {}; // Renders myself\n\n\n  publicAPI.render = function (prepass) {};\n\n  publicAPI.traverse = function (renderPass) {\n    // we can choose to do special\n    // traversal here based on pass\n    var passTraversal = renderPass.getTraverseOperation();\n    var fn = publicAPI[passTraversal];\n\n    if (fn) {\n      fn(renderPass);\n      return;\n    } // default traversal\n\n\n    publicAPI.apply(renderPass, true);\n\n    for (var index = 0; index < model.children.length; index++) {\n      model.children[index].traverse(renderPass);\n    }\n\n    publicAPI.apply(renderPass, false);\n  };\n\n  publicAPI.apply = function (renderPass, prepass) {\n    var customRenderPass = publicAPI[renderPass.getOperation()];\n\n    if (customRenderPass) {\n      customRenderPass(prepass, renderPass);\n    }\n  };\n\n  publicAPI.getViewNodeFor = function (dataObject) {\n    if (model.renderable === dataObject) {\n      return publicAPI;\n    }\n\n    for (var index = 0; index < model.children.length; ++index) {\n      var child = model.children[index];\n      var vn = child.getViewNodeFor(dataObject);\n\n      if (vn) {\n        return vn;\n      }\n    }\n\n    return undefined;\n  };\n\n  publicAPI.getFirstAncestorOfType = function (type) {\n    if (!model._parent) {\n      return null;\n    }\n\n    if (model._parent.isA(type)) {\n      return model._parent;\n    }\n\n    return model._parent.getFirstAncestorOfType(type);\n  };\n\n  publicAPI.addMissingNode = function (dobj) {\n    if (!dobj) {\n      return;\n    }\n\n    var result = model._renderableChildMap.get(dobj); // if found just mark as visited\n\n\n    if (result !== undefined) {\n      result.setVisited(true);\n    } else {\n      // otherwise create a node\n      var newNode = publicAPI.createViewNode(dobj);\n\n      if (newNode) {\n        newNode.setParent(publicAPI);\n        newNode.setVisited(true);\n\n        model._renderableChildMap.set(dobj, newNode);\n\n        model.children.push(newNode);\n      }\n    }\n  };\n\n  publicAPI.addMissingNodes = function (dataObjs) {\n    if (!dataObjs || !dataObjs.length) {\n      return;\n    }\n\n    for (var index = 0; index < dataObjs.length; ++index) {\n      var dobj = dataObjs[index];\n\n      var result = model._renderableChildMap.get(dobj); // if found just mark as visited\n\n\n      if (result !== undefined) {\n        result.setVisited(true);\n      } else {\n        // otherwise create a node\n        var newNode = publicAPI.createViewNode(dobj);\n\n        if (newNode) {\n          newNode.setParent(publicAPI);\n          newNode.setVisited(true);\n\n          model._renderableChildMap.set(dobj, newNode);\n\n          model.children.push(newNode);\n        }\n      }\n    }\n  };\n\n  publicAPI.prepareNodes = function () {\n    for (var index = 0; index < model.children.length; ++index) {\n      model.children[index].setVisited(false);\n    }\n  };\n\n  publicAPI.setVisited = function (val) {\n    model.visited = val;\n  };\n\n  publicAPI.removeUnusedNodes = function () {\n    var deleted = null;\n\n    for (var index = 0; index < model.children.length; ++index) {\n      var child = model.children[index];\n      var visited = child.getVisited();\n\n      if (!visited) {\n        var renderable = child.getRenderable();\n\n        if (renderable) {\n          model._renderableChildMap.delete(renderable);\n        }\n\n        if (!deleted) {\n          deleted = [];\n        }\n\n        deleted.push(child);\n      } else {\n        child.setVisited(false);\n      }\n    }\n\n    if (deleted) {\n      // slow does alloc but not as common\n      model.children = model.children.filter(function (el) {\n        return !deleted.includes(el);\n      });\n    }\n  };\n\n  publicAPI.createViewNode = function (dataObj) {\n    if (!model.myFactory) {\n      vtkErrorMacro('Cannot create view nodes without my own factory');\n      return null;\n    }\n\n    var ret = model.myFactory.createNode(dataObj);\n\n    if (ret) {\n      ret.setRenderable(dataObj);\n    }\n\n    return ret;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  // _parent: null,\n  renderable: null,\n  myFactory: null,\n  children: [],\n  visited: false\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].event(publicAPI, model, 'event');\n  model._renderableChildMap = new Map();\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['visited']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['_parent', 'renderable', 'myFactory']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getArray(publicAPI, model, ['children']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].moveToProtected(publicAPI, model, ['parent']); // Object methods\n\n  vtkViewNode(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkViewNode'); // ----------------------------------------------------------------------------\n\nvar vtkViewNode$1 = {\n  newInstance: newInstance,\n  extend: extend,\n  PASS_TYPES: PASS_TYPES\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNodeFactory.js":
/*!******************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNodeFactory.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkViewNodeFactory$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n// vtkViewNodeFactory methods\n// ----------------------------------------------------------------------------\n\nfunction vtkViewNodeFactory(publicAPI, model) {\n  // Make sure our overrides is just for our instance not shared with everyone...\n  if (!model.overrides) {\n    model.overrides = {};\n  } // Set our className\n\n\n  model.classHierarchy.push('vtkViewNodeFactory');\n\n  publicAPI.createNode = function (dataObject) {\n    if (dataObject.isDeleted()) {\n      return null;\n    }\n\n    var cpt = 0;\n    var className = dataObject.getClassName(cpt++);\n    var isObject = false;\n    var keys = Object.keys(model.overrides);\n\n    while (className && !isObject) {\n      if (keys.indexOf(className) !== -1) {\n        isObject = true;\n      } else {\n        className = dataObject.getClassName(cpt++);\n      }\n    }\n\n    if (!isObject) {\n      return null;\n    }\n\n    var vn = model.overrides[className]();\n    vn.setMyFactory(publicAPI);\n    return vn;\n  };\n\n  publicAPI.registerOverride = function (className, func) {\n    model.overrides[className] = func;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {// overrides: {},\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model); // Object methods\n\n  vtkViewNodeFactory(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkViewNodeFactory'); // ----------------------------------------------------------------------------\n\nvar vtkViewNodeFactory$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNodeFactory.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/Actor.js":
/*!****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/Actor.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js\");\n\n\n\n\n\n// vtkWebGPUActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUActor(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUActor'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.WebGPURenderer = publicAPI.getFirstAncestorOfType('vtkWebGPURenderer');\n      model.WebGPURenderWindow = model.WebGPURenderer.getFirstAncestorOfType('vtkWebGPURenderWindow');\n\n      if (model.propID === undefined) {\n        model.propID = model.WebGPURenderWindow.getUniquePropID();\n      }\n\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNode(model.renderable.getMapper());\n      publicAPI.removeUnusedNodes();\n    }\n  }; // we draw textures, then mapper, then post pass textures\n\n\n  publicAPI.traverseOpaquePass = function (renderPass) {\n    if (!model.renderable || !model.renderable.getNestedVisibility() || !model.renderable.getIsOpaque() || model.WebGPURenderer.getSelector() && !model.renderable.getNestedPickable()) {\n      return;\n    }\n\n    publicAPI.apply(renderPass, true);\n\n    if (model.children[0]) {\n      model.children[0].traverse(renderPass);\n    }\n\n    publicAPI.apply(renderPass, false);\n  }; // we draw textures, then mapper, then post pass textures\n\n\n  publicAPI.traverseTranslucentPass = function (renderPass) {\n    if (!model.renderable || !model.renderable.getNestedVisibility() || model.renderable.getIsOpaque() || model.WebGPURenderer.getSelector() && !model.renderable.getNestedPickable()) {\n      return;\n    }\n\n    publicAPI.apply(renderPass, true);\n\n    if (model.children[0]) {\n      model.children[0].traverse(renderPass);\n    }\n\n    publicAPI.apply(renderPass, false);\n  };\n\n  publicAPI.queryPass = function (prepass, renderPass) {\n    if (prepass) {\n      if (!model.renderable || !model.renderable.getVisibility()) {\n        return;\n      }\n\n      if (model.renderable.getIsOpaque()) {\n        renderPass.incrementOpaqueActorCount();\n      } else {\n        renderPass.incrementTranslucentActorCount();\n      }\n    }\n  };\n\n  publicAPI.getBufferShift = function (wgpuRen) {\n    publicAPI.getKeyMatrices(wgpuRen);\n    return model.bufferShift;\n  };\n\n  publicAPI.getKeyMatrices = function (wgpuRen) {\n    // has the actor or stabilization center changed?\n    if (Math.max(model.renderable.getMTime(), wgpuRen.getStabilizedTime()) > model.keyMatricesTime.getMTime()) {\n      model.renderable.computeMatrix();\n      var mcwc = model.renderable.getMatrix(); // compute the net shift\n\n      var center = wgpuRen.getStabilizedCenterByReference();\n      model.bufferShift[0] = mcwc[3] - center[0];\n      model.bufferShift[1] = mcwc[7] - center[1];\n      model.bufferShift[2] = mcwc[11] - center[2];\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(model.keyMatrices.bcwc, mcwc);\n\n      if (model.renderable.getIsIdentity()) {\n        gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(model.keyMatrices.normalMatrix);\n      } else {\n        // we use bcwc BEFORE the translate below (just to get transposed mcvc)\n        gl_matrix__WEBPACK_IMPORTED_MODULE_3__.copy(model.keyMatrices.normalMatrix, model.keyMatrices.bcwc); // zero out translation\n\n        model.keyMatrices.normalMatrix[3] = 0.0;\n        model.keyMatrices.normalMatrix[7] = 0.0;\n        model.keyMatrices.normalMatrix[11] = 0.0;\n        gl_matrix__WEBPACK_IMPORTED_MODULE_3__.invert(model.keyMatrices.normalMatrix, model.keyMatrices.normalMatrix);\n        gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(model.keyMatrices.normalMatrix, model.keyMatrices.normalMatrix);\n      } // only meed the buffer shift to get to world\n\n\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(model.keyMatrices.bcwc, model.keyMatrices.bcwc, [-model.bufferShift[0], -model.bufferShift[1], -model.bufferShift[2]]); // to get to stabilized we also need the center\n\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(model.keyMatrices.bcsc, model.keyMatrices.bcwc, [-center[0], -center[1], -center[2]]);\n      model.keyMatricesTime.modified();\n    }\n\n    return model.keyMatrices;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  keyMatricesTime: null,\n  keyMatrices: null,\n  propID: undefined,\n  bufferShift: undefined\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues);\n  model.keyMatricesTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.keyMatricesTime, {\n    mtime: 0\n  });\n  model.keyMatrices = {\n    normalMatrix: new Float64Array(16),\n    bcwc: new Float64Array(16),\n    bcsc: new Float64Array(16)\n  };\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['propID', 'keyMatricesTime']);\n  model.bufferShift = [0, 0, 0, 0]; // Object methods\n\n  vtkWebGPUActor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar index = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to WebGPU backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__.registerOverride)('vtkActor', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/Actor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/BindGroup.js":
/*!********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/BindGroup.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUBindGroup$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n// vtkWebGPUBindGroup methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUBindGroup(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUBindGroup');\n\n  publicAPI.setBindables = function (bindables) {\n    // is there a difference between the old and new list?\n    if (model.bindables.length === bindables.length) {\n      var allMatch = true;\n\n      for (var i = 0; i < model.bindables.length; i++) {\n        if (model.bindables[i] !== bindables[i]) {\n          allMatch = false;\n        }\n      }\n\n      if (allMatch) {\n        return;\n      }\n    } // there is a difference\n\n\n    model.bindables = bindables;\n    publicAPI.modified();\n  };\n\n  publicAPI.getBindGroupLayout = function (device) {\n    var entries = [];\n\n    for (var i = 0; i < model.bindables.length; i++) {\n      var entry = model.bindables[i].getBindGroupLayoutEntry();\n      entry.binding = i;\n      entries.push(entry);\n    }\n\n    return device.getBindGroupLayout({\n      entries: entries\n    });\n  };\n\n  publicAPI.getBindGroup = function (device) {\n    // check mtime\n    var mtime = publicAPI.getMTime();\n\n    for (var i = 0; i < model.bindables.length; i++) {\n      var tm = model.bindables[i].getBindGroupTime().getMTime();\n      mtime = tm > mtime ? tm : mtime;\n    }\n\n    if (mtime < model.bindGroupTime.getMTime()) {\n      return model.bindGroup;\n    }\n\n    var entries = [];\n\n    for (var _i = 0; _i < model.bindables.length; _i++) {\n      var entry = model.bindables[_i].getBindGroupEntry();\n\n      entry.binding = _i;\n      entries.push(entry);\n    }\n\n    model.bindGroup = device.getHandle().createBindGroup({\n      layout: publicAPI.getBindGroupLayout(device),\n      entries: entries,\n      label: model.label\n    });\n    model.bindGroupTime.modified();\n    return model.bindGroup;\n  };\n\n  publicAPI.getShaderCode = function (pipeline) {\n    var lines = [];\n    var bgroup = pipeline.getBindGroupLayoutCount(model.label);\n\n    for (var i = 0; i < model.bindables.length; i++) {\n      lines.push(model.bindables[i].getShaderCode(i, bgroup));\n    }\n\n    return lines.join('\\n');\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  device: null,\n  handle: null,\n  label: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  model.bindables = [];\n  model.bindGroupTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.bindGroupTime, {\n    mtime: 0\n  });\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['bindGroupTime', 'handle', 'sizeInBytes', 'usage']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['label', 'device', 'arrayInformation', 'sourceTime']);\n  vtkWebGPUBindGroup(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUBindGroup$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/BindGroup.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/Buffer.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/Buffer.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUBuffer$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _BufferManager_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BufferManager/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager/Constants.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar forwarded = ['getMappedRange', 'mapAsync', 'unmap'];\n\nfunction bufferSubData(device, destBuffer, destOffset, srcArrayBuffer) {\n  var byteCount = srcArrayBuffer.byteLength;\n  var srcBuffer = device.createBuffer({\n    size: byteCount,\n\n    /* eslint-disable no-undef */\n    usage: GPUBufferUsage.COPY_SRC,\n\n    /* eslint-enable no-undef */\n    mappedAtCreation: true\n  });\n  var arrayBuffer = srcBuffer.getMappedRange(0, byteCount);\n  new Uint8Array(arrayBuffer).set(new Uint8Array(srcArrayBuffer)); // memcpy\n\n  srcBuffer.unmap();\n  var encoder = device.createCommandEncoder();\n  encoder.copyBufferToBuffer(srcBuffer, 0, destBuffer, destOffset, byteCount);\n  var commandBuffer = encoder.finish();\n  var queue = device.queue;\n  queue.submit([commandBuffer]);\n  srcBuffer.destroy();\n} // ----------------------------------------------------------------------------\n// vtkWebGPUBufferManager methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkWebGPUBuffer(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUBuffer');\n\n  publicAPI.create = function (sizeInBytes, usage) {\n    model.handle = model.device.getHandle().createBuffer({\n      size: sizeInBytes,\n      usage: usage,\n      label: model.label\n    });\n    model.sizeInBytes = sizeInBytes;\n    model.usage = usage;\n  };\n\n  publicAPI.write = function (data) {\n    bufferSubData(model.device.getHandle(), model.handle, 0, data.buffer);\n  };\n\n  publicAPI.createAndWrite = function (data, usage) {\n    model.handle = model.device.getHandle().createBuffer({\n      size: data.byteLength,\n      usage: usage,\n      mappedAtCreation: true,\n      label: model.label\n    });\n    model.sizeInBytes = data.byteLength;\n    model.usage = usage;\n    new Uint8Array(model.handle.getMappedRange()).set(new Uint8Array(data.buffer)); // memcpy\n\n    model.handle.unmap();\n  }; // simple forwarders\n\n\n  var _loop = function _loop(i) {\n    publicAPI[forwarded[i]] = function () {\n      var _model$handle;\n\n      return (_model$handle = model.handle)[forwarded[i]].apply(_model$handle, arguments);\n    };\n  };\n\n  for (var i = 0; i < forwarded.length; i++) {\n    _loop(i);\n  }\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  device: null,\n  handle: null,\n  sizeInBytes: 0,\n  strideInBytes: 0,\n  arrayInformation: null,\n  usage: null,\n  label: null,\n  sourceTime: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['handle', 'sizeInBytes', 'usage']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['strideInBytes', 'device', 'arrayInformation', 'label', 'sourceTime']);\n  vtkWebGPUBuffer(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUBuffer$1 = _objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, _BufferManager_Constants_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/Buffer.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"STATIC\": () => (/* binding */ STATIC),\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUBufferManager$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n/* harmony import */ var _Buffer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Buffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Buffer.js\");\n/* harmony import */ var _Types_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Types.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js\");\n/* harmony import */ var _Core_Property_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Core/Property.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property.js\");\n/* harmony import */ var _BufferManager_Constants_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./BufferManager/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager/Constants.js\");\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar BufferUsage = _BufferManager_Constants_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].BufferUsage,\n    PrimitiveTypes = _BufferManager_Constants_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].PrimitiveTypes;\nvar Representation = _Core_Property_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Representation;\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__.vtkDebugMacro; // the webgpu constants all show up as undefined\n\n/* eslint-disable no-undef */\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nvar STATIC = {};\nvar cellCounters = {\n  // easy, every input point becomes an output point\n  anythingToPoints: function anythingToPoints(numPoints, cellPts) {\n    return numPoints;\n  },\n  linesToWireframe: function linesToWireframe(numPoints, cellPts) {\n    if (numPoints > 1) {\n      return (numPoints - 1) * 2;\n    }\n\n    return 0;\n  },\n  polysToWireframe: function polysToWireframe(numPoints, cellPts) {\n    if (numPoints > 2) {\n      return numPoints * 2;\n    }\n\n    return 0;\n  },\n  stripsToWireframe: function stripsToWireframe(numPoints, cellPts) {\n    if (numPoints > 2) {\n      return numPoints * 4 - 6;\n    }\n\n    return 0;\n  },\n  polysToSurface: function polysToSurface(npts, cellPts) {\n    if (npts > 2) {\n      return (npts - 2) * 3;\n    }\n\n    return 0;\n  },\n  stripsToSurface: function stripsToSurface(npts, cellPts, offset) {\n    if (numPoints > 2) {\n      return (npts - 2) * 3;\n    }\n\n    return 0;\n  }\n};\n\nfunction getPrimitiveName(primType) {\n  switch (primType) {\n    case PrimitiveTypes.Points:\n      return 'points';\n\n    case PrimitiveTypes.Lines:\n      return 'lines';\n\n    case PrimitiveTypes.Triangles:\n    case PrimitiveTypes.TriangleEdges:\n      return 'polys';\n\n    case PrimitiveTypes.TriangleStripEdges:\n    case PrimitiveTypes.TriangleStrips:\n      return 'strips';\n\n    default:\n      return '';\n  }\n}\n\nfunction getOutputSize(cellArray, representation, inRepName) {\n  var countFunc = null;\n\n  if (representation === Representation.POINTS || inRepName === 'points') {\n    countFunc = cellCounters.anythingToPoints;\n  } else if (representation === Representation.WIREFRAME || inRepName === 'lines') {\n    countFunc = cellCounters[\"\".concat(inRepName, \"ToWireframe\")];\n  } else {\n    countFunc = cellCounters[\"\".concat(inRepName, \"ToSurface\")];\n  }\n\n  var array = cellArray.getData();\n  var size = array.length;\n  var caboCount = 0;\n\n  for (var index = 0; index < size;) {\n    caboCount += countFunc(array[index], array);\n    index += array[index] + 1;\n  }\n\n  return caboCount;\n}\n\nfunction packArray(cellArray, primType, representation, inArray, outputType, options) {\n  var result = {\n    elementCount: 0,\n    blockSize: 0,\n    stride: 0\n  };\n\n  if (!cellArray.getData() || !cellArray.getData().length) {\n    return result;\n  } // setup shift and scale\n\n\n  var shift = [0.0, 0.0, 0.0, 0.0];\n\n  if (options.shift) {\n    if (options.shift.length) {\n      shift = options.shift;\n    } else {\n      shift.fill(options.shift);\n    }\n  }\n\n  var scale = [1.0, 1.0, 1.0, 1.0];\n\n  if (options.scale) {\n    if (options.scale.length) {\n      scale = options.scale;\n    } else {\n      scale.fill(options.scale);\n    }\n  }\n\n  var packExtra = Object.prototype.hasOwnProperty.call(options, 'packExtra') ? options.packExtra : false;\n  var pointData = inArray.getData();\n  var addAPoint;\n  var cellBuilders = {\n    // easy, every input point becomes an output point\n    anythingToPoints: function anythingToPoints(numPoints, cellPts, offset, cellId) {\n      for (var i = 0; i < numPoints; ++i) {\n        addAPoint(cellPts[offset + i], cellId);\n      }\n    },\n    linesToWireframe: function linesToWireframe(numPoints, cellPts, offset, cellId) {\n      // for lines we add a bunch of segments\n      for (var i = 0; i < numPoints - 1; ++i) {\n        addAPoint(cellPts[offset + i], cellId);\n        addAPoint(cellPts[offset + i + 1], cellId);\n      }\n    },\n    polysToWireframe: function polysToWireframe(numPoints, cellPts, offset, cellId) {\n      // for polys we add a bunch of segments and close it\n      if (numPoints > 2) {\n        for (var i = 0; i < numPoints; ++i) {\n          addAPoint(cellPts[offset + i], cellId);\n          addAPoint(cellPts[offset + (i + 1) % numPoints], cellId);\n        }\n      }\n    },\n    stripsToWireframe: function stripsToWireframe(numPoints, cellPts, offset, cellId) {\n      if (numPoints > 2) {\n        // for strips we add a bunch of segments and close it\n        for (var i = 0; i < numPoints - 1; ++i) {\n          addAPoint(cellPts[offset + i], cellId);\n          addAPoint(cellPts[offset + i + 1], cellId);\n        }\n\n        for (var _i = 0; _i < numPoints - 2; _i++) {\n          addAPoint(cellPts[offset + _i], cellId);\n          addAPoint(cellPts[offset + _i + 2], cellId);\n        }\n      }\n    },\n    polysToSurface: function polysToSurface(npts, cellPts, offset, cellId) {\n      for (var i = 0; i < npts - 2; i++) {\n        addAPoint(cellPts[offset + 0], cellId);\n        addAPoint(cellPts[offset + i + 1], cellId);\n        addAPoint(cellPts[offset + i + 2], cellId);\n      }\n    },\n    stripsToSurface: function stripsToSurface(npts, cellPts, offset, cellId) {\n      for (var i = 0; i < npts - 2; i++) {\n        addAPoint(cellPts[offset + i], cellId);\n        addAPoint(cellPts[offset + i + 1 + i % 2], cellId);\n        addAPoint(cellPts[offset + i + 1 + (i + 1) % 2], cellId);\n      }\n    }\n  };\n  var inRepName = getPrimitiveName(primType);\n  var func = null;\n\n  if (representation === Representation.POINTS || primType === PrimitiveTypes.Points) {\n    func = cellBuilders.anythingToPoints;\n  } else if (representation === Representation.WIREFRAME || primType === PrimitiveTypes.Lines) {\n    func = cellBuilders[\"\".concat(inRepName, \"ToWireframe\")];\n  } else {\n    func = cellBuilders[\"\".concat(inRepName, \"ToSurface\")];\n  }\n\n  var array = cellArray.getData();\n  var size = array.length;\n  var caboCount = getOutputSize(cellArray, representation, inRepName);\n  var vboidx = 0;\n  var numComp = inArray.getNumberOfComponents();\n  var packedVBO = (0,_macros_js__WEBPACK_IMPORTED_MODULE_1__.newTypedArray)(outputType, caboCount * (numComp + (packExtra ? 1 : 0))); // pick the right function based on point versus cell data\n\n  var getData = function getData(ptId, cellId) {\n    return pointData[ptId];\n  };\n\n  if (options.cellData) {\n    getData = function getData(ptId, cellId) {\n      return pointData[cellId];\n    };\n  } // add data based on number of components\n\n\n  if (numComp === 1) {\n    addAPoint = function addAPointFunc(i, cellid) {\n      packedVBO[vboidx++] = scale[0] * getData(i, cellid) + shift[0];\n    };\n  } else if (numComp === 2) {\n    addAPoint = function addAPointFunc(i, cellid) {\n      packedVBO[vboidx++] = scale[0] * getData(i * 2, cellid * 2) + shift[0];\n      packedVBO[vboidx++] = scale[1] * getData(i * 2 + 1, cellid * 2 + 1) + shift[1];\n    };\n  } else if (numComp === 3 && !packExtra) {\n    addAPoint = function addAPointFunc(i, cellid) {\n      packedVBO[vboidx++] = scale[0] * getData(i * 3, cellid * 3) + shift[0];\n      packedVBO[vboidx++] = scale[1] * getData(i * 3 + 1, cellid * 3 + 1) + shift[1];\n      packedVBO[vboidx++] = scale[2] * getData(i * 3 + 2, cellid * 3 + 2) + shift[2];\n    };\n  } else if (numComp === 3 && packExtra) {\n    addAPoint = function addAPointFunc(i, cellid) {\n      packedVBO[vboidx++] = scale[0] * getData(i * 3, cellid * 3) + shift[0];\n      packedVBO[vboidx++] = scale[1] * getData(i * 3 + 1, cellid * 3 + 1) + shift[1];\n      packedVBO[vboidx++] = scale[2] * getData(i * 3 + 2, cellid * 3 + 2) + shift[2];\n      packedVBO[vboidx++] = scale[3] * 1.0 + shift[3];\n    };\n  } else if (numComp === 4) {\n    addAPoint = function addAPointFunc(i, cellid) {\n      packedVBO[vboidx++] = scale[0] * getData(i * 4, cellid * 4) + shift[0];\n      packedVBO[vboidx++] = scale[1] * getData(i * 4 + 1, cellid * 4 + 1) + shift[1];\n      packedVBO[vboidx++] = scale[2] * getData(i * 4 + 2, cellid * 4 + 2) + shift[2];\n      packedVBO[vboidx++] = scale[3] * getData(i * 4 + 3, cellid * 4 + 3) + shift[3];\n    };\n  }\n\n  var cellId = options.cellOffset;\n\n  for (var index = 0; index < size;) {\n    func(array[index], array, index + 1, cellId);\n    index += array[index] + 1;\n    cellId++;\n  }\n\n  result.nativeArray = packedVBO;\n  result.elementCount = caboCount;\n  return result;\n}\n\nfunction getNormal(pointData, i0, i1, i2) {\n  var v1 = [pointData[i2 * 3] - pointData[i1 * 3], pointData[i2 * 3 + 1] - pointData[i1 * 3 + 1], pointData[i2 * 3 + 2] - pointData[i1 * 3 + 2]];\n  var v2 = [pointData[i0 * 3] - pointData[i1 * 3], pointData[i0 * 3 + 1] - pointData[i1 * 3 + 1], pointData[i0 * 3 + 2] - pointData[i1 * 3 + 2]];\n  var result = [];\n  (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.j)(v1, v2, result);\n  (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_2__.l)(result);\n  return result;\n}\n\nfunction generateNormals(cellArray, primType, representation, inArray) {\n  if (!cellArray.getData() || !cellArray.getData().length) {\n    return null;\n  }\n\n  var pointData = inArray.getData();\n  var addAPoint;\n  var cellBuilders = {\n    polysToPoints: function polysToPoints(numPoints, cellPts, offset) {\n      var normal = getNormal(pointData, cellPts[offset], cellPts[offset + 1], cellPts[offset + 2]);\n\n      for (var i = 0; i < numPoints; ++i) {\n        addAPoint(normal);\n      }\n    },\n    polysToWireframe: function polysToWireframe(numPoints, cellPts, offset) {\n      // for polys we add a bunch of segments and close it\n      // compute the normal\n      var normal = getNormal(pointData, cellPts[offset], cellPts[offset + 1], cellPts[offset + 2]);\n\n      for (var i = 0; i < numPoints; ++i) {\n        addAPoint(normal);\n        addAPoint(normal);\n      }\n    },\n    polysToSurface: function polysToSurface(npts, cellPts, offset) {\n      if (npts < 3) {\n        // ignore degenerate triangles\n        vtkDebugMacro('skipping degenerate triangle');\n      } else {\n        // compute the normal\n        var normal = getNormal(pointData, cellPts[offset], cellPts[offset + 1], cellPts[offset + 2]);\n\n        for (var i = 0; i < npts - 2; i++) {\n          addAPoint(normal);\n          addAPoint(normal);\n          addAPoint(normal);\n        }\n      }\n    }\n  };\n  var primName = getPrimitiveName(primType);\n  var func = null;\n\n  if (representation === Representation.POINTS) {\n    func = cellBuilders[\"\".concat(primName, \"ToPoints\")];\n  } else if (representation === Representation.WIREFRAME) {\n    func = cellBuilders[\"\".concat(primName, \"ToWireframe\")];\n  } else {\n    func = cellBuilders[\"\".concat(primName, \"ToSurface\")];\n  }\n\n  var caboCount = getOutputSize(cellArray, representation, primName);\n  var vboidx = 0;\n  var packedVBO = new Int8Array(caboCount * 4);\n\n  addAPoint = function addAPointFunc(normal) {\n    packedVBO[vboidx++] = 127 * normal[0];\n    packedVBO[vboidx++] = 127 * normal[1];\n    packedVBO[vboidx++] = 127 * normal[2];\n    packedVBO[vboidx++] = 127;\n  };\n\n  var array = cellArray.getData();\n  var size = array.length;\n\n  for (var index = 0; index < size;) {\n    func(array[index], array, index + 1);\n    index += array[index] + 1;\n  }\n\n  return packedVBO;\n} // ----------------------------------------------------------------------------\n// vtkWebGPUBufferManager methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkWebGPUBufferManager(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUBufferManager');\n\n  function _createBuffer(req) {\n    // if a dataArray is provided set the nativeArray\n    if (req.dataArray && !req.nativeArray) {\n      req.nativeArray = req.dataArray.getData();\n    } // create one\n\n\n    var buffer = _Buffer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance({\n      label: req.label\n    });\n    buffer.setDevice(model.device);\n    var gpuUsage = null; // handle uniform buffers\n\n    if (req.usage === BufferUsage.UniformArray) {\n      /* eslint-disable no-bitwise */\n      gpuUsage = GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST;\n      /* eslint-enable no-bitwise */\n\n      buffer.createAndWrite(req.nativeArray, gpuUsage);\n    } // handle storage buffers\n\n\n    if (req.usage === BufferUsage.Storage) {\n      /* eslint-disable no-bitwise */\n      gpuUsage = GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST;\n      /* eslint-enable no-bitwise */\n\n      buffer.createAndWrite(req.nativeArray, gpuUsage);\n    } // handle textures\n\n\n    if (req.usage === BufferUsage.Texture) {\n      /* eslint-disable no-bitwise */\n      gpuUsage = GPUBufferUsage.COPY_SRC;\n      /* eslint-enable no-bitwise */\n\n      buffer.createAndWrite(req.nativeArray, gpuUsage);\n    } // all of the below types that have gpuUsage = VERTEX require format\n    // to be provided.\n    // handle point data\n\n\n    if (req.usage === BufferUsage.PointArray) {\n      gpuUsage = GPUBufferUsage.VERTEX;\n      var arrayType = _Types_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getNativeTypeFromBufferFormat(req.format);\n      var result = packArray(req.cells, req.primitiveType, req.representation, req.dataArray, arrayType, {\n        packExtra: req.packExtra,\n        shift: req.shift,\n        scale: req.scale,\n        cellData: req.cellData,\n        cellOffset: req.cellOffset\n      });\n      buffer.createAndWrite(result.nativeArray, gpuUsage);\n      buffer.setStrideInBytes(_Types_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getByteStrideFromBufferFormat(req.format));\n      buffer.setArrayInformation([{\n        offset: 0,\n        format: req.format\n      }]);\n    } // handle normals from points, snorm8x4\n\n\n    if (req.usage === BufferUsage.NormalsFromPoints) {\n      gpuUsage = GPUBufferUsage.VERTEX;\n      var normals = generateNormals(req.cells, req.primitiveType, req.representation, req.dataArray);\n      buffer.createAndWrite(normals, gpuUsage);\n      buffer.setStrideInBytes(_Types_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getByteStrideFromBufferFormat(req.format));\n      buffer.setArrayInformation([{\n        offset: 0,\n        format: req.format\n      }]);\n    }\n\n    if (req.usage === BufferUsage.RawVertex) {\n      gpuUsage = GPUBufferUsage.VERTEX;\n      buffer.createAndWrite(req.nativeArray, gpuUsage);\n      buffer.setStrideInBytes(_Types_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getByteStrideFromBufferFormat(req.format));\n      buffer.setArrayInformation([{\n        offset: 0,\n        format: req.format\n      }]);\n    }\n\n    buffer.setSourceTime(req.time);\n    return buffer;\n  } // is the buffer already present?\n\n\n  publicAPI.hasBuffer = function (req) {\n    if (req.owner) {\n      // if a matching buffer already exists then return true\n      var hash = req.time + req.format + req.usage + req.hash;\n      return model.device.hasCachedObject(req.owner, hash);\n    }\n\n    return false;\n  };\n\n  publicAPI.getBuffer = function (req) {\n    // if we have a source the get/create/cache the buffer\n    if (req.owner) {\n      // if a matching buffer already exists then return it\n      var hash = req.time + req.format + req.usage + req.hash;\n      return model.device.getCachedObject(req.owner, hash, _createBuffer, req);\n    }\n\n    return _createBuffer(req);\n  };\n\n  publicAPI.getFullScreenQuadBuffer = function () {\n    if (model.fullScreenQuadBuffer) {\n      return model.fullScreenQuadBuffer;\n    }\n\n    model.fullScreenQuadBuffer = _Buffer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n    model.fullScreenQuadBuffer.setDevice(model.device); // prettier-ignore\n\n    var array = new Float32Array([-1.0, -1.0, 0.0, 1.0, -1.0, 0.0, 1.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, 1.0, 0.0, -1.0, 1.0, 0.0]);\n    model.fullScreenQuadBuffer.createAndWrite(array, GPUBufferUsage.VERTEX);\n    model.fullScreenQuadBuffer.setStrideInBytes(12);\n    model.fullScreenQuadBuffer.setArrayInformation([{\n      offset: 0,\n      format: 'float32x3'\n    }]);\n    return model.fullScreenQuadBuffer;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  device: null,\n  fullScreenQuadBuffer: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_1__.obj)(publicAPI, model);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_1__.setGet)(publicAPI, model, ['device']);\n  vtkWebGPUBufferManager(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_1__.newInstance)(extend); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUBufferManager$1 = _objectSpread(_objectSpread({\n  newInstance: newInstance,\n  extend: extend\n}, STATIC), _BufferManager_Constants_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager/Constants.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager/Constants.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"BufferUsage\": () => (/* binding */ BufferUsage),\n/* harmony export */   \"PrimitiveTypes\": () => (/* binding */ PrimitiveTypes),\n/* harmony export */   \"default\": () => (/* binding */ Constants)\n/* harmony export */ });\nvar BufferUsage = {\n  Verts: 0,\n  Lines: 1,\n  Triangles: 2,\n  Strips: 3,\n  LinesFromStrips: 4,\n  LinesFromTriangles: 5,\n  Points: 6,\n  UniformArray: 7,\n  PointArray: 8,\n  NormalsFromPoints: 9,\n  Texture: 10,\n  RawVertex: 11,\n  Storage: 12,\n  CellIndex: 13\n};\nvar PrimitiveTypes = {\n  Start: 0,\n  Points: 0,\n  Lines: 1,\n  Triangles: 2,\n  TriangleStrips: 3,\n  TriangleEdges: 4,\n  TriangleStripEdges: 5,\n  End: 6\n};\nvar Constants = {\n  BufferUsage: BufferUsage,\n  PrimitiveTypes: PrimitiveTypes\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager/Constants.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/Camera.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/Camera.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js\");\n\n\n\n\n\n// vtkWebGPUCamera methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUCamera(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUCamera');\n\n  publicAPI.getProjectionMatrix = function (outMat, aspect, cRange, windowCenter) {\n    gl_matrix__WEBPACK_IMPORTED_MODULE_3__.identity(outMat);\n\n    if (model.renderable.getParallelProjection()) {\n      // set up a rectangular parallelipiped\n      var parallelScale = model.renderable.getParallelScale();\n      var width = parallelScale * aspect;\n      var height = parallelScale;\n      var xmin = (windowCenter[0] - 1.0) * width;\n      var xmax = (windowCenter[0] + 1.0) * width;\n      var ymin = (windowCenter[1] - 1.0) * height;\n      var ymax = (windowCenter[1] + 1.0) * height;\n      var xr = 1.0 / (xmax - xmin);\n      var yr = 1.0 / (ymax - ymin);\n      outMat[0] = 2.0 * xr;\n      outMat[5] = 2.0 * yr;\n      outMat[10] = 1.0 / (cRange[1] - cRange[0]);\n      outMat[12] = (xmax + xmin) * xr;\n      outMat[13] = (ymax + ymin) * yr;\n      outMat[14] = cRange[1] / (cRange[1] - cRange[0]);\n    } else {\n      var tmp = Math.tan(Math.PI * model.renderable.getViewAngle() / 360.0);\n\n      var _width;\n\n      var _height;\n\n      if (model.renderable.getUseHorizontalViewAngle() === true) {\n        _width = cRange[0] * tmp;\n        _height = cRange[0] * tmp / aspect;\n      } else {\n        _width = cRange[0] * tmp * aspect;\n        _height = cRange[0] * tmp;\n      }\n\n      var _xmin = (windowCenter[0] - 1.0) * _width;\n\n      var _xmax = (windowCenter[0] + 1.0) * _width;\n\n      var _ymin = (windowCenter[1] - 1.0) * _height;\n\n      var _ymax = (windowCenter[1] + 1.0) * _height;\n\n      outMat[0] = 2.0 * cRange[0] / (_xmax - _xmin);\n      outMat[5] = 2.0 * cRange[0] / (_ymax - _ymin);\n      outMat[12] = (_xmin + _xmax) / (_xmax - _xmin);\n      outMat[13] = (_ymin + _ymax) / (_ymax - _ymin);\n      outMat[10] = 0.0;\n      outMat[14] = cRange[0];\n      outMat[11] = -1.0;\n      outMat[15] = 0.0;\n    }\n  };\n\n  publicAPI.convertToOpenGLDepth = function (val) {\n    if (model.renderable.getParallelProjection()) {\n      return 1.0 - val;\n    }\n\n    var cRange = model.renderable.getClippingRangeByReference();\n    var zval = -cRange[0] / val;\n    zval = (cRange[0] + cRange[1]) / (cRange[1] - cRange[0]) + 2.0 * cRange[0] * cRange[1] / (zval * (cRange[1] - cRange[0]));\n    return 0.5 * zval + 0.5;\n  };\n\n  publicAPI.getKeyMatrices = function (webGPURenderer) {\n    // has the camera changed?\n    var ren = webGPURenderer.getRenderable();\n    var webGPURenderWindow = webGPURenderer.getParent();\n\n    if (Math.max(webGPURenderWindow.getMTime(), publicAPI.getMTime(), ren.getMTime(), model.renderable.getMTime(), webGPURenderer.getStabilizedTime()) > model.keyMatrixTime.getMTime()) {\n      var wcvc = model.renderable.getViewMatrix();\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.copy(model.keyMatrices.normalMatrix, wcvc); // zero out translation\n\n      model.keyMatrices.normalMatrix[3] = 0.0;\n      model.keyMatrices.normalMatrix[7] = 0.0;\n      model.keyMatrices.normalMatrix[11] = 0.0;\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.invert(model.keyMatrices.normalMatrix, model.keyMatrices.normalMatrix);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.transpose(model.keyMatrices.wcvc, wcvc);\n      var center = webGPURenderer.getStabilizedCenterByReference();\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.translate(model.keyMatrices.scvc, model.keyMatrices.wcvc, center);\n      var aspectRatio = webGPURenderer.getAspectRatio();\n      var cRange = model.renderable.getClippingRangeByReference();\n      publicAPI.getProjectionMatrix(model.keyMatrices.vcpc, aspectRatio, cRange, model.renderable.getWindowCenterByReference());\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.multiply(model.keyMatrices.scpc, model.keyMatrices.vcpc, model.keyMatrices.scvc);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_3__.invert(model.keyMatrices.pcsc, model.keyMatrices.scpc);\n      model.keyMatrixTime.modified();\n    }\n\n    return model.keyMatrices;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  keyMatrixTime: null,\n  keyMatrices: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues);\n  model.keyMatrixTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.keyMatrixTime); // values always get set by the get method\n\n  model.keyMatrices = {\n    normalMatrix: new Float64Array(16),\n    vcpc: new Float64Array(16),\n    pcsc: new Float64Array(16),\n    wcvc: new Float64Array(16),\n    scpc: new Float64Array(16),\n    scvc: new Float64Array(16)\n  }; // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['keyMatrixTime']); // Object methods\n\n  vtkWebGPUCamera(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar index = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to WebGPU backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__.registerOverride)('vtkCamera', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/Camera.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/CubeAxesActor.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/CubeAxesActor.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_CubeAxesActor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/CubeAxesActor.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/CubeAxesActor.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js\");\n\n\n\n\n\n// vtkWebGPUCubeAxesActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUCubeAxesActor(publicAPI, model) {\n  model.classHierarchy.push('vtkWebGPUCubeAxesActor'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.WebGPURenderer = publicAPI.getFirstAncestorOfType('vtkWebGPURenderer');\n      model.WebGPURenderWindow = model.WebGPURenderer.getParent();\n\n      if (!model.CubeAxesActorHelper.getRenderable()) {\n        model.CubeAxesActorHelper.setRenderable(model.renderable);\n      }\n\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNode(model.CubeAxesActorHelper.getTmActor());\n      publicAPI.addMissingNode(model.renderable.getGridActor());\n      publicAPI.removeUnusedNodes();\n    }\n  };\n\n  publicAPI.opaquePass = function (prepass, renderPass) {\n    if (prepass) {\n      var camera = model.WebGPURenderer ? model.WebGPURenderer.getRenderable().getActiveCamera() : null;\n      var tsize = model.WebGPURenderer.getTiledSizeAndOrigin();\n      model.CubeAxesActorHelper.updateAPISpecificData([tsize.usize, tsize.vsize], camera, model.WebGPURenderWindow.getRenderable());\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  model.CubeAxesActorHelper = _Core_CubeAxesActor_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newCubeAxesActorHelper(); // Object methods\n\n  vtkWebGPUCubeAxesActor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkWebGPUCubeAxesActor'); // ----------------------------------------------------------------------------\n\nvar index = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to WebGPU backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_3__.registerOverride)('vtkCubeAxesActor', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/CubeAxesActor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/Device.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/Device.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUDevice$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _BufferManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BufferManager.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n/* harmony import */ var _TextureManager_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./TextureManager.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/TextureManager.js\");\n\n\n\n\n\n// vtkWebGPUDevice methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUDevice(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUDevice');\n\n  publicAPI.initialize = function (handle) {\n    model.handle = handle;\n  };\n\n  publicAPI.createCommandEncoder = function () {\n    return model.handle.createCommandEncoder();\n  };\n\n  publicAPI.submitCommandEncoder = function (commandEncoder) {\n    model.handle.queue.submit([commandEncoder.finish()]);\n  };\n\n  publicAPI.getShaderModule = function (sd) {\n    return model.shaderCache.getShaderModule(sd);\n  };\n  /* eslint-disable no-bitwise */\n\n  /* eslint-disable no-undef */\n\n\n  publicAPI.getBindGroupLayout = function (val) {\n    if (!val.entries) {\n      return null;\n    } // add in basic required values if missing\n\n\n    for (var i = 0; i < val.entries.length; i++) {\n      var ent = val.entries[i];\n      ent.binding = ent.binding || 0;\n      ent.visibility = ent.visibility || GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT;\n    } // do we already have one?\n\n\n    var sval = JSON.stringify(val);\n\n    for (var _i = 0; _i < model.bindGroupLayouts.length; _i++) {\n      if (model.bindGroupLayouts[_i].sval === sval) {\n        return model.bindGroupLayouts[_i].layout;\n      }\n    } // create one and store it\n\n\n    var layout = model.handle.createBindGroupLayout(val); // we actually only store the stringified version\n    // as that is what we always compare against\n\n    model.bindGroupLayouts.push({\n      sval: sval,\n      layout: layout\n    });\n    return layout;\n  };\n\n  publicAPI.getBindGroupLayoutDescription = function (layout) {\n    for (var i = 0; i < model.bindGroupLayouts.length; i++) {\n      if (model.bindGroupLayouts[i].layout === layout) {\n        return model.bindGroupLayouts[i].sval;\n      }\n    }\n\n    vtkErrorMacro('layout not found');\n    console.trace();\n    return null;\n  };\n\n  publicAPI.getPipeline = function (hash) {\n    if (hash in model.pipelines) {\n      return model.pipelines[hash];\n    }\n\n    return null;\n  };\n\n  publicAPI.createPipeline = function (hash, pipeline) {\n    pipeline.initialize(publicAPI, hash);\n    model.pipelines[hash] = pipeline;\n  };\n\n  publicAPI.onSubmittedWorkDone = function () {\n    return model.handle.queue.onSubmittedWorkDone();\n  }; // The Device has an object cache that can be used to cache buffers,\n  // textures and other objects that can be shared. The basic approach is to\n  // call getCachedObject with a request and a create function. The request\n  // must have two fields a hash and an owner. The owner is what the weak\n  // map uses to hold onto the cached object. When the owner is deleted the\n  // cached object will be freed from the cache. The cache lookup just\n  // returns any entry that has a matching owner and hash. If a match isn't\n  // found then the create function is called with any extra arguments.\n  //\n  // For best memory management it is important that the owner be as close\n  // to the underlying object as possible. For example for a point data buffer\n  // you would want the actual vtkDataArray to be the owner, not the polydata\n  // or even worse the actor. As the points data array could be freed wihtout\n  // the polydata or actor being freed.\n  // is the object already cached?\n\n\n  publicAPI.hasCachedObject = function (owner, hash) {\n    if (!owner) {\n      return false;\n    } // if a matching request already exists then return true\n\n\n    if (model.objectCache.has(owner)) {\n      var objects = model.objectCache.get(owner);\n\n      for (var i = 0; i < objects.length; i++) {\n        if (hash === objects[i].hash) {\n          return true;\n        }\n      }\n    }\n\n    return false;\n  };\n\n  publicAPI.getCachedObject = function (owner, hash, creator) {\n    if (!owner || !hash) {\n      vtkErrorMacro('attempt to cache an object without an owner or hash');\n      return null;\n    } // if a matching request already exists then return the cached object\n\n\n    if (model.objectCache.has(owner)) {\n      var _objects = model.objectCache.get(owner);\n\n      for (var i = 0; i < _objects.length; i++) {\n        if (hash === _objects[i].hash) {\n          return _objects[i].object;\n        }\n      }\n    } // otherwise create the object and cache it\n\n\n    for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n      args[_key - 3] = arguments[_key];\n    }\n\n    var createdObject = creator.apply(void 0, args);\n\n    if (!model.objectCache.has(owner)) {\n      model.objectCache.set(owner, []);\n    }\n\n    var objects = model.objectCache.get(owner);\n    objects.push({\n      hash: hash,\n      object: createdObject\n    });\n    return createdObject;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  handle: null,\n  pipelines: null,\n  shaderCache: null,\n  bindGroupLayouts: null,\n  bufferManager: null,\n  textureManager: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(publicAPI, model);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['handle']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['bufferManager', 'shaderCache', 'textureManager']); // this is a cache, and a cache with GC pretty much means WeakMap\n\n  model.objectCache = new WeakMap();\n  model.shaderCache = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n  model.shaderCache.setDevice(publicAPI);\n  model.bindGroupLayouts = [];\n  model.bufferManager = _BufferManager_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n  model.bufferManager.setDevice(publicAPI);\n  model.textureManager = _TextureManager_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n  model.textureManager.setDevice(publicAPI);\n  model.pipelines = {}; // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkWebGPUDevice(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkWebGPUDevice'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUDevice$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/Device.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/ForwardPass.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/ForwardPass.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkForwardPass$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _OpaquePass_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OpaquePass.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/OpaquePass.js\");\n/* harmony import */ var _OrderIndependentTranslucentPass_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./OrderIndependentTranslucentPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/OrderIndependentTranslucentPass.js\");\n/* harmony import */ var _VolumePass_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./VolumePass.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/VolumePass.js\");\n/* harmony import */ var _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SceneGraph/RenderPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js\");\n\n\n\n\n\n\nfunction vtkForwardPass(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkForwardPass'); // this pass implements a forward rendering pipeline\n  // if both volumes and opaque geometry are present\n  // it will mix the two together by capturing a zbuffer\n  // first\n\n  publicAPI.traverse = function (viewNode) {\n    var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    if (model.deleted) {\n      return;\n    } // we just render our delegates in order\n\n\n    model.currentParent = parent; // build\n\n    publicAPI.setCurrentOperation('buildPass');\n    viewNode.traverse(publicAPI);\n\n    if (!model.opaquePass) {\n      model.opaquePass = _OpaquePass_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n    }\n\n    var numlayers = viewNode.getRenderable().getNumberOfLayers(); // iterate over renderers\n\n    var renderers = viewNode.getChildren();\n\n    for (var i = 0; i < numlayers; i++) {\n      for (var index = 0; index < renderers.length; index++) {\n        var renNode = renderers[index];\n        var ren = viewNode.getRenderable().getRenderers()[index];\n\n        if (ren.getDraw() && ren.getLayer() === i) {\n          // check for both opaque and volume actors\n          model.opaqueActorCount = 0;\n          model.translucentActorCount = 0;\n          model.volumes = [];\n          publicAPI.setCurrentOperation('queryPass');\n          renNode.traverse(publicAPI);\n          publicAPI.setCurrentOperation('cameraPass');\n          renNode.traverse(publicAPI); // always do opaque pass to get a valid color and zbuffer, even if empty\n\n          model.opaquePass.traverse(renNode, viewNode); // optional translucent pass\n\n          if (model.translucentActorCount > 0) {\n            if (!model.translucentPass) {\n              model.translucentPass = _OrderIndependentTranslucentPass_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n            }\n\n            model.translucentPass.setColorTextureView(model.opaquePass.getColorTextureView());\n            model.translucentPass.setDepthTextureView(model.opaquePass.getDepthTextureView());\n            model.translucentPass.traverse(renNode, viewNode);\n          } // optional volume pass\n\n\n          if (model.volumes.length > 0) {\n            if (!model.volumePass) {\n              model.volumePass = _VolumePass_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n            }\n\n            model.volumePass.setColorTextureView(model.opaquePass.getColorTextureView());\n            model.volumePass.setDepthTextureView(model.opaquePass.getDepthTextureView());\n            model.volumePass.setVolumes(model.volumes);\n            model.volumePass.traverse(renNode, viewNode);\n          }\n        }\n      }\n    } // blit the result into the swap chain\n\n\n    var sctex = viewNode.getCurrentTexture();\n    var optex = model.opaquePass.getColorTexture();\n    var cmdEnc = viewNode.getCommandEncoder();\n    cmdEnc.copyTextureToTexture({\n      texture: optex.getHandle()\n    }, {\n      texture: sctex\n    }, {\n      width: optex.getWidth(),\n      height: optex.getHeight(),\n      depthOrArrayLayers: 1\n    });\n  };\n\n  publicAPI.incrementOpaqueActorCount = function () {\n    return model.opaqueActorCount++;\n  };\n\n  publicAPI.incrementTranslucentActorCount = function () {\n    return model.translucentActorCount++;\n  };\n\n  publicAPI.addVolume = function (volume) {\n    model.volumes.push(volume);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  opaqueActorCount: 0,\n  translucentActorCount: 0,\n  volumes: null,\n  opaqueRenderEncoder: null,\n  translucentPass: null,\n  volumePass: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['opaquePass', 'translucentPass', 'volumePass']); // Object methods\n\n  vtkForwardPass(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkForwardPass'); // ----------------------------------------------------------------------------\n\nvar vtkForwardPass$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/ForwardPass.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/FullScreenQuad.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/FullScreenQuad.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUFullScreenQuad$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n/* harmony import */ var _MapperHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MapperHelper.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/MapperHelper.js\");\n\n\n\n\n// vtkWebGPUFullScreenQuad methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUFullScreenQuad(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUFullScreenQuad');\n\n  publicAPI.replaceShaderPosition = function (hash, pipeline, vertexInput) {\n    var vDesc = pipeline.getShaderDescription('vertex');\n    vDesc.addBuiltinOutput('vec4<f32>', '@builtin(position) Position');\n    var code = vDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].substitute(code, '//VTK::Position::Impl', ['output.tcoordVS = vec2<f32>(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);', 'output.Position = vec4<f32>(vertexBC, 1.0);']).result;\n    vDesc.setCode(code);\n  };\n\n  model.shaderReplacements.set('replaceShaderPosition', publicAPI.replaceShaderPosition);\n  var superclassBuild = publicAPI.build;\n\n  publicAPI.build = function (renderEncoder, device) {\n    var buff = device.getBufferManager().getFullScreenQuadBuffer();\n    model.vertexInput.addBuffer(buff, ['vertexBC']);\n    model.numberOfVertices = 6;\n    superclassBuild(renderEncoder, device);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _MapperHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues); // Object methods\n\n  vtkWebGPUFullScreenQuad(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUFullScreenQuad'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUFullScreenQuad$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/FullScreenQuad.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/HardwareSelectionPass.js":
/*!********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/HardwareSelectionPass.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUHardwareSelectionPass$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RenderEncoder.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderEncoder.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Texture.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n/* harmony import */ var _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SceneGraph/RenderPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js\");\n\n\n\n\n\n\nfunction vtkWebGPUHardwareSelectionPass(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUHardwareSelectionPass'); // this pass implements a forward rendering pipeline\n  // if both volumes and opaque geometry are present\n  // it will mix the two together by capturing a zbuffer\n  // first\n\n  publicAPI.traverse = function (viewNode, renNode) {\n    if (model.deleted) {\n      return;\n    }\n\n    model.currentParent = null; // build\n\n    publicAPI.setCurrentOperation('buildPass');\n    viewNode.traverse(publicAPI);\n    var device = viewNode.getDevice();\n\n    if (!model.selectionRenderEncoder) {\n      publicAPI.createRenderEncoder(); // create color texture\n\n      model.colorTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n        label: 'hardwareSelectorColor'\n      });\n      model.colorTexture.create(device, {\n        width: viewNode.getCanvas().width,\n        height: viewNode.getCanvas().height,\n        format: 'rgba32uint',\n\n        /* eslint-disable no-undef */\n\n        /* eslint-disable no-bitwise */\n        usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC\n      });\n      var v1 = model.colorTexture.createView('hardwareSelectColorTexture');\n      model.selectionRenderEncoder.setColorTextureView(0, v1); // create depth texture\n\n      model.depthTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n        label: 'hardwareSelectorDepth'\n      });\n      model.depthTexture.create(device, {\n        width: viewNode.getCanvas().width,\n        height: viewNode.getCanvas().height,\n        format: 'depth32float',\n\n        /* eslint-disable no-undef */\n\n        /* eslint-disable no-bitwise */\n        usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC\n      });\n      var v2 = model.depthTexture.createView('hardwareSelectDepthTexture');\n      model.selectionRenderEncoder.setDepthTextureView(v2);\n    } else {\n      model.colorTexture.resize(viewNode.getCanvas().width, viewNode.getCanvas().height);\n      model.depthTexture.resizeToMatch(model.colorTexture);\n    }\n\n    model.selectionRenderEncoder.attachTextureViews();\n    renNode.setRenderEncoder(model.selectionRenderEncoder);\n    publicAPI.setCurrentOperation('cameraPass');\n    renNode.traverse(publicAPI); // opaque pass is used for selection\n\n    publicAPI.setCurrentOperation('opaquePass');\n    renNode.traverse(publicAPI);\n  };\n\n  publicAPI.createRenderEncoder = function () {\n    model.selectionRenderEncoder = _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance({\n      label: 'HardwareSelectionPass'\n    }); // default settings are fine for this\n\n    model.selectionRenderEncoder.setPipelineHash('sel');\n    model.selectionRenderEncoder.setReplaceShaderCodeFunction(function (pipeline) {\n      var fDesc = pipeline.getShaderDescription('fragment');\n      fDesc.addOutput('vec4<u32>', 'outColor');\n      var code = fDesc.getCode();\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor = vec4<u32>(mapperUBO.PropID, compositeID, 0u, 0u);']).result;\n      fDesc.setCode(code);\n    });\n    var renDesc = model.selectionRenderEncoder.getDescription();\n    renDesc.colorAttachments[0].clearValue = [0.0, 0.0, 0.0, 0.0];\n    model.selectionRenderEncoder.setPipelineSettings({\n      primitive: {\n        cullMode: 'none'\n      },\n      depthStencil: {\n        depthWriteEnabled: true,\n        depthCompare: 'greater',\n        format: 'depth32float'\n      },\n      fragment: {\n        targets: [{\n          format: 'rgba32uint',\n          blend: undefined\n        }]\n      }\n    });\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  selectionRenderEncoder: null,\n  colorTexture: null,\n  depthTexture: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['colorTexture', 'depthTexture']); // Object methods\n\n  vtkWebGPUHardwareSelectionPass(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUHardwareSelectionPass'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUHardwareSelectionPass$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/HardwareSelectionPass.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/HardwareSelector.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/HardwareSelector.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUHardwareSelector$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_HardwareSelector_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/HardwareSelector.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/HardwareSelector.js\");\n/* harmony import */ var _Buffer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Buffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Buffer.js\");\n/* harmony import */ var _HardwareSelectionPass_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./HardwareSelectionPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/HardwareSelectionPass.js\");\n/* harmony import */ var _Common_DataModel_SelectionNode_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Common/DataModel/SelectionNode.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/SelectionNode.js\");\n/* harmony import */ var _Common_DataModel_DataSet_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Common/DataModel/DataSet.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/DataSet.js\");\n\n\n\n\n\n\n\n\n\nvar SelectionContent = _Common_DataModel_SelectionNode_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SelectionContent,\n    SelectionField = _Common_DataModel_SelectionNode_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SelectionField;\nvar FieldAssociations = _Common_DataModel_DataSet_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].FieldAssociations;\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].vtkErrorMacro;\n\nfunction getInfoHash(info) {\n  return \"\".concat(info.propID, \" \").concat(info.compositeID);\n}\n\nfunction convert(xx, yy, buffdata, channel) {\n  var offset = ((buffdata.height - yy - 1) * buffdata.colorBufferWidth + xx) * 4 + channel;\n  return buffdata.colorValues[offset];\n}\n\nfunction getPixelInformationWithData(buffdata, inDisplayPosition, maxDistance, outSelectedPosition) {\n  // Base case\n  var maxDist = maxDistance < 0 ? 0 : maxDistance;\n\n  if (maxDist === 0) {\n    outSelectedPosition[0] = inDisplayPosition[0];\n    outSelectedPosition[1] = inDisplayPosition[1];\n\n    if (inDisplayPosition[0] < 0 || inDisplayPosition[0] >= buffdata.width || inDisplayPosition[1] < 0 || inDisplayPosition[1] >= buffdata.height) {\n      return null;\n    }\n\n    var actorid = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 0);\n\n    if (actorid <= 0) {\n      // the pixel did not hit any actor.\n      return null;\n    }\n\n    var _info = {};\n    _info.propID = actorid;\n    var compositeID = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 1);\n\n    if (compositeID < 0 || compositeID > 0xffffff) {\n      compositeID = 0;\n    }\n\n    _info.compositeID = compositeID;\n\n    if (buffdata.captureZValues) {\n      var offset = (buffdata.height - inDisplayPosition[1] - 1) * buffdata.zbufferBufferWidth + inDisplayPosition[0];\n      _info.zValue = buffdata.depthValues[offset];\n      _info.zValue = buffdata.webGPURenderer.convertToOpenGLDepth(_info.zValue);\n      _info.displayPosition = inDisplayPosition;\n    }\n\n    return _info;\n  } // Iterate over successively growing boxes.\n  // They recursively call the base case to handle single pixels.\n\n\n  var dispPos = [inDisplayPosition[0], inDisplayPosition[1]];\n  var curPos = [0, 0];\n  var info = getPixelInformationWithData(buffdata, inDisplayPosition, 0, outSelectedPosition);\n\n  if (info) {\n    return info;\n  }\n\n  for (var dist = 1; dist < maxDist; ++dist) {\n    // Vertical sides of box.\n    for (var y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {\n      curPos[1] = y;\n\n      if (dispPos[0] >= dist) {\n        curPos[0] = dispPos[0] - dist;\n        info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);\n\n        if (info) {\n          return info;\n        }\n      }\n\n      curPos[0] = dispPos[0] + dist;\n      info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);\n\n      if (info) {\n        return info;\n      }\n    } // Horizontal sides of box.\n\n\n    for (var x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {\n      curPos[0] = x;\n\n      if (dispPos[1] >= dist) {\n        curPos[1] = dispPos[1] - dist;\n        info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);\n\n        if (info) {\n          return info;\n        }\n      }\n\n      curPos[1] = dispPos[1] + dist;\n      info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);\n\n      if (info) {\n        return info;\n      }\n    }\n  } // nothing hit.\n\n\n  outSelectedPosition[0] = inDisplayPosition[0];\n  outSelectedPosition[1] = inDisplayPosition[1];\n  return null;\n} //-----------------------------------------------------------------------------\n\n\nfunction convertSelection(fieldassociation, dataMap, buffdata) {\n  var sel = [];\n  var count = 0;\n  dataMap.forEach(function (value, key) {\n    var child = _Common_DataModel_SelectionNode_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance();\n    child.setContentType(SelectionContent.INDICES);\n\n    switch (fieldassociation) {\n      case FieldAssociations.FIELD_ASSOCIATION_CELLS:\n        child.setFieldType(SelectionField.CELL);\n        break;\n\n      case FieldAssociations.FIELD_ASSOCIATION_POINTS:\n        child.setFieldType(SelectionField.POINT);\n        break;\n\n      default:\n        vtkErrorMacro('Unknown field association');\n    }\n\n    child.getProperties().propID = value.info.propID;\n    var wprop = buffdata.webGPURenderer.getPropFromID(value.info.propID);\n    child.getProperties().prop = wprop.getRenderable();\n    child.getProperties().compositeID = value.info.compositeID;\n    child.getProperties().pixelCount = value.pixelCount;\n\n    if (buffdata.captureZValues) {\n      child.getProperties().displayPosition = [value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue];\n      child.getProperties().worldPosition = buffdata.webGPURenderWindow.displayToWorld(value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue, buffdata.renderer);\n    }\n\n    child.setSelectionList(value.attributeIDs);\n    sel[count] = child;\n    count++;\n  });\n  return sel;\n} //----------------------------------------------------------------------------\n\n\nfunction generateSelectionWithData(buffdata, fx1, fy1, fx2, fy2) {\n  var x1 = Math.floor(fx1);\n  var y1 = Math.floor(fy1);\n  var x2 = Math.floor(fx2);\n  var y2 = Math.floor(fy2);\n  var dataMap = new Map();\n  var outSelectedPosition = [0, 0];\n\n  for (var yy = y1; yy <= y2; yy++) {\n    for (var xx = x1; xx <= x2; xx++) {\n      var pos = [xx, yy];\n      var info = getPixelInformationWithData(buffdata, pos, 0, outSelectedPosition);\n\n      if (info) {\n        var hash = getInfoHash(info);\n\n        if (!dataMap.has(hash)) {\n          dataMap.set(hash, {\n            info: info,\n            pixelCount: 1,\n            attributeIDs: [info.attributeID]\n          });\n        } else {\n          var dmv = dataMap.get(hash);\n          dmv.pixelCount++;\n\n          if (buffdata.captureZValues) {\n            if (info.zValue < dmv.info.zValue) {\n              dmv.info = info;\n            }\n          }\n\n          if (dmv.attributeIDs.indexOf(info.attributeID) === -1) {\n            dmv.attributeIDs.push(info.attributeID);\n          }\n        }\n      }\n    }\n  }\n\n  return convertSelection(buffdata.fieldAssociation, dataMap, buffdata);\n} // ----------------------------------------------------------------------------\n// vtkWebGPUHardwareSelector methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkWebGPUHardwareSelector(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUHardwareSelector'); //----------------------------------------------------------------------------\n\n  publicAPI.endSelection = function () {\n    model.WebGPURenderer.setSelector(null);\n  }; //----------------------------------------------------------------------------\n  // note we ignore the x,y arguments as WebGPU has to do buffer copies\n  // of the entire depth bufer. We could realloc hardware selection textures\n  // based on the passed in size etc but it gets messy so for now we always\n  // render the full size window and copy it to the buffers.\n\n\n  publicAPI.getSourceDataAsync = /*#__PURE__*/function () {\n    var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(renderer) {\n      var webGPURenderer, originalSuppress, device, texture, depthTexture, result, colorBuffer, cmdEnc, zbuffer, cLoad, zLoad;\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              if (!(!renderer || !model.WebGPURenderWindow)) {\n                _context.next = 3;\n                break;\n              }\n\n              vtkErrorMacro('Renderer and view must be set before calling Select.');\n              return _context.abrupt(\"return\", false);\n\n            case 3:\n              // todo revisit making selection part of core\n              // then we can do this in core\n              model.WebGPURenderWindow.getRenderable().preRender();\n\n              if (model.WebGPURenderWindow.getInitialized()) {\n                _context.next = 8;\n                break;\n              }\n\n              model.WebGPURenderWindow.initialize();\n              _context.next = 8;\n              return new Promise(function (resolve) {\n                model.WebGPURenderWindow.onInitialized(resolve);\n              });\n\n            case 8:\n              webGPURenderer = model.WebGPURenderWindow.getViewNodeFor(renderer);\n\n              if (webGPURenderer) {\n                _context.next = 11;\n                break;\n              }\n\n              return _context.abrupt(\"return\", false);\n\n            case 11:\n              // Initialize renderer for selection.\n              // change the renderer's background to black, which will indicate a miss\n              originalSuppress = webGPURenderer.getSuppressClear();\n              webGPURenderer.setSuppressClear(true);\n\n              model._selectionPass.traverse(model.WebGPURenderWindow, webGPURenderer); // restore original background\n\n\n              webGPURenderer.setSuppressClear(originalSuppress);\n              device = model.WebGPURenderWindow.getDevice();\n              texture = model._selectionPass.getColorTexture();\n              depthTexture = model._selectionPass.getDepthTexture(); // as this is async we really don't want to store things in\n              // the class as multiple calls may start before resolving\n              // so anything specific to this request gets put into the\n              // result object (by value in most cases)\n\n              result = {\n                area: [0, 0, texture.getWidth() - 1, texture.getHeight() - 1],\n                captureZValues: model.captureZValues,\n                fieldAssociation: model.fieldAssociation,\n                renderer: renderer,\n                webGPURenderer: webGPURenderer,\n                webGPURenderWindow: model.WebGPURenderWindow,\n                width: texture.getWidth(),\n                height: texture.getHeight()\n              }; // must be a multiple of 256 bytes, so 16 texels with rgba32uint\n\n              result.colorBufferWidth = 16 * Math.floor((result.width + 15) / 16);\n              result.colorBufferSizeInBytes = result.colorBufferWidth * result.height * 4 * 4;\n              colorBuffer = _Buffer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance({\n                label: 'hardwareSelectColorBuffer'\n              });\n              colorBuffer.setDevice(device);\n              /* eslint-disable no-bitwise */\n\n              /* eslint-disable no-undef */\n\n              colorBuffer.create(result.colorBufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);\n              /* eslint-enable no-bitwise */\n\n              /* eslint-enable no-undef */\n\n              cmdEnc = model.WebGPURenderWindow.getCommandEncoder();\n              cmdEnc.copyTextureToBuffer({\n                texture: texture.getHandle()\n              }, {\n                buffer: colorBuffer.getHandle(),\n                bytesPerRow: 16 * result.colorBufferWidth,\n                rowsPerImage: result.height\n              }, {\n                width: result.width,\n                height: result.height,\n                depthOrArrayLayers: 1\n              });\n\n              if (model.captureZValues) {\n                result.zbufferBufferWidth = 64 * Math.floor((result.width + 63) / 64);\n                zbuffer = _Buffer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance({\n                  label: 'hardwareSelectDepthBuffer'\n                });\n                zbuffer.setDevice(device);\n                result.zbufferSizeInBytes = result.height * result.zbufferBufferWidth * 4;\n                /* eslint-disable no-bitwise */\n\n                /* eslint-disable no-undef */\n\n                zbuffer.create(result.zbufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);\n                /* eslint-enable no-bitwise */\n\n                /* eslint-enable no-undef */\n\n                cmdEnc.copyTextureToBuffer({\n                  texture: depthTexture.getHandle(),\n                  aspect: 'depth-only'\n                }, {\n                  buffer: zbuffer.getHandle(),\n                  bytesPerRow: 4 * result.zbufferBufferWidth,\n                  rowsPerImage: result.height\n                }, {\n                  width: result.width,\n                  height: result.height,\n                  depthOrArrayLayers: 1\n                });\n              }\n\n              device.submitCommandEncoder(cmdEnc);\n              /* eslint-disable no-undef */\n\n              cLoad = colorBuffer.mapAsync(GPUMapMode.READ);\n\n              if (!model.captureZValues) {\n                _context.next = 37;\n                break;\n              }\n\n              zLoad = zbuffer.mapAsync(GPUMapMode.READ);\n              _context.next = 33;\n              return Promise.all([cLoad, zLoad]);\n\n            case 33:\n              result.depthValues = new Float32Array(zbuffer.getMappedRange().slice());\n              zbuffer.unmap();\n              _context.next = 39;\n              break;\n\n            case 37:\n              _context.next = 39;\n              return cLoad;\n\n            case 39:\n              /* eslint-enable no-undef */\n              result.colorValues = new Uint32Array(colorBuffer.getMappedRange().slice());\n              colorBuffer.unmap();\n\n              result.generateSelection = function (fx1, fy1, fx2, fy2) {\n                return generateSelectionWithData(result, fx1, fy1, fx2, fy2);\n              };\n\n              return _context.abrupt(\"return\", result);\n\n            case 43:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee);\n    }));\n\n    return function (_x) {\n      return _ref.apply(this, arguments);\n    };\n  }();\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  WebGPURenderWindow: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _Core_HardwareSelector_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].extend(publicAPI, model, initialValues);\n  model._selectionPass = _HardwareSelectionPass_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance();\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setGet(publicAPI, model, ['WebGPURenderWindow']); // Object methods\n\n  vtkWebGPUHardwareSelector(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance(extend, 'vtkWebGPUHardwareSelector'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUHardwareSelector$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/HardwareSelector.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/MapperHelper.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/MapperHelper.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUMapperHelper$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _BindGroup_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BindGroup.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BindGroup.js\");\n/* harmony import */ var _Pipeline_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Pipeline.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Pipeline.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n/* harmony import */ var _ShaderDescription_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ShaderDescription.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderDescription.js\");\n/* harmony import */ var _VertexInput_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./VertexInput.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/VertexInput.js\");\n\n\n\n\n\n\n\n\nvar vtkWebGPUMapperHelperVS = \"\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@stage(vertex)\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : vertexOutput;\\n\\n  // var vertex: vec4<f32> = vertexBC;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  //VTK::Position::Impl\\n\\n  return output;\\n}\\n\";\nvar vtkWebGPUMapperHelperFS = \"\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@stage(fragment)\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : fragmentOutput;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::Light::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  // var computedColor:vec4<f32> = vec4<f32>(1.0,0.5,0.5,1.0);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n\"; // ----------------------------------------------------------------------------\n// vtkWebGPUMapperHelper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUMapperHelper(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUMapperHelper');\n\n  publicAPI.generateShaderDescriptions = function (hash, pipeline, vertexInput) {\n    // create the shader descriptions\n    var vDesc = _ShaderDescription_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance({\n      type: 'vertex',\n      hash: hash,\n      code: model.vertexShaderTemplate\n    });\n    var fDesc = _ShaderDescription_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance({\n      type: 'fragment',\n      hash: hash,\n      code: model.fragmentShaderTemplate\n    }); // add them to the pipeline\n\n    var sdrs = pipeline.getShaderDescriptions();\n    sdrs.push(vDesc);\n    sdrs.push(fDesc); // look for replacements to invoke\n\n    var scode = model.vertexShaderTemplate + model.fragmentShaderTemplate; // eslint-disable-next-line prefer-regex-literals\n\n    var re = new RegExp('//VTK::[^:]*::', 'g');\n    var unique = scode.match(re).filter(function (v, i, a) {\n      return a.indexOf(v) === i;\n    });\n    var fnames = unique.map(function (v) {\n      return \"replaceShader\".concat(v.substring(7, v.length - 2));\n    }); // now invoke shader replacement functions\n\n    for (var i = 0; i < fnames.length; i++) {\n      var fname = fnames[i];\n\n      if (fname !== 'replaceShaderIOStructs' && model.shaderReplacements.has(fname)) {\n        model.shaderReplacements.get(fname)(hash, pipeline, vertexInput);\n      }\n    } // always replace the IOStructs last as other replacement funcs may\n    // add inputs or outputs\n\n\n    publicAPI.replaceShaderIOStructs(hash, pipeline, vertexInput); // console.log(vDesc.getCode());\n    // console.log(fDesc.getCode());\n  };\n\n  publicAPI.replaceShaderIOStructs = function (hash, pipeline, vertexInput) {\n    var vDesc = pipeline.getShaderDescription('vertex');\n    vDesc.replaceShaderCode(null, vertexInput);\n    var fDesc = pipeline.getShaderDescription('fragment');\n    fDesc.replaceShaderCode(vDesc);\n  };\n\n  publicAPI.replaceShaderRenderEncoder = function (hash, pipeline, vertexInput) {\n    model.renderEncoder.replaceShaderCode(pipeline);\n  };\n\n  model.shaderReplacements.set('replaceShaderRenderEncoder', publicAPI.replaceShaderRenderEncoder);\n\n  publicAPI.replaceShaderRenderer = function (hash, pipeline, vertexInput) {\n    if (!model.WebGPURenderer) {\n      return;\n    }\n\n    var ubocode = model.WebGPURenderer.getBindGroup().getShaderCode(pipeline);\n    var vDesc = pipeline.getShaderDescription('vertex');\n    var code = vDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Renderer::Dec', [ubocode]).result;\n    vDesc.setCode(code);\n    var fDesc = pipeline.getShaderDescription('fragment');\n    code = fDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Renderer::Dec', [ubocode]).result;\n    fDesc.setCode(code);\n  };\n\n  model.shaderReplacements.set('replaceShaderRenderer', publicAPI.replaceShaderRenderer);\n\n  publicAPI.replaceShaderMapper = function (hash, pipeline, vertexInput) {\n    var ubocode = model.bindGroup.getShaderCode(pipeline);\n    var vDesc = pipeline.getShaderDescription('vertex');\n    var code = vDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Mapper::Dec', [ubocode]).result;\n    vDesc.setCode(code);\n    var fDesc = pipeline.getShaderDescription('fragment');\n    fDesc.addBuiltinInput('bool', '@builtin(front_facing) frontFacing');\n    code = fDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Mapper::Dec', [ubocode]).result;\n    fDesc.setCode(code);\n  };\n\n  model.shaderReplacements.set('replaceShaderMapper', publicAPI.replaceShaderMapper);\n\n  publicAPI.replaceShaderPosition = function (hash, pipeline, vertexInput) {\n    var vDesc = pipeline.getShaderDescription('vertex');\n    vDesc.addBuiltinOutput('vec4<f32>', '@builtin(position) Position');\n    var code = vDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Position::Impl', ['    output.Position = rendererUBO.SCPCMatrix*vertexBC;']).result;\n    vDesc.setCode(code);\n  };\n\n  model.shaderReplacements.set('replaceShaderPosition', publicAPI.replaceShaderPosition);\n\n  publicAPI.replaceShaderTCoord = function (hash, pipeline, vertexInput) {\n    var vDesc = pipeline.getShaderDescription('vertex');\n    vDesc.addOutput('vec2<f32>', 'tcoordVS');\n  };\n\n  model.shaderReplacements.set('replaceShaderTCoord', publicAPI.replaceShaderTCoord);\n\n  publicAPI.addTextureView = function (view) {\n    // is it already there?\n    if (model.textureViews.includes(view)) {\n      return;\n    }\n\n    model.textureViews.push(view);\n  };\n\n  publicAPI.renderForPipeline = function (renderEncoder) {\n    var pipeline = renderEncoder.getBoundPipeline(); // bind the mapper bind group\n\n    renderEncoder.activateBindGroup(model.bindGroup); // bind the vertex input\n\n    pipeline.bindVertexInput(renderEncoder, model.vertexInput);\n    renderEncoder.draw(model.numberOfVertices, model.numberOfInstances, 0, 0);\n  };\n\n  publicAPI.registerToDraw = function () {\n    if (model.pipeline) {\n      model.WebGPURenderer.registerPipelineCallback(model.pipeline, publicAPI.renderForPipeline);\n    }\n  };\n\n  publicAPI.render = function (renderEncoder, device) {\n    publicAPI.build(renderEncoder, device);\n    renderEncoder.setPipeline(model.pipeline);\n\n    if (model.WebGPURenderer) {\n      model.WebGPURenderer.bindUBO(renderEncoder);\n    }\n\n    publicAPI.renderForPipeline(renderEncoder);\n  };\n\n  publicAPI.getBindables = function () {\n    var bindables = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model.additionalBindables);\n\n    if (model.UBO) {\n      bindables.push(model.UBO);\n    }\n\n    if (model.SSBO) {\n      bindables.push(model.SSBO);\n    } // add texture BindGroupLayouts\n\n\n    for (var t = 0; t < model.textureViews.length; t++) {\n      bindables.push(model.textureViews[t]);\n      var samp = model.textureViews[t].getSampler();\n\n      if (samp) {\n        bindables.push(samp);\n      }\n    }\n\n    return bindables;\n  };\n\n  publicAPI.build = function (renderEncoder, device) {\n    // handle per primitive type\n    model.renderEncoder = renderEncoder;\n    model.pipeline = device.getPipeline(model.pipelineHash);\n    model.bindGroup.setBindables(publicAPI.getBindables()); // build VBO for this primitive\n    // build the pipeline if needed\n\n    if (!model.pipeline) {\n      model.pipeline = _Pipeline_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n      model.pipeline.setDevice(device);\n\n      if (model.WebGPURenderer) {\n        model.pipeline.addBindGroupLayout(model.WebGPURenderer.getBindGroup());\n      }\n\n      model.pipeline.addBindGroupLayout(model.bindGroup);\n      publicAPI.generateShaderDescriptions(model.pipelineHash, model.pipeline, model.vertexInput);\n      model.pipeline.setTopology(model.topology);\n      model.pipeline.setRenderEncoder(renderEncoder);\n      model.pipeline.setVertexState(model.vertexInput.getVertexInputInformation());\n      device.createPipeline(model.pipelineHash, model.pipeline);\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  additionalBindables: undefined,\n  bindGroup: null,\n  device: null,\n  fragmentShaderTemplate: null,\n  numberOfInstances: 1,\n  numberOfVertices: 0,\n  pipelineHash: null,\n  shaderReplacements: null,\n  SSBO: null,\n  textureViews: null,\n  topology: 'triangle-list',\n  UBO: null,\n  vertexShaderTemplate: null,\n  WebGPURenderer: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model);\n  model.textureViews = [];\n  model.vertexInput = _VertexInput_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance();\n  model.bindGroup = _BindGroup_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n    label: 'mapperBG'\n  });\n  model.additionalBindables = [];\n  model.fragmentShaderTemplate = model.fragmentShaderTemplate || vtkWebGPUMapperHelperFS;\n  model.vertexShaderTemplate = model.vertexShaderTemplate || vtkWebGPUMapperHelperVS;\n  model.shaderReplacements = new Map(); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['vertexInput']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['additionalBindables', 'device', 'fragmentShaderTemplate', 'interpolate', 'numberOfInstances', 'numberOfVertices', 'pipelineHash', 'shaderReplacements', 'SSBO', 'textureViews', 'topology', 'UBO', 'vertexShaderTemplate', 'WebGPURenderer']); // Object methods\n\n  vtkWebGPUMapperHelper(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkWebGPUMapperHelper'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUMapperHelper$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/MapperHelper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/OpaquePass.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/OpaquePass.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUOpaquePass$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RenderEncoder.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderEncoder.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Texture.js\");\n/* harmony import */ var _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../SceneGraph/RenderPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js\");\n\n\n\n\n\nfunction vtkWebGPUOpaquePass(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUOpaquePass'); // this pass implements a forward rendering pipeline\n  // if both volumes and opaque geometry are present\n  // it will mix the two together by capturing a zbuffer\n  // first\n\n  publicAPI.traverse = function (renNode, viewNode) {\n    if (model.deleted) {\n      return;\n    } // we just render our delegates in order\n\n\n    model.currentParent = viewNode;\n    var device = viewNode.getDevice();\n\n    if (!model.renderEncoder) {\n      publicAPI.createRenderEncoder();\n      model.colorTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n        label: 'opaquePassColor'\n      });\n      model.colorTexture.create(device, {\n        width: viewNode.getCanvas().width,\n        height: viewNode.getCanvas().height,\n        format: 'bgra8unorm',\n\n        /* eslint-disable no-undef */\n\n        /* eslint-disable no-bitwise */\n        usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC\n      });\n      var ctView = model.colorTexture.createView('opaquePassColorTexture');\n      model.renderEncoder.setColorTextureView(0, ctView);\n      model.depthFormat = 'depth32float';\n      model.depthTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n        label: 'opaquePassDepth'\n      });\n      model.depthTexture.create(device, {\n        width: viewNode.getCanvas().width,\n        height: viewNode.getCanvas().height,\n        format: model.depthFormat,\n        usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC\n      });\n      var dView = model.depthTexture.createView('opaquePassDepthTexture');\n      model.renderEncoder.setDepthTextureView(dView);\n    } else {\n      model.colorTexture.resize(viewNode.getCanvas().width, viewNode.getCanvas().height);\n      model.depthTexture.resize(viewNode.getCanvas().width, viewNode.getCanvas().height);\n    }\n\n    model.renderEncoder.attachTextureViews();\n    publicAPI.setCurrentOperation('opaquePass');\n    renNode.setRenderEncoder(model.renderEncoder);\n    renNode.traverse(publicAPI);\n  };\n\n  publicAPI.getColorTextureView = function () {\n    return model.renderEncoder.getColorTextureViews()[0];\n  };\n\n  publicAPI.getDepthTextureView = function () {\n    return model.renderEncoder.getDepthTextureView();\n  };\n\n  publicAPI.createRenderEncoder = function () {\n    model.renderEncoder = _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance({\n      label: 'OpaquePass'\n    }); // default settings are fine for this\n\n    model.renderEncoder.setPipelineHash('op');\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  renderEncoder: null,\n  colorTexture: null,\n  depthTexture: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['colorTexture', 'depthTexture']); // Object methods\n\n  vtkWebGPUOpaquePass(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUOpaquePass'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUOpaquePass$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/OpaquePass.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/OrderIndependentTranslucentPass.js":
/*!******************************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/OrderIndependentTranslucentPass.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUOrderIndepenentTranslucentPass),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Texture.js\");\n/* harmony import */ var _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RenderEncoder.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderEncoder.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n/* harmony import */ var _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SceneGraph/RenderPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js\");\n/* harmony import */ var _FullScreenQuad_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FullScreenQuad.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/FullScreenQuad.js\");\n\n\n\n\n\n\n\nvar oitpFragTemplate = \"\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@stage(fragment)\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var tcoord: vec2<i32> = vec2<i32>(i32(input.fragPos.x), i32(input.fragPos.y));\\n  var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;\\n  if (reveal == 1.0) { discard; }\\n  var tcolor: vec4<f32> = textureLoad(oitpColorTexture, tcoord, 0);\\n  var total: f32 = max(tcolor.a, 0.01);\\n  var computedColor: vec4<f32> = vec4<f32>(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n\";\n\nfunction vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUOrderIndependentTranslucentPass'); // this pass implements a forward rendering pipeline\n  // if both volumes and opaque geometry are present\n  // it will mix the two together by capturing a zbuffer\n  // first\n\n  publicAPI.traverse = function (renNode, viewNode) {\n    if (model.deleted) {\n      return;\n    } // we just render our delegates in order\n\n\n    model.currentParent = viewNode;\n    var device = viewNode.getDevice();\n\n    if (!model.translucentRenderEncoder) {\n      publicAPI.createRenderEncoder();\n      publicAPI.createFinalEncoder();\n      model.translucentColorTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance({\n        label: 'translucentPassColor'\n      });\n      model.translucentColorTexture.create(device, {\n        width: viewNode.getCanvas().width,\n        height: viewNode.getCanvas().height,\n        format: 'rgba16float',\n\n        /* eslint-disable no-undef */\n\n        /* eslint-disable no-bitwise */\n        usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING\n      });\n      var v1 = model.translucentColorTexture.createView('oitpColorTexture');\n      model.translucentRenderEncoder.setColorTextureView(0, v1);\n      model.translucentAccumulateTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance({\n        label: 'translucentPassAccumulate'\n      });\n      model.translucentAccumulateTexture.create(device, {\n        width: viewNode.getCanvas().width,\n        height: viewNode.getCanvas().height,\n        format: 'r16float',\n\n        /* eslint-disable no-undef */\n\n        /* eslint-disable no-bitwise */\n        usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING\n      });\n      var v2 = model.translucentAccumulateTexture.createView('oitpAccumTexture');\n      model.translucentRenderEncoder.setColorTextureView(1, v2);\n      model.fullScreenQuad = _FullScreenQuad_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance();\n      model.fullScreenQuad.setDevice(viewNode.getDevice());\n      model.fullScreenQuad.setPipelineHash('oitpfsq');\n      model.fullScreenQuad.setTextureViews(model.translucentRenderEncoder.getColorTextureViews());\n      model.fullScreenQuad.setFragmentShaderTemplate(oitpFragTemplate);\n    } else {\n      model.translucentColorTexture.resizeToMatch(model.colorTextureView.getTexture());\n      model.translucentAccumulateTexture.resizeToMatch(model.colorTextureView.getTexture());\n    }\n\n    model.translucentRenderEncoder.setDepthTextureView(model.depthTextureView);\n    model.translucentRenderEncoder.attachTextureViews();\n    publicAPI.setCurrentOperation('translucentPass');\n    renNode.setRenderEncoder(model.translucentRenderEncoder);\n    renNode.traverse(publicAPI);\n    publicAPI.finalPass(viewNode, renNode);\n  };\n\n  publicAPI.finalPass = function (viewNode, renNode) {\n    model.translucentFinalEncoder.setColorTextureView(0, model.colorTextureView);\n    model.translucentFinalEncoder.attachTextureViews();\n    renNode.setRenderEncoder(model.translucentFinalEncoder);\n    model.translucentFinalEncoder.begin(viewNode.getCommandEncoder()); // set viewport\n\n    renNode.scissorAndViewport(model.translucentFinalEncoder);\n    model.fullScreenQuad.render(model.translucentFinalEncoder, viewNode.getDevice());\n    model.translucentFinalEncoder.end();\n  };\n\n  publicAPI.getTextures = function () {\n    return [model.translucentColorTexture, model.translucentAccumulateTexture];\n  };\n\n  publicAPI.createRenderEncoder = function () {\n    model.translucentRenderEncoder = _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n      label: 'translucentRender'\n    });\n    var rDesc = model.translucentRenderEncoder.getDescription();\n    rDesc.colorAttachments = [{\n      view: undefined,\n      clearValue: [0.0, 0.0, 0.0, 0.0],\n      loadOp: 'clear',\n      storeOp: 'store'\n    }, {\n      view: undefined,\n      clearValue: [1.0, 0.0, 0.0, 0.0],\n      loadOp: 'clear',\n      storeOp: 'store'\n    }];\n    rDesc.depthStencilAttachment = {\n      view: undefined,\n      depthLoadOp: 'load',\n      depthStoreOp: 'store'\n    };\n    model.translucentRenderEncoder.setReplaceShaderCodeFunction(function (pipeline) {\n      var fDesc = pipeline.getShaderDescription('fragment');\n      fDesc.addOutput('vec4<f32>', 'outColor');\n      fDesc.addOutput('f32', 'outAccum');\n      fDesc.addBuiltinInput('vec4<f32>', '@builtin(position) fragPos');\n      var code = fDesc.getCode();\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].substitute(code, '//VTK::RenderEncoder::Impl', [// very simple depth weighting in w\n      'var w: f32 = 1.0 - input.fragPos.z * 0.9;', 'output.outColor = vec4<f32>(computedColor.rgb*computedColor.a, computedColor.a) * w;', 'output.outAccum = computedColor.a;']).result;\n      fDesc.setCode(code);\n    });\n    model.translucentRenderEncoder.setPipelineHash('oitpr');\n    model.translucentRenderEncoder.setPipelineSettings({\n      primitive: {\n        cullMode: 'none'\n      },\n      depthStencil: {\n        depthWriteEnabled: false,\n        depthCompare: 'greater',\n        format: 'depth32float'\n      },\n      fragment: {\n        targets: [{\n          format: 'rgba16float',\n          blend: {\n            color: {\n              srcFactor: 'one',\n              dstFactor: 'one'\n            },\n            alpha: {\n              srcfactor: 'one',\n              dstFactor: 'one'\n            }\n          }\n        }, {\n          format: 'r16float',\n          blend: {\n            color: {\n              srcFactor: 'zero',\n              dstFactor: 'one-minus-src'\n            },\n            alpha: {\n              srcfactor: 'one',\n              dstFactor: 'one-minus-src-alpha'\n            }\n          }\n        }]\n      }\n    });\n  };\n\n  publicAPI.createFinalEncoder = function () {\n    model.translucentFinalEncoder = _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n      label: 'translucentFinal'\n    });\n    model.translucentFinalEncoder.setDescription({\n      colorAttachments: [{\n        view: null,\n        loadOp: 'load',\n        storeOp: 'store'\n      }]\n    });\n    model.translucentFinalEncoder.setReplaceShaderCodeFunction(function (pipeline) {\n      var fDesc = pipeline.getShaderDescription('fragment');\n      fDesc.addOutput('vec4<f32>', 'outColor');\n      fDesc.addBuiltinInput('vec4<f32>', '@builtin(position) fragPos');\n      var code = fDesc.getCode();\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor = vec4<f32>(computedColor.rgb*computedColor.a, computedColor.a);']).result;\n      fDesc.setCode(code);\n    });\n    model.translucentFinalEncoder.setPipelineHash('oitpf');\n    model.translucentFinalEncoder.setPipelineSettings({\n      primitive: {\n        cullMode: 'none'\n      },\n      fragment: {\n        targets: [{\n          format: 'bgra8unorm',\n          blend: {\n            color: {\n              srcFactor: 'src-alpha',\n              dstFactor: 'one-minus-src-alpha'\n            },\n            alpha: {\n              srcfactor: 'one',\n              dstFactor: 'one-minus-src-alpha'\n            }\n          }\n        }]\n      }\n    });\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  colorTextureView: null,\n  depthTextureView: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend(publicAPI, model, initialValues);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['colorTextureView', 'depthTextureView']); // Object methods\n\n  vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUOrderIndependentTranslucentPass'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUOrderIndepenentTranslucentPass = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/OrderIndependentTranslucentPass.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/Pipeline.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/Pipeline.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUPipeline$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n// vtkWebGPUPipeline methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUPipeline(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUPipeline');\n\n  publicAPI.getShaderDescriptions = function () {\n    return model.shaderDescriptions;\n  };\n\n  publicAPI.initialize = function (device, hash) {\n    // start with the renderencoder settings\n    model.pipelineDescription = model.renderEncoder.getPipelineSettings();\n    model.pipelineDescription.primitive.topology = model.topology;\n    model.pipelineDescription.vertex = model.vertexState;\n    model.pipelineDescription.label = hash; // add in bind group layouts\n\n    var bindGroupLayouts = [];\n\n    for (var i = 0; i < model.layouts.length; i++) {\n      bindGroupLayouts.push(model.layouts[i].layout);\n    }\n\n    model.pipelineLayout = device.getHandle().createPipelineLayout({\n      bindGroupLayouts: bindGroupLayouts\n    });\n    model.pipelineDescription.layout = model.pipelineLayout;\n\n    for (var _i = 0; _i < model.shaderDescriptions.length; _i++) {\n      var sd = model.shaderDescriptions[_i];\n      var sm = device.getShaderModule(sd);\n\n      if (sd.getType() === 'vertex') {\n        model.pipelineDescription.vertex.module = sm.getHandle();\n        model.pipelineDescription.vertex.entryPoint = 'main';\n      }\n\n      if (sd.getType() === 'fragment') {\n        model.pipelineDescription.fragment.module = sm.getHandle();\n        model.pipelineDescription.fragment.entryPoint = 'main';\n      }\n    }\n\n    model.handle = device.getHandle().createRenderPipeline(model.pipelineDescription);\n  };\n\n  publicAPI.getShaderDescription = function (stype) {\n    for (var i = 0; i < model.shaderDescriptions.length; i++) {\n      if (model.shaderDescriptions[i].getType() === stype) return model.shaderDescriptions[i];\n    }\n\n    return null;\n  };\n\n  publicAPI.addBindGroupLayout = function (bindGroup) {\n    if (!bindGroup) {\n      return;\n    }\n\n    model.layouts.push({\n      layout: bindGroup.getBindGroupLayout(model.device),\n      label: bindGroup.getLabel()\n    });\n  };\n\n  publicAPI.getBindGroupLayout = function (idx) {\n    return model.layouts[idx].layout;\n  };\n\n  publicAPI.getBindGroupLayoutCount = function (llabel) {\n    for (var i = 0; i < model.layouts.length; i++) {\n      if (model.layouts[i].label === llabel) {\n        return i;\n      }\n    }\n\n    return 0;\n  };\n\n  publicAPI.bindVertexInput = function (renderEncoder, vInput) {\n    vInput.bindBuffers(renderEncoder);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  handle: null,\n  layouts: null,\n  renderEncoder: null,\n  shaderDescriptions: null,\n  vertexState: null,\n  topology: null,\n  pipelineDescription: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(publicAPI, model);\n  model.layouts = [];\n  model.shaderDescriptions = [];\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['handle', 'pipelineDescription']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['device', 'renderEncoder', 'topology', 'vertexState']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkWebGPUPipeline(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkWebGPUPipeline'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUPipeline$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/Pipeline.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/PixelSpaceCallbackMapper.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/PixelSpaceCallbackMapper.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js\");\n\n\n\n\n// vtkWebGPUPixelSpaceCallbackMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUPixelSpaceCallbackMapper(publicAPI, model) {\n  model.classHierarchy.push('vtkWebGPUPixelSpaceCallbackMapper');\n\n  publicAPI.opaquePass = function (prepass, renderPass) {\n    model.WebGPURenderer = publicAPI.getFirstAncestorOfType('vtkWebGPURenderer');\n    model.WebGPURenderWindow = model.WebGPURenderer.getParent();\n    var aspectRatio = model.WebGPURenderer.getAspectRatio();\n    var camera = model.WebGPURenderer ? model.WebGPURenderer.getRenderable().getActiveCamera() : null;\n    var tsize = model.WebGPURenderer.getTiledSizeAndOrigin();\n    var texels = null;\n\n    if (model.renderable.getUseZValues()) ;\n\n    model.renderable.invokeCallback(model.renderable.getInputData(), camera, aspectRatio, tsize, texels);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues); // Object methods\n\n  vtkWebGPUPixelSpaceCallbackMapper(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUPixelSpaceCallbackMapper'); // ----------------------------------------------------------------------------\n\nvar index = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to WebGPU backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_2__.registerOverride)('vtkPixelSpaceCallbackMapper', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/PixelSpaceCallbackMapper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/PolyDataMapper.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/PolyDataMapper.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUPolyDataMapper$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat3.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_Mapper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Mapper.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js\");\n/* harmony import */ var _Core_Property_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Property.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property.js\");\n/* harmony import */ var _Core_Texture_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Texture.js\");\n/* harmony import */ var _BufferManager_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BufferManager.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n/* harmony import */ var _UniformBuffer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./UniformBuffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/UniformBuffer.js\");\n/* harmony import */ var _MapperHelper_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MapperHelper.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/MapperHelper.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar BufferUsage = _BufferManager_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].BufferUsage,\n    PrimitiveTypes = _BufferManager_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].PrimitiveTypes;\nvar Representation = _Core_Property_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Representation;\nvar ScalarMode = _Core_Mapper_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ScalarMode;\nvar StartEvent = {\n  type: 'StartEvent'\n};\nvar EndEvent = {\n  type: 'EndEvent'\n};\nvar vtkWebGPUPolyDataVS = \"\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@stage(vertex)\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : vertexOutput;\\n\\n  var vertex: vec4<f32> = vertexBC;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  //VTK::Position::Impl\\n\\n  return output;\\n}\\n\";\nvar vtkWebGPUPolyDataFS = \"\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n// optional surface normal declaration\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@stage(fragment)\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : fragmentOutput;\\n\\n  var ambientColor: vec4<f32> = mapperUBO.AmbientColor;\\n  var diffuseColor: vec4<f32> = mapperUBO.DiffuseColor;\\n  var opacity: f32 = mapperUBO.Opacity;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::Light::Impl\\n\\n  var computedColor: vec4<f32> = vec4<f32>(ambientColor.rgb * mapperUBO.AmbientIntensity\\n     + diffuse * mapperUBO.DiffuseIntensity\\n     + specular * mapperUBO.SpecularIntensity,\\n     opacity);\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  if (computedColor.a == 0.0) { discard; };\\n\\n  //VTK::Position::Impl\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n\";\n\nfunction isEdges(hash) {\n  // edge pipelines have \"edge\" in them\n  return hash.indexOf('edge') >= 0;\n} // ----------------------------------------------------------------------------\n// vtkWebGPUPolyDataMapper methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkWebGPUPolyDataMapper(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUPolyDataMapper');\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.WebGPUActor = publicAPI.getFirstAncestorOfType('vtkWebGPUActor');\n      model.WebGPURenderer = model.WebGPUActor.getFirstAncestorOfType('vtkWebGPURenderer');\n      model.WebGPURenderWindow = model.WebGPURenderer.getParent();\n      model.device = model.WebGPURenderWindow.getDevice();\n    }\n  }; // Renders myself\n\n\n  publicAPI.translucentPass = function (prepass) {\n    if (prepass) {\n      publicAPI.render();\n    }\n  };\n\n  publicAPI.opaquePass = function (prepass) {\n    if (prepass) {\n      publicAPI.render();\n    }\n  };\n\n  publicAPI.updateUBO = function () {\n    // make sure the data is up to date\n    var actor = model.WebGPUActor.getRenderable();\n    var ppty = actor.getProperty();\n    var utime = model.UBO.getSendTime();\n\n    if (publicAPI.getMTime() > utime || ppty.getMTime() > utime || model.renderable.getMTime() > utime) {\n      var keyMats = model.WebGPUActor.getKeyMatrices(model.WebGPURenderer);\n      model.UBO.setArray('BCWCMatrix', keyMats.bcwc);\n      model.UBO.setArray('BCSCMatrix', keyMats.bcsc);\n      model.UBO.setArray('MCWCNormals', keyMats.normalMatrix);\n      var aColor = ppty.getAmbientColorByReference();\n      model.UBO.setValue('AmbientIntensity', ppty.getAmbient());\n      model.UBO.setArray('AmbientColor', [aColor[0], aColor[1], aColor[2], 1.0]);\n      model.UBO.setValue('DiffuseIntensity', ppty.getDiffuse());\n      aColor = ppty.getDiffuseColorByReference();\n      model.UBO.setArray('DiffuseColor', [aColor[0], aColor[1], aColor[2], 1.0]);\n      model.UBO.setValue('SpecularIntensity', ppty.getSpecular());\n      model.UBO.setValue('SpecularPower', ppty.getSpecularPower());\n      aColor = ppty.getSpecularColorByReference();\n      model.UBO.setArray('SpecularColor', [aColor[0], aColor[1], aColor[2], 1.0]);\n      aColor = ppty.getEdgeColorByReference();\n      model.UBO.setArray('EdgeColor', [aColor[0], aColor[1], aColor[2], 1.0]);\n      model.UBO.setValue('Opacity', ppty.getOpacity());\n      model.UBO.setValue('PropID', model.WebGPUActor.getPropID());\n      var device = model.WebGPURenderWindow.getDevice();\n      model.UBO.sendIfNeeded(device);\n    }\n  };\n\n  publicAPI.render = function () {\n    publicAPI.invokeEvent(StartEvent);\n\n    if (!model.renderable.getStatic()) {\n      model.renderable.update();\n    }\n\n    model.currentInput = model.renderable.getInputData();\n    publicAPI.invokeEvent(EndEvent);\n    model.renderEncoder = model.WebGPURenderer.getRenderEncoder();\n    publicAPI.buildPrimitives(); // update descriptor sets\n\n    publicAPI.updateUBO();\n  };\n\n  publicAPI.replaceShaderPosition = function (hash, pipeline, vertexInput) {\n    var vDesc = pipeline.getShaderDescription('vertex');\n    vDesc.addBuiltinOutput('vec4<f32>', '@builtin(position) Position');\n    var code = vDesc.getCode();\n\n    if (isEdges(hash)) {\n      vDesc.addBuiltinInput('u32', '@builtin(instance_index) instanceIndex'); // widen the edge\n\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::Position::Impl', ['    var tmpPos: vec4<f32> = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;', '    var tmpPos2: vec3<f32> = tmpPos.xyz / tmpPos.w;', '    tmpPos2.x = tmpPos2.x + 1.4*(f32(input.instanceIndex % 2u) - 0.5)/rendererUBO.viewportSize.x;', '    tmpPos2.y = tmpPos2.y + 1.4*(f32(input.instanceIndex / 2u) - 0.5)/rendererUBO.viewportSize.y;', '    tmpPos2.z = tmpPos2.z + 0.00001;', // could become a setting\n      '    output.Position = vec4<f32>(tmpPos2.xyz * tmpPos.w, tmpPos.w);']).result;\n    } else {\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::Position::Impl', ['    output.Position = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;']).result;\n    }\n\n    vDesc.setCode(code);\n  };\n\n  publicAPI.replaceShaderNormal = function (hash, pipeline, vertexInput) {\n    if (vertexInput.hasAttribute('normalMC')) {\n      var vDesc = pipeline.getShaderDescription('vertex');\n      vDesc.addOutput('vec3<f32>', 'normalVC');\n      var code = vDesc.getCode();\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::Normal::Impl', ['  output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);']).result;\n      vDesc.setCode(code);\n      var fDesc = pipeline.getShaderDescription('fragment');\n      code = fDesc.getCode();\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::Normal::Impl', ['  var normal: vec3<f32> = input.normalVC;', '  if (!input.frontFacing) { normal = -normal; }']).result;\n      fDesc.setCode(code);\n    }\n  }; // we only apply lighting when there is a \"var normal\" declaration in the\n  // fragment shader code. That is the lighting trigger.\n\n\n  publicAPI.replaceShaderLight = function (hash, pipeline, vertexInput) {\n    var fDesc = pipeline.getShaderDescription('fragment');\n    var code = fDesc.getCode();\n\n    if (code.includes('var normal')) {\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::Light::Impl', ['  var df: f32  = max(0.0, normal.z);', '  var sf: f32 = pow(df, mapperUBO.SpecularPower);', '  var diffuse: vec3<f32> = df * diffuseColor.rgb;', '  var specular: vec3<f32> = sf * mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;']).result;\n      fDesc.setCode(code);\n    } else {\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::Light::Impl', ['  var diffuse: vec3<f32> = diffuseColor.rgb;', '  var specular: vec3<f32> = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;']).result;\n      fDesc.setCode(code);\n    }\n  };\n\n  publicAPI.replaceShaderColor = function (hash, pipeline, vertexInput) {\n    if (isEdges(hash)) {\n      var _fDesc = pipeline.getShaderDescription('fragment');\n\n      var _code = _fDesc.getCode();\n\n      _code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(_code, '//VTK::Color::Impl', ['ambientColor = mapperUBO.EdgeColor;', 'diffuseColor = mapperUBO.EdgeColor;']).result;\n\n      _fDesc.setCode(_code);\n\n      return;\n    }\n\n    if (!vertexInput.hasAttribute('colorVI')) return;\n    var vDesc = pipeline.getShaderDescription('vertex');\n    vDesc.addOutput('vec4<f32>', 'color');\n    var code = vDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::Color::Impl', ['  output.color = colorVI;']).result;\n    vDesc.setCode(code);\n    var fDesc = pipeline.getShaderDescription('fragment');\n    code = fDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::Color::Impl', ['ambientColor = input.color;', 'diffuseColor = input.color;', 'opacity = mapperUBO.Opacity * input.color.a;']).result;\n    fDesc.setCode(code);\n  };\n\n  publicAPI.replaceShaderTCoord = function (hash, pipeline, vertexInput) {\n    if (!vertexInput.hasAttribute('tcoord')) return;\n    var vDesc = pipeline.getShaderDescription('vertex');\n    vDesc.addOutput('vec2<f32>', 'tcoordVS');\n    var code = vDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::TCoord::Impl', ['  output.tcoordVS = tcoord;']).result;\n    vDesc.setCode(code);\n    var fDesc = pipeline.getShaderDescription('fragment');\n    code = fDesc.getCode(); // todo handle multiple textures? Blend multiply ?\n\n    if (model.textures.length) {\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::TCoord::Impl', ['var tcolor: vec4<f32> = textureSample(Texture0, Texture0Sampler, input.tcoordVS);', 'computedColor = computedColor*tcolor;']).result;\n    }\n\n    fDesc.setCode(code);\n  };\n\n  publicAPI.replaceShaderSelect = function (hash, pipeline, vertexInput) {\n    if (hash.includes('sel')) {\n      var fDesc = pipeline.getShaderDescription('fragment');\n      var code = fDesc.getCode(); // by default there are no composites, so just 0\n\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].substitute(code, '//VTK::Select::Impl', ['  var compositeID: u32 = 0u;']).result;\n      fDesc.setCode(code);\n    }\n  };\n\n  publicAPI.getUsage = function (rep, i) {\n    if (rep === Representation.POINTS || i === PrimitiveTypes.Points) {\n      return BufferUsage.Verts;\n    }\n\n    if (i === PrimitiveTypes.Lines) {\n      return BufferUsage.Lines;\n    }\n\n    if (rep === Representation.WIREFRAME) {\n      if (i === PrimitiveTypes.Triangles) {\n        return BufferUsage.LinesFromTriangles;\n      }\n\n      return BufferUsage.LinesFromStrips;\n    }\n\n    if (i === PrimitiveTypes.Triangles) {\n      return BufferUsage.Triangles;\n    }\n\n    if (i === PrimitiveTypes.TriangleStrips) {\n      return BufferUsage.Strips;\n    }\n\n    if (i === PrimitiveTypes.TriangleEdges) {\n      return BufferUsage.LinesFromTriangles;\n    } // only strip edges left which are lines\n\n\n    return BufferUsage.LinesFromStrips;\n  };\n\n  publicAPI.getHashFromUsage = function (usage) {\n    return \"pt\".concat(usage);\n  };\n\n  publicAPI.getTopologyFromUsage = function (usage) {\n    switch (usage) {\n      case BufferUsage.Triangles:\n        return 'triangle-list';\n\n      case BufferUsage.Verts:\n        return 'point-list';\n\n      case BufferUsage.Lines:\n      default:\n        return 'line-list';\n    }\n  };\n\n  publicAPI.buildVertexInput = function (pd, cells, primType) {\n    var actor = model.WebGPUActor.getRenderable();\n    var representation = actor.getProperty().getRepresentation();\n    var device = model.WebGPURenderWindow.getDevice();\n    var edges = false;\n\n    if (primType === PrimitiveTypes.TriangleEdges) {\n      edges = true;\n      representation = Representation.WIREFRAME;\n    }\n\n    var vertexInput = model.primitives[primType].getVertexInput();\n    var hash = \"R\".concat(representation, \"P\").concat(primType); // hash = all things that can change the values on the buffer\n    // since mtimes are unique we can use\n    // - cells mtime - because cells drive how we pack\n    // - rep (point/wireframe/surface) - again because of packing\n    // - relevant dataArray mtime - the source data\n    // - shift - not currently captured\n    // - scale - not currently captured\n    // - format\n    // - usage\n    // - packExtra - covered by format\n    // - prim type (vert/lines/polys/strips) - covered by cells mtime\n    // points\n\n    var points = pd.getPoints();\n\n    if (points) {\n      var shift = model.WebGPUActor.getBufferShift(model.WebGPURenderer);\n      var buffRequest = {\n        owner: points,\n        usage: BufferUsage.PointArray,\n        format: 'float32x4',\n        time: Math.max(points.getMTime(), cells.getMTime(), model.WebGPUActor.getKeyMatricesTime().getMTime()),\n        hash: hash,\n        dataArray: points,\n        cells: cells,\n        primitiveType: primType,\n        representation: representation,\n        shift: shift,\n        packExtra: true\n      };\n      var buff = device.getBufferManager().getBuffer(buffRequest);\n      vertexInput.addBuffer(buff, ['vertexBC']);\n    } else {\n      vertexInput.removeBufferIfPresent('vertexBC');\n    } // normals, only used for surface rendering\n\n\n    var usage = publicAPI.getUsage(representation, primType);\n\n    if (usage === BufferUsage.Triangles || usage === BufferUsage.Strips) {\n      var normals = pd.getPointData().getNormals();\n      var _buffRequest = {\n        format: 'snorm8x4',\n        hash: hash,\n        cells: cells,\n        representation: representation,\n        primitiveType: primType,\n        packExtra: true,\n        shift: 0,\n        scale: 127\n      };\n\n      if (normals) {\n        _buffRequest.owner = normals;\n        _buffRequest.dataArray = normals;\n        _buffRequest.time = Math.max(normals.getMTime(), cells.getMTime());\n        _buffRequest.usage = BufferUsage.PointArray;\n\n        var _buff = device.getBufferManager().getBuffer(_buffRequest);\n\n        vertexInput.addBuffer(_buff, ['normalMC']);\n      } else if (primType === PrimitiveTypes.Triangles) {\n        _buffRequest.owner = points;\n        _buffRequest.dataArray = points;\n        _buffRequest.time = Math.max(points.getMTime(), cells.getMTime());\n        _buffRequest.usage = BufferUsage.NormalsFromPoints;\n\n        var _buff2 = device.getBufferManager().getBuffer(_buffRequest);\n\n        vertexInput.addBuffer(_buff2, ['normalMC']);\n      } else {\n        vertexInput.removeBufferIfPresent('normalMC');\n      }\n    } else {\n      vertexInput.removeBufferIfPresent('normalMC');\n    } // deal with colors but only if modified\n\n\n    var haveColors = false;\n\n    if (model.renderable.getScalarVisibility()) {\n      var c = model.renderable.getColorMapColors();\n\n      if (c && !edges) {\n        var scalarMode = model.renderable.getScalarMode();\n        var haveCellScalars = false; // We must figure out how the scalars should be mapped to the polydata.\n\n        if ((scalarMode === ScalarMode.USE_CELL_DATA || scalarMode === ScalarMode.USE_CELL_FIELD_DATA || scalarMode === ScalarMode.USE_FIELD_DATA || !pd.getPointData().getScalars()) && scalarMode !== ScalarMode.USE_POINT_FIELD_DATA && c) {\n          haveCellScalars = true;\n        }\n\n        var _buffRequest2 = {\n          owner: c,\n          usage: BufferUsage.PointArray,\n          format: 'unorm8x4',\n          time: Math.max(c.getMTime(), cells.getMTime(), points.getMTime()),\n          hash: hash + haveCellScalars,\n          dataArray: c,\n          cells: cells,\n          primitiveType: primType,\n          representation: representation,\n          cellData: haveCellScalars,\n          cellOffset: 0\n        };\n\n        var _buff3 = device.getBufferManager().getBuffer(_buffRequest2);\n\n        vertexInput.addBuffer(_buff3, ['colorVI']);\n        haveColors = true;\n      }\n    }\n\n    if (!haveColors) {\n      vertexInput.removeBufferIfPresent('colorVI');\n    }\n\n    var tcoords = null;\n\n    if (model.renderable.getInterpolateScalarsBeforeMapping() && model.renderable.getColorCoordinates()) {\n      tcoords = model.renderable.getColorCoordinates();\n    } else {\n      tcoords = pd.getPointData().getTCoords();\n    }\n\n    if (tcoords && !edges) {\n      var _buffRequest3 = {\n        owner: tcoords,\n        usage: BufferUsage.PointArray,\n        format: 'float32x2',\n        time: Math.max(tcoords.getMTime(), cells.getMTime()),\n        hash: hash,\n        dataArray: tcoords,\n        cells: cells,\n        primitiveType: primType,\n        representation: representation\n      };\n\n      var _buff4 = device.getBufferManager().getBuffer(_buffRequest3);\n\n      vertexInput.addBuffer(_buff4, ['tcoord']);\n    } else {\n      vertexInput.removeBufferIfPresent('tcoord');\n    }\n  };\n\n  publicAPI.updateTextures = function () {\n    // we keep track of new and used textures so\n    // that we can clean up any unused textures so we don't hold onto them\n    var usedTextures = [];\n    var newTextures = []; // do we have a scalar color texture\n\n    var idata = model.renderable.getColorTextureMap(); // returns an imagedata\n\n    if (idata) {\n      if (!model.colorTexture) {\n        model.colorTexture = _Core_Texture_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance({\n          label: 'polyDataColor'\n        });\n      }\n\n      model.colorTexture.setInputData(idata);\n      newTextures.push(model.colorTexture);\n    } // actor textures?\n\n\n    var actor = model.WebGPUActor.getRenderable();\n    var textures = actor.getTextures();\n\n    for (var i = 0; i < textures.length; i++) {\n      if (textures[i].getInputData() || textures[i].getJsImageData() || textures[i].getCanvas()) {\n        newTextures.push(textures[i]);\n      }\n\n      if (textures[i].getImage() && textures[i].getImageLoaded()) {\n        newTextures.push(textures[i]);\n      }\n    }\n\n    var usedCount = 0;\n\n    for (var _i = 0; _i < newTextures.length; _i++) {\n      var srcTexture = newTextures[_i];\n      var treq = {\n        time: srcTexture.getMTime()\n      };\n\n      if (srcTexture.getInputData()) {\n        treq.imageData = srcTexture.getInputData();\n        treq.owner = treq.imageData.getPointData().getScalars();\n      } else if (srcTexture.getImage()) {\n        treq.image = srcTexture.getImage();\n        treq.owner = treq.image;\n      } else if (srcTexture.getJsImageData()) {\n        treq.jsImageData = srcTexture.getJsImageData();\n        treq.owner = treq.jsImageData;\n      } else if (srcTexture.getCanvas()) {\n        treq.canvas = srcTexture.getCanvas();\n        treq.owner = treq.canvas;\n      }\n\n      var newTex = model.device.getTextureManager().getTexture(treq);\n\n      if (newTex.getReady()) {\n        // is this a new texture\n        var found = false;\n\n        for (var t = 0; t < model.textures.length; t++) {\n          if (model.textures[t] === newTex) {\n            usedCount++;\n            found = true;\n            usedTextures[t] = true;\n          }\n        }\n\n        if (!found) {\n          usedTextures[model.textures.length] = true;\n          var tview = newTex.createView(\"Texture\".concat(usedCount++));\n          model.textures.push(newTex);\n          model.textureViews.push(tview);\n          var interpolate = srcTexture.getInterpolate() ? 'linear' : 'nearest';\n          tview.addSampler(model.device, {\n            minFilter: interpolate,\n            magFilter: interpolate\n          });\n        }\n      }\n    } // remove unused textures\n\n\n    for (var _i2 = model.textures.length - 1; _i2 >= 0; _i2--) {\n      if (!usedTextures[_i2]) {\n        model.textures.splice(_i2, 1);\n        model.textureViews.splice(_i2, 1);\n      }\n    }\n  }; // compute a unique hash for a pipeline, this needs to be unique enough to\n  // capture any pipeline code changes (which includes shader changes)\n  // or vertex input changes/ bind groups/ etc\n\n\n  publicAPI.computePipelineHash = function (vertexInput, usage, edges) {\n    var pipelineHash = 'pd';\n\n    if (edges) {\n      pipelineHash += 'edge';\n    } else {\n      if (vertexInput.hasAttribute(\"normalMC\")) {\n        pipelineHash += \"n\";\n      }\n\n      if (vertexInput.hasAttribute(\"colorVI\")) {\n        pipelineHash += \"c\";\n      }\n\n      if (vertexInput.hasAttribute(\"tcoord\")) {\n        pipelineHash += \"t\";\n      }\n\n      if (model.textures.length) {\n        pipelineHash += \"tx\".concat(model.textures.length);\n      }\n    }\n\n    if (model.SSBO) {\n      pipelineHash += \"ssbo\";\n    }\n\n    var uhash = publicAPI.getHashFromUsage(usage);\n    pipelineHash += uhash;\n    pipelineHash += model.renderEncoder.getPipelineHash();\n    return pipelineHash;\n  }; // was originally buildIBOs() but not using IBOs right now\n\n\n  publicAPI.buildPrimitives = function () {\n    var poly = model.currentInput;\n    var prims = [poly.getVerts(), poly.getLines(), poly.getPolys(), poly.getStrips()];\n    var device = model.WebGPURenderWindow.getDevice();\n    model.renderable.mapScalars(poly, 1.0); // handle textures\n\n    publicAPI.updateTextures();\n    var actor = model.WebGPUActor.getRenderable();\n    var rep = actor.getProperty().getRepresentation();\n    var edgeVisibility = actor.getProperty().getEdgeVisibility(); // handle per primitive type\n\n    for (var i = PrimitiveTypes.Points; i <= PrimitiveTypes.Triangles; i++) {\n      if (prims[i].getNumberOfValues() > 0) {\n        {\n          var usage = publicAPI.getUsage(rep, i);\n          var primHelper = model.primitives[i];\n          publicAPI.buildVertexInput(model.currentInput, prims[i], i);\n          primHelper.setPipelineHash(publicAPI.computePipelineHash(primHelper.getVertexInput(), usage, false));\n          primHelper.setTextureViews(model.textureViews);\n          primHelper.setWebGPURenderer(model.WebGPURenderer);\n          primHelper.setNumberOfInstances(1);\n          var vbo = primHelper.getVertexInput().getBuffer('vertexBC');\n          primHelper.setNumberOfVertices(vbo.getSizeInBytes() / vbo.getStrideInBytes());\n          primHelper.setTopology(publicAPI.getTopologyFromUsage(usage));\n          primHelper.build(model.renderEncoder, device);\n          primHelper.registerToDraw();\n        } // also handle edge visibility if turned on\n\n        if (edgeVisibility && rep === Representation.SURFACE && i === PrimitiveTypes.Triangles) {\n          var _primHelper = model.primitives[PrimitiveTypes.TriangleEdges];\n\n          var _usage = publicAPI.getUsage(rep, PrimitiveTypes.TriangleEdges);\n\n          publicAPI.buildVertexInput(model.currentInput, prims[PrimitiveTypes.Triangles], PrimitiveTypes.TriangleEdges);\n\n          _primHelper.setPipelineHash(publicAPI.computePipelineHash(_primHelper.getVertexInput(), _usage, true));\n\n          _primHelper.setWebGPURenderer(model.WebGPURenderer);\n\n          _primHelper.setNumberOfInstances(4);\n\n          var _vbo = _primHelper.getVertexInput().getBuffer('vertexBC');\n\n          _primHelper.setNumberOfVertices(_vbo.getSizeInBytes() / _vbo.getStrideInBytes());\n\n          _primHelper.setTopology(publicAPI.getTopologyFromUsage(_usage));\n\n          _primHelper.build(model.renderEncoder, device);\n\n          _primHelper.registerToDraw();\n        }\n      }\n    }\n  };\n\n  publicAPI.setShaderReplacement = function (name, func) {\n    for (var i = PrimitiveTypes.Start; i < PrimitiveTypes.End; i++) {\n      var sr = model.primitives[i].getShaderReplacements();\n      sr.set(name, func);\n    }\n  };\n\n  publicAPI.setFragmentShaderTemplate = function (val) {\n    model.fragmentShaderTemplate = val;\n\n    for (var i = PrimitiveTypes.Start; i < PrimitiveTypes.End; i++) {\n      model.primitives[i].setFragmentShaderTemplate(val);\n    }\n  };\n\n  publicAPI.setVertexShaderTemplate = function (val) {\n    model.fragmentShaderTemplate = val;\n\n    for (var i = PrimitiveTypes.Start; i < PrimitiveTypes.End; i++) {\n      model.primitives[i].setVertexShaderTemplate(val);\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  colorTexture: null,\n  renderEncoder: null,\n  textures: null,\n  textureViews: null,\n  primitives: null,\n  tmpMat4: null,\n  fragmentShaderTemplate: null,\n  vertexShaderTemplate: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].extend(publicAPI, model, initialValues);\n  model.tmpMat3 = gl_matrix__WEBPACK_IMPORTED_MODULE_10__.identity(new Float64Array(9));\n  model.tmpMat4 = gl_matrix__WEBPACK_IMPORTED_MODULE_11__.identity(new Float64Array(16));\n  model.fragmentShaderTemplate = model.fragmentShaderTemplate || vtkWebGPUPolyDataFS;\n  model.vertexShaderTemplate = model.vertexShaderTemplate || vtkWebGPUPolyDataVS;\n  model.UBO = _UniformBuffer_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance({\n    label: 'mapperUBO'\n  });\n  model.UBO.addEntry('BCWCMatrix', 'mat4x4<f32>');\n  model.UBO.addEntry('BCSCMatrix', 'mat4x4<f32>');\n  model.UBO.addEntry('MCWCNormals', 'mat4x4<f32>');\n  model.UBO.addEntry('AmbientColor', 'vec4<f32>');\n  model.UBO.addEntry('DiffuseColor', 'vec4<f32>');\n  model.UBO.addEntry('EdgeColor', 'vec4<f32>');\n  model.UBO.addEntry('AmbientIntensity', 'f32');\n  model.UBO.addEntry('DiffuseIntensity', 'f32');\n  model.UBO.addEntry('SpecularColor', 'vec4<f32>');\n  model.UBO.addEntry('SpecularIntensity', 'f32');\n  model.UBO.addEntry('Opacity', 'f32');\n  model.UBO.addEntry('SpecularPower', 'f32');\n  model.UBO.addEntry('PropID', 'u32'); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['fragmentShaderTemplate', 'vertexShaderTemplate', 'UBO']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['renderEncoder']);\n  model.textures = [];\n  model.textureViews = [];\n  model.primitives = []; // Object methods\n\n  vtkWebGPUPolyDataMapper(publicAPI, model);\n\n  for (var i = PrimitiveTypes.Start; i < PrimitiveTypes.End; i++) {\n    model.primitives[i] = _MapperHelper_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance();\n    model.primitives[i].setUBO(model.UBO);\n    model.primitives[i].setVertexShaderTemplate(publicAPI.getVertexShaderTemplate());\n    model.primitives[i].setFragmentShaderTemplate(publicAPI.getFragmentShaderTemplate());\n  }\n\n  publicAPI.setShaderReplacement('replaceShaderPosition', publicAPI.replaceShaderPosition);\n  publicAPI.setShaderReplacement('replaceShaderLight', publicAPI.replaceShaderLight);\n  publicAPI.setShaderReplacement('replaceShaderTCoord', publicAPI.replaceShaderTCoord);\n  publicAPI.setShaderReplacement('replaceShaderNormal', publicAPI.replaceShaderNormal);\n  publicAPI.setShaderReplacement('replaceShaderSelect', publicAPI.replaceShaderSelect);\n  publicAPI.setShaderReplacement('replaceShaderColor', publicAPI.replaceShaderColor);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkWebGPUPolyDataMapper'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUPolyDataMapper$1 = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to WebGPU backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_9__.registerOverride)('vtkMapper', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/PolyDataMapper.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderEncoder.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderEncoder.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPURenderEncoder$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n\n\n\nvar forwarded = ['setBindGroup', 'setVertexBuffer', 'draw']; // ----------------------------------------------------------------------------\n// vtkWebGPURenderEncoder methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPURenderEncoder(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPURenderEncoder');\n\n  publicAPI.begin = function (encoder) {\n    model.handle = encoder.beginRenderPass(model.description);\n\n    if (model.label) {\n      model.handle.pushDebugGroup(model.label);\n    }\n  };\n\n  publicAPI.end = function () {\n    if (model.label) {\n      model.handle.popDebugGroup();\n    }\n\n    model.handle.end();\n  };\n\n  publicAPI.setPipeline = function (pl) {\n    model.handle.setPipeline(pl.getHandle());\n    var pd = pl.getPipelineDescription(); // check attachment state\n\n    if (model.colorTextureViews.length !== pd.fragment.targets.length) {\n      console.log(\"mismatched attachment counts on pipeline \".concat(pd.fragment.targets.length, \" while encoder has \").concat(model.colorTextureViews.length));\n      console.trace();\n    } else {\n      for (var i = 0; i < model.colorTextureViews.length; i++) {\n        var fmt = model.colorTextureViews[i].getTexture().getFormat();\n\n        if (fmt !== pd.fragment.targets[i].format) {\n          console.log(\"mismatched attachments for attachment \".concat(i, \" on pipeline \").concat(pd.fragment.targets[i].format, \" while encoder has \").concat(fmt));\n          console.trace();\n        }\n      }\n    } // check depth buffer\n\n\n    if (!model.depthTextureView !== !('depthStencil' in pd)) {\n      console.log('mismatched depth attachments');\n      console.trace();\n    } else if (model.depthTextureView) {\n      var dfmt = model.depthTextureView.getTexture().getFormat();\n\n      if (dfmt !== pd.depthStencil.format) {\n        console.log(\"mismatched depth attachments on pipeline \".concat(pd.depthStencil.format, \" while encoder has \").concat(dfmt));\n        console.trace();\n      }\n    }\n\n    model.boundPipeline = pl;\n  };\n\n  publicAPI.replaceShaderCode = function (pipeline) {\n    model.replaceShaderCodeFunction(pipeline);\n  };\n\n  publicAPI.setColorTextureView = function (idx, view) {\n    if (model.colorTextureViews[idx] === view) {\n      return;\n    }\n\n    model.colorTextureViews[idx] = view;\n  };\n\n  publicAPI.activateBindGroup = function (bg) {\n    var device = model.boundPipeline.getDevice();\n    var midx = model.boundPipeline.getBindGroupLayoutCount(bg.getLabel());\n    model.handle.setBindGroup(midx, bg.getBindGroup(device)); // verify bind group layout matches\n\n    var bgl1 = device.getBindGroupLayoutDescription(bg.getBindGroupLayout(device));\n    var bgl2 = device.getBindGroupLayoutDescription(model.boundPipeline.getBindGroupLayout(midx));\n\n    if (bgl1 !== bgl2) {\n      console.log(\"renderEncoder \".concat(model.pipelineHash, \" mismatched bind group layouts bind group has\\n\").concat(bgl1, \"\\n versus pipeline\\n\").concat(bgl2, \"\\n\"));\n      console.trace();\n    }\n  };\n\n  publicAPI.attachTextureViews = function () {\n    // for each texture create a view if we do not already have one\n    for (var i = 0; i < model.colorTextureViews.length; i++) {\n      if (!model.description.colorAttachments[i]) {\n        model.description.colorAttachments[i] = {\n          view: model.colorTextureViews[i].getHandle()\n        };\n      } else {\n        model.description.colorAttachments[i].view = model.colorTextureViews[i].getHandle();\n      }\n    }\n\n    if (model.depthTextureView) {\n      model.description.depthStencilAttachment.view = model.depthTextureView.getHandle();\n    }\n  }; // simple forwarders\n\n\n  var _loop = function _loop(i) {\n    publicAPI[forwarded[i]] = function () {\n      var _model$handle;\n\n      return (_model$handle = model.handle)[forwarded[i]].apply(_model$handle, arguments);\n    };\n  };\n\n  for (var i = 0; i < forwarded.length; i++) {\n    _loop(i);\n  }\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  description: null,\n  handle: null,\n  boundPipeline: null,\n  pipelineHash: null,\n  pipelineSettings: null,\n  replaceShaderCodeFunction: null,\n  depthTextureView: null,\n  label: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(publicAPI, model);\n  model.description = {\n    colorAttachments: [{\n      view: undefined,\n      loadOp: 'load',\n      storeOp: 'store'\n    }],\n    depthStencilAttachment: {\n      view: undefined,\n      depthLoadOp: 'clear',\n      depthClearValue: 0.0,\n      depthStoreOp: 'store'\n    }\n  }; // default shader code just writes out the computedColor\n\n  model.replaceShaderCodeFunction = function (pipeline) {\n    var fDesc = pipeline.getShaderDescription('fragment');\n    fDesc.addOutput('vec4<f32>', 'outColor');\n    var code = fDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor = computedColor;']).result;\n    fDesc.setCode(code);\n  }; // default pipeline settings\n\n\n  model.pipelineSettings = {\n    primitive: {\n      cullMode: 'none'\n    },\n    depthStencil: {\n      depthWriteEnabled: true,\n      depthCompare: 'greater-equal',\n      format: 'depth32float'\n    },\n    fragment: {\n      targets: [{\n        format: 'bgra8unorm',\n        blend: {\n          color: {\n            srcFactor: 'src-alpha',\n            dstFactor: 'one-minus-src-alpha'\n          },\n          alpha: {\n            srcfactor: 'one',\n            dstFactor: 'one-minus-src-alpha'\n          }\n        }\n      }]\n    }\n  };\n  model.colorTextureViews = [];\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['boundPipeline', 'colorTextureViews']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['depthTextureView', 'description', 'handle', 'label', 'pipelineHash', 'pipelineSettings', 'replaceShaderCodeFunction']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkWebGPURenderEncoder(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkWebGPURenderEncoder'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPURenderEncoder$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderEncoder.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderWindow.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderWindow.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkRenderWindow),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_RenderWindow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/RenderWindow.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/RenderWindow.js\");\n/* harmony import */ var _ForwardPass_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ForwardPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ForwardPass.js\");\n/* harmony import */ var _Buffer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Buffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Buffer.js\");\n/* harmony import */ var _Device_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Device.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Device.js\");\n/* harmony import */ var _HardwareSelector_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./HardwareSelector.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/HardwareSelector.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js\");\n/* harmony import */ var _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../SceneGraph/RenderPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js\");\n/* harmony import */ var _SceneGraph_RenderWindowViewNode_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../SceneGraph/RenderWindowViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderWindowViewNode.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].vtkErrorMacro; // const IS_CHROME = navigator.userAgent.indexOf('Chrome') !== -1;\n\nvar SCREENSHOT_PLACEHOLDER = {\n  position: 'absolute',\n  top: 0,\n  left: 0,\n  width: '100%',\n  height: '100%'\n}; // ----------------------------------------------------------------------------\n// vtkWebGPURenderWindow methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPURenderWindow(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPURenderWindow');\n\n  publicAPI.getViewNodeFactory = function () {\n    return model.myFactory;\n  }; // Auto update style\n\n\n  var previousSize = [0, 0];\n\n  function updateWindow() {\n    // Canvas size\n    if (model.renderable) {\n      if (model.size[0] !== previousSize[0] || model.size[1] !== previousSize[1]) {\n        previousSize[0] = model.size[0];\n        previousSize[1] = model.size[1];\n        model.canvas.setAttribute('width', model.size[0]);\n        model.canvas.setAttribute('height', model.size[1]);\n        publicAPI.recreateSwapChain();\n      }\n    } // ImageStream size\n\n\n    if (model.viewStream) {\n      // If same size that's a NoOp\n      model.viewStream.setSize(model.size[0], model.size[1]);\n    } // Offscreen ?\n\n\n    model.canvas.style.display = model.useOffScreen ? 'none' : 'block'; // Cursor type\n\n    if (model.el) {\n      model.el.style.cursor = model.cursorVisibility ? model.cursor : 'none';\n    } // Invalidate cached DOM container size\n\n\n    model.containerSize = null;\n  }\n\n  publicAPI.onModified(updateWindow);\n\n  publicAPI.recreateSwapChain = function () {\n    if (model.context) {\n      model.context.unconfigure();\n      var presentationFormat = model.context.getPreferredFormat(model.adapter);\n      /* eslint-disable no-undef */\n\n      /* eslint-disable no-bitwise */\n\n      model.context.configure({\n        device: model.device.getHandle(),\n        format: presentationFormat,\n        usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_DST,\n        size: model.size\n      });\n      model._configured = true;\n    }\n  };\n\n  publicAPI.getCurrentTexture = function () {\n    return model.context.getCurrentTexture();\n  }; // Builds myself.\n\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      if (!model.renderable) {\n        return;\n      }\n\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNodes(model.renderable.getRenderersByReference());\n      publicAPI.removeUnusedNodes();\n      publicAPI.initialize();\n    } else if (model.initialized) {\n      if (!model._configured) {\n        publicAPI.recreateSwapChain();\n      }\n\n      model.commandEncoder = model.device.createCommandEncoder();\n    }\n  }; // publicAPI.traverseRenderers = (renPass) => {\n  //   // iterate over renderers\n  //   const numlayers = publicAPI.getRenderable().getNumberOfLayers();\n  //   const renderers = publicAPI.getChildren();\n  //   for (let i = 0; i < numlayers; i++) {\n  //     for (let index = 0; index < renderers.length; index++) {\n  //       const renNode = renderers[index];\n  //       const ren = publicAPI.getRenderable().getRenderers()[index];\n  //       if (ren.getDraw() && ren.getLayer() === i) {\n  //         renNode.traverse(renPass);\n  //       }\n  //     }\n  //   }\n  // };\n\n\n  publicAPI.initialize = function () {\n    if (!model.initializing) {\n      model.initializing = true;\n\n      if (!navigator.gpu) {\n        vtkErrorMacro('WebGPU is not enabled.');\n        return;\n      }\n\n      publicAPI.create3DContextAsync().then(function () {\n        model.initialized = true;\n\n        if (model.deleted) {\n          return;\n        }\n\n        publicAPI.invokeInitialized();\n      });\n    }\n  };\n\n  publicAPI.setContainer = function (el) {\n    if (model.el && model.el !== el) {\n      if (model.canvas.parentNode !== model.el) {\n        vtkErrorMacro('Error: canvas parent node does not match container');\n      } // Remove canvas from previous container\n\n\n      model.el.removeChild(model.canvas); // If the renderer has previously added\n      // a background image, remove it from the DOM.\n\n      if (model.el.contains(model.bgImage)) {\n        model.el.removeChild(model.bgImage);\n      }\n    }\n\n    if (model.el !== el) {\n      model.el = el;\n\n      if (model.el) {\n        model.el.appendChild(model.canvas); // If the renderer is set to use a background\n        // image, attach it to the DOM.\n\n        if (model.useBackgroundImage) {\n          model.el.appendChild(model.bgImage);\n        }\n      } // Trigger modified()\n\n\n      publicAPI.modified();\n    }\n  };\n\n  publicAPI.getContainer = function () {\n    return model.el;\n  };\n\n  publicAPI.getContainerSize = function () {\n    if (!model.containerSize && model.el) {\n      var _model$el$getBounding = model.el.getBoundingClientRect(),\n          width = _model$el$getBounding.width,\n          height = _model$el$getBounding.height;\n\n      model.containerSize = [width, height];\n    }\n\n    return model.containerSize || model.size;\n  };\n\n  publicAPI.getFramebufferSize = function () {\n    return model.size;\n  };\n\n  publicAPI.create3DContextAsync = /*#__PURE__*/(0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee() {\n    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            _context.next = 2;\n            return navigator.gpu.requestAdapter({\n              powerPreference: 'high-performance'\n            });\n\n          case 2:\n            model.adapter = _context.sent;\n\n            if (!model.deleted) {\n              _context.next = 5;\n              break;\n            }\n\n            return _context.abrupt(\"return\");\n\n          case 5:\n            // console.log([...model.adapter.features]);\n            model.device = _Device_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance();\n            _context.t0 = model.device;\n            _context.next = 9;\n            return model.adapter.requestDevice();\n\n          case 9:\n            _context.t1 = _context.sent;\n\n            _context.t0.initialize.call(_context.t0, _context.t1);\n\n            if (!model.deleted) {\n              _context.next = 14;\n              break;\n            }\n\n            model.device = null;\n            return _context.abrupt(\"return\");\n\n          case 14:\n            // model.device.getHandle().lost.then((info) => {\n            //   console.log(`${info.message}`);\n            //   publicAPI.releaseGraphicsResources();\n            // });\n            model.context = model.canvas.getContext('webgpu');\n\n          case 15:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n\n  publicAPI.releaseGraphicsResources = function () {\n    var rp = _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].newInstance();\n    rp.setCurrentOperation('Release');\n    rp.traverse(publicAPI, null);\n    model.adapter = null;\n    model.device = null;\n    model.context = null;\n    model.initialized = false;\n    model.initializing = false;\n  };\n\n  publicAPI.setBackgroundImage = function (img) {\n    model.bgImage.src = img.src;\n  };\n\n  publicAPI.setUseBackgroundImage = function (value) {\n    model.useBackgroundImage = value; // Add or remove the background image from the\n    // DOM as specified.\n\n    if (model.useBackgroundImage && !model.el.contains(model.bgImage)) {\n      model.el.appendChild(model.bgImage);\n    } else if (!model.useBackgroundImage && model.el.contains(model.bgImage)) {\n      model.el.removeChild(model.bgImage);\n    }\n  };\n\n  function getCanvasDataURL() {\n    return _getCanvasDataURL.apply(this, arguments);\n  }\n\n  function _getCanvasDataURL() {\n    _getCanvasDataURL = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee3() {\n      var format,\n          temporaryCanvas,\n          temporaryContext,\n          result,\n          imageData,\n          mainBoundingClientRect,\n          renderWindow,\n          renderers,\n          screenshot,\n          _args3 = arguments;\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee3$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              format = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : model.imageFormat;\n              // Copy current canvas to not modify the original\n              temporaryCanvas = document.createElement('canvas');\n              temporaryContext = temporaryCanvas.getContext('2d');\n              temporaryCanvas.width = model.canvas.width;\n              temporaryCanvas.height = model.canvas.height;\n              _context3.next = 7;\n              return publicAPI.getPixelsAsync();\n\n            case 7:\n              result = _context3.sent;\n              imageData = new ImageData(result.colorValues, result.width, result.height); // temporaryCanvas.putImageData(imageData, 0, 0);\n\n              temporaryContext.putImageData(imageData, 0, 0); // Get current client rect to place canvas\n\n              mainBoundingClientRect = model.canvas.getBoundingClientRect();\n              renderWindow = model.renderable;\n              renderers = renderWindow.getRenderers();\n              renderers.forEach(function (renderer) {\n                var viewProps = renderer.getViewProps();\n                viewProps.forEach(function (viewProp) {\n                  // Check if the prop has a container that should have canvas\n                  if (viewProp.getContainer) {\n                    var container = viewProp.getContainer();\n                    var canvasList = container.getElementsByTagName('canvas'); // Go throughout all canvas and copy it into temporary main canvas\n\n                    for (var i = 0; i < canvasList.length; i++) {\n                      var currentCanvas = canvasList[i];\n                      var boundingClientRect = currentCanvas.getBoundingClientRect();\n                      var newXPosition = boundingClientRect.x - mainBoundingClientRect.x;\n                      var newYPosition = boundingClientRect.y - mainBoundingClientRect.y;\n                      temporaryContext.drawImage(currentCanvas, newXPosition, newYPosition);\n                    }\n                  }\n                });\n              });\n              screenshot = temporaryCanvas.toDataURL(format);\n              temporaryCanvas.remove();\n              publicAPI.invokeImageReady(screenshot);\n\n            case 17:\n            case \"end\":\n              return _context3.stop();\n          }\n        }\n      }, _callee3);\n    }));\n    return _getCanvasDataURL.apply(this, arguments);\n  }\n\n  publicAPI.captureNextImage = function () {\n    var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'image/png';\n\n    var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n        _ref2$resetCamera = _ref2.resetCamera,\n        resetCamera = _ref2$resetCamera === void 0 ? false : _ref2$resetCamera,\n        _ref2$size = _ref2.size,\n        size = _ref2$size === void 0 ? null : _ref2$size,\n        _ref2$scale = _ref2.scale,\n        scale = _ref2$scale === void 0 ? 1 : _ref2$scale;\n\n    if (model.deleted) {\n      return null;\n    }\n\n    model.imageFormat = format;\n    var previous = model.notifyStartCaptureImage;\n    model.notifyStartCaptureImage = true;\n    model._screenshot = {\n      size: !!size || scale !== 1 ? size || model.size.map(function (val) {\n        return val * scale;\n      }) : null\n    };\n    return new Promise(function (resolve, reject) {\n      var subscription = publicAPI.onImageReady(function (imageURL) {\n        if (model._screenshot.size === null) {\n          model.notifyStartCaptureImage = previous;\n          subscription.unsubscribe();\n\n          if (model._screenshot.placeHolder) {\n            // resize the main canvas back to its original size and show it\n            model.size = model._screenshot.originalSize; // process the resize\n\n            publicAPI.modified(); // restore the saved camera parameters, if applicable\n\n            if (model._screenshot.cameras) {\n              model._screenshot.cameras.forEach(function (_ref3) {\n                var restoreParamsFn = _ref3.restoreParamsFn,\n                    arg = _ref3.arg;\n                return restoreParamsFn(arg);\n              });\n            } // Trigger a render at the original size\n\n\n            publicAPI.traverseAllPasses(); // Remove and clean up the placeholder, revealing the original\n\n            model.el.removeChild(model._screenshot.placeHolder);\n\n            model._screenshot.placeHolder.remove();\n\n            model._screenshot = null;\n          }\n\n          resolve(imageURL);\n        } else {\n          // Create a placeholder image overlay while we resize and render\n          var tmpImg = document.createElement('img');\n          tmpImg.style = SCREENSHOT_PLACEHOLDER;\n          tmpImg.src = imageURL;\n          model._screenshot.placeHolder = model.el.appendChild(tmpImg); // hide the main canvas\n\n          model.canvas.style.display = 'none'; // remember the main canvas original size, then resize it\n\n          model._screenshot.originalSize = model.size;\n          model.size = model._screenshot.size;\n          model._screenshot.size = null; // process the resize\n\n          publicAPI.modified();\n\n          if (resetCamera) {\n            var isUserResetCamera = resetCamera !== true; // If resetCamera was requested, we first save camera parameters\n            // from all the renderers, so we can restore them later\n\n            model._screenshot.cameras = model.renderable.getRenderers().map(function (renderer) {\n              var camera = renderer.getActiveCamera();\n              var params = camera.get('focalPoint', 'position', 'parallelScale');\n              return {\n                resetCameraArgs: isUserResetCamera ? {\n                  renderer: renderer\n                } : undefined,\n                resetCameraFn: isUserResetCamera ? resetCamera : renderer.resetCamera,\n                restoreParamsFn: camera.set,\n                // \"clone\" the params so we don't keep refs to properties\n                arg: JSON.parse(JSON.stringify(params))\n              };\n            }); // Perform the resetCamera() on each renderer only after capturing\n            // the params from all active cameras, in case there happen to be\n            // linked cameras among the renderers.\n\n            model._screenshot.cameras.forEach(function (_ref4) {\n              var resetCameraFn = _ref4.resetCameraFn,\n                  resetCameraArgs = _ref4.resetCameraArgs;\n              return resetCameraFn(resetCameraArgs);\n            });\n          } // Trigger a render at the custom size\n\n\n          publicAPI.traverseAllPasses();\n        }\n      });\n    });\n  };\n\n  publicAPI.traverseAllPasses = function () {\n    if (model.deleted) {\n      return;\n    } // if we are not initialized then we call initialize\n    // which is async so we will not actually get a render\n    // so we queue up another traverse for when we are initialized\n\n\n    if (!model.initialized) {\n      publicAPI.initialize();\n      var subscription = publicAPI.onInitialized(function () {\n        subscription.unsubscribe();\n        publicAPI.traverseAllPasses();\n      });\n    } else {\n      if (model.renderPasses) {\n        for (var index = 0; index < model.renderPasses.length; ++index) {\n          model.renderPasses[index].traverse(publicAPI, null);\n        }\n      }\n\n      if (model.commandEncoder) {\n        model.device.submitCommandEncoder(model.commandEncoder);\n        model.commandEncoder = null;\n\n        if (model.notifyStartCaptureImage) {\n          model.device.onSubmittedWorkDone().then(function () {\n            getCanvasDataURL();\n          });\n        }\n      }\n    }\n  };\n\n  publicAPI.setViewStream = function (stream) {\n    if (model.viewStream === stream) {\n      return false;\n    }\n\n    if (model.subscription) {\n      model.subscription.unsubscribe();\n      model.subscription = null;\n    }\n\n    model.viewStream = stream;\n\n    if (model.viewStream) {\n      // Force background to be transparent + render\n      var mainRenderer = model.renderable.getRenderers()[0];\n      mainRenderer.getBackgroundByReference()[3] = 0; // Enable display of the background image\n\n      publicAPI.setUseBackgroundImage(true); // Bind to remote stream\n\n      model.subscription = model.viewStream.onImageReady(function (e) {\n        return publicAPI.setBackgroundImage(e.image);\n      });\n      model.viewStream.setSize(model.size[0], model.size[1]);\n      model.viewStream.invalidateCache();\n      model.viewStream.render();\n      publicAPI.modified();\n    }\n\n    return true;\n  };\n\n  publicAPI.getUniquePropID = function () {\n    return model.nextPropID++;\n  };\n\n  publicAPI.getPropFromID = function (id) {\n    for (var i = 0; i < model.children.length; i++) {\n      var res = model.children[i].getPropFromID(id);\n\n      if (res !== null) {\n        return res;\n      }\n    }\n\n    return null;\n  };\n\n  publicAPI.getPixelsAsync = /*#__PURE__*/(0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2() {\n    var device, texture, result, colorBuffer, cmdEnc, cLoad, tmparray, y, x, doffset, soffset;\n    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            device = model.device;\n            texture = model.renderPasses[0].getOpaquePass().getColorTexture(); // as this is async we really don't want to store things in\n            // the class as multiple calls may start before resolving\n            // so anything specific to this request gets put into the\n            // result object (by value in most cases)\n\n            result = {\n              width: texture.getWidth(),\n              height: texture.getHeight()\n            }; // must be a multiple of 256 bytes, so 64 texels with rgba8\n\n            result.colorBufferWidth = 64 * Math.floor((result.width + 63) / 64);\n            result.colorBufferSizeInBytes = result.colorBufferWidth * result.height * 4;\n            colorBuffer = _Buffer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance();\n            colorBuffer.setDevice(device);\n            /* eslint-disable no-bitwise */\n\n            /* eslint-disable no-undef */\n\n            colorBuffer.create(result.colorBufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);\n            /* eslint-enable no-bitwise */\n\n            /* eslint-enable no-undef */\n\n            cmdEnc = model.device.createCommandEncoder();\n            cmdEnc.copyTextureToBuffer({\n              texture: texture.getHandle()\n            }, {\n              buffer: colorBuffer.getHandle(),\n              bytesPerRow: 4 * result.colorBufferWidth,\n              rowsPerImage: result.height\n            }, {\n              width: result.width,\n              height: result.height,\n              depthOrArrayLayers: 1\n            });\n            device.submitCommandEncoder(cmdEnc);\n            /* eslint-disable no-undef */\n\n            cLoad = colorBuffer.mapAsync(GPUMapMode.READ);\n            _context2.next = 14;\n            return cLoad;\n\n          case 14:\n            /* eslint-enable no-undef */\n            result.colorValues = new Uint8ClampedArray(colorBuffer.getMappedRange().slice());\n            colorBuffer.unmap(); // repack the array\n\n            tmparray = new Uint8ClampedArray(result.height * result.width * 4);\n\n            for (y = 0; y < result.height; y++) {\n              for (x = 0; x < result.width; x++) {\n                doffset = (y * result.width + x) * 4;\n                soffset = (y * result.colorBufferWidth + x) * 4;\n                tmparray[doffset] = result.colorValues[soffset + 2];\n                tmparray[doffset + 1] = result.colorValues[soffset + 1];\n                tmparray[doffset + 2] = result.colorValues[soffset];\n                tmparray[doffset + 3] = result.colorValues[soffset + 3];\n              }\n            }\n\n            result.colorValues = tmparray;\n            return _context2.abrupt(\"return\", result);\n\n          case 20:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2);\n  }));\n\n  publicAPI.createSelector = function () {\n    var ret = _HardwareSelector_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance();\n    ret.setWebGPURenderWindow(publicAPI);\n    return ret;\n  };\n\n  publicAPI.delete = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].chain(publicAPI.delete, publicAPI.setViewStream);\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  initialized: false,\n  context: null,\n  adapter: null,\n  device: null,\n  canvas: null,\n  cursorVisibility: true,\n  cursor: 'pointer',\n  containerSize: null,\n  renderPasses: [],\n  notifyStartCaptureImage: false,\n  imageFormat: 'image/png',\n  useOffScreen: false,\n  useBackgroundImage: false,\n  nextPropID: 1,\n  xrSupported: false\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Create internal instances\n\n  model.canvas = document.createElement('canvas');\n  model.canvas.style.width = '100%'; // Create internal bgImage\n\n  model.bgImage = new Image();\n  model.bgImage.style.position = 'absolute';\n  model.bgImage.style.left = '0';\n  model.bgImage.style.top = '0';\n  model.bgImage.style.width = '100%';\n  model.bgImage.style.height = '100%';\n  model.bgImage.style.zIndex = '-1'; // Inheritance\n\n  _SceneGraph_RenderWindowViewNode_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"].extend(publicAPI, model, initialValues);\n  model.myFactory = _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance();\n  /* eslint-disable no-use-before-define */\n\n  model.myFactory.registerOverride('vtkRenderWindow', newInstance);\n  /* eslint-enable no-use-before-define */\n  // setup default forward pass rendering\n\n  model.renderPasses[0] = _ForwardPass_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance();\n\n  if (!model.selector) {\n    model.selector = _HardwareSelector_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance();\n    model.selector.setWebGPURenderWindow(publicAPI);\n  }\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].event(publicAPI, model, 'imageReady');\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].event(publicAPI, model, 'initialized'); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(publicAPI, model, ['commandEncoder', 'device', 'useBackgroundImage', 'xrSupported']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setGet(publicAPI, model, ['initialized', 'context', 'canvas', 'device', 'renderPasses', 'notifyStartCaptureImage', 'cursor', 'useOffScreen']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setGetArray(publicAPI, model, ['size'], 2); // Object methods\n\n  vtkWebGPURenderWindow(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance(extend, 'vtkWebGPURenderWindow'); // ----------------------------------------------------------------------------\n// Register API specific RenderWindow implementation\n// ----------------------------------------------------------------------------\n\n(0,_Core_RenderWindow_js__WEBPACK_IMPORTED_MODULE_3__.registerViewConstructor)('WebGPU', newInstance); // ----------------------------------------------------------------------------\n\nvar vtkRenderWindow = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderWindow.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/Renderer.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/Renderer.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _BindGroup_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BindGroup.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BindGroup.js\");\n/* harmony import */ var _FullScreenQuad_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FullScreenQuad.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/FullScreenQuad.js\");\n/* harmony import */ var _UniformBuffer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./UniformBuffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/UniformBuffer.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js\");\n\n\n\n\n\n\n\n\nvar vtkDebugMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkDebugMacro;\nvar clearFragTemplate = \"\\n//VTK::Renderer::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@stage(fragment)\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var computedColor: vec4<f32> = mapperUBO.BackgroundColor;\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n\"; // ----------------------------------------------------------------------------\n// vtkWebGPURenderer methods\n// ----------------------------------------------------------------------------\n\n/* eslint-disable no-bitwise */\n\nfunction vtkWebGPURenderer(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPURenderer'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      if (!model.renderable) {\n        return;\n      }\n\n      model.camera = model.renderable.getActiveCamera();\n      publicAPI.updateLights();\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNode(model.camera);\n      publicAPI.addMissingNodes(model.renderable.getViewPropsWithNestedProps());\n      publicAPI.removeUnusedNodes();\n      model.webgpuCamera = publicAPI.getViewNodeFor(model.camera);\n      publicAPI.updateStabilizedMatrix();\n    }\n  };\n\n  publicAPI.updateStabilizedMatrix = function () {\n    // This method is designed to help with floating point\n    // issues when rendering datasets that push the limits of\n    // resolutions on float.\n    //\n    // One of the most common cases is when the dataset is located far\n    // away from the origin relative to the clipping range we are looking\n    // at. For that case we want to perform the floating point sensitive\n    // multiplications on the CPU in double. To this end we want the\n    // vertex rendering ops to look something like\n    //\n    // Compute shifted points and load those into the VBO\n    // pointCoordsSC = WorldToStabilizedMatrix * pointCoords;\n    //\n    // In the vertex shader do the following\n    // positionVC = StabilizedToDeviceMatrix * ModelToStabilizedMatrix*vertexIn;\n    //\n    // We use two matrices because it is expensive to change the\n    // WorldToStabilized matrix as we have to reupload all pointCoords\n    // So that matrix (MCSCMatrix) is fairly static, the Stabilized to\n    // Device matrix is the one that gets updated every time the camera\n    // changes.\n    //\n    // The basic idea is that we should translate the data so that\n    // when the center of the view frustum moves a lot\n    // we recenter it. The center of the view frustum is roughly\n    // camPos + dirOfProj*(far + near)*0.5\n    var clipRange = model.camera.getClippingRange();\n    var pos = model.camera.getPositionByReference();\n    var dop = model.camera.getDirectionOfProjectionByReference();\n    var center = [];\n    var offset = [];\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.scale(offset, dop, 0.5 * (clipRange[0] + clipRange[1]));\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.add(center, pos, offset);\n    gl_matrix__WEBPACK_IMPORTED_MODULE_6__.sub(offset, center, model.stabilizedCenter);\n    var length = gl_matrix__WEBPACK_IMPORTED_MODULE_6__.len(offset);\n\n    if (length / (clipRange[1] - clipRange[0]) > model.recenterThreshold) {\n      model.stabilizedCenter = center;\n      model.stabilizedTime.modified();\n    }\n  };\n\n  publicAPI.updateLights = function () {\n    var count = 0;\n    var lights = model.renderable.getLightsByReference();\n\n    for (var index = 0; index < lights.length; ++index) {\n      if (lights[index].getSwitch() > 0.0) {\n        count++;\n      }\n    }\n\n    if (!count) {\n      vtkDebugMacro('No lights are on, creating one.');\n      model.renderable.createLight();\n    }\n\n    return count;\n  }; // register pipeline callbacks from a mapper\n\n\n  publicAPI.registerPipelineCallback = function (pipeline, cb) {\n    // if there is a matching pipeline just add the cb\n    for (var i = 0; i < model.pipelineCallbacks.length; i++) {\n      if (model.pipelineCallbacks[i].pipeline === pipeline) {\n        model.pipelineCallbacks[i].callbacks.push(cb);\n        return;\n      }\n    }\n\n    model.pipelineCallbacks.push({\n      pipeline: pipeline,\n      callbacks: [cb]\n    });\n  };\n\n  publicAPI.updateUBO = function () {\n    // make sure the data is up to date\n    // has the camera changed?\n    var utime = model.UBO.getSendTime();\n\n    if (model._parent.getMTime() > utime || publicAPI.getMTime() > utime || model.camera.getMTime() > utime || model.renderable.getMTime() > utime) {\n      var keyMats = model.webgpuCamera.getKeyMatrices(publicAPI);\n      model.UBO.setArray('WCVCMatrix', keyMats.wcvc);\n      model.UBO.setArray('SCPCMatrix', keyMats.scpc);\n      model.UBO.setArray('PCSCMatrix', keyMats.pcsc);\n      model.UBO.setArray('SCVCMatrix', keyMats.scvc);\n      model.UBO.setArray('VCPCMatrix', keyMats.vcpc);\n      model.UBO.setArray('WCVCNormals', keyMats.normalMatrix);\n      var tsize = publicAPI.getYInvertedTiledSizeAndOrigin();\n      model.UBO.setArray('viewportSize', [tsize.usize, tsize.vsize]);\n      model.UBO.setValue('cameraParallel', model.camera.getParallelProjection());\n\n      var device = model._parent.getDevice();\n\n      model.UBO.sendIfNeeded(device);\n    }\n  };\n\n  publicAPI.scissorAndViewport = function (encoder) {\n    var tsize = publicAPI.getYInvertedTiledSizeAndOrigin();\n    encoder.getHandle().setViewport(tsize.lowerLeftU, tsize.lowerLeftV, tsize.usize, tsize.vsize, 0.0, 1.0); // set scissor\n\n    encoder.getHandle().setScissorRect(tsize.lowerLeftU, tsize.lowerLeftV, tsize.usize, tsize.vsize);\n  };\n\n  publicAPI.bindUBO = function (renderEncoder) {\n    renderEncoder.activateBindGroup(model.bindGroup);\n  }; // Renders myself\n\n\n  publicAPI.opaquePass = function (prepass) {\n    if (prepass) {\n      // clear last pipelines\n      model.pipelineCallbacks = [];\n      model.renderEncoder.begin(model._parent.getCommandEncoder());\n      publicAPI.updateUBO();\n    } else {\n      publicAPI.scissorAndViewport(model.renderEncoder);\n      publicAPI.clear(); // loop over registered pipelines\n\n      for (var i = 0; i < model.pipelineCallbacks.length; i++) {\n        var pStruct = model.pipelineCallbacks[i];\n        var pl = pStruct.pipeline;\n        model.renderEncoder.setPipeline(pl);\n        publicAPI.bindUBO(model.renderEncoder);\n\n        for (var cb = 0; cb < pStruct.callbacks.length; cb++) {\n          pStruct.callbacks[cb](model.renderEncoder);\n        }\n      }\n\n      model.renderEncoder.end();\n    }\n  };\n\n  publicAPI.clear = function () {\n    if (model.renderable.getTransparent() || model.suppressClear) {\n      return;\n    }\n\n    var device = model._parent.getDevice();\n\n    if (!model.clearFSQ) {\n      model.clearFSQ = _FullScreenQuad_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance();\n      model.clearFSQ.setDevice(device);\n      model.clearFSQ.setPipelineHash('clearfsq');\n      model.clearFSQ.setFragmentShaderTemplate(clearFragTemplate);\n      var ubo = _UniformBuffer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance({\n        label: 'mapperUBO'\n      });\n      ubo.addEntry('BackgroundColor', 'vec4<f32>');\n      model.clearFSQ.setUBO(ubo);\n    }\n\n    var background = model.renderable.getBackgroundByReference();\n    model.clearFSQ.getUBO().setArray('BackgroundColor', background);\n    model.clearFSQ.getUBO().sendIfNeeded(device);\n    model.clearFSQ.render(model.renderEncoder, device);\n  };\n\n  publicAPI.translucentPass = function (prepass) {\n    if (prepass) {\n      // clear last pipelines\n      model.pipelineCallbacks = [];\n      model.renderEncoder.begin(model._parent.getCommandEncoder());\n    } else {\n      publicAPI.scissorAndViewport(model.renderEncoder); // loop over registered pipelines\n\n      for (var i = 0; i < model.pipelineCallbacks.length; i++) {\n        var pStruct = model.pipelineCallbacks[i];\n        var pl = pStruct.pipeline;\n        model.renderEncoder.setPipeline(pl);\n        publicAPI.bindUBO(model.renderEncoder);\n\n        for (var cb = 0; cb < pStruct.callbacks.length; cb++) {\n          pStruct.callbacks[cb](model.renderEncoder);\n        }\n      }\n\n      model.renderEncoder.end();\n    }\n  };\n\n  publicAPI.volumeDepthRangePass = function (prepass) {\n    if (prepass) {\n      // clear last pipelines\n      model.pipelineCallbacks = [];\n      model.renderEncoder.begin(model._parent.getCommandEncoder());\n    } else {\n      publicAPI.scissorAndViewport(model.renderEncoder); // loop over registered pipelines\n\n      for (var i = 0; i < model.pipelineCallbacks.length; i++) {\n        var pStruct = model.pipelineCallbacks[i];\n        var pl = pStruct.pipeline;\n        model.renderEncoder.setPipeline(pl);\n        publicAPI.bindUBO(model.renderEncoder);\n\n        for (var cb = 0; cb < pStruct.callbacks.length; cb++) {\n          pStruct.callbacks[cb](model.renderEncoder);\n        }\n      }\n\n      model.renderEncoder.end();\n    }\n  };\n\n  publicAPI.getAspectRatio = function () {\n    var size = model._parent.getSizeByReference();\n\n    var viewport = model.renderable.getViewportByReference();\n    return size[0] * (viewport[2] - viewport[0]) / ((viewport[3] - viewport[1]) * size[1]);\n  };\n\n  publicAPI.convertToOpenGLDepth = function (val) {\n    return model.webgpuCamera.convertToOpenGLDepth(val);\n  };\n\n  publicAPI.getYInvertedTiledSizeAndOrigin = function () {\n    var res = publicAPI.getTiledSizeAndOrigin();\n\n    var size = model._parent.getSizeByReference();\n\n    res.lowerLeftV = size[1] - res.vsize - res.lowerLeftV;\n    return res;\n  };\n\n  publicAPI.getTiledSizeAndOrigin = function () {\n    var vport = model.renderable.getViewportByReference(); // if there is no window assume 0 1\n\n    var tileViewPort = [0.0, 0.0, 1.0, 1.0]; // find the lower left corner of the viewport, taking into account the\n    // lower left boundary of this tile\n\n    var vpu = vport[0] - tileViewPort[0];\n    var vpv = vport[1] - tileViewPort[1]; // store the result as a pixel value\n\n    var ndvp = model._parent.normalizedDisplayToDisplay(vpu, vpv);\n\n    var lowerLeftU = Math.round(ndvp[0]);\n    var lowerLeftV = Math.round(ndvp[1]); // find the upper right corner of the viewport, taking into account the\n    // lower left boundary of this tile\n\n    var vpu2 = vport[2] - tileViewPort[0];\n    var vpv2 = vport[3] - tileViewPort[1];\n\n    var ndvp2 = model._parent.normalizedDisplayToDisplay(vpu2, vpv2); // now compute the size of the intersection of the viewport with the\n    // current tile\n\n\n    var usize = Math.round(ndvp2[0]) - lowerLeftU;\n    var vsize = Math.round(ndvp2[1]) - lowerLeftV;\n\n    if (usize < 0) {\n      usize = 0;\n    }\n\n    if (vsize < 0) {\n      vsize = 0;\n    }\n\n    return {\n      usize: usize,\n      vsize: vsize,\n      lowerLeftU: lowerLeftU,\n      lowerLeftV: lowerLeftV\n    };\n  };\n\n  publicAPI.getPropFromID = function (id) {\n    for (var i = 0; i < model.children.length; i++) {\n      var res = model.children[i].getPropID ? model.children[i].getPropID() : -1;\n\n      if (res === id) {\n        return model.children[i];\n      }\n    }\n\n    return null;\n  };\n\n  publicAPI.getStabilizedTime = function () {\n    return model.stabilizedTime.getMTime();\n  };\n\n  publicAPI.releaseGraphicsResources = function () {\n    if (model.selector !== null) {\n      model.selector.releaseGraphicsResources();\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  bindGroup: null,\n  selector: null,\n  renderEncoder: null,\n  recenterThreshold: 20.0,\n  suppressClear: false,\n  stabilizedCenter: [0.0, 0.0, 0.0]\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues);\n  model.UBO = _UniformBuffer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance({\n    label: 'rendererUBO'\n  });\n  model.UBO.addEntry('WCVCMatrix', 'mat4x4<f32>');\n  model.UBO.addEntry('SCPCMatrix', 'mat4x4<f32>');\n  model.UBO.addEntry('PCSCMatrix', 'mat4x4<f32>');\n  model.UBO.addEntry('SCVCMatrix', 'mat4x4<f32>');\n  model.UBO.addEntry('VCPCMatrix', 'mat4x4<f32>');\n  model.UBO.addEntry('WCVCNormals', 'mat4x4<f32>');\n  model.UBO.addEntry('viewportSize', 'vec2<f32>');\n  model.UBO.addEntry('cameraParallel', 'u32');\n  model.bindGroup = _BindGroup_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance({\n    label: 'rendererBG'\n  });\n  model.bindGroup.setBindables([model.UBO]);\n  model.tmpMat4 = gl_matrix__WEBPACK_IMPORTED_MODULE_7__.identity(new Float64Array(16));\n  model.stabilizedTime = {};\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(model.stabilizedTime, {\n    mtime: 0\n  }); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.get)(publicAPI, model, ['bindGroup', 'stabilizedTime']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.getArray)(publicAPI, model, ['stabilizedCenter']);\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['renderEncoder', 'selector', 'suppressClear', 'UBO']); // Object methods\n\n  vtkWebGPURenderer(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkWebGPURenderer'); // ----------------------------------------------------------------------------\n\nvar index = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to WebGPU backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_5__.registerOverride)('vtkRenderer', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/Renderer.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/Sampler.js":
/*!******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/Sampler.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUSampler$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n/* eslint-disable no-bitwise */\n// ----------------------------------------------------------------------------\n// vtkWebGPUSampler methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUSampler(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUSampler');\n\n  publicAPI.create = function (device) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    model.device = device;\n    model.options.magFilter = options.magFilter ? options.magFilter : 'nearest';\n    model.options.minFilter = options.minFilter ? options.minFilter : 'nearest';\n    model.options.label = model.label;\n    model.handle = model.device.getHandle().createSampler(model.options);\n    model.bindGroupTime.modified();\n  };\n\n  publicAPI.getShaderCode = function (binding, group) {\n    var result = \"@binding(\".concat(binding, \") @group(\").concat(group, \") var \").concat(model.label, \": sampler;\");\n    return result;\n  };\n\n  publicAPI.getBindGroupEntry = function () {\n    var foo = {\n      resource: model.handle\n    };\n    return foo;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  device: null,\n  handle: null,\n  label: null,\n  options: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  model.options = {};\n  model.bindGroupLayoutEntry = {\n    /* eslint-disable no-undef */\n    visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,\n\n    /* eslint-enable no-undef */\n    sampler: {// type: 'filtering',\n    }\n  };\n  model.bindGroupTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.bindGroupTime, {\n    mtime: 0\n  });\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['bindGroupTime', 'handle', 'options']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['bindGroupLayoutEntry', 'device', 'label']);\n  vtkWebGPUSampler(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUSampler$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/Sampler.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/ScalarBarActor.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/ScalarBarActor.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Core_ScalarBarActor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/ScalarBarActor.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/ScalarBarActor.js\");\n/* harmony import */ var _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SceneGraph/ViewNode.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNode.js\");\n/* harmony import */ var _ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js\");\n\n\n\n\n\n// vtkWebGPUScalarBarActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUScalarBarActor(publicAPI, model) {\n  model.classHierarchy.push('vtkWebGPUScalarBarActor'); // Builds myself.\n\n  publicAPI.buildPass = function (prepass) {\n    if (prepass) {\n      model.WebGPURenderer = publicAPI.getFirstAncestorOfType('vtkWebGPURenderer');\n      model.WebGPURenderWindow = model.WebGPURenderer.getParent();\n\n      if (!model.scalarBarActorHelper.getRenderable()) {\n        model.scalarBarActorHelper.setRenderable(model.renderable);\n      }\n\n      publicAPI.prepareNodes();\n      publicAPI.addMissingNode(model.scalarBarActorHelper.getBarActor());\n      publicAPI.addMissingNode(model.scalarBarActorHelper.getTmActor());\n      publicAPI.removeUnusedNodes();\n    }\n  };\n\n  publicAPI.opaquePass = function (prepass, renderPass) {\n    if (prepass) {\n      var camera = model.WebGPURenderer ? model.WebGPURenderer.getRenderable().getActiveCamera() : null;\n      var tsize = model.WebGPURenderer.getTiledSizeAndOrigin();\n      model.scalarBarActorHelper.updateAPISpecificData([tsize.usize, tsize.vsize], camera, model.WebGPURenderWindow.getRenderable());\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _SceneGraph_ViewNode_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  model.scalarBarActorHelper = _Core_ScalarBarActor_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newScalarBarActorHelper(); // Object methods\n\n  vtkWebGPUScalarBarActor(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkWebGPUScalarBarActor'); // ----------------------------------------------------------------------------\n\nvar index = {\n  newInstance: newInstance,\n  extend: extend\n}; // Register ourself to WebGPU backend if imported\n\n(0,_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_3__.registerOverride)('vtkScalarBarActor', newInstance);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/ScalarBarActor.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUShaderCache$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _ShaderModule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShaderModule.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderModule.js\");\n\n\n\n// this is useful for building up shader strings which typically involve\n// lots of string substitutions. Return true if a substitution was done.\n\nfunction substitute(source, search, replace) {\n  var all = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n  var replaceStr = Array.isArray(replace) ? replace.join('\\n') : replace;\n  var replaced = false;\n\n  if (source.search(search) !== -1) {\n    replaced = true;\n  }\n\n  var gflag = '';\n\n  if (all) {\n    gflag = 'g';\n  }\n\n  var regex = new RegExp(search, gflag);\n  var resultstr = source.replace(regex, replaceStr);\n  return {\n    replace: replaced,\n    result: resultstr\n  };\n} // ----------------------------------------------------------------------------\n// vtkWebGPUShaderCache methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkWebGPUShaderCache(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUShaderCache');\n\n  publicAPI.getShaderModule = function (shaderDesc) {\n    // has it already been created?\n    var sType = shaderDesc.getType();\n    var sHash = shaderDesc.getHash();\n\n    var keys = model._shaderModules.keys();\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n\n      if (key.getHash() === sHash && key.getType() === sType) {\n        return model._shaderModules.get(key);\n      }\n    } // console.log(JSON.stringify(shaderDesc));\n\n\n    var sm = _ShaderModule_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance();\n    sm.initialize(model.device, shaderDesc);\n\n    model._shaderModules.set(shaderDesc, sm);\n\n    return sm;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  shaderModules: null,\n  device: null,\n  window: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Internal objects\n\n  model._shaderModules = new Map(); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['device', 'window']); // Object methods\n\n  vtkWebGPUShaderCache(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUShaderCache'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUShaderCache$1 = {\n  newInstance: newInstance,\n  extend: extend,\n  substitute: substitute\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderDescription.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderDescription.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUShaderDescription$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n\n\n\n// vtkWebGPUShaderDescription methods\n// ----------------------------------------------------------------------------\n// shader description\n\nfunction vtkWebGPUShaderDescription(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUShaderDescription');\n\n  publicAPI.hasOutput = function (name) {\n    return model.outputNames.includes(name);\n  };\n\n  publicAPI.addOutput = function (type, name) {\n    var interpolation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n    model.outputTypes.push(type);\n    model.outputNames.push(name);\n    model.outputInterpolations.push(interpolation);\n  };\n\n  publicAPI.addBuiltinOutput = function (type, name) {\n    model.builtinOutputTypes.push(type);\n    model.builtinOutputNames.push(name);\n  };\n\n  publicAPI.addBuiltinInput = function (type, name) {\n    model.builtinInputTypes.push(type);\n    model.builtinInputNames.push(name);\n  }; // perform shader replacements for the input and outputs\n  // of this shader. That includes vertex inputs if specified\n\n\n  publicAPI.replaceShaderCode = function (priorStage, vertexInput) {\n    var inputImpl = [];\n    var iodec = [];\n\n    if (vertexInput) {\n      inputImpl.push(vertexInput.getShaderCode());\n    }\n\n    if (priorStage || model.builtinInputNames.length) {\n      var inputStruct = [];\n      inputStruct.push(\"struct \".concat(model.type, \"Input\\n{\"));\n\n      if (priorStage) {\n        var inputNames = priorStage.getOutputNamesByReference();\n        var inputTypes = priorStage.getOutputTypesByReference();\n        var inputInterpolations = priorStage.getOutputInterpolationsByReference();\n\n        for (var i = 0; i < inputNames.length; i++) {\n          if (inputInterpolations[i] !== undefined) {\n            inputStruct.push(\"  @location(\".concat(i, \") @interpolate(\").concat(inputInterpolations[i], \") \").concat(inputNames[i], \" : \").concat(inputTypes[i], \";\"));\n          } else {\n            inputStruct.push(\"  @location(\".concat(i, \") \").concat(inputNames[i], \" : \").concat(inputTypes[i], \";\"));\n          }\n        }\n      }\n\n      for (var _i = 0; _i < model.builtinInputNames.length; _i++) {\n        inputStruct.push(\"  \".concat(model.builtinInputNames[_i], \" : \").concat(model.builtinInputTypes[_i], \";\"));\n      }\n\n      if (inputStruct.length > 1) {\n        inputStruct.push('};');\n        iodec = inputStruct;\n        inputImpl[inputImpl.length - 1] += ',';\n        inputImpl.push(\"input: \".concat(model.type, \"Input\"));\n      }\n    }\n\n    if (inputImpl.length) {\n      model.code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].substitute(model.code, '//VTK::IOStructs::Input', inputImpl).result;\n    }\n\n    if (model.outputNames.length + model.builtinOutputNames.length) {\n      var outputStruct = [\"struct \".concat(model.type, \"Output\\n{\")];\n\n      for (var _i2 = 0; _i2 < model.outputNames.length; _i2++) {\n        if (model.outputInterpolations[_i2] !== undefined) {\n          outputStruct.push(\"  @location(\".concat(_i2, \") @interpolate(\").concat(model.outputInterpolations[_i2], \") \").concat(model.outputNames[_i2], \" : \").concat(model.outputTypes[_i2], \";\"));\n        } else {\n          outputStruct.push(\"  @location(\".concat(_i2, \") \").concat(model.outputNames[_i2], \" : \").concat(model.outputTypes[_i2], \";\"));\n        }\n      }\n\n      for (var _i3 = 0; _i3 < model.builtinOutputNames.length; _i3++) {\n        outputStruct.push(\"  \".concat(model.builtinOutputNames[_i3], \" : \").concat(model.builtinOutputTypes[_i3], \";\"));\n      }\n\n      outputStruct.push('};');\n      iodec = iodec.concat(outputStruct);\n      model.code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].substitute(model.code, '//VTK::IOStructs::Output', [\"-> \".concat(model.type, \"Output\")]).result;\n    }\n\n    model.code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].substitute(model.code, '//VTK::IOStructs::Dec', iodec).result;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  type: null,\n  // 'vertex' or 'fragment'\n  hash: null,\n  code: null,\n  outputNames: null,\n  outputTypes: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues);\n  model.outputNames = [];\n  model.outputTypes = [];\n  model.outputInterpolations = [];\n  model.builtinOutputNames = [];\n  model.builtinOutputTypes = [];\n  model.builtinInputNames = [];\n  model.builtinInputTypes = []; // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['type', 'hash', 'code']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getArray(publicAPI, model, ['outputTypes', 'outputNames', 'outputInterpolations']); // Object methods\n\n  vtkWebGPUShaderDescription(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUShaderDescription'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUShaderDescription$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderDescription.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderModule.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderModule.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUShaderModule$1)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n// vtkWebGPUShaderModule methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUShaderModule(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUShaderModule');\n\n  publicAPI.initialize = function (device, shaderDesc) {\n    model.device = device; // console.log(shaderDesc.getCode());\n\n    model.handle = model.device.getHandle().createShaderModule({\n      code: shaderDesc.getCode()\n    });\n  }; // publicAPI.setLastCameraMTime = (mtime) => {\n  //   model.lastCameraMTime = mtime;\n  // };\n\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  device: null,\n  handle: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['lastCameraMTime']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['device', 'handle']); // Object methods\n\n  vtkWebGPUShaderModule(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUShaderModule'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUShaderModule$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderModule.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/StorageBuffer.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/StorageBuffer.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUStorageBuffer$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _BufferManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BufferManager.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager.js\");\n/* harmony import */ var _Types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Types.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js\");\n\n\n\n\nvar BufferUsage = _BufferManager_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].BufferUsage;\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].vtkErrorMacro; // ----------------------------------------------------------------------------\n// vtkWebGPUStorageBuffer - similar to the UniformBuffer class\n// but YOU are responsible for layout issues and alignment.\n// The order you add entries is the order they will be layed out\n// in memory. But you must follow layout rules.\n// ----------------------------------------------------------------------------\n// ----------------------------------------------------------------------------\n// vtkWebGPUStorageBuffer methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUStorageBuffer(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUStorageBuffer');\n\n  publicAPI.addEntry = function (name, type) {\n    if (model._bufferEntryNames.has(name)) {\n      vtkErrorMacro(\"entry named \".concat(name, \" already exists\"));\n      return;\n    }\n\n    model._bufferEntryNames.set(name, model.bufferEntries.length);\n\n    var sizeInBytes = _Types_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getByteStrideFromShaderFormat(type);\n    model.bufferEntries.push({\n      name: name,\n      type: type,\n      sizeInBytes: sizeInBytes,\n      offset: model.sizeInBytes,\n      nativeType: _Types_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getNativeTypeFromShaderFormat(type)\n    });\n    model.sizeInBytes += sizeInBytes;\n  };\n\n  publicAPI.send = function (device) {\n    if (!model._buffer) {\n      var req = {\n        nativeArray: model.Float32Array,\n        time: 0,\n        usage: BufferUsage.Storage,\n        label: model.label\n      };\n      model._buffer = device.getBufferManager().getBuffer(req);\n      model.bindGroupTime.modified();\n\n      model._sendTime.modified();\n\n      return;\n    }\n\n    device.getHandle().queue.writeBuffer(model._buffer.getHandle(), 0, model.arrayBuffer, 0, model.sizeInBytes * model.numberOfInstances);\n\n    model._sendTime.modified();\n  };\n\n  publicAPI.createView = function (type) {\n    if (type in model === false) {\n      if (!model.arrayBuffer) {\n        model.arrayBuffer = new ArrayBuffer(model.sizeInBytes * model.numberOfInstances);\n      }\n\n      model[type] = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newTypedArray(type, model.arrayBuffer);\n    }\n  };\n\n  publicAPI.setValue = function (name, instance, val) {\n    var idx = model._bufferEntryNames.get(name);\n\n    if (idx === undefined) {\n      vtkErrorMacro(\"entry named \".concat(name, \" not found in UBO\"));\n      return;\n    }\n\n    var entry = model.bufferEntries[idx];\n    publicAPI.createView(entry.nativeType);\n    var view = model[entry.nativeType];\n    view[(entry.offset + instance * model.sizeInBytes) / view.BYTES_PER_ELEMENT] = val;\n  };\n\n  publicAPI.setArray = function (name, instance, arr) {\n    var idx = model._bufferEntryNames.get(name);\n\n    if (idx === undefined) {\n      vtkErrorMacro(\"entry named \".concat(name, \" not found in UBO\"));\n      return;\n    }\n\n    var entry = model.bufferEntries[idx];\n    publicAPI.createView(entry.nativeType);\n    var view = model[entry.nativeType];\n    var ioffset = (entry.offset + instance * model.sizeInBytes) / view.BYTES_PER_ELEMENT;\n\n    for (var i = 0; i < arr.length; i++) {\n      view[ioffset + i] = arr[i];\n    }\n  };\n\n  publicAPI.setAllInstancesFromArray = function (name, arr) {\n    var idx = model._bufferEntryNames.get(name);\n\n    if (idx === undefined) {\n      vtkErrorMacro(\"entry named \".concat(name, \" not found in UBO\"));\n      return;\n    }\n\n    var entry = model.bufferEntries[idx];\n    publicAPI.createView(entry.nativeType);\n    var view = model[entry.nativeType];\n    var numComponents = arr.length / model.numberOfInstances;\n\n    for (var inst = 0; inst < model.numberOfInstances; inst++) {\n      var ioffset = (entry.offset + inst * model.sizeInBytes) / view.BYTES_PER_ELEMENT;\n\n      for (var i = 0; i < numComponents; i++) {\n        view[ioffset + i] = arr[inst * numComponents + i];\n      }\n    }\n  };\n\n  publicAPI.setAllInstancesFromArrayColorToFloat = function (name, arr) {\n    var idx = model._bufferEntryNames.get(name);\n\n    if (idx === undefined) {\n      vtkErrorMacro(\"entry named \".concat(name, \" not found in UBO\"));\n      return;\n    }\n\n    var entry = model.bufferEntries[idx];\n    publicAPI.createView(entry.nativeType);\n    var view = model[entry.nativeType];\n    var numComponents = arr.length / model.numberOfInstances;\n\n    for (var inst = 0; inst < model.numberOfInstances; inst++) {\n      var ioffset = (entry.offset + inst * model.sizeInBytes) / view.BYTES_PER_ELEMENT;\n\n      for (var i = 0; i < numComponents; i++) {\n        view[ioffset + i] = arr[inst * numComponents + i] / 255.0;\n      }\n    }\n  };\n\n  publicAPI.setAllInstancesFromArray3x3To4x4 = function (name, arr) {\n    var idx = model._bufferEntryNames.get(name);\n\n    if (idx === undefined) {\n      vtkErrorMacro(\"entry named \".concat(name, \" not found in UBO\"));\n      return;\n    }\n\n    var entry = model.bufferEntries[idx];\n    publicAPI.createView(entry.nativeType);\n    var view = model[entry.nativeType];\n    var numComponents = 9;\n\n    for (var inst = 0; inst < model.numberOfInstances; inst++) {\n      var ioffset = (entry.offset + inst * model.sizeInBytes) / view.BYTES_PER_ELEMENT;\n\n      for (var j = 0; j < 3; j++) {\n        for (var i = 0; i < 3; i++) {\n          view[ioffset + j * 4 + i] = arr[inst * numComponents + j * 3 + i];\n        }\n      }\n    }\n  };\n\n  publicAPI.getSendTime = function () {\n    return model._sendTime.getMTime();\n  };\n\n  publicAPI.getShaderCode = function (binding, group) {\n    var lines = [\"struct \".concat(model.label, \"StructEntry\\n{\")];\n\n    for (var i = 0; i < model.bufferEntries.length; i++) {\n      var entry = model.bufferEntries[i];\n      lines.push(\"  \".concat(entry.name, \": \").concat(entry.type, \";\"));\n    }\n\n    lines.push(\"\\n};\\nstruct \".concat(model.label, \"Struct\\n{\\n  values: array<\").concat(model.label, \"StructEntry>;\\n};\\n@binding(\").concat(binding, \") @group(\").concat(group, \") var<storage, read> \").concat(model.label, \": \").concat(model.label, \"Struct;\\n\"));\n    return lines.join('\\n');\n  };\n\n  publicAPI.getBindGroupEntry = function () {\n    var foo = {\n      resource: {\n        buffer: model._buffer.getHandle()\n      }\n    };\n    return foo;\n  };\n\n  publicAPI.clearData = function () {\n    model.numberOfInstances = 0;\n    model.sizeInBytes = 0;\n    model.bufferEntries = [];\n    model._bufferEntryNames = new Map();\n    model._buffer = null;\n    delete model.arrayBuffer;\n    delete model.Float32Array;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  bufferEntries: null,\n  bufferEntryNames: null,\n  sizeInBytes: 0,\n  label: null,\n  numberOfInstances: 1\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model); // Internal objects\n\n  model._bufferEntryNames = new Map();\n  model.bufferEntries = [];\n  model._sendTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model._sendTime, {\n    mtime: 0\n  });\n  model.bindGroupTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.bindGroupTime, {\n    mtime: 0\n  }); // default SSBO desc\n\n  model.bindGroupLayoutEntry = model.bindGroupLayoutEntry || {\n    buffer: {\n      type: 'read-only-storage'\n    }\n  };\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['bindGroupTime']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['device', 'bindGroupLayoutEntry', 'label', 'numberOfInstances', 'sizeInBytes']); // Object methods\n\n  vtkWebGPUStorageBuffer(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUStorageBuffer'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUStorageBuffer$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/StorageBuffer.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/Texture.js":
/*!******************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/Texture.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUTexture$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_HalfFloat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Common/Core/HalfFloat.js */ \"./node_modules/@kitware/vtk.js/Common/Core/HalfFloat.js\");\n/* harmony import */ var _BufferManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BufferManager.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager.js\");\n/* harmony import */ var _TextureView_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./TextureView.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/TextureView.js\");\n/* harmony import */ var _Types_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Types.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js\");\n\n\n\n\n\n\nvar BufferUsage = _BufferManager_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].BufferUsage; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n// ----------------------------------------------------------------------------\n// vtkWebGPUTexture methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUTexture(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUTexture');\n\n  publicAPI.create = function (device, options) {\n    model.device = device;\n    model.width = options.width;\n    model.height = options.height;\n    model.depth = options.depth ? options.depth : 1;\n    var dimension = model.depth === 1 ? '2d' : '3d';\n    model.format = options.format ? options.format : 'rgba8unorm';\n    /* eslint-disable no-undef */\n\n    /* eslint-disable no-bitwise */\n\n    model.usage = options.usage ? options.usage : GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST;\n    /* eslint-enable no-undef */\n\n    /* eslint-enable no-bitwise */\n\n    model.handle = model.device.getHandle().createTexture({\n      size: [model.width, model.height, model.depth],\n      format: model.format,\n      // 'rgba8unorm',\n      usage: model.usage,\n      label: model.label,\n      dimension: dimension\n    });\n  };\n\n  publicAPI.assignFromHandle = function (device, handle, options) {\n    model.device = device;\n    model.handle = handle;\n    model.width = options.width;\n    model.height = options.height;\n    model.depth = options.depth ? options.depth : 1;\n    model.format = options.format ? options.format : 'rgba8unorm';\n    /* eslint-disable no-undef */\n\n    /* eslint-disable no-bitwise */\n\n    model.usage = options.usage ? options.usage : GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST;\n    /* eslint-enable no-undef */\n\n    /* eslint-enable no-bitwise */\n  }; // set the data\n\n\n  publicAPI.writeImageData = function (req) {\n    if (req.canvas) {\n      model.device.getHandle().queue.copyExternalImageToTexture({\n        source: req.canvas,\n        flipY: req.flip\n      }, {\n        texture: model.handle,\n        premultipliedAlpha: true\n      }, [model.width, model.height, model.depth]);\n      model.ready = true;\n      return;\n    }\n\n    if (req.jsImageData && !req.nativeArray) {\n      req.width = req.jsImageData.width;\n      req.height = req.jsImageData.height;\n      req.depth = 1;\n      req.format = 'rgba8unorm';\n      req.flip = true;\n      req.nativeArray = req.jsImageData.data;\n    }\n\n    var tDetails = _Types_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getDetailsFromTextureFormat(model.format);\n    var bufferBytesPerRow = model.width * tDetails.stride;\n\n    if (req.nativeArray) {\n      // create and write the buffer\n      var buffRequest = {\n        /* eslint-disable no-undef */\n        usage: BufferUsage.Texture\n        /* eslint-enable no-undef */\n\n      };\n\n      if (req.dataArray) {\n        buffRequest.dataArray = req.dataArray;\n        buffRequest.time = req.dataArray.getMTime();\n      }\n\n      buffRequest.nativeArray = req.nativeArray; // bytesPerRow must be a multiple of 256 so we might need to rebuild\n      // the data here before passing to the buffer. e.g. if it is unorm8x4 then\n      // we need to have width be a multiple of 64\n\n      var inWidthInBytes = req.nativeArray.length / (model.height * model.depth) * req.nativeArray.BYTES_PER_ELEMENT; // is this a half float texture?\n\n      var halfFloat = tDetails.elementSize === 2 && tDetails.sampleType === 'float'; // if we need to copy the data\n\n      if (halfFloat || inWidthInBytes % 256) {\n        var inArray = req.nativeArray;\n        var inWidth = inWidthInBytes / inArray.BYTES_PER_ELEMENT;\n        var outBytesPerElement = tDetails.elementSize;\n        var outWidthInBytes = 256 * Math.floor((inWidth * outBytesPerElement + 255) / 256);\n        var outWidth = outWidthInBytes / outBytesPerElement;\n        var outArray = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newTypedArray(halfFloat ? 'Uint16Array' : inArray.constructor.name, outWidth * model.height * model.depth);\n\n        for (var v = 0; v < model.height * model.depth; v++) {\n          if (halfFloat) {\n            for (var i = 0; i < inWidth; i++) {\n              outArray[v * outWidth + i] = _Common_Core_HalfFloat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].toHalf(inArray[v * inWidth + i]);\n            }\n          } else {\n            outArray.set(inArray.subarray(v * inWidth, (v + 1) * inWidth), v * outWidth);\n          }\n        }\n\n        buffRequest.nativeArray = outArray;\n        bufferBytesPerRow = outWidthInBytes;\n      }\n\n      var buff = model.device.getBufferManager().getBuffer(buffRequest);\n      model.buffer = buff;\n    }\n\n    if (req.image) {\n      var canvas = document.createElement('canvas');\n      canvas.width = req.image.width;\n      canvas.height = req.image.height;\n      var ctx = canvas.getContext('2d');\n      ctx.translate(0, canvas.height);\n      ctx.scale(1, -1);\n      ctx.drawImage(req.image, 0, 0, req.image.width, req.image.height, 0, 0, canvas.width, canvas.height);\n      var imageData = ctx.getImageData(0, 0, req.image.width, req.image.height); // create and write the buffer\n\n      var _buffRequest = {\n        nativeArray: imageData.data,\n        time: 0,\n\n        /* eslint-disable no-undef */\n        usage: BufferUsage.Texture,\n\n        /* eslint-enable no-undef */\n        format: 'unorm8x4'\n      };\n\n      var _buff = model.device.getBufferManager().getBuffer(_buffRequest);\n\n      model.buffer = _buff;\n    } // get a buffer for the image\n\n\n    var cmdEnc = model.device.createCommandEncoder();\n    cmdEnc.copyBufferToTexture({\n      buffer: model.buffer.getHandle(),\n      offset: 0,\n      bytesPerRow: bufferBytesPerRow,\n      rowsPerImage: model.height\n    }, {\n      texture: model.handle\n    }, [model.width, model.height, model.depth]);\n    model.device.submitCommandEncoder(cmdEnc);\n    model.ready = true;\n  }; // when data is pulled out of this texture what scale must be applied to\n  // get back to the original source data. For formats such as r8unorm we\n  // have to multiply by 255.0, for formats such as r16float it is 1.0\n\n\n  publicAPI.getScale = function () {\n    var tDetails = _Types_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getDetailsFromTextureFormat(model.format);\n    var halfFloat = tDetails.elementSize === 2 && tDetails.sampleType === 'float';\n    return halfFloat ? 1.0 : 255.0;\n  };\n\n  publicAPI.getNumberOfComponents = function () {\n    var tDetails = _Types_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getDetailsFromTextureFormat(model.format);\n    return tDetails.numComponents;\n  };\n\n  publicAPI.resizeToMatch = function (tex) {\n    if (tex.getWidth() !== model.width || tex.getHeight() !== model.height || tex.getDepth() !== model.depth) {\n      model.width = tex.getWidth();\n      model.height = tex.getHeight();\n      model.depth = tex.getDepth();\n      model.handle = model.device.getHandle().createTexture({\n        size: [model.width, model.height, model.depth],\n        format: model.format,\n        usage: model.usage,\n        label: model.label\n      });\n    }\n  };\n\n  publicAPI.resize = function (width, height) {\n    var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n    if (width !== model.width || height !== model.height || depth !== model.depth) {\n      model.width = width;\n      model.height = height;\n      model.depth = depth;\n      model.handle = model.device.getHandle().createTexture({\n        size: [model.width, model.height, model.depth],\n        format: model.format,\n        usage: model.usage,\n        label: model.label\n      });\n    }\n  };\n\n  publicAPI.createView = function (label) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    // if options is missing values try to add them in\n    if (!options.dimension) {\n      options.dimension = model.depth === 1 ? '2d' : '3d';\n    }\n\n    var view = _TextureView_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance({\n      label: label\n    });\n    view.create(publicAPI, options);\n    return view;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  device: null,\n  handle: null,\n  buffer: null,\n  ready: false,\n  label: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['handle', 'ready', 'width', 'height', 'depth', 'format', 'usage']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['device', 'label']);\n  vtkWebGPUTexture(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUTexture$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/Texture.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/TextureManager.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/TextureManager.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUTextureManager$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Common/Core/DataArray.js */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Texture.js\");\n\n\n\n\nvar VtkDataTypes = _Common_Core_DataArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].VtkDataTypes; // ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n// ----------------------------------------------------------------------------\n// vtkWebGPUTextureManager methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUTextureManager(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUTextureManager'); // fills in request values based on what is missing/provided\n\n  function _fillRequest(req) {\n    // fill in values based on imageData if the request has it\n    if (req.imageData) {\n      req.dataArray = req.imageData.getPointData().getScalars();\n      req.time = req.dataArray.getMTime();\n      req.nativeArray = req.dataArray.getData();\n      var dims = req.imageData.getDimensions();\n      req.width = dims[0];\n      req.height = dims[1];\n      req.depth = dims[2];\n      var numComp = req.dataArray.getNumberOfComponents(); // todo fix handling of 3 component\n\n      switch (numComp) {\n        case 1:\n          req.format = 'r';\n          break;\n\n        case 2:\n          req.format = 'rg';\n          break;\n\n        case 3:\n        case 4:\n        default:\n          req.format = 'rgba';\n          break;\n      }\n\n      var dataType = req.dataArray.getDataType();\n\n      switch (dataType) {\n        case VtkDataTypes.UNSIGNED_CHAR:\n          req.format += '8unorm';\n          break;\n        // todo extend to other types that are not filterable\n        // as they can be useful\n\n        case VtkDataTypes.FLOAT:\n        case VtkDataTypes.UNSIGNED_INT:\n        case VtkDataTypes.INT:\n        case VtkDataTypes.DOUBLE:\n        case VtkDataTypes.UNSIGNED_SHORT:\n        case VtkDataTypes.SHORT:\n        default:\n          req.format += '16float';\n          break;\n      }\n    } // fill in values based on image if the request has it\n\n\n    if (req.image) {\n      req.width = req.image.width;\n      req.height = req.image.height;\n      req.depth = 1;\n      req.format = 'rgba8unorm';\n    } // fill in based on js imageData\n\n\n    if (req.jsImageData) {\n      req.width = req.jsImageData.width;\n      req.height = req.jsImageData.height;\n      req.depth = 1;\n      req.format = 'rgba8unorm';\n      req.flip = true;\n      req.nativeArray = req.jsImageData.data;\n    }\n\n    if (req.canvas) {\n      req.width = req.canvas.width;\n      req.height = req.canvas.height;\n      req.depth = 1;\n      req.format = 'rgba8unorm';\n      req.flip = true;\n      /* eslint-disable no-undef */\n\n      /* eslint-disable no-bitwise */\n\n      req.usage = GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT;\n      /* eslint-enable no-undef */\n\n      /* eslint-enable no-bitwise */\n    }\n  } // create a texture (used by getTexture)\n\n\n  function _createTexture(req) {\n    var newTex = _Texture_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n    newTex.create(model.device, {\n      width: req.width,\n      height: req.height,\n      depth: req.depth,\n      format: req.format,\n      usage: req.usage\n    }); // fill the texture if we have data\n\n    if (req.nativeArray || req.image || req.canvas) {\n      newTex.writeImageData(req);\n    }\n\n    return newTex;\n  } // get a texture or create it if not cached.\n  // this is the main entry point\n\n\n  publicAPI.getTexture = function (req) {\n    // if we have a source the get/create/cache the texture\n    if (req.owner) {\n      // fill out the req time and format based on imageData/image\n      _fillRequest(req); // if a matching texture already exists then return it\n\n\n      var hash = req.time + req.format;\n      return model.device.getCachedObject(req.owner, hash, _createTexture, req);\n    }\n\n    return _createTexture(req);\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  handle: null,\n  device: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['device']);\n  vtkWebGPUTextureManager(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUTextureManager$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/TextureManager.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/TextureView.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/TextureView.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUTextureView$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Sampler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Sampler.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Sampler.js\");\n/* harmony import */ var _Types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Types.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js\");\n\n\n\n\n// vtkWebGPUTextureView methods\n// ----------------------------------------------------------------------------\n\n/* eslint-disable no-bitwise */\n\nfunction vtkWebGPUTextureView(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUTextureView');\n\n  publicAPI.create = function (texture, options) {\n    model.texture = texture;\n    model.options = options;\n    model.options.dimension = model.options.dimension || '2d';\n    model.options.label = model.label;\n    model.textureHandle = texture.getHandle();\n    model.handle = model.textureHandle.createView(model.options);\n    model.bindGroupLayoutEntry.texture.viewDimension = model.options.dimension;\n    var tDetails = _Types_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getDetailsFromTextureFormat(model.texture.getFormat());\n    model.bindGroupLayoutEntry.texture.sampleType = tDetails.sampleType;\n  };\n\n  publicAPI.getBindGroupEntry = function () {\n    var foo = {\n      resource: publicAPI.getHandle()\n    };\n    return foo;\n  };\n\n  publicAPI.getShaderCode = function (binding, group) {\n    var ttype = 'f32';\n\n    if (model.bindGroupLayoutEntry.texture.sampleType === 'sint') {\n      ttype = 'i32';\n    } else if (model.bindGroupLayoutEntry.texture.sampleType === 'uint') {\n      ttype = 'u32';\n    }\n\n    var result = \"@binding(\".concat(binding, \") @group(\").concat(group, \") var \").concat(model.label, \": texture_\").concat(model.options.dimension, \"<\").concat(ttype, \">;\");\n\n    if (model.bindGroupLayoutEntry.texture.sampleType === 'depth') {\n      result = \"@binding(\".concat(binding, \") @group(\").concat(group, \") var \").concat(model.label, \": texture_depth_\").concat(model.options.dimension, \";\");\n    }\n\n    return result;\n  };\n\n  publicAPI.addSampler = function (device, options) {\n    var newSamp = _Sampler_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance({\n      label: \"\".concat(model.label, \"Sampler\")\n    });\n    newSamp.create(device, options);\n    publicAPI.setSampler(newSamp);\n  };\n\n  publicAPI.getBindGroupTime = function () {\n    // check if the handle changed\n    if (model.texture.getHandle() !== model.textureHandle) {\n      model.textureHandle = model.texture.getHandle();\n      model.handle = model.textureHandle.createView(model.options);\n      model.bindGroupTime.modified();\n    }\n\n    return model.bindGroupTime;\n  }; // if the texture has changed then get a new view\n\n\n  publicAPI.getHandle = function () {\n    if (model.texture.getHandle() !== model.textureHandle) {\n      model.textureHandle = model.texture.getHandle();\n      model.handle = model.textureHandle.createView(model.options);\n      model.bindGroupTime.modified();\n    }\n\n    return model.handle;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  texture: null,\n  handle: null,\n  sampler: null,\n  label: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(publicAPI, model);\n  model.bindGroupLayoutEntry = {\n    /* eslint-disable no-undef */\n    visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,\n\n    /* eslint-enable no-undef */\n    texture: {\n      sampleType: 'float',\n      viewDimension: '2d' // multisampled: false,\n\n    }\n  };\n  model.bindGroupTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].obj(model.bindGroupTime, {\n    mtime: 0\n  });\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(publicAPI, model, ['bindGroupTime', 'texture']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setGet(publicAPI, model, ['bindGroupLayoutEntry', 'label', 'sampler']);\n  vtkWebGPUTextureView(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUTextureView$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/TextureView.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js":
/*!****************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUTypes)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n\n\n// vtkWebGPUDevice static functions\n//\n// WebGPU uses types in a many places and calls, and often those types\n// need to be associated with byte sizes, alignments, native arrays etc.\n// The folowing methods are designed to help vtk.js introspect those types.\n// WebGPU currently tends to use multiple type formats:\n//  - buffer types such as float32x4\n//  - shader types suchs as vec4<f32>\n//  - texture types such as rgba32float\n// ----------------------------------------------------------------------------\n// see https://gpuweb.github.io/gpuweb/#texture-formats\n// for possible formats, there are a lot of them\n\nvar textureDetails = {\n  // 8-bit formats\n  r8unorm: {\n    numComponents: 1,\n    nativeType: Uint8Array,\n    stride: 1,\n    elementSize: 1,\n    sampleType: 'float'\n  },\n  r8snorm: {\n    numComponents: 1,\n    nativeType: Int8Array,\n    stride: 1,\n    elementSize: 1,\n    sampleType: 'float'\n  },\n  r8uint: {\n    numComponents: 1,\n    nativeType: Uint8Array,\n    stride: 1,\n    elementSize: 1,\n    sampleType: 'uint'\n  },\n  r8sint: {\n    numComponents: 1,\n    nativeType: Int8Array,\n    stride: 1,\n    elementSize: 1,\n    sampleType: 'sint'\n  },\n  // 16-bit formats\n  r16uint: {\n    numComponents: 1,\n    nativeType: Uint16Array,\n    stride: 2,\n    elementSize: 2,\n    sampleType: 'uint'\n  },\n  r16sint: {\n    numComponents: 1,\n    nativeType: Int16Array,\n    stride: 2,\n    elementSize: 2,\n    sampleType: 'sint'\n  },\n  r16float: {\n    numComponents: 1,\n    nativeType: Float32Array,\n    stride: 2,\n    elementSize: 2,\n    sampleType: 'float'\n  },\n  rg8unorm: {\n    numComponents: 2,\n    nativeType: Uint8Array,\n    stride: 2,\n    elementSize: 1,\n    sampleType: 'float'\n  },\n  rg8snorm: {\n    numComponents: 2,\n    nativeType: Int8Array,\n    stride: 2,\n    elementSize: 1,\n    sampleType: 'float'\n  },\n  rg8uint: {\n    numComponents: 2,\n    nativeType: Uint8Array,\n    stride: 2,\n    elementSize: 1,\n    sampleType: 'uint'\n  },\n  rg8sint: {\n    numComponents: 2,\n    nativeType: Int8Array,\n    stride: 2,\n    elementSize: 1,\n    sampleType: 'sint'\n  },\n  // 32-bit formats\n  r32uint: {\n    numComponents: 1,\n    nativeType: Uint32Array,\n    stride: 4,\n    elementSize: 4,\n    sampleType: 'uint'\n  },\n  r32sint: {\n    numComponents: 1,\n    nativeType: Int32Array,\n    stride: 4,\n    elementSize: 4,\n    sampleType: 'sint'\n  },\n  r32float: {\n    numComponents: 1,\n    nativeType: Float32Array,\n    stride: 4,\n    elementSize: 4,\n    sampleType: 'unfilterable-float'\n  },\n  rg16uint: {\n    numComponents: 2,\n    nativeType: Uint16Array,\n    stride: 4,\n    elementSize: 2,\n    sampleType: 'uint'\n  },\n  rg16sint: {\n    numComponents: 2,\n    nativeType: Int16Array,\n    stride: 4,\n    elementSize: 2,\n    sampleType: 'sint'\n  },\n  rg16float: {\n    numComponents: 2,\n    nativeType: Float32Array,\n    stride: 4,\n    elementSize: 2,\n    sampleType: 'float'\n  },\n  rgba8unorm: {\n    numComponents: 4,\n    nativeType: Uint8Array,\n    stride: 4,\n    elementSize: 1,\n    sampleType: 'float'\n  },\n  'rgba8unorm-srgb': {\n    numComponents: 4,\n    nativeType: Uint8Array,\n    stride: 4,\n    elementSize: 1,\n    sampleType: 'float'\n  },\n  rgba8snorm: {\n    numComponents: 4,\n    nativeType: Int8Array,\n    stride: 4,\n    elementSize: 1,\n    sampleType: 'float'\n  },\n  rgba8uint: {\n    numComponents: 4,\n    nativeType: Uint8Array,\n    stride: 4,\n    elementSize: 1,\n    sampleType: 'uint'\n  },\n  rgba8sint: {\n    numComponents: 4,\n    nativeType: Int8Array,\n    stride: 4,\n    elementSize: 1,\n    sampleType: 'sint'\n  },\n  bgra8unorm: {\n    numComponents: 4,\n    nativeType: Uint8Array,\n    stride: 4,\n    elementSize: 1,\n    sampleType: 'float'\n  },\n  'bgra8unorm-srgb': {\n    numComponents: 4,\n    nativeType: Uint8Array,\n    stride: 4,\n    elementSize: 1,\n    sampleType: 'float'\n  },\n  // Packed 32-bit formats\n  rgb9e5ufloat: {\n    numComponents: 4,\n    nativeType: Uint32Array,\n    stride: 4,\n    sampleType: 'float'\n  },\n  rgb10a2unorm: {\n    numComponents: 4,\n    nativeType: Uint32Array,\n    stride: 4,\n    sampleType: 'float'\n  },\n  rg11b10ufloat: {\n    numComponents: 4,\n    nativeType: Float32Array,\n    stride: 4,\n    sampleType: 'float'\n  },\n  // 64-bit formats\n  rg32uint: {\n    numComponents: 2,\n    nativeType: Uint32Array,\n    stride: 8,\n    elementSize: 4,\n    sampleType: 'uint'\n  },\n  rg32sint: {\n    numComponents: 2,\n    nativeType: Int32Array,\n    stride: 8,\n    elementSize: 4,\n    sampleType: 'sint'\n  },\n  rg32float: {\n    numComponents: 2,\n    nativeType: Float32Array,\n    stride: 8,\n    elementSize: 4,\n    sampleType: 'unfilterable-float'\n  },\n  rgba16uint: {\n    numComponents: 4,\n    nativeType: Uint16Array,\n    stride: 8,\n    elementSize: 2,\n    sampleType: 'uint'\n  },\n  rgba16sint: {\n    numComponents: 4,\n    nativeType: Int16Array,\n    stride: 8,\n    elementSize: 2,\n    sampleType: 'sint'\n  },\n  rgba16float: {\n    numComponents: 4,\n    nativeType: Float32Array,\n    stride: 8,\n    elementSize: 2,\n    sampleType: 'float'\n  },\n  // 128-bit formats\n  rgba32uint: {\n    numComponents: 4,\n    nativeType: Uint32Array,\n    stride: 16,\n    elementSize: 4,\n    sampleType: 'uint'\n  },\n  rgba32sint: {\n    numComponents: 4,\n    nativeType: Int32Array,\n    stride: 16,\n    elementSize: 4,\n    sampleType: 'sint'\n  },\n  rgba32float: {\n    numComponents: 4,\n    nativeType: Float32Array,\n    stride: 16,\n    elementSize: 4,\n    sampleType: 'unfilterable-float'\n  },\n  // Depth and stencil formats\n  stencil8: {\n    numComponents: 1,\n    nativeType: Uint8Array,\n    stride: 1,\n    elementSize: 1,\n    sampleType: 'uint'\n  },\n  depth16unorm: {\n    numComponents: 1,\n    nativeType: Uint16Array,\n    stride: 2,\n    elementSize: 2,\n    sampleType: 'depth'\n  },\n  depth24plus: {\n    numComponents: 1,\n    nativeType: Uint32Array,\n    stride: 4,\n    elementSize: 3,\n    sampleType: 'depth'\n  },\n  'depth24plus-stencil8': {\n    numComponents: 2,\n    nativeType: Uint32Array,\n    stride: 4,\n    sampleType: 'mixed'\n  },\n  depth32float: {\n    numComponents: 1,\n    nativeType: Float32Array,\n    stride: 4,\n    elementSize: 4,\n    sampleType: 'depth'\n  }\n};\n\nfunction getDetailsFromTextureFormat(format) {\n  if (!format || format.length < 6) return 0;\n\n  if (format in textureDetails === true) {\n    return textureDetails[format];\n  }\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)(\"unknown format \".concat(format));\n  return null;\n} // see https://gpuweb.github.io/gpuweb/#enumdef-gpuvertexformat\n// for possible formats\n\n\nfunction getByteStrideFromBufferFormat(format) {\n  if (!format || format.length < 5) return 0; // options are x2, x3, x4 or nothing\n\n  var numComp = 1;\n\n  if (format[format.length - 2] === 'x') {\n    numComp = format[format.length - 1];\n  }\n\n  var sizeStart = numComp === 1 ? format.length - 1 : format.length - 3; // options are 8, 16, 32 resulting in 8, 6, 2 as the last char\n  // plugged into the formula below gives 1, 2, 4 respectively\n\n  var num = Number(format[sizeStart]);\n\n  if (Number.isNaN(num)) {\n    (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)(\"unknown format \".concat(format));\n    return 0;\n  }\n\n  var typeSize = 5 - num / 2;\n  return numComp * typeSize;\n} // see https://gpuweb.github.io/gpuweb/#enumdef-gpuvertexformat\n// for possible formats\n\n\nfunction getNumberOfComponentsFromBufferFormat(format) {\n  if (!format || format.length < 5) return 0; // options are x2, x3, x4 or nothing\n\n  var numComp = 1;\n\n  if (format[format.length - 2] === 'x') {\n    numComp = format[format.length - 1];\n  }\n\n  return numComp;\n} // see https://gpuweb.github.io/gpuweb/#enumdef-gpuvertexformat\n// for possible formats\n\n\nfunction getNativeTypeFromBufferFormat(format) {\n  if (!format || format.length < 5) return 0; // raw types are Uint Int or Float as follows\n\n  var result;\n\n  if (format[0] === 'f') {\n    result = 'Float';\n  } else if (format[0] === 's') {\n    result = 'Int';\n  } else if (format[0] === 'u') {\n    result = 'Uint';\n  } else {\n    (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)(\"unknown format \".concat(format));\n    return undefined;\n  } // options are 8, 16, 32 resulting in 8, 6, 2 as the last char\n  // plugged into the formula below gives 1, 2, 4 respectively\n\n\n  var base = format.split('x')[0];\n  var num = Number(base[base.length - 1]);\n\n  if (Number.isNaN(num)) {\n    (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)(\"unknown format \".concat(format));\n    return undefined;\n  }\n\n  result += 8 * (5 - num / 2);\n  result += 'Array';\n  return result;\n}\n\nfunction getShaderTypeFromBufferFormat(format) {\n  var dataType;\n\n  if (format[0] === 'f' || format[1] === 'n') {\n    dataType = 'f32';\n  } else if (format[0] === 's' && format[1] === 'i') {\n    dataType = 'i32';\n  } else if (format[0] === 'u' && format[1] === 'i') {\n    dataType = 'u32';\n  } else {\n    (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)(\"unknown format \".concat(format));\n    return undefined;\n  } // options are x2, x3, x4 or nothing\n\n\n  var numComp = 1;\n\n  if (format[format.length - 2] === 'x') {\n    numComp = Number(format[format.length - 1]);\n  }\n\n  if (numComp === 4) return \"vec4<\".concat(dataType, \">\");\n  if (numComp === 3) return \"vec3<\".concat(dataType, \">\");\n  if (numComp === 2) return \"vec2<\".concat(dataType, \">\");\n  return dataType;\n}\n\nfunction getByteStrideFromShaderFormat(format) {\n  if (!format) return 0;\n  var numComp = 1;\n\n  if (format.substring(0, 3) === 'vec') {\n    numComp = format[3];\n  } else if (format.substring(0, 3) === 'mat') {\n    numComp = format[3] * format[5];\n  }\n\n  var typeSize = 4;\n  return numComp * typeSize;\n}\n\nfunction getNativeTypeFromShaderFormat(format) {\n  if (!format) return undefined;\n  if (format.includes('f32')) return 'Float32Array';\n  if (format.includes('i32')) return 'Int32Array';\n  if (format.includes('u32')) return 'Uint32Array';\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro)(\"unknown format \".concat(format));\n  return undefined;\n}\n\nvar vtkWebGPUTypes = {\n  getDetailsFromTextureFormat: getDetailsFromTextureFormat,\n  getByteStrideFromBufferFormat: getByteStrideFromBufferFormat,\n  getNumberOfComponentsFromBufferFormat: getNumberOfComponentsFromBufferFormat,\n  getNativeTypeFromBufferFormat: getNativeTypeFromBufferFormat,\n  getShaderTypeFromBufferFormat: getShaderTypeFromBufferFormat,\n  getByteStrideFromShaderFormat: getByteStrideFromShaderFormat,\n  getNativeTypeFromShaderFormat: getNativeTypeFromShaderFormat\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/UniformBuffer.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/UniformBuffer.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUUniformBuffer$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _BufferManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BufferManager.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager.js\");\n/* harmony import */ var _Types_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Types.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js\");\n\n\n\n\n\nvar BufferUsage = _BufferManager_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].BufferUsage;\nvar vtkErrorMacro = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].vtkErrorMacro; // ----------------------------------------------------------------------------\n// vtkWebGPUUniformBuffer methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUUniformBuffer(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUUniformBuffer');\n\n  publicAPI.addEntry = function (name, type) {\n    if (model._bufferEntryNames.has(name)) {\n      vtkErrorMacro(\"entry named \".concat(name, \" already exists\"));\n      return;\n    }\n\n    model.sortDirty = true;\n\n    model._bufferEntryNames.set(name, model.bufferEntries.length);\n\n    model.bufferEntries.push({\n      name: name,\n      type: type,\n      sizeInBytes: _Types_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getByteStrideFromShaderFormat(type),\n      offset: -1,\n      nativeType: _Types_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getNativeTypeFromShaderFormat(type),\n      packed: false\n    });\n  }; // UBOs have layout rules in terms of how memory is aligned so we\n  // have to be careful how we order the entries. For example a vec4<f32>\n  // must be aligned on a 16 byte offset, etc. See\n  // https://gpuweb.github.io/gpuweb/wgsl/#memory-layouts\n  // for more details. Right now you can create a situation that would fail\n  // in the future we could add dummy spacer entries where needed to\n  // handle alignment issues\n\n\n  publicAPI.sortBufferEntries = function () {\n    if (!model.sortDirty) {\n      return;\n    }\n\n    var currOffset = 0;\n    var newEntries = []; // compute the max alignment, this is required as WebGPU defines a UBO to have\n    // a size that is a multiple of the maxAlignment\n\n    var maxAlignment = 4;\n\n    for (var i = 0; i < model.bufferEntries.length; i++) {\n      var entry = model.bufferEntries[i];\n\n      if (entry.sizeInBytes % 16 === 0) {\n        maxAlignment = Math.max(16, maxAlignment);\n      }\n\n      if (entry.sizeInBytes % 8 === 0) {\n        maxAlignment = Math.max(8, maxAlignment);\n      }\n    } // pack anything whose size is a multiple of 16 bytes first\n    // this includes a couple types that don't require 16 byte alignment\n    // such as mat2x2<f32> but that is OK\n\n\n    for (var _i = 0; _i < model.bufferEntries.length; _i++) {\n      var _entry = model.bufferEntries[_i];\n\n      if (_entry.packed === false && _entry.sizeInBytes % 16 === 0) {\n        _entry.packed = true;\n        _entry.offset = currOffset;\n        newEntries.push(_entry);\n        currOffset += _entry.sizeInBytes;\n      }\n    } // now it gets tough, we have the following common types (f32, i32, u32)\n    // - vec2<f32> 8 byte size, 8 byte alignment\n    // - vec3<f32> 12 byte size, 16 byte alignment\n    // - f32 4 byte size, 4 byte alignment\n    // try adding 12 byte, 4 byte pairs\n\n\n    for (var _i2 = 0; _i2 < model.bufferEntries.length; _i2++) {\n      var _entry2 = model.bufferEntries[_i2];\n\n      if (_entry2.packed === false && _entry2.sizeInBytes === 12) {\n        for (var i2 = 0; i2 < model.bufferEntries.length; i2++) {\n          var entry2 = model.bufferEntries[i2];\n\n          if (entry2.packed === false && entry2.sizeInBytes === 4) {\n            _entry2.packed = true;\n            _entry2.offset = currOffset;\n            newEntries.push(_entry2);\n            currOffset += _entry2.sizeInBytes;\n            entry2.packed = true;\n            entry2.offset = currOffset;\n            newEntries.push(entry2);\n            currOffset += entry2.sizeInBytes;\n            break;\n          }\n        }\n      }\n    } // try adding 8 byte, 8 byte pairs\n\n\n    for (var _i3 = 0; _i3 < model.bufferEntries.length; _i3++) {\n      var _entry3 = model.bufferEntries[_i3];\n\n      if (!_entry3.packed && _entry3.sizeInBytes % 8 === 0) {\n        for (var _i4 = _i3 + 1; _i4 < model.bufferEntries.length; _i4++) {\n          var _entry4 = model.bufferEntries[_i4];\n\n          if (!_entry4.packed && _entry4.sizeInBytes % 8 === 0) {\n            _entry3.packed = true;\n            _entry3.offset = currOffset;\n            newEntries.push(_entry3);\n            currOffset += _entry3.sizeInBytes;\n            _entry4.packed = true;\n            _entry4.offset = currOffset;\n            newEntries.push(_entry4);\n            currOffset += _entry4.sizeInBytes;\n            break;\n          }\n        }\n      }\n    } // try adding 8 byte, 4 byte 4 byte triplets\n\n\n    for (var _i5 = 0; _i5 < model.bufferEntries.length; _i5++) {\n      var _entry5 = model.bufferEntries[_i5];\n\n      if (!_entry5.packed && _entry5.sizeInBytes % 8 === 0) {\n        var found = false;\n\n        for (var _i6 = 0; !found && _i6 < model.bufferEntries.length; _i6++) {\n          var _entry6 = model.bufferEntries[_i6];\n\n          if (!_entry6.packed && _entry6.sizeInBytes === 4) {\n            for (var i3 = _i6 + 1; i3 < model.bufferEntries.length; i3++) {\n              var entry3 = model.bufferEntries[i3];\n\n              if (!entry3.packed && entry3.sizeInBytes === 4) {\n                _entry5.packed = true;\n                _entry5.offset = currOffset;\n                newEntries.push(_entry5);\n                currOffset += _entry5.sizeInBytes;\n                _entry6.packed = true;\n                _entry6.offset = currOffset;\n                newEntries.push(_entry6);\n                currOffset += _entry6.sizeInBytes;\n                entry3.packed = true;\n                entry3.offset = currOffset;\n                newEntries.push(entry3);\n                currOffset += entry3.sizeInBytes;\n                found = true;\n                break;\n              }\n            }\n          }\n        }\n      }\n    } // Add anything remaining that is larger than 4 bytes and hope we get lucky.\n    // Likely if there is more than one item added here it will result\n    // in a failed UBO\n\n\n    for (var _i7 = 0; _i7 < model.bufferEntries.length; _i7++) {\n      var _entry7 = model.bufferEntries[_i7];\n\n      if (!_entry7.packed && _entry7.sizeInBytes > 4) {\n        _entry7.packed = true;\n        _entry7.offset = currOffset;\n        newEntries.push(_entry7);\n        currOffset += _entry7.sizeInBytes;\n      }\n    } // finally add remaining 4 byte items\n\n\n    for (var _i8 = 0; _i8 < model.bufferEntries.length; _i8++) {\n      var _entry8 = model.bufferEntries[_i8];\n\n      if (!_entry8.packed) {\n        _entry8.packed = true;\n        _entry8.offset = currOffset;\n        newEntries.push(_entry8);\n        currOffset += _entry8.sizeInBytes;\n      }\n    } // update entries and entryNames\n\n\n    model.bufferEntries = newEntries;\n\n    model._bufferEntryNames.clear();\n\n    for (var _i9 = 0; _i9 < model.bufferEntries.length; _i9++) {\n      model._bufferEntryNames.set(model.bufferEntries[_i9].name, _i9);\n    }\n\n    model.sizeInBytes = currOffset;\n    model.sizeInBytes = maxAlignment * Math.ceil(model.sizeInBytes / maxAlignment);\n    model.sortDirty = false;\n  };\n\n  publicAPI.sendIfNeeded = function (device) {\n    if (!model.UBO) {\n      var req = {\n        nativeArray: model.Float32Array,\n        time: 0,\n        usage: BufferUsage.UniformArray,\n        label: model.label\n      };\n      model.UBO = device.getBufferManager().getBuffer(req);\n      model.bindGroupTime.modified();\n      model.sendDirty = false;\n    } // send data down if needed\n\n\n    if (model.sendDirty) {\n      device.getHandle().queue.writeBuffer(model.UBO.getHandle(), 0, model.arrayBuffer, 0, model.sizeInBytes);\n      model.sendDirty = false;\n    } // always updated as mappers depend on this time\n    // it is more of a sentIfNeededTime\n\n\n    model.sendTime.modified();\n  };\n\n  publicAPI.createView = function (type) {\n    if (type in model === false) {\n      if (!model.arrayBuffer) {\n        model.arrayBuffer = new ArrayBuffer(model.sizeInBytes);\n      }\n\n      model[type] = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newTypedArray(type, model.arrayBuffer);\n    }\n  };\n\n  publicAPI.setValue = function (name, val) {\n    publicAPI.sortBufferEntries();\n\n    var idx = model._bufferEntryNames.get(name);\n\n    if (idx === undefined) {\n      vtkErrorMacro(\"entry named \".concat(name, \" not found in UBO\"));\n      return;\n    }\n\n    var entry = model.bufferEntries[idx];\n    publicAPI.createView(entry.nativeType);\n    var view = model[entry.nativeType];\n\n    if (entry.lastValue !== val) {\n      view[entry.offset / view.BYTES_PER_ELEMENT] = val;\n      model.sendDirty = true;\n    }\n\n    entry.lastValue = val;\n  };\n\n  publicAPI.setArray = function (name, arr) {\n    publicAPI.sortBufferEntries();\n\n    var idx = model._bufferEntryNames.get(name);\n\n    if (idx === undefined) {\n      vtkErrorMacro(\"entry named \".concat(name, \" not found in UBO\"));\n      return;\n    }\n\n    var entry = model.bufferEntries[idx];\n    publicAPI.createView(entry.nativeType);\n    var view = model[entry.nativeType];\n    var changed = false;\n\n    for (var i = 0; i < arr.length; i++) {\n      if (!entry.lastValue || entry.lastValue[i] !== arr[i]) {\n        view[entry.offset / view.BYTES_PER_ELEMENT + i] = arr[i];\n        changed = true;\n      }\n    }\n\n    if (changed) {\n      model.sendDirty = true;\n      entry.lastValue = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr);\n    }\n  };\n\n  publicAPI.getBindGroupEntry = function () {\n    var foo = {\n      resource: {\n        buffer: model.UBO.getHandle()\n      }\n    };\n    return foo;\n  };\n\n  publicAPI.getSendTime = function () {\n    return model.sendTime.getMTime();\n  };\n\n  publicAPI.getShaderCode = function (binding, group) {\n    // sort the entries\n    publicAPI.sortBufferEntries();\n    var lines = [\"struct \".concat(model.label, \"Struct\\n{\")];\n\n    for (var i = 0; i < model.bufferEntries.length; i++) {\n      var entry = model.bufferEntries[i];\n      lines.push(\"  \".concat(entry.name, \": \").concat(entry.type, \";\"));\n    }\n\n    lines.push(\"};\\n@binding(\".concat(binding, \") @group(\").concat(group, \") var<uniform> \").concat(model.label, \": \").concat(model.label, \"Struct;\"));\n    return lines.join('\\n');\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  bufferEntries: null,\n  bufferEntryNames: null,\n  sizeInBytes: 0,\n  label: null,\n  bindGroupLayoutEntry: null,\n  bindGroupEntry: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(publicAPI, model); // Internal objects\n\n  model._bufferEntryNames = new Map();\n  model.bufferEntries = []; // default UBO desc\n\n  model.bindGroupLayoutEntry = model.bindGroupLayoutEntry || {\n    buffer: {\n      type: 'uniform'\n    }\n  };\n  model.sendTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(model.sendTime, {\n    mtime: 0\n  });\n  model.bindGroupTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(model.bindGroupTime, {\n    mtime: 0\n  });\n  model.sendDirty = true;\n  model.sortDirty = true;\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(publicAPI, model, ['binding', 'bindGroupTime']);\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['bindGroupLayoutEntry', 'device', 'label', 'sizeInBytes']); // Object methods\n\n  vtkWebGPUUniformBuffer(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkWebGPUUniformBuffer'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUUniformBuffer$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/UniformBuffer.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/VertexInput.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/VertexInput.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUVertexInput$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Types.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js\");\n\n\n\nfunction arraysEqual(a, b) {\n  if (a === b) return true;\n  if (a == null || b == null) return false;\n  if (a.length !== b.length) return false;\n\n  for (var i = 0; i < a.length; ++i) {\n    if (!b.includes(a[i])) return false;\n  }\n\n  return true;\n} // ----------------------------------------------------------------------------\n// vtkWebGPUVertexInput methods\n// ----------------------------------------------------------------------------\n\n\nfunction vtkWebGPUVertexInput(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUVertexInput');\n\n  publicAPI.addBuffer = function (buffer, inames) {\n    var stepMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'vertex';\n    var names = inames;\n\n    if (!Array.isArray(names)) {\n      names = [names];\n    } // only add if it is a new setting\n\n\n    for (var i = 0; i < model.inputs.length; i++) {\n      if (arraysEqual(model.inputs[i].names, names)) {\n        if (model.inputs[i].buffer === buffer) {\n          return;\n        }\n\n        model.inputs[i].buffer = buffer;\n        return;\n      }\n    } // when adding a new entry, make sure we sort the array\n    // as the order is important to the shader and must always\n    // be the same, so alphabetical is an easy option\n\n\n    model.inputs.push({\n      buffer: buffer,\n      stepMode: stepMode,\n      names: names\n    });\n    model.inputs = model.inputs.sort(function (v1, v2) {\n      if (v1.names[0] < v2.names[0]) {\n        return -1;\n      }\n\n      if (v1.names[0] > v2.names[0]) {\n        return 1;\n      }\n\n      return 0;\n    });\n  };\n\n  publicAPI.removeBufferIfPresent = function (name) {\n    for (var i = 0; i < model.inputs.length; i++) {\n      if (model.inputs[i].names.includes(name)) {\n        model.inputs.splice(i, 1);\n      }\n    }\n  };\n\n  publicAPI.getBuffer = function (name) {\n    for (var i = 0; i < model.inputs.length; i++) {\n      if (model.inputs[i].names.includes(name)) {\n        return model.inputs[i].buffer;\n      }\n    }\n\n    return null;\n  };\n\n  publicAPI.hasAttribute = function (name) {\n    for (var i = 0; i < model.inputs.length; i++) {\n      if (model.inputs[i].names.includes(name)) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  publicAPI.getAttributeTime = function (name) {\n    for (var i = 0; i < model.inputs.length; i++) {\n      if (model.inputs[i].names.includes(name)) {\n        return model.inputs[i].buffer.getSourceTime();\n      }\n    }\n\n    return 0;\n  };\n\n  publicAPI.getShaderCode = function () {\n    var result = '';\n    var nameCount = 0;\n\n    for (var i = 0; i < model.inputs.length; i++) {\n      for (var nm = 0; nm < model.inputs[i].names.length; nm++) {\n        var arrayInfo = model.inputs[i].buffer.getArrayInformation()[nm];\n        var type = _Types_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getShaderTypeFromBufferFormat(arrayInfo.format);\n\n        if (nameCount > 0) {\n          result += ',\\n';\n        }\n\n        result = \"\".concat(result, \"  @location(\").concat(nameCount, \") \").concat(model.inputs[i].names[nm], \" : \").concat(type);\n        nameCount++;\n      }\n    }\n\n    return result;\n  };\n\n  publicAPI.getVertexInputInformation = function () {\n    var info = {};\n\n    if (model.inputs.length) {\n      var vertexBuffers = [];\n      var nameCount = 0;\n\n      for (var i = 0; i < model.inputs.length; i++) {\n        var buf = model.inputs[i].buffer;\n        var buffer = {\n          arrayStride: buf.getStrideInBytes(),\n          stepMode: model.inputs[i].stepMode,\n          attributes: []\n        };\n        var arrayInfo = buf.getArrayInformation();\n\n        for (var nm = 0; nm < model.inputs[i].names.length; nm++) {\n          buffer.attributes.push({\n            shaderLocation: nameCount,\n            offset: arrayInfo[nm].offset,\n            format: arrayInfo[nm].format\n          });\n          nameCount++;\n        }\n\n        vertexBuffers.push(buffer);\n      }\n\n      info.buffers = vertexBuffers;\n    }\n\n    return info;\n  };\n\n  publicAPI.bindBuffers = function (renderEncoder) {\n    for (var i = 0; i < model.inputs.length; i++) {\n      renderEncoder.setVertexBuffer(i, model.inputs[i].buffer.getHandle());\n    }\n  };\n\n  publicAPI.getReady = function () {};\n\n  publicAPI.releaseGraphicsResources = function () {\n    if (model.created) {\n      model.inputs = [];\n      model.bindingDescriptions = [];\n      model.attributeDescriptions = [];\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  inputs: null,\n  bindingDescriptions: false,\n  attributeDescriptions: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.obj)(publicAPI, model);\n  model.bindingDescriptions = [];\n  model.attributeDescriptions = [];\n  model.inputs = [];\n  (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet)(publicAPI, model, ['created', 'device', 'handle']); // For more macro methods, see \"Sources/macros.js\"\n  // Object specific methods\n\n  vtkWebGPUVertexInput(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = (0,_macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance)(extend, 'vtkWebGPUVertexInput'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUVertexInput$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/VertexInput.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUViewNodeFactory$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance),\n/* harmony export */   \"registerOverride\": () => (/* binding */ registerOverride)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _SceneGraph_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneGraph/ViewNodeFactory.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/ViewNodeFactory.js\");\n\n\n\nvar CLASS_MAPPING = Object.create(null);\nfunction registerOverride(className, fn) {\n  CLASS_MAPPING[className] = fn;\n} // ----------------------------------------------------------------------------\n// vtkWebGPUViewNodeFactory methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUViewNodeFactory(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUViewNodeFactory');\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Static class mapping shared across instances\n\n  model.overrides = CLASS_MAPPING; // Inheritance\n\n  _SceneGraph_ViewNodeFactory_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].extend(publicAPI, model, initialValues); // Object methods\n\n  vtkWebGPUViewNodeFactory(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].newInstance(extend, 'vtkWebGPUViewNodeFactory'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUViewNodeFactory$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/ViewNodeFactory.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/VolumePass.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/VolumePass.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUVolumePass$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Common/DataModel/PolyData.js */ \"./node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js\");\n/* harmony import */ var _Core_Property_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/Property.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Property.js\");\n/* harmony import */ var _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SceneGraph/RenderPass.js */ \"./node_modules/@kitware/vtk.js/Rendering/SceneGraph/RenderPass.js\");\n/* harmony import */ var _BufferManager_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./BufferManager.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/BufferManager.js\");\n/* harmony import */ var _MapperHelper_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./MapperHelper.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/MapperHelper.js\");\n/* harmony import */ var _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./RenderEncoder.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/RenderEncoder.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n/* harmony import */ var _Texture_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Texture.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Texture.js\");\n/* harmony import */ var _UniformBuffer_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./UniformBuffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/UniformBuffer.js\");\n/* harmony import */ var _FullScreenQuad_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./FullScreenQuad.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/FullScreenQuad.js\");\n/* harmony import */ var _VolumePassFSQ_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./VolumePassFSQ.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/VolumePassFSQ.js\");\n/* harmony import */ var _Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../Common/Core/Math/index.js */ \"./node_modules/@kitware/vtk.js/Common/Core/Math/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Representation = _Core_Property_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Representation;\nvar BufferUsage = _BufferManager_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].BufferUsage,\n    PrimitiveTypes = _BufferManager_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].PrimitiveTypes; // The volume rendering pass consists of two sub passes. The first\n// (depthRange) renders polygonal cubes for the volumes to compute min and\n// max bounds in depth for the image. This is then fed into the second pass\n// (final) which actually does the raycasting between those bounds sampling\n// the volumes along the way. So the first pass tends to be very fast whicle\n// the second is where most of the work is done.\n// given x then y then z ordering\n//\n//     2-----3\n//   / |   / |\n//  6-----7  |\n//  |  |  |  |\n//  |  0-----1\n//  |/    |/\n//  4-----5\n//\n\nvar cubeFaceTriangles = [[0, 4, 6], [0, 6, 2], [1, 3, 7], [1, 7, 5], [0, 5, 4], [0, 1, 5], [2, 6, 7], [2, 7, 3], [0, 3, 1], [0, 2, 3], [4, 5, 7], [4, 7, 6]];\nvar DepthBoundsFS = \"\\n//VTK::Renderer::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::VolumePass::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@stage(fragment)\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : fragmentOutput;\\n\\n  //VTK::Select::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::VolumePass::Impl\\n\\n  // use the maximum (closest) of the current value and the zbuffer\\n  // the blend func will then take the min to find the farthest stop value\\n  var stopval: f32 = max(input.fragPos.z, textureLoad(opaquePassDepthTexture, vec2<i32>(i32(input.fragPos.x), i32(input.fragPos.y)), 0));\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n\";\nvar volumeCopyFragTemplate = \"\\n//VTK::Renderer::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@stage(fragment)\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var computedColor: vec4<f32> = textureSample(volumePassColorTexture,\\n    volumePassColorTextureSampler, mapperUBO.tscale*input.tcoordVS);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n\";\n/* eslint-disable no-undef */\n\n/* eslint-disable no-bitwise */\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUVolumePass(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUVolumePass'); // create the required textures, encoders, FSQ etc\n\n  publicAPI.initialize = function (viewNode) {\n    if (!model._clearEncoder) {\n      publicAPI.createClearEncoder(viewNode);\n    }\n\n    if (!model._mergeEncoder) {\n      publicAPI.createMergeEncoder(viewNode);\n    }\n\n    if (!model._copyEncoder) {\n      publicAPI.createCopyEncoder(viewNode);\n    }\n\n    if (!model._depthRangeEncoder) {\n      publicAPI.createDepthRangeEncoder(viewNode);\n    }\n\n    if (!model.fullScreenQuad) {\n      model.fullScreenQuad = _VolumePassFSQ_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"].newInstance();\n      model.fullScreenQuad.setDevice(viewNode.getDevice());\n      model.fullScreenQuad.setTextureViews((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model._depthRangeEncoder.getColorTextureViews()));\n    }\n\n    if (!model._volumeCopyQuadQuad) {\n      model._volumeCopyQuad = _FullScreenQuad_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"].newInstance();\n\n      model._volumeCopyQuad.setPipelineHash('volpassfsq');\n\n      model._volumeCopyQuad.setDevice(viewNode.getDevice());\n\n      model._volumeCopyQuad.setFragmentShaderTemplate(volumeCopyFragTemplate);\n\n      model._copyUBO = _UniformBuffer_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"].newInstance({\n        label: 'mapperUBO'\n      });\n\n      model._copyUBO.addEntry('tscale', 'vec2<f32>');\n\n      model._volumeCopyQuad.setUBO(model._copyUBO);\n\n      model._volumeCopyQuad.setTextureViews([model._colorTextureView]);\n    }\n  };\n\n  publicAPI.traverse = function (renNode, viewNode) {\n    if (model.deleted) {\n      return;\n    } // we just render our delegates in order\n\n\n    model.currentParent = viewNode; // create stuff we need\n\n    publicAPI.initialize(viewNode); // determine if we are rendering a small size\n\n    publicAPI.computeTiming(viewNode); // first render the boxes to generate a min max depth\n    // map for all the volumes\n\n    publicAPI.renderDepthBounds(renNode, viewNode); // always mark true\n\n    model._firstGroup = true;\n    var device = viewNode.getDevice(); // determine how many volumes we can render at a time. We subtract\n    // 4 because we use know we use textures for min, max, ofun and tfun\n\n    var maxVolumes = device.getHandle().limits.maxSampledTexturesPerShaderStage - 4; // if we have to make multiple passes then break the volumes up into groups\n    // rendered from farthest to closest\n\n    if (model.volumes.length > maxVolumes) {\n      var cameraPos = renNode.getRenderable().getActiveCamera().getPosition(); // sort from back to front based on volume centroid\n\n      var distances = [];\n\n      for (var v = 0; v < model.volumes.length; v++) {\n        var bounds = model.volumes[v].getRenderable().getBounds();\n        var centroid = [0.5 * (bounds[1] + bounds[0]), 0.5 * (bounds[3] + bounds[2]), 0.5 * (bounds[5] + bounds[4])];\n        distances[v] = (0,_Common_Core_Math_index_js__WEBPACK_IMPORTED_MODULE_13__.f)(centroid, cameraPos);\n      } // sort by distance\n\n\n      var volumeOrder = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array(model.volumes.length).keys());\n\n      volumeOrder.sort(function (a, b) {\n        return distances[b] - distances[a];\n      }); // render in chunks back to front\n\n      var volumesToRender = []; // start with smallest chunk so that the last (closest) chunk\n      // has a full maxVolumes;\n\n      var chunkSize = volumeOrder.length % maxVolumes;\n\n      for (var _v = 0; _v < volumeOrder.length; _v++) {\n        volumesToRender.push(model.volumes[volumeOrder[_v]]);\n\n        if (volumesToRender.length >= chunkSize) {\n          publicAPI.rayCastPass(viewNode, renNode, volumesToRender);\n          volumesToRender = [];\n          chunkSize = maxVolumes;\n          model._firstGroup = false;\n        }\n      }\n    } else {\n      // if not rendering in chunks then just draw all of them at once\n      publicAPI.rayCastPass(viewNode, renNode, model.volumes);\n    } // copy back to the original color buffer\n    // final composite\n\n\n    model._copyEncoder.setColorTextureView(0, model.colorTextureView);\n\n    model._copyEncoder.attachTextureViews();\n\n    renNode.setRenderEncoder(model._copyEncoder);\n\n    model._copyEncoder.begin(viewNode.getCommandEncoder());\n\n    renNode.scissorAndViewport(model._copyEncoder);\n\n    model._volumeCopyQuad.setWebGPURenderer(renNode);\n\n    if (model._useSmallViewport) {\n      var width = model._colorTextureView.getTexture().getWidth();\n\n      var height = model._colorTextureView.getTexture().getHeight();\n\n      model._copyUBO.setArray('tscale', [model._smallViewportWidth / width, model._smallViewportHeight / height]);\n    } else {\n      model._copyUBO.setArray('tscale', [1.0, 1.0]);\n    }\n\n    model._copyUBO.sendIfNeeded(device);\n\n    model._volumeCopyQuad.render(model._copyEncoder, viewNode.getDevice());\n\n    model._copyEncoder.end();\n  }; // unsubscribe from our listeners\n\n\n  publicAPI.delete = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].chain(function () {\n    if (model._animationRateSubscription) {\n      model._animationRateSubscription.unsubscribe();\n\n      model._animationRateSubscription = null;\n    }\n  }, publicAPI.delete);\n\n  publicAPI.computeTiming = function (viewNode) {\n    model._useSmallViewport = false;\n    var rwi = viewNode.getRenderable().getInteractor();\n\n    if (rwi.isAnimating() && model._lastScale > 1.5) {\n      if (!model._smallViewportHeight) {\n        model._smallViewportWidth = Math.ceil(viewNode.getCanvas().width / Math.sqrt(model._lastScale));\n        model._smallViewportHeight = Math.ceil(viewNode.getCanvas().height / Math.sqrt(model._lastScale));\n      }\n\n      model._useSmallViewport = true;\n    }\n\n    model._colorTexture.resize(viewNode.getCanvas().width, viewNode.getCanvas().height);\n\n    if (!model._animationRateSubscription) {\n      // when the animation frame rate changes recompute the scale factor\n      model._animationRateSubscription = rwi.onAnimationFrameRateUpdate(function () {\n        var firstMapper = model.volumes[0].getRenderable().getMapper();\n\n        if (firstMapper.getAutoAdjustSampleDistances()) {\n          var frate = rwi.getRecentAnimationFrameRate();\n          var targetScale = model._lastScale * rwi.getDesiredUpdateRate() / frate;\n          model._lastScale = targetScale; // clamp scale to some reasonable values.\n          // Below 1.5 we will just be using full resolution as that is close enough\n          // Above 400 seems like a lot so we limit to that 1/20th per axis\n\n          if (model._lastScale > 400) {\n            model._lastScale = 400;\n          }\n        } else {\n          model._lastScale = firstMapper.getImageSampleDistance() * firstMapper.getImageSampleDistance();\n        }\n\n        if (model._lastScale < 1.5) {\n          model._lastScale = 1.5;\n        } else {\n          model._smallViewportWidth = Math.ceil(viewNode.getCanvas().width / Math.sqrt(model._lastScale));\n          model._smallViewportHeight = Math.ceil(viewNode.getCanvas().height / Math.sqrt(model._lastScale));\n        }\n      });\n    }\n  };\n\n  publicAPI.rayCastPass = function (viewNode, renNode, volumes) {\n    var encoder = model._firstGroup ? model._clearEncoder : model._mergeEncoder;\n    encoder.attachTextureViews();\n    renNode.setRenderEncoder(encoder);\n    encoder.begin(viewNode.getCommandEncoder());\n\n    var width = model._colorTextureView.getTexture().getWidth();\n\n    var height = model._colorTextureView.getTexture().getHeight();\n\n    if (model._useSmallViewport) {\n      width = model._smallViewportWidth;\n      height = model._smallViewportHeight;\n    }\n\n    encoder.getHandle().setViewport(0, 0, width, height, 0.0, 1.0); // set scissor\n\n    encoder.getHandle().setScissorRect(0, 0, width, height);\n    model.fullScreenQuad.setWebGPURenderer(renNode);\n    model.fullScreenQuad.setVolumes(volumes);\n    model.fullScreenQuad.render(encoder, viewNode.getDevice());\n    encoder.end();\n  };\n\n  publicAPI.renderDepthBounds = function (renNode, viewNode) {\n    publicAPI.updateDepthPolyData(renNode);\n    var pd = model._boundsPoly;\n    var cells = pd.getPolys(); // points\n\n    var points = pd.getPoints();\n    var buffRequest = {\n      owner: points,\n      usage: BufferUsage.PointArray,\n      format: 'float32x4',\n      time: Math.max(points.getMTime(), cells.getMTime()),\n      hash: 'vp',\n      dataArray: points,\n      cells: cells,\n      primitiveType: PrimitiveTypes.Triangles,\n      representation: Representation.SURFACE,\n      packExtra: true\n    };\n    var buff = viewNode.getDevice().getBufferManager().getBuffer(buffRequest);\n\n    model._mapper.getVertexInput().addBuffer(buff, ['vertexBC']);\n\n    model._mapper.setNumberOfVertices(buff.getSizeInBytes() / buff.getStrideInBytes());\n\n    publicAPI.drawDepthRange(renNode, viewNode);\n  };\n\n  publicAPI.updateDepthPolyData = function (renNode) {\n    // check mtimes first\n    var update = false;\n\n    for (var i = 0; i < model.volumes.length; i++) {\n      var mtime = model.volumes[i].getMTime();\n\n      if (!model._lastMTimes[i] || mtime !== model._lastMTimes[i]) {\n        update = true;\n        model._lastMTimes[i] = mtime;\n      }\n    } // also check stabilized time\n\n\n    var stime = renNode.getStabilizedTime();\n\n    if (model._lastMTimes.length <= model.volumes.length || stime !== model._lastMTimes[model.volumes.length]) {\n      update = true;\n      model._lastMTimes[model.volumes.length] = stime;\n    } // if no need to update then return\n\n\n    if (!update) {\n      return;\n    } // rebuild\n\n\n    var center = renNode.getStabilizedCenterByReference();\n    var numPts = model.volumes.length * 8;\n    var points = new Float64Array(numPts * 3);\n    var numTris = model.volumes.length * 12;\n    var polys = new Uint16Array(numTris * 4); // add points and cells\n\n    for (var _i = 0; _i < model.volumes.length; _i++) {\n      model.volumes[_i].getBoundingCubePoints(points, _i * 24);\n\n      var cellIdx = _i * 12 * 4;\n      var offset = _i * 8;\n\n      for (var t = 0; t < 12; t++) {\n        polys[cellIdx++] = 3;\n        polys[cellIdx++] = offset + cubeFaceTriangles[t][0];\n        polys[cellIdx++] = offset + cubeFaceTriangles[t][1];\n        polys[cellIdx++] = offset + cubeFaceTriangles[t][2];\n      }\n    }\n\n    for (var p = 0; p < points.length; p += 3) {\n      points[p] -= center[0];\n      points[p + 1] -= center[1];\n      points[p + 2] -= center[2];\n    }\n\n    model._boundsPoly.getPoints().setData(points, 3);\n\n    model._boundsPoly.getPoints().modified();\n\n    model._boundsPoly.getPolys().setData(polys, 1);\n\n    model._boundsPoly.getPolys().modified();\n\n    model._boundsPoly.modified();\n  };\n\n  publicAPI.drawDepthRange = function (renNode, viewNode) {\n    var device = viewNode.getDevice(); // copy current depth buffer to\n\n    model._depthRangeTexture.resizeToMatch(model.colorTextureView.getTexture());\n\n    model._depthRangeTexture2.resizeToMatch(model.colorTextureView.getTexture());\n\n    model._depthRangeEncoder.attachTextureViews();\n\n    publicAPI.setCurrentOperation('volumeDepthRangePass');\n    renNode.setRenderEncoder(model._depthRangeEncoder);\n    renNode.volumeDepthRangePass(true);\n\n    model._mapper.setWebGPURenderer(renNode);\n\n    model._mapper.build(model._depthRangeEncoder, device);\n\n    model._mapper.registerToDraw();\n\n    renNode.volumeDepthRangePass(false);\n  };\n\n  publicAPI.createDepthRangeEncoder = function (viewNode) {\n    var device = viewNode.getDevice();\n    model._depthRangeEncoder = _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance({\n      label: 'VolumePass DepthRange'\n    });\n\n    model._depthRangeEncoder.setPipelineHash('volr');\n\n    model._depthRangeEncoder.setReplaceShaderCodeFunction(function (pipeline) {\n      var fDesc = pipeline.getShaderDescription('fragment');\n      fDesc.addOutput('vec4<f32>', 'outColor1');\n      fDesc.addOutput('vec4<f32>', 'outColor2');\n      var code = fDesc.getCode();\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor1 = vec4<f32>(input.fragPos.z, 0.0, 0.0, 0.0);', 'output.outColor2 = vec4<f32>(stopval, 0.0, 0.0, 0.0);']).result;\n      fDesc.setCode(code);\n    });\n\n    model._depthRangeEncoder.setDescription({\n      colorAttachments: [{\n        view: null,\n        clearValue: [0.0, 0.0, 0.0, 0.0],\n        loadOp: 'clear',\n        storeOp: 'store'\n      }, {\n        view: null,\n        clearValue: [1.0, 1.0, 1.0, 1.0],\n        loadOp: 'clear',\n        storeOp: 'store'\n      }]\n    });\n\n    model._depthRangeEncoder.setPipelineSettings({\n      primitive: {\n        cullMode: 'none'\n      },\n      fragment: {\n        targets: [{\n          format: 'r16float',\n          blend: {\n            color: {\n              srcFactor: 'one',\n              dstFactor: 'one',\n              operation: 'max'\n            },\n            alpha: {\n              srcfactor: 'one',\n              dstFactor: 'one',\n              operation: 'max'\n            }\n          }\n        }, {\n          format: 'r16float',\n          blend: {\n            color: {\n              srcFactor: 'one',\n              dstFactor: 'one',\n              operation: 'min'\n            },\n            alpha: {\n              srcfactor: 'one',\n              dstFactor: 'one',\n              operation: 'min'\n            }\n          }\n        }]\n      }\n    }); // and the textures it needs\n\n\n    model._depthRangeTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].newInstance({\n      label: 'volumePassMaxDepth'\n    });\n\n    model._depthRangeTexture.create(device, {\n      width: viewNode.getCanvas().width,\n      height: viewNode.getCanvas().height,\n      format: 'r16float',\n      usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING\n    });\n\n    var maxView = model._depthRangeTexture.createView('maxTexture');\n\n    model._depthRangeEncoder.setColorTextureView(0, maxView);\n\n    model._depthRangeTexture2 = _Texture_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].newInstance({\n      label: 'volumePassDepthMin'\n    });\n\n    model._depthRangeTexture2.create(device, {\n      width: viewNode.getCanvas().width,\n      height: viewNode.getCanvas().height,\n      format: 'r16float',\n      usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING\n    });\n\n    var minView = model._depthRangeTexture2.createView('minTexture');\n\n    model._depthRangeEncoder.setColorTextureView(1, minView);\n\n    model._mapper.setDevice(viewNode.getDevice());\n\n    model._mapper.setTextureViews([model.depthTextureView]);\n  };\n\n  publicAPI.createClearEncoder = function (viewNode) {\n    model._colorTexture = _Texture_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].newInstance({\n      label: 'volumePassColor'\n    });\n\n    model._colorTexture.create(viewNode.getDevice(), {\n      width: viewNode.getCanvas().width,\n      height: viewNode.getCanvas().height,\n      format: 'bgra8unorm',\n\n      /* eslint-disable no-undef */\n\n      /* eslint-disable no-bitwise */\n      usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC\n    });\n\n    model._colorTextureView = model._colorTexture.createView('volumePassColorTexture');\n\n    model._colorTextureView.addSampler(viewNode.getDevice(), {\n      minFilter: 'linear',\n      magFilter: 'linear'\n    });\n\n    model._clearEncoder = _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance({\n      label: 'VolumePass Clear'\n    });\n\n    model._clearEncoder.setColorTextureView(0, model._colorTextureView);\n\n    model._clearEncoder.setDescription({\n      colorAttachments: [{\n        view: null,\n        clearValue: [0.0, 0.0, 0.0, 0.0],\n        loadOp: 'clear',\n        storeOp: 'store'\n      }]\n    });\n\n    model._clearEncoder.setPipelineHash('volpf');\n\n    model._clearEncoder.setPipelineSettings({\n      primitive: {\n        cullMode: 'none'\n      },\n      fragment: {\n        targets: [{\n          format: 'bgra8unorm',\n          blend: {\n            color: {\n              srcFactor: 'src-alpha',\n              dstFactor: 'one-minus-src-alpha'\n            },\n            alpha: {\n              srcfactor: 'one',\n              dstFactor: 'one-minus-src-alpha'\n            }\n          }\n        }]\n      }\n    });\n  };\n\n  publicAPI.createCopyEncoder = function (viewNode) {\n    model._copyEncoder = _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance({\n      label: 'volumePassCopy'\n    });\n\n    model._copyEncoder.setDescription({\n      colorAttachments: [{\n        view: null,\n        loadOp: 'load',\n        storeOp: 'store'\n      }]\n    });\n\n    model._copyEncoder.setPipelineHash('volcopypf');\n\n    model._copyEncoder.setPipelineSettings({\n      primitive: {\n        cullMode: 'none'\n      },\n      fragment: {\n        targets: [{\n          format: 'bgra8unorm',\n          blend: {\n            color: {\n              srcFactor: 'one',\n              dstFactor: 'one-minus-src-alpha'\n            },\n            alpha: {\n              srcfactor: 'one',\n              dstFactor: 'one-minus-src-alpha'\n            }\n          }\n        }]\n      }\n    });\n  };\n\n  publicAPI.createMergeEncoder = function (viewNode) {\n    model._mergeEncoder = _RenderEncoder_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance({\n      label: 'volumePassMerge'\n    });\n\n    model._mergeEncoder.setColorTextureView(0, model._colorTextureView);\n\n    model._mergeEncoder.setDescription({\n      colorAttachments: [{\n        view: null,\n        loadOp: 'load',\n        storeOp: 'store'\n      }]\n    });\n\n    model._mergeEncoder.setReplaceShaderCodeFunction(function (pipeline) {\n      var fDesc = pipeline.getShaderDescription('fragment');\n      fDesc.addOutput('vec4<f32>', 'outColor');\n      var code = fDesc.getCode();\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor = vec4<f32>(computedColor.rgb, computedColor.a);']).result;\n      fDesc.setCode(code);\n    });\n\n    model._mergeEncoder.setPipelineHash('volpf');\n\n    model._mergeEncoder.setPipelineSettings({\n      primitive: {\n        cullMode: 'none'\n      },\n      fragment: {\n        targets: [{\n          format: 'bgra8unorm',\n          blend: {\n            color: {\n              srcFactor: 'src-alpha',\n              dstFactor: 'one-minus-src-alpha'\n            },\n            alpha: {\n              srcfactor: 'one',\n              dstFactor: 'one-minus-src-alpha'\n            }\n          }\n        }]\n      }\n    });\n  }; // marks modified when needed\n\n\n  publicAPI.setVolumes = function (val) {\n    if (!model.volumes || model.volumes.length !== val.length) {\n      model.volumes = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(val);\n      publicAPI.modified();\n      return;\n    }\n\n    for (var i = 0; i < val.length; i++) {\n      if (val[i] !== model.volumes[i]) {\n        model.volumes = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(val);\n        publicAPI.modified();\n        return;\n      }\n    }\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  colorTextureView: null,\n  depthTextureView: null,\n  volumes: null\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API\n\n  _SceneGraph_RenderPass_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].extend(publicAPI, model, initialValues);\n  model._lastScale = 2.0;\n  model._mapper = _MapperHelper_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance();\n\n  model._mapper.setFragmentShaderTemplate(DepthBoundsFS);\n\n  model._mapper.getShaderReplacements().set('replaceShaderVolumePass', function (hash, pipeline, vertexInput) {\n    var fDesc = pipeline.getShaderDescription('fragment');\n    fDesc.addBuiltinInput('vec4<f32>', '@builtin(position) fragPos');\n  });\n\n  model._boundsPoly = _Common_DataModel_PolyData_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n  model._lastMTimes = [];\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setGet(publicAPI, model, ['colorTextureView', 'depthTextureView']); // Object methods\n\n  vtkWebGPUVolumePass(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkWebGPUVolumePass'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUVolumePass$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/VolumePass.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/Rendering/WebGPU/VolumePassFSQ.js":
/*!************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/Rendering/WebGPU/VolumePassFSQ.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtkWebGPUVolumePassFSQ$1),\n/* harmony export */   \"extend\": () => (/* binding */ extend),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! gl-matrix */ \"./node_modules/gl-matrix/esm/mat4.js\");\n/* harmony import */ var _FullScreenQuad_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FullScreenQuad.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/FullScreenQuad.js\");\n/* harmony import */ var _UniformBuffer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./UniformBuffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/UniformBuffer.js\");\n/* harmony import */ var _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ShaderCache.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/ShaderCache.js\");\n/* harmony import */ var _StorageBuffer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./StorageBuffer.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/StorageBuffer.js\");\n/* harmony import */ var _Sampler_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Sampler.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Sampler.js\");\n/* harmony import */ var _Types_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Types.js */ \"./node_modules/@kitware/vtk.js/Rendering/WebGPU/Types.js\");\n/* harmony import */ var _Core_VolumeMapper_Constants_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Core/VolumeMapper/Constants.js */ \"./node_modules/@kitware/vtk.js/Rendering/Core/VolumeMapper/Constants.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar volFragTemplate = \"\\n//VTK::Renderer::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Volume::TraverseDec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\nfn getTextureValue(vTex: texture_3d<f32>, tpos: vec4<f32>) -> f32\\n{\\n  // todo multicomponent support\\n  return textureSampleLevel(vTex, clampSampler, tpos.xyz, 0.0).r;\\n}\\n\\nfn getGradient(vTex: texture_3d<f32>, tpos: vec4<f32>, vNum: i32, scalar: f32) -> vec4<f32>\\n{\\n  var result: vec4<f32>;\\n\\n  var tstep: vec4<f32> = volumeSSBO.values[vNum].tstep;\\n  result.x = getTextureValue(vTex, tpos + vec4<f32>(tstep.x, 0.0, 0.0, 1.0)) - scalar;\\n  result.y = getTextureValue(vTex, tpos + vec4<f32>(0.0, tstep.y, 0.0, 1.0)) - scalar;\\n  result.z = getTextureValue(vTex, tpos + vec4<f32>(0.0, 0.0, tstep.z, 1.0)) - scalar;\\n  result.w = 0.0;\\n\\n  // divide by spacing as that is our delta\\n  result = result / volumeSSBO.values[vNum].spacing;\\n  // now we have a gradient in unit tcoords\\n\\n  var grad: f32 = length(result.xyz);\\n  if (grad > 0.0)\\n  {\\n    // rotate to View Coords, needed for lighting and shading\\n    var nMat: mat4x4<f32> = rendererUBO.SCVCMatrix * volumeSSBO.values[vNum].planeNormals;\\n    result = nMat * result;\\n    result = result / length(result);\\n  }\\n\\n  // store gradient magnitude in .w\\n  result.w = grad;\\n\\n  return result;\\n}\\n\\nfn processVolume(vTex: texture_3d<f32>, vNum: i32, cNum: i32, posSC: vec4<f32>, tfunRows: f32) -> vec4<f32>\\n{\\n  var outColor: vec4<f32> = vec4<f32>(0.0, 0.0, 0.0, 0.0);\\n\\n  // convert to tcoords and reject if outside the volume\\n  var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*posSC;\\n  if (tpos.x < 0.0 || tpos.y < 0.0 || tpos.z < 0.0 ||\\n      tpos.x > 1.0 || tpos.y > 1.0 || tpos.z > 1.0) { return outColor; }\\n\\n  var scalar: f32 = getTextureValue(vTex, tpos);\\n\\n  var coord: vec2<f32> =\\n    vec2<f32>(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\\n      (0.5 + 2.0 * f32(vNum)) / tfunRows);\\n  var color: vec4<f32> = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\\n\\n  var gofactor: f32 = 1.0;\\n  var normal: vec4<f32> = vec4<f32>(0.0,0.0,0.0,0.0);\\n  if (componentSSBO.values[cNum].gomin <  1.0 || volumeSSBO.values[vNum].shade[0] > 0.0)\\n  {\\n    normal = getGradient(vTex, tpos, vNum, scalar);\\n    if (componentSSBO.values[cNum].gomin <  1.0)\\n    {\\n      gofactor = clamp(normal.a*componentSSBO.values[cNum].goScale + componentSSBO.values[cNum].goShift,\\n      componentSSBO.values[cNum].gomin, componentSSBO.values[cNum].gomax);\\n    }\\n  }\\n\\n  coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\\n  var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\\n\\n  if (volumeSSBO.values[vNum].shade[0] > 0.0)\\n  {\\n    color = color*abs(normal.z);\\n  }\\n\\n  outColor = vec4<f32>(color.rgb, gofactor * opacity);\\n\\n  return outColor;\\n}\\n\\n// adjust the start and end point of a raycast such that it intersects the unit cube.\\n// This function is used to take a raycast starting point and step vector\\n// and numSteps and return the startijng and ending steps for intersecting the\\n// unit cube. Recall for a 3D texture, the unit cube is the range of texture coordsinates\\n// that have valid values. So this funtion can be used to take a ray in texture coordinates\\n// and bound it to intersecting the texture.\\n//\\nfn adjustBounds(tpos: vec4<f32>, tstep: vec4<f32>, numSteps: f32) -> vec2<f32>\\n{\\n  var result: vec2<f32> = vec2<f32>(0.0, numSteps);\\n  var tpos2: vec4<f32> = tpos + tstep*numSteps;\\n\\n  // move tpos to the start of the volume\\n  var adjust: f32 =\\n    min(\\n      max(tpos.x/tstep.x, (tpos.x - 1.0)/tstep.x),\\n      min(\\n        max((tpos.y - 1.0)/tstep.y, tpos.y/tstep.y),\\n        max((tpos.z - 1.0)/tstep.z, tpos.z/tstep.z)));\\n  if (adjust < 0.0)\\n  {\\n    result.x = result.x - adjust;\\n  }\\n\\n  // adjust length to the end\\n  adjust =\\n    max(\\n      min(tpos2.x/tstep.x, (tpos2.x - 1.0)/tstep.x),\\n      max(\\n        min((tpos2.y - 1.0)/tstep.y, tpos2.y/tstep.y),\\n        min((tpos2.z - 1.0)/tstep.z, tpos2.z/tstep.z)));\\n  if (adjust > 0.0)\\n  {\\n    result.y = result.y - adjust;\\n  }\\n\\n  return result;\\n}\\n\\nfn getSimpleColor(scalar: f32, vNum: i32, cNum: i32) -> vec4<f32>\\n{\\n  // how many rows (tfuns) do we have in our tfunTexture\\n  var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\\n\\n  var coord: vec2<f32> =\\n    vec2<f32>(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\\n      (0.5 + 2.0 * f32(vNum)) / tfunRows);\\n  var color: vec4<f32> = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\\n  coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\\n  var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\\n  return vec4<f32>(color.rgb, opacity);\\n}\\n\\nfn traverseMax(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4<f32> = tpos2 - tpos;\\n\\n  var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);\\n\\n  // did we hit anything\\n  if (rayBounds.x >= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var maxVal: f32 = -1.0e37;\\n  loop\\n  {\\n    var scalar: f32 = getTextureValue(vTex, tpos);\\n    if (scalar > maxVal)\\n    {\\n      maxVal = scalar;\\n    }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist > rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(maxVal, vNum, cNum);\\n}\\n\\nfn traverseMin(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4<f32> = tpos2 - tpos;\\n\\n  var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);\\n\\n  // did we hit anything\\n  if (rayBounds.x >= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var minVal: f32 = 1.0e37;\\n  loop\\n  {\\n    var scalar: f32 = getTextureValue(vTex, tpos);\\n    if (scalar < minVal)\\n    {\\n      minVal = scalar;\\n    }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist > rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(minVal, vNum, cNum);\\n}\\n\\nfn traverseAverage(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4<f32> = tpos2 - tpos;\\n\\n  var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);\\n\\n  // did we hit anything\\n  if (rayBounds.x >= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  let ipRange: vec4<f32> = volumeSSBO.values[vNum].ipScalarRange;\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var avgVal: f32 = 0.0;\\n  var sampleCount: f32 = 0.0;\\n  loop\\n  {\\n    var sample: f32 = getTextureValue(vTex, tpos);\\n    // right now leave filtering off until WebGL changes get merged\\n    // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)\\n    // {\\n      avgVal = avgVal + sample;\\n      sampleCount = sampleCount + 1.0;\\n    // }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist > rayBounds.y) { break; }\\n  }\\n\\n  if (sampleCount <= 0.0)\\n  {\\n    traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(avgVal/sampleCount, vNum, cNum);\\n}\\n\\nfn traverseAdditive(vTex: texture_3d<f32>, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4<f32> = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4<f32> = tpos2 - tpos;\\n\\n  var rayBounds: vec2<f32> = adjustBounds(tpos, tstep, numSteps);\\n\\n  // did we hit anything\\n  if (rayBounds.x >= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4<f32>(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  let ipRange: vec4<f32> = volumeSSBO.values[vNum].ipScalarRange;\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var sumVal: f32 = 0.0;\\n  loop\\n  {\\n    var sample: f32 = getTextureValue(vTex, tpos);\\n    // right now leave filtering off until WebGL changes get merged\\n    // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)\\n    // {\\n      sumVal = sumVal + sample;\\n    // }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist > rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(sumVal, vNum, cNum);\\n}\\n\\nfn composite(rayLengthSC: f32, minPosSC: vec4<f32>, rayStepSC: vec4<f32>) -> vec4<f32>\\n{\\n  // initial ray position is at the beginning\\n  var rayPosSC: vec4<f32> = minPosSC;\\n\\n  // how many rows (tfuns) do we have in our tfunTexture\\n  var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\\n\\n  var curDist: f32 = 0.0;\\n  var computedColor: vec4<f32> = vec4<f32>(0.0, 0.0, 0.0, 0.0);\\n  var sampleColor: vec4<f32>;\\n//VTK::Volume::TraverseCalls\\n\\n  loop\\n  {\\n    // for each volume, sample and accumulate color\\n//VTK::Volume::CompositeCalls\\n\\n    // increment position\\n    curDist = curDist + mapperUBO.SampleDistance;\\n    rayPosSC = rayPosSC + rayStepSC;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist > rayLengthSC) { break; }\\n    if (computedColor.a > 0.98) { break; }\\n  }\\n  return computedColor;\\n}\\n\\n@stage(fragment)\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var rayMax: f32 = textureSampleLevel(maxTexture, clampSampler, input.tcoordVS, 0.0).r;\\n  var rayMin: f32 = textureSampleLevel(minTexture, clampSampler, input.tcoordVS, 0.0).r;\\n\\n  // discard empty rays\\n  if (rayMax <= rayMin) { discard; }\\n  else\\n  {\\n    // compute start and end ray positions in view coordinates\\n    var minPosSC: vec4<f32> = rendererUBO.PCSCMatrix*vec4<f32>(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMax, 1.0);\\n    minPosSC = minPosSC * (1.0 / minPosSC.w);\\n    var maxPosSC: vec4<f32> = rendererUBO.PCSCMatrix*vec4<f32>(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMin, 1.0);\\n    maxPosSC = maxPosSC * (1.0 / maxPosSC.w);\\n\\n    var rayLengthSC: f32 = distance(minPosSC.xyz, maxPosSC.xyz);\\n    var rayStepSC: vec4<f32> = (maxPosSC - minPosSC)*(mapperUBO.SampleDistance/rayLengthSC);\\n    rayStepSC.w = 0.0;\\n\\n    var computedColor: vec4<f32>;\\n\\n//VTK::Volume::Loop\\n\\n//VTK::RenderEncoder::Impl\\n  }\\n\\n  return output;\\n}\\n\";\nvar tmpMat4 = new Float64Array(16);\nvar tmp2Mat4 = new Float64Array(16); // ----------------------------------------------------------------------------\n// vtkWebGPUVolumePassFSQ methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWebGPUVolumePassFSQ(publicAPI, model) {\n  // Set our className\n  model.classHierarchy.push('vtkWebGPUVolumePassFSQ');\n\n  publicAPI.replaceShaderPosition = function (hash, pipeline, vertexInput) {\n    var vDesc = pipeline.getShaderDescription('vertex');\n    vDesc.addBuiltinOutput('vec4<f32>', '@builtin(position) Position');\n    var code = vDesc.getCode();\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Position::Impl', ['output.tcoordVS = vec2<f32>(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);', 'output.Position = vec4<f32>(vertexBC, 1.0);']).result;\n    vDesc.setCode(code);\n    var fDesc = pipeline.getShaderDescription('fragment');\n    fDesc.addBuiltinInput('vec4<f32>', '@builtin(position) fragPos');\n  };\n\n  model.shaderReplacements.set('replaceShaderPosition', publicAPI.replaceShaderPosition);\n\n  publicAPI.replaceShaderVolume = function (hash, pipeline, vertexInput) {\n    var fDesc = pipeline.getShaderDescription('fragment');\n    var code = fDesc.getCode();\n    var compositeCalls = [];\n    var traverseCalls = [];\n\n    for (var i = 0; i < model.volumes.length; i++) {\n      // todo pass rowPos\n      var blendMode = model.volumes[i].getRenderable().getMapper().getBlendMode();\n\n      if (blendMode === _Core_VolumeMapper_Constants_js__WEBPACK_IMPORTED_MODULE_8__.BlendMode.COMPOSITE_BLEND) {\n        compositeCalls.push(\"    sampleColor = processVolume(volTexture\".concat(i, \", \").concat(i, \", \").concat(model.rowStarts[i], \", rayPosSC, tfunRows);\"));\n        compositeCalls.push(\"    computedColor = vec4<f32>(\\n          sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\\n          (1.0 - computedColor.a)*sampleColor.a + computedColor.a);\");\n      } else {\n        traverseCalls.push(\"  sampleColor = traverseVals[\".concat(i, \"];\"));\n        traverseCalls.push(\"  computedColor = vec4<f32>(\\n          sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\\n          (1.0 - computedColor.a)*sampleColor.a + computedColor.a);\");\n      }\n    }\n\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Volume::CompositeCalls', compositeCalls).result;\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Volume::TraverseCalls', traverseCalls).result;\n    code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Volume::TraverseDec', [\"var<private> traverseVals: array<vec4<f32>,\".concat(model.volumes.length, \">;\")]).result; // call the full and partial methods as needed\n\n    var compositeWhileTraversing = false;\n\n    for (var vidx = 0; vidx < model.volumes.length; vidx++) {\n      var _blendMode = model.volumes[vidx].getRenderable().getMapper().getBlendMode();\n\n      if (_blendMode === _Core_VolumeMapper_Constants_js__WEBPACK_IMPORTED_MODULE_8__.BlendMode.COMPOSITE_BLEND) {\n        compositeWhileTraversing = true;\n      } else if (_blendMode === _Core_VolumeMapper_Constants_js__WEBPACK_IMPORTED_MODULE_8__.BlendMode.MAXIMUM_INTENSITY_BLEND) {\n        code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Volume::Loop', [\"    traverseMax(volTexture\".concat(vidx, \", \").concat(vidx, \", \").concat(vidx, \", rayLengthSC, minPosSC, rayStepSC);\"), \"    computedColor = traverseVals[\".concat(vidx, \"];\"), '//VTK::Volume::Loop']).result;\n      } else if (_blendMode === _Core_VolumeMapper_Constants_js__WEBPACK_IMPORTED_MODULE_8__.BlendMode.MINIMUM_INTENSITY_BLEND) {\n        code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Volume::Loop', [\"    traverseMin(volTexture\".concat(vidx, \", \").concat(vidx, \", \").concat(vidx, \", rayLengthSC, minPosSC, rayStepSC);\"), \"    computedColor = traverseVals[\".concat(vidx, \"];\"), '//VTK::Volume::Loop']).result;\n      } else if (_blendMode === _Core_VolumeMapper_Constants_js__WEBPACK_IMPORTED_MODULE_8__.BlendMode.AVERAGE_INTENSITY_BLEND) {\n        code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Volume::Loop', [\"    traverseAverage(volTexture\".concat(vidx, \", \").concat(vidx, \", \").concat(vidx, \", rayLengthSC, minPosSC, rayStepSC);\"), \"    computedColor = traverseVals[\".concat(vidx, \"];\"), '//VTK::Volume::Loop']).result;\n      } else if (_blendMode === _Core_VolumeMapper_Constants_js__WEBPACK_IMPORTED_MODULE_8__.BlendMode.ADDITIVE_INTENSITY_BLEND) {\n        code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Volume::Loop', [\"    traverseAdditive(volTexture\".concat(vidx, \", \").concat(vidx, \", \").concat(vidx, \", rayLengthSC, minPosSC, rayStepSC);\"), \"    computedColor = traverseVals[\".concat(vidx, \"];\"), '//VTK::Volume::Loop']).result;\n      }\n    }\n\n    if (compositeWhileTraversing) {\n      code = _ShaderCache_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].substitute(code, '//VTK::Volume::Loop', ['    computedColor = composite(rayLengthSC, minPosSC, rayStepSC);']).result;\n    }\n\n    fDesc.setCode(code);\n  };\n\n  model.shaderReplacements.set('replaceShaderVolume', publicAPI.replaceShaderVolume);\n\n  publicAPI.updateLUTImage = function (device) {\n    // depends on\n    // - volumes array (length and values) - mtime\n    // - tfun arrays - renderable/property mtime\n    var mtime = publicAPI.getMTime();\n\n    for (var i = 0; i < model.volumes.length; i++) {\n      var vol = model.volumes[i].getRenderable();\n      var image = vol.getMapper().getInputData();\n      mtime = Math.max(mtime, vol.getMTime(), image.getMTime());\n    }\n\n    if (mtime < model.lutBuildTime.getMTime()) {\n      return;\n    } // first determine how large the image should be\n\n\n    model.numRows = 0;\n    model.rowStarts = [];\n\n    for (var vidx = 0; vidx < model.volumes.length; vidx++) {\n      model.rowStarts.push(model.numRows);\n      var webgpuvol = model.volumes[vidx];\n      var actor = webgpuvol.getRenderable();\n      var volMapr = actor.getMapper();\n      var vprop = actor.getProperty();\n\n      var _image = volMapr.getInputData();\n\n      var scalars = _image.getPointData() && _image.getPointData().getScalars();\n\n      var numComp = scalars.getNumberOfComponents();\n      var iComps = vprop.getIndependentComponents();\n      var numIComps = iComps ? numComp : 1;\n      model.numRows += numIComps;\n    } // allocate the image array\n\n\n    var colorArray = new Uint8Array(model.numRows * 2 * model.rowLength * 4);\n    var opacityArray = new Float32Array(model.numRows * 2 * model.rowLength);\n    var imgRow = 0;\n    var tmpTable = new Float32Array(model.rowLength * 3);\n    var rowLength = model.rowLength;\n\n    for (var _vidx = 0; _vidx < model.volumes.length; _vidx++) {\n      var _webgpuvol = model.volumes[_vidx];\n\n      var _actor = _webgpuvol.getRenderable();\n\n      var _volMapr = _actor.getMapper();\n\n      var _vprop = _actor.getProperty();\n\n      var _image2 = _volMapr.getInputData();\n\n      var _scalars = _image2.getPointData() && _image2.getPointData().getScalars();\n\n      var _numComp = _scalars.getNumberOfComponents();\n\n      var _iComps = _vprop.getIndependentComponents();\n\n      var _numIComps = _iComps ? _numComp : 1;\n\n      for (var c = 0; c < _numIComps; ++c) {\n        var cfun = _vprop.getRGBTransferFunction(c);\n\n        var cRange = cfun.getRange();\n        cfun.getTable(cRange[0], cRange[1], rowLength, tmpTable, 1);\n        var ioffset = imgRow * rowLength * 4;\n\n        for (var _i = 0; _i < rowLength; ++_i) {\n          colorArray[ioffset + _i * 4] = 255.0 * tmpTable[_i * 3];\n          colorArray[ioffset + _i * 4 + 1] = 255.0 * tmpTable[_i * 3 + 1];\n          colorArray[ioffset + _i * 4 + 2] = 255.0 * tmpTable[_i * 3 + 2];\n          colorArray[ioffset + _i * 4 + 3] = 255.0;\n\n          for (var co = 0; co < 4; co++) {\n            colorArray[ioffset + (rowLength + _i) * 4 + co] = colorArray[ioffset + _i * 4 + co];\n          }\n        }\n\n        var ofun = _vprop.getScalarOpacity(c);\n\n        var opacityFactor = model.sampleDist / _vprop.getScalarOpacityUnitDistance(c);\n\n        var oRange = ofun.getRange();\n        ofun.getTable(oRange[0], oRange[1], rowLength, tmpTable, 1); // adjust for sample distance etc\n\n        ioffset = imgRow * rowLength;\n\n        for (var _i2 = 0; _i2 < rowLength; ++_i2) {\n          opacityArray[ioffset + _i2] = 1.0 - Math.pow(1.0 - tmpTable[_i2], opacityFactor);\n          opacityArray[ioffset + _i2 + rowLength] = opacityArray[ioffset + _i2];\n        }\n\n        imgRow += 2;\n      }\n    }\n\n    {\n      var treq = {\n        nativeArray: colorArray,\n        width: model.rowLength,\n        height: model.numRows * 2,\n        depth: 1,\n        format: 'rgba8unorm'\n      };\n      var newTex = device.getTextureManager().getTexture(treq);\n      var tview = newTex.createView('tfunTexture');\n      model.textureViews[2] = tview;\n    }\n    {\n      var _treq = {\n        nativeArray: opacityArray,\n        width: model.rowLength,\n        height: model.numRows * 2,\n        depth: 1,\n        format: 'r16float'\n      };\n\n      var _newTex = device.getTextureManager().getTexture(_treq);\n\n      var _tview = _newTex.createView('ofunTexture');\n\n      model.textureViews[3] = _tview;\n    }\n    model.lutBuildTime.modified();\n  };\n\n  publicAPI.updateSSBO = function (device) {\n    // if any of\n    // - color or opacity tfun ranges changed - volume Mtime\n    // - any volume matrix changed - volume MTime\n    // - stabilized center changed - ren.stabilizedMTime\n    // - any volume's input data worldtoindex or dimensions changed - input's mtime\n    //\n    var mtime = Math.max(publicAPI.getMTime(), model.WebGPURenderer.getStabilizedTime());\n\n    for (var i = 0; i < model.volumes.length; i++) {\n      var vol = model.volumes[i].getRenderable();\n      var volMapr = vol.getMapper();\n      var image = volMapr.getInputData();\n      mtime = Math.max(mtime, vol.getMTime(), image.getMTime(), volMapr.getMTime());\n    }\n\n    if (mtime < model.SSBO.getSendTime()) {\n      return;\n    } // create the volumeSBBO\n\n\n    var center = model.WebGPURenderer.getStabilizedCenterByReference();\n    model.SSBO.clearData();\n    model.SSBO.setNumberOfInstances(model.volumes.length); // create SCTC matrices  SC -> world -> model -> index -> tcoord\n    //\n    // when doing coord conversions from A to C recall\n    // the order is mat4.mult(AtoC, BtoC, AtoB);\n    //\n\n    var marray = new Float64Array(model.volumes.length * 16);\n    var vPlaneArray = new Float64Array(model.volumes.length * 16);\n    var tstepArray = new Float64Array(model.volumes.length * 4);\n    var shadeArray = new Float64Array(model.volumes.length * 4);\n    var spacingArray = new Float64Array(model.volumes.length * 4);\n    var ipScalarRangeArray = new Float64Array(model.volumes.length * 4);\n\n    for (var vidx = 0; vidx < model.volumes.length; vidx++) {\n      var webgpuvol = model.volumes[vidx];\n      var actor = webgpuvol.getRenderable();\n\n      var _volMapr2 = actor.getMapper();\n\n      var _image3 = _volMapr2.getInputData();\n\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.identity(tmpMat4);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.translate(tmpMat4, tmpMat4, center); // tmpMat4 is now SC->World\n\n      var mcwcmat = actor.getMatrix();\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.transpose(tmp2Mat4, mcwcmat);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.invert(tmp2Mat4, tmp2Mat4); // tmp2Mat4 is now world to model\n\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.multiply(tmpMat4, tmp2Mat4, tmpMat4); // tmp4Mat is now SC->Model\n      // the method on the data is world to index but the volume is in\n      // model coordinates so really in this context it is model to index\n\n      var modelToIndex = _image3.getWorldToIndex();\n\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.multiply(tmpMat4, modelToIndex, tmpMat4); // tmpMat4 is now SC -> Index\n\n      var dims = _image3.getDimensions();\n\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.identity(tmp2Mat4);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.scale(tmp2Mat4, tmp2Mat4, [1.0 / dims[0], 1.0 / dims[1], 1.0 / dims[2]]);\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.multiply(tmpMat4, tmp2Mat4, tmpMat4); // tmpMat4 is now SC -> Tcoord\n\n      for (var j = 0; j < 16; j++) {\n        marray[vidx * 16 + j] = tmpMat4[j];\n      }\n\n      gl_matrix__WEBPACK_IMPORTED_MODULE_9__.invert(tmpMat4, tmpMat4); // now it is Tcoord To SC\n\n      for (var _j = 0; _j < 4; _j++) {\n        vPlaneArray[vidx * 16 + _j * 4] = tmpMat4[_j * 4];\n        vPlaneArray[vidx * 16 + _j * 4 + 1] = tmpMat4[_j * 4 + 1];\n        vPlaneArray[vidx * 16 + _j * 4 + 2] = tmpMat4[_j * 4 + 2];\n        vPlaneArray[vidx * 16 + _j * 4 + 3] = 0.0;\n      }\n\n      tstepArray[vidx * 4] = 1.0 / dims[0];\n      tstepArray[vidx * 4 + 1] = 1.0 / dims[1];\n      tstepArray[vidx * 4 + 2] = 1.0 / dims[2];\n      tstepArray[vidx * 4 + 3] = 1.0;\n      shadeArray[vidx * 4] = actor.getProperty().getShade() ? 1.0 : 0.0;\n\n      var spacing = _image3.getSpacing();\n\n      spacingArray[vidx * 4] = spacing[0];\n      spacingArray[vidx * 4 + 1] = spacing[1];\n      spacingArray[vidx * 4 + 2] = spacing[2];\n      spacingArray[vidx * 4 + 3] = 1.0; // handle filteringMode\n\n      var tScale = model.textureViews[vidx + 4].getTexture().getScale();\n\n      var ipScalarRange = _volMapr2.getIpScalarRange();\n\n      ipScalarRangeArray[vidx * 4] = ipScalarRange[0] / tScale;\n      ipScalarRangeArray[vidx * 4 + 1] = ipScalarRange[1] / tScale;\n      ipScalarRangeArray[vidx * 4 + 2] = _volMapr2.getFilterMode();\n    }\n\n    model.SSBO.addEntry('SCTCMatrix', 'mat4x4<f32>');\n    model.SSBO.addEntry('planeNormals', 'mat4x4<f32>');\n    model.SSBO.addEntry('shade', 'vec4<f32>');\n    model.SSBO.addEntry('tstep', 'vec4<f32>');\n    model.SSBO.addEntry('spacing', 'vec4<f32>');\n    model.SSBO.addEntry('ipScalarRange', 'vec4<f32>');\n    model.SSBO.setAllInstancesFromArray('SCTCMatrix', marray);\n    model.SSBO.setAllInstancesFromArray('planeNormals', vPlaneArray);\n    model.SSBO.setAllInstancesFromArray('shade', shadeArray);\n    model.SSBO.setAllInstancesFromArray('tstep', tstepArray);\n    model.SSBO.setAllInstancesFromArray('spacing', spacingArray);\n    model.SSBO.setAllInstancesFromArray('ipScalarRange', ipScalarRangeArray);\n    model.SSBO.send(device); // now create the componentSSBO\n\n    model.componentSSBO.clearData();\n    model.componentSSBO.setNumberOfInstances(model.numRows);\n    var cScaleArray = new Float64Array(model.numRows);\n    var cShiftArray = new Float64Array(model.numRows);\n    var oScaleArray = new Float64Array(model.numRows);\n    var oShiftArray = new Float64Array(model.numRows);\n    var gominArray = new Float64Array(model.numRows);\n    var gomaxArray = new Float64Array(model.numRows);\n    var goshiftArray = new Float64Array(model.numRows);\n    var goscaleArray = new Float64Array(model.numRows);\n    var rowIdx = 0;\n\n    for (var _vidx2 = 0; _vidx2 < model.volumes.length; _vidx2++) {\n      var _webgpuvol2 = model.volumes[_vidx2];\n\n      var _actor2 = _webgpuvol2.getRenderable();\n\n      var _volMapr3 = _actor2.getMapper();\n\n      var vprop = _actor2.getProperty();\n\n      var _image4 = _volMapr3.getInputData();\n\n      var scalars = _image4.getPointData() && _image4.getPointData().getScalars();\n\n      var numComp = scalars.getNumberOfComponents();\n      var iComps = vprop.getIndependentComponents(); // const numIComps = iComps ? numComp : 1;\n      // half float?\n\n      var tformat = model.textureViews[_vidx2 + 4].getTexture().getFormat();\n\n      var tDetails = _Types_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].getDetailsFromTextureFormat(tformat);\n      var halfFloat = tDetails.elementSize === 2 && tDetails.sampleType === 'float';\n      var volInfo = {\n        scale: [255.0],\n        offset: [0.0]\n      };\n\n      if (halfFloat) {\n        volInfo.scale[0] = 1.0;\n      } // three levels of shift scale combined into one\n      // for performance in the fragment shader\n\n\n      for (var compIdx = 0; compIdx < numComp; compIdx++) {\n        var target = iComps ? compIdx : 0;\n        var sscale = volInfo.scale[compIdx];\n        var ofun = vprop.getScalarOpacity(target);\n        var oRange = ofun.getRange();\n        var oscale = sscale / (oRange[1] - oRange[0]);\n        var oshift = (volInfo.offset[compIdx] - oRange[0]) / (oRange[1] - oRange[0]);\n        oShiftArray[rowIdx] = oshift;\n        oScaleArray[rowIdx] = oscale;\n        var cfun = vprop.getRGBTransferFunction(target);\n        var cRange = cfun.getRange();\n        cShiftArray[rowIdx] = (volInfo.offset[compIdx] - cRange[0]) / (cRange[1] - cRange[0]);\n        cScaleArray[rowIdx] = sscale / (cRange[1] - cRange[0]); // todo sscale for dependent should be based off of the A channel?\n        // not target (which is 0 in that case)\n\n        var useGO = vprop.getUseGradientOpacity(target);\n\n        if (useGO) {\n          var gomin = vprop.getGradientOpacityMinimumOpacity(target);\n          var gomax = vprop.getGradientOpacityMaximumOpacity(target);\n          gominArray[rowIdx] = gomin;\n          gomaxArray[rowIdx] = gomax;\n          var goRange = [vprop.getGradientOpacityMinimumValue(target), vprop.getGradientOpacityMaximumValue(target)];\n          goscaleArray[rowIdx] = sscale * (gomax - gomin) / (goRange[1] - goRange[0]);\n          goshiftArray[rowIdx] = -goRange[0] * (gomax - gomin) / (goRange[1] - goRange[0]) + gomin;\n        } else {\n          gominArray[rowIdx] = 1.0;\n          gomaxArray[rowIdx] = 1.0;\n          goscaleArray[rowIdx] = 0.0;\n          goshiftArray[rowIdx] = 1.0;\n        }\n\n        rowIdx++;\n      }\n    }\n\n    model.componentSSBO.addEntry('cScale', 'f32');\n    model.componentSSBO.addEntry('cShift', 'f32');\n    model.componentSSBO.addEntry('oScale', 'f32');\n    model.componentSSBO.addEntry('oShift', 'f32');\n    model.componentSSBO.addEntry('goShift', 'f32');\n    model.componentSSBO.addEntry('goScale', 'f32');\n    model.componentSSBO.addEntry('gomin', 'f32');\n    model.componentSSBO.addEntry('gomax', 'f32');\n    model.componentSSBO.setAllInstancesFromArray('cScale', cScaleArray);\n    model.componentSSBO.setAllInstancesFromArray('cShift', cShiftArray);\n    model.componentSSBO.setAllInstancesFromArray('oScale', oScaleArray);\n    model.componentSSBO.setAllInstancesFromArray('oShift', oShiftArray);\n    model.componentSSBO.setAllInstancesFromArray('goScale', goscaleArray);\n    model.componentSSBO.setAllInstancesFromArray('goShift', goshiftArray);\n    model.componentSSBO.setAllInstancesFromArray('gomin', gominArray);\n    model.componentSSBO.setAllInstancesFromArray('gomax', gomaxArray);\n    model.componentSSBO.send(device);\n  };\n\n  publicAPI.updateBuffers = function (device) {\n    // compute the min step size\n    var sampleDist = model.volumes[0].getRenderable().getMapper().getSampleDistance();\n\n    for (var i = 0; i < model.volumes.length; i++) {\n      var vol = model.volumes[i];\n      var volMapr = vol.getRenderable().getMapper();\n      var sd = volMapr.getSampleDistance();\n\n      if (sd < sampleDist) {\n        sampleDist = sd;\n      }\n    }\n\n    if (model.sampleDist !== sampleDist) {\n      model.sampleDist = sampleDist;\n      model.UBO.setValue('SampleDistance', sampleDist);\n      model.UBO.sendIfNeeded(device);\n    } // add in 3d volume textures\n\n\n    for (var vidx = 0; vidx < model.volumes.length; vidx++) {\n      var webgpuvol = model.volumes[vidx];\n      var actor = webgpuvol.getRenderable();\n\n      var _volMapr4 = actor.getMapper();\n\n      var image = _volMapr4.getInputData();\n\n      var treq = {\n        imageData: image,\n        owner: image.getPointData().getScalars()\n      };\n      var newTex = device.getTextureManager().getTexture(treq);\n\n      if (!model.textureViews[vidx + 4] || model.textureViews[vidx + 4].getTexture() !== newTex) {\n        var tview = newTex.createView(\"volTexture\".concat(vidx));\n        model.textureViews[vidx + 4] = tview;\n      }\n    } // clear any old leftovers\n\n\n    if (model.volumes.length < model.lastVolumeLength) {\n      // we may have gaps in the array right now so no splice\n      for (var _i3 = model.volumes.length; _i3 < model.lastVolumeLength; _i3++) {\n        model.textureViews.pop();\n      }\n    }\n\n    model.lastVolumeLength = model.volumes.length;\n    publicAPI.updateLUTImage(device);\n    publicAPI.updateSSBO(device);\n  };\n\n  publicAPI.computePipelineHash = function () {\n    model.pipelineHash = 'volfsq';\n\n    for (var vidx = 0; vidx < model.volumes.length; vidx++) {\n      var blendMode = model.volumes[vidx].getRenderable().getMapper().getBlendMode();\n      model.pipelineHash += \"\".concat(blendMode);\n    }\n  }; // marks modified when needed\n\n\n  publicAPI.setVolumes = function (val) {\n    if (!model.volumes || model.volumes.length !== val.length) {\n      model.volumes = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(val);\n      publicAPI.modified();\n      return;\n    }\n\n    for (var i = 0; i < val.length; i++) {\n      if (val[i] !== model.volumes[i]) {\n        model.volumes = (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(val);\n        publicAPI.modified();\n        return;\n      }\n    }\n  };\n\n  var superclassBuild = publicAPI.build;\n\n  publicAPI.build = function (renderEncoder, device) {\n    publicAPI.computePipelineHash();\n    publicAPI.updateBuffers(device);\n\n    if (!model.clampSampler) {\n      model.clampSampler = _Sampler_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance({\n        label: 'clampSampler'\n      });\n      model.clampSampler.create(device, {\n        minFilter: 'linear',\n        magFilter: 'linear'\n      });\n    }\n\n    superclassBuild(renderEncoder, device);\n  };\n\n  var superclassGetBindables = publicAPI.getBindables;\n\n  publicAPI.getBindables = function () {\n    var bindables = superclassGetBindables();\n    bindables.push(model.componentSSBO);\n    bindables.push(model.clampSampler);\n    return bindables;\n  };\n} // ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n\nvar DEFAULT_VALUES = {\n  volumes: null,\n  rowLength: 1024,\n  lastVolumeLength: 0\n}; // ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance\n\n  _FullScreenQuad_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(publicAPI, model, initialValues);\n  model.fragmentShaderTemplate = volFragTemplate;\n  model.UBO = _UniformBuffer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].newInstance({\n    label: 'mapperUBO'\n  });\n  model.UBO.addEntry('SampleDistance', 'f32');\n  model.SSBO = _StorageBuffer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance({\n    label: 'volumeSSBO'\n  });\n  model.componentSSBO = _StorageBuffer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].newInstance({\n    label: 'componentSSBO'\n  });\n  model.lutBuildTime = {};\n  _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].obj(model.lutBuildTime, {\n    mtime: 0\n  }); // Object methods\n\n  vtkWebGPUVolumePassFSQ(publicAPI, model);\n} // ----------------------------------------------------------------------------\n\nvar newInstance = _macros_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].newInstance(extend, 'vtkWebGPUVolumePassFSQ'); // ----------------------------------------------------------------------------\n\nvar vtkWebGPUVolumePassFSQ$1 = {\n  newInstance: newInstance,\n  extend: extend\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/Rendering/WebGPU/VolumePassFSQ.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/macro.js":
/*!***********************************************!*\
  !*** ./node_modules/@kitware/vtk.js/macro.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"EVENT_ABORT\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.EVENT_ABORT),\n/* harmony export */   \"TYPED_ARRAYS\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.TYPED_ARRAYS),\n/* harmony export */   \"VOID\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.VOID),\n/* harmony export */   \"_capitalize\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__._capitalize),\n/* harmony export */   \"algo\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.algo),\n/* harmony export */   \"capitalize\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.capitalize),\n/* harmony export */   \"chain\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.chain),\n/* harmony export */   \"debounce\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.debounce),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   \"event\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.event),\n/* harmony export */   \"formatBytesToProperUnit\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.formatBytesToProperUnit),\n/* harmony export */   \"formatNumbersWithThousandSeparator\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.formatNumbersWithThousandSeparator),\n/* harmony export */   \"get\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.get),\n/* harmony export */   \"getArray\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.getArray),\n/* harmony export */   \"isVtkObject\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.isVtkObject),\n/* harmony export */   \"keystore\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.keystore),\n/* harmony export */   \"measurePromiseExecution\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.measurePromiseExecution),\n/* harmony export */   \"moveToProtected\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.moveToProtected),\n/* harmony export */   \"newInstance\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.newInstance),\n/* harmony export */   \"newTypedArray\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.newTypedArray),\n/* harmony export */   \"newTypedArrayFrom\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.newTypedArrayFrom),\n/* harmony export */   \"normalizeWheel\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.normalizeWheel),\n/* harmony export */   \"obj\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.obj),\n/* harmony export */   \"proxy\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.proxy),\n/* harmony export */   \"proxyPropertyMapping\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.proxyPropertyMapping),\n/* harmony export */   \"proxyPropertyState\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.proxyPropertyState),\n/* harmony export */   \"set\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.set),\n/* harmony export */   \"setArray\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.setArray),\n/* harmony export */   \"setGet\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.setGet),\n/* harmony export */   \"setGetArray\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.setGetArray),\n/* harmony export */   \"setImmediateVTK\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.setImmediateVTK),\n/* harmony export */   \"setLoggerFunction\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.setLoggerFunction),\n/* harmony export */   \"throttle\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.throttle),\n/* harmony export */   \"traverseInstanceTree\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.traverseInstanceTree),\n/* harmony export */   \"uncapitalize\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.uncapitalize),\n/* harmony export */   \"vtkDebugMacro\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkDebugMacro),\n/* harmony export */   \"vtkErrorMacro\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkErrorMacro),\n/* harmony export */   \"vtkInfoMacro\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkInfoMacro),\n/* harmony export */   \"vtkLogMacro\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkLogMacro),\n/* harmony export */   \"vtkOnceErrorMacro\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkOnceErrorMacro),\n/* harmony export */   \"vtkWarningMacro\": () => (/* reexport safe */ _macros_js__WEBPACK_IMPORTED_MODULE_0__.vtkWarningMacro)\n/* harmony export */ });\n/* harmony import */ var _macros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./macros.js */ \"./node_modules/@kitware/vtk.js/macros.js\");\n/**\n * Macro shim to provide backwards compat with\n * projects that still import from 'macro.js'\n */\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_macros_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/macro.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/macros.js":
/*!************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/macros.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"EVENT_ABORT\": () => (/* binding */ EVENT_ABORT),\n/* harmony export */   \"TYPED_ARRAYS\": () => (/* binding */ TYPED_ARRAYS),\n/* harmony export */   \"VOID\": () => (/* binding */ VOID),\n/* harmony export */   \"_capitalize\": () => (/* binding */ _capitalize),\n/* harmony export */   \"algo\": () => (/* binding */ algo),\n/* harmony export */   \"capitalize\": () => (/* binding */ capitalize),\n/* harmony export */   \"chain\": () => (/* binding */ chain),\n/* harmony export */   \"debounce\": () => (/* binding */ debounce),\n/* harmony export */   \"default\": () => (/* binding */ macro),\n/* harmony export */   \"event\": () => (/* binding */ event),\n/* harmony export */   \"formatBytesToProperUnit\": () => (/* binding */ formatBytesToProperUnit),\n/* harmony export */   \"formatNumbersWithThousandSeparator\": () => (/* binding */ formatNumbersWithThousandSeparator),\n/* harmony export */   \"get\": () => (/* binding */ get),\n/* harmony export */   \"getArray\": () => (/* binding */ getArray),\n/* harmony export */   \"isVtkObject\": () => (/* binding */ isVtkObject),\n/* harmony export */   \"keystore\": () => (/* binding */ keystore),\n/* harmony export */   \"measurePromiseExecution\": () => (/* binding */ measurePromiseExecution),\n/* harmony export */   \"moveToProtected\": () => (/* binding */ moveToProtected),\n/* harmony export */   \"newInstance\": () => (/* binding */ newInstance),\n/* harmony export */   \"newTypedArray\": () => (/* binding */ newTypedArray),\n/* harmony export */   \"newTypedArrayFrom\": () => (/* binding */ newTypedArrayFrom),\n/* harmony export */   \"normalizeWheel\": () => (/* binding */ normalizeWheel),\n/* harmony export */   \"obj\": () => (/* binding */ obj),\n/* harmony export */   \"proxy\": () => (/* binding */ proxy),\n/* harmony export */   \"proxyPropertyMapping\": () => (/* binding */ proxyPropertyMapping),\n/* harmony export */   \"proxyPropertyState\": () => (/* binding */ proxyPropertyState),\n/* harmony export */   \"set\": () => (/* binding */ set),\n/* harmony export */   \"setArray\": () => (/* binding */ setArray),\n/* harmony export */   \"setGet\": () => (/* binding */ setGet),\n/* harmony export */   \"setGetArray\": () => (/* binding */ setGetArray),\n/* harmony export */   \"setImmediateVTK\": () => (/* binding */ setImmediateVTK),\n/* harmony export */   \"setLoggerFunction\": () => (/* binding */ setLoggerFunction),\n/* harmony export */   \"throttle\": () => (/* binding */ throttle),\n/* harmony export */   \"traverseInstanceTree\": () => (/* binding */ traverseInstanceTree),\n/* harmony export */   \"uncapitalize\": () => (/* binding */ uncapitalize),\n/* harmony export */   \"vtkDebugMacro\": () => (/* binding */ vtkDebugMacro),\n/* harmony export */   \"vtkErrorMacro\": () => (/* binding */ vtkErrorMacro),\n/* harmony export */   \"vtkInfoMacro\": () => (/* binding */ vtkInfoMacro),\n/* harmony export */   \"vtkLogMacro\": () => (/* binding */ vtkLogMacro),\n/* harmony export */   \"vtkOnceErrorMacro\": () => (/* binding */ vtkOnceErrorMacro),\n/* harmony export */   \"vtkWarningMacro\": () => (/* binding */ vtkWarningMacro)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_construct__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/construct */ \"./node_modules/@babel/runtime/helpers/esm/construct.js\");\n/* harmony import */ var _vtk_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vtk.js */ \"./node_modules/@kitware/vtk.js/vtk.js\");\n/* harmony import */ var _Common_Core_ClassHierarchy_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Common/Core/ClassHierarchy.js */ \"./node_modules/@kitware/vtk.js/Common/Core/ClassHierarchy.js\");\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar globalMTime = 0;\nvar VOID = Symbol('void');\n\nfunction getCurrentGlobalMTime() {\n  return globalMTime;\n} // ----------------------------------------------------------------------------\n// Logging function calls\n// ----------------------------------------------------------------------------\n\n/* eslint-disable no-prototype-builtins                                      */\n\n\nvar fakeConsole = {};\n\nfunction noOp() {}\n\nvar consoleMethods = ['log', 'debug', 'info', 'warn', 'error', 'time', 'timeEnd', 'group', 'groupEnd'];\nconsoleMethods.forEach(function (methodName) {\n  fakeConsole[methodName] = noOp;\n});\n_vtk_js__WEBPACK_IMPORTED_MODULE_5__.vtkGlobal.console = console.hasOwnProperty('log') ? console : fakeConsole;\nvar loggerFunctions = {\n  debug: noOp,\n  // Don't print debug by default\n  error: _vtk_js__WEBPACK_IMPORTED_MODULE_5__.vtkGlobal.console.error || noOp,\n  info: _vtk_js__WEBPACK_IMPORTED_MODULE_5__.vtkGlobal.console.info || noOp,\n  log: _vtk_js__WEBPACK_IMPORTED_MODULE_5__.vtkGlobal.console.log || noOp,\n  warn: _vtk_js__WEBPACK_IMPORTED_MODULE_5__.vtkGlobal.console.warn || noOp\n};\nfunction setLoggerFunction(name, fn) {\n  if (loggerFunctions[name]) {\n    loggerFunctions[name] = fn || noOp;\n  }\n}\nfunction vtkLogMacro() {\n  loggerFunctions.log.apply(loggerFunctions, arguments);\n}\nfunction vtkInfoMacro() {\n  loggerFunctions.info.apply(loggerFunctions, arguments);\n}\nfunction vtkDebugMacro() {\n  loggerFunctions.debug.apply(loggerFunctions, arguments);\n}\nfunction vtkErrorMacro() {\n  loggerFunctions.error.apply(loggerFunctions, arguments);\n}\nfunction vtkWarningMacro() {\n  loggerFunctions.warn.apply(loggerFunctions, arguments);\n}\nvar ERROR_ONCE_MAP = {};\nfunction vtkOnceErrorMacro(str) {\n  if (!ERROR_ONCE_MAP[str]) {\n    loggerFunctions.error(str);\n    ERROR_ONCE_MAP[str] = true;\n  }\n} // ----------------------------------------------------------------------------\n// TypedArray\n// ----------------------------------------------------------------------------\n\nvar TYPED_ARRAYS = Object.create(null);\nTYPED_ARRAYS.Float32Array = Float32Array;\nTYPED_ARRAYS.Float64Array = Float64Array;\nTYPED_ARRAYS.Uint8Array = Uint8Array;\nTYPED_ARRAYS.Int8Array = Int8Array;\nTYPED_ARRAYS.Uint16Array = Uint16Array;\nTYPED_ARRAYS.Int16Array = Int16Array;\nTYPED_ARRAYS.Uint32Array = Uint32Array;\nTYPED_ARRAYS.Int32Array = Int32Array;\nTYPED_ARRAYS.Uint8ClampedArray = Uint8ClampedArray; // TYPED_ARRAYS.BigInt64Array = BigInt64Array;\n// TYPED_ARRAYS.BigUint64Array = BigUint64Array;\n\nfunction newTypedArray(type) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  return (0,_babel_runtime_helpers_construct__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(TYPED_ARRAYS[type] || Float64Array, args);\n}\nfunction newTypedArrayFrom(type) {\n  var _ref;\n\n  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    args[_key2 - 1] = arguments[_key2];\n  }\n\n  return (_ref = TYPED_ARRAYS[type] || Float64Array).from.apply(_ref, args);\n} // ----------------------------------------------------------------------------\n// capitilize provided string\n// ----------------------------------------------------------------------------\n\nfunction capitalize(str) {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction _capitalize(str) {\n  return capitalize(str[0] === '_' ? str.slice(1) : str);\n}\nfunction uncapitalize(str) {\n  return str.charAt(0).toLowerCase() + str.slice(1);\n} // ----------------------------------------------------------------------------\n// Convert byte size into a well formatted string\n// ----------------------------------------------------------------------------\n\nfunction formatBytesToProperUnit(size) {\n  var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n  var chunkSize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n  var units = ['TB', 'GB', 'MB', 'KB'];\n  var value = Number(size);\n  var currentUnit = 'B';\n\n  while (value > chunkSize) {\n    value /= chunkSize;\n    currentUnit = units.pop();\n  }\n\n  return \"\".concat(value.toFixed(precision), \" \").concat(currentUnit);\n} // ----------------------------------------------------------------------------\n// Convert thousand number with proper separator\n// ----------------------------------------------------------------------------\n\nfunction formatNumbersWithThousandSeparator(n) {\n  var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';\n  var sections = [];\n  var size = n;\n\n  while (size > 1000) {\n    sections.push(\"000\".concat(size % 1000).slice(-3));\n    size = Math.floor(size / 1000);\n  }\n\n  if (size > 0) {\n    sections.push(size);\n  }\n\n  sections.reverse();\n  return sections.join(separator);\n} // ----------------------------------------------------------------------------\n// Array helper\n// ----------------------------------------------------------------------------\n\nfunction safeArrays(model) {\n  Object.keys(model).forEach(function (key) {\n    if (Array.isArray(model[key])) {\n      model[key] = [].concat(model[key]);\n    }\n  });\n} // ----------------------------------------------------------------------------\n// shallow equals\n// ----------------------------------------------------------------------------\n\n\nfunction shallowEquals(a, b) {\n  if (a === b) {\n    return true;\n  }\n\n  if (Array.isArray(a) && Array.isArray(b)) {\n    if (a.length !== b.length) {\n      return false;\n    }\n\n    for (var i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  return false;\n} // ----------------------------------------------------------------------------\n\n\nfunction enumToString(e, value) {\n  return Object.keys(e).find(function (key) {\n    return e[key] === value;\n  });\n}\n\nfunction getStateArrayMapFunc(item) {\n  if (item && item.isA) {\n    return item.getState();\n  }\n\n  return item;\n} // ----------------------------------------------------------------------------\n// setImmediate\n// ----------------------------------------------------------------------------\n\n\nfunction setImmediateVTK(fn) {\n  setTimeout(fn, 0);\n} // ----------------------------------------------------------------------------\n// measurePromiseExecution\n//\n// Measures the time it takes for a promise to finish from\n//   the time this function is invoked.\n// The callback receives the time it took for the promise to resolve or reject.\n// ----------------------------------------------------------------------------\n\nfunction measurePromiseExecution(promise, callback) {\n  var start = performance.now();\n  promise.finally(function () {\n    var delta = performance.now() - start;\n    callback(delta);\n  });\n} // ----------------------------------------------------------------------------\n// vtkObject: modified(), onModified(callback), delete()\n// ----------------------------------------------------------------------------\n\nfunction obj() {\n  var publicAPI = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var model = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  // Ensure each instance as a unique ref of array\n  safeArrays(model);\n  var callbacks = [];\n\n  if (!Number.isInteger(model.mtime)) {\n    model.mtime = ++globalMTime;\n  }\n\n  if (!('classHierarchy' in model)) {\n    model.classHierarchy = new _Common_Core_ClassHierarchy_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]('vtkObject');\n  } else if (!(model.classHierarchy instanceof _Common_Core_ClassHierarchy_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])) {\n    model.classHierarchy = _Common_Core_ClassHierarchy_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].from(model.classHierarchy);\n  }\n\n  function off(index) {\n    callbacks[index] = null;\n  }\n\n  function on(index) {\n    function unsubscribe() {\n      off(index);\n    }\n\n    return Object.freeze({\n      unsubscribe: unsubscribe\n    });\n  }\n\n  publicAPI.isDeleted = function () {\n    return !!model.deleted;\n  };\n\n  publicAPI.modified = function (otherMTime) {\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return;\n    }\n\n    if (otherMTime && otherMTime < publicAPI.getMTime()) {\n      return;\n    }\n\n    model.mtime = ++globalMTime;\n    callbacks.forEach(function (callback) {\n      return callback && callback(publicAPI);\n    });\n  };\n\n  publicAPI.onModified = function (callback) {\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return null;\n    }\n\n    var index = callbacks.length;\n    callbacks.push(callback);\n    return on(index);\n  };\n\n  publicAPI.getMTime = function () {\n    return model.mtime;\n  };\n\n  publicAPI.isA = function (className) {\n    var count = model.classHierarchy.length; // we go backwards as that is more likely for\n    // early termination\n\n    while (count--) {\n      if (model.classHierarchy[count] === className) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  publicAPI.getClassName = function () {\n    var depth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    return model.classHierarchy[model.classHierarchy.length - 1 - depth];\n  };\n\n  publicAPI.set = function () {\n    var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var noWarning = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var noFunction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    var ret = false;\n    Object.keys(map).forEach(function (name) {\n      var fn = noFunction ? null : publicAPI[\"set\".concat(capitalize(name))];\n\n      if (fn && Array.isArray(map[name]) && fn.length > 1) {\n        ret = fn.apply(void 0, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(map[name])) || ret;\n      } else if (fn) {\n        ret = fn(map[name]) || ret;\n      } else {\n        // Set data on model directly\n        if (['mtime'].indexOf(name) === -1 && !noWarning) {\n          vtkWarningMacro(\"Warning: Set value to model directly \".concat(name, \", \").concat(map[name]));\n        }\n\n        ret = model[name] !== map[name] || ret;\n        model[name] = map[name];\n      }\n    });\n    return ret;\n  };\n\n  publicAPI.get = function () {\n    for (var _len3 = arguments.length, list = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      list[_key3] = arguments[_key3];\n    }\n\n    if (!list.length) {\n      return model;\n    }\n\n    var subset = {};\n    list.forEach(function (name) {\n      subset[name] = model[name];\n    });\n    return subset;\n  };\n\n  publicAPI.getReferenceByName = function (val) {\n    return model[val];\n  };\n\n  publicAPI.delete = function () {\n    Object.keys(model).forEach(function (field) {\n      return delete model[field];\n    });\n    callbacks.forEach(function (el, index) {\n      return off(index);\n    }); // Flag the instance being deleted\n\n    model.deleted = true;\n  }; // Add serialization support\n\n\n  publicAPI.getState = function () {\n    if (model.deleted) {\n      return null;\n    }\n\n    var jsonArchive = _objectSpread(_objectSpread({}, model), {}, {\n      vtkClass: publicAPI.getClassName()\n    }); // Convert every vtkObject to its serializable form\n\n\n    Object.keys(jsonArchive).forEach(function (keyName) {\n      if (jsonArchive[keyName] === null || jsonArchive[keyName] === undefined || keyName[0] === '_' // protected members start with _\n      ) {\n        delete jsonArchive[keyName];\n      } else if (jsonArchive[keyName].isA) {\n        jsonArchive[keyName] = jsonArchive[keyName].getState();\n      } else if (Array.isArray(jsonArchive[keyName])) {\n        jsonArchive[keyName] = jsonArchive[keyName].map(getStateArrayMapFunc);\n      }\n    }); // Sort resulting object by key name\n\n    var sortedObj = {};\n    Object.keys(jsonArchive).sort().forEach(function (name) {\n      sortedObj[name] = jsonArchive[name];\n    }); // Remove mtime\n\n    if (sortedObj.mtime) {\n      delete sortedObj.mtime;\n    }\n\n    return sortedObj;\n  }; // Add shallowCopy(otherInstance) support\n\n\n  publicAPI.shallowCopy = function (other) {\n    var debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    if (other.getClassName() !== publicAPI.getClassName()) {\n      throw new Error(\"Cannot ShallowCopy \".concat(other.getClassName(), \" into \").concat(publicAPI.getClassName()));\n    }\n\n    var otherModel = other.get();\n    var keyList = Object.keys(model).sort();\n    var otherKeyList = Object.keys(otherModel).sort();\n    otherKeyList.forEach(function (key) {\n      var keyIdx = keyList.indexOf(key);\n\n      if (keyIdx === -1) {\n        if (debug) {\n          vtkDebugMacro(\"add \".concat(key, \" in shallowCopy\"));\n        }\n      } else {\n        keyList.splice(keyIdx, 1);\n      }\n\n      model[key] = otherModel[key];\n    });\n\n    if (keyList.length && debug) {\n      vtkDebugMacro(\"Untouched keys: \".concat(keyList.join(', ')));\n    }\n\n    publicAPI.modified();\n  }; // This function will get called when one invoke JSON.stringify(vtkObject)\n  // JSON.stringify will only stringify the return value of this function\n\n\n  publicAPI.toJSON = function vtkObjToJSON() {\n    return publicAPI.getState();\n  }; // Allow usage as decorator\n\n\n  return publicAPI;\n} // ----------------------------------------------------------------------------\n// getXXX: add getters\n// ----------------------------------------------------------------------------\n\nfunction get(publicAPI, model, fieldNames) {\n  fieldNames.forEach(function (field) {\n    if ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(field) === 'object') {\n      publicAPI[\"get\".concat(_capitalize(field.name))] = function () {\n        return model[field.name];\n      };\n    } else {\n      publicAPI[\"get\".concat(_capitalize(field))] = function () {\n        return model[field];\n      };\n    }\n  });\n} // ----------------------------------------------------------------------------\n// setXXX: add setters\n// ----------------------------------------------------------------------------\n\nvar objectSetterMap = {\n  enum: function _enum(publicAPI, model, field) {\n    return function (value) {\n      if (typeof value === 'string') {\n        if (field.enum[value] !== undefined) {\n          if (model[field.name] !== field.enum[value]) {\n            model[field.name] = field.enum[value];\n            publicAPI.modified();\n            return true;\n          }\n\n          return false;\n        }\n\n        vtkErrorMacro(\"Set Enum with invalid argument \".concat(field, \", \").concat(value));\n        throw new RangeError('Set Enum with invalid string argument');\n      }\n\n      if (typeof value === 'number') {\n        if (model[field.name] !== value) {\n          if (Object.keys(field.enum).map(function (key) {\n            return field.enum[key];\n          }).indexOf(value) !== -1) {\n            model[field.name] = value;\n            publicAPI.modified();\n            return true;\n          }\n\n          vtkErrorMacro(\"Set Enum outside numeric range \".concat(field, \", \").concat(value));\n          throw new RangeError('Set Enum outside numeric range');\n        }\n\n        return false;\n      }\n\n      vtkErrorMacro(\"Set Enum with invalid argument (String/Number) \".concat(field, \", \").concat(value));\n      throw new TypeError('Set Enum with invalid argument (String/Number)');\n    };\n  }\n};\n\nfunction findSetter(field) {\n  if ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(field) === 'object') {\n    var fn = objectSetterMap[field.type];\n\n    if (fn) {\n      return function (publicAPI, model) {\n        return fn(publicAPI, model, field);\n      };\n    }\n\n    vtkErrorMacro(\"No setter for field \".concat(field));\n    throw new TypeError('No setter for field');\n  }\n\n  return function getSetter(publicAPI, model) {\n    return function setter(value) {\n      if (model.deleted) {\n        vtkErrorMacro('instance deleted - cannot call any method');\n        return false;\n      }\n\n      if (model[field] !== value) {\n        model[field] = value;\n        publicAPI.modified();\n        return true;\n      }\n\n      return false;\n    };\n  };\n}\n\nfunction set(publicAPI, model, fields) {\n  fields.forEach(function (field) {\n    if ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(field) === 'object') {\n      publicAPI[\"set\".concat(_capitalize(field.name))] = findSetter(field)(publicAPI, model);\n    } else {\n      publicAPI[\"set\".concat(_capitalize(field))] = findSetter(field)(publicAPI, model);\n    }\n  });\n} // ----------------------------------------------------------------------------\n// set/get XXX: add both setters and getters\n// ----------------------------------------------------------------------------\n\nfunction setGet(publicAPI, model, fieldNames) {\n  get(publicAPI, model, fieldNames);\n  set(publicAPI, model, fieldNames);\n} // ----------------------------------------------------------------------------\n// getXXX: add getters for object of type array with copy to be safe\n// getXXXByReference: add getters for object of type array without copy\n// ----------------------------------------------------------------------------\n\nfunction getArray(publicAPI, model, fieldNames) {\n  fieldNames.forEach(function (field) {\n    publicAPI[\"get\".concat(_capitalize(field))] = function () {\n      return model[field] ? [].concat(model[field]) : model[field];\n    };\n\n    publicAPI[\"get\".concat(_capitalize(field), \"ByReference\")] = function () {\n      return model[field];\n    };\n  });\n} // ----------------------------------------------------------------------------\n// setXXX: add setter for object of type array\n// if 'defaultVal' is supplied, shorter arrays will be padded to 'size' with 'defaultVal'\n// set...From: fast path to copy the content of an array to the current one without call to modified.\n// ----------------------------------------------------------------------------\n\nfunction setArray(publicAPI, model, fieldNames, size) {\n  var defaultVal = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;\n  fieldNames.forEach(function (field) {\n    if (model[field] && size && model[field].length !== size) {\n      throw new RangeError(\"Invalid initial number of values for array (\".concat(field, \")\"));\n    }\n\n    publicAPI[\"set\".concat(_capitalize(field))] = function () {\n      if (model.deleted) {\n        vtkErrorMacro('instance deleted - cannot call any method');\n        return false;\n      }\n\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n\n      var array = args;\n      var changeDetected;\n      var needCopy = false; // allow null or an array to be passed as a single arg.\n\n      if (array.length === 1 && (array[0] == null || array[0].length >= 0)) {\n        /* eslint-disable prefer-destructuring */\n        array = array[0];\n        /* eslint-enable prefer-destructuring */\n\n        needCopy = true;\n      }\n\n      if (array == null) {\n        changeDetected = model[field] !== array;\n      } else {\n        if (size && array.length !== size) {\n          if (array.length < size && defaultVal !== undefined) {\n            array = Array.from(array);\n            needCopy = false;\n\n            while (array.length < size) {\n              array.push(defaultVal);\n            }\n          } else {\n            throw new RangeError(\"Invalid number of values for array setter (\".concat(field, \")\"));\n          }\n        }\n\n        changeDetected = model[field] == null || model[field].some(function (item, index) {\n          return item !== array[index];\n        }) || model[field].length !== array.length;\n\n        if (changeDetected && needCopy) {\n          array = Array.from(array);\n        }\n      }\n\n      if (changeDetected) {\n        model[field] = array;\n        publicAPI.modified();\n      }\n\n      return changeDetected;\n    };\n\n    publicAPI[\"set\".concat(_capitalize(field), \"From\")] = function (otherArray) {\n      var target = model[field];\n      otherArray.forEach(function (v, i) {\n        target[i] = v;\n      });\n    };\n  });\n} // ----------------------------------------------------------------------------\n// set/get XXX: add setter and getter for object of type array\n// ----------------------------------------------------------------------------\n\nfunction setGetArray(publicAPI, model, fieldNames, size) {\n  var defaultVal = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;\n  getArray(publicAPI, model, fieldNames);\n  setArray(publicAPI, model, fieldNames, size, defaultVal);\n}\nfunction moveToProtected(publicAPI, model, fieldNames) {\n  for (var i = 0; i < fieldNames.length; i++) {\n    var fieldName = fieldNames[i];\n\n    if (model[fieldName] !== undefined) {\n      model[\"_\".concat(fieldName)] = model[fieldName];\n      delete model[fieldName];\n    }\n  }\n} // ----------------------------------------------------------------------------\n// vtkAlgorithm: setInputData(), setInputConnection(), getOutputData(), getOutputPort()\n// ----------------------------------------------------------------------------\n\nfunction algo(publicAPI, model, numberOfInputs, numberOfOutputs) {\n  if (model.inputData) {\n    model.inputData = model.inputData.map(_vtk_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n  } else {\n    model.inputData = [];\n  }\n\n  if (model.inputConnection) {\n    model.inputConnection = model.inputConnection.map(_vtk_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n  } else {\n    model.inputConnection = [];\n  }\n\n  if (model.output) {\n    model.output = model.output.map(_vtk_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n  } else {\n    model.output = [];\n  }\n\n  if (model.inputArrayToProcess) {\n    model.inputArrayToProcess = model.inputArrayToProcess.map(_vtk_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n  } else {\n    model.inputArrayToProcess = [];\n  } // Cache the argument for later manipulation\n\n\n  model.numberOfInputs = numberOfInputs; // Methods\n\n  function setInputData(dataset) {\n    var port = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return;\n    }\n\n    if (port >= model.numberOfInputs) {\n      vtkErrorMacro(\"algorithm \".concat(publicAPI.getClassName(), \" only has \").concat(model.numberOfInputs, \" input ports. To add more input ports, use addInputData()\"));\n      return;\n    }\n\n    if (model.inputData[port] !== dataset || model.inputConnection[port]) {\n      model.inputData[port] = dataset;\n      model.inputConnection[port] = null;\n\n      if (publicAPI.modified) {\n        publicAPI.modified();\n      }\n    }\n  }\n\n  function getInputData() {\n    var port = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n    if (model.inputConnection[port]) {\n      model.inputData[port] = model.inputConnection[port]();\n    }\n\n    return model.inputData[port];\n  }\n\n  function setInputConnection(outputPort) {\n    var port = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return;\n    }\n\n    if (port >= model.numberOfInputs) {\n      var msg = \"algorithm \".concat(publicAPI.getClassName(), \" only has \");\n      msg += \"\".concat(model.numberOfInputs);\n      msg += ' input ports. To add more input ports, use addInputConnection()';\n      vtkErrorMacro(msg);\n      return;\n    }\n\n    model.inputData[port] = null;\n    model.inputConnection[port] = outputPort;\n  }\n\n  function getInputConnection() {\n    var port = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    return model.inputConnection[port];\n  }\n\n  function getPortToFill() {\n    var portToFill = model.numberOfInputs;\n\n    while (portToFill && !model.inputData[portToFill - 1] && !model.inputConnection[portToFill - 1]) {\n      portToFill--;\n    }\n\n    if (portToFill === model.numberOfInputs) {\n      model.numberOfInputs++;\n    }\n\n    return portToFill;\n  }\n\n  function addInputConnection(outputPort) {\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return;\n    }\n\n    setInputConnection(outputPort, getPortToFill());\n  }\n\n  function addInputData(dataset) {\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return;\n    }\n\n    setInputData(dataset, getPortToFill());\n  }\n\n  function getOutputData() {\n    var port = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return null;\n    }\n\n    if (publicAPI.shouldUpdate()) {\n      publicAPI.update();\n    }\n\n    return model.output[port];\n  }\n\n  publicAPI.shouldUpdate = function () {\n    var localMTime = publicAPI.getMTime();\n    var minOutputMTime = Infinity;\n    var count = numberOfOutputs;\n\n    while (count--) {\n      if (!model.output[count] || model.output[count].isDeleted()) {\n        return true;\n      }\n\n      var mt = model.output[count].getMTime();\n\n      if (mt < localMTime) {\n        return true;\n      }\n\n      if (mt < minOutputMTime) {\n        minOutputMTime = mt;\n      }\n    }\n\n    count = model.numberOfInputs;\n\n    while (count--) {\n      var _model$inputConnectio, _publicAPI$getInputDa;\n\n      if ((_model$inputConnectio = model.inputConnection[count]) !== null && _model$inputConnectio !== void 0 && _model$inputConnectio.filter.shouldUpdate() || ((_publicAPI$getInputDa = publicAPI.getInputData(count)) === null || _publicAPI$getInputDa === void 0 ? void 0 : _publicAPI$getInputDa.getMTime()) > minOutputMTime) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  function getOutputPort() {\n    var port = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n    var outputPortAccess = function outputPortAccess() {\n      return getOutputData(port);\n    }; // Add reference to filter\n\n\n    outputPortAccess.filter = publicAPI;\n    return outputPortAccess;\n  } // Handle input if needed\n\n\n  if (model.numberOfInputs) {\n    // Reserve inputs\n    var count = model.numberOfInputs;\n\n    while (count--) {\n      model.inputData.push(null);\n      model.inputConnection.push(null);\n    } // Expose public methods\n\n\n    publicAPI.setInputData = setInputData;\n    publicAPI.setInputConnection = setInputConnection;\n    publicAPI.addInputData = addInputData;\n    publicAPI.addInputConnection = addInputConnection;\n    publicAPI.getInputData = getInputData;\n    publicAPI.getInputConnection = getInputConnection;\n  }\n\n  if (numberOfOutputs) {\n    publicAPI.getOutputData = getOutputData;\n    publicAPI.getOutputPort = getOutputPort;\n  }\n\n  publicAPI.update = function () {\n    var ins = [];\n\n    if (model.numberOfInputs) {\n      var _count = 0;\n\n      while (_count < model.numberOfInputs) {\n        ins[_count] = publicAPI.getInputData(_count);\n        _count++;\n      }\n    }\n\n    if (publicAPI.shouldUpdate() && publicAPI.requestData) {\n      publicAPI.requestData(ins, model.output);\n    }\n  };\n\n  publicAPI.getNumberOfInputPorts = function () {\n    return model.numberOfInputs;\n  };\n\n  publicAPI.getNumberOfOutputPorts = function () {\n    return numberOfOutputs || model.output.length;\n  };\n\n  publicAPI.getInputArrayToProcess = function (inputPort) {\n    var arrayDesc = model.inputArrayToProcess[inputPort];\n    var ds = model.inputData[inputPort];\n\n    if (arrayDesc && ds) {\n      return ds[\"get\".concat(arrayDesc.fieldAssociation)]().getArray(arrayDesc.arrayName);\n    }\n\n    return null;\n  };\n\n  publicAPI.setInputArrayToProcess = function (inputPort, arrayName, fieldAssociation) {\n    var attributeType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'Scalars';\n\n    while (model.inputArrayToProcess.length < inputPort) {\n      model.inputArrayToProcess.push(null);\n    }\n\n    model.inputArrayToProcess[inputPort] = {\n      arrayName: arrayName,\n      fieldAssociation: fieldAssociation,\n      attributeType: attributeType\n    };\n  };\n} // ----------------------------------------------------------------------------\n// Event handling: onXXX(callback), invokeXXX(args...)\n// ----------------------------------------------------------------------------\n\nvar EVENT_ABORT = Symbol('Event abort');\nfunction event(publicAPI, model, eventName) {\n  var callbacks = [];\n  var previousDelete = publicAPI.delete;\n  var curCallbackID = 1;\n\n  function off(callbackID) {\n    for (var i = 0; i < callbacks.length; ++i) {\n      var _callbacks$i = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(callbacks[i], 1),\n          cbID = _callbacks$i[0];\n\n      if (cbID === callbackID) {\n        callbacks.splice(i, 1);\n        return;\n      }\n    }\n  }\n\n  function on(callbackID) {\n    function unsubscribe() {\n      off(callbackID);\n    }\n\n    return Object.freeze({\n      unsubscribe: unsubscribe\n    });\n  }\n\n  function invoke() {\n    var _arguments = arguments;\n\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return;\n    }\n    /* eslint-disable prefer-rest-params */\n    // Go through a copy of the callbacks array in case new callbacks\n    // get prepended within previous callbacks\n\n\n    var currentCallbacks = callbacks.slice();\n\n    var _loop = function _loop(index) {\n      var _currentCallbacks$ind = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(currentCallbacks[index], 3),\n          cb = _currentCallbacks$ind[1],\n          priority = _currentCallbacks$ind[2];\n\n      if (!cb) {\n        return \"continue\"; // eslint-disable-line\n      }\n\n      if (priority < 0) {\n        setTimeout(function () {\n          return cb.apply(publicAPI, _arguments);\n        }, 1 - priority);\n      } else {\n        // Abort only if the callback explicitly returns false\n        var continueNext = cb.apply(publicAPI, _arguments);\n\n        if (continueNext === EVENT_ABORT) {\n          return \"break\";\n        }\n      }\n    };\n\n    for (var index = 0; index < currentCallbacks.length; ++index) {\n      var _ret = _loop(index);\n\n      if (_ret === \"continue\") continue;\n      if (_ret === \"break\") break;\n    }\n    /* eslint-enable prefer-rest-params */\n\n  }\n\n  publicAPI[\"invoke\".concat(_capitalize(eventName))] = invoke;\n\n  publicAPI[\"on\".concat(_capitalize(eventName))] = function (callback) {\n    var priority = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.0;\n\n    if (!callback.apply) {\n      console.error(\"Invalid callback for event \".concat(eventName));\n      return null;\n    }\n\n    if (model.deleted) {\n      vtkErrorMacro('instance deleted - cannot call any method');\n      return null;\n    }\n\n    var callbackID = curCallbackID++;\n    callbacks.push([callbackID, callback, priority]);\n    callbacks.sort(function (cb1, cb2) {\n      return cb2[2] - cb1[2];\n    });\n    return on(callbackID);\n  };\n\n  publicAPI.delete = function () {\n    previousDelete();\n    callbacks.forEach(function (_ref2) {\n      var _ref3 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_ref2, 1),\n          cbID = _ref3[0];\n\n      return off(cbID);\n    });\n  };\n} // ----------------------------------------------------------------------------\n// newInstance\n// ----------------------------------------------------------------------------\n\nfunction newInstance(extend, className) {\n  var constructor = function constructor() {\n    var initialValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var model = {};\n    var publicAPI = {};\n    extend(publicAPI, model, initialValues);\n    return Object.freeze(publicAPI);\n  }; // Register constructor to factory\n\n\n  if (className) {\n    _vtk_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].register(className, constructor);\n  }\n\n  return constructor;\n} // ----------------------------------------------------------------------------\n// Chain function calls\n// ----------------------------------------------------------------------------\n\nfunction chain() {\n  for (var _len5 = arguments.length, fn = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n    fn[_key5] = arguments[_key5];\n  }\n\n  return function () {\n    for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n      args[_key6] = arguments[_key6];\n    }\n\n    return fn.filter(function (i) {\n      return !!i;\n    }).map(function (i) {\n      return i.apply(void 0, args);\n    });\n  };\n} // ----------------------------------------------------------------------------\n// Some utility methods for vtk objects\n// ----------------------------------------------------------------------------\n\nfunction isVtkObject(instance) {\n  return instance && instance.isA && instance.isA('vtkObject');\n}\nfunction traverseInstanceTree(instance, extractFunction) {\n  var accumulator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  var visitedInstances = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n  if (isVtkObject(instance)) {\n    if (visitedInstances.indexOf(instance) >= 0) {\n      // avoid cycles\n      return accumulator;\n    }\n\n    visitedInstances.push(instance);\n    var result = extractFunction(instance);\n\n    if (result !== undefined) {\n      accumulator.push(result);\n    } // Now go through this instance's model\n\n\n    var model = instance.get();\n    Object.keys(model).forEach(function (key) {\n      var modelObj = model[key];\n\n      if (Array.isArray(modelObj)) {\n        modelObj.forEach(function (subObj) {\n          traverseInstanceTree(subObj, extractFunction, accumulator, visitedInstances);\n        });\n      } else {\n        traverseInstanceTree(modelObj, extractFunction, accumulator, visitedInstances);\n      }\n    });\n  }\n\n  return accumulator;\n} // ----------------------------------------------------------------------------\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n\nfunction debounce(func, wait, immediate) {\n  var _this = this;\n\n  var timeout;\n\n  var debounced = function debounced() {\n    for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n      args[_key7] = arguments[_key7];\n    }\n\n    var context = _this;\n\n    var later = function later() {\n      timeout = null;\n\n      if (!immediate) {\n        func.apply(context, args);\n      }\n    };\n\n    var callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n\n    if (callNow) {\n      func.apply(context, args);\n    }\n  };\n\n  debounced.cancel = function () {\n    return clearTimeout(timeout);\n  };\n\n  return debounced;\n} // ----------------------------------------------------------------------------\n// Creates a throttled function that only invokes `func` at most once per\n// every `wait` milliseconds.\n\nfunction throttle(callback, delay) {\n  var isThrottled = false;\n  var argsToUse = null;\n\n  function next() {\n    isThrottled = false;\n\n    if (argsToUse !== null) {\n      wrapper.apply(void 0, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(argsToUse)); // eslint-disable-line\n\n      argsToUse = null;\n    }\n  }\n\n  function wrapper() {\n    for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n      args[_key8] = arguments[_key8];\n    }\n\n    if (isThrottled) {\n      argsToUse = args;\n      return;\n    }\n\n    isThrottled = true;\n    callback.apply(void 0, args);\n    setTimeout(next, delay);\n  }\n\n  return wrapper;\n} // ----------------------------------------------------------------------------\n// keystore(publicAPI, model, initialKeystore)\n//\n//    - initialKeystore: Initial keystore. This can be either a Map or an\n//      object.\n//\n// Generated API\n//  setKey(key, value) : mixed (returns value)\n//  getKey(key) : mixed\n//  getAllKeys() : [mixed]\n//  deleteKey(key) : Boolean\n// ----------------------------------------------------------------------------\n\nfunction keystore(publicAPI, model) {\n  var initialKeystore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  model.keystore = Object.assign(model.keystore || {}, initialKeystore);\n\n  publicAPI.setKey = function (key, value) {\n    model.keystore[key] = value;\n  };\n\n  publicAPI.getKey = function (key) {\n    return model.keystore[key];\n  };\n\n  publicAPI.getAllKeys = function () {\n    return Object.keys(model.keystore);\n  };\n\n  publicAPI.deleteKey = function (key) {\n    return delete model.keystore[key];\n  };\n\n  publicAPI.clearKeystore = function () {\n    return publicAPI.getAllKeys().forEach(function (key) {\n      return delete model.keystore[key];\n    });\n  };\n} // ----------------------------------------------------------------------------\n// proxy(publicAPI, model, sectionName, propertyUI)\n//\n//    - sectionName: Name of the section for UI\n//    - propertyUI: List of props with their UI description\n//\n// Generated API\n//  getProxyId() : String\n//  listProxyProperties() : [string]\n//  updateProxyProperty(name, prop)\n//  getProxySection() => List of properties for UI generation\n// ----------------------------------------------------------------------------\n\nvar nextProxyId = 1;\nvar ROOT_GROUP_NAME = '__root__';\nfunction proxy(publicAPI, model) {\n  // Proxies are keystores\n  keystore(publicAPI, model);\n  var parentDelete = publicAPI.delete; // getProxyId\n\n  model.proxyId = \"\".concat(nextProxyId++); // ui handling\n\n  model.ui = JSON.parse(JSON.stringify(model.ui || [])); // deep copy\n\n  get(publicAPI, model, ['proxyId', 'proxyGroup', 'proxyName']);\n  setGet(publicAPI, model, ['proxyManager']); // group properties\n\n  var propertyMap = {};\n  var groupChildrenNames = {};\n\n  function registerProperties(descriptionList, currentGroupName) {\n    if (!groupChildrenNames[currentGroupName]) {\n      groupChildrenNames[currentGroupName] = [];\n    }\n\n    var childrenNames = groupChildrenNames[currentGroupName];\n\n    for (var i = 0; i < descriptionList.length; i++) {\n      childrenNames.push(descriptionList[i].name);\n      propertyMap[descriptionList[i].name] = descriptionList[i];\n\n      if (descriptionList[i].children && descriptionList[i].children.length) {\n        registerProperties(descriptionList[i].children, descriptionList[i].name);\n      }\n    }\n  }\n\n  registerProperties(model.ui, ROOT_GROUP_NAME);\n\n  publicAPI.updateUI = function (ui) {\n    model.ui = JSON.parse(JSON.stringify(ui || [])); // deep copy\n\n    Object.keys(propertyMap).forEach(function (k) {\n      return delete propertyMap[k];\n    });\n    Object.keys(groupChildrenNames).forEach(function (k) {\n      return delete groupChildrenNames[k];\n    });\n    registerProperties(model.ui, ROOT_GROUP_NAME);\n    publicAPI.modified();\n  };\n\n  function listProxyProperties() {\n    var gName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ROOT_GROUP_NAME;\n    return groupChildrenNames[gName];\n  }\n\n  publicAPI.updateProxyProperty = function (propertyName, propUI) {\n    var prop = propertyMap[propertyName];\n\n    if (prop) {\n      Object.assign(prop, propUI);\n    } else {\n      propertyMap[propertyName] = _objectSpread({}, propUI);\n    }\n  };\n\n  publicAPI.activate = function () {\n    if (model.proxyManager) {\n      var setActiveMethod = \"setActive\".concat(_capitalize(publicAPI.getProxyGroup().slice(0, -1)));\n\n      if (model.proxyManager[setActiveMethod]) {\n        model.proxyManager[setActiveMethod](publicAPI);\n      }\n    }\n  }; // property link\n\n\n  model.propertyLinkSubscribers = {};\n\n  publicAPI.registerPropertyLinkForGC = function (otherLink, type) {\n    if (!(type in model.propertyLinkSubscribers)) {\n      model.propertyLinkSubscribers[type] = [];\n    }\n\n    model.propertyLinkSubscribers[type].push(otherLink);\n  };\n\n  publicAPI.gcPropertyLinks = function (type) {\n    var subscribers = model.propertyLinkSubscribers[type] || [];\n\n    while (subscribers.length) {\n      subscribers.pop().unbind(publicAPI);\n    }\n  };\n\n  model.propertyLinkMap = {};\n\n  publicAPI.getPropertyLink = function (id) {\n    var persistent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    if (model.propertyLinkMap[id]) {\n      return model.propertyLinkMap[id];\n    }\n\n    var value = null;\n    var links = [];\n    var count = 0;\n    var updateInProgress = false;\n\n    function update(source) {\n      var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n      if (updateInProgress) {\n        return null;\n      }\n\n      var needUpdate = [];\n      var sourceLink = null;\n      count = links.length;\n\n      while (count--) {\n        var link = links[count];\n\n        if (link.instance === source) {\n          sourceLink = link;\n        } else {\n          needUpdate.push(link);\n        }\n      }\n\n      if (!sourceLink) {\n        return null;\n      }\n\n      var newValue = sourceLink.instance[\"get\".concat(_capitalize(sourceLink.propertyName))]();\n\n      if (!shallowEquals(newValue, value) || force) {\n        value = newValue;\n        updateInProgress = true;\n\n        while (needUpdate.length) {\n          var linkToUpdate = needUpdate.pop();\n          linkToUpdate.instance.set((0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, linkToUpdate.propertyName, value));\n        }\n\n        updateInProgress = false;\n      }\n\n      if (model.propertyLinkMap[id].persistent) {\n        model.propertyLinkMap[id].value = newValue;\n      }\n\n      return newValue;\n    }\n\n    function unbind(instance, propertyName) {\n      var indexToDelete = [];\n      count = links.length;\n\n      while (count--) {\n        var link = links[count];\n\n        if (link.instance === instance && (link.propertyName === propertyName || propertyName === undefined)) {\n          link.subscription.unsubscribe();\n          indexToDelete.push(count);\n        }\n      }\n\n      while (indexToDelete.length) {\n        links.splice(indexToDelete.pop(), 1);\n      }\n    }\n\n    function bind(instance, propertyName) {\n      var updateMe = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var subscription = instance.onModified(update);\n      var other = links[0];\n      links.push({\n        instance: instance,\n        propertyName: propertyName,\n        subscription: subscription\n      });\n\n      if (updateMe) {\n        if (model.propertyLinkMap[id].persistent && model.propertyLinkMap[id].value !== undefined) {\n          instance.set((0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, propertyName, model.propertyLinkMap[id].value));\n        } else if (other) {\n          update(other.instance, true);\n        }\n      }\n\n      return {\n        unsubscribe: function unsubscribe() {\n          return unbind(instance, propertyName);\n        }\n      };\n    }\n\n    function unsubscribe() {\n      while (links.length) {\n        links.pop().subscription.unsubscribe();\n      }\n    }\n\n    var linkHandler = {\n      bind: bind,\n      unbind: unbind,\n      unsubscribe: unsubscribe,\n      persistent: persistent\n    };\n    model.propertyLinkMap[id] = linkHandler;\n    return linkHandler;\n  }; // extract values\n\n\n  function getProperties() {\n    var groupName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ROOT_GROUP_NAME;\n    var values = [];\n    var id = model.proxyId;\n    var propertyNames = listProxyProperties(groupName) || [];\n\n    for (var i = 0; i < propertyNames.length; i++) {\n      var name = propertyNames[i];\n      var method = publicAPI[\"get\".concat(_capitalize(name))];\n      var value = method ? method() : undefined;\n      var prop = {\n        id: id,\n        name: name,\n        value: value\n      };\n      var children = getProperties(name);\n\n      if (children.length) {\n        prop.children = children;\n      }\n\n      values.push(prop);\n    }\n\n    return values;\n  }\n\n  publicAPI.listPropertyNames = function () {\n    return getProperties().map(function (p) {\n      return p.name;\n    });\n  };\n\n  publicAPI.getPropertyByName = function (name) {\n    return getProperties().find(function (p) {\n      return p.name === name;\n    });\n  };\n\n  publicAPI.getPropertyDomainByName = function (name) {\n    return (propertyMap[name] || {}).domain;\n  }; // ui section\n\n\n  publicAPI.getProxySection = function () {\n    return {\n      id: model.proxyId,\n      name: model.proxyGroup,\n      ui: model.ui,\n      properties: getProperties()\n    };\n  }; // free resources\n\n\n  publicAPI.delete = function () {\n    var list = Object.keys(model.propertyLinkMap);\n    var count = list.length;\n\n    while (count--) {\n      model.propertyLinkMap[list[count]].unsubscribe();\n    }\n\n    Object.keys(model.propertyLinkSubscribers).forEach(publicAPI.gcPropertyLinks);\n    parentDelete();\n  }; // @todo fix infinite recursion due to active source\n\n\n  publicAPI.getState = function () {\n    return null;\n  };\n\n  function registerLinks() {\n    // Allow dynamic registration of links at the application level\n    if (model.links) {\n      for (var i = 0; i < model.links.length; i++) {\n        var _model$links$i = model.links[i],\n            link = _model$links$i.link,\n            property = _model$links$i.property,\n            persistent = _model$links$i.persistent,\n            updateOnBind = _model$links$i.updateOnBind,\n            type = _model$links$i.type;\n\n        if (type === 'application') {\n          var sLink = model.proxyManager.getPropertyLink(link, persistent);\n          publicAPI.registerPropertyLinkForGC(sLink, 'application');\n          sLink.bind(publicAPI, property, updateOnBind);\n        }\n      }\n    }\n  }\n\n  setImmediateVTK(registerLinks);\n} // ----------------------------------------------------------------------------\n// proxyPropertyMapping(publicAPI, model, map)\n//\n//   map = {\n//      opacity: { modelKey: 'property', property: 'opacity' },\n//   }\n//\n// Generated API:\n//  Elevate set/get methods from internal object stored in the model to current one\n// ----------------------------------------------------------------------------\n\nfunction proxyPropertyMapping(publicAPI, model, map) {\n  var parentDelete = publicAPI.delete;\n  var subscriptions = [];\n  var propertyNames = Object.keys(map);\n  var count = propertyNames.length;\n\n  while (count--) {\n    var propertyName = propertyNames[count];\n    var _map$propertyName = map[propertyName],\n        modelKey = _map$propertyName.modelKey,\n        property = _map$propertyName.property,\n        _map$propertyName$mod = _map$propertyName.modified,\n        modified = _map$propertyName$mod === void 0 ? true : _map$propertyName$mod;\n\n    var methodSrc = _capitalize(property);\n\n    var methodDst = _capitalize(propertyName);\n\n    publicAPI[\"get\".concat(methodDst)] = model[modelKey][\"get\".concat(methodSrc)];\n    publicAPI[\"set\".concat(methodDst)] = model[modelKey][\"set\".concat(methodSrc)];\n\n    if (modified) {\n      subscriptions.push(model[modelKey].onModified(publicAPI.modified));\n    }\n  }\n\n  publicAPI.delete = function () {\n    while (subscriptions.length) {\n      subscriptions.pop().unsubscribe();\n    }\n\n    parentDelete();\n  };\n} // ----------------------------------------------------------------------------\n// proxyPropertyState(publicAPI, model, state, defaults)\n//\n//   state = {\n//     representation: {\n//       'Surface with edges': { property: { edgeVisibility: true, representation: 2 } },\n//       Surface: { property: { edgeVisibility: false, representation: 2 } },\n//       Wireframe: { property: { edgeVisibility: false, representation: 1 } },\n//       Points: { property: { edgeVisibility: false, representation: 0 } },\n//     },\n//   }\n//\n//   defaults = {\n//      representation: 'Surface',\n//   }\n//\n// Generated API\n//   get / set Representation ( string ) => push state to various internal objects\n// ----------------------------------------------------------------------------\n\nfunction proxyPropertyState(publicAPI, model) {\n  var state = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var defaults = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  model.this = publicAPI;\n\n  function applyState(map) {\n    var modelKeys = Object.keys(map);\n    var count = modelKeys.length;\n\n    while (count--) {\n      var modelKey = modelKeys[count];\n      model[modelKey].set(map[modelKey]);\n    }\n  }\n\n  var modelKeys = Object.keys(defaults);\n  var count = modelKeys.length;\n\n  var _loop2 = function _loop2() {\n    // Add default\n    var key = modelKeys[count];\n    model[key] = defaults[key]; // Add set method\n\n    var mapping = state[key];\n\n    publicAPI[\"set\".concat(_capitalize(key))] = function (value) {\n      if (value !== model[key]) {\n        model[key] = value;\n        var propValues = mapping[value];\n        applyState(propValues);\n        publicAPI.modified();\n      }\n    };\n  };\n\n  while (count--) {\n    _loop2();\n  } // Add getter\n\n\n  if (modelKeys.length) {\n    get(publicAPI, model, modelKeys);\n  }\n} // ----------------------------------------------------------------------------\n// From : https://github.com/facebookarchive/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js\n//\n//\n// Copyright (c) 2015, Facebook, Inc.\n// All rights reserved.\n//\n// This source code is licensed under the BSD-style license found in the\n// LICENSE file in the root directory of this source tree. An additional grant\n// of patent rights can be found in the PATENTS file in the same directory.\n//\n//\n// Mouse wheel (and 2-finger trackpad) support on the web sucks.  It is\n// complicated, thus this doc is long and (hopefully) detailed enough to answer\n// your questions.\n//\n// If you need to react to the mouse wheel in a predictable way, this code is\n// like your bestest friend.// hugs//\n//\n// As of today, there are 4 DOM event types you can listen to:\n//\n//   'wheel'                -- Chrome(31+), FF(17+), IE(9+)\n//   'mousewheel'           -- Chrome, IE(6+), Opera, Safari\n//   'MozMousePixelScroll'  -- FF(3.5 only!) (2010-2013) -- don't bother!\n//   'DOMMouseScroll'       -- FF(0.9.7+) since 2003\n//\n// So what to do?  The is the best:\n//\n//   normalizeWheel.getEventType();\n//\n// In your event callback, use this code to get sane interpretation of the\n// deltas.  This code will return an object with properties:\n//\n//   spinX   -- normalized spin speed (use for zoom) - x plane\n//   spinY   -- \" - y plane\n//   pixelX  -- normalized distance (to pixels) - x plane\n//   pixelY  -- \" - y plane\n//\n// Wheel values are provided by the browser assuming you are using the wheel to\n// scroll a web page by a number of lines or pixels (or pages).  Values can vary\n// significantly on different platforms and browsers, forgetting that you can\n// scroll at different speeds.  Some devices (like trackpads) emit more events\n// at smaller increments with fine granularity, and some emit massive jumps with\n// linear speed or acceleration.\n//\n// This code does its best to normalize the deltas for you:\n//\n//   - spin is trying to normalize how far the wheel was spun (or trackpad\n//     dragged).  This is super useful for zoom support where you want to\n//     throw away the chunky scroll steps on the PC and make those equal to\n//     the slow and smooth tiny steps on the Mac. Key data: This code tries to\n//     resolve a single slow step on a wheel to 1.\n//\n//   - pixel is normalizing the desired scroll delta in pixel units.  You'll\n//     get the crazy differences between browsers, but at least it'll be in\n//     pixels!\n//\n//   - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT.  This\n//     should translate to positive value zooming IN, negative zooming OUT.\n//     This matches the newer 'wheel' event.\n//\n// Why are there spinX, spinY (or pixels)?\n//\n//   - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n//     with a mouse.  It results in side-scrolling in the browser by default.\n//\n//   - spinY is what you expect -- it's the classic axis of a mouse wheel.\n//\n//   - I dropped spinZ/pixelZ.  It is supported by the DOM 3 'wheel' event and\n//     probably is by browsers in conjunction with fancy 3D controllers .. but\n//     you know.\n//\n// Implementation info:\n//\n// Examples of 'wheel' event if you scroll slowly (down) by one step with an\n// average mouse:\n//\n//   OS X + Chrome  (mouse)     -    4   pixel delta  (wheelDelta -120)\n//   OS X + Safari  (mouse)     -  N/A   pixel delta  (wheelDelta  -12)\n//   OS X + Firefox (mouse)     -    0.1 line  delta  (wheelDelta  N/A)\n//   Win8 + Chrome  (mouse)     -  100   pixel delta  (wheelDelta -120)\n//   Win8 + Firefox (mouse)     -    3   line  delta  (wheelDelta -120)\n//\n// On the trackpad:\n//\n//   OS X + Chrome  (trackpad)  -    2   pixel delta  (wheelDelta   -6)\n//   OS X + Firefox (trackpad)  -    1   pixel delta  (wheelDelta  N/A)\n//\n// On other/older browsers.. it's more complicated as there can be multiple and\n// also missing delta values.\n//\n// The 'wheel' event is more standard:\n//\n// http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n//\n// The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n// deltaX, deltaY and deltaZ.  Some browsers provide other values to maintain\n// backward compatibility with older events.  Those other values help us\n// better normalize spin speed.  Example of what the browsers provide:\n//\n//                          | event.wheelDelta | event.detail\n//        ------------------+------------------+--------------\n//          Safari v5/OS X  |       -120       |       0\n//          Safari v5/Win7  |       -120       |       0\n//         Chrome v17/OS X  |       -120       |       0\n//         Chrome v17/Win7  |       -120       |       0\n//                IE9/Win7  |       -120       |   undefined\n//         Firefox v4/OS X  |     undefined    |       1\n//         Firefox v4/Win7  |     undefined    |       3\n//\n// ----------------------------------------------------------------------------\n// Reasonable defaults\n\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\nfunction normalizeWheel(wheelEvent) {\n  var sX = 0; // spinX\n\n  var sY = 0; // spinY\n\n  var pX = 0; // pixelX\n\n  var pY = 0; // pixelY\n  // Legacy\n\n  if ('detail' in wheelEvent) {\n    sY = wheelEvent.detail;\n  }\n\n  if ('wheelDelta' in wheelEvent) {\n    sY = -wheelEvent.wheelDelta / 120;\n  }\n\n  if ('wheelDeltaY' in wheelEvent) {\n    sY = -wheelEvent.wheelDeltaY / 120;\n  }\n\n  if ('wheelDeltaX' in wheelEvent) {\n    sX = -wheelEvent.wheelDeltaX / 120;\n  } // side scrolling on FF with DOMMouseScroll\n\n\n  if ('axis' in wheelEvent && wheelEvent.axis === wheelEvent.HORIZONTAL_AXIS) {\n    sX = sY;\n    sY = 0;\n  }\n\n  pX = sX * PIXEL_STEP;\n  pY = sY * PIXEL_STEP;\n\n  if ('deltaY' in wheelEvent) {\n    pY = wheelEvent.deltaY;\n  }\n\n  if ('deltaX' in wheelEvent) {\n    pX = wheelEvent.deltaX;\n  }\n\n  if ((pX || pY) && wheelEvent.deltaMode) {\n    if (wheelEvent.deltaMode === 1) {\n      // delta in LINE units\n      pX *= LINE_HEIGHT;\n      pY *= LINE_HEIGHT;\n    } else {\n      // delta in PAGE units\n      pX *= PAGE_HEIGHT;\n      pY *= PAGE_HEIGHT;\n    }\n  } // Fall-back if spin cannot be determined\n\n\n  if (pX && !sX) {\n    sX = pX < 1 ? -1 : 1;\n  }\n\n  if (pY && !sY) {\n    sY = pY < 1 ? -1 : 1;\n  }\n\n  return {\n    spinX: sX,\n    spinY: sY,\n    pixelX: pX,\n    pixelY: pY\n  };\n} // ----------------------------------------------------------------------------\n// Default export\n// ----------------------------------------------------------------------------\n\nvar macro = {\n  algo: algo,\n  capitalize: capitalize,\n  chain: chain,\n  debounce: debounce,\n  enumToString: enumToString,\n  event: event,\n  EVENT_ABORT: EVENT_ABORT,\n  formatBytesToProperUnit: formatBytesToProperUnit,\n  formatNumbersWithThousandSeparator: formatNumbersWithThousandSeparator,\n  get: get,\n  getArray: getArray,\n  getCurrentGlobalMTime: getCurrentGlobalMTime,\n  getStateArrayMapFunc: getStateArrayMapFunc,\n  isVtkObject: isVtkObject,\n  keystore: keystore,\n  measurePromiseExecution: measurePromiseExecution,\n  moveToProtected: moveToProtected,\n  newInstance: newInstance,\n  newTypedArray: newTypedArray,\n  newTypedArrayFrom: newTypedArrayFrom,\n  normalizeWheel: normalizeWheel,\n  obj: obj,\n  proxy: proxy,\n  proxyPropertyMapping: proxyPropertyMapping,\n  proxyPropertyState: proxyPropertyState,\n  safeArrays: safeArrays,\n  set: set,\n  setArray: setArray,\n  setGet: setGet,\n  setGetArray: setGetArray,\n  setImmediate: setImmediateVTK,\n  setLoggerFunction: setLoggerFunction,\n  throttle: throttle,\n  traverseInstanceTree: traverseInstanceTree,\n  TYPED_ARRAYS: TYPED_ARRAYS,\n  // deprecated todo remove on breaking API revision\n  uncapitalize: uncapitalize,\n  VOID: VOID,\n  vtkDebugMacro: vtkDebugMacro,\n  vtkErrorMacro: vtkErrorMacro,\n  vtkInfoMacro: vtkInfoMacro,\n  vtkLogMacro: vtkLogMacro,\n  vtkOnceErrorMacro: vtkOnceErrorMacro,\n  vtkWarningMacro: vtkWarningMacro\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/macros.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/vendor/style-inject/dist/style-inject.es.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/@kitware/vtk.js/vendor/style-inject/dist/style-inject.es.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"s\": () => (/* binding */ styleInject)\n/* harmony export */ });\nfunction styleInject(css, ref) {\n  if ( ref === void 0 ) ref = {};\n  var insertAt = ref.insertAt;\n\n  if (!css || typeof document === 'undefined') { return; }\n\n  var head = document.head || document.getElementsByTagName('head')[0];\n  var style = document.createElement('style');\n  style.type = 'text/css';\n\n  if (insertAt === 'top') {\n    if (head.firstChild) {\n      head.insertBefore(style, head.firstChild);\n    } else {\n      head.appendChild(style);\n    }\n  } else {\n    head.appendChild(style);\n  }\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/vendor/style-inject/dist/style-inject.es.js?");

/***/ }),

/***/ "./node_modules/@kitware/vtk.js/vtk.js":
/*!*********************************************!*\
  !*** ./node_modules/@kitware/vtk.js/vtk.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ vtk),\n/* harmony export */   \"vtkGlobal\": () => (/* binding */ vtkGlobal)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var globalthis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! globalthis */ \"./node_modules/globalthis/index.js\");\n/* harmony import */ var globalthis__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(globalthis__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar vtkGlobal = globalthis__WEBPACK_IMPORTED_MODULE_2___default()(); // returns native globalThis if compliant\n\nvar factoryMapping = {\n  vtkObject: function vtkObject() {\n    return null;\n  }\n};\nfunction vtk(obj) {\n  if (obj === null || obj === undefined) {\n    return obj;\n  }\n\n  if (obj.isA) {\n    return obj;\n  }\n\n  if (!obj.vtkClass) {\n    if (vtkGlobal.console && vtkGlobal.console.error) {\n      vtkGlobal.console.error('Invalid VTK object');\n    }\n\n    return null;\n  }\n\n  var constructor = factoryMapping[obj.vtkClass];\n\n  if (!constructor) {\n    if (vtkGlobal.console && vtkGlobal.console.error) {\n      vtkGlobal.console.error(\"No vtk class found for Object of type \".concat(obj.vtkClass));\n    }\n\n    return null;\n  } // Shallow copy object\n\n\n  var model = _objectSpread({}, obj); // Convert into vtkObject any nested key\n\n\n  Object.keys(model).forEach(function (keyName) {\n    if (model[keyName] && (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(model[keyName]) === 'object' && model[keyName].vtkClass) {\n      model[keyName] = vtk(model[keyName]);\n    }\n  }); // Return the root\n\n  var newInst = constructor(model);\n\n  if (newInst && newInst.modified) {\n    newInst.modified();\n  }\n\n  return newInst;\n}\n\nfunction register(vtkClassName, constructor) {\n  factoryMapping[vtkClassName] = constructor;\n} // Nest register method under the vtk function\n\n\nvtk.register = register;\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@kitware/vtk.js/vtk.js?");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].use[2]!./src/GeometryViewer.module.css":
/*!*******************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].use[2]!./src/GeometryViewer.module.css ***!
  \*******************************************************************************************************************************************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".GeometryViewer-module-button_T2Q5H {\\n  /* position: absolute; */\\n  right: 5px;\\n  top: 5px;\\n  width: 1em;\\n  z-index: 2;\\n  cursor: pointer;\\n}\\n\\n.GeometryViewer-module-rootController_YzrXm {\\n  display: -webkit-box;\\n  display: -ms-flexbox;\\n  display: flex;\\n  -webkit-box-orient: vertical;\\n  -webkit-box-direction: normal;\\n      -ms-flex-direction: column;\\n          flex-direction: column;\\n  /* position: absolute; */\\n  top: 5px;\\n  left: 5px;\\n  right: 5px;\\n  z-index: 1;\\n}\\n\\n.GeometryViewer-module-control_VzNfo {\\n  display: -webkit-box;\\n  display: -ms-flexbox;\\n  display: flex;\\n  -webkit-box-orient: horizontal;\\n  -webkit-box-direction: normal;\\n      -ms-flex-direction: row;\\n          flex-direction: row;\\n  -webkit-box-flex: 1;\\n      -ms-flex: 1;\\n          flex: 1;\\n  -webkit-box-align: center;\\n      -ms-flex-align: center;\\n          align-items: center;\\n}\\n\\n.GeometryViewer-module-fullScreen_wznn8 {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  top: 0;\\n  left: 0;\\n  overflow: hidden;\\n  background: black;\\n  margin: 0;\\n  padding: 0;\\n  z-index: -1;\\n  display: -webkit-box;\\n  display: -ms-flexbox;\\n  display: flex;\\n  -webkit-box-align: center;\\n      -ms-flex-align: center;\\n          align-items: center;\\n  -webkit-box-pack: center;\\n      -ms-flex-pack: center;\\n          justify-content: center;\\n}\\n\\n.GeometryViewer-module-fullParentSize_u_ig7 {\\n  width: 100%;\\n  height: 100%;\\n  top: 0;\\n  left: 0;\\n  overflow: hidden;\\n}\\n\\n.GeometryViewer-module-selector_b3RFk {\\n  background: transparent;\\n  border: none;\\n  margin: 5px;\\n  z-index: 1;\\n  max-width: 100px;\\n  min-width: 100px;\\n}\\n\\nlabel.GeometryViewer-module-selector_b3RFk {\\n  font-size: 12px;\\n  text-overflow: ellipsis;\\n  overflow: hidden;\\n}\\n\\nselect:focus {\\n  outline: none;\\n  border: none;\\n}\\n\\n.GeometryViewer-module-progress_vtQSA {\\n  -webkit-box-flex: 0;\\n      -ms-flex: none;\\n          flex: none;\\n  font-size: 50px;\\n  color: white;\\n  z-index: 1;\\n  background: rgba(128, 128, 128, .5);\\n  padding: 20px;\\n  border-radius: 10px;\\n  -webkit-user-select: none;\\n     -moz-user-select: none;\\n      -ms-user-select: none;\\n          user-select: none;\\n}\\n\\n.GeometryViewer-module-dark_S2aIf {\\n  color: white;\\n}\\n\\n.GeometryViewer-module-dark_S2aIf option {\\n  color: black;\\n}\\n\\n.GeometryViewer-module-light_vBd0Y {\\n  color: black;\\n}\\n\\n.GeometryViewer-module-light_vBd0Y option {\\n  color: white;\\n}\\n\\n.GeometryViewer-module-fpsMonitor_W0nkb {\\n  /* position: absolute; */\\n  bottom: 10px;\\n  left: 10px;\\n  background-color: rgba(255, 255, 255, 0.5);\\n  border-radius: 5px;\\n  border: solid 1px gray;\\n}\\n\", \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"button\": \"GeometryViewer-module-button_T2Q5H\",\n\t\"rootController\": \"GeometryViewer-module-rootController_YzrXm\",\n\t\"control\": \"GeometryViewer-module-control_VzNfo\",\n\t\"fullScreen\": \"GeometryViewer-module-fullScreen_wznn8\",\n\t\"fullParentSize\": \"GeometryViewer-module-fullParentSize_u_ig7\",\n\t\"selector\": \"GeometryViewer-module-selector_b3RFk\",\n\t\"progress\": \"GeometryViewer-module-progress_vtQSA\",\n\t\"dark\": \"GeometryViewer-module-dark_S2aIf GeometryViewer-module-selector_b3RFk\",\n\t\"light\": \"GeometryViewer-module-light_vBd0Y GeometryViewer-module-selector_b3RFk\",\n\t\"fpsMonitor\": \"GeometryViewer-module-fpsMonitor_W0nkb\"\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://vtkjs_viewer/./src/GeometryViewer.module.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B1%5D!./node_modules/postcss-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B2%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/api.js":
/*!*****************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
  \*****************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = \"\";\n      var needLayer = typeof item[5] !== \"undefined\";\n\n      if (item[4]) {\n        content += \"@supports (\".concat(item[4], \") {\");\n      }\n\n      if (item[2]) {\n        content += \"@media \".concat(item[2], \" {\");\n      }\n\n      if (needLayer) {\n        content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n      }\n\n      content += cssWithMappingToString(item);\n\n      if (needLayer) {\n        content += \"}\";\n      }\n\n      if (item[2]) {\n        content += \"}\";\n      }\n\n      if (item[4]) {\n        content += \"}\";\n      }\n\n      return content;\n    }).join(\"\");\n  }; // import a list of modules into the list\n\n\n  list.i = function i(modules, media, dedupe, supports, layer) {\n    if (typeof modules === \"string\") {\n      modules = [[null, modules, undefined]];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var k = 0; k < this.length; k++) {\n        var id = this[k][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _k = 0; _k < modules.length; _k++) {\n      var item = [].concat(modules[_k]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        continue;\n      }\n\n      if (typeof layer !== \"undefined\") {\n        if (typeof item[5] === \"undefined\") {\n          item[5] = layer;\n        } else {\n          item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n          item[5] = layer;\n        }\n      }\n\n      if (media) {\n        if (!item[2]) {\n          item[2] = media;\n        } else {\n          item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n          item[2] = media;\n        }\n      }\n\n      if (supports) {\n        if (!item[4]) {\n          item[4] = \"\".concat(supports);\n        } else {\n          item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n          item[4] = supports;\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/css-loader/dist/runtime/api.js?");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js":
/*!**************************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/noSourceMaps.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nmodule.exports = function (i) {\n  return i[1];\n};\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/css-loader/dist/runtime/noSourceMaps.js?");

/***/ }),

/***/ "./node_modules/define-properties/index.js":
/*!*************************************************!*\
  !*** ./node_modules/define-properties/index.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar keys = __webpack_require__(/*! object-keys */ \"./node_modules/object-keys/index.js\");\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/define-properties/index.js?");

/***/ }),

/***/ "./node_modules/gl-matrix/esm/common.js":
/*!**********************************************!*\
  !*** ./node_modules/gl-matrix/esm/common.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"ARRAY_TYPE\": () => (/* binding */ ARRAY_TYPE),\n/* harmony export */   \"EPSILON\": () => (/* binding */ EPSILON),\n/* harmony export */   \"RANDOM\": () => (/* binding */ RANDOM),\n/* harmony export */   \"equals\": () => (/* binding */ equals),\n/* harmony export */   \"setMatrixArrayType\": () => (/* binding */ setMatrixArrayType),\n/* harmony export */   \"toRadian\": () => (/* binding */ toRadian)\n/* harmony export */ });\n/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nvar EPSILON = 0.000001;\nvar ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nfunction setMatrixArrayType(type) {\n  ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nfunction toRadian(a) {\n  return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nfunction equals(a, b) {\n  return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n  var y = 0,\n      i = arguments.length;\n\n  while (i--) {\n    y += arguments[i] * arguments[i];\n  }\n\n  return Math.sqrt(y);\n};\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/gl-matrix/esm/common.js?");

/***/ }),

/***/ "./node_modules/gl-matrix/esm/mat3.js":
/*!********************************************!*\
  !*** ./node_modules/gl-matrix/esm/mat3.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"add\": () => (/* binding */ add),\n/* harmony export */   \"adjoint\": () => (/* binding */ adjoint),\n/* harmony export */   \"clone\": () => (/* binding */ clone),\n/* harmony export */   \"copy\": () => (/* binding */ copy),\n/* harmony export */   \"create\": () => (/* binding */ create),\n/* harmony export */   \"determinant\": () => (/* binding */ determinant),\n/* harmony export */   \"equals\": () => (/* binding */ equals),\n/* harmony export */   \"exactEquals\": () => (/* binding */ exactEquals),\n/* harmony export */   \"frob\": () => (/* binding */ frob),\n/* harmony export */   \"fromMat2d\": () => (/* binding */ fromMat2d),\n/* harmony export */   \"fromMat4\": () => (/* binding */ fromMat4),\n/* harmony export */   \"fromQuat\": () => (/* binding */ fromQuat),\n/* harmony export */   \"fromRotation\": () => (/* binding */ fromRotation),\n/* harmony export */   \"fromScaling\": () => (/* binding */ fromScaling),\n/* harmony export */   \"fromTranslation\": () => (/* binding */ fromTranslation),\n/* harmony export */   \"fromValues\": () => (/* binding */ fromValues),\n/* harmony export */   \"identity\": () => (/* binding */ identity),\n/* harmony export */   \"invert\": () => (/* binding */ invert),\n/* harmony export */   \"mul\": () => (/* binding */ mul),\n/* harmony export */   \"multiply\": () => (/* binding */ multiply),\n/* harmony export */   \"multiplyScalar\": () => (/* binding */ multiplyScalar),\n/* harmony export */   \"multiplyScalarAndAdd\": () => (/* binding */ multiplyScalarAndAdd),\n/* harmony export */   \"normalFromMat4\": () => (/* binding */ normalFromMat4),\n/* harmony export */   \"projection\": () => (/* binding */ projection),\n/* harmony export */   \"rotate\": () => (/* binding */ rotate),\n/* harmony export */   \"scale\": () => (/* binding */ scale),\n/* harmony export */   \"set\": () => (/* binding */ set),\n/* harmony export */   \"str\": () => (/* binding */ str),\n/* harmony export */   \"sub\": () => (/* binding */ sub),\n/* harmony export */   \"subtract\": () => (/* binding */ subtract),\n/* harmony export */   \"translate\": () => (/* binding */ translate),\n/* harmony export */   \"transpose\": () => (/* binding */ transpose)\n/* harmony export */ });\n/* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.js */ \"./node_modules/gl-matrix/esm/common.js\");\n\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\n\nfunction create() {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(9);\n\n  if (_common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE != Float32Array) {\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[5] = 0;\n    out[6] = 0;\n    out[7] = 0;\n  }\n\n  out[0] = 1;\n  out[4] = 1;\n  out[8] = 1;\n  return out;\n}\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a   the source 4x4 matrix\n * @returns {mat3} out\n */\n\nfunction fromMat4(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[4];\n  out[4] = a[5];\n  out[5] = a[6];\n  out[6] = a[8];\n  out[7] = a[9];\n  out[8] = a[10];\n  return out;\n}\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\n\nfunction clone(a) {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(9);\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  out[4] = a[4];\n  out[5] = a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  return out;\n}\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nfunction copy(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  out[4] = a[4];\n  out[5] = a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  return out;\n}\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\n\nfunction fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(9);\n  out[0] = m00;\n  out[1] = m01;\n  out[2] = m02;\n  out[3] = m10;\n  out[4] = m11;\n  out[5] = m12;\n  out[6] = m20;\n  out[7] = m21;\n  out[8] = m22;\n  return out;\n}\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\n\nfunction set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n  out[0] = m00;\n  out[1] = m01;\n  out[2] = m02;\n  out[3] = m10;\n  out[4] = m11;\n  out[5] = m12;\n  out[6] = m20;\n  out[7] = m21;\n  out[8] = m22;\n  return out;\n}\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\n\nfunction identity(out) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 1;\n  out[5] = 0;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 1;\n  return out;\n}\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nfunction transpose(out, a) {\n  // If we are transposing ourselves we can skip a few steps but have to cache some values\n  if (out === a) {\n    var a01 = a[1],\n        a02 = a[2],\n        a12 = a[5];\n    out[1] = a[3];\n    out[2] = a[6];\n    out[3] = a01;\n    out[5] = a[7];\n    out[6] = a02;\n    out[7] = a12;\n  } else {\n    out[0] = a[0];\n    out[1] = a[3];\n    out[2] = a[6];\n    out[3] = a[1];\n    out[4] = a[4];\n    out[5] = a[7];\n    out[6] = a[2];\n    out[7] = a[5];\n    out[8] = a[8];\n  }\n\n  return out;\n}\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nfunction invert(out, a) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2];\n  var a10 = a[3],\n      a11 = a[4],\n      a12 = a[5];\n  var a20 = a[6],\n      a21 = a[7],\n      a22 = a[8];\n  var b01 = a22 * a11 - a12 * a21;\n  var b11 = -a22 * a10 + a12 * a20;\n  var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n  var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n  if (!det) {\n    return null;\n  }\n\n  det = 1.0 / det;\n  out[0] = b01 * det;\n  out[1] = (-a22 * a01 + a02 * a21) * det;\n  out[2] = (a12 * a01 - a02 * a11) * det;\n  out[3] = b11 * det;\n  out[4] = (a22 * a00 - a02 * a20) * det;\n  out[5] = (-a12 * a00 + a02 * a10) * det;\n  out[6] = b21 * det;\n  out[7] = (-a21 * a00 + a01 * a20) * det;\n  out[8] = (a11 * a00 - a01 * a10) * det;\n  return out;\n}\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nfunction adjoint(out, a) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2];\n  var a10 = a[3],\n      a11 = a[4],\n      a12 = a[5];\n  var a20 = a[6],\n      a21 = a[7],\n      a22 = a[8];\n  out[0] = a11 * a22 - a12 * a21;\n  out[1] = a02 * a21 - a01 * a22;\n  out[2] = a01 * a12 - a02 * a11;\n  out[3] = a12 * a20 - a10 * a22;\n  out[4] = a00 * a22 - a02 * a20;\n  out[5] = a02 * a10 - a00 * a12;\n  out[6] = a10 * a21 - a11 * a20;\n  out[7] = a01 * a20 - a00 * a21;\n  out[8] = a00 * a11 - a01 * a10;\n  return out;\n}\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\n\nfunction determinant(a) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2];\n  var a10 = a[3],\n      a11 = a[4],\n      a12 = a[5];\n  var a20 = a[6],\n      a21 = a[7],\n      a22 = a[8];\n  return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nfunction multiply(out, a, b) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2];\n  var a10 = a[3],\n      a11 = a[4],\n      a12 = a[5];\n  var a20 = a[6],\n      a21 = a[7],\n      a22 = a[8];\n  var b00 = b[0],\n      b01 = b[1],\n      b02 = b[2];\n  var b10 = b[3],\n      b11 = b[4],\n      b12 = b[5];\n  var b20 = b[6],\n      b21 = b[7],\n      b22 = b[8];\n  out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n  out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n  out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n  out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n  out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n  out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n  out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n  out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n  out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n  return out;\n}\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\n\nfunction translate(out, a, v) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2],\n      a10 = a[3],\n      a11 = a[4],\n      a12 = a[5],\n      a20 = a[6],\n      a21 = a[7],\n      a22 = a[8],\n      x = v[0],\n      y = v[1];\n  out[0] = a00;\n  out[1] = a01;\n  out[2] = a02;\n  out[3] = a10;\n  out[4] = a11;\n  out[5] = a12;\n  out[6] = x * a00 + y * a10 + a20;\n  out[7] = x * a01 + y * a11 + a21;\n  out[8] = x * a02 + y * a12 + a22;\n  return out;\n}\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nfunction rotate(out, a, rad) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2],\n      a10 = a[3],\n      a11 = a[4],\n      a12 = a[5],\n      a20 = a[6],\n      a21 = a[7],\n      a22 = a[8],\n      s = Math.sin(rad),\n      c = Math.cos(rad);\n  out[0] = c * a00 + s * a10;\n  out[1] = c * a01 + s * a11;\n  out[2] = c * a02 + s * a12;\n  out[3] = c * a10 - s * a00;\n  out[4] = c * a11 - s * a01;\n  out[5] = c * a12 - s * a02;\n  out[6] = a20;\n  out[7] = a21;\n  out[8] = a22;\n  return out;\n}\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\n\nfunction scale(out, a, v) {\n  var x = v[0],\n      y = v[1];\n  out[0] = x * a[0];\n  out[1] = x * a[1];\n  out[2] = x * a[2];\n  out[3] = y * a[3];\n  out[4] = y * a[4];\n  out[5] = y * a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n *     mat3.identity(dest);\n *     mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\n\nfunction fromTranslation(out, v) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 1;\n  out[5] = 0;\n  out[6] = v[0];\n  out[7] = v[1];\n  out[8] = 1;\n  return out;\n}\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n *     mat3.identity(dest);\n *     mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nfunction fromRotation(out, rad) {\n  var s = Math.sin(rad),\n      c = Math.cos(rad);\n  out[0] = c;\n  out[1] = s;\n  out[2] = 0;\n  out[3] = -s;\n  out[4] = c;\n  out[5] = 0;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 1;\n  return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n *     mat3.identity(dest);\n *     mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\n\nfunction fromScaling(out, v) {\n  out[0] = v[0];\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = v[1];\n  out[5] = 0;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 1;\n  return out;\n}\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\n\nfunction fromMat2d(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = 0;\n  out[3] = a[2];\n  out[4] = a[3];\n  out[5] = 0;\n  out[6] = a[4];\n  out[7] = a[5];\n  out[8] = 1;\n  return out;\n}\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\n\nfunction fromQuat(out, q) {\n  var x = q[0],\n      y = q[1],\n      z = q[2],\n      w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var yx = y * x2;\n  var yy = y * y2;\n  var zx = z * x2;\n  var zy = z * y2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  out[0] = 1 - yy - zz;\n  out[3] = yx - wz;\n  out[6] = zx + wy;\n  out[1] = yx + wz;\n  out[4] = 1 - xx - zz;\n  out[7] = zy - wx;\n  out[2] = zx - wy;\n  out[5] = zy + wx;\n  out[8] = 1 - xx - yy;\n  return out;\n}\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\n\nfunction normalFromMat4(out, a) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2],\n      a03 = a[3];\n  var a10 = a[4],\n      a11 = a[5],\n      a12 = a[6],\n      a13 = a[7];\n  var a20 = a[8],\n      a21 = a[9],\n      a22 = a[10],\n      a23 = a[11];\n  var a30 = a[12],\n      a31 = a[13],\n      a32 = a[14],\n      a33 = a[15];\n  var b00 = a00 * a11 - a01 * a10;\n  var b01 = a00 * a12 - a02 * a10;\n  var b02 = a00 * a13 - a03 * a10;\n  var b03 = a01 * a12 - a02 * a11;\n  var b04 = a01 * a13 - a03 * a11;\n  var b05 = a02 * a13 - a03 * a12;\n  var b06 = a20 * a31 - a21 * a30;\n  var b07 = a20 * a32 - a22 * a30;\n  var b08 = a20 * a33 - a23 * a30;\n  var b09 = a21 * a32 - a22 * a31;\n  var b10 = a21 * a33 - a23 * a31;\n  var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n  var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n  if (!det) {\n    return null;\n  }\n\n  det = 1.0 / det;\n  out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n  out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n  out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n  out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n  out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n  out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n  out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n  out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n  out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n  return out;\n}\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\n\nfunction projection(out, width, height) {\n  out[0] = 2 / width;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = -2 / height;\n  out[5] = 0;\n  out[6] = -1;\n  out[7] = 1;\n  out[8] = 1;\n  return out;\n}\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nfunction str(a) {\n  return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nfunction frob(a) {\n  return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n}\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nfunction add(out, a, b) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  out[2] = a[2] + b[2];\n  out[3] = a[3] + b[3];\n  out[4] = a[4] + b[4];\n  out[5] = a[5] + b[5];\n  out[6] = a[6] + b[6];\n  out[7] = a[7] + b[7];\n  out[8] = a[8] + b[8];\n  return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nfunction subtract(out, a, b) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  out[2] = a[2] - b[2];\n  out[3] = a[3] - b[3];\n  out[4] = a[4] - b[4];\n  out[5] = a[5] - b[5];\n  out[6] = a[6] - b[6];\n  out[7] = a[7] - b[7];\n  out[8] = a[8] - b[8];\n  return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\n\nfunction multiplyScalar(out, a, b) {\n  out[0] = a[0] * b;\n  out[1] = a[1] * b;\n  out[2] = a[2] * b;\n  out[3] = a[3] * b;\n  out[4] = a[4] * b;\n  out[5] = a[5] * b;\n  out[6] = a[6] * b;\n  out[7] = a[7] * b;\n  out[8] = a[8] * b;\n  return out;\n}\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} out\n */\n\nfunction multiplyScalarAndAdd(out, a, b, scale) {\n  out[0] = a[0] + b[0] * scale;\n  out[1] = a[1] + b[1] * scale;\n  out[2] = a[2] + b[2] * scale;\n  out[3] = a[3] + b[3] * scale;\n  out[4] = a[4] + b[4] * scale;\n  out[5] = a[5] + b[5] * scale;\n  out[6] = a[6] + b[6] * scale;\n  out[7] = a[7] + b[7] * scale;\n  out[8] = a[8] + b[8] * scale;\n  return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nfunction exactEquals(a, b) {\n  return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nfunction equals(a, b) {\n  var a0 = a[0],\n      a1 = a[1],\n      a2 = a[2],\n      a3 = a[3],\n      a4 = a[4],\n      a5 = a[5],\n      a6 = a[6],\n      a7 = a[7],\n      a8 = a[8];\n  var b0 = b[0],\n      b1 = b[1],\n      b2 = b[2],\n      b3 = b[3],\n      b4 = b[4],\n      b5 = b[5],\n      b6 = b[6],\n      b7 = b[7],\n      b8 = b[8];\n  return Math.abs(a0 - b0) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\n\nvar mul = multiply;\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\n\nvar sub = subtract;\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/gl-matrix/esm/mat3.js?");

/***/ }),

/***/ "./node_modules/gl-matrix/esm/mat4.js":
/*!********************************************!*\
  !*** ./node_modules/gl-matrix/esm/mat4.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"add\": () => (/* binding */ add),\n/* harmony export */   \"adjoint\": () => (/* binding */ adjoint),\n/* harmony export */   \"clone\": () => (/* binding */ clone),\n/* harmony export */   \"copy\": () => (/* binding */ copy),\n/* harmony export */   \"create\": () => (/* binding */ create),\n/* harmony export */   \"determinant\": () => (/* binding */ determinant),\n/* harmony export */   \"equals\": () => (/* binding */ equals),\n/* harmony export */   \"exactEquals\": () => (/* binding */ exactEquals),\n/* harmony export */   \"frob\": () => (/* binding */ frob),\n/* harmony export */   \"fromQuat\": () => (/* binding */ fromQuat),\n/* harmony export */   \"fromQuat2\": () => (/* binding */ fromQuat2),\n/* harmony export */   \"fromRotation\": () => (/* binding */ fromRotation),\n/* harmony export */   \"fromRotationTranslation\": () => (/* binding */ fromRotationTranslation),\n/* harmony export */   \"fromRotationTranslationScale\": () => (/* binding */ fromRotationTranslationScale),\n/* harmony export */   \"fromRotationTranslationScaleOrigin\": () => (/* binding */ fromRotationTranslationScaleOrigin),\n/* harmony export */   \"fromScaling\": () => (/* binding */ fromScaling),\n/* harmony export */   \"fromTranslation\": () => (/* binding */ fromTranslation),\n/* harmony export */   \"fromValues\": () => (/* binding */ fromValues),\n/* harmony export */   \"fromXRotation\": () => (/* binding */ fromXRotation),\n/* harmony export */   \"fromYRotation\": () => (/* binding */ fromYRotation),\n/* harmony export */   \"fromZRotation\": () => (/* binding */ fromZRotation),\n/* harmony export */   \"frustum\": () => (/* binding */ frustum),\n/* harmony export */   \"getRotation\": () => (/* binding */ getRotation),\n/* harmony export */   \"getScaling\": () => (/* binding */ getScaling),\n/* harmony export */   \"getTranslation\": () => (/* binding */ getTranslation),\n/* harmony export */   \"identity\": () => (/* binding */ identity),\n/* harmony export */   \"invert\": () => (/* binding */ invert),\n/* harmony export */   \"lookAt\": () => (/* binding */ lookAt),\n/* harmony export */   \"mul\": () => (/* binding */ mul),\n/* harmony export */   \"multiply\": () => (/* binding */ multiply),\n/* harmony export */   \"multiplyScalar\": () => (/* binding */ multiplyScalar),\n/* harmony export */   \"multiplyScalarAndAdd\": () => (/* binding */ multiplyScalarAndAdd),\n/* harmony export */   \"ortho\": () => (/* binding */ ortho),\n/* harmony export */   \"orthoNO\": () => (/* binding */ orthoNO),\n/* harmony export */   \"orthoZO\": () => (/* binding */ orthoZO),\n/* harmony export */   \"perspective\": () => (/* binding */ perspective),\n/* harmony export */   \"perspectiveFromFieldOfView\": () => (/* binding */ perspectiveFromFieldOfView),\n/* harmony export */   \"perspectiveNO\": () => (/* binding */ perspectiveNO),\n/* harmony export */   \"perspectiveZO\": () => (/* binding */ perspectiveZO),\n/* harmony export */   \"rotate\": () => (/* binding */ rotate),\n/* harmony export */   \"rotateX\": () => (/* binding */ rotateX),\n/* harmony export */   \"rotateY\": () => (/* binding */ rotateY),\n/* harmony export */   \"rotateZ\": () => (/* binding */ rotateZ),\n/* harmony export */   \"scale\": () => (/* binding */ scale),\n/* harmony export */   \"set\": () => (/* binding */ set),\n/* harmony export */   \"str\": () => (/* binding */ str),\n/* harmony export */   \"sub\": () => (/* binding */ sub),\n/* harmony export */   \"subtract\": () => (/* binding */ subtract),\n/* harmony export */   \"targetTo\": () => (/* binding */ targetTo),\n/* harmony export */   \"translate\": () => (/* binding */ translate),\n/* harmony export */   \"transpose\": () => (/* binding */ transpose)\n/* harmony export */ });\n/* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.js */ \"./node_modules/gl-matrix/esm/common.js\");\n\n/**\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\n\nfunction create() {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(16);\n\n  if (_common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE != Float32Array) {\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 0;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 0;\n    out[9] = 0;\n    out[11] = 0;\n    out[12] = 0;\n    out[13] = 0;\n    out[14] = 0;\n  }\n\n  out[0] = 1;\n  out[5] = 1;\n  out[10] = 1;\n  out[15] = 1;\n  return out;\n}\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\n\nfunction clone(a) {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(16);\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  out[4] = a[4];\n  out[5] = a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  out[9] = a[9];\n  out[10] = a[10];\n  out[11] = a[11];\n  out[12] = a[12];\n  out[13] = a[13];\n  out[14] = a[14];\n  out[15] = a[15];\n  return out;\n}\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nfunction copy(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  out[4] = a[4];\n  out[5] = a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  out[9] = a[9];\n  out[10] = a[10];\n  out[11] = a[11];\n  out[12] = a[12];\n  out[13] = a[13];\n  out[14] = a[14];\n  out[15] = a[15];\n  return out;\n}\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\n\nfunction fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(16);\n  out[0] = m00;\n  out[1] = m01;\n  out[2] = m02;\n  out[3] = m03;\n  out[4] = m10;\n  out[5] = m11;\n  out[6] = m12;\n  out[7] = m13;\n  out[8] = m20;\n  out[9] = m21;\n  out[10] = m22;\n  out[11] = m23;\n  out[12] = m30;\n  out[13] = m31;\n  out[14] = m32;\n  out[15] = m33;\n  return out;\n}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\n\nfunction set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n  out[0] = m00;\n  out[1] = m01;\n  out[2] = m02;\n  out[3] = m03;\n  out[4] = m10;\n  out[5] = m11;\n  out[6] = m12;\n  out[7] = m13;\n  out[8] = m20;\n  out[9] = m21;\n  out[10] = m22;\n  out[11] = m23;\n  out[12] = m30;\n  out[13] = m31;\n  out[14] = m32;\n  out[15] = m33;\n  return out;\n}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\n\nfunction identity(out) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = 1;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = 1;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nfunction transpose(out, a) {\n  // If we are transposing ourselves we can skip a few steps but have to cache some values\n  if (out === a) {\n    var a01 = a[1],\n        a02 = a[2],\n        a03 = a[3];\n    var a12 = a[6],\n        a13 = a[7];\n    var a23 = a[11];\n    out[1] = a[4];\n    out[2] = a[8];\n    out[3] = a[12];\n    out[4] = a01;\n    out[6] = a[9];\n    out[7] = a[13];\n    out[8] = a02;\n    out[9] = a12;\n    out[11] = a[14];\n    out[12] = a03;\n    out[13] = a13;\n    out[14] = a23;\n  } else {\n    out[0] = a[0];\n    out[1] = a[4];\n    out[2] = a[8];\n    out[3] = a[12];\n    out[4] = a[1];\n    out[5] = a[5];\n    out[6] = a[9];\n    out[7] = a[13];\n    out[8] = a[2];\n    out[9] = a[6];\n    out[10] = a[10];\n    out[11] = a[14];\n    out[12] = a[3];\n    out[13] = a[7];\n    out[14] = a[11];\n    out[15] = a[15];\n  }\n\n  return out;\n}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nfunction invert(out, a) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2],\n      a03 = a[3];\n  var a10 = a[4],\n      a11 = a[5],\n      a12 = a[6],\n      a13 = a[7];\n  var a20 = a[8],\n      a21 = a[9],\n      a22 = a[10],\n      a23 = a[11];\n  var a30 = a[12],\n      a31 = a[13],\n      a32 = a[14],\n      a33 = a[15];\n  var b00 = a00 * a11 - a01 * a10;\n  var b01 = a00 * a12 - a02 * a10;\n  var b02 = a00 * a13 - a03 * a10;\n  var b03 = a01 * a12 - a02 * a11;\n  var b04 = a01 * a13 - a03 * a11;\n  var b05 = a02 * a13 - a03 * a12;\n  var b06 = a20 * a31 - a21 * a30;\n  var b07 = a20 * a32 - a22 * a30;\n  var b08 = a20 * a33 - a23 * a30;\n  var b09 = a21 * a32 - a22 * a31;\n  var b10 = a21 * a33 - a23 * a31;\n  var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n  var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n  if (!det) {\n    return null;\n  }\n\n  det = 1.0 / det;\n  out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n  out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n  out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n  out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n  out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n  out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n  out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n  out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n  out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n  out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n  out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n  out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n  out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n  out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n  out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n  out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n  return out;\n}\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nfunction adjoint(out, a) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2],\n      a03 = a[3];\n  var a10 = a[4],\n      a11 = a[5],\n      a12 = a[6],\n      a13 = a[7];\n  var a20 = a[8],\n      a21 = a[9],\n      a22 = a[10],\n      a23 = a[11];\n  var a30 = a[12],\n      a31 = a[13],\n      a32 = a[14],\n      a33 = a[15];\n  out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n  out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n  out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n  out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n  out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n  out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n  out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n  out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n  out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n  out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n  out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n  out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n  out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n  out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n  out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n  out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n  return out;\n}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\n\nfunction determinant(a) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2],\n      a03 = a[3];\n  var a10 = a[4],\n      a11 = a[5],\n      a12 = a[6],\n      a13 = a[7];\n  var a20 = a[8],\n      a21 = a[9],\n      a22 = a[10],\n      a23 = a[11];\n  var a30 = a[12],\n      a31 = a[13],\n      a32 = a[14],\n      a33 = a[15];\n  var b00 = a00 * a11 - a01 * a10;\n  var b01 = a00 * a12 - a02 * a10;\n  var b02 = a00 * a13 - a03 * a10;\n  var b03 = a01 * a12 - a02 * a11;\n  var b04 = a01 * a13 - a03 * a11;\n  var b05 = a02 * a13 - a03 * a12;\n  var b06 = a20 * a31 - a21 * a30;\n  var b07 = a20 * a32 - a22 * a30;\n  var b08 = a20 * a33 - a23 * a30;\n  var b09 = a21 * a32 - a22 * a31;\n  var b10 = a21 * a33 - a23 * a31;\n  var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n  return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nfunction multiply(out, a, b) {\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2],\n      a03 = a[3];\n  var a10 = a[4],\n      a11 = a[5],\n      a12 = a[6],\n      a13 = a[7];\n  var a20 = a[8],\n      a21 = a[9],\n      a22 = a[10],\n      a23 = a[11];\n  var a30 = a[12],\n      a31 = a[13],\n      a32 = a[14],\n      a33 = a[15]; // Cache only the current line of the second matrix\n\n  var b0 = b[0],\n      b1 = b[1],\n      b2 = b[2],\n      b3 = b[3];\n  out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n  out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n  out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n  out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n  b0 = b[4];\n  b1 = b[5];\n  b2 = b[6];\n  b3 = b[7];\n  out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n  out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n  out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n  out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n  b0 = b[8];\n  b1 = b[9];\n  b2 = b[10];\n  b3 = b[11];\n  out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n  out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n  out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n  out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n  b0 = b[12];\n  b1 = b[13];\n  b2 = b[14];\n  b3 = b[15];\n  out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n  out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n  out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n  out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n  return out;\n}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\n\nfunction translate(out, a, v) {\n  var x = v[0],\n      y = v[1],\n      z = v[2];\n  var a00, a01, a02, a03;\n  var a10, a11, a12, a13;\n  var a20, a21, a22, a23;\n\n  if (a === out) {\n    out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n    out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n    out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n    out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n  } else {\n    a00 = a[0];\n    a01 = a[1];\n    a02 = a[2];\n    a03 = a[3];\n    a10 = a[4];\n    a11 = a[5];\n    a12 = a[6];\n    a13 = a[7];\n    a20 = a[8];\n    a21 = a[9];\n    a22 = a[10];\n    a23 = a[11];\n    out[0] = a00;\n    out[1] = a01;\n    out[2] = a02;\n    out[3] = a03;\n    out[4] = a10;\n    out[5] = a11;\n    out[6] = a12;\n    out[7] = a13;\n    out[8] = a20;\n    out[9] = a21;\n    out[10] = a22;\n    out[11] = a23;\n    out[12] = a00 * x + a10 * y + a20 * z + a[12];\n    out[13] = a01 * x + a11 * y + a21 * z + a[13];\n    out[14] = a02 * x + a12 * y + a22 * z + a[14];\n    out[15] = a03 * x + a13 * y + a23 * z + a[15];\n  }\n\n  return out;\n}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\n\nfunction scale(out, a, v) {\n  var x = v[0],\n      y = v[1],\n      z = v[2];\n  out[0] = a[0] * x;\n  out[1] = a[1] * x;\n  out[2] = a[2] * x;\n  out[3] = a[3] * x;\n  out[4] = a[4] * y;\n  out[5] = a[5] * y;\n  out[6] = a[6] * y;\n  out[7] = a[7] * y;\n  out[8] = a[8] * z;\n  out[9] = a[9] * z;\n  out[10] = a[10] * z;\n  out[11] = a[11] * z;\n  out[12] = a[12];\n  out[13] = a[13];\n  out[14] = a[14];\n  out[15] = a[15];\n  return out;\n}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nfunction rotate(out, a, rad, axis) {\n  var x = axis[0],\n      y = axis[1],\n      z = axis[2];\n  var len = Math.hypot(x, y, z);\n  var s, c, t;\n  var a00, a01, a02, a03;\n  var a10, a11, a12, a13;\n  var a20, a21, a22, a23;\n  var b00, b01, b02;\n  var b10, b11, b12;\n  var b20, b21, b22;\n\n  if (len < _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON) {\n    return null;\n  }\n\n  len = 1 / len;\n  x *= len;\n  y *= len;\n  z *= len;\n  s = Math.sin(rad);\n  c = Math.cos(rad);\n  t = 1 - c;\n  a00 = a[0];\n  a01 = a[1];\n  a02 = a[2];\n  a03 = a[3];\n  a10 = a[4];\n  a11 = a[5];\n  a12 = a[6];\n  a13 = a[7];\n  a20 = a[8];\n  a21 = a[9];\n  a22 = a[10];\n  a23 = a[11]; // Construct the elements of the rotation matrix\n\n  b00 = x * x * t + c;\n  b01 = y * x * t + z * s;\n  b02 = z * x * t - y * s;\n  b10 = x * y * t - z * s;\n  b11 = y * y * t + c;\n  b12 = z * y * t + x * s;\n  b20 = x * z * t + y * s;\n  b21 = y * z * t - x * s;\n  b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n  out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n  out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n  out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n  out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n  out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n  out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n  out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n  out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n  out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n  out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n  out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n  out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n  if (a !== out) {\n    // If the source and destination differ, copy the unchanged last row\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n  }\n\n  return out;\n}\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nfunction rotateX(out, a, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n  var a10 = a[4];\n  var a11 = a[5];\n  var a12 = a[6];\n  var a13 = a[7];\n  var a20 = a[8];\n  var a21 = a[9];\n  var a22 = a[10];\n  var a23 = a[11];\n\n  if (a !== out) {\n    // If the source and destination differ, copy the unchanged rows\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n  } // Perform axis-specific matrix multiplication\n\n\n  out[4] = a10 * c + a20 * s;\n  out[5] = a11 * c + a21 * s;\n  out[6] = a12 * c + a22 * s;\n  out[7] = a13 * c + a23 * s;\n  out[8] = a20 * c - a10 * s;\n  out[9] = a21 * c - a11 * s;\n  out[10] = a22 * c - a12 * s;\n  out[11] = a23 * c - a13 * s;\n  return out;\n}\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nfunction rotateY(out, a, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n  var a00 = a[0];\n  var a01 = a[1];\n  var a02 = a[2];\n  var a03 = a[3];\n  var a20 = a[8];\n  var a21 = a[9];\n  var a22 = a[10];\n  var a23 = a[11];\n\n  if (a !== out) {\n    // If the source and destination differ, copy the unchanged rows\n    out[4] = a[4];\n    out[5] = a[5];\n    out[6] = a[6];\n    out[7] = a[7];\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n  } // Perform axis-specific matrix multiplication\n\n\n  out[0] = a00 * c - a20 * s;\n  out[1] = a01 * c - a21 * s;\n  out[2] = a02 * c - a22 * s;\n  out[3] = a03 * c - a23 * s;\n  out[8] = a00 * s + a20 * c;\n  out[9] = a01 * s + a21 * c;\n  out[10] = a02 * s + a22 * c;\n  out[11] = a03 * s + a23 * c;\n  return out;\n}\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nfunction rotateZ(out, a, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n  var a00 = a[0];\n  var a01 = a[1];\n  var a02 = a[2];\n  var a03 = a[3];\n  var a10 = a[4];\n  var a11 = a[5];\n  var a12 = a[6];\n  var a13 = a[7];\n\n  if (a !== out) {\n    // If the source and destination differ, copy the unchanged last row\n    out[8] = a[8];\n    out[9] = a[9];\n    out[10] = a[10];\n    out[11] = a[11];\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n  } // Perform axis-specific matrix multiplication\n\n\n  out[0] = a00 * c + a10 * s;\n  out[1] = a01 * c + a11 * s;\n  out[2] = a02 * c + a12 * s;\n  out[3] = a03 * c + a13 * s;\n  out[4] = a10 * c - a00 * s;\n  out[5] = a11 * c - a01 * s;\n  out[6] = a12 * c - a02 * s;\n  out[7] = a13 * c - a03 * s;\n  return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nfunction fromTranslation(out, v) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = 1;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = 1;\n  out[11] = 0;\n  out[12] = v[0];\n  out[13] = v[1];\n  out[14] = v[2];\n  out[15] = 1;\n  return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\n\nfunction fromScaling(out, v) {\n  out[0] = v[0];\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = v[1];\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = v[2];\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nfunction fromRotation(out, rad, axis) {\n  var x = axis[0],\n      y = axis[1],\n      z = axis[2];\n  var len = Math.hypot(x, y, z);\n  var s, c, t;\n\n  if (len < _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON) {\n    return null;\n  }\n\n  len = 1 / len;\n  x *= len;\n  y *= len;\n  z *= len;\n  s = Math.sin(rad);\n  c = Math.cos(rad);\n  t = 1 - c; // Perform rotation-specific matrix multiplication\n\n  out[0] = x * x * t + c;\n  out[1] = y * x * t + z * s;\n  out[2] = z * x * t - y * s;\n  out[3] = 0;\n  out[4] = x * y * t - z * s;\n  out[5] = y * y * t + c;\n  out[6] = z * y * t + x * s;\n  out[7] = 0;\n  out[8] = x * z * t + y * s;\n  out[9] = y * z * t - x * s;\n  out[10] = z * z * t + c;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nfunction fromXRotation(out, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = c;\n  out[6] = s;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = -s;\n  out[10] = c;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nfunction fromYRotation(out, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n  out[0] = c;\n  out[1] = 0;\n  out[2] = -s;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = 1;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = s;\n  out[9] = 0;\n  out[10] = c;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nfunction fromZRotation(out, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n  out[0] = c;\n  out[1] = s;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = -s;\n  out[5] = c;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = 1;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, vec);\n *     let quatMat = mat4.create();\n *     quat4.toMat4(quat, quatMat);\n *     mat4.multiply(dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nfunction fromRotationTranslation(out, q, v) {\n  // Quaternion math\n  var x = q[0],\n      y = q[1],\n      z = q[2],\n      w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var xy = x * y2;\n  var xz = x * z2;\n  var yy = y * y2;\n  var yz = y * z2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  out[0] = 1 - (yy + zz);\n  out[1] = xy + wz;\n  out[2] = xz - wy;\n  out[3] = 0;\n  out[4] = xy - wz;\n  out[5] = 1 - (xx + zz);\n  out[6] = yz + wx;\n  out[7] = 0;\n  out[8] = xz + wy;\n  out[9] = yz - wx;\n  out[10] = 1 - (xx + yy);\n  out[11] = 0;\n  out[12] = v[0];\n  out[13] = v[1];\n  out[14] = v[2];\n  out[15] = 1;\n  return out;\n}\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\n\nfunction fromQuat2(out, a) {\n  var translation = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(3);\n  var bx = -a[0],\n      by = -a[1],\n      bz = -a[2],\n      bw = a[3],\n      ax = a[4],\n      ay = a[5],\n      az = a[6],\n      aw = a[7];\n  var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n  if (magnitude > 0) {\n    translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n    translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n    translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n  } else {\n    translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n    translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n    translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n  }\n\n  fromRotationTranslation(out, a, translation);\n  return out;\n}\n/**\n * Returns the translation vector component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslation,\n *  the returned vector will be the same as the translation vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive translation component\n * @param  {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nfunction getTranslation(out, mat) {\n  out[0] = mat[12];\n  out[1] = mat[13];\n  out[2] = mat[14];\n  return out;\n}\n/**\n * Returns the scaling factor component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslationScale\n *  with a normalized Quaternion paramter, the returned vector will be\n *  the same as the scaling vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive scaling factor component\n * @param  {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nfunction getScaling(out, mat) {\n  var m11 = mat[0];\n  var m12 = mat[1];\n  var m13 = mat[2];\n  var m21 = mat[4];\n  var m22 = mat[5];\n  var m23 = mat[6];\n  var m31 = mat[8];\n  var m32 = mat[9];\n  var m33 = mat[10];\n  out[0] = Math.hypot(m11, m12, m13);\n  out[1] = Math.hypot(m21, m22, m23);\n  out[2] = Math.hypot(m31, m32, m33);\n  return out;\n}\n/**\n * Returns a quaternion representing the rotational component\n *  of a transformation matrix. If a matrix is built with\n *  fromRotationTranslation, the returned quaternion will be the\n *  same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\n\nfunction getRotation(out, mat) {\n  var scaling = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(3);\n  getScaling(scaling, mat);\n  var is1 = 1 / scaling[0];\n  var is2 = 1 / scaling[1];\n  var is3 = 1 / scaling[2];\n  var sm11 = mat[0] * is1;\n  var sm12 = mat[1] * is2;\n  var sm13 = mat[2] * is3;\n  var sm21 = mat[4] * is1;\n  var sm22 = mat[5] * is2;\n  var sm23 = mat[6] * is3;\n  var sm31 = mat[8] * is1;\n  var sm32 = mat[9] * is2;\n  var sm33 = mat[10] * is3;\n  var trace = sm11 + sm22 + sm33;\n  var S = 0;\n\n  if (trace > 0) {\n    S = Math.sqrt(trace + 1.0) * 2;\n    out[3] = 0.25 * S;\n    out[0] = (sm23 - sm32) / S;\n    out[1] = (sm31 - sm13) / S;\n    out[2] = (sm12 - sm21) / S;\n  } else if (sm11 > sm22 && sm11 > sm33) {\n    S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n    out[3] = (sm23 - sm32) / S;\n    out[0] = 0.25 * S;\n    out[1] = (sm12 + sm21) / S;\n    out[2] = (sm31 + sm13) / S;\n  } else if (sm22 > sm33) {\n    S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n    out[3] = (sm31 - sm13) / S;\n    out[0] = (sm12 + sm21) / S;\n    out[1] = 0.25 * S;\n    out[2] = (sm23 + sm32) / S;\n  } else {\n    S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n    out[3] = (sm12 - sm21) / S;\n    out[0] = (sm31 + sm13) / S;\n    out[1] = (sm23 + sm32) / S;\n    out[2] = 0.25 * S;\n  }\n\n  return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, vec);\n *     let quatMat = mat4.create();\n *     quat4.toMat4(quat, quatMat);\n *     mat4.multiply(dest, quatMat);\n *     mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\n\nfunction fromRotationTranslationScale(out, q, v, s) {\n  // Quaternion math\n  var x = q[0],\n      y = q[1],\n      z = q[2],\n      w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var xy = x * y2;\n  var xz = x * z2;\n  var yy = y * y2;\n  var yz = y * z2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  var sx = s[0];\n  var sy = s[1];\n  var sz = s[2];\n  out[0] = (1 - (yy + zz)) * sx;\n  out[1] = (xy + wz) * sx;\n  out[2] = (xz - wy) * sx;\n  out[3] = 0;\n  out[4] = (xy - wz) * sy;\n  out[5] = (1 - (xx + zz)) * sy;\n  out[6] = (yz + wx) * sy;\n  out[7] = 0;\n  out[8] = (xz + wy) * sz;\n  out[9] = (yz - wx) * sz;\n  out[10] = (1 - (xx + yy)) * sz;\n  out[11] = 0;\n  out[12] = v[0];\n  out[13] = v[1];\n  out[14] = v[2];\n  out[15] = 1;\n  return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, vec);\n *     mat4.translate(dest, origin);\n *     let quatMat = mat4.create();\n *     quat4.toMat4(quat, quatMat);\n *     mat4.multiply(dest, quatMat);\n *     mat4.scale(dest, scale)\n *     mat4.translate(dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\n\nfunction fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n  // Quaternion math\n  var x = q[0],\n      y = q[1],\n      z = q[2],\n      w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var xy = x * y2;\n  var xz = x * z2;\n  var yy = y * y2;\n  var yz = y * z2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  var sx = s[0];\n  var sy = s[1];\n  var sz = s[2];\n  var ox = o[0];\n  var oy = o[1];\n  var oz = o[2];\n  var out0 = (1 - (yy + zz)) * sx;\n  var out1 = (xy + wz) * sx;\n  var out2 = (xz - wy) * sx;\n  var out4 = (xy - wz) * sy;\n  var out5 = (1 - (xx + zz)) * sy;\n  var out6 = (yz + wx) * sy;\n  var out8 = (xz + wy) * sz;\n  var out9 = (yz - wx) * sz;\n  var out10 = (1 - (xx + yy)) * sz;\n  out[0] = out0;\n  out[1] = out1;\n  out[2] = out2;\n  out[3] = 0;\n  out[4] = out4;\n  out[5] = out5;\n  out[6] = out6;\n  out[7] = 0;\n  out[8] = out8;\n  out[9] = out9;\n  out[10] = out10;\n  out[11] = 0;\n  out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n  out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n  out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n  out[15] = 1;\n  return out;\n}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\n\nfunction fromQuat(out, q) {\n  var x = q[0],\n      y = q[1],\n      z = q[2],\n      w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var yx = y * x2;\n  var yy = y * y2;\n  var zx = z * x2;\n  var zy = z * y2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  out[0] = 1 - yy - zz;\n  out[1] = yx + wz;\n  out[2] = zx - wy;\n  out[3] = 0;\n  out[4] = yx - wz;\n  out[5] = 1 - xx - zz;\n  out[6] = zy + wx;\n  out[7] = 0;\n  out[8] = zx + wy;\n  out[9] = zy - wx;\n  out[10] = 1 - xx - yy;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nfunction frustum(out, left, right, bottom, top, near, far) {\n  var rl = 1 / (right - left);\n  var tb = 1 / (top - bottom);\n  var nf = 1 / (near - far);\n  out[0] = near * 2 * rl;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = near * 2 * tb;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = (right + left) * rl;\n  out[9] = (top + bottom) * tb;\n  out[10] = (far + near) * nf;\n  out[11] = -1;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = far * near * 2 * nf;\n  out[15] = 0;\n  return out;\n}\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nfunction perspectiveNO(out, fovy, aspect, near, far) {\n  var f = 1.0 / Math.tan(fovy / 2),\n      nf;\n  out[0] = f / aspect;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = f;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[11] = -1;\n  out[12] = 0;\n  out[13] = 0;\n  out[15] = 0;\n\n  if (far != null && far !== Infinity) {\n    nf = 1 / (near - far);\n    out[10] = (far + near) * nf;\n    out[14] = 2 * far * near * nf;\n  } else {\n    out[10] = -1;\n    out[14] = -2 * near;\n  }\n\n  return out;\n}\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\n\nvar perspective = perspectiveNO;\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nfunction perspectiveZO(out, fovy, aspect, near, far) {\n  var f = 1.0 / Math.tan(fovy / 2),\n      nf;\n  out[0] = f / aspect;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = f;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[11] = -1;\n  out[12] = 0;\n  out[13] = 0;\n  out[15] = 0;\n\n  if (far != null && far !== Infinity) {\n    nf = 1 / (near - far);\n    out[10] = far * nf;\n    out[14] = far * near * nf;\n  } else {\n    out[10] = -1;\n    out[14] = -near;\n  }\n\n  return out;\n}\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nfunction perspectiveFromFieldOfView(out, fov, near, far) {\n  var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n  var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n  var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n  var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n  var xScale = 2.0 / (leftTan + rightTan);\n  var yScale = 2.0 / (upTan + downTan);\n  out[0] = xScale;\n  out[1] = 0.0;\n  out[2] = 0.0;\n  out[3] = 0.0;\n  out[4] = 0.0;\n  out[5] = yScale;\n  out[6] = 0.0;\n  out[7] = 0.0;\n  out[8] = -((leftTan - rightTan) * xScale * 0.5);\n  out[9] = (upTan - downTan) * yScale * 0.5;\n  out[10] = far / (near - far);\n  out[11] = -1.0;\n  out[12] = 0.0;\n  out[13] = 0.0;\n  out[14] = far * near / (near - far);\n  out[15] = 0.0;\n  return out;\n}\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nfunction orthoNO(out, left, right, bottom, top, near, far) {\n  var lr = 1 / (left - right);\n  var bt = 1 / (bottom - top);\n  var nf = 1 / (near - far);\n  out[0] = -2 * lr;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = -2 * bt;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = 2 * nf;\n  out[11] = 0;\n  out[12] = (left + right) * lr;\n  out[13] = (top + bottom) * bt;\n  out[14] = (far + near) * nf;\n  out[15] = 1;\n  return out;\n}\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\n\nvar ortho = orthoNO;\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nfunction orthoZO(out, left, right, bottom, top, near, far) {\n  var lr = 1 / (left - right);\n  var bt = 1 / (bottom - top);\n  var nf = 1 / (near - far);\n  out[0] = -2 * lr;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = -2 * bt;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = nf;\n  out[11] = 0;\n  out[12] = (left + right) * lr;\n  out[13] = (top + bottom) * bt;\n  out[14] = near * nf;\n  out[15] = 1;\n  return out;\n}\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nfunction lookAt(out, eye, center, up) {\n  var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n  var eyex = eye[0];\n  var eyey = eye[1];\n  var eyez = eye[2];\n  var upx = up[0];\n  var upy = up[1];\n  var upz = up[2];\n  var centerx = center[0];\n  var centery = center[1];\n  var centerz = center[2];\n\n  if (Math.abs(eyex - centerx) < _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON && Math.abs(eyey - centery) < _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON && Math.abs(eyez - centerz) < _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON) {\n    return identity(out);\n  }\n\n  z0 = eyex - centerx;\n  z1 = eyey - centery;\n  z2 = eyez - centerz;\n  len = 1 / Math.hypot(z0, z1, z2);\n  z0 *= len;\n  z1 *= len;\n  z2 *= len;\n  x0 = upy * z2 - upz * z1;\n  x1 = upz * z0 - upx * z2;\n  x2 = upx * z1 - upy * z0;\n  len = Math.hypot(x0, x1, x2);\n\n  if (!len) {\n    x0 = 0;\n    x1 = 0;\n    x2 = 0;\n  } else {\n    len = 1 / len;\n    x0 *= len;\n    x1 *= len;\n    x2 *= len;\n  }\n\n  y0 = z1 * x2 - z2 * x1;\n  y1 = z2 * x0 - z0 * x2;\n  y2 = z0 * x1 - z1 * x0;\n  len = Math.hypot(y0, y1, y2);\n\n  if (!len) {\n    y0 = 0;\n    y1 = 0;\n    y2 = 0;\n  } else {\n    len = 1 / len;\n    y0 *= len;\n    y1 *= len;\n    y2 *= len;\n  }\n\n  out[0] = x0;\n  out[1] = y0;\n  out[2] = z0;\n  out[3] = 0;\n  out[4] = x1;\n  out[5] = y1;\n  out[6] = z1;\n  out[7] = 0;\n  out[8] = x2;\n  out[9] = y2;\n  out[10] = z2;\n  out[11] = 0;\n  out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n  out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n  out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n  out[15] = 1;\n  return out;\n}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nfunction targetTo(out, eye, target, up) {\n  var eyex = eye[0],\n      eyey = eye[1],\n      eyez = eye[2],\n      upx = up[0],\n      upy = up[1],\n      upz = up[2];\n  var z0 = eyex - target[0],\n      z1 = eyey - target[1],\n      z2 = eyez - target[2];\n  var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n  if (len > 0) {\n    len = 1 / Math.sqrt(len);\n    z0 *= len;\n    z1 *= len;\n    z2 *= len;\n  }\n\n  var x0 = upy * z2 - upz * z1,\n      x1 = upz * z0 - upx * z2,\n      x2 = upx * z1 - upy * z0;\n  len = x0 * x0 + x1 * x1 + x2 * x2;\n\n  if (len > 0) {\n    len = 1 / Math.sqrt(len);\n    x0 *= len;\n    x1 *= len;\n    x2 *= len;\n  }\n\n  out[0] = x0;\n  out[1] = x1;\n  out[2] = x2;\n  out[3] = 0;\n  out[4] = z1 * x2 - z2 * x1;\n  out[5] = z2 * x0 - z0 * x2;\n  out[6] = z0 * x1 - z1 * x0;\n  out[7] = 0;\n  out[8] = z0;\n  out[9] = z1;\n  out[10] = z2;\n  out[11] = 0;\n  out[12] = eyex;\n  out[13] = eyey;\n  out[14] = eyez;\n  out[15] = 1;\n  return out;\n}\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nfunction str(a) {\n  return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nfunction frob(a) {\n  return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nfunction add(out, a, b) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  out[2] = a[2] + b[2];\n  out[3] = a[3] + b[3];\n  out[4] = a[4] + b[4];\n  out[5] = a[5] + b[5];\n  out[6] = a[6] + b[6];\n  out[7] = a[7] + b[7];\n  out[8] = a[8] + b[8];\n  out[9] = a[9] + b[9];\n  out[10] = a[10] + b[10];\n  out[11] = a[11] + b[11];\n  out[12] = a[12] + b[12];\n  out[13] = a[13] + b[13];\n  out[14] = a[14] + b[14];\n  out[15] = a[15] + b[15];\n  return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nfunction subtract(out, a, b) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  out[2] = a[2] - b[2];\n  out[3] = a[3] - b[3];\n  out[4] = a[4] - b[4];\n  out[5] = a[5] - b[5];\n  out[6] = a[6] - b[6];\n  out[7] = a[7] - b[7];\n  out[8] = a[8] - b[8];\n  out[9] = a[9] - b[9];\n  out[10] = a[10] - b[10];\n  out[11] = a[11] - b[11];\n  out[12] = a[12] - b[12];\n  out[13] = a[13] - b[13];\n  out[14] = a[14] - b[14];\n  out[15] = a[15] - b[15];\n  return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\n\nfunction multiplyScalar(out, a, b) {\n  out[0] = a[0] * b;\n  out[1] = a[1] * b;\n  out[2] = a[2] * b;\n  out[3] = a[3] * b;\n  out[4] = a[4] * b;\n  out[5] = a[5] * b;\n  out[6] = a[6] * b;\n  out[7] = a[7] * b;\n  out[8] = a[8] * b;\n  out[9] = a[9] * b;\n  out[10] = a[10] * b;\n  out[11] = a[11] * b;\n  out[12] = a[12] * b;\n  out[13] = a[13] * b;\n  out[14] = a[14] * b;\n  out[15] = a[15] * b;\n  return out;\n}\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\n\nfunction multiplyScalarAndAdd(out, a, b, scale) {\n  out[0] = a[0] + b[0] * scale;\n  out[1] = a[1] + b[1] * scale;\n  out[2] = a[2] + b[2] * scale;\n  out[3] = a[3] + b[3] * scale;\n  out[4] = a[4] + b[4] * scale;\n  out[5] = a[5] + b[5] * scale;\n  out[6] = a[6] + b[6] * scale;\n  out[7] = a[7] + b[7] * scale;\n  out[8] = a[8] + b[8] * scale;\n  out[9] = a[9] + b[9] * scale;\n  out[10] = a[10] + b[10] * scale;\n  out[11] = a[11] + b[11] * scale;\n  out[12] = a[12] + b[12] * scale;\n  out[13] = a[13] + b[13] * scale;\n  out[14] = a[14] + b[14] * scale;\n  out[15] = a[15] + b[15] * scale;\n  return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nfunction exactEquals(a, b) {\n  return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nfunction equals(a, b) {\n  var a0 = a[0],\n      a1 = a[1],\n      a2 = a[2],\n      a3 = a[3];\n  var a4 = a[4],\n      a5 = a[5],\n      a6 = a[6],\n      a7 = a[7];\n  var a8 = a[8],\n      a9 = a[9],\n      a10 = a[10],\n      a11 = a[11];\n  var a12 = a[12],\n      a13 = a[13],\n      a14 = a[14],\n      a15 = a[15];\n  var b0 = b[0],\n      b1 = b[1],\n      b2 = b[2],\n      b3 = b[3];\n  var b4 = b[4],\n      b5 = b[5],\n      b6 = b[6],\n      b7 = b[7];\n  var b8 = b[8],\n      b9 = b[9],\n      b10 = b[10],\n      b11 = b[11];\n  var b12 = b[12],\n      b13 = b[13],\n      b14 = b[14],\n      b15 = b[15];\n  return Math.abs(a0 - b0) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\n\nvar mul = multiply;\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\n\nvar sub = subtract;\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/gl-matrix/esm/mat4.js?");

/***/ }),

/***/ "./node_modules/gl-matrix/esm/quat.js":
/*!********************************************!*\
  !*** ./node_modules/gl-matrix/esm/quat.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"add\": () => (/* binding */ add),\n/* harmony export */   \"calculateW\": () => (/* binding */ calculateW),\n/* harmony export */   \"clone\": () => (/* binding */ clone),\n/* harmony export */   \"conjugate\": () => (/* binding */ conjugate),\n/* harmony export */   \"copy\": () => (/* binding */ copy),\n/* harmony export */   \"create\": () => (/* binding */ create),\n/* harmony export */   \"dot\": () => (/* binding */ dot),\n/* harmony export */   \"equals\": () => (/* binding */ equals),\n/* harmony export */   \"exactEquals\": () => (/* binding */ exactEquals),\n/* harmony export */   \"exp\": () => (/* binding */ exp),\n/* harmony export */   \"fromEuler\": () => (/* binding */ fromEuler),\n/* harmony export */   \"fromMat3\": () => (/* binding */ fromMat3),\n/* harmony export */   \"fromValues\": () => (/* binding */ fromValues),\n/* harmony export */   \"getAngle\": () => (/* binding */ getAngle),\n/* harmony export */   \"getAxisAngle\": () => (/* binding */ getAxisAngle),\n/* harmony export */   \"identity\": () => (/* binding */ identity),\n/* harmony export */   \"invert\": () => (/* binding */ invert),\n/* harmony export */   \"len\": () => (/* binding */ len),\n/* harmony export */   \"length\": () => (/* binding */ length),\n/* harmony export */   \"lerp\": () => (/* binding */ lerp),\n/* harmony export */   \"ln\": () => (/* binding */ ln),\n/* harmony export */   \"mul\": () => (/* binding */ mul),\n/* harmony export */   \"multiply\": () => (/* binding */ multiply),\n/* harmony export */   \"normalize\": () => (/* binding */ normalize),\n/* harmony export */   \"pow\": () => (/* binding */ pow),\n/* harmony export */   \"random\": () => (/* binding */ random),\n/* harmony export */   \"rotateX\": () => (/* binding */ rotateX),\n/* harmony export */   \"rotateY\": () => (/* binding */ rotateY),\n/* harmony export */   \"rotateZ\": () => (/* binding */ rotateZ),\n/* harmony export */   \"rotationTo\": () => (/* binding */ rotationTo),\n/* harmony export */   \"scale\": () => (/* binding */ scale),\n/* harmony export */   \"set\": () => (/* binding */ set),\n/* harmony export */   \"setAxes\": () => (/* binding */ setAxes),\n/* harmony export */   \"setAxisAngle\": () => (/* binding */ setAxisAngle),\n/* harmony export */   \"slerp\": () => (/* binding */ slerp),\n/* harmony export */   \"sqlerp\": () => (/* binding */ sqlerp),\n/* harmony export */   \"sqrLen\": () => (/* binding */ sqrLen),\n/* harmony export */   \"squaredLength\": () => (/* binding */ squaredLength),\n/* harmony export */   \"str\": () => (/* binding */ str)\n/* harmony export */ });\n/* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.js */ \"./node_modules/gl-matrix/esm/common.js\");\n/* harmony import */ var _mat3_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mat3.js */ \"./node_modules/gl-matrix/esm/mat3.js\");\n/* harmony import */ var _vec3_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vec3.js */ \"./node_modules/gl-matrix/esm/vec3.js\");\n/* harmony import */ var _vec4_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./vec4.js */ \"./node_modules/gl-matrix/esm/vec4.js\");\n\n\n\n\n/**\n * Quaternion\n * @module quat\n */\n\n/**\n * Creates a new identity quat\n *\n * @returns {quat} a new quaternion\n */\n\nfunction create() {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(4);\n\n  if (_common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE != Float32Array) {\n    out[0] = 0;\n    out[1] = 0;\n    out[2] = 0;\n  }\n\n  out[3] = 1;\n  return out;\n}\n/**\n * Set a quat to the identity quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\n\nfunction identity(out) {\n  out[0] = 0;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 1;\n  return out;\n}\n/**\n * Sets a quat from the given angle and rotation axis,\n * then returns it.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyVec3} axis the axis around which to rotate\n * @param {Number} rad the angle in radians\n * @returns {quat} out\n **/\n\nfunction setAxisAngle(out, axis, rad) {\n  rad = rad * 0.5;\n  var s = Math.sin(rad);\n  out[0] = s * axis[0];\n  out[1] = s * axis[1];\n  out[2] = s * axis[2];\n  out[3] = Math.cos(rad);\n  return out;\n}\n/**\n * Gets the rotation axis and angle for a given\n *  quaternion. If a quaternion is created with\n *  setAxisAngle, this method will return the same\n *  values as providied in the original parameter list\n *  OR functionally equivalent values.\n * Example: The quaternion formed by axis [0, 0, 1] and\n *  angle -90 is the same as the quaternion formed by\n *  [0, 0, 1] and 270. This method favors the latter.\n * @param  {vec3} out_axis  Vector receiving the axis of rotation\n * @param  {ReadonlyQuat} q     Quaternion to be decomposed\n * @return {Number}     Angle, in radians, of the rotation\n */\n\nfunction getAxisAngle(out_axis, q) {\n  var rad = Math.acos(q[3]) * 2.0;\n  var s = Math.sin(rad / 2.0);\n\n  if (s > _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON) {\n    out_axis[0] = q[0] / s;\n    out_axis[1] = q[1] / s;\n    out_axis[2] = q[2] / s;\n  } else {\n    // If s is zero, return any axis (no rotation - axis does not matter)\n    out_axis[0] = 1;\n    out_axis[1] = 0;\n    out_axis[2] = 0;\n  }\n\n  return rad;\n}\n/**\n * Gets the angular distance between two unit quaternions\n *\n * @param  {ReadonlyQuat} a     Origin unit quaternion\n * @param  {ReadonlyQuat} b     Destination unit quaternion\n * @return {Number}     Angle, in radians, between the two quaternions\n */\n\nfunction getAngle(a, b) {\n  var dotproduct = dot(a, b);\n  return Math.acos(2 * dotproduct * dotproduct - 1);\n}\n/**\n * Multiplies two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {quat} out\n */\n\nfunction multiply(out, a, b) {\n  var ax = a[0],\n      ay = a[1],\n      az = a[2],\n      aw = a[3];\n  var bx = b[0],\n      by = b[1],\n      bz = b[2],\n      bw = b[3];\n  out[0] = ax * bw + aw * bx + ay * bz - az * by;\n  out[1] = ay * bw + aw * by + az * bx - ax * bz;\n  out[2] = az * bw + aw * bz + ax * by - ay * bx;\n  out[3] = aw * bw - ax * bx - ay * by - az * bz;\n  return out;\n}\n/**\n * Rotates a quaternion by the given angle about the X axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\n\nfunction rotateX(out, a, rad) {\n  rad *= 0.5;\n  var ax = a[0],\n      ay = a[1],\n      az = a[2],\n      aw = a[3];\n  var bx = Math.sin(rad),\n      bw = Math.cos(rad);\n  out[0] = ax * bw + aw * bx;\n  out[1] = ay * bw + az * bx;\n  out[2] = az * bw - ay * bx;\n  out[3] = aw * bw - ax * bx;\n  return out;\n}\n/**\n * Rotates a quaternion by the given angle about the Y axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\n\nfunction rotateY(out, a, rad) {\n  rad *= 0.5;\n  var ax = a[0],\n      ay = a[1],\n      az = a[2],\n      aw = a[3];\n  var by = Math.sin(rad),\n      bw = Math.cos(rad);\n  out[0] = ax * bw - az * by;\n  out[1] = ay * bw + aw * by;\n  out[2] = az * bw + ax * by;\n  out[3] = aw * bw - ay * by;\n  return out;\n}\n/**\n * Rotates a quaternion by the given angle about the Z axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\n\nfunction rotateZ(out, a, rad) {\n  rad *= 0.5;\n  var ax = a[0],\n      ay = a[1],\n      az = a[2],\n      aw = a[3];\n  var bz = Math.sin(rad),\n      bw = Math.cos(rad);\n  out[0] = ax * bw + ay * bz;\n  out[1] = ay * bw - ax * bz;\n  out[2] = az * bw + aw * bz;\n  out[3] = aw * bw - az * bz;\n  return out;\n}\n/**\n * Calculates the W component of a quat from the X, Y, and Z components.\n * Assumes that quaternion is 1 unit in length.\n * Any existing W component will be ignored.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate W component of\n * @returns {quat} out\n */\n\nfunction calculateW(out, a) {\n  var x = a[0],\n      y = a[1],\n      z = a[2];\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));\n  return out;\n}\n/**\n * Calculate the exponential of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @returns {quat} out\n */\n\nfunction exp(out, a) {\n  var x = a[0],\n      y = a[1],\n      z = a[2],\n      w = a[3];\n  var r = Math.sqrt(x * x + y * y + z * z);\n  var et = Math.exp(w);\n  var s = r > 0 ? et * Math.sin(r) / r : 0;\n  out[0] = x * s;\n  out[1] = y * s;\n  out[2] = z * s;\n  out[3] = et * Math.cos(r);\n  return out;\n}\n/**\n * Calculate the natural logarithm of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @returns {quat} out\n */\n\nfunction ln(out, a) {\n  var x = a[0],\n      y = a[1],\n      z = a[2],\n      w = a[3];\n  var r = Math.sqrt(x * x + y * y + z * z);\n  var t = r > 0 ? Math.atan2(r, w) / r : 0;\n  out[0] = x * t;\n  out[1] = y * t;\n  out[2] = z * t;\n  out[3] = 0.5 * Math.log(x * x + y * y + z * z + w * w);\n  return out;\n}\n/**\n * Calculate the scalar power of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @param {Number} b amount to scale the quaternion by\n * @returns {quat} out\n */\n\nfunction pow(out, a, b) {\n  ln(out, a);\n  scale(out, out, b);\n  exp(out, out);\n  return out;\n}\n/**\n * Performs a spherical linear interpolation between two quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n */\n\nfunction slerp(out, a, b, t) {\n  // benchmarks:\n  //    http://jsperf.com/quaternion-slerp-implementations\n  var ax = a[0],\n      ay = a[1],\n      az = a[2],\n      aw = a[3];\n  var bx = b[0],\n      by = b[1],\n      bz = b[2],\n      bw = b[3];\n  var omega, cosom, sinom, scale0, scale1; // calc cosine\n\n  cosom = ax * bx + ay * by + az * bz + aw * bw; // adjust signs (if necessary)\n\n  if (cosom < 0.0) {\n    cosom = -cosom;\n    bx = -bx;\n    by = -by;\n    bz = -bz;\n    bw = -bw;\n  } // calculate coefficients\n\n\n  if (1.0 - cosom > _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON) {\n    // standard case (slerp)\n    omega = Math.acos(cosom);\n    sinom = Math.sin(omega);\n    scale0 = Math.sin((1.0 - t) * omega) / sinom;\n    scale1 = Math.sin(t * omega) / sinom;\n  } else {\n    // \"from\" and \"to\" quaternions are very close\n    //  ... so we can do a linear interpolation\n    scale0 = 1.0 - t;\n    scale1 = t;\n  } // calculate final values\n\n\n  out[0] = scale0 * ax + scale1 * bx;\n  out[1] = scale0 * ay + scale1 * by;\n  out[2] = scale0 * az + scale1 * bz;\n  out[3] = scale0 * aw + scale1 * bw;\n  return out;\n}\n/**\n * Generates a random unit quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\n\nfunction random(out) {\n  // Implementation of http://planning.cs.uiuc.edu/node198.html\n  // TODO: Calling random 3 times is probably not the fastest solution\n  var u1 = _common_js__WEBPACK_IMPORTED_MODULE_0__.RANDOM();\n  var u2 = _common_js__WEBPACK_IMPORTED_MODULE_0__.RANDOM();\n  var u3 = _common_js__WEBPACK_IMPORTED_MODULE_0__.RANDOM();\n  var sqrt1MinusU1 = Math.sqrt(1 - u1);\n  var sqrtU1 = Math.sqrt(u1);\n  out[0] = sqrt1MinusU1 * Math.sin(2.0 * Math.PI * u2);\n  out[1] = sqrt1MinusU1 * Math.cos(2.0 * Math.PI * u2);\n  out[2] = sqrtU1 * Math.sin(2.0 * Math.PI * u3);\n  out[3] = sqrtU1 * Math.cos(2.0 * Math.PI * u3);\n  return out;\n}\n/**\n * Calculates the inverse of a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate inverse of\n * @returns {quat} out\n */\n\nfunction invert(out, a) {\n  var a0 = a[0],\n      a1 = a[1],\n      a2 = a[2],\n      a3 = a[3];\n  var dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;\n  var invDot = dot ? 1.0 / dot : 0; // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\n\n  out[0] = -a0 * invDot;\n  out[1] = -a1 * invDot;\n  out[2] = -a2 * invDot;\n  out[3] = a3 * invDot;\n  return out;\n}\n/**\n * Calculates the conjugate of a quat\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate conjugate of\n * @returns {quat} out\n */\n\nfunction conjugate(out, a) {\n  out[0] = -a[0];\n  out[1] = -a[1];\n  out[2] = -a[2];\n  out[3] = a[3];\n  return out;\n}\n/**\n * Creates a quaternion from the given 3x3 rotation matrix.\n *\n * NOTE: The resultant quaternion is not normalized, so you should be sure\n * to renormalize the quaternion yourself where necessary.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyMat3} m rotation matrix\n * @returns {quat} out\n * @function\n */\n\nfunction fromMat3(out, m) {\n  // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\n  // article \"Quaternion Calculus and Fast Animation\".\n  var fTrace = m[0] + m[4] + m[8];\n  var fRoot;\n\n  if (fTrace > 0.0) {\n    // |w| > 1/2, may as well choose w > 1/2\n    fRoot = Math.sqrt(fTrace + 1.0); // 2w\n\n    out[3] = 0.5 * fRoot;\n    fRoot = 0.5 / fRoot; // 1/(4w)\n\n    out[0] = (m[5] - m[7]) * fRoot;\n    out[1] = (m[6] - m[2]) * fRoot;\n    out[2] = (m[1] - m[3]) * fRoot;\n  } else {\n    // |w| <= 1/2\n    var i = 0;\n    if (m[4] > m[0]) i = 1;\n    if (m[8] > m[i * 3 + i]) i = 2;\n    var j = (i + 1) % 3;\n    var k = (i + 2) % 3;\n    fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0);\n    out[i] = 0.5 * fRoot;\n    fRoot = 0.5 / fRoot;\n    out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;\n    out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;\n    out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;\n  }\n\n  return out;\n}\n/**\n * Creates a quaternion from the given euler angle x, y, z.\n *\n * @param {quat} out the receiving quaternion\n * @param {x} Angle to rotate around X axis in degrees.\n * @param {y} Angle to rotate around Y axis in degrees.\n * @param {z} Angle to rotate around Z axis in degrees.\n * @returns {quat} out\n * @function\n */\n\nfunction fromEuler(out, x, y, z) {\n  var halfToRad = 0.5 * Math.PI / 180.0;\n  x *= halfToRad;\n  y *= halfToRad;\n  z *= halfToRad;\n  var sx = Math.sin(x);\n  var cx = Math.cos(x);\n  var sy = Math.sin(y);\n  var cy = Math.cos(y);\n  var sz = Math.sin(z);\n  var cz = Math.cos(z);\n  out[0] = sx * cy * cz - cx * sy * sz;\n  out[1] = cx * sy * cz + sx * cy * sz;\n  out[2] = cx * cy * sz - sx * sy * cz;\n  out[3] = cx * cy * cz + sx * sy * sz;\n  return out;\n}\n/**\n * Returns a string representation of a quatenion\n *\n * @param {ReadonlyQuat} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nfunction str(a) {\n  return \"quat(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\n * Creates a new quat initialized with values from an existing quaternion\n *\n * @param {ReadonlyQuat} a quaternion to clone\n * @returns {quat} a new quaternion\n * @function\n */\n\nvar clone = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.clone;\n/**\n * Creates a new quat initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} a new quaternion\n * @function\n */\n\nvar fromValues = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.fromValues;\n/**\n * Copy the values from one quat to another\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the source quaternion\n * @returns {quat} out\n * @function\n */\n\nvar copy = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.copy;\n/**\n * Set the components of a quat to the given values\n *\n * @param {quat} out the receiving quaternion\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} out\n * @function\n */\n\nvar set = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.set;\n/**\n * Adds two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {quat} out\n * @function\n */\n\nvar add = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.add;\n/**\n * Alias for {@link quat.multiply}\n * @function\n */\n\nvar mul = multiply;\n/**\n * Scales a quat by a scalar number\n *\n * @param {quat} out the receiving vector\n * @param {ReadonlyQuat} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {quat} out\n * @function\n */\n\nvar scale = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.scale;\n/**\n * Calculates the dot product of two quat's\n *\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {Number} dot product of a and b\n * @function\n */\n\nvar dot = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.dot;\n/**\n * Performs a linear interpolation between two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n * @function\n */\n\nvar lerp = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.lerp;\n/**\n * Calculates the length of a quat\n *\n * @param {ReadonlyQuat} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nvar length = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.length;\n/**\n * Alias for {@link quat.length}\n * @function\n */\n\nvar len = length;\n/**\n * Calculates the squared length of a quat\n *\n * @param {ReadonlyQuat} a vector to calculate squared length of\n * @returns {Number} squared length of a\n * @function\n */\n\nvar squaredLength = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.squaredLength;\n/**\n * Alias for {@link quat.squaredLength}\n * @function\n */\n\nvar sqrLen = squaredLength;\n/**\n * Normalize a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quaternion to normalize\n * @returns {quat} out\n * @function\n */\n\nvar normalize = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.normalize;\n/**\n * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyQuat} a The first quaternion.\n * @param {ReadonlyQuat} b The second quaternion.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nvar exactEquals = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.exactEquals;\n/**\n * Returns whether or not the quaternions have approximately the same elements in the same position.\n *\n * @param {ReadonlyQuat} a The first vector.\n * @param {ReadonlyQuat} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nvar equals = _vec4_js__WEBPACK_IMPORTED_MODULE_1__.equals;\n/**\n * Sets a quaternion to represent the shortest rotation from one\n * vector to another.\n *\n * Both vectors are assumed to be unit length.\n *\n * @param {quat} out the receiving quaternion.\n * @param {ReadonlyVec3} a the initial vector\n * @param {ReadonlyVec3} b the destination vector\n * @returns {quat} out\n */\n\nvar rotationTo = function () {\n  var tmpvec3 = _vec3_js__WEBPACK_IMPORTED_MODULE_2__.create();\n  var xUnitVec3 = _vec3_js__WEBPACK_IMPORTED_MODULE_2__.fromValues(1, 0, 0);\n  var yUnitVec3 = _vec3_js__WEBPACK_IMPORTED_MODULE_2__.fromValues(0, 1, 0);\n  return function (out, a, b) {\n    var dot = _vec3_js__WEBPACK_IMPORTED_MODULE_2__.dot(a, b);\n\n    if (dot < -0.999999) {\n      _vec3_js__WEBPACK_IMPORTED_MODULE_2__.cross(tmpvec3, xUnitVec3, a);\n      if (_vec3_js__WEBPACK_IMPORTED_MODULE_2__.len(tmpvec3) < 0.000001) _vec3_js__WEBPACK_IMPORTED_MODULE_2__.cross(tmpvec3, yUnitVec3, a);\n      _vec3_js__WEBPACK_IMPORTED_MODULE_2__.normalize(tmpvec3, tmpvec3);\n      setAxisAngle(out, tmpvec3, Math.PI);\n      return out;\n    } else if (dot > 0.999999) {\n      out[0] = 0;\n      out[1] = 0;\n      out[2] = 0;\n      out[3] = 1;\n      return out;\n    } else {\n      _vec3_js__WEBPACK_IMPORTED_MODULE_2__.cross(tmpvec3, a, b);\n      out[0] = tmpvec3[0];\n      out[1] = tmpvec3[1];\n      out[2] = tmpvec3[2];\n      out[3] = 1 + dot;\n      return normalize(out, out);\n    }\n  };\n}();\n/**\n * Performs a spherical linear interpolation with two control points\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {ReadonlyQuat} c the third operand\n * @param {ReadonlyQuat} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n */\n\nvar sqlerp = function () {\n  var temp1 = create();\n  var temp2 = create();\n  return function (out, a, b, c, d, t) {\n    slerp(temp1, a, d, t);\n    slerp(temp2, b, c, t);\n    slerp(out, temp1, temp2, 2 * t * (1 - t));\n    return out;\n  };\n}();\n/**\n * Sets the specified quaternion with values corresponding to the given\n * axes. Each axis is a vec3 and is expected to be unit length and\n * perpendicular to all other specified axes.\n *\n * @param {ReadonlyVec3} view  the vector representing the viewing direction\n * @param {ReadonlyVec3} right the vector representing the local \"right\" direction\n * @param {ReadonlyVec3} up    the vector representing the local \"up\" direction\n * @returns {quat} out\n */\n\nvar setAxes = function () {\n  var matr = _mat3_js__WEBPACK_IMPORTED_MODULE_3__.create();\n  return function (out, view, right, up) {\n    matr[0] = right[0];\n    matr[3] = right[1];\n    matr[6] = right[2];\n    matr[1] = up[0];\n    matr[4] = up[1];\n    matr[7] = up[2];\n    matr[2] = -view[0];\n    matr[5] = -view[1];\n    matr[8] = -view[2];\n    return normalize(out, fromMat3(out, matr));\n  };\n}();\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/gl-matrix/esm/quat.js?");

/***/ }),

/***/ "./node_modules/gl-matrix/esm/vec3.js":
/*!********************************************!*\
  !*** ./node_modules/gl-matrix/esm/vec3.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"add\": () => (/* binding */ add),\n/* harmony export */   \"angle\": () => (/* binding */ angle),\n/* harmony export */   \"bezier\": () => (/* binding */ bezier),\n/* harmony export */   \"ceil\": () => (/* binding */ ceil),\n/* harmony export */   \"clone\": () => (/* binding */ clone),\n/* harmony export */   \"copy\": () => (/* binding */ copy),\n/* harmony export */   \"create\": () => (/* binding */ create),\n/* harmony export */   \"cross\": () => (/* binding */ cross),\n/* harmony export */   \"dist\": () => (/* binding */ dist),\n/* harmony export */   \"distance\": () => (/* binding */ distance),\n/* harmony export */   \"div\": () => (/* binding */ div),\n/* harmony export */   \"divide\": () => (/* binding */ divide),\n/* harmony export */   \"dot\": () => (/* binding */ dot),\n/* harmony export */   \"equals\": () => (/* binding */ equals),\n/* harmony export */   \"exactEquals\": () => (/* binding */ exactEquals),\n/* harmony export */   \"floor\": () => (/* binding */ floor),\n/* harmony export */   \"forEach\": () => (/* binding */ forEach),\n/* harmony export */   \"fromValues\": () => (/* binding */ fromValues),\n/* harmony export */   \"hermite\": () => (/* binding */ hermite),\n/* harmony export */   \"inverse\": () => (/* binding */ inverse),\n/* harmony export */   \"len\": () => (/* binding */ len),\n/* harmony export */   \"length\": () => (/* binding */ length),\n/* harmony export */   \"lerp\": () => (/* binding */ lerp),\n/* harmony export */   \"max\": () => (/* binding */ max),\n/* harmony export */   \"min\": () => (/* binding */ min),\n/* harmony export */   \"mul\": () => (/* binding */ mul),\n/* harmony export */   \"multiply\": () => (/* binding */ multiply),\n/* harmony export */   \"negate\": () => (/* binding */ negate),\n/* harmony export */   \"normalize\": () => (/* binding */ normalize),\n/* harmony export */   \"random\": () => (/* binding */ random),\n/* harmony export */   \"rotateX\": () => (/* binding */ rotateX),\n/* harmony export */   \"rotateY\": () => (/* binding */ rotateY),\n/* harmony export */   \"rotateZ\": () => (/* binding */ rotateZ),\n/* harmony export */   \"round\": () => (/* binding */ round),\n/* harmony export */   \"scale\": () => (/* binding */ scale),\n/* harmony export */   \"scaleAndAdd\": () => (/* binding */ scaleAndAdd),\n/* harmony export */   \"set\": () => (/* binding */ set),\n/* harmony export */   \"sqrDist\": () => (/* binding */ sqrDist),\n/* harmony export */   \"sqrLen\": () => (/* binding */ sqrLen),\n/* harmony export */   \"squaredDistance\": () => (/* binding */ squaredDistance),\n/* harmony export */   \"squaredLength\": () => (/* binding */ squaredLength),\n/* harmony export */   \"str\": () => (/* binding */ str),\n/* harmony export */   \"sub\": () => (/* binding */ sub),\n/* harmony export */   \"subtract\": () => (/* binding */ subtract),\n/* harmony export */   \"transformMat3\": () => (/* binding */ transformMat3),\n/* harmony export */   \"transformMat4\": () => (/* binding */ transformMat4),\n/* harmony export */   \"transformQuat\": () => (/* binding */ transformQuat),\n/* harmony export */   \"zero\": () => (/* binding */ zero)\n/* harmony export */ });\n/* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.js */ \"./node_modules/gl-matrix/esm/common.js\");\n\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\n\nfunction create() {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(3);\n\n  if (_common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE != Float32Array) {\n    out[0] = 0;\n    out[1] = 0;\n    out[2] = 0;\n  }\n\n  return out;\n}\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\n\nfunction clone(a) {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(3);\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  return out;\n}\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nfunction length(a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  return Math.hypot(x, y, z);\n}\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\n\nfunction fromValues(x, y, z) {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(3);\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  return out;\n}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\n\nfunction copy(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  return out;\n}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\n\nfunction set(out, x, y, z) {\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  return out;\n}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nfunction add(out, a, b) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  out[2] = a[2] + b[2];\n  return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nfunction subtract(out, a, b) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  out[2] = a[2] - b[2];\n  return out;\n}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nfunction multiply(out, a, b) {\n  out[0] = a[0] * b[0];\n  out[1] = a[1] * b[1];\n  out[2] = a[2] * b[2];\n  return out;\n}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nfunction divide(out, a, b) {\n  out[0] = a[0] / b[0];\n  out[1] = a[1] / b[1];\n  out[2] = a[2] / b[2];\n  return out;\n}\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\n\nfunction ceil(out, a) {\n  out[0] = Math.ceil(a[0]);\n  out[1] = Math.ceil(a[1]);\n  out[2] = Math.ceil(a[2]);\n  return out;\n}\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\n\nfunction floor(out, a) {\n  out[0] = Math.floor(a[0]);\n  out[1] = Math.floor(a[1]);\n  out[2] = Math.floor(a[2]);\n  return out;\n}\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nfunction min(out, a, b) {\n  out[0] = Math.min(a[0], b[0]);\n  out[1] = Math.min(a[1], b[1]);\n  out[2] = Math.min(a[2], b[2]);\n  return out;\n}\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nfunction max(out, a, b) {\n  out[0] = Math.max(a[0], b[0]);\n  out[1] = Math.max(a[1], b[1]);\n  out[2] = Math.max(a[2], b[2]);\n  return out;\n}\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\n\nfunction round(out, a) {\n  out[0] = Math.round(a[0]);\n  out[1] = Math.round(a[1]);\n  out[2] = Math.round(a[2]);\n  return out;\n}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\n\nfunction scale(out, a, b) {\n  out[0] = a[0] * b;\n  out[1] = a[1] * b;\n  out[2] = a[2] * b;\n  return out;\n}\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\n\nfunction scaleAndAdd(out, a, b, scale) {\n  out[0] = a[0] + b[0] * scale;\n  out[1] = a[1] + b[1] * scale;\n  out[2] = a[2] + b[2] * scale;\n  return out;\n}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\n\nfunction distance(a, b) {\n  var x = b[0] - a[0];\n  var y = b[1] - a[1];\n  var z = b[2] - a[2];\n  return Math.hypot(x, y, z);\n}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nfunction squaredDistance(a, b) {\n  var x = b[0] - a[0];\n  var y = b[1] - a[1];\n  var z = b[2] - a[2];\n  return x * x + y * y + z * z;\n}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nfunction squaredLength(a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  return x * x + y * y + z * z;\n}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\n\nfunction negate(out, a) {\n  out[0] = -a[0];\n  out[1] = -a[1];\n  out[2] = -a[2];\n  return out;\n}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\n\nfunction inverse(out, a) {\n  out[0] = 1.0 / a[0];\n  out[1] = 1.0 / a[1];\n  out[2] = 1.0 / a[2];\n  return out;\n}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\n\nfunction normalize(out, a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  var len = x * x + y * y + z * z;\n\n  if (len > 0) {\n    //TODO: evaluate use of glm_invsqrt here?\n    len = 1 / Math.sqrt(len);\n  }\n\n  out[0] = a[0] * len;\n  out[1] = a[1] * len;\n  out[2] = a[2] * len;\n  return out;\n}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nfunction dot(a, b) {\n  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nfunction cross(out, a, b) {\n  var ax = a[0],\n      ay = a[1],\n      az = a[2];\n  var bx = b[0],\n      by = b[1],\n      bz = b[2];\n  out[0] = ay * bz - az * by;\n  out[1] = az * bx - ax * bz;\n  out[2] = ax * by - ay * bx;\n  return out;\n}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nfunction lerp(out, a, b, t) {\n  var ax = a[0];\n  var ay = a[1];\n  var az = a[2];\n  out[0] = ax + t * (b[0] - ax);\n  out[1] = ay + t * (b[1] - ay);\n  out[2] = az + t * (b[2] - az);\n  return out;\n}\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nfunction hermite(out, a, b, c, d, t) {\n  var factorTimes2 = t * t;\n  var factor1 = factorTimes2 * (2 * t - 3) + 1;\n  var factor2 = factorTimes2 * (t - 2) + t;\n  var factor3 = factorTimes2 * (t - 1);\n  var factor4 = factorTimes2 * (3 - 2 * t);\n  out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n  out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n  out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n  return out;\n}\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nfunction bezier(out, a, b, c, d, t) {\n  var inverseFactor = 1 - t;\n  var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n  var factorTimes2 = t * t;\n  var factor1 = inverseFactorTimesTwo * inverseFactor;\n  var factor2 = 3 * t * inverseFactorTimesTwo;\n  var factor3 = 3 * factorTimes2 * inverseFactor;\n  var factor4 = factorTimes2 * t;\n  out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n  out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n  out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n  return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec3} out\n */\n\nfunction random(out, scale) {\n  scale = scale || 1.0;\n  var r = _common_js__WEBPACK_IMPORTED_MODULE_0__.RANDOM() * 2.0 * Math.PI;\n  var z = _common_js__WEBPACK_IMPORTED_MODULE_0__.RANDOM() * 2.0 - 1.0;\n  var zScale = Math.sqrt(1.0 - z * z) * scale;\n  out[0] = Math.cos(r) * zScale;\n  out[1] = Math.sin(r) * zScale;\n  out[2] = z * scale;\n  return out;\n}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nfunction transformMat4(out, a, m) {\n  var x = a[0],\n      y = a[1],\n      z = a[2];\n  var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n  w = w || 1.0;\n  out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n  out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n  out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n  return out;\n}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\n\nfunction transformMat3(out, a, m) {\n  var x = a[0],\n      y = a[1],\n      z = a[2];\n  out[0] = x * m[0] + y * m[3] + z * m[6];\n  out[1] = x * m[1] + y * m[4] + z * m[7];\n  out[2] = x * m[2] + y * m[5] + z * m[8];\n  return out;\n}\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec3} out\n */\n\nfunction transformQuat(out, a, q) {\n  // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n  var qx = q[0],\n      qy = q[1],\n      qz = q[2],\n      qw = q[3];\n  var x = a[0],\n      y = a[1],\n      z = a[2]; // var qvec = [qx, qy, qz];\n  // var uv = vec3.cross([], qvec, a);\n\n  var uvx = qy * z - qz * y,\n      uvy = qz * x - qx * z,\n      uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n  var uuvx = qy * uvz - qz * uvy,\n      uuvy = qz * uvx - qx * uvz,\n      uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n  var w2 = qw * 2;\n  uvx *= w2;\n  uvy *= w2;\n  uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n  uuvx *= 2;\n  uuvy *= 2;\n  uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n  out[0] = x + uvx + uuvx;\n  out[1] = y + uvy + uuvy;\n  out[2] = z + uvz + uuvz;\n  return out;\n}\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nfunction rotateX(out, a, b, rad) {\n  var p = [],\n      r = []; //Translate point to the origin\n\n  p[0] = a[0] - b[0];\n  p[1] = a[1] - b[1];\n  p[2] = a[2] - b[2]; //perform rotation\n\n  r[0] = p[0];\n  r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n  r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n  out[0] = r[0] + b[0];\n  out[1] = r[1] + b[1];\n  out[2] = r[2] + b[2];\n  return out;\n}\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nfunction rotateY(out, a, b, rad) {\n  var p = [],\n      r = []; //Translate point to the origin\n\n  p[0] = a[0] - b[0];\n  p[1] = a[1] - b[1];\n  p[2] = a[2] - b[2]; //perform rotation\n\n  r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n  r[1] = p[1];\n  r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n  out[0] = r[0] + b[0];\n  out[1] = r[1] + b[1];\n  out[2] = r[2] + b[2];\n  return out;\n}\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nfunction rotateZ(out, a, b, rad) {\n  var p = [],\n      r = []; //Translate point to the origin\n\n  p[0] = a[0] - b[0];\n  p[1] = a[1] - b[1];\n  p[2] = a[2] - b[2]; //perform rotation\n\n  r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n  r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n  r[2] = p[2]; //translate to correct position\n\n  out[0] = r[0] + b[0];\n  out[1] = r[1] + b[1];\n  out[2] = r[2] + b[2];\n  return out;\n}\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\n\nfunction angle(a, b) {\n  var ax = a[0],\n      ay = a[1],\n      az = a[2],\n      bx = b[0],\n      by = b[1],\n      bz = b[2],\n      mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n      mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n      mag = mag1 * mag2,\n      cosine = mag && dot(a, b) / mag;\n  return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\n\nfunction zero(out) {\n  out[0] = 0.0;\n  out[1] = 0.0;\n  out[2] = 0.0;\n  return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nfunction str(a) {\n  return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nfunction exactEquals(a, b) {\n  return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nfunction equals(a, b) {\n  var a0 = a[0],\n      a1 = a[1],\n      a2 = a[2];\n  var b0 = b[0],\n      b1 = b[1],\n      b2 = b[2];\n  return Math.abs(a0 - b0) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\n\nvar sub = subtract;\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\n\nvar mul = multiply;\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\n\nvar div = divide;\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\n\nvar dist = distance;\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\n\nvar sqrDist = squaredDistance;\n/**\n * Alias for {@link vec3.length}\n * @function\n */\n\nvar len = length;\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\n\nvar sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nvar forEach = function () {\n  var vec = create();\n  return function (a, stride, offset, count, fn, arg) {\n    var i, l;\n\n    if (!stride) {\n      stride = 3;\n    }\n\n    if (!offset) {\n      offset = 0;\n    }\n\n    if (count) {\n      l = Math.min(count * stride + offset, a.length);\n    } else {\n      l = a.length;\n    }\n\n    for (i = offset; i < l; i += stride) {\n      vec[0] = a[i];\n      vec[1] = a[i + 1];\n      vec[2] = a[i + 2];\n      fn(vec, vec, arg);\n      a[i] = vec[0];\n      a[i + 1] = vec[1];\n      a[i + 2] = vec[2];\n    }\n\n    return a;\n  };\n}();\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/gl-matrix/esm/vec3.js?");

/***/ }),

/***/ "./node_modules/gl-matrix/esm/vec4.js":
/*!********************************************!*\
  !*** ./node_modules/gl-matrix/esm/vec4.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"add\": () => (/* binding */ add),\n/* harmony export */   \"ceil\": () => (/* binding */ ceil),\n/* harmony export */   \"clone\": () => (/* binding */ clone),\n/* harmony export */   \"copy\": () => (/* binding */ copy),\n/* harmony export */   \"create\": () => (/* binding */ create),\n/* harmony export */   \"cross\": () => (/* binding */ cross),\n/* harmony export */   \"dist\": () => (/* binding */ dist),\n/* harmony export */   \"distance\": () => (/* binding */ distance),\n/* harmony export */   \"div\": () => (/* binding */ div),\n/* harmony export */   \"divide\": () => (/* binding */ divide),\n/* harmony export */   \"dot\": () => (/* binding */ dot),\n/* harmony export */   \"equals\": () => (/* binding */ equals),\n/* harmony export */   \"exactEquals\": () => (/* binding */ exactEquals),\n/* harmony export */   \"floor\": () => (/* binding */ floor),\n/* harmony export */   \"forEach\": () => (/* binding */ forEach),\n/* harmony export */   \"fromValues\": () => (/* binding */ fromValues),\n/* harmony export */   \"inverse\": () => (/* binding */ inverse),\n/* harmony export */   \"len\": () => (/* binding */ len),\n/* harmony export */   \"length\": () => (/* binding */ length),\n/* harmony export */   \"lerp\": () => (/* binding */ lerp),\n/* harmony export */   \"max\": () => (/* binding */ max),\n/* harmony export */   \"min\": () => (/* binding */ min),\n/* harmony export */   \"mul\": () => (/* binding */ mul),\n/* harmony export */   \"multiply\": () => (/* binding */ multiply),\n/* harmony export */   \"negate\": () => (/* binding */ negate),\n/* harmony export */   \"normalize\": () => (/* binding */ normalize),\n/* harmony export */   \"random\": () => (/* binding */ random),\n/* harmony export */   \"round\": () => (/* binding */ round),\n/* harmony export */   \"scale\": () => (/* binding */ scale),\n/* harmony export */   \"scaleAndAdd\": () => (/* binding */ scaleAndAdd),\n/* harmony export */   \"set\": () => (/* binding */ set),\n/* harmony export */   \"sqrDist\": () => (/* binding */ sqrDist),\n/* harmony export */   \"sqrLen\": () => (/* binding */ sqrLen),\n/* harmony export */   \"squaredDistance\": () => (/* binding */ squaredDistance),\n/* harmony export */   \"squaredLength\": () => (/* binding */ squaredLength),\n/* harmony export */   \"str\": () => (/* binding */ str),\n/* harmony export */   \"sub\": () => (/* binding */ sub),\n/* harmony export */   \"subtract\": () => (/* binding */ subtract),\n/* harmony export */   \"transformMat4\": () => (/* binding */ transformMat4),\n/* harmony export */   \"transformQuat\": () => (/* binding */ transformQuat),\n/* harmony export */   \"zero\": () => (/* binding */ zero)\n/* harmony export */ });\n/* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.js */ \"./node_modules/gl-matrix/esm/common.js\");\n\n/**\n * 4 Dimensional Vector\n * @module vec4\n */\n\n/**\n * Creates a new, empty vec4\n *\n * @returns {vec4} a new 4D vector\n */\n\nfunction create() {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(4);\n\n  if (_common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE != Float32Array) {\n    out[0] = 0;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n  }\n\n  return out;\n}\n/**\n * Creates a new vec4 initialized with values from an existing vector\n *\n * @param {ReadonlyVec4} a vector to clone\n * @returns {vec4} a new 4D vector\n */\n\nfunction clone(a) {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(4);\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  return out;\n}\n/**\n * Creates a new vec4 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} a new 4D vector\n */\n\nfunction fromValues(x, y, z, w) {\n  var out = new _common_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY_TYPE(4);\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  out[3] = w;\n  return out;\n}\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the source vector\n * @returns {vec4} out\n */\n\nfunction copy(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  return out;\n}\n/**\n * Set the components of a vec4 to the given values\n *\n * @param {vec4} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} out\n */\n\nfunction set(out, x, y, z, w) {\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  out[3] = w;\n  return out;\n}\n/**\n * Adds two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nfunction add(out, a, b) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  out[2] = a[2] + b[2];\n  out[3] = a[3] + b[3];\n  return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nfunction subtract(out, a, b) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  out[2] = a[2] - b[2];\n  out[3] = a[3] - b[3];\n  return out;\n}\n/**\n * Multiplies two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nfunction multiply(out, a, b) {\n  out[0] = a[0] * b[0];\n  out[1] = a[1] * b[1];\n  out[2] = a[2] * b[2];\n  out[3] = a[3] * b[3];\n  return out;\n}\n/**\n * Divides two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nfunction divide(out, a, b) {\n  out[0] = a[0] / b[0];\n  out[1] = a[1] / b[1];\n  out[2] = a[2] / b[2];\n  out[3] = a[3] / b[3];\n  return out;\n}\n/**\n * Math.ceil the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to ceil\n * @returns {vec4} out\n */\n\nfunction ceil(out, a) {\n  out[0] = Math.ceil(a[0]);\n  out[1] = Math.ceil(a[1]);\n  out[2] = Math.ceil(a[2]);\n  out[3] = Math.ceil(a[3]);\n  return out;\n}\n/**\n * Math.floor the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to floor\n * @returns {vec4} out\n */\n\nfunction floor(out, a) {\n  out[0] = Math.floor(a[0]);\n  out[1] = Math.floor(a[1]);\n  out[2] = Math.floor(a[2]);\n  out[3] = Math.floor(a[3]);\n  return out;\n}\n/**\n * Returns the minimum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nfunction min(out, a, b) {\n  out[0] = Math.min(a[0], b[0]);\n  out[1] = Math.min(a[1], b[1]);\n  out[2] = Math.min(a[2], b[2]);\n  out[3] = Math.min(a[3], b[3]);\n  return out;\n}\n/**\n * Returns the maximum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nfunction max(out, a, b) {\n  out[0] = Math.max(a[0], b[0]);\n  out[1] = Math.max(a[1], b[1]);\n  out[2] = Math.max(a[2], b[2]);\n  out[3] = Math.max(a[3], b[3]);\n  return out;\n}\n/**\n * Math.round the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to round\n * @returns {vec4} out\n */\n\nfunction round(out, a) {\n  out[0] = Math.round(a[0]);\n  out[1] = Math.round(a[1]);\n  out[2] = Math.round(a[2]);\n  out[3] = Math.round(a[3]);\n  return out;\n}\n/**\n * Scales a vec4 by a scalar number\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec4} out\n */\n\nfunction scale(out, a, b) {\n  out[0] = a[0] * b;\n  out[1] = a[1] * b;\n  out[2] = a[2] * b;\n  out[3] = a[3] * b;\n  return out;\n}\n/**\n * Adds two vec4's after scaling the second operand by a scalar value\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec4} out\n */\n\nfunction scaleAndAdd(out, a, b, scale) {\n  out[0] = a[0] + b[0] * scale;\n  out[1] = a[1] + b[1] * scale;\n  out[2] = a[2] + b[2] * scale;\n  out[3] = a[3] + b[3] * scale;\n  return out;\n}\n/**\n * Calculates the euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} distance between a and b\n */\n\nfunction distance(a, b) {\n  var x = b[0] - a[0];\n  var y = b[1] - a[1];\n  var z = b[2] - a[2];\n  var w = b[3] - a[3];\n  return Math.hypot(x, y, z, w);\n}\n/**\n * Calculates the squared euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nfunction squaredDistance(a, b) {\n  var x = b[0] - a[0];\n  var y = b[1] - a[1];\n  var z = b[2] - a[2];\n  var w = b[3] - a[3];\n  return x * x + y * y + z * z + w * w;\n}\n/**\n * Calculates the length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nfunction length(a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  var w = a[3];\n  return Math.hypot(x, y, z, w);\n}\n/**\n * Calculates the squared length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nfunction squaredLength(a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  var w = a[3];\n  return x * x + y * y + z * z + w * w;\n}\n/**\n * Negates the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to negate\n * @returns {vec4} out\n */\n\nfunction negate(out, a) {\n  out[0] = -a[0];\n  out[1] = -a[1];\n  out[2] = -a[2];\n  out[3] = -a[3];\n  return out;\n}\n/**\n * Returns the inverse of the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to invert\n * @returns {vec4} out\n */\n\nfunction inverse(out, a) {\n  out[0] = 1.0 / a[0];\n  out[1] = 1.0 / a[1];\n  out[2] = 1.0 / a[2];\n  out[3] = 1.0 / a[3];\n  return out;\n}\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to normalize\n * @returns {vec4} out\n */\n\nfunction normalize(out, a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  var w = a[3];\n  var len = x * x + y * y + z * z + w * w;\n\n  if (len > 0) {\n    len = 1 / Math.sqrt(len);\n  }\n\n  out[0] = x * len;\n  out[1] = y * len;\n  out[2] = z * len;\n  out[3] = w * len;\n  return out;\n}\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nfunction dot(a, b) {\n  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n/**\n * Returns the cross-product of three vectors in a 4-dimensional space\n *\n * @param {ReadonlyVec4} result the receiving vector\n * @param {ReadonlyVec4} U the first vector\n * @param {ReadonlyVec4} V the second vector\n * @param {ReadonlyVec4} W the third vector\n * @returns {vec4} result\n */\n\nfunction cross(out, u, v, w) {\n  var A = v[0] * w[1] - v[1] * w[0],\n      B = v[0] * w[2] - v[2] * w[0],\n      C = v[0] * w[3] - v[3] * w[0],\n      D = v[1] * w[2] - v[2] * w[1],\n      E = v[1] * w[3] - v[3] * w[1],\n      F = v[2] * w[3] - v[3] * w[2];\n  var G = u[0];\n  var H = u[1];\n  var I = u[2];\n  var J = u[3];\n  out[0] = H * F - I * E + J * D;\n  out[1] = -(G * F) + I * C - J * B;\n  out[2] = G * E - H * C + J * A;\n  out[3] = -(G * D) + H * B - I * A;\n  return out;\n}\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec4} out\n */\n\nfunction lerp(out, a, b, t) {\n  var ax = a[0];\n  var ay = a[1];\n  var az = a[2];\n  var aw = a[3];\n  out[0] = ax + t * (b[0] - ax);\n  out[1] = ay + t * (b[1] - ay);\n  out[2] = az + t * (b[2] - az);\n  out[3] = aw + t * (b[3] - aw);\n  return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec4} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec4} out\n */\n\nfunction random(out, scale) {\n  scale = scale || 1.0; // Marsaglia, George. Choosing a Point from the Surface of a\n  // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n  // http://projecteuclid.org/euclid.aoms/1177692644;\n\n  var v1, v2, v3, v4;\n  var s1, s2;\n\n  do {\n    v1 = _common_js__WEBPACK_IMPORTED_MODULE_0__.RANDOM() * 2 - 1;\n    v2 = _common_js__WEBPACK_IMPORTED_MODULE_0__.RANDOM() * 2 - 1;\n    s1 = v1 * v1 + v2 * v2;\n  } while (s1 >= 1);\n\n  do {\n    v3 = _common_js__WEBPACK_IMPORTED_MODULE_0__.RANDOM() * 2 - 1;\n    v4 = _common_js__WEBPACK_IMPORTED_MODULE_0__.RANDOM() * 2 - 1;\n    s2 = v3 * v3 + v4 * v4;\n  } while (s2 >= 1);\n\n  var d = Math.sqrt((1 - s1) / s2);\n  out[0] = scale * v1;\n  out[1] = scale * v2;\n  out[2] = scale * v3 * d;\n  out[3] = scale * v4 * d;\n  return out;\n}\n/**\n * Transforms the vec4 with a mat4.\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec4} out\n */\n\nfunction transformMat4(out, a, m) {\n  var x = a[0],\n      y = a[1],\n      z = a[2],\n      w = a[3];\n  out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n  out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n  out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n  out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n  return out;\n}\n/**\n * Transforms the vec4 with a quat\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec4} out\n */\n\nfunction transformQuat(out, a, q) {\n  var x = a[0],\n      y = a[1],\n      z = a[2];\n  var qx = q[0],\n      qy = q[1],\n      qz = q[2],\n      qw = q[3]; // calculate quat * vec\n\n  var ix = qw * x + qy * z - qz * y;\n  var iy = qw * y + qz * x - qx * z;\n  var iz = qw * z + qx * y - qy * x;\n  var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n  out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n  out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n  out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n  out[3] = a[3];\n  return out;\n}\n/**\n * Set the components of a vec4 to zero\n *\n * @param {vec4} out the receiving vector\n * @returns {vec4} out\n */\n\nfunction zero(out) {\n  out[0] = 0.0;\n  out[1] = 0.0;\n  out[2] = 0.0;\n  out[3] = 0.0;\n  return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec4} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nfunction str(a) {\n  return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nfunction exactEquals(a, b) {\n  return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nfunction equals(a, b) {\n  var a0 = a[0],\n      a1 = a[1],\n      a2 = a[2],\n      a3 = a[3];\n  var b0 = b[0],\n      b1 = b[1],\n      b2 = b[2],\n      b3 = b[3];\n  return Math.abs(a0 - b0) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= _common_js__WEBPACK_IMPORTED_MODULE_0__.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\n/**\n * Alias for {@link vec4.subtract}\n * @function\n */\n\nvar sub = subtract;\n/**\n * Alias for {@link vec4.multiply}\n * @function\n */\n\nvar mul = multiply;\n/**\n * Alias for {@link vec4.divide}\n * @function\n */\n\nvar div = divide;\n/**\n * Alias for {@link vec4.distance}\n * @function\n */\n\nvar dist = distance;\n/**\n * Alias for {@link vec4.squaredDistance}\n * @function\n */\n\nvar sqrDist = squaredDistance;\n/**\n * Alias for {@link vec4.length}\n * @function\n */\n\nvar len = length;\n/**\n * Alias for {@link vec4.squaredLength}\n * @function\n */\n\nvar sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec4s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nvar forEach = function () {\n  var vec = create();\n  return function (a, stride, offset, count, fn, arg) {\n    var i, l;\n\n    if (!stride) {\n      stride = 4;\n    }\n\n    if (!offset) {\n      offset = 0;\n    }\n\n    if (count) {\n      l = Math.min(count * stride + offset, a.length);\n    } else {\n      l = a.length;\n    }\n\n    for (i = offset; i < l; i += stride) {\n      vec[0] = a[i];\n      vec[1] = a[i + 1];\n      vec[2] = a[i + 2];\n      vec[3] = a[i + 3];\n      fn(vec, vec, arg);\n      a[i] = vec[0];\n      a[i + 1] = vec[1];\n      a[i + 2] = vec[2];\n      a[i + 3] = vec[3];\n    }\n\n    return a;\n  };\n}();\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/gl-matrix/esm/vec4.js?");

/***/ }),

/***/ "./node_modules/globalthis/implementation.browser.js":
/*!***********************************************************!*\
  !*** ./node_modules/globalthis/implementation.browser.js ***!
  \***********************************************************/
/***/ ((module) => {

"use strict";
eval("/* eslint no-negated-condition: 0, no-new-func: 0 */\n\n\n\nif (typeof self !== 'undefined') {\n\tmodule.exports = self;\n} else if (typeof window !== 'undefined') {\n\tmodule.exports = window;\n} else {\n\tmodule.exports = Function('return this')();\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/globalthis/implementation.browser.js?");

/***/ }),

/***/ "./node_modules/globalthis/index.js":
/*!******************************************!*\
  !*** ./node_modules/globalthis/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar defineProperties = __webpack_require__(/*! define-properties */ \"./node_modules/define-properties/index.js\");\n\nvar implementation = __webpack_require__(/*! ./implementation */ \"./node_modules/globalthis/implementation.browser.js\");\nvar getPolyfill = __webpack_require__(/*! ./polyfill */ \"./node_modules/globalthis/polyfill.js\");\nvar shim = __webpack_require__(/*! ./shim */ \"./node_modules/globalthis/shim.js\");\n\nvar polyfill = getPolyfill();\n\nvar getGlobal = function () { return polyfill; };\n\ndefineProperties(getGlobal, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = getGlobal;\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/globalthis/index.js?");

/***/ }),

/***/ "./node_modules/globalthis/polyfill.js":
/*!*********************************************!*\
  !*** ./node_modules/globalthis/polyfill.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar implementation = __webpack_require__(/*! ./implementation */ \"./node_modules/globalthis/implementation.browser.js\");\n\nmodule.exports = function getPolyfill() {\n\tif (typeof __webpack_require__.g !== 'object' || !__webpack_require__.g || __webpack_require__.g.Math !== Math || __webpack_require__.g.Array !== Array) {\n\t\treturn implementation;\n\t}\n\treturn __webpack_require__.g;\n};\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/globalthis/polyfill.js?");

/***/ }),

/***/ "./node_modules/globalthis/shim.js":
/*!*****************************************!*\
  !*** ./node_modules/globalthis/shim.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar define = __webpack_require__(/*! define-properties */ \"./node_modules/define-properties/index.js\");\nvar getPolyfill = __webpack_require__(/*! ./polyfill */ \"./node_modules/globalthis/polyfill.js\");\n\nmodule.exports = function shimGlobal() {\n\tvar polyfill = getPolyfill();\n\tif (define.supportsDescriptors) {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(polyfill, 'globalThis');\n\t\tif (!descriptor || (descriptor.configurable && (descriptor.enumerable || descriptor.writable || globalThis !== polyfill))) { // eslint-disable-line max-len\n\t\t\tObject.defineProperty(polyfill, 'globalThis', {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: polyfill,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t}\n\t} else if (typeof globalThis !== 'object' || globalThis !== polyfill) {\n\t\tpolyfill.globalThis = polyfill;\n\t}\n\treturn polyfill;\n};\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/globalthis/shim.js?");

/***/ }),

/***/ "./node_modules/jszip/dist/jszip.min.js":
/*!**********************************************!*\
  !*** ./node_modules/jszip/dist/jszip.min.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/*!\n\nJSZip v3.7.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n\n!function(t){if(true)module.exports=t();else {}}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e=undefined;if(!t&&e)return require(r,!0);if(l)return l(r,!0);var i=new Error(\"Cannot find module '\"+r+\"'\");throw i.code=\"MODULE_NOT_FOUND\",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l=undefined,t=0;t<h.length;t++)u(h[t]);return u}({1:[function(t,e,r){\"use strict\";var c=t(\"./utils\"),d=t(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(t){for(var e,r,i,n,s,a,o,h=[],u=0,l=t.length,f=l,d=\"string\"!==c.getTypeOf(t);u<t.length;)f=l-u,i=d?(e=t[u++],r=u<l?t[u++]:0,u<l?t[u++]:0):(e=t.charCodeAt(u++),r=u<l?t.charCodeAt(u++):0,u<l?t.charCodeAt(u++):0),n=e>>2,s=(3&e)<<4|r>>4,a=1<f?(15&r)<<2|i>>6:64,o=2<f?63&i:64,h.push(p.charAt(n)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(t){var e,r,i,n,s,a,o=0,h=0,u=\"data:\";if(t.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(t=t.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\")).length/4;if(t.charAt(t.length-1)===p.charAt(64)&&f--,t.charAt(t.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=d.uint8array?new Uint8Array(0|f):new Array(0|f);o<t.length;)e=p.indexOf(t.charAt(o++))<<2|(n=p.indexOf(t.charAt(o++)))>>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{\"./support\":30,\"./utils\":32}],2:[function(t,e,r){\"use strict\";var i=t(\"./external\"),n=t(\"./stream/DataWorker\"),s=t(\"./stream/Crc32Probe\"),a=t(\"./stream/DataLengthProbe\");function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),e=this;return t.on(\"end\",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(e.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",e)},e.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(t,e,r){\"use strict\";var i=t(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(t){return new i(\"STORE compression\")},uncompressWorker:function(){return new i(\"STORE decompression\")}},r.DEFLATE=t(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(t,e,r){\"use strict\";var i=t(\"./utils\");var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?\"string\"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a<s;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a<s;a++)t=t>>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{\"./utils\":32}],5:[function(t,e,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){\"use strict\";var i=null;i=\"undefined\"!=typeof Promise?Promise:t(\"lie\"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){\"use strict\";var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,n=t(\"pako\"),s=t(\"./utils\"),a=t(\"./stream/GenericWorker\"),o=i?\"uint8array\":\"array\";function h(t,e){a.call(this,\"FlateWorker/\"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h(\"Deflate\",t)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(t,e,r){\"use strict\";function A(t,e){var r,i=\"\";for(r=0;r<e;r++)i+=String.fromCharCode(255&t),t>>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),d=I.transformTo(\"string\",O.utf8encode(h.name)),c=h.comment,p=I.transformTo(\"string\",s(c)),m=I.transformTo(\"string\",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(i,4)+f+b+p}}var I=t(\"../utils\"),n=t(\"../stream/GenericWorker\"),O=t(\"../utf8\"),B=t(\"../crc32\"),R=t(\"../signature\");function s(t,e,r,i){n.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e<this.dirRecords.length;e++)this.push({data:this.dirRecords[e],meta:{percent:100}});var r=this.bytesWritten-t,i=function(t,e,r,i,n){var s=I.transformTo(\"string\",n(i));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(t,2)+A(t,2)+A(e,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,t,this.zipComment,this.encodeFileName);this.push({data:i,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(t){this._sources.push(t);var e=this;return t.on(\"data\",function(t){e.processChunk(t)}),t.on(\"end\",function(){e.closedSource(e.previous.streamInfo),e._sources.length?e.prepareNextSource():e.end()}),t.on(\"error\",function(t){e.error(t)}),this},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(t){var e=this._sources;if(!n.prototype.error.call(this,t))return!1;for(var r=0;r<e.length;r++)try{e[r].error(t)}catch(t){}return!0},s.prototype.lock=function(){n.prototype.lock.call(this);for(var t=this._sources,e=0;e<t.length;e++)t[e].lock()},e.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(t,e,r){\"use strict\";var u=t(\"../compressions\"),i=t(\"./ZipFileWorker\");r.generateWorker=function(t,a,e){var o=new i(a.streamFiles,e,a.platform,a.encodeFileName),h=0;try{t.forEach(function(t,e){h++;var r=function(t,e){var r=t||e,i=u[r];if(!i)throw new Error(r+\" is not a valid compression method !\");return i}(e.options.compression,a.compression),i=e.options.compressionOptions||a.compressionOptions||{},n=e.dir,s=e.date;e._compressWorker(r,i).withStreamInfo(\"file\",{name:t,dir:n,date:s,comment:e.comment||\"\",unixPermissions:e.unixPermissions,dosPermissions:e.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(t){o.error(t)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(t,e,r){\"use strict\";function i(){if(!(this instanceof i))return new i;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var t=new i;for(var e in this)\"function\"!=typeof this[e]&&(t[e]=this[e]);return t}}(i.prototype=t(\"./object\")).loadAsync=t(\"./load\"),i.support=t(\"./support\"),i.defaults=t(\"./defaults\"),i.version=\"3.7.1\",i.loadAsync=function(t,e){return(new i).loadAsync(t,e)},i.external=t(\"./external\"),e.exports=i},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(t,e,r){\"use strict\";var i=t(\"./utils\"),n=t(\"./external\"),o=t(\"./utf8\"),h=t(\"./zipEntries\"),s=t(\"./stream/Crc32Probe\"),u=t(\"./nodejsUtils\");function l(i){return new n.Promise(function(t,e){var r=i.decompressed.getContentWorker().pipe(new s);r.on(\"error\",function(t){e(t)}).on(\"end\",function(){r.streamInfo.crc32!==i.decompressed.crc32?e(new Error(\"Corrupted zip : CRC32 mismatch\")):t()}).resume()})}e.exports=function(t,s){var a=this;return s=i.extend(s||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:o.utf8decode}),u.isNode&&u.isStream(t)?n.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):i.prepareContent(\"the loaded zip file\",t,!0,s.optimizedBinaryString,s.base64).then(function(t){var e=new h(s);return e.load(t),e}).then(function(t){var e=[n.Promise.resolve(t)],r=t.files;if(s.checkCRC32)for(var i=0;i<r.length;i++)e.push(l(r[i]));return n.Promise.all(e)}).then(function(t){for(var e=t.shift(),r=e.files,i=0;i<r.length;i++){var n=r[i];a.file(n.fileNameStr,n.decompressed,{binary:!0,optimizedBinaryString:!0,date:n.date,dir:n.dir,comment:n.fileCommentStr.length?n.fileCommentStr:null,unixPermissions:n.unixPermissions,dosPermissions:n.dosPermissions,createFolders:s.createFolders})}return e.zipComment.length&&(a.comment=e.zipComment),a})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"../stream/GenericWorker\");function s(t,e){n.call(this,\"Nodejs stream input adapter for \"+t),this._upstreamEnded=!1,this._bindStream(e)}i.inherits(s,n),s.prototype._bindStream=function(t){var e=this;(this._stream=t).pause(),t.on(\"data\",function(t){e.push({data:t,meta:{percent:0}})}).on(\"error\",function(t){e.isPaused?this.generatedError=t:e.error(t)}).on(\"end\",function(){e.isPaused?e._upstreamEnded=!0:e.end()})},s.prototype.pause=function(){return!!n.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},e.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(t,e,r){\"use strict\";var n=t(\"readable-stream\").Readable;function i(t,e,r){n.call(this,e),this._helper=t;var i=this;t.on(\"data\",function(t,e){i.push(t)||i._helper.pause(),r&&r(e)}).on(\"error\",function(t){i.emit(\"error\",t)}).on(\"end\",function(){i.push(null)})}t(\"../utils\").inherits(i,n),i.prototype._read=function(){this._helper.resume()},e.exports=i},{\"../utils\":32,\"readable-stream\":16}],14:[function(t,e,r){\"use strict\";e.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(t,e){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(t,e);if(\"number\"==typeof t)throw new Error('The \"data\" argument must not be a number');return new Buffer(t,e)},allocBuffer:function(t){if(Buffer.alloc)return Buffer.alloc(t);var e=new Buffer(t);return e.fill(0),e},isBuffer:function(t){return Buffer.isBuffer(t)},isStream:function(t){return t&&\"function\"==typeof t.on&&\"function\"==typeof t.pause&&\"function\"==typeof t.resume}}},{}],15:[function(t,e,r){\"use strict\";function s(t,e,r){var i,n=u.getTypeOf(e),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(t=g(t)),s.createFolders&&(i=_(t))&&b.call(this,i,!0);var a=\"string\"===n&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(e instanceof d&&0===e.uncompressedSize||s.dir||!e||0===e.length)&&(s.base64=!1,s.binary=!0,e=\"\",s.compression=\"STORE\",n=\"string\");var o=null;o=e instanceof d||e instanceof l?e:p.isNode&&p.isStream(e)?new m(t,e):u.prepareContent(t,e,s.binary,s.optimizedBinaryString,s.base64);var h=new c(t,o,s);this.files[t]=h}var n=t(\"./utf8\"),u=t(\"./utils\"),l=t(\"./stream/GenericWorker\"),a=t(\"./stream/StreamHelper\"),f=t(\"./defaults\"),d=t(\"./compressedObject\"),c=t(\"./zipObject\"),o=t(\"./generate\"),p=t(\"./nodejsUtils\"),m=t(\"./nodejs/NodejsStreamInputAdapter\"),_=function(t){\"/\"===t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf(\"/\");return 0<e?t.substring(0,e):\"\"},g=function(t){return\"/\"!==t.slice(-1)&&(t+=\"/\"),t},b=function(t,e){return e=void 0!==e?e:f.createFolders,t=g(t),this.files[t]||s.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function h(t){return\"[object RegExp]\"===Object.prototype.toString.call(t)}var i={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(t){var e,r,i;for(e in this.files)i=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,i)},filter:function(r){var i=[];return this.forEach(function(t,e){r(t,e)&&i.push(e)}),i},file:function(t,e,r){if(1!==arguments.length)return t=this.root+t,s.call(this,t,e,r),this;if(h(t)){var i=t;return this.filter(function(t,e){return!e.dir&&i.test(t)})}var n=this.files[this.root+t];return n&&!n.dir?n:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(t,e){return e.dir&&r.test(t)});var t=this.root+r,e=b.call(this,t),i=this.clone();return i.root=e.name,i},remove:function(r){r=this.root+r;var t=this.files[r];if(t||(\"/\"!==r.slice(-1)&&(r+=\"/\"),t=this.files[r]),t&&!t.dir)delete this.files[r];else for(var e=this.filter(function(t,e){return e.name.slice(0,r.length)===r}),i=0;i<e.length;i++)delete this.files[e[i].name];return this},generate:function(t){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(t){var e,r={};try{if((r=u.extend(t||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:n.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var i=r.comment||this.comment||\"\";e=o.generateWorker(this,r,i)}catch(t){(e=new l(\"error\")).error(t)}return new a(e,r.type||\"string\",r.mimeType)},generateAsync:function(t,e){return this.generateInternalStream(t).accumulate(e)},generateNodeStream:function(t,e){return(t=t||{}).type||(t.type=\"nodebuffer\"),this.generateInternalStream(t).toNodejsStream(e)}};e.exports=i},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(t,e,r){e.exports=t(\"stream\")},{stream:void 0}],17:[function(t,e,r){\"use strict\";var i=t(\"./DataReader\");function n(t){i.call(this,t);for(var e=0;e<this.data.length;e++)t[e]=255&t[e]}t(\"../utils\").inherits(n,i),n.prototype.byteAt=function(t){return this.data[this.zero+t]},n.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),r=t.charCodeAt(1),i=t.charCodeAt(2),n=t.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===e&&this.data[s+1]===r&&this.data[s+2]===i&&this.data[s+3]===n)return s-this.zero;return-1},n.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),i=t.charCodeAt(2),n=t.charCodeAt(3),s=this.readData(4);return e===s[0]&&r===s[1]&&i===s[2]&&n===s[3]},n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./DataReader\":18}],18:[function(t,e,r){\"use strict\";var i=t(\"../utils\");function n(t){this.data=t,this.length=t.length,this.index=0,this.zero=0}n.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<this.zero+t||t<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+t+\"). Corrupted zip ?\")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,r=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo(\"string\",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{\"../utils\":32}],19:[function(t,e,r){\"use strict\";var i=t(\"./Uint8ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(t,e,r){\"use strict\";var i=t(\"./DataReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./DataReader\":18}],21:[function(t,e,r){\"use strict\";var i=t(\"./ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"../support\"),s=t(\"./ArrayReader\"),a=t(\"./StringReader\"),o=t(\"./NodeBufferReader\"),h=t(\"./Uint8ArrayReader\");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),\"string\"!==e||n.uint8array?\"nodebuffer\"===e?new o(t):n.uint8array?new h(i.transformTo(\"uint8array\",t)):new s(i.transformTo(\"array\",t)):new a(t)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(t,e,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../utils\");function s(t){i.call(this,\"ConvertWorker to \"+t),this.destType=t}n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../crc32\");function s(){i.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}t(\"../utils\").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataLengthProbe for \"+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataWorker\");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":t=this.data.substring(this.index,e);break;case\"uint8array\":t=this.data.subarray(this.index,e);break;case\"array\":case\"nodebuffer\":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(t,e,r){\"use strict\";function i(t){this.name=t||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit(\"data\",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit(\"error\",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit(\"error\",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r<this._listeners[t].length;r++)this._listeners[t][r].call(this,e)},pipe:function(t){return t.registerPrevious(this)},registerPrevious:function(t){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=t.streamInfo,this.mergeStreamInfo(),this.previous=t;var e=this;return t.on(\"data\",function(t){e.processChunk(t)}),t.on(\"end\",function(){e.end()}),t.on(\"error\",function(t){e.error(t)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var t=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),t=!0),this.previous&&this.previous.resume(),!t},flush:function(){},processChunk:function(t){this.push(t)},withStreamInfo:function(t,e){return this.extraStreamInfo[t]=e,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var t in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(t)&&(this.streamInfo[t]=this.extraStreamInfo[t])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var t=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+t:t}},e.exports=i},{}],29:[function(t,e,r){\"use strict\";var h=t(\"../utils\"),n=t(\"./ConvertWorker\"),s=t(\"./GenericWorker\"),u=t(\"../base64\"),i=t(\"../support\"),a=t(\"../external\"),o=null;if(i.nodestream)try{o=t(\"../nodejs/NodejsStreamOutputAdapter\")}catch(t){}function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on(\"data\",function(t,e){i.push(t),o&&o(e)}).on(\"error\",function(t){i=[],r(t)}).on(\"end\",function(){try{var t=function(t,e,r){switch(t){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",e),r);case\"base64\":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;r<e.length;r++)s+=e[r].length;switch(t){case\"string\":return e.join(\"\");case\"array\":return Array.prototype.concat.apply([],e);case\"uint8array\":for(n=new Uint8Array(s),r=0;r<e.length;r++)n.set(e[r],i),i+=e[r].length;return n;case\"nodebuffer\":return Buffer.concat(e);default:throw new Error(\"concat : unsupported type '\"+t+\"'\")}}(n,i),a);e(t)}catch(t){r(t)}i=[]}).resume()})}function f(t,e,r){var i=e;switch(e){case\"blob\":case\"arraybuffer\":i=\"uint8array\";break;case\"base64\":i=\"string\"}try{this._internalType=i,this._outputType=e,this._mimeType=r,h.checkSupport(i),this._worker=t.pipe(new n(i)),t.lock()}catch(t){this._worker=new s(\"error\"),this._worker.error(t)}}f.prototype={accumulate:function(t){return l(this,t)},on:function(t,e){var r=this;return\"data\"===t?this._worker.on(t,function(t){e.call(r,t.data,t.meta)}):this._worker.on(t,function(){h.delay(e,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(t){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},t)}},e.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(t,e,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var i=new ArrayBuffer(0);try{r.blob=0===new Blob([i],{type:\"application/zip\"}).size}catch(t){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);n.append(i),r.blob=0===n.getBlob(\"application/zip\").size}catch(t){r.blob=!1}}}try{r.nodestream=!!t(\"readable-stream\").Readable}catch(t){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(t,e,s){\"use strict\";for(var o=t(\"./utils\"),h=t(\"./support\"),r=t(\"./nodejsUtils\"),i=t(\"./stream/GenericWorker\"),u=new Array(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;u[254]=u[254]=1;function a(){i.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){i.call(this,\"utf-8 encode\")}s.utf8encode=function(t){return h.nodebuffer?r.newBufferFrom(t,\"utf-8\"):function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;n<a;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=r<128?1:r<2048?2:r<65536?3:4;for(e=h.uint8array?new Uint8Array(o):new Array(o),n=s=0;s<o;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),r<128?e[s++]=r:(r<2048?e[s++]=192|r>>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo(\"nodebuffer\",t).toString(\"utf-8\"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;e<s;)if((i=t[e++])<128)a[r++]=i;else if(4<(n=u[i]))a[r++]=65533,e+=n-1;else{for(i&=2===n?31:3===n?15:7;1<n&&e<s;)i=i<<6|63&t[e++],n--;1<n?a[r++]=65533:i<65536?a[r++]=i:(i-=65536,a[r++]=55296|i>>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?\"uint8array\":\"array\",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?\"uint8array\":\"array\",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(t,e,a){\"use strict\";var o=t(\"./support\"),h=t(\"./base64\"),r=t(\"./nodejsUtils\"),i=t(\"set-immediate-shim\"),u=t(\"./external\");function n(t){return t}function l(t,e){for(var r=0;r<t.length;++r)e[r]=255&t.charCodeAt(r);return e}a.newBlob=function(e,r){a.checkSupport(\"blob\");try{return new Blob([e],{type:r})}catch(t){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return i.append(e),i.getBlob(r)}catch(t){throw new Error(\"Bug : can't construct the Blob.\")}}};var s={stringifyByChunk:function(t,e,r){var i=[],n=0,s=t.length;if(s<=r)return String.fromCharCode.apply(null,t);for(;n<s;)\"array\"===e||\"nodebuffer\"===e?i.push(String.fromCharCode.apply(null,t.slice(n,Math.min(n+r,s)))):i.push(String.fromCharCode.apply(null,t.subarray(n,Math.min(n+r,s)))),n+=r;return i.join(\"\")},stringifyByChar:function(t){for(var e=\"\",r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(t){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(t){return!1}}()}};function f(t){var e=65536,r=a.getTypeOf(t),i=!0;if(\"uint8array\"===r?i=s.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(i=s.applyCanBeUsed.nodebuffer),i)for(;1<e;)try{return s.stringifyByChunk(t,r,e)}catch(t){e=Math.floor(e/2)}return s.stringifyByChar(t)}function d(t,e){for(var r=0;r<t.length;r++)e[r]=t[r];return e}a.applyFromCharCode=f;var c={};c.string={string:n,array:function(t){return l(t,new Array(t.length))},arraybuffer:function(t){return c.string.uint8array(t).buffer},uint8array:function(t){return l(t,new Uint8Array(t.length))},nodebuffer:function(t){return l(t,r.allocBuffer(t.length))}},c.array={string:f,array:n,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return r.newBufferFrom(t)}},c.arraybuffer={string:function(t){return f(new Uint8Array(t))},array:function(t){return d(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:n,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return r.newBufferFrom(new Uint8Array(t))}},c.uint8array={string:f,array:function(t){return d(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:n,nodebuffer:function(t){return r.newBufferFrom(t)}},c.nodebuffer={string:f,array:function(t){return d(t,new Array(t.length))},arraybuffer:function(t){return c.nodebuffer.uint8array(t).buffer},uint8array:function(t){return d(t,new Uint8Array(t.length))},nodebuffer:n},a.transformTo=function(t,e){if(e=e||\"\",!t)return e;a.checkSupport(t);var r=a.getTypeOf(e);return c[r][t](e)},a.getTypeOf=function(t){return\"string\"==typeof t?\"string\":\"[object Array]\"===Object.prototype.toString.call(t)?\"array\":o.nodebuffer&&r.isBuffer(t)?\"nodebuffer\":o.uint8array&&t instanceof Uint8Array?\"uint8array\":o.arraybuffer&&t instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(t){if(!o[t.toLowerCase()])throw new Error(t+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(t){var e,r,i=\"\";for(r=0;r<(t||\"\").length;r++)i+=\"\\\\x\"+((e=t.charCodeAt(r))<16?\"0\":\"\")+e.toString(16).toUpperCase();return i},a.delay=function(t,e,r){i(function(){t.apply(r||null,e||[])})},a.inherits=function(t,e){function r(){}r.prototype=e.prototype,t.prototype=new r},a.extend=function(){var t,e,r={};for(t=0;t<arguments.length;t++)for(e in arguments[t])arguments[t].hasOwnProperty(e)&&void 0===r[e]&&(r[e]=arguments[t][e]);return r},a.prepareContent=function(r,t,i,n,s){return u.Promise.resolve(t).then(function(i){return o.blob&&(i instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(i)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(e,r){var t=new FileReader;t.onload=function(t){e(t.target.result)},t.onerror=function(t){r(t.target.error)},t.readAsArrayBuffer(i)}):i}).then(function(t){var e=a.getTypeOf(t);return e?(\"arraybuffer\"===e?t=a.transformTo(\"uint8array\",t):\"string\"===e&&(s?t=h.decode(t):i&&!0!==n&&(t=function(t){return l(t,o.uint8array?new Uint8Array(t.length):new Array(t.length))}(t))),t):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,\"set-immediate-shim\":54}],33:[function(t,e,r){\"use strict\";var i=t(\"./reader/readerFor\"),n=t(\"./utils\"),s=t(\"./signature\"),a=t(\"./zipEntry\"),o=(t(\"./utf8\"),t(\"./support\"));function h(t){this.files=[],this.loadOptions=t}h.prototype={checkSignature:function(t){if(!this.reader.readAndCheckSignature(t)){this.reader.index-=4;var e=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+n.pretty(e)+\", expected \"+n.pretty(t)+\")\")}},isSignature:function(t,e){var r=this.reader.index;this.reader.setIndex(t);var i=this.reader.readString(4)===e;return this.reader.setIndex(r),i},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var t=this.reader.readData(this.zipCommentLength),e=o.uint8array?\"uint8array\":\"array\",r=n.transformTo(e,t);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,r,i=this.zip64EndOfCentralSize-44;0<i;)t=this.reader.readInt(2),e=this.reader.readInt(4),r=this.reader.readData(e),this.zip64ExtensibleData[t]={id:t,length:e,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(t=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(t);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(t<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(t);var e=t;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===n.MAX_VALUE_16BITS||this.diskWithCentralDirStart===n.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===n.MAX_VALUE_16BITS||this.centralDirRecords===n.MAX_VALUE_16BITS||this.centralDirSize===n.MAX_VALUE_32BITS||this.centralDirOffset===n.MAX_VALUE_32BITS){if(this.zip64=!0,(t=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(t),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var i=e-r;if(0<i)this.isSignature(e,s.CENTRAL_FILE_HEADER)||(this.reader.zero=i);else if(i<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(i)+\" bytes.\")},prepareReader:function(t){this.reader=i(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utf8\":31,\"./utils\":32,\"./zipEntry\":34}],34:[function(t,e,r){\"use strict\";var i=t(\"./reader/readerFor\"),s=t(\"./utils\"),n=t(\"./compressedObject\"),a=t(\"./crc32\"),o=t(\"./utf8\"),h=t(\"./compressions\"),u=t(\"./support\");function l(t,e){this.options=t,this.loadOptions=e}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(e=function(t){for(var e in h)if(h.hasOwnProperty(e)&&h[e].magic===t)return h[e];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new n(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4<n;)e=t.readInt(2),r=t.readInt(2),i=t.readData(r),this.extraFields[e]={id:e,length:r,value:i};t.setIndex(n)},handleUTF8:function(){var t=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var e=this.findExtraFieldUnicodePath();if(null!==e)this.fileNameStr=e;else{var r=s.transformTo(t,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var i=this.findExtraFieldUnicodeComment();if(null!==i)this.fileCommentStr=i;else{var n=s.transformTo(t,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(n)}}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=i(t.value);return 1!==e.readInt(1)?null:a(this.fileName)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=i(t.value);return 1!==e.readInt(1)?null:a(this.fileComment)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null}},e.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(t,e,r){\"use strict\";function i(t,e,r){this.name=t,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=e,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=t(\"./stream/StreamHelper\"),n=t(\"./stream/DataWorker\"),a=t(\"./utf8\"),o=t(\"./compressedObject\"),h=t(\"./stream/GenericWorker\");i.prototype={internalStream:function(t){var e=null,r=\"string\";try{if(!t)throw new Error(\"No output type specified.\");var i=\"string\"===(r=t.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),e=this._decompressWorker();var n=!this._dataBinary;n&&!i&&(e=e.pipe(new a.Utf8EncodeWorker)),!n&&i&&(e=e.pipe(new a.Utf8DecodeWorker))}catch(t){(e=new h(\"error\")).error(t)}return new s(e,r,\"\")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||\"nodebuffer\").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof o&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,t,e)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new n(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)i.prototype[u[f]]=l;e.exports=i},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(t,l,e){(function(e){\"use strict\";var r,i,t=e.MutationObserver||e.WebKitMutationObserver;if(t){var n=0,s=new t(u),a=e.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=n=++n%2}}else if(e.setImmediate||void 0===e.MessageChannel)r=\"document\"in e&&\"onreadystatechange\"in e.document.createElement(\"script\")?function(){var t=e.document.createElement(\"script\");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var o=new e.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var t,e;i=!0;for(var r=h.length;r;){for(e=h,h=[],t=-1;++t<r;)e[t]();r=h.length}i=!1}l.exports=function(t){1!==h.push(t)||i||r()}}).call(this,\"undefined\"!=typeof __webpack_require__.g?__webpack_require__.g:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(t,e,r){\"use strict\";var n=t(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],i=[\"PENDING\"];function o(t){if(\"function\"!=typeof t)throw new TypeError(\"resolver must be a function\");this.state=i,this.queue=[],this.outcome=void 0,t!==u&&c(this,t)}function h(t,e,r){this.promise=t,\"function\"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(e,r,i){n(function(){var t;try{t=r(i)}catch(t){return l.reject(e,t)}t===e?l.reject(e,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(e,t)})}function d(t){var e=t&&t.then;if(t&&(\"object\"==typeof t||\"function\"==typeof t)&&\"function\"==typeof e)return function(){e.apply(t,arguments)}}function c(e,t){var r=!1;function i(t){r||(r=!0,l.reject(e,t))}function n(t){r||(r=!0,l.resolve(e,t))}var s=p(function(){t(n,i)});\"error\"===s.status&&i(s.value)}function p(t,e){var r={};try{r.value=t(e),r.status=\"success\"}catch(t){r.status=\"error\",r.value=t}return r}(e.exports=o).prototype.finally=function(e){if(\"function\"!=typeof e)return this;var r=this.constructor;return this.then(function(t){return r.resolve(e()).then(function(){return t})},function(t){return r.resolve(e()).then(function(){throw t})})},o.prototype.catch=function(t){return this.then(null,t)},o.prototype.then=function(t,e){if(\"function\"!=typeof t&&this.state===a||\"function\"!=typeof e&&this.state===s)return this;var r=new this.constructor(u);this.state!==i?f(r,this.state===a?t:e,this.outcome):this.queue.push(new h(r,t,e));return r},h.prototype.callFulfilled=function(t){l.resolve(this.promise,t)},h.prototype.otherCallFulfilled=function(t){f(this.promise,this.onFulfilled,t)},h.prototype.callRejected=function(t){l.reject(this.promise,t)},h.prototype.otherCallRejected=function(t){f(this.promise,this.onRejected,t)},l.resolve=function(t,e){var r=p(d,e);if(\"error\"===r.status)return l.reject(t,r.value);var i=r.value;if(i)c(t,i);else{t.state=a,t.outcome=e;for(var n=-1,s=t.queue.length;++n<s;)t.queue[n].callFulfilled(e)}return t},l.reject=function(t,e){t.state=s,t.outcome=e;for(var r=-1,i=t.queue.length;++r<i;)t.queue[r].callRejected(e);return t},o.resolve=function(t){if(t instanceof this)return t;return l.resolve(new this(u),t)},o.reject=function(t){var e=new this(u);return l.reject(e,t)},o.all=function(t){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var i=t.length,n=!1;if(!i)return this.resolve([]);var s=new Array(i),a=0,e=-1,o=new this(u);for(;++e<i;)h(t[e],e);return o;function h(t,e){r.resolve(t).then(function(t){s[e]=t,++a!==i||n||(n=!0,l.resolve(o,s))},function(t){n||(n=!0,l.reject(o,t))})}},o.race=function(t){var e=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var r=t.length,i=!1;if(!r)return this.resolve([]);var n=-1,s=new this(u);for(;++n<r;)a=t[n],e.resolve(a).then(function(t){i||(i=!0,l.resolve(s,t))},function(t){i||(i=!0,l.reject(s,t))});var a;return s}},{immediate:36}],38:[function(t,e,r){\"use strict\";var i={};(0,t(\"./lib/utils/common\").assign)(i,t(\"./lib/deflate\"),t(\"./lib/inflate\"),t(\"./lib/zlib/constants\")),e.exports=i},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(t,e,r){\"use strict\";var a=t(\"./zlib/deflate\"),o=t(\"./utils/common\"),h=t(\"./utils/strings\"),n=t(\"./zlib/messages\"),s=t(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,d=0,c=8;function p(t){if(!(this instanceof p))return new p(t);this.options=o.assign({level:f,method:c,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:\"\"},t||{});var e=this.options;e.raw&&0<e.windowBits?e.windowBits=-e.windowBits:e.gzip&&0<e.windowBits&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(r!==l)throw new Error(n[r]);if(e.header&&a.deflateSetHeader(this.strm,e.header),e.dictionary){var i;if(i=\"string\"==typeof e.dictionary?h.string2buf(e.dictionary):\"[object ArrayBuffer]\"===u.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,(r=a.deflateSetDictionary(this.strm,i))!==l)throw new Error(n[r]);this._dict_set=!0}}function i(t,e){var r=new p(e);if(r.push(t,!0),r.err)throw r.msg||n[r.err];return r.result}p.prototype.push=function(t,e){var r,i,n=this.strm,s=this.options.chunkSize;if(this.ended)return!1;i=e===~~e?e:!0===e?4:0,\"string\"==typeof t?n.input=h.string2buf(t):\"[object ArrayBuffer]\"===u.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(0===n.avail_out&&(n.output=new o.Buf8(s),n.next_out=0,n.avail_out=s),1!==(r=a.deflate(n,i))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==n.avail_out&&(0!==n.avail_in||4!==i&&2!==i)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(n.output,n.next_out))):this.onData(o.shrinkBuf(n.output,n.next_out)))}while((0<n.avail_in||0===n.avail_out)&&1!==r);return 4===i?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==i||(this.onEnd(l),!(n.avail_out=0))},p.prototype.onData=function(t){this.chunks.push(t)},p.prototype.onEnd=function(t){t===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},r.Deflate=p,r.deflate=i,r.deflateRaw=function(t,e){return(e=e||{}).raw=!0,i(t,e)},r.gzip=function(t,e){return(e=e||{}).gzip=!0,i(t,e)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(t,e,r){\"use strict\";var d=t(\"./zlib/inflate\"),c=t(\"./utils/common\"),p=t(\"./utils/strings\"),m=t(\"./zlib/constants\"),i=t(\"./zlib/messages\"),n=t(\"./zlib/zstream\"),s=t(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(t){if(!(this instanceof a))return new a(t);this.options=c.assign({chunkSize:16384,windowBits:0,to:\"\"},t||{});var e=this.options;e.raw&&0<=e.windowBits&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(0<=e.windowBits&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),15<e.windowBits&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new n,this.strm.avail_out=0;var r=d.inflateInit2(this.strm,e.windowBits);if(r!==m.Z_OK)throw new Error(i[r]);this.header=new s,d.inflateGetHeader(this.strm,this.header)}function o(t,e){var r=new a(e);if(r.push(t,!0),r.err)throw r.msg||i[r.err];return r.result}a.prototype.push=function(t,e){var r,i,n,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;i=e===~~e?e:!0===e?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof t?h.input=p.binstring2buf(t):\"[object ArrayBuffer]\"===_.call(t)?h.input=new Uint8Array(t):h.input=t,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new c.Buf8(u),h.next_out=0,h.avail_out=u),(r=d.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=d.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||i!==m.Z_FINISH&&i!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(n=p.utf8border(h.output,h.next_out),s=h.next_out-n,a=p.buf2string(h.output,n),h.next_out=s,h.avail_out=u-s,s&&c.arraySet(h.output,h.output,n,s,0),this.onData(a)):this.onData(c.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(i=m.Z_FINISH),i===m.Z_FINISH?(r=d.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):i!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(t){this.chunks.push(t)},a.prototype.onEnd=function(t){t===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=c.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(t,e){return(e=e||{}).raw=!0,o(t,e)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(t,e,r){\"use strict\";var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var r=e.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var i in r)r.hasOwnProperty(i)&&(t[i]=r[i])}}return t},r.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,r,i,n){if(e.subarray&&t.subarray)t.set(e.subarray(r,r+i),n);else for(var s=0;s<i;s++)t[n+s]=e[r+s]},flattenChunks:function(t){var e,r,i,n,s,a;for(e=i=0,r=t.length;e<r;e++)i+=t[e].length;for(a=new Uint8Array(i),e=n=0,r=t.length;e<r;e++)s=t[e],a.set(s,n),n+=s.length;return a}},s={arraySet:function(t,e,r,i,n){for(var s=0;s<i;s++)t[n+s]=e[r+s]},flattenChunks:function(t){return[].concat.apply([],t)}};r.setTyped=function(t){t?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,n)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(i)},{}],42:[function(t,e,r){\"use strict\";var h=t(\"./common\"),n=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){s=!1}for(var u=new h.Buf8(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;function l(t,e){if(e<65537&&(t.subarray&&s||!t.subarray&&n))return String.fromCharCode.apply(null,h.shrinkBuf(t,e));for(var r=\"\",i=0;i<e;i++)r+=String.fromCharCode(t[i]);return r}u[254]=u[254]=1,r.string2buf=function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;n<a;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=r<128?1:r<2048?2:r<65536?3:4;for(e=new h.Buf8(o),n=s=0;s<o;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),r<128?e[s++]=r:(r<2048?e[s++]=192|r>>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;r<i;r++)e[r]=t.charCodeAt(r);return e},r.buf2string=function(t,e){var r,i,n,s,a=e||t.length,o=new Array(2*a);for(r=i=0;r<a;)if((n=t[r++])<128)o[i++]=n;else if(4<(s=u[n]))o[i++]=65533,r+=s-1;else{for(n&=2===s?31:3===s?15:7;1<s&&r<a;)n=n<<6|63&t[r++],s--;1<s?o[i++]=65533:n<65536?o[i++]=n:(n-=65536,o[i++]=55296|n>>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}},{\"./common\":41}],43:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(n=n+e[i++]|0)|0,--a;);n%=65521,s%=65521}return n|s<<16|0}},{}],44:[function(t,e,r){\"use strict\";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,e,r){\"use strict\";var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a<s;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){\"use strict\";var h,d=t(\"../utils/common\"),u=t(\"./trees\"),c=t(\"./adler32\"),p=t(\"./crc32\"),i=t(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,n=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(4<t?9:0)}function D(t){for(var e=t.length;0<=--e;)t[e]=0}function F(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<d);if(i=S-(d-s),s=d-S,a<i){if(t.match_start=e,o<=(a=i))break;c=u[s+a-1],p=u[s+a]}}}while((e=f[e&l])>h&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,d.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=c(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),t.lookahead+=r,t.lookahead+t.insert>=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+x-1])&t.hash_mask,t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<x)););}while(t.lookahead<z&&0!==t.strm.avail_in)}function Z(t,e){for(var r,i;;){if(t.lookahead<z){if(j(t),t.lookahead<z&&e===l)return A;if(0===t.lookahead)break}if(r=0,t.lookahead>=x&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==r&&t.strstart-r<=t.w_size-z&&(t.match_length=L(t,r)),t.match_length>=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart,0!=--t.match_length;);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else i=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=t.strstart<x-1?t.strstart:x-1,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}function W(t,e){for(var r,i,n;;){if(t.lookahead<z){if(j(t),t.lookahead<z&&e===l)return A;if(0===t.lookahead)break}if(r=0,t.lookahead>=x&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=x-1,0!==r&&t.prev_length<t.max_lazy_match&&t.strstart-r<=t.w_size-z&&(t.match_length=L(t,r),t.match_length<=5&&(1===t.strategy||t.match_length===x&&4096<t.strstart-t.match_start)&&(t.match_length=x-1)),t.prev_length>=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!=--t.prev_length;);if(t.match_available=0,t.match_length=x-1,t.strstart++,i&&(N(t,!1),0===t.strm.avail_out))return A}else if(t.match_available){if((i=u._tr_tally(t,0,t.window[t.strstart-1]))&&N(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return A}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=u._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<x-1?t.strstart:x-1,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}function M(t,e,r,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=r,this.max_chain=i,this.func=n}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new d.Buf16(2*w),this.dyn_dtree=new d.Buf16(2*(2*a+1)),this.bl_tree=new d.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new d.Buf16(k+1),this.heap=new d.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new d.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=n,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?C:E,t.adler=2===e.wrap?0:1,e.last_flush=l,u._tr_init(e),m):R(t,_)}function K(t){var e=G(t);return e===m&&function(t){t.window_size=2*t.w_size,D(t.head),t.max_lazy_match=h[t.level].max_lazy,t.good_match=h[t.level].good_length,t.nice_match=h[t.level].nice_length,t.max_chain_length=h[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=x-1,t.match_available=0,t.ins_h=0}(t.state),e}function Y(t,e,r,i,n,s){if(!t)return _;var a=1;if(e===g&&(e=6),i<0?(a=0,i=-i):15<i&&(a=2,i-=16),n<1||y<n||r!==v||i<8||15<i||e<0||9<e||s<0||b<s)return R(t,_);8===i&&(i=9);var o=new H;return(t.state=o).strm=t,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new d.Buf8(2*o.w_size),o.head=new d.Buf16(o.hash_size),o.prev=new d.Buf16(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new d.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=e,o.strategy=s,o.method=r,K(t)}h=[new M(0,0,0,0,function(t,e){var r=65535;for(r>t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||5<e||e<0)return t?R(t,_):_;if(i=t.state,!t.output||!t.input&&0!==t.avail_in||666===i.status&&e!==f)return R(t,0===t.avail_out?-5:_);if(i.strm=t,r=i.last_flush,i.last_flush=e,i.status===C)if(2===i.wrap)t.adler=0,U(i,31),U(i,139),U(i,8),i.gzhead?(U(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),U(i,255&i.gzhead.time),U(i,i.gzhead.time>>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0,U(i,s)}while(0!==s);i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0,U(i,s)}while(0!==s);i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0<t.strstart&&(i=a[n=t.strstart-1])===a[++n]&&i===a[++n]&&i===a[++n]){s=t.strstart+S;do{}while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&n<s);t.match_length=S-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0<i.wrap&&(i.wrap=-i.wrap),0!==i.pending?m:1)},r.deflateEnd=function(t){var e;return t&&t.state?(e=t.state.status)!==C&&69!==e&&73!==e&&91!==e&&103!==e&&e!==E&&666!==e?R(t,_):(t.state=null,e===E?R(t,-3):m):_},r.deflateSetDictionary=function(t,e){var r,i,n,s,a,o,h,u,l=e.length;if(!t||!t.state)return _;if(2===(s=(r=t.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(t.adler=c(t.adler,e,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+x-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++,--n;);r.strstart=i,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,t.next_in=o,t.input=h,t.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(t,e,r){\"use strict\";e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r,i,n,s,a,o,h,u,l,f,d,c,p,m,_,g,b,v,y,w,k,x,S,z,C;r=t.state,i=t.next_in,z=t.input,n=i+(t.avail_in-5),s=t.next_out,C=t.output,a=s-(e-t.avail_out),o=s+(t.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,d=r.window,c=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;t:do{p<15&&(c+=z[i++]<<p,p+=8,c+=z[i++]<<p,p+=8),v=m[c&g];e:for(;;){if(c>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<<y)-1)];continue e}if(32&y){r.mode=12;break t}t.msg=\"invalid literal/length code\",r.mode=30;break t}w=65535&v,(y&=15)&&(p<y&&(c+=z[i++]<<p,p+=8),w+=c&(1<<y)-1,c>>>=y,p-=y),p<15&&(c+=z[i++]<<p,p+=8,c+=z[i++]<<p,p+=8),v=_[c&b];r:for(;;){if(c>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<<y)-1)];continue r}t.msg=\"invalid distance code\",r.mode=30;break t}if(k=65535&v,p<(y&=15)&&(c+=z[i++]<<p,(p+=8)<y&&(c+=z[i++]<<p,p+=8)),h<(k+=c&(1<<y)-1)){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(c>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(S=d,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=d[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=d[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(i<n&&s<o);i-=w=p>>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i<n?n-i+5:5-(i-n),t.avail_out=s<o?o-s+257:257-(s-o),r.hold=c,r.bits=p}},{}],49:[function(t,e,r){\"use strict\";var I=t(\"../utils/common\"),O=t(\"./adler32\"),B=t(\"./crc32\"),R=t(\"./inffast\"),T=t(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,i=852,n=592;function L(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15<e)?U:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=r,i.wbits=e,o(t))):U}function u(t,e){var r,i;return t?(i=new s,(t.state=i).window=null,(r=h(t,e))!==N&&(t.state=null),r):U}var l,f,d=!0;function j(t){if(d){var e;for(l=new I.Buf32(512),f=new I.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(T(D,t.lens,0,288,l,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;T(F,t.lens,0,32,f,0,t.work,{bits:5}),d=!1}t.lencode=l,t.lenbits=9,t.distcode=f,t.distbits=5}function Z(t,e,r,i){var n,s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),i>=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=n))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(t){return u(t,15)},r.inflateInit2=u,r.inflate=function(t,e){var r,i,n,s,a,o,h,u,l,f,d,c,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return U;12===(r=t.state).mode&&(r.mode=13),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,f=o,d=h,x=N;t:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){t.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,t.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){t.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){t.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(u!==(65535&r.check)){t.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}t.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,2;t.adler=r.check=1,r.mode=12;case 12:if(5===e||6===e)break t;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){t.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(o<c&&(c=o),h<c&&(c=h),0===c)break t;I.arraySet(n,i,s,c,a),o-=c,s+=c,h-=c,a+=c,r.length-=c;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){t.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){t.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}l-=_,k=0,c=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}l-=_,k=0,c=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg=\"invalid bit length repeat\",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=o&&258<=h){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(h<c&&(c=h),h-=c,r.length-=c;n[a++]=m[p++],--c;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break t;n[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break t;o--,u|=i[s++]<<l,l+=8}if(d-=h,t.total_out+=d,r.total+=d,d&&(t.adler=r.check=r.flags?B(r.check,n,d,a-d):O(r.check,n,d,a-d)),d=h,(r.flags?u:L(u))!==r.check){t.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(u!==(4294967295&r.total)){t.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break t;case 30:x=-3;break t;case 31:return-4;case 32:default:return U}return t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,(r.wsize||d!==t.avail_out&&r.mode<30&&(r.mode<27||4!==e))&&Z(t,t.output,t.next_out,d-t.avail_out)?(r.mode=31,-4):(f-=t.avail_in,d-=t.avail_out,t.total_in+=f,t.total_out+=d,r.total+=d,r.wrap&&d&&(t.adler=r.check=r.flags?B(r.check,n,d,t.next_out-d):O(r.check,n,d,t.next_out-d)),t.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===d||4===e)&&x===N&&(x=-5),x)},r.inflateEnd=function(t){if(!t||!t.state)return U;var e=t.state;return e.window&&(e.window=null),t.state=null,N},r.inflateGetHeader=function(t,e){var r;return t&&t.state?0==(2&(r=t.state).wrap)?U:((r.head=e).done=!1,N):U},r.inflateSetDictionary=function(t,e){var r,i=e.length;return t&&t.state?0!==(r=t.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,e,i,0)!==r.check?-3:Z(t,e,i,i)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(t,e,r){\"use strict\";var D=t(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,r,i,n,s,a,o){var h,u,l,f,d,c,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<i;v++)O[e[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return n[s++]=20971520,n[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===t||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<i;v++)0!==e[r+v]&&(a[B[e[r+v]]++]=v);if(c=0===t?(A=R=a,19):1===t?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,d=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===t&&852<C||2===t&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<c?(m=0,a[v]):a[v]>c?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;n[d+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),d+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===t&&852<C||2===t&&592<C)return 1;n[l=E&f]=k<<24|x<<16|d-s|0}}return 0!==E&&(n[d+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(t,e,r){\"use strict\";e.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(t,e,r){\"use strict\";var n=t(\"../utils/common\"),o=0,h=1;function i(t){for(var e=t.length;0<=--e;)t[e]=0}var s=0,a=29,u=256,l=u+1+a,f=30,d=19,_=2*l+1,g=15,c=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));i(z);var C=new Array(2*f);i(C);var E=new Array(512);i(E);var A=new Array(256);i(A);var I=new Array(a);i(I);var O,B,R,T=new Array(f);function D(t,e,r,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function F(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function N(t){return t<256?E[t]:E[256+(t>>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<<t.bi_valid&65535,U(t,t.bi_buf),t.bi_buf=e>>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=r)}function L(t,e,r){P(t,r[2*e],r[2*e+1])}function j(t,e){for(var r=0;r|=1&t,t>>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;i<=g;i++)s[i]=a=a+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;e<l;e++)t.dyn_ltree[2*e]=0;for(e=0;e<f;e++)t.dyn_dtree[2*e]=0;for(e=0;e<d;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*m]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function M(t){8<t.bi_valid?U(t,t.bi_buf):0<t.bi_valid&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function H(t,e,r,i){var n=2*e,s=2*r;return t[n]<t[s]||t[n]===t[s]&&i[e]<=i[r]}function G(t,e,r){for(var i=t.heap[r],n=r<<1;n<=t.heap_len&&(n<t.heap_len&&H(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!H(e,i,t.heap[n],t.depth));)t.heap[r]=t.heap[n],r=n,n<<=1;t.heap[r]=i}function K(t,e,r){var i,n,s,a,o=0;if(0!==t.last_lit)for(;i=t.pending_buf[t.d_buf+2*o]<<8|t.pending_buf[t.d_buf+2*o+1],n=t.pending_buf[t.l_buf+o],o++,0===i?L(t,n,e):(L(t,(s=A[n])+u+1,e),0!==(a=w[s])&&P(t,n-=I[s],a),L(t,s=N(--i),r),0!==(a=k[s])&&P(t,i-=T[s],a)),o<t.last_lit;);L(t,m,e)}function Y(t,e){var r,i,n,s=e.dyn_tree,a=e.stat_desc.static_tree,o=e.stat_desc.has_stree,h=e.stat_desc.elems,u=-1;for(t.heap_len=0,t.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(t.heap[++t.heap_len]=u=r,t.depth[r]=0):s[2*r+1]=0;for(;t.heap_len<2;)s[2*(n=t.heap[++t.heap_len]=u<2?++u:0)]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=a[2*n+1]);for(e.max_code=u,r=t.heap_len>>1;1<=r;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;s<=g;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<_;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,u<i||(t.bl_count[s]++,a=0,c<=i&&(a=d[i-c]),o=h[2*i],t.opt_len+=o*(s+a),f&&(t.static_len+=o*(l[2*i+1]+a)));if(0!==m){do{for(s=p-1;0===t.bl_count[s];)s--;t.bl_count[s]--,t.bl_count[s+1]+=2,t.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(i=t.bl_count[s];0!==i;)u<(n=t.heap[--r])||(h[2*n+1]!==s&&(t.opt_len+=(s-h[2*n+1])*h[2*n],h[2*n+1]=s),i--)}}(t,e),Z(s,u,t.bl_count)}function X(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),e[2*(r+1)+1]=65535,i=0;i<=r;i++)n=a,a=e[2*(i+1)+1],++o<h&&n===a||(o<u?t.bl_tree[2*n]+=o:0!==n?(n!==s&&t.bl_tree[2*n]++,t.bl_tree[2*b]++):o<=10?t.bl_tree[2*v]++:t.bl_tree[2*y]++,s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4))}function V(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),i=0;i<=r;i++)if(n=a,a=e[2*(i+1)+1],!(++o<h&&n===a)){if(o<u)for(;L(t,n,t.bl_tree),0!=--o;);else 0!==n?(n!==s&&(L(t,n,t.bl_tree),o--),L(t,b,t.bl_tree),P(t,o-3,2)):o<=10?(L(t,v,t.bl_tree),P(t,o-3,3)):(L(t,y,t.bl_tree),P(t,o-11,7));s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4)}}i(T);var q=!1;function J(t,e,r,i){P(t,(s<<1)+(i?1:0),3),function(t,e,r,i){M(t),i&&(U(t,r),U(t,~r)),n.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}(t,e,r,!0)}r._tr_init=function(t){q||(function(){var t,e,r,i,n,s=new Array(g+1);for(i=r=0;i<a-1;i++)for(I[i]=r,t=0;t<1<<w[i];t++)A[r++]=i;for(A[r-1]=i,i=n=0;i<16;i++)for(T[i]=n,t=0;t<1<<k[i];t++)E[n++]=i;for(n>>=7;i<f;i++)for(T[i]=n<<7,t=0;t<1<<k[i]-7;t++)E[256+n++]=i;for(e=0;e<=g;e++)s[e]=0;for(t=0;t<=143;)z[2*t+1]=8,t++,s[8]++;for(;t<=255;)z[2*t+1]=9,t++,s[9]++;for(;t<=279;)z[2*t+1]=7,t++,s[7]++;for(;t<=287;)z[2*t+1]=8,t++,s[8]++;for(Z(z,l+1,s),t=0;t<f;t++)C[2*t+1]=5,C[2*t]=j(t,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,d,p)}(),q=!0),t.l_desc=new F(t.dyn_ltree,O),t.d_desc=new F(t.dyn_dtree,B),t.bl_desc=new F(t.bl_tree,R),t.bi_buf=0,t.bi_valid=0,W(t)},r._tr_stored_block=J,r._tr_flush_block=function(t,e,r,i){var n,s,a=0;0<t.level?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e<u;e++)if(0!==t.dyn_ltree[2*e])return h;return o}(t)),Y(t,t.l_desc),Y(t,t.d_desc),a=function(t){var e;for(X(t,t.dyn_ltree,t.l_desc.max_code),X(t,t.dyn_dtree,t.d_desc.max_code),Y(t,t.bl_desc),e=d-1;3<=e&&0===t.bl_tree[2*S[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;n<i;n++)P(t,t.bl_tree[2*S[n]+1],3);V(t,t.dyn_ltree,e-1),V(t,t.dyn_dtree,r-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),K(t,t.dyn_ltree,t.dyn_dtree)),W(t),i&&M(t)},r._tr_tally=function(t,e,r){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{\"../utils/common\":41}],53:[function(t,e,r){\"use strict\";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){\"use strict\";e.exports=\"function\"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)});\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/jszip/dist/jszip.min.js?");

/***/ }),

/***/ "./node_modules/object-keys/implementation.js":
/*!****************************************************!*\
  !*** ./node_modules/object-keys/implementation.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = __webpack_require__(/*! ./isArguments */ \"./node_modules/object-keys/isArguments.js\"); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/object-keys/implementation.js?");

/***/ }),

/***/ "./node_modules/object-keys/index.js":
/*!*******************************************!*\
  !*** ./node_modules/object-keys/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar slice = Array.prototype.slice;\nvar isArgs = __webpack_require__(/*! ./isArguments */ \"./node_modules/object-keys/isArguments.js\");\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(/*! ./implementation */ \"./node_modules/object-keys/implementation.js\");\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/object-keys/index.js?");

/***/ }),

/***/ "./node_modules/object-keys/isArguments.js":
/*!*************************************************!*\
  !*** ./node_modules/object-keys/isArguments.js ***!
  \*************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/object-keys/isArguments.js?");

/***/ }),

/***/ "./node_modules/regenerator-runtime/runtime.js":
/*!*****************************************************!*\
  !*** ./node_modules/regenerator-runtime/runtime.js ***!
  \*****************************************************/
/***/ ((module) => {

eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n    return obj[key];\n  }\n  try {\n    // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n    define({}, \"\");\n  } catch (err) {\n    define = function(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunction.displayName = define(\n    GeneratorFunctionPrototype,\n    toStringTagSymbol,\n    \"GeneratorFunction\"\n  );\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      define(prototype, method, function(arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  define(Gp, toStringTagSymbol, \"Generator\");\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n   true ? module.exports : 0\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/regenerator-runtime/runtime.js?");

/***/ }),

/***/ "./node_modules/seedrandom/index.js":
/*!******************************************!*\
  !*** ./node_modules/seedrandom/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random();       // 0 <= x < 1.  Every bit is random.\n// var x = random.quick(); // 0 <= x < 1.  32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = __webpack_require__(/*! ./lib/alea */ \"./node_modules/seedrandom/lib/alea.js\");\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = __webpack_require__(/*! ./lib/xor128 */ \"./node_modules/seedrandom/lib/xor128.js\");\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = __webpack_require__(/*! ./lib/xorwow */ \"./node_modules/seedrandom/lib/xorwow.js\");\n\n// xorshift7, by François Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three.  It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = __webpack_require__(/*! ./lib/xorshift7 */ \"./node_modules/seedrandom/lib/xorshift7.js\");\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures.  Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = __webpack_require__(/*! ./lib/xor4096 */ \"./node_modules/seedrandom/lib/xor4096.js\");\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = __webpack_require__(/*! ./lib/tychei */ \"./node_modules/seedrandom/lib/tychei.js\");\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = __webpack_require__(/*! ./seedrandom */ \"./node_modules/seedrandom/seedrandom.js\");\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/seedrandom/index.js?");

/***/ }),

/***/ "./node_modules/seedrandom/lib/alea.js":
/*!*********************************************!*\
  !*** ./node_modules/seedrandom/lib/alea.js ***!
  \*********************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;// A port of an algorithm by Johannes Baagøe <baagoe@baagoe.com>, 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baagøe <baagoe@baagoe.org>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n  var me = this, mash = Mash();\n\n  me.next = function() {\n    var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n    me.s0 = me.s1;\n    me.s1 = me.s2;\n    return me.s2 = t - (me.c = t | 0);\n  };\n\n  // Apply the seeding algorithm from Baagoe.\n  me.c = 1;\n  me.s0 = mash(' ');\n  me.s1 = mash(' ');\n  me.s2 = mash(' ');\n  me.s0 -= mash(seed);\n  if (me.s0 < 0) { me.s0 += 1; }\n  me.s1 -= mash(seed);\n  if (me.s1 < 0) { me.s1 += 1; }\n  me.s2 -= mash(seed);\n  if (me.s2 < 0) { me.s2 += 1; }\n  mash = null;\n}\n\nfunction copy(f, t) {\n  t.c = f.c;\n  t.s0 = f.s0;\n  t.s1 = f.s1;\n  t.s2 = f.s2;\n  return t;\n}\n\nfunction impl(seed, opts) {\n  var xg = new Alea(seed),\n      state = opts && opts.state,\n      prng = xg.next;\n  prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n  prng.double = function() {\n    return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n  };\n  prng.quick = prng;\n  if (state) {\n    if (typeof(state) == 'object') copy(state, xg);\n    prng.state = function() { return copy(xg, {}); }\n  }\n  return prng;\n}\n\nfunction Mash() {\n  var n = 0xefc8249d;\n\n  var mash = function(data) {\n    data = String(data);\n    for (var i = 0; i < data.length; i++) {\n      n += data.charCodeAt(i);\n      var h = 0.02519603282416938 * n;\n      n = h >>> 0;\n      h -= n;\n      h *= n;\n      n = h >>> 0;\n      h -= n;\n      n += h * 0x100000000; // 2^32\n    }\n    return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n  };\n\n  return mash;\n}\n\n\nif (module && module.exports) {\n  module.exports = impl;\n} else if (__webpack_require__.amdD && __webpack_require__.amdO) {\n  !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return impl; }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else {\n  this.alea = impl;\n}\n\n})(\n  this,\n   true && module,    // present in node.js\n  __webpack_require__.amdD   // present with an AMD loader\n);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/seedrandom/lib/alea.js?");

/***/ }),

/***/ "./node_modules/seedrandom/lib/tychei.js":
/*!***********************************************!*\
  !*** ./node_modules/seedrandom/lib/tychei.js ***!
  \***********************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n  var me = this, strseed = '';\n\n  // Set up generator function.\n  me.next = function() {\n    var b = me.b, c = me.c, d = me.d, a = me.a;\n    b = (b << 25) ^ (b >>> 7) ^ c;\n    c = (c - d) | 0;\n    d = (d << 24) ^ (d >>> 8) ^ a;\n    a = (a - b) | 0;\n    me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n    me.c = c = (c - d) | 0;\n    me.d = (d << 16) ^ (c >>> 16) ^ a;\n    return me.a = (a - b) | 0;\n  };\n\n  /* The following is non-inverted tyche, which has better internal\n   * bit diffusion, but which is about 25% slower than tyche-i in JS.\n  me.next = function() {\n    var a = me.a, b = me.b, c = me.c, d = me.d;\n    a = (me.a + me.b | 0) >>> 0;\n    d = me.d ^ a; d = d << 16 ^ d >>> 16;\n    c = me.c + d | 0;\n    b = me.b ^ c; b = b << 12 ^ d >>> 20;\n    me.a = a = a + b | 0;\n    d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n    me.c = c = c + d | 0;\n    b = b ^ c;\n    return me.b = (b << 7 ^ b >>> 25);\n  }\n  */\n\n  me.a = 0;\n  me.b = 0;\n  me.c = 2654435769 | 0;\n  me.d = 1367130551;\n\n  if (seed === Math.floor(seed)) {\n    // Integer seed.\n    me.a = (seed / 0x100000000) | 0;\n    me.b = seed | 0;\n  } else {\n    // String seed.\n    strseed += seed;\n  }\n\n  // Mix in string seed, then discard an initial batch of 64 values.\n  for (var k = 0; k < strseed.length + 20; k++) {\n    me.b ^= strseed.charCodeAt(k) | 0;\n    me.next();\n  }\n}\n\nfunction copy(f, t) {\n  t.a = f.a;\n  t.b = f.b;\n  t.c = f.c;\n  t.d = f.d;\n  return t;\n};\n\nfunction impl(seed, opts) {\n  var xg = new XorGen(seed),\n      state = opts && opts.state,\n      prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n  prng.double = function() {\n    do {\n      var top = xg.next() >>> 11,\n          bot = (xg.next() >>> 0) / 0x100000000,\n          result = (top + bot) / (1 << 21);\n    } while (result === 0);\n    return result;\n  };\n  prng.int32 = xg.next;\n  prng.quick = prng;\n  if (state) {\n    if (typeof(state) == 'object') copy(state, xg);\n    prng.state = function() { return copy(xg, {}); }\n  }\n  return prng;\n}\n\nif (module && module.exports) {\n  module.exports = impl;\n} else if (__webpack_require__.amdD && __webpack_require__.amdO) {\n  !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return impl; }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else {\n  this.tychei = impl;\n}\n\n})(\n  this,\n   true && module,    // present in node.js\n  __webpack_require__.amdD   // present with an AMD loader\n);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/seedrandom/lib/tychei.js?");

/***/ }),

/***/ "./node_modules/seedrandom/lib/xor128.js":
/*!***********************************************!*\
  !*** ./node_modules/seedrandom/lib/xor128.js ***!
  \***********************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n  var me = this, strseed = '';\n\n  me.x = 0;\n  me.y = 0;\n  me.z = 0;\n  me.w = 0;\n\n  // Set up generator function.\n  me.next = function() {\n    var t = me.x ^ (me.x << 11);\n    me.x = me.y;\n    me.y = me.z;\n    me.z = me.w;\n    return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n  };\n\n  if (seed === (seed | 0)) {\n    // Integer seed.\n    me.x = seed;\n  } else {\n    // String seed.\n    strseed += seed;\n  }\n\n  // Mix in string seed, then discard an initial batch of 64 values.\n  for (var k = 0; k < strseed.length + 64; k++) {\n    me.x ^= strseed.charCodeAt(k) | 0;\n    me.next();\n  }\n}\n\nfunction copy(f, t) {\n  t.x = f.x;\n  t.y = f.y;\n  t.z = f.z;\n  t.w = f.w;\n  return t;\n}\n\nfunction impl(seed, opts) {\n  var xg = new XorGen(seed),\n      state = opts && opts.state,\n      prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n  prng.double = function() {\n    do {\n      var top = xg.next() >>> 11,\n          bot = (xg.next() >>> 0) / 0x100000000,\n          result = (top + bot) / (1 << 21);\n    } while (result === 0);\n    return result;\n  };\n  prng.int32 = xg.next;\n  prng.quick = prng;\n  if (state) {\n    if (typeof(state) == 'object') copy(state, xg);\n    prng.state = function() { return copy(xg, {}); }\n  }\n  return prng;\n}\n\nif (module && module.exports) {\n  module.exports = impl;\n} else if (__webpack_require__.amdD && __webpack_require__.amdO) {\n  !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return impl; }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else {\n  this.xor128 = impl;\n}\n\n})(\n  this,\n   true && module,    // present in node.js\n  __webpack_require__.amdD   // present with an AMD loader\n);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/seedrandom/lib/xor128.js?");

/***/ }),

/***/ "./node_modules/seedrandom/lib/xor4096.js":
/*!************************************************!*\
  !*** ./node_modules/seedrandom/lib/xor4096.js ***!
  \************************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated.  For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1);                        // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897);   // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C.  This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n  var me = this;\n\n  // Set up generator function.\n  me.next = function() {\n    var w = me.w,\n        X = me.X, i = me.i, t, v;\n    // Update Weyl generator.\n    me.w = w = (w + 0x61c88647) | 0;\n    // Update xor generator.\n    v = X[(i + 34) & 127];\n    t = X[i = ((i + 1) & 127)];\n    v ^= v << 13;\n    t ^= t << 17;\n    v ^= v >>> 15;\n    t ^= t >>> 12;\n    // Update Xor generator array state.\n    v = X[i] = v ^ t;\n    me.i = i;\n    // Result is the combination.\n    return (v + (w ^ (w >>> 16))) | 0;\n  };\n\n  function init(me, seed) {\n    var t, v, i, j, w, X = [], limit = 128;\n    if (seed === (seed | 0)) {\n      // Numeric seeds initialize v, which is used to generates X.\n      v = seed;\n      seed = null;\n    } else {\n      // String seeds are mixed into v and X one character at a time.\n      seed = seed + '\\0';\n      v = 0;\n      limit = Math.max(limit, seed.length);\n    }\n    // Initialize circular array and weyl value.\n    for (i = 0, j = -32; j < limit; ++j) {\n      // Put the unicode characters into the array, and shuffle them.\n      if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n      // After 32 shuffles, take v as the starting w value.\n      if (j === 0) w = v;\n      v ^= v << 10;\n      v ^= v >>> 15;\n      v ^= v << 4;\n      v ^= v >>> 13;\n      if (j >= 0) {\n        w = (w + 0x61c88647) | 0;     // Weyl.\n        t = (X[j & 127] ^= (v + w));  // Combine xor and weyl to init array.\n        i = (0 == t) ? i + 1 : 0;     // Count zeroes.\n      }\n    }\n    // We have detected all zeroes; make the key nonzero.\n    if (i >= 128) {\n      X[(seed && seed.length || 0) & 127] = -1;\n    }\n    // Run the generator 512 times to further mix the state before using it.\n    // Factoring this as a function slows the main generator, so it is just\n    // unrolled here.  The weyl generator is not advanced while warming up.\n    i = 127;\n    for (j = 4 * 128; j > 0; --j) {\n      v = X[(i + 34) & 127];\n      t = X[i = ((i + 1) & 127)];\n      v ^= v << 13;\n      t ^= t << 17;\n      v ^= v >>> 15;\n      t ^= t >>> 12;\n      X[i] = v ^ t;\n    }\n    // Storing state as object members is faster than using closure variables.\n    me.w = w;\n    me.X = X;\n    me.i = i;\n  }\n\n  init(me, seed);\n}\n\nfunction copy(f, t) {\n  t.i = f.i;\n  t.w = f.w;\n  t.X = f.X.slice();\n  return t;\n};\n\nfunction impl(seed, opts) {\n  if (seed == null) seed = +(new Date);\n  var xg = new XorGen(seed),\n      state = opts && opts.state,\n      prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n  prng.double = function() {\n    do {\n      var top = xg.next() >>> 11,\n          bot = (xg.next() >>> 0) / 0x100000000,\n          result = (top + bot) / (1 << 21);\n    } while (result === 0);\n    return result;\n  };\n  prng.int32 = xg.next;\n  prng.quick = prng;\n  if (state) {\n    if (state.X) copy(state, xg);\n    prng.state = function() { return copy(xg, {}); }\n  }\n  return prng;\n}\n\nif (module && module.exports) {\n  module.exports = impl;\n} else if (__webpack_require__.amdD && __webpack_require__.amdO) {\n  !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return impl; }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else {\n  this.xor4096 = impl;\n}\n\n})(\n  this,                                     // window object or global\n   true && module,    // present in node.js\n  __webpack_require__.amdD   // present with an AMD loader\n);\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/seedrandom/lib/xor4096.js?");

/***/ }),

/***/ "./node_modules/seedrandom/lib/xorshift7.js":
/*!**************************************************!*\
  !*** ./node_modules/seedrandom/lib/xorshift7.js ***!
  \**************************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;// A Javascript implementaion of the \"xorshift7\" algorithm by\n// François Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n  var me = this;\n\n  // Set up generator function.\n  me.next = function() {\n    // Update xor generator.\n    var X = me.x, i = me.i, t, v, w;\n    t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n    t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n    t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n    t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n    t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n    X[i] = v;\n    me.i = (i + 1) & 7;\n    return v;\n  };\n\n  function init(me, seed) {\n    var j, w, X = [];\n\n    if (seed === (seed | 0)) {\n      // Seed state array using a 32-bit integer.\n      w = X[0] = seed;\n    } else {\n      // Seed state using a string.\n      seed = '' + seed;\n      for (j = 0; j < seed.length; ++j) {\n        X[j & 7] = (X[j & 7] << 15) ^\n            (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n      }\n    }\n    // Enforce an array length of 8, not all zeroes.\n    while (X.length < 8) X.push(0);\n    for (j = 0; j < 8 && X[j] === 0; ++j);\n    if (j == 8) w = X[7] = -1; else w = X[j];\n\n    me.x = X;\n    me.i = 0;\n\n    // Discard an initial 256 values.\n    for (j = 256; j > 0; --j) {\n      me.next();\n    }\n  }\n\n  init(me, seed);\n}\n\nfunction copy(f, t) {\n  t.x = f.x.slice();\n  t.i = f.i;\n  return t;\n}\n\nfunction impl(seed, opts) {\n  if (seed == null) seed = +(new Date);\n  var xg = new XorGen(seed),\n      state = opts && opts.state,\n      prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n  prng.double = function() {\n    do {\n      var top = xg.next() >>> 11,\n          bot = (xg.next() >>> 0) / 0x100000000,\n          result = (top + bot) / (1 << 21);\n    } while (result === 0);\n    return result;\n  };\n  prng.int32 = xg.next;\n  prng.quick = prng;\n  if (state) {\n    if (state.x) copy(state, xg);\n    prng.state = function() { return copy(xg, {}); }\n  }\n  return prng;\n}\n\nif (module && module.exports) {\n  module.exports = impl;\n} else if (__webpack_require__.amdD && __webpack_require__.amdO) {\n  !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return impl; }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else {\n  this.xorshift7 = impl;\n}\n\n})(\n  this,\n   true && module,    // present in node.js\n  __webpack_require__.amdD   // present with an AMD loader\n);\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/seedrandom/lib/xorshift7.js?");

/***/ }),

/***/ "./node_modules/seedrandom/lib/xorwow.js":
/*!***********************************************!*\
  !*** ./node_modules/seedrandom/lib/xorwow.js ***!
  \***********************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n  var me = this, strseed = '';\n\n  // Set up generator function.\n  me.next = function() {\n    var t = (me.x ^ (me.x >>> 2));\n    me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n    return (me.d = (me.d + 362437 | 0)) +\n       (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n  };\n\n  me.x = 0;\n  me.y = 0;\n  me.z = 0;\n  me.w = 0;\n  me.v = 0;\n\n  if (seed === (seed | 0)) {\n    // Integer seed.\n    me.x = seed;\n  } else {\n    // String seed.\n    strseed += seed;\n  }\n\n  // Mix in string seed, then discard an initial batch of 64 values.\n  for (var k = 0; k < strseed.length + 64; k++) {\n    me.x ^= strseed.charCodeAt(k) | 0;\n    if (k == strseed.length) {\n      me.d = me.x << 10 ^ me.x >>> 4;\n    }\n    me.next();\n  }\n}\n\nfunction copy(f, t) {\n  t.x = f.x;\n  t.y = f.y;\n  t.z = f.z;\n  t.w = f.w;\n  t.v = f.v;\n  t.d = f.d;\n  return t;\n}\n\nfunction impl(seed, opts) {\n  var xg = new XorGen(seed),\n      state = opts && opts.state,\n      prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n  prng.double = function() {\n    do {\n      var top = xg.next() >>> 11,\n          bot = (xg.next() >>> 0) / 0x100000000,\n          result = (top + bot) / (1 << 21);\n    } while (result === 0);\n    return result;\n  };\n  prng.int32 = xg.next;\n  prng.quick = prng;\n  if (state) {\n    if (typeof(state) == 'object') copy(state, xg);\n    prng.state = function() { return copy(xg, {}); }\n  }\n  return prng;\n}\n\nif (module && module.exports) {\n  module.exports = impl;\n} else if (__webpack_require__.amdD && __webpack_require__.amdO) {\n  !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return impl; }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else {\n  this.xorwow = impl;\n}\n\n})(\n  this,\n   true && module,    // present in node.js\n  __webpack_require__.amdD   // present with an AMD loader\n);\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/seedrandom/lib/xorwow.js?");

/***/ }),

/***/ "./node_modules/seedrandom/seedrandom.js":
/*!***********************************************!*\
  !*** ./node_modules/seedrandom/seedrandom.js ***!
  \***********************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256,        // each RC4 output is 0 <= x < 256\n    chunks = 6,         // at least six RC4 outputs for each double\n    digits = 52,        // there are 52 significant digits in a double\n    rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n    startdenom = math.pow(width, chunks),\n    significance = math.pow(2, digits),\n    overflow = significance * 2,\n    mask = width - 1,\n    nodecrypto;         // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n  var key = [];\n  options = (options == true) ? { entropy: true } : (options || {});\n\n  // Flatten the seed string or build one from local entropy if needed.\n  var shortseed = mixkey(flatten(\n    options.entropy ? [seed, tostring(pool)] :\n    (seed == null) ? autoseed() : seed, 3), key);\n\n  // Use the seed to initialize an ARC4 generator.\n  var arc4 = new ARC4(key);\n\n  // This function returns a random double in [0, 1) that contains\n  // randomness in every bit of the mantissa of the IEEE 754 value.\n  var prng = function() {\n    var n = arc4.g(chunks),             // Start with a numerator n < 2 ^ 48\n        d = startdenom,                 //   and denominator d = 2 ^ 48.\n        x = 0;                          //   and no 'extra last byte'.\n    while (n < significance) {          // Fill up all significant digits by\n      n = (n + x) * width;              //   shifting numerator and\n      d *= width;                       //   denominator and generating a\n      x = arc4.g(1);                    //   new least-significant-byte.\n    }\n    while (n >= overflow) {             // To avoid rounding up, before adding\n      n /= 2;                           //   last byte, shift everything\n      d /= 2;                           //   right using integer math until\n      x >>>= 1;                         //   we have exactly the desired bits.\n    }\n    return (n + x) / d;                 // Form the number within [0, 1).\n  };\n\n  prng.int32 = function() { return arc4.g(4) | 0; }\n  prng.quick = function() { return arc4.g(4) / 0x100000000; }\n  prng.double = prng;\n\n  // Mix the randomness into accumulated entropy.\n  mixkey(tostring(arc4.S), pool);\n\n  // Calling convention: what to return as a function of prng, seed, is_math.\n  return (options.pass || callback ||\n      function(prng, seed, is_math_call, state) {\n        if (state) {\n          // Load the arc4 state from the given state if it has an S array.\n          if (state.S) { copy(state, arc4); }\n          // Only provide the .state method if requested via options.state.\n          prng.state = function() { return copy(arc4, {}); }\n        }\n\n        // If called as a method of Math (Math.seedrandom()), mutate\n        // Math.random because that is how seedrandom.js has worked since v1.0.\n        if (is_math_call) { math[rngname] = prng; return seed; }\n\n        // Otherwise, it is a newer calling convention, so return the\n        // prng directly.\n        else return prng;\n      })(\n  prng,\n  shortseed,\n  'global' in options ? options.global : (this == math),\n  options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation.  The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4.  Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n  var t, keylen = key.length,\n      me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n  // The empty key [] is treated as [0].\n  if (!keylen) { key = [keylen++]; }\n\n  // Set up S using the standard key scheduling algorithm.\n  while (i < width) {\n    s[i] = i++;\n  }\n  for (i = 0; i < width; i++) {\n    s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n    s[j] = t;\n  }\n\n  // The \"g\" method returns the next (count) outputs as one number.\n  (me.g = function(count) {\n    // Using instance members instead of closure state nearly doubles speed.\n    var t, r = 0,\n        i = me.i, j = me.j, s = me.S;\n    while (count--) {\n      t = s[i = mask & (i + 1)];\n      r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n    }\n    me.i = i; me.j = j;\n    return r;\n    // For robust unpredictability, the function call below automatically\n    // discards an initial batch of values.  This is called RC4-drop[256].\n    // See http://google.com/search?q=rsa+fluhrer+response&btnI\n  })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n  t.i = f.i;\n  t.j = f.j;\n  t.S = f.S.slice();\n  return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n  var result = [], typ = (typeof obj), prop;\n  if (depth && typ == 'object') {\n    for (prop in obj) {\n      try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n    }\n  }\n  return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n  var stringseed = seed + '', smear, j = 0;\n  while (j < stringseed.length) {\n    key[mask & j] =\n      mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n  }\n  return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n  try {\n    var out;\n    if (nodecrypto && (out = nodecrypto.randomBytes)) {\n      // The use of 'out' to remember randomBytes makes tight minified code.\n      out = out(width);\n    } else {\n      out = new Uint8Array(width);\n      (global.crypto || global.msCrypto).getRandomValues(out);\n    }\n    return tostring(out);\n  } catch (e) {\n    var browser = global.navigator,\n        plugins = browser && browser.plugins;\n    return [+new Date, global, plugins, global.screen, tostring(pool)];\n  }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n  return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool.  Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ( true && module.exports) {\n  module.exports = seedrandom;\n  // When in node.js, try using crypto package for autoseeding.\n  try {\n    nodecrypto = __webpack_require__(/*! crypto */ \"?d4c0\");\n  } catch (ex) {}\n} else if (true) {\n  !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return seedrandom; }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else {}\n\n\n// End anonymous scope, and pass initial values.\n})(\n  // global: `self` in browsers (including strict mode and web workers),\n  // otherwise `this` in Node and other environments\n  (typeof self !== 'undefined') ? self : this,\n  [],     // pool: entropy pool starts empty\n  Math    // math: package containing random, pow, and seedrandom\n);\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/seedrandom/seedrandom.js?");

/***/ }),

/***/ "./node_modules/spark-md5/spark-md5.js":
/*!*********************************************!*\
  !*** ./node_modules/spark-md5/spark-md5.js ***!
  \*********************************************/
/***/ ((module) => {

eval("(function (factory) {\n    if (true) {\n        // Node/CommonJS\n        module.exports = factory();\n    } else { var glob; }\n}(function (undefined) {\n\n    'use strict';\n\n    /*\n     * Fastest md5 implementation around (JKM md5).\n     * Credits: Joseph Myers\n     *\n     * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n     * @see http://jsperf.com/md5-shootout/7\n     */\n\n    /* this function is much faster,\n      so if possible we use it. Some IEs\n      are the only ones I know of that\n      need the idiotic second function,\n      generated by an if clause.  */\n    var add32 = function (a, b) {\n        return (a + b) & 0xFFFFFFFF;\n    },\n        hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n    function cmn(q, a, b, x, s, t) {\n        a = add32(add32(a, q), add32(x, t));\n        return add32((a << s) | (a >>> (32 - s)), b);\n    }\n\n    function md5cycle(x, k) {\n        var a = x[0],\n            b = x[1],\n            c = x[2],\n            d = x[3];\n\n        a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n        a  = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n        d  = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n        c  = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n        b  = (b << 22 | b >>> 10) + c | 0;\n        a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n        a  = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n        d  = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n        c  = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n        b  = (b << 22 | b >>> 10) + c | 0;\n        a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n        a  = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n        d  = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[10] - 42063 | 0;\n        c  = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n        b  = (b << 22 | b >>> 10) + c | 0;\n        a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n        a  = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n        d  = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n        c  = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n        b  = (b << 22 | b >>> 10) + c | 0;\n\n        a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n        a  = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n        d  = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n        c  = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n        b  = (b << 20 | b >>> 12) + c | 0;\n        a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n        a  = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n        d  = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n        c  = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n        b  = (b << 20 | b >>> 12) + c | 0;\n        a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n        a  = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n        d  = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n        c  = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n        b  = (b << 20 | b >>> 12) + c | 0;\n        a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n        a  = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n        d  = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n        c  = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n        b  = (b << 20 | b >>> 12) + c | 0;\n\n        a += (b ^ c ^ d) + k[5] - 378558 | 0;\n        a  = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n        d  = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n        c  = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n        b  = (b << 23 | b >>> 9) + c | 0;\n        a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n        a  = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n        d  = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n        c  = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n        b  = (b << 23 | b >>> 9) + c | 0;\n        a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n        a  = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n        d  = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n        c  = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n        b  = (b << 23 | b >>> 9) + c | 0;\n        a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n        a  = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n        d  = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n        c  = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n        b  = (b << 23 | b >>> 9) + c | 0;\n\n        a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n        a  = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n        d  = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n        c  = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n        b  = (b << 21 |b >>> 11) + c | 0;\n        a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n        a  = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n        d  = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n        c  = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n        b  = (b << 21 |b >>> 11) + c | 0;\n        a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n        a  = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n        d  = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n        c  = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n        b  = (b << 21 |b >>> 11) + c | 0;\n        a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n        a  = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n        d  = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n        c  = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n        b  = (b << 21 | b >>> 11) + c | 0;\n\n        x[0] = a + x[0] | 0;\n        x[1] = b + x[1] | 0;\n        x[2] = c + x[2] | 0;\n        x[3] = d + x[3] | 0;\n    }\n\n    function md5blk(s) {\n        var md5blks = [],\n            i; /* Andy King said do it this way. */\n\n        for (i = 0; i < 64; i += 4) {\n            md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n        }\n        return md5blks;\n    }\n\n    function md5blk_array(a) {\n        var md5blks = [],\n            i; /* Andy King said do it this way. */\n\n        for (i = 0; i < 64; i += 4) {\n            md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n        }\n        return md5blks;\n    }\n\n    function md51(s) {\n        var n = s.length,\n            state = [1732584193, -271733879, -1732584194, 271733878],\n            i,\n            length,\n            tail,\n            tmp,\n            lo,\n            hi;\n\n        for (i = 64; i <= n; i += 64) {\n            md5cycle(state, md5blk(s.substring(i - 64, i)));\n        }\n        s = s.substring(i - 64);\n        length = s.length;\n        tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n        for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n        }\n        tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n        if (i > 55) {\n            md5cycle(state, tail);\n            for (i = 0; i < 16; i += 1) {\n                tail[i] = 0;\n            }\n        }\n\n        // Beware that the final length might not fit in 32 bits so we take care of that\n        tmp = n * 8;\n        tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n        lo = parseInt(tmp[2], 16);\n        hi = parseInt(tmp[1], 16) || 0;\n\n        tail[14] = lo;\n        tail[15] = hi;\n\n        md5cycle(state, tail);\n        return state;\n    }\n\n    function md51_array(a) {\n        var n = a.length,\n            state = [1732584193, -271733879, -1732584194, 271733878],\n            i,\n            length,\n            tail,\n            tmp,\n            lo,\n            hi;\n\n        for (i = 64; i <= n; i += 64) {\n            md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n        }\n\n        // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n        // containing the last element of the parent array if the sub array specified starts\n        // beyond the length of the parent array - weird.\n        // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n        a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n        length = a.length;\n        tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n        for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= a[i] << ((i % 4) << 3);\n        }\n\n        tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n        if (i > 55) {\n            md5cycle(state, tail);\n            for (i = 0; i < 16; i += 1) {\n                tail[i] = 0;\n            }\n        }\n\n        // Beware that the final length might not fit in 32 bits so we take care of that\n        tmp = n * 8;\n        tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n        lo = parseInt(tmp[2], 16);\n        hi = parseInt(tmp[1], 16) || 0;\n\n        tail[14] = lo;\n        tail[15] = hi;\n\n        md5cycle(state, tail);\n\n        return state;\n    }\n\n    function rhex(n) {\n        var s = '',\n            j;\n        for (j = 0; j < 4; j += 1) {\n            s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n        }\n        return s;\n    }\n\n    function hex(x) {\n        var i;\n        for (i = 0; i < x.length; i += 1) {\n            x[i] = rhex(x[i]);\n        }\n        return x.join('');\n    }\n\n    // In some cases the fast add32 function cannot be used..\n    if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n        add32 = function (x, y) {\n            var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n                msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n            return (msw << 16) | (lsw & 0xFFFF);\n        };\n    }\n\n    // ---------------------------------------------------\n\n    /**\n     * ArrayBuffer slice polyfill.\n     *\n     * @see https://github.com/ttaubert/node-arraybuffer-slice\n     */\n\n    if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n        (function () {\n            function clamp(val, length) {\n                val = (val | 0) || 0;\n\n                if (val < 0) {\n                    return Math.max(val + length, 0);\n                }\n\n                return Math.min(val, length);\n            }\n\n            ArrayBuffer.prototype.slice = function (from, to) {\n                var length = this.byteLength,\n                    begin = clamp(from, length),\n                    end = length,\n                    num,\n                    target,\n                    targetArray,\n                    sourceArray;\n\n                if (to !== undefined) {\n                    end = clamp(to, length);\n                }\n\n                if (begin > end) {\n                    return new ArrayBuffer(0);\n                }\n\n                num = end - begin;\n                target = new ArrayBuffer(num);\n                targetArray = new Uint8Array(target);\n\n                sourceArray = new Uint8Array(this, begin, num);\n                targetArray.set(sourceArray);\n\n                return target;\n            };\n        })();\n    }\n\n    // ---------------------------------------------------\n\n    /**\n     * Helpers.\n     */\n\n    function toUtf8(str) {\n        if (/[\\u0080-\\uFFFF]/.test(str)) {\n            str = unescape(encodeURIComponent(str));\n        }\n\n        return str;\n    }\n\n    function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n        var length = str.length,\n           buff = new ArrayBuffer(length),\n           arr = new Uint8Array(buff),\n           i;\n\n        for (i = 0; i < length; i += 1) {\n            arr[i] = str.charCodeAt(i);\n        }\n\n        return returnUInt8Array ? arr : buff;\n    }\n\n    function arrayBuffer2Utf8Str(buff) {\n        return String.fromCharCode.apply(null, new Uint8Array(buff));\n    }\n\n    function concatenateArrayBuffers(first, second, returnUInt8Array) {\n        var result = new Uint8Array(first.byteLength + second.byteLength);\n\n        result.set(new Uint8Array(first));\n        result.set(new Uint8Array(second), first.byteLength);\n\n        return returnUInt8Array ? result : result.buffer;\n    }\n\n    function hexToBinaryString(hex) {\n        var bytes = [],\n            length = hex.length,\n            x;\n\n        for (x = 0; x < length - 1; x += 2) {\n            bytes.push(parseInt(hex.substr(x, 2), 16));\n        }\n\n        return String.fromCharCode.apply(String, bytes);\n    }\n\n    // ---------------------------------------------------\n\n    /**\n     * SparkMD5 OOP implementation.\n     *\n     * Use this class to perform an incremental md5, otherwise use the\n     * static methods instead.\n     */\n\n    function SparkMD5() {\n        // call reset to init the instance\n        this.reset();\n    }\n\n    /**\n     * Appends a string.\n     * A conversion will be applied if an utf8 string is detected.\n     *\n     * @param {String} str The string to be appended\n     *\n     * @return {SparkMD5} The instance itself\n     */\n    SparkMD5.prototype.append = function (str) {\n        // Converts the string to utf8 bytes if necessary\n        // Then append as binary\n        this.appendBinary(toUtf8(str));\n\n        return this;\n    };\n\n    /**\n     * Appends a binary string.\n     *\n     * @param {String} contents The binary string to be appended\n     *\n     * @return {SparkMD5} The instance itself\n     */\n    SparkMD5.prototype.appendBinary = function (contents) {\n        this._buff += contents;\n        this._length += contents.length;\n\n        var length = this._buff.length,\n            i;\n\n        for (i = 64; i <= length; i += 64) {\n            md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n        }\n\n        this._buff = this._buff.substring(i - 64);\n\n        return this;\n    };\n\n    /**\n     * Finishes the incremental computation, reseting the internal state and\n     * returning the result.\n     *\n     * @param {Boolean} raw True to get the raw string, false to get the hex string\n     *\n     * @return {String} The result\n     */\n    SparkMD5.prototype.end = function (raw) {\n        var buff = this._buff,\n            length = buff.length,\n            i,\n            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n            ret;\n\n        for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n        }\n\n        this._finish(tail, length);\n        ret = hex(this._hash);\n\n        if (raw) {\n            ret = hexToBinaryString(ret);\n        }\n\n        this.reset();\n\n        return ret;\n    };\n\n    /**\n     * Resets the internal state of the computation.\n     *\n     * @return {SparkMD5} The instance itself\n     */\n    SparkMD5.prototype.reset = function () {\n        this._buff = '';\n        this._length = 0;\n        this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n        return this;\n    };\n\n    /**\n     * Gets the internal state of the computation.\n     *\n     * @return {Object} The state\n     */\n    SparkMD5.prototype.getState = function () {\n        return {\n            buff: this._buff,\n            length: this._length,\n            hash: this._hash.slice()\n        };\n    };\n\n    /**\n     * Gets the internal state of the computation.\n     *\n     * @param {Object} state The state\n     *\n     * @return {SparkMD5} The instance itself\n     */\n    SparkMD5.prototype.setState = function (state) {\n        this._buff = state.buff;\n        this._length = state.length;\n        this._hash = state.hash;\n\n        return this;\n    };\n\n    /**\n     * Releases memory used by the incremental buffer and other additional\n     * resources. If you plan to use the instance again, use reset instead.\n     */\n    SparkMD5.prototype.destroy = function () {\n        delete this._hash;\n        delete this._buff;\n        delete this._length;\n    };\n\n    /**\n     * Finish the final calculation based on the tail.\n     *\n     * @param {Array}  tail   The tail (will be modified)\n     * @param {Number} length The length of the remaining buffer\n     */\n    SparkMD5.prototype._finish = function (tail, length) {\n        var i = length,\n            tmp,\n            lo,\n            hi;\n\n        tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n        if (i > 55) {\n            md5cycle(this._hash, tail);\n            for (i = 0; i < 16; i += 1) {\n                tail[i] = 0;\n            }\n        }\n\n        // Do the final computation based on the tail and length\n        // Beware that the final length may not fit in 32 bits so we take care of that\n        tmp = this._length * 8;\n        tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n        lo = parseInt(tmp[2], 16);\n        hi = parseInt(tmp[1], 16) || 0;\n\n        tail[14] = lo;\n        tail[15] = hi;\n        md5cycle(this._hash, tail);\n    };\n\n    /**\n     * Performs the md5 hash on a string.\n     * A conversion will be applied if utf8 string is detected.\n     *\n     * @param {String}  str The string\n     * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n     *\n     * @return {String} The result\n     */\n    SparkMD5.hash = function (str, raw) {\n        // Converts the string to utf8 bytes if necessary\n        // Then compute it using the binary function\n        return SparkMD5.hashBinary(toUtf8(str), raw);\n    };\n\n    /**\n     * Performs the md5 hash on a binary string.\n     *\n     * @param {String}  content The binary string\n     * @param {Boolean} [raw]     True to get the raw string, false to get the hex string\n     *\n     * @return {String} The result\n     */\n    SparkMD5.hashBinary = function (content, raw) {\n        var hash = md51(content),\n            ret = hex(hash);\n\n        return raw ? hexToBinaryString(ret) : ret;\n    };\n\n    // ---------------------------------------------------\n\n    /**\n     * SparkMD5 OOP implementation for array buffers.\n     *\n     * Use this class to perform an incremental md5 ONLY for array buffers.\n     */\n    SparkMD5.ArrayBuffer = function () {\n        // call reset to init the instance\n        this.reset();\n    };\n\n    /**\n     * Appends an array buffer.\n     *\n     * @param {ArrayBuffer} arr The array to be appended\n     *\n     * @return {SparkMD5.ArrayBuffer} The instance itself\n     */\n    SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n        var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n            length = buff.length,\n            i;\n\n        this._length += arr.byteLength;\n\n        for (i = 64; i <= length; i += 64) {\n            md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n        }\n\n        this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n        return this;\n    };\n\n    /**\n     * Finishes the incremental computation, reseting the internal state and\n     * returning the result.\n     *\n     * @param {Boolean} raw True to get the raw string, false to get the hex string\n     *\n     * @return {String} The result\n     */\n    SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n        var buff = this._buff,\n            length = buff.length,\n            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n            i,\n            ret;\n\n        for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n        }\n\n        this._finish(tail, length);\n        ret = hex(this._hash);\n\n        if (raw) {\n            ret = hexToBinaryString(ret);\n        }\n\n        this.reset();\n\n        return ret;\n    };\n\n    /**\n     * Resets the internal state of the computation.\n     *\n     * @return {SparkMD5.ArrayBuffer} The instance itself\n     */\n    SparkMD5.ArrayBuffer.prototype.reset = function () {\n        this._buff = new Uint8Array(0);\n        this._length = 0;\n        this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n        return this;\n    };\n\n    /**\n     * Gets the internal state of the computation.\n     *\n     * @return {Object} The state\n     */\n    SparkMD5.ArrayBuffer.prototype.getState = function () {\n        var state = SparkMD5.prototype.getState.call(this);\n\n        // Convert buffer to a string\n        state.buff = arrayBuffer2Utf8Str(state.buff);\n\n        return state;\n    };\n\n    /**\n     * Gets the internal state of the computation.\n     *\n     * @param {Object} state The state\n     *\n     * @return {SparkMD5.ArrayBuffer} The instance itself\n     */\n    SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n        // Convert string to buffer\n        state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n        return SparkMD5.prototype.setState.call(this, state);\n    };\n\n    SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n    SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n    /**\n     * Performs the md5 hash on an array buffer.\n     *\n     * @param {ArrayBuffer} arr The array buffer\n     * @param {Boolean}     [raw] True to get the raw string, false to get the hex one\n     *\n     * @return {String} The result\n     */\n    SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n        var hash = md51_array(new Uint8Array(arr)),\n            ret = hex(hash);\n\n        return raw ? hexToBinaryString(ret) : ret;\n    };\n\n    return SparkMD5;\n}));\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/spark-md5/spark-md5.js?");

/***/ }),

/***/ "./src/GeometryViewer.module.css":
/*!***************************************!*\
  !*** ./src/GeometryViewer.module.css ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_7_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_use_2_GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].use[1]!../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].use[2]!./GeometryViewer.module.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].use[2]!./src/GeometryViewer.module.css\");\n\n      \n      \n      \n      \n      \n      \n      \n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\n\n      options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\n    \noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_7_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_use_2_GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n       /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_7_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_use_2_GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_7_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_use_2_GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_7_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_use_2_GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack://vtkjs_viewer/./src/GeometryViewer.module.css?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/*!****************************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
  \****************************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n  var result = -1;\n\n  for (var i = 0; i < stylesInDOM.length; i++) {\n    if (stylesInDOM[i].identifier === identifier) {\n      result = i;\n      break;\n    }\n  }\n\n  return result;\n}\n\nfunction modulesToDom(list, options) {\n  var idCountMap = {};\n  var identifiers = [];\n\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n    var id = options.base ? item[0] + options.base : item[0];\n    var count = idCountMap[id] || 0;\n    var identifier = \"\".concat(id, \" \").concat(count);\n    idCountMap[id] = count + 1;\n    var indexByIdentifier = getIndexByIdentifier(identifier);\n    var obj = {\n      css: item[1],\n      media: item[2],\n      sourceMap: item[3],\n      supports: item[4],\n      layer: item[5]\n    };\n\n    if (indexByIdentifier !== -1) {\n      stylesInDOM[indexByIdentifier].references++;\n      stylesInDOM[indexByIdentifier].updater(obj);\n    } else {\n      var updater = addElementStyle(obj, options);\n      options.byIndex = i;\n      stylesInDOM.splice(i, 0, {\n        identifier: identifier,\n        updater: updater,\n        references: 1\n      });\n    }\n\n    identifiers.push(identifier);\n  }\n\n  return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n  var api = options.domAPI(options);\n  api.update(obj);\n\n  var updater = function updater(newObj) {\n    if (newObj) {\n      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n        return;\n      }\n\n      api.update(obj = newObj);\n    } else {\n      api.remove();\n    }\n  };\n\n  return updater;\n}\n\nmodule.exports = function (list, options) {\n  options = options || {};\n  list = list || [];\n  var lastIdentifiers = modulesToDom(list, options);\n  return function update(newList) {\n    newList = newList || [];\n\n    for (var i = 0; i < lastIdentifiers.length; i++) {\n      var identifier = lastIdentifiers[i];\n      var index = getIndexByIdentifier(identifier);\n      stylesInDOM[index].references--;\n    }\n\n    var newLastIdentifiers = modulesToDom(newList, options);\n\n    for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n      var _identifier = lastIdentifiers[_i];\n\n      var _index = getIndexByIdentifier(_identifier);\n\n      if (stylesInDOM[_index].references === 0) {\n        stylesInDOM[_index].updater();\n\n        stylesInDOM.splice(_index, 1);\n      }\n    }\n\n    lastIdentifiers = newLastIdentifiers;\n  };\n};\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
/*!********************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
  \********************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nvar memo = {};\n/* istanbul ignore next  */\n\nfunction getTarget(target) {\n  if (typeof memo[target] === \"undefined\") {\n    var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n      try {\n        // This will throw an exception if access to iframe is blocked\n        // due to cross-origin restrictions\n        styleTarget = styleTarget.contentDocument.head;\n      } catch (e) {\n        // istanbul ignore next\n        styleTarget = null;\n      }\n    }\n\n    memo[target] = styleTarget;\n  }\n\n  return memo[target];\n}\n/* istanbul ignore next  */\n\n\nfunction insertBySelector(insert, style) {\n  var target = getTarget(insert);\n\n  if (!target) {\n    throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n  }\n\n  target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/style-loader/dist/runtime/insertBySelector.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
/*!**********************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
  \**********************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/* istanbul ignore next  */\nfunction insertStyleElement(options) {\n  var element = document.createElement(\"style\");\n  options.setAttributes(element, options.attributes);\n  options.insert(element, options.options);\n  return element;\n}\n\nmodule.exports = insertStyleElement;\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/style-loader/dist/runtime/insertStyleElement.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/* istanbul ignore next  */\nfunction setAttributesWithoutAttributes(styleElement) {\n  var nonce =  true ? __webpack_require__.nc : 0;\n\n  if (nonce) {\n    styleElement.setAttribute(\"nonce\", nonce);\n  }\n}\n\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
/*!***************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
  \***************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/* istanbul ignore next  */\nfunction apply(styleElement, options, obj) {\n  var css = \"\";\n\n  if (obj.supports) {\n    css += \"@supports (\".concat(obj.supports, \") {\");\n  }\n\n  if (obj.media) {\n    css += \"@media \".concat(obj.media, \" {\");\n  }\n\n  var needLayer = typeof obj.layer !== \"undefined\";\n\n  if (needLayer) {\n    css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n  }\n\n  css += obj.css;\n\n  if (needLayer) {\n    css += \"}\";\n  }\n\n  if (obj.media) {\n    css += \"}\";\n  }\n\n  if (obj.supports) {\n    css += \"}\";\n  }\n\n  var sourceMap = obj.sourceMap;\n\n  if (sourceMap && typeof btoa !== \"undefined\") {\n    css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n  } // For old IE\n\n  /* istanbul ignore if  */\n\n\n  options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n  // istanbul ignore if\n  if (styleElement.parentNode === null) {\n    return false;\n  }\n\n  styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next  */\n\n\nfunction domAPI(options) {\n  var styleElement = options.insertStyleElement(options);\n  return {\n    update: function update(obj) {\n      apply(styleElement, options, obj);\n    },\n    remove: function remove() {\n      removeStyleElement(styleElement);\n    }\n  };\n}\n\nmodule.exports = domAPI;\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/style-loader/dist/runtime/styleDomAPI.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js":
/*!*********************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
  \*********************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/* istanbul ignore next  */\nfunction styleTagTransform(css, styleElement) {\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css;\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild);\n    }\n\n    styleElement.appendChild(document.createTextNode(css));\n  }\n}\n\nmodule.exports = styleTagTransform;\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/style-loader/dist/runtime/styleTagTransform.js?");

/***/ }),

/***/ "./src/favicon-96x96.png":
/*!*******************************!*\
  !*** ./src/favicon-96x96.png ***!
  \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"data:image/png;base64, \");\n\n//# sourceURL=webpack://vtkjs_viewer/./src/favicon-96x96.png?");

/***/ }),

/***/ "./node_modules/xmlbuilder2/lib/xmlbuilder2.min.js":
/*!*********************************************************!*\
  !*** ./node_modules/xmlbuilder2/lib/xmlbuilder2.min.js ***!
  \*********************************************************/
/***/ (function(module) {

eval("!function(e,t){ true?module.exports=t():0}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=184)}([function(e,t,r){\"use strict\";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,\"__esModule\",{value:!0}),n(r(240)),n(r(251)),n(r(175)),n(r(107)),n(r(29)),n(r(73)),n(r(106)),n(r(30)),n(r(252)),n(r(52)),n(r(97)),n(r(253)),n(r(37)),n(r(51)),n(r(173)),n(r(176)),n(r(172)),n(r(108)),n(r(254)),n(r(255)),n(r(256)),n(r(72)),n(r(177)),n(r(105)),n(r(17)),n(r(257)),n(r(12)),n(r(174))},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(212);t.FixedSizeSet=i.FixedSizeSet;var o=r(213);t.ObjectCache=o.ObjectCache;var a=r(214);t.CompareCache=a.CompareCache;var s=r(215);t.Lazy=s.Lazy;var u=r(216);function l(e,t,r){if(m(e))e.forEach((function(e,n){return t.call(r,n,e)}));else for(var n in e)e.hasOwnProperty(n)&&t.call(r,n,e[n])}function c(e){var t,r;if(h(e))return e;if(f(e)){var i=[];try{for(var o=n(e),a=o.next();!a.done;a=o.next()){var s=a.value;i.push(c(s))}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return i}if(p(e)){i={};for(var u in e)if(e.hasOwnProperty(u)){var l=e[u];i[u]=c(l)}return i}return e}function h(e){return!!e&&\"[object Function]\"===Object.prototype.toString.call(e)}function p(e){var t=typeof e;return!!e&&(\"function\"===t||\"object\"===t)}function f(e){return Array.isArray(e)}function d(e){return e instanceof Set}function m(e){return e instanceof Map}function y(e){if(p(e)){var t=Object.getPrototypeOf(e),r=t.constructor;return t&&r&&\"function\"==typeof r&&r instanceof r&&Function.prototype.toString.call(r)===Function.prototype.toString.call(Object)}return!1}t.StringWalker=u.StringWalker,t.applyMixin=function(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];Object.getOwnPropertyNames(t.prototype).forEach((function(n){if(\"constructor\"!==n){if(-1!==r.indexOf(n)){var i=Object.getOwnPropertyDescriptor(e.prototype,n);i&&Object.defineProperty(e.prototype,\"_\"+n,i)}var o=Object.getOwnPropertyDescriptor(t.prototype,n);o&&Object.defineProperty(e.prototype,n,o)}}))},t.applyDefaults=function e(t,r,n){void 0===n&&(n=!1);var i=c(t||{});return l(r,(function(t,r){y(r)?i[t]=e(i[t],r,n):(n||void 0===i[t])&&(i[t]=r)})),i},t.forEachArray=function(e,t,r){e.forEach(t,r)},t.forEachObject=l,t.arrayLength=function(e){return d(e)?e.size:e.length},t.objectLength=function(e){return m(e)?e.size:Object.keys(e).length},t.getObjectValue=function(e,t){return m(e)?e.get(t):e[t]},t.removeObjectValue=function(e,t){m(e)?e.delete(t):delete e[t]},t.clone=c,t.isBoolean=function(e){return\"boolean\"==typeof e},t.isNumber=function(e){return\"number\"==typeof e},t.isString=function(e){return\"string\"==typeof e},t.isFunction=h,t.isObject=p,t.isArray=f,t.isSet=d,t.isMap=m,t.isEmpty=function(e){if(f(e))return!e.length;if(d(e))return!e.size;if(m(e))return!e.size;if(p(e)){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}return!1},t.isPlainObject=y,t.isIterable=function(e){return e&&\"function\"==typeof e[Symbol.iterator]},t.getValue=function(e){return h(e.valueOf)?e.valueOf():e},t.utf8Encode=function(e){for(var t=new Uint8Array(4*e.length),r=0,n=0;n<e.length;n++){var i=e.charCodeAt(n);if(i<128)t[r++]=i;else{if(i<2048)t[r++]=i>>6|192;else{if(i>55295&&i<56320){if(++n>=e.length)throw new Error(\"Incomplete surrogate pair.\");var o=e.charCodeAt(n);if(o<56320||o>57343)throw new Error(\"Invalid surrogate character.\");i=65536+((1023&i)<<10)+(1023&o),t[r++]=i>>18|240,t[r++]=i>>12&63|128}else t[r++]=i>>12|224;t[r++]=i>>6&63|128}t[r++]=63&i|128}}return t.subarray(0,r)},t.utf8Decode=function(e){for(var t=\"\",r=0;r<e.length;){var n=e[r++];if(n>127)if(n>191&&n<224){if(r>=e.length)throw new Error(\"Incomplete 2-byte sequence.\");n=(31&n)<<6|63&e[r++]}else if(n>223&&n<240){if(r+1>=e.length)throw new Error(\"Incomplete 3-byte sequence.\");n=(15&n)<<12|(63&e[r++])<<6|63&e[r++]}else{if(!(n>239&&n<248))throw new Error(\"Unknown multi-byte start.\");if(r+2>=e.length)throw new Error(\"Incomplete 4-byte sequence.\");n=(7&n)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++]}if(n<=65535)t+=String.fromCharCode(n);else{if(!(n<=1114111))throw new Error(\"Code point exceeds UTF-16 limit.\");n-=65536,t+=String.fromCharCode(n>>10|55296),t+=String.fromCharCode(1023&n|56320)}}return t}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Before=0]=\"Before\",e[e.Equal=1]=\"Equal\",e[e.After=2]=\"After\"}(t.BoundaryPosition||(t.BoundaryPosition={})),function(e){e[e.None=0]=\"None\",e[e.Capturing=1]=\"Capturing\",e[e.AtTarget=2]=\"AtTarget\",e[e.Bubbling=3]=\"Bubbling\"}(t.EventPhase||(t.EventPhase={})),function(e){e[e.Element=1]=\"Element\",e[e.Attribute=2]=\"Attribute\",e[e.Text=3]=\"Text\",e[e.CData=4]=\"CData\",e[e.EntityReference=5]=\"EntityReference\",e[e.Entity=6]=\"Entity\",e[e.ProcessingInstruction=7]=\"ProcessingInstruction\",e[e.Comment=8]=\"Comment\",e[e.Document=9]=\"Document\",e[e.DocumentType=10]=\"DocumentType\",e[e.DocumentFragment=11]=\"DocumentFragment\",e[e.Notation=12]=\"Notation\"}(t.NodeType||(t.NodeType={})),function(e){e[e.Disconnected=1]=\"Disconnected\",e[e.Preceding=2]=\"Preceding\",e[e.Following=4]=\"Following\",e[e.Contains=8]=\"Contains\",e[e.ContainedBy=16]=\"ContainedBy\",e[e.ImplementationSpecific=32]=\"ImplementationSpecific\"}(t.Position||(t.Position={})),function(e){e[e.Accept=1]=\"Accept\",e[e.Reject=2]=\"Reject\",e[e.Skip=3]=\"Skip\"}(t.FilterResult||(t.FilterResult={})),function(e){e[e.All=4294967295]=\"All\",e[e.Element=1]=\"Element\",e[e.Attribute=2]=\"Attribute\",e[e.Text=4]=\"Text\",e[e.CDataSection=8]=\"CDataSection\",e[e.EntityReference=16]=\"EntityReference\",e[e.Entity=32]=\"Entity\",e[e.ProcessingInstruction=64]=\"ProcessingInstruction\",e[e.Comment=128]=\"Comment\",e[e.Document=256]=\"Document\",e[e.DocumentType=512]=\"DocumentType\",e[e.DocumentFragment=1024]=\"DocumentFragment\",e[e.Notation=2048]=\"Notation\"}(t.WhatToShow||(t.WhatToShow={})),function(e){e[e.StartToStart=0]=\"StartToStart\",e[e.StartToEnd=1]=\"StartToEnd\",e[e.EndToEnd=2]=\"EndToEnd\",e[e.EndToStart=3]=\"EndToStart\"}(t.HowToCompare||(t.HowToCompare={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(241);t.Cast=n.Cast;var i=r(150);t.Guard=i.Guard;var o=r(242);t.EmptySet=o.EmptySet},function(e,t,r){var n=r(11),i=r(55).f,o=r(21),a=r(25),s=r(80),u=r(119),l=r(123);e.exports=function(e,t){var r,c,h,p,f,d=e.target,m=e.global,y=e.stat;if(r=m?n:y?n[d]||s(d,{}):(n[d]||{}).prototype)for(c in t){if(p=t[c],h=e.noTargetGet?(f=i(r,c))&&f.value:r[c],!l(m?c:d+(y?\".\":\"#\")+c,e.forced)&&void 0!==h){if(typeof p==typeof h)continue;u(p,h)}(e.sham||h&&h.sham)&&o(p,\"sham\",!0),a(r,c,p,e)}}},function(e,t,r){var n=r(11),i=r(81),o=r(14),a=r(58),s=r(86),u=r(124),l=i(\"wks\"),c=n.Symbol,h=u?c:c&&c.withoutSetter||a;e.exports=function(e){return o(l,e)||(s&&o(c,e)?l[e]=c[e]:l[e]=h(\"Symbol.\"+e)),l[e]}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(1),i=r(29),o=function(){function e(){this._features={mutationObservers:!0,customElements:!0,slots:!0,steps:!0},this._window=null,this._compareCache=new n.CompareCache,this._rangeList=new n.FixedSizeSet}return e.prototype.setFeatures=function(e){if(void 0===e&&(e=!0),n.isObject(e))for(var t in e)this._features[t]=e[t]||!1;else for(var t in this._features)this._features[t]=e},Object.defineProperty(e.prototype,\"features\",{get:function(){return this._features},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"window\",{get:function(){return null===this._window&&(this._window=i.create_window()),this._window},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"compareCache\",{get:function(){return this._compareCache},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"rangeList\",{get:function(){return this._rangeList},enumerable:!0,configurable:!0}),Object.defineProperty(e,\"instance\",{get:function(){return e._instance||(e._instance=new e),e._instance},enumerable:!0,configurable:!0}),e}();t.dom=o.instance},function(e,t,r){\"use strict\";var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(r(228));t.base64=i;var o=n(r(146));t.byte=o;var a=n(r(147));t.byteSequence=a;var s=n(r(96));t.codePoint=s;var u=n(r(232));t.json=u;var l=n(r(233));t.list=l;var c=n(r(234));t.map=c;var h=n(r(235));t.namespace=h;var p=n(r(236));t.queue=p;var f=n(r(237));t.set=f;var d=n(r(238));t.stack=d;var m=n(r(239));t.string=m},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,r){void 0===r&&(r=\"\");var n=e.call(this,r)||this;return n.name=t,n}return i(t,e),t}(Error);t.DOMException=o;var a=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"DOMStringSizeError\",t)||this}return i(t,e),t}(o);t.DOMStringSizeError=a;var s=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"WrongDocumentError\",\"The object is in the wrong document. \"+t)||this}return i(t,e),t}(o);t.WrongDocumentError=s;var u=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"NoDataAllowedError\",t)||this}return i(t,e),t}(o);t.NoDataAllowedError=u;var l=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"NoModificationAllowedError\",\"The object can not be modified. \"+t)||this}return i(t,e),t}(o);t.NoModificationAllowedError=l;var c=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"NotSupportedError\",\"The operation is not supported. \"+t)||this}return i(t,e),t}(o);t.NotSupportedError=c;var h=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"InUseAttributeError\",t)||this}return i(t,e),t}(o);t.InUseAttributeError=h;var p=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"InvalidStateError\",\"The object is in an invalid state. \"+t)||this}return i(t,e),t}(o);t.InvalidStateError=p;var f=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"InvalidModificationError\",\"The object can not be modified in this way. \"+t)||this}return i(t,e),t}(o);t.InvalidModificationError=f;var d=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"NamespaceError\",\"The operation is not allowed by Namespaces in XML. [XMLNS] \"+t)||this}return i(t,e),t}(o);t.NamespaceError=d;var m=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"InvalidAccessError\",\"The object does not support the operation or argument. \"+t)||this}return i(t,e),t}(o);t.InvalidAccessError=m;var y=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"ValidationError\",t)||this}return i(t,e),t}(o);t.ValidationError=y;var v=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"TypeMismatchError\",t)||this}return i(t,e),t}(o);t.TypeMismatchError=v;var _=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"SecurityError\",\"The operation is insecure. \"+t)||this}return i(t,e),t}(o);t.SecurityError=_;var g=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"NetworkError\",\"A network error occurred. \"+t)||this}return i(t,e),t}(o);t.NetworkError=g;var b=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"AbortError\",\"The operation was aborted. \"+t)||this}return i(t,e),t}(o);t.AbortError=b;var x=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"URLMismatchError\",\"The given URL does not match another URL. \"+t)||this}return i(t,e),t}(o);t.URLMismatchError=x;var w=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"QuotaExceededError\",\"The quota has been exceeded. \"+t)||this}return i(t,e),t}(o);t.QuotaExceededError=w;var E=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"TimeoutError\",\"The operation timed out. \"+t)||this}return i(t,e),t}(o);t.TimeoutError=E;var D=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"InvalidNodeTypeError\",\"The supplied node is incorrect or has an incorrect ancestor for this operation. \"+t)||this}return i(t,e),t}(o);t.InvalidNodeTypeError=D;var S=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"DataCloneError\",\"The object can not be cloned. \"+t)||this}return i(t,e),t}(o);t.DataCloneError=S;var C=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"NotImplementedError\",\"The DOM method is not implemented by this module. \"+t)||this}return i(t,e),t}(o);t.NotImplementedError=C;var A=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"HierarchyRequestError\",\"The operation would yield an incorrect node tree. \"+t)||this}return i(t,e),t}(o);t.HierarchyRequestError=A;var N=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"NotFoundError\",\"The object can not be found here. \"+t)||this}return i(t,e),t}(o);t.NotFoundError=N;var T=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"IndexSizeError\",\"The index is not in the allowed range. \"+t)||this}return i(t,e),t}(o);t.IndexSizeError=T;var O=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"SyntaxError\",\"The string did not match the expected pattern. \"+t)||this}return i(t,e),t}(o);t.SyntaxError=O;var F=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,\"InvalidCharacterError\",\"The string contains invalid characters. \"+t)||this}return i(t,e),t}(o);t.InvalidCharacterError=F},function(e,t,r){\"use strict\";var n=r(53),i=[\"kind\",\"resolve\",\"construct\",\"instanceOf\",\"predicate\",\"represent\",\"defaultStyle\",\"styleAliases\"],o=[\"scalar\",\"sequence\",\"mapping\"];e.exports=function(e,t){var r,a;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===i.indexOf(t))throw new n('Unknown option \"'+t+'\" is met in definition of \"'+e+'\" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,a={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){a[String(t)]=e}))})),a),-1===o.indexOf(this.kind))throw new n('Unknown kind \"'+this.kind+'\" is specified for \"'+e+'\" YAML type.')}},function(e,t,r){(function(t){var r=function(e){return e&&e.Math==Math&&e};e.exports=r(\"object\"==typeof globalThis&&globalThis)||r(\"object\"==typeof window&&window)||r(\"object\"==typeof self&&self)||r(\"object\"==typeof t&&t)||Function(\"return this\")()}).call(this,r(78))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.idl_defineConst=function(e,t,r){Object.defineProperty(e,t,{writable:!1,enumerable:!0,configurable:!1,value:r})}},function(e,t){e.exports=function(e){return\"object\"==typeof e?null!==e:\"function\"==typeof e}},function(e,t){var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){var n=r(16),i=r(115),o=r(18),a=r(56),s=Object.defineProperty;t.f=n?s:function(e,t,r){if(o(e),t=a(t,!0),o(r),i)try{return s(e,t,r)}catch(e){}if(\"get\"in r||\"set\"in r)throw TypeError(\"Accessors not supported\");return\"value\"in r&&(e[t]=r.value),e}},function(e,t,r){var n=r(8);e.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(3),o=r(2);function a(e,t,r){if(void 0===r&&(r=!1),r&&i.Guard.isElementNode(t)&&i.Guard.isShadowRoot(t.shadowRoot)&&t.shadowRoot._firstChild)return t.shadowRoot._firstChild;if(t._firstChild)return t._firstChild;if(t===e)return null;if(t._nextSibling)return t._nextSibling;for(var n=t._parent;n&&n!==e;){if(n._nextSibling)return n._nextSibling;n=n._parent}return null}function s(){var e;return(e={})[Symbol.iterator]=function(){return{next:function(){return{done:!0,value:null}}}},e}function u(e,t,r,n){void 0===t&&(t=!1),void 0===r&&(r=!1);for(var i=t?e:a(e,e,r);i&&n&&!n(i);)i=a(e,i,r);return i}function l(e,t,r,n,i){void 0===r&&(r=!1),void 0===n&&(n=!1);for(var o=a(e,t,n);o&&i&&!i(o);)o=a(e,o,n);return o}function c(e,t,r,n){var i;return void 0===t&&(t=!1),void 0===r&&(r=!1),t||0!==e._children.size?((i={})[Symbol.iterator]=function(){var i=t?e:a(e,e,r);return{next:function(){for(;i&&n&&!n(i);)i=a(e,i,r);if(null===i)return{done:!0,value:null};var t={done:!1,value:i};return i=a(e,i,r),t}}},i):s()}function h(e,t,r){void 0===t&&(t=!1);for(var n=t?e:e._parent;n&&r&&!r(n);)n=n._parent;return n}function p(e,t,r,n){void 0===r&&(r=!1);for(var i=t._parent;i&&n&&!n(i);)i=i._parent;return i}function f(e){return i.Guard.isDocumentTypeNode(e)?0:i.Guard.isCharacterDataNode(e)?e._data.length:e._children.size}function d(e,t){if(void 0===t&&(t=!1),t){var r=d(e,!1);return i.Guard.isShadowRoot(r)?d(r._host,!0):r}return e._parent?d(e._parent):e}function m(e,t,r,n){void 0===r&&(r=!1),void 0===n&&(n=!1);for(var o=r?e:n&&i.Guard.isShadowRoot(e)?e._host:e._parent;null!==o;){if(o===t)return!0;o=n&&i.Guard.isShadowRoot(o)?o._host:o._parent}return!1}function y(e){for(var t=d(e),r=0,n=u(t);null!==n;){if(r++,n===e)return r;n=l(t,n)}return-1}t.tree_getFirstDescendantNode=u,t.tree_getNextDescendantNode=l,t.tree_getDescendantNodes=c,t.tree_getDescendantElements=function(e,t,r,n){var o;return void 0===t&&(t=!1),void 0===r&&(r=!1),t||0!==e._children.size?((o={})[Symbol.iterator]=function(){var o=c(e,t,r,(function(e){return i.Guard.isElementNode(e)}))[Symbol.iterator](),a=o.next().value;return{next:function(){for(;a&&n&&!n(a);)a=o.next().value;if(null===a)return{done:!0,value:null};var e={done:!1,value:a};return a=o.next().value,e}}},o):s()},t.tree_getSiblingNodes=function(e,t,r){var n;return void 0===t&&(t=!1),e._parent&&0!==e._parent._children.size?((n={})[Symbol.iterator]=function(){var n=e._parent?e._parent._firstChild:null;return{next:function(){for(;n&&(r&&!r(n)||!t&&n===e);)n=n._nextSibling;if(null===n)return{done:!0,value:null};var i={done:!1,value:n};return n=n._nextSibling,i}}},n):s()},t.tree_getFirstAncestorNode=h,t.tree_getNextAncestorNode=p,t.tree_getAncestorNodes=function(e,t,r){var n;return void 0===t&&(t=!1),t||e._parent?((n={})[Symbol.iterator]=function(){var n=h(e,t,r);return{next:function(){if(null===n)return{done:!0,value:null};var e={done:!1,value:n};return n=p(0,n,t,r),e}}},n):s()},t.tree_getCommonAncestor=function(e,t){if(e===t)return e._parent;for(var r=[],n=[],i=h(e,!0);null!==i;)r.push(i),i=p(0,i,!0);for(var o=h(t,!0);null!==o;)n.push(o),o=p(0,o,!0);for(var a=r.length,s=n.length,u=null,l=Math.min(a,s);l>0;l--){var c=r[--a];if(c!==n[--s])break;u=c}return u},t.tree_getFollowingNode=function(e,t){if(t._firstChild)return t._firstChild;if(t._nextSibling)return t._nextSibling;for(;;){var r=t._parent;if(null===r||r===e)return null;if(r._nextSibling)return r._nextSibling;t=r}},t.tree_getPrecedingNode=function(e,t){return t===e?null:t._previousSibling?(t=t._previousSibling)._lastChild?t._lastChild:t:t._parent},t.tree_isConstrained=function e(t){var r,i,a,s,u,l;switch(t._nodeType){case o.NodeType.Document:var c=!1,h=!1;try{for(var p=n(t._children),f=p.next();!f.done;f=p.next()){switch(f.value._nodeType){case o.NodeType.ProcessingInstruction:case o.NodeType.Comment:break;case o.NodeType.DocumentType:if(c||h)return!1;c=!0;break;case o.NodeType.Element:if(h)return!1;h=!0;break;default:return!1}}}catch(e){r={error:e}}finally{try{f&&!f.done&&(i=p.return)&&i.call(p)}finally{if(r)throw r.error}}break;case o.NodeType.DocumentFragment:case o.NodeType.Element:try{for(var d=n(t._children),m=d.next();!m.done;m=d.next()){switch(m.value._nodeType){case o.NodeType.Element:case o.NodeType.Text:case o.NodeType.ProcessingInstruction:case o.NodeType.CData:case o.NodeType.Comment:break;default:return!1}}}catch(e){a={error:e}}finally{try{m&&!m.done&&(s=d.return)&&s.call(d)}finally{if(a)throw a.error}}break;case o.NodeType.DocumentType:case o.NodeType.Text:case o.NodeType.ProcessingInstruction:case o.NodeType.CData:case o.NodeType.Comment:return!t.hasChildNodes()}try{for(var y=n(t._children),v=y.next();!v.done;v=y.next()){if(!e(v.value))return!1}}catch(e){u={error:e}}finally{try{v&&!v.done&&(l=y.return)&&l.call(y)}finally{if(u)throw u.error}}return!0},t.tree_nodeLength=f,t.tree_isEmpty=function(e){return 0===f(e)},t.tree_rootNode=d,t.tree_isDescendantOf=function(e,t,r,n){void 0===r&&(r=!1),void 0===n&&(n=!1);for(var i=u(e,r,n);null!==i;){if(i===t)return!0;i=l(e,i,r,n)}return!1},t.tree_isAncestorOf=m,t.tree_isHostIncludingAncestorOf=function e(t,r,n){if(void 0===n&&(n=!1),m(t,r,n))return!0;var o=d(t);return!(!i.Guard.isDocumentFragmentNode(o)||null===o._host||!e(o._host,r,n))},t.tree_isSiblingOf=function(e,t,r){return void 0===r&&(r=!1),e!==t?null!==e._parent&&e._parent===t._parent:!!r},t.tree_isPreceding=function(e,t){var r=y(e),n=y(t);return-1!==r&&-1!==n&&(d(e)===d(t)&&n<r)},t.tree_isFollowing=function(e,t){var r=y(e),n=y(t);return-1!==r&&-1!==n&&(d(e)===d(t)&&n>r)},t.tree_isParentOf=function(e,t){return e._parent===t},t.tree_isChildOf=function(e,t){return t._parent===e},t.tree_previousSibling=function(e){return e._previousSibling},t.tree_nextSibling=function(e){return e._nextSibling},t.tree_firstChild=function(e){return e._firstChild},t.tree_lastChild=function(e){return e._lastChild},t.tree_treePosition=y,t.tree_index=function(e){for(var t=0;null!==e._previousSibling;)t++,e=e._previousSibling;return t},t.tree_retarget=function(e,t){for(;;){if(!e||!i.Guard.isNode(e))return e;var r=d(e);if(!i.Guard.isShadowRoot(r))return e;if(t&&i.Guard.isNode(t)&&m(r,t,!0,!0))return e;e=r.host}}},function(e,t,r){var n=r(13);e.exports=function(e){if(!n(e))throw TypeError(String(e)+\" is not an object\");return e}},function(e,t,r){\"use strict\";var n=r(24),i=r(130),o=r(49),a=r(43),s=r(88),u=a.set,l=a.getterFor(\"Array Iterator\");e.exports=s(Array,\"Array\",(function(e,t){u(this,{type:\"Array Iterator\",target:n(e),index:0,kind:t})}),(function(){var e=l(this),t=e.target,r=e.kind,n=e.index++;return!t||n>=t.length?(e.target=void 0,{value:void 0,done:!0}):\"keys\"==r?{value:n,done:!1}:\"values\"==r?{value:t[n],done:!1}:{value:[n,t[n]],done:!1}}),\"values\"),o.Arguments=o.Array,i(\"keys\"),i(\"values\"),i(\"entries\")},function(e,t,r){var n=r(90),i=r(25),o=r(202);n||i(Object.prototype,\"toString\",o,{unsafe:!0})},function(e,t,r){var n=r(16),i=r(15),o=r(40);e.exports=n?function(e,t,r){return i.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t,r){\"use strict\";var n=r(137).charAt,i=r(43),o=r(88),a=i.set,s=i.getterFor(\"String Iterator\");o(String,\"String\",(function(e){a(this,{type:\"String Iterator\",string:String(e),index:0})}),(function(){var e,t=s(this),r=t.string,i=t.index;return i>=r.length?{value:void 0,done:!0}:(e=n(r,i),t.index+=e.length,{value:e,done:!1})}))},function(e,t,r){var n=r(11),i=r(203),o=r(19),a=r(21),s=r(5),u=s(\"iterator\"),l=s(\"toStringTag\"),c=o.values;for(var h in i){var p=n[h],f=p&&p.prototype;if(f){if(f[u]!==c)try{a(f,u,c)}catch(e){f[u]=c}if(f[l]||a(f,l,h),i[h])for(var d in o)if(f[d]!==o[d])try{a(f,d,o[d])}catch(e){f[d]=o[d]}}}},function(e,t,r){var n=r(41),i=r(35);e.exports=function(e){return n(i(e))}},function(e,t,r){var n=r(11),i=r(21),o=r(14),a=r(80),s=r(117),u=r(43),l=u.get,c=u.enforce,h=String(String).split(\"String\");(e.exports=function(e,t,r,s){var u=!!s&&!!s.unsafe,l=!!s&&!!s.enumerable,p=!!s&&!!s.noTargetGet;\"function\"==typeof r&&(\"string\"!=typeof t||o(r,\"name\")||i(r,\"name\",t),c(r).source=h.join(\"string\"==typeof t?t:\"\")),e!==n?(u?!p&&e[t]&&(l=!0):delete e[t],l?e[t]=r:i(e,t,r)):l?e[t]=r:a(t,r)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&l(this).source||s(this)}))},function(e,t,r){var n=r(47),i=Math.min;e.exports=function(e){return e>0?i(n(e),9007199254740991):0}},function(e,t,r){var n=r(35);e.exports=function(e){return Object(n(e))}},function(e,t,r){var n=r(16),i=r(8),o=r(14),a=Object.defineProperty,s={},u=function(e){throw e};e.exports=function(e,t){if(o(s,e))return s[e];t||(t={});var r=[][e],l=!!o(t,\"ACCESSORS\")&&t.ACCESSORS,c=o(t,0)?t[0]:u,h=o(t,1)?t[1]:void 0;return s[e]=!!r&&!i((function(){if(l&&!n)return!0;var e={length:-1};l?a(e,1,{enumerable:!0,get:u}):e[1]=1,r.call(e,c,h)}))}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(148),i=r(149),o=r(151),a=r(98),s=r(153),u=r(154),l=r(155),c=r(99),h=r(100),p=r(156),f=r(157),d=r(101),m=r(158),y=r(159),v=r(160),_=r(161),g=r(162),b=r(163),x=r(164),w=r(165),E=r(166),D=r(167),S=r(168),C=r(169),A=r(170);t.create_domImplementation=function(e){return n.DOMImplementationImpl._create(e)},t.create_window=function(){return i.WindowImpl._create()},t.create_xmlDocument=function(){return new o.XMLDocumentImpl},t.create_document=function(){return new a.DocumentImpl},t.create_abortController=function(){return new s.AbortControllerImpl},t.create_abortSignal=function(){return u.AbortSignalImpl._create()},t.create_documentType=function(e,t,r,n){return l.DocumentTypeImpl._create(e,t,r,n)},t.create_element=function(e,t,r,n){return c.ElementImpl._create(e,t,r,n)},t.create_htmlElement=function(e,t,r,n){return c.ElementImpl._create(e,t,r,n)},t.create_htmlUnknownElement=function(e,t,r,n){return c.ElementImpl._create(e,t,r,n)},t.create_documentFragment=function(e){return h.DocumentFragmentImpl._create(e)},t.create_shadowRoot=function(e,t){return p.ShadowRootImpl._create(e,t)},t.create_attr=function(e,t){return f.AttrImpl._create(e,t)},t.create_text=function(e,t){return d.TextImpl._create(e,t)},t.create_cdataSection=function(e,t){return m.CDATASectionImpl._create(e,t)},t.create_comment=function(e,t){return y.CommentImpl._create(e,t)},t.create_processingInstruction=function(e,t,r){return v.ProcessingInstructionImpl._create(e,t,r)},t.create_htmlCollection=function(e,t){return void 0===t&&(t=function(){return!0}),_.HTMLCollectionImpl._create(e,t)},t.create_nodeList=function(e){return g.NodeListImpl._create(e)},t.create_nodeListStatic=function(e,t){return b.NodeListStaticImpl._create(e,t)},t.create_namedNodeMap=function(e){return x.NamedNodeMapImpl._create(e)},t.create_range=function(e,t){return w.RangeImpl._create(e,t)},t.create_nodeIterator=function(e,t,r){return E.NodeIteratorImpl._create(e,t,r)},t.create_treeWalker=function(e,t){return D.TreeWalkerImpl._create(e,t)},t.create_nodeFilter=function(){return S.NodeFilterImpl._create()},t.create_mutationRecord=function(e,t,r,n,i,o,a,s,u){return C.MutationRecordImpl._create(e,t,r,n,i,o,a,s,u)},t.create_domTokenList=function(e,t){return A.DOMTokenListImpl._create(e,t)}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(6),o=r(17),a=r(3),s=r(72),u=new Map;function l(e,t){if(t!==e._root&&o.tree_isAncestorOf(e._reference,t,!0)){if(e._pointerBeforeReference)for(;;){var r=o.tree_getFollowingNode(e._root,t);if(null!==r&&o.tree_isDescendantOf(e._root,r,!0)&&!o.tree_isDescendantOf(t,r,!0))return void(e._reference=r);if(null===r)return void(e._pointerBeforeReference=!1)}if(null===t._previousSibling)null!==t._parent&&(e._reference=t._parent);else{for(var n=t._previousSibling,i=o.tree_getFirstDescendantNode(t._previousSibling,!0,!1);null!==i;)null!==i&&(n=i),i=o.tree_getNextDescendantNode(t._previousSibling,i,!0,!1);e._reference=n}}}function c(e,t,r,n,i){if(a.Guard.isSlot(e)&&\"name\"===t&&null===i){if(n===r)return;if(null===n&&\"\"===r)return;if(\"\"===n&&null===r)return;e._name=null===n||\"\"===n?\"\":n,s.shadowTree_assignSlotablesForATree(o.tree_rootNode(e))}}function h(e,t,r,n,i){if(a.Guard.isSlotable(e)&&\"slot\"===t&&null===i){if(n===r)return;if(null===n&&\"\"===r)return;if(\"\"===n&&null===r)return;e._name=null===n||\"\"===n?\"\":n,s.shadowTree_isAssigned(e)&&s.shadowTree_assignSlotables(e._assignedSlot),s.shadowTree_assignASlot(e)}}function p(e,t,r,n){\"id\"===t&&null===n&&(e._uniqueIdentifier=r||void 0)}t.dom_runRemovingSteps=function(e,t){},t.dom_runCloningSteps=function(e,t,r,n){},t.dom_runAdoptingSteps=function(e,t){},t.dom_runAttributeChangeSteps=function(e,t,r,o,a){var s,u;i.dom.features.slots&&(h.call(e,e,t,r,o,a),c.call(e,e,t,r,o,a)),p.call(e,e,t,o,a);try{for(var l=n(e._attributeChangeSteps),f=l.next();!f.done;f=l.next()){f.value.call(e,e,t,r,o,a)}}catch(e){s={error:e}}finally{try{f&&!f.done&&(u=l.return)&&u.call(l)}finally{if(s)throw s.error}}},t.dom_runInsertionSteps=function(e){},t.dom_runNodeIteratorPreRemovingSteps=function(e,t){l.call(e,e,t)},t.dom_hasSupportedTokens=function(e){return u.has(e)},t.dom_getSupportedTokens=function(e){return u.get(e)||new Set},t.dom_runEventConstructingSteps=function(e){},t.dom_runChildTextContentChangeSteps=function(e){}},function(e,t,r){\"use strict\";var n=r(4),i=r(11),o=r(46),a=r(44),s=r(16),u=r(86),l=r(124),c=r(8),h=r(14),p=r(59),f=r(13),d=r(18),m=r(27),y=r(24),v=r(56),_=r(40),g=r(60),b=r(61),x=r(82),w=r(190),E=r(85),D=r(55),S=r(15),C=r(79),A=r(21),N=r(25),T=r(81),O=r(57),F=r(45),k=r(58),P=r(5),I=r(125),L=r(126),M=r(62),B=r(43),j=r(36).forEach,R=O(\"hidden\"),z=P(\"toPrimitive\"),U=B.set,G=B.getterFor(\"Symbol\"),X=Object.prototype,q=i.Symbol,W=o(\"JSON\",\"stringify\"),H=D.f,J=S.f,Y=w.f,V=C.f,K=T(\"symbols\"),$=T(\"op-symbols\"),Q=T(\"string-to-symbol-registry\"),Z=T(\"symbol-to-string-registry\"),ee=T(\"wks\"),te=i.QObject,re=!te||!te.prototype||!te.prototype.findChild,ne=s&&c((function(){return 7!=g(J({},\"a\",{get:function(){return J(this,\"a\",{value:7}).a}})).a}))?function(e,t,r){var n=H(X,t);n&&delete X[t],J(e,t,r),n&&e!==X&&J(X,t,n)}:J,ie=function(e,t){var r=K[e]=g(q.prototype);return U(r,{type:\"Symbol\",tag:e,description:t}),s||(r.description=t),r},oe=l?function(e){return\"symbol\"==typeof e}:function(e){return Object(e)instanceof q},ae=function(e,t,r){e===X&&ae($,t,r),d(e);var n=v(t,!0);return d(r),h(K,n)?(r.enumerable?(h(e,R)&&e[R][n]&&(e[R][n]=!1),r=g(r,{enumerable:_(0,!1)})):(h(e,R)||J(e,R,_(1,{})),e[R][n]=!0),ne(e,n,r)):J(e,n,r)},se=function(e,t){d(e);var r=y(t),n=b(r).concat(he(r));return j(n,(function(t){s&&!ue.call(r,t)||ae(e,t,r[t])})),e},ue=function(e){var t=v(e,!0),r=V.call(this,t);return!(this===X&&h(K,t)&&!h($,t))&&(!(r||!h(this,t)||!h(K,t)||h(this,R)&&this[R][t])||r)},le=function(e,t){var r=y(e),n=v(t,!0);if(r!==X||!h(K,n)||h($,n)){var i=H(r,n);return!i||!h(K,n)||h(r,R)&&r[R][n]||(i.enumerable=!0),i}},ce=function(e){var t=Y(y(e)),r=[];return j(t,(function(e){h(K,e)||h(F,e)||r.push(e)})),r},he=function(e){var t=e===X,r=Y(t?$:y(e)),n=[];return j(r,(function(e){!h(K,e)||t&&!h(X,e)||n.push(K[e])})),n};(u||(N((q=function(){if(this instanceof q)throw TypeError(\"Symbol is not a constructor\");var e=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,t=k(e),r=function(e){this===X&&r.call($,e),h(this,R)&&h(this[R],t)&&(this[R][t]=!1),ne(this,t,_(1,e))};return s&&re&&ne(X,t,{configurable:!0,set:r}),ie(t,e)}).prototype,\"toString\",(function(){return G(this).tag})),N(q,\"withoutSetter\",(function(e){return ie(k(e),e)})),C.f=ue,S.f=ae,D.f=le,x.f=w.f=ce,E.f=he,I.f=function(e){return ie(P(e),e)},s&&(J(q.prototype,\"description\",{configurable:!0,get:function(){return G(this).description}}),a||N(X,\"propertyIsEnumerable\",ue,{unsafe:!0}))),n({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:q}),j(b(ee),(function(e){L(e)})),n({target:\"Symbol\",stat:!0,forced:!u},{for:function(e){var t=String(e);if(h(Q,t))return Q[t];var r=q(t);return Q[t]=r,Z[r]=t,r},keyFor:function(e){if(!oe(e))throw TypeError(e+\" is not a symbol\");if(h(Z,e))return Z[e]},useSetter:function(){re=!0},useSimple:function(){re=!1}}),n({target:\"Object\",stat:!0,forced:!u,sham:!s},{create:function(e,t){return void 0===t?g(e):se(g(e),t)},defineProperty:ae,defineProperties:se,getOwnPropertyDescriptor:le}),n({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ce,getOwnPropertySymbols:he}),n({target:\"Object\",stat:!0,forced:c((function(){E.f(1)}))},{getOwnPropertySymbols:function(e){return E.f(m(e))}}),W)&&n({target:\"JSON\",stat:!0,forced:!u||c((function(){var e=q();return\"[null]\"!=W([e])||\"{}\"!=W({a:e})||\"{}\"!=W(Object(e))}))},{stringify:function(e,t,r){for(var n,i=[e],o=1;arguments.length>o;)i.push(arguments[o++]);if(n=t,(f(t)||void 0!==e)&&!oe(e))return p(t)||(t=function(e,t){if(\"function\"==typeof n&&(t=n.call(this,e,t)),!oe(t))return t}),i[1]=t,W.apply(null,i)}});q.prototype[z]||A(q.prototype,z,q.prototype.valueOf),M(q,\"Symbol\"),F[R]=!0},function(e,t,r){\"use strict\";var n=r(4),i=r(16),o=r(11),a=r(14),s=r(13),u=r(15).f,l=r(119),c=o.Symbol;if(i&&\"function\"==typeof c&&(!(\"description\"in c.prototype)||void 0!==c().description)){var h={},p=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof p?new c(e):void 0===e?c():c(e);return\"\"===e&&(h[t]=!0),t};l(p,c);var f=p.prototype=c.prototype;f.constructor=p;var d=f.toString,m=\"Symbol(test)\"==String(c(\"test\")),y=/^Symbol\\((.*)\\)[^)]+$/;u(f,\"description\",{configurable:!0,get:function(){var e=s(this)?this.valueOf():this,t=d.call(e);if(a(h,e))return\"\";var r=m?t.slice(7,-1):t.replace(y,\"$1\");return\"\"===r?void 0:r}}),n({global:!0,forced:!0},{Symbol:p})}},function(e,t,r){r(126)(\"iterator\")},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(6),s=r(2),u=r(70),l=r(3),c=r(9),h=r(0),p=r(152),f=r(12),d=function(e){function t(){var t=e.call(this)||this;return t._parent=null,t._firstChild=null,t._lastChild=null,t._previousSibling=null,t._nextSibling=null,t}return i(t,e),Object.defineProperty(t.prototype,\"_childNodes\",{get:function(){return this.__childNodes||(this.__childNodes=h.create_nodeList(this))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_nodeDocument\",{get:function(){return this._nodeDocumentOverride||a.dom.window._associatedDocument},set:function(e){this._nodeDocumentOverride=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_registeredObserverList\",{get:function(){return this.__registeredObserverList||(this.__registeredObserverList=[])},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"nodeType\",{get:function(){return this._nodeType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"nodeName\",{get:function(){return l.Guard.isElementNode(this)?this._htmlUppercasedQualifiedName:l.Guard.isAttrNode(this)?this._qualifiedName:l.Guard.isExclusiveTextNode(this)?\"#text\":l.Guard.isCDATASectionNode(this)?\"#cdata-section\":l.Guard.isProcessingInstructionNode(this)?this._target:l.Guard.isCommentNode(this)?\"#comment\":l.Guard.isDocumentNode(this)?\"#document\":l.Guard.isDocumentTypeNode(this)?this._name:l.Guard.isDocumentFragmentNode(this)?\"#document-fragment\":\"\"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"baseURI\",{get:function(){return p.urlSerializer(this._nodeDocument._URL)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isConnected\",{get:function(){return l.Guard.isElementNode(this)&&h.shadowTree_isConnected(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"ownerDocument\",{get:function(){return this._nodeType===s.NodeType.Document?null:this._nodeDocument},enumerable:!0,configurable:!0}),t.prototype.getRootNode=function(e){return h.tree_rootNode(this,!!e&&e.composed)},Object.defineProperty(t.prototype,\"parentNode\",{get:function(){return this._nodeType===s.NodeType.Attribute?null:this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"parentElement\",{get:function(){return this._parent&&l.Guard.isElementNode(this._parent)?this._parent:null},enumerable:!0,configurable:!0}),t.prototype.hasChildNodes=function(){return null!==this._firstChild},Object.defineProperty(t.prototype,\"childNodes\",{get:function(){return this._childNodes},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"firstChild\",{get:function(){return this._firstChild},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"lastChild\",{get:function(){return this._lastChild},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"previousSibling\",{get:function(){return this._previousSibling},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"nextSibling\",{get:function(){return this._nextSibling},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"nodeValue\",{get:function(){return l.Guard.isAttrNode(this)?this._value:l.Guard.isCharacterDataNode(this)?this._data:null},set:function(e){null===e&&(e=\"\"),l.Guard.isAttrNode(this)?h.attr_setAnExistingAttributeValue(this,e):l.Guard.isCharacterDataNode(this)&&h.characterData_replaceData(this,0,this._data.length,e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"textContent\",{get:function(){return l.Guard.isDocumentFragmentNode(this)||l.Guard.isElementNode(this)?h.text_descendantTextContent(this):l.Guard.isAttrNode(this)?this._value:l.Guard.isCharacterDataNode(this)?this._data:null},set:function(e){null===e&&(e=\"\"),l.Guard.isDocumentFragmentNode(this)||l.Guard.isElementNode(this)?h.node_stringReplaceAll(e,this):l.Guard.isAttrNode(this)?h.attr_setAnExistingAttributeValue(this,e):l.Guard.isCharacterDataNode(this)&&h.characterData_replaceData(this,0,h.tree_nodeLength(this),e)},enumerable:!0,configurable:!0}),t.prototype.normalize=function(){for(var e,t,r,n,i=[],s=h.tree_getFirstDescendantNode(this,!1,!1,(function(e){return l.Guard.isExclusiveTextNode(e)}));null!==s;)i.push(s),s=h.tree_getNextDescendantNode(this,s,!1,!1,(function(e){return l.Guard.isExclusiveTextNode(e)}));for(var u=0;u<i.length;u++){var c=i[u];if(null!==c._parent){var p=h.tree_nodeLength(c);if(0!==p){var f=[],d=\"\";try{for(var m=(e=void 0,o(h.text_contiguousExclusiveTextNodes(c))),y=m.next();!y.done;y=m.next()){var v=y.value;f.push(v),d+=v._data}}catch(t){e={error:t}}finally{try{y&&!y.done&&(t=m.return)&&t.call(m)}finally{if(e)throw e.error}}if(h.characterData_replaceData(c,p,0,d),0!==a.dom.rangeList.size)for(var _=c._nextSibling;null!==_&&l.Guard.isExclusiveTextNode(_);){var g=_,b=h.tree_index(g);try{for(var x=(r=void 0,o(a.dom.rangeList)),w=x.next();!w.done;w=x.next()){var E=w.value;E._start[0]===g&&(E._start[0]=c,E._start[1]+=p),E._end[0]===g&&(E._end[0]=c,E._end[1]+=p),E._start[0]===g._parent&&E._start[1]===b&&(E._start[0]=c,E._start[1]=p),E._end[0]===g._parent&&E._end[1]===b&&(E._end[0]=c,E._end[1]=p)}}catch(e){r={error:e}}finally{try{w&&!w.done&&(n=x.return)&&n.call(x)}finally{if(r)throw r.error}}p+=h.tree_nodeLength(_),_=_._nextSibling}for(var D=0;D<f.length;D++){null!==(v=f[D])._parent&&h.mutation_remove(v,v._parent)}}else h.mutation_remove(c,c._parent)}}},t.prototype.cloneNode=function(e){if(void 0===e&&(e=!1),l.Guard.isShadowRoot(this))throw new c.NotSupportedError;return h.node_clone(this,null,e)},t.prototype.isEqualNode=function(e){return void 0===e&&(e=null),null!==e&&h.node_equals(this,e)},t.prototype.isSameNode=function(e){return void 0===e&&(e=null),this===e},t.prototype.compareDocumentPosition=function(e){if(e===this)return 0;var t=e,r=this,n=null,i=null;if(l.Guard.isAttrNode(t)&&(t=(n=t)._element),l.Guard.isAttrNode(r)&&(r=(i=r)._element,n&&t&&t===r))for(var o=0;o<r._attributeList.length;o++){var u=r._attributeList[o];if(h.node_equals(u,n))return s.Position.ImplementationSpecific|s.Position.Preceding;if(h.node_equals(u,i))return s.Position.ImplementationSpecific|s.Position.Following}return null===t||null===r||h.tree_rootNode(t)!==h.tree_rootNode(r)?s.Position.Disconnected|s.Position.ImplementationSpecific|(a.dom.compareCache.check(this,e)?s.Position.Preceding:s.Position.Following):!n&&h.tree_isAncestorOf(r,t)||i&&t===r?s.Position.Contains|s.Position.Preceding:!i&&h.tree_isDescendantOf(r,t)||n&&t===r?s.Position.ContainedBy|s.Position.Following:h.tree_isPreceding(r,t)?s.Position.Preceding:s.Position.Following},t.prototype.contains=function(e){return null!==e&&h.tree_isDescendantOf(this,e,!0)},t.prototype.lookupPrefix=function(e){return e?l.Guard.isElementNode(this)?h.node_locateANamespacePrefix(this,e):l.Guard.isDocumentNode(this)?null===this.documentElement?null:h.node_locateANamespacePrefix(this.documentElement,e):l.Guard.isDocumentTypeNode(this)||l.Guard.isDocumentFragmentNode(this)?null:l.Guard.isAttrNode(this)?null===this._element?null:h.node_locateANamespacePrefix(this._element,e):null!==this._parent&&l.Guard.isElementNode(this._parent)?h.node_locateANamespacePrefix(this._parent,e):null:null},t.prototype.lookupNamespaceURI=function(e){return h.node_locateANamespace(this,e||null)},t.prototype.isDefaultNamespace=function(e){return e||(e=null),h.node_locateANamespace(this,null)===e},t.prototype.insertBefore=function(e,t){return h.mutation_preInsert(e,this,t)},t.prototype.appendChild=function(e){return h.mutation_append(e,this)},t.prototype.replaceChild=function(e,t){return h.mutation_replace(t,e,this)},t.prototype.removeChild=function(e){return h.mutation_preRemove(e,this)},t.prototype._getTheParent=function(e){return l.Guard.isSlotable(this)&&h.shadowTree_isAssigned(this)?this._assignedSlot:this._parent},t.ELEMENT_NODE=1,t.ATTRIBUTE_NODE=2,t.TEXT_NODE=3,t.CDATA_SECTION_NODE=4,t.ENTITY_REFERENCE_NODE=5,t.ENTITY_NODE=6,t.PROCESSING_INSTRUCTION_NODE=7,t.COMMENT_NODE=8,t.DOCUMENT_NODE=9,t.DOCUMENT_TYPE_NODE=10,t.DOCUMENT_FRAGMENT_NODE=11,t.NOTATION_NODE=12,t.DOCUMENT_POSITION_DISCONNECTED=1,t.DOCUMENT_POSITION_PRECEDING=2,t.DOCUMENT_POSITION_FOLLOWING=4,t.DOCUMENT_POSITION_CONTAINS=8,t.DOCUMENT_POSITION_CONTAINED_BY=16,t.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC=32,t}(u.EventTargetImpl);t.NodeImpl=d,d.prototype._children=new l.EmptySet,f.idl_defineConst(d.prototype,\"ELEMENT_NODE\",1),f.idl_defineConst(d.prototype,\"ATTRIBUTE_NODE\",2),f.idl_defineConst(d.prototype,\"TEXT_NODE\",3),f.idl_defineConst(d.prototype,\"CDATA_SECTION_NODE\",4),f.idl_defineConst(d.prototype,\"ENTITY_REFERENCE_NODE\",5),f.idl_defineConst(d.prototype,\"ENTITY_NODE\",6),f.idl_defineConst(d.prototype,\"PROCESSING_INSTRUCTION_NODE\",7),f.idl_defineConst(d.prototype,\"COMMENT_NODE\",8),f.idl_defineConst(d.prototype,\"DOCUMENT_NODE\",9),f.idl_defineConst(d.prototype,\"DOCUMENT_TYPE_NODE\",10),f.idl_defineConst(d.prototype,\"DOCUMENT_FRAGMENT_NODE\",11),f.idl_defineConst(d.prototype,\"NOTATION_NODE\",12),f.idl_defineConst(d.prototype,\"DOCUMENT_POSITION_DISCONNECTED\",1),f.idl_defineConst(d.prototype,\"DOCUMENT_POSITION_PRECEDING\",2),f.idl_defineConst(d.prototype,\"DOCUMENT_POSITION_FOLLOWING\",4),f.idl_defineConst(d.prototype,\"DOCUMENT_POSITION_CONTAINS\",8),f.idl_defineConst(d.prototype,\"DOCUMENT_POSITION_CONTAINED_BY\",16),f.idl_defineConst(d.prototype,\"DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\",32)},function(e,t){e.exports=function(e){if(null==e)throw TypeError(\"Can't call method on \"+e);return e}},function(e,t,r){var n=r(87),i=r(41),o=r(27),a=r(26),s=r(128),u=[].push,l=function(e){var t=1==e,r=2==e,l=3==e,c=4==e,h=6==e,p=5==e||h;return function(f,d,m,y){for(var v,_,g=o(f),b=i(g),x=n(d,m,3),w=a(b.length),E=0,D=y||s,S=t?D(f,w):r?D(f,0):void 0;w>E;E++)if((p||E in b)&&(_=x(v=b[E],E,g),e))if(t)S[E]=_;else if(_)switch(e){case 3:return!0;case 5:return v;case 6:return E;case 2:u.call(S,v)}else if(c)return!1;return h?-1:l||c?c:S}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6)}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},i=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},o=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(6),s=r(9),u=r(2),l=r(3),c=r(1),h=r(7),p=r(73),f=r(17),d=r(172),m=r(72),y=r(51),v=r(30),_=r(106);function g(e,t,r){var i,o,a,l,c,h,p,d,m=t._nodeType,y=e._nodeType,v=r?r._nodeType:null;if(m!==u.NodeType.Document&&m!==u.NodeType.DocumentFragment&&m!==u.NodeType.Element)throw new s.HierarchyRequestError(\"Only document, document fragment and element nodes can contain child nodes. Parent node is \"+t.nodeName+\".\");if(f.tree_isHostIncludingAncestorOf(t,e,!0))throw new s.HierarchyRequestError(\"The node to be inserted cannot be an inclusive ancestor of parent node. Node is \"+e.nodeName+\", parent node is \"+t.nodeName+\".\");if(null!==r&&r._parent!==t)throw new s.NotFoundError(\"The reference child node cannot be found under parent node. Child node is \"+r.nodeName+\", parent node is \"+t.nodeName+\".\");if(y!==u.NodeType.DocumentFragment&&y!==u.NodeType.DocumentType&&y!==u.NodeType.Element&&y!==u.NodeType.Text&&y!==u.NodeType.ProcessingInstruction&&y!==u.NodeType.CData&&y!==u.NodeType.Comment)throw new s.HierarchyRequestError(\"Only document fragment, document type, element, text, processing instruction, cdata section or comment nodes can be inserted. Node is \"+e.nodeName+\".\");if(y===u.NodeType.Text&&m===u.NodeType.Document)throw new s.HierarchyRequestError(\"Cannot insert a text node as a child of a document node. Node is \"+e.nodeName+\".\");if(y===u.NodeType.DocumentType&&m!==u.NodeType.Document)throw new s.HierarchyRequestError(\"A document type node can only be inserted under a document node. Parent node is \"+t.nodeName+\".\");if(m===u.NodeType.Document)if(y===u.NodeType.DocumentFragment){var _=0;try{for(var g=n(e._children),b=g.next();!b.done;b=g.next()){var x=b.value;if(x._nodeType===u.NodeType.Element)_++;else if(x._nodeType===u.NodeType.Text)throw new s.HierarchyRequestError(\"Cannot insert text a node as a child of a document node. Node is \"+x.nodeName+\".\")}}catch(e){i={error:e}}finally{try{b&&!b.done&&(o=g.return)&&o.call(g)}finally{if(i)throw i.error}}if(_>1)throw new s.HierarchyRequestError(\"A document node can only have one document element node. Document fragment to be inserted has \"+_+\" element nodes.\");if(1===_){try{for(var w=n(t._children),E=w.next();!E.done;E=w.next()){if(E.value._nodeType===u.NodeType.Element)throw new s.HierarchyRequestError(\"The document node already has a document element node.\")}}catch(e){a={error:e}}finally{try{E&&!E.done&&(l=w.return)&&l.call(w)}finally{if(a)throw a.error}}if(r){if(v===u.NodeType.DocumentType)throw new s.HierarchyRequestError(\"Cannot insert an element node before a document type node.\");for(var D=r._nextSibling;D;){if(D._nodeType===u.NodeType.DocumentType)throw new s.HierarchyRequestError(\"Cannot insert an element node before a document type node.\");D=D._nextSibling}}}}else if(y===u.NodeType.Element){try{for(var S=n(t._children),C=S.next();!C.done;C=S.next()){if(C.value._nodeType===u.NodeType.Element)throw new s.HierarchyRequestError(\"Document already has a document element node. Node is \"+e.nodeName+\".\")}}catch(e){c={error:e}}finally{try{C&&!C.done&&(h=S.return)&&h.call(S)}finally{if(c)throw c.error}}if(r){if(v===u.NodeType.DocumentType)throw new s.HierarchyRequestError(\"Cannot insert an element node before a document type node. Node is \"+e.nodeName+\".\");for(D=r._nextSibling;D;){if(D._nodeType===u.NodeType.DocumentType)throw new s.HierarchyRequestError(\"Cannot insert an element node before a document type node. Node is \"+e.nodeName+\".\");D=D._nextSibling}}}else if(y===u.NodeType.DocumentType){try{for(var A=n(t._children),N=A.next();!N.done;N=A.next()){if(N.value._nodeType===u.NodeType.DocumentType)throw new s.HierarchyRequestError(\"Document already has a document type node. Node is \"+e.nodeName+\".\")}}catch(e){p={error:e}}finally{try{N&&!N.done&&(d=A.return)&&d.call(A)}finally{if(p)throw p.error}}if(r)for(var T=r._previousSibling;T;){if(T._nodeType===u.NodeType.Element)throw new s.HierarchyRequestError(\"Cannot insert a document type node before an element node. Node is \"+e.nodeName+\".\");T=T._previousSibling}else for(T=t._firstChild;T;){if(T._nodeType===u.NodeType.Element)throw new s.HierarchyRequestError(\"Cannot insert a document type node before an element node. Node is \"+e.nodeName+\".\");T=T._nextSibling}}}function b(e,t,r){g(e,t,r);var n=r;return n===e&&(n=e._nextSibling),_.document_adopt(e,t._nodeDocument),x(e,t,n),e}function x(e,t,r,i){var s,d;if(null!==r||e._nodeType===u.NodeType.DocumentFragment){var _=e._nodeType===u.NodeType.DocumentFragment?e._children.size:1;if(null!==r&&0!==a.dom.rangeList.size){var g=f.tree_index(r);try{for(var b=n(a.dom.rangeList),x=b.next();!x.done;x=b.next()){var E=x.value;E._start[0]===t&&E._start[1]>g&&(E._start[1]+=_),E._end[0]===t&&E._end[1]>g&&(E._end[1]+=_)}}catch(e){s={error:e}}finally{try{x&&!x.done&&(d=b.return)&&d.call(b)}finally{if(s)throw s.error}}}var D=e._nodeType===u.NodeType.DocumentFragment?new(Array.bind.apply(Array,o([void 0],e._children))):[e];if(e._nodeType===u.NodeType.DocumentFragment)for(;e._firstChild;)w(e._firstChild,e,!0);a.dom.features.mutationObservers&&e._nodeType===u.NodeType.DocumentFragment&&y.observer_queueTreeMutationRecord(e,[],D,null,null);for(var S=r?r._previousSibling:t._lastChild,C=null===r?-1:f.tree_index(r),A=0;A<D.length;A++){var N=D[A];if(l.Guard.isElementNode(N)&&(l.Guard.isDocumentNode(t)&&(t._documentElement=N),N._nodeDocument._hasNamespaces||null===N._namespace&&null===N._namespacePrefix||(N._nodeDocument._hasNamespaces=!0)),N._parent=t,null===r?h.set.append(t._children,N):(h.set.insert(t._children,N,C),C++),null===t._firstChild)N._previousSibling=null,N._nextSibling=null,t._firstChild=N,t._lastChild=N;else{var T=r?r._previousSibling:t._lastChild,O=r||null;N._previousSibling=T,N._nextSibling=O,T&&(T._nextSibling=N),O&&(O._previousSibling=N),T||(t._firstChild=N),O||(t._lastChild=N)}a.dom.features.slots&&null!==t._shadowRoot&&l.Guard.isSlotable(N)&&m.shadowTree_assignASlot(N),a.dom.features.steps&&l.Guard.isTextNode(N)&&v.dom_runChildTextContentChangeSteps(t),a.dom.features.slots&&l.Guard.isShadowRoot(f.tree_rootNode(t))&&l.Guard.isSlot(t)&&c.isEmpty(t._assignedNodes)&&m.shadowTree_signalASlotChange(t),a.dom.features.slots&&m.shadowTree_assignSlotablesForATree(f.tree_rootNode(N));for(var F=f.tree_getFirstDescendantNode(N,!0,!0);null!==F;)a.dom.features.steps&&v.dom_runInsertionSteps(F),a.dom.features.customElements&&l.Guard.isElementNode(F)&&m.shadowTree_isConnected(F)&&(l.Guard.isCustomElementNode(F)?p.customElement_enqueueACustomElementCallbackReaction(F,\"connectedCallback\",[]):p.customElement_tryToUpgrade(F)),F=f.tree_getNextDescendantNode(N,F,!0,!0)}a.dom.features.mutationObservers&&(i||y.observer_queueTreeMutationRecord(t,D,[],S,r))}else!function(e,t,r){var n=t._lastChild;l.Guard.isElementNode(e)&&(l.Guard.isDocumentNode(t)&&(t._documentElement=e),e._nodeDocument._hasNamespaces||null===e._namespace&&null===e._namespacePrefix||(e._nodeDocument._hasNamespaces=!0));if(e._parent=t,t._children.add(e),null===t._firstChild)e._previousSibling=null,e._nextSibling=null,t._firstChild=e,t._lastChild=e;else{var i=t._lastChild;e._previousSibling=i,e._nextSibling=null,i&&(i._nextSibling=e),i||(t._firstChild=e),t._lastChild=e}a.dom.features.slots&&null!==t._shadowRoot&&l.Guard.isSlotable(e)&&m.shadowTree_assignASlot(e);a.dom.features.steps&&l.Guard.isTextNode(e)&&v.dom_runChildTextContentChangeSteps(t);a.dom.features.slots&&l.Guard.isShadowRoot(f.tree_rootNode(t))&&l.Guard.isSlot(t)&&c.isEmpty(t._assignedNodes)&&m.shadowTree_signalASlotChange(t);a.dom.features.slots&&m.shadowTree_assignSlotablesForATree(f.tree_rootNode(e));a.dom.features.steps&&v.dom_runInsertionSteps(e);a.dom.features.customElements&&l.Guard.isElementNode(e)&&m.shadowTree_isConnected(e)&&(l.Guard.isCustomElementNode(e)?p.customElement_enqueueACustomElementCallbackReaction(e,\"connectedCallback\",[]):p.customElement_tryToUpgrade(e));a.dom.features.mutationObservers&&(r||y.observer_queueTreeMutationRecord(t,[e],[],n,null))}(e,t,i)}function w(e,t,r){var i,o,s,u,h,_,g,b;if(0!==a.dom.rangeList.size){var x=f.tree_index(e);try{for(var w=n(a.dom.rangeList),E=w.next();!E.done;E=w.next()){var D=E.value;f.tree_isDescendantOf(e,D._start[0],!0)&&(D._start=[t,x]),f.tree_isDescendantOf(e,D._end[0],!0)&&(D._end=[t,x]),D._start[0]===t&&D._start[1]>x&&D._start[1]--,D._end[0]===t&&D._end[1]>x&&D._end[1]--}}catch(e){i={error:e}}finally{try{E&&!E.done&&(o=w.return)&&o.call(w)}finally{if(i)throw i.error}}try{for(var S=n(a.dom.rangeList),C=S.next();!C.done;C=S.next()){(D=C.value)._start[0]===t&&D._start[1]>x&&(D._start[1]-=1),D._end[0]===t&&D._end[1]>x&&(D._end[1]-=1)}}catch(e){s={error:e}}finally{try{C&&!C.done&&(u=S.return)&&u.call(S)}finally{if(s)throw s.error}}}if(a.dom.features.steps)try{for(var A=n(d.nodeIterator_iteratorList()),N=A.next();!N.done;N=A.next()){var T=N.value;T._root._nodeDocument===e._nodeDocument&&v.dom_runNodeIteratorPreRemovingSteps(T,e)}}catch(e){h={error:e}}finally{try{N&&!N.done&&(_=A.return)&&_.call(A)}finally{if(h)throw h.error}}var O=e._previousSibling,F=e._nextSibling;l.Guard.isDocumentNode(t)&&l.Guard.isElementNode(e)&&(t._documentElement=null),e._parent=null,t._children.delete(e);var k=e._previousSibling,P=e._nextSibling;(e._previousSibling=null,e._nextSibling=null,k&&(k._nextSibling=P),P&&(P._previousSibling=k),k||(t._firstChild=P),P||(t._lastChild=k),a.dom.features.slots&&l.Guard.isSlotable(e)&&null!==e._assignedSlot&&m.shadowTree_isAssigned(e)&&m.shadowTree_assignSlotables(e._assignedSlot),a.dom.features.slots&&l.Guard.isShadowRoot(f.tree_rootNode(t))&&l.Guard.isSlot(t)&&c.isEmpty(t._assignedNodes)&&m.shadowTree_signalASlotChange(t),a.dom.features.slots)&&(null!==f.tree_getFirstDescendantNode(e,!0,!1,(function(e){return l.Guard.isSlot(e)}))&&(m.shadowTree_assignSlotablesForATree(f.tree_rootNode(t)),m.shadowTree_assignSlotablesForATree(e)));a.dom.features.steps&&v.dom_runRemovingSteps(e,t),a.dom.features.customElements&&l.Guard.isCustomElementNode(e)&&p.customElement_enqueueACustomElementCallbackReaction(e,\"disconnectedCallback\",[]);for(var I=f.tree_getFirstDescendantNode(e,!1,!0);null!==I;)a.dom.features.steps&&v.dom_runRemovingSteps(I,e),a.dom.features.customElements&&l.Guard.isCustomElementNode(I)&&p.customElement_enqueueACustomElementCallbackReaction(I,\"disconnectedCallback\",[]),I=f.tree_getNextDescendantNode(e,I,!1,!0);if(a.dom.features.mutationObservers)for(var L=f.tree_getFirstAncestorNode(t,!0);null!==L;){try{for(var M=(g=void 0,n(L._registeredObserverList)),B=M.next();!B.done;B=M.next()){var j=B.value;j.options.subtree&&e._registeredObserverList.push({observer:j.observer,options:j.options,source:j})}}catch(e){g={error:e}}finally{try{B&&!B.done&&(b=M.return)&&b.call(M)}finally{if(g)throw g.error}}L=f.tree_getNextAncestorNode(t,L,!0)}a.dom.features.mutationObservers&&(r||y.observer_queueTreeMutationRecord(t,[],[e],O,F)),a.dom.features.steps&&l.Guard.isTextNode(e)&&v.dom_runChildTextContentChangeSteps(t)}t.mutation_ensurePreInsertionValidity=g,t.mutation_preInsert=b,t.mutation_insert=x,t.mutation_append=function(e,t){return b(e,t,null)},t.mutation_replace=function(e,t,r){var i,o,l,c,h,p,d,m;if(r._nodeType!==u.NodeType.Document&&r._nodeType!==u.NodeType.DocumentFragment&&r._nodeType!==u.NodeType.Element)throw new s.HierarchyRequestError(\"Only document, document fragment and element nodes can contain child nodes. Parent node is \"+r.nodeName+\".\");if(f.tree_isHostIncludingAncestorOf(r,t,!0))throw new s.HierarchyRequestError(\"The node to be inserted cannot be an ancestor of parent node. Node is \"+t.nodeName+\", parent node is \"+r.nodeName+\".\");if(e._parent!==r)throw new s.NotFoundError(\"The reference child node cannot be found under parent node. Child node is \"+e.nodeName+\", parent node is \"+r.nodeName+\".\");if(t._nodeType!==u.NodeType.DocumentFragment&&t._nodeType!==u.NodeType.DocumentType&&t._nodeType!==u.NodeType.Element&&t._nodeType!==u.NodeType.Text&&t._nodeType!==u.NodeType.ProcessingInstruction&&t._nodeType!==u.NodeType.CData&&t._nodeType!==u.NodeType.Comment)throw new s.HierarchyRequestError(\"Only document fragment, document type, element, text, processing instruction, cdata section or comment nodes can be inserted. Node is \"+t.nodeName+\".\");if(t._nodeType===u.NodeType.Text&&r._nodeType===u.NodeType.Document)throw new s.HierarchyRequestError(\"Cannot insert a text node as a child of a document node. Node is \"+t.nodeName+\".\");if(t._nodeType===u.NodeType.DocumentType&&r._nodeType!==u.NodeType.Document)throw new s.HierarchyRequestError(\"A document type node can only be inserted under a document node. Parent node is \"+r.nodeName+\".\");if(r._nodeType===u.NodeType.Document)if(t._nodeType===u.NodeType.DocumentFragment){var v=0;try{for(var g=n(t._children),b=g.next();!b.done;b=g.next()){var E=b.value;if(E._nodeType===u.NodeType.Element)v++;else if(E._nodeType===u.NodeType.Text)throw new s.HierarchyRequestError(\"Cannot insert text a node as a child of a document node. Node is \"+E.nodeName+\".\")}}catch(e){i={error:e}}finally{try{b&&!b.done&&(o=g.return)&&o.call(g)}finally{if(i)throw i.error}}if(v>1)throw new s.HierarchyRequestError(\"A document node can only have one document element node. Document fragment to be inserted has \"+v+\" element nodes.\");if(1===v){try{for(var D=n(r._children),S=D.next();!S.done;S=D.next()){if((F=S.value)._nodeType===u.NodeType.Element&&F!==e)throw new s.HierarchyRequestError(\"The document node already has a document element node.\")}}catch(e){l={error:e}}finally{try{S&&!S.done&&(c=D.return)&&c.call(D)}finally{if(l)throw l.error}}for(var C=e._nextSibling;C;){if(C._nodeType===u.NodeType.DocumentType)throw new s.HierarchyRequestError(\"Cannot insert an element node before a document type node.\");C=C._nextSibling}}}else if(t._nodeType===u.NodeType.Element){try{for(var A=n(r._children),N=A.next();!N.done;N=A.next()){if((F=N.value)._nodeType===u.NodeType.Element&&F!==e)throw new s.HierarchyRequestError(\"Document already has a document element node. Node is \"+t.nodeName+\".\")}}catch(e){h={error:e}}finally{try{N&&!N.done&&(p=A.return)&&p.call(A)}finally{if(h)throw h.error}}for(C=e._nextSibling;C;){if(C._nodeType===u.NodeType.DocumentType)throw new s.HierarchyRequestError(\"Cannot insert an element node before a document type node. Node is \"+t.nodeName+\".\");C=C._nextSibling}}else if(t._nodeType===u.NodeType.DocumentType){try{for(var T=n(r._children),O=T.next();!O.done;O=T.next()){var F;if((F=O.value)._nodeType===u.NodeType.DocumentType&&F!==e)throw new s.HierarchyRequestError(\"Document already has a document type node. Node is \"+t.nodeName+\".\")}}catch(e){d={error:e}}finally{try{O&&!O.done&&(m=T.return)&&m.call(T)}finally{if(d)throw d.error}}for(var k=e._previousSibling;k;){if(k._nodeType===u.NodeType.Element)throw new s.HierarchyRequestError(\"Cannot insert a document type node before an element node. Node is \"+t.nodeName+\".\");k=k._previousSibling}}var P=e._nextSibling;P===t&&(P=t._nextSibling);var I=e._previousSibling;_.document_adopt(t,r._nodeDocument);var L=[];null!==e._parent&&(L.push(e),w(e,e._parent,!0));var M=[];return t._nodeType===u.NodeType.DocumentFragment?M=Array.from(t._children):M.push(t),x(t,r,P,!0),a.dom.features.mutationObservers&&y.observer_queueTreeMutationRecord(r,M,L,I,P),e},t.mutation_replaceAll=function(e,t){var r,i;null!==e&&_.document_adopt(e,t._nodeDocument);var o=Array.from(t._children),s=[];e&&e._nodeType===u.NodeType.DocumentFragment?s=Array.from(e._children):null!==e&&s.push(e);try{for(var l=n(o),c=l.next();!c.done;c=l.next()){w(c.value,t,!0)}}catch(e){r={error:e}}finally{try{c&&!c.done&&(i=l.return)&&i.call(l)}finally{if(r)throw r.error}}null!==e&&x(e,t,null,!0),a.dom.features.mutationObservers&&y.observer_queueTreeMutationRecord(t,s,o,null,null)},t.mutation_preRemove=function(e,t){if(e._parent!==t)throw new s.NotFoundError(\"The child node cannot be found under parent node. Child node is \"+e.nodeName+\", parent node is \"+t.nodeName+\".\");return w(e,t),e},t.mutation_remove=w},function(e,t,r){\"use strict\";function n(e){return null==e}e.exports.isNothing=n,e.exports.isObject=function(e){return\"object\"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:n(e)?[]:[e]},e.exports.repeat=function(e,t){var r,n=\"\";for(r=0;r<t;r+=1)n+=e;return n},e.exports.isNegativeZero=function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},e.exports.extend=function(e,t){var r,n,i,o;if(t)for(r=0,n=(o=Object.keys(t)).length;r<n;r+=1)e[i=o[r]]=t[i];return e}},function(e,t,r){\"use strict\";var n=r(38),i=r(53),o=r(10);function a(e,t,r){var n=[];return e.include.forEach((function(e){r=a(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&\"scalar\"!==e.loadKind)throw new i(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\")})),this.compiledImplicit=a(this,\"implicit\",[]),this.compiledExplicit=a(this,\"explicit\",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(n);return r}(this.compiledImplicit,this.compiledExplicit)}s.DEFAULT=null,s.create=function(){var e,t;switch(arguments.length){case 1:e=s.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new i(\"Wrong number of arguments for Schema.create function\")}if(e=n.toArray(e),t=n.toArray(t),!e.every((function(e){return e instanceof s})))throw new i(\"Specified list of super schemas (or a single Schema object) contains a non-Schema object.\");if(!t.every((function(e){return e instanceof o})))throw new i(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");return new s({include:e,explicit:t})},e.exports=s},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){var n=r(8),i=r(42),o=\"\".split;e.exports=n((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(e){return\"String\"==i(e)?o.call(e,\"\"):Object(e)}:Object},function(e,t){var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,r){var n,i,o,a=r(186),s=r(11),u=r(13),l=r(21),c=r(14),h=r(57),p=r(45),f=s.WeakMap;if(a){var d=new f,m=d.get,y=d.has,v=d.set;n=function(e,t){return v.call(d,e,t),t},i=function(e){return m.call(d,e)||{}},o=function(e){return y.call(d,e)}}else{var _=h(\"state\");p[_]=!0,n=function(e,t){return l(e,_,t),t},i=function(e){return c(e,_)?e[_]:{}},o=function(e){return c(e,_)}}e.exports={set:n,get:i,has:o,enforce:function(e){return o(e)?i(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!u(t)||(r=i(t)).type!==e)throw TypeError(\"Incompatible receiver, \"+e+\" required\");return r}}}},function(e,t){e.exports=!1},function(e,t){e.exports={}},function(e,t,r){var n=r(120),i=r(11),o=function(e){return\"function\"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?o(n[e])||o(i[e]):n[e]&&n[e][t]||i[e]&&i[e][t]}},function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t,r){\"use strict\";var n=r(8);e.exports=function(e,t){var r=[][e];return!!r&&n((function(){r.call(null,t||function(){throw 1},1)}))}},function(e,t){e.exports={}},function(e,t,r){\"use strict\";r(31),r(32),r(33),r(220),r(64),r(19),r(65),r(20),r(68),r(66),r(92),r(144),r(22),r(94),r(23);var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},i=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},o=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(2),s=r(69),u=r(95),l=r(7),c=r(0),h=function(){function e(e){this.level=0,this._builderOptions=e}return e.prototype.declaration=function(e,t,r){},e.prototype.docType=function(e,t,r){},e.prototype.comment=function(e){},e.prototype.text=function(e){},e.prototype.instruction=function(e,t){},e.prototype.cdata=function(e){},e.prototype.openTagBegin=function(e){},e.prototype.openTagEnd=function(e,t,r){},e.prototype.closeTag=function(e){},e.prototype.attributes=function(e){var t,r;try{for(var i=n(e),o=i.next();!o.done;o=i.next()){var a=o.value;this.attribute(null===a[1]?a[2]:a[1]+\":\"+a[2],a[3])}}catch(e){t={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}},e.prototype.attribute=function(e,t){},e.prototype.beginElement=function(e){},e.prototype.endElement=function(e){},e.prototype.serializeNode=function(e,t){var r=void 0!==e._nodeDocument&&e._nodeDocument._hasNamespaces;if(this.level=0,this.currentNode=e,r){var n=new u.NamespacePrefixMap;n.set(\"xml\",l.namespace.XML);this._serializeNodeNS(e,null,n,{value:1},t)}else this._serializeNode(e,t)},e.prototype._serializeNodeNS=function(e,t,r,n,i){switch(this.currentNode=e,e.nodeType){case a.NodeType.Element:this._serializeElementNS(e,t,r,n,i);break;case a.NodeType.Document:this._serializeDocumentNS(e,t,r,n,i);break;case a.NodeType.Comment:this._serializeComment(e,i);break;case a.NodeType.Text:this._serializeText(e,i);break;case a.NodeType.DocumentFragment:this._serializeDocumentFragmentNS(e,t,r,n,i);break;case a.NodeType.DocumentType:this._serializeDocumentType(e,i);break;case a.NodeType.ProcessingInstruction:this._serializeProcessingInstruction(e,i);break;case a.NodeType.CData:this._serializeCData(e,i);break;default:throw new Error(\"Unknown node type: \"+e.nodeType)}},e.prototype._serializeNode=function(e,t){switch(this.currentNode=e,e.nodeType){case a.NodeType.Element:this._serializeElement(e,t);break;case a.NodeType.Document:this._serializeDocument(e,t);break;case a.NodeType.Comment:this._serializeComment(e,t);break;case a.NodeType.Text:this._serializeText(e,t);break;case a.NodeType.DocumentFragment:this._serializeDocumentFragment(e,t);break;case a.NodeType.DocumentType:this._serializeDocumentType(e,t);break;case a.NodeType.ProcessingInstruction:this._serializeProcessingInstruction(e,t);break;case a.NodeType.CData:this._serializeCData(e,t);break;default:throw new Error(\"Unknown node type: \"+e.nodeType)}},e.prototype._serializeElementNS=function(t,r,i,a,s){var u,h,p=[];if(s&&(-1!==t.localName.indexOf(\":\")||!c.xml_isName(t.localName)))throw new Error(\"Node local name contains invalid characters (well-formed required).\");var f=\"\",d=!1,m=!1,y=i.copy(),v={},_=this._recordNamespaceInformation(t,y,v),g=r,b=t.namespaceURI;if(g===b)null!==_&&(m=!0),f=b===l.namespace.XML?\"xml:\"+t.localName:t.localName,this.beginElement(f),this.openTagBegin(f);else{var x=t.prefix,w=null;if(null===x&&b===_||(w=y.get(x,b)),\"xmlns\"===x){if(s)throw new Error(\"An element cannot have the 'xmlns' prefix (well-formed required).\");w=x}null!==w?(f=w+\":\"+t.localName,null!==_&&_!==l.namespace.XML&&(g=_||null),this.beginElement(f),this.openTagBegin(f)):null!==x?(x in v&&(x=this._generatePrefix(b,y,a)),y.set(x,b),f+=x+\":\"+t.localName,this.beginElement(f),this.openTagBegin(f),p.push([null,\"xmlns\",x,this._serializeAttributeValue(b,s)]),null!==_&&(g=_||null)):null===_||null!==_&&_!==b?(m=!0,f+=t.localName,g=b,this.beginElement(f),this.openTagBegin(f),p.push([null,null,\"xmlns\",this._serializeAttributeValue(b,s)])):(f+=t.localName,g=b,this.beginElement(f),this.openTagBegin(f))}p.push.apply(p,o(this._serializeAttributesNS(t,y,a,v,m,s))),this.attributes(p);var E=b===l.namespace.HTML;if(E&&0===t.childNodes.length&&e._VoidElementNames.has(t.localName)?(this.openTagEnd(f,!0,!0),this.endElement(f),d=!0):E||0!==t.childNodes.length?this.openTagEnd(f,!1,!1):(this.openTagEnd(f,!0,!1),this.endElement(f),d=!0),!d){if(E&&\"template\"===t.localName);else try{for(var D=n(t.childNodes),S=D.next();!S.done;S=D.next()){var C=S.value;this.level++,this._serializeNodeNS(C,g,y,a,s),this.level--}}catch(e){u={error:e}}finally{try{S&&!S.done&&(h=D.return)&&h.call(D)}finally{if(u)throw u.error}}this.closeTag(f),this.endElement(f)}},e.prototype._serializeElement=function(e,t){var r,i;if(t&&(-1!==e.localName.indexOf(\":\")||!c.xml_isName(e.localName)))throw new Error(\"Node local name contains invalid characters (well-formed required).\");var o=!1,a=e.localName;this.beginElement(a),this.openTagBegin(a);var s=this._serializeAttributes(e,t);if(this.attributes(s),e.hasChildNodes()?this.openTagEnd(a,!1,!1):(this.openTagEnd(a,!0,!1),this.endElement(a),o=!0),!o){try{for(var u=n(e._children),l=u.next();!l.done;l=u.next()){var h=l.value;this.level++,this._serializeNode(h,t),this.level--}}catch(e){r={error:e}}finally{try{l&&!l.done&&(i=u.return)&&i.call(u)}finally{if(r)throw r.error}}this.closeTag(a),this.endElement(a)}},e.prototype._serializeDocumentNS=function(e,t,r,i,o){var a,s;if(o&&null===e.documentElement)throw new Error(\"Missing document element (well-formed required).\");try{for(var u=n(e.childNodes),l=u.next();!l.done;l=u.next()){var c=l.value;this._serializeNodeNS(c,t,r,i,o)}}catch(e){a={error:e}}finally{try{l&&!l.done&&(s=u.return)&&s.call(u)}finally{if(a)throw a.error}}},e.prototype._serializeDocument=function(e,t){var r,i;if(t&&null===e.documentElement)throw new Error(\"Missing document element (well-formed required).\");try{for(var o=n(e._children),a=o.next();!a.done;a=o.next()){var s=a.value;this._serializeNode(s,t)}}catch(e){r={error:e}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}},e.prototype._serializeComment=function(e,t){if(t&&(!c.xml_isLegalChar(e.data)||-1!==e.data.indexOf(\"--\")||e.data.endsWith(\"-\")))throw new Error(\"Comment data contains invalid characters (well-formed required).\");this.comment(e.data)},e.prototype._serializeText=function(e,t){if(t&&!c.xml_isLegalChar(e.data))throw new Error(\"Text data contains invalid characters (well-formed required).\");var r=e.data.replace(/(?!&([^&;]*);)&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");this.text(r)},e.prototype._serializeDocumentFragmentNS=function(e,t,r,i,o){var a,s;try{for(var u=n(e.childNodes),l=u.next();!l.done;l=u.next()){var c=l.value;this._serializeNodeNS(c,t,r,i,o)}}catch(e){a={error:e}}finally{try{l&&!l.done&&(s=u.return)&&s.call(u)}finally{if(a)throw a.error}}},e.prototype._serializeDocumentFragment=function(e,t){var r,i;try{for(var o=n(e._children),a=o.next();!a.done;a=o.next()){var s=a.value;this._serializeNode(s,t)}}catch(e){r={error:e}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}},e.prototype._serializeDocumentType=function(e,t){if(t&&!c.xml_isPubidChar(e.publicId))throw new Error(\"DocType public identifier does not match PubidChar construct (well-formed required).\");if(t&&(!c.xml_isLegalChar(e.systemId)||-1!==e.systemId.indexOf('\"')&&-1!==e.systemId.indexOf(\"'\")))throw new Error(\"DocType system identifier contains invalid characters (well-formed required).\");this.docType(e.name,e.publicId,e.systemId)},e.prototype._serializeProcessingInstruction=function(e,t){if(t&&(-1!==e.target.indexOf(\":\")||/^xml$/i.test(e.target)))throw new Error(\"Processing instruction target contains invalid characters (well-formed required).\");if(t&&(!c.xml_isLegalChar(e.data)||-1!==e.data.indexOf(\"?>\")))throw new Error(\"Processing instruction data contains invalid characters (well-formed required).\");this.instruction(e.target,e.data)},e.prototype._serializeCData=function(e,t){if(t&&-1!==e.data.indexOf(\"]]>\"))throw new Error(\"CDATA contains invalid characters (well-formed required).\");this.cdata(e.data)},e.prototype._serializeAttributesNS=function(e,t,r,i,o,a){var u,h,p=[],f=a?new s.LocalNameSet:void 0;try{for(var d=n(e.attributes),m=d.next();!m.done;m=d.next()){var y=m.value;if(a||o||null!==y.namespaceURI){if(a&&f&&f.has(y.namespaceURI,y.localName))throw new Error(\"Element contains duplicate attributes (well-formed required).\");a&&f&&f.set(y.namespaceURI,y.localName);var v=y.namespaceURI,_=null;if(null!==v)if(_=t.get(y.prefix,v),v===l.namespace.XMLNS){if(y.value===l.namespace.XML||null===y.prefix&&o||null!==y.prefix&&(!(y.localName in i)||i[y.localName]!==y.value)&&t.has(y.localName,y.value))continue;if(a&&y.value===l.namespace.XMLNS)throw new Error(\"XMLNS namespace is reserved (well-formed required).\");if(a&&\"\"===y.value)throw new Error(\"Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).\");\"xmlns\"===y.prefix&&(_=\"xmlns\")}else null===_&&(_=null===y.prefix||t.hasPrefix(y.prefix)&&!t.has(y.prefix,v)?this._generatePrefix(v,t,r):y.prefix,p.push([null,\"xmlns\",_,this._serializeAttributeValue(v,a)]));if(null!==_&&_,a&&(-1!==y.localName.indexOf(\":\")||!c.xml_isName(y.localName)||\"xmlns\"===y.localName&&null===v))throw new Error(\"Attribute local name contains invalid characters (well-formed required).\");p.push([v,_,y.localName,this._serializeAttributeValue(y.value,a)])}else p.push([null,null,y.localName,this._serializeAttributeValue(y.value,a)])}}catch(e){u={error:e}}finally{try{m&&!m.done&&(h=d.return)&&h.call(d)}finally{if(u)throw u.error}}return p},e.prototype._serializeAttributes=function(e,t){var r,i,o=[],a=t?{}:void 0;try{for(var s=n(e.attributes),u=s.next();!u.done;u=s.next()){var l=u.value;if(t){if(t&&a&&l.localName in a)throw new Error(\"Element contains duplicate attributes (well-formed required).\");if(t&&a&&(a[l.localName]=!0),t&&(-1!==l.localName.indexOf(\":\")||!c.xml_isName(l.localName)))throw new Error(\"Attribute local name contains invalid characters (well-formed required).\");o.push([null,null,l.localName,this._serializeAttributeValue(l.value,t)])}else o.push([null,null,l.localName,this._serializeAttributeValue(l.value,t)])}}catch(e){r={error:e}}finally{try{u&&!u.done&&(i=s.return)&&i.call(s)}finally{if(r)throw r.error}}return o},e.prototype._recordNamespaceInformation=function(e,t,r){var i,o,a=null;try{for(var s=n(e.attributes),u=s.next();!u.done;u=s.next()){var c=u.value,h=c.namespaceURI,p=c.prefix;if(h===l.namespace.XMLNS){if(null===p){a=c.value;continue}var f=c.localName,d=c.value;if(d===l.namespace.XML)continue;if(\"\"===d&&(d=null),t.has(f,d))continue;t.set(f,d),r[f]=d||\"\"}}}catch(e){i={error:e}}finally{try{u&&!u.done&&(o=s.return)&&o.call(s)}finally{if(i)throw i.error}}return a},e.prototype._generatePrefix=function(e,t,r){var n=\"ns\"+r.value.toString();return r.value++,t.set(n,e),n},e.prototype._serializeAttributeValue=function(e,t){if(t&&null!==e&&!c.xml_isLegalChar(e))throw new Error(\"Invalid characters in attribute value.\");return null===e?\"\":e.replace(/(?!&([^&;]*);)&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\")},e._VoidElementNames=new Set([\"area\",\"base\",\"basefont\",\"bgsound\",\"br\",\"col\",\"embed\",\"frame\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"]),e}();t.BaseWriter=h},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},i=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a};Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(6),a=r(3),s=r(7),u=r(29),l=r(17),c=r(97);function h(){var e=o.dom.window;e._mutationObserverMicrotaskQueued||(e._mutationObserverMicrotaskQueued=!0,Promise.resolve().then((function(){p()})))}function p(){var e,t,r,i,u=o.dom.window;u._mutationObserverMicrotaskQueued=!1;var l=s.set.clone(u._mutationObservers),h=s.set.clone(u._signalSlots);s.set.empty(u._signalSlots);var p=function(e){var t=s.list.clone(e._recordQueue);s.list.empty(e._recordQueue);for(var r=0;r<e._nodeList.length;r++){var n=e._nodeList[r];s.list.remove(n._registeredObserverList,(function(t){return a.Guard.isTransientRegisteredObserver(t)&&t.observer===e}))}if(!s.list.isEmpty(t))try{e._callback.call(e,t,e)}catch(e){}};try{for(var f=n(l),d=f.next();!d.done;d=f.next()){p(d.value)}}catch(t){e={error:t}}finally{try{d&&!d.done&&(t=f.return)&&t.call(f)}finally{if(e)throw e.error}}if(o.dom.features.slots)try{for(var m=n(h),y=m.next();!y.done;y=m.next()){var v=y.value;c.event_fireAnEvent(\"slotchange\",v,void 0,{bubbles:!0})}}catch(e){r={error:e}}finally{try{y&&!y.done&&(i=m.return)&&i.call(m)}finally{if(r)throw r.error}}}function f(e,t,r,o,a,s,c,p,f){for(var d,m,y=new Map,v=l.tree_getFirstAncestorNode(t,!0);null!==v;){for(var _=0;_<v._registeredObserverList.length;_++){var g=v._registeredObserverList[_],b=g.options;if((v===t||b.subtree)&&((\"attributes\"!==e||b.attributes)&&(\"attributes\"!==e||!b.attributeFilter||b.attributeFilter.indexOf(r||\"\")&&null===o)&&(\"characterData\"!==e||b.characterData)&&(\"childList\"!==e||b.childList))){var x=g.observer;y.has(x)||y.set(x,null),(\"attributes\"===e&&b.attributeOldValue||\"characterData\"===e&&b.characterDataOldValue)&&y.set(x,a)}}v=l.tree_getNextAncestorNode(t,v,!0)}try{for(var w=n(y),E=w.next();!E.done;E=w.next()){var D=i(E.value,2),S=D[0],C=D[1],A=u.create_mutationRecord(e,t,u.create_nodeListStatic(t,s),u.create_nodeListStatic(t,c),p,f,r,o,C);S._recordQueue.push(A)}}catch(e){d={error:e}}finally{try{E&&!E.done&&(m=w.return)&&m.call(w)}finally{if(d)throw d.error}}h()}t.observer_queueAMutationObserverMicrotask=h,t.observer_notifyMutationObservers=p,t.observer_queueMutationRecord=f,t.observer_queueTreeMutationRecord=function(e,t,r,n,i){f(\"childList\",e,null,null,null,t,r,n,i)},t.observer_queueAttributeMutationRecord=function(e,t,r,n){f(\"attributes\",e,t,r,n,[],[],null,null)}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(6),i=r(7),o=r(3),a=r(9),s=r(29),u=r(73),l=r(51),c=r(30),h=r(37),p=r(106);function f(e,t,r){n.dom.features.mutationObservers&&l.observer_queueAttributeMutationRecord(t,e._localName,e._namespace,e._value),n.dom.features.customElements&&o.Guard.isCustomElementNode(t)&&u.customElement_enqueueACustomElementCallbackReaction(t,\"attributeChangedCallback\",[e._localName,e._value,r,e._namespace]),n.dom.features.steps&&c.dom_runAttributeChangeSteps(t,e._localName,e._value,r,e._namespace),e._value=r}function d(e,t){n.dom.features.mutationObservers&&l.observer_queueAttributeMutationRecord(t,e._localName,e._namespace,null),n.dom.features.customElements&&o.Guard.isCustomElementNode(t)&&u.customElement_enqueueACustomElementCallbackReaction(t,\"attributeChangedCallback\",[e._localName,null,e._value,e._namespace]),n.dom.features.steps&&c.dom_runAttributeChangeSteps(t,e._localName,null,e._value,e._namespace),t._attributeList._asArray().push(e),e._element=t,t._nodeDocument._hasNamespaces||null===e._namespace&&null===e._namespacePrefix&&\"xmlns\"!==e._localName||(t._nodeDocument._hasNamespaces=!0)}function m(e,t){n.dom.features.mutationObservers&&l.observer_queueAttributeMutationRecord(t,e._localName,e._namespace,e._value),n.dom.features.customElements&&o.Guard.isCustomElementNode(t)&&u.customElement_enqueueACustomElementCallbackReaction(t,\"attributeChangedCallback\",[e._localName,e._value,null,e._namespace]),n.dom.features.steps&&c.dom_runAttributeChangeSteps(t,e._localName,e._value,null,e._namespace);var r=t._attributeList._asArray().indexOf(e);t._attributeList._asArray().splice(r,1),e._element=null}function y(e,t,r){n.dom.features.mutationObservers&&l.observer_queueAttributeMutationRecord(r,e._localName,e._namespace,e._value),n.dom.features.customElements&&o.Guard.isCustomElementNode(r)&&u.customElement_enqueueACustomElementCallbackReaction(r,\"attributeChangedCallback\",[e._localName,e._value,t._value,e._namespace]),n.dom.features.steps&&c.dom_runAttributeChangeSteps(r,e._localName,e._value,t._value,e._namespace);var i=r._attributeList._asArray().indexOf(e);-1!==i&&(r._attributeList._asArray()[i]=t),e._element=null,t._element=r,r._nodeDocument._hasNamespaces||null===t._namespace&&null===t._namespacePrefix&&\"xmlns\"!==t._localName||(r._nodeDocument._hasNamespaces=!0)}function v(e,t){return t._namespace===i.namespace.HTML&&\"html\"===t._nodeDocument._type&&(e=e.toLowerCase()),t._attributeList._asArray().find((function(t){return t._qualifiedName===e}))||null}function _(e,t,r){var n=e||null;return r._attributeList._asArray().find((function(e){return e._namespace===n&&e._localName===t}))||null}t.element_has=function(e,t){return-1!==t._attributeList._asArray().indexOf(e)},t.element_change=f,t.element_append=d,t.element_remove=m,t.element_replace=y,t.element_getAnAttributeByName=v,t.element_getAnAttributeByNamespaceAndLocalName=_,t.element_getAnAttributeValue=function(e,t,r){void 0===r&&(r=\"\");var n=_(r,t,e);return null===n?\"\":n._value},t.element_setAnAttribute=function(e,t){if(null!==e._element&&e._element!==t)throw new a.InUseAttributeError(\"This attribute already exists in the document: \"+e._qualifiedName+\" as a child of \"+e._element._qualifiedName+\".\");var r=_(e._namespace||\"\",e._localName,t);return r===e?e:(null!==r?y(r,e,t):d(e,t),r)},t.element_setAnAttributeValue=function(e,t,r,n,i){void 0===n&&(n=null),void 0===i&&(i=null);var o=_(i||\"\",t,e);if(null===o){var a=s.create_attr(e._nodeDocument,t);return a._namespace=i,a._namespacePrefix=n,a._value=r,void d(a,e)}f(o,e,r)},t.element_removeAnAttributeByName=function(e,t){var r=v(e,t);return null!==r&&m(r,t),r},t.element_removeAnAttributeByNamespaceAndLocalName=function(e,t,r){var n=_(e,t,r);return null!==n&&m(n,r),n},t.element_createAnElement=function(e,t,r,o,l,c){void 0===o&&(o=null),void 0===l&&(l=null),void 0===c&&(c=!1);var h=null;if(!n.dom.features.customElements)return(h=s.create_element(e,t,r,o))._customElementState=\"uncustomized\",h._customElementDefinition=null,h._is=l,h;var f=u.customElement_lookUpACustomElementDefinition(e,r,t,l);if(null!==f&&f.name!==f.localName)(h=new(p.document_elementInterface(t,i.namespace.HTML)))._localName=t,h._namespace=i.namespace.HTML,h._namespacePrefix=o,h._customElementState=\"undefined\",h._customElementDefinition=null,h._is=l,h._nodeDocument=e,c?u.customElement_upgrade(f,h):u.customElement_enqueueACustomElementUpgradeReaction(h,f);else if(null!==f)if(c)try{var d=new(0,f.constructor);if(console.assert(void 0!==d._customElementState),console.assert(void 0!==d._customElementDefinition),console.assert(d._namespace===i.namespace.HTML),0!==d._attributeList.length)throw new a.NotSupportedError(\"Custom element already has attributes.\");if(0!==d._children.size)throw new a.NotSupportedError(\"Custom element already has child nodes.\");if(null!==d._parent)throw new a.NotSupportedError(\"Custom element already has a parent node.\");if(d._nodeDocument!==e)throw new a.NotSupportedError(\"Custom element is already in a document.\");if(d._localName!==t)throw new a.NotSupportedError(\"Custom element has a different local name.\");d._namespacePrefix=o,d._is=null}catch(r){(h=s.create_htmlUnknownElement(e,t,i.namespace.HTML,o))._customElementState=\"failed\",h._customElementDefinition=null,h._is=null}else(h=s.create_htmlElement(e,t,i.namespace.HTML,o))._customElementState=\"undefined\",h._customElementDefinition=null,h._is=null,u.customElement_enqueueACustomElementUpgradeReaction(h,f);else{(h=new(p.document_elementInterface(t,r)))._localName=t,h._namespace=r,h._namespacePrefix=o,h._customElementState=\"uncustomized\",h._customElementDefinition=null,h._is=l,h._nodeDocument=e,r!==i.namespace.HTML||null===l&&!u.customElement_isValidCustomElementName(t)||(h._customElementState=\"undefined\")}if(null===h)throw new Error(\"Unable to create element.\");return h},t.element_insertAdjacent=function(e,t,r){switch(t.toLowerCase()){case\"beforebegin\":return null===e._parent?null:h.mutation_preInsert(r,e._parent,e);case\"afterbegin\":return h.mutation_preInsert(r,e,e._firstChild);case\"beforeend\":return h.mutation_preInsert(r,e,null);case\"afterend\":return null===e._parent?null:h.mutation_preInsert(r,e._parent,e._nextSibling);default:throw new a.SyntaxError('Invalid \\'where\\' argument. \"beforebegin\", \"afterbegin\", \"beforeend\" or \"afterend\" expected')}}},function(e,t,r){\"use strict\";function n(e,t){Error.call(this),this.name=\"YAMLException\",this.reason=e,this.mark=t,this.message=(this.reason||\"(unknown reason)\")+(this.mark?\" \"+this.mark.toString():\"\"),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||\"\"}n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n.prototype.toString=function(e){var t=this.name+\": \";return t+=this.reason||\"(unknown reason)\",!e&&this.mark&&(t+=\" \"+this.mark.toString()),t},e.exports=n},function(e,t,r){\"use strict\";var n=r(39);e.exports=new n({include:[r(181)],implicit:[r(293),r(294)],explicit:[r(295),r(296),r(297),r(298)]})},function(e,t,r){var n=r(16),i=r(79),o=r(40),a=r(24),s=r(56),u=r(14),l=r(115),c=Object.getOwnPropertyDescriptor;t.f=n?c:function(e,t){if(e=a(e),t=s(t,!0),l)try{return c(e,t)}catch(e){}if(u(e,t))return o(!i.f.call(e,t),e[t])}},function(e,t,r){var n=r(13);e.exports=function(e,t){if(!n(e))return e;var r,i;if(t&&\"function\"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;if(\"function\"==typeof(r=e.valueOf)&&!n(i=r.call(e)))return i;if(!t&&\"function\"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;throw TypeError(\"Can't convert object to primitive value\")}},function(e,t,r){var n=r(81),i=r(58),o=n(\"keys\");e.exports=function(e){return o[e]||(o[e]=i(e))}},function(e,t){var r=0,n=Math.random();e.exports=function(e){return\"Symbol(\"+String(void 0===e?\"\":e)+\")_\"+(++r+n).toString(36)}},function(e,t,r){var n=r(42);e.exports=Array.isArray||function(e){return\"Array\"==n(e)}},function(e,t,r){var n,i=r(18),o=r(188),a=r(84),s=r(45),u=r(189),l=r(116),c=r(57),h=c(\"IE_PROTO\"),p=function(){},f=function(e){return\"<script>\"+e+\"<\\/script>\"},d=function(){try{n=document.domain&&new ActiveXObject(\"htmlfile\")}catch(e){}var e,t;d=n?function(e){e.write(f(\"\")),e.close();var t=e.parentWindow.Object;return e=null,t}(n):((t=l(\"iframe\")).style.display=\"none\",u.appendChild(t),t.src=String(\"javascript:\"),(e=t.contentWindow.document).open(),e.write(f(\"document.F=Object\")),e.close(),e.F);for(var r=a.length;r--;)delete d.prototype[a[r]];return d()};s[h]=!0,e.exports=Object.create||function(e,t){var r;return null!==e?(p.prototype=i(e),r=new p,p.prototype=null,r[h]=e):r=d(),void 0===t?r:o(r,t)}},function(e,t,r){var n=r(121),i=r(84);e.exports=Object.keys||function(e){return n(e,i)}},function(e,t,r){var n=r(15).f,i=r(14),o=r(5)(\"toStringTag\");e.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,o)&&n(e,o,{configurable:!0,value:t})}},function(e,t,r){var n=r(8),i=r(5),o=r(129),a=i(\"species\");e.exports=function(e){return o>=51||!n((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,r){\"use strict\";var n=r(4),i=r(122).indexOf,o=r(48),a=r(28),s=[].indexOf,u=!!s&&1/[1].indexOf(1,-0)<0,l=o(\"indexOf\"),c=a(\"indexOf\",{ACCESSORS:!0,1:0});n({target:\"Array\",proto:!0,forced:u||!l||!c},{indexOf:function(e){return u?s.apply(this,arguments)||0:i(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){var n=r(16),i=r(15).f,o=Function.prototype,a=o.toString,s=/^\\s*function ([^ (]*)/;n&&!(\"name\"in o)&&i(o,\"name\",{configurable:!0,get:function(){try{return a.call(this).match(s)[1]}catch(e){return\"\"}}})},function(e,t,r){\"use strict\";var n=r(25),i=r(18),o=r(8),a=r(136),s=RegExp.prototype,u=s.toString,l=o((function(){return\"/a/b\"!=u.call({source:\"a\",flags:\"b\"})})),c=\"toString\"!=u.name;(l||c)&&n(RegExp.prototype,\"toString\",(function(){var e=i(this),t=String(e.source),r=e.flags;return\"/\"+t+\"/\"+String(void 0===r&&e instanceof RegExp&&!(\"flags\"in s)?a.call(e):r)}),{unsafe:!0})},function(e,t,r){\"use strict\";r(31),r(32),r(33),r(19),r(138),r(20),r(66),r(22),r(23);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(1),s=r(2),u=function(e){function t(t,r){var n=e.call(this,t)||this;return n._writerOptions=a.applyDefaults(r,{format:\"object\",wellFormed:!1,group:!1,verbose:!1}),n}return i(t,e),t.prototype.serialize=function(e){return this._currentList=[],this._currentIndex=0,this._listRegister=[this._currentList],this.serializeNode(e,this._writerOptions.wellFormed),this._process(this._currentList,this._writerOptions)},t.prototype._process=function(e,t){var r,n,i,o,u,l,c;if(0===e.length)return{};for(var h={},p=!1,f=0,d=0,m=0,y=0,v=0;v<e.length;v++){var _=e[v];switch(I=Object.keys(_)[0]){case\"@\":continue;case\"#\":f++;break;case\"!\":d++;break;case\"?\":m++;break;case\"$\":y++;break;default:h[I]?p=!0:h[I]=!0}}var g=this._getAttrKey(),b=this._getNodeKey(s.NodeType.Text),x=this._getNodeKey(s.NodeType.Comment),w=this._getNodeKey(s.NodeType.ProcessingInstruction),E=this._getNodeKey(s.NodeType.CData);if(1===f&&1===e.length&&a.isString(e[0][\"#\"]))return e[0][\"#\"];if(p){var D={};for(v=0;v<e.length;v++){_=e[v];if(\"@\"===(I=Object.keys(_)[0])){var S=_[\"@\"];1===(L=Object.keys(S)).length?D[g+L[0]]=S[L[0]]:D[g]=_[\"@\"]}}var C=[];for(v=0;v<e.length;v++){_=e[v];switch(I=Object.keys(_)[0]){case\"@\":break;case\"#\":C.push(((r={})[b]=_[\"#\"],r));break;case\"!\":C.push(((n={})[x]=_[\"!\"],n));break;case\"?\":C.push(((i={})[w]=_[\"?\"],i));break;case\"$\":C.push(((o={})[E]=_.$,o));break;default:if(0!==(B=_)[I].length&&a.isArray(B[I][0])){for(var A=[],N=B[I],T=0;T<N.length;T++)A.push(this._process(N[T],t));C.push(((u={})[I]=A,u))}else t.verbose?C.push(((l={})[I]=[this._process(B[I],t)],l)):C.push(((c={})[I]=this._process(B[I],t),c))}}return D[b]=C,D}var O=1,F=1,k=1,P=1;for(D={},v=0;v<e.length;v++){var I;_=e[v];switch(I=Object.keys(_)[0]){case\"@\":S=_[\"@\"];var L=Object.keys(S);if(t.group&&1!==L.length)D[g]=S;else for(var M in S)D[g+M]=S[M];break;case\"#\":O=this._processSpecItem(_[\"#\"],D,t.group,b,f,O);break;case\"!\":F=this._processSpecItem(_[\"!\"],D,t.group,x,d,F);break;case\"?\":k=this._processSpecItem(_[\"?\"],D,t.group,w,m,k);break;case\"$\":P=this._processSpecItem(_.$,D,t.group,E,y,P);break;default:var B;if(0!==(B=_)[I].length&&a.isArray(B[I][0])){A=[],N=B[I];for(var j=0;j<N.length;j++)A.push(this._process(N[j],t));D[I]=A}else t.verbose?D[I]=[this._process(B[I],t)]:D[I]=this._process(B[I],t)}}return D},t.prototype._processSpecItem=function(e,t,r,n,i,s){var u,l;if(!r&&a.isArray(e)&&i+e.length>2)try{for(var c=o(e),h=c.next();!h.done;h=c.next()){var p=h.value;t[n+(s++).toString()]=p}}catch(e){u={error:e}}finally{try{h&&!h.done&&(l=c.return)&&l.call(c)}finally{if(u)throw u.error}}else t[i>1?n+(s++).toString():n]=e;return s},t.prototype.beginElement=function(e){var t,r,n=[];if(0===this._currentList.length)this._currentList.push(((t={})[e]=n,t));else{var i=this._currentList[this._currentList.length-1];if(this._isElementNode(i,e))if(0!==i[e].length&&a.isArray(i[e][0]))i[e].push(n);else i[e]=[i[e],n];else this._currentList.push(((r={})[e]=n,r))}this._currentIndex++,this._listRegister.length>this._currentIndex?this._listRegister[this._currentIndex]=n:this._listRegister.push(n),this._currentList=n},t.prototype.endElement=function(){this._currentList=this._listRegister[--this._currentIndex]},t.prototype.attribute=function(e,t){var r,n;if(0===this._currentList.length)this._currentList.push({\"@\":(r={},r[e]=t,r)});else{var i=this._currentList[this._currentList.length-1];this._isAttrNode(i)?i[\"@\"][e]=t:this._currentList.push({\"@\":(n={},n[e]=t,n)})}},t.prototype.comment=function(e){if(0===this._currentList.length)this._currentList.push({\"!\":e});else{var t=this._currentList[this._currentList.length-1];this._isCommentNode(t)?a.isArray(t[\"!\"])?t[\"!\"].push(e):t[\"!\"]=[t[\"!\"],e]:this._currentList.push({\"!\":e})}},t.prototype.text=function(e){if(0===this._currentList.length)this._currentList.push({\"#\":e});else{var t=this._currentList[this._currentList.length-1];this._isTextNode(t)?a.isArray(t[\"#\"])?t[\"#\"].push(e):t[\"#\"]=[t[\"#\"],e]:this._currentList.push({\"#\":e})}},t.prototype.instruction=function(e,t){var r=\"\"===t?e:e+\" \"+t;if(0===this._currentList.length)this._currentList.push({\"?\":r});else{var n=this._currentList[this._currentList.length-1];this._isInstructionNode(n)?a.isArray(n[\"?\"])?n[\"?\"].push(r):n[\"?\"]=[n[\"?\"],r]:this._currentList.push({\"?\":r})}},t.prototype.cdata=function(e){if(0===this._currentList.length)this._currentList.push({$:e});else{var t=this._currentList[this._currentList.length-1];this._isCDATANode(t)?a.isArray(t.$)?t.$.push(e):t.$=[t.$,e]:this._currentList.push({$:e})}},t.prototype._isAttrNode=function(e){return\"@\"in e},t.prototype._isTextNode=function(e){return\"#\"in e},t.prototype._isCommentNode=function(e){return\"!\"in e},t.prototype._isInstructionNode=function(e){return\"?\"in e},t.prototype._isCDATANode=function(e){return\"$\"in e},t.prototype._isElementNode=function(e,t){return t in e},t.prototype._getAttrKey=function(){return this._builderOptions.convert.att},t.prototype._getNodeKey=function(e){switch(e){case s.NodeType.Comment:return this._builderOptions.convert.comment;case s.NodeType.Text:return this._builderOptions.convert.text;case s.NodeType.ProcessingInstruction:return this._builderOptions.convert.ins;case s.NodeType.CData:return this._builderOptions.convert.cdata;default:throw new Error(\"Invalid node type.\")}},t}(r(50).BaseWriter);t.ObjectWriter=u},function(e,t,r){\"use strict\";var n=r(4),i=r(93);n({target:\"RegExp\",proto:!0,forced:/./.exec!==i},{exec:i})},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this._items={},this._nullItems={}}return e.prototype.set=function(e,t){null===e?this._nullItems[t]=!0:(this._items[e]||(this._items[e]={}),this._items[e][t]=!0)},e.prototype.has=function(e,t){return null===e?!0===this._nullItems[t]:!!this._items[e]&&!0===this._items[e][t]},e}();t.LocalNameSet=n},function(e,t,r){\"use strict\";var n=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(9),o=r(3),a=r(0),s=function(){function e(){}return Object.defineProperty(e.prototype,\"_eventListenerList\",{get:function(){return this.__eventListenerList||(this.__eventListenerList=[])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"_eventHandlerMap\",{get:function(){return this.__eventHandlerMap||(this.__eventHandlerMap={})},enumerable:!0,configurable:!0}),e.prototype.addEventListener=function(e,t,r){void 0===r&&(r={passive:!1,once:!1,capture:!1});var i,s=n(a.eventTarget_flattenMore(r),3),u=s[0],l=s[1],c=s[2];t&&(i=o.Guard.isEventListener(t)?t:{handleEvent:t},a.eventTarget_addEventListener(this,{type:e,callback:i,capture:u,passive:l,once:c,removed:!1}))},e.prototype.removeEventListener=function(e,t,r){void 0===r&&(r={capture:!1});var n=a.eventTarget_flatten(r);if(t)for(var i=0;i<this._eventListenerList.length;i++){var s=this._eventListenerList[i];if(s.type===e&&s.capture===n){if(o.Guard.isEventListener(t)&&s.callback===t){a.eventTarget_removeEventListener(this,s,i);break}if(t&&s.callback.handleEvent===t){a.eventTarget_removeEventListener(this,s,i);break}}}},e.prototype.dispatchEvent=function(e){if(e._dispatchFlag||!e._initializedFlag)throw new i.InvalidStateError;return e._isTrusted=!1,a.event_dispatch(e,this)},e.prototype._getTheParent=function(e){return null},e}();t.EventTargetImpl=s},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(34),a=r(0),s=function(e){function t(t){var r=e.call(this)||this;return r._data=t,r}return i(t,e),Object.defineProperty(t.prototype,\"data\",{get:function(){return this._data},set:function(e){a.characterData_replaceData(this,0,this._data.length,e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"length\",{get:function(){return this._data.length},enumerable:!0,configurable:!0}),t.prototype.substringData=function(e,t){return a.characterData_substringData(this,e,t)},t.prototype.appendData=function(e){return a.characterData_replaceData(this,this._data.length,0,e)},t.prototype.insertData=function(e,t){a.characterData_replaceData(this,e,0,t)},t.prototype.deleteData=function(e,t){a.characterData_replaceData(this,e,t,\"\")},t.prototype.replaceData=function(e,t,r){a.characterData_replaceData(this,e,t,r)},Object.defineProperty(t.prototype,\"previousElementSibling\",{get:function(){throw new Error(\"Mixin: NonDocumentTypeChildNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"nextElementSibling\",{get:function(){throw new Error(\"Mixin: NonDocumentTypeChildNode not implemented.\")},enumerable:!0,configurable:!0}),t.prototype.before=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ChildNode not implemented.\")},t.prototype.after=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ChildNode not implemented.\")},t.prototype.replaceWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ChildNode not implemented.\")},t.prototype.remove=function(){throw new Error(\"Mixin: ChildNode not implemented.\")},t}(o.NodeImpl);t.CharacterDataImpl=s},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},i=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},o=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(6),s=r(3),u=r(1),l=r(17),c=r(51);function h(e){a.dom.window._signalSlots.add(e),c.observer_queueAMutationObserverMicrotask()}function p(e,t){void 0===t&&(t=!1);var r=s.Cast.asNode(e)._parent;if(null===r)return null;var n=r._shadowRoot||null;if(null===n)return null;if(t&&\"open\"!==n._mode)return null;for(var i=l.tree_getFirstDescendantNode(n,!1,!0,(function(e){return s.Guard.isSlot(e)}));null!==i;){if(i._name===e._name)return i;i=l.tree_getNextDescendantNode(n,i,!1,!0,(function(e){return s.Guard.isSlot(e)}))}return null}function f(e){var t,r,i=[],o=l.tree_rootNode(e);if(!s.Guard.isShadowRoot(o))return i;var a=o._host;try{for(var u=n(a._children),c=u.next();!c.done;c=u.next()){var h=c.value;if(s.Guard.isSlotable(h))p(h)===e&&i.push(h)}}catch(e){t={error:e}}finally{try{c&&!c.done&&(r=u.return)&&r.call(u)}finally{if(t)throw t.error}}return i}function d(e){var t,r,i=f(e);if(i.length===e._assignedNodes.length){for(var o=!0,a=0;a<i.length;a++)if(i[a]!==e._assignedNodes[a]){o=!1;break}o||h(e)}e._assignedNodes=i;try{for(var s=n(i),u=s.next();!u.done;u=s.next()){u.value._assignedSlot=e}}catch(e){t={error:e}}finally{try{u&&!u.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}}t.shadowTree_signalASlotChange=h,t.shadowTree_isConnected=function(e){return s.Guard.isDocumentNode(l.tree_rootNode(e,!0))},t.shadowTree_isAssigned=function(e){return null!==e._assignedSlot},t.shadowTree_findASlot=p,t.shadowTree_findSlotables=f,t.shadowTree_findFlattenedSlotables=function e(t){var r,i,a,c,h=[],p=l.tree_rootNode(t);if(!s.Guard.isShadowRoot(p))return h;var d=f(t);if(u.isEmpty(d))try{for(var m=n(t._children),y=m.next();!y.done;y=m.next()){var v=y.value;s.Guard.isSlotable(v)&&d.push(v)}}catch(e){r={error:e}}finally{try{y&&!y.done&&(i=m.return)&&i.call(m)}finally{if(r)throw r.error}}try{for(var _=n(d),g=_.next();!g.done;g=_.next()){var b=g.value;if(s.Guard.isSlot(b)&&s.Guard.isShadowRoot(l.tree_rootNode(b))){var x=e(b);h.push.apply(h,o(x))}else h.push(b)}}catch(e){a={error:e}}finally{try{g&&!g.done&&(c=_.return)&&c.call(_)}finally{if(a)throw a.error}}return h},t.shadowTree_assignSlotables=d,t.shadowTree_assignSlotablesForATree=function(e){for(var t=l.tree_getFirstDescendantNode(e,!0,!1,(function(e){return s.Guard.isSlot(e)}));null!==t;)d(t),t=l.tree_getNextDescendantNode(e,t,!0,!1,(function(e){return s.Guard.isSlot(e)}))},t.shadowTree_assignASlot=function(e){var t=p(e);null!==t&&d(t)}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=/[a-z]([\\0-\\t\\x2D\\._a-z\\xB7\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u203F\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])*-([\\0-\\t\\x2D\\._a-z\\xB7\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u203F\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])*/,i=new Set([\"annotation-xml\",\"color-profile\",\"font-face\",\"font-face-src\",\"font-face-uri\",\"font-face-format\",\"font-face-name\",\"missing-glyph\"]),o=new Set([\"article\",\"aside\",\"blockquote\",\"body\",\"div\",\"footer\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"main\",\"nav\",\"p\",\"section\",\"span\"]),a=new Set([\"area\",\"base\",\"basefont\",\"bgsound\",\"br\",\"col\",\"embed\",\"frame\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"]),s=new Set([\"article\",\"aside\",\"blockquote\",\"body\",\"div\",\"footer\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"main\",\"nav\",\"p\",\"section\",\"span\"]);t.customElement_isValidCustomElementName=function(e){return!!n.test(e)&&!i.has(e)},t.customElement_isValidElementName=function(e){return o.has(e)},t.customElement_isVoidElementName=function(e){return a.has(e)},t.customElement_isValidShadowHostName=function(e){return s.has(e)},t.customElement_enqueueACustomElementUpgradeReaction=function(e,t){},t.customElement_enqueueACustomElementCallbackReaction=function(e,t,r){},t.customElement_upgrade=function(e,t){},t.customElement_tryToUpgrade=function(e){},t.customElement_lookUpACustomElementDefinition=function(e,t,r,n){return null}},function(e,t,r){r(4)({target:\"String\",proto:!0},{repeat:r(259)})},function(e,t,r){\"use strict\";r(278),r(68),r(179),r(94),Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(109),i=function(){function e(e){this._builderOptions=e,e.parser&&Object.assign(this,e.parser)}return e.prototype._docType=function(e,t,r,n){return e.dtd({name:t,pubID:r,sysID:n})},e.prototype._comment=function(e,t){return e.com(t)},e.prototype._text=function(e,t){return e.txt(t)},e.prototype._instruction=function(e,t,r){return e.ins(t,r)},e.prototype._cdata=function(e,t){return e.dat(t)},e.prototype._element=function(e,t,r){return void 0===t?e.ele(r):e.ele(t,r)},e.prototype._attribute=function(e,t,r,n){return void 0===t?e.att(r,n):e.att(t,r,n)},e.prototype._sanitize=function(e){return n.sanitizeInput(e,this._builderOptions.invalidCharReplacement)},e.prototype._decodeText=function(t){return null==t?t:t.replace(/&(quot|amp|apos|lt|gt);/g,(function(t,r){return e._entityTable[r]})).replace(/&#(?:x([a-fA-F0-9]+)|([0-9]+));/g,(function(e,t,r){return String.fromCodePoint(parseInt(t||r,t?16:10))}))},e.prototype._decodeAttributeValue=function(e){return this._decodeText(e)},e.prototype.parse=function(e,t){return this._parse(e,t)},e.prototype.docType=function(e,t,r,n){return this._docType(e,t,r,n)},e.prototype.comment=function(e,t){return this._comment(e,t)},e.prototype.text=function(e,t){return this._text(e,t)},e.prototype.instruction=function(e,t,r){return this._instruction(e,t,r)},e.prototype.cdata=function(e,t){return this._cdata(e,t)},e.prototype.element=function(e,t,r){return this._element(e,t,r)},e.prototype.attribute=function(e,t,r,n){return this._attribute(e,t,r,n)},e.prototype.sanitize=function(e){return this._sanitize(e)},e._entityTable={lt:\"<\",gt:\">\",amp:\"&\",quot:'\"',apos:\"'\"},e}();t.BaseReader=i},function(e,t,r){\"use strict\";var n=r(39);e.exports=n.DEFAULT=new n({include:[r(54)],explicit:[r(299),r(300),r(301)]})},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(185);t.XMLBuilderImpl=n.XMLBuilderImpl;var i=r(304);t.XMLBuilderCBImpl=i.XMLBuilderCBImpl;var o=r(183);t.builder=o.builder,t.create=o.create,t.fragment=o.fragment,t.convert=o.convert;var a=r(309);t.createCB=a.createCB,t.fragmentCB=a.fragmentCB},function(e,t){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(r=window)}e.exports=r},function(e,t,r){\"use strict\";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,o=i&&!n.call({1:2},1);t.f=o?function(e){var t=i(this,e);return!!t&&t.enumerable}:n},function(e,t,r){var n=r(11),i=r(21);e.exports=function(e,t){try{i(n,e,t)}catch(r){n[e]=t}return t}},function(e,t,r){var n=r(44),i=r(118);(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})(\"versions\",[]).push({version:\"3.6.5\",mode:n?\"pure\":\"global\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})},function(e,t,r){var n=r(121),i=r(84).concat(\"length\",\"prototype\");t.f=Object.getOwnPropertyNames||function(e){return n(e,i)}},function(e,t,r){var n=r(47),i=Math.max,o=Math.min;e.exports=function(e,t){var r=n(e);return r<0?i(r+t,0):o(r,t)}},function(e,t){e.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,r){var n=r(8);e.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},function(e,t,r){var n=r(127);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,r){\"use strict\";var n=r(4),i=r(195),o=r(132),a=r(133),s=r(62),u=r(21),l=r(25),c=r(5),h=r(44),p=r(49),f=r(131),d=f.IteratorPrototype,m=f.BUGGY_SAFARI_ITERATORS,y=c(\"iterator\"),v=function(){return this};e.exports=function(e,t,r,c,f,_,g){i(r,t,c);var b,x,w,E=function(e){if(e===f&&N)return N;if(!m&&e in C)return C[e];switch(e){case\"keys\":case\"values\":case\"entries\":return function(){return new r(this,e)}}return function(){return new r(this)}},D=t+\" Iterator\",S=!1,C=e.prototype,A=C[y]||C[\"@@iterator\"]||f&&C[f],N=!m&&A||E(f),T=\"Array\"==t&&C.entries||A;if(T&&(b=o(T.call(new e)),d!==Object.prototype&&b.next&&(h||o(b)===d||(a?a(b,d):\"function\"!=typeof b[y]&&u(b,y,v)),s(b,D,!0,!0),h&&(p[D]=v))),\"values\"==f&&A&&\"values\"!==A.name&&(S=!0,N=function(){return A.call(this)}),h&&!g||C[y]===N||u(C,y,N),p[t]=N,f)if(x={values:E(\"values\"),keys:_?N:E(\"keys\"),entries:E(\"entries\")},g)for(w in x)(m||S||!(w in C))&&l(C,w,x[w]);else n({target:t,proto:!0,forced:m||S},x);return x}},function(e,t,r){\"use strict\";var n=r(4),i=r(13),o=r(59),a=r(83),s=r(26),u=r(24),l=r(134),c=r(5),h=r(63),p=r(28),f=h(\"slice\"),d=p(\"slice\",{ACCESSORS:!0,0:0,1:2}),m=c(\"species\"),y=[].slice,v=Math.max;n({target:\"Array\",proto:!0,forced:!f||!d},{slice:function(e,t){var r,n,c,h=u(this),p=s(h.length),f=a(e,p),d=a(void 0===t?p:t,p);if(o(h)&&(\"function\"!=typeof(r=h.constructor)||r!==Array&&!o(r.prototype)?i(r)&&null===(r=r[m])&&(r=void 0):r=void 0,r===Array||void 0===r))return y.call(h,f,d);for(n=new(void 0===r?Array:r)(v(d-f,0)),c=0;f<d;f++,c++)f in h&&l(n,c,h[f]);return n.length=c,n}})},function(e,t,r){var n={};n[r(5)(\"toStringTag\")]=\"z\",e.exports=\"[object z]\"===String(n)},function(e,t,r){\"use strict\";r(19),r(138),r(20),r(92),r(22),r(23),Object.defineProperty(t,\"__esModule\",{value:!0}),t.DefaultBuilderOptions={version:\"1.0\",encoding:void 0,standalone:void 0,keepNullNodes:!1,keepNullAttributes:!1,ignoreConverters:!1,convert:{att:\"@\",ins:\"?\",text:\"#\",cdata:\"$\",comment:\"!\"},defaultNamespace:{ele:void 0,att:void 0},namespaceAlias:{html:\"http://www.w3.org/1999/xhtml\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\",xlink:\"http://www.w3.org/1999/xlink\"},invalidCharReplacement:void 0,parser:void 0},t.XMLBuilderOptionKeys=new Set(Object.keys(t.DefaultBuilderOptions)),t.DefaultXMLBuilderCBOptions={format:\"xml\",wellFormed:!1,prettyPrint:!1,indent:\"  \",newline:\"\\n\",offset:0,width:0,allowEmptyTags:!1,spaceBeforeSlash:!1,keepNullNodes:!1,keepNullAttributes:!1,ignoreConverters:!1,convert:{att:\"@\",ins:\"?\",text:\"#\",cdata:\"$\",comment:\"!\"},defaultNamespace:{ele:void 0,att:void 0},namespaceAlias:{html:\"http://www.w3.org/1999/xhtml\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\",xlink:\"http://www.w3.org/1999/xlink\"}}},function(e,t,r){\"use strict\";var n=r(139),i=r(143);e.exports=n(\"Set\",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),i)},function(e,t,r){\"use strict\";var n,i,o=r(136),a=r(221),s=RegExp.prototype.exec,u=String.prototype.replace,l=s,c=(n=/a/,i=/b*/g,s.call(n,\"a\"),s.call(i,\"a\"),0!==n.lastIndex||0!==i.lastIndex),h=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec(\"\")[1];(c||p||h)&&(l=function(e){var t,r,n,i,a=this,l=h&&a.sticky,f=o.call(a),d=a.source,m=0,y=e;return l&&(-1===(f=f.replace(\"y\",\"\")).indexOf(\"g\")&&(f+=\"g\"),y=String(e).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&\"\\n\"!==e[a.lastIndex-1])&&(d=\"(?: \"+d+\")\",y=\" \"+y,m++),r=new RegExp(\"^(?:\"+d+\")\",f)),p&&(r=new RegExp(\"^\"+d+\"$(?!\\\\s)\",f)),c&&(t=a.lastIndex),n=s.call(l?r:a,y),l?n?(n.input=n.input.slice(m),n[0]=n[0].slice(m),n.index=a.lastIndex,a.lastIndex+=n[0].length):a.lastIndex=0:c&&n&&(a.lastIndex=a.global?n.index+n[0].length:t),p&&n&&n.length>1&&u.call(n[0],r,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(n[i]=void 0)})),n}),e.exports=l},function(e,t,r){\"use strict\";var n=r(225),i=r(18),o=r(27),a=r(26),s=r(47),u=r(35),l=r(226),c=r(227),h=Math.max,p=Math.min,f=Math.floor,d=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,m=/\\$([$&'`]|\\d\\d?)/g;n(\"replace\",2,(function(e,t,r,n){var y=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,v=n.REPLACE_KEEPS_$0,_=y?\"$\":\"$0\";return[function(r,n){var i=u(this),o=null==r?void 0:r[e];return void 0!==o?o.call(r,i,n):t.call(String(i),r,n)},function(e,n){if(!y&&v||\"string\"==typeof n&&-1===n.indexOf(_)){var o=r(t,e,this,n);if(o.done)return o.value}var u=i(e),f=String(this),d=\"function\"==typeof n;d||(n=String(n));var m=u.global;if(m){var b=u.unicode;u.lastIndex=0}for(var x=[];;){var w=c(u,f);if(null===w)break;if(x.push(w),!m)break;\"\"===String(w[0])&&(u.lastIndex=l(f,a(u.lastIndex),b))}for(var E,D=\"\",S=0,C=0;C<x.length;C++){w=x[C];for(var A=String(w[0]),N=h(p(s(w.index),f.length),0),T=[],O=1;O<w.length;O++)T.push(void 0===(E=w[O])?E:String(E));var F=w.groups;if(d){var k=[A].concat(T,N,f);void 0!==F&&k.push(F);var P=String(n.apply(void 0,k))}else P=g(A,f,N,T,F,n);N>=S&&(D+=f.slice(S,N)+P,S=N+A.length)}return D+f.slice(S)}];function g(e,r,n,i,a,s){var u=n+e.length,l=i.length,c=m;return void 0!==a&&(a=o(a),c=d),t.call(s,c,(function(t,o){var s;switch(o.charAt(0)){case\"$\":return\"$\";case\"&\":return e;case\"`\":return r.slice(0,n);case\"'\":return r.slice(u);case\"<\":s=a[o.slice(1,-1)];break;default:var c=+o;if(0===c)return t;if(c>l){var h=f(c/10);return 0===h?t:h<=l?void 0===i[h-1]?o.charAt(1):i[h-1]+o.charAt(1):t}s=i[c-1]}return void 0===s?\"\":s}))}}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this._items={},this._nullItems=[]}return e.prototype.copy=function(){var t=new e;for(var r in this._items)t._items[r]=this._items[r].slice(0);return t._nullItems=this._nullItems.slice(0),t},e.prototype.get=function(e,t){var r=null===t?this._nullItems:this._items[t]||null;if(null===r)return null;for(var n=null,i=0;i<r.length;i++)if((n=r[i])===e)return n;return n},e.prototype.has=function(e,t){var r=null===t?this._nullItems:this._items[t]||null;return null!==r&&-1!==r.indexOf(e)},e.prototype.hasPrefix=function(e){if(-1!==this._nullItems.indexOf(e))return!0;for(var t in this._items)if(-1!==this._items[t].indexOf(e))return!0;return!1},e.prototype.set=function(e,t){var r=null===t?this._nullItems:this._items[t]||null;null!==t&&null===r?this._items[t]=[e]:r.push(e)},e}();t.NamespacePrefixMap=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Surrogate=/[\\uD800-\\uDFFF]/,t.ScalarValue=/[\\uD800-\\uDFFF]/,t.NonCharacter=/[\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]/,t.ASCIICodePoint=/[\\u0000-\\u007F]/,t.ASCIITabOrNewLine=/[\\t\\n\\r]/,t.ASCIIWhiteSpace=/[\\t\\n\\f\\r ]/,t.C0Control=/[\\u0000-\\u001F]/,t.C0ControlOrSpace=/[\\u0000-\\u001F ]/,t.Control=/[\\u0000-\\u001F\\u007F-\\u009F]/,t.ASCIIDigit=/[0-9]/,t.ASCIIUpperHexDigit=/[0-9A-F]/,t.ASCIILowerHexDigit=/[0-9a-f]/,t.ASCIIHexDigit=/[0-9A-Fa-f]/,t.ASCIIUpperAlpha=/[A-Z]/,t.ASCIILowerAlpha=/[a-z]/,t.ASCIIAlpha=/[A-Za-z]/,t.ASCIIAlphanumeric=/[0-9A-Za-z]/},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},i=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},o=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(6),s=r(2),u=r(3),l=r(171),c=r(104),h=r(9),p=r(17),f=r(72),d=r(30);function m(e,t){void 0===t&&(t=void 0),void 0===t&&(t=null);var r=y(e,t,new Date,{});return r._isTrusted=!0,r}function y(e,t,r,n){var i=new e(\"\");return i._initializedFlag=!0,i._timeStamp=r.getTime(),Object.assign(i,n),a.dom.features.steps&&d.dom_runEventConstructingSteps(i),i}function v(e,t,r,i){var o,a,l,c;void 0===r&&(r=!1),void 0===i&&(i={value:!1});var h=!1;e._dispatchFlag=!0;var d=t;if(r){var m=t._associatedDocument;u.Guard.isDocumentNode(m)&&(d=m)}var y=null,v=p.tree_retarget(e._relatedTarget,t);if(t!==v||t===e._relatedTarget){var b=[];try{for(var x=n(e._touchTargetList),w=x.next();!w.done;w=x.next()){var E=w.value;b.push(p.tree_retarget(E,t))}}catch(e){o={error:e}}finally{try{w&&!w.done&&(a=x.return)&&a.call(x)}finally{if(o)throw o.error}}_(e,t,d,v,b,!1);var D=u.Guard.isMouseEvent(e)&&\"click\"===e._type;D&&void 0!==t._activationBehavior&&(y=t);for(var S=u.Guard.isSlotable(t)&&f.shadowTree_isAssigned(t)?t:null,C=!1,A=t._getTheParent(e);null!==A&&u.Guard.isNode(A);){if(null!==S){if(!u.Guard.isSlot(A))throw new Error(\"Parent node of a slotable should be a slot.\");S=null;var N=p.tree_rootNode(A,!0);u.Guard.isShadowRoot(N)&&\"closed\"===N._mode&&(C=!0)}u.Guard.isSlotable(A)&&f.shadowTree_isAssigned(A)&&(S=A),v=p.tree_retarget(e._relatedTarget,A),b=[];try{for(var T=(l=void 0,n(e._touchTargetList)),O=T.next();!O.done;O=T.next()){E=O.value;b.push(p.tree_retarget(E,A))}}catch(e){l={error:e}}finally{try{O&&!O.done&&(c=T.return)&&c.call(T)}finally{if(l)throw l.error}}u.Guard.isWindow(A)||u.Guard.isNode(A)&&u.Guard.isNode(t)&&p.tree_isAncestorOf(p.tree_rootNode(t,!0),A,!0,!0)?(D&&e._bubbles&&null===y&&A._activationBehavior&&(y=A),_(e,A,null,v,b,C)):A===v?A=null:(t=A,D&&null===y&&t._activationBehavior&&(y=t),_(e,A,t,v,b,C)),null!==A&&(A=A._getTheParent(e)),C=!1}for(var F=null,k=e._path,P=k.length-1;P>=0;P--){if(null!==(L=k[P]).shadowAdjustedTarget){F=L;break}}if(null!==F)if(u.Guard.isNode(F.shadowAdjustedTarget)&&u.Guard.isShadowRoot(p.tree_rootNode(F.shadowAdjustedTarget,!0)))h=!0;else if(u.Guard.isNode(F.relatedTarget)&&u.Guard.isShadowRoot(p.tree_rootNode(F.relatedTarget,!0)))h=!0;else for(var I=0;I<F.touchTargetList.length;I++){var L=F.touchTargetList[I];if(u.Guard.isNode(L)&&u.Guard.isShadowRoot(p.tree_rootNode(L,!0))){h=!0;break}}null!==y&&void 0!==y._legacyPreActivationBehavior&&y._legacyPreActivationBehavior(e);for(P=k.length-1;P>=0;P--){null!==(L=k[P]).shadowAdjustedTarget?e._eventPhase=s.EventPhase.AtTarget:e._eventPhase=s.EventPhase.Capturing,g(L,e,\"capturing\",i)}for(P=0;P<k.length;P++){if(null!==(L=k[P]).shadowAdjustedTarget)e._eventPhase=s.EventPhase.AtTarget;else{if(!e._bubbles)continue;e._eventPhase=s.EventPhase.Bubbling}g(L,e,\"bubbling\",i)}}return e._eventPhase=s.EventPhase.None,e._currentTarget=null,e._path=[],e._dispatchFlag=!1,e._stopPropagationFlag=!1,e._stopImmediatePropagationFlag=!1,h&&(e._target=null,e._relatedTarget=null,e._touchTargetList=[]),null!==y&&(e._canceledFlag||void 0===y._activationBehavior?void 0!==y._legacyCanceledActivationBehavior&&y._legacyCanceledActivationBehavior(e):y._activationBehavior(e)),!e._canceledFlag}function _(e,t,r,n,i,o){var a=!1;u.Guard.isNode(t)&&u.Guard.isShadowRoot(p.tree_rootNode(t))&&(a=!0);var s=!1;u.Guard.isShadowRoot(t)&&\"closed\"===t._mode&&(s=!0),e._path.push({invocationTarget:t,invocationTargetInShadowTree:a,shadowAdjustedTarget:r,relatedTarget:n,touchTargetList:i,rootOfClosedTree:s,slotInClosedTree:o})}function g(e,t,r,n){void 0===n&&(n={value:!1});for(var i=t._path,a=-1,s=0;s<i.length;s++)if(i[s]===e){a=s;break}if(-1!==a){var u=i[a];(null!==u.shadowAdjustedTarget||a>0&&null!==(u=i[a-1]).shadowAdjustedTarget)&&(t._target=u.shadowAdjustedTarget)}if(t._relatedTarget=e.relatedTarget,t._touchTargetList=e.touchTargetList,!t._stopPropagationFlag){t._currentTarget=e.invocationTarget;var l=t._currentTarget._eventListenerList,c=new(Array.bind.apply(Array,o([void 0],l)));if(!b(t,c,r,e,n)&&t._isTrusted){var h=t._type;\"animationend\"===h?t._type=\"webkitAnimationEnd\":\"animationiteration\"===h?t._type=\"webkitAnimationIteration\":\"animationstart\"===h?t._type=\"webkitAnimationStart\":\"transitionend\"===h&&(t._type=\"webkitTransitionEnd\"),b(t,c,r,e,n),t._type=h}}}function b(e,t,r,n,i){void 0===i&&(i={value:!1});for(var o=!1,a=0;a<t.length;a++){var s=t[a];if(!s.removed){if(e._type!==s.type)continue;if(o=!0,\"capturing\"===r&&!s.capture)continue;if(\"bubbling\"===r&&s.capture)continue;if(s.once&&null!==e._currentTarget){for(var l=e._currentTarget,c=-1,h=0;h<l._eventListenerList.length;h++)if(l._eventListenerList[h]===s){c=h;break}-1!==c&&l._eventListenerList.splice(c,1)}var p=void 0,f=void 0;u.Guard.isWindow(p)&&(f=p._currentEvent,!1===n.invocationTargetInShadowTree&&(p._currentEvent=e)),s.passive&&(e._inPassiveListenerFlag=!0);try{s.callback.handleEvent.call(e._currentTarget,e)}catch(e){i.value=!0}if(s.passive&&(e._inPassiveListenerFlag=!1),u.Guard.isWindow(p)&&(p._currentEvent=f),e._stopImmediatePropagationFlag)return o}}return o}function x(e,t){return null}function w(e,t){return null}function E(e,t){}function D(e,t){}t.event_setTheCanceledFlag=function(e){e._cancelable&&!e._inPassiveListenerFlag&&(e._canceledFlag=!0)},t.event_initialize=function(e,t,r,n){e._initializedFlag=!0,e._stopPropagationFlag=!1,e._stopImmediatePropagationFlag=!1,e._canceledFlag=!1,e._isTrusted=!1,e._target=null,e._type=t,e._bubbles=r,e._cancelable=n},t.event_createAnEvent=m,t.event_innerEventCreationSteps=y,t.event_dispatch=v,t.event_appendToAnEventPath=_,t.event_invoke=g,t.event_innerInvoke=b,t.event_fireAnEvent=function(e,t,r,n,i){void 0===r&&(r=c.EventImpl);var o=m(r);if(o._type=e,n)for(var a in n){o[a]=n[a]}return v(o,t,i)},t.event_createLegacyEvent=function(e){var t=null;switch(e.toLowerCase()){case\"beforeunloadevent\":case\"compositionevent\":break;case\"customevent\":t=l.CustomEventImpl;break;case\"devicemotionevent\":case\"deviceorientationevent\":case\"dragevent\":break;case\"event\":case\"events\":t=c.EventImpl}if(null===t)throw new h.NotSupportedError(\"Event constructor not found for interface \"+e+\".\");var r=new t(\"\");return r._type=\"\",r._timeStamp=(new Date).getTime(),r._isTrusted=!1,r._initializedFlag=!1,r},t.event_getterEventHandlerIDLAttribute=function(e,t){return null},t.event_setterEventHandlerIDLAttribute=function(e,t,r){},t.event_determineTheTargetOfAnEventHandler=x,t.event_getTheCurrentValueOfAnEventHandler=w,t.event_activateAnEventHandler=E,t.event_deactivateAnEventHandler=D},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},a=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a};Object.defineProperty(t,\"__esModule\",{value:!0});var s=r(6),u=r(2),l=r(9),c=r(34),h=r(3),p=r(1),f=r(7),d=r(152),m=r(0),y=r(12),v=function(e){function t(){var t=e.call(this)||this;return t._children=new Set,t._encoding={name:\"UTF-8\",labels:[\"unicode-1-1-utf-8\",\"utf-8\",\"utf8\"]},t._contentType=\"application/xml\",t._URL={scheme:\"about\",username:\"\",password:\"\",host:null,port:null,path:[\"blank\"],query:null,fragment:null,_cannotBeABaseURLFlag:!0,_blobURLEntry:null},t._origin=null,t._type=\"xml\",t._mode=\"no-quirks\",t._documentElement=null,t._hasNamespaces=!1,t._nodeDocumentOverwrite=null,t}return i(t,e),Object.defineProperty(t.prototype,\"_nodeDocument\",{get:function(){return this._nodeDocumentOverwrite||this},set:function(e){this._nodeDocumentOverwrite=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"implementation\",{get:function(){return this._implementation||(this._implementation=m.create_domImplementation(this))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"URL\",{get:function(){return d.urlSerializer(this._URL)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"documentURI\",{get:function(){return this.URL},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"origin\",{get:function(){return\"null\"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"compatMode\",{get:function(){return\"quirks\"===this._mode?\"BackCompat\":\"CSS1Compat\"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"characterSet\",{get:function(){return this._encoding.name},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"charset\",{get:function(){return this._encoding.name},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"inputEncoding\",{get:function(){return this._encoding.name},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"contentType\",{get:function(){return this._contentType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"doctype\",{get:function(){var e,t;try{for(var r=o(this._children),n=r.next();!n.done;n=r.next()){var i=n.value;if(h.Guard.isDocumentTypeNode(i))return i}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"documentElement\",{get:function(){return this._documentElement},enumerable:!0,configurable:!0}),t.prototype.getElementsByTagName=function(e){return m.node_listOfElementsWithQualifiedName(e,this)},t.prototype.getElementsByTagNameNS=function(e,t){return m.node_listOfElementsWithNamespace(e,t,this)},t.prototype.getElementsByClassName=function(e){return m.node_listOfElementsWithClassNames(e,this)},t.prototype.createElement=function(e,t){if(!m.xml_isName(e))throw new l.InvalidCharacterError;\"html\"===this._type&&(e=e.toLowerCase());var r=null;void 0!==t&&(r=p.isString(t)?t:t.is);var n=\"html\"===this._type||\"application/xhtml+xml\"===this._contentType?f.namespace.HTML:null;return m.element_createAnElement(this,e,n,null,r,!0)},t.prototype.createElementNS=function(e,t,r){return m.document_internalCreateElementNS(this,e,t,r)},t.prototype.createDocumentFragment=function(){return m.create_documentFragment(this)},t.prototype.createTextNode=function(e){return m.create_text(this,e)},t.prototype.createCDATASection=function(e){if(\"html\"===this._type)throw new l.NotSupportedError;if(-1!==e.indexOf(\"]]>\"))throw new l.InvalidCharacterError;return m.create_cdataSection(this,e)},t.prototype.createComment=function(e){return m.create_comment(this,e)},t.prototype.createProcessingInstruction=function(e,t){if(!m.xml_isName(e))throw new l.InvalidCharacterError;if(-1!==t.indexOf(\"?>\"))throw new l.InvalidCharacterError;return m.create_processingInstruction(this,e,t)},t.prototype.importNode=function(e,t){if(void 0===t&&(t=!1),h.Guard.isDocumentNode(e)||h.Guard.isShadowRoot(e))throw new l.NotSupportedError;return m.node_clone(e,this,t)},t.prototype.adoptNode=function(e){if(h.Guard.isDocumentNode(e))throw new l.NotSupportedError;if(h.Guard.isShadowRoot(e))throw new l.HierarchyRequestError;return m.document_adopt(e,this),e},t.prototype.createAttribute=function(e){if(!m.xml_isName(e))throw new l.InvalidCharacterError;return\"html\"===this._type&&(e=e.toLowerCase()),m.create_attr(this,e)},t.prototype.createAttributeNS=function(e,t){var r=a(m.namespace_validateAndExtract(e,t),3),n=r[0],i=r[1],o=r[2],s=m.create_attr(this,o);return s._namespace=n,s._namespacePrefix=i,s},t.prototype.createEvent=function(e){return m.event_createLegacyEvent(e)},t.prototype.createRange=function(){var e=m.create_range();return e._start=[this,0],e._end=[this,0],e},t.prototype.createNodeIterator=function(e,t,r){void 0===t&&(t=u.WhatToShow.All),void 0===r&&(r=null);var n=m.create_nodeIterator(e,e,!0);return n._whatToShow=t,n._iteratorCollection=m.create_nodeList(e),p.isFunction(r)?(n._filter=m.create_nodeFilter(),n._filter.acceptNode=r):n._filter=r,n},t.prototype.createTreeWalker=function(e,t,r){void 0===t&&(t=u.WhatToShow.All),void 0===r&&(r=null);var n=m.create_treeWalker(e,e);return n._whatToShow=t,p.isFunction(r)?(n._filter=m.create_nodeFilter(),n._filter.acceptNode=r):n._filter=r,n},t.prototype._getTheParent=function(e){return\"load\"===e._type?null:s.dom.window},t.prototype.getElementById=function(e){throw new Error(\"Mixin: NonElementParentNode not implemented.\")},Object.defineProperty(t.prototype,\"children\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"firstElementChild\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"lastElementChild\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"childElementCount\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),t.prototype.prepend=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ParentNode not implemented.\")},t.prototype.append=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ParentNode not implemented.\")},t.prototype.querySelector=function(e){throw new Error(\"Mixin: ParentNode not implemented.\")},t.prototype.querySelectorAll=function(e){throw new Error(\"Mixin: ParentNode not implemented.\")},t}(c.NodeImpl);t.DocumentImpl=v,y.idl_defineConst(v.prototype,\"_nodeType\",u.NodeType.Document)},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},a=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a};Object.defineProperty(t,\"__esModule\",{value:!0});var s=r(2),u=r(34),l=r(9),c=r(7),h=r(0),p=r(12),f=function(e){function t(){var t=e.call(this)||this;return t._children=new Set,t._namespace=null,t._namespacePrefix=null,t._localName=\"\",t._customElementState=\"undefined\",t._customElementDefinition=null,t._is=null,t._shadowRoot=null,t._attributeList=h.create_namedNodeMap(t),t._attributeChangeSteps=[],t._name=\"\",t._assignedSlot=null,t}return i(t,e),Object.defineProperty(t.prototype,\"namespaceURI\",{get:function(){return this._namespace},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"prefix\",{get:function(){return this._namespacePrefix},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"localName\",{get:function(){return this._localName},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"tagName\",{get:function(){return this._htmlUppercasedQualifiedName},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"id\",{get:function(){return h.element_getAnAttributeValue(this,\"id\")},set:function(e){h.element_setAnAttributeValue(this,\"id\",e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"className\",{get:function(){return h.element_getAnAttributeValue(this,\"class\")},set:function(e){h.element_setAnAttributeValue(this,\"class\",e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"classList\",{get:function(){var e=h.element_getAnAttributeByName(\"class\",this);return null===e&&(e=h.create_attr(this._nodeDocument,\"class\")),h.create_domTokenList(this,e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"slot\",{get:function(){return h.element_getAnAttributeValue(this,\"slot\")},set:function(e){h.element_setAnAttributeValue(this,\"slot\",e)},enumerable:!0,configurable:!0}),t.prototype.hasAttributes=function(){return 0!==this._attributeList.length},Object.defineProperty(t.prototype,\"attributes\",{get:function(){return this._attributeList},enumerable:!0,configurable:!0}),t.prototype.getAttributeNames=function(){var e,t,r=[];try{for(var n=o(this._attributeList),i=n.next();!i.done;i=n.next()){var a=i.value;r.push(a._qualifiedName)}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return r},t.prototype.getAttribute=function(e){var t=h.element_getAnAttributeByName(e,this);return t?t._value:null},t.prototype.getAttributeNS=function(e,t){var r=h.element_getAnAttributeByNamespaceAndLocalName(e,t,this);return r?r._value:null},t.prototype.setAttribute=function(e,t){if(!h.xml_isName(e))throw new l.InvalidCharacterError;this._namespace===c.namespace.HTML&&\"html\"===this._nodeDocument._type&&(e=e.toLowerCase());for(var r=null,n=0;n<this._attributeList.length;n++){var i=this._attributeList[n];if(i._qualifiedName===e){r=i;break}}if(null===r)return(r=h.create_attr(this._nodeDocument,e))._value=t,void h.element_append(r,this);h.element_change(r,this,t)},t.prototype.setAttributeNS=function(e,t,r){var n=a(h.namespace_validateAndExtract(e,t),3),i=n[0],o=n[1],s=n[2];h.element_setAnAttributeValue(this,s,r,o,i)},t.prototype.removeAttribute=function(e){h.element_removeAnAttributeByName(e,this)},t.prototype.removeAttributeNS=function(e,t){h.element_removeAnAttributeByNamespaceAndLocalName(e,t,this)},t.prototype.hasAttribute=function(e){this._namespace===c.namespace.HTML&&\"html\"===this._nodeDocument._type&&(e=e.toLowerCase());for(var t=0;t<this._attributeList.length;t++){if(this._attributeList[t]._qualifiedName===e)return!0}return!1},t.prototype.toggleAttribute=function(e,t){if(!h.xml_isName(e))throw new l.InvalidCharacterError;this._namespace===c.namespace.HTML&&\"html\"===this._nodeDocument._type&&(e=e.toLowerCase());for(var r=null,n=0;n<this._attributeList.length;n++){var i=this._attributeList[n];if(i._qualifiedName===e){r=i;break}}return null===r?(void 0===t||!0===t)&&((r=h.create_attr(this._nodeDocument,e))._value=\"\",h.element_append(r,this),!0):void 0!==t&&!1!==t||(h.element_removeAnAttributeByName(e,this),!1)},t.prototype.hasAttributeNS=function(e,t){for(var r=e||null,n=0;n<this._attributeList.length;n++){var i=this._attributeList[n];if(i._namespace===r&&i._localName===t)return!0}return!1},t.prototype.getAttributeNode=function(e){return h.element_getAnAttributeByName(e,this)},t.prototype.getAttributeNodeNS=function(e,t){return h.element_getAnAttributeByNamespaceAndLocalName(e,t,this)},t.prototype.setAttributeNode=function(e){return h.element_setAnAttribute(e,this)},t.prototype.setAttributeNodeNS=function(e){return h.element_setAnAttribute(e,this)},t.prototype.removeAttributeNode=function(e){for(var t=!1,r=0;r<this._attributeList.length;r++){if(this._attributeList[r]===e){t=!0;break}}if(!t)throw new l.NotFoundError;return h.element_remove(e,this),e},t.prototype.attachShadow=function(e){if(this._namespace!==c.namespace.HTML)throw new l.NotSupportedError;if(!h.customElement_isValidCustomElementName(this._localName)&&!h.customElement_isValidShadowHostName(this._localName))throw new l.NotSupportedError;if(h.customElement_isValidCustomElementName(this._localName)||null!==this._is){var t=h.customElement_lookUpACustomElementDefinition(this._nodeDocument,this._namespace,this._localName,this._is);if(null!==t&&!0===t.disableShadow)throw new l.NotSupportedError}if(null!==this._shadowRoot)throw new l.NotSupportedError;var r=h.create_shadowRoot(this._nodeDocument,this);return r._mode=e.mode,this._shadowRoot=r,r},Object.defineProperty(t.prototype,\"shadowRoot\",{get:function(){var e=this._shadowRoot;return null===e||\"closed\"===e.mode?null:e},enumerable:!0,configurable:!0}),t.prototype.closest=function(e){throw new l.NotImplementedError},t.prototype.matches=function(e){throw new l.NotImplementedError},t.prototype.webkitMatchesSelector=function(e){return this.matches(e)},t.prototype.getElementsByTagName=function(e){return h.node_listOfElementsWithQualifiedName(e,this)},t.prototype.getElementsByTagNameNS=function(e,t){return h.node_listOfElementsWithNamespace(e,t,this)},t.prototype.getElementsByClassName=function(e){return h.node_listOfElementsWithClassNames(e,this)},t.prototype.insertAdjacentElement=function(e,t){return h.element_insertAdjacent(this,e,t)},t.prototype.insertAdjacentText=function(e,t){var r=h.create_text(this._nodeDocument,t);h.element_insertAdjacent(this,e,r)},Object.defineProperty(t.prototype,\"_qualifiedName\",{get:function(){return this._namespacePrefix?this._namespacePrefix+\":\"+this._localName:this._localName},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_htmlUppercasedQualifiedName\",{get:function(){var e=this._qualifiedName;return this._namespace===c.namespace.HTML&&\"html\"===this._nodeDocument._type&&(e=e.toUpperCase()),e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"children\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"firstElementChild\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"lastElementChild\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"childElementCount\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),t.prototype.prepend=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ParentNode not implemented.\")},t.prototype.append=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ParentNode not implemented.\")},t.prototype.querySelector=function(e){throw new Error(\"Mixin: ParentNode not implemented.\")},t.prototype.querySelectorAll=function(e){throw new Error(\"Mixin: ParentNode not implemented.\")},Object.defineProperty(t.prototype,\"previousElementSibling\",{get:function(){throw new Error(\"Mixin: NonDocumentTypeChildNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"nextElementSibling\",{get:function(){throw new Error(\"Mixin: NonDocumentTypeChildNode not implemented.\")},enumerable:!0,configurable:!0}),t.prototype.before=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ChildNode not implemented.\")},t.prototype.after=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ChildNode not implemented.\")},t.prototype.replaceWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ChildNode not implemented.\")},t.prototype.remove=function(){throw new Error(\"Mixin: ChildNode not implemented.\")},Object.defineProperty(t.prototype,\"assignedSlot\",{get:function(){throw new Error(\"Mixin: Slotable not implemented.\")},enumerable:!0,configurable:!0}),t._create=function(e,r,n,i){void 0===n&&(n=null),void 0===i&&(i=null);var o=new t;return o._localName=r,o._namespace=n,o._namespacePrefix=i,o._nodeDocument=e,o},t}(u.NodeImpl);t.ElementImpl=f,p.idl_defineConst(f.prototype,\"_nodeType\",s.NodeType.Element)},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(2),a=r(34),s=r(12),u=function(e){function t(t){void 0===t&&(t=null);var r=e.call(this)||this;return r._children=new Set,r._host=t,r}return i(t,e),t.prototype.getElementById=function(e){throw new Error(\"Mixin: NonElementParentNode not implemented.\")},Object.defineProperty(t.prototype,\"children\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"firstElementChild\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"lastElementChild\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"childElementCount\",{get:function(){throw new Error(\"Mixin: ParentNode not implemented.\")},enumerable:!0,configurable:!0}),t.prototype.prepend=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ParentNode not implemented.\")},t.prototype.append=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ParentNode not implemented.\")},t.prototype.querySelector=function(e){throw new Error(\"Mixin: ParentNode not implemented.\")},t.prototype.querySelectorAll=function(e){throw new Error(\"Mixin: ParentNode not implemented.\")},t._create=function(e,r){void 0===r&&(r=null);var n=new t(r);return n._nodeDocument=e,n},t}(a.NodeImpl);t.DocumentFragmentImpl=u,s.idl_defineConst(u.prototype,\"_nodeType\",o.NodeType.DocumentFragment)},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(2),s=r(71),u=r(0),l=r(12),c=function(e){function t(t){void 0===t&&(t=\"\");var r=e.call(this,t)||this;return r._name=\"\",r._assignedSlot=null,r}return i(t,e),Object.defineProperty(t.prototype,\"wholeText\",{get:function(){var e,t,r=\"\";try{for(var n=o(u.text_contiguousTextNodes(this,!0)),i=n.next();!i.done;i=n.next()){r+=i.value._data}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return r},enumerable:!0,configurable:!0}),t.prototype.splitText=function(e){return u.text_split(this,e)},Object.defineProperty(t.prototype,\"assignedSlot\",{get:function(){throw new Error(\"Mixin: Slotable not implemented.\")},enumerable:!0,configurable:!0}),t._create=function(e,r){void 0===r&&(r=\"\");var n=new t(r);return n._nodeDocument=e,n},t}(s.CharacterDataImpl);t.TextImpl=c,l.idl_defineConst(c.prototype,\"_nodeType\",a.NodeType.Text)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){}return Object.defineProperty(e.prototype,\"_startNode\",{get:function(){return this._start[0]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"_startOffset\",{get:function(){return this._start[1]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"_endNode\",{get:function(){return this._end[0]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"_endOffset\",{get:function(){return this._end[1]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"_collapsed\",{get:function(){return this._start[0]===this._end[0]&&this._start[1]===this._end[1]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"startContainer\",{get:function(){return this._startNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"startOffset\",{get:function(){return this._startOffset},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"endContainer\",{get:function(){return this._endNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"endOffset\",{get:function(){return this._endOffset},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsed\",{get:function(){return this._collapsed},enumerable:!0,configurable:!0}),e}();t.AbstractRangeImpl=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),i=function(){function e(e){this._activeFlag=!1,this._root=e,this._whatToShow=n.WhatToShow.All,this._filter=null}return Object.defineProperty(e.prototype,\"root\",{get:function(){return this._root},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"whatToShow\",{get:function(){return this._whatToShow},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filter\",{get:function(){return this._filter},enumerable:!0,configurable:!0}),e}();t.TraverserImpl=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),i=r(0),o=r(12),a=function(){function e(e,t){this._target=null,this._relatedTarget=null,this._touchTargetList=[],this._path=[],this._currentTarget=null,this._eventPhase=n.EventPhase.None,this._stopPropagationFlag=!1,this._stopImmediatePropagationFlag=!1,this._canceledFlag=!1,this._inPassiveListenerFlag=!1,this._composedFlag=!1,this._initializedFlag=!1,this._dispatchFlag=!1,this._isTrusted=!1,this._bubbles=!1,this._cancelable=!1,this._type=e,t&&(this._bubbles=t.bubbles||!1,this._cancelable=t.cancelable||!1,this._composedFlag=t.composed||!1),this._initializedFlag=!0,this._timeStamp=(new Date).getTime()}return Object.defineProperty(e.prototype,\"type\",{get:function(){return this._type},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"target\",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"srcElement\",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"currentTarget\",{get:function(){return this._currentTarget},enumerable:!0,configurable:!0}),e.prototype.composedPath=function(){var e=[],t=this._path;if(0===t.length)return e;var r=this._currentTarget;if(null===r)throw new Error(\"Event currentTarget is null.\");e.push(r);for(var n=0,i=0,o=t.length-1;o>=0;){if(t[o].rootOfClosedTree&&i++,t[o].invocationTarget===r){n=o;break}t[o].slotInClosedTree&&i--,o--}var a=i,s=i;for(o=n-1;o>=0;)t[o].rootOfClosedTree&&a++,a<=s&&e.unshift(t[o].invocationTarget),t[o].slotInClosedTree&&--a<s&&(s=a),o--;for(a=i,s=i,o=n+1;o<t.length;)t[o].slotInClosedTree&&a++,a<=s&&e.push(t[o].invocationTarget),t[o].rootOfClosedTree&&--a<s&&(s=a),o++;return e},Object.defineProperty(e.prototype,\"eventPhase\",{get:function(){return this._eventPhase},enumerable:!0,configurable:!0}),e.prototype.stopPropagation=function(){this._stopPropagationFlag=!0},Object.defineProperty(e.prototype,\"cancelBubble\",{get:function(){return this._stopPropagationFlag},set:function(e){e&&this.stopPropagation()},enumerable:!0,configurable:!0}),e.prototype.stopImmediatePropagation=function(){this._stopPropagationFlag=!0,this._stopImmediatePropagationFlag=!0},Object.defineProperty(e.prototype,\"bubbles\",{get:function(){return this._bubbles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"cancelable\",{get:function(){return this._cancelable},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"returnValue\",{get:function(){return!this._canceledFlag},set:function(e){e||i.event_setTheCanceledFlag(this)},enumerable:!0,configurable:!0}),e.prototype.preventDefault=function(){i.event_setTheCanceledFlag(this)},Object.defineProperty(e.prototype,\"defaultPrevented\",{get:function(){return this._canceledFlag},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"composed\",{get:function(){return this._composedFlag},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isTrusted\",{get:function(){return this._isTrusted},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"timeStamp\",{get:function(){return this._timeStamp},enumerable:!0,configurable:!0}),e.prototype.initEvent=function(e,t,r){void 0===t&&(t=!1),void 0===r&&(r=!1),this._dispatchFlag||i.event_initialize(this,e,t,r)},e.NONE=0,e.CAPTURING_PHASE=1,e.AT_TARGET=2,e.BUBBLING_PHASE=3,e}();t.EventImpl=a,o.idl_defineConst(a.prototype,\"NONE\",0),o.idl_defineConst(a.prototype,\"CAPTURING_PHASE\",1),o.idl_defineConst(a.prototype,\"AT_TARGET\",2),o.idl_defineConst(a.prototype,\"BUBBLING_PHASE\",3)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),i=r(9);t.traversal_filter=function(e,t){if(e._activeFlag)throw new i.InvalidStateError;var r=1<<t._nodeType-1;if(0==(e.whatToShow&r))return n.FilterResult.Skip;if(!e.filter)return n.FilterResult.Accept;e._activeFlag=!0;var o=n.FilterResult.Reject;try{o=e.filter.acceptNode(t)}catch(t){throw e._activeFlag=!1,t}return e._activeFlag=!1,o}},function(e,t,r){\"use strict\";var n=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},i=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(6),a=r(3),s=r(1),u=r(99),l=r(73),c=r(17),h=r(173),p=r(30),f=r(52),d=r(37);t.document_elementInterface=function(e,t){return u.ElementImpl},t.document_internalCreateElementNS=function(e,t,r,i){var o=n(h.namespace_validateAndExtract(t,r),3),a=o[0],u=o[1],l=o[2],c=null;return void 0!==i&&(c=s.isString(i)?i:i.is),f.element_createAnElement(e,l,a,u,c,!0)},t.document_adopt=function(e,t){var r,n;if(e._nodeDocument!==t||null!==e._parent){var s=e._nodeDocument;if(e._parent&&d.mutation_remove(e,e._parent),t!==s)for(var u=c.tree_getFirstDescendantNode(e,!0,!0);null!==u;){if(u._nodeDocument=t,a.Guard.isElementNode(u))try{for(var h=(r=void 0,i(u._attributeList._asArray())),f=h.next();!f.done;f=h.next()){f.value._nodeDocument=t}}catch(e){r={error:e}}finally{try{f&&!f.done&&(n=h.return)&&n.call(h)}finally{if(r)throw r.error}}o.dom.features.customElements&&a.Guard.isElementNode(u)&&\"custom\"===u._customElementState&&l.customElement_enqueueACustomElementCallbackReaction(u,\"adoptedCallback\",[s,t]),o.dom.features.steps&&p.dom_runAdoptingSteps(u,s),u=c.tree_getNextDescendantNode(e,u,!0,!0)}}}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(6),o=r(3),a=r(9),s=r(17),u=r(51),l=r(30);t.characterData_replaceData=function(e,t,r,c){var h,p,f=s.tree_nodeLength(e);if(t>f)throw new a.IndexSizeError(\"Offset exceeds character data length. Offset: \"+t+\", Length: \"+f+\", Node is \"+e.nodeName+\".\");t+r>f&&(r=f-t),i.dom.features.mutationObservers&&u.observer_queueMutationRecord(\"characterData\",e,null,null,e._data,[],[],null,null);var d=e._data.substring(0,t)+c+e._data.substring(t+r);e._data=d;try{for(var m=n(i.dom.rangeList),y=m.next();!y.done;y=m.next()){var v=y.value;v._start[0]===e&&v._start[1]>t&&v._start[1]<=t+r&&(v._start[1]=t),v._end[0]===e&&v._end[1]>t&&v._end[1]<=t+r&&(v._end[1]=t),v._start[0]===e&&v._start[1]>t+r&&(v._start[1]+=c.length-r),v._end[0]===e&&v._end[1]>t+r&&(v._end[1]+=c.length-r)}}catch(e){h={error:e}}finally{try{y&&!y.done&&(p=m.return)&&p.call(m)}finally{if(h)throw h.error}}i.dom.features.steps&&o.Guard.isTextNode(e)&&null!==e._parent&&l.dom_runChildTextContentChangeSteps(e._parent)},t.characterData_substringData=function(e,t,r){var n=s.tree_nodeLength(e);if(t>n)throw new a.IndexSizeError(\"Offset exceeds character data length. Offset: \"+t+\", Length: \"+n+\", Node is \"+e.nodeName+\".\");return t+r>n?e._data.substr(t):e._data.substr(t,r)}},function(e,t,r){\"use strict\";var n=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},i=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(n(arguments[t]));return e},o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(7);function s(e){var t=a.string.splitAStringOnASCIIWhitespace(e);return new Set(t)}function u(e){return i(e).join(\" \")}t.orderedSet_parse=s,t.orderedSet_serialize=u,t.orderedSet_sanitize=function(e){return u(s(e))},t.orderedSet_contains=function(e,t,r){var n,i,a,s;try{for(var u=o(t),l=u.next();!l.done;l=u.next()){var c=l.value,h=!1;try{for(var p=(a=void 0,o(e)),f=p.next();!f.done;f=p.next()){var d=f.value;if(r){if(d===c){h=!0;break}}else if(d.toUpperCase()===c.toUpperCase()){h=!0;break}}}catch(e){a={error:e}}finally{try{f&&!f.done&&(s=p.return)&&s.call(p)}finally{if(a)throw a.error}}if(!h)return!1}}catch(e){n={error:e}}finally{try{l&&!l.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return!0}},function(e,t,r){\"use strict\";r(179),Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(262),i=r(110),o=r(1);i.dom.setFeatures(!1),t.createDocument=function(){var e=(new n.DOMImplementation).createDocument(null,\"root\",null);return e.documentElement&&e.removeChild(e.documentElement),e},t.sanitizeInput=function(e,t){if(null==e)return e;if(void 0===t)return e+\"\";var r=\"\";e+=\"\";for(var n=0;n<e.length;n++){var i=e.charCodeAt(n);if(9===i||10===i||13===i||i>=32&&i<=55295||i>=57344&&i<=65533)r+=e.charAt(n);else if(i>=55296&&i<=56319&&n<e.length-1){var a=e.charCodeAt(n+1);a>=56320&&a<=57343?(i=1024*(i-55296)+a-56320+65536,r+=String.fromCodePoint(i),n++):r+=o.isString(t)?t:t(e.charAt(n),n,e)}else r+=o.isString(t)?t:t(e.charAt(n),n,e)}return r}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(1),i=r(153);t.AbortController=i.AbortControllerImpl;var o=r(154);t.AbortSignal=o.AbortSignalImpl;var a=r(102);t.AbstractRange=a.AbstractRangeImpl;var s=r(157);t.Attr=s.AttrImpl;var u=r(158);t.CDATASection=u.CDATASectionImpl;var l=r(71);t.CharacterData=l.CharacterDataImpl;var c=r(263),h=r(159);t.Comment=h.CommentImpl;var p=r(171);t.CustomEvent=p.CustomEventImpl;var f=r(100);t.DocumentFragment=f.DocumentFragmentImpl;var d=r(98);t.Document=d.DocumentImpl;var m=r(264),y=r(155);t.DocumentType=y.DocumentTypeImpl;var v=r(6);t.dom=v.dom;var _=r(148);t.DOMImplementation=_.DOMImplementationImpl;var g=r(170);t.DOMTokenList=g.DOMTokenListImpl;var b=r(99);t.Element=b.ElementImpl;var x=r(104);t.Event=x.EventImpl;var w=r(70);t.EventTarget=w.EventTargetImpl;var E=r(161);t.HTMLCollection=E.HTMLCollectionImpl;var D=r(265);t.MutationObserver=D.MutationObserverImpl;var S=r(169);t.MutationRecord=S.MutationRecordImpl;var C=r(164);t.NamedNodeMap=C.NamedNodeMapImpl;var A=r(168);t.NodeFilter=A.NodeFilterImpl;var N=r(34);t.Node=N.NodeImpl;var T=r(166);t.NodeIterator=T.NodeIteratorImpl;var O=r(162);t.NodeList=O.NodeListImpl;var F=r(163);t.NodeListStatic=F.NodeListStaticImpl;var k=r(266),P=r(267),I=r(268),L=r(160);t.ProcessingInstruction=L.ProcessingInstructionImpl;var M=r(165);t.Range=M.RangeImpl;var B=r(156);t.ShadowRoot=B.ShadowRootImpl;var j=r(269),R=r(270);t.StaticRange=R.StaticRangeImpl;var z=r(101);t.Text=z.TextImpl;var U=r(103);t.Traverser=U.TraverserImpl;var G=r(167);t.TreeWalker=G.TreeWalkerImpl;var X=r(149);t.Window=X.WindowImpl;var q=r(151);t.XMLDocument=q.XMLDocumentImpl,n.applyMixin(b.ElementImpl,c.ChildNodeImpl),n.applyMixin(l.CharacterDataImpl,c.ChildNodeImpl),n.applyMixin(y.DocumentTypeImpl,c.ChildNodeImpl),n.applyMixin(d.DocumentImpl,m.DocumentOrShadowRootImpl),n.applyMixin(B.ShadowRootImpl,m.DocumentOrShadowRootImpl),n.applyMixin(b.ElementImpl,k.NonDocumentTypeChildNodeImpl),n.applyMixin(l.CharacterDataImpl,k.NonDocumentTypeChildNodeImpl),n.applyMixin(d.DocumentImpl,P.NonElementParentNodeImpl),n.applyMixin(f.DocumentFragmentImpl,P.NonElementParentNodeImpl),n.applyMixin(d.DocumentImpl,I.ParentNodeImpl),n.applyMixin(f.DocumentFragmentImpl,I.ParentNodeImpl),n.applyMixin(b.ElementImpl,I.ParentNodeImpl),n.applyMixin(z.TextImpl,j.SlotableImpl),n.applyMixin(b.ElementImpl,j.SlotableImpl)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.EOF=0]=\"EOF\",e[e.Declaration=1]=\"Declaration\",e[e.DocType=2]=\"DocType\",e[e.Element=3]=\"Element\",e[e.Text=4]=\"Text\",e[e.CDATA=5]=\"CDATA\",e[e.PI=6]=\"PI\",e[e.Comment=7]=\"Comment\",e[e.ClosingTag=8]=\"ClosingTag\"}(t.TokenType||(t.TokenType={}))},function(e,t,r){\"use strict\";r(64),r(20),r(66);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(1),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype._parse=function(e,t){var r=this,n=this._builderOptions,i=null;return o.isFunction(t)?i=this.parse(e,t.apply(this)):o.isArray(t)||o.isSet(t)?o.forEachArray(t,(function(t){return i=r.parse(e,t)}),this):o.isMap(t)||o.isObject(t)?o.forEachObject(t,(function(t,a){if(o.isFunction(a)&&(a=a.apply(r)),n.ignoreConverters||0!==t.indexOf(n.convert.att))if(n.ignoreConverters||0!==t.indexOf(n.convert.text))if(n.ignoreConverters||0!==t.indexOf(n.convert.cdata))if(n.ignoreConverters||0!==t.indexOf(n.convert.comment))if(n.ignoreConverters||0!==t.indexOf(n.convert.ins))if((o.isArray(a)||o.isSet(a))&&o.isEmpty(a));else if((o.isMap(a)||o.isObject(a))&&o.isEmpty(a))i=r.element(e,void 0,r.sanitize(t))||i;else if(n.keepNullNodes||null!=a)if(o.isArray(a)||o.isSet(a))o.forEachArray(a,(function(n){var o={};o[t]=n,i=r.parse(e,o)}),r);else if(o.isMap(a)||o.isObject(a)){(s=r.element(e,void 0,r.sanitize(t)))&&(i=s,r.parse(s,a))}else if(null!=a&&\"\"!==a){var s;(s=r.element(e,void 0,r.sanitize(t)))&&(i=s,r.text(s,r._decodeText(r.sanitize(a))))}else i=r.element(e,void 0,r.sanitize(t))||i;else;else if(o.isString(a)){var u=a.indexOf(\" \"),l=-1===u?a:a.substr(0,u),c=-1===u?\"\":a.substr(u+1);i=r.instruction(e,r.sanitize(l),r.sanitize(c))||i}else o.isArray(a)||o.isSet(a)?o.forEachArray(a,(function(t){var n=t.indexOf(\" \"),o=-1===n?t:t.substr(0,n),a=-1===n?\"\":t.substr(n+1);i=r.instruction(e,r.sanitize(o),r.sanitize(a))||i}),r):o.forEachObject(a,(function(t,n){return i=r.instruction(e,r.sanitize(t),r.sanitize(n))||i}),r);else o.isArray(a)||o.isSet(a)?o.forEachArray(a,(function(t){return i=r.comment(e,r.sanitize(t))||i}),r):i=r.comment(e,r.sanitize(a))||i;else o.isArray(a)||o.isSet(a)?o.forEachArray(a,(function(t){return i=r.cdata(e,r.sanitize(t))||i}),r):i=r.cdata(e,r.sanitize(a))||i;else i=o.isMap(a)||o.isObject(a)?r.parse(e,a):r.text(e,r._decodeText(r.sanitize(a)))||i;else if(t===n.convert.att){if(o.isArray(a)||o.isSet(a))throw new Error(\"Invalid attribute: \"+a.toString()+\". \"+e._debugInfo());o.forEachObject(a,(function(t,n){i=r.attribute(e,void 0,r.sanitize(t),r._decodeAttributeValue(r.sanitize(n)))||i}))}else i=r.attribute(e,void 0,r.sanitize(t.substr(n.convert.att.length)),r._decodeAttributeValue(r.sanitize(a)))||i}),this):(n.keepNullNodes||null!=t)&&(i=this.text(e,this._decodeText(this.sanitize(t)))||i),i||e},t}(r(75).BaseReader);t.ObjectReader=a},function(e,t,r){\"use strict\";var n=r(39);e.exports=new n({explicit:[r(286),r(287),r(288)]})},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){this.level=0,this._builderOptions=e,this._writerOptions=e};t.BaseCBWriter=n},function(e,t,r){var n=r(16),i=r(8),o=r(116);e.exports=!n&&!i((function(){return 7!=Object.defineProperty(o(\"div\"),\"a\",{get:function(){return 7}}).a}))},function(e,t,r){var n=r(11),i=r(13),o=n.document,a=i(o)&&i(o.createElement);e.exports=function(e){return a?o.createElement(e):{}}},function(e,t,r){var n=r(118),i=Function.toString;\"function\"!=typeof n.inspectSource&&(n.inspectSource=function(e){return i.call(e)}),e.exports=n.inspectSource},function(e,t,r){var n=r(11),i=r(80),o=n[\"__core-js_shared__\"]||i(\"__core-js_shared__\",{});e.exports=o},function(e,t,r){var n=r(14),i=r(187),o=r(55),a=r(15);e.exports=function(e,t){for(var r=i(t),s=a.f,u=o.f,l=0;l<r.length;l++){var c=r[l];n(e,c)||s(e,c,u(t,c))}}},function(e,t,r){var n=r(11);e.exports=n},function(e,t,r){var n=r(14),i=r(24),o=r(122).indexOf,a=r(45);e.exports=function(e,t){var r,s=i(e),u=0,l=[];for(r in s)!n(a,r)&&n(s,r)&&l.push(r);for(;t.length>u;)n(s,r=t[u++])&&(~o(l,r)||l.push(r));return l}},function(e,t,r){var n=r(24),i=r(26),o=r(83),a=function(e){return function(t,r,a){var s,u=n(t),l=i(u.length),c=o(a,l);if(e&&r!=r){for(;l>c;)if((s=u[c++])!=s)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===r)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t,r){var n=r(8),i=/#|\\.prototype\\./,o=function(e,t){var r=s[a(e)];return r==l||r!=u&&(\"function\"==typeof t?n(t):!!t)},a=o.normalize=function(e){return String(e).replace(i,\".\").toLowerCase()},s=o.data={},u=o.NATIVE=\"N\",l=o.POLYFILL=\"P\";e.exports=o},function(e,t,r){var n=r(86);e.exports=n&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},function(e,t,r){var n=r(5);t.f=n},function(e,t,r){var n=r(120),i=r(14),o=r(125),a=r(15).f;e.exports=function(e){var t=n.Symbol||(n.Symbol={});i(t,e)||a(t,e,{value:o.f(e)})}},function(e,t){e.exports=function(e){if(\"function\"!=typeof e)throw TypeError(String(e)+\" is not a function\");return e}},function(e,t,r){var n=r(13),i=r(59),o=r(5)(\"species\");e.exports=function(e,t){var r;return i(e)&&(\"function\"!=typeof(r=e.constructor)||r!==Array&&!i(r.prototype)?n(r)&&null===(r=r[o])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)}},function(e,t,r){var n,i,o=r(11),a=r(193),s=o.process,u=s&&s.versions,l=u&&u.v8;l?i=(n=l.split(\".\"))[0]+n[1]:a&&(!(n=a.match(/Edge\\/(\\d+)/))||n[1]>=74)&&(n=a.match(/Chrome\\/(\\d+)/))&&(i=n[1]),e.exports=i&&+i},function(e,t,r){var n=r(5),i=r(60),o=r(15),a=n(\"unscopables\"),s=Array.prototype;null==s[a]&&o.f(s,a,{configurable:!0,value:i(null)}),e.exports=function(e){s[a][e]=!0}},function(e,t,r){\"use strict\";var n,i,o,a=r(132),s=r(21),u=r(14),l=r(5),c=r(44),h=l(\"iterator\"),p=!1;[].keys&&(\"next\"in(o=[].keys())?(i=a(a(o)))!==Object.prototype&&(n=i):p=!0),null==n&&(n={}),c||u(n,h)||s(n,h,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:p}},function(e,t,r){var n=r(14),i=r(27),o=r(57),a=r(196),s=o(\"IE_PROTO\"),u=Object.prototype;e.exports=a?Object.getPrototypeOf:function(e){return e=i(e),n(e,s)?e[s]:\"function\"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?u:null}},function(e,t,r){var n=r(18),i=r(197);e.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var e,t=!1,r={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(r,[]),t=r instanceof Array}catch(e){}return function(r,o){return n(r),i(o),t?e.call(r,o):r.__proto__=o,r}}():void 0)},function(e,t,r){\"use strict\";var n=r(56),i=r(15),o=r(40);e.exports=function(e,t,r){var a=n(t);a in e?i.f(e,a,o(0,r)):e[a]=r}},function(e,t,r){var n=r(90),i=r(42),o=r(5)(\"toStringTag\"),a=\"Arguments\"==i(function(){return arguments}());e.exports=n?i:function(e){var t,r,n;return void 0===e?\"Undefined\":null===e?\"Null\":\"string\"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?r:a?i(t):\"Object\"==(n=i(t))&&\"function\"==typeof t.callee?\"Arguments\":n}},function(e,t,r){\"use strict\";var n=r(18);e.exports=function(){var e=n(this),t=\"\";return e.global&&(t+=\"g\"),e.ignoreCase&&(t+=\"i\"),e.multiline&&(t+=\"m\"),e.dotAll&&(t+=\"s\"),e.unicode&&(t+=\"u\"),e.sticky&&(t+=\"y\"),t}},function(e,t,r){var n=r(47),i=r(35),o=function(e){return function(t,r){var o,a,s=String(i(t)),u=n(r),l=s.length;return u<0||u>=l?e?\"\":void 0:(o=s.charCodeAt(u))<55296||o>56319||u+1===l||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):o:e?s.slice(u,u+2):a-56320+(o-55296<<10)+65536}};e.exports={codeAt:o(!1),charAt:o(!0)}},function(e,t,r){var n=r(4),i=r(27),o=r(61);n({target:\"Object\",stat:!0,forced:r(8)((function(){o(1)}))},{keys:function(e){return o(i(e))}})},function(e,t,r){\"use strict\";var n=r(4),i=r(11),o=r(123),a=r(25),s=r(140),u=r(141),l=r(142),c=r(13),h=r(8),p=r(208),f=r(62),d=r(209);e.exports=function(e,t,r){var m=-1!==e.indexOf(\"Map\"),y=-1!==e.indexOf(\"Weak\"),v=m?\"set\":\"add\",_=i[e],g=_&&_.prototype,b=_,x={},w=function(e){var t=g[e];a(g,e,\"add\"==e?function(e){return t.call(this,0===e?0:e),this}:\"delete\"==e?function(e){return!(y&&!c(e))&&t.call(this,0===e?0:e)}:\"get\"==e?function(e){return y&&!c(e)?void 0:t.call(this,0===e?0:e)}:\"has\"==e?function(e){return!(y&&!c(e))&&t.call(this,0===e?0:e)}:function(e,r){return t.call(this,0===e?0:e,r),this})};if(o(e,\"function\"!=typeof _||!(y||g.forEach&&!h((function(){(new _).entries().next()})))))b=r.getConstructor(t,e,m,v),s.REQUIRED=!0;else if(o(e,!0)){var E=new b,D=E[v](y?{}:-0,1)!=E,S=h((function(){E.has(1)})),C=p((function(e){new _(e)})),A=!y&&h((function(){for(var e=new _,t=5;t--;)e[v](t,t);return!e.has(-0)}));C||((b=t((function(t,r){l(t,b,e);var n=d(new _,t,b);return null!=r&&u(r,n[v],n,m),n}))).prototype=g,g.constructor=b),(S||A)&&(w(\"delete\"),w(\"has\"),m&&w(\"get\")),(A||D)&&w(v),y&&g.clear&&delete g.clear}return x[e]=b,n({global:!0,forced:b!=_},x),f(b,e),y||r.setStrong(b,e,m),b}},function(e,t,r){var n=r(45),i=r(13),o=r(14),a=r(15).f,s=r(58),u=r(204),l=s(\"meta\"),c=0,h=Object.isExtensible||function(){return!0},p=function(e){a(e,l,{value:{objectID:\"O\"+ ++c,weakData:{}}})},f=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!i(e))return\"symbol\"==typeof e?e:(\"string\"==typeof e?\"S\":\"P\")+e;if(!o(e,l)){if(!h(e))return\"F\";if(!t)return\"E\";p(e)}return e[l].objectID},getWeakData:function(e,t){if(!o(e,l)){if(!h(e))return!0;if(!t)return!1;p(e)}return e[l].weakData},onFreeze:function(e){return u&&f.REQUIRED&&h(e)&&!o(e,l)&&p(e),e}};n[l]=!0},function(e,t,r){var n=r(18),i=r(205),o=r(26),a=r(87),s=r(206),u=r(207),l=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,r,c,h){var p,f,d,m,y,v,_,g=a(t,r,c?2:1);if(h)p=e;else{if(\"function\"!=typeof(f=s(e)))throw TypeError(\"Target is not iterable\");if(i(f)){for(d=0,m=o(e.length);m>d;d++)if((y=c?g(n(_=e[d])[0],_[1]):g(e[d]))&&y instanceof l)return y;return new l(!1)}p=f.call(e)}for(v=p.next;!(_=v.call(p)).done;)if(\"object\"==typeof(y=u(p,g,_.value,c))&&y&&y instanceof l)return y;return new l(!1)}).stop=function(e){return new l(!0,e)}},function(e,t){e.exports=function(e,t,r){if(!(e instanceof t))throw TypeError(\"Incorrect \"+(r?r+\" \":\"\")+\"invocation\");return e}},function(e,t,r){\"use strict\";var n=r(15).f,i=r(60),o=r(210),a=r(87),s=r(142),u=r(141),l=r(88),c=r(211),h=r(16),p=r(140).fastKey,f=r(43),d=f.set,m=f.getterFor;e.exports={getConstructor:function(e,t,r,l){var c=e((function(e,n){s(e,c,t),d(e,{type:t,index:i(null),first:void 0,last:void 0,size:0}),h||(e.size=0),null!=n&&u(n,e[l],e,r)})),f=m(t),y=function(e,t,r){var n,i,o=f(e),a=v(e,t);return a?a.value=r:(o.last=a={index:i=p(t,!0),key:t,value:r,previous:n=o.last,next:void 0,removed:!1},o.first||(o.first=a),n&&(n.next=a),h?o.size++:e.size++,\"F\"!==i&&(o.index[i]=a)),e},v=function(e,t){var r,n=f(e),i=p(t);if(\"F\"!==i)return n.index[i];for(r=n.first;r;r=r.next)if(r.key==t)return r};return o(c.prototype,{clear:function(){for(var e=f(this),t=e.index,r=e.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete t[r.index],r=r.next;e.first=e.last=void 0,h?e.size=0:this.size=0},delete:function(e){var t=f(this),r=v(this,e);if(r){var n=r.next,i=r.previous;delete t.index[r.index],r.removed=!0,i&&(i.next=n),n&&(n.previous=i),t.first==r&&(t.first=n),t.last==r&&(t.last=i),h?t.size--:this.size--}return!!r},forEach:function(e){for(var t,r=f(this),n=a(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:r.first;)for(n(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!v(this,e)}}),o(c.prototype,r?{get:function(e){var t=v(this,e);return t&&t.value},set:function(e,t){return y(this,0===e?0:e,t)}}:{add:function(e){return y(this,e=0===e?0:e,e)}}),h&&n(c.prototype,\"size\",{get:function(){return f(this).size}}),c},setStrong:function(e,t,r){var n=t+\" Iterator\",i=m(t),o=m(n);l(e,t,(function(e,t){d(this,{type:n,target:e,state:i(e),kind:t,last:void 0})}),(function(){for(var e=o(this),t=e.kind,r=e.last;r&&r.removed;)r=r.previous;return e.target&&(e.last=r=r?r.next:e.state.first)?\"keys\"==t?{value:r.key,done:!1}:\"values\"==t?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),r?\"entries\":\"values\",!r,!0),c(t)}}},function(e,t,r){\"use strict\";var n,i=r(4),o=r(55).f,a=r(26),s=r(222),u=r(35),l=r(224),c=r(44),h=\"\".endsWith,p=Math.min,f=l(\"endsWith\");i({target:\"String\",proto:!0,forced:!!(c||f||(n=o(String.prototype,\"endsWith\"),!n||n.writable))&&!f},{endsWith:function(e){var t=String(u(this));s(e);var r=arguments.length>1?arguments[1]:void 0,n=a(t.length),i=void 0===r?n:p(a(r),n),o=String(e);return h?h.call(t,o,i):t.slice(i-o.length,i)===o}})},function(e,t,r){\"use strict\";(function(e){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <http://feross.org>\n * @license  MIT\n */\nvar n=r(229),i=r(230),o=r(231);function a(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()<t)throw new RangeError(\"Invalid typed array length\");return u.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=u.prototype:(null===e&&(e=new u(t)),e.length=t),e}function u(e,t,r){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(e,t,r);if(\"number\"==typeof e){if(\"string\"==typeof t)throw new Error(\"If encoding is specified then the first argument must be a string\");return h(this,e)}return l(this,e,t,r)}function l(e,t,r,n){if(\"number\"==typeof t)throw new TypeError('\"value\" argument must not be a number');return\"undefined\"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError(\"'offset' is out of bounds\");if(t.byteLength<r+(n||0))throw new RangeError(\"'length' is out of bounds\");t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n);u.TYPED_ARRAY_SUPPORT?(e=t).__proto__=u.prototype:e=p(e,t);return e}(e,t,r,n):\"string\"==typeof t?function(e,t,r){\"string\"==typeof r&&\"\"!==r||(r=\"utf8\");if(!u.isEncoding(r))throw new TypeError('\"encoding\" must be a valid string encoding');var n=0|d(t,r),i=(e=s(e,n)).write(t,r);i!==n&&(e=e.slice(0,i));return e}(e,t,r):function(e,t){if(u.isBuffer(t)){var r=0|f(t.length);return 0===(e=s(e,r)).length||t.copy(e,0,0,r),e}if(t){if(\"undefined\"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||\"length\"in t)return\"number\"!=typeof t.length||(n=t.length)!=n?s(e,0):p(e,t);if(\"Buffer\"===t.type&&o(t.data))return p(e,t.data)}var n;throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\")}(e,t)}function c(e){if(\"number\"!=typeof e)throw new TypeError('\"size\" argument must be a number');if(e<0)throw new RangeError('\"size\" argument must not be negative')}function h(e,t){if(c(t),e=s(e,t<0?0:0|f(t)),!u.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function p(e,t){var r=t.length<0?0:0|f(t.length);e=s(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function f(e){if(e>=a())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+a().toString(16)+\" bytes\");return 0|e}function d(e,t){if(u.isBuffer(e))return e.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;\"string\"!=typeof e&&(e=\"\"+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return z(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return U(e).length;default:if(n)return z(e).length;t=(\"\"+t).toLowerCase(),n=!0}}function m(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(t>>>=0))return\"\";for(e||(e=\"utf8\");;)switch(e){case\"hex\":return T(this,t,r);case\"utf8\":case\"utf-8\":return C(this,t,r);case\"ascii\":return A(this,t,r);case\"latin1\":case\"binary\":return N(this,t,r);case\"base64\":return S(this,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return O(this,t,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase(),n=!0}}function y(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function v(e,t,r,n,i){if(0===e.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof t&&(t=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:_(e,t,r,n,i);if(\"number\"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):_(e,[t],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function _(e,t,r,n,i){var o,a=1,s=e.length,u=t.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,r/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var c=-1;for(o=r;o<s;o++)if(l(e,o)===l(t,-1===c?0:o-c)){if(-1===c&&(c=o),o-c+1===u)return c*a}else-1!==c&&(o-=o-c),c=-1}else for(r+u>s&&(r=s-u),o=r;o>=0;o--){for(var h=!0,p=0;p<u;p++)if(l(e,o+p)!==l(t,p)){h=!1;break}if(h)return o}return-1}function g(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var a=0;a<n;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[r+a]=s}return a}function b(e,t,r,n){return G(z(t,e.length-r),e,r,n)}function x(e,t,r,n){return G(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function w(e,t,r,n){return x(e,t,r,n)}function E(e,t,r,n){return G(U(t),e,r,n)}function D(e,t,r,n){return G(function(e,t){for(var r,n,i,o=[],a=0;a<e.length&&!((t-=2)<0);++a)r=e.charCodeAt(a),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function S(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function C(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var o,a,s,u,l=e[i],c=null,h=l>239?4:l>223?3:l>191?2:1;if(i+h<=r)switch(h){case 1:l<128&&(c=l);break;case 2:128==(192&(o=e[i+1]))&&(u=(31&l)<<6|63&o)>127&&(c=u);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(u=(15&l)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&l)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=h}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r=\"\",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=4096));return r}(n)}t.Buffer=u,t.SlowBuffer=function(e){+e!=e&&(e=0);return u.alloc(+e)},t.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&\"function\"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),u.poolSize=8192,u._augment=function(e){return e.__proto__=u.prototype,e},u.from=function(e,t,r){return l(null,e,t,r)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,\"undefined\"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(e,t,r){return function(e,t,r,n){return c(t),t<=0?s(e,t):void 0!==r?\"string\"==typeof n?s(e,t).fill(r,n):s(e,t).fill(r):s(e,t)}(null,e,t,r)},u.allocUnsafe=function(e){return h(null,e)},u.allocUnsafeSlow=function(e){return h(null,e)},u.isBuffer=function(e){return!(null==e||!e._isBuffer)},u.compare=function(e,t){if(!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError(\"Arguments must be Buffers\");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,o=Math.min(r,n);i<o;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0},u.isEncoding=function(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},u.concat=function(e,t){if(!o(e))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=u.allocUnsafe(t),i=0;for(r=0;r<e.length;++r){var a=e[r];if(!u.isBuffer(a))throw new TypeError('\"list\" argument must be an Array of Buffers');a.copy(n,i),i+=a.length}return n},u.byteLength=d,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var t=0;t<e;t+=2)y(this,t,t+1);return this},u.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var t=0;t<e;t+=4)y(this,t,t+3),y(this,t+1,t+2);return this},u.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var t=0;t<e;t+=8)y(this,t,t+7),y(this,t+1,t+6),y(this,t+2,t+5),y(this,t+3,t+4);return this},u.prototype.toString=function(){var e=0|this.length;return 0===e?\"\":0===arguments.length?C(this,0,e):m.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e=\"\",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString(\"hex\",0,r).match(/.{2}/g).join(\" \"),this.length>r&&(e+=\" ... \")),\"<Buffer \"+e+\">\"},u.prototype.compare=function(e,t,r,n,i){if(!u.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),l=this.slice(n,i),c=e.slice(t,r),h=0;h<s;++h)if(l[h]!==c[h]){o=l[h],a=c[h];break}return o<a?-1:a<o?1:0},u.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},u.prototype.indexOf=function(e,t,r){return v(this,e,t,r,!0)},u.prototype.lastIndexOf=function(e,t,r){return v(this,e,t,r,!1)},u.prototype.write=function(e,t,r,n){if(void 0===t)n=\"utf8\",r=this.length,t=0;else if(void 0===r&&\"string\"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");t|=0,isFinite(r)?(r|=0,void 0===n&&(n=\"utf8\")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var o=!1;;)switch(n){case\"hex\":return g(this,e,t,r);case\"utf8\":case\"utf-8\":return b(this,e,t,r);case\"ascii\":return x(this,e,t,r);case\"latin1\":case\"binary\":return w(this,e,t,r);case\"base64\":return E(this,e,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return D(this,e,t,r);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function A(e,t,r){var n=\"\";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}function N(e,t,r){var n=\"\";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function T(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i=\"\",o=t;o<r;++o)i+=R(e[o]);return i}function O(e,t,r){for(var n=e.slice(t,r),i=\"\",o=0;o<n.length;o+=2)i+=String.fromCharCode(n[o]+256*n[o+1]);return i}function F(e,t,r){if(e%1!=0||e<0)throw new RangeError(\"offset is not uint\");if(e+t>r)throw new RangeError(\"Trying to access beyond buffer length\")}function k(e,t,r,n,i,o){if(!u.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('\"value\" argument is out of bounds');if(r+n>e.length)throw new RangeError(\"Index out of range\")}function P(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i<o;++i)e[r+i]=(t&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function I(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i<o;++i)e[r+i]=t>>>8*(n?i:3-i)&255}function L(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function M(e,t,r,n,o){return o||L(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function B(e,t,r,n,o){return o||L(e,0,r,8),i.write(e,t,r,n,52,8),r+8}u.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),u.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=u.prototype;else{var i=t-e;r=new u(i,void 0);for(var o=0;o<i;++o)r[o]=this[o+e]}return r},u.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||F(e,t,this.length);for(var n=this[e],i=1,o=0;++o<t&&(i*=256);)n+=this[e+o]*i;return n},u.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||F(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},u.prototype.readUInt8=function(e,t){return t||F(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||F(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||F(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||F(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||F(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||F(e,t,this.length);for(var n=this[e],i=1,o=0;++o<t&&(i*=256);)n+=this[e+o]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*t)),n},u.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||F(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},u.prototype.readInt8=function(e,t){return t||F(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||F(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){t||F(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return t||F(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||F(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||F(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||F(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||F(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||F(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||k(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o<r&&(i*=256);)this[t+o]=e/i&255;return t+r},u.prototype.writeUIntBE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||k(this,e,t,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r},u.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):I(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):I(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);k(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o<r&&(a*=256);)e<0&&0===s&&0!==this[t+o-1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},u.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);k(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},u.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):I(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||k(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):I(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,r){return M(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return M(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return B(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return B(this,e,t,!1,r)},u.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError(\"targetStart out of bounds\");if(r<0||r>=this.length)throw new RangeError(\"sourceStart out of bounds\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i,o=n-r;if(this===e&&r<t&&t<n)for(i=o-1;i>=0;--i)e[i+t]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i<o;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+o),t);return o},u.prototype.fill=function(e,t,r,n){if(\"string\"==typeof e){if(\"string\"==typeof t?(n=t,t=0,r=this.length):\"string\"==typeof r&&(n=r,r=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==n&&\"string\"!=typeof n)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof n&&!u.isEncoding(n))throw new TypeError(\"Unknown encoding: \"+n)}else\"number\"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError(\"Out of range index\");if(r<=t)return this;var o;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),\"number\"==typeof e)for(o=t;o<r;++o)this[o]=e;else{var a=u.isBuffer(e)?e:z(new u(e,n).toString()),s=a.length;for(o=0;o<r-t;++o)this[o+t]=a[o%s]}return this};var j=/[^+\\/0-9A-Za-z-_]/g;function R(e){return e<16?\"0\"+e.toString(16):e.toString(16)}function z(e,t){var r;t=t||1/0;for(var n=e.length,i=null,o=[],a=0;a<n;++a){if((r=e.charCodeAt(a))>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function U(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}(e).replace(j,\"\")).length<2)return\"\";for(;e.length%4!=0;)e+=\"=\";return e}(e))}function G(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}}).call(this,r(78))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isASCIIByte=function(e){return e>=0&&e<=127}},function(e,t,r){\"use strict\";var n=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},i=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(n(arguments[t]));return e};Object.defineProperty(t,\"__esModule\",{value:!0}),t.length=function(e){return e.length},t.byteLowercase=function(e){for(var t=0;t<e.length;t++){var r=e[t];r>=65&&r<=90&&(e[t]=r+32)}},t.byteUppercase=function(e){for(var t=0;t<e.length;t++){var r=e[t];r>=97&&r<=122&&(e[t]=r-32)}},t.byteCaseInsensitiveMatch=function(e,t){if(e.length!==t.length)return!1;for(var r=0;r<e.length;r++){var n=e[r],i=t[r];if(n>=65&&n<=90&&(n+=32),i>=65&&i<=90&&(i+=32),n!==i)return!1}return!0},t.startsWith=function(e,t){for(var r=0;;){if(r>=e.length)return!1;if(r>=t.length)return!0;if(e[r]!==t[r])return!1;r++}},t.byteLessThan=function(e,t){for(var r=0;;){if(r>=e.length)return!1;if(r>=t.length)return!0;var n=e[r],i=t[r];if(n<i)return!0;if(n>i)return!1;r++}},t.isomorphicDecode=function(e){return String.fromCodePoint.apply(String,i(e))}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(6),i=r(7),o=r(0),a=r(12),s=function(){function e(e){this._associatedDocument=e||n.dom.window.document}return e.prototype.createDocumentType=function(e,t,r){return o.namespace_validate(e),o.create_documentType(this._associatedDocument,e,t,r)},e.prototype.createDocument=function(e,t,r){void 0===r&&(r=null);var n=o.create_xmlDocument(),a=null;return t&&(a=o.document_internalCreateElementNS(n,e,t)),r&&n.appendChild(r),a&&n.appendChild(a),n._origin=this._associatedDocument._origin,e===i.namespace.HTML?n._contentType=\"application/xhtml+xml\":e===i.namespace.SVG?n._contentType=\"image/svg+xml\":n._contentType=\"application/xml\",n},e.prototype.createHTMLDocument=function(e){var t=o.create_document();t._type=\"html\",t._contentType=\"text/html\",t.appendChild(o.create_documentType(t,\"html\",\"\",\"\"));var r=o.element_createAnElement(t,\"html\",i.namespace.HTML);t.appendChild(r);var n=o.element_createAnElement(t,\"head\",i.namespace.HTML);if(r.appendChild(n),void 0!==e){var a=o.element_createAnElement(t,\"title\",i.namespace.HTML);n.appendChild(a);var s=o.create_text(t,e);a.appendChild(s)}var u=o.element_createAnElement(t,\"body\",i.namespace.HTML);return r.appendChild(u),t._origin=this._associatedDocument._origin,t},e.prototype.hasFeature=function(){return!0},e._create=function(t){return new e(t)},e}();t.DOMImplementationImpl=s,a.idl_defineConst(s.prototype,\"_ID\",\"@oozcitak/dom\")},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(70),a=r(1),s=r(0),u=function(e){function t(){var t=e.call(this)||this;return t._signalSlots=new Set,t._mutationObserverMicrotaskQueued=!1,t._mutationObservers=new Set,t._iteratorList=new a.FixedSizeSet,t._associatedDocument=s.create_document(),t}return i(t,e),Object.defineProperty(t.prototype,\"document\",{get:function(){return this._associatedDocument},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"event\",{get:function(){return this._currentEvent},enumerable:!0,configurable:!0}),t._create=function(){return new t},t}(o.EventTargetImpl);t.WindowImpl=u},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),i=function(){function e(){}return e.isNode=function(e){return!!e&&void 0!==e._nodeType},e.isDocumentNode=function(t){return e.isNode(t)&&t._nodeType===n.NodeType.Document},e.isDocumentTypeNode=function(t){return e.isNode(t)&&t._nodeType===n.NodeType.DocumentType},e.isDocumentFragmentNode=function(t){return e.isNode(t)&&t._nodeType===n.NodeType.DocumentFragment},e.isAttrNode=function(t){return e.isNode(t)&&t._nodeType===n.NodeType.Attribute},e.isCharacterDataNode=function(t){if(!e.isNode(t))return!1;var r=t._nodeType;return r===n.NodeType.Text||r===n.NodeType.ProcessingInstruction||r===n.NodeType.Comment||r===n.NodeType.CData},e.isTextNode=function(t){return e.isNode(t)&&(t._nodeType===n.NodeType.Text||t._nodeType===n.NodeType.CData)},e.isExclusiveTextNode=function(t){return e.isNode(t)&&t._nodeType===n.NodeType.Text},e.isCDATASectionNode=function(t){return e.isNode(t)&&t._nodeType===n.NodeType.CData},e.isCommentNode=function(t){return e.isNode(t)&&t._nodeType===n.NodeType.Comment},e.isProcessingInstructionNode=function(t){return e.isNode(t)&&t._nodeType===n.NodeType.ProcessingInstruction},e.isElementNode=function(t){return e.isNode(t)&&t._nodeType===n.NodeType.Element},e.isCustomElementNode=function(t){return e.isElementNode(t)&&\"custom\"===t._customElementState},e.isShadowRoot=function(e){return!!e&&void 0!==e.host},e.isMouseEvent=function(e){return!!e&&void 0!==e.screenX&&null!=e.screenY},e.isSlotable=function(t){return!!t&&void 0!==t._name&&void 0!==t._assignedSlot&&(e.isTextNode(t)||e.isElementNode(t))},e.isSlot=function(t){return!!t&&void 0!==t._name&&void 0!==t._assignedNodes&&e.isElementNode(t)},e.isWindow=function(e){return!!e&&void 0!==e.navigator},e.isEventListener=function(e){return!!e&&void 0!==e.handleEvent},e.isRegisteredObserver=function(e){return!!e&&void 0!==e.observer&&void 0!==e.options},e.isTransientRegisteredObserver=function(t){return!!t&&void 0!==t.source&&e.isRegisteredObserver(t)},e}();t.Guard=i},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(){return e.call(this)||this}return i(t,e),t}(r(98).DocumentImpl);t.XMLDocumentImpl=o},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},i=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a};Object.defineProperty(t,\"__esModule\",{value:!0});var o,a=r(1),s=r(243),u=r(7),l=r(244),c={ftp:21,file:null,http:80,https:443,ws:80,wss:443},h=/[\\0-\\x1F\\x7F-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,p=/[ \"<>`]|[\\0-\\x1F\\x7F-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,f=/[ \"<>`#?{}]|[\\0-\\x1F\\x7F-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,d=/[ \"<>`#?{}/:;=@\\[\\]\\\\\\^\\|]|[\\0-\\x1F\\x7F-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,m=/[0-9A-Za-z!\\$&-\\/:;=\\?@_~\\xA0-\\uD7FF\\uE000-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uD83E\\uD840-\\uD87E\\uD880-\\uD8BE\\uD8C0-\\uD8FE\\uD900-\\uD93E\\uD940-\\uD97E\\uD980-\\uD9BE\\uD9C0-\\uD9FE\\uDA00-\\uDA3E\\uDA40-\\uDA7E\\uDA80-\\uDABE\\uDAC0-\\uDAFE\\uDB00-\\uDB3E\\uDB40-\\uDB7E\\uDB80-\\uDBBE\\uDBC0-\\uDBFE][\\uDC00-\\uDFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDC00-\\uDFFD]/,y=/[\\0\\t\\f\\r #%/:?@\\[\\\\\\]]/;function v(e){void 0!==o&&o.call(null,\"Validation Error: \"+e)}function _(){return{scheme:\"\",username:\"\",password:\"\",host:null,port:null,path:[],query:null,fragment:null,_cannotBeABaseURLFlag:!1,_blobURLEntry:null}}function g(e){return e in c}function b(e){return g(e.scheme)}function x(e){return c[e]||null}function w(e){return\"\"!==e.username||\"\"!==e.password}function E(e,t){var r,i;void 0===t&&(t=!1);var o=e.scheme+\":\";if(null!==e.host?(o+=\"//\",w(e)&&(o+=e.username,\"\"!==e.password&&(o+=\":\"+e.password),o+=\"@\"),o+=D(e.host),null!==e.port&&(o+=\":\"+e.port)):null===e.host&&\"file\"===e.scheme&&(o+=\"//\"),e._cannotBeABaseURLFlag)o+=e.path[0];else try{for(var a=n(e.path),s=a.next();!s.done;s=a.next()){o+=\"/\"+s.value}}catch(e){r={error:e}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(r)throw r.error}}return null!==e.query&&(o+=\"?\"+e.query),t||null===e.fragment||(o+=\"#\"+e.fragment),o}function D(e){return a.isNumber(e)?S(e):a.isArray(e)?\"[\"+C(e)+\"]\":e}function S(e){for(var t=\"\",r=e,n=1;n<=4;n++)t=(r%256).toString()+t,4!==n&&(t=\".\"+t),r=Math.floor(r/256);return t}function C(e){for(var t=\"\",r=null,n=-1,i=0,o=0,a=0;a<8;a++)if(0===e[a]){i=1;for(var s=a+1;s<8&&0===e[s];s++)i++;i>o&&(o=i,n=a)}o>1&&(r=n);for(var u=!1,l=0;l<8;l++)u&&0===e[l]||(u&&(u=!1),r!==l?(t+=e[l].toString(16),7!==l&&(t+=\":\")):(t+=0===l?\"::\":\":\",u=!0));return t}function A(e,t,r,i,o){var l,c,y,_;if(void 0===i){i={scheme:\"\",username:\"\",password:\"\",host:null,port:null,path:[],query:null,fragment:null,_cannotBeABaseURLFlag:!1,_blobURLEntry:null};var E=/^[\\u0000-\\u001F\\u0020]+/,D=/[\\u0000-\\u001F\\u0020]+$/;(E.test(e)||D.test(e))&&v(\"Input string contains leading or trailing control characters or space.\"),e=(e=e.replace(E,\"\")).replace(D,\"\")}var S=/[\\u0009\\u000A\\u000D]/g;S.test(e)&&v(\"Input string contains tab or newline characters.\"),e=e.replace(S,\"\");var C=void 0===o?s.ParserState.SchemeStart:o;void 0===t&&(t=null);for(var A=void 0===r||\"replacement\"===r||\"UTF-16BE\"===r||\"UTF-16LE\"===r?\"UTF-8\":r,L=\"\",M=!1,B=!1,j=!1,R=new a.StringWalker(e);;){switch(C){case s.ParserState.SchemeStart:if(u.codePoint.ASCIIAlpha.test(R.c()))L+=R.c().toLowerCase(),C=s.ParserState.Scheme;else{if(void 0!==o)return v(\"Invalid scheme start character.\"),null;C=s.ParserState.NoScheme,R.pointer--}break;case s.ParserState.Scheme:if(u.codePoint.ASCIIAlphanumeric.test(R.c())||\"+\"===R.c()||\"-\"===R.c()||\".\"===R.c())L+=R.c().toLowerCase();else{if(\":\"!==R.c()){if(void 0===o){L=\"\",C=s.ParserState.NoScheme,R.pointer=0;continue}return v(\"Invalid input string.\"),null}if(void 0!==o){if(g(i.scheme)&&!g(L))return i;if(!g(i.scheme)&&g(L))return i;if((w(i)||null!==i.port)&&\"file\"===L)return i;if(\"file\"===i.scheme&&(\"\"===i.host||null===i.host))return i}if(i.scheme=L,void 0!==o)return i.port===x(i.scheme)&&(i.port=null),i;L=\"\",\"file\"===i.scheme?(R.remaining().startsWith(\"//\")||v(\"Invalid file URL scheme, '//' expected.\"),C=s.ParserState.File):b(i)&&null!==t&&t.scheme===i.scheme?C=s.ParserState.SpecialRelativeOrAuthority:b(i)?C=s.ParserState.SpecialAuthoritySlashes:R.remaining().startsWith(\"/\")?(C=s.ParserState.PathOrAuthority,R.pointer++):(i._cannotBeABaseURLFlag=!0,i.path.push(\"\"),C=s.ParserState.CannotBeABaseURLPath)}break;case s.ParserState.NoScheme:if(null===t||t._cannotBeABaseURLFlag&&\"#\"!==R.c())return v(\"Invalid input string.\"),null;t._cannotBeABaseURLFlag&&\"#\"===R.c()?(i.scheme=t.scheme,i.path=u.list.clone(t.path),i.query=t.query,i.fragment=\"\",i._cannotBeABaseURLFlag=!0,C=s.ParserState.Fragment):\"file\"!==t.scheme?(C=s.ParserState.Relative,R.pointer--):(C=s.ParserState.File,R.pointer--);break;case s.ParserState.SpecialRelativeOrAuthority:\"/\"===R.c()&&R.remaining().startsWith(\"/\")?(C=s.ParserState.SpecialAuthorityIgnoreSlashes,R.pointer++):(v(\"Invalid input string.\"),C=s.ParserState.Relative,R.pointer--);break;case s.ParserState.PathOrAuthority:\"/\"===R.c()?C=s.ParserState.Authority:(C=s.ParserState.Path,R.pointer--);break;case s.ParserState.Relative:if(null===t)throw new Error(\"Invalid parser state. Base URL is null.\");switch(i.scheme=t.scheme,R.c()){case\"\":i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=u.list.clone(t.path),i.query=t.query;break;case\"/\":C=s.ParserState.RelativeSlash;break;case\"?\":i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=u.list.clone(t.path),i.query=\"\",C=s.ParserState.Query;break;case\"#\":i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=u.list.clone(t.path),i.query=t.query,i.fragment=\"\",C=s.ParserState.Fragment;break;default:b(i)&&\"\\\\\"===R.c()?(v(\"Invalid input string.\"),C=s.ParserState.RelativeSlash):(i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=u.list.clone(t.path),0!==i.path.length&&i.path.splice(i.path.length-1,1),C=s.ParserState.Path,R.pointer--)}break;case s.ParserState.RelativeSlash:if(!b(i)||\"/\"!==R.c()&&\"\\\\\"!==R.c())if(\"/\"===R.c())C=s.ParserState.Authority;else{if(null===t)throw new Error(\"Invalid parser state. Base URL is null.\");i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,C=s.ParserState.Path,R.pointer--}else\"\\\\\"===R.c()&&v(\"Invalid input string.\"),C=s.ParserState.SpecialAuthorityIgnoreSlashes;break;case s.ParserState.SpecialAuthoritySlashes:\"/\"===R.c()&&R.remaining().startsWith(\"/\")?(C=s.ParserState.SpecialAuthorityIgnoreSlashes,R.pointer++):(v(\"Expected '//'.\"),C=s.ParserState.SpecialAuthorityIgnoreSlashes,R.pointer--);break;case s.ParserState.SpecialAuthorityIgnoreSlashes:\"/\"!==R.c()&&\"\\\\\"!==R.c()?(C=s.ParserState.Authority,R.pointer--):v(\"Unexpected '/' or '\\\\'.\");break;case s.ParserState.Authority:if(\"@\"===R.c()){v(\"Unexpected '@'.\"),M&&(L=\"%40\"+L),M=!0;try{for(var U=(l=void 0,n(L)),G=U.next();!G.done;G=U.next()){var q=G.value;if(\":\"!==q||j){var W=X(q,d);j?i.password+=W:i.username+=W}else j=!0}}catch(e){l={error:e}}finally{try{G&&!G.done&&(c=U.return)&&c.call(U)}finally{if(l)throw l.error}}L=\"\"}else if(\"\"===R.c()||\"/\"===R.c()||\"?\"===R.c()||\"#\"===R.c()||b(i)&&\"\\\\\"===R.c()){if(M&&\"\"===L)return v(\"Invalid input string.\"),null;R.pointer-=L.length+1,L=\"\",C=s.ParserState.Host}else L+=R.c();break;case s.ParserState.Host:case s.ParserState.Hostname:if(void 0!==o&&\"file\"===i.scheme)R.pointer--,C=s.ParserState.FileHost;else if(\":\"!==R.c()||B)if(\"\"===R.c()||\"/\"===R.c()||\"?\"===R.c()||\"#\"===R.c()||b(i)&&\"\\\\\"===R.c()){if(R.pointer--,b(i)&&\"\"===L)return v(\"Invalid input string.\"),null;if(void 0!==o&&\"\"===L&&(w(i)||null!==i.port))return v(\"Invalid input string.\"),i;if(null===(J=I(L,!b(i))))return null;if(i.host=J,L=\"\",C=s.ParserState.PathStart,void 0!==o)return i}else\"[\"===R.c()&&(B=!0),\"]\"===R.c()&&(B=!1),L+=R.c();else{if(\"\"===L)return v(\"Invalid input string.\"),null;if(null===(J=I(L,!b(i))))return null;if(i.host=J,L=\"\",C=s.ParserState.Port,o===s.ParserState.Hostname)return i}break;case s.ParserState.Port:if(u.codePoint.ASCIIDigit.test(R.c()))L+=R.c();else{if(!(\"\"===R.c()||\"/\"===R.c()||\"?\"===R.c()||\"#\"===R.c()||b(i)&&\"\\\\\"===R.c()||o))return v(\"Invalid input string.\"),null;if(\"\"!==L&&\"\"!==L){var H=parseInt(L,10);if(H>Math.pow(2,16)-1)return v(\"Invalid port number.\"),null;i.port=H===x(i.scheme)?null:H,L=\"\"}if(void 0!==o)return i;C=s.ParserState.PathStart,R.pointer--}break;case s.ParserState.File:if(i.scheme=\"file\",\"/\"===R.c()||\"\\\\\"===R.c())\"\\\\\"===R.c()&&v(\"Invalid input string.\"),C=s.ParserState.FileSlash;else if(null!==t&&\"file\"===t.scheme)switch(R.c()){case\"\":i.host=t.host,i.path=u.list.clone(t.path),i.query=t.query;break;case\"?\":i.host=t.host,i.path=u.list.clone(t.path),i.query=\"\",C=s.ParserState.Query;break;case\"#\":i.host=t.host,i.path=u.list.clone(t.path),i.query=t.query,i.fragment=\"\",C=s.ParserState.Fragment;break;default:P(R.substring())?v(\"Unexpected windows drive letter in input string.\"):(i.host=t.host,i.path=u.list.clone(t.path),O(i)),C=s.ParserState.Path,R.pointer--}else C=s.ParserState.Path,R.pointer--;break;case s.ParserState.FileSlash:\"/\"===R.c()||\"\\\\\"===R.c()?(\"\\\\\"===R.c()&&v(\"Invalid input string.\"),C=s.ParserState.FileHost):(null===t||\"file\"!==t.scheme||P(R.substring())||(F(t.path[0])?i.path.push(t.path[0]):i.host=t.host),C=s.ParserState.Path,R.pointer--);break;case s.ParserState.FileHost:if(\"\"===R.c()||\"/\"===R.c()||\"\\\\\"===R.c()||\"?\"===R.c()||\"#\"===R.c())if(R.pointer--,void 0===o&&k(L))v(\"Unexpected windows drive letter in input string.\"),C=s.ParserState.Path;else if(\"\"===L){if(i.host=\"\",void 0!==o)return i;C=s.ParserState.PathStart}else{var J;if(null===(J=I(L,!b(i))))return null;if(\"localhost\"===J&&(J=\"\"),i.host=J,void 0!==o)return i;L=\"\",C=s.ParserState.PathStart}else L+=R.c();break;case s.ParserState.PathStart:b(i)?(\"\\\\\"===R.c()&&v(\"Invalid input string.\"),C=s.ParserState.Path,\"/\"!==R.c()&&\"\\\\\"!==R.c()&&R.pointer--):void 0===o&&\"?\"===R.c()?(i.query=\"\",C=s.ParserState.Query):void 0===o&&\"#\"===R.c()?(i.fragment=\"\",C=s.ParserState.Fragment):\"\"!==R.c()&&(C=s.ParserState.Path,\"/\"!==R.c()&&R.pointer--);break;case s.ParserState.Path:if(\"\"===R.c()||\"/\"===R.c()||b(i)&&\"\\\\\"===R.c()||void 0===o&&(\"?\"===R.c()||\"#\"===R.c())){if(b(i)&&\"\\\\\"===R.c()&&v(\"Invalid input string.\"),T(L))O(i),\"/\"===R.c()||b(i)&&\"\\\\\"===R.c()||i.path.push(\"\");else if(!N(L)||\"/\"===R.c()||b(i)&&\"\\\\\"===R.c()){if(!N(L)){if(\"file\"===i.scheme&&0===i.path.length&&k(L)){null!==i.host&&\"\"!==i.host&&(v(\"Invalid input string.\"),i.host=\"\");var Y=Array.from(L);L=Y.slice(0,1)+\":\"+Y.slice(2)}i.path.push(L)}}else i.path.push(\"\");if(L=\"\",\"file\"===i.scheme&&(\"\"===R.c()||\"?\"===R.c()||\"#\"===R.c()))for(;i.path.length>1&&\"\"===i.path[0];)v(\"Invalid input string.\"),i.path.splice(0,1);\"?\"===R.c()&&(i.query=\"\",C=s.ParserState.Query),\"#\"===R.c()&&(i.fragment=\"\",C=s.ParserState.Fragment)}else m.test(R.c())||\"%\"===R.c()||v(\"Character is not a URL code point or a percent encoded character.\"),\"%\"!==R.c()||/^[0-9a-fA-F][0-9a-fA-F]/.test(R.remaining())||v(\"Percent encoded character must be followed by two hex digits.\"),L+=X(R.c(),f);break;case s.ParserState.CannotBeABaseURLPath:\"?\"===R.c()?(i.query=\"\",C=s.ParserState.Query):\"#\"===R.c()?(i.fragment=\"\",C=s.ParserState.Fragment):(\"\"===R.c()||m.test(R.c())||\"%\"===R.c()||v(\"Character is not a URL code point or a percent encoded character.\"),\"%\"!==R.c()||/^[0-9a-fA-F][0-9a-fA-F]/.test(R.remaining())||v(\"Percent encoded character must be followed by two hex digits.\"),\"\"!==R.c()&&(i.path[0]+=X(R.c(),h)));break;case s.ParserState.Query:if(\"UTF-8\"===A||b(i)&&\"ws\"!==i.scheme&&\"wss\"!==i.scheme||(A=\"UTF-8\"),void 0===o&&\"#\"===R.c())i.fragment=\"\",C=s.ParserState.Fragment;else if(\"\"!==R.c()){if(m.test(R.c())||\"%\"===R.c()||v(\"Character is not a URL code point or a percent encoded character.\"),\"%\"!==R.c()||/^[0-9a-fA-F][0-9a-fA-F]/.test(R.remaining())||v(\"Percent encoded character must be followed by two hex digits.\"),\"UTF-8\"!==A.toUpperCase())throw new Error(\"Only UTF-8 encoding is supported.\");var V=a.utf8Encode(R.c());if(V.length>=3&&38===V[0]&&35===V[1]&&59===V[V.length-1])V=V.subarray(2,V.length-1),i.query+=\"%26%23\"+u.byteSequence.isomorphicDecode(V)+\"%3B\";else try{for(var K=(y=void 0,n(V)),$=K.next();!$.done;$=K.next()){var Q=$.value;Q<33||Q>126||34===Q||35===Q||60===Q||62===Q||39===Q&&b(i)?i.query+=z(Q):i.query+=String.fromCharCode(Q)}}catch(e){y={error:e}}finally{try{$&&!$.done&&(_=K.return)&&_.call(K)}finally{if(y)throw y.error}}}break;case s.ParserState.Fragment:\"\"===R.c()||(\"\\0\"===R.c()?v(\"NULL character in input string.\"):(m.test(R.c())||\"%\"===R.c()||v(\"Unexpected character in fragment string.\"),\"%\"!==R.c()||/^[A-Za-z0-9][A-Za-z0-9]/.test(R.remaining())||v(\"Unexpected character in fragment string.\"),i.fragment+=X(R.c(),p)))}if(R.eof)break;R.pointer++}return i}function N(e){return\".\"===e||\"%2e\"===e.toLowerCase()}function T(e){var t=e.toLowerCase();return\"..\"===t||\".%2e\"===t||\"%2e.\"===t||\"%2e%2e\"===t}function O(e){var t=e.path;0!==t.length&&(\"file\"===e.scheme&&1===t.length&&F(t[0])||e.path.splice(e.path.length-1,1))}function F(e){return e.length>=2&&u.codePoint.ASCIIAlpha.test(e[0])&&\":\"===e[1]}function k(e){return e.length>=2&&u.codePoint.ASCIIAlpha.test(e[0])&&(\":\"===e[1]||\"|\"===e[1])}function P(e){return e.length>=2&&k(e)&&(2===e.length||\"/\"===e[2]||\"\\\\\"===e[2]||\"?\"===e[2]||\"#\"===e[2])}function I(e,t){if(void 0===t&&(t=!1),e.startsWith(\"[\"))return e.endsWith(\"]\")?B(e.substring(1,e.length-1)):(v(\"Expected ']' after '['.\"),null);if(t)return j(e);var r=H(a.utf8Decode(G(e)));if(null===r)return v(\"Invalid domain.\"),null;if(y.test(r))return v(\"Invalid domain.\"),null;var n=M(r);return null===n||a.isNumber(n)?n:r}function L(e,t){void 0===t&&(t={value:!1});var r=10;return e.startsWith(\"0x\")||e.startsWith(\"0X\")?(t.value=!0,e=e.substr(2),r=16):e.length>=2&&\"0\"===e[0]&&(t.value=!0,e=e.substr(1),r=8),\"\"===e?0:(10===r?/^[0-9]+$/:16===r?/^[0-9A-Fa-f]+$/:/^[0-7]+$/).test(e)?parseInt(e,r):null}function M(e){var t,r,i,o,a={value:!1},s=e.split(\".\");if(\"\"===s[s.length-1]&&(a.value=!0,s.length>1&&s.pop()),s.length>4)return e;var u=[];try{for(var l=n(s),c=l.next();!c.done;c=l.next()){var h=c.value;if(\"\"===h)return e;if(null===(_=L(h,a)))return e;u.push(_)}}catch(e){t={error:e}}finally{try{c&&!c.done&&(r=l.return)&&r.call(l)}finally{if(t)throw t.error}}a.value&&v(\"Invalid IP v4 address.\");for(var p=0;p<u.length;p++){if(u[p]>255&&(v(\"Invalid IP v4 address.\"),p<u.length-1))return null}if(u[u.length-1]>=Math.pow(256,5-u.length))return v(\"Invalid IP v4 address.\"),null;var f=u[u.length-1];u.pop();var d=0;try{for(var m=n(u),y=m.next();!y.done;y=m.next()){var _;f+=(_=y.value)*Math.pow(256,3-d),d++}}catch(e){i={error:e}}finally{try{y&&!y.done&&(o=m.return)&&o.call(m)}finally{if(i)throw i.error}}return f}function B(e){var t,r=[0,0,0,0,0,0,0,0],n=0,o=null,s=new a.StringWalker(e);if(\":\"===s.c()){if(!s.remaining().startsWith(\":\"))return v(\"Invalid IP v6 address.\"),null;s.pointer+=2,o=n+=1}for(;\"\"!==s.c();){if(8===n)return v(\"Invalid IP v6 address.\"),null;if(\":\"!==s.c()){for(var l=0,c=0;c<4&&u.codePoint.ASCIIHexDigit.test(s.c());)l=16*l+parseInt(s.c(),16),s.pointer++,c++;if(\".\"===s.c()){if(0===c)return v(\"Invalid IP v6 address.\"),null;if(s.pointer-=c,n>6)return v(\"Invalid IP v6 address.\"),null;for(var h=0;\"\"!==s.c();){var p=null;if(h>0){if(!(\".\"===s.c()&&h<4))return v(\"Invalid IP v6 address.\"),null;s.pointer++}if(!u.codePoint.ASCIIDigit.test(s.c()))return v(\"Invalid IP v6 address.\"),null;for(;u.codePoint.ASCIIDigit.test(s.c());){var f=parseInt(s.c(),10);if(null===p)p=f;else{if(0===p)return v(\"Invalid IP v6 address.\"),null;p=10*p+f}if(p>255)return v(\"Invalid IP v6 address.\"),null;s.pointer++}if(null===p)return v(\"Invalid IP v6 address.\"),null;r[n]=256*r[n]+p,2!==++h&&4!==h||n++}if(4!==h)return v(\"Invalid IP v6 address.\"),null;break}if(\":\"===s.c()){if(s.pointer++,\"\"===s.c())return v(\"Invalid IP v6 address.\"),null}else if(\"\"!==s.c())return v(\"Invalid IP v6 address.\"),null;r[n]=l,n++}else{if(null!==o)return v(\"Invalid IP v6 address.\"),null;s.pointer++,o=++n}}if(null!==o){var d=n-o;for(n=7;0!==n&&d>0;)t=i([r[o+d-1],r[n]],2),r[n]=t[0],r[o+d-1]=t[1],n--,d--}else if(null===o&&8!==n)return v(\"Invalid IP v6 address.\"),null;return r}function j(e){var t,r;if(/[\\x00\\t\\f\\r #/:?@\\[\\\\\\]]/.test(e))return v(\"Invalid host string.\"),null;var i=\"\";try{for(var o=n(e),a=o.next();!a.done;a=o.next()){i+=X(a.value,h)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return i}function R(e){return null}function z(e){return\"%\"+(\"00\"+e.toString(16).toUpperCase()).slice(-2)}function U(e){for(var t=function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},r=new Uint8Array(e.length),n=0,i=0;i<e.length;i++){var o=e[i];if(37!==o)r[n]=o,n++;else if(37===o&&i>=e.length-2)r[n]=o,n++;else if(37!==o||t(e[i+1])&&t(e[i+2])){var s=parseInt(a.utf8Decode(Uint8Array.of(e[i+1],e[i+2])),16);r[n]=s,n++,i+=2}else r[n]=o,n++}return r.subarray(0,n)}function G(e){return U(a.utf8Encode(e))}function X(e,t){var r,i;if(!t.test(e))return e;var o=a.utf8Encode(e),s=\"\";try{for(var u=n(o),l=u.next();!l.done;l=u.next()){s+=z(l.value)}}catch(e){r={error:e}}finally{try{l&&!l.done&&(i=u.return)&&i.call(u)}finally{if(r)throw r.error}}return s}function q(e){var t,r,i,o,s=[],u=[];try{for(var l=n(e),c=l.next();!c.done;c=l.next()){var h=c.value;38===h?(s.push(Uint8Array.from(u)),u=[]):u.push(h)}}catch(e){t={error:e}}finally{try{c&&!c.done&&(r=l.return)&&r.call(l)}finally{if(t)throw t.error}}0!==u.length&&s.push(Uint8Array.from(u));var p=[];try{for(var f=n(s),d=f.next();!d.done;d=f.next()){var m=d.value;if(0!==m.length){for(var y=m.indexOf(61),v=-1!==y?m.slice(0,y):m,_=-1!==y?m.slice(y+1):new Uint8Array,g=0;g<v.length;g++)43===v[g]&&(v[g]=32);for(g=0;g<_.length;g++)43===_[g]&&(_[g]=32);var b=a.utf8Decode(v),x=a.utf8Decode(_);p.push([b,x])}}}catch(e){i={error:e}}finally{try{d&&!d.done&&(o=f.return)&&o.call(f)}finally{if(i)throw i.error}}return p}function W(e){var t,r,i=\"\";try{for(var o=n(e),a=o.next();!a.done;a=o.next()){var s=a.value;i+=32===s?\"+\":42===s||45===s||46===s||s>=48&&s<=57||s>=65&&s<=90||95===s||s>=97&&s<=122?String.fromCodePoint(s):z(s)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return i}function H(e,t){void 0===t&&(t=!1);var r=l.domainToASCII(e);return\"\"===r?(v(\"Invalid domain name.\"),null):r}t.setValidationErrorCallback=function(e){o=e},t.newURL=_,t.isSpecialScheme=g,t.isSpecial=b,t.defaultPort=x,t.includesCredentials=w,t.cannotHaveAUsernamePasswordPort=function(e){return null===e.host||\"\"===e.host||e._cannotBeABaseURLFlag||\"file\"===e.scheme},t.urlSerializer=E,t.hostSerializer=D,t.iPv4Serializer=S,t.iPv6Serializer=C,t.urlParser=function(e,t,r){var n=A(e,t,r);return null===n?null:(\"blob\"!==n.scheme||(n._blobURLEntry=null),n)},t.basicURLParser=A,t.setTheUsername=function(e,t){var r,i,o=\"\";try{for(var a=n(t),s=a.next();!s.done;s=a.next()){o+=X(s.value,d)}}catch(e){r={error:e}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(r)throw r.error}}e.username=o},t.setThePassword=function(e,t){var r,i,o=\"\";try{for(var a=n(t),s=a.next();!s.done;s=a.next()){o+=X(s.value,d)}}catch(e){r={error:e}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(r)throw r.error}}e.password=o},t.isSingleDotPathSegment=N,t.isDoubleDotPathSegment=T,t.shorten=O,t.isNormalizedWindowsDriveLetter=F,t.isWindowsDriveLetter=k,t.startsWithAWindowsDriveLetter=P,t.hostParser=I,t.iPv4NumberParser=L,t.iPv4Parser=M,t.iPv6Parser=B,t.opaqueHostParser=j,t.resolveABlobURL=R,t.percentEncode=z,t.percentDecode=U,t.stringPercentDecode=G,t.utf8PercentEncode=X,t.hostEquals=function(e,t){return e===t},t.urlEquals=function(e,t,r){return void 0===r&&(r=!1),E(e,r)===E(t,r)},t.urlEncodedStringParser=function(e){return q(a.utf8Encode(e))},t.urlEncodedParser=q,t.urlEncodedByteSerializer=W,t.urlEncodedSerializer=function(e,t){var r,i;if(\"UTF-8\"!==(void 0===t||\"replacement\"===t||\"UTF-16BE\"===t||\"UTF-16LE\"===t?\"UTF-8\":t).toUpperCase())throw new Error(\"Only UTF-8 encoding is supported.\");var o=\"\";try{for(var s=n(e),u=s.next();!u.done;u=s.next()){var l=u.value,c=W(a.utf8Encode(l[0])),h=l[1];h=W(a.utf8Encode(h)),\"\"!==o&&(o+=\"&\"),o+=c+\"=\"+h}}catch(e){r={error:e}}finally{try{u&&!u.done&&(i=s.return)&&i.call(s)}finally{if(r)throw r.error}}return o},t.origin=function e(t){switch(t.scheme){case\"blob\":t._blobURLEntry;var r=A(t.path[0]);return null===r?s.OpaqueOrigin:e(r);case\"ftp\":case\"http\":case\"https\":case\"ws\":case\"wss\":return[t.scheme,null===t.host?\"\":t.host,t.port,null];case\"file\":default:return s.OpaqueOrigin}},t.domainToASCII=H,t.domainToUnicode=function(e,t){void 0===t&&(t=!1);var r=l.domainToUnicode(e);return\"\"===r&&v(\"Invalid domain name.\"),r},t.asciiSerializationOfAnOrigin=function(e){if(\"\"===e[0]&&\"\"===e[1]&&null===e[2]&&null===e[3])return\"null\";var t=e[0]+\"://\"+D(e[1]);return null!==e[2]&&(t+=\":\"+e[2].toString()),t}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(0),i=function(){function e(){this._signal=n.create_abortSignal()}return Object.defineProperty(e.prototype,\"signal\",{get:function(){return this._signal},enumerable:!0,configurable:!0}),e.prototype.abort=function(){n.abort_signalAbort(this._signal)},e}();t.AbortControllerImpl=i},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(70),a=r(0),s=function(e){function t(){var t=e.call(this)||this;return t._abortedFlag=!1,t._abortAlgorithms=new Set,t}return i(t,e),Object.defineProperty(t.prototype,\"aborted\",{get:function(){return this._abortedFlag},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"onabort\",{get:function(){return a.event_getterEventHandlerIDLAttribute(this,\"onabort\")},set:function(e){a.event_setterEventHandlerIDLAttribute(this,\"onabort\",e)},enumerable:!0,configurable:!0}),t._create=function(){return new t},t}(o.EventTargetImpl);t.AbortSignalImpl=s},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(2),a=r(34),s=r(12),u=function(e){function t(t,r,n){var i=e.call(this)||this;return i._name=\"\",i._publicId=\"\",i._systemId=\"\",i._name=t,i._publicId=r,i._systemId=n,i}return i(t,e),Object.defineProperty(t.prototype,\"name\",{get:function(){return this._name},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"publicId\",{get:function(){return this._publicId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"systemId\",{get:function(){return this._systemId},enumerable:!0,configurable:!0}),t.prototype.before=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ChildNode not implemented.\")},t.prototype.after=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ChildNode not implemented.\")},t.prototype.replaceWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Mixin: ChildNode not implemented.\")},t.prototype.remove=function(){throw new Error(\"Mixin: ChildNode not implemented.\")},t._create=function(e,r,n,i){void 0===n&&(n=\"\"),void 0===i&&(i=\"\");var o=new t(r,n,i);return o._nodeDocument=e,o},t}(a.NodeImpl);t.DocumentTypeImpl=u,s.idl_defineConst(u.prototype,\"_nodeType\",o.NodeType.DocumentType)},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(100),a=r(1),s=r(0),u=function(e){function t(t,r){var n=e.call(this)||this;return n._host=t,n._mode=r,n}return i(t,e),Object.defineProperty(t.prototype,\"mode\",{get:function(){return this._mode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"host\",{get:function(){return this._host},enumerable:!0,configurable:!0}),t.prototype._getTheParent=function(e){return e._composedFlag||a.isEmpty(e._path)||s.tree_rootNode(e._path[0].invocationTarget)!==this?this._host:null},t._create=function(e,r){return new t(r,\"closed\")},t}(o.DocumentFragmentImpl);t.ShadowRootImpl=u},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(2),a=r(34),s=r(0),u=r(12),l=function(e){function t(t){var r=e.call(this)||this;return r._namespace=null,r._namespacePrefix=null,r._element=null,r._value=\"\",r._localName=t,r}return i(t,e),Object.defineProperty(t.prototype,\"ownerElement\",{get:function(){return this._element},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"namespaceURI\",{get:function(){return this._namespace},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"prefix\",{get:function(){return this._namespacePrefix},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"localName\",{get:function(){return this._localName},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"name\",{get:function(){return this._qualifiedName},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"value\",{get:function(){return this._value},set:function(e){s.attr_setAnExistingAttributeValue(this,e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_qualifiedName\",{get:function(){return null!==this._namespacePrefix?this._namespacePrefix+\":\"+this._localName:this._localName},enumerable:!0,configurable:!0}),t._create=function(e,r){var n=new t(r);return n._nodeDocument=e,n},t}(a.NodeImpl);t.AttrImpl=l,u.idl_defineConst(l.prototype,\"_nodeType\",o.NodeType.Attribute),u.idl_defineConst(l.prototype,\"specified\",!0)},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(101),a=r(2),s=r(12),u=function(e){function t(t){return e.call(this,t)||this}return i(t,e),t._create=function(e,r){void 0===r&&(r=\"\");var n=new t(r);return n._nodeDocument=e,n},t}(o.TextImpl);t.CDATASectionImpl=u,s.idl_defineConst(u.prototype,\"_nodeType\",a.NodeType.CData)},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(2),a=r(71),s=r(12),u=function(e){function t(t){return void 0===t&&(t=\"\"),e.call(this,t)||this}return i(t,e),t._create=function(e,r){void 0===r&&(r=\"\");var n=new t(r);return n._nodeDocument=e,n},t}(a.CharacterDataImpl);t.CommentImpl=u,s.idl_defineConst(u.prototype,\"_nodeType\",o.NodeType.Comment)},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(2),a=r(71),s=r(12),u=function(e){function t(t,r){var n=e.call(this,r)||this;return n._target=t,n}return i(t,e),Object.defineProperty(t.prototype,\"target\",{get:function(){return this._target},enumerable:!0,configurable:!0}),t._create=function(e,r,n){var i=new t(r,n);return i._nodeDocument=e,i},t}(a.CharacterDataImpl);t.ProcessingInstructionImpl=u,s.idl_defineConst(u.prototype,\"_nodeType\",o.NodeType.ProcessingInstruction)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(7),i=r(0),o=r(3),a=r(1),s=function(){function e(e,t){return this._live=!0,this._root=e,this._filter=t,new Proxy(this,this)}return Object.defineProperty(e.prototype,\"length\",{get:function(){for(var e=this,t=0,r=i.tree_getFirstDescendantNode(this._root,!1,!1,(function(t){return o.Guard.isElementNode(t)&&e._filter(t)}));null!==r;)t++,r=i.tree_getNextDescendantNode(this._root,r,!1,!1,(function(t){return o.Guard.isElementNode(t)&&e._filter(t)}));return t},enumerable:!0,configurable:!0}),e.prototype.item=function(e){for(var t=this,r=0,n=i.tree_getFirstDescendantNode(this._root,!1,!1,(function(e){return o.Guard.isElementNode(e)&&t._filter(e)}));null!==n;){if(r===e)return n;r++,n=i.tree_getNextDescendantNode(this._root,n,!1,!1,(function(e){return o.Guard.isElementNode(e)&&t._filter(e)}))}return null},e.prototype.namedItem=function(e){var t=this;if(\"\"===e)return null;for(var r=i.tree_getFirstDescendantNode(this._root,!1,!1,(function(e){return o.Guard.isElementNode(e)&&t._filter(e)}));null!=r;){if(r._uniqueIdentifier===e)return r;if(r._namespace===n.namespace.HTML)for(var a=0;a<r._attributeList.length;a++){var s=r._attributeList[a];if(\"name\"===s._localName&&null===s._namespace&&null===s._namespacePrefix&&s._value===e)return r}r=i.tree_getNextDescendantNode(this._root,r,!1,!1,(function(e){return o.Guard.isElementNode(e)&&t._filter(e)}))}return null},e.prototype[Symbol.iterator]=function(){var e=this._root,t=this._filter,r=i.tree_getFirstDescendantNode(e,!1,!1,(function(e){return o.Guard.isElementNode(e)&&t(e)}));return{next:function(){if(null===r)return{done:!0,value:null};var n={done:!1,value:r};return r=i.tree_getNextDescendantNode(e,r,!1,!1,(function(e){return o.Guard.isElementNode(e)&&t(e)})),n}}},e.prototype.get=function(t,r,n){if(!a.isString(r)||-1!==e.reservedNames.indexOf(r))return Reflect.get(t,r,n);var i=Number(r);return isNaN(i)?t.namedItem(r)||void 0:t.item(i)||void 0},e.prototype.set=function(t,r,n,o){if(!a.isString(r)||-1!==e.reservedNames.indexOf(r))return Reflect.set(t,r,n,o);var s=Number(r),u=isNaN(s)?t.namedItem(r)||void 0:t.item(s)||void 0;return!(!u||!u._parent)&&(i.mutation_replace(u,n,u._parent),!0)},e._create=function(t,r){return void 0===r&&(r=function(){return!0}),new e(t,r)},e.reservedNames=[\"_root\",\"_live\",\"_filter\",\"length\",\"item\",\"namedItem\",\"get\",\"set\"],e}();t.HTMLCollectionImpl=s},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(6),o=r(1),a=r(0),s=function(){function e(e){return this._live=!0,this._filter=null,this._length=0,this._root=e,new Proxy(this,this)}return Object.defineProperty(e.prototype,\"length\",{get:function(){return this._root._children.size},enumerable:!0,configurable:!0}),e.prototype.item=function(e){if(e<0||e>this.length-1)return null;if(e<this.length/2){for(var t=0,r=this._root._firstChild;null!==r&&t!==e;)r=r._nextSibling,t++;return r}for(t=this.length-1,r=this._root._lastChild;null!==r&&t!==e;)r=r._previousSibling,t--;return r},e.prototype.keys=function(){var e;return(e={})[Symbol.iterator]=function(){var e=0;return{next:function(){return e===this.length?{done:!0,value:null}:{done:!1,value:e++}}.bind(this)}}.bind(this),e},e.prototype.values=function(){var e;return(e={})[Symbol.iterator]=function(){var e=this[Symbol.iterator]();return{next:function(){return e.next()}}}.bind(this),e},e.prototype.entries=function(){var e;return(e={})[Symbol.iterator]=function(){var e=this[Symbol.iterator](),t=0;return{next:function(){var r=e.next();return r.done?{done:!0,value:null}:{done:!1,value:[t++,r.value]}}}}.bind(this),e},e.prototype[Symbol.iterator]=function(){return this._root._children[Symbol.iterator]()},e.prototype.forEach=function(e,t){var r,o;void 0===t&&(t=i.dom.window);var a=0;try{for(var s=n(this._root._children),u=s.next();!u.done;u=s.next()){var l=u.value;e.call(t,l,a++,this)}}catch(e){r={error:e}}finally{try{u&&!u.done&&(o=s.return)&&o.call(s)}finally{if(r)throw r.error}}},e.prototype.get=function(e,t,r){if(!o.isString(t))return Reflect.get(e,t,r);var n=Number(t);return isNaN(n)?Reflect.get(e,t,r):e.item(n)||void 0},e.prototype.set=function(e,t,r,n){if(!o.isString(t))return Reflect.set(e,t,r,n);var i=Number(t);if(isNaN(i))return Reflect.set(e,t,r,n);var s=e.item(i)||void 0;return!!s&&(!!s._parent&&(a.mutation_replace(s,r,s._parent),!0))},e._create=function(t){return new e(t)},e}();t.NodeListImpl=s},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(6),o=r(1),a=function(){function e(e){return this._live=!1,this._items=[],this._length=0,this._root=e,this._items=[],this._filter=function(e){return!0},new Proxy(this,this)}return Object.defineProperty(e.prototype,\"length\",{get:function(){return this._items.length},enumerable:!0,configurable:!0}),e.prototype.item=function(e){return e<0||e>this.length-1?null:this._items[e]},e.prototype.keys=function(){var e;return(e={})[Symbol.iterator]=function(){var e=0;return{next:function(){return e===this.length?{done:!0,value:null}:{done:!1,value:e++}}.bind(this)}}.bind(this),e},e.prototype.values=function(){var e;return(e={})[Symbol.iterator]=function(){var e=this[Symbol.iterator]();return{next:function(){return e.next()}}}.bind(this),e},e.prototype.entries=function(){var e;return(e={})[Symbol.iterator]=function(){var e=this[Symbol.iterator](),t=0;return{next:function(){var r=e.next();return r.done?{done:!0,value:null}:{done:!1,value:[t++,r.value]}}}}.bind(this),e},e.prototype[Symbol.iterator]=function(){var e=this._items[Symbol.iterator]();return{next:function(){return e.next()}}},e.prototype.forEach=function(e,t){var r,o;void 0===t&&(t=i.dom.window);var a=0;try{for(var s=n(this._items),u=s.next();!u.done;u=s.next()){var l=u.value;e.call(t,l,a++,this)}}catch(e){r={error:e}}finally{try{u&&!u.done&&(o=s.return)&&o.call(s)}finally{if(r)throw r.error}}},e.prototype.get=function(e,t,r){if(!o.isString(t))return Reflect.get(e,t,r);var n=Number(t);return isNaN(n)?Reflect.get(e,t,r):e._items[n]||void 0},e.prototype.set=function(e,t,r,n){if(!o.isString(t))return Reflect.set(e,t,r,n);var i=Number(t);return isNaN(i)?Reflect.set(e,t,r,n):i>=0&&i<e._items.length&&(e._items[i]=r,!0)},e._create=function(t,r){var n=new e(t);return n._items=r,n},e}();t.NodeListStaticImpl=a},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(9),a=r(0),s=function(e){function t(r){var n=e.call(this)||this;return n._element=r,Object.setPrototypeOf(n,t.prototype),n}return i(t,e),t.prototype._asArray=function(){return this},t.prototype.item=function(e){return this[e]||null},t.prototype.getNamedItem=function(e){return a.element_getAnAttributeByName(e,this._element)},t.prototype.getNamedItemNS=function(e,t){return a.element_getAnAttributeByNamespaceAndLocalName(e||\"\",t,this._element)},t.prototype.setNamedItem=function(e){return a.element_setAnAttribute(e,this._element)},t.prototype.setNamedItemNS=function(e){return a.element_setAnAttribute(e,this._element)},t.prototype.removeNamedItem=function(e){var t=a.element_removeAnAttributeByName(e,this._element);if(null===t)throw new o.NotFoundError;return t},t.prototype.removeNamedItemNS=function(e,t){var r=a.element_removeAnAttributeByNamespaceAndLocalName(e||\"\",t,this._element);if(null===r)throw new o.NotFoundError;return r},t._create=function(e){return new t(e)},t}(Array);t.NamedNodeMapImpl=s},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(6),s=r(2),u=r(102),l=r(9),c=r(0),h=r(12),p=r(3),f=function(e){function t(){var t=e.call(this)||this,r=a.dom.window._associatedDocument;return t._start=[r,0],t._end=[r,0],a.dom.rangeList.add(t),t}return i(t,e),Object.defineProperty(t.prototype,\"commonAncestorContainer\",{get:function(){for(var e=this._start[0];!c.tree_isAncestorOf(this._end[0],e,!0);){if(null===e._parent)throw new Error(\"Parent node  is null.\");e=e._parent}return e},enumerable:!0,configurable:!0}),t.prototype.setStart=function(e,t){c.range_setTheStart(this,e,t)},t.prototype.setEnd=function(e,t){c.range_setTheEnd(this,e,t)},t.prototype.setStartBefore=function(e){var t=e._parent;if(null===t)throw new l.InvalidNodeTypeError;c.range_setTheStart(this,t,c.tree_index(e))},t.prototype.setStartAfter=function(e){var t=e._parent;if(null===t)throw new l.InvalidNodeTypeError;c.range_setTheStart(this,t,c.tree_index(e)+1)},t.prototype.setEndBefore=function(e){var t=e._parent;if(null===t)throw new l.InvalidNodeTypeError;c.range_setTheEnd(this,t,c.tree_index(e))},t.prototype.setEndAfter=function(e){var t=e._parent;if(null===t)throw new l.InvalidNodeTypeError;c.range_setTheEnd(this,t,c.tree_index(e)+1)},t.prototype.collapse=function(e){e?this._end=this._start:this._start=this._end},t.prototype.selectNode=function(e){c.range_select(e,this)},t.prototype.selectNodeContents=function(e){if(p.Guard.isDocumentTypeNode(e))throw new l.InvalidNodeTypeError;var t=c.tree_nodeLength(e);this._start=[e,0],this._end=[e,t]},t.prototype.compareBoundaryPoints=function(e,t){if(e!==s.HowToCompare.StartToStart&&e!==s.HowToCompare.StartToEnd&&e!==s.HowToCompare.EndToEnd&&e!==s.HowToCompare.EndToStart)throw new l.NotSupportedError;if(c.range_root(this)!==c.range_root(t))throw new l.WrongDocumentError;var r,n;switch(e){case s.HowToCompare.StartToStart:r=this._start,n=t._start;break;case s.HowToCompare.StartToEnd:r=this._end,n=t._start;break;case s.HowToCompare.EndToEnd:r=this._end,n=t._end;break;case s.HowToCompare.EndToStart:r=this._start,n=t._end;break;default:throw new l.NotSupportedError}var i=c.boundaryPoint_position(r,n);return i===s.BoundaryPosition.Before?-1:i===s.BoundaryPosition.After?1:0},t.prototype.deleteContents=function(){var e,t,r,n;if(!c.range_collapsed(this)){var i=this._startNode,a=this._startOffset,s=this._endNode,u=this._endOffset;if(i===s&&p.Guard.isCharacterDataNode(i))c.characterData_replaceData(i,a,u-a,\"\");else{var l,h,f=[];try{for(var d=o(c.range_getContainedNodes(this)),m=d.next();!m.done;m=d.next()){var y=(b=m.value)._parent;null!==y&&c.range_isContained(y,this)||f.push(b)}}catch(t){e={error:t}}finally{try{m&&!m.done&&(t=d.return)&&t.call(d)}finally{if(e)throw e.error}}if(c.tree_isAncestorOf(s,i,!0))l=i,h=a;else{for(var v=i;null!==v._parent&&!c.tree_isAncestorOf(s,v._parent,!0);)v=v._parent;if(null===v._parent)throw new Error(\"Parent node is null.\");l=v._parent,h=c.tree_index(v)+1}p.Guard.isCharacterDataNode(i)&&c.characterData_replaceData(i,a,c.tree_nodeLength(i)-a,\"\");try{for(var _=o(f),g=_.next();!g.done;g=_.next()){var b;(b=g.value)._parent&&c.mutation_remove(b,b._parent)}}catch(e){r={error:e}}finally{try{g&&!g.done&&(n=_.return)&&n.call(_)}finally{if(r)throw r.error}}p.Guard.isCharacterDataNode(s)&&c.characterData_replaceData(s,0,u,\"\"),this._start=[l,h],this._end=[l,h]}}},t.prototype.extractContents=function(){return c.range_extract(this)},t.prototype.cloneContents=function(){return c.range_cloneTheContents(this)},t.prototype.insertNode=function(e){return c.range_insert(e,this)},t.prototype.surroundContents=function(e){var t,r;try{for(var n=o(c.range_getPartiallyContainedNodes(this)),i=n.next();!i.done;i=n.next()){var a=i.value;if(!p.Guard.isTextNode(a))throw new l.InvalidStateError}}catch(e){t={error:e}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}if(p.Guard.isDocumentNode(e)||p.Guard.isDocumentTypeNode(e)||p.Guard.isDocumentFragmentNode(e))throw new l.InvalidNodeTypeError;var s=c.range_extract(this);0!==e._children.size&&c.mutation_replaceAll(null,e),c.range_insert(e,this),c.mutation_append(s,e),c.range_select(e,this)},t.prototype.cloneRange=function(){return c.create_range(this._start,this._end)},t.prototype.detach=function(){a.dom.rangeList.delete(this)},t.prototype.isPointInRange=function(e,t){if(c.tree_rootNode(e)!==c.range_root(this))return!1;if(p.Guard.isDocumentTypeNode(e))throw new l.InvalidNodeTypeError;if(t>c.tree_nodeLength(e))throw new l.IndexSizeError;var r=[e,t];return c.boundaryPoint_position(r,this._start)!==s.BoundaryPosition.Before&&c.boundaryPoint_position(r,this._end)!==s.BoundaryPosition.After},t.prototype.comparePoint=function(e,t){if(c.tree_rootNode(e)!==c.range_root(this))throw new l.WrongDocumentError;if(p.Guard.isDocumentTypeNode(e))throw new l.InvalidNodeTypeError;if(t>c.tree_nodeLength(e))throw new l.IndexSizeError;var r=[e,t];return c.boundaryPoint_position(r,this._start)===s.BoundaryPosition.Before?-1:c.boundaryPoint_position(r,this._end)===s.BoundaryPosition.After?1:0},t.prototype.intersectsNode=function(e){if(c.tree_rootNode(e)!==c.range_root(this))return!1;var t=e._parent;if(null===t)return!0;var r=c.tree_index(e);return c.boundaryPoint_position([t,r],this._end)===s.BoundaryPosition.Before&&c.boundaryPoint_position([t,r+1],this._start)===s.BoundaryPosition.After},t.prototype.toString=function(){var e,t,r=\"\";if(this._startNode===this._endNode&&p.Guard.isTextNode(this._startNode))return this._startNode._data.substring(this._startOffset,this._endOffset);p.Guard.isTextNode(this._startNode)&&(r+=this._startNode._data.substring(this._startOffset));try{for(var n=o(c.range_getContainedNodes(this)),i=n.next();!i.done;i=n.next()){var a=i.value;p.Guard.isTextNode(a)&&(r+=a._data)}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return p.Guard.isTextNode(this._endNode)&&(r+=this._endNode._data.substring(0,this._endOffset)),r},t._create=function(e,r){var n=new t;return e&&(n._start=e),r&&(n._end=r),n},t.START_TO_START=0,t.START_TO_END=1,t.END_TO_END=2,t.END_TO_START=3,t}(u.AbstractRangeImpl);t.RangeImpl=f,h.idl_defineConst(f.prototype,\"START_TO_START\",0),h.idl_defineConst(f.prototype,\"START_TO_END\",1),h.idl_defineConst(f.prototype,\"END_TO_END\",2),h.idl_defineConst(f.prototype,\"END_TO_START\",3)},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(103),a=r(0),s=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i._iteratorCollection=void 0,i._reference=r,i._pointerBeforeReference=n,a.nodeIterator_iteratorList().add(i),i}return i(t,e),Object.defineProperty(t.prototype,\"referenceNode\",{get:function(){return this._reference},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"pointerBeforeReferenceNode\",{get:function(){return this._pointerBeforeReference},enumerable:!0,configurable:!0}),t.prototype.nextNode=function(){return a.nodeIterator_traverse(this,!0)},t.prototype.previousNode=function(){return a.nodeIterator_traverse(this,!1)},t.prototype.detach=function(){a.nodeIterator_iteratorList().delete(this)},t._create=function(e,r,n){return new t(e,r,n)},t}(o.TraverserImpl);t.NodeIteratorImpl=s},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(2),a=r(103),s=r(0),u=function(e){function t(t,r){var n=e.call(this,t)||this;return n._current=r,n}return i(t,e),Object.defineProperty(t.prototype,\"currentNode\",{get:function(){return this._current},set:function(e){this._current=e},enumerable:!0,configurable:!0}),t.prototype.parentNode=function(){for(var e=this._current;null!==e&&e!==this._root;)if(null!==(e=e._parent)&&s.traversal_filter(this,e)===o.FilterResult.Accept)return this._current=e,e;return null},t.prototype.firstChild=function(){return s.treeWalker_traverseChildren(this,!0)},t.prototype.lastChild=function(){return s.treeWalker_traverseChildren(this,!1)},t.prototype.nextSibling=function(){return s.treeWalker_traverseSiblings(this,!0)},t.prototype.previousNode=function(){for(var e=this._current;e!==this._root;){for(var t=e._previousSibling;t;){e=t;for(var r=s.traversal_filter(this,e);r!==o.FilterResult.Reject&&e._lastChild;)e=e._lastChild,r=s.traversal_filter(this,e);if(r===o.FilterResult.Accept)return this._current=e,e;t=e._previousSibling}if(e===this._root||null===e._parent)return null;if(e=e._parent,s.traversal_filter(this,e)===o.FilterResult.Accept)return this._current=e,e}return null},t.prototype.previousSibling=function(){return s.treeWalker_traverseSiblings(this,!1)},t.prototype.nextNode=function(){for(var e=this._current,t=o.FilterResult.Accept;;){for(;t!==o.FilterResult.Reject&&e._firstChild;)if(e=e._firstChild,(t=s.traversal_filter(this,e))===o.FilterResult.Accept)return this._current=e,e;for(var r=null,n=e;null!==n;){if(n===this._root)return null;if(null!==(r=n._nextSibling)){e=r;break}n=n._parent}if((t=s.traversal_filter(this,e))===o.FilterResult.Accept)return this._current=e,e}},t._create=function(e,r){return new t(e,r)},t}(a.TraverserImpl);t.TreeWalkerImpl=u},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),i=r(12),o=function(){function e(){}return e.prototype.acceptNode=function(e){return n.FilterResult.Accept},e._create=function(){return new e},e.FILTER_ACCEPT=1,e.FILTER_REJECT=2,e.FILTER_SKIP=3,e.SHOW_ALL=4294967295,e.SHOW_ELEMENT=1,e.SHOW_ATTRIBUTE=2,e.SHOW_TEXT=4,e.SHOW_CDATA_SECTION=8,e.SHOW_ENTITY_REFERENCE=16,e.SHOW_ENTITY=32,e.SHOW_PROCESSING_INSTRUCTION=64,e.SHOW_COMMENT=128,e.SHOW_DOCUMENT=256,e.SHOW_DOCUMENT_TYPE=512,e.SHOW_DOCUMENT_FRAGMENT=1024,e.SHOW_NOTATION=2048,e}();t.NodeFilterImpl=o,i.idl_defineConst(o.prototype,\"FILTER_ACCEPT\",1),i.idl_defineConst(o.prototype,\"FILTER_REJECT\",2),i.idl_defineConst(o.prototype,\"FILTER_SKIP\",3),i.idl_defineConst(o.prototype,\"SHOW_ALL\",4294967295),i.idl_defineConst(o.prototype,\"SHOW_ELEMENT\",1),i.idl_defineConst(o.prototype,\"SHOW_ATTRIBUTE\",2),i.idl_defineConst(o.prototype,\"SHOW_TEXT\",4),i.idl_defineConst(o.prototype,\"SHOW_CDATA_SECTION\",8),i.idl_defineConst(o.prototype,\"SHOW_ENTITY_REFERENCE\",16),i.idl_defineConst(o.prototype,\"SHOW_ENTITY\",32),i.idl_defineConst(o.prototype,\"SHOW_PROCESSING_INSTRUCTION\",64),i.idl_defineConst(o.prototype,\"SHOW_COMMENT\",128),i.idl_defineConst(o.prototype,\"SHOW_DOCUMENT\",256),i.idl_defineConst(o.prototype,\"SHOW_DOCUMENT_TYPE\",512),i.idl_defineConst(o.prototype,\"SHOW_DOCUMENT_FRAGMENT\",1024),i.idl_defineConst(o.prototype,\"SHOW_NOTATION\",2048)},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,r,n,i,o,a,s,u){this._type=e,this._target=t,this._addedNodes=r,this._removedNodes=n,this._previousSibling=i,this._nextSibling=o,this._attributeName=a,this._attributeNamespace=s,this._oldValue=u}return Object.defineProperty(e.prototype,\"type\",{get:function(){return this._type},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"target\",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"addedNodes\",{get:function(){return this._addedNodes},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"removedNodes\",{get:function(){return this._removedNodes},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"previousSibling\",{get:function(){return this._previousSibling},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"nextSibling\",{get:function(){return this._nextSibling},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"attributeName\",{get:function(){return this._attributeName},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"attributeNamespace\",{get:function(){return this._attributeNamespace},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"oldValue\",{get:function(){return this._oldValue},enumerable:!0,configurable:!0}),e._create=function(t,r,n,i,o,a,s,u,l){return new e(t,r,n,i,o,a,s,u,l)},e}();t.MutationRecordImpl=n},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(6),o=r(9),a=r(7),s=r(0),u=function(){function e(e,t){this._element=e,this._attribute=t,this._tokenSet=new Set;var r=t._localName,n=s.element_getAnAttributeValue(e,r),o=this;this._element._attributeChangeSteps.push((function(e,t,r,n,i){t===o._attribute._localName&&null===i&&(n?o._tokenSet=s.orderedSet_parse(n):o._tokenSet.clear())})),i.dom.features.steps&&s.dom_runAttributeChangeSteps(e,r,n,n,null)}return Object.defineProperty(e.prototype,\"length\",{get:function(){return this._tokenSet.size},enumerable:!0,configurable:!0}),e.prototype.item=function(e){var t,r,i=0;try{for(var o=n(this._tokenSet),a=o.next();!a.done;a=o.next()){var s=a.value;if(i===e)return s;i++}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return null},e.prototype.contains=function(e){return this._tokenSet.has(e)},e.prototype.add=function(){for(var e,t,r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];try{for(var u=n(r),l=u.next();!l.done;l=u.next()){var c=l.value;if(\"\"===c)throw new o.SyntaxError(\"Cannot add an empty token.\");if(a.codePoint.ASCIIWhiteSpace.test(c))throw new o.InvalidCharacterError(\"Token cannot contain whitespace.\");this._tokenSet.add(c)}}catch(t){e={error:t}}finally{try{l&&!l.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}s.tokenList_updateSteps(this)},e.prototype.remove=function(){for(var e,t,r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];try{for(var u=n(r),l=u.next();!l.done;l=u.next()){var c=l.value;if(\"\"===c)throw new o.SyntaxError(\"Cannot remove an empty token.\");if(a.codePoint.ASCIIWhiteSpace.test(c))throw new o.InvalidCharacterError(\"Token cannot contain whitespace.\");this._tokenSet.delete(c)}}catch(t){e={error:t}}finally{try{l&&!l.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}s.tokenList_updateSteps(this)},e.prototype.toggle=function(e,t){if(void 0===t&&(t=void 0),\"\"===e)throw new o.SyntaxError(\"Cannot toggle an empty token.\");if(a.codePoint.ASCIIWhiteSpace.test(e))throw new o.InvalidCharacterError(\"Token cannot contain whitespace.\");return this._tokenSet.has(e)?void 0!==t&&!1!==t||(this._tokenSet.delete(e),s.tokenList_updateSteps(this),!1):(void 0===t||!0===t)&&(this._tokenSet.add(e),s.tokenList_updateSteps(this),!0)},e.prototype.replace=function(e,t){if(\"\"===e||\"\"===t)throw new o.SyntaxError(\"Cannot replace an empty token.\");if(a.codePoint.ASCIIWhiteSpace.test(e)||a.codePoint.ASCIIWhiteSpace.test(t))throw new o.InvalidCharacterError(\"Token cannot contain whitespace.\");return!!this._tokenSet.has(e)&&(a.set.replace(this._tokenSet,e,t),s.tokenList_updateSteps(this),!0)},e.prototype.supports=function(e){return s.tokenList_validationSteps(this,e)},Object.defineProperty(e.prototype,\"value\",{get:function(){return s.tokenList_serializeSteps(this)},set:function(e){s.element_setAnAttributeValue(this._element,this._attribute._localName,e)},enumerable:!0,configurable:!0}),e.prototype[Symbol.iterator]=function(){var e=this._tokenSet[Symbol.iterator]();return{next:function(){return e.next()}}},e._create=function(t,r){return new e(t,r)},e}();t.DOMTokenListImpl=u},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(104),a=r(0),s=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n._detail=null,n._detail=r&&r.detail||null,n}return i(t,e),Object.defineProperty(t.prototype,\"detail\",{get:function(){return this._detail},enumerable:!0,configurable:!0}),t.prototype.initCustomEvent=function(e,t,r,n){void 0===t&&(t=!1),void 0===r&&(r=!1),void 0===n&&(n=null),this._dispatchFlag||(a.event_initialize(this,e,t,r),this._detail=n)},t}(o.EventImpl);t.CustomEventImpl=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(6),i=r(2),o=r(105),a=r(17);t.nodeIterator_traverse=function(e,t){for(var r=e._reference,n=e._pointerBeforeReference;;){if(t)if(n)n=!1;else{var s=a.tree_getFollowingNode(e._root,r);if(!s)return null;r=s}else if(n){var u=a.tree_getPrecedingNode(e.root,r);if(!u)return null;r=u}else n=!0;if(o.traversal_filter(e,r)===i.FilterResult.Accept)break}return e._reference=r,e._pointerBeforeReference=n,r},t.nodeIterator_iteratorList=function(){return n.dom.window._iteratorList}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(9),i=r(7),o=r(174);function a(e){if(!o.xml_isName(e))throw new n.InvalidCharacterError(\"Invalid XML name: \"+e);if(!o.xml_isQName(e))throw new n.InvalidCharacterError(\"Invalid XML qualified name: \"+e+\".\")}t.namespace_validate=a,t.namespace_validateAndExtract=function(e,t){e||(e=null),a(t);var r=t.split(\":\"),o=2===r.length?r[0]:null,s=2===r.length?r[1]:t;if(o&&null===e)throw new n.NamespaceError(\"Qualified name includes a prefix but the namespace is null.\");if(\"xml\"===o&&e!==i.namespace.XML)throw new n.NamespaceError('Qualified name includes the \"xml\" prefix but the namespace is not the XML namespace.');if(e!==i.namespace.XMLNS&&(\"xmlns\"===o||\"xmlns\"===t))throw new n.NamespaceError('Qualified name includes the \"xmlns\" prefix but the namespace is not the XMLNS namespace.');if(e===i.namespace.XMLNS&&\"xmlns\"!==o&&\"xmlns\"!==t)throw new n.NamespaceError('Qualified name does not include the \"xmlns\" prefix but the namespace is the XMLNS namespace.');return[e,o,s]},t.namespace_extractQName=function(e){a(e);var t=e.split(\":\");return[2===t.length?t[0]:null,2===t.length?t[1]:e]}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.xml_isName=function(e){for(var t=0;t<e.length;t++){var r=e.charCodeAt(t);if(!(r>=97&&r<=122||r>=65&&r<=90||58===r||95===r||r>=192&&r<=214||r>=216&&r<=246||r>=248&&r<=767||r>=880&&r<=893||r>=895&&r<=8191||r>=8204&&r<=8205||r>=8304&&r<=8591||r>=11264&&r<=12271||r>=12289&&r<=55295||r>=63744&&r<=64975||r>=65008&&r<=65533)&&(0===t||!(45===r||46===r||r>=48&&r<=57||183===r||r>=768&&r<=879||r>=8255&&r<=8256))){if(r>=55296&&r<=56319&&t<e.length-1){var n=e.charCodeAt(t+1);if(n>=56320&&n<=57343&&(t++,(r=1024*(r-55296)+n-56320+65536)>=65536&&r<=983039))continue}return!1}}return!0},t.xml_isQName=function(e){for(var t=!1,r=0;r<e.length;r++){var n=e.charCodeAt(r);if(!(n>=97&&n<=122||n>=65&&n<=90||95===n||n>=192&&n<=214||n>=216&&n<=246||n>=248&&n<=767||n>=880&&n<=893||n>=895&&n<=8191||n>=8204&&n<=8205||n>=8304&&n<=8591||n>=11264&&n<=12271||n>=12289&&n<=55295||n>=63744&&n<=64975||n>=65008&&n<=65533)&&(0===r||!(45===n||46===n||n>=48&&n<=57||183===n||n>=768&&n<=879||n>=8255&&n<=8256))){if(0===r||58!==n){if(n>=55296&&n<=56319&&r<e.length-1){var i=e.charCodeAt(r+1);if(i>=56320&&i<=57343&&(r++,(n=1024*(n-55296)+i-56320+65536)>=65536&&n<=983039))continue}return!1}if(t)return!1;if(r===e.length-1)return!1;t=!0}}return!0},t.xml_isLegalChar=function(e){for(var t=0;t<e.length;t++){var r=e.charCodeAt(t);if(!(9===r||10===r||13===r||r>=32&&r<=55295||r>=57344&&r<=65533)){if(r>=55296&&r<=56319&&t<e.length-1){var n=e.charCodeAt(t+1);if(n>=56320&&n<=57343&&(t++,(r=1024*(r-55296)+n-56320+65536)>=65536&&r<=1114111))continue}return!1}}return!0},t.xml_isPubidChar=function(e){for(var t=0;t<e.length;t++){var r=e.charCodeAt(t);if(!(r>=97&&r<=122||r>=65&&r<=90||r>=39&&r<=59||32===r||13===r||10===r||r>=35&&r<=37||33===r||61===r||63===r||64===r||95===r))return!1}return!0}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),i=r(17);t.boundaryPoint_position=function e(t,r){var o=t[0],a=t[1],s=r[0],u=r[1];if(console.assert(i.tree_rootNode(o)===i.tree_rootNode(s),\"Boundary points must share the same root node.\"),o===s)return a===u?n.BoundaryPosition.Equal:a<u?n.BoundaryPosition.Before:n.BoundaryPosition.After;if(i.tree_isFollowing(s,o)){var l=e([s,u],[o,a]);if(l===n.BoundaryPosition.Before)return n.BoundaryPosition.After;if(l===n.BoundaryPosition.After)return n.BoundaryPosition.Before}if(i.tree_isAncestorOf(s,o)){for(var c=s;!i.tree_isChildOf(o,c);)null!==c._parent&&(c=c._parent);if(i.tree_index(c)<a)return n.BoundaryPosition.After}return n.BoundaryPosition.Before}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(6),o=r(3),a=r(7),s=r(29),u=r(108),l=r(30),c=r(37),h=r(52);t.node_stringReplaceAll=function(e,t){var r=null;\"\"!==e&&(r=s.create_text(t._nodeDocument,e)),c.mutation_replaceAll(r,t)},t.node_clone=function e(t,r,a){var u,p,f,d,m;if(void 0===r&&(r=null),void 0===a&&(a=!1),null===r&&(r=t._nodeDocument),o.Guard.isElementNode(t)){m=h.element_createAnElement(r,t._localName,t._namespace,t._namespacePrefix,t._is,!1);try{for(var y=n(t._attributeList),v=y.next();!v.done;v=y.next()){var _=e(v.value,r);h.element_append(_,m)}}catch(e){u={error:e}}finally{try{v&&!v.done&&(p=y.return)&&p.call(y)}finally{if(u)throw u.error}}}else if(o.Guard.isDocumentNode(t)){var g=s.create_document();g._encoding=t._encoding,g._contentType=t._contentType,g._URL=t._URL,g._origin=t._origin,g._type=t._type,g._mode=t._mode,m=g}else if(o.Guard.isDocumentTypeNode(t)){m=s.create_documentType(r,t._name,t._publicId,t._systemId)}else if(o.Guard.isAttrNode(t)){var b=s.create_attr(r,t.localName);b._namespace=t._namespace,b._namespacePrefix=t._namespacePrefix,b._value=t._value,m=b}else m=o.Guard.isExclusiveTextNode(t)?s.create_text(r,t._data):o.Guard.isCDATASectionNode(t)?s.create_cdataSection(r,t._data):o.Guard.isCommentNode(t)?s.create_comment(r,t._data):o.Guard.isProcessingInstructionNode(t)?s.create_processingInstruction(r,t._target,t._data):o.Guard.isDocumentFragmentNode(t)?s.create_documentFragment(r):Object.create(t);if(o.Guard.isDocumentNode(m)?(m._nodeDocument=m,r=m):m._nodeDocument=r,i.dom.features.steps&&l.dom_runCloningSteps(m,t,r,a),a)try{for(var x=n(t._children),w=x.next();!w.done;w=x.next()){var E=e(w.value,r,!0);c.mutation_append(E,m)}}catch(e){f={error:e}}finally{try{w&&!w.done&&(d=x.return)&&d.call(x)}finally{if(f)throw f.error}}return m},t.node_equals=function e(t,r){var i,a,s,u;if(t._nodeType!==r._nodeType)return!1;if(o.Guard.isDocumentTypeNode(t)&&o.Guard.isDocumentTypeNode(r)){if(t._name!==r._name||t._publicId!==r._publicId||t._systemId!==r._systemId)return!1}else if(o.Guard.isElementNode(t)&&o.Guard.isElementNode(r)){if(t._namespace!==r._namespace||t._namespacePrefix!==r._namespacePrefix||t._localName!==r._localName||t._attributeList.length!==r._attributeList.length)return!1}else if(o.Guard.isAttrNode(t)&&o.Guard.isAttrNode(r)){if(t._namespace!==r._namespace||t._localName!==r._localName||t._value!==r._value)return!1}else if(o.Guard.isProcessingInstructionNode(t)&&o.Guard.isProcessingInstructionNode(r)){if(t._target!==r._target||t._data!==r._data)return!1}else if(o.Guard.isCharacterDataNode(t)&&o.Guard.isCharacterDataNode(r)&&t._data!==r._data)return!1;if(o.Guard.isElementNode(t)&&o.Guard.isElementNode(r)){var l={};try{for(var c=n(t._attributeList),h=c.next();!h.done;h=c.next()){l[(d=h.value)._localName]=d}}catch(e){i={error:e}}finally{try{h&&!h.done&&(a=c.return)&&a.call(c)}finally{if(i)throw i.error}}try{for(var p=n(r._attributeList),f=p.next();!f.done;f=p.next()){var d,m=f.value;if(!(d=l[m._localName]))return!1;if(!e(d,m))return!1}}catch(e){s={error:e}}finally{try{f&&!f.done&&(u=p.return)&&u.call(p)}finally{if(s)throw s.error}}}if(t._children.size!==r._children.size)return!1;for(var y=t._children[Symbol.iterator](),v=r._children[Symbol.iterator](),_=y.next(),g=v.next();!_.done&&!g.done;){if(!e(_.value,g.value))return!1;_=y.next(),g=v.next()}return!0},t.node_listOfElementsWithQualifiedName=function(e,t){return\"*\"===e?s.create_htmlCollection(t):\"html\"===t._nodeDocument._type?s.create_htmlCollection(t,(function(t){return t._namespace===a.namespace.HTML&&t._qualifiedName===e.toLowerCase()||t._namespace!==a.namespace.HTML&&t._qualifiedName===e})):s.create_htmlCollection(t,(function(t){return t._qualifiedName===e}))},t.node_listOfElementsWithNamespace=function(e,t,r){return\"\"===e&&(e=null),\"*\"===e&&\"*\"===t?s.create_htmlCollection(r):\"*\"===e?s.create_htmlCollection(r,(function(e){return e._localName===t})):\"*\"===t?s.create_htmlCollection(r,(function(t){return t._namespace===e})):s.create_htmlCollection(r,(function(r){return r._localName===t&&r._namespace===e}))},t.node_listOfElementsWithClassNames=function(e,t){var r=u.orderedSet_parse(e);if(0===r.size)return s.create_htmlCollection(t,(function(){return!1}));var n=\"quirks\"!==t._nodeDocument._mode;return s.create_htmlCollection(t,(function(e){var t=e.classList;return u.orderedSet_contains(t._tokenSet,r,n)}))},t.node_locateANamespacePrefix=function e(t,r){if(t._namespace===r&&null!==t._namespacePrefix)return t._namespacePrefix;for(var n=0;n<t._attributeList.length;n++){var i=t._attributeList[n];if(\"xmlns\"===i._namespacePrefix&&i._value===r)return i._localName}return t._parent&&o.Guard.isElementNode(t._parent)?e(t._parent,r):null},t.node_locateANamespace=function e(t,r){if(o.Guard.isElementNode(t)){if(null!==t._namespace&&t._namespacePrefix===r)return t._namespace;for(var n=0;n<t._attributeList.length;n++){var i=t._attributeList[n];if(i._namespace===a.namespace.XMLNS&&\"xmlns\"===i._namespacePrefix&&i._localName===r)return i._value||null;if(null===r&&i._namespace===a.namespace.XMLNS&&null===i._namespacePrefix&&\"xmlns\"===i._localName)return i._value||null}return null===t.parentElement?null:e(t.parentElement,r)}return o.Guard.isDocumentNode(t)?null===t.documentElement?null:e(t.documentElement,r):o.Guard.isDocumentTypeNode(t)||o.Guard.isDocumentFragmentNode(t)?null:o.Guard.isAttrNode(t)?null===t._element?null:e(t._element,r):t._parent&&o.Guard.isElementNode(t._parent)?e(t._parent,r):null}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(6),o=r(3),a=r(9),s=r(29),u=r(17),l=r(107),c=r(37);t.text_contiguousTextNodes=function(e,t){var r;return void 0===t&&(t=!1),(r={})[Symbol.iterator]=function(){for(var r=e;r&&o.Guard.isTextNode(r._previousSibling);)r=r._previousSibling;return{next:function(){if(r&&!t&&r===e&&(r=o.Guard.isTextNode(r._nextSibling)?r._nextSibling:null),null===r)return{done:!0,value:null};var n={done:!1,value:r};return r=o.Guard.isTextNode(r._nextSibling)?r._nextSibling:null,n}}},r},t.text_contiguousExclusiveTextNodes=function(e,t){var r;return void 0===t&&(t=!1),(r={})[Symbol.iterator]=function(){for(var r=e;r&&o.Guard.isExclusiveTextNode(r._previousSibling);)r=r._previousSibling;return{next:function(){if(r&&!t&&r===e&&(r=o.Guard.isExclusiveTextNode(r._nextSibling)?r._nextSibling:null),null===r)return{done:!0,value:null};var n={done:!1,value:r};return r=o.Guard.isExclusiveTextNode(r._nextSibling)?r._nextSibling:null,n}}},r},t.text_descendantTextContent=function(e){for(var t=\"\",r=u.tree_getFirstDescendantNode(e,!1,!1,(function(e){return o.Guard.isTextNode(e)}));null!==r;)t+=r._data,r=u.tree_getNextDescendantNode(e,r,!1,!1,(function(e){return o.Guard.isTextNode(e)}));return t},t.text_split=function(e,t){var r,o,h=e._data.length;if(t>h)throw new a.IndexSizeError;var p=h-t,f=l.characterData_substringData(e,t,p),d=s.create_text(e._nodeDocument,f),m=e._parent;if(null!==m){c.mutation_insert(d,m,e._nextSibling);try{for(var y=n(i.dom.rangeList),v=y.next();!v.done;v=y.next()){var _=v.value;_._start[0]===e&&_._start[1]>t&&(_._start[0]=d,_._start[1]-=t),_._end[0]===e&&_._end[1]>t&&(_._end[0]=d,_._end[1]-=t);var g=u.tree_index(e);_._start[0]===m&&_._start[1]===g+1&&_._start[1]++,_._end[0]===m&&_._end[1]===g+1&&_._end[1]++}}catch(e){r={error:e}}finally{try{v&&!v.done&&(o=y.return)&&o.call(y)}finally{if(r)throw r.error}}}return l.characterData_replaceData(e,t,p,\"\"),d}},function(e,t,r){\"use strict\";var n=r(4),i=r(41),o=r(24),a=r(48),s=[].join,u=i!=Object,l=a(\"join\",\",\");n({target:\"Array\",proto:!0,forced:u||!l},{join:function(e){return s.call(o(this),void 0===e?\",\":e)}})},function(e,t,r){var n=r(4),i=r(83),o=String.fromCharCode,a=String.fromCodePoint;n({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(e){for(var t,r=[],n=arguments.length,a=0;n>a;){if(t=+arguments[a++],i(t,1114111)!==t)throw RangeError(t+\" is not a valid code point\");r.push(t<65536?o(t):o(55296+((t-=65536)>>10),t%1024+56320))}return r.join(\"\")}})},function(e,t,r){\"use strict\";var n=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(111),o=function(){function e(e,t){this._options={skipWhitespaceOnlyText:!1},this.err={line:-1,col:-1,index:-1,str:\"\"},this._str=e,this._index=0,this._length=e.length,t&&(this._options.skipWhitespaceOnlyText=t.skipWhitespaceOnlyText||!1)}return e.prototype.nextToken=function(){if(this.eof())return{type:i.TokenType.EOF};var t=this.skipIfStartsWith(\"<\")?this.openBracket():this.text();return this._options.skipWhitespaceOnlyText&&t.type===i.TokenType.Text&&e.isWhiteSpaceToken(t)&&(t=this.nextToken()),t},e.prototype.openBracket=function(){return this.skipIfStartsWith(\"?\")?this.skipIfStartsWith(\"xml\")?e.isSpace(this._str[this._index])?this.declaration():(this.seek(-3),this.pi()):this.pi():this.skipIfStartsWith(\"!\")?this.skipIfStartsWith(\"--\")?this.comment():this.skipIfStartsWith(\"[CDATA[\")?this.cdata():this.skipIfStartsWith(\"DOCTYPE\")?this.doctype():void this.throwError(\"Invalid '!' in opening tag.\"):this.skipIfStartsWith(\"/\")?this.closeTag():this.openTag()},e.prototype.declaration=function(){for(var e=\"\",t=\"\",r=\"\";!this.eof();){if(this.skipSpace(),this.skipIfStartsWith(\"?>\"))return{type:i.TokenType.Declaration,version:e,encoding:t,standalone:r};var o=n(this.attribute(),2),a=o[0],s=o[1];\"version\"===a?e=s:\"encoding\"===a?t=s:\"standalone\"===a?r=s:this.throwError(\"Invalid attribute name: \"+a)}this.throwError(\"Missing declaration end symbol `?>`\")},e.prototype.doctype=function(){var e=\"\",t=\"\";this.skipSpace();var r=this.takeUntil2(\"[\",\">\",!0);return this.skipSpace(),this.skipIfStartsWith(\"PUBLIC\")?(e=this.quotedString(),t=this.quotedString()):this.skipIfStartsWith(\"SYSTEM\")&&(t=this.quotedString()),this.skipSpace(),this.skipIfStartsWith(\"[\")&&(this.skipUntil(\"]\"),this.skipIfStartsWith(\"]\")||this.throwError(\"Missing end bracket of DTD internal subset\")),this.skipSpace(),this.skipIfStartsWith(\">\")||this.throwError(\"Missing doctype end symbol `>`\"),{type:i.TokenType.DocType,name:r,pubId:e,sysId:t}},e.prototype.pi=function(){var e=this.takeUntilStartsWith(\"?>\",!0);if(this.eof()&&this.throwError(\"Missing processing instruction end symbol `?>`\"),this.skipSpace(),this.skipIfStartsWith(\"?>\"))return{type:i.TokenType.PI,target:e,data:\"\"};var t=this.takeUntilStartsWith(\"?>\");return this.eof()&&this.throwError(\"Missing processing instruction end symbol `?>`\"),this.seek(2),{type:i.TokenType.PI,target:e,data:t}},e.prototype.text=function(){var e=this.takeUntil(\"<\");return{type:i.TokenType.Text,data:e}},e.prototype.comment=function(){var e=this.takeUntilStartsWith(\"--\\x3e\");return this.eof()&&this.throwError(\"Missing comment end symbol `--\\x3e`\"),this.seek(3),{type:i.TokenType.Comment,data:e}},e.prototype.cdata=function(){var e=this.takeUntilStartsWith(\"]]>\");return this.eof()&&this.throwError(\"Missing CDATA end symbol `]>`\"),this.seek(3),{type:i.TokenType.CDATA,data:e}},e.prototype.openTag=function(){this.skipSpace();var e=this.takeUntil2(\">\",\"/\",!0);if(this.skipSpace(),this.skipIfStartsWith(\">\"))return{type:i.TokenType.Element,name:e,attributes:[],selfClosing:!1};if(this.skipIfStartsWith(\"/>\"))return{type:i.TokenType.Element,name:e,attributes:[],selfClosing:!0};for(var t=[];!this.eof();){if(this.skipSpace(),this.skipIfStartsWith(\">\"))return{type:i.TokenType.Element,name:e,attributes:t,selfClosing:!1};if(this.skipIfStartsWith(\"/>\"))return{type:i.TokenType.Element,name:e,attributes:t,selfClosing:!0};var r=this.attribute();t.push(r)}this.throwError(\"Missing opening element tag end symbol `>`\")},e.prototype.closeTag=function(){this.skipSpace();var e=this.takeUntil(\">\",!0);return this.skipSpace(),this.skipIfStartsWith(\">\")||this.throwError(\"Missing closing element tag end symbol `>`\"),{type:i.TokenType.ClosingTag,name:e}},e.prototype.attribute=function(){this.skipSpace();var e=this.takeUntil(\"=\",!0);return this.skipSpace(),this.skipIfStartsWith(\"=\")||this.throwError(\"Missing equals sign before attribute value\"),[e,this.quotedString()]},e.prototype.quotedString=function(){this.skipSpace();var t=this.take(1);e.isQuote(t)||this.throwError(\"Missing start quote character before quoted value\");var r=this.takeUntil(t);return this.skipIfStartsWith(t)||this.throwError(\"Missing end quote character after quoted value\"),r},e.prototype.eof=function(){return this._index>=this._length},e.prototype.skipIfStartsWith=function(e){var t=e.length;if(1===t)return this._str[this._index]===e&&(this._index++,!0);for(var r=0;r<t;r++)if(this._str[this._index+r]!==e[r])return!1;return this._index+=t,!0},e.prototype.seek=function(e){this._index+=e,this._index<0&&(this._index=0),this._index>this._length&&(this._index=this._length)},e.prototype.skipSpace=function(){for(;!this.eof()&&e.isSpace(this._str[this._index]);)this._index++},e.prototype.take=function(e){if(1===e)return this._str[this._index++];var t=this._index;return this.seek(e),this._str.slice(t,this._index)},e.prototype.takeUntil=function(t,r){void 0===r&&(r=!1);for(var n=this._index;this._index<this._length;){var i=this._str[this._index];if(i===t||r&&e.isSpace(i))break;this._index++}return this._str.slice(n,this._index)},e.prototype.takeUntil2=function(t,r,n){void 0===n&&(n=!1);for(var i=this._index;this._index<this._length;){var o=this._str[this._index];if(o===t||o===r||n&&e.isSpace(o))break;this._index++}return this._str.slice(i,this._index)},e.prototype.takeUntilStartsWith=function(t,r){void 0===r&&(r=!1);for(var n=this._index,i=t.length;this._index<this._length;){for(var o=!0,a=0;a<i;a++){var s=this._str[this._index+a],u=t[a];if(r&&e.isSpace(s))return this._str.slice(n,this._index);if(s!==u){this._index++,o=!1;break}}if(o)return this._str.slice(n,this._index)}return this._index=this._length,this._str.slice(n)},e.prototype.skipUntil=function(e){for(;this._index<this._length;){if(this._str[this._index]===e)break;this._index++}},e.isWhiteSpaceToken=function(e){for(var t=e.data,r=0;r<t.length;r++){var n=t[r];if(\" \"!==n&&\"\\n\"!==n&&\"\\r\"!==n&&\"\\t\"!==n&&\"\\f\"!==n)return!1}return!0},e.isSpace=function(e){return\" \"===e||\"\\n\"===e||\"\\r\"===e||\"\\t\"===e},e.isQuote=function(e){return'\"'===e||\"'\"===e},e.prototype.throwError=function(e){for(var t=/\\r\\n|\\r|\\n/g,r=null,n=0,i=0,o=this._str.length;null!==(r=t.exec(this._str))&&null!==r;)if(n++,r.index<this._index&&(i=t.lastIndex),r.index>this._index){o=r.index;break}throw this.err={line:n,col:this._index-i,index:this._index,str:this._str.substring(i,o)},new Error(e+\"\\nIndex: \"+this.err.index+\"\\nLn: \"+this.err.line+\", Col: \"+this.err.col+\"\\nInput: \"+this.err.str)},e.prototype[Symbol.iterator]=function(){return this._index=0,{next:function(){var e=this.nextToken();return e.type===i.TokenType.EOF?{done:!0,value:null}:{done:!1,value:e}}.bind(this)}},e}();t.XMLStringLexer=o},function(e,t,r){\"use strict\";var n=r(39);e.exports=new n({include:[r(182)]})},function(e,t,r){\"use strict\";var n=r(39);e.exports=new n({include:[r(113)],implicit:[r(289),r(290),r(291),r(292)]})},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(91),i=r(1),o=r(3),a=r(77),s=r(109);function u(e,t){var r=c(void 0===e||l(e)?e:n.DefaultBuilderOptions),i=l(e)?t:e,o=s.createDocument();h(o,r);var u=new a.XMLBuilderImpl(o);return void 0!==i&&u.ele(i),u}function l(e){if(!i.isPlainObject(e))return!1;for(var t in e)if(e.hasOwnProperty(t)&&!n.XMLBuilderOptionKeys.has(t))return!1;return!0}function c(e){void 0===e&&(e={});var t=i.applyDefaults(e,n.DefaultBuilderOptions);if(0===t.convert.att.length||0===t.convert.ins.length||0===t.convert.text.length||0===t.convert.cdata.length||0===t.convert.comment.length)throw new Error(\"JS object converter strings cannot be zero length.\");return t}function h(e,t,r){var n=e;n._xmlBuilderOptions=t,n._isFragment=r}t.builder=function(e,t){var r=c(l(e)?e:n.DefaultBuilderOptions),s=o.Guard.isNode(e)||i.isArray(e)?e:t;if(void 0===s)throw new Error(\"Invalid arguments.\");if(i.isArray(s)){for(var u=[],h=0;h<s.length;h++){var p=new a.XMLBuilderImpl(s[h]);p.set(r),u.push(p)}return u}var f=new a.XMLBuilderImpl(s);return f.set(r),f},t.create=u,t.fragment=function(e,t){var r=c(void 0===e||l(e)?e:n.DefaultBuilderOptions),i=l(e)?t:e,o=s.createDocument();h(o,r,!0);var u=new a.XMLBuilderImpl(o.createDocumentFragment());return void 0!==i&&u.ele(i),u},t.convert=function(e,t,r){var i,o,a;return l(e)&&void 0!==t?(i=e,o=t,a=r):(i=n.DefaultBuilderOptions,o=e,a=t||void 0),u(i,o).end(a)}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(77);t.builder=n.builder,t.create=n.create,t.fragment=n.fragment,t.convert=n.convert,t.createCB=n.createCB,t.fragmentCB=n.fragmentCB},function(e,t,r){\"use strict\";r(31),r(32),r(33),r(191),r(192),r(194),r(64),r(19),r(198),r(199),r(89),r(201),r(65),r(20),r(66),r(22),r(23);var n=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},i=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(91),a=r(1),s=r(217),u=r(2),l=r(3),c=r(0),h=r(109),p=r(7),f=r(276),d=function(){function e(e){this._domNode=e}return Object.defineProperty(e.prototype,\"node\",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"options\",{get:function(){return this._options},enumerable:!0,configurable:!0}),e.prototype.set=function(e){return this._options=a.applyDefaults(a.applyDefaults(this._options,e,!0),o.DefaultBuilderOptions),this},e.prototype.ele=function(t,r,i){var o,s,u,l,p,d;if(a.isObject(t))return new f.ObjectReader(this._options).parse(this,t);if(null!==t&&/^\\s*</.test(t))return new f.XMLReader(this._options).parse(this,t);if(null!==t&&/^\\s*[\\{\\[]/.test(t))return new f.JSONReader(this._options).parse(this,t);if(null!==t&&/^(\\s*|(#.*)|(%.*))*---/.test(t))return new f.YAMLReader(this._options).parse(this,t);if((null===t||a.isString(t))&&a.isString(r))l=(o=n([t,r,i],3))[0],p=o[1],d=o[2];else{if(null===t)throw new Error(\"Element name cannot be null. \"+this._debugInfo());l=(s=n([void 0,t,a.isObject(r)?r:void 0],3))[0],p=s[1],d=s[2]}if(d&&(d=a.getValue(d)),l=(u=n(this._extractNamespace(h.sanitizeInput(l,this._options.invalidCharReplacement),h.sanitizeInput(p,this._options.invalidCharReplacement),!0),2))[0],p=u[1],void 0===l){var m=n(c.namespace_extractQName(p),1)[0];l=this.node.lookupNamespaceURI(m)}var y=null!=l?this._doc.createElementNS(l,p):this._doc.createElement(p);this.node.appendChild(y);var v=new e(y),_=this._doc.doctype;if(y===this._doc.documentElement&&null!==_){var g=this._doc.implementation.createDocumentType(this._doc.documentElement.tagName,_.publicId,_.systemId);this._doc.replaceChild(g,_)}return d&&!a.isEmpty(d)&&v.att(d),v},e.prototype.remove=function(){var e=this.up();return e.node.removeChild(this.node),e},e.prototype.att=function(e,t,r){var i,o,s,u,f,d,m=this;if(a.isMap(e)||a.isObject(e))return a.forEachObject(e,(function(e,t){return m.att(e,t)}),this),this;if(null!=e&&(e=a.getValue(e+\"\")),null!=t&&(t=a.getValue(t+\"\")),null!=r&&(r=a.getValue(r+\"\")),null!==e&&!a.isString(e)||!a.isString(t)||null!==r&&!a.isString(r)){if(!a.isString(e)||null!=t&&!a.isString(t))throw new Error(\"Attribute name and value not specified. \"+this._debugInfo());u=(o=n([void 0,e,t],3))[0],f=o[1],d=o[2]}else u=(i=n([e,t,r],3))[0],f=i[1],d=i[2];if(this._options.keepNullAttributes&&null==d)d=\"\";else if(null==d)return this;if(!l.Guard.isElementNode(this.node))throw new Error(\"An attribute can only be assigned to an element node.\");var y=this.node;u=(s=n(this._extractNamespace(u,f,!1),2))[0],f=s[1],f=h.sanitizeInput(f,this._options.invalidCharReplacement),u=h.sanitizeInput(u,this._options.invalidCharReplacement),d=h.sanitizeInput(d,this._options.invalidCharReplacement);var v=n(c.namespace_extractQName(f),2),_=v[0],g=v[1],b=n(c.namespace_extractQName(y.prefix?y.prefix+\":\"+y.localName:y.localName),1)[0],x=null;return\"xmlns\"===_?(u=p.namespace.XMLNS,null===y.namespaceURI&&b===g&&(x=d)):null===_&&\"xmlns\"===g&&null===b&&(u=p.namespace.XMLNS,x=d),null!==x&&(this._updateNamespace(x),y=this.node),void 0!==u?y.setAttributeNS(u,f,d):y.setAttribute(f,d),this},e.prototype.removeAtt=function(e,t){var r,n,i=this;if(!l.Guard.isElementNode(this.node))throw new Error(\"An attribute can only be removed from an element node.\");if(e=a.getValue(e),void 0!==t&&(t=a.getValue(t)),null!==e&&void 0===t)n=e;else{if(null!==e&&!a.isString(e)||void 0===t)throw new Error(\"Attribute namespace must be a string. \"+this._debugInfo());r=e,n=t}return a.isArray(n)||a.isSet(n)?a.forEachArray(n,(function(e){return void 0===r?i.removeAtt(e):i.removeAtt(r,e)}),this):void 0!==r?(n=h.sanitizeInput(n,this._options.invalidCharReplacement),r=h.sanitizeInput(r,this._options.invalidCharReplacement),this.node.removeAttributeNS(r,n)):(n=h.sanitizeInput(n,this._options.invalidCharReplacement),this.node.removeAttribute(n)),this},e.prototype.txt=function(e){if(null==e){if(!this._options.keepNullNodes)return this;e=\"\"}var t=this._doc.createTextNode(h.sanitizeInput(e,this._options.invalidCharReplacement));return this.node.appendChild(t),this},e.prototype.com=function(e){if(null==e){if(!this._options.keepNullNodes)return this;e=\"\"}var t=this._doc.createComment(h.sanitizeInput(e,this._options.invalidCharReplacement));return this.node.appendChild(t),this},e.prototype.dat=function(e){if(null==e){if(!this._options.keepNullNodes)return this;e=\"\"}var t=this._doc.createCDATASection(h.sanitizeInput(e,this._options.invalidCharReplacement));return this.node.appendChild(t),this},e.prototype.ins=function(e,t){var r=this;if(void 0===t&&(t=\"\"),null==t){if(!this._options.keepNullNodes)return this;t=\"\"}if(a.isArray(e)||a.isSet(e))a.forEachArray(e,(function(e){var t=(e+=\"\").indexOf(\" \"),n=-1===t?e:e.substr(0,t),i=-1===t?\"\":e.substr(t+1);r.ins(n,i)}),this);else if(a.isMap(e)||a.isObject(e))a.forEachObject(e,(function(e,t){return r.ins(e,t)}),this);else{var n=this._doc.createProcessingInstruction(h.sanitizeInput(e,this._options.invalidCharReplacement),h.sanitizeInput(t,this._options.invalidCharReplacement));this.node.appendChild(n)}return this},e.prototype.dec=function(e){return this._options.version=e.version||\"1.0\",this._options.encoding=e.encoding,this._options.standalone=e.standalone,this},e.prototype.dtd=function(e){var t=h.sanitizeInput(e&&e.name||(this._doc.documentElement?this._doc.documentElement.tagName:\"ROOT\"),this._options.invalidCharReplacement),r=h.sanitizeInput(e&&e.pubID||\"\",this._options.invalidCharReplacement),n=h.sanitizeInput(e&&e.sysID||\"\",this._options.invalidCharReplacement);if(null!==this._doc.documentElement&&t!==this._doc.documentElement.tagName)throw new Error(\"DocType name does not match document element name.\");var i=this._doc.implementation.createDocumentType(t,r,n);return null!==this._doc.doctype?this._doc.replaceChild(i,this._doc.doctype):this._doc.insertBefore(i,this._doc.documentElement),this},e.prototype.import=function(t){var r,o,a=this._domNode,s=this._doc,u=t.node;if(l.Guard.isDocumentNode(u)){var h=u.documentElement;if(null===h)throw new Error(\"Imported document has no document element node. \"+this._debugInfo());var p=s.importNode(h,!0);a.appendChild(p);var f=n(c.namespace_extractQName(p.prefix?p.prefix+\":\"+p.localName:p.localName),1)[0],d=a.lookupNamespaceURI(f);new e(p)._updateNamespace(d)}else if(l.Guard.isDocumentFragmentNode(u))try{for(var m=i(u.childNodes),y=m.next();!y.done;y=m.next()){var v=y.value;p=s.importNode(v,!0);if(a.appendChild(p),l.Guard.isElementNode(p)){f=n(c.namespace_extractQName(p.prefix?p.prefix+\":\"+p.localName:p.localName),1)[0],d=a.lookupNamespaceURI(f);new e(p)._updateNamespace(d)}}}catch(e){r={error:e}}finally{try{y&&!y.done&&(o=m.return)&&o.call(m)}finally{if(r)throw r.error}}else{p=s.importNode(u,!0);if(a.appendChild(p),l.Guard.isElementNode(p)){f=n(c.namespace_extractQName(p.prefix?p.prefix+\":\"+p.localName:p.localName),1)[0],d=a.lookupNamespaceURI(f);new e(p)._updateNamespace(d)}}return this},e.prototype.doc=function(){if(this._doc._isFragment){for(var t=this.node;t&&t.nodeType!==u.NodeType.DocumentFragment;)t=t.parentNode;if(null===t)throw new Error(\"Node has no parent node while searching for document fragment ancestor. \"+this._debugInfo());return new e(t)}return new e(this._doc)},e.prototype.root=function(){var t=this._doc.documentElement;if(!t)throw new Error(\"Document root element is null. \"+this._debugInfo());return new e(t)},e.prototype.up=function(){var t=this._domNode.parentNode;if(!t)throw new Error(\"Parent node is null. \"+this._debugInfo());return new e(t)},e.prototype.prev=function(){var t=this._domNode.previousSibling;if(!t)throw new Error(\"Previous sibling node is null. \"+this._debugInfo());return new e(t)},e.prototype.next=function(){var t=this._domNode.nextSibling;if(!t)throw new Error(\"Next sibling node is null. \"+this._debugInfo());return new e(t)},e.prototype.first=function(){var t=this._domNode.firstChild;if(!t)throw new Error(\"First child node is null. \"+this._debugInfo());return new e(t)},e.prototype.last=function(){var t=this._domNode.lastChild;if(!t)throw new Error(\"Last child node is null. \"+this._debugInfo());return new e(t)},e.prototype.each=function(t,r,n,i){void 0===r&&(r=!1),void 0===n&&(n=!1);for(var o=this._getFirstDescendantNode(this._domNode,r,n);o[0];){var a=this._getNextDescendantNode(this._domNode,o[0],n,o[1],o[2]);t.call(i,new e(o[0]),o[1],o[2]),o=a}return this},e.prototype.map=function(e,t,r,n){void 0===t&&(t=!1),void 0===r&&(r=!1);var i=[];return this.each((function(t,r,o){return i.push(e.call(n,t,r,o))}),t,r),i},e.prototype.reduce=function(e,t,r,n,i){void 0===r&&(r=!1),void 0===n&&(n=!1);var o=t;return this.each((function(t,r,n){return o=e.call(i,o,t,r,n)}),r,n),o},e.prototype.find=function(t,r,n,i){void 0===r&&(r=!1),void 0===n&&(n=!1);for(var o=this._getFirstDescendantNode(this._domNode,r,n);o[0];){var a=new e(o[0]);if(t.call(i,a,o[1],o[2]))return a;o=this._getNextDescendantNode(this._domNode,o[0],n,o[1],o[2])}},e.prototype.filter=function(e,t,r,n){void 0===t&&(t=!1),void 0===r&&(r=!1);var i=[];return this.each((function(t,r,o){e.call(n,t,r,o)&&i.push(t)}),t,r),i},e.prototype.every=function(t,r,n,i){void 0===r&&(r=!1),void 0===n&&(n=!1);for(var o=this._getFirstDescendantNode(this._domNode,r,n);o[0];){var a=new e(o[0]);if(!t.call(i,a,o[1],o[2]))return!1;o=this._getNextDescendantNode(this._domNode,o[0],n,o[1],o[2])}return!0},e.prototype.some=function(t,r,n,i){void 0===r&&(r=!1),void 0===n&&(n=!1);for(var o=this._getFirstDescendantNode(this._domNode,r,n);o[0];){var a=new e(o[0]);if(t.call(i,a,o[1],o[2]))return!0;o=this._getNextDescendantNode(this._domNode,o[0],n,o[1],o[2])}return!1},e.prototype.toArray=function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var r=[];return this.each((function(e){return r.push(e)}),e,t),r},e.prototype.toString=function(e){return void 0===(e=e||{}).format&&(e.format=\"xml\"),this._serialize(e)},e.prototype.toObject=function(e){return void 0===(e=e||{}).format&&(e.format=\"object\"),this._serialize(e)},e.prototype.end=function(e){return void 0===(e=e||{}).format&&(e.format=\"xml\"),this.doc()._serialize(e)},e.prototype._getFirstDescendantNode=function(e,t,r){return t?[this._domNode,0,0]:r?this._getNextDescendantNode(e,e,r,0,0):[this._domNode.firstChild,0,1]},e.prototype._getNextDescendantNode=function(e,t,r,n,i){if(!r)return e===t?[t.firstChild,0,i+1]:[t.nextSibling,n+1,i];if(t.firstChild)return[t.firstChild,0,i+1];if(t===e)return[null,-1,-1];if(t.nextSibling)return[t.nextSibling,n+1,i];for(var o=t.parentNode;o&&o!==e;){if(o.nextSibling)return[o.nextSibling,c.tree_index(o.nextSibling),i-1];o=o.parentNode,i--}return[null,-1,-1]},e.prototype._serialize=function(e){if(\"xml\"===e.format)return new s.XMLWriter(this._options,e).serialize(this.node);if(\"map\"===e.format)return new s.MapWriter(this._options,e).serialize(this.node);if(\"object\"===e.format)return new s.ObjectWriter(this._options,e).serialize(this.node);if(\"json\"===e.format)return new s.JSONWriter(this._options,e).serialize(this.node);if(\"yaml\"===e.format)return new s.YAMLWriter(this._options,e).serialize(this.node);throw new Error(\"Invalid writer format: \"+e.format+\". \"+this._debugInfo())},e.prototype._extractNamespace=function(e,t,r){var n=t.indexOf(\"@\");if(n>0&&(void 0===e&&(e=t.slice(n+1)),t=t.slice(0,n)),void 0===e)e=r?this._options.defaultNamespace.ele:this._options.defaultNamespace.att;else if(null!==e&&\"@\"===e[0]){var i=e.slice(1);if(void 0===(e=this._options.namespaceAlias[i]))throw new Error(\"Namespace alias `\"+i+\"` is not defined. \"+this._debugInfo())}return[e,t]},e.prototype._updateNamespace=function(t){var r,o,a,s,u=this._domNode;if(l.Guard.isElementNode(u)&&null!==t&&u.namespaceURI!==t){var h=n(c.namespace_extractQName(u.prefix?u.prefix+\":\"+u.localName:u.localName),2),p=h[0],f=h[1],d=c.create_element(this._doc,f,t,p);try{for(var m=i(u.attributes),y=m.next();!y.done;y=m.next()){var v=y.value,_=v.prefix?v.prefix+\":\"+v.localName:v.localName,g=n(c.namespace_extractQName(_),1)[0],b=v.namespaceURI;null===b&&null!==g&&(b=u.lookupNamespaceURI(g)),null===b?d.setAttribute(_,v.value):d.setAttributeNS(b,_,v.value)}}catch(e){r={error:e}}finally{try{y&&!y.done&&(o=m.return)&&o.call(m)}finally{if(r)throw r.error}}var x=u.parentNode;if(null===x)throw new Error(\"Parent node is null.\"+this._debugInfo());x.replaceChild(d,u),this._domNode=d;try{for(var w=i(u.childNodes),E=w.next();!E.done;E=w.next()){var D=E.value.cloneNode(!0);if(d.appendChild(D),l.Guard.isElementNode(D)){var S=n(c.namespace_extractQName(D.prefix?D.prefix+\":\"+D.localName:D.localName),1)[0],C=d.lookupNamespaceURI(S);new e(D)._updateNamespace(C)}}}catch(e){a={error:e}}finally{try{E&&!E.done&&(s=w.return)&&s.call(w)}finally{if(a)throw a.error}}}},Object.defineProperty(e.prototype,\"_doc\",{get:function(){var e=this.node;if(l.Guard.isDocumentNode(e))return e;var t=e.ownerDocument;if(!t)throw new Error(\"Owner document is null. \"+this._debugInfo());return t},enumerable:!0,configurable:!0}),e.prototype._debugInfo=function(e){var t=this.node,r=t.parentNode;e=e||t.nodeName;var n=r?r.nodeName:\"\";return n?\"node: <\"+e+\">, parent: <\"+n+\">\":\"node: <\"+e+\">\"},Object.defineProperty(e.prototype,\"_options\",{get:function(){var e=this._doc;if(void 0===e._xmlBuilderOptions)throw new Error(\"Builder options is not set.\");return e._xmlBuilderOptions},set:function(e){this._doc._xmlBuilderOptions=e},enumerable:!0,configurable:!0}),e}();t.XMLBuilderImpl=d},function(e,t,r){var n=r(11),i=r(117),o=n.WeakMap;e.exports=\"function\"==typeof o&&/native code/.test(i(o))},function(e,t,r){var n=r(46),i=r(82),o=r(85),a=r(18);e.exports=n(\"Reflect\",\"ownKeys\")||function(e){var t=i.f(a(e)),r=o.f;return r?t.concat(r(e)):t}},function(e,t,r){var n=r(16),i=r(15),o=r(18),a=r(61);e.exports=n?Object.defineProperties:function(e,t){o(e);for(var r,n=a(t),s=n.length,u=0;s>u;)i.f(e,r=n[u++],t[r]);return e}},function(e,t,r){var n=r(46);e.exports=n(\"document\",\"documentElement\")},function(e,t,r){var n=r(24),i=r(82).f,o={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&\"[object Window]\"==o.call(e)?function(e){try{return i(e)}catch(e){return a.slice()}}(e):i(n(e))}},function(e,t,r){\"use strict\";var n=r(4),i=r(36).every,o=r(48),a=r(28),s=o(\"every\"),u=a(\"every\");n({target:\"Array\",proto:!0,forced:!s||!u},{every:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){\"use strict\";var n=r(4),i=r(36).filter,o=r(63),a=r(28),s=o(\"filter\"),u=a(\"filter\");n({target:\"Array\",proto:!0,forced:!s||!u},{filter:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){var n=r(46);e.exports=n(\"navigator\",\"userAgent\")||\"\"},function(e,t,r){\"use strict\";var n=r(4),i=r(36).find,o=r(130),a=r(28),s=!0,u=a(\"find\");\"find\"in[]&&Array(1).find((function(){s=!1})),n({target:\"Array\",proto:!0,forced:s||!u},{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o(\"find\")},function(e,t,r){\"use strict\";var n=r(131).IteratorPrototype,i=r(60),o=r(40),a=r(62),s=r(49),u=function(){return this};e.exports=function(e,t,r){var l=t+\" Iterator\";return e.prototype=i(n,{next:o(1,r)}),a(e,l,!1,!0),s[l]=u,e}},function(e,t,r){var n=r(8);e.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,r){var n=r(13);e.exports=function(e){if(!n(e)&&null!==e)throw TypeError(\"Can't set \"+String(e)+\" as a prototype\");return e}},function(e,t,r){\"use strict\";var n=r(4),i=r(36).map,o=r(63),a=r(28),s=o(\"map\"),u=a(\"map\");n({target:\"Array\",proto:!0,forced:!s||!u},{map:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){\"use strict\";var n=r(4),i=r(200).left,o=r(48),a=r(28),s=o(\"reduce\"),u=a(\"reduce\",{1:0});n({target:\"Array\",proto:!0,forced:!s||!u},{reduce:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){var n=r(127),i=r(27),o=r(41),a=r(26),s=function(e){return function(t,r,s,u){n(r);var l=i(t),c=o(l),h=a(l.length),p=e?h-1:0,f=e?-1:1;if(s<2)for(;;){if(p in c){u=c[p],p+=f;break}if(p+=f,e?p<0:h<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;e?p>=0:h>p;p+=f)p in c&&(u=r(u,c[p],p,l));return u}};e.exports={left:s(!1),right:s(!0)}},function(e,t,r){\"use strict\";var n=r(4),i=r(36).some,o=r(48),a=r(28),s=o(\"some\"),u=a(\"some\");n({target:\"Array\",proto:!0,forced:!s||!u},{some:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){\"use strict\";var n=r(90),i=r(135);e.exports=n?{}.toString:function(){return\"[object \"+i(this)+\"]\"}},function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(e,t,r){var n=r(8);e.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,r){var n=r(5),i=r(49),o=n(\"iterator\"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(i.Array===e||a[o]===e)}},function(e,t,r){var n=r(135),i=r(49),o=r(5)(\"iterator\");e.exports=function(e){if(null!=e)return e[o]||e[\"@@iterator\"]||i[n(e)]}},function(e,t,r){var n=r(18);e.exports=function(e,t,r,i){try{return i?t(n(r)[0],r[1]):t(r)}catch(t){var o=e.return;throw void 0!==o&&n(o.call(e)),t}}},function(e,t,r){var n=r(5)(\"iterator\"),i=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){i=!0}};a[n]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var r=!1;try{var o={};o[n]=function(){return{next:function(){return{done:r=!0}}}},e(o)}catch(e){}return r}},function(e,t,r){var n=r(13),i=r(133);e.exports=function(e,t,r){var o,a;return i&&\"function\"==typeof(o=t.constructor)&&o!==r&&n(a=o.prototype)&&a!==r.prototype&&i(e,a),e}},function(e,t,r){var n=r(25);e.exports=function(e,t,r){for(var i in t)n(e,i,t[i],r);return e}},function(e,t,r){\"use strict\";var n=r(46),i=r(15),o=r(5),a=r(16),s=o(\"species\");e.exports=function(e){var t=n(e),r=i.f;a&&t&&!t[s]&&r(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,r){\"use strict\";var n=this&&this.__generator||function(e,t){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},i=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){void 0===e&&(e=1e3),this._items=new Set,this._limit=e}return e.prototype.add=function(e){if(this._items.add(e),this._items.size>this._limit){var t=this._items.values().next();t.done||this._items.delete(t.value)}return this},e.prototype.delete=function(e){return this._items.delete(e)},e.prototype.has=function(e){return this._items.has(e)},e.prototype.clear=function(){this._items.clear()},Object.defineProperty(e.prototype,\"size\",{get:function(){return this._items.size},enumerable:!0,configurable:!0}),e.prototype.forEach=function(e,t){var r=this;this._items.forEach((function(n){return e.call(t,n,n,r)}))},e.prototype.keys=function(){return n(this,(function(e){switch(e.label){case 0:return[5,i(this._items.keys())];case 1:return e.sent(),[2]}}))},e.prototype.values=function(){return n(this,(function(e){switch(e.label){case 0:return[5,i(this._items.values())];case 1:return e.sent(),[2]}}))},e.prototype.entries=function(){return n(this,(function(e){switch(e.label){case 0:return[5,i(this._items.entries())];case 1:return e.sent(),[2]}}))},e.prototype[Symbol.iterator]=function(){return n(this,(function(e){switch(e.label){case 0:return[5,i(this._items)];case 1:return e.sent(),[2]}}))},Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function(){return\"FixedSizeSet\"},enumerable:!0,configurable:!0}),e}();t.FixedSizeSet=o},function(e,t,r){\"use strict\";var n=this&&this.__generator||function(e,t){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},i=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){void 0===e&&(e=1e3),this._items=new Map,this._limit=e}return e.prototype.get=function(e){return this._items.get(e)},e.prototype.set=function(e,t){if(this._items.set(e,t),this._items.size>this._limit){var r=this._items.keys().next();r.done||this._items.delete(r.value)}},e.prototype.delete=function(e){return this._items.delete(e)},e.prototype.has=function(e){return this._items.has(e)},e.prototype.clear=function(){this._items.clear()},Object.defineProperty(e.prototype,\"size\",{get:function(){return this._items.size},enumerable:!0,configurable:!0}),e.prototype.forEach=function(e,t){this._items.forEach((function(r,n){return e.call(t,n,r)}))},e.prototype.keys=function(){return n(this,(function(e){switch(e.label){case 0:return[5,i(this._items.keys())];case 1:return e.sent(),[2]}}))},e.prototype.values=function(){return n(this,(function(e){switch(e.label){case 0:return[5,i(this._items.values())];case 1:return e.sent(),[2]}}))},e.prototype.entries=function(){return n(this,(function(e){switch(e.label){case 0:return[5,i(this._items.entries())];case 1:return e.sent(),[2]}}))},e.prototype[Symbol.iterator]=function(){return n(this,(function(e){switch(e.label){case 0:return[5,i(this._items)];case 1:return e.sent(),[2]}}))},Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function(){return\"ObjectCache\"},enumerable:!0,configurable:!0}),e}();t.ObjectCache=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){void 0===e&&(e=1e3),this._items=new Map,this._limit=e}return e.prototype.check=function(e,t){if(this._items.get(e)===t)return!0;if(this._items.get(t)===e)return!1;var r=Math.random()<.5;if(r?this._items.set(e,t):this._items.set(t,e),this._items.size>this._limit){var n=this._items.keys().next();n.done||this._items.delete(n.value)}return r},e}();t.CompareCache=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._initialized=!1,this._value=void 0,this._initFunc=e}return Object.defineProperty(e.prototype,\"value\",{get:function(){return this._initialized||(this._value=this._initFunc(),this._initialized=!0),this._value},enumerable:!0,configurable:!0}),e}();t.Lazy=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._pointer=0,this._chars=Array.from(e),this._length=this._chars.length}return Object.defineProperty(e.prototype,\"eof\",{get:function(){return this._pointer>=this._length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"length\",{get:function(){return this._length},enumerable:!0,configurable:!0}),e.prototype.codePoint=function(){if(void 0===this._codePoint)if(this.eof)this._codePoint=-1;else{var e=this._chars[this._pointer].codePointAt(0);this._codePoint=void 0!==e?e:-1}return this._codePoint},e.prototype.c=function(){return void 0===this._c&&(this._c=this.eof?\"\":this._chars[this._pointer]),this._c},e.prototype.remaining=function(){return void 0===this._remaining&&(this._remaining=this.eof?\"\":this._chars.slice(this._pointer+1).join(\"\")),this._remaining},e.prototype.substring=function(){return void 0===this._substring&&(this._substring=this.eof?\"\":this._chars.slice(this._pointer).join(\"\")),this._substring},Object.defineProperty(e.prototype,\"pointer\",{get:function(){return this._pointer},set:function(e){e!==this._pointer&&(this._pointer=e,this._codePoint=void 0,this._c=void 0,this._remaining=void 0,this._substring=void 0)},enumerable:!0,configurable:!0}),e}();t.StringWalker=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(218);t.MapWriter=n.MapWriter;var i=r(258);t.XMLWriter=i.XMLWriter;var o=r(67);t.ObjectWriter=o.ObjectWriter;var a=r(260);t.JSONWriter=a.JSONWriter;var s=r(261);t.YAMLWriter=s.YAMLWriter},function(e,t,r){\"use strict\";r(19),r(219),r(20),r(22),r(23);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(1),a=r(67),s=function(e){function t(t,r){var n=e.call(this,t)||this;return n._writerOptions=o.applyDefaults(r,{format:\"map\",wellFormed:!1,group:!1,verbose:!1}),n}return i(t,e),t.prototype.serialize=function(e){var t=o.applyDefaults(this._writerOptions,{format:\"object\",wellFormed:!1,verbose:!1}),r=new a.ObjectWriter(this._builderOptions,t).serialize(e);return this._convertObject(r)},t.prototype._convertObject=function(e){if(o.isArray(e)){for(var t=0;t<e.length;t++)e[t]=this._convertObject(e[t]);return e}if(o.isObject(e)){var r=new Map;for(var n in e)r.set(n,this._convertObject(e[n]));return r}return e},t}(r(50).BaseWriter);t.MapWriter=s},function(e,t,r){\"use strict\";var n=r(139),i=r(143);e.exports=n(\"Map\",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),i)},function(e,t,r){\"use strict\";var n=r(4),i=r(8),o=r(59),a=r(13),s=r(27),u=r(26),l=r(134),c=r(128),h=r(63),p=r(5),f=r(129),d=p(\"isConcatSpreadable\"),m=f>=51||!i((function(){var e=[];return e[d]=!1,e.concat()[0]!==e})),y=h(\"concat\"),v=function(e){if(!a(e))return!1;var t=e[d];return void 0!==t?!!t:o(e)};n({target:\"Array\",proto:!0,forced:!m||!y},{concat:function(e){var t,r,n,i,o,a=s(this),h=c(a,0),p=0;for(t=-1,n=arguments.length;t<n;t++)if(v(o=-1===t?a:arguments[t])){if(p+(i=u(o.length))>9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");for(r=0;r<i;r++,p++)r in o&&l(h,p,o[r])}else{if(p>=9007199254740991)throw TypeError(\"Maximum allowed index exceeded\");l(h,p++,o)}return h.length=p,h}})},function(e,t,r){\"use strict\";var n=r(8);function i(e,t){return RegExp(e,t)}t.UNSUPPORTED_Y=n((function(){var e=i(\"a\",\"y\");return e.lastIndex=2,null!=e.exec(\"abcd\")})),t.BROKEN_CARET=n((function(){var e=i(\"^r\",\"gy\");return e.lastIndex=2,null!=e.exec(\"str\")}))},function(e,t,r){var n=r(223);e.exports=function(e){if(n(e))throw TypeError(\"The method doesn't accept regular expressions\");return e}},function(e,t,r){var n=r(13),i=r(42),o=r(5)(\"match\");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[o])?!!t:\"RegExp\"==i(e))}},function(e,t,r){var n=r(5)(\"match\");e.exports=function(e){var t=/./;try{\"/./\"[e](t)}catch(r){try{return t[n]=!1,\"/./\"[e](t)}catch(e){}}return!1}},function(e,t,r){\"use strict\";r(68);var n=r(25),i=r(8),o=r(5),a=r(93),s=r(21),u=o(\"species\"),l=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:\"7\"},e},\"7\"!==\"\".replace(e,\"$<a>\")})),c=\"$0\"===\"a\".replace(/./,\"$0\"),h=o(\"replace\"),p=!!/./[h]&&\"\"===/./[h](\"a\",\"$0\"),f=!i((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var r=\"ab\".split(e);return 2!==r.length||\"a\"!==r[0]||\"b\"!==r[1]}));e.exports=function(e,t,r,h){var d=o(e),m=!i((function(){var t={};return t[d]=function(){return 7},7!=\"\"[e](t)})),y=m&&!i((function(){var t=!1,r=/a/;return\"split\"===e&&((r={}).constructor={},r.constructor[u]=function(){return r},r.flags=\"\",r[d]=/./[d]),r.exec=function(){return t=!0,null},r[d](\"\"),!t}));if(!m||!y||\"replace\"===e&&(!l||!c||p)||\"split\"===e&&!f){var v=/./[d],_=r(d,\"\"[e],(function(e,t,r,n,i){return t.exec===a?m&&!i?{done:!0,value:v.call(t,r,n)}:{done:!0,value:e.call(r,t,n)}:{done:!1}}),{REPLACE_KEEPS_$0:c,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),g=_[0],b=_[1];n(String.prototype,e,g),n(RegExp.prototype,d,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)})}h&&s(RegExp.prototype[d],\"sham\",!0)}},function(e,t,r){\"use strict\";var n=r(137).charAt;e.exports=function(e,t,r){return t+(r?n(e,t).length:1)}},function(e,t,r){var n=r(42),i=r(93);e.exports=function(e,t){var r=e.exec;if(\"function\"==typeof r){var o=r.call(e,t);if(\"object\"!=typeof o)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return o}if(\"RegExp\"!==n(e))throw TypeError(\"RegExp#exec called on incompatible receiver\");return i.call(e,t)}},function(e,t,r){\"use strict\";(function(e){Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(96);t.forgivingBase64Encode=function(t){return e.from(t).toString(\"base64\")},t.forgivingBase64Decode=function(t){return\"\"===t?\"\":((t=t.replace(n.ASCIIWhiteSpace,\"\")).length%4==0&&(t.endsWith(\"==\")?t=t.substr(0,t.length-2):t.endsWith(\"=\")&&(t=t.substr(0,t.length-1))),t.length%4==1?null:/[0-9A-Za-z+/]/.test(t)?e.from(t,\"base64\").toString(\"utf8\"):null)}}).call(this,r(145).Buffer)},function(e,t,r){\"use strict\";t.byteLength=function(e){var t=l(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,n=l(e),a=n[0],s=n[1],u=new o(function(e,t,r){return 3*(t+r)/4-r}(0,a,s)),c=0,h=s>0?a-4:a;for(r=0;r<h;r+=4)t=i[e.charCodeAt(r)]<<18|i[e.charCodeAt(r+1)]<<12|i[e.charCodeAt(r+2)]<<6|i[e.charCodeAt(r+3)],u[c++]=t>>16&255,u[c++]=t>>8&255,u[c++]=255&t;2===s&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,u[c++]=255&t);1===s&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t);return u},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],a=0,s=r-i;a<s;a+=16383)o.push(c(e,a,a+16383>s?s:a+16383));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+\"==\")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+\"=\"));return o.join(\"\")};for(var n=[],i=[],o=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",s=0,u=a.length;s<u;++s)n[s]=a[s],i[a.charCodeAt(s)]=s;function l(e){var t=e.length;if(t%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=e.indexOf(\"=\");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,r){for(var i,o,a=[],s=t;s<r;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(n[(o=i)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join(\"\")}i[\"-\".charCodeAt(0)]=62,i[\"_\".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,r,n,i){var o,a,s=8*i-n-1,u=(1<<s)-1,l=u>>1,c=-7,h=r?i-1:0,p=r?-1:1,f=e[t+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+e[t+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=n;c>0;a=256*a+e[t+h],h+=p,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),o-=l}return(f?-1:1)*a*Math.pow(2,o-n)},t.write=function(e,t,r,n,i,o){var a,s,u,l=8*o-i-1,c=(1<<l)-1,h=c>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+h>=1?p/u:p*Math.pow(2,1-h))*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(t*u-1)*Math.pow(2,i),a+=h):(s=t*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;e[r+f]=255&s,f+=d,s/=256,i-=8);for(a=a<<i|s,l+=i;l>0;e[r+f]=255&a,f+=d,a/=256,l-=8);e[r+f-d]|=128*m}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return\"[object Array]\"==r.call(e)}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1);function o(e){var t,r;if(null===e||i.isString(e)||i.isNumber(e))return e;if(i.isArray(e)){var a=new Array;try{for(var s=n(e),u=s.next();!u.done;u=s.next()){var l=u.value;a.push(o(l))}}catch(e){t={error:e}}finally{try{u&&!u.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}return a}if(i.isObject(e)){a=new Map;for(var c in e)if(e.hasOwnProperty(c)){var h=e[c];a.set(c,o(h))}return a}return e}t.parseJSONFromBytes=function(e){var t=i.utf8Decode(e);return JSON.parse.call(void 0,t)},t.serializeJSONToBytes=function(e){var t=JSON.stringify.call(void 0,e);return i.utf8Encode(t)},t.parseJSONIntoInfraValues=function(e){return o(JSON.parse.call(void 0,e))},t.convertAJSONDerivedJavaScriptValueToAnInfraValue=o},function(e,t,r){\"use strict\";var n=this&&this.__generator||function(e,t){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},i=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},o=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e},a=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var s=r(1);t.append=function(e,t){e.push(t)},t.extend=function(e,t){e.push.apply(e,o(t))},t.prepend=function(e,t){e.unshift(t)},t.replace=function(e,t,r){var n,i,o=0;try{for(var u=a(e),l=u.next();!l.done;l=u.next()){var c=l.value;if(s.isFunction(t))t.call(null,c)&&(e[o]=r);else if(c===t)return void(e[o]=r);o++}}catch(e){n={error:e}}finally{try{l&&!l.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}},t.insert=function(e,t,r){e.splice(r,0,t)},t.remove=function(e,t){for(var r=e.length;r--;){var n=e[r];if(s.isFunction(t))t.call(null,n)&&e.splice(r,1);else if(n===t)return void e.splice(r,1)}},t.empty=function(e){e.length=0},t.contains=function(e,t){var r,n;try{for(var i=a(e),o=i.next();!o.done;o=i.next()){var u=o.value;if(s.isFunction(t)){if(t.call(null,u))return!0}else if(u===t)return!0}}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return!1},t.size=function(e,t){var r,n;if(void 0===t)return e.length;var i=0;try{for(var o=a(e),s=o.next();!s.done;s=o.next()){var u=s.value;t.call(null,u)&&i++}}catch(e){r={error:e}}finally{try{s&&!s.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return i},t.isEmpty=function(e){return 0===e.length},t.forEach=function(e,t){var r,i,o,s,u,l;return n(this,(function(n){switch(n.label){case 0:return void 0!==t?[3,2]:[5,a(e)];case 1:return n.sent(),[3,9];case 2:n.trys.push([2,7,8,9]),r=a(e),i=r.next(),n.label=3;case 3:return i.done?[3,6]:(o=i.value,t.call(null,o)?[4,o]:[3,5]);case 4:n.sent(),n.label=5;case 5:return i=r.next(),[3,3];case 6:return[3,9];case 7:return s=n.sent(),u={error:s},[3,9];case 8:try{i&&!i.done&&(l=r.return)&&l.call(r)}finally{if(u)throw u.error}return[7];case 9:return[2]}}))},t.clone=function(e){return new(Array.bind.apply(Array,o([void 0],e)))},t.sortInAscendingOrder=function(e,t){return e.sort((function(e,r){return t.call(null,e,r)?-1:1}))},t.sortInDescendingOrder=function(e,t){return e.sort((function(e,r){return t.call(null,e,r)?1:-1}))}},function(e,t,r){\"use strict\";var n=this&&this.__generator||function(e,t){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},i=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},o=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(o(arguments[t]));return e};Object.defineProperty(t,\"__esModule\",{value:!0});var s=r(1);t.get=function(e,t){return e.get(t)},t.set=function(e,t,r){e.set(t,r)},t.remove=function(e,t){var r,n,o,a;if(s.isFunction(t)){var u=[];try{for(var l=i(e),c=l.next();!c.done;c=l.next()){var h=c.value;t.call(null,h)&&u.push(h[0])}}catch(e){r={error:e}}finally{try{c&&!c.done&&(n=l.return)&&n.call(l)}finally{if(r)throw r.error}}try{for(var p=i(u),f=p.next();!f.done;f=p.next()){var d=f.value;e.delete(d)}}catch(e){o={error:e}}finally{try{f&&!f.done&&(a=p.return)&&a.call(p)}finally{if(o)throw o.error}}}else e.delete(t)},t.contains=function(e,t){var r,n;if(s.isFunction(t)){try{for(var o=i(e),a=o.next();!a.done;a=o.next()){var u=a.value;if(t.call(null,u))return!0}}catch(e){r={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return!1}return e.has(t)},t.keys=function(e){return new Set(e.keys())},t.values=function(e){return a(e.values())},t.size=function(e,t){var r,n;if(void 0===t)return e.size;var o=0;try{for(var a=i(e),s=a.next();!s.done;s=a.next()){var u=s.value;t.call(null,u)&&o++}}catch(e){r={error:e}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return o},t.isEmpty=function(e){return 0===e.size},t.forEach=function(e,t){var r,o,a,s,u,l;return n(this,(function(n){switch(n.label){case 0:return void 0!==t?[3,2]:[5,i(e)];case 1:return n.sent(),[3,9];case 2:n.trys.push([2,7,8,9]),r=i(e),o=r.next(),n.label=3;case 3:return o.done?[3,6]:(a=o.value,t.call(null,a)?[4,a]:[3,5]);case 4:n.sent(),n.label=5;case 5:return o=r.next(),[3,3];case 6:return[3,9];case 7:return s=n.sent(),u={error:s},[3,9];case 8:try{o&&!o.done&&(l=r.return)&&l.call(r)}finally{if(u)throw u.error}return[7];case 9:return[2]}}))},t.clone=function(e){return new Map(e)},t.sortInAscendingOrder=function(e,t){var r=new(Array.bind.apply(Array,a([void 0],e)));return r.sort((function(e,r){return t.call(null,e,r)?-1:1})),new Map(r)},t.sortInDescendingOrder=function(e,t){var r=new(Array.bind.apply(Array,a([void 0],e)));return r.sort((function(e,r){return t.call(null,e,r)?1:-1})),new Map(r)}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.HTML=\"http://www.w3.org/1999/xhtml\",t.XML=\"http://www.w3.org/XML/1998/namespace\",t.XMLNS=\"http://www.w3.org/2000/xmlns/\",t.MathML=\"http://www.w3.org/1998/Math/MathML\",t.SVG=\"http://www.w3.org/2000/svg\",t.XLink=\"http://www.w3.org/1999/xlink\"},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.enqueue=function(e,t){e.push(t)},t.dequeue=function(e){return e.shift()||null}},function(e,t,r){\"use strict\";var n=this&&this.__generator||function(e,t){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},i=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},o=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(o(arguments[t]));return e};Object.defineProperty(t,\"__esModule\",{value:!0});var s=r(1);function u(e,t){var r,n;try{for(var o=i(e),a=o.next();!a.done;a=o.next()){var s=a.value;if(!t.has(s))return!1}}catch(e){r={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return!0}t.append=function(e,t){e.add(t)},t.extend=function(e,t){t.forEach(e.add,e)},t.prepend=function(e,t){var r=new Set(e);e.clear(),e.add(t),r.forEach(e.add,e)},t.replace=function(e,t,r){var n,o,a=new Set;try{for(var u=i(e),l=u.next();!l.done;l=u.next()){var c=l.value;s.isFunction(t)?t.call(null,c)?a.add(r):a.add(c):c===t?a.add(r):a.add(c)}}catch(e){n={error:e}}finally{try{l&&!l.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}e.clear(),a.forEach(e.add,e)},t.insert=function(e,t,r){var n,o,a=new Set,s=0;try{for(var u=i(e),l=u.next();!l.done;l=u.next()){var c=l.value;s===r&&a.add(t),a.add(c),s++}}catch(e){n={error:e}}finally{try{l&&!l.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}e.clear(),a.forEach(e.add,e)},t.remove=function(e,t){var r,n,o,a;if(s.isFunction(t)){var u=[];try{for(var l=i(e),c=l.next();!c.done;c=l.next()){var h=c.value;t.call(null,h)&&u.push(h)}}catch(e){r={error:e}}finally{try{c&&!c.done&&(n=l.return)&&n.call(l)}finally{if(r)throw r.error}}try{for(var p=i(u),f=p.next();!f.done;f=p.next()){var d=f.value;e.delete(d)}}catch(e){o={error:e}}finally{try{f&&!f.done&&(a=p.return)&&a.call(p)}finally{if(o)throw o.error}}}else e.delete(t)},t.empty=function(e){e.clear()},t.contains=function(e,t){var r,n;if(!s.isFunction(t))return e.has(t);try{for(var o=i(e),a=o.next();!a.done;a=o.next()){var u=a.value;if(t.call(null,u))return!0}}catch(e){r={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return!1},t.size=function(e,t){var r,n;if(void 0===t)return e.size;var o=0;try{for(var a=i(e),s=a.next();!s.done;s=a.next()){var u=s.value;t.call(null,u)&&o++}}catch(e){r={error:e}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return o},t.isEmpty=function(e){return 0===e.size},t.forEach=function(e,t){var r,o,a,s,u,l;return n(this,(function(n){switch(n.label){case 0:return void 0!==t?[3,2]:[5,i(e)];case 1:return n.sent(),[3,9];case 2:n.trys.push([2,7,8,9]),r=i(e),o=r.next(),n.label=3;case 3:return o.done?[3,6]:(a=o.value,t.call(null,a)?[4,a]:[3,5]);case 4:n.sent(),n.label=5;case 5:return o=r.next(),[3,3];case 6:return[3,9];case 7:return s=n.sent(),u={error:s},[3,9];case 8:try{o&&!o.done&&(l=r.return)&&l.call(r)}finally{if(u)throw u.error}return[7];case 9:return[2]}}))},t.clone=function(e){return new Set(e)},t.sortInAscendingOrder=function(e,t){var r=new(Array.bind.apply(Array,a([void 0],e)));return r.sort((function(e,r){return t.call(null,e,r)?-1:1})),new Set(r)},t.sortInDescendingOrder=function(e,t){var r=new(Array.bind.apply(Array,a([void 0],e)));return r.sort((function(e,r){return t.call(null,e,r)?1:-1})),new Set(r)},t.isSubsetOf=u,t.isSupersetOf=function(e,t){return u(t,e)},t.intersection=function(e,t){var r,n,o=new Set;try{for(var a=i(e),s=a.next();!s.done;s=a.next()){var u=s.value;t.has(u)&&o.add(u)}}catch(e){r={error:e}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return o},t.union=function(e,t){var r=new Set(e);return t.forEach(r.add,r),r},t.range=function(e,t){for(var r=new Set,n=e;n<=t;n++)r.add(n);return r}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.push=function(e,t){e.push(t)},t.pop=function(e){return e.pop()||null}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(96),o=r(147),a=r(146),s=r(1);function u(e,t){for(var r=0;;){var n=r<e.length?e.charCodeAt(r):null,i=r<t.length?t.charCodeAt(r):null;if(null===n)return!0;if(n!==i)return!1;r++}}function l(e){var t,r,i=Array.from(e),o=new Uint8Array(i.length),a=0;try{for(var s=n(e),u=s.next();!u.done;u=s.next()){var l=u.value.codePointAt(0);console.assert(void 0!==l&&l<=255,\"isomorphicEncode requires string bytes to be less than or equal to 0x00FF.\"),void 0!==l&&l<=255&&(o[a++]=l)}}catch(e){t={error:e}}finally{try{u&&!u.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}return o}function c(e){return/^[\\u0000-\\u007F]*$/.test(e)}function h(e){var t,r,i=\"\";try{for(var o=n(e),a=o.next();!a.done;a=o.next()){var s=a.value,u=s.codePointAt(0);i+=void 0!==u&&u>=65&&u<=90?String.fromCodePoint(u+32):s}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return i}function p(e){return e.replace(/^[\\t\\n\\f\\r ]+/,\"\").replace(/[\\t\\n\\f\\r ]+$/,\"\")}function f(e,t,r){if(!s.isArray(t))return f(e,Array.from(t),r);for(var n=\"\";r.position<t.length&&e.call(null,t[r.position]);)n+=t[r.position],r.position++;return n}function d(e,t){f((function(e){return i.ASCIIWhiteSpace.test(e)}),e,t)}t.isCodeUnitPrefix=u,t.isCodeUnitLessThan=function(e,t){if(u(t,e))return!1;if(u(e,t))return!0;for(var r=0;r<Math.min(e.length,t.length);r++){var n=e.charCodeAt(r),i=t.charCodeAt(r);if(n!==i)return n<i}return!1},t.isomorphicEncode=l,t.isASCIIString=c,t.asciiLowercase=h,t.asciiUppercase=function(e){var t,r,i=\"\";try{for(var o=n(e),a=o.next();!a.done;a=o.next()){var s=a.value,u=s.codePointAt(0);i+=void 0!==u&&u>=97&&u<=122?String.fromCodePoint(u-32):s}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return i},t.asciiCaseInsensitiveMatch=function(e,t){return h(e)===h(t)},t.asciiEncode=function(e){return console.assert(c(e),\"asciiEncode requires an ASCII string.\"),l(e)},t.asciiDecode=function(e){var t,r;try{for(var i=n(e),s=i.next();!s.done;s=i.next()){var u=s.value;console.assert(a.isASCIIByte(u),\"asciiDecode requires an ASCII byte sequence.\")}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}return o.isomorphicDecode(e)},t.stripNewlines=function(e){return e.replace(/[\\n\\r]/g,\"\")},t.normalizeNewlines=function(e){return e.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\")},t.stripLeadingAndTrailingASCIIWhitespace=p,t.stripAndCollapseASCIIWhitespace=function(e){return p(e.replace(/[\\t\\n\\f\\r ]{2,}/g,\" \"))},t.collectASequenceOfCodePoints=f,t.skipASCIIWhitespace=d,t.strictlySplit=function e(t,r){if(!s.isArray(t))return e(Array.from(t),r);var n={position:0},i=[],o=f((function(e){return r!==e}),t,n);for(i.push(o);n.position<t.length;)console.assert(t[n.position]===r,\"strictlySplit found no delimiter in input string.\"),n.position++,o=f((function(e){return r!==e}),t,n),i.push(o);return i},t.splitAStringOnASCIIWhitespace=function e(t){if(!s.isArray(t))return e(Array.from(t));var r={position:0},n=[];for(d(t,r);r.position<t.length;){var o=f((function(e){return!i.ASCIIWhiteSpace.test(e)}),t,r);n.push(o),d(t,r)}return n},t.splitAStringOnCommas=function e(t){if(!s.isArray(t))return e(Array.from(t));for(var r={position:0},n=[];r.position<t.length;){var i=f((function(e){return\",\"!==e}),t,r);n.push(p(i)),r.position<t.length&&(console.assert(\",\"===t[r.position],\"splitAStringOnCommas found no delimiter in input string.\"),r.position++)}return n},t.concatenate=function(e,t){return void 0===t&&(t=\"\"),0===e.length?\"\":e.join(t)}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(97);t.abort_add=function(e,t){t._abortedFlag||t._abortAlgorithms.add(e)},t.abort_remove=function(e,t){t._abortAlgorithms.delete(e)},t.abort_signalAbort=function(e){var t,r;if(!e._abortedFlag){e._abortedFlag=!0;try{for(var o=n(e._abortAlgorithms),a=o.next();!a.done;a=o.next()){a.value.call(e)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}e._abortAlgorithms.clear(),i.event_fireAnEvent(\"abort\",e)}}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(150),i=function(){function e(){}return e.asNode=function(e){if(n.Guard.isNode(e))return e;throw new Error(\"Invalid object. Node expected.\")},e}();t.Cast=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){}return Object.defineProperty(e.prototype,\"size\",{get:function(){return 0},enumerable:!0,configurable:!0}),e.prototype.add=function(e){throw new Error(\"Cannot add to an empty set.\")},e.prototype.clear=function(){},e.prototype.delete=function(e){return!1},e.prototype.forEach=function(e,t){},e.prototype.has=function(e){return!1},e.prototype[Symbol.iterator]=function(){return new i},e.prototype.entries=function(){return new i},e.prototype.keys=function(){return new i},e.prototype.values=function(){return new i},Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function(){return\"EmptySet\"},enumerable:!0,configurable:!0}),e}();t.EmptySet=n;var i=function(){function e(){}return e.prototype[Symbol.iterator]=function(){return this},e.prototype.next=function(){return{done:!0,value:null}},e}()},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.SchemeStart=0]=\"SchemeStart\",e[e.Scheme=1]=\"Scheme\",e[e.NoScheme=2]=\"NoScheme\",e[e.SpecialRelativeOrAuthority=3]=\"SpecialRelativeOrAuthority\",e[e.PathOrAuthority=4]=\"PathOrAuthority\",e[e.Relative=5]=\"Relative\",e[e.RelativeSlash=6]=\"RelativeSlash\",e[e.SpecialAuthoritySlashes=7]=\"SpecialAuthoritySlashes\",e[e.SpecialAuthorityIgnoreSlashes=8]=\"SpecialAuthorityIgnoreSlashes\",e[e.Authority=9]=\"Authority\",e[e.Host=10]=\"Host\",e[e.Hostname=11]=\"Hostname\",e[e.Port=12]=\"Port\",e[e.File=13]=\"File\",e[e.FileSlash=14]=\"FileSlash\",e[e.FileHost=15]=\"FileHost\",e[e.PathStart=16]=\"PathStart\",e[e.Path=17]=\"Path\",e[e.CannotBeABaseURLPath=18]=\"CannotBeABaseURLPath\",e[e.Query=19]=\"Query\",e[e.Fragment=20]=\"Fragment\"}(t.ParserState||(t.ParserState={})),t.OpaqueOrigin=[\"\",\"\",null,null]},function(e,t,r){\"use strict\";var n=r(245),i=r(247);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=g,t.resolve=function(e,t){return g(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?g(e,!1,!0).resolveObject(t):t},t.format=function(e){i.isString(e)&&(e=g(e));return e instanceof o?e.format():o.prototype.format.call(e)},t.Url=o;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,u=/^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,l=[\"{\",\"}\",\"|\",\"\\\\\",\"^\",\"`\"].concat([\"<\",\">\",'\"',\"`\",\" \",\"\\r\",\"\\n\",\"\\t\"]),c=[\"'\"].concat(l),h=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(c),p=[\"/\",\"?\",\"#\"],f=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,\"javascript:\":!0},y={javascript:!0,\"javascript:\":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0},_=r(248);function g(e,t,r){if(e&&i.isObject(e)&&e instanceof o)return e;var n=new o;return n.parse(e,t,r),n}o.prototype.parse=function(e,t,r){if(!i.isString(e))throw new TypeError(\"Parameter 'url' must be a string, not \"+typeof e);var o=e.indexOf(\"?\"),s=-1!==o&&o<e.indexOf(\"#\")?\"?\":\"#\",l=e.split(s);l[0]=l[0].replace(/\\\\/g,\"/\");var g=e=l.join(s);if(g=g.trim(),!r&&1===e.split(\"#\").length){var b=u.exec(g);if(b)return this.path=g,this.href=g,this.pathname=b[1],b[2]?(this.search=b[2],this.query=t?_.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search=\"\",this.query={}),this}var x=a.exec(g);if(x){var w=(x=x[0]).toLowerCase();this.protocol=w,g=g.substr(x.length)}if(r||x||g.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)){var E=\"//\"===g.substr(0,2);!E||x&&y[x]||(g=g.substr(2),this.slashes=!0)}if(!y[x]&&(E||x&&!v[x])){for(var D,S,C=-1,A=0;A<p.length;A++){-1!==(N=g.indexOf(p[A]))&&(-1===C||N<C)&&(C=N)}-1!==(S=-1===C?g.lastIndexOf(\"@\"):g.lastIndexOf(\"@\",C))&&(D=g.slice(0,S),g=g.slice(S+1),this.auth=decodeURIComponent(D)),C=-1;for(A=0;A<h.length;A++){var N;-1!==(N=g.indexOf(h[A]))&&(-1===C||N<C)&&(C=N)}-1===C&&(C=g.length),this.host=g.slice(0,C),g=g.slice(C),this.parseHost(),this.hostname=this.hostname||\"\";var T=\"[\"===this.hostname[0]&&\"]\"===this.hostname[this.hostname.length-1];if(!T)for(var O=this.hostname.split(/\\./),F=(A=0,O.length);A<F;A++){var k=O[A];if(k&&!k.match(f)){for(var P=\"\",I=0,L=k.length;I<L;I++)k.charCodeAt(I)>127?P+=\"x\":P+=k[I];if(!P.match(f)){var M=O.slice(0,A),B=O.slice(A+1),j=k.match(d);j&&(M.push(j[1]),B.unshift(j[2])),B.length&&(g=\"/\"+B.join(\".\")+g),this.hostname=M.join(\".\");break}}}this.hostname.length>255?this.hostname=\"\":this.hostname=this.hostname.toLowerCase(),T||(this.hostname=n.toASCII(this.hostname));var R=this.port?\":\"+this.port:\"\",z=this.hostname||\"\";this.host=z+R,this.href+=this.host,T&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),\"/\"!==g[0]&&(g=\"/\"+g))}if(!m[w])for(A=0,F=c.length;A<F;A++){var U=c[A];if(-1!==g.indexOf(U)){var G=encodeURIComponent(U);G===U&&(G=escape(U)),g=g.split(U).join(G)}}var X=g.indexOf(\"#\");-1!==X&&(this.hash=g.substr(X),g=g.slice(0,X));var q=g.indexOf(\"?\");if(-1!==q?(this.search=g.substr(q),this.query=g.substr(q+1),t&&(this.query=_.parse(this.query)),g=g.slice(0,q)):t&&(this.search=\"\",this.query={}),g&&(this.pathname=g),v[w]&&this.hostname&&!this.pathname&&(this.pathname=\"/\"),this.pathname||this.search){R=this.pathname||\"\";var W=this.search||\"\";this.path=R+W}return this.href=this.format(),this},o.prototype.format=function(){var e=this.auth||\"\";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,\":\"),e+=\"@\");var t=this.protocol||\"\",r=this.pathname||\"\",n=this.hash||\"\",o=!1,a=\"\";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(\":\")?this.hostname:\"[\"+this.hostname+\"]\"),this.port&&(o+=\":\"+this.port)),this.query&&i.isObject(this.query)&&Object.keys(this.query).length&&(a=_.stringify(this.query));var s=this.search||a&&\"?\"+a||\"\";return t&&\":\"!==t.substr(-1)&&(t+=\":\"),this.slashes||(!t||v[t])&&!1!==o?(o=\"//\"+(o||\"\"),r&&\"/\"!==r.charAt(0)&&(r=\"/\"+r)):o||(o=\"\"),n&&\"#\"!==n.charAt(0)&&(n=\"#\"+n),s&&\"?\"!==s.charAt(0)&&(s=\"?\"+s),t+o+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace(\"#\",\"%23\"))+n},o.prototype.resolve=function(e){return this.resolveObject(g(e,!1,!0)).format()},o.prototype.resolveObject=function(e){if(i.isString(e)){var t=new o;t.parse(e,!1,!0),e=t}for(var r=new o,n=Object.keys(this),a=0;a<n.length;a++){var s=n[a];r[s]=this[s]}if(r.hash=e.hash,\"\"===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var u=Object.keys(e),l=0;l<u.length;l++){var c=u[l];\"protocol\"!==c&&(r[c]=e[c])}return v[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname=\"/\"),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!v[e.protocol]){for(var h=Object.keys(e),p=0;p<h.length;p++){var f=h[p];r[f]=e[f]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||y[e.protocol])r.pathname=e.pathname;else{for(var d=(e.pathname||\"\").split(\"/\");d.length&&!(e.host=d.shift()););e.host||(e.host=\"\"),e.hostname||(e.hostname=\"\"),\"\"!==d[0]&&d.unshift(\"\"),d.length<2&&d.unshift(\"\"),r.pathname=d.join(\"/\")}if(r.search=e.search,r.query=e.query,r.host=e.host||\"\",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var m=r.pathname||\"\",_=r.search||\"\";r.path=m+_}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var g=r.pathname&&\"/\"===r.pathname.charAt(0),b=e.host||e.pathname&&\"/\"===e.pathname.charAt(0),x=b||g||r.host&&e.pathname,w=x,E=r.pathname&&r.pathname.split(\"/\")||[],D=(d=e.pathname&&e.pathname.split(\"/\")||[],r.protocol&&!v[r.protocol]);if(D&&(r.hostname=\"\",r.port=null,r.host&&(\"\"===E[0]?E[0]=r.host:E.unshift(r.host)),r.host=\"\",e.protocol&&(e.hostname=null,e.port=null,e.host&&(\"\"===d[0]?d[0]=e.host:d.unshift(e.host)),e.host=null),x=x&&(\"\"===d[0]||\"\"===E[0])),b)r.host=e.host||\"\"===e.host?e.host:r.host,r.hostname=e.hostname||\"\"===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,E=d;else if(d.length)E||(E=[]),E.pop(),E=E.concat(d),r.search=e.search,r.query=e.query;else if(!i.isNullOrUndefined(e.search)){if(D)r.hostname=r.host=E.shift(),(T=!!(r.host&&r.host.indexOf(\"@\")>0)&&r.host.split(\"@\"))&&(r.auth=T.shift(),r.host=r.hostname=T.shift());return r.search=e.search,r.query=e.query,i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.href=r.format(),r}if(!E.length)return r.pathname=null,r.search?r.path=\"/\"+r.search:r.path=null,r.href=r.format(),r;for(var S=E.slice(-1)[0],C=(r.host||e.host||E.length>1)&&(\".\"===S||\"..\"===S)||\"\"===S,A=0,N=E.length;N>=0;N--)\".\"===(S=E[N])?E.splice(N,1):\"..\"===S?(E.splice(N,1),A++):A&&(E.splice(N,1),A--);if(!x&&!w)for(;A--;A)E.unshift(\"..\");!x||\"\"===E[0]||E[0]&&\"/\"===E[0].charAt(0)||E.unshift(\"\"),C&&\"/\"!==E.join(\"/\").substr(-1)&&E.push(\"\");var T,O=\"\"===E[0]||E[0]&&\"/\"===E[0].charAt(0);D&&(r.hostname=r.host=O?\"\":E.length?E.shift():\"\",(T=!!(r.host&&r.host.indexOf(\"@\")>0)&&r.host.split(\"@\"))&&(r.auth=T.shift(),r.host=r.hostname=T.shift()));return(x=x||r.host&&E.length)&&!O&&E.unshift(\"\"),E.length?r.pathname=E.join(\"/\"):(r.pathname=null,r.path=null),i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(\":\"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,r){(function(e,n){var i;/*! https://mths.be/punycode v1.4.1 by @mathias */!function(o){t&&t.nodeType,e&&e.nodeType;var a=\"object\"==typeof n&&n;a.global!==a&&a.window!==a&&a.self;var s,u=2147483647,l=/^xn--/,c=/[^\\x20-\\x7E]/,h=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,p={overflow:\"Overflow: input needs wider integers to process\",\"not-basic\":\"Illegal input >= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},f=Math.floor,d=String.fromCharCode;function m(e){throw new RangeError(p[e])}function y(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function v(e,t){var r=e.split(\"@\"),n=\"\";return r.length>1&&(n=r[0]+\"@\",e=r[1]),n+y((e=e.replace(h,\".\")).split(\".\"),t).join(\".\")}function _(e){for(var t,r,n=[],i=0,o=e.length;i<o;)(t=e.charCodeAt(i++))>=55296&&t<=56319&&i<o?56320==(64512&(r=e.charCodeAt(i++)))?n.push(((1023&t)<<10)+(1023&r)+65536):(n.push(t),i--):n.push(t);return n}function g(e){return y(e,(function(e){var t=\"\";return e>65535&&(t+=d((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=d(e)})).join(\"\")}function b(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function x(e,t,r){var n=0;for(e=r?f(e/700):e>>1,e+=f(e/t);e>455;n+=36)e=f(e/35);return f(n+36*e/(e+38))}function w(e){var t,r,n,i,o,a,s,l,c,h,p,d=[],y=e.length,v=0,_=128,b=72;for((r=e.lastIndexOf(\"-\"))<0&&(r=0),n=0;n<r;++n)e.charCodeAt(n)>=128&&m(\"not-basic\"),d.push(e.charCodeAt(n));for(i=r>0?r+1:0;i<y;){for(o=v,a=1,s=36;i>=y&&m(\"invalid-input\"),((l=(p=e.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||l>f((u-v)/a))&&m(\"overflow\"),v+=l*a,!(l<(c=s<=b?1:s>=b+26?26:s-b));s+=36)a>f(u/(h=36-c))&&m(\"overflow\"),a*=h;b=x(v-o,t=d.length+1,0==o),f(v/t)>u-_&&m(\"overflow\"),_+=f(v/t),v%=t,d.splice(v++,0,_)}return g(d)}function E(e){var t,r,n,i,o,a,s,l,c,h,p,y,v,g,w,E=[];for(y=(e=_(e)).length,t=128,r=0,o=72,a=0;a<y;++a)(p=e[a])<128&&E.push(d(p));for(n=i=E.length,i&&E.push(\"-\");n<y;){for(s=u,a=0;a<y;++a)(p=e[a])>=t&&p<s&&(s=p);for(s-t>f((u-r)/(v=n+1))&&m(\"overflow\"),r+=(s-t)*v,t=s,a=0;a<y;++a)if((p=e[a])<t&&++r>u&&m(\"overflow\"),p==t){for(l=r,c=36;!(l<(h=c<=o?1:c>=o+26?26:c-o));c+=36)w=l-h,g=36-h,E.push(d(b(h+w%g,0))),l=f(w/g);E.push(d(b(l,0))),o=x(r,v,n==i),r=0,++n}++r,++t}return E.join(\"\")}s={version:\"1.4.1\",ucs2:{decode:_,encode:g},decode:w,encode:E,toASCII:function(e){return v(e,(function(e){return c.test(e)?\"xn--\"+E(e):e}))},toUnicode:function(e){return v(e,(function(e){return l.test(e)?w(e.slice(4).toLowerCase()):e}))}},void 0===(i=function(){return s}.call(t,r,t,e))||(e.exports=i)}()}).call(this,r(246)(e),r(78))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){\"use strict\";e.exports={isString:function(e){return\"string\"==typeof e},isObject:function(e){return\"object\"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,r){\"use strict\";t.decode=t.parse=r(249),t.encode=t.stringify=r(250)},function(e,t,r){\"use strict\";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,r,o){t=t||\"&\",r=r||\"=\";var a={};if(\"string\"!=typeof e||0===e.length)return a;var s=/\\+/g;e=e.split(t);var u=1e3;o&&\"number\"==typeof o.maxKeys&&(u=o.maxKeys);var l=e.length;u>0&&l>u&&(l=u);for(var c=0;c<l;++c){var h,p,f,d,m=e[c].replace(s,\"%20\"),y=m.indexOf(r);y>=0?(h=m.substr(0,y),p=m.substr(y+1)):(h=m,p=\"\"),f=decodeURIComponent(h),d=decodeURIComponent(p),n(a,f)?i(a[f])?a[f].push(d):a[f]=[a[f],d]:a[f]=d}return a};var i=Array.isArray||function(e){return\"[object Array]\"===Object.prototype.toString.call(e)}},function(e,t,r){\"use strict\";var n=function(e){switch(typeof e){case\"string\":return e;case\"boolean\":return e?\"true\":\"false\";case\"number\":return isFinite(e)?e:\"\";default:return\"\"}};e.exports=function(e,t,r,s){return t=t||\"&\",r=r||\"=\",null===e&&(e=void 0),\"object\"==typeof e?o(a(e),(function(a){var s=encodeURIComponent(n(a))+r;return i(e[a])?o(e[a],(function(e){return s+encodeURIComponent(n(e))})).join(t):s+encodeURIComponent(n(e[a]))})).join(t):s?encodeURIComponent(n(s))+r+encodeURIComponent(n(e)):\"\"};var i=Array.isArray||function(e){return\"[object Array]\"===Object.prototype.toString.call(e)};function o(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n<e.length;n++)r.push(t(e[n],n));return r}var a=Object.keys||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return t}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(52);t.attr_setAnExistingAttributeValue=function(e,t){null===e._element?e._value=t:n.element_change(e,e._element,t)}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(108),i=r(30),o=r(52);t.tokenList_validationSteps=function(e,t){if(!i.dom_hasSupportedTokens(e._attribute._localName))throw new TypeError(\"There are no supported tokens defined for attribute name: '\"+e._attribute._localName+\"'.\");return i.dom_getSupportedTokens(e._attribute._localName).has(t.toLowerCase())},t.tokenList_updateSteps=function(e){(e._element.hasAttribute(e._attribute._localName)||0!==e._tokenSet.size)&&o.element_setAnAttributeValue(e._element,e._attribute._localName,n.orderedSet_serialize(e._tokenSet))},t.tokenList_serializeSteps=function(e){return o.element_getAnAttributeValue(e._element,e._attribute._localName)}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1);function o(e){return i.isBoolean(e)?e:e.capture||!1}t.eventTarget_flatten=o,t.eventTarget_flattenMore=function(e){var t=o(e),r=!1,n=!1;return i.isBoolean(e)||(r=e.once||!1,n=e.passive||!1),[t,n,r]},t.eventTarget_addEventListener=function(e,t){if(null!==t.callback){for(var r=0;r<e._eventListenerList.length;r++){var n=e._eventListenerList[r];if(n.type===t.type&&n.callback.handleEvent===t.callback.handleEvent&&n.capture===t.capture)return}e._eventListenerList.push(t)}},t.eventTarget_removeEventListener=function(e,t,r){t.removed=!0,e._eventListenerList.splice(r,1)},t.eventTarget_removeAllEventListeners=function(e){var t,r;try{for(var i=n(e._eventListenerList),o=i.next();!o.done;o=i.next()){o.value.removed=!0}}catch(e){t={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}e._eventListenerList.length=0}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(1),o=r(29);t.parentNode_convertNodesIntoANode=function(e,t){for(var r,a,s=null,u=0;u<e.length;u++){var l=e[u];if(i.isString(l)){var c=o.create_text(t,l);e[u]=c}}if(1===e.length)s=e[0];else{var h=s=o.create_documentFragment(t);try{for(var p=n(e),f=p.next();!f.done;f=p.next()){l=f.value;h.appendChild(l)}}catch(e){r={error:e}}finally{try{f&&!f.done&&(a=p.return)&&a.call(p)}finally{if(r)throw r.error}}}return s}},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},i=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},o=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(2),s=r(9),u=r(3),l=r(29),c=r(17),h=r(175),p=r(107),f=r(176),d=r(37),m=r(177);function y(e){return e._startNode===e._endNode&&e._startOffset===e._endOffset}function v(e){return c.tree_rootNode(e._startNode)}function _(e,t){return c.tree_rootNode(e)===v(t)&&h.boundaryPoint_position([e,0],t._start)===a.BoundaryPosition.After&&h.boundaryPoint_position([e,c.tree_nodeLength(e)],t._end)===a.BoundaryPosition.Before}function g(e,t){var r=c.tree_isAncestorOf(t._startNode,e,!0),n=c.tree_isAncestorOf(t._endNode,e,!0);return r&&!n||!r&&n}function b(e){var t,r,i,a,h,m,v=l.create_documentFragment(e._startNode._nodeDocument);if(y(e))return v;var x=e._startNode,w=e._startOffset,E=e._endNode,D=e._endOffset;if(x===E&&u.Guard.isCharacterDataNode(x))return(R=f.node_clone(x))._data=p.characterData_substringData(x,w,D-w),d.mutation_append(R,v),p.characterData_replaceData(x,w,D-w,\"\"),v;for(var S=x;!c.tree_isAncestorOf(E,S,!0);){if(null===S._parent)throw new Error(\"Parent node  is null.\");S=S._parent}var C=null;if(!c.tree_isAncestorOf(E,x,!0))try{for(var A=n(S._children),N=A.next();!N.done;N=A.next()){if(g(k=N.value,e)){C=k;break}}}catch(e){t={error:e}}finally{try{N&&!N.done&&(r=A.return)&&r.call(A)}finally{if(t)throw t.error}}var T=null;if(!c.tree_isAncestorOf(x,E,!0))for(var O=o(S._children),F=O.length-1;F>0;F--){var k;if(g(k=O[F],e)){T=k;break}}var P,I,L=[];try{for(var M=n(S._children),B=M.next();!B.done;B=M.next()){if(_(X=B.value,e)){if(u.Guard.isDocumentTypeNode(X))throw new s.HierarchyRequestError;L.push(X)}}}catch(e){i={error:e}}finally{try{B&&!B.done&&(a=M.return)&&a.call(M)}finally{if(i)throw i.error}}if(c.tree_isAncestorOf(E,x,!0))P=x,I=w;else{for(var j=x;null!==j._parent&&!c.tree_isAncestorOf(E,j._parent);)j=j._parent;if(null===j._parent)throw new Error(\"Parent node is null.\");P=j._parent,I=1+c.tree_index(j)}if(u.Guard.isCharacterDataNode(C))(R=f.node_clone(x))._data=p.characterData_substringData(x,w,c.tree_nodeLength(x)-w),d.mutation_append(R,v),p.characterData_replaceData(x,w,c.tree_nodeLength(x)-w,\"\");else if(null!==C){var R=f.node_clone(C);d.mutation_append(R,v);var z=b(l.create_range([x,w],[C,c.tree_nodeLength(C)]));d.mutation_append(z,R)}try{for(var U=n(L),G=U.next();!G.done;G=U.next()){var X=G.value;d.mutation_append(X,v)}}catch(e){h={error:e}}finally{try{G&&!G.done&&(m=U.return)&&m.call(U)}finally{if(h)throw h.error}}if(u.Guard.isCharacterDataNode(T))(R=f.node_clone(E))._data=p.characterData_substringData(E,0,D),d.mutation_append(R,v),p.characterData_replaceData(E,0,D,\"\");else if(null!==T){R=f.node_clone(T);d.mutation_append(R,v);z=b(l.create_range([T,0],[E,D]));d.mutation_append(z,R)}return e._start=[P,I],e._end=[P,I],v}t.range_collapsed=y,t.range_root=v,t.range_isContained=_,t.range_isPartiallyContained=g,t.range_setTheStart=function(e,t,r){if(u.Guard.isDocumentTypeNode(t))throw new s.InvalidNodeTypeError;if(r>c.tree_nodeLength(t))throw new s.IndexSizeError;var n=[t,r];v(e)===c.tree_rootNode(t)&&h.boundaryPoint_position(n,e._end)!==a.BoundaryPosition.After||(e._end=n),e._start=n},t.range_setTheEnd=function(e,t,r){if(u.Guard.isDocumentTypeNode(t))throw new s.InvalidNodeTypeError;if(r>c.tree_nodeLength(t))throw new s.IndexSizeError;var n=[t,r];v(e)===c.tree_rootNode(t)&&h.boundaryPoint_position(n,e._start)!==a.BoundaryPosition.Before||(e._start=n),e._end=n},t.range_select=function(e,t){var r=e._parent;if(null===r)throw new s.InvalidNodeTypeError;var n=c.tree_index(e);t._start=[r,n],t._end=[r,n+1]},t.range_extract=b,t.range_cloneTheContents=function e(t){var r,i,a,h,m,v,x=l.create_documentFragment(t._startNode._nodeDocument);if(y(t))return x;var w=t._startNode,E=t._startOffset,D=t._endNode,S=t._endOffset;w===D&&u.Guard.isCharacterDataNode(w)&&((B=f.node_clone(w))._data=p.characterData_substringData(w,E,S-E),d.mutation_append(B,x));for(var C=w;!c.tree_isAncestorOf(D,C,!0);){if(null===C._parent)throw new Error(\"Parent node  is null.\");C=C._parent}var A=null;if(!c.tree_isAncestorOf(D,w,!0))try{for(var N=n(C._children),T=N.next();!T.done;T=N.next()){if(g(P=T.value,t)){A=P;break}}}catch(e){r={error:e}}finally{try{T&&!T.done&&(i=N.return)&&i.call(N)}finally{if(r)throw r.error}}var O=null;if(!c.tree_isAncestorOf(w,D,!0))for(var F=o(C._children),k=F.length-1;k>0;k--){var P;if(g(P=F[k],t)){O=P;break}}var I=[];try{for(var L=n(C._children),M=L.next();!M.done;M=L.next()){if(_(U=M.value,t)){if(u.Guard.isDocumentTypeNode(U))throw new s.HierarchyRequestError;I.push(U)}}}catch(e){a={error:e}}finally{try{M&&!M.done&&(h=L.return)&&h.call(L)}finally{if(a)throw a.error}}if(u.Guard.isCharacterDataNode(A))(B=f.node_clone(w))._data=p.characterData_substringData(w,E,c.tree_nodeLength(w)-E),d.mutation_append(B,x);else if(null!==A){var B=f.node_clone(A);d.mutation_append(B,x);var j=e(l.create_range([w,E],[A,c.tree_nodeLength(A)]));d.mutation_append(j,B)}try{for(var R=n(I),z=R.next();!z.done;z=R.next()){var U=z.value,B=f.node_clone(U);d.mutation_append(B,x)}}catch(e){m={error:e}}finally{try{z&&!z.done&&(v=R.return)&&v.call(R)}finally{if(m)throw m.error}}if(u.Guard.isCharacterDataNode(O))(B=f.node_clone(D))._data=p.characterData_substringData(D,0,S),d.mutation_append(B,x);else if(null!==O){B=f.node_clone(O);x.append(B);j=b(l.create_range([O,0],[D,S]));d.mutation_append(j,B)}return x},t.range_insert=function(e,t){var r,i;if(u.Guard.isProcessingInstructionNode(t._startNode)||u.Guard.isCommentNode(t._startNode)||u.Guard.isTextNode(t._startNode)&&null===t._startNode._parent||t._startNode===e)throw new s.HierarchyRequestError;var o,a=null;if(u.Guard.isTextNode(t._startNode))a=t._startNode;else{var l=0;try{for(var h=n(t._startNode._children),p=h.next();!p.done;p=h.next()){var f=p.value;if(l===t._startOffset){a=f;break}l++}}catch(e){r={error:e}}finally{try{p&&!p.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(null===a)o=t._startNode;else{if(null===a._parent)throw new Error(\"Parent node is null.\");o=a._parent}d.mutation_ensurePreInsertionValidity(e,o,a),u.Guard.isTextNode(t._startNode)&&(a=m.text_split(t._startNode,t._startOffset)),e===a&&(a=e._nextSibling),null!==e._parent&&d.mutation_remove(e,e._parent);var v=null===a?c.tree_nodeLength(o):c.tree_index(a);u.Guard.isDocumentFragmentNode(e)?v+=c.tree_nodeLength(e):v++,d.mutation_preInsert(e,o,a),y(t)&&(t._end=[o,v])},t.range_getContainedNodes=function(e){var t;return(t={})[Symbol.iterator]=function(){var t=e.commonAncestorContainer,r=c.tree_getFirstDescendantNode(t);return{next:function(){for(;r&&!_(r,e);)r=c.tree_getNextDescendantNode(t,r);if(null===r)return{done:!0,value:null};var n={done:!1,value:r};return r=c.tree_getNextDescendantNode(t,r),n}}},t},t.range_getPartiallyContainedNodes=function(e){var t;return(t={})[Symbol.iterator]=function(){var t=e.commonAncestorContainer,r=c.tree_getFirstDescendantNode(t);return{next:function(){for(;r&&!g(r,e);)r=c.tree_getNextDescendantNode(t,r);if(null===r)return{done:!0,value:null};var n={done:!1,value:r};return r=c.tree_getNextDescendantNode(t,r),n}}},t}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(9);t.selectors_scopeMatchASelectorsString=function(e,t){throw new n.NotSupportedError}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),i=r(105);t.treeWalker_traverseChildren=function(e,t){for(var r=t?e._current._firstChild:e._current._lastChild;null!==r;){var o=i.traversal_filter(e,r);if(o===n.FilterResult.Accept)return e._current=r,r;if(o===n.FilterResult.Skip){var a=t?r._firstChild:r._lastChild;if(null!==a){r=a;continue}}for(;null!==r;){var s=t?r._nextSibling:r._previousSibling;if(null!==s){r=s;break}var u=r._parent;if(null===u||u===e._root||u===e._current)return null;r=u}}return null},t.treeWalker_traverseSiblings=function(e,t){var r=e._current;if(r===e._root)return null;for(;;){for(var o=t?r._nextSibling:r._previousSibling;null!==o;){r=o;var a=i.traversal_filter(e,r);if(a===n.FilterResult.Accept)return e._current=r,r;o=t?r._firstChild:r._lastChild,a!==n.FilterResult.Reject&&null!==o||(o=t?r._nextSibling:r._previousSibling)}if(null===(r=r._parent)||r===e._root)return null;if(i.traversal_filter(e,r)===n.FilterResult.Accept)return null}}},function(e,t,r){\"use strict\";r(89),r(74);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(1),a=r(2),s=r(50),u=r(3),l=function(e){function t(t,r){var n=e.call(this,t)||this;return n._indentation={},n._lengthToLastNewline=0,n._writerOptions=o.applyDefaults(r,{wellFormed:!1,headless:!1,prettyPrint:!1,indent:\"  \",newline:\"\\n\",offset:0,width:0,allowEmptyTags:!1,indentTextOnlyNodes:!1,spaceBeforeSlash:!1}),n}return i(t,e),t.prototype.serialize=function(e){return this._refs={suppressPretty:!1,emptyNode:!1,markup:\"\"},e.nodeType!==a.NodeType.Document||this._writerOptions.headless||this.declaration(this._builderOptions.version,this._builderOptions.encoding,this._builderOptions.standalone),this.serializeNode(e,this._writerOptions.wellFormed),this._writerOptions.prettyPrint&&this._refs.markup.slice(-this._writerOptions.newline.length)===this._writerOptions.newline&&(this._refs.markup=this._refs.markup.slice(0,-this._writerOptions.newline.length)),this._refs.markup},t.prototype.declaration=function(e,t,r){this._beginLine(),this._refs.markup+='<?xml version=\"'+e+'\"',void 0!==t&&(this._refs.markup+=' encoding=\"'+t+'\"'),void 0!==r&&(this._refs.markup+=' standalone=\"'+(r?\"yes\":\"no\")+'\"'),this._refs.markup+=\"?>\",this._endLine()},t.prototype.docType=function(e,t,r){this._beginLine(),this._refs.markup+=t&&r?\"<!DOCTYPE \"+e+' PUBLIC \"'+t+'\" \"'+r+'\">':t?\"<!DOCTYPE \"+e+' PUBLIC \"'+t+'\">':r?\"<!DOCTYPE \"+e+' SYSTEM \"'+r+'\">':\"<!DOCTYPE \"+e+\">\",this._endLine()},t.prototype.openTagBegin=function(e){this._beginLine(),this._refs.markup+=\"<\"+e},t.prototype.openTagEnd=function(e,t,r){if(this._refs.suppressPretty=!1,this._refs.emptyNode=!1,this._writerOptions.prettyPrint&&!t&&!r){for(var n=!0,i=!0,o=this.currentNode.firstChild,a=0,s=0;o;){if(u.Guard.isExclusiveTextNode(o))s++;else{if(!u.Guard.isCDATASectionNode(o)){n=!1,i=!1;break}a++}\"\"!==o.data&&(i=!1),o=o.nextSibling}this._refs.suppressPretty=!this._writerOptions.indentTextOnlyNodes&&n&&(a<=1&&0===s||0===a),this._refs.emptyNode=i}(r||t||this._refs.emptyNode)&&this._writerOptions.allowEmptyTags?this._refs.markup+=\"></\"+e+\">\":this._refs.markup+=r?\" />\":t||this._refs.emptyNode?this._writerOptions.spaceBeforeSlash?\" />\":\"/>\":\">\",this._endLine()},t.prototype.closeTag=function(e){this._refs.emptyNode||(this._beginLine(),this._refs.markup+=\"</\"+e+\">\"),this._refs.suppressPretty=!1,this._refs.emptyNode=!1,this._endLine()},t.prototype.attribute=function(e,t){var r=e+'=\"'+t+'\"';this._writerOptions.prettyPrint&&this._writerOptions.width>0&&this._refs.markup.length-this._lengthToLastNewline+1+r.length>this._writerOptions.width?(this._endLine(),this._beginLine(),this._refs.markup+=this._indent(1)+r):this._refs.markup+=\" \"+r},t.prototype.text=function(e){\"\"!==e&&(this._beginLine(),this._refs.markup+=e,this._endLine())},t.prototype.cdata=function(e){\"\"!==e&&(this._beginLine(),this._refs.markup+=\"<![CDATA[\"+e+\"]]>\",this._endLine())},t.prototype.comment=function(e){this._beginLine(),this._refs.markup+=\"\\x3c!--\"+e+\"--\\x3e\",this._endLine()},t.prototype.instruction=function(e,t){this._beginLine(),this._refs.markup+=\"<?\"+(\"\"===t?e:e+\" \"+t)+\"?>\",this._endLine()},t.prototype._beginLine=function(){this._writerOptions.prettyPrint&&!this._refs.suppressPretty&&(this._refs.markup+=this._indent(this._writerOptions.offset+this.level))},t.prototype._endLine=function(){this._writerOptions.prettyPrint&&!this._refs.suppressPretty&&(this._refs.markup+=this._writerOptions.newline,this._lengthToLastNewline=this._refs.markup.length)},t.prototype._indent=function(e){if(e<=0)return\"\";if(void 0!==this._indentation[e])return this._indentation[e];var t=this._writerOptions.indent.repeat(e);return this._indentation[e]=t,t},t}(s.BaseWriter);t.XMLWriter=l},function(e,t,r){\"use strict\";var n=r(47),i=r(35);e.exports=\"\".repeat||function(e){var t=String(i(this)),r=\"\",o=n(e);if(o<0||o==1/0)throw RangeError(\"Wrong number of repetitions\");for(;o>0;(o>>>=1)&&(t+=t))1&o&&(r+=t);return r}},function(e,t,r){\"use strict\";r(31),r(32),r(33),r(19),r(178),r(20),r(22),r(23);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(67),s=r(1),u=function(e){function t(t,r){var n=e.call(this,t)||this;return n._writerOptions=s.applyDefaults(r,{wellFormed:!1,prettyPrint:!1,indent:\"  \",newline:\"\\n\",offset:0,group:!1,verbose:!1}),n}return i(t,e),t.prototype.serialize=function(e){var t=s.applyDefaults(this._writerOptions,{format:\"object\",wellFormed:!1}),r=new a.ObjectWriter(this._builderOptions,t).serialize(e);return this._beginLine(this._writerOptions,0)+this._convertObject(r,this._writerOptions)},t.prototype._convertObject=function(e,t,r){var n,i,a=this;void 0===r&&(r=0);var u=\"\",l=this._isLeafNode(e);if(s.isArray(e)){u+=\"[\";var c=e.length,h=0;try{for(var p=o(e),f=p.next();!f.done;f=p.next()){var d=f.value;u+=this._endLine(t,r+1)+this._beginLine(t,r+1)+this._convertObject(d,t,r+1),h<c-1&&(u+=\",\"),h++}}catch(e){n={error:e}}finally{try{f&&!f.done&&(i=p.return)&&i.call(p)}finally{if(n)throw n.error}}u+=this._endLine(t,r)+this._beginLine(t,r),u+=\"]\"}else if(s.isObject(e)){u+=\"{\";var m=s.objectLength(e),y=0;s.forEachObject(e,(function(e,n){l&&t.prettyPrint?u+=\" \":u+=a._endLine(t,r+1)+a._beginLine(t,r+1),u+=a._key(e),t.prettyPrint&&(u+=\" \"),u+=a._convertObject(n,t,r+1),y<m-1&&(u+=\",\"),y++}),this),l&&t.prettyPrint?u+=\" \":u+=this._endLine(t,r)+this._beginLine(t,r),u+=\"}\"}else u+=this._val(e);return u},t.prototype._beginLine=function(e,t){if(!e.prettyPrint)return\"\";var r=e.offset+t+1;return r>0?new Array(r).join(e.indent):\"\"},t.prototype._endLine=function(e,t){return e.prettyPrint?e.newline:\"\"},t.prototype._key=function(e){return'\"'+e+'\":'},t.prototype._val=function(e){return JSON.stringify(e)},t.prototype._isLeafNode=function(e){return this._descendantCount(e)<=1},t.prototype._descendantCount=function(e,t){var r=this;return void 0===t&&(t=0),s.isArray(e)?s.forEachArray(e,(function(e){return t+=r._descendantCount(e,t)}),this):s.isObject(e)?s.forEachObject(e,(function(e,n){return t+=r._descendantCount(n,t)}),this):t++,t},t}(r(50).BaseWriter);t.JSONWriter=u},function(e,t,r){\"use strict\";r(31),r(32),r(33),r(19),r(178),r(89),r(20),r(22),r(23);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var a=r(67),s=r(1),u=function(e){function t(t,r){var n=e.call(this,t)||this;if(n._writerOptions=s.applyDefaults(r,{wellFormed:!1,indent:\"  \",newline:\"\\n\",offset:0,group:!1,verbose:!1}),n._writerOptions.indent.length<2)throw new Error(\"YAML indententation string must be at least two characters long.\");if(n._writerOptions.offset<0)throw new Error(\"YAML offset should be zero or a positive number.\");return n}return i(t,e),t.prototype.serialize=function(e){var t=s.applyDefaults(this._writerOptions,{format:\"object\",wellFormed:!1}),r=new a.ObjectWriter(this._builderOptions,t).serialize(e),n=this._beginLine(this._writerOptions,0)+\"---\"+this._endLine(this._writerOptions)+this._convertObject(r,this._writerOptions,0);return n.slice(-this._writerOptions.newline.length)===this._writerOptions.newline&&(n=n.slice(0,-this._writerOptions.newline.length)),n},t.prototype._convertObject=function(e,t,r,n){var i,a,u=this;void 0===n&&(n=!1);var l=\"\";if(s.isArray(e))try{for(var c=o(e),h=c.next();!h.done;h=c.next()){var p=h.value;l+=this._beginLine(t,r,!0),s.isObject(p)?s.isEmpty(p)?l+='\"\"'+this._endLine(t):l+=this._convertObject(p,t,r,!0):l+=this._val(p)+this._endLine(t)}}catch(e){i={error:e}}finally{try{h&&!h.done&&(a=c.return)&&a.call(c)}finally{if(i)throw i.error}}else s.forEachObject(e,(function(e,i){n?(l+=u._key(e),n=!1):l+=u._beginLine(t,r)+u._key(e),s.isObject(i)?s.isEmpty(i)?l+=' \"\"'+u._endLine(t):l+=u._endLine(t)+u._convertObject(i,t,r+1):l+=\" \"+u._val(i)+u._endLine(t)}),this);return l},t.prototype._beginLine=function(e,t,r){void 0===r&&(r=!1);var n=e.offset+t+1,i=new Array(n).join(e.indent);return r?i.substr(0,i.length-2)+\"-\"+i.substr(-1,1):i},t.prototype._endLine=function(e){return e.newline},t.prototype._key=function(e){return'\"'+e+'\":'},t.prototype._val=function(e){return JSON.stringify(e)},t}(r(50).BaseWriter);t.YAMLWriter=u},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),r(110).dom.setFeatures(!0);var n=r(110);t.DOMImplementation=n.DOMImplementation;var i=r(271);t.DOMParser=i.DOMParser;var o=r(274);t.XMLSerializer=o.XMLSerializer},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(3),i=r(0),o=function(){function e(){}return e.prototype.before=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=n.Cast.asNode(this),o=r._parent;if(null!==o){for(var a=r._previousSibling,s=!0;s&&a;){s=!1;for(var u=0;u<e.length;u++){var l=e[u];if(l===a){a=a._previousSibling,s=!0;break}}}var c=i.parentNode_convertNodesIntoANode(e,r._nodeDocument);a=null===a?o._firstChild:a._nextSibling,i.mutation_preInsert(c,o,a)}},e.prototype.after=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=n.Cast.asNode(this),o=r._parent;if(o){for(var a=r._nextSibling,s=!0;s&&a;){s=!1;for(var u=0;u<e.length;u++){var l=e[u];if(l===a){a=a._nextSibling,s=!0;break}}}var c=i.parentNode_convertNodesIntoANode(e,r._nodeDocument);i.mutation_preInsert(c,o,a)}},e.prototype.replaceWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=n.Cast.asNode(this),o=r._parent;if(o){for(var a=r._nextSibling,s=!0;s&&a;){s=!1;for(var u=0;u<e.length;u++){var l=e[u];if(l===a){a=a._nextSibling,s=!0;break}}}var c=i.parentNode_convertNodesIntoANode(e,r._nodeDocument);r._parent===o?i.mutation_replace(r,c,o):i.mutation_preInsert(c,o,a)}},e.prototype.remove=function(){var e=n.Cast.asNode(this),t=e._parent;t&&i.mutation_remove(e,t)},e}();t.ChildNodeImpl=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){};t.DocumentOrShadowRootImpl=n},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(6),o=r(3),a=r(7),s=function(){function e(e){this._nodeList=[],this._recordQueue=[],this._callback=e;var t=i.dom.window;a.set.append(t._mutationObservers,this)}return e.prototype.observe=function(e,t){var r,i;if(void 0===(t=t||{childList:!1,subtree:!1}).attributeOldValue&&void 0===t.attributeFilter||void 0!==t.attributes||(t.attributes=!0),void 0!==t.characterDataOldValue&&void 0===t.characterData&&(t.characterData=!0),!t.childList&&!t.attributes&&!t.characterData)throw new TypeError;if(t.attributeOldValue&&!t.attributes)throw new TypeError;if(void 0!==t.attributeFilter&&!t.attributes)throw new TypeError;if(t.characterDataOldValue&&!t.characterData)throw new TypeError;var s=!1,u=t,l=function(e){var t,r;if(e.observer===c){s=!0;try{for(var i=(t=void 0,n(c._nodeList)),l=i.next();!l.done;l=i.next()){var h=l.value;a.list.remove(h._registeredObserverList,(function(t){return o.Guard.isTransientRegisteredObserver(t)&&t.source===e}))}}catch(e){t={error:e}}finally{try{l&&!l.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}e.options=u}},c=this;try{for(var h=n(e._registeredObserverList),p=h.next();!p.done;p=h.next()){l(p.value)}}catch(e){r={error:e}}finally{try{p&&!p.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}s||(e._registeredObserverList.push({observer:this,options:t}),this._nodeList.push(e))},e.prototype.disconnect=function(){var e,t,r=this;try{for(var i=n(this._nodeList),o=i.next();!o.done;o=i.next()){var s=o.value;a.list.remove(s._registeredObserverList,(function(e){return e.observer===r}))}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}this._recordQueue=[]},e.prototype.takeRecords=function(){var e=this._recordQueue;return this._recordQueue=[],e},e}();t.MutationObserverImpl=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(3),i=function(){function e(){}return Object.defineProperty(e.prototype,\"previousElementSibling\",{get:function(){for(var e=n.Cast.asNode(this)._previousSibling;e;){if(n.Guard.isElementNode(e))return e;e=e._previousSibling}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"nextElementSibling\",{get:function(){for(var e=n.Cast.asNode(this)._nextSibling;e;){if(n.Guard.isElementNode(e))return e;e=e._nextSibling}return null},enumerable:!0,configurable:!0}),e}();t.NonDocumentTypeChildNodeImpl=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(3),i=r(0),o=function(){function e(){}return e.prototype.getElementById=function(e){for(var t=i.tree_getFirstDescendantNode(n.Cast.asNode(this),!1,!1,(function(e){return n.Guard.isElementNode(e)}));null!==t;){if(t._uniqueIdentifier===e)return t;t=i.tree_getNextDescendantNode(n.Cast.asNode(this),t,!1,!1,(function(e){return n.Guard.isElementNode(e)}))}return null},e}();t.NonElementParentNodeImpl=o},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(3),o=r(0),a=function(){function e(){}return Object.defineProperty(e.prototype,\"children\",{get:function(){return o.create_htmlCollection(i.Cast.asNode(this))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"firstElementChild\",{get:function(){for(var e=i.Cast.asNode(this)._firstChild;e;){if(i.Guard.isElementNode(e))return e;e=e._nextSibling}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"lastElementChild\",{get:function(){for(var e=i.Cast.asNode(this)._lastChild;e;){if(i.Guard.isElementNode(e))return e;e=e._previousSibling}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"childElementCount\",{get:function(){var e,t,r=0;try{for(var o=n(i.Cast.asNode(this)._children),a=o.next();!a.done;a=o.next()){var s=a.value;i.Guard.isElementNode(s)&&r++}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}return r},enumerable:!0,configurable:!0}),e.prototype.prepend=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=i.Cast.asNode(this),n=o.parentNode_convertNodesIntoANode(e,r._nodeDocument);o.mutation_preInsert(n,r,r._firstChild)},e.prototype.append=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=i.Cast.asNode(this),n=o.parentNode_convertNodesIntoANode(e,r._nodeDocument);o.mutation_append(n,r)},e.prototype.querySelector=function(e){var t=i.Cast.asNode(this),r=o.selectors_scopeMatchASelectorsString(e,t);return 0===r.length?null:r[0]},e.prototype.querySelectorAll=function(e){var t=i.Cast.asNode(this),r=o.selectors_scopeMatchASelectorsString(e,t);return o.create_nodeListStatic(t,r)},e}();t.ParentNodeImpl=a},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(0),i=function(){function e(){}return Object.defineProperty(e.prototype,\"_name\",{get:function(){return this.__name||\"\"},set:function(e){this.__name=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"_assignedSlot\",{get:function(){return this.__assignedSlot||null},set:function(e){this.__assignedSlot=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"assignedSlot\",{get:function(){return n.shadowTree_findASlot(this,!0)},enumerable:!0,configurable:!0}),e}();t.SlotableImpl=i},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(102),a=r(9),s=r(3),u=function(e){function t(t){var r=e.call(this)||this;if(s.Guard.isDocumentTypeNode(t.startContainer)||s.Guard.isAttrNode(t.startContainer)||s.Guard.isDocumentTypeNode(t.endContainer)||s.Guard.isAttrNode(t.endContainer))throw new a.InvalidNodeTypeError;return r._start=[t.startContainer,t.startOffset],r._end=[t.endContainer,t.endOffset],r}return i(t,e),t}(o.AbstractRangeImpl);t.StaticRangeImpl=u},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(272);t.DOMParser=n.DOMParserImpl},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(0),i=r(273),o=function(){function e(){}return e.prototype.parseFromString=function(e,t){if(\"text/html\"===t)throw new Error(\"HTML parser not implemented.\");try{return(r=(new i.XMLParserImpl).parse(e))._contentType=t,r}catch(e){var r,o=\"http://www.mozilla.org/newlayout/xml/parsererror.xml\",a=(r=n.create_xmlDocument()).createElementNS(o,\"parsererror\"),s=r.createElementNS(o,\"error\");return s.setAttribute(\"message\",e.message),a.appendChild(s),r.appendChild(a),r}},e}();t.DOMParserImpl=o},function(e,t,r){\"use strict\";var n=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},i=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(180),a=r(111),s=r(7),u=r(0),l=r(69),c=function(){function e(){}return e.prototype.parse=function(e){for(var t,r,c,h,p=new o.XMLStringLexer(e,{skipWhitespaceOnlyText:!0}),f=u.create_document(),d=f,m=p.nextToken();m.type!==a.TokenType.EOF;){switch(m.type){case a.TokenType.Declaration:var y=m;if(\"1.0\"!==y.version)throw new Error(\"Invalid xml version: \"+y.version);break;case a.TokenType.DocType:var v=m;if(!u.xml_isPubidChar(v.pubId))throw new Error(\"DocType public identifier does not match PubidChar construct.\");if(!u.xml_isLegalChar(v.sysId)||-1!==v.sysId.indexOf('\"')&&-1!==v.sysId.indexOf(\"'\"))throw new Error(\"DocType system identifier contains invalid characters.\");d.appendChild(f.implementation.createDocumentType(v.name,v.pubId,v.sysId));break;case a.TokenType.CDATA:var _=m;if(!u.xml_isLegalChar(_.data)||-1!==_.data.indexOf(\"]]>\"))throw new Error(\"CDATA contains invalid characters.\");d.appendChild(f.createCDATASection(_.data));break;case a.TokenType.Comment:var g=m;if(!u.xml_isLegalChar(g.data)||-1!==g.data.indexOf(\"--\")||g.data.endsWith(\"-\"))throw new Error(\"Comment data contains invalid characters.\");d.appendChild(f.createComment(g.data));break;case a.TokenType.PI:var b=m;if(-1!==b.target.indexOf(\":\")||/^xml$/i.test(b.target))throw new Error(\"Processing instruction target contains invalid characters.\");if(!u.xml_isLegalChar(b.data)||-1!==b.data.indexOf(\"?>\"))throw new Error(\"Processing instruction data contains invalid characters.\");d.appendChild(f.createProcessingInstruction(b.target,b.data));break;case a.TokenType.Text:var x=m;if(!u.xml_isLegalChar(x.data))throw new Error(\"Text data contains invalid characters.\");d.appendChild(f.createTextNode(this._decodeText(x.data)));break;case a.TokenType.Element:var w=m,E=n(u.namespace_extractQName(w.name),2),D=E[0],S=E[1];if(-1!==S.indexOf(\":\")||!u.xml_isName(S))throw new Error(\"Node local name contains invalid characters.\");if(\"xmlns\"===D)throw new Error(\"An element cannot have the 'xmlns' prefix.\");var C=d.lookupNamespaceURI(D),A={};try{for(var N=(t=void 0,i(w.attributes)),T=N.next();!T.done;T=N.next()){var O=n(T.value,2),F=O[0],k=O[1];if(\"xmlns\"===F)C=k;else{var P=n(u.namespace_extractQName(F),2),I=P[0],L=P[1];\"xmlns\"===I&&(L===D&&(C=k),A[L]=k)}}}catch(e){t={error:e}}finally{try{T&&!T.done&&(r=N.return)&&r.call(N)}finally{if(t)throw t.error}}var M=null!==C?f.createElementNS(C,w.name):f.createElement(w.name);d.appendChild(M);var B=new l.LocalNameSet;try{for(var j=(c=void 0,i(w.attributes)),R=j.next();!R.done;R=j.next()){var z=n(R.value,2),U=(F=z[0],k=z[1],n(u.namespace_extractQName(F),2)),G=(I=U[0],L=U[1],null);if(\"xmlns\"===I||null===I&&\"xmlns\"===L?G=s.namespace.XMLNS:null!==(G=M.lookupNamespaceURI(I))&&M.isDefaultNamespace(G)?G=null:null===G&&null!==I&&(G=A[I]||null),B.has(G,L))throw new Error(\"Element contains duplicate attributes.\");if(B.set(G,L),G===s.namespace.XMLNS&&k===s.namespace.XMLNS)throw new Error(\"XMLNS namespace is reserved.\");if(-1!==L.indexOf(\":\")||!u.xml_isName(L))throw new Error(\"Attribute local name contains invalid characters.\");if(\"xmlns\"===I&&\"\"===k)throw new Error(\"Empty XML namespace is not allowed.\");null!==G?M.setAttributeNS(G,F,this._decodeAttributeValue(k)):M.setAttribute(F,this._decodeAttributeValue(k))}}catch(e){c={error:e}}finally{try{R&&!R.done&&(h=j.return)&&h.call(j)}finally{if(c)throw c.error}}w.selfClosing||(d=M);break;case a.TokenType.ClosingTag:if(m.name!==d.nodeName)throw new Error(\"Closing tag name does not match opening tag name.\");d._parent&&(d=d._parent)}m=p.nextToken()}return f},e.prototype._decodeText=function(e){return null==e?e:e.replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\").replace(/&amp;/g,\"&\")},e.prototype._decodeAttributeValue=function(e){return null==e?e:e.replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\").replace(/&amp;/g,\"&\")},e}();t.XMLParserImpl=c},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(275);t.XMLSerializer=n.XMLSerializerImpl},function(e,t,r){\"use strict\";var n=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var i=r(2),o=r(69),a=r(95),s=r(9),u=r(7),l=r(0),c=function(){function e(){}return e.prototype.serializeToString=function(e){return this._xmlSerialization(e,!1)},e.prototype._xmlSerialization=function(e,t){if(void 0===e._nodeDocument||e._nodeDocument._hasNamespaces){var r=new a.NamespacePrefixMap;r.set(\"xml\",u.namespace.XML);try{return this._serializeNodeNS(e,null,r,{value:1},t)}catch(e){throw new s.InvalidStateError}}else try{return this._serializeNode(e,t)}catch(e){throw new s.InvalidStateError}},e.prototype._serializeNodeNS=function(e,t,r,n,o){switch(e.nodeType){case i.NodeType.Element:return this._serializeElementNS(e,t,r,n,o);case i.NodeType.Document:return this._serializeDocumentNS(e,t,r,n,o);case i.NodeType.Comment:return this._serializeComment(e,o);case i.NodeType.Text:return this._serializeText(e,o);case i.NodeType.DocumentFragment:return this._serializeDocumentFragmentNS(e,t,r,n,o);case i.NodeType.DocumentType:return this._serializeDocumentType(e,o);case i.NodeType.ProcessingInstruction:return this._serializeProcessingInstruction(e,o);case i.NodeType.CData:return this._serializeCData(e,o);default:throw new Error(\"Unknown node type: \"+e.nodeType)}},e.prototype._serializeNode=function(e,t){switch(e.nodeType){case i.NodeType.Element:return this._serializeElement(e,t);case i.NodeType.Document:return this._serializeDocument(e,t);case i.NodeType.Comment:return this._serializeComment(e,t);case i.NodeType.Text:return this._serializeText(e,t);case i.NodeType.DocumentFragment:return this._serializeDocumentFragment(e,t);case i.NodeType.DocumentType:return this._serializeDocumentType(e,t);case i.NodeType.ProcessingInstruction:return this._serializeProcessingInstruction(e,t);case i.NodeType.CData:return this._serializeCData(e,t);default:throw new Error(\"Unknown node type: \"+e.nodeType)}},e.prototype._serializeElementNS=function(t,r,i,o,a){var s,c;if(a&&(-1!==t.localName.indexOf(\":\")||!l.xml_isName(t.localName)))throw new Error(\"Node local name contains invalid characters (well-formed required).\");var h=\"<\",p=\"\",f=!1,d=!1,m=i.copy(),y={},v=this._recordNamespaceInformation(t,m,y),_=r,g=t.namespaceURI;if(_===g)null!==v&&(d=!0),h+=p=g===u.namespace.XML?\"xml:\"+t.localName:t.localName;else{var b=t.prefix,x=null;if(null===b&&g===v||(x=m.get(b,g)),\"xmlns\"===b){if(a)throw new Error(\"An element cannot have the 'xmlns' prefix (well-formed required).\");x=b}null!==x?(p=x+\":\"+t.localName,null!==v&&v!==u.namespace.XML&&(_=v||null),h+=p):null!==b?(b in y&&(b=this._generatePrefix(g,m,o)),m.set(b,g),h+=p+=b+\":\"+t.localName,h+=\" xmlns:\"+b+'=\"'+this._serializeAttributeValue(g,a)+'\"',null!==v&&(_=v||null)):null===v||null!==v&&v!==g?(d=!0,_=g,h+=p+=t.localName,h+=' xmlns=\"'+this._serializeAttributeValue(g,a)+'\"'):(_=g,h+=p+=t.localName)}h+=this._serializeAttributesNS(t,m,o,y,d,a);var w=g===u.namespace.HTML;if(w&&0===t.childNodes.length&&e._VoidElementNames.has(t.localName)?(h+=\" /\",f=!0):w||0!==t.childNodes.length||(h+=\"/\",f=!0),h+=\">\",f)return h;if(w&&\"template\"===t.localName);else try{for(var E=n(t._children||t.childNodes),D=E.next();!D.done;D=E.next()){var S=D.value;h+=this._serializeNodeNS(S,_,m,o,a)}}catch(e){s={error:e}}finally{try{D&&!D.done&&(c=E.return)&&c.call(E)}finally{if(s)throw s.error}}return h+=\"</\"+p+\">\"},e.prototype._serializeDocumentNS=function(e,t,r,i,o){var a,s;if(o&&null===e.documentElement)throw new Error(\"Missing document element (well-formed required).\");var u=\"\";try{for(var l=n(e._children||e.childNodes),c=l.next();!c.done;c=l.next()){var h=c.value;u+=this._serializeNodeNS(h,t,r,i,o)}}catch(e){a={error:e}}finally{try{c&&!c.done&&(s=l.return)&&s.call(l)}finally{if(a)throw a.error}}return u},e.prototype._serializeComment=function(e,t){if(t&&(!l.xml_isLegalChar(e.data)||-1!==e.data.indexOf(\"--\")||e.data.endsWith(\"-\")))throw new Error(\"Comment data contains invalid characters (well-formed required).\");return\"\\x3c!--\"+e.data+\"--\\x3e\"},e.prototype._serializeText=function(e,t){if(t&&!l.xml_isLegalChar(e.data))throw new Error(\"Text data contains invalid characters (well-formed required).\");for(var r=\"\",n=0;n<e.data.length;n++){var i=e.data[n];r+=\"&\"===i?\"&amp;\":\"<\"===i?\"&lt;\":\">\"===i?\"&gt;\":i}return r},e.prototype._serializeDocumentFragmentNS=function(e,t,r,i,o){var a,s,u=\"\";try{for(var l=n(e._children||e.childNodes),c=l.next();!c.done;c=l.next()){var h=c.value;u+=this._serializeNodeNS(h,t,r,i,o)}}catch(e){a={error:e}}finally{try{c&&!c.done&&(s=l.return)&&s.call(l)}finally{if(a)throw a.error}}return u},e.prototype._serializeDocumentType=function(e,t){if(t&&!l.xml_isPubidChar(e.publicId))throw new Error(\"DocType public identifier does not match PubidChar construct (well-formed required).\");if(t&&(!l.xml_isLegalChar(e.systemId)||-1!==e.systemId.indexOf('\"')&&-1!==e.systemId.indexOf(\"'\")))throw new Error(\"DocType system identifier contains invalid characters (well-formed required).\");return e.publicId&&e.systemId?\"<!DOCTYPE \"+e.name+' PUBLIC \"'+e.publicId+'\" \"'+e.systemId+'\">':e.publicId?\"<!DOCTYPE \"+e.name+' PUBLIC \"'+e.publicId+'\">':e.systemId?\"<!DOCTYPE \"+e.name+' SYSTEM \"'+e.systemId+'\">':\"<!DOCTYPE \"+e.name+\">\"},e.prototype._serializeProcessingInstruction=function(e,t){if(t&&(-1!==e.target.indexOf(\":\")||/^xml$/i.test(e.target)))throw new Error(\"Processing instruction target contains invalid characters (well-formed required).\");if(t&&(!l.xml_isLegalChar(e.data)||-1!==e.data.indexOf(\"?>\")))throw new Error(\"Processing instruction data contains invalid characters (well-formed required).\");return\"<?\"+(\"\"===e.data?e.target:e.target+\" \"+e.data)+\"?>\"},e.prototype._serializeCData=function(e,t){if(t&&-1!==e.data.indexOf(\"]]>\"))throw new Error(\"CDATA contains invalid characters (well-formed required).\");return\"<![CDATA[\"+e.data+\"]]>\"},e.prototype._serializeAttributesNS=function(e,t,r,i,a,s){var c,h,p=\"\",f=s?new o.LocalNameSet:void 0;try{for(var d=n(e.attributes),m=d.next();!m.done;m=d.next()){var y=m.value;if(a||s||null!==y.namespaceURI){if(s&&f&&f.has(y.namespaceURI,y.localName))throw new Error(\"Element contains duplicate attributes (well-formed required).\");s&&f&&f.set(y.namespaceURI,y.localName);var v=y.namespaceURI,_=null;if(null!==v)if(_=t.get(y.prefix,v),v===u.namespace.XMLNS){if(y.value===u.namespace.XML||null===y.prefix&&a||null!==y.prefix&&(!(y.localName in i)||i[y.localName]!==y.value)&&t.has(y.localName,y.value))continue;if(s&&y.value===u.namespace.XMLNS)throw new Error(\"XMLNS namespace is reserved (well-formed required).\");if(s&&\"\"===y.value)throw new Error(\"Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).\");\"xmlns\"===y.prefix&&(_=\"xmlns\")}else null===_&&(p+=\" xmlns:\"+(_=null===y.prefix||t.hasPrefix(y.prefix)&&!t.has(y.prefix,v)?this._generatePrefix(v,t,r):y.prefix)+'=\"'+this._serializeAttributeValue(v,s)+'\"');if(p+=\" \",null!==_&&(p+=_+\":\"),s&&(-1!==y.localName.indexOf(\":\")||!l.xml_isName(y.localName)||\"xmlns\"===y.localName&&null===v))throw new Error(\"Attribute local name contains invalid characters (well-formed required).\");p+=y.localName+'=\"'+this._serializeAttributeValue(y.value,s)+'\"'}else p+=\" \"+y.localName+'=\"'+this._serializeAttributeValue(y.value,s)+'\"'}}catch(e){c={error:e}}finally{try{m&&!m.done&&(h=d.return)&&h.call(d)}finally{if(c)throw c.error}}return p},e.prototype._recordNamespaceInformation=function(e,t,r){var i,o,a=null;try{for(var s=n(e.attributes),l=s.next();!l.done;l=s.next()){var c=l.value,h=c.namespaceURI,p=c.prefix;if(h===u.namespace.XMLNS){if(null===p){a=c.value;continue}var f=c.localName,d=c.value;if(d===u.namespace.XML)continue;if(\"\"===d&&(d=null),t.has(f,d))continue;t.set(f,d),r[f]=d||\"\"}}}catch(e){i={error:e}}finally{try{l&&!l.done&&(o=s.return)&&o.call(s)}finally{if(i)throw i.error}}return a},e.prototype._generatePrefix=function(e,t,r){var n=\"ns\"+r.value;return r.value++,t.set(n,e),n},e.prototype._serializeAttributeValue=function(e,t){if(t&&null!==e&&!l.xml_isLegalChar(e))throw new Error(\"Invalid characters in attribute value.\");if(null===e)return\"\";for(var r=\"\",n=0;n<e.length;n++){var i=e[n];r+='\"'===i?\"&quot;\":\"&\"===i?\"&amp;\":\"<\"===i?\"&lt;\":\">\"===i?\"&gt;\":i}return r},e.prototype._serializeElement=function(e,t){var r,i;if(t&&(-1!==e.localName.indexOf(\":\")||!l.xml_isName(e.localName)))throw new Error(\"Node local name contains invalid characters (well-formed required).\");var o=!1,a=e.localName,s=\"<\"+a;if(s+=this._serializeAttributes(e,t),0===e._children.size&&(s+=\"/\",o=!0),s+=\">\",o)return s;try{for(var u=n(e._children),c=u.next();!c.done;c=u.next()){var h=c.value;s+=this._serializeNode(h,t)}}catch(e){r={error:e}}finally{try{c&&!c.done&&(i=u.return)&&i.call(u)}finally{if(r)throw r.error}}return s+=\"</\"+a+\">\"},e.prototype._serializeDocument=function(e,t){var r,i;if(t&&null===e.documentElement)throw new Error(\"Missing document element (well-formed required).\");var o=\"\";try{for(var a=n(e._children),s=a.next();!s.done;s=a.next()){var u=s.value;o+=this._serializeNode(u,t)}}catch(e){r={error:e}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(r)throw r.error}}return o},e.prototype._serializeDocumentFragment=function(e,t){var r,i,o=\"\";try{for(var a=n(e._children),s=a.next();!s.done;s=a.next()){var u=s.value;o+=this._serializeNode(u,t)}}catch(e){r={error:e}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(r)throw r.error}}return o},e.prototype._serializeAttributes=function(e,t){var r,i,o=\"\",a=t?{}:void 0;try{for(var s=n(e.attributes),u=s.next();!u.done;u=s.next()){var c=u.value;if(t&&a&&c.localName in a)throw new Error(\"Element contains duplicate attributes (well-formed required).\");if(t&&a&&(a[c.localName]=!0),t&&(-1!==c.localName.indexOf(\":\")||!l.xml_isName(c.localName)))throw new Error(\"Attribute local name contains invalid characters (well-formed required).\");o+=\" \"+c.localName+'=\"'+this._serializeAttributeValue(c.value,t)+'\"'}}catch(e){r={error:e}}finally{try{u&&!u.done&&(i=s.return)&&i.call(s)}finally{if(r)throw r.error}}return o},e._VoidElementNames=new Set([\"area\",\"base\",\"basefont\",\"bgsound\",\"br\",\"col\",\"embed\",\"frame\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"]),e}();t.XMLSerializerImpl=c},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(277);t.XMLReader=n.XMLReader;var i=r(112);t.ObjectReader=i.ObjectReader;var o=r(280);t.JSONReader=o.JSONReader;var a=r(281);t.YAMLReader=a.YAMLReader},function(e,t,r){\"use strict\";r(31),r(32),r(33),r(19),r(65),r(20),r(22),r(23);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a},a=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(t,\"__esModule\",{value:!0});var s=r(180),u=r(111),l=r(7),c=r(0),h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype._parse=function(e,t){for(var r,n,i,h,p=new s.XMLStringLexer(t,{skipWhitespaceOnlyText:!0}),f=e,d=e,m=p.nextToken();m.type!==u.TokenType.EOF;){switch(m.type){case u.TokenType.Declaration:var y=m,v=this.sanitize(y.version);if(\"1.0\"!==v)throw new Error(\"Invalid xml version: \"+v);var _={version:v};y.encoding&&(_.encoding=this.sanitize(y.encoding)),y.standalone&&(_.standalone=\"yes\"===this.sanitize(y.standalone)),d.set(_);break;case u.TokenType.DocType:var g=m;d=this.docType(d,this.sanitize(g.name),this.sanitize(g.pubId),this.sanitize(g.sysId))||d;break;case u.TokenType.CDATA:var b=m;d=this.cdata(d,this.sanitize(b.data))||d;break;case u.TokenType.Comment:var x=m;d=this.comment(d,this.sanitize(x.data))||d;break;case u.TokenType.PI:var w=m;d=this.instruction(d,this.sanitize(w.target),this.sanitize(w.data))||d;break;case u.TokenType.Text:var E=m;d=this.text(d,this._decodeText(this.sanitize(E.data)))||d;break;case u.TokenType.Element:var D=m,S=this.sanitize(D.name),C=o(c.namespace_extractQName(S),1)[0],A=d.node.lookupNamespaceURI(C),N={};try{for(var T=(r=void 0,a(D.attributes)),O=T.next();!O.done;O=T.next()){var F=o(O.value,2),k=F[0],P=F[1];if(k=this.sanitize(k),P=this.sanitize(P),\"xmlns\"===k)A=P;else{var I=o(c.namespace_extractQName(k),2),L=I[0],M=I[1];\"xmlns\"===L&&(M===C&&(A=P),N[M]=P)}}}catch(e){r={error:e}}finally{try{O&&!O.done&&(n=T.return)&&n.call(T)}finally{if(r)throw r.error}}var B=null!==A?this.element(d,A,S):this.element(d,void 0,S);if(void 0===B)break;d.node===e.node&&(f=B);try{for(var j=(i=void 0,a(D.attributes)),R=j.next();!R.done;R=j.next()){var z=o(R.value,2);k=z[0],P=z[1];k=this.sanitize(k),P=this.sanitize(P);var U=o(c.namespace_extractQName(k),2),G=(L=U[0],M=U[1],null);\"xmlns\"===L||null===L&&\"xmlns\"===M?G=l.namespace.XMLNS:null!==(G=B.node.lookupNamespaceURI(L))&&B.node.isDefaultNamespace(G)?G=null:null===G&&null!==L&&(G=N[L]||null),null!==G?this.attribute(B,G,k,this._decodeAttributeValue(P)):this.attribute(B,void 0,k,this._decodeAttributeValue(P))}}catch(e){i={error:e}}finally{try{R&&!R.done&&(h=j.return)&&h.call(j)}finally{if(i)throw i.error}}D.selfClosing||(d=B);break;case u.TokenType.ClosingTag:d.node.parentNode&&(d=d.up())}m=p.nextToken()}return f},t}(r(75).BaseReader);t.XMLReader=h},function(e,t,r){var n=r(4),i=r(279);n({target:\"Object\",stat:!0,forced:Object.assign!==i},{assign:i})},function(e,t,r){\"use strict\";var n=r(16),i=r(8),o=r(61),a=r(85),s=r(79),u=r(27),l=r(41),c=Object.assign,h=Object.defineProperty;e.exports=!c||i((function(){if(n&&1!==c({b:1},c(h({},\"a\",{enumerable:!0,get:function(){h(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},r=Symbol();return e[r]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(e){t[e]=e})),7!=c({},e)[r]||\"abcdefghijklmnopqrst\"!=o(c({},t)).join(\"\")}))?function(e,t){for(var r=u(e),i=arguments.length,c=1,h=a.f,p=s.f;i>c;)for(var f,d=l(arguments[c++]),m=h?o(d).concat(h(d)):o(d),y=m.length,v=0;y>v;)f=m[v++],n&&!p.call(d,f)||(r[f]=d[f]);return r}:c},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(112),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype._parse=function(e,t){return new o.ObjectReader(this._builderOptions).parse(e,JSON.parse(t))},t}(r(75).BaseReader);t.JSONReader=a},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(112),a=r(75),s=r(282),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype._parse=function(e,t){var r=s.safeLoad(t);if(void 0===r)throw new Error(\"Unable to parse YAML document.\");return new o.ObjectReader(this._builderOptions).parse(e,r)},t}(a.BaseReader);t.YAMLReader=u},function(e,t,r){\"use strict\";var n=r(283);e.exports=n},function(e,t,r){\"use strict\";var n=r(284),i=r(303);function o(e){return function(){throw new Error(\"Function \"+e+\" is deprecated and cannot be used.\")}}e.exports.Type=r(10),e.exports.Schema=r(39),e.exports.FAILSAFE_SCHEMA=r(113),e.exports.JSON_SCHEMA=r(182),e.exports.CORE_SCHEMA=r(181),e.exports.DEFAULT_SAFE_SCHEMA=r(54),e.exports.DEFAULT_FULL_SCHEMA=r(76),e.exports.load=n.load,e.exports.loadAll=n.loadAll,e.exports.safeLoad=n.safeLoad,e.exports.safeLoadAll=n.safeLoadAll,e.exports.dump=i.dump,e.exports.safeDump=i.safeDump,e.exports.YAMLException=r(53),e.exports.MINIMAL_SCHEMA=r(113),e.exports.SAFE_SCHEMA=r(54),e.exports.DEFAULT_SCHEMA=r(76),e.exports.scan=o(\"scan\"),e.exports.parse=o(\"parse\"),e.exports.compose=o(\"compose\"),e.exports.addConstructor=o(\"addConstructor\")},function(e,t,r){\"use strict\";var n=r(38),i=r(53),o=r(285),a=r(54),s=r(76),u=Object.prototype.hasOwnProperty,l=/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,c=/[\\x85\\u2028\\u2029]/,h=/[,\\[\\]\\{\\}]/,p=/^(?:!|!!|![a-z\\-]+!)$/i,f=/^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;function d(e){return Object.prototype.toString.call(e)}function m(e){return 10===e||13===e}function y(e){return 9===e||32===e}function v(e){return 9===e||32===e||10===e||13===e}function _(e){return 44===e||91===e||93===e||123===e||125===e}function g(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function b(e){return 48===e?\"\\0\":97===e?\"\u0007\":98===e?\"\\b\":116===e||9===e?\"\\t\":110===e?\"\\n\":118===e?\"\\v\":102===e?\"\\f\":114===e?\"\\r\":101===e?\"\u001b\":32===e?\" \":34===e?'\"':47===e?\"/\":92===e?\"\\\\\":78===e?\"\":95===e?\" \":76===e?\"\\u2028\":80===e?\"\\u2029\":\"\"}function x(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var w=new Array(256),E=new Array(256),D=0;D<256;D++)w[D]=b(D)?1:0,E[D]=b(D);function S(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||s,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function C(e,t){return new i(t,new o(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function A(e,t){throw C(e,t)}function N(e,t){e.onWarning&&e.onWarning.call(null,C(e,t))}var T={YAML:function(e,t,r){var n,i,o;null!==e.version&&A(e,\"duplication of %YAML directive\"),1!==r.length&&A(e,\"YAML directive accepts exactly one argument\"),null===(n=/^([0-9]+)\\.([0-9]+)$/.exec(r[0]))&&A(e,\"ill-formed argument of the YAML directive\"),i=parseInt(n[1],10),o=parseInt(n[2],10),1!==i&&A(e,\"unacceptable YAML version of the document\"),e.version=r[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&N(e,\"unsupported YAML version of the document\")},TAG:function(e,t,r){var n,i;2!==r.length&&A(e,\"TAG directive accepts exactly two arguments\"),n=r[0],i=r[1],p.test(n)||A(e,\"ill-formed tag handle (first argument) of the TAG directive\"),u.call(e.tagMap,n)&&A(e,'there is a previously declared suffix for \"'+n+'\" tag handle'),f.test(i)||A(e,\"ill-formed tag prefix (second argument) of the TAG directive\"),e.tagMap[n]=i}};function O(e,t,r,n){var i,o,a,s;if(t<r){if(s=e.input.slice(t,r),n)for(i=0,o=s.length;i<o;i+=1)9===(a=s.charCodeAt(i))||32<=a&&a<=1114111||A(e,\"expected valid JSON character\");else l.test(s)&&A(e,\"the stream contains non-printable characters\");e.result+=s}}function F(e,t,r,i){var o,a,s,l;for(n.isObject(r)||A(e,\"cannot merge mappings; the provided source object is unacceptable\"),s=0,l=(o=Object.keys(r)).length;s<l;s+=1)a=o[s],u.call(t,a)||(t[a]=r[a],i[a]=!0)}function k(e,t,r,n,i,o,a,s){var l,c;if(Array.isArray(i))for(l=0,c=(i=Array.prototype.slice.call(i)).length;l<c;l+=1)Array.isArray(i[l])&&A(e,\"nested arrays are not supported inside keys\"),\"object\"==typeof i&&\"[object Object]\"===d(i[l])&&(i[l]=\"[object Object]\");if(\"object\"==typeof i&&\"[object Object]\"===d(i)&&(i=\"[object Object]\"),i=String(i),null===t&&(t={}),\"tag:yaml.org,2002:merge\"===n)if(Array.isArray(o))for(l=0,c=o.length;l<c;l+=1)F(e,t,o[l],r);else F(e,t,o,r);else e.json||u.call(r,i)||!u.call(t,i)||(e.line=a||e.line,e.position=s||e.position,A(e,\"duplicated mapping key\")),t[i]=o,delete r[i];return t}function P(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):A(e,\"a line break is expected\"),e.line+=1,e.lineStart=e.position}function I(e,t,r){for(var n=0,i=e.input.charCodeAt(e.position);0!==i;){for(;y(i);)i=e.input.charCodeAt(++e.position);if(t&&35===i)do{i=e.input.charCodeAt(++e.position)}while(10!==i&&13!==i&&0!==i);if(!m(i))break;for(P(e),i=e.input.charCodeAt(e.position),n++,e.lineIndent=0;32===i;)e.lineIndent++,i=e.input.charCodeAt(++e.position)}return-1!==r&&0!==n&&e.lineIndent<r&&N(e,\"deficient indentation\"),n}function L(e){var t,r=e.position;return!(45!==(t=e.input.charCodeAt(r))&&46!==t||t!==e.input.charCodeAt(r+1)||t!==e.input.charCodeAt(r+2)||(r+=3,0!==(t=e.input.charCodeAt(r))&&!v(t)))}function M(e,t){1===t?e.result+=\" \":t>1&&(e.result+=n.repeat(\"\\n\",t-1))}function B(e,t){var r,n,i=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),n=e.input.charCodeAt(e.position);0!==n&&45===n&&v(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,I(e,!0,-1)&&e.lineIndent<=t)a.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,z(e,t,3,!1,!0),a.push(e.result),I(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)A(e,\"bad indentation of a sequence entry\");else if(e.lineIndent<t)break;return!!s&&(e.tag=i,e.anchor=o,e.kind=\"sequence\",e.result=a,!0)}function j(e){var t,r,n,i,o=!1,a=!1;if(33!==(i=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&A(e,\"duplication of a tag property\"),60===(i=e.input.charCodeAt(++e.position))?(o=!0,i=e.input.charCodeAt(++e.position)):33===i?(a=!0,r=\"!!\",i=e.input.charCodeAt(++e.position)):r=\"!\",t=e.position,o){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&62!==i);e.position<e.length?(n=e.input.slice(t,e.position),i=e.input.charCodeAt(++e.position)):A(e,\"unexpected end of the stream within a verbatim tag\")}else{for(;0!==i&&!v(i);)33===i&&(a?A(e,\"tag suffix cannot contain exclamation marks\"):(r=e.input.slice(t-1,e.position+1),p.test(r)||A(e,\"named tag handle cannot contain such characters\"),a=!0,t=e.position+1)),i=e.input.charCodeAt(++e.position);n=e.input.slice(t,e.position),h.test(n)&&A(e,\"tag suffix cannot contain flow indicator characters\")}return n&&!f.test(n)&&A(e,\"tag name cannot contain such characters: \"+n),o?e.tag=n:u.call(e.tagMap,r)?e.tag=e.tagMap[r]+n:\"!\"===r?e.tag=\"!\"+n:\"!!\"===r?e.tag=\"tag:yaml.org,2002:\"+n:A(e,'undeclared tag handle \"'+r+'\"'),!0}function R(e){var t,r;if(38!==(r=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&A(e,\"duplication of an anchor property\"),r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!v(r)&&!_(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&A(e,\"name of an anchor node must contain at least one character\"),e.anchor=e.input.slice(t,e.position),!0}function z(e,t,r,i,o){var a,s,l,c,h,p,f,d,b=1,D=!1,S=!1;if(null!==e.listener&&e.listener(\"open\",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,a=s=l=4===r||3===r,i&&I(e,!0,-1)&&(D=!0,e.lineIndent>t?b=1:e.lineIndent===t?b=0:e.lineIndent<t&&(b=-1)),1===b)for(;j(e)||R(e);)I(e,!0,-1)?(D=!0,l=a,e.lineIndent>t?b=1:e.lineIndent===t?b=0:e.lineIndent<t&&(b=-1)):l=!1;if(l&&(l=D||o),1!==b&&4!==r||(f=1===r||2===r?t:t+1,d=e.position-e.lineStart,1===b?l&&(B(e,d)||function(e,t,r){var n,i,o,a,s,u=e.tag,l=e.anchor,c={},h={},p=null,f=null,d=null,m=!1,_=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=c),s=e.input.charCodeAt(e.position);0!==s;){if(n=e.input.charCodeAt(e.position+1),o=e.line,a=e.position,63!==s&&58!==s||!v(n)){if(!z(e,r,2,!1,!0))break;if(e.line===o){for(s=e.input.charCodeAt(e.position);y(s);)s=e.input.charCodeAt(++e.position);if(58===s)v(s=e.input.charCodeAt(++e.position))||A(e,\"a whitespace character is expected after the key-value separator within a block mapping\"),m&&(k(e,c,h,p,f,null),p=f=d=null),_=!0,m=!1,i=!1,p=e.tag,f=e.result;else{if(!_)return e.tag=u,e.anchor=l,!0;A(e,\"can not read an implicit mapping pair; a colon is missed\")}}else{if(!_)return e.tag=u,e.anchor=l,!0;A(e,\"can not read a block mapping entry; a multiline key may not be an implicit key\")}}else 63===s?(m&&(k(e,c,h,p,f,null),p=f=d=null),_=!0,m=!0,i=!0):m?(m=!1,i=!0):A(e,\"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\"),e.position+=1,s=n;if((e.line===o||e.lineIndent>t)&&(z(e,t,4,!0,i)&&(m?f=e.result:d=e.result),m||(k(e,c,h,p,f,d,o,a),p=f=d=null),I(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)A(e,\"bad indentation of a mapping entry\");else if(e.lineIndent<t)break}return m&&k(e,c,h,p,f,null),_&&(e.tag=u,e.anchor=l,e.kind=\"mapping\",e.result=c),_}(e,d,f))||function(e,t){var r,n,i,o,a,s,u,l,c,h,p=!0,f=e.tag,d=e.anchor,m={};if(91===(h=e.input.charCodeAt(e.position)))i=93,s=!1,n=[];else{if(123!==h)return!1;i=125,s=!0,n={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=n),h=e.input.charCodeAt(++e.position);0!==h;){if(I(e,!0,t),(h=e.input.charCodeAt(e.position))===i)return e.position++,e.tag=f,e.anchor=d,e.kind=s?\"mapping\":\"sequence\",e.result=n,!0;p||A(e,\"missed comma between flow collection entries\"),c=null,o=a=!1,63===h&&v(e.input.charCodeAt(e.position+1))&&(o=a=!0,e.position++,I(e,!0,t)),r=e.line,z(e,t,1,!1,!0),l=e.tag,u=e.result,I(e,!0,t),h=e.input.charCodeAt(e.position),!a&&e.line!==r||58!==h||(o=!0,h=e.input.charCodeAt(++e.position),I(e,!0,t),z(e,t,1,!1,!0),c=e.result),s?k(e,n,m,l,u,c):o?n.push(k(e,null,m,l,u,c)):n.push(u),I(e,!0,t),44===(h=e.input.charCodeAt(e.position))?(p=!0,h=e.input.charCodeAt(++e.position)):p=!1}A(e,\"unexpected end of the stream within a flow collection\")}(e,f)?S=!0:(s&&function(e,t){var r,i,o,a,s,u=1,l=!1,c=!1,h=t,p=0,f=!1;if(124===(a=e.input.charCodeAt(e.position)))i=!1;else{if(62!==a)return!1;i=!0}for(e.kind=\"scalar\",e.result=\"\";0!==a;)if(43===(a=e.input.charCodeAt(++e.position))||45===a)1===u?u=43===a?3:2:A(e,\"repeat of a chomping mode identifier\");else{if(!((o=48<=(s=a)&&s<=57?s-48:-1)>=0))break;0===o?A(e,\"bad explicit indentation width of a block scalar; it cannot be less than one\"):c?A(e,\"repeat of an indentation width identifier\"):(h=t+o-1,c=!0)}if(y(a)){do{a=e.input.charCodeAt(++e.position)}while(y(a));if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!m(a)&&0!==a)}for(;0!==a;){for(P(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!c||e.lineIndent<h)&&32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position);if(!c&&e.lineIndent>h&&(h=e.lineIndent),m(a))p++;else{if(e.lineIndent<h){3===u?e.result+=n.repeat(\"\\n\",l?1+p:p):1===u&&l&&(e.result+=\"\\n\");break}for(i?y(a)?(f=!0,e.result+=n.repeat(\"\\n\",l?1+p:p)):f?(f=!1,e.result+=n.repeat(\"\\n\",p+1)):0===p?l&&(e.result+=\" \"):e.result+=n.repeat(\"\\n\",p):e.result+=n.repeat(\"\\n\",l?1+p:p),l=!0,c=!0,p=0,r=e.position;!m(a)&&0!==a;)a=e.input.charCodeAt(++e.position);O(e,r,e.position,!1)}}return!0}(e,f)||function(e,t){var r,n,i;if(39!==(r=e.input.charCodeAt(e.position)))return!1;for(e.kind=\"scalar\",e.result=\"\",e.position++,n=i=e.position;0!==(r=e.input.charCodeAt(e.position));)if(39===r){if(O(e,n,e.position,!0),39!==(r=e.input.charCodeAt(++e.position)))return!0;n=e.position,e.position++,i=e.position}else m(r)?(O(e,n,i,!0),M(e,I(e,!1,t)),n=i=e.position):e.position===e.lineStart&&L(e)?A(e,\"unexpected end of the document within a single quoted scalar\"):(e.position++,i=e.position);A(e,\"unexpected end of the stream within a single quoted scalar\")}(e,f)||function(e,t){var r,n,i,o,a,s,u;if(34!==(s=e.input.charCodeAt(e.position)))return!1;for(e.kind=\"scalar\",e.result=\"\",e.position++,r=n=e.position;0!==(s=e.input.charCodeAt(e.position));){if(34===s)return O(e,r,e.position,!0),e.position++,!0;if(92===s){if(O(e,r,e.position,!0),m(s=e.input.charCodeAt(++e.position)))I(e,!1,t);else if(s<256&&w[s])e.result+=E[s],e.position++;else if((a=120===(u=s)?2:117===u?4:85===u?8:0)>0){for(i=a,o=0;i>0;i--)(a=g(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:A(e,\"expected hexadecimal character\");e.result+=x(o),e.position++}else A(e,\"unknown escape sequence\");r=n=e.position}else m(s)?(O(e,r,n,!0),M(e,I(e,!1,t)),r=n=e.position):e.position===e.lineStart&&L(e)?A(e,\"unexpected end of the document within a double quoted scalar\"):(e.position++,n=e.position)}A(e,\"unexpected end of the stream within a double quoted scalar\")}(e,f)?S=!0:!function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!v(n)&&!_(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&A(e,\"name of an alias node must contain at least one character\"),r=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(r)||A(e,'unidentified alias \"'+r+'\"'),e.result=e.anchorMap[r],I(e,!0,-1),!0}(e)?function(e,t,r){var n,i,o,a,s,u,l,c,h=e.kind,p=e.result;if(v(c=e.input.charCodeAt(e.position))||_(c)||35===c||38===c||42===c||33===c||124===c||62===c||39===c||34===c||37===c||64===c||96===c)return!1;if((63===c||45===c)&&(v(n=e.input.charCodeAt(e.position+1))||r&&_(n)))return!1;for(e.kind=\"scalar\",e.result=\"\",i=o=e.position,a=!1;0!==c;){if(58===c){if(v(n=e.input.charCodeAt(e.position+1))||r&&_(n))break}else if(35===c){if(v(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&L(e)||r&&_(c))break;if(m(c)){if(s=e.line,u=e.lineStart,l=e.lineIndent,I(e,!1,-1),e.lineIndent>=t){a=!0,c=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=u,e.lineIndent=l;break}}a&&(O(e,i,o,!1),M(e,e.line-s),i=o=e.position,a=!1),y(c)||(o=e.position+1),c=e.input.charCodeAt(++e.position)}return O(e,i,o,!1),!!e.result||(e.kind=h,e.result=p,!1)}(e,f,1===r)&&(S=!0,null===e.tag&&(e.tag=\"?\")):(S=!0,null===e.tag&&null===e.anchor||A(e,\"alias node should not have any properties\")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===b&&(S=l&&B(e,d))),null!==e.tag&&\"!\"!==e.tag)if(\"?\"===e.tag){for(null!==e.result&&\"scalar\"!==e.kind&&A(e,'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"'+e.kind+'\"'),c=0,h=e.implicitTypes.length;c<h;c+=1)if((p=e.implicitTypes[c]).resolve(e.result)){e.result=p.construct(e.result),e.tag=p.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else u.call(e.typeMap[e.kind||\"fallback\"],e.tag)?(p=e.typeMap[e.kind||\"fallback\"][e.tag],null!==e.result&&p.kind!==e.kind&&A(e,\"unacceptable node kind for !<\"+e.tag+'> tag; it should be \"'+p.kind+'\", not \"'+e.kind+'\"'),p.resolve(e.result)?(e.result=p.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):A(e,\"cannot resolve a node with !<\"+e.tag+\"> explicit tag\")):A(e,\"unknown tag !<\"+e.tag+\">\");return null!==e.listener&&e.listener(\"close\",e),null!==e.tag||null!==e.anchor||S}function U(e){var t,r,n,i,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(i=e.input.charCodeAt(e.position))&&(I(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(a=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!v(i);)i=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&A(e,\"directive name must not be less than one character in length\");0!==i;){for(;y(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!m(i));break}if(m(i))break;for(t=e.position;0!==i&&!v(i);)i=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==i&&P(e),u.call(T,r)?T[r](e,r,n):N(e,'unknown document directive \"'+r+'\"')}I(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,I(e,!0,-1)):a&&A(e,\"directives end mark is expected\"),z(e,e.lineIndent-1,4,!1,!0),I(e,!0,-1),e.checkLineBreaks&&c.test(e.input.slice(o,e.position))&&N(e,\"non-ASCII line breaks are interpreted as content\"),e.documents.push(e.result),e.position===e.lineStart&&L(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,I(e,!0,-1)):e.position<e.length-1&&A(e,\"end of the stream or a document separator is expected\")}function G(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+=\"\\n\"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var r=new S(e,t),n=e.indexOf(\"\\0\");for(-1!==n&&(r.position=n,A(r,\"null byte is not allowed in input\")),r.input+=\"\\0\";32===r.input.charCodeAt(r.position);)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)U(r);return r.documents}function X(e,t,r){null!==t&&\"object\"==typeof t&&void 0===r&&(r=t,t=null);var n=G(e,r);if(\"function\"!=typeof t)return n;for(var i=0,o=n.length;i<o;i+=1)t(n[i])}function q(e,t){var r=G(e,t);if(0!==r.length){if(1===r.length)return r[0];throw new i(\"expected a single document in the stream, but found more\")}}e.exports.loadAll=X,e.exports.load=q,e.exports.safeLoadAll=function(e,t,r){return\"object\"==typeof t&&null!==t&&void 0===r&&(r=t,t=null),X(e,t,n.extend({schema:a},r))},e.exports.safeLoad=function(e,t){return q(e,n.extend({schema:a},t))}},function(e,t,r){\"use strict\";var n=r(38);function i(e,t,r,n,i){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=i}i.prototype.getSnippet=function(e,t){var r,i,o,a,s;if(!this.buffer)return null;for(e=e||4,t=t||75,r=\"\",i=this.position;i>0&&-1===\"\\0\\r\\n\\u2028\\u2029\".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){r=\" ... \",i+=5;break}for(o=\"\",a=this.position;a<this.buffer.length&&-1===\"\\0\\r\\n\\u2028\\u2029\".indexOf(this.buffer.charAt(a));)if((a+=1)-this.position>t/2-1){o=\" ... \",a-=5;break}return s=this.buffer.slice(i,a),n.repeat(\" \",e)+r+s+o+\"\\n\"+n.repeat(\" \",e+this.position-i+r.length)+\"^\"},i.prototype.toString=function(e){var t,r=\"\";return this.name&&(r+='in \"'+this.name+'\" '),r+=\"at line \"+(this.line+1)+\", column \"+(this.column+1),e||(t=this.getSnippet())&&(r+=\":\\n\"+t),r},e.exports=i},function(e,t,r){\"use strict\";var n=r(10);e.exports=new n(\"tag:yaml.org,2002:str\",{kind:\"scalar\",construct:function(e){return null!==e?e:\"\"}})},function(e,t,r){\"use strict\";var n=r(10);e.exports=new n(\"tag:yaml.org,2002:seq\",{kind:\"sequence\",construct:function(e){return null!==e?e:[]}})},function(e,t,r){\"use strict\";var n=r(10);e.exports=new n(\"tag:yaml.org,2002:map\",{kind:\"mapping\",construct:function(e){return null!==e?e:{}}})},function(e,t,r){\"use strict\";var n=r(10);e.exports=new n(\"tag:yaml.org,2002:null\",{kind:\"scalar\",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&\"~\"===e||4===t&&(\"null\"===e||\"Null\"===e||\"NULL\"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return\"~\"},lowercase:function(){return\"null\"},uppercase:function(){return\"NULL\"},camelcase:function(){return\"Null\"}},defaultStyle:\"lowercase\"})},function(e,t,r){\"use strict\";var n=r(10);e.exports=new n(\"tag:yaml.org,2002:bool\",{kind:\"scalar\",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&(\"true\"===e||\"True\"===e||\"TRUE\"===e)||5===t&&(\"false\"===e||\"False\"===e||\"FALSE\"===e)},construct:function(e){return\"true\"===e||\"True\"===e||\"TRUE\"===e},predicate:function(e){return\"[object Boolean]\"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?\"true\":\"false\"},uppercase:function(e){return e?\"TRUE\":\"FALSE\"},camelcase:function(e){return e?\"True\":\"False\"}},defaultStyle:\"lowercase\"})},function(e,t,r){\"use strict\";var n=r(38),i=r(10);function o(e){return 48<=e&&e<=55}function a(e){return 48<=e&&e<=57}e.exports=new i(\"tag:yaml.org,2002:int\",{kind:\"scalar\",resolve:function(e){if(null===e)return!1;var t,r,n=e.length,i=0,s=!1;if(!n)return!1;if(\"-\"!==(t=e[i])&&\"+\"!==t||(t=e[++i]),\"0\"===t){if(i+1===n)return!0;if(\"b\"===(t=e[++i])){for(i++;i<n;i++)if(\"_\"!==(t=e[i])){if(\"0\"!==t&&\"1\"!==t)return!1;s=!0}return s&&\"_\"!==t}if(\"x\"===t){for(i++;i<n;i++)if(\"_\"!==(t=e[i])){if(!(48<=(r=e.charCodeAt(i))&&r<=57||65<=r&&r<=70||97<=r&&r<=102))return!1;s=!0}return s&&\"_\"!==t}for(;i<n;i++)if(\"_\"!==(t=e[i])){if(!o(e.charCodeAt(i)))return!1;s=!0}return s&&\"_\"!==t}if(\"_\"===t)return!1;for(;i<n;i++)if(\"_\"!==(t=e[i])){if(\":\"===t)break;if(!a(e.charCodeAt(i)))return!1;s=!0}return!(!s||\"_\"===t)&&(\":\"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(i)))},construct:function(e){var t,r,n=e,i=1,o=[];return-1!==n.indexOf(\"_\")&&(n=n.replace(/_/g,\"\")),\"-\"!==(t=n[0])&&\"+\"!==t||(\"-\"===t&&(i=-1),t=(n=n.slice(1))[0]),\"0\"===n?0:\"0\"===t?\"b\"===n[1]?i*parseInt(n.slice(2),2):\"x\"===n[1]?i*parseInt(n,16):i*parseInt(n,8):-1!==n.indexOf(\":\")?(n.split(\":\").forEach((function(e){o.unshift(parseInt(e,10))})),n=0,r=1,o.forEach((function(e){n+=e*r,r*=60})),i*n):i*parseInt(n,10)},predicate:function(e){return\"[object Number]\"===Object.prototype.toString.call(e)&&e%1==0&&!n.isNegativeZero(e)},represent:{binary:function(e){return e>=0?\"0b\"+e.toString(2):\"-0b\"+e.toString(2).slice(1)},octal:function(e){return e>=0?\"0\"+e.toString(8):\"-0\"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?\"0x\"+e.toString(16).toUpperCase():\"-0x\"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:\"decimal\",styleAliases:{binary:[2,\"bin\"],octal:[8,\"oct\"],decimal:[10,\"dec\"],hexadecimal:[16,\"hex\"]}})},function(e,t,r){\"use strict\";var n=r(38),i=r(10),o=new RegExp(\"^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");var a=/^[-+]?[0-9]+e/;e.exports=new i(\"tag:yaml.org,2002:float\",{kind:\"scalar\",resolve:function(e){return null!==e&&!(!o.test(e)||\"_\"===e[e.length-1])},construct:function(e){var t,r,n,i;return r=\"-\"===(t=e.replace(/_/g,\"\").toLowerCase())[0]?-1:1,i=[],\"+-\".indexOf(t[0])>=0&&(t=t.slice(1)),\".inf\"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:\".nan\"===t?NaN:t.indexOf(\":\")>=0?(t.split(\":\").forEach((function(e){i.unshift(parseFloat(e,10))})),t=0,n=1,i.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return\"[object Number]\"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case\"lowercase\":return\".nan\";case\"uppercase\":return\".NAN\";case\"camelcase\":return\".NaN\"}else if(Number.POSITIVE_INFINITY===e)switch(t){case\"lowercase\":return\".inf\";case\"uppercase\":return\".INF\";case\"camelcase\":return\".Inf\"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case\"lowercase\":return\"-.inf\";case\"uppercase\":return\"-.INF\";case\"camelcase\":return\"-.Inf\"}else if(n.isNegativeZero(e))return\"-0.0\";return r=e.toString(10),a.test(r)?r.replace(\"e\",\".e\"):r},defaultStyle:\"lowercase\"})},function(e,t,r){\"use strict\";var n=r(10),i=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"),o=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\");e.exports=new n(\"tag:yaml.org,2002:timestamp\",{kind:\"scalar\",resolve:function(e){return null!==e&&(null!==i.exec(e)||null!==o.exec(e))},construct:function(e){var t,r,n,a,s,u,l,c,h=0,p=null;if(null===(t=i.exec(e))&&(t=o.exec(e)),null===t)throw new Error(\"Date resolve error\");if(r=+t[1],n=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(r,n,a));if(s=+t[4],u=+t[5],l=+t[6],t[7]){for(h=t[7].slice(0,3);h.length<3;)h+=\"0\";h=+h}return t[9]&&(p=6e4*(60*+t[10]+ +(t[11]||0)),\"-\"===t[9]&&(p=-p)),c=new Date(Date.UTC(r,n,a,s,u,l,h)),p&&c.setTime(c.getTime()-p),c},instanceOf:Date,represent:function(e){return e.toISOString()}})},function(e,t,r){\"use strict\";var n=r(10);e.exports=new n(\"tag:yaml.org,2002:merge\",{kind:\"scalar\",resolve:function(e){return\"<<\"===e||null===e}})},function(e,t,r){\"use strict\";var n;try{n=r(145).Buffer}catch(e){}var i=r(10),o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";e.exports=new i(\"tag:yaml.org,2002:binary\",{kind:\"scalar\",resolve:function(e){if(null===e)return!1;var t,r,n=0,i=e.length,a=o;for(r=0;r<i;r++)if(!((t=a.indexOf(e.charAt(r)))>64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,i=e.replace(/[\\r\\n=]/g,\"\"),a=i.length,s=o,u=0,l=[];for(t=0;t<a;t++)t%4==0&&t&&(l.push(u>>16&255),l.push(u>>8&255),l.push(255&u)),u=u<<6|s.indexOf(i.charAt(t));return 0===(r=a%4*6)?(l.push(u>>16&255),l.push(u>>8&255),l.push(255&u)):18===r?(l.push(u>>10&255),l.push(u>>2&255)):12===r&&l.push(u>>4&255),n?n.from?n.from(l):new n(l):l},predicate:function(e){return n&&n.isBuffer(e)},represent:function(e){var t,r,n=\"\",i=0,a=e.length,s=o;for(t=0;t<a;t++)t%3==0&&t&&(n+=s[i>>18&63],n+=s[i>>12&63],n+=s[i>>6&63],n+=s[63&i]),i=(i<<8)+e[t];return 0===(r=a%3)?(n+=s[i>>18&63],n+=s[i>>12&63],n+=s[i>>6&63],n+=s[63&i]):2===r?(n+=s[i>>10&63],n+=s[i>>4&63],n+=s[i<<2&63],n+=s[64]):1===r&&(n+=s[i>>2&63],n+=s[i<<4&63],n+=s[64],n+=s[64]),n}})},function(e,t,r){\"use strict\";var n=r(10),i=Object.prototype.hasOwnProperty,o=Object.prototype.toString;e.exports=new n(\"tag:yaml.org,2002:omap\",{kind:\"sequence\",resolve:function(e){if(null===e)return!0;var t,r,n,a,s,u=[],l=e;for(t=0,r=l.length;t<r;t+=1){if(n=l[t],s=!1,\"[object Object]\"!==o.call(n))return!1;for(a in n)if(i.call(n,a)){if(s)return!1;s=!0}if(!s)return!1;if(-1!==u.indexOf(a))return!1;u.push(a)}return!0},construct:function(e){return null!==e?e:[]}})},function(e,t,r){\"use strict\";var n=r(10),i=Object.prototype.toString;e.exports=new n(\"tag:yaml.org,2002:pairs\",{kind:\"sequence\",resolve:function(e){if(null===e)return!0;var t,r,n,o,a,s=e;for(a=new Array(s.length),t=0,r=s.length;t<r;t+=1){if(n=s[t],\"[object Object]\"!==i.call(n))return!1;if(1!==(o=Object.keys(n)).length)return!1;a[t]=[o[0],n[o[0]]]}return!0},construct:function(e){if(null===e)return[];var t,r,n,i,o,a=e;for(o=new Array(a.length),t=0,r=a.length;t<r;t+=1)n=a[t],i=Object.keys(n),o[t]=[i[0],n[i[0]]];return o}})},function(e,t,r){\"use strict\";var n=r(10),i=Object.prototype.hasOwnProperty;e.exports=new n(\"tag:yaml.org,2002:set\",{kind:\"mapping\",resolve:function(e){if(null===e)return!0;var t,r=e;for(t in r)if(i.call(r,t)&&null!==r[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})},function(e,t,r){\"use strict\";var n=r(10);e.exports=new n(\"tag:yaml.org,2002:js/undefined\",{kind:\"scalar\",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return\"\"}})},function(e,t,r){\"use strict\";var n=r(10);e.exports=new n(\"tag:yaml.org,2002:js/regexp\",{kind:\"scalar\",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,r=/\\/([gim]*)$/.exec(e),n=\"\";if(\"/\"===t[0]){if(r&&(n=r[1]),n.length>3)return!1;if(\"/\"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\\/([gim]*)$/.exec(e),n=\"\";return\"/\"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)},represent:function(e){var t=\"/\"+e.source+\"/\";return e.global&&(t+=\"g\"),e.multiline&&(t+=\"m\"),e.ignoreCase&&(t+=\"i\"),t}})},function(e,t,r){\"use strict\";var n;try{n=r(302)}catch(e){\"undefined\"!=typeof window&&(n=window.esprima)}var i=r(10);e.exports=new i(\"tag:yaml.org,2002:js/function\",{kind:\"scalar\",resolve:function(e){if(null===e)return!1;try{var t=\"(\"+e+\")\",r=n.parse(t,{range:!0});return\"Program\"===r.type&&1===r.body.length&&\"ExpressionStatement\"===r.body[0].type&&(\"ArrowFunctionExpression\"===r.body[0].expression.type||\"FunctionExpression\"===r.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,r=\"(\"+e+\")\",i=n.parse(r,{range:!0}),o=[];if(\"Program\"!==i.type||1!==i.body.length||\"ExpressionStatement\"!==i.body[0].type||\"ArrowFunctionExpression\"!==i.body[0].expression.type&&\"FunctionExpression\"!==i.body[0].expression.type)throw new Error(\"Failed to resolve function\");return i.body[0].expression.params.forEach((function(e){o.push(e.name)})),t=i.body[0].expression.body.range,\"BlockStatement\"===i.body[0].expression.body.type?new Function(o,r.slice(t[0]+1,t[1]-1)):new Function(o,\"return \"+r.slice(t[0],t[1]))},predicate:function(e){return\"[object Function]\"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},function(e,t,r){var n;n=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}return r.m=e,r.c=t,r.p=\"\",r(0)}([function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(1),i=r(3),o=r(8),a=r(15);function s(e,t,r){var a=null,s=function(e,t){r&&r(e,t),a&&a.visit(e,t)},u=\"function\"==typeof r?s:null,l=!1;if(t){l=\"boolean\"==typeof t.comment&&t.comment;var c=\"boolean\"==typeof t.attachComment&&t.attachComment;(l||c)&&((a=new n.CommentHandler).attach=c,t.comment=!0,u=s)}var h,p=!1;t&&\"string\"==typeof t.sourceType&&(p=\"module\"===t.sourceType),h=t&&\"boolean\"==typeof t.jsx&&t.jsx?new i.JSXParser(e,t,u):new o.Parser(e,t,u);var f=p?h.parseModule():h.parseScript();return l&&a&&(f.comments=a.comments),h.config.tokens&&(f.tokens=h.tokens),h.config.tolerant&&(f.errors=h.errorHandler.errors),f}t.parse=s,t.parseModule=function(e,t,r){var n=t||{};return n.sourceType=\"module\",s(e,n,r)},t.parseScript=function(e,t,r){var n=t||{};return n.sourceType=\"script\",s(e,n,r)},t.tokenize=function(e,t,r){var n,i=new a.Tokenizer(e,t);n=[];try{for(;;){var o=i.getNextToken();if(!o)break;r&&(o=r(o)),n.push(o)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(n.errors=i.errors()),n};var u=r(2);t.Syntax=u.Syntax,t.version=\"4.0.1\"},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var r=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(r.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}r.length&&(e.innerComments=r)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var n=this.trailing[r];n.start>=e.end.offset&&t.unshift(n.comment)}return this.trailing.length=0,t}var i=this.stack[this.stack.length-1];if(i&&i.node.trailingComments){var o=i.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=i.node.trailingComments,delete i.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,r=[];this.stack.length>0&&((o=this.stack[this.stack.length-1])&&o.start>=e.start.offset);)t=o.node,this.stack.pop();if(t){for(var n=(t.leadingComments?t.leadingComments.length:0)-1;n>=0;--n){var i=t.leadingComments[n];i.range[1]<=e.start.offset&&(r.unshift(i),t.leadingComments.splice(n,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,r}for(n=this.leading.length-1;n>=0;--n){var o;(o=this.leading[n]).start<=e.start.offset&&(r.unshift(o.comment),this.leading.splice(n,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var r=this.findTrailingComments(t),i=this.findLeadingComments(t);i.length>0&&(e.leadingComments=i),r.length>0&&(e.trailingComments=r),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var r=\"L\"===e.type[0]?\"Line\":\"Block\",n={type:r,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var i={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=r,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){\"LineComment\"===e.type||\"BlockComment\"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Syntax={AssignmentExpression:\"AssignmentExpression\",AssignmentPattern:\"AssignmentPattern\",ArrayExpression:\"ArrayExpression\",ArrayPattern:\"ArrayPattern\",ArrowFunctionExpression:\"ArrowFunctionExpression\",AwaitExpression:\"AwaitExpression\",BlockStatement:\"BlockStatement\",BinaryExpression:\"BinaryExpression\",BreakStatement:\"BreakStatement\",CallExpression:\"CallExpression\",CatchClause:\"CatchClause\",ClassBody:\"ClassBody\",ClassDeclaration:\"ClassDeclaration\",ClassExpression:\"ClassExpression\",ConditionalExpression:\"ConditionalExpression\",ContinueStatement:\"ContinueStatement\",DoWhileStatement:\"DoWhileStatement\",DebuggerStatement:\"DebuggerStatement\",EmptyStatement:\"EmptyStatement\",ExportAllDeclaration:\"ExportAllDeclaration\",ExportDefaultDeclaration:\"ExportDefaultDeclaration\",ExportNamedDeclaration:\"ExportNamedDeclaration\",ExportSpecifier:\"ExportSpecifier\",ExpressionStatement:\"ExpressionStatement\",ForStatement:\"ForStatement\",ForOfStatement:\"ForOfStatement\",ForInStatement:\"ForInStatement\",FunctionDeclaration:\"FunctionDeclaration\",FunctionExpression:\"FunctionExpression\",Identifier:\"Identifier\",IfStatement:\"IfStatement\",ImportDeclaration:\"ImportDeclaration\",ImportDefaultSpecifier:\"ImportDefaultSpecifier\",ImportNamespaceSpecifier:\"ImportNamespaceSpecifier\",ImportSpecifier:\"ImportSpecifier\",Literal:\"Literal\",LabeledStatement:\"LabeledStatement\",LogicalExpression:\"LogicalExpression\",MemberExpression:\"MemberExpression\",MetaProperty:\"MetaProperty\",MethodDefinition:\"MethodDefinition\",NewExpression:\"NewExpression\",ObjectExpression:\"ObjectExpression\",ObjectPattern:\"ObjectPattern\",Program:\"Program\",Property:\"Property\",RestElement:\"RestElement\",ReturnStatement:\"ReturnStatement\",SequenceExpression:\"SequenceExpression\",SpreadElement:\"SpreadElement\",Super:\"Super\",SwitchCase:\"SwitchCase\",SwitchStatement:\"SwitchStatement\",TaggedTemplateExpression:\"TaggedTemplateExpression\",TemplateElement:\"TemplateElement\",TemplateLiteral:\"TemplateLiteral\",ThisExpression:\"ThisExpression\",ThrowStatement:\"ThrowStatement\",TryStatement:\"TryStatement\",UnaryExpression:\"UnaryExpression\",UpdateExpression:\"UpdateExpression\",VariableDeclaration:\"VariableDeclaration\",VariableDeclarator:\"VariableDeclarator\",WhileStatement:\"WhileStatement\",WithStatement:\"WithStatement\",YieldExpression:\"YieldExpression\"}},function(e,t,r){\"use strict\";var n,i=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(4),a=r(5),s=r(6),u=r(7),l=r(8),c=r(13),h=r(14);function p(e){var t;switch(e.type){case s.JSXSyntax.JSXIdentifier:t=e.name;break;case s.JSXSyntax.JSXNamespacedName:var r=e;t=p(r.namespace)+\":\"+p(r.name);break;case s.JSXSyntax.JSXMemberExpression:var n=e;t=p(n.object)+\".\"+p(n.property)}return t}c.TokenName[100]=\"JSXIdentifier\",c.TokenName[101]=\"JSXText\";var f=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return i(t,e),t.prototype.parsePrimaryExpression=function(){return this.match(\"<\")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX(\"}\"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t=\"&\",r=!0,n=!1,i=!1,a=!1;!this.scanner.eof()&&r&&!n;){var s=this.scanner.source[this.scanner.index];if(s===e)break;if(n=\";\"===s,t+=s,++this.scanner.index,!n)switch(t.length){case 2:i=\"#\"===s;break;case 3:i&&(r=(a=\"x\"===s)||o.Character.isDecimalDigit(s.charCodeAt(0)),i=i&&!a);break;default:r=(r=r&&!(i&&!o.Character.isDecimalDigit(s.charCodeAt(0))))&&!(a&&!o.Character.isHexDigit(s.charCodeAt(0)))}}if(r&&n&&t.length>2){var u=t.substr(1,t.length-2);i&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):a&&u.length>2?t=String.fromCharCode(parseInt(\"0\"+u.substr(1),16)):i||a||!h.XHTMLEntities[u]||(t=h.XHTMLEntities[u])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:s=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,r=this.scanner.source[this.scanner.index++],n=\"\";!this.scanner.eof()&&(u=this.scanner.source[this.scanner.index++])!==r;)n+=\"&\"===u?this.scanXHTMLEntity(r):u;return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var i=this.scanner.source.charCodeAt(this.scanner.index+1),a=this.scanner.source.charCodeAt(this.scanner.index+2),s=46===i&&46===a?\"...\":\".\";return t=this.scanner.index,this.scanner.index+=s.length,{type:7,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:\"\",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var u=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(u)&&92!==u)++this.scanner.index;else{if(45!==u)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t=\"\";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if(\"{\"===r||\"<\"===r)break;++this.scanner.index,t+=r,o.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,\"\\r\"===r&&\"\\n\"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new a.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(\":\")){var r=t;this.expectJSX(\":\");var n=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(r,n))}else if(this.matchJSX(\".\"))for(;this.matchJSX(\".\");){var i=t;this.expectJSX(\".\");var o=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(\":\")){var n=r;this.expectJSX(\":\");var i=this.parseJSXIdentifier();e=this.finalize(t,new a.JSXNamespacedName(n,i))}else e=r;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var r=this.getTokenRaw(t);return this.finalize(e,new u.Literal(t.value,r))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX(\"{\"),this.finishJSX(),this.match(\"}\")&&this.tolerateError(\"JSX attributes must only be assigned a non-empty expression\");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX(\"{\")?this.parseJSXExpressionAttribute():this.matchJSX(\"<\")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),r=null;return this.matchJSX(\"=\")&&(this.expectJSX(\"=\"),r=this.parseJSXAttributeValue()),this.finalize(e,new a.JSXAttribute(t,r))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX(\"{\"),this.expectJSX(\"...\"),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX(\"/\")&&!this.matchJSX(\">\");){var t=this.matchJSX(\"{\")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX(\"<\");var t=this.parseJSXElementName(),r=this.parseJSXAttributes(),n=this.matchJSX(\"/\");return n&&this.expectJSX(\"/\"),this.expectJSX(\">\"),this.finalize(e,new a.JSXOpeningElement(t,n,r))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX(\"<\"),this.matchJSX(\"/\")){this.expectJSX(\"/\");var t=this.parseJSXElementName();return this.expectJSX(\">\"),this.finalize(e,new a.JSXClosingElement(t))}var r=this.parseJSXElementName(),n=this.parseJSXAttributes(),i=this.matchJSX(\"/\");return i&&this.expectJSX(\"/\"),this.expectJSX(\">\"),this.finalize(e,new a.JSXOpeningElement(r,i,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new a.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX(\"{\"),this.matchJSX(\"}\")?(e=this.parseJSXEmptyExpression(),this.expectJSX(\"}\")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new a.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),r=this.nextJSXText();if(r.start<r.end){var n=this.getTokenRaw(r),i=this.finalize(t,new a.JSXText(r.value,n));e.push(i)}if(\"{\"!==this.scanner.source[this.scanner.index])break;var o=this.parseJSXExpressionContainer();e.push(o)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var r=this.createJSXChildNode(),n=this.parseJSXBoundaryElement();if(n.type===s.JSXSyntax.JSXOpeningElement){var i=n;if(i.selfClosing){var o=this.finalize(r,new a.JSXElement(i,[],null));e.children.push(o)}else t.push(e),e={node:r,opening:i,closing:null,children:[]}}if(n.type===s.JSXSyntax.JSXClosingElement){e.closing=n;var u=p(e.opening.name);if(u!==p(e.closing.name)&&this.tolerateError(\"Expected corresponding JSX closing tag for %0\",u),!(t.length>0))break;o=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),r=[],n=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:r});r=i.children,n=i.closing}return this.finalize(e,new a.JSXElement(t,r,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match(\"<\")},t}(l.Parser);t.JSXParser=f},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r={NonAsciiIdentifierStart:/[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,NonAsciiIdentifierPart:/[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(6),i=function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=i;var o=function(e,t,r){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=r};t.JSXElement=o;var a=function(){this.type=n.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=a;var s=function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=s;var u=function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=u;var l=function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=l;var c=function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=c;var h=function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=h;var p=function(e,t,r){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=r};t.JSXOpeningElement=p;var f=function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=f;var d=function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=d},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.JSXSyntax={JSXAttribute:\"JSXAttribute\",JSXClosingElement:\"JSXClosingElement\",JSXElement:\"JSXElement\",JSXEmptyExpression:\"JSXEmptyExpression\",JSXExpressionContainer:\"JSXExpressionContainer\",JSXIdentifier:\"JSXIdentifier\",JSXMemberExpression:\"JSXMemberExpression\",JSXNamespacedName:\"JSXNamespacedName\",JSXOpeningElement:\"JSXOpeningElement\",JSXSpreadAttribute:\"JSXSpreadAttribute\",JSXText:\"JSXText\"}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),i=function(e){this.type=n.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=i;var o=function(e){this.type=n.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var a=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!1};t.ArrowFunctionExpression=a;var s=function(e,t,r){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=r};t.AssignmentExpression=s;var u=function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=u;var l=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!0};t.AsyncArrowFunctionExpression=l;var c=function(e,t,r){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=c;var h=function(e,t,r){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=h;var p=function(e){this.type=n.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=p;var f=function(e,t,r){var i=\"||\"===e||\"&&\"===e;this.type=i?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=r};t.BinaryExpression=f;var d=function(e){this.type=n.Syntax.BlockStatement,this.body=e};t.BlockStatement=d;var m=function(e){this.type=n.Syntax.BreakStatement,this.label=e};t.BreakStatement=m;var y=function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=y;var v=function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=v;var _=function(e){this.type=n.Syntax.ClassBody,this.body=e};t.ClassBody=_;var g=function(e,t,r){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=r};t.ClassDeclaration=g;var b=function(e,t,r){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=r};t.ClassExpression=b;var x=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=x;var w=function(e,t,r){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r};t.ConditionalExpression=w;var E=function(e){this.type=n.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=E;var D=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=D;var S=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=S;var C=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=C;var A=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=A;var N=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=N;var T=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=T;var O=function(e,t,r){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=r};t.ExportNamedDeclaration=O;var F=function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=F;var k=function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=k;var P=function(e,t,r){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=r,this.each=!1};t.ForInStatement=P;var I=function(e,t,r){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=r};t.ForOfStatement=I;var L=function(e,t,r,i){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=r,this.body=i};t.ForStatement=L;var M=function(e,t,r,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionDeclaration=M;var B=function(e,t,r,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionExpression=B;var j=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=j;var R=function(e,t,r){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=r};t.IfStatement=R;var z=function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=z;var U=function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=U;var G=function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=G;var X=function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=X;var q=function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=q;var W=function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t};t.Literal=W;var H=function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=H;var J=function(e,t,r,i,o){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=r,this.kind=i,this.static=o};t.MethodDefinition=J;var Y=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType=\"module\"};t.Module=Y;var V=function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=V;var K=function(e){this.type=n.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=K;var $=function(e){this.type=n.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=$;var Q=function(e,t,r,i,o,a){this.type=n.Syntax.Property,this.key=t,this.computed=r,this.value=i,this.kind=e,this.method=o,this.shorthand=a};t.Property=Q;var Z=function(e,t,r,i){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:r,flags:i}};t.RegexLiteral=Z;var ee=function(e){this.type=n.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=n.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var re=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType=\"script\"};t.Script=re;var ne=function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ne;var ie=function(e){this.type=n.Syntax.SpreadElement,this.argument=e};t.SpreadElement=ie;var oe=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var ae=function(){this.type=n.Syntax.Super};t.Super=ae;var se=function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=se;var ue=function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ue;var le=function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=le;var ce=function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ce;var he=function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=he;var pe=function(){this.type=n.Syntax.ThisExpression};t.ThisExpression=pe;var fe=function(e){this.type=n.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=fe;var de=function(e,t,r){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=r};t.TryStatement=de;var me=function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=me;var ye=function(e,t,r){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=r};t.UpdateExpression=ye;var ve=function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=ve;var _e=function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=_e;var ge=function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=ge;var be=function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=be;var xe=function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=xe},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(9),i=r(10),o=r(11),a=r(7),s=r(12),u=r(2),l=r(13),c=function(){function e(e,t,r){void 0===t&&(t={}),this.config={range:\"boolean\"==typeof t.range&&t.range,loc:\"boolean\"==typeof t.loc&&t.loc,source:null,tokens:\"boolean\"==typeof t.tokens&&t.tokens,comment:\"boolean\"==typeof t.comment&&t.comment,tolerant:\"boolean\"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=r,this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new s.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={\")\":0,\";\":0,\",\":0,\"=\":0,\"]\":0,\"||\":1,\"&&\":2,\"|\":3,\"^\":4,\"&\":5,\"==\":6,\"!=\":6,\"===\":6,\"!==\":6,\"<\":7,\">\":7,\"<=\":7,\">=\":7,\"<<\":8,\">>\":8,\">>>\":8,\"+\":9,\"-\":9,\"*\":11,\"/\":11,\"%\":11},this.lookahead={type:2,value:\"\",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\\d)/g,(function(e,t){return n.assert(t<i.length,\"Message reference must be in range\"),i[t]})),a=this.lastMarker.index,s=this.lastMarker.line,u=this.lastMarker.column+1;throw this.errorHandler.createError(a,s,u,o)},e.prototype.tolerateError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\\d)/g,(function(e,t){return n.assert(t<i.length,\"Message reference must be in range\"),i[t]})),a=this.lastMarker.index,s=this.scanner.lineNumber,u=this.lastMarker.column+1;this.errorHandler.tolerateError(a,s,u,o)},e.prototype.unexpectedTokenError=function(e,t){var r,n=t||o.Messages.UnexpectedToken;if(e?(t||(n=2===e.type?o.Messages.UnexpectedEOS:3===e.type?o.Messages.UnexpectedIdentifier:6===e.type?o.Messages.UnexpectedNumber:8===e.type?o.Messages.UnexpectedString:10===e.type?o.Messages.UnexpectedTemplate:o.Messages.UnexpectedToken,4===e.type&&(this.scanner.isFutureReservedWord(e.value)?n=o.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(n=o.Messages.StrictReservedWord))),r=e.value):r=\"ILLEGAL\",n=n.replace(\"%0\",r),e&&\"number\"==typeof e.lineNumber){var i=e.start,a=e.lineNumber,s=this.lastMarker.index-this.lastMarker.column,u=e.start-s+1;return this.errorHandler.createError(i,a,u,n)}return i=this.lastMarker.index,a=this.lastMarker.line,u=this.lastMarker.column+1,this.errorHandler.createError(i,a,u,n)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var r=e[t],n=void 0;n={type:r.multiLine?\"BlockComment\":\"LineComment\",value:this.scanner.source.slice(r.slice[0],r.slice[1])},this.config.range&&(n.range=r.range),this.config.loc&&(n.loc=r.loc);var i={start:{line:r.loc.start.line,column:r.loc.start.column,offset:r.range[0]},end:{line:r.loc.end.line,column:r.loc.end.column,offset:r.range[1]}};this.delegate(n,i)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t={type:l.TokenName[e.type],value:this.getTokenRaw(e)};if(this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),9===e.type){var r=e.pattern,n=e.flags;t.regex={pattern:r,flags:n}}return t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.collectComments(),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart);var t=this.scanner.lex();return this.hasLineTerminator=e.lineNumber!==t.lineNumber,t&&this.context.strict&&3===t.type&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=4),this.lookahead=t,this.config.tokens&&2!==t.type&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}},e.prototype.startNode=function(e,t){void 0===t&&(t=0);var r=e.start-e.lineStart,n=e.lineNumber;return r<0&&(r+=t,n--),{index:e.start,line:n,column:r}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.line,column:this.lastMarker.column}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var r={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.line,column:this.lastMarker.column,offset:this.lastMarker.index}};this.delegate(t,r)}return t},e.prototype.expect=function(e){var t=this.nextToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;7===e.type&&\",\"===e.value?this.nextToken():7===e.type&&\";\"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,o.Messages.UnexpectedToken)}else this.expect(\",\")},e.prototype.expectKeyword=function(e){var t=this.nextToken();4===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return 7===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return 4===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return 3===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(7!==this.lookahead.type)return!1;var e=this.lookahead.value;return\"=\"===e||\"*=\"===e||\"**=\"===e||\"/=\"===e||\"%=\"===e||\"+=\"===e||\"-=\"===e||\"<<=\"===e||\">>=\"===e||\">>>=\"===e||\"&=\"===e||\"^=\"===e||\"|=\"===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=n,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(\";\")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match(\"}\")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,r,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&\"await\"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new a.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(t.value,r));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(\"true\"===t.value,r));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(null,r));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case\"(\":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case\"[\":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case\"{\":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case\"/\":case\"/=\":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),r=this.getTokenRaw(t),e=this.finalize(n,new a.RegexLiteral(t.regex,r,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword(\"yield\")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword(\"let\")?e=this.finalize(n,new a.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword(\"function\")?e=this.parseFunctionExpression():this.matchKeyword(\"this\")?(this.nextToken(),e=this.finalize(n,new a.ThisExpression)):e=this.matchKeyword(\"class\")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect(\"...\");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new a.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect(\"[\");!this.match(\"]\");)if(this.match(\",\"))this.nextToken(),t.push(null);else if(this.match(\"...\")){var r=this.parseSpreadElement();this.match(\"]\")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(\",\")),t.push(r)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match(\"]\")||this.expect(\",\");return this.expect(\"]\"),this.finalize(e,new a.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,r=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=r,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters(),n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,n,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,r=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.context.await=r,this.finalize(e,new a.AsyncFunctionExpression(null,n.params,i))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),r=this.nextToken();switch(r.type){case 8:case 6:this.context.strict&&r.octal&&this.tolerateUnexpectedToken(r,o.Messages.StrictOctalLiteral);var n=this.getTokenRaw(r);e=this.finalize(t,new a.Literal(r.value,n));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new a.Identifier(r.value));break;case 7:\"[\"===r.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect(\"]\")):e=this.throwUnexpectedToken(r);break;default:e=this.throwUnexpectedToken(r)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===u.Syntax.Identifier&&e.name===t||e.type===u.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,r=this.createNode(),n=this.lookahead,i=null,s=null,u=!1,l=!1,c=!1,h=!1;if(3===n.type){var p=n.value;this.nextToken(),u=this.match(\"[\"),i=(h=!(this.hasLineTerminator||\"async\"!==p||this.match(\":\")||this.match(\"(\")||this.match(\"*\")||this.match(\",\")))?this.parseObjectPropertyKey():this.finalize(r,new a.Identifier(p))}else this.match(\"*\")?this.nextToken():(u=this.match(\"[\"),i=this.parseObjectPropertyKey());var f=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!h&&\"get\"===n.value&&f)t=\"get\",u=this.match(\"[\"),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod();else if(3===n.type&&!h&&\"set\"===n.value&&f)t=\"set\",u=this.match(\"[\"),i=this.parseObjectPropertyKey(),s=this.parseSetterMethod();else if(7===n.type&&\"*\"===n.value&&f)t=\"init\",u=this.match(\"[\"),i=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0;else if(i||this.throwUnexpectedToken(this.lookahead),t=\"init\",this.match(\":\")&&!h)!u&&this.isPropertyKey(i,\"__proto__\")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),s=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match(\"(\"))s=h?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0;else if(3===n.type)if(p=this.finalize(r,new a.Identifier(n.value)),this.match(\"=\")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),c=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(r,new a.AssignmentPattern(p,d))}else c=!0,s=p;else this.throwUnexpectedToken(this.nextToken());return this.finalize(r,new a.Property(t,i,u,s,l,c))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect(\"{\");for(var t=[],r={value:!1};!this.match(\"}\");)t.push(this.parseObjectProperty(r)),this.match(\"}\")||this.expectCommaSeparator();return this.expect(\"}\"),this.finalize(e,new a.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,\"Template literal must start with a template head\");var e=this.createNode(),t=this.nextToken(),r=t.value,i=t.cooked;return this.finalize(e,new a.TemplateElement({raw:r,cooked:i},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),r=t.value,n=t.cooked;return this.finalize(e,new a.TemplateElement({raw:r,cooked:n},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],r=[],n=this.parseTemplateHead();for(r.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),r.push(n);return this.finalize(e,new a.TemplateLiteral(r,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:e.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case u.Syntax.ArrayExpression:e.type=u.Syntax.ArrayPattern;for(var t=0;t<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case u.Syntax.ObjectExpression:for(e.type=u.Syntax.ObjectPattern,t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case u.Syntax.AssignmentExpression:e.type=u.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect(\"(\"),this.match(\")\"))this.nextToken(),this.match(\"=>\")||this.expect(\"=>\"),e={type:\"ArrowParameterPlaceHolder\",params:[],async:!1};else{var t=this.lookahead,r=[];if(this.match(\"...\"))e=this.parseRestElement(r),this.expect(\")\"),this.match(\"=>\")||this.expect(\"=>\"),e={type:\"ArrowParameterPlaceHolder\",params:[e],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(\",\")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);2!==this.lookahead.type&&this.match(\",\");){if(this.nextToken(),this.match(\")\")){this.nextToken();for(var o=0;o<i.length;o++)this.reinterpretExpressionAsPattern(i[o]);n=!0,e={type:\"ArrowParameterPlaceHolder\",params:i,async:!1}}else if(this.match(\"...\")){for(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),i.push(this.parseRestElement(r)),this.expect(\")\"),this.match(\"=>\")||this.expect(\"=>\"),this.context.isBindingElement=!1,o=0;o<i.length;o++)this.reinterpretExpressionAsPattern(i[o]);n=!0,e={type:\"ArrowParameterPlaceHolder\",params:i,async:!1}}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(n)break}n||(e=this.finalize(this.startNode(t),new a.SequenceExpression(i)))}if(!n){if(this.expect(\")\"),this.match(\"=>\")&&(e.type===u.Syntax.Identifier&&\"yield\"===e.name&&(n=!0,e={type:\"ArrowParameterPlaceHolder\",params:[e],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===u.Syntax.SequenceExpression)for(o=0;o<e.expressions.length;o++)this.reinterpretExpressionAsPattern(e.expressions[o]);else this.reinterpretExpressionAsPattern(e);e={type:\"ArrowParameterPlaceHolder\",params:e.type===u.Syntax.SequenceExpression?e.expressions:[e],async:!1}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect(\"(\");var e=[];if(!this.match(\")\"))for(;;){var t=this.match(\"...\")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(\")\"))break;if(this.expectCommaSeparator(),this.match(\")\"))break}return this.expect(\")\"),e},e.prototype.isIdentifierName=function(e){return 3===e.type||4===e.type||1===e.type||5===e.type},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new a.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e,t=this.createNode(),r=this.parseIdentifierName();if(n.assert(\"new\"===r.name,\"New expression must start with `new`\"),this.match(\".\"))if(this.nextToken(),3===this.lookahead.type&&this.context.inFunctionBody&&\"target\"===this.lookahead.value){var i=this.parseIdentifierName();e=new a.MetaProperty(r,i)}else this.throwUnexpectedToken(this.lookahead);else{var o=this.isolateCoverGrammar(this.parseLeftHandSideExpression),s=this.match(\"(\")?this.parseArguments():[];e=new a.NewExpression(o,s),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(t,e)},e.prototype.parseAsyncArgument=function(){var e=this.parseAssignmentExpression();return this.context.firstCoverInitializedNameError=null,e},e.prototype.parseAsyncArguments=function(){this.expect(\"(\");var e=[];if(!this.match(\")\"))for(;;){var t=this.match(\"...\")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAsyncArgument);if(e.push(t),this.match(\")\"))break;if(this.expectCommaSeparator(),this.match(\")\"))break}return this.expect(\")\"),e},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e,t=this.lookahead,r=this.matchContextualKeyword(\"async\"),n=this.context.allowIn;for(this.context.allowIn=!0,this.matchKeyword(\"super\")&&this.context.inFunctionBody?(e=this.createNode(),this.nextToken(),e=this.finalize(e,new a.Super),this.match(\"(\")||this.match(\".\")||this.match(\"[\")||this.throwUnexpectedToken(this.lookahead)):e=this.inheritCoverGrammar(this.matchKeyword(\"new\")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(\".\")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(\".\");var i=this.parseIdentifierName();e=this.finalize(this.startNode(t),new a.StaticMemberExpression(e,i))}else if(this.match(\"(\")){var o=r&&t.lineNumber===this.lookahead.lineNumber;this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var s=o?this.parseAsyncArguments():this.parseArguments();if(e=this.finalize(this.startNode(t),new a.CallExpression(e,s)),o&&this.match(\"=>\")){for(var u=0;u<s.length;++u)this.reinterpretExpressionAsPattern(s[u]);e={type:\"ArrowParameterPlaceHolder\",params:s,async:!0}}}else if(this.match(\"[\"))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(\"[\"),i=this.isolateCoverGrammar(this.parseExpression),this.expect(\"]\"),e=this.finalize(this.startNode(t),new a.ComputedMemberExpression(e,i));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var l=this.parseTemplateLiteral();e=this.finalize(this.startNode(t),new a.TaggedTemplateExpression(e,l))}return this.context.allowIn=n,e},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword(\"super\"),this.match(\"[\")||this.match(\".\")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new a.Super)},e.prototype.parseLeftHandSideExpression=function(){n.assert(this.context.allowIn,\"callee of new expression always allow in keyword.\");for(var e=this.startNode(this.lookahead),t=this.matchKeyword(\"super\")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword(\"new\")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(\"[\")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(\"[\");var r=this.isolateCoverGrammar(this.parseExpression);this.expect(\"]\"),t=this.finalize(e,new a.ComputedMemberExpression(t,r))}else if(this.match(\".\"))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(\".\"),r=this.parseIdentifierName(),t=this.finalize(e,new a.StaticMemberExpression(t,r));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var i=this.parseTemplateLiteral();t=this.finalize(e,new a.TaggedTemplateExpression(t,i))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match(\"++\")||this.match(\"--\")){var r=this.startNode(t),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment);var i=!0;e=this.finalize(r,new a.UpdateExpression(n.value,e,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&7===this.lookahead.type&&(this.match(\"++\")||this.match(\"--\"))){this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var s=this.nextToken().value;i=!1,e=this.finalize(this.startNode(t),new a.UpdateExpression(s,e,i))}return e},e.prototype.parseAwaitExpression=function(){var e=this.createNode();this.nextToken();var t=this.parseUnaryExpression();return this.finalize(e,new a.AwaitExpression(t))},e.prototype.parseUnaryExpression=function(){var e;if(this.match(\"+\")||this.match(\"-\")||this.match(\"~\")||this.match(\"!\")||this.matchKeyword(\"delete\")||this.matchKeyword(\"void\")||this.matchKeyword(\"typeof\")){var t=this.startNode(this.lookahead),r=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new a.UnaryExpression(r.value,e)),this.context.strict&&\"delete\"===e.operator&&e.argument.type===u.Syntax.Identifier&&this.tolerateError(o.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.context.await&&this.matchContextualKeyword(\"await\")?this.parseAwaitExpression():this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==u.Syntax.UnaryExpression&&this.match(\"**\")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=t,n=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new a.BinaryExpression(\"**\",r,n))}return t},e.prototype.binaryPrecedence=function(e){var t=e.value;return 7===e.type?this.operatorPrecedence[t]||0:4===e.type&&(\"instanceof\"===t||this.context.allowIn&&\"in\"===t)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),r=this.lookahead,n=this.binaryPrecedence(r);if(n>0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),u=[o,r.value,s],l=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;u.length>2&&n<=l[l.length-1];){s=u.pop();var c=u.pop();l.pop(),o=u.pop(),i.pop();var h=this.startNode(i[i.length-1]);u.push(this.finalize(h,new a.BinaryExpression(c,o,s)))}u.push(this.nextToken().value),l.push(n),i.push(this.lookahead),u.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=u.length-1;t=u[p];for(var f=i.pop();p>1;){var d=i.pop(),m=f&&f.lineStart;h=this.startNode(d,m),c=u[p-1],t=this.finalize(h,new a.BinaryExpression(c,u[p-2],t)),p-=2,f=d}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match(\"?\")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(\":\");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new a.ConditionalExpression(t,n,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case u.Syntax.Identifier:this.validateParam(e,t,t.name);break;case u.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case u.Syntax.ArrayPattern:for(var r=0;r<t.elements.length;r++)null!==t.elements[r]&&this.checkPatternParam(e,t.elements[r]);break;case u.Syntax.ObjectPattern:for(r=0;r<t.properties.length;r++)this.checkPatternParam(e,t.properties[r].value)}e.simple=e.simple&&t instanceof a.Identifier},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,r=[e],n=!1;switch(e.type){case u.Syntax.Identifier:break;case\"ArrowParameterPlaceHolder\":r=e.params,n=e.async;break;default:return null}t={simple:!0,paramSet:{}};for(var i=0;i<r.length;++i)(a=r[i]).type===u.Syntax.AssignmentPattern?a.right.type===u.Syntax.YieldExpression&&(a.right.argument&&this.throwUnexpectedToken(this.lookahead),a.right.type=u.Syntax.Identifier,a.right.name=\"yield\",delete a.right.argument,delete a.right.delegate):n&&a.type===u.Syntax.Identifier&&\"await\"===a.name&&this.throwUnexpectedToken(this.lookahead),this.checkPatternParam(t,a),r[i]=a;if(this.context.strict||!this.context.allowYield)for(i=0;i<r.length;++i){var a;(a=r[i]).type===u.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===o.Messages.StrictParamDupe){var s=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(s,t.message)}return{simple:t.simple,params:r,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword(\"yield\"))e=this.parseYieldExpression();else{var t=this.lookahead,r=t;if(e=this.parseConditionalExpression(),3===r.type&&r.lineNumber===this.lookahead.lineNumber&&\"async\"===r.value&&(3===this.lookahead.type||this.matchKeyword(\"yield\"))){var n=this.parsePrimaryExpression();this.reinterpretExpressionAsPattern(n),e={type:\"ArrowParameterPlaceHolder\",params:[n],async:!0}}if(\"ArrowParameterPlaceHolder\"===e.type||this.match(\"=>\")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=e.async,s=this.reinterpretAsCoverFormalsList(e);if(s){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var l=this.context.strict,c=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var h=this.context.allowYield,p=this.context.await;this.context.allowYield=!0,this.context.await=i;var f=this.startNode(t);this.expect(\"=>\");var d=void 0;if(this.match(\"{\")){var m=this.context.allowIn;this.context.allowIn=!0,d=this.parseFunctionSourceElements(),this.context.allowIn=m}else d=this.isolateCoverGrammar(this.parseAssignmentExpression);var y=d.type!==u.Syntax.BlockStatement;this.context.strict&&s.firstRestricted&&this.throwUnexpectedToken(s.firstRestricted,s.message),this.context.strict&&s.stricted&&this.tolerateUnexpectedToken(s.stricted,s.message),e=i?this.finalize(f,new a.AsyncArrowFunctionExpression(s.params,d,y)):this.finalize(f,new a.ArrowFunctionExpression(s.params,d,y)),this.context.strict=l,this.context.allowStrictDirective=c,this.context.allowYield=h,this.context.await=p}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===u.Syntax.Identifier){var v=e;this.scanner.isRestrictedWord(v.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(v.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord)}this.match(\"=\")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var _=(r=this.nextToken()).value,g=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new a.AssignmentExpression(_,e,g)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(\",\")){var r=[];for(r.push(t);2!==this.lookahead.type&&this.match(\",\");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new a.SequenceExpression(r))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case\"export\":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case\"import\":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case\"const\":e=this.parseLexicalDeclaration({inFor:!1});break;case\"function\":e=this.parseFunctionDeclaration();break;case\"class\":e=this.parseClassDeclaration();break;case\"let\":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect(\"{\");for(var t=[];!this.match(\"}\");)t.push(this.parseStatementListItem());return this.expect(\"}\"),this.finalize(e,new a.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var r=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var i=null;return\"const\"===e?this.matchKeyword(\"in\")||this.matchContextualKeyword(\"of\")||(this.match(\"=\")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,\"const\")):(!t.inFor&&n.type!==u.Syntax.Identifier||this.match(\"=\"))&&(this.expect(\"=\"),i=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new a.VariableDeclarator(n,i))},e.prototype.parseBindingList=function(e,t){for(var r=[this.parseLexicalBinding(e,t)];this.match(\",\");)this.nextToken(),r.push(this.parseLexicalBinding(e,t));return r},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&\"[\"===t.value||7===t.type&&\"{\"===t.value||4===t.type&&\"let\"===t.value||4===t.type&&\"yield\"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),r=this.nextToken().value;n.assert(\"let\"===r||\"const\"===r,\"Lexical declaration must be either let or const\");var i=this.parseBindingList(r,e);return this.consumeSemicolon(),this.finalize(t,new a.VariableDeclaration(i,r))},e.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect(\"...\");var n=this.parsePattern(e,t);return this.finalize(r,new a.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect(\"[\");for(var n=[];!this.match(\"]\");)if(this.match(\",\"))this.nextToken(),n.push(null);else{if(this.match(\"...\")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match(\"]\")||this.expect(\",\")}return this.expect(\"]\"),this.finalize(r,new a.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var r,n,i=this.createNode(),o=!1,s=!1;if(3===this.lookahead.type){var u=this.lookahead;r=this.parseVariableIdentifier();var l=this.finalize(i,new a.Identifier(u.value));if(this.match(\"=\")){e.push(u),s=!0,this.nextToken();var c=this.parseAssignmentExpression();n=this.finalize(this.startNode(u),new a.AssignmentPattern(l,c))}else this.match(\":\")?(this.expect(\":\"),n=this.parsePatternWithDefault(e,t)):(e.push(u),s=!0,n=l)}else o=this.match(\"[\"),r=this.parseObjectPropertyKey(),this.expect(\":\"),n=this.parsePatternWithDefault(e,t);return this.finalize(i,new a.Property(\"init\",r,o,n,!1,s))},e.prototype.parseObjectPattern=function(e,t){var r=this.createNode(),n=[];for(this.expect(\"{\");!this.match(\"}\");)n.push(this.parsePropertyPattern(e,t)),this.match(\"}\")||this.expect(\",\");return this.expect(\"}\"),this.finalize(r,new a.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var r;return this.match(\"[\")?r=this.parseArrayPattern(e,t):this.match(\"{\")?r=this.parseObjectPattern(e,t):(!this.matchKeyword(\"let\")||\"const\"!==t&&\"let\"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),r=this.parseVariableIdentifier(t)),r},e.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead,n=this.parsePattern(e,t);if(this.match(\"=\")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,n=this.finalize(this.startNode(r),new a.AssignmentPattern(n,o))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),r=this.nextToken();return 4===r.type&&\"yield\"===r.value?this.context.strict?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(r):3!==r.type?this.context.strict&&4===r.type&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):(this.context.strict||\"let\"!==r.value||\"var\"!==e)&&this.throwUnexpectedToken(r):(this.context.isModule||this.context.await)&&3===r.type&&\"await\"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(t,new a.Identifier(r.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),r=this.parsePattern([],\"var\");this.context.strict&&r.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return this.match(\"=\")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===u.Syntax.Identifier||e.inFor||this.expect(\"=\"),this.finalize(t,new a.VariableDeclarator(r,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},r=[];for(r.push(this.parseVariableDeclaration(t));this.match(\",\");)this.nextToken(),r.push(this.parseVariableDeclaration(t));return r},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword(\"var\");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new a.VariableDeclaration(t,\"var\"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(\";\"),this.finalize(e,new a.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword(\"function\")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),r=null;this.expectKeyword(\"if\"),this.expect(\"(\");var n=this.parseExpression();return!this.match(\")\")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(\")\"),e=this.parseIfClause(),this.matchKeyword(\"else\")&&(this.nextToken(),r=this.parseIfClause())),this.finalize(t,new a.IfStatement(n,e,r))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword(\"do\");var t=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=t,this.expectKeyword(\"while\"),this.expect(\"(\");var n=this.parseExpression();return!this.match(\")\")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(\")\"),this.match(\";\")&&this.nextToken()),this.finalize(e,new a.DoWhileStatement(r,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword(\"while\"),this.expect(\"(\");var r=this.parseExpression();if(!this.match(\")\")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(\")\");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new a.WhileStatement(r,e))},e.prototype.parseForStatement=function(){var e,t,r,n=null,i=null,s=null,l=!0,c=this.createNode();if(this.expectKeyword(\"for\"),this.expect(\"(\"),this.match(\";\"))this.nextToken();else if(this.matchKeyword(\"var\")){n=this.createNode(),this.nextToken();var h=this.context.allowIn;this.context.allowIn=!1;var p=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=h,1===p.length&&this.matchKeyword(\"in\")){var f=p[0];f.init&&(f.id.type===u.Syntax.ArrayPattern||f.id.type===u.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,\"for-in\"),n=this.finalize(n,new a.VariableDeclaration(p,\"var\")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===p.length&&null===p[0].init&&this.matchContextualKeyword(\"of\")?(n=this.finalize(n,new a.VariableDeclaration(p,\"var\")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(n=this.finalize(n,new a.VariableDeclaration(p,\"var\")),this.expect(\";\"))}else if(this.matchKeyword(\"const\")||this.matchKeyword(\"let\")){n=this.createNode();var d=this.nextToken().value;this.context.strict||\"in\"!==this.lookahead.value?(h=this.context.allowIn,this.context.allowIn=!1,p=this.parseBindingList(d,{inFor:!0}),this.context.allowIn=h,1===p.length&&null===p[0].init&&this.matchKeyword(\"in\")?(n=this.finalize(n,new a.VariableDeclaration(p,d)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===p.length&&null===p[0].init&&this.matchContextualKeyword(\"of\")?(n=this.finalize(n,new a.VariableDeclaration(p,d)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(this.consumeSemicolon(),n=this.finalize(n,new a.VariableDeclaration(p,d)))):(n=this.finalize(n,new a.Identifier(d)),this.nextToken(),e=n,t=this.parseExpression(),n=null)}else{var m=this.lookahead;if(h=this.context.allowIn,this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=h,this.matchKeyword(\"in\"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword(\"of\"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,l=!1;else{if(this.match(\",\")){for(var y=[n];this.match(\",\");)this.nextToken(),y.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(m),new a.SequenceExpression(y))}this.expect(\";\")}}if(void 0===e&&(this.match(\";\")||(i=this.parseExpression()),this.expect(\";\"),this.match(\")\")||(s=this.parseExpression())),!this.match(\")\")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),r=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(\")\");var v=this.context.inIteration;this.context.inIteration=!0,r=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=v}return void 0===e?this.finalize(c,new a.ForStatement(n,i,s,r)):l?this.finalize(c,new a.ForInStatement(e,t,r)):this.finalize(c,new a.ForOfStatement(e,t,r))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword(\"continue\");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();t=r;var n=\"$\"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new a.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword(\"break\");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier(),n=\"$\"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name),t=r}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new a.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword(\"return\");var t=(this.match(\";\")||this.match(\"}\")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword(\"with\"),this.expect(\"(\");var r=this.parseExpression();return!this.match(\")\")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(\")\"),e=this.parseStatement()),this.finalize(t,new a.WithStatement(r,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword(\"default\")?(this.nextToken(),e=null):(this.expectKeyword(\"case\"),e=this.parseExpression()),this.expect(\":\");for(var r=[];!(this.match(\"}\")||this.matchKeyword(\"default\")||this.matchKeyword(\"case\"));)r.push(this.parseStatementListItem());return this.finalize(t,new a.SwitchCase(e,r))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword(\"switch\"),this.expect(\"(\");var t=this.parseExpression();this.expect(\")\");var r=this.context.inSwitch;this.context.inSwitch=!0;var n=[],i=!1;for(this.expect(\"{\");!this.match(\"}\");){var s=this.parseSwitchCase();null===s.test&&(i&&this.throwError(o.Messages.MultipleDefaultsInSwitch),i=!0),n.push(s)}return this.expect(\"}\"),this.context.inSwitch=r,this.finalize(e,new a.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),r=this.parseExpression();if(r.type===u.Syntax.Identifier&&this.match(\":\")){this.nextToken();var n=r,i=\"$\"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)&&this.throwError(o.Messages.Redeclaration,\"Label\",n.name),this.context.labelSet[i]=!0;var s=void 0;if(this.matchKeyword(\"class\"))this.tolerateUnexpectedToken(this.lookahead),s=this.parseClassDeclaration();else if(this.matchKeyword(\"function\")){var l=this.lookahead,c=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(l,o.Messages.StrictFunction):c.generator&&this.tolerateUnexpectedToken(l,o.Messages.GeneratorInLegacyContext),s=c}else s=this.parseStatement();delete this.context.labelSet[i],e=new a.LabeledStatement(n,s)}else this.consumeSemicolon(),e=new a.ExpressionStatement(r);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword(\"throw\"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword(\"catch\"),this.expect(\"(\"),this.match(\")\")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],r=this.parsePattern(t),n={},i=0;i<t.length;i++){var s=\"$\"+t[i].value;Object.prototype.hasOwnProperty.call(n,s)&&this.tolerateError(o.Messages.DuplicateBinding,t[i].value),n[s]=!0}this.context.strict&&r.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictCatchVariable),this.expect(\")\");var l=this.parseBlock();return this.finalize(e,new a.CatchClause(r,l))},e.prototype.parseFinallyClause=function(){return this.expectKeyword(\"finally\"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword(\"try\");var t=this.parseBlock(),r=this.matchKeyword(\"catch\")?this.parseCatchClause():null,n=this.matchKeyword(\"finally\")?this.parseFinallyClause():null;return r||n||this.throwError(o.Messages.NoCatchOrFinally),this.finalize(e,new a.TryStatement(t,r,n))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword(\"debugger\"),this.consumeSemicolon(),this.finalize(e,new a.DebuggerStatement)},e.prototype.parseStatement=function(){var e;switch(this.lookahead.type){case 1:case 5:case 6:case 8:case 10:case 9:e=this.parseExpressionStatement();break;case 7:var t=this.lookahead.value;e=\"{\"===t?this.parseBlock():\"(\"===t?this.parseExpressionStatement():\";\"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case 3:e=this.matchAsyncFunction()?this.parseFunctionDeclaration():this.parseLabelledStatement();break;case 4:switch(this.lookahead.value){case\"break\":e=this.parseBreakStatement();break;case\"continue\":e=this.parseContinueStatement();break;case\"debugger\":e=this.parseDebuggerStatement();break;case\"do\":e=this.parseDoWhileStatement();break;case\"for\":e=this.parseForStatement();break;case\"function\":e=this.parseFunctionDeclaration();break;case\"if\":e=this.parseIfStatement();break;case\"return\":e=this.parseReturnStatement();break;case\"switch\":e=this.parseSwitchStatement();break;case\"throw\":e=this.parseThrowStatement();break;case\"try\":e=this.parseTryStatement();break;case\"var\":e=this.parseVariableStatement();break;case\"while\":e=this.parseWhileStatement();break;case\"with\":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:e=this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect(\"{\");var t=this.parseDirectivePrologues(),r=this.context.labelSet,n=this.context.inIteration,i=this.context.inSwitch,o=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;2!==this.lookahead.type&&!this.match(\"}\");)t.push(this.parseStatementListItem());return this.expect(\"}\"),this.context.labelSet=r,this.context.inIteration=n,this.context.inSwitch=i,this.context.inFunctionBody=o,this.finalize(e,new a.BlockStatement(t))},e.prototype.validateParam=function(e,t,r){var n=\"$\"+r;this.context.strict?(this.scanner.isRestrictedWord(r)&&(e.stricted=t,e.message=o.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(r)?(e.firstRestricted=t,e.message=o.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(r)?(e.firstRestricted=t,e.message=o.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)),\"function\"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,n,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[n]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect(\"...\");var r=this.parsePattern(e);return this.match(\"=\")&&this.throwError(o.Messages.DefaultRestParameter),this.match(\")\")||this.throwError(o.Messages.ParameterAfterRestParameter),this.finalize(t,new a.RestElement(r))},e.prototype.parseFormalParameter=function(e){for(var t=[],r=this.match(\"...\")?this.parseRestElement(t):this.parsePatternWithDefault(t),n=0;n<t.length;n++)this.validateParam(e,t[n],t[n].value);e.simple=e.simple&&r instanceof a.Identifier,e.params.push(r)},e.prototype.parseFormalParameters=function(e){var t;if(t={simple:!0,params:[],firstRestricted:e},this.expect(\"(\"),!this.match(\")\"))for(t.paramSet={};2!==this.lookahead.type&&(this.parseFormalParameter(t),!this.match(\")\"))&&(this.expect(\",\"),!this.match(\")\")););return this.expect(\")\"),{simple:t.simple,params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.matchAsyncFunction=function(){var e=this.matchContextualKeyword(\"async\");if(e){var t=this.scanner.saveState();this.scanner.scanComments();var r=this.scanner.lex();this.scanner.restoreState(t),e=t.lineNumber===r.lineNumber&&4===r.type&&\"function\"===r.value}return e},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode(),r=this.matchContextualKeyword(\"async\");r&&this.nextToken(),this.expectKeyword(\"function\");var n,i=!r&&this.match(\"*\");i&&this.nextToken();var s=null,u=null;if(!e||!this.match(\"(\")){var l=this.lookahead;s=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(l.value)&&this.tolerateUnexpectedToken(l,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(l.value)?(u=l,n=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(l.value)&&(u=l,n=o.Messages.StrictReservedWord)}var c=this.context.await,h=this.context.allowYield;this.context.await=r,this.context.allowYield=!i;var p=this.parseFormalParameters(u),f=p.params,d=p.stricted;u=p.firstRestricted,p.message&&(n=p.message);var m=this.context.strict,y=this.context.allowStrictDirective;this.context.allowStrictDirective=p.simple;var v=this.parseFunctionSourceElements();return this.context.strict&&u&&this.throwUnexpectedToken(u,n),this.context.strict&&d&&this.tolerateUnexpectedToken(d,n),this.context.strict=m,this.context.allowStrictDirective=y,this.context.await=c,this.context.allowYield=h,r?this.finalize(t,new a.AsyncFunctionDeclaration(s,f,v)):this.finalize(t,new a.FunctionDeclaration(s,f,v,i))},e.prototype.parseFunctionExpression=function(){var e=this.createNode(),t=this.matchContextualKeyword(\"async\");t&&this.nextToken(),this.expectKeyword(\"function\");var r,n=!t&&this.match(\"*\");n&&this.nextToken();var i,s=null,u=this.context.await,l=this.context.allowYield;if(this.context.await=t,this.context.allowYield=!n,!this.match(\"(\")){var c=this.lookahead;s=this.context.strict||n||!this.matchKeyword(\"yield\")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(c.value)&&this.tolerateUnexpectedToken(c,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(c.value)?(i=c,r=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(c.value)&&(i=c,r=o.Messages.StrictReservedWord)}var h=this.parseFormalParameters(i),p=h.params,f=h.stricted;i=h.firstRestricted,h.message&&(r=h.message);var d=this.context.strict,m=this.context.allowStrictDirective;this.context.allowStrictDirective=h.simple;var y=this.parseFunctionSourceElements();return this.context.strict&&i&&this.throwUnexpectedToken(i,r),this.context.strict&&f&&this.tolerateUnexpectedToken(f,r),this.context.strict=d,this.context.allowStrictDirective=m,this.context.await=u,this.context.allowYield=l,t?this.finalize(e,new a.AsyncFunctionExpression(s,p,y)):this.finalize(e,new a.FunctionExpression(s,p,y,n))},e.prototype.parseDirective=function(){var e=this.lookahead,t=this.createNode(),r=this.parseExpression(),n=r.type===u.Syntax.Literal?this.getTokenRaw(e).slice(1,-1):null;return this.consumeSemicolon(),this.finalize(t,n?new a.Directive(r,n):new a.ExpressionStatement(r))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var r=this.lookahead;if(8!==r.type)break;var n=this.parseDirective();t.push(n);var i=n.directive;if(\"string\"!=typeof i)break;\"use strict\"===i?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,o.Messages.StrictOctalLiteral),this.context.allowStrictDirective||this.tolerateUnexpectedToken(r,o.Messages.IllegalLanguageModeDirective)):!e&&r.octal&&(e=r)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case 3:case 8:case 1:case 5:case 6:case 4:return!0;case 7:return\"[\"===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();r.params.length>0&&this.tolerateError(o.Messages.BadGetterArity);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();1!==r.params.length?this.tolerateError(o.Messages.BadSetterArity):r.params[0]instanceof a.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e=\"[\"===t||\"(\"===t||\"{\"===t||\"+\"===t||\"-\"===t||\"!\"===t||\"~\"===t||\"++\"===t||\"--\"===t||\"/\"===t||\"/=\"===t;break;case 4:e=\"class\"===t||\"delete\"===t||\"function\"===t||\"let\"===t||\"new\"===t||\"super\"===t||\"this\"===t||\"typeof\"===t||\"void\"===t||\"yield\"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword(\"yield\");var t=null,r=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(r=this.match(\"*\"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new a.YieldExpression(t,r))},e.prototype.parseClassElement=function(e){var t=this.lookahead,r=this.createNode(),n=\"\",i=null,s=null,u=!1,l=!1,c=!1,h=!1;if(this.match(\"*\"))this.nextToken();else if(u=this.match(\"[\"),\"static\"===(i=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match(\"*\"))&&(t=this.lookahead,c=!0,u=this.match(\"[\"),this.match(\"*\")?this.nextToken():i=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&\"async\"===t.value){var p=this.lookahead.value;\":\"!==p&&\"(\"!==p&&\"*\"!==p&&(h=!0,t=this.lookahead,i=this.parseObjectPropertyKey(),3===t.type&&\"constructor\"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var f=this.qualifiedPropertyName(this.lookahead);return 3===t.type?\"get\"===t.value&&f?(n=\"get\",u=this.match(\"[\"),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod()):\"set\"===t.value&&f&&(n=\"set\",u=this.match(\"[\"),i=this.parseObjectPropertyKey(),s=this.parseSetterMethod()):7===t.type&&\"*\"===t.value&&f&&(n=\"init\",u=this.match(\"[\"),i=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0),!n&&i&&this.match(\"(\")&&(n=\"init\",s=h?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0),n||this.throwUnexpectedToken(this.lookahead),\"init\"===n&&(n=\"method\"),u||(c&&this.isPropertyKey(i,\"prototype\")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!c&&this.isPropertyKey(i,\"constructor\")&&((\"method\"!==n||!l||s&&s.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,n=\"constructor\")),this.finalize(r,new a.MethodDefinition(i,u,s,n,c))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect(\"{\");!this.match(\"}\");)this.match(\";\")?this.nextToken():e.push(this.parseClassElement(t));return this.expect(\"}\"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new a.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword(\"class\");var n=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),i=null;this.matchKeyword(\"extends\")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=r,this.finalize(t,new a.ClassDeclaration(n,i,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword(\"class\");var r=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword(\"extends\")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new a.ClassExpression(r,n,i))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),r=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,r))},e.prototype.parseImportSpecifier=function(){var e,t,r=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword(\"as\")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword(\"as\")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new a.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect(\"{\");for(var e=[];!this.match(\"}\");)e.push(this.parseImportSpecifier()),this.match(\"}\")||this.expect(\",\");return this.expect(\"}\"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new a.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect(\"*\"),this.matchContextualKeyword(\"as\")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new a.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword(\"import\");var r=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match(\"{\")?r=r.concat(this.parseNamedImports()):this.match(\"*\")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword(\"default\")?(r.push(this.parseImportDefaultSpecifier()),this.match(\",\")&&(this.nextToken(),this.match(\"*\")?r.push(this.parseImportNamespaceSpecifier()):this.match(\"{\")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword(\"from\")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new a.ImportDeclaration(r,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),r=t;return this.matchContextualKeyword(\"as\")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(e,new a.ExportSpecifier(t,r))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword(\"export\"),this.matchKeyword(\"default\"))if(this.nextToken(),this.matchKeyword(\"function\")){var r=this.parseFunctionDeclaration(!0);e=this.finalize(t,new a.ExportDefaultDeclaration(r))}else this.matchKeyword(\"class\")?(r=this.parseClassDeclaration(!0),e=this.finalize(t,new a.ExportDefaultDeclaration(r))):this.matchContextualKeyword(\"async\")?(r=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new a.ExportDefaultDeclaration(r))):(this.matchContextualKeyword(\"from\")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),r=this.match(\"{\")?this.parseObjectInitializer():this.match(\"[\")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new a.ExportDefaultDeclaration(r)));else if(this.match(\"*\")){if(this.nextToken(),!this.matchContextualKeyword(\"from\")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var i=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new a.ExportAllDeclaration(i))}else if(4===this.lookahead.type){switch(r=void 0,this.lookahead.value){case\"let\":case\"const\":r=this.parseLexicalDeclaration({inFor:!1});break;case\"var\":case\"class\":case\"function\":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new a.ExportNamedDeclaration(r,[],null))}else if(this.matchAsyncFunction())r=this.parseFunctionDeclaration(),e=this.finalize(t,new a.ExportNamedDeclaration(r,[],null));else{var s=[],u=null,l=!1;for(this.expect(\"{\");!this.match(\"}\");)l=l||this.matchKeyword(\"default\"),s.push(this.parseExportSpecifier()),this.match(\"}\")||this.expect(\",\");this.expect(\"}\"),this.matchContextualKeyword(\"from\")?(this.nextToken(),u=this.parseModuleSpecifier(),this.consumeSemicolon()):l?(n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(n,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new a.ExportNamedDeclaration(null,s,u))}return e},e}();t.Parser=c},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.assert=function(e,t){if(!e)throw new Error(\"ASSERT: \"+t)}},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(e){Object.create&&Object.defineProperty&&(r=Object.create(e),Object.defineProperty(r,\"column\",{value:t}))}return r},e.prototype.createError=function(e,t,r,n){var i=\"Line \"+t+\": \"+n,o=this.constructError(i,r);return o.index=e,o.lineNumber=t,o.description=n,o},e.prototype.throwError=function(e,t,r,n){throw this.createError(e,t,r,n)},e.prototype.tolerateError=function(e,t,r,n){var i=this.createError(e,t,r,n);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=r},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Messages={BadGetterArity:\"Getter must not have any formal parameters\",BadSetterArity:\"Setter must have exactly one formal parameter\",BadSetterRestParameter:\"Setter function argument must not be a rest parameter\",ConstructorIsAsync:\"Class constructor may not be an async method\",ConstructorSpecialMethod:\"Class constructor may not be an accessor\",DeclarationMissingInitializer:\"Missing initializer in %0 declaration\",DefaultRestParameter:\"Unexpected token =\",DuplicateBinding:\"Duplicate binding %0\",DuplicateConstructor:\"A class may only have one constructor\",DuplicateProtoProperty:\"Duplicate __proto__ fields are not allowed in object literals\",ForInOfLoopInitializer:\"%0 loop variable declaration may not have an initializer\",GeneratorInLegacyContext:\"Generator declarations are not allowed in legacy contexts\",IllegalBreak:\"Illegal break statement\",IllegalContinue:\"Illegal continue statement\",IllegalExportDeclaration:\"Unexpected token\",IllegalImportDeclaration:\"Unexpected token\",IllegalLanguageModeDirective:\"Illegal 'use strict' directive in function with non-simple parameter list\",IllegalReturn:\"Illegal return statement\",InvalidEscapedReservedWord:\"Keyword must not contain escaped characters\",InvalidHexEscapeSequence:\"Invalid hexadecimal escape sequence\",InvalidLHSInAssignment:\"Invalid left-hand side in assignment\",InvalidLHSInForIn:\"Invalid left-hand side in for-in\",InvalidLHSInForLoop:\"Invalid left-hand side in for-loop\",InvalidModuleSpecifier:\"Unexpected token\",InvalidRegExp:\"Invalid regular expression\",LetInLexicalBinding:\"let is disallowed as a lexically bound name\",MissingFromClause:\"Unexpected token\",MultipleDefaultsInSwitch:\"More than one default clause in switch statement\",NewlineAfterThrow:\"Illegal newline after throw\",NoAsAfterImportNamespace:\"Unexpected token\",NoCatchOrFinally:\"Missing catch or finally after try\",ParameterAfterRestParameter:\"Rest parameter must be last formal parameter\",Redeclaration:\"%0 '%1' has already been declared\",StaticPrototype:\"Classes may not have static property named prototype\",StrictCatchVariable:\"Catch variable may not be eval or arguments in strict mode\",StrictDelete:\"Delete of an unqualified identifier in strict mode.\",StrictFunction:\"In strict mode code, functions can only be declared at top level or inside a block\",StrictFunctionName:\"Function name may not be eval or arguments in strict mode\",StrictLHSAssignment:\"Assignment to eval or arguments is not allowed in strict mode\",StrictLHSPostfix:\"Postfix increment/decrement may not have eval or arguments operand in strict mode\",StrictLHSPrefix:\"Prefix increment/decrement may not have eval or arguments operand in strict mode\",StrictModeWith:\"Strict mode code may not include a with statement\",StrictOctalLiteral:\"Octal literals are not allowed in strict mode.\",StrictParamDupe:\"Strict mode function may not have duplicate parameter names\",StrictParamName:\"Parameter name eval or arguments is not allowed in strict mode\",StrictReservedWord:\"Use of future reserved word in strict mode\",StrictVarName:\"Variable name may not be eval or arguments in strict mode\",TemplateOctalLiteral:\"Octal literals are not allowed in template strings.\",UnexpectedEOS:\"Unexpected end of input\",UnexpectedIdentifier:\"Unexpected identifier\",UnexpectedNumber:\"Unexpected number\",UnexpectedReserved:\"Unexpected reserved word\",UnexpectedString:\"Unexpected string\",UnexpectedTemplate:\"Unexpected quasi %0\",UnexpectedToken:\"Unexpected token %0\",UnexpectedTokenIllegal:\"Unexpected token ILLEGAL\",UnknownLabel:\"Undefined label '%0'\",UnterminatedRegExp:\"Invalid regular expression: missing /\"}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(9),i=r(4),o=r(11);function a(e){return\"0123456789abcdef\".indexOf(e.toLowerCase())}function s(e){return\"01234567\".indexOf(e)}var u=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,r,n=[];for(this.trackComment&&(n=[],t=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,i.Character.isLineTerminator(o)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:r};n.push(a)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}return this.trackComment&&(r.end={line:this.lineNumber,column:this.index-this.lineStart},a={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:r},n.push(a)),n},e.prototype.skipMultiLineComment=function(){var e,t,r=[];for(this.trackComment&&(r=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(i.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};r.push(o)}return r}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},r.push(o)),this.tolerateUnexpectedToken(),r},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(i.Character.isWhiteSpace(r))++this.index;else if(i.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==r)break;this.index+=2,n=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(n))}else if(t&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,n=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(n))}else{if(60!==r||this.isModule)break;if(\"!--\"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,n=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case\"enum\":case\"export\":case\"import\":case\"super\":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case\"implements\":case\"interface\":case\"package\":case\"private\":case\"protected\":case\"public\":case\"static\":case\"yield\":case\"let\":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return\"eval\"===e||\"arguments\"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return\"if\"===e||\"in\"===e||\"do\"===e;case 3:return\"var\"===e||\"for\"===e||\"new\"===e||\"try\"===e||\"let\"===e;case 4:return\"this\"===e||\"else\"===e||\"case\"===e||\"void\"===e||\"with\"===e||\"enum\"===e;case 5:return\"while\"===e||\"break\"===e||\"catch\"===e||\"throw\"===e||\"const\"===e||\"yield\"===e||\"class\"===e||\"super\"===e;case 6:return\"return\"===e||\"typeof\"===e||\"delete\"===e||\"switch\"===e||\"export\"===e||\"import\"===e;case 7:return\"default\"===e||\"finally\"===e||\"extends\"===e;case 8:return\"function\"===e||\"continue\"===e||\"debugger\"===e;case 10:return\"instanceof\"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);r>=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t=\"u\"===e?4:2,r=0,n=0;n<t;++n){if(this.eof()||!i.Character.isHexDigit(this.source.charCodeAt(this.index)))return null;r=16*r+a(this.source[this.index++])}return String.fromCharCode(r)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for(\"}\"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],i.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+a(e);return(t>1114111||\"}\"!==e)&&this.throwUnexpectedToken(),i.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!i.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),r=i.Character.fromCodePoint(t);for(this.index+=r.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,\"{\"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape(\"u\"))&&\"\\\\\"!==e&&i.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),r=e);!this.eof()&&(t=this.codePointAt(this.index),i.Character.isIdentifierPart(t));)r+=e=i.Character.fromCodePoint(t),this.index+=e.length,92===t&&(r=r.substr(0,r.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,\"{\"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape(\"u\"))&&\"\\\\\"!==e&&i.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),r+=e);return r},e.prototype.octalToDecimal=function(e){var t=\"0\"!==e,r=s(e);return!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,r=8*r+s(this.source[this.index++]),\"0123\".indexOf(e)>=0&&!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+s(this.source[this.index++]))),{code:r,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,r=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===r.length?3:this.isKeyword(r)?4:\"null\"===r?5:\"true\"===r||\"false\"===r?1:3)&&t+r.length!==this.index){var n=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=n}return{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case\"(\":case\"{\":\"{\"===t&&this.curlyStack.push(\"{\"),++this.index;break;case\".\":++this.index,\".\"===this.source[this.index]&&\".\"===this.source[this.index+1]&&(this.index+=2,t=\"...\");break;case\"}\":++this.index,this.curlyStack.pop();break;case\")\":case\";\":case\",\":case\"[\":case\"]\":case\":\":case\"?\":case\"~\":++this.index;break;default:\">>>=\"===(t=this.source.substr(this.index,4))?this.index+=4:\"===\"===(t=t.substr(0,3))||\"!==\"===t||\">>>\"===t||\"<<=\"===t||\">>=\"===t||\"**=\"===t?this.index+=3:\"&&\"===(t=t.substr(0,2))||\"||\"===t||\"==\"===t||\"!=\"===t||\"+=\"===t||\"-=\"===t||\"*=\"===t||\"/=\"===t||\"++\"===t||\"--\"===t||\"<<\"===t||\">>\"===t||\"&=\"===t||\"|=\"===t||\"^=\"===t||\"%=\"===t||\"<=\"===t||\">=\"===t||\"=>\"===t||\"**\"===t?this.index+=2:(t=this.source[this.index],\"<>=!+-*%&|^/\".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t=\"\";!this.eof()&&i.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),i.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt(\"0x\"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,r=\"\";!this.eof()&&(\"0\"===(t=this.source[this.index])||\"1\"===t);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(i.Character.isIdentifierStart(t)||i.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var r=\"\",n=!1;for(i.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,r=\"0\"+this.source[this.index++]):++this.index;!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return n||0!==r.length||this.throwUnexpectedToken(),(i.Character.isIdentifierStart(this.source.charCodeAt(this.index))||i.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(r,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e<this.length;++e){var t=this.source[e];if(\"8\"===t||\"9\"===t)return!1;if(!i.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];n.assert(i.Character.isDecimalDigit(t.charCodeAt(0))||\".\"===t,\"Numeric literal must start with a decimal digit or a decimal point\");var r=\"\";if(\".\"!==t){if(r=this.source[this.index++],t=this.source[this.index],\"0\"===r){if(\"x\"===t||\"X\"===t)return++this.index,this.scanHexLiteral(e);if(\"b\"===t||\"B\"===t)return++this.index,this.scanBinaryLiteral(e);if(\"o\"===t||\"O\"===t)return this.scanOctalLiteral(t,e);if(t&&i.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;i.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if(\".\"===t){for(r+=this.source[this.index++];i.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if(\"e\"===t||\"E\"===t)if(r+=this.source[this.index++],\"+\"!==(t=this.source[this.index])&&\"-\"!==t||(r+=this.source[this.index++]),i.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;i.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];else this.throwUnexpectedToken();return i.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseFloat(r),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];n.assert(\"'\"===t||'\"'===t,\"String literal must starts with a quote\"),++this.index;for(var r=!1,a=\"\";!this.eof();){var s=this.source[this.index++];if(s===t){t=\"\";break}if(\"\\\\\"===s)if((s=this.source[this.index++])&&i.Character.isLineTerminator(s.charCodeAt(0)))++this.lineNumber,\"\\r\"===s&&\"\\n\"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(s){case\"u\":if(\"{\"===this.source[this.index])++this.index,a+=this.scanUnicodeCodePointEscape();else{var u=this.scanHexEscape(s);null===u&&this.throwUnexpectedToken(),a+=u}break;case\"x\":var l=this.scanHexEscape(s);null===l&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),a+=l;break;case\"n\":a+=\"\\n\";break;case\"r\":a+=\"\\r\";break;case\"t\":a+=\"\\t\";break;case\"b\":a+=\"\\b\";break;case\"f\":a+=\"\\f\";break;case\"v\":a+=\"\\v\";break;case\"8\":case\"9\":a+=s,this.tolerateUnexpectedToken();break;default:if(s&&i.Character.isOctalDigit(s.charCodeAt(0))){var c=this.octalToDecimal(s);r=c.octal||r,a+=String.fromCharCode(c.code)}else a+=s}else{if(i.Character.isLineTerminator(s.charCodeAt(0)))break;a+=s}}return\"\"!==t&&(this.index=e,this.throwUnexpectedToken()),{type:8,value:a,octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e=\"\",t=!1,r=this.index,n=\"`\"===this.source[r],a=!1,s=2;for(++this.index;!this.eof();){var u=this.source[this.index++];if(\"`\"===u){s=1,a=!0,t=!0;break}if(\"$\"===u){if(\"{\"===this.source[this.index]){this.curlyStack.push(\"${\"),++this.index,t=!0;break}e+=u}else if(\"\\\\\"===u)if(u=this.source[this.index++],i.Character.isLineTerminator(u.charCodeAt(0)))++this.lineNumber,\"\\r\"===u&&\"\\n\"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(u){case\"n\":e+=\"\\n\";break;case\"r\":e+=\"\\r\";break;case\"t\":e+=\"\\t\";break;case\"u\":if(\"{\"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var l=this.index,c=this.scanHexEscape(u);null!==c?e+=c:(this.index=l,e+=u)}break;case\"x\":var h=this.scanHexEscape(u);null===h&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),e+=h;break;case\"b\":e+=\"\\b\";break;case\"f\":e+=\"\\f\";break;case\"v\":e+=\"\\v\";break;default:\"0\"===u?(i.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral),e+=\"\\0\"):i.Character.isOctalDigit(u.charCodeAt(0))?this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral):e+=u}else i.Character.isLineTerminator(u.charCodeAt(0))?(++this.lineNumber,\"\\r\"===u&&\"\\n\"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+=\"\\n\"):e+=u}return t||this.throwUnexpectedToken(),n||this.curlyStack.pop(),{type:10,value:this.source.slice(r+1,this.index-s),cooked:e,head:n,tail:a,lineNumber:this.lineNumber,lineStart:this.lineStart,start:r,end:this.index}},e.prototype.testRegExp=function(e,t){var r=e,n=this;t.indexOf(\"u\")>=0&&(r=r.replace(/\\\\u\\{([0-9a-fA-F]+)\\}|\\\\u([a-fA-F0-9]{4})/g,(function(e,t,r){var i=parseInt(t||r,16);return i>1114111&&n.throwUnexpectedToken(o.Messages.InvalidRegExp),i<=65535?String.fromCharCode(i):\"\"})).replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,\"\"));try{RegExp(r)}catch(e){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];n.assert(\"/\"===e,\"Regular expression literal must start with a slash\");for(var t=this.source[this.index++],r=!1,a=!1;!this.eof();)if(t+=e=this.source[this.index++],\"\\\\\"===e)e=this.source[this.index++],i.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(i.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(r)\"]\"===e&&(r=!1);else{if(\"/\"===e){a=!0;break}\"[\"===e&&(r=!0)}return a||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e=\"\";!this.eof();){var t=this.source[this.index];if(!i.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,\"\\\\\"!==t||this.eof())e+=t;else if(\"u\"===(t=this.source[this.index])){++this.index;var r=this.index,n=this.scanHexEscape(\"u\");if(null!==n)for(e+=n;r<this.index;++r)this.source[r];else this.index=r,e+=\"u\";this.tolerateUnexpectedToken()}else this.tolerateUnexpectedToken()}return e},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),r=this.scanRegExpFlags();return{type:9,value:\"\",pattern:t,flags:r,regex:this.testRegExp(t,r),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:2,value:\"\",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return i.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?i.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():i.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&\"${\"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=55296&&e<57343&&i.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=u},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.TokenName={},t.TokenName[1]=\"Boolean\",t.TokenName[2]=\"<end>\",t.TokenName[3]=\"Identifier\",t.TokenName[4]=\"Keyword\",t.TokenName[5]=\"Null\",t.TokenName[6]=\"Numeric\",t.TokenName[7]=\"Punctuator\",t.TokenName[8]=\"String\",t.TokenName[9]=\"RegularExpression\",t.TokenName[10]=\"Template\"},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.XHTMLEntities={quot:'\"',amp:\"&\",apos:\"'\",gt:\">\",nbsp:\" \",iexcl:\"¡\",cent:\"¢\",pound:\"£\",curren:\"¤\",yen:\"¥\",brvbar:\"¦\",sect:\"§\",uml:\"¨\",copy:\"©\",ordf:\"ª\",laquo:\"«\",not:\"¬\",shy:\"­\",reg:\"®\",macr:\"¯\",deg:\"°\",plusmn:\"±\",sup2:\"²\",sup3:\"³\",acute:\"´\",micro:\"µ\",para:\"¶\",middot:\"·\",cedil:\"¸\",sup1:\"¹\",ordm:\"º\",raquo:\"»\",frac14:\"¼\",frac12:\"½\",frac34:\"¾\",iquest:\"¿\",Agrave:\"À\",Aacute:\"Á\",Acirc:\"Â\",Atilde:\"Ã\",Auml:\"Ä\",Aring:\"Å\",AElig:\"Æ\",Ccedil:\"Ç\",Egrave:\"È\",Eacute:\"É\",Ecirc:\"Ê\",Euml:\"Ë\",Igrave:\"Ì\",Iacute:\"Í\",Icirc:\"Î\",Iuml:\"Ï\",ETH:\"Ð\",Ntilde:\"Ñ\",Ograve:\"Ò\",Oacute:\"Ó\",Ocirc:\"Ô\",Otilde:\"Õ\",Ouml:\"Ö\",times:\"×\",Oslash:\"Ø\",Ugrave:\"Ù\",Uacute:\"Ú\",Ucirc:\"Û\",Uuml:\"Ü\",Yacute:\"Ý\",THORN:\"Þ\",szlig:\"ß\",agrave:\"à\",aacute:\"á\",acirc:\"â\",atilde:\"ã\",auml:\"ä\",aring:\"å\",aelig:\"æ\",ccedil:\"ç\",egrave:\"è\",eacute:\"é\",ecirc:\"ê\",euml:\"ë\",igrave:\"ì\",iacute:\"í\",icirc:\"î\",iuml:\"ï\",eth:\"ð\",ntilde:\"ñ\",ograve:\"ò\",oacute:\"ó\",ocirc:\"ô\",otilde:\"õ\",ouml:\"ö\",divide:\"÷\",oslash:\"ø\",ugrave:\"ù\",uacute:\"ú\",ucirc:\"û\",uuml:\"ü\",yacute:\"ý\",thorn:\"þ\",yuml:\"ÿ\",OElig:\"Œ\",oelig:\"œ\",Scaron:\"Š\",scaron:\"š\",Yuml:\"Ÿ\",fnof:\"ƒ\",circ:\"ˆ\",tilde:\"˜\",Alpha:\"Α\",Beta:\"Β\",Gamma:\"Γ\",Delta:\"Δ\",Epsilon:\"Ε\",Zeta:\"Ζ\",Eta:\"Η\",Theta:\"Θ\",Iota:\"Ι\",Kappa:\"Κ\",Lambda:\"Λ\",Mu:\"Μ\",Nu:\"Ν\",Xi:\"Ξ\",Omicron:\"Ο\",Pi:\"Π\",Rho:\"Ρ\",Sigma:\"Σ\",Tau:\"Τ\",Upsilon:\"Υ\",Phi:\"Φ\",Chi:\"Χ\",Psi:\"Ψ\",Omega:\"Ω\",alpha:\"α\",beta:\"β\",gamma:\"γ\",delta:\"δ\",epsilon:\"ε\",zeta:\"ζ\",eta:\"η\",theta:\"θ\",iota:\"ι\",kappa:\"κ\",lambda:\"λ\",mu:\"μ\",nu:\"ν\",xi:\"ξ\",omicron:\"ο\",pi:\"π\",rho:\"ρ\",sigmaf:\"ς\",sigma:\"σ\",tau:\"τ\",upsilon:\"υ\",phi:\"φ\",chi:\"χ\",psi:\"ψ\",omega:\"ω\",thetasym:\"ϑ\",upsih:\"ϒ\",piv:\"ϖ\",ensp:\" \",emsp:\" \",thinsp:\" \",zwnj:\"‌\",zwj:\"‍\",lrm:\"‎\",rlm:\"‏\",ndash:\"–\",mdash:\"—\",lsquo:\"‘\",rsquo:\"’\",sbquo:\"‚\",ldquo:\"“\",rdquo:\"”\",bdquo:\"„\",dagger:\"†\",Dagger:\"‡\",bull:\"•\",hellip:\"…\",permil:\"‰\",prime:\"′\",Prime:\"″\",lsaquo:\"‹\",rsaquo:\"›\",oline:\"‾\",frasl:\"⁄\",euro:\"€\",image:\"ℑ\",weierp:\"℘\",real:\"ℜ\",trade:\"™\",alefsym:\"ℵ\",larr:\"←\",uarr:\"↑\",rarr:\"→\",darr:\"↓\",harr:\"↔\",crarr:\"↵\",lArr:\"⇐\",uArr:\"⇑\",rArr:\"⇒\",dArr:\"⇓\",hArr:\"⇔\",forall:\"∀\",part:\"∂\",exist:\"∃\",empty:\"∅\",nabla:\"∇\",isin:\"∈\",notin:\"∉\",ni:\"∋\",prod:\"∏\",sum:\"∑\",minus:\"−\",lowast:\"∗\",radic:\"√\",prop:\"∝\",infin:\"∞\",ang:\"∠\",and:\"∧\",or:\"∨\",cap:\"∩\",cup:\"∪\",int:\"∫\",there4:\"∴\",sim:\"∼\",cong:\"≅\",asymp:\"≈\",ne:\"≠\",equiv:\"≡\",le:\"≤\",ge:\"≥\",sub:\"⊂\",sup:\"⊃\",nsub:\"⊄\",sube:\"⊆\",supe:\"⊇\",oplus:\"⊕\",otimes:\"⊗\",perp:\"⊥\",sdot:\"⋅\",lceil:\"⌈\",rceil:\"⌉\",lfloor:\"⌊\",rfloor:\"⌋\",loz:\"◊\",spades:\"♠\",clubs:\"♣\",hearts:\"♥\",diams:\"♦\",lang:\"⟨\",rang:\"⟩\"}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(10),i=r(12),o=r(13),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return[\"(\",\"{\",\"[\",\"in\",\"typeof\",\"instanceof\",\"new\",\"return\",\"case\",\"delete\",\"throw\",\"void\",\"=\",\"+=\",\"-=\",\"*=\",\"**=\",\"/=\",\"%=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"|=\",\"^=\",\",\",\"+\",\"-\",\"*\",\"**\",\"/\",\"%\",\"++\",\"--\",\"<<\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"!\",\"~\",\"&&\",\"||\",\"?\",\":\",\"===\",\"==\",\">=\",\"<=\",\"<\",\">\",\"!=\",\"!==\"].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case\"this\":case\"]\":t=!1;break;case\")\":var r=this.values[this.paren-1];t=\"if\"===r||\"while\"===r||\"for\"===r||\"with\"===r;break;case\"}\":if(t=!1,\"function\"===this.values[this.curly-3])t=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if(\"function\"===this.values[this.curly-4]){var n;t=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?(\"{\"===e.value?this.curly=this.values.length:\"(\"===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),s=function(){function e(e,t){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!t&&\"boolean\"==typeof t.tolerant&&t.tolerant,this.scanner=new i.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&\"boolean\"==typeof t.comment&&t.comment,this.trackRange=!!t&&\"boolean\"==typeof t.range&&t.range,this.trackLoc=!!t&&\"boolean\"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t<e.length;++t){var r=e[t],n=this.scanner.source.slice(r.slice[0],r.slice[1]),i={type:r.multiLine?\"BlockComment\":\"LineComment\",value:n};this.trackRange&&(i.range=r.range),this.trackLoc&&(i.loc=r.loc),this.buffer.push(i)}if(!this.scanner.eof()){var a=void 0;this.trackLoc&&(a={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var s=\"/\"===this.scanner.source[this.scanner.index]&&this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.lex();this.reader.push(s);var u={type:o.TokenName[s.type],value:this.scanner.source.slice(s.start,s.end)};if(this.trackRange&&(u.range=[s.start,s.end]),this.trackLoc&&(a.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},u.loc=a),9===s.type){var l=s.pattern,c=s.flags;u.regex={pattern:l,flags:c}}this.buffer.push(u)}}return this.buffer.shift()},e}();t.Tokenizer=s}])},e.exports=n()},function(e,t,r){\"use strict\";var n=r(38),i=r(53),o=r(76),a=r(54),s=Object.prototype.toString,u=Object.prototype.hasOwnProperty,l={0:\"\\\\0\",7:\"\\\\a\",8:\"\\\\b\",9:\"\\\\t\",10:\"\\\\n\",11:\"\\\\v\",12:\"\\\\f\",13:\"\\\\r\",27:\"\\\\e\",34:'\\\\\"',92:\"\\\\\\\\\",133:\"\\\\N\",160:\"\\\\_\",8232:\"\\\\L\",8233:\"\\\\P\"},c=[\"y\",\"Y\",\"yes\",\"Yes\",\"YES\",\"on\",\"On\",\"ON\",\"n\",\"N\",\"no\",\"No\",\"NO\",\"off\",\"Off\",\"OFF\"];function h(e){var t,r,o;if(t=e.toString(16).toUpperCase(),e<=255)r=\"x\",o=2;else if(e<=65535)r=\"u\",o=4;else{if(!(e<=4294967295))throw new i(\"code point within a string may not be greater than 0xFFFFFFFF\");r=\"U\",o=8}return\"\\\\\"+r+n.repeat(\"0\",o-t.length)+t}function p(e){this.schema=e.schema||o,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=n.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var r,n,i,o,a,s,l;if(null===t)return{};for(r={},i=0,o=(n=Object.keys(t)).length;i<o;i+=1)a=n[i],s=String(t[a]),\"!!\"===a.slice(0,2)&&(a=\"tag:yaml.org,2002:\"+a.slice(2)),(l=e.compiledTypeMap.fallback[a])&&u.call(l.styleAliases,s)&&(s=l.styleAliases[s]),r[a]=s;return r}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result=\"\",this.duplicates=[],this.usedDuplicates=null}function f(e,t){for(var r,i=n.repeat(\" \",t),o=0,a=-1,s=\"\",u=e.length;o<u;)-1===(a=e.indexOf(\"\\n\",o))?(r=e.slice(o),o=u):(r=e.slice(o,a+1),o=a+1),r.length&&\"\\n\"!==r&&(s+=i),s+=r;return s}function d(e,t){return\"\\n\"+n.repeat(\" \",e.indent*t)}function m(e){return 32===e||9===e}function y(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function v(e,t){return y(e)&&65279!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&58!==e&&(35!==e||t&&function(e){return y(e)&&!m(e)&&65279!==e&&13!==e&&10!==e}(t))}function _(e){return/^\\n* /.test(e)}function g(e,t,r,n,i){var o,a,s,u,l=!1,c=!1,h=-1!==n,p=-1,f=y(u=e.charCodeAt(0))&&65279!==u&&!m(u)&&45!==u&&63!==u&&58!==u&&44!==u&&91!==u&&93!==u&&123!==u&&125!==u&&35!==u&&38!==u&&42!==u&&33!==u&&124!==u&&61!==u&&62!==u&&39!==u&&34!==u&&37!==u&&64!==u&&96!==u&&!m(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(!y(a=e.charCodeAt(o)))return 5;s=o>0?e.charCodeAt(o-1):null,f=f&&v(a,s)}else{for(o=0;o<e.length;o++){if(10===(a=e.charCodeAt(o)))l=!0,h&&(c=c||o-p-1>n&&\" \"!==e[p+1],p=o);else if(!y(a))return 5;s=o>0?e.charCodeAt(o-1):null,f=f&&v(a,s)}c=c||h&&o-p-1>n&&\" \"!==e[p+1]}return l||c?r>9&&_(e)?5:c?4:3:f&&!i(e)?1:2}function b(e,t,r,n){e.dump=function(){if(0===t.length)return\"''\";if(!e.noCompatMode&&-1!==c.indexOf(t))return\"'\"+t+\"'\";var o=e.indent*Math.max(1,r),a=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),s=n||e.flowLevel>-1&&r>=e.flowLevel;switch(g(t,s,e.indent,a,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r<n;r+=1)if(e.implicitTypes[r].resolve(t))return!0;return!1}(e,t)}))){case 1:return t;case 2:return\"'\"+t.replace(/'/g,\"''\")+\"'\";case 3:return\"|\"+x(t,e.indent)+w(f(t,o));case 4:return\">\"+x(t,e.indent)+w(f(function(e,t){var r,n,i=/(\\n+)([^\\n]*)/g,o=(s=e.indexOf(\"\\n\"),s=-1!==s?s:e.length,i.lastIndex=s,E(e.slice(0,s),t)),a=\"\\n\"===e[0]||\" \"===e[0];var s;for(;n=i.exec(e);){var u=n[1],l=n[2];r=\" \"===l[0],o+=u+(a||r||\"\"===l?\"\":\"\\n\")+E(l,t),a=r}return o}(t,a),o));case 5:return'\"'+function(e){for(var t,r,n,i=\"\",o=0;o<e.length;o++)(t=e.charCodeAt(o))>=55296&&t<=56319&&(r=e.charCodeAt(o+1))>=56320&&r<=57343?(i+=h(1024*(t-55296)+r-56320+65536),o++):(n=l[t],i+=!n&&y(t)?e[o]:n||h(t));return i}(t)+'\"';default:throw new i(\"impossible error: invalid scalar style\")}}()}function x(e,t){var r=_(e)?String(t):\"\",n=\"\\n\"===e[e.length-1];return r+(n&&(\"\\n\"===e[e.length-2]||\"\\n\"===e)?\"+\":n?\"\":\"-\")+\"\\n\"}function w(e){return\"\\n\"===e[e.length-1]?e.slice(0,-1):e}function E(e,t){if(\"\"===e||\" \"===e[0])return e;for(var r,n,i=/ [^ ]/g,o=0,a=0,s=0,u=\"\";r=i.exec(e);)(s=r.index)-o>t&&(n=a>o?a:s,u+=\"\\n\"+e.slice(o,n),o=n+1),a=s;return u+=\"\\n\",e.length-o>t&&a>o?u+=e.slice(o,a)+\"\\n\"+e.slice(a+1):u+=e.slice(o),u.slice(1)}function D(e,t,r){var n,o,a,l,c,h;for(a=0,l=(o=r?e.explicitTypes:e.implicitTypes).length;a<l;a+=1)if(((c=o[a]).instanceOf||c.predicate)&&(!c.instanceOf||\"object\"==typeof t&&t instanceof c.instanceOf)&&(!c.predicate||c.predicate(t))){if(e.tag=r?c.tag:\"?\",c.represent){if(h=e.styleMap[c.tag]||c.defaultStyle,\"[object Function]\"===s.call(c.represent))n=c.represent(t,h);else{if(!u.call(c.represent,h))throw new i(\"!<\"+c.tag+'> tag resolver accepts not \"'+h+'\" style');n=c.represent[h](t,h)}e.dump=n}return!0}return!1}function S(e,t,r,n,o,a){e.tag=null,e.dump=r,D(e,r,!1)||D(e,r,!0);var u=s.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var l,c,h=\"[object Object]\"===u||\"[object Array]\"===u;if(h&&(c=-1!==(l=e.duplicates.indexOf(r))),(null!==e.tag&&\"?\"!==e.tag||c||2!==e.indent&&t>0)&&(o=!1),c&&e.usedDuplicates[l])e.dump=\"*ref_\"+l;else{if(h&&c&&!e.usedDuplicates[l]&&(e.usedDuplicates[l]=!0),\"[object Object]\"===u)n&&0!==Object.keys(e.dump).length?(!function(e,t,r,n){var o,a,s,u,l,c,h=\"\",p=e.tag,f=Object.keys(r);if(!0===e.sortKeys)f.sort();else if(\"function\"==typeof e.sortKeys)f.sort(e.sortKeys);else if(e.sortKeys)throw new i(\"sortKeys must be a boolean or a function\");for(o=0,a=f.length;o<a;o+=1)c=\"\",n&&0===o||(c+=d(e,t)),u=r[s=f[o]],S(e,t+1,s,!0,!0,!0)&&((l=null!==e.tag&&\"?\"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&10===e.dump.charCodeAt(0)?c+=\"?\":c+=\"? \"),c+=e.dump,l&&(c+=d(e,t)),S(e,t+1,u,!0,l)&&(e.dump&&10===e.dump.charCodeAt(0)?c+=\":\":c+=\": \",h+=c+=e.dump));e.tag=p,e.dump=h||\"{}\"}(e,t,e.dump,o),c&&(e.dump=\"&ref_\"+l+e.dump)):(!function(e,t,r){var n,i,o,a,s,u=\"\",l=e.tag,c=Object.keys(r);for(n=0,i=c.length;n<i;n+=1)s=\"\",0!==n&&(s+=\", \"),e.condenseFlow&&(s+='\"'),a=r[o=c[n]],S(e,t,o,!1,!1)&&(e.dump.length>1024&&(s+=\"? \"),s+=e.dump+(e.condenseFlow?'\"':\"\")+\":\"+(e.condenseFlow?\"\":\" \"),S(e,t,a,!1,!1)&&(u+=s+=e.dump));e.tag=l,e.dump=\"{\"+u+\"}\"}(e,t,e.dump),c&&(e.dump=\"&ref_\"+l+\" \"+e.dump));else if(\"[object Array]\"===u){var p=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,r,n){var i,o,a=\"\",s=e.tag;for(i=0,o=r.length;i<o;i+=1)S(e,t+1,r[i],!0,!0)&&(n&&0===i||(a+=d(e,t)),e.dump&&10===e.dump.charCodeAt(0)?a+=\"-\":a+=\"- \",a+=e.dump);e.tag=s,e.dump=a||\"[]\"}(e,p,e.dump,o),c&&(e.dump=\"&ref_\"+l+e.dump)):(!function(e,t,r){var n,i,o=\"\",a=e.tag;for(n=0,i=r.length;n<i;n+=1)S(e,t,r[n],!1,!1)&&(0!==n&&(o+=\",\"+(e.condenseFlow?\"\":\" \")),o+=e.dump);e.tag=a,e.dump=\"[\"+o+\"]\"}(e,p,e.dump),c&&(e.dump=\"&ref_\"+l+\" \"+e.dump))}else{if(\"[object String]\"!==u){if(e.skipInvalid)return!1;throw new i(\"unacceptable kind of an object to dump \"+u)}\"?\"!==e.tag&&b(e,e.dump,t,a)}null!==e.tag&&\"?\"!==e.tag&&(e.dump=\"!<\"+e.tag+\"> \"+e.dump)}return!0}function C(e,t){var r,n,i=[],o=[];for(function e(t,r,n){var i,o,a;if(null!==t&&\"object\"==typeof t)if(-1!==(o=r.indexOf(t)))-1===n.indexOf(o)&&n.push(o);else if(r.push(t),Array.isArray(t))for(o=0,a=t.length;o<a;o+=1)e(t[o],r,n);else for(i=Object.keys(t),o=0,a=i.length;o<a;o+=1)e(t[i[o]],r,n)}(e,i,o),r=0,n=o.length;r<n;r+=1)t.duplicates.push(i[o[r]]);t.usedDuplicates=new Array(n)}function A(e,t){var r=new p(t=t||{});return r.noRefs||C(e,r),S(r,0,e,!0,!0)?r.dump+\"\\n\":\"\"}e.exports.dump=A,e.exports.safeDump=function(e,t){return A(e,n.extend({schema:a},t))}},function(e,t,r){\"use strict\";r(31),r(32),r(33),r(64),r(19),r(65),r(20),r(68),r(92),r(144),r(22),r(94),r(23);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},a=this&&this.__read||function(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a};Object.defineProperty(t,\"__esModule\",{value:!0});var s=r(91),u=r(1),l=r(183),c=r(0),h=r(7),p=r(95),f=r(69),d=r(3),m=r(305),y=r(306),v=r(307),_=function(e){function t(t,r){void 0===r&&(r=!1);var n=e.call(this)||this;return n._hasDeclaration=!1,n._docTypeName=\"\",n._hasDocumentElement=!1,n._currentElementSerialized=!1,n._openTags=[],n._ended=!1,n._fragment=r,n._options=u.applyDefaults(t||{},s.DefaultXMLBuilderCBOptions),n._builderOptions={defaultNamespace:n._options.defaultNamespace,namespaceAlias:n._options.namespaceAlias},\"json\"===n._options.format?n._writer=new y.JSONCBWriter(n._options):\"yaml\"===n._options.format?n._writer=new v.YAMLCBWriter(n._options):n._writer=new m.XMLCBWriter(n._options),void 0!==n._options.data&&n.on(\"data\",n._options.data),void 0!==n._options.end&&n.on(\"end\",n._options.end),void 0!==n._options.error&&n.on(\"error\",n._options.error),n._prefixMap=new p.NamespacePrefixMap,n._prefixMap.set(\"xml\",h.namespace.XML),n._prefixIndex={value:1},n._push(n._writer.frontMatter()),n}return i(t,e),t.prototype.ele=function(e,t,r){var n,i;if(u.isObject(e)||u.isString(e)&&(/^\\s*</.test(e)||/^\\s*[\\{\\[]/.test(e)||/^(\\s*|(#.*)|(%.*))*---/.test(e))){var a=l.fragment().set(this._options);try{a.ele(e)}catch(e){return this.emit(\"error\",e),this}try{for(var s=o(a.node.childNodes),c=s.next();!c.done;c=s.next()){var h=c.value;this._fromNode(h)}}catch(e){n={error:e}}finally{try{c&&!c.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return this}if(this._serializeOpenTag(!0),!this._fragment&&this._hasDocumentElement&&0===this._writer.level)return this.emit(\"error\",new Error(\"Document cannot have multiple document element nodes.\")),this;try{this._currentElement=l.fragment(this._builderOptions).ele(e,t,r)}catch(e){return this.emit(\"error\",e),this}return this._fragment||this._hasDocumentElement||\"\"===this._docTypeName||this._currentElement.node._qualifiedName===this._docTypeName?(this._currentElementSerialized=!1,this._fragment||(this._hasDocumentElement=!0),this):(this.emit(\"error\",new Error(\"Document element name does not match DocType declaration name.\")),this)},t.prototype.att=function(e,t,r){if(void 0===this._currentElement)return this.emit(\"error\",new Error(\"Cannot insert an attribute node as child of a document node.\")),this;try{this._currentElement.att(e,t,r)}catch(e){return this.emit(\"error\",e),this}return this},t.prototype.com=function(e){var t;this._serializeOpenTag(!0);try{t=l.fragment(this._builderOptions).com(e).first().node}catch(e){return this.emit(\"error\",e),this}return!this._options.wellFormed||c.xml_isLegalChar(t.data)&&-1===t.data.indexOf(\"--\")&&!t.data.endsWith(\"-\")?(this._push(this._writer.comment(t.data)),this):(this.emit(\"error\",new Error(\"Comment data contains invalid characters (well-formed required).\")),this)},t.prototype.txt=function(e){if(!this._fragment&&void 0===this._currentElement)return this.emit(\"error\",new Error(\"Cannot insert a text node as child of a document node.\")),this;var t;this._serializeOpenTag(!0);try{t=l.fragment(this._builderOptions).txt(e).first().node}catch(e){return this.emit(\"error\",e),this}if(this._options.wellFormed&&!c.xml_isLegalChar(t.data))return this.emit(\"error\",new Error(\"Text data contains invalid characters (well-formed required).\")),this;var r=t.data.replace(/(?!&(lt|gt|amp|apos|quot);)&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");return this._push(this._writer.text(r)),this},t.prototype.ins=function(e,t){var r;void 0===t&&(t=\"\"),this._serializeOpenTag(!0);try{r=l.fragment(this._builderOptions).ins(e,t).first().node}catch(e){return this.emit(\"error\",e),this}return this._options.wellFormed&&(-1!==r.target.indexOf(\":\")||/^xml$/i.test(r.target))?(this.emit(\"error\",new Error(\"Processing instruction target contains invalid characters (well-formed required).\")),this):this._options.wellFormed&&!c.xml_isLegalChar(r.data)?(this.emit(\"error\",Error(\"Processing instruction data contains invalid characters (well-formed required).\")),this):(this._push(this._writer.instruction(r.target,r.data)),this)},t.prototype.dat=function(e){var t;this._serializeOpenTag(!0);try{t=l.fragment(this._builderOptions).dat(e).first().node}catch(e){return this.emit(\"error\",e),this}return this._push(this._writer.cdata(t.data)),this},t.prototype.dec=function(e){return void 0===e&&(e={version:\"1.0\"}),this._fragment?(this.emit(\"error\",Error(\"Cannot insert an XML declaration into a document fragment.\")),this):this._hasDeclaration?(this.emit(\"error\",Error(\"XML declaration is already inserted.\")),this):(this._push(this._writer.declaration(e.version||\"1.0\",e.encoding,e.standalone)),this._hasDeclaration=!0,this)},t.prototype.dtd=function(e){if(this._fragment)return this.emit(\"error\",Error(\"Cannot insert a DocType declaration into a document fragment.\")),this;if(\"\"!==this._docTypeName)return this.emit(\"error\",new Error(\"DocType declaration is already inserted.\")),this;if(this._hasDocumentElement)return this.emit(\"error\",new Error(\"Cannot insert DocType declaration after document element.\")),this;var t;try{t=l.create().dtd(e).first().node}catch(e){return this.emit(\"error\",e),this}return this._options.wellFormed&&!c.xml_isPubidChar(t.publicId)?(this.emit(\"error\",new Error(\"DocType public identifier does not match PubidChar construct (well-formed required).\")),this):this._options.wellFormed&&(!c.xml_isLegalChar(t.systemId)||-1!==t.systemId.indexOf('\"')&&-1!==t.systemId.indexOf(\"'\"))?(this.emit(\"error\",new Error(\"DocType system identifier contains invalid characters (well-formed required).\")),this):(this._docTypeName=e.name,this._push(this._writer.docType(e.name,t.publicId,t.systemId)),this)},t.prototype.import=function(e){var t,r,n=l.fragment().set(this._options);try{n.import(e)}catch(e){return this.emit(\"error\",e),this}try{for(var i=o(n.node.childNodes),a=i.next();!a.done;a=i.next()){var s=a.value;this._fromNode(s)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}return this},t.prototype.up=function(){return this._serializeOpenTag(!1),this._serializeCloseTag(),this},t.prototype.end=function(){for(this._serializeOpenTag(!1);this._openTags.length>0;)this._serializeCloseTag();return this._push(null),this},t.prototype._serializeOpenTag=function(e){if(!this._currentElementSerialized&&void 0!==this._currentElement){var r=this._currentElement.node;if(!this._options.wellFormed||-1===r.localName.indexOf(\":\")&&c.xml_isName(r.localName)){var n=\"\",i=!1,o=this._prefixMap.copy(),a={},s=this._recordNamespaceInformation(r,o,a),u=0===this._openTags.length?null:this._openTags[this._openTags.length-1][1],l=r.namespaceURI;if(null===l&&(l=u),u===l)null!==s&&(i=!0),n=l===h.namespace.XML?\"xml:\"+r.localName:r.localName,this._writer.beginElement(n),this._push(this._writer.openTagBegin(n));else{var p=r.prefix,f=null;if(null===p&&l===s||(f=o.get(p,l)),\"xmlns\"===p){if(this._options.wellFormed)return void this.emit(\"error\",new Error(\"An element cannot have the 'xmlns' prefix (well-formed required).\"));f=p}null!==f?(n=f+\":\"+r.localName,null!==s&&s!==h.namespace.XML&&(u=s||null),this._writer.beginElement(n),this._push(this._writer.openTagBegin(n))):null!==p?(p in a&&(p=this._generatePrefix(l,o,this._prefixIndex)),o.set(p,l),n+=p+\":\"+r.localName,this._writer.beginElement(n),this._push(this._writer.openTagBegin(n)),this._push(this._writer.attribute(\"xmlns:\"+p,this._serializeAttributeValue(l,this._options.wellFormed))),null!==s&&(u=s||null)):null===s||null!==s&&s!==l?(i=!0,n+=r.localName,u=l,this._writer.beginElement(n),this._push(this._writer.openTagBegin(n)),this._push(this._writer.attribute(\"xmlns\",this._serializeAttributeValue(l,this._options.wellFormed)))):(n+=r.localName,u=l,this._writer.beginElement(n),this._push(this._writer.openTagBegin(n)))}this._serializeAttributes(r,o,this._prefixIndex,a,i,this._options.wellFormed);var d=l===h.namespace.HTML;d&&!e&&t._VoidElementNames.has(r.localName)?(this._push(this._writer.openTagEnd(n,!0,!0)),this._writer.endElement(n)):d||e?this._push(this._writer.openTagEnd(n,!1,!1)):(this._push(this._writer.openTagEnd(n,!0,!1)),this._writer.endElement(n)),this._currentElementSerialized=!0,this._openTags.push([n,u,this._prefixMap,e]),this._isPrefixMapModified(this._prefixMap,o)&&(this._prefixMap=o),this._writer.level++}else this.emit(\"error\",new Error(\"Node local name contains invalid characters (well-formed required).\"))}},t.prototype._serializeCloseTag=function(){this._writer.level--;var e=this._openTags.pop();if(void 0!==e){var t=a(e,4),r=t[0],n=(t[1],t[2]),i=t[3];this._prefixMap=n,i&&(this._push(this._writer.closeTag(r)),this._writer.endElement(r))}else this.emit(\"error\",new Error(\"Last element is undefined.\"))},t.prototype._push=function(e){null===e?(this._ended=!0,this.emit(\"end\")):this._ended?this.emit(\"error\",new Error(\"Cannot push to ended stream.\")):0!==e.length&&(this._writer.hasData=!0,this.emit(\"data\",e,this._writer.level))},t.prototype._fromNode=function(e){var t,r,n,i;if(d.Guard.isElementNode(e)){var a=e.prefix?e.prefix+\":\"+e.localName:e.localName;null!==e.namespaceURI?this.ele(e.namespaceURI,a):this.ele(a);try{for(var s=o(e.attributes),u=s.next();!u.done;u=s.next()){var l=u.value,c=l.prefix?l.prefix+\":\"+l.localName:l.localName;null!==l.namespaceURI?this.att(l.namespaceURI,c,l.value):this.att(c,l.value)}}catch(e){t={error:e}}finally{try{u&&!u.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}try{for(var h=o(e.childNodes),p=h.next();!p.done;p=h.next()){var f=p.value;this._fromNode(f)}}catch(e){n={error:e}}finally{try{p&&!p.done&&(i=h.return)&&i.call(h)}finally{if(n)throw n.error}}this.up()}else d.Guard.isExclusiveTextNode(e)&&e.data?this.txt(e.data):d.Guard.isCommentNode(e)?this.com(e.data):d.Guard.isCDATASectionNode(e)?this.dat(e.data):d.Guard.isProcessingInstructionNode(e)&&this.ins(e.target,e.data)},t.prototype._serializeAttributes=function(e,t,r,n,i,a){var s,u,l=a?new f.LocalNameSet:void 0;try{for(var p=o(e.attributes),d=p.next();!d.done;d=p.next()){var m=d.value;if(a||i||null!==m.namespaceURI){if(a&&l&&l.has(m.namespaceURI,m.localName))return void this.emit(\"error\",new Error(\"Element contains duplicate attributes (well-formed required).\"));a&&l&&l.set(m.namespaceURI,m.localName);var y=m.namespaceURI,v=null;if(null!==y)if(v=t.get(m.prefix,y),y===h.namespace.XMLNS){if(m.value===h.namespace.XML||null===m.prefix&&i||null!==m.prefix&&(!(m.localName in n)||n[m.localName]!==m.value)&&t.has(m.localName,m.value))continue;if(a&&m.value===h.namespace.XMLNS)return void this.emit(\"error\",new Error(\"XMLNS namespace is reserved (well-formed required).\"));if(a&&\"\"===m.value)return void this.emit(\"error\",new Error(\"Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).\"));\"xmlns\"===m.prefix&&(v=\"xmlns\")}else null===v&&(v=null===m.prefix||t.hasPrefix(m.prefix)&&!t.has(m.prefix,y)?this._generatePrefix(y,t,r):m.prefix,this._push(this._writer.attribute(\"xmlns:\"+v,this._serializeAttributeValue(y,this._options.wellFormed))));if(a&&(-1!==m.localName.indexOf(\":\")||!c.xml_isName(m.localName)||\"xmlns\"===m.localName&&null===y))return void this.emit(\"error\",new Error(\"Attribute local name contains invalid characters (well-formed required).\"));this._push(this._writer.attribute((null!==v?v+\":\":\"\")+m.localName,this._serializeAttributeValue(m.value,this._options.wellFormed)))}else this._push(this._writer.attribute(m.localName,this._serializeAttributeValue(m.value,this._options.wellFormed)))}}catch(e){s={error:e}}finally{try{d&&!d.done&&(u=p.return)&&u.call(p)}finally{if(s)throw s.error}}},t.prototype._serializeAttributeValue=function(e,t){return t&&null!==e&&!c.xml_isLegalChar(e)?(this.emit(\"error\",new Error(\"Invalid characters in attribute value.\")),\"\"):null===e?\"\":e.replace(/(?!&(lt|gt|amp|apos|quot);)&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\")},t.prototype._recordNamespaceInformation=function(e,t,r){var n,i,a=null;try{for(var s=o(e.attributes),u=s.next();!u.done;u=s.next()){var l=u.value,c=l.namespaceURI,p=l.prefix;if(c===h.namespace.XMLNS){if(null===p){a=l.value;continue}var f=l.localName,d=l.value;if(d===h.namespace.XML)continue;if(\"\"===d&&(d=null),t.has(f,d))continue;t.set(f,d),r[f]=d||\"\"}}}catch(e){n={error:e}}finally{try{u&&!u.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return a},t.prototype._generatePrefix=function(e,t,r){var n=\"ns\"+r.value;return r.value++,t.set(n,e),n},t.prototype._isPrefixMapModified=function(e,t){var r=e._items,n=t._items,i=e._nullItems,o=t._nullItems;for(var a in n){var s=r[a];if(void 0===s)return!0;var u=n[a];if(s.length!==u.length)return!0;for(var l=0;l<s.length;l++)if(s[l]!==u[l])return!0}if(i.length!==o.length)return!0;for(l=0;l<i.length;l++)if(i[l]!==o[l])return!0;return!1},t._VoidElementNames=new Set([\"area\",\"base\",\"basefont\",\"bgsound\",\"br\",\"col\",\"embed\",\"frame\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"]),t}(r(308).EventEmitter);t.XMLBuilderCBImpl=_},function(e,t,r){\"use strict\";r(74);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t){var r=e.call(this,t)||this;return r._lineLength=0,r}return i(t,e),t.prototype.frontMatter=function(){return\"\"},t.prototype.declaration=function(e,t,r){var n=this._beginLine()+\"<?xml\";return n+=' version=\"'+e+'\"',void 0!==t&&(n+=' encoding=\"'+t+'\"'),void 0!==r&&(n+=' standalone=\"'+(r?\"yes\":\"no\")+'\"'),n+=\"?>\"},t.prototype.docType=function(e,t,r){var n=this._beginLine();return n+=t&&r?\"<!DOCTYPE \"+e+' PUBLIC \"'+t+'\" \"'+r+'\">':t?\"<!DOCTYPE \"+e+' PUBLIC \"'+t+'\">':r?\"<!DOCTYPE \"+e+' SYSTEM \"'+r+'\">':\"<!DOCTYPE \"+e+\">\"},t.prototype.comment=function(e){return this._beginLine()+\"\\x3c!--\"+e+\"--\\x3e\"},t.prototype.text=function(e){return this._beginLine()+e},t.prototype.instruction=function(e,t){return t?this._beginLine()+\"<?\"+e+\" \"+t+\"?>\":this._beginLine()+\"<?\"+e+\"?>\"},t.prototype.cdata=function(e){return this._beginLine()+\"<![CDATA[\"+e+\"]]>\"},t.prototype.openTagBegin=function(e){return this._lineLength+=1+e.length,this._beginLine()+\"<\"+e},t.prototype.openTagEnd=function(e,t,r){return r?\" />\":t?this._writerOptions.allowEmptyTags?\"></\"+e+\">\":this._writerOptions.spaceBeforeSlash?\" />\":\"/>\":\">\"},t.prototype.closeTag=function(e){return this._beginLine()+\"</\"+e+\">\"},t.prototype.attribute=function(e,t){var r=e+'=\"'+t+'\"';return this._writerOptions.prettyPrint&&this._writerOptions.width>0&&this._lineLength+1+r.length>this._writerOptions.width?(r=this._beginLine()+this._indent(1)+r,this._lineLength=r.length,r):(this._lineLength+=1+r.length,\" \"+r)},t.prototype.beginElement=function(e){},t.prototype.endElement=function(e){},t.prototype._beginLine=function(){if(this._writerOptions.prettyPrint){var e=(this.hasData?this._writerOptions.newline:\"\")+this._indent(this._writerOptions.offset+this.level);return this._lineLength=e.length,e}return\"\"},t.prototype._indent=function(e){return e<=0?\"\":this._writerOptions.indent.repeat(e)},t}(r(114).BaseCBWriter);t.XMLCBWriter=o},function(e,t,r){\"use strict\";r(74);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t){var r=e.call(this,t)||this;return r._hasChildren=[],r._additionalLevel=0,r}return i(t,e),t.prototype.frontMatter=function(){return\"\"},t.prototype.declaration=function(e,t,r){return\"\"},t.prototype.docType=function(e,t,r){return\"\"},t.prototype.comment=function(e){return this._comma()+this._beginLine()+\"{\"+this._sep()+this._key(this._builderOptions.convert.comment)+this._sep()+this._val(e)+this._sep()+\"}\"},t.prototype.text=function(e){return this._comma()+this._beginLine()+\"{\"+this._sep()+this._key(this._builderOptions.convert.text)+this._sep()+this._val(e)+this._sep()+\"}\"},t.prototype.instruction=function(e,t){return this._comma()+this._beginLine()+\"{\"+this._sep()+this._key(this._builderOptions.convert.ins)+this._sep()+this._val(t?e+\" \"+t:e)+this._sep()+\"}\"},t.prototype.cdata=function(e){return this._comma()+this._beginLine()+\"{\"+this._sep()+this._key(this._builderOptions.convert.cdata)+this._sep()+this._val(e)+this._sep()+\"}\"},t.prototype.attribute=function(e,t){return this._comma()+this._beginLine(1)+\"{\"+this._sep()+this._key(this._builderOptions.convert.att+e)+this._sep()+this._val(t)+this._sep()+\"}\"},t.prototype.openTagBegin=function(e){var t=this._comma()+this._beginLine()+\"{\"+this._sep()+this._key(e)+this._sep()+\"{\";return this._additionalLevel++,this.hasData=!0,t+=this._beginLine()+this._key(this._builderOptions.convert.text)+this._sep()+\"[\",this._hasChildren.push(!1),t},t.prototype.openTagEnd=function(e,t,r){if(t){var n=this._sep()+\"]\";return this._additionalLevel--,n+=this._beginLine()+\"}\"+this._sep()+\"}\"}return\"\"},t.prototype.closeTag=function(e){var t=this._beginLine()+\"]\";return this._additionalLevel--,t+=this._beginLine()+\"}\"+this._sep()+\"}\"},t.prototype.beginElement=function(e){},t.prototype.endElement=function(e){this._hasChildren.pop()},t.prototype._beginLine=function(e){return void 0===e&&(e=0),this._writerOptions.prettyPrint?(this.hasData?this._writerOptions.newline:\"\")+this._indent(this._writerOptions.offset+this.level+e):\"\"},t.prototype._indent=function(e){return e+this._additionalLevel<=0?\"\":this._writerOptions.indent.repeat(e+this._additionalLevel)},t.prototype._comma=function(){var e=this._hasChildren[this._hasChildren.length-1]?\",\":\"\";return this._hasChildren.length>0&&(this._hasChildren[this._hasChildren.length-1]=!0),e},t.prototype._sep=function(){return this._writerOptions.prettyPrint?\" \":\"\"},t.prototype._key=function(e){return'\"'+e+'\":'},t.prototype._val=function(e){return JSON.stringify(e)},t}(r(114).BaseCBWriter);t.JSONCBWriter=o},function(e,t,r){\"use strict\";r(74);var n,i=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t){var r=e.call(this,t)||this;if(r._rootWritten=!1,r._additionalLevel=0,t.indent.length<2)throw new Error(\"YAML indententation string must be at least two characters long.\");if(t.offset<0)throw new Error(\"YAML offset should be zero or a positive number.\");return r}return i(t,e),t.prototype.frontMatter=function(){return this._beginLine()+\"---\"},t.prototype.declaration=function(e,t,r){return\"\"},t.prototype.docType=function(e,t,r){return\"\"},t.prototype.comment=function(e){return this._beginLine()+this._key(this._builderOptions.convert.comment)+\" \"+this._val(e)},t.prototype.text=function(e){return this._beginLine()+this._key(this._builderOptions.convert.text)+\" \"+this._val(e)},t.prototype.instruction=function(e,t){return this._beginLine()+this._key(this._builderOptions.convert.ins)+\" \"+this._val(t?e+\" \"+t:e)},t.prototype.cdata=function(e){return this._beginLine()+this._key(this._builderOptions.convert.cdata)+\" \"+this._val(e)},t.prototype.attribute=function(e,t){this._additionalLevel++;var r=this._beginLine()+this._key(this._builderOptions.convert.att+e)+\" \"+this._val(t);return this._additionalLevel--,r},t.prototype.openTagBegin=function(e){var t=this._beginLine()+this._key(e);return this._rootWritten||(this._rootWritten=!0),this.hasData=!0,this._additionalLevel++,t+=this._beginLine(!0)+this._key(this._builderOptions.convert.text)},t.prototype.openTagEnd=function(e,t,r){return t?\" \"+this._val(\"\"):\"\"},t.prototype.closeTag=function(e){return this._additionalLevel--,\"\"},t.prototype.beginElement=function(e){},t.prototype.endElement=function(e){},t.prototype._beginLine=function(e){return void 0===e&&(e=!1),(this.hasData?this._writerOptions.newline:\"\")+this._indent(this._writerOptions.offset+this.level,e)},t.prototype._indent=function(e,t){if(e+this._additionalLevel<=0)return\"\";var r=this._writerOptions.indent.repeat(e+this._additionalLevel);return!t&&this._rootWritten?r.substr(0,r.length-2)+\"-\"+r.substr(-1,1):r},t.prototype._key=function(e){return'\"'+e+'\":'},t.prototype._val=function(e){return JSON.stringify(e)},t}(r(114).BaseCBWriter);t.YAMLCBWriter=o},function(e,t,r){\"use strict\";var n,i=\"object\"==typeof Reflect?Reflect:null,o=i&&\"function\"==typeof i.apply?i.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};n=i&&\"function\"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var u=10;function l(e){if(\"function\"!=typeof e)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function h(e,t,r,n){var i,o,a,s;if(l(r),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit(\"newListener\",t,r.listener?r.listener:r),o=e._events),a=o[t]),void 0===a)a=o[t]=r,++e._eventsCount;else if(\"function\"==typeof a?a=o[t]=n?[r,a]:[a,r]:n?a.unshift(r):a.push(r),(i=c(e))>0&&a.length>i&&!a.warned){a.warned=!0;var u=new Error(\"Possible EventEmitter memory leak detected. \"+a.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");u.name=\"MaxListenersExceededWarning\",u.emitter=e,u.type=t,u.count=a.length,s=u,console&&console.warn&&console.warn(s)}return e}function p(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=p.bind(n);return i.listener=r,n.wrapFn=i,i}function d(e,t,r){var n=e._events;if(void 0===n)return[];var i=n[t];return void 0===i?[]:\"function\"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(i):y(i,i.length)}function m(e){var t=this._events;if(void 0!==t){var r=t[e];if(\"function\"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function y(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}Object.defineProperty(s,\"defaultMaxListeners\",{enumerable:!0,get:function(){return u},set:function(e){if(\"number\"!=typeof e||e<0||a(e))throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+e+\".\");u=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if(\"number\"!=typeof e||e<0||a(e))throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+e+\".\");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var n=\"error\"===e,i=this._events;if(void 0!==i)n=n&&void 0===i.error;else if(!n)return!1;if(n){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error(\"Unhandled error.\"+(a?\" (\"+a.message+\")\":\"\"));throw s.context=a,s}var u=i[e];if(void 0===u)return!1;if(\"function\"==typeof u)o(u,this,t);else{var l=u.length,c=y(u,l);for(r=0;r<l;++r)o(c[r],this,t)}return!0},s.prototype.addListener=function(e,t){return h(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return h(this,e,t,!0)},s.prototype.once=function(e,t){return l(t),this.on(e,f(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,f(this,e,t)),this},s.prototype.removeListener=function(e,t){var r,n,i,o,a;if(l(t),void 0===(n=this._events))return this;if(void 0===(r=n[e]))return this;if(r===t||r.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit(\"removeListener\",e,r.listener||t));else if(\"function\"!=typeof r){for(i=-1,o=r.length-1;o>=0;o--)if(r[o]===t||r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(r,i),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit(\"removeListener\",e,a||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var i,o=Object.keys(r);for(n=0;n<o.length;++n)\"removeListener\"!==(i=o[n])&&this.removeAllListeners(i);return this.removeAllListeners(\"removeListener\"),this._events=Object.create(null),this._eventsCount=0,this}if(\"function\"==typeof(t=r[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},s.prototype.listenerCount=m,s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(77);t.createCB=function(e){return new n.XMLBuilderCBImpl(e)},t.fragmentCB=function(e){return new n.XMLBuilderCBImpl(e,!0)}}])}));\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/xmlbuilder2/lib/xmlbuilder2.min.js?");

/***/ }),

/***/ "./src/index.js":
/*!**********************!*\
  !*** ./src/index.js ***!
  \**********************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _kitware_vtk_js_Rendering_Profiles_Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @kitware/vtk.js/Rendering/Profiles/Geometry */ \"./node_modules/@kitware/vtk.js/Rendering/Profiles/Geometry.js\");\n/* harmony import */ var _kitware_vtk_js_macro__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @kitware/vtk.js/macro */ \"./node_modules/@kitware/vtk.js/macro.js\");\n/* harmony import */ var _kitware_vtk_js_Rendering_Core_Actor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @kitware/vtk.js/Rendering/Core/Actor */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Actor.js\");\n/* harmony import */ var _kitware_vtk_js_Common_Core_DataArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @kitware/vtk.js/Common/Core/DataArray */ \"./node_modules/@kitware/vtk.js/Common/Core/DataArray.js\");\n/* harmony import */ var _kitware_vtk_js_Rendering_Core_ScalarBarActor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @kitware/vtk.js/Rendering/Core/ScalarBarActor */ \"./node_modules/@kitware/vtk.js/Rendering/Core/ScalarBarActor.js\");\n/* harmony import */ var _kitware_vtk_js_Rendering_Core_ColorTransferFunction_ColorMaps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps */ \"./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps.js\");\n/* harmony import */ var _kitware_vtk_js_Rendering_Core_ColorTransferFunction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @kitware/vtk.js/Rendering/Core/ColorTransferFunction */ \"./node_modules/@kitware/vtk.js/Rendering/Core/ColorTransferFunction.js\");\n/* harmony import */ var _kitware_vtk_js_Rendering_Misc_FullScreenRenderWindow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow */ \"./node_modules/@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow.js\");\n/* harmony import */ var _kitware_vtk_js_Rendering_Core_Mapper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @kitware/vtk.js/Rendering/Core/Mapper */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js\");\n/* harmony import */ var _kitware_vtk_js_Common_Core_URLExtract__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @kitware/vtk.js/Common/Core/URLExtract */ \"./node_modules/@kitware/vtk.js/Common/Core/URLExtract.js\");\n/* harmony import */ var _kitware_vtk_js_IO_XML_XMLPolyDataReader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @kitware/vtk.js/IO/XML/XMLPolyDataReader */ \"./node_modules/@kitware/vtk.js/IO/XML/XMLPolyDataReader.js\");\n/* harmony import */ var _kitware_vtk_js_Interaction_UI_FPSMonitor__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @kitware/vtk.js/Interaction/UI/FPSMonitor */ \"./node_modules/@kitware/vtk.js/Interaction/UI/FPSMonitor.js\");\n/* harmony import */ var _kitware_vtk_js_Common_Core_Base64__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @kitware/vtk.js/Common/Core/Base64 */ \"./node_modules/@kitware/vtk.js/Common/Core/Base64.js\");\n/* harmony import */ var _kitware_vtk_js_IO_Core_DataAccessHelper_HtmlDataAccessHelper__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper */ \"./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js\");\n/* harmony import */ var _kitware_vtk_js_IO_Core_DataAccessHelper_JSZipDataAccessHelper__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @kitware/vtk.js/IO/Core/DataAccessHelper/JSZipDataAccessHelper */ \"./node_modules/@kitware/vtk.js/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js\");\n/* harmony import */ var _kitware_vtk_js_Rendering_Core_Mapper_Constants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @kitware/vtk.js/Rendering/Core/Mapper/Constants */ \"./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Constants.js\");\n/* harmony import */ var _GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./GeometryViewer.module.css */ \"./src/GeometryViewer.module.css\");\n/* harmony import */ var _favicon_96x96_png__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./favicon-96x96.png */ \"./src/favicon-96x96.png\");\n// Load the rendering pieces we want to use (for both WebGL and WebGPU)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Force DataAccessHelper to have access to various data source\n\n\n\n\n\n\n\n\nlet background = [0, 0, 0];\nlet renderWindow;\nlet renderer;\nlet scalarBarActor;\n\n__webpack_require__.g.pipeline = {};\n\n// Process arguments from URL\nconst userParams = _kitware_vtk_js_Common_Core_URLExtract__WEBPACK_IMPORTED_MODULE_9__[\"default\"].extractURLParameters();\n\n// Background handling\nif (userParams.background) {\n  background = userParams.background.split(',').map((s) => Number(s));\n}\nconst selectorClass =\n  background.length === 3 && background.reduce((a, b) => a + b, 0) < 1.5\n    ? _GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_16__[\"default\"].dark\n    : _GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_16__[\"default\"].light;\n\n// lut\nconst lutName = userParams.lut || 'erdc_rainbow_bright';\n\n// field\nconst field = userParams.field || '';\n\n// camera\nfunction updateCamera (camera) {\n  ['zoom', 'pitch', 'elevation', 'yaw', 'azimuth', 'roll', 'dolly'].forEach(\n    (key) => {\n      if (userParams[key]) {\n        camera[key](userParams[key]);\n      }\n      renderWindow.render();\n    }\n  );\n}\n__webpack_require__.g.updateCamera = updateCamera;\n\n// ----------------------------------------------------------------------------\n// DOM containers for UI control\n// ----------------------------------------------------------------------------\n\nconst rootControllerContainer = document.createElement('div');\nrootControllerContainer.setAttribute('class', _GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_16__[\"default\"].rootController);\n\nconst addDataSetButton = document.createElement('img');\naddDataSetButton.setAttribute('class', _GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_16__[\"default\"].button);\naddDataSetButton.setAttribute('src', _favicon_96x96_png__WEBPACK_IMPORTED_MODULE_17__[\"default\"]);\naddDataSetButton.addEventListener('click', () => {\n  const isVisible = rootControllerContainer.style.display !== 'none';\n  rootControllerContainer.style.display = isVisible ? 'none' : 'flex';\n});\n\nconst fpsMonitor = _kitware_vtk_js_Interaction_UI_FPSMonitor__WEBPACK_IMPORTED_MODULE_11__[\"default\"].newInstance();\nconst fpsElm = fpsMonitor.getFpsMonitorContainer();\nfpsElm.classList.add(_GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_16__[\"default\"].fpsMonitor);\n\n// ----------------------------------------------------------------------------\n// Add class to body if iOS device\n// ----------------------------------------------------------------------------\n\nconst iOS = /iPad|iPhone|iPod/.test(window.navigator.platform);\n\nif (iOS) {\n  document.querySelector('body').classList.add('is-ios-device');\n}\n\n// ----------------------------------------------------------------------------\n\nfunction emptyContainer (container) {\n  fpsMonitor.setContainer(null);\n  while (container.firstChild) {\n    container.removeChild(container.firstChild);\n  }\n}\n\n__webpack_require__.g.emptyContainer = emptyContainer;\n// ----------------------------------------------------------------------------\n\nfunction createViewer (container) {\n  const fullScreenRenderer = _kitware_vtk_js_Rendering_Misc_FullScreenRenderWindow__WEBPACK_IMPORTED_MODULE_7__[\"default\"].newInstance({\n    background,\n    rootContainer: container,\n    containerStyle: { height: '100%', width: '100%', position: 'absolute' }\n  });\n  renderer = fullScreenRenderer.getRenderer();\n  renderWindow = fullScreenRenderer.getRenderWindow();\n\n  __webpack_require__.g.fullScreenRenderer = fullScreenRenderer;\n  __webpack_require__.g.renderer = renderer;\n  __webpack_require__.g.renderWindow = renderWindow;\n\n  renderWindow.getInteractor().setDesiredUpdateRate(15);\n\n  container.appendChild(rootControllerContainer);\n  container.appendChild(addDataSetButton);\n\n  scalarBarActor = _kitware_vtk_js_Rendering_Core_ScalarBarActor__WEBPACK_IMPORTED_MODULE_4__[\"default\"].newInstance();\n  renderer.addActor(scalarBarActor);\n\n  if (userParams.fps) {\n    if (Array.isArray(userParams.fps)) {\n      fpsMonitor.setMonitorVisibility(...userParams.fps);\n      if (userParams.fps.length === 4) {\n        fpsMonitor.setOrientation(userParams.fps[3]);\n      }\n    }\n    fpsMonitor.setRenderWindow(renderWindow);\n    fpsMonitor.setContainer(container);\n    fullScreenRenderer.setResizeCallback(fpsMonitor.update);\n  }\n}\n__webpack_require__.g.createViewer = createViewer;\n\n// ----------------------------------------------------------------------------\n\nfunction createPipeline (fileContents, name = undefined) {\n  // Create UI\n  const presetSelector = document.createElement('select');\n  presetSelector.setAttribute('class', selectorClass);\n  presetSelector.innerHTML = _kitware_vtk_js_Rendering_Core_ColorTransferFunction_ColorMaps__WEBPACK_IMPORTED_MODULE_5__[\"default\"].rgbPresetNames.map(\n      (name) =>\n        `<option value=\"${name}\" ${\n          lutName === name ? 'selected=\"selected\"' : ''\n        }>${name}</option>`\n    )\n    .join('');\n\n  const representationSelector = document.createElement('select');\n  representationSelector.setAttribute('class', selectorClass);\n  representationSelector.innerHTML = [\n    'Hidden',\n    'Points',\n    'Wireframe',\n    'Surface',\n    'Surface with Edge'\n  ]\n    .map(\n      (name, idx) =>\n        `<option value=\"${idx === 0 ? 0 : 1}:${idx < 4 ? idx - 1 : 2}:${\n          idx === 4 ? 1 : 0\n        }\">${name}</option>`\n    )\n    .join('');\n  representationSelector.value = '1:2:0';\n\n  const colorBySelector = document.createElement('select');\n  colorBySelector.setAttribute('class', selectorClass);\n\n  const componentSelector = document.createElement('select');\n  componentSelector.setAttribute('class', selectorClass);\n  componentSelector.style.display = 'none';\n\n  const opacitySelector = document.createElement('input');\n  opacitySelector.setAttribute('class', selectorClass);\n  opacitySelector.setAttribute('type', 'range');\n  opacitySelector.setAttribute('value', '100');\n  opacitySelector.setAttribute('max', '100');\n  opacitySelector.setAttribute('min', '1');\n\n  const pointSizeSelector = document.createElement('input');\n  pointSizeSelector.setAttribute('class', selectorClass);\n  pointSizeSelector.setAttribute('type', 'range');\n  pointSizeSelector.setAttribute('value', '1');\n  pointSizeSelector.setAttribute('max', '20');\n  pointSizeSelector.setAttribute('min', '1');\n  pointSizeSelector.style.display = 'none'; // Default hidden\n\n  if (name === undefined) {\n    name = 'Mesh';\n  }\n  const labelSelector = document.createElement('label');\n  labelSelector.setAttribute('class', selectorClass);\n  labelSelector.innerHTML = name;\n\n  const controlContainer = document.createElement('div');\n  controlContainer.setAttribute('class', _GeometryViewer_module_css__WEBPACK_IMPORTED_MODULE_16__[\"default\"].control);\n  controlContainer.appendChild(labelSelector);\n  controlContainer.appendChild(representationSelector);\n  controlContainer.appendChild(presetSelector);\n  controlContainer.appendChild(colorBySelector);\n  controlContainer.appendChild(componentSelector);\n  controlContainer.appendChild(opacitySelector);\n  controlContainer.appendChild(pointSizeSelector);\n  rootControllerContainer.appendChild(controlContainer);\n\n  // VTK pipeline\n  const vtpReader = _kitware_vtk_js_IO_XML_XMLPolyDataReader__WEBPACK_IMPORTED_MODULE_10__[\"default\"].newInstance();\n  var buffer = _kitware_vtk_js_Common_Core_Base64__WEBPACK_IMPORTED_MODULE_12__[\"default\"].toArrayBuffer(fileContents);\n  vtpReader.parseAsArrayBuffer(buffer);\n\n  const lookupTable = _kitware_vtk_js_Rendering_Core_ColorTransferFunction__WEBPACK_IMPORTED_MODULE_6__[\"default\"].newInstance();\n  const source = vtpReader.getOutputData(0);\n  const mapper = _kitware_vtk_js_Rendering_Core_Mapper__WEBPACK_IMPORTED_MODULE_8__[\"default\"].newInstance({\n    interpolateScalarsBeforeMapping: false,\n    useLookupTableScalarRange: true,\n    lookupTable,\n    scalarVisibility: false\n  });\n  const actor = _kitware_vtk_js_Rendering_Core_Actor__WEBPACK_IMPORTED_MODULE_2__[\"default\"].newInstance();\n  const scalars = source.getPointData().getScalars();\n  const dataRange = [].concat(scalars ? scalars.getRange() : [0, 1]);\n  let activeArray = _kitware_vtk_js_Common_Core_DataArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n\n  // --------------------------------------------------------------------\n  // Color handling\n  // --------------------------------------------------------------------\n\n  function applyPreset () {\n    const preset = _kitware_vtk_js_Rendering_Core_ColorTransferFunction_ColorMaps__WEBPACK_IMPORTED_MODULE_5__[\"default\"].getPresetByName(presetSelector.value);\n    lookupTable.applyColorMap(preset);\n    lookupTable.setMappingRange(dataRange[0], dataRange[1]);\n    lookupTable.updateRange();\n    renderWindow.render();\n  }\n  applyPreset();\n  presetSelector.addEventListener('change', applyPreset);\n\n  // --------------------------------------------------------------------\n  // Representation handling\n  // --------------------------------------------------------------------\n\n  function updateRepresentation (event) {\n    const [\n      visibility,\n      representation,\n      edgeVisibility\n    ] = event.target.value.split(':').map(Number);\n    actor.getProperty().set({ representation, edgeVisibility });\n    actor.setVisibility(!!visibility);\n    renderWindow.render();\n    console.log(representation);\n    if (representation === 0) {\n      // Points === 0\n      pointSizeSelector.style.display = 'block';\n    } else {\n      pointSizeSelector.style.display = 'none';\n    }\n  }\n  representationSelector.addEventListener('change', updateRepresentation);\n\n  // --------------------------------------------------------------------\n  // Opacity handling\n  // --------------------------------------------------------------------\n\n  function updateOpacity (event) {\n    const opacity = Number(event.target.value) / 100;\n    actor.getProperty().setOpacity(opacity);\n    renderWindow.render();\n  }\n\n  opacitySelector.addEventListener('input', updateOpacity);\n\n  // --------------------------------------------------------------------\n  // Point size handling\n  // --------------------------------------------------------------------\n\n  function updatePointSize (event) {\n    const pointSize = Number(event.target.value);\n    actor.getProperty().setPointSize(pointSize);\n    renderWindow.render();\n  }\n\n  pointSizeSelector.addEventListener('input', updatePointSize);\n\n  // --------------------------------------------------------------------\n  // ColorBy handling\n  // --------------------------------------------------------------------\n\n  const colorByOptions = [{ value: ':', label: 'Solid color' }].concat(\n    source\n      .getPointData()\n      .getArrays()\n      .map((a) => ({\n        label: `(p) ${a.getName()}`,\n        value: `PointData:${a.getName()}`\n      })),\n    source\n      .getCellData()\n      .getArrays()\n      .map((a) => ({\n        label: `(c) ${a.getName()}`,\n        value: `CellData:${a.getName()}`\n      }))\n  );\n  colorBySelector.innerHTML = colorByOptions\n    .map(\n      ({ label, value }) =>\n        `<option value=\"${value}\" ${\n          field === value ? 'selected=\"selected\"' : ''\n        }>${label}</option>`\n    )\n    .join('');\n\n  function updateColorBy (event) {\n    const [location, colorByArrayName] = event.target.value.split(':');\n    const interpolateScalarsBeforeMapping = location === 'PointData';\n    let colorMode = _kitware_vtk_js_Rendering_Core_Mapper_Constants__WEBPACK_IMPORTED_MODULE_15__.ColorMode.DEFAULT;\n    let scalarMode = _kitware_vtk_js_Rendering_Core_Mapper_Constants__WEBPACK_IMPORTED_MODULE_15__.ScalarMode.DEFAULT;\n    const scalarVisibility = location.length > 0;\n    if (scalarVisibility) {\n      const newArray = source[`get${location}`]().getArrayByName(\n        colorByArrayName\n      );\n      activeArray = newArray;\n      const newDataRange = activeArray.getRange();\n      dataRange[0] = newDataRange[0];\n      dataRange[1] = newDataRange[1];\n      colorMode = _kitware_vtk_js_Rendering_Core_Mapper_Constants__WEBPACK_IMPORTED_MODULE_15__.ColorMode.MAP_SCALARS;\n      scalarMode =\n        location === 'PointData'\n          ? _kitware_vtk_js_Rendering_Core_Mapper_Constants__WEBPACK_IMPORTED_MODULE_15__.ScalarMode.USE_POINT_FIELD_DATA\n          : _kitware_vtk_js_Rendering_Core_Mapper_Constants__WEBPACK_IMPORTED_MODULE_15__.ScalarMode.USE_CELL_FIELD_DATA;\n\n      const numberOfComponents = activeArray.getNumberOfComponents();\n      if (numberOfComponents > 1) {\n        // always start on magnitude setting\n        if (mapper.getLookupTable()) {\n          const lut = mapper.getLookupTable();\n          lut.setVectorModeToMagnitude();\n        }\n        componentSelector.style.display = 'block';\n        const compOpts = ['Magnitude'];\n        while (compOpts.length <= numberOfComponents) {\n          compOpts.push(`Component ${compOpts.length}`);\n        }\n        componentSelector.innerHTML = compOpts\n          .map((t, index) => `<option value=\"${index - 1}\">${t}</option>`)\n          .join('');\n        if (numberOfComponents > 2 && numberOfComponents < 5) {\n          componentSelector.innerHTML += '<option value=\"-2\">RGB(A)</option>';\n        }\n      } else {\n        componentSelector.style.display = 'none';\n      }\n      scalarBarActor.setAxisLabel(colorByArrayName);\n      scalarBarActor.setVisibility(true);\n    } else {\n      componentSelector.style.display = 'none';\n      scalarBarActor.setVisibility(false);\n    }\n    mapper.set({\n      colorByArrayName,\n      colorMode,\n      interpolateScalarsBeforeMapping,\n      scalarMode,\n      scalarVisibility\n    });\n    applyPreset();\n  }\n  colorBySelector.addEventListener('change', updateColorBy);\n  updateColorBy({ target: colorBySelector });\n\n  function updateColorByComponent (event) {\n    if (mapper.getLookupTable()) {\n      const lut = mapper.getLookupTable();\n      const v = Number(event.target.value);\n      if (v === -1) {\n        lut.setVectorModeToMagnitude();\n        mapper.setColorModeToMapScalars();\n        scalarBarActor.setVisibility(true);\n      } else if (v === -2) {\n        lut.setVectorModeToRGBColors();\n        mapper.setColorModeToDirectScalars();\n        scalarBarActor.setVisibility(false);\n      } else {\n        lut.setVectorModeToComponent();\n        mapper.setColorModeToMapScalars();\n        scalarBarActor.setVisibility(true);\n        lut.setVectorComponent(v);\n        const newDataRange = activeArray.getRange(v);\n        dataRange[0] = newDataRange[0];\n        dataRange[1] = newDataRange[1];\n        lookupTable.setMappingRange(dataRange[0], dataRange[1]);\n        lut.updateRange();\n      }\n      renderWindow.render();\n    }\n  }\n  componentSelector.addEventListener('change', updateColorByComponent);\n\n  // --------------------------------------------------------------------\n  // Pipeline handling\n  // --------------------------------------------------------------------\n\n  actor.setMapper(mapper);\n  mapper.setInputData(source);\n  renderer.addActor(actor);\n\n  scalarBarActor.setScalarsToColors(mapper.getLookupTable());\n\n  // Manage update when lookupTable change\n  const debouncedRender = (0,_kitware_vtk_js_macro__WEBPACK_IMPORTED_MODULE_1__.debounce)(renderWindow.render, 10);\n  lookupTable.onModified(debouncedRender, -1);\n\n  // First render\n  renderer.resetCamera();\n  renderWindow.render();\n\n  // global.pipeline[fileName] = {\n  //   actor,\n  //   mapper,\n  //   source,\n  //   lookupTable,\n  //   renderer,\n  //   renderWindow,\n  // };\n\n  // Update stats\n  fpsMonitor.update();\n}\n\n__webpack_require__.g.createPipeline = createPipeline;\n// ----------------------------------------------------------------------------\n\n\n//# sourceURL=webpack://vtkjs_viewer/./src/index.js?");

/***/ }),

/***/ "?d4c0":
/*!************************!*\
  !*** crypto (ignored) ***!
  \************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://vtkjs_viewer/crypto_(ignored)?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _arrayLikeToArray)\n/* harmony export */ });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _arrayWithHoles)\n/* harmony export */ });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _arrayWithoutHoles)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _assertThisInitialized)\n/* harmony export */ });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _classCallCheck)\n/* harmony export */ });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/construct.js":
/*!**************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/construct.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _construct)\n/* harmony export */ });\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n/* harmony import */ var _isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isNativeReflectConstruct.js */ \"./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js\");\n\n\nfunction _construct(Parent, args, Class) {\n  if ((0,_isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])()) {\n    _construct = Reflect.construct;\n  } else {\n    _construct = function _construct(Parent, args, Class) {\n      var a = [null];\n      a.push.apply(a, args);\n      var Constructor = Function.bind.apply(Parent, a);\n      var instance = new Constructor();\n      if (Class) (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(instance, Class.prototype);\n      return instance;\n    };\n  }\n\n  return _construct.apply(null, arguments);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/construct.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js":
/*!****************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _createClass)\n/* harmony export */ });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/createClass.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _defineProperty)\n/* harmony export */ });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/defineProperty.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/get.js":
/*!********************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/get.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _get)\n/* harmony export */ });\n/* harmony import */ var _superPropBase_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./superPropBase.js */ \"./node_modules/@babel/runtime/helpers/esm/superPropBase.js\");\n\nfunction _get(target, property, receiver) {\n  if (typeof Reflect !== \"undefined\" && Reflect.get) {\n    _get = Reflect.get;\n  } else {\n    _get = function _get(target, property, receiver) {\n      var base = (0,_superPropBase_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, property);\n      if (!base) return;\n      var desc = Object.getOwnPropertyDescriptor(base, property);\n\n      if (desc.get) {\n        return desc.get.call(receiver);\n      }\n\n      return desc.value;\n    };\n  }\n\n  return _get(target, property, receiver || target);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/get.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _getPrototypeOf)\n/* harmony export */ });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js":
/*!*************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _inherits)\n/* harmony export */ });\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(subClass, superClass);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/inherits.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _isNativeFunction)\n/* harmony export */ });\nfunction _isNativeFunction(fn) {\n  return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _isNativeReflectConstruct)\n/* harmony export */ });\nfunction _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
/*!********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _iterableToArray)\n/* harmony export */ });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _iterableToArrayLimit)\n/* harmony export */ });\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
/*!********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _nonIterableRest)\n/* harmony export */ });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _nonIterableSpread)\n/* harmony export */ });\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
/*!******************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _possibleConstructorReturn)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(self);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _setPrototypeOf)\n/* harmony export */ });\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js":
/*!******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _slicedToArray)\n/* harmony export */ });\n/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr, i) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr, i) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/superPropBase.js":
/*!******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/superPropBase.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _superPropBase)\n/* harmony export */ });\n/* harmony import */ var _getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n  while (!Object.prototype.hasOwnProperty.call(object, property)) {\n    object = (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object);\n    if (object === null) break;\n  }\n\n  return object;\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/superPropBase.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _toConsumableArray)\n/* harmony export */ });\n/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\");\n/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\");\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js":
/*!***********************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _typeof)\n/* harmony export */ });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/typeof.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _unsupportedIterableToArray)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js":
/*!********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _wrapNativeSuper)\n/* harmony export */ });\n/* harmony import */ var _getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n/* harmony import */ var _isNativeFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNativeFunction.js */ \"./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js\");\n/* harmony import */ var _construct_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./construct.js */ \"./node_modules/@babel/runtime/helpers/esm/construct.js\");\n\n\n\n\nfunction _wrapNativeSuper(Class) {\n  var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n  _wrapNativeSuper = function _wrapNativeSuper(Class) {\n    if (Class === null || !(0,_isNativeFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Class)) return Class;\n\n    if (typeof Class !== \"function\") {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n\n    if (typeof _cache !== \"undefined\") {\n      if (_cache.has(Class)) return _cache.get(Class);\n\n      _cache.set(Class, Wrapper);\n    }\n\n    function Wrapper() {\n      return (0,_construct_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Class, arguments, (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this).constructor);\n    }\n\n    Wrapper.prototype = Object.create(Class.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    return (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Wrapper, Class);\n  };\n\n  return _wrapNativeSuper(Class);\n}\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/ascending.js":
/*!************************************************!*\
  !*** ./node_modules/d3-array/src/ascending.js ***!
  \************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ascending)\n/* harmony export */ });\nfunction ascending(a, b) {\n  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-array/src/ascending.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/bisect.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/bisect.js ***!
  \*********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"bisectCenter\": () => (/* binding */ bisectCenter),\n/* harmony export */   \"bisectLeft\": () => (/* binding */ bisectLeft),\n/* harmony export */   \"bisectRight\": () => (/* binding */ bisectRight),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n/* harmony import */ var _bisector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bisector.js */ \"./node_modules/d3-array/src/bisector.js\");\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-array/src/number.js\");\n\n\n\n\nconst ascendingBisect = (0,_bisector_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_ascending_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nconst bisectRight = ascendingBisect.right;\nconst bisectLeft = ascendingBisect.left;\nconst bisectCenter = (0,_bisector_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_number_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]).center;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (bisectRight);\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-array/src/bisect.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/bisector.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/bisector.js ***!
  \***********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ bisector)\n/* harmony export */ });\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n\n\nfunction bisector(f) {\n  let delta = f;\n  let compare1 = f;\n  let compare2 = f;\n\n  if (f.length !== 2) {\n    delta = (d, x) => f(d) - x;\n    compare1 = _ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n    compare2 = (d, x) => (0,_ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(f(d), x);\n  }\n\n  function left(a, x, lo = 0, hi = a.length) {\n    if (lo < hi) {\n      if (compare1(x, x) !== 0) return hi;\n      do {\n        const mid = (lo + hi) >>> 1;\n        if (compare2(a[mid], x) < 0) lo = mid + 1;\n        else hi = mid;\n      } while (lo < hi);\n    }\n    return lo;\n  }\n\n  function right(a, x, lo = 0, hi = a.length) {\n    if (lo < hi) {\n      if (compare1(x, x) !== 0) return hi;\n      do {\n        const mid = (lo + hi) >>> 1;\n        if (compare2(a[mid], x) <= 0) lo = mid + 1;\n        else hi = mid;\n      } while (lo < hi);\n    }\n    return lo;\n  }\n\n  function center(a, x, lo = 0, hi = a.length) {\n    const i = left(a, x, lo, hi - 1);\n    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n  }\n\n  return {left, center, right};\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-array/src/bisector.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/number.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/number.js ***!
  \*********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ number),\n/* harmony export */   \"numbers\": () => (/* binding */ numbers)\n/* harmony export */ });\nfunction number(x) {\n  return x === null ? NaN : +x;\n}\n\nfunction* numbers(values, valueof) {\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  }\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-array/src/number.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/ticks.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/ticks.js ***!
  \********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ticks),\n/* harmony export */   \"tickIncrement\": () => (/* binding */ tickIncrement),\n/* harmony export */   \"tickStep\": () => (/* binding */ tickStep)\n/* harmony export */ });\nvar e10 = Math.sqrt(50),\n    e5 = Math.sqrt(10),\n    e2 = Math.sqrt(2);\n\nfunction ticks(start, stop, count) {\n  var reverse,\n      i = -1,\n      n,\n      ticks,\n      step;\n\n  stop = +stop, start = +start, count = +count;\n  if (start === stop && count > 0) return [start];\n  if (reverse = stop < start) n = start, start = stop, stop = n;\n  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n  if (step > 0) {\n    let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n    if (r0 * step < start) ++r0;\n    if (r1 * step > stop) --r1;\n    ticks = new Array(n = r1 - r0 + 1);\n    while (++i < n) ticks[i] = (r0 + i) * step;\n  } else {\n    step = -step;\n    let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n    if (r0 / step < start) ++r0;\n    if (r1 / step > stop) --r1;\n    ticks = new Array(n = r1 - r0 + 1);\n    while (++i < n) ticks[i] = (r0 + i) / step;\n  }\n\n  if (reverse) ticks.reverse();\n\n  return ticks;\n}\n\nfunction tickIncrement(start, stop, count) {\n  var step = (stop - start) / Math.max(0, count),\n      power = Math.floor(Math.log(step) / Math.LN10),\n      error = step / Math.pow(10, power);\n  return power >= 0\n      ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n      : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n  var step0 = Math.abs(stop - start) / Math.max(0, count),\n      step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n      error = step0 / step1;\n  if (error >= e10) step1 *= 10;\n  else if (error >= e5) step1 *= 5;\n  else if (error >= e2) step1 *= 2;\n  return stop < start ? -step1 : step1;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-array/src/ticks.js?");

/***/ }),

/***/ "./node_modules/d3-color/src/color.js":
/*!********************************************!*\
  !*** ./node_modules/d3-color/src/color.js ***!
  \********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Color\": () => (/* binding */ Color),\n/* harmony export */   \"Rgb\": () => (/* binding */ Rgb),\n/* harmony export */   \"brighter\": () => (/* binding */ brighter),\n/* harmony export */   \"darker\": () => (/* binding */ darker),\n/* harmony export */   \"default\": () => (/* binding */ color),\n/* harmony export */   \"hsl\": () => (/* binding */ hsl),\n/* harmony export */   \"hslConvert\": () => (/* binding */ hslConvert),\n/* harmony export */   \"rgb\": () => (/* binding */ rgb),\n/* harmony export */   \"rgbConvert\": () => (/* binding */ rgbConvert)\n/* harmony export */ });\n/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ \"./node_modules/d3-color/src/define.js\");\n\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex = /^#([0-9a-f]{3,8})$/,\n    reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n    reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n    reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n    reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n    reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n    reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\n(0,_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Color, color, {\n  copy(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\n  formatHex8: color_formatHex8,\n  formatHsl: color_formatHsl,\n  formatRgb: color_formatRgb,\n  toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n  return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n  return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n  return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n  return this.rgb().formatRgb();\n}\n\nfunction color(format) {\n  var m, l;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\n(0,_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Rgb, rgb, (0,_define_js__WEBPACK_IMPORTED_MODULE_0__.extend)(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb() {\n    return this;\n  },\n  clamp() {\n    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n  },\n  displayable() {\n    return (-0.5 <= this.r && this.r < 255.5)\n        && (-0.5 <= this.g && this.g < 255.5)\n        && (-0.5 <= this.b && this.b < 255.5)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: rgb_formatHex,\n  formatHex8: rgb_formatHex8,\n  formatRgb: rgb_formatRgb,\n  toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n  const a = clampa(this.opacity);\n  return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n  return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n  value = clampi(value);\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\n(0,_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Hsl, hsl, (0,_define_js__WEBPACK_IMPORTED_MODULE_0__.extend)(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  clamp() {\n    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n  },\n  displayable() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  formatHsl() {\n    const a = clampa(this.opacity);\n    return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n  }\n}));\n\nfunction clamph(value) {\n  value = (value || 0) % 360;\n  return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n  return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-color/src/color.js?");

/***/ }),

/***/ "./node_modules/d3-color/src/define.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-color/src/define.js ***!
  \*********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   \"extend\": () => (/* binding */ extend)\n/* harmony export */ });\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nfunction extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-color/src/define.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/defaultLocale.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-format/src/defaultLocale.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ defaultLocale),\n/* harmony export */   \"format\": () => (/* binding */ format),\n/* harmony export */   \"formatPrefix\": () => (/* binding */ formatPrefix)\n/* harmony export */ });\n/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale.js */ \"./node_modules/d3-format/src/locale.js\");\n\n\nvar locale;\nvar format;\nvar formatPrefix;\n\ndefaultLocale({\n  thousands: \",\",\n  grouping: [3],\n  currency: [\"$\", \"\"]\n});\n\nfunction defaultLocale(definition) {\n  locale = (0,_locale_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(definition);\n  format = locale.format;\n  formatPrefix = locale.formatPrefix;\n  return locale;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/defaultLocale.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/exponent.js":
/*!************************************************!*\
  !*** ./node_modules/d3-format/src/exponent.js ***!
  \************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {\n  return x = (0,_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__.formatDecimalParts)(Math.abs(x)), x ? x[1] : NaN;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/exponent.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatDecimal.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-format/src/formatDecimal.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   \"formatDecimalParts\": () => (/* binding */ formatDecimalParts)\n/* harmony export */ });\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {\n  return Math.abs(x = Math.round(x)) >= 1e21\n      ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n      : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nfunction formatDecimalParts(x, p) {\n  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n  var i, coefficient = x.slice(0, i);\n\n  // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n  // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n  return [\n    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n    +x.slice(i + 1)\n  ];\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/formatDecimal.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatGroup.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-format/src/formatGroup.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(grouping, thousands) {\n  return function(value, width) {\n    var i = value.length,\n        t = [],\n        j = 0,\n        g = grouping[0],\n        length = 0;\n\n    while (i > 0 && g > 0) {\n      if (length + g + 1 > width) g = Math.max(1, width - length);\n      t.push(value.substring(i -= g, i + g));\n      if ((length += g + 1) > width) break;\n      g = grouping[j = (j + 1) % grouping.length];\n    }\n\n    return t.reverse().join(thousands);\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/formatGroup.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatNumerals.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-format/src/formatNumerals.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(numerals) {\n  return function(value) {\n    return value.replace(/[0-9]/g, function(i) {\n      return numerals[+i];\n    });\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/formatNumerals.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatPrefixAuto.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-format/src/formatPrefixAuto.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   \"prefixExponent\": () => (/* binding */ prefixExponent)\n/* harmony export */ });\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n\n\nvar prefixExponent;\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x, p) {\n  var d = (0,_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__.formatDecimalParts)(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1],\n      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n      n = coefficient.length;\n  return i === n ? coefficient\n      : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n      : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n      : \"0.\" + new Array(1 - i).join(\"0\") + (0,_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__.formatDecimalParts)(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/formatPrefixAuto.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatRounded.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-format/src/formatRounded.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x, p) {\n  var d = (0,_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__.formatDecimalParts)(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1];\n  return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n      : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/formatRounded.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatSpecifier.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-format/src/formatSpecifier.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"FormatSpecifier\": () => (/* binding */ FormatSpecifier),\n/* harmony export */   \"default\": () => (/* binding */ formatSpecifier)\n/* harmony export */ });\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n  if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n  var match;\n  return new FormatSpecifier({\n    fill: match[1],\n    align: match[2],\n    sign: match[3],\n    symbol: match[4],\n    zero: match[5],\n    width: match[6],\n    comma: match[7],\n    precision: match[8] && match[8].slice(1),\n    trim: match[9],\n    type: match[10]\n  });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n  this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n  this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n  this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n  this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n  this.zero = !!specifier.zero;\n  this.width = specifier.width === undefined ? undefined : +specifier.width;\n  this.comma = !!specifier.comma;\n  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n  this.trim = !!specifier.trim;\n  this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n  return this.fill\n      + this.align\n      + this.sign\n      + this.symbol\n      + (this.zero ? \"0\" : \"\")\n      + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n      + (this.comma ? \",\" : \"\")\n      + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n      + (this.trim ? \"~\" : \"\")\n      + this.type;\n};\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/formatSpecifier.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatTrim.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-format/src/formatTrim.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(s) {\n  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n    switch (s[i]) {\n      case \".\": i0 = i1 = i; break;\n      case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n    }\n  }\n  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/formatTrim.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatTypes.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-format/src/formatTypes.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatPrefixAuto.js */ \"./node_modules/d3-format/src/formatPrefixAuto.js\");\n/* harmony import */ var _formatRounded_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatRounded.js */ \"./node_modules/d3-format/src/formatRounded.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  \"%\": (x, p) => (x * 100).toFixed(p),\n  \"b\": (x) => Math.round(x).toString(2),\n  \"c\": (x) => x + \"\",\n  \"d\": _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  \"e\": (x, p) => x.toExponential(p),\n  \"f\": (x, p) => x.toFixed(p),\n  \"g\": (x, p) => x.toPrecision(p),\n  \"o\": (x) => Math.round(x).toString(8),\n  \"p\": (x, p) => (0,_formatRounded_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x * 100, p),\n  \"r\": _formatRounded_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  \"s\": _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n  \"x\": (x) => Math.round(x).toString(16)\n});\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/formatTypes.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/identity.js":
/*!************************************************!*\
  !*** ./node_modules/d3-format/src/identity.js ***!
  \************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {\n  return x;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/identity.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/locale.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-format/src/locale.js ***!
  \**********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n/* harmony import */ var _formatGroup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatGroup.js */ \"./node_modules/d3-format/src/formatGroup.js\");\n/* harmony import */ var _formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatNumerals.js */ \"./node_modules/d3-format/src/formatNumerals.js\");\n/* harmony import */ var _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formatSpecifier.js */ \"./node_modules/d3-format/src/formatSpecifier.js\");\n/* harmony import */ var _formatTrim_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formatTrim.js */ \"./node_modules/d3-format/src/formatTrim.js\");\n/* harmony import */ var _formatTypes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formatTypes.js */ \"./node_modules/d3-format/src/formatTypes.js\");\n/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./formatPrefixAuto.js */ \"./node_modules/d3-format/src/formatPrefixAuto.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/d3-format/src/identity.js\");\n\n\n\n\n\n\n\n\n\nvar map = Array.prototype.map,\n    prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(locale) {\n  var group = locale.grouping === undefined || locale.thousands === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : (0,_formatGroup_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(map.call(locale.grouping, Number), locale.thousands + \"\"),\n      currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n      currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n      decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n      numerals = locale.numerals === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : (0,_formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(map.call(locale.numerals, String)),\n      percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n      minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n      nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n  function newFormat(specifier) {\n    specifier = (0,_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(specifier);\n\n    var fill = specifier.fill,\n        align = specifier.align,\n        sign = specifier.sign,\n        symbol = specifier.symbol,\n        zero = specifier.zero,\n        width = specifier.width,\n        comma = specifier.comma,\n        precision = specifier.precision,\n        trim = specifier.trim,\n        type = specifier.type;\n\n    // The \"n\" type is an alias for \",g\".\n    if (type === \"n\") comma = true, type = \"g\";\n\n    // The \"\" type, and any invalid type, is an alias for \".12~g\".\n    else if (!_formatTypes_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"][type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n    // If zero fill is specified, padding goes after sign and before digits.\n    if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n    // Compute the prefix and suffix.\n    // For SI-prefix, the suffix is lazily computed.\n    var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n        suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n    // What format function should we use?\n    // Is this an integer type?\n    // Can this type generate exponential notation?\n    var formatType = _formatTypes_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"][type],\n        maybeSuffix = /[defgprs%]/.test(type);\n\n    // Set the default precision if not specified,\n    // or clamp the specified precision to the supported range.\n    // For significant precision, it must be in [1, 21].\n    // For fixed precision, it must be in [0, 20].\n    precision = precision === undefined ? 6\n        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n        : Math.max(0, Math.min(20, precision));\n\n    function format(value) {\n      var valuePrefix = prefix,\n          valueSuffix = suffix,\n          i, n, c;\n\n      if (type === \"c\") {\n        valueSuffix = formatType(value) + valueSuffix;\n        value = \"\";\n      } else {\n        value = +value;\n\n        // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n        var valueNegative = value < 0 || 1 / value < 0;\n\n        // Perform the initial formatting.\n        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n        // Trim insignificant zeros.\n        if (trim) value = (0,_formatTrim_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value);\n\n        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n        if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n        // Compute the prefix and suffix.\n        valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n        valueSuffix = (type === \"s\" ? prefixes[8 + _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__.prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n        // Break the formatted value into the integer “value” part that can be\n        // grouped, and fractional or exponential “suffix” part that is not.\n        if (maybeSuffix) {\n          i = -1, n = value.length;\n          while (++i < n) {\n            if (c = value.charCodeAt(i), 48 > c || c > 57) {\n              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n              value = value.slice(0, i);\n              break;\n            }\n          }\n        }\n      }\n\n      // If the fill character is not \"0\", grouping is applied before padding.\n      if (comma && !zero) value = group(value, Infinity);\n\n      // Compute the padding.\n      var length = valuePrefix.length + value.length + valueSuffix.length,\n          padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n      // If the fill character is \"0\", grouping is applied after padding.\n      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n      // Reconstruct the final output based on the desired alignment.\n      switch (align) {\n        case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n        case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n        case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n        default: value = padding + valuePrefix + value + valueSuffix; break;\n      }\n\n      return numerals(value);\n    }\n\n    format.toString = function() {\n      return specifier + \"\";\n    };\n\n    return format;\n  }\n\n  function formatPrefix(specifier, value) {\n    var f = newFormat((specifier = (0,_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(specifier), specifier.type = \"f\", specifier)),\n        e = Math.max(-8, Math.min(8, Math.floor((0,_exponent_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(value) / 3))) * 3,\n        k = Math.pow(10, -e),\n        prefix = prefixes[8 + e / 3];\n    return function(value) {\n      return f(k * value) + prefix;\n    };\n  }\n\n  return {\n    format: newFormat,\n    formatPrefix: formatPrefix\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/locale.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/precisionFixed.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-format/src/precisionFixed.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(step) {\n  return Math.max(0, -(0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.abs(step)));\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/precisionFixed.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/precisionPrefix.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-format/src/precisionPrefix.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(step, value) {\n  return Math.max(0, Math.max(-8, Math.min(8, Math.floor((0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) / 3))) * 3 - (0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.abs(step)));\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/precisionPrefix.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/precisionRound.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-format/src/precisionRound.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(step, max) {\n  step = Math.abs(step), max = Math.abs(max) - step;\n  return Math.max(0, (0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(max) - (0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(step)) + 1;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-format/src/precisionRound.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/array.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/array.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   \"genericArray\": () => (/* binding */ genericArray)\n/* harmony export */ });\n/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./value.js */ \"./node_modules/d3-interpolate/src/value.js\");\n/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numberArray.js */ \"./node_modules/d3-interpolate/src/numberArray.js\");\n\n\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {\n  return ((0,_numberArray_js__WEBPACK_IMPORTED_MODULE_0__.isNumberArray)(b) ? _numberArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : genericArray)(a, b);\n}\n\nfunction genericArray(a, b) {\n  var nb = b ? b.length : 0,\n      na = a ? Math.min(nb, a.length) : 0,\n      x = new Array(na),\n      c = new Array(nb),\n      i;\n\n  for (i = 0; i < na; ++i) x[i] = (0,_value_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a[i], b[i]);\n  for (; i < nb; ++i) c[i] = b[i];\n\n  return function(t) {\n    for (i = 0; i < na; ++i) c[i] = x[i](t);\n    return c;\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/array.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/basis.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/basis.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"basis\": () => (/* binding */ basis),\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction basis(t1, v0, v1, v2, v3) {\n  var t2 = t1 * t1, t3 = t2 * t1;\n  return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n      + (4 - 6 * t2 + 3 * t3) * v1\n      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n      + t3 * v3) / 6;\n}\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(values) {\n  var n = values.length - 1;\n  return function(t) {\n    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n        v1 = values[i],\n        v2 = values[i + 1],\n        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/basis.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/basisClosed.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-interpolate/src/basisClosed.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ \"./node_modules/d3-interpolate/src/basis.js\");\n\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(values) {\n  var n = values.length;\n  return function(t) {\n    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n        v0 = values[(i + n - 1) % n],\n        v1 = values[i % n],\n        v2 = values[(i + 1) % n],\n        v3 = values[(i + 2) % n];\n    return (0,_basis_js__WEBPACK_IMPORTED_MODULE_0__.basis)((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/basisClosed.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/color.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/color.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ nogamma),\n/* harmony export */   \"gamma\": () => (/* binding */ gamma),\n/* harmony export */   \"hue\": () => (/* binding */ hue)\n/* harmony export */ });\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-interpolate/src/constant.js\");\n\n\nfunction linear(a, d) {\n  return function(t) {\n    return a + t * d;\n  };\n}\n\nfunction exponential(a, b, y) {\n  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n    return Math.pow(a + t * b, y);\n  };\n}\n\nfunction hue(a, b) {\n  var d = b - a;\n  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n  return (y = +y) === 1 ? nogamma : function(a, b) {\n    return b - a ? exponential(a, b, y) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(isNaN(a) ? b : a);\n  };\n}\n\nfunction nogamma(a, b) {\n  var d = b - a;\n  return d ? linear(a, d) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(isNaN(a) ? b : a);\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/color.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/constant.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-interpolate/src/constant.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (x => () => x);\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/date.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-interpolate/src/date.js ***!
  \*************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {\n  var d = new Date;\n  return a = +a, b = +b, function(t) {\n    return d.setTime(a * (1 - t) + b * t), d;\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/date.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/number.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-interpolate/src/number.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {\n  return a = +a, b = +b, function(t) {\n    return a * (1 - t) + b * t;\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/number.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/numberArray.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-interpolate/src/numberArray.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   \"isNumberArray\": () => (/* binding */ isNumberArray)\n/* harmony export */ });\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {\n  if (!b) b = [];\n  var n = a ? Math.min(b.length, a.length) : 0,\n      c = b.slice(),\n      i;\n  return function(t) {\n    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n    return c;\n  };\n}\n\nfunction isNumberArray(x) {\n  return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/numberArray.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/object.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-interpolate/src/object.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ \"./node_modules/d3-interpolate/src/value.js\");\n\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {\n  var i = {},\n      c = {},\n      k;\n\n  if (a === null || typeof a !== \"object\") a = {};\n  if (b === null || typeof b !== \"object\") b = {};\n\n  for (k in b) {\n    if (k in a) {\n      i[k] = (0,_value_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a[k], b[k]);\n    } else {\n      c[k] = b[k];\n    }\n  }\n\n  return function(t) {\n    for (k in i) c[k] = i[k](t);\n    return c;\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/object.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/rgb.js":
/*!************************************************!*\
  !*** ./node_modules/d3-interpolate/src/rgb.js ***!
  \************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   \"rgbBasis\": () => (/* binding */ rgbBasis),\n/* harmony export */   \"rgbBasisClosed\": () => (/* binding */ rgbBasisClosed)\n/* harmony export */ });\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/color.js\");\n/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basis.js */ \"./node_modules/d3-interpolate/src/basis.js\");\n/* harmony import */ var _basisClosed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basisClosed.js */ \"./node_modules/d3-interpolate/src/basisClosed.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-interpolate/src/color.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function rgbGamma(y) {\n  var color = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__.gamma)(y);\n\n  function rgb(start, end) {\n    var r = color((start = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__.rgb)(start)).r, (end = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__.rgb)(end)).r),\n        g = color(start.g, end.g),\n        b = color(start.b, end.b),\n        opacity = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(start.opacity, end.opacity);\n    return function(t) {\n      start.r = r(t);\n      start.g = g(t);\n      start.b = b(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n\n  rgb.gamma = rgbGamma;\n\n  return rgb;\n})(1));\n\nfunction rgbSpline(spline) {\n  return function(colors) {\n    var n = colors.length,\n        r = new Array(n),\n        g = new Array(n),\n        b = new Array(n),\n        i, color;\n    for (i = 0; i < n; ++i) {\n      color = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__.rgb)(colors[i]);\n      r[i] = color.r || 0;\n      g[i] = color.g || 0;\n      b[i] = color.b || 0;\n    }\n    r = spline(r);\n    g = spline(g);\n    b = spline(b);\n    color.opacity = 1;\n    return function(t) {\n      color.r = r(t);\n      color.g = g(t);\n      color.b = b(t);\n      return color + \"\";\n    };\n  };\n}\n\nvar rgbBasis = rgbSpline(_basis_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\nvar rgbBasisClosed = rgbSpline(_basisClosed_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/rgb.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/round.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/round.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {\n  return a = +a, b = +b, function(t) {\n    return Math.round(a * (1 - t) + b * t);\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/round.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/string.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-interpolate/src/string.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-interpolate/src/number.js\");\n\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n    reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n  return function() {\n    return b;\n  };\n}\n\nfunction one(b) {\n  return function(t) {\n    return b(t) + \"\";\n  };\n}\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {\n  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n      am, // current match in a\n      bm, // current match in b\n      bs, // string preceding current number in b, if any\n      i = -1, // index in s\n      s = [], // string constants and placeholders\n      q = []; // number interpolators\n\n  // Coerce inputs to strings.\n  a = a + \"\", b = b + \"\";\n\n  // Interpolate pairs of numbers in a & b.\n  while ((am = reA.exec(a))\n      && (bm = reB.exec(b))) {\n    if ((bs = bm.index) > bi) { // a string precedes the next number in b\n      bs = b.slice(bi, bs);\n      if (s[i]) s[i] += bs; // coalesce with previous string\n      else s[++i] = bs;\n    }\n    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n      if (s[i]) s[i] += bm; // coalesce with previous string\n      else s[++i] = bm;\n    } else { // interpolate non-matching numbers\n      s[++i] = null;\n      q.push({i: i, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(am, bm)});\n    }\n    bi = reB.lastIndex;\n  }\n\n  // Add remains of b.\n  if (bi < b.length) {\n    bs = b.slice(bi);\n    if (s[i]) s[i] += bs; // coalesce with previous string\n    else s[++i] = bs;\n  }\n\n  // Special optimization for only a single match.\n  // Otherwise, interpolate each of the numbers and rejoin the string.\n  return s.length < 2 ? (q[0]\n      ? one(q[0].x)\n      : zero(b))\n      : (b = q.length, function(t) {\n          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n          return s.join(\"\");\n        });\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/string.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/value.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/value.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/color.js\");\n/* harmony import */ var _rgb_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rgb.js */ \"./node_modules/d3-interpolate/src/rgb.js\");\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./array.js */ \"./node_modules/d3-interpolate/src/array.js\");\n/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./date.js */ \"./node_modules/d3-interpolate/src/date.js\");\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-interpolate/src/number.js\");\n/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./object.js */ \"./node_modules/d3-interpolate/src/object.js\");\n/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./string.js */ \"./node_modules/d3-interpolate/src/string.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-interpolate/src/constant.js\");\n/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./numberArray.js */ \"./node_modules/d3-interpolate/src/numberArray.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {\n  var t = typeof b, c;\n  return b == null || t === \"boolean\" ? (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(b)\n      : (t === \"number\" ? _number_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n      : t === \"string\" ? ((c = (0,d3_color__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b)) ? (b = c, _rgb_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]) : _string_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])\n      : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_2__[\"default\"] ? _rgb_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n      : b instanceof Date ? _date_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n      : (0,_numberArray_js__WEBPACK_IMPORTED_MODULE_6__.isNumberArray)(b) ? _numberArray_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n      : Array.isArray(b) ? _array_js__WEBPACK_IMPORTED_MODULE_7__.genericArray\n      : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? _object_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n      : _number_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a, b);\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-interpolate/src/value.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/constant.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-scale/src/constant.js ***!
  \***********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ constants)\n/* harmony export */ });\nfunction constants(x) {\n  return function() {\n    return x;\n  };\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-scale/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/continuous.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-scale/src/continuous.js ***!
  \*************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"copy\": () => (/* binding */ copy),\n/* harmony export */   \"default\": () => (/* binding */ continuous),\n/* harmony export */   \"identity\": () => (/* binding */ identity),\n/* harmony export */   \"transformer\": () => (/* binding */ transformer)\n/* harmony export */ });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/bisect.js\");\n/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ \"./node_modules/d3-interpolate/src/value.js\");\n/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-interpolate */ \"./node_modules/d3-interpolate/src/number.js\");\n/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-interpolate */ \"./node_modules/d3-interpolate/src/round.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-scale/src/constant.js\");\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-scale/src/number.js\");\n\n\n\n\n\nvar unit = [0, 1];\n\nfunction identity(x) {\n  return x;\n}\n\nfunction normalize(a, b) {\n  return (b -= (a = +a))\n      ? function(x) { return (x - a) / b; }\n      : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n  var t;\n  if (a > b) t = a, a = b, b = t;\n  return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n  else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n  return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n  var j = Math.min(domain.length, range.length) - 1,\n      d = new Array(j),\n      r = new Array(j),\n      i = -1;\n\n  // Reverse descending domains.\n  if (domain[j] < domain[0]) {\n    domain = domain.slice().reverse();\n    range = range.slice().reverse();\n  }\n\n  while (++i < j) {\n    d[i] = normalize(domain[i], domain[i + 1]);\n    r[i] = interpolate(range[i], range[i + 1]);\n  }\n\n  return function(x) {\n    var i = (0,d3_array__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(domain, x, 1, j) - 1;\n    return r[i](d[i](x));\n  };\n}\n\nfunction copy(source, target) {\n  return target\n      .domain(source.domain())\n      .range(source.range())\n      .interpolate(source.interpolate())\n      .clamp(source.clamp())\n      .unknown(source.unknown());\n}\n\nfunction transformer() {\n  var domain = unit,\n      range = unit,\n      interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n      transform,\n      untransform,\n      unknown,\n      clamp = identity,\n      piecewise,\n      output,\n      input;\n\n  function rescale() {\n    var n = Math.min(domain.length, range.length);\n    if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n    piecewise = n > 2 ? polymap : bimap;\n    output = input = null;\n    return scale;\n  }\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n  }\n\n  scale.invert = function(y) {\n    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), d3_interpolate__WEBPACK_IMPORTED_MODULE_3__[\"default\"])))(y)));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain = Array.from(_, _number_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]), rescale()) : domain.slice();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n  };\n\n  scale.rangeRound = function(_) {\n    return range = Array.from(_), interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_5__[\"default\"], rescale();\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n  };\n\n  scale.interpolate = function(_) {\n    return arguments.length ? (interpolate = _, rescale()) : interpolate;\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t, u) {\n    transform = t, untransform = u;\n    return rescale();\n  };\n}\n\nfunction continuous() {\n  return transformer()(identity, identity);\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-scale/src/continuous.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/init.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-scale/src/init.js ***!
  \*******************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"initInterpolator\": () => (/* binding */ initInterpolator),\n/* harmony export */   \"initRange\": () => (/* binding */ initRange)\n/* harmony export */ });\nfunction initRange(domain, range) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: this.range(domain); break;\n    default: this.range(range).domain(domain); break;\n  }\n  return this;\n}\n\nfunction initInterpolator(domain, interpolator) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: {\n      if (typeof domain === \"function\") this.interpolator(domain);\n      else this.range(domain);\n      break;\n    }\n    default: {\n      this.domain(domain);\n      if (typeof interpolator === \"function\") this.interpolator(interpolator);\n      else this.range(interpolator);\n      break;\n    }\n  }\n  return this;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-scale/src/init.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/linear.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-scale/src/linear.js ***!
  \*********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ linear),\n/* harmony export */   \"linearish\": () => (/* binding */ linearish)\n/* harmony export */ });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/ticks.js\");\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n/* harmony import */ var _tickFormat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tickFormat.js */ \"./node_modules/d3-scale/src/tickFormat.js\");\n\n\n\n\n\nfunction linearish(scale) {\n  var domain = scale.domain;\n\n  scale.ticks = function(count) {\n    var d = domain();\n    return (0,d3_array__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(d[0], d[d.length - 1], count == null ? 10 : count);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    var d = domain();\n    return (0,_tickFormat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n  };\n\n  scale.nice = function(count) {\n    if (count == null) count = 10;\n\n    var d = domain();\n    var i0 = 0;\n    var i1 = d.length - 1;\n    var start = d[i0];\n    var stop = d[i1];\n    var prestep;\n    var step;\n    var maxIter = 10;\n\n    if (stop < start) {\n      step = start, start = stop, stop = step;\n      step = i0, i0 = i1, i1 = step;\n    }\n    \n    while (maxIter-- > 0) {\n      step = (0,d3_array__WEBPACK_IMPORTED_MODULE_0__.tickIncrement)(start, stop, count);\n      if (step === prestep) {\n        d[i0] = start\n        d[i1] = stop\n        return domain(d);\n      } else if (step > 0) {\n        start = Math.floor(start / step) * step;\n        stop = Math.ceil(stop / step) * step;\n      } else if (step < 0) {\n        start = Math.ceil(start * step) / step;\n        stop = Math.floor(stop * step) / step;\n      } else {\n        break;\n      }\n      prestep = step;\n    }\n\n    return scale;\n  };\n\n  return scale;\n}\n\nfunction linear() {\n  var scale = (0,_continuous_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n\n  scale.copy = function() {\n    return (0,_continuous_js__WEBPACK_IMPORTED_MODULE_2__.copy)(scale, linear());\n  };\n\n  _init_js__WEBPACK_IMPORTED_MODULE_3__.initRange.apply(scale, arguments);\n\n  return linearish(scale);\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-scale/src/linear.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/number.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-scale/src/number.js ***!
  \*********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ number)\n/* harmony export */ });\nfunction number(x) {\n  return +x;\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-scale/src/number.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/tickFormat.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-scale/src/tickFormat.js ***!
  \*************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ tickFormat)\n/* harmony export */ });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/ticks.js\");\n/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ \"./node_modules/d3-format/src/formatSpecifier.js\");\n/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-format */ \"./node_modules/d3-format/src/precisionPrefix.js\");\n/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-format */ \"./node_modules/d3-format/src/defaultLocale.js\");\n/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-format */ \"./node_modules/d3-format/src/precisionRound.js\");\n/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-format */ \"./node_modules/d3-format/src/precisionFixed.js\");\n\n\n\nfunction tickFormat(start, stop, count, specifier) {\n  var step = (0,d3_array__WEBPACK_IMPORTED_MODULE_0__.tickStep)(start, stop, count),\n      precision;\n  specifier = (0,d3_format__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(specifier == null ? \",f\" : specifier);\n  switch (specifier.type) {\n    case \"s\": {\n      var value = Math.max(Math.abs(start), Math.abs(stop));\n      if (specifier.precision == null && !isNaN(precision = (0,d3_format__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(step, value))) specifier.precision = precision;\n      return (0,d3_format__WEBPACK_IMPORTED_MODULE_3__.formatPrefix)(specifier, value);\n    }\n    case \"\":\n    case \"e\":\n    case \"g\":\n    case \"p\":\n    case \"r\": {\n      if (specifier.precision == null && !isNaN(precision = (0,d3_format__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n      break;\n    }\n    case \"f\":\n    case \"%\": {\n      if (specifier.precision == null && !isNaN(precision = (0,d3_format__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n      break;\n    }\n  }\n  return (0,d3_format__WEBPACK_IMPORTED_MODULE_3__.format)(specifier);\n}\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/d3-scale/src/tickFormat.js?");

/***/ }),

/***/ "./node_modules/pako/dist/pako.esm.mjs":
/*!*********************************************!*\
  !*** ./node_modules/pako/dist/pako.esm.mjs ***!
  \*********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Deflate\": () => (/* binding */ Deflate_1),\n/* harmony export */   \"Inflate\": () => (/* binding */ Inflate_1),\n/* harmony export */   \"constants\": () => (/* binding */ constants_1),\n/* harmony export */   \"default\": () => (/* binding */ pako),\n/* harmony export */   \"deflate\": () => (/* binding */ deflate_1),\n/* harmony export */   \"deflateRaw\": () => (/* binding */ deflateRaw_1),\n/* harmony export */   \"gzip\": () => (/* binding */ gzip_1),\n/* harmony export */   \"inflate\": () => (/* binding */ inflate_1),\n/* harmony export */   \"inflateRaw\": () => (/* binding */ inflateRaw_1),\n/* harmony export */   \"ungzip\": () => (/* binding */ ungzip_1)\n/* harmony export */ });\n\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED          = 1;\n//const Z_HUFFMAN_ONLY      = 2;\n//const Z_RLE               = 3;\nconst Z_FIXED$1               = 4;\n//const Z_DEFAULT_STRATEGY  = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY              = 0;\nconst Z_TEXT                = 1;\n//const Z_ASCII             = 1; // = Z_TEXT\nconst Z_UNKNOWN$1             = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES    = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1    = 3;\nconst MAX_MATCH$1    = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1  = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1      = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1       = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1       = 30;\n/* number of distance codes */\n\nconst BL_CODES$1      = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1     = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1      = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size      = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK   = 256;\n/* end of block literal code */\n\nconst REP_3_6     = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10   = 17;\n/* repeat a zero length 3-10 times  (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times  (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits =   /* extra bits for each length code */\n  new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits =   /* extra bits for each distance code */\n  new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits =  /* extra bits for each bit length code */\n  new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n  new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree  = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree  = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code    = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code  = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length   = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist     = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n  this.static_tree  = static_tree;  /* static tree or NULL */\n  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */\n  this.extra_base   = extra_base;   /* base index for extra_bits */\n  this.elems        = elems;        /* max number of elements in the tree */\n  this.max_length   = max_length;   /* max bit length for the codes */\n\n  // show if `static_tree` has data or dummy - needed for monomorphic objects\n  this.has_stree    = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n  this.dyn_tree = dyn_tree;     /* the dynamic tree */\n  this.max_code = 0;            /* largest code with non zero frequency */\n  this.stat_desc = stat_desc;   /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n//    put_byte(s, (uch)((w) & 0xff));\n//    put_byte(s, (uch)((ush)(w) >> 8));\n  s.pending_buf[s.pending++] = (w) & 0xff;\n  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n  if (s.bi_valid > (Buf_size - length)) {\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\n    put_short(s, s.bi_buf);\n    s.bi_buf = value >> (Buf_size - s.bi_valid);\n    s.bi_valid += length - Buf_size;\n  } else {\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\n    s.bi_valid += length;\n  }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n  send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n  let res = 0;\n  do {\n    res |= code & 1;\n    code >>>= 1;\n    res <<= 1;\n  } while (--len > 0);\n  return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n  if (s.bi_valid === 16) {\n    put_short(s, s.bi_buf);\n    s.bi_buf = 0;\n    s.bi_valid = 0;\n\n  } else if (s.bi_valid >= 8) {\n    s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n    s.bi_buf >>= 8;\n    s.bi_valid -= 8;\n  }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n *    above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n *     array bl_count contains the frequencies for each bit length.\n *     The length opt_len is updated; static_len is also updated if stree is\n *     not null.\n */\nconst gen_bitlen = (s, desc) =>\n//    deflate_state *s;\n//    tree_desc *desc;    /* the tree descriptor */\n{\n  const tree            = desc.dyn_tree;\n  const max_code        = desc.max_code;\n  const stree           = desc.stat_desc.static_tree;\n  const has_stree       = desc.stat_desc.has_stree;\n  const extra           = desc.stat_desc.extra_bits;\n  const base            = desc.stat_desc.extra_base;\n  const max_length      = desc.stat_desc.max_length;\n  let h;              /* heap index */\n  let n, m;           /* iterate over the tree elements */\n  let bits;           /* bit length */\n  let xbits;          /* extra bits */\n  let f;              /* frequency */\n  let overflow = 0;   /* number of elements with bit length too large */\n\n  for (bits = 0; bits <= MAX_BITS$1; bits++) {\n    s.bl_count[bits] = 0;\n  }\n\n  /* In a first pass, compute the optimal bit lengths (which may\n   * overflow in the case of the bit length tree).\n   */\n  tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n  for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n    n = s.heap[h];\n    bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n    if (bits > max_length) {\n      bits = max_length;\n      overflow++;\n    }\n    tree[n * 2 + 1]/*.Len*/ = bits;\n    /* We overwrite tree[n].Dad which is no longer needed */\n\n    if (n > max_code) { continue; } /* not a leaf node */\n\n    s.bl_count[bits]++;\n    xbits = 0;\n    if (n >= base) {\n      xbits = extra[n - base];\n    }\n    f = tree[n * 2]/*.Freq*/;\n    s.opt_len += f * (bits + xbits);\n    if (has_stree) {\n      s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n    }\n  }\n  if (overflow === 0) { return; }\n\n  // Trace((stderr,\"\\nbit length overflow\\n\"));\n  /* This happens for example on obj2 and pic of the Calgary corpus */\n\n  /* Find the first bit length which could increase: */\n  do {\n    bits = max_length - 1;\n    while (s.bl_count[bits] === 0) { bits--; }\n    s.bl_count[bits]--;      /* move one leaf down the tree */\n    s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n    s.bl_count[max_length]--;\n    /* The brother of the overflow item also moves one step up,\n     * but this does not affect bl_count[max_length]\n     */\n    overflow -= 2;\n  } while (overflow > 0);\n\n  /* Now recompute all bit lengths, scanning in increasing frequency.\n   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n   * lengths instead of fixing only the wrong ones. This idea is taken\n   * from 'ar' written by Haruhiko Okumura.)\n   */\n  for (bits = max_length; bits !== 0; bits--) {\n    n = s.bl_count[bits];\n    while (n !== 0) {\n      m = s.heap[--h];\n      if (m > max_code) { continue; }\n      if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n        // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n        s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n        tree[m * 2 + 1]/*.Len*/ = bits;\n      }\n      n--;\n    }\n  }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n *     zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n//    ct_data *tree;             /* the tree to decorate */\n//    int max_code;              /* largest code with non zero frequency */\n//    ushf *bl_count;            /* number of codes at each bit length */\n{\n  const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n  let code = 0;              /* running code value */\n  let bits;                  /* bit index */\n  let n;                     /* code index */\n\n  /* The distribution counts are first used to generate the code values\n   * without bit reversal.\n   */\n  for (bits = 1; bits <= MAX_BITS$1; bits++) {\n    next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n  }\n  /* Check that the bit counts in bl_count are consistent. The last code\n   * must be all ones.\n   */\n  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\n  //        \"inconsistent bit counts\");\n  //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n  for (n = 0;  n <= max_code; n++) {\n    let len = tree[n * 2 + 1]/*.Len*/;\n    if (len === 0) { continue; }\n    /* Now reverse the bits */\n    tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n    //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n  }\n};\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nconst tr_static_init = () => {\n\n  let n;        /* iterates over tree elements */\n  let bits;     /* bit counter */\n  let length;   /* length value */\n  let code;     /* code value */\n  let dist;     /* distance index */\n  const bl_count = new Array(MAX_BITS$1 + 1);\n  /* number of codes at each bit length for an optimal tree */\n\n  // do check in _tr_init()\n  //if (static_init_done) return;\n\n  /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n  static_l_desc.static_tree = static_ltree;\n  static_l_desc.extra_bits = extra_lbits;\n  static_d_desc.static_tree = static_dtree;\n  static_d_desc.extra_bits = extra_dbits;\n  static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n  /* Initialize the mapping length (0..255) -> length code (0..28) */\n  length = 0;\n  for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n    base_length[code] = length;\n    for (n = 0; n < (1 << extra_lbits[code]); n++) {\n      _length_code[length++] = code;\n    }\n  }\n  //Assert (length == 256, \"tr_static_init: length != 256\");\n  /* Note that the length 255 (match length 258) can be represented\n   * in two different ways: code 284 + 5 bits or code 285, so we\n   * overwrite length_code[255] to use the best encoding:\n   */\n  _length_code[length - 1] = code;\n\n  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n  dist = 0;\n  for (code = 0; code < 16; code++) {\n    base_dist[code] = dist;\n    for (n = 0; n < (1 << extra_dbits[code]); n++) {\n      _dist_code[dist++] = code;\n    }\n  }\n  //Assert (dist == 256, \"tr_static_init: dist != 256\");\n  dist >>= 7; /* from now on, all distances are divided by 128 */\n  for (; code < D_CODES$1; code++) {\n    base_dist[code] = dist << 7;\n    for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n      _dist_code[256 + dist++] = code;\n    }\n  }\n  //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n  /* Construct the codes of the static literal tree */\n  for (bits = 0; bits <= MAX_BITS$1; bits++) {\n    bl_count[bits] = 0;\n  }\n\n  n = 0;\n  while (n <= 143) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 8;\n    n++;\n    bl_count[8]++;\n  }\n  while (n <= 255) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 9;\n    n++;\n    bl_count[9]++;\n  }\n  while (n <= 279) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 7;\n    n++;\n    bl_count[7]++;\n  }\n  while (n <= 287) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 8;\n    n++;\n    bl_count[8]++;\n  }\n  /* Codes 286 and 287 do not exist, but we must include them in the\n   * tree construction to get a canonical Huffman tree (longest code\n   * all ones)\n   */\n  gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n  /* The static distance tree is trivial: */\n  for (n = 0; n < D_CODES$1; n++) {\n    static_dtree[n * 2 + 1]/*.Len*/ = 5;\n    static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n  }\n\n  // Now data ready and we can init static trees\n  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES$1, MAX_BITS$1);\n  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES$1, MAX_BL_BITS);\n\n  //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n  let n; /* iterates over tree elements */\n\n  /* Initialize the trees. */\n  for (n = 0; n < L_CODES$1;  n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n  for (n = 0; n < D_CODES$1;  n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n  for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n  s.opt_len = s.static_len = 0;\n  s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n  if (s.bi_valid > 8) {\n    put_short(s, s.bi_buf);\n  } else if (s.bi_valid > 0) {\n    //put_byte(s, (Byte)s->bi_buf);\n    s.pending_buf[s.pending++] = s.bi_buf;\n  }\n  s.bi_buf = 0;\n  s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf    *buf;    /* the input data */\n//unsigned len;     /* its length */\n//int      header;  /* true if block header must be written */\n{\n  bi_windup(s);        /* align on byte boundary */\n\n  if (header) {\n    put_short(s, len);\n    put_short(s, ~len);\n  }\n//  while (len--) {\n//    put_byte(s, *buf++);\n//  }\n  s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n  s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n  const _n2 = n * 2;\n  const _m2 = m * 2;\n  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n//    deflate_state *s;\n//    ct_data *tree;  /* the tree to restore */\n//    int k;               /* node to move down */\n{\n  const v = s.heap[k];\n  let j = k << 1;  /* left son of k */\n  while (j <= s.heap_len) {\n    /* Set j to the smallest of the two sons: */\n    if (j < s.heap_len &&\n      smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n      j++;\n    }\n    /* Exit if v is smaller than both sons */\n    if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n    /* Exchange v with the smallest son */\n    s.heap[k] = s.heap[j];\n    k = j;\n\n    /* And continue down the tree, setting j to the left son of k */\n    j <<= 1;\n  }\n  s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n//    deflate_state *s;\n//    const ct_data *ltree; /* literal tree */\n//    const ct_data *dtree; /* distance tree */\n{\n  let dist;           /* distance of matched string */\n  let lc;             /* match length or unmatched char (if dist == 0) */\n  let lx = 0;         /* running index in l_buf */\n  let code;           /* the code to send */\n  let extra;          /* number of extra bits to send */\n\n  if (s.last_lit !== 0) {\n    do {\n      dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n      lc = s.pending_buf[s.l_buf + lx];\n      lx++;\n\n      if (dist === 0) {\n        send_code(s, lc, ltree); /* send a literal byte */\n        //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n      } else {\n        /* Here, lc is the match length - MIN_MATCH */\n        code = _length_code[lc];\n        send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n        extra = extra_lbits[code];\n        if (extra !== 0) {\n          lc -= base_length[code];\n          send_bits(s, lc, extra);       /* send the extra length bits */\n        }\n        dist--; /* dist is now the match distance - 1 */\n        code = d_code(dist);\n        //Assert (code < D_CODES, \"bad d_code\");\n\n        send_code(s, code, dtree);       /* send the distance code */\n        extra = extra_dbits[code];\n        if (extra !== 0) {\n          dist -= base_dist[code];\n          send_bits(s, dist, extra);   /* send the extra distance bits */\n        }\n      } /* literal or match pair ? */\n\n      /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n      //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n      //       \"pendingBuf overflow\");\n\n    } while (lx < s.last_lit);\n  }\n\n  send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n *     and corresponding code. The length opt_len is updated; static_len is\n *     also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n//    deflate_state *s;\n//    tree_desc *desc; /* the tree descriptor */\n{\n  const tree     = desc.dyn_tree;\n  const stree    = desc.stat_desc.static_tree;\n  const has_stree = desc.stat_desc.has_stree;\n  const elems    = desc.stat_desc.elems;\n  let n, m;          /* iterate over heap elements */\n  let max_code = -1; /* largest code with non zero frequency */\n  let node;          /* new node being created */\n\n  /* Construct the initial heap, with least frequent element in\n   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n   * heap[0] is not used.\n   */\n  s.heap_len = 0;\n  s.heap_max = HEAP_SIZE$1;\n\n  for (n = 0; n < elems; n++) {\n    if (tree[n * 2]/*.Freq*/ !== 0) {\n      s.heap[++s.heap_len] = max_code = n;\n      s.depth[n] = 0;\n\n    } else {\n      tree[n * 2 + 1]/*.Len*/ = 0;\n    }\n  }\n\n  /* The pkzip format requires that at least one distance code exists,\n   * and that at least one bit should be sent even if there is only one\n   * possible code. So to avoid special checks later on we force at least\n   * two codes of non zero frequency.\n   */\n  while (s.heap_len < 2) {\n    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n    tree[node * 2]/*.Freq*/ = 1;\n    s.depth[node] = 0;\n    s.opt_len--;\n\n    if (has_stree) {\n      s.static_len -= stree[node * 2 + 1]/*.Len*/;\n    }\n    /* node is 0 or 1 so it does not have extra bits */\n  }\n  desc.max_code = max_code;\n\n  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n   * establish sub-heaps of increasing lengths:\n   */\n  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n  /* Construct the Huffman tree by repeatedly combining the least two\n   * frequent nodes.\n   */\n  node = elems;              /* next internal node of the tree */\n  do {\n    //pqremove(s, tree, n);  /* n = node of least frequency */\n    /*** pqremove ***/\n    n = s.heap[1/*SMALLEST*/];\n    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n    pqdownheap(s, tree, 1/*SMALLEST*/);\n    /***/\n\n    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n    s.heap[--s.heap_max] = m;\n\n    /* Create a new node father of n and m */\n    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n    tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n    /* and insert the new node in the heap */\n    s.heap[1/*SMALLEST*/] = node++;\n    pqdownheap(s, tree, 1/*SMALLEST*/);\n\n  } while (s.heap_len >= 2);\n\n  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n  /* At this point, the fields freq and dad are set. We can now\n   * generate the bit lengths.\n   */\n  gen_bitlen(s, desc);\n\n  /* The field len is now set, we can generate the bit codes */\n  gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n//    deflate_state *s;\n//    ct_data *tree;   /* the tree to be scanned */\n//    int max_code;    /* and its largest code of non zero frequency */\n{\n  let n;                     /* iterates over all tree elements */\n  let prevlen = -1;          /* last emitted length */\n  let curlen;                /* length of current code */\n\n  let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n  let count = 0;             /* repeat count of the current code */\n  let max_count = 7;         /* max repeat count */\n  let min_count = 4;         /* min repeat count */\n\n  if (nextlen === 0) {\n    max_count = 138;\n    min_count = 3;\n  }\n  tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n  for (n = 0; n <= max_code; n++) {\n    curlen = nextlen;\n    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n    if (++count < max_count && curlen === nextlen) {\n      continue;\n\n    } else if (count < min_count) {\n      s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n    } else if (curlen !== 0) {\n\n      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n      s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n    } else if (count <= 10) {\n      s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n    } else {\n      s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n    }\n\n    count = 0;\n    prevlen = curlen;\n\n    if (nextlen === 0) {\n      max_count = 138;\n      min_count = 3;\n\n    } else if (curlen === nextlen) {\n      max_count = 6;\n      min_count = 3;\n\n    } else {\n      max_count = 7;\n      min_count = 4;\n    }\n  }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n//    deflate_state *s;\n//    ct_data *tree; /* the tree to be scanned */\n//    int max_code;       /* and its largest code of non zero frequency */\n{\n  let n;                     /* iterates over all tree elements */\n  let prevlen = -1;          /* last emitted length */\n  let curlen;                /* length of current code */\n\n  let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n  let count = 0;             /* repeat count of the current code */\n  let max_count = 7;         /* max repeat count */\n  let min_count = 4;         /* min repeat count */\n\n  /* tree[max_code+1].Len = -1; */  /* guard already set */\n  if (nextlen === 0) {\n    max_count = 138;\n    min_count = 3;\n  }\n\n  for (n = 0; n <= max_code; n++) {\n    curlen = nextlen;\n    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n    if (++count < max_count && curlen === nextlen) {\n      continue;\n\n    } else if (count < min_count) {\n      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n    } else if (curlen !== 0) {\n      if (curlen !== prevlen) {\n        send_code(s, curlen, s.bl_tree);\n        count--;\n      }\n      //Assert(count >= 3 && count <= 6, \" 3_6?\");\n      send_code(s, REP_3_6, s.bl_tree);\n      send_bits(s, count - 3, 2);\n\n    } else if (count <= 10) {\n      send_code(s, REPZ_3_10, s.bl_tree);\n      send_bits(s, count - 3, 3);\n\n    } else {\n      send_code(s, REPZ_11_138, s.bl_tree);\n      send_bits(s, count - 11, 7);\n    }\n\n    count = 0;\n    prevlen = curlen;\n    if (nextlen === 0) {\n      max_count = 138;\n      min_count = 3;\n\n    } else if (curlen === nextlen) {\n      max_count = 6;\n      min_count = 3;\n\n    } else {\n      max_count = 7;\n      min_count = 4;\n    }\n  }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n  let max_blindex;  /* index of last bit length code of non zero freq */\n\n  /* Determine the bit length frequencies for literal and distance trees */\n  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n  /* Build the bit length tree: */\n  build_tree(s, s.bl_desc);\n  /* opt_len now includes the length of the tree representations, except\n   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n   */\n\n  /* Determine the number of bit length codes to send. The pkzip format\n   * requires that at least 4 bit length codes be sent. (appnote.txt says\n   * 3 but the actual value used is 4.)\n   */\n  for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n    if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n      break;\n    }\n  }\n  /* Update opt_len to include the bit length tree and counts */\n  s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n  //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n  //        s->opt_len, s->static_len));\n\n  return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n//    deflate_state *s;\n//    int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n  let rank;                    /* index in bl_order */\n\n  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n  //        \"too many codes\");\n  //Tracev((stderr, \"\\nbl counts: \"));\n  send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n  send_bits(s, dcodes - 1,   5);\n  send_bits(s, blcodes - 4,  4); /* not -3 as stated in appnote.txt */\n  for (rank = 0; rank < blcodes; rank++) {\n    //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n    send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n  }\n  //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n  send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n  //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n  send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n  //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n *    a) There are no non-portable control characters belonging to the\n *       \"black list\" (0..6, 14..25, 28..31).\n *    b) There is at least one printable character belonging to the\n *       \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n *   \"gray list\" that is ignored in this detection algorithm:\n *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n  /* black_mask is the bit mask of black-listed bytes\n   * set bits 0..6, 14..25, and 28..31\n   * 0xf3ffc07f = binary 11110011111111111100000001111111\n   */\n  let black_mask = 0xf3ffc07f;\n  let n;\n\n  /* Check for non-textual (\"black-listed\") bytes. */\n  for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n    if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n      return Z_BINARY;\n    }\n  }\n\n  /* Check for textual (\"white-listed\") bytes. */\n  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n    return Z_TEXT;\n  }\n  for (n = 32; n < LITERALS$1; n++) {\n    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n      return Z_TEXT;\n    }\n  }\n\n  /* There are no \"black-listed\" or \"white-listed\" bytes:\n   * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n   */\n  return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n  if (!static_init_done) {\n    tr_static_init();\n    static_init_done = true;\n  }\n\n  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);\n  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);\n  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n  s.bi_buf = 0;\n  s.bi_valid = 0;\n\n  /* Initialize the first block of the first file: */\n  init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf;       /* input block */\n//ulg stored_len;   /* length of input block */\n//int last;         /* one if this is the last block for a file */\n{\n  send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);    /* send block type */\n  copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n  send_bits(s, STATIC_TREES << 1, 3);\n  send_code(s, END_BLOCK, static_ltree);\n  bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf;       /* input block, or NULL if too old */\n//ulg stored_len;   /* length of input block */\n//int last;         /* one if this is the last block for a file */\n{\n  let opt_lenb, static_lenb;  /* opt_len and static_len in bytes */\n  let max_blindex = 0;        /* index of last bit length code of non zero freq */\n\n  /* Build the Huffman trees unless a stored block is forced */\n  if (s.level > 0) {\n\n    /* Check if the file is binary or text */\n    if (s.strm.data_type === Z_UNKNOWN$1) {\n      s.strm.data_type = detect_data_type(s);\n    }\n\n    /* Construct the literal and distance trees */\n    build_tree(s, s.l_desc);\n    // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n    //        s->static_len));\n\n    build_tree(s, s.d_desc);\n    // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n    //        s->static_len));\n    /* At this point, opt_len and static_len are the total bit lengths of\n     * the compressed block data, excluding the tree representations.\n     */\n\n    /* Build the bit length tree for the above two trees, and get the index\n     * in bl_order of the last bit length code to send.\n     */\n    max_blindex = build_bl_tree(s);\n\n    /* Determine the best encoding. Compute the block lengths in bytes. */\n    opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n    static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n    // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n    //        s->last_lit));\n\n    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n  } else {\n    // Assert(buf != (char*)0, \"lost buf\");\n    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n  }\n\n  if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n    /* 4: two words for the lengths */\n\n    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n     * Otherwise we can't have processed more than WSIZE input bytes since\n     * the last block flush, because compression would have been\n     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n     * transform a block into a stored block.\n     */\n    _tr_stored_block$1(s, buf, stored_len, last);\n\n  } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n    send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n    compress_block(s, static_ltree, static_dtree);\n\n  } else {\n    send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n    send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n    compress_block(s, s.dyn_ltree, s.dyn_dtree);\n  }\n  // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n  /* The above check is made mod 2^32, for files larger than 512 MB\n   * and uLong implemented on 32 bits.\n   */\n  init_block(s);\n\n  if (last) {\n    bi_windup(s);\n  }\n  // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n  //       s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n//    deflate_state *s;\n//    unsigned dist;  /* distance of matched string */\n//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n  //let out_length, in_length, dcode;\n\n  s.pending_buf[s.d_buf + s.last_lit * 2]     = (dist >>> 8) & 0xff;\n  s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n  s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n  s.last_lit++;\n\n  if (dist === 0) {\n    /* lc is the unmatched char */\n    s.dyn_ltree[lc * 2]/*.Freq*/++;\n  } else {\n    s.matches++;\n    /* Here, lc is the match length - MIN_MATCH */\n    dist--;             /* dist = match distance - 1 */\n    //Assert((ush)dist < (ush)MAX_DIST(s) &&\n    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n    //       (ush)d_code(dist) < (ush)D_CODES,  \"_tr_tally: bad match\");\n\n    s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n  }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n//  /* Try to guess if it is profitable to stop the current block here */\n//  if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n//    /* Compute an upper bound for the compressed length */\n//    out_length = s.last_lit*8;\n//    in_length = s.strstart - s.block_start;\n//\n//    for (dcode = 0; dcode < D_CODES; dcode++) {\n//      out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n//    }\n//    out_length >>>= 3;\n//    //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n//    //       s->last_lit, in_length, out_length,\n//    //       100L - out_length*100L/in_length));\n//    if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n//      return true;\n//    }\n//  }\n//#endif\n\n  return (s.last_lit === s.lit_bufsize - 1);\n  /* We avoid equality with lit_bufsize because of wraparound at 64K\n   * on 16 bit machines and because stored blocks are restricted to\n   * 64K-1 bytes.\n   */\n};\n\nvar _tr_init_1  = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1  = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n  let s1 = (adler & 0xffff) |0,\n      s2 = ((adler >>> 16) & 0xffff) |0,\n      n = 0;\n\n  while (len !== 0) {\n    // Set limit ~ twice less than 5552, to keep\n    // s2 in 31-bits, because we force signed ints.\n    // in other case %= will fail.\n    n = len > 2000 ? 2000 : len;\n    len -= n;\n\n    do {\n      s1 = (s1 + buf[pos++]) |0;\n      s2 = (s2 + s1) |0;\n    } while (--n);\n\n    s1 %= 65521;\n    s2 %= 65521;\n  }\n\n  return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n  let c, table = [];\n\n  for (var n = 0; n < 256; n++) {\n    c = n;\n    for (var k = 0; k < 8; k++) {\n      c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n    }\n    table[n] = c;\n  }\n\n  return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n  const t = crcTable;\n  const end = pos + len;\n\n  crc ^= -1;\n\n  for (let i = pos; i < end; i++) {\n    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n  }\n\n  return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n  2:      'need dictionary',     /* Z_NEED_DICT       2  */\n  1:      'stream end',          /* Z_STREAM_END      1  */\n  0:      '',                    /* Z_OK              0  */\n  '-1':   'file error',          /* Z_ERRNO         (-1) */\n  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */\n  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */\n  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */\n  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */\n  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n  /* Allowed flush values; see deflate() and inflate() below for details */\n  Z_NO_FLUSH:         0,\n  Z_PARTIAL_FLUSH:    1,\n  Z_SYNC_FLUSH:       2,\n  Z_FULL_FLUSH:       3,\n  Z_FINISH:           4,\n  Z_BLOCK:            5,\n  Z_TREES:            6,\n\n  /* Return codes for the compression/decompression functions. Negative values\n  * are errors, positive values are used for special but normal events.\n  */\n  Z_OK:               0,\n  Z_STREAM_END:       1,\n  Z_NEED_DICT:        2,\n  Z_ERRNO:           -1,\n  Z_STREAM_ERROR:    -2,\n  Z_DATA_ERROR:      -3,\n  Z_MEM_ERROR:       -4,\n  Z_BUF_ERROR:       -5,\n  //Z_VERSION_ERROR: -6,\n\n  /* compression levels */\n  Z_NO_COMPRESSION:         0,\n  Z_BEST_SPEED:             1,\n  Z_BEST_COMPRESSION:       9,\n  Z_DEFAULT_COMPRESSION:   -1,\n\n\n  Z_FILTERED:               1,\n  Z_HUFFMAN_ONLY:           2,\n  Z_RLE:                    3,\n  Z_FIXED:                  4,\n  Z_DEFAULT_STRATEGY:       0,\n\n  /* Possible values of the data_type field (though see inflate()) */\n  Z_BINARY:                 0,\n  Z_TEXT:                   1,\n  //Z_ASCII:                1, // = Z_TEXT (deprecated)\n  Z_UNKNOWN:                2,\n\n  /* The deflate compression method */\n  Z_DEFLATED:               8\n  //Z_NULL:                 null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n  Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n  Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n  Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n  Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n  Z_UNKNOWN,\n  Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES  = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS      = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES       = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES       = 30;\n/* number of distance codes */\nconst BL_CODES      = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE     = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS  = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE      = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE     = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n  strm.msg = messages[errorCode];\n  return errorCode;\n};\n\nconst rank = (f) => {\n  return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n  let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n  const s = strm.state;\n\n  //_tr_flush_bits(s);\n  let len = s.pending;\n  if (len > strm.avail_out) {\n    len = strm.avail_out;\n  }\n  if (len === 0) { return; }\n\n  strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n  strm.next_out += len;\n  s.pending_out += len;\n  strm.total_out += len;\n  strm.avail_out -= len;\n  s.pending -= len;\n  if (s.pending === 0) {\n    s.pending_out = 0;\n  }\n};\n\n\nconst flush_block_only = (s, last) => {\n  _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n  s.block_start = s.strstart;\n  flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n  s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n  //  put_byte(s, (Byte)(b >> 8));\n//  put_byte(s, (Byte)(b & 0xff));\n  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n  s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read.  All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n  let len = strm.avail_in;\n\n  if (len > size) { len = size; }\n  if (len === 0) { return 0; }\n\n  strm.avail_in -= len;\n\n  // zmemcpy(buf, strm->next_in, len);\n  buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n  if (strm.state.wrap === 1) {\n    strm.adler = adler32_1(strm.adler, buf, len, start);\n  }\n\n  else if (strm.state.wrap === 2) {\n    strm.adler = crc32_1(strm.adler, buf, len, start);\n  }\n\n  strm.next_in += len;\n  strm.total_in += len;\n\n  return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n  let chain_length = s.max_chain_length;      /* max hash chain length */\n  let scan = s.strstart; /* current string */\n  let match;                       /* matched string */\n  let len;                           /* length of current match */\n  let best_len = s.prev_length;              /* best match length so far */\n  let nice_match = s.nice_match;             /* stop if match long enough */\n  const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n  const _win = s.window; // shortcut\n\n  const wmask = s.w_mask;\n  const prev  = s.prev;\n\n  /* Stop when cur_match becomes <= limit. To simplify the code,\n   * we prevent matches with the string of window index 0.\n   */\n\n  const strend = s.strstart + MAX_MATCH;\n  let scan_end1  = _win[scan + best_len - 1];\n  let scan_end   = _win[scan + best_len];\n\n  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n   * It is easy to get rid of this optimization if necessary.\n   */\n  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n  /* Do not waste too much time if we already have a good match: */\n  if (s.prev_length >= s.good_match) {\n    chain_length >>= 2;\n  }\n  /* Do not look for matches beyond the end of the input. This is necessary\n   * to make deflate deterministic.\n   */\n  if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n  do {\n    // Assert(cur_match < s->strstart, \"no future\");\n    match = cur_match;\n\n    /* Skip to next match if the match length cannot increase\n     * or if the match length is less than 2.  Note that the checks below\n     * for insufficient lookahead only occur occasionally for performance\n     * reasons.  Therefore uninitialized memory will be accessed, and\n     * conditional jumps will be made that depend on those values.\n     * However the length of the match is limited to the lookahead, so\n     * the output of deflate is not affected by the uninitialized values.\n     */\n\n    if (_win[match + best_len]     !== scan_end  ||\n        _win[match + best_len - 1] !== scan_end1 ||\n        _win[match]                !== _win[scan] ||\n        _win[++match]              !== _win[scan + 1]) {\n      continue;\n    }\n\n    /* The check at best_len-1 can be removed because it will be made\n     * again later. (This heuristic is not always a win.)\n     * It is not necessary to compare scan[2] and match[2] since they\n     * are always equal when the other bytes match, given that\n     * the hash keys are equal and that HASH_BITS >= 8.\n     */\n    scan += 2;\n    match++;\n    // Assert(*scan == *match, \"match[2]?\");\n\n    /* We check for insufficient lookahead only every 8th comparison;\n     * the 256th check will be made at strstart+258.\n     */\n    do {\n      /*jshint noempty:false*/\n    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             scan < strend);\n\n    // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n    len = MAX_MATCH - (strend - scan);\n    scan = strend - MAX_MATCH;\n\n    if (len > best_len) {\n      s.match_start = cur_match;\n      best_len = len;\n      if (len >= nice_match) {\n        break;\n      }\n      scan_end1  = _win[scan + best_len - 1];\n      scan_end   = _win[scan + best_len];\n    }\n  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n  if (best_len <= s.lookahead) {\n    return best_len;\n  }\n  return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n *    At least one byte has been read, or avail_in == 0; reads are\n *    performed for at least two bytes (required for the zip translate_eol\n *    option -- not supported here).\n */\nconst fill_window = (s) => {\n\n  const _w_size = s.w_size;\n  let p, n, m, more, str;\n\n  //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n  do {\n    more = s.window_size - s.lookahead - s.strstart;\n\n    // JS ints have 32 bit, block below not needed\n    /* Deal with !@#$% 64K limit: */\n    //if (sizeof(int) <= 2) {\n    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n    //        more = wsize;\n    //\n    //  } else if (more == (unsigned)(-1)) {\n    //        /* Very unlikely, but possible on 16 bit machine if\n    //         * strstart == 0 && lookahead == 1 (input done a byte at time)\n    //         */\n    //        more--;\n    //    }\n    //}\n\n\n    /* If the window is almost full and there is insufficient lookahead,\n     * move the upper half to the lower one to make room in the upper half.\n     */\n    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n      s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n      s.match_start -= _w_size;\n      s.strstart -= _w_size;\n      /* we now have strstart >= MAX_DIST */\n      s.block_start -= _w_size;\n\n      /* Slide the hash table (could be avoided with 32 bit values\n       at the expense of memory usage). We slide even when level == 0\n       to keep the hash table consistent if we switch back to level > 0\n       later. (Using level 0 permanently is not an optimal usage of\n       zlib, so we don't care about this pathological case.)\n       */\n\n      n = s.hash_size;\n      p = n;\n\n      do {\n        m = s.head[--p];\n        s.head[p] = (m >= _w_size ? m - _w_size : 0);\n      } while (--n);\n\n      n = _w_size;\n      p = n;\n\n      do {\n        m = s.prev[--p];\n        s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n        /* If n is not on any hash chain, prev[n] is garbage but\n         * its value will never be used.\n         */\n      } while (--n);\n\n      more += _w_size;\n    }\n    if (s.strm.avail_in === 0) {\n      break;\n    }\n\n    /* If there was no sliding:\n     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n     *    more == window_size - lookahead - strstart\n     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n     * => more >= window_size - 2*WSIZE + 2\n     * In the BIG_MEM or MMAP case (not yet supported),\n     *   window_size == input_size + MIN_LOOKAHEAD  &&\n     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n     * Otherwise, window_size == 2*WSIZE so more >= 2.\n     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n     */\n    //Assert(more >= 2, \"more < 2\");\n    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n    s.lookahead += n;\n\n    /* Initialize the hash value now that we have some input: */\n    if (s.lookahead + s.insert >= MIN_MATCH) {\n      str = s.strstart - s.insert;\n      s.ins_h = s.window[str];\n\n      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n      s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n//        Call update_hash() MIN_MATCH-3 more times\n//#endif\n      while (s.insert) {\n        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n        s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n        s.prev[str & s.w_mask] = s.head[s.ins_h];\n        s.head[s.ins_h] = str;\n        str++;\n        s.insert--;\n        if (s.lookahead + s.insert < MIN_MATCH) {\n          break;\n        }\n      }\n    }\n    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n     * but this is not important since only literal bytes will be emitted.\n     */\n\n  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n  /* If the WIN_INIT bytes after the end of the current data have never been\n   * written, then zero those bytes in order to avoid memory check reports of\n   * the use of uninitialized (or uninitialised as Julian writes) bytes by\n   * the longest match routines.  Update the high water mark for the next\n   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match\n   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n   */\n//  if (s.high_water < s.window_size) {\n//    const curr = s.strstart + s.lookahead;\n//    let init = 0;\n//\n//    if (s.high_water < curr) {\n//      /* Previous high water mark below current data -- zero WIN_INIT\n//       * bytes or up to end of window, whichever is less.\n//       */\n//      init = s.window_size - curr;\n//      if (init > WIN_INIT)\n//        init = WIN_INIT;\n//      zmemzero(s->window + curr, (unsigned)init);\n//      s->high_water = curr + init;\n//    }\n//    else if (s->high_water < (ulg)curr + WIN_INIT) {\n//      /* High water mark at or above current data, but below current data\n//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n//       * to end of window, whichever is less.\n//       */\n//      init = (ulg)curr + WIN_INIT - s->high_water;\n//      if (init > s->window_size - s->high_water)\n//        init = s->window_size - s->high_water;\n//      zmemzero(s->window + s->high_water, (unsigned)init);\n//      s->high_water += init;\n//    }\n//  }\n//\n//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n//    \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n  /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n   * to pending_buf_size, and each stored block has a 5 byte header:\n   */\n  let max_block_size = 0xffff;\n\n  if (max_block_size > s.pending_buf_size - 5) {\n    max_block_size = s.pending_buf_size - 5;\n  }\n\n  /* Copy as much as possible from input to output: */\n  for (;;) {\n    /* Fill the window as much as possible: */\n    if (s.lookahead <= 1) {\n\n      //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n      //  s->block_start >= (long)s->w_size, \"slide too late\");\n//      if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n//        s.block_start >= s.w_size)) {\n//        throw  new Error(\"slide too late\");\n//      }\n\n      fill_window(s);\n      if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n        return BS_NEED_MORE;\n      }\n\n      if (s.lookahead === 0) {\n        break;\n      }\n      /* flush the current block */\n    }\n    //Assert(s->block_start >= 0L, \"block gone\");\n//    if (s.block_start < 0) throw new Error(\"block gone\");\n\n    s.strstart += s.lookahead;\n    s.lookahead = 0;\n\n    /* Emit a stored block if pending_buf will be full: */\n    const max_start = s.block_start + max_block_size;\n\n    if (s.strstart === 0 || s.strstart >= max_start) {\n      /* strstart == 0 is possible when wraparound on 16-bit machine */\n      s.lookahead = s.strstart - max_start;\n      s.strstart = max_start;\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n\n\n    }\n    /* Flush if we may have to slide, otherwise block_start may become\n     * negative and the data will be gone:\n     */\n    if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n\n  s.insert = 0;\n\n  if (flush === Z_FINISH$3) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n\n  if (s.strstart > s.block_start) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n\n  return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n  let hash_head;        /* head of the hash chain */\n  let bflush;           /* set if current block must be flushed */\n\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the next match, plus MIN_MATCH bytes to insert the\n     * string following the next match.\n     */\n    if (s.lookahead < MIN_LOOKAHEAD) {\n      fill_window(s);\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) {\n        break; /* flush the current block */\n      }\n    }\n\n    /* Insert the string window[strstart .. strstart+2] in the\n     * dictionary, and set hash_head to the head of the hash chain:\n     */\n    hash_head = 0/*NIL*/;\n    if (s.lookahead >= MIN_MATCH) {\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n      s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n      s.head[s.ins_h] = s.strstart;\n      /***/\n    }\n\n    /* Find the longest match, discarding those <= prev_length.\n     * At this point we have always match_length < MIN_MATCH\n     */\n    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n      /* To simplify the code, we prevent matches with the string\n       * of window index 0 (in particular we have to avoid a match\n       * of the string with itself at the start of the input file).\n       */\n      s.match_length = longest_match(s, hash_head);\n      /* longest_match() sets match_start */\n    }\n    if (s.match_length >= MIN_MATCH) {\n      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n      /*** _tr_tally_dist(s, s.strstart - s.match_start,\n                     s.match_length - MIN_MATCH, bflush); ***/\n      bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n      s.lookahead -= s.match_length;\n\n      /* Insert new strings in the hash table only if the match length\n       * is not too large. This saves time but degrades compression.\n       */\n      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n        s.match_length--; /* string at strstart already in table */\n        do {\n          s.strstart++;\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n          s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n          s.head[s.ins_h] = s.strstart;\n          /***/\n          /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n           * always MIN_MATCH bytes ahead.\n           */\n        } while (--s.match_length !== 0);\n        s.strstart++;\n      } else\n      {\n        s.strstart += s.match_length;\n        s.match_length = 0;\n        s.ins_h = s.window[s.strstart];\n        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n        s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n//                Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n         * matter since it will be recomputed at next deflate call.\n         */\n      }\n    } else {\n      /* No match, output a literal byte */\n      //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n      bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n      s.lookahead--;\n      s.strstart++;\n    }\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n  if (flush === Z_FINISH$3) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n  let hash_head;          /* head of hash chain */\n  let bflush;              /* set if current block must be flushed */\n\n  let max_insert;\n\n  /* Process the input block. */\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the next match, plus MIN_MATCH bytes to insert the\n     * string following the next match.\n     */\n    if (s.lookahead < MIN_LOOKAHEAD) {\n      fill_window(s);\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) { break; } /* flush the current block */\n    }\n\n    /* Insert the string window[strstart .. strstart+2] in the\n     * dictionary, and set hash_head to the head of the hash chain:\n     */\n    hash_head = 0/*NIL*/;\n    if (s.lookahead >= MIN_MATCH) {\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n      s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n      s.head[s.ins_h] = s.strstart;\n      /***/\n    }\n\n    /* Find the longest match, discarding those <= prev_length.\n     */\n    s.prev_length = s.match_length;\n    s.prev_match = s.match_start;\n    s.match_length = MIN_MATCH - 1;\n\n    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n        s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n      /* To simplify the code, we prevent matches with the string\n       * of window index 0 (in particular we have to avoid a match\n       * of the string with itself at the start of the input file).\n       */\n      s.match_length = longest_match(s, hash_head);\n      /* longest_match() sets match_start */\n\n      if (s.match_length <= 5 &&\n         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n        /* If prev_match is also MIN_MATCH, match_start is garbage\n         * but we will ignore the current match anyway.\n         */\n        s.match_length = MIN_MATCH - 1;\n      }\n    }\n    /* If there was a match at the previous step and the current\n     * match is not better, output the previous match:\n     */\n    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n      max_insert = s.strstart + s.lookahead - MIN_MATCH;\n      /* Do not insert strings in hash table beyond this. */\n\n      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n                     s.prev_length - MIN_MATCH, bflush);***/\n      bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n      /* Insert in hash table all strings up to the end of the match.\n       * strstart-1 and strstart are already inserted. If there is not\n       * enough lookahead, the last two strings are not inserted in\n       * the hash table.\n       */\n      s.lookahead -= s.prev_length - 1;\n      s.prev_length -= 2;\n      do {\n        if (++s.strstart <= max_insert) {\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n          s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n          s.head[s.ins_h] = s.strstart;\n          /***/\n        }\n      } while (--s.prev_length !== 0);\n      s.match_available = 0;\n      s.match_length = MIN_MATCH - 1;\n      s.strstart++;\n\n      if (bflush) {\n        /*** FLUSH_BLOCK(s, 0); ***/\n        flush_block_only(s, false);\n        if (s.strm.avail_out === 0) {\n          return BS_NEED_MORE;\n        }\n        /***/\n      }\n\n    } else if (s.match_available) {\n      /* If there was no match at the previous position, output a\n       * single literal. If there was a match but the current match\n       * is longer, truncate the previous match to a single literal.\n       */\n      //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n      bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n      if (bflush) {\n        /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n        flush_block_only(s, false);\n        /***/\n      }\n      s.strstart++;\n      s.lookahead--;\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n    } else {\n      /* There is no previous match to compare with, wait for\n       * the next step to decide.\n       */\n      s.match_available = 1;\n      s.strstart++;\n      s.lookahead--;\n    }\n  }\n  //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n  if (s.match_available) {\n    //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n    bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n    s.match_available = 0;\n  }\n  s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n  if (flush === Z_FINISH$3) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n\n  return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one.  Do not maintain a hash table.  (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n  let bflush;            /* set if current block must be flushed */\n  let prev;              /* byte at distance one to match */\n  let scan, strend;      /* scan goes up to strend for length of run */\n\n  const _win = s.window;\n\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the longest run, plus one for the unrolled loop.\n     */\n    if (s.lookahead <= MAX_MATCH) {\n      fill_window(s);\n      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) { break; } /* flush the current block */\n    }\n\n    /* See how many times the previous byte repeats */\n    s.match_length = 0;\n    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n      scan = s.strstart - 1;\n      prev = _win[scan];\n      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n        strend = s.strstart + MAX_MATCH;\n        do {\n          /*jshint noempty:false*/\n        } while (prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 scan < strend);\n        s.match_length = MAX_MATCH - (strend - scan);\n        if (s.match_length > s.lookahead) {\n          s.match_length = s.lookahead;\n        }\n      }\n      //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n    }\n\n    /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n    if (s.match_length >= MIN_MATCH) {\n      //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n      bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n      s.lookahead -= s.match_length;\n      s.strstart += s.match_length;\n      s.match_length = 0;\n    } else {\n      /* No match, output a literal byte */\n      //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n      bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n      s.lookahead--;\n      s.strstart++;\n    }\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = 0;\n  if (flush === Z_FINISH$3) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n  let bflush;             /* set if current block must be flushed */\n\n  for (;;) {\n    /* Make sure that we have a literal to write. */\n    if (s.lookahead === 0) {\n      fill_window(s);\n      if (s.lookahead === 0) {\n        if (flush === Z_NO_FLUSH$2) {\n          return BS_NEED_MORE;\n        }\n        break;      /* flush the current block */\n      }\n    }\n\n    /* Output a literal byte */\n    s.match_length = 0;\n    //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n    bflush = _tr_tally(s, 0, s.window[s.strstart]);\n    s.lookahead--;\n    s.strstart++;\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = 0;\n  if (flush === Z_FINISH$3) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n  this.good_length = good_length;\n  this.max_lazy = max_lazy;\n  this.nice_length = nice_length;\n  this.max_chain = max_chain;\n  this.func = func;\n}\n\nconst configuration_table = [\n  /*      good lazy nice chain */\n  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */\n  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */\n  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */\n  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */\n\n  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */\n  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */\n  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */\n  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */\n  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */\n  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n  s.window_size = 2 * s.w_size;\n\n  /*** CLEAR_HASH(s); ***/\n  zero(s.head); // Fill with NIL (= 0);\n\n  /* Set the default configuration parameters:\n   */\n  s.max_lazy_match = configuration_table[s.level].max_lazy;\n  s.good_match = configuration_table[s.level].good_length;\n  s.nice_match = configuration_table[s.level].nice_length;\n  s.max_chain_length = configuration_table[s.level].max_chain;\n\n  s.strstart = 0;\n  s.block_start = 0;\n  s.lookahead = 0;\n  s.insert = 0;\n  s.match_length = s.prev_length = MIN_MATCH - 1;\n  s.match_available = 0;\n  s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n  this.strm = null;            /* pointer back to this zlib stream */\n  this.status = 0;            /* as the name implies */\n  this.pending_buf = null;      /* output still pending */\n  this.pending_buf_size = 0;  /* size of pending_buf */\n  this.pending_out = 0;       /* next pending byte to output to the stream */\n  this.pending = 0;           /* nb of bytes in the pending buffer */\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */\n  this.gzhead = null;         /* gzip header information to write */\n  this.gzindex = 0;           /* where in extra, name, or comment */\n  this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n  this.last_flush = -1;   /* value of flush param for previous deflate call */\n\n  this.w_size = 0;  /* LZ77 window size (32K by default) */\n  this.w_bits = 0;  /* log2(w_size)  (8..16) */\n  this.w_mask = 0;  /* w_size - 1 */\n\n  this.window = null;\n  /* Sliding window. Input bytes are read into the second half of the window,\n   * and move to the first half later to keep a dictionary of at least wSize\n   * bytes. With this organization, matches are limited to a distance of\n   * wSize-MAX_MATCH bytes, but this ensures that IO is always\n   * performed with a length multiple of the block size.\n   */\n\n  this.window_size = 0;\n  /* Actual size of window: 2*wSize, except when the user input buffer\n   * is directly used as sliding window.\n   */\n\n  this.prev = null;\n  /* Link to older string with same hash index. To limit the size of this\n   * array to 64K, this link is maintained only for the last 32K strings.\n   * An index in this array is thus a window index modulo 32K.\n   */\n\n  this.head = null;   /* Heads of the hash chains or NIL. */\n\n  this.ins_h = 0;       /* hash index of string to be inserted */\n  this.hash_size = 0;   /* number of elements in hash table */\n  this.hash_bits = 0;   /* log2(hash_size) */\n  this.hash_mask = 0;   /* hash_size-1 */\n\n  this.hash_shift = 0;\n  /* Number of bits by which ins_h must be shifted at each input\n   * step. It must be such that after MIN_MATCH steps, the oldest\n   * byte no longer takes part in the hash key, that is:\n   *   hash_shift * MIN_MATCH >= hash_bits\n   */\n\n  this.block_start = 0;\n  /* Window position at the beginning of the current output block. Gets\n   * negative when the window is moved backwards.\n   */\n\n  this.match_length = 0;      /* length of best match */\n  this.prev_match = 0;        /* previous match */\n  this.match_available = 0;   /* set if previous match exists */\n  this.strstart = 0;          /* start of string to insert */\n  this.match_start = 0;       /* start of matching string */\n  this.lookahead = 0;         /* number of valid bytes ahead in window */\n\n  this.prev_length = 0;\n  /* Length of the best match at previous step. Matches not greater than this\n   * are discarded. This is used in the lazy match evaluation.\n   */\n\n  this.max_chain_length = 0;\n  /* To speed up deflation, hash chains are never searched beyond this\n   * length.  A higher limit improves compression ratio but degrades the\n   * speed.\n   */\n\n  this.max_lazy_match = 0;\n  /* Attempt to find a better match only when the current match is strictly\n   * smaller than this value. This mechanism is used only for compression\n   * levels >= 4.\n   */\n  // That's alias to max_lazy_match, don't use directly\n  //this.max_insert_length = 0;\n  /* Insert new strings in the hash table only if the match length is not\n   * greater than this length. This saves time but degrades compression.\n   * max_insert_length is used only for compression levels <= 3.\n   */\n\n  this.level = 0;     /* compression level (1..9) */\n  this.strategy = 0;  /* favor or force Huffman coding*/\n\n  this.good_match = 0;\n  /* Use a faster search when the previous match is longer than this */\n\n  this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n              /* used by trees.c: */\n\n  /* Didn't use ct_data typedef below to suppress compiler warning */\n\n  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */\n  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */\n\n  // Use flat array of DOUBLE size, with interleaved fata,\n  // because JS does not support effective\n  this.dyn_ltree  = new Uint16Array(HEAP_SIZE * 2);\n  this.dyn_dtree  = new Uint16Array((2 * D_CODES + 1) * 2);\n  this.bl_tree    = new Uint16Array((2 * BL_CODES + 1) * 2);\n  zero(this.dyn_ltree);\n  zero(this.dyn_dtree);\n  zero(this.bl_tree);\n\n  this.l_desc   = null;         /* desc. for literal tree */\n  this.d_desc   = null;         /* desc. for distance tree */\n  this.bl_desc  = null;         /* desc. for bit length tree */\n\n  //ush bl_count[MAX_BITS+1];\n  this.bl_count = new Uint16Array(MAX_BITS + 1);\n  /* number of codes at each bit length for an optimal tree */\n\n  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */\n  this.heap = new Uint16Array(2 * L_CODES + 1);  /* heap used to build the Huffman trees */\n  zero(this.heap);\n\n  this.heap_len = 0;               /* number of elements in the heap */\n  this.heap_max = 0;               /* element of largest frequency */\n  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n   * The same heap array is used to build all trees.\n   */\n\n  this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n  zero(this.depth);\n  /* Depth of each subtree used as tie breaker for trees of equal frequency\n   */\n\n  this.l_buf = 0;          /* buffer index for literals or lengths */\n\n  this.lit_bufsize = 0;\n  /* Size of match buffer for literals/lengths.  There are 4 reasons for\n   * limiting lit_bufsize to 64K:\n   *   - frequencies can be kept in 16 bit counters\n   *   - if compression is not successful for the first block, all input\n   *     data is still in the window so we can still emit a stored block even\n   *     when input comes from standard input.  (This can also be done for\n   *     all blocks if lit_bufsize is not greater than 32K.)\n   *   - if compression is not successful for a file smaller than 64K, we can\n   *     even emit a stored file instead of a stored block (saving 5 bytes).\n   *     This is applicable only for zip (not gzip or zlib).\n   *   - creating new Huffman trees less frequently may not provide fast\n   *     adaptation to changes in the input data statistics. (Take for\n   *     example a binary file with poorly compressible code followed by\n   *     a highly compressible string table.) Smaller buffer sizes give\n   *     fast adaptation but have of course the overhead of transmitting\n   *     trees more frequently.\n   *   - I can't count above 4\n   */\n\n  this.last_lit = 0;      /* running index in l_buf */\n\n  this.d_buf = 0;\n  /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n   * the same number of elements. To use different lengths, an extra flag\n   * array would be necessary.\n   */\n\n  this.opt_len = 0;       /* bit length of current block with optimal trees */\n  this.static_len = 0;    /* bit length of current block with static trees */\n  this.matches = 0;       /* number of string matches in current block */\n  this.insert = 0;        /* bytes at end of window left to insert */\n\n\n  this.bi_buf = 0;\n  /* Output buffer. bits are inserted starting at the bottom (least\n   * significant bits).\n   */\n  this.bi_valid = 0;\n  /* Number of valid bits in bi_buf.  All bits above the last valid bit\n   * are always zero.\n   */\n\n  // Used for window memory init. We safely ignore it for JS. That makes\n  // sense only for pointers and memory check tools.\n  //this.high_water = 0;\n  /* High water mark offset in window for initialized bytes -- bytes above\n   * this are set to zero in order to avoid memory check warnings when\n   * longest match routines access bytes past the input.  This is then\n   * updated to the new high water mark.\n   */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n  if (!strm || !strm.state) {\n    return err(strm, Z_STREAM_ERROR$2);\n  }\n\n  strm.total_in = strm.total_out = 0;\n  strm.data_type = Z_UNKNOWN;\n\n  const s = strm.state;\n  s.pending = 0;\n  s.pending_out = 0;\n\n  if (s.wrap < 0) {\n    s.wrap = -s.wrap;\n    /* was made negative by deflate(..., Z_FINISH); */\n  }\n  s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n  strm.adler = (s.wrap === 2) ?\n    0  // crc32(0, Z_NULL, 0)\n  :\n    1; // adler32(0, Z_NULL, 0)\n  s.last_flush = Z_NO_FLUSH$2;\n  _tr_init(s);\n  return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n  const ret = deflateResetKeep(strm);\n  if (ret === Z_OK$3) {\n    lm_init(strm.state);\n  }\n  return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n  if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n  if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n  strm.state.gzhead = head;\n  return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n  if (!strm) { // === Z_NULL\n    return Z_STREAM_ERROR$2;\n  }\n  let wrap = 1;\n\n  if (level === Z_DEFAULT_COMPRESSION$1) {\n    level = 6;\n  }\n\n  if (windowBits < 0) { /* suppress zlib wrapper */\n    wrap = 0;\n    windowBits = -windowBits;\n  }\n\n  else if (windowBits > 15) {\n    wrap = 2;           /* write gzip wrapper instead */\n    windowBits -= 16;\n  }\n\n\n  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n    strategy < 0 || strategy > Z_FIXED) {\n    return err(strm, Z_STREAM_ERROR$2);\n  }\n\n\n  if (windowBits === 8) {\n    windowBits = 9;\n  }\n  /* until 256-byte window bug fixed */\n\n  const s = new DeflateState();\n\n  strm.state = s;\n  s.strm = strm;\n\n  s.wrap = wrap;\n  s.gzhead = null;\n  s.w_bits = windowBits;\n  s.w_size = 1 << s.w_bits;\n  s.w_mask = s.w_size - 1;\n\n  s.hash_bits = memLevel + 7;\n  s.hash_size = 1 << s.hash_bits;\n  s.hash_mask = s.hash_size - 1;\n  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n  s.window = new Uint8Array(s.w_size * 2);\n  s.head = new Uint16Array(s.hash_size);\n  s.prev = new Uint16Array(s.w_size);\n\n  // Don't need mem init magic for JS.\n  //s.high_water = 0;  /* nothing written to s->window yet */\n\n  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n  s.pending_buf_size = s.lit_bufsize * 4;\n\n  //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n  //s->pending_buf = (uchf *) overlay;\n  s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n  // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n  //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n  s.d_buf = 1 * s.lit_bufsize;\n\n  //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n  s.l_buf = (1 + 2) * s.lit_bufsize;\n\n  s.level = level;\n  s.strategy = strategy;\n  s.method = method;\n\n  return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n  return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n  let beg, val; // for gzip header write only\n\n  if (!strm || !strm.state ||\n    flush > Z_BLOCK$1 || flush < 0) {\n    return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n  }\n\n  const s = strm.state;\n\n  if (!strm.output ||\n      (!strm.input && strm.avail_in !== 0) ||\n      (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n  }\n\n  s.strm = strm; /* just in case */\n  const old_flush = s.last_flush;\n  s.last_flush = flush;\n\n  /* Write the header */\n  if (s.status === INIT_STATE) {\n\n    if (s.wrap === 2) { // GZIP header\n      strm.adler = 0;  //crc32(0L, Z_NULL, 0);\n      put_byte(s, 31);\n      put_byte(s, 139);\n      put_byte(s, 8);\n      if (!s.gzhead) { // s->gzhead == Z_NULL\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, s.level === 9 ? 2 :\n                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n                     4 : 0));\n        put_byte(s, OS_CODE);\n        s.status = BUSY_STATE;\n      }\n      else {\n        put_byte(s, (s.gzhead.text ? 1 : 0) +\n                    (s.gzhead.hcrc ? 2 : 0) +\n                    (!s.gzhead.extra ? 0 : 4) +\n                    (!s.gzhead.name ? 0 : 8) +\n                    (!s.gzhead.comment ? 0 : 16)\n        );\n        put_byte(s, s.gzhead.time & 0xff);\n        put_byte(s, (s.gzhead.time >> 8) & 0xff);\n        put_byte(s, (s.gzhead.time >> 16) & 0xff);\n        put_byte(s, (s.gzhead.time >> 24) & 0xff);\n        put_byte(s, s.level === 9 ? 2 :\n                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n                     4 : 0));\n        put_byte(s, s.gzhead.os & 0xff);\n        if (s.gzhead.extra && s.gzhead.extra.length) {\n          put_byte(s, s.gzhead.extra.length & 0xff);\n          put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n        }\n        if (s.gzhead.hcrc) {\n          strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n        }\n        s.gzindex = 0;\n        s.status = EXTRA_STATE;\n      }\n    }\n    else // DEFLATE header\n    {\n      let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n      let level_flags = -1;\n\n      if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n        level_flags = 0;\n      } else if (s.level < 6) {\n        level_flags = 1;\n      } else if (s.level === 6) {\n        level_flags = 2;\n      } else {\n        level_flags = 3;\n      }\n      header |= (level_flags << 6);\n      if (s.strstart !== 0) { header |= PRESET_DICT; }\n      header += 31 - (header % 31);\n\n      s.status = BUSY_STATE;\n      putShortMSB(s, header);\n\n      /* Save the adler32 of the preset dictionary: */\n      if (s.strstart !== 0) {\n        putShortMSB(s, strm.adler >>> 16);\n        putShortMSB(s, strm.adler & 0xffff);\n      }\n      strm.adler = 1; // adler32(0L, Z_NULL, 0);\n    }\n  }\n\n//#ifdef GZIP\n  if (s.status === EXTRA_STATE) {\n    if (s.gzhead.extra/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n\n      while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            break;\n          }\n        }\n        put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n        s.gzindex++;\n      }\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (s.gzindex === s.gzhead.extra.length) {\n        s.gzindex = 0;\n        s.status = NAME_STATE;\n      }\n    }\n    else {\n      s.status = NAME_STATE;\n    }\n  }\n  if (s.status === NAME_STATE) {\n    if (s.gzhead.name/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n      //int val;\n\n      do {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            val = 1;\n            break;\n          }\n        }\n        // JS specific: little magic to add zero terminator to end of string\n        if (s.gzindex < s.gzhead.name.length) {\n          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n        } else {\n          val = 0;\n        }\n        put_byte(s, val);\n      } while (val !== 0);\n\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (val === 0) {\n        s.gzindex = 0;\n        s.status = COMMENT_STATE;\n      }\n    }\n    else {\n      s.status = COMMENT_STATE;\n    }\n  }\n  if (s.status === COMMENT_STATE) {\n    if (s.gzhead.comment/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n      //int val;\n\n      do {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            val = 1;\n            break;\n          }\n        }\n        // JS specific: little magic to add zero terminator to end of string\n        if (s.gzindex < s.gzhead.comment.length) {\n          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n        } else {\n          val = 0;\n        }\n        put_byte(s, val);\n      } while (val !== 0);\n\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (val === 0) {\n        s.status = HCRC_STATE;\n      }\n    }\n    else {\n      s.status = HCRC_STATE;\n    }\n  }\n  if (s.status === HCRC_STATE) {\n    if (s.gzhead.hcrc) {\n      if (s.pending + 2 > s.pending_buf_size) {\n        flush_pending(strm);\n      }\n      if (s.pending + 2 <= s.pending_buf_size) {\n        put_byte(s, strm.adler & 0xff);\n        put_byte(s, (strm.adler >> 8) & 0xff);\n        strm.adler = 0; //crc32(0L, Z_NULL, 0);\n        s.status = BUSY_STATE;\n      }\n    }\n    else {\n      s.status = BUSY_STATE;\n    }\n  }\n//#endif\n\n  /* Flush as much pending output as possible */\n  if (s.pending !== 0) {\n    flush_pending(strm);\n    if (strm.avail_out === 0) {\n      /* Since avail_out is 0, deflate will be called again with\n       * more output space, but possibly with both pending and\n       * avail_in equal to zero. There won't be anything to do,\n       * but this is not an error situation so make sure we\n       * return OK instead of BUF_ERROR at next call of deflate:\n       */\n      s.last_flush = -1;\n      return Z_OK$3;\n    }\n\n    /* Make sure there is something to do and avoid duplicate consecutive\n     * flushes. For repeated and useless calls with Z_FINISH, we keep\n     * returning Z_STREAM_END instead of Z_BUF_ERROR.\n     */\n  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n    flush !== Z_FINISH$3) {\n    return err(strm, Z_BUF_ERROR$1);\n  }\n\n  /* User must not provide more input after the first FINISH: */\n  if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n    return err(strm, Z_BUF_ERROR$1);\n  }\n\n  /* Start a new block or continue the current one.\n   */\n  if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n    (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n    let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n      (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n        configuration_table[s.level].func(s, flush));\n\n    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n      s.status = FINISH_STATE;\n    }\n    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n      if (strm.avail_out === 0) {\n        s.last_flush = -1;\n        /* avoid BUF_ERROR next call, see above */\n      }\n      return Z_OK$3;\n      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n       * of deflate should use the same flush parameter to make sure\n       * that the flush is complete. So we don't have to output an\n       * empty block here, this will be done at next call. This also\n       * ensures that for a very small output buffer, we emit at most\n       * one empty block.\n       */\n    }\n    if (bstate === BS_BLOCK_DONE) {\n      if (flush === Z_PARTIAL_FLUSH) {\n        _tr_align(s);\n      }\n      else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n        _tr_stored_block(s, 0, 0, false);\n        /* For a full flush, this empty block will be recognized\n         * as a special marker by inflate_sync().\n         */\n        if (flush === Z_FULL_FLUSH$1) {\n          /*** CLEAR_HASH(s); ***/             /* forget history */\n          zero(s.head); // Fill with NIL (= 0);\n\n          if (s.lookahead === 0) {\n            s.strstart = 0;\n            s.block_start = 0;\n            s.insert = 0;\n          }\n        }\n      }\n      flush_pending(strm);\n      if (strm.avail_out === 0) {\n        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n        return Z_OK$3;\n      }\n    }\n  }\n  //Assert(strm->avail_out > 0, \"bug2\");\n  //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n  if (flush !== Z_FINISH$3) { return Z_OK$3; }\n  if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n  /* Write the trailer */\n  if (s.wrap === 2) {\n    put_byte(s, strm.adler & 0xff);\n    put_byte(s, (strm.adler >> 8) & 0xff);\n    put_byte(s, (strm.adler >> 16) & 0xff);\n    put_byte(s, (strm.adler >> 24) & 0xff);\n    put_byte(s, strm.total_in & 0xff);\n    put_byte(s, (strm.total_in >> 8) & 0xff);\n    put_byte(s, (strm.total_in >> 16) & 0xff);\n    put_byte(s, (strm.total_in >> 24) & 0xff);\n  }\n  else\n  {\n    putShortMSB(s, strm.adler >>> 16);\n    putShortMSB(s, strm.adler & 0xffff);\n  }\n\n  flush_pending(strm);\n  /* If avail_out is zero, the application will call deflate again\n   * to flush the rest.\n   */\n  if (s.wrap > 0) { s.wrap = -s.wrap; }\n  /* write the trailer only once! */\n  return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n    return Z_STREAM_ERROR$2;\n  }\n\n  const status = strm.state.status;\n  if (status !== INIT_STATE &&\n    status !== EXTRA_STATE &&\n    status !== NAME_STATE &&\n    status !== COMMENT_STATE &&\n    status !== HCRC_STATE &&\n    status !== BUSY_STATE &&\n    status !== FINISH_STATE\n  ) {\n    return err(strm, Z_STREAM_ERROR$2);\n  }\n\n  strm.state = null;\n\n  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n  let dictLength = dictionary.length;\n\n  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n    return Z_STREAM_ERROR$2;\n  }\n\n  const s = strm.state;\n  const wrap = s.wrap;\n\n  if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n    return Z_STREAM_ERROR$2;\n  }\n\n  /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n  if (wrap === 1) {\n    /* adler32(strm->adler, dictionary, dictLength); */\n    strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n  }\n\n  s.wrap = 0;   /* avoid computing Adler-32 in read_buf */\n\n  /* if dictionary would fill window, just replace the history */\n  if (dictLength >= s.w_size) {\n    if (wrap === 0) {            /* already empty otherwise */\n      /*** CLEAR_HASH(s); ***/\n      zero(s.head); // Fill with NIL (= 0);\n      s.strstart = 0;\n      s.block_start = 0;\n      s.insert = 0;\n    }\n    /* use the tail */\n    // dictionary = dictionary.slice(dictLength - s.w_size);\n    let tmpDict = new Uint8Array(s.w_size);\n    tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n    dictionary = tmpDict;\n    dictLength = s.w_size;\n  }\n  /* insert dictionary into window and hash */\n  const avail = strm.avail_in;\n  const next = strm.next_in;\n  const input = strm.input;\n  strm.avail_in = dictLength;\n  strm.next_in = 0;\n  strm.input = dictionary;\n  fill_window(s);\n  while (s.lookahead >= MIN_MATCH) {\n    let str = s.strstart;\n    let n = s.lookahead - (MIN_MATCH - 1);\n    do {\n      /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n      s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n      s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n      s.head[s.ins_h] = str;\n      str++;\n    } while (--n);\n    s.strstart = str;\n    s.lookahead = MIN_MATCH - 1;\n    fill_window(s);\n  }\n  s.strstart += s.lookahead;\n  s.block_start = s.strstart;\n  s.insert = s.lookahead;\n  s.lookahead = 0;\n  s.match_length = s.prev_length = MIN_MATCH - 1;\n  s.match_available = 0;\n  strm.next_in = next;\n  strm.input = input;\n  strm.avail_in = avail;\n  s.wrap = wrap;\n  return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n  return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n  const sources = Array.prototype.slice.call(arguments, 1);\n  while (sources.length) {\n    const source = sources.shift();\n    if (!source) { continue; }\n\n    if (typeof source !== 'object') {\n      throw new TypeError(source + 'must be non-object');\n    }\n\n    for (const p in source) {\n      if (_has(source, p)) {\n        obj[p] = source[p];\n      }\n    }\n  }\n\n  return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n  // calculate data length\n  let len = 0;\n\n  for (let i = 0, l = chunks.length; i < l; i++) {\n    len += chunks[i].length;\n  }\n\n  // join chunks\n  const result = new Uint8Array(len);\n\n  for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n    let chunk = chunks[i];\n    result.set(chunk, pos);\n    pos += chunk.length;\n  }\n\n  return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n  _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n  if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n    return new TextEncoder().encode(str);\n  }\n\n  let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n  // count binary size\n  for (m_pos = 0; m_pos < str_len; m_pos++) {\n    c = str.charCodeAt(m_pos);\n    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n      c2 = str.charCodeAt(m_pos + 1);\n      if ((c2 & 0xfc00) === 0xdc00) {\n        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n        m_pos++;\n      }\n    }\n    buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n  }\n\n  // allocate buffer\n  buf = new Uint8Array(buf_len);\n\n  // convert\n  for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n    c = str.charCodeAt(m_pos);\n    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n      c2 = str.charCodeAt(m_pos + 1);\n      if ((c2 & 0xfc00) === 0xdc00) {\n        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n        m_pos++;\n      }\n    }\n    if (c < 0x80) {\n      /* one byte */\n      buf[i++] = c;\n    } else if (c < 0x800) {\n      /* two bytes */\n      buf[i++] = 0xC0 | (c >>> 6);\n      buf[i++] = 0x80 | (c & 0x3f);\n    } else if (c < 0x10000) {\n      /* three bytes */\n      buf[i++] = 0xE0 | (c >>> 12);\n      buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n      buf[i++] = 0x80 | (c & 0x3f);\n    } else {\n      /* four bytes */\n      buf[i++] = 0xf0 | (c >>> 18);\n      buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n      buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n      buf[i++] = 0x80 | (c & 0x3f);\n    }\n  }\n\n  return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n  // On Chrome, the arguments in a function call that are allowed is `65534`.\n  // If the length of the buffer is smaller than that, we can use this optimization,\n  // otherwise we will take a slower path.\n  if (len < 65534) {\n    if (buf.subarray && STR_APPLY_UIA_OK) {\n      return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n    }\n  }\n\n  let result = '';\n  for (let i = 0; i < len; i++) {\n    result += String.fromCharCode(buf[i]);\n  }\n  return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n  const len = max || buf.length;\n\n  if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n    return new TextDecoder().decode(buf.subarray(0, max));\n  }\n\n  let i, out;\n\n  // Reserve max possible length (2 words per char)\n  // NB: by unknown reasons, Array is significantly faster for\n  //     String.fromCharCode.apply than Uint16Array.\n  const utf16buf = new Array(len * 2);\n\n  for (out = 0, i = 0; i < len;) {\n    let c = buf[i++];\n    // quick process ascii\n    if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n    let c_len = _utf8len[c];\n    // skip 5 & 6 byte codes\n    if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n    // apply mask on first byte\n    c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n    // join the rest\n    while (c_len > 1 && i < len) {\n      c = (c << 6) | (buf[i++] & 0x3f);\n      c_len--;\n    }\n\n    // terminated by end of string?\n    if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n    if (c < 0x10000) {\n      utf16buf[out++] = c;\n    } else {\n      c -= 0x10000;\n      utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n      utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n    }\n  }\n\n  return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max   - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n  max = max || buf.length;\n  if (max > buf.length) { max = buf.length; }\n\n  // go back from last position, until start of sequence found\n  let pos = max - 1;\n  while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n  // Very small and broken sequence,\n  // return max, because we should return something anyway.\n  if (pos < 0) { return max; }\n\n  // If we came to start of buffer - that means buffer is too small,\n  // return max too.\n  if (pos === 0) { return max; }\n\n  return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n  /* next input byte */\n  this.input = null; // JS specific, because we have no pointers\n  this.next_in = 0;\n  /* number of bytes available at input */\n  this.avail_in = 0;\n  /* total number of input bytes read so far */\n  this.total_in = 0;\n  /* next output byte should be put there */\n  this.output = null; // JS specific, because we have no pointers\n  this.next_out = 0;\n  /* remaining free space at output */\n  this.avail_out = 0;\n  /* total number of bytes output so far */\n  this.total_out = 0;\n  /* last error message, NULL if no error */\n  this.msg = ''/*Z_NULL*/;\n  /* not visible by applications */\n  this.state = null;\n  /* best guess about the data type: binary or text */\n  this.data_type = 2/*Z_UNKNOWN*/;\n  /* adler32 value of the uncompressed data */\n  this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n  Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n  Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n  Z_DEFAULT_COMPRESSION,\n  Z_DEFAULT_STRATEGY,\n  Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n *   - `text` (Boolean) - true if compressed data believed to be text\n *   - `time` (Number) - modification time, unix timestamp\n *   - `os` (Number) - operation system code\n *   - `extra` (Array) - array of bytes with extra data (max 65536)\n *   - `name` (String) - file name (binary string)\n *   - `comment` (String) - comment (binary string)\n *   - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n *   , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n *   , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true);  // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n  this.options = common.assign({\n    level: Z_DEFAULT_COMPRESSION,\n    method: Z_DEFLATED$1,\n    chunkSize: 16384,\n    windowBits: 15,\n    memLevel: 8,\n    strategy: Z_DEFAULT_STRATEGY\n  }, options || {});\n\n  let opt = this.options;\n\n  if (opt.raw && (opt.windowBits > 0)) {\n    opt.windowBits = -opt.windowBits;\n  }\n\n  else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n    opt.windowBits += 16;\n  }\n\n  this.err    = 0;      // error code, if happens (0 = Z_OK)\n  this.msg    = '';     // error message\n  this.ended  = false;  // used to avoid multiple onEnd() calls\n  this.chunks = [];     // chunks of compressed data\n\n  this.strm = new zstream();\n  this.strm.avail_out = 0;\n\n  let status = deflate_1$2.deflateInit2(\n    this.strm,\n    opt.level,\n    opt.method,\n    opt.windowBits,\n    opt.memLevel,\n    opt.strategy\n  );\n\n  if (status !== Z_OK$2) {\n    throw new Error(messages[status]);\n  }\n\n  if (opt.header) {\n    deflate_1$2.deflateSetHeader(this.strm, opt.header);\n  }\n\n  if (opt.dictionary) {\n    let dict;\n    // Convert data if needed\n    if (typeof opt.dictionary === 'string') {\n      // If we need to compress text, change encoding to utf8.\n      dict = strings.string2buf(opt.dictionary);\n    } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n      dict = new Uint8Array(opt.dictionary);\n    } else {\n      dict = opt.dictionary;\n    }\n\n    status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n    if (status !== Z_OK$2) {\n      throw new Error(messages[status]);\n    }\n\n    this._dict_set = true;\n  }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n *   converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true);  // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n  const strm = this.strm;\n  const chunkSize = this.options.chunkSize;\n  let status, _flush_mode;\n\n  if (this.ended) { return false; }\n\n  if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n  else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n  // Convert data if needed\n  if (typeof data === 'string') {\n    // If we need to compress text, change encoding to utf8.\n    strm.input = strings.string2buf(data);\n  } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n    strm.input = new Uint8Array(data);\n  } else {\n    strm.input = data;\n  }\n\n  strm.next_in = 0;\n  strm.avail_in = strm.input.length;\n\n  for (;;) {\n    if (strm.avail_out === 0) {\n      strm.output = new Uint8Array(chunkSize);\n      strm.next_out = 0;\n      strm.avail_out = chunkSize;\n    }\n\n    // Make sure avail_out > 6 to avoid repeating markers\n    if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n      this.onData(strm.output.subarray(0, strm.next_out));\n      strm.avail_out = 0;\n      continue;\n    }\n\n    status = deflate_1$2.deflate(strm, _flush_mode);\n\n    // Ended => flush and finish\n    if (status === Z_STREAM_END$2) {\n      if (strm.next_out > 0) {\n        this.onData(strm.output.subarray(0, strm.next_out));\n      }\n      status = deflate_1$2.deflateEnd(this.strm);\n      this.onEnd(status);\n      this.ended = true;\n      return status === Z_OK$2;\n    }\n\n    // Flush if out buffer full\n    if (strm.avail_out === 0) {\n      this.onData(strm.output);\n      continue;\n    }\n\n    // Flush if requested and has data\n    if (_flush_mode > 0 && strm.next_out > 0) {\n      this.onData(strm.output.subarray(0, strm.next_out));\n      strm.avail_out = 0;\n      continue;\n    }\n\n    if (strm.avail_in === 0) break;\n  }\n\n  return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n  this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n *   other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n  // On success - join\n  if (status === Z_OK$2) {\n    this.result = common.flattenChunks(this.chunks);\n  }\n  this.chunks = [];\n  this.err = status;\n  this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n *   negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n  const deflator = new Deflate$1(options);\n\n  deflator.push(input, true);\n\n  // That will never happens, if you don't cheat with options :)\n  if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n  return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n  options = options || {};\n  options.raw = true;\n  return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n  options = options || {};\n  options.gzip = true;\n  return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30;       /* got a data error -- remain here until reset */\nconst TYPE$1 = 12;      /* i: waiting for type bits, including last-flag bit */\n\n/*\n   Decode literal, length, and distance codes and write out the resulting\n   literal and match bytes until either not enough input or output is\n   available, an end-of-block is encountered, or a data error is encountered.\n   When large enough input and output buffers are supplied to inflate(), for\n   example, a 16K input buffer and a 64K output buffer, more than 95% of the\n   inflate execution time is spent in this routine.\n\n   Entry assumptions:\n\n        state.mode === LEN\n        strm.avail_in >= 6\n        strm.avail_out >= 258\n        start >= strm.avail_out\n        state.bits < 8\n\n   On return, state.mode is one of:\n\n        LEN -- ran out of enough output space or enough available input\n        TYPE -- reached end of block code, inflate() to interpret next block\n        BAD -- error in block data\n\n   Notes:\n\n    - The maximum input bits used by a length/distance pair is 15 bits for the\n      length code, 5 bits for the length extra, 15 bits for the distance code,\n      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.\n      Therefore if strm.avail_in >= 6, then there is enough input to avoid\n      checking for available input while decoding.\n\n    - The maximum bytes that a single length/distance pair can output is 258\n      bytes, which is the maximum length that can be coded.  inflate_fast()\n      requires strm.avail_out >= 258 for each loop to avoid checking for\n      output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n  let _in;                    /* local strm.input */\n  let last;                   /* have enough input while in < last */\n  let _out;                   /* local strm.output */\n  let beg;                    /* inflate()'s initial strm.output */\n  let end;                    /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n  let dmax;                   /* maximum distance from zlib header */\n//#endif\n  let wsize;                  /* window size or zero if not using window */\n  let whave;                  /* valid bytes in the window */\n  let wnext;                  /* window write index */\n  // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n  let s_window;               /* allocated sliding window, if wsize != 0 */\n  let hold;                   /* local strm.hold */\n  let bits;                   /* local strm.bits */\n  let lcode;                  /* local strm.lencode */\n  let dcode;                  /* local strm.distcode */\n  let lmask;                  /* mask for first level of length codes */\n  let dmask;                  /* mask for first level of distance codes */\n  let here;                   /* retrieved table entry */\n  let op;                     /* code bits, operation, extra bits, or */\n                              /*  window position, window bytes to copy */\n  let len;                    /* match length, unused bytes */\n  let dist;                   /* match distance */\n  let from;                   /* where to copy match from */\n  let from_source;\n\n\n  let input, output; // JS specific, because we have no pointers\n\n  /* copy state to local variables */\n  const state = strm.state;\n  //here = state.here;\n  _in = strm.next_in;\n  input = strm.input;\n  last = _in + (strm.avail_in - 5);\n  _out = strm.next_out;\n  output = strm.output;\n  beg = _out - (start - strm.avail_out);\n  end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n  dmax = state.dmax;\n//#endif\n  wsize = state.wsize;\n  whave = state.whave;\n  wnext = state.wnext;\n  s_window = state.window;\n  hold = state.hold;\n  bits = state.bits;\n  lcode = state.lencode;\n  dcode = state.distcode;\n  lmask = (1 << state.lenbits) - 1;\n  dmask = (1 << state.distbits) - 1;\n\n\n  /* decode literals and length/distances until end-of-block or not enough\n     input data or output space */\n\n  top:\n  do {\n    if (bits < 15) {\n      hold += input[_in++] << bits;\n      bits += 8;\n      hold += input[_in++] << bits;\n      bits += 8;\n    }\n\n    here = lcode[hold & lmask];\n\n    dolen:\n    for (;;) { // Goto emulation\n      op = here >>> 24/*here.bits*/;\n      hold >>>= op;\n      bits -= op;\n      op = (here >>> 16) & 0xff/*here.op*/;\n      if (op === 0) {                          /* literal */\n        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n        //        \"inflate:         literal '%c'\\n\" :\n        //        \"inflate:         literal 0x%02x\\n\", here.val));\n        output[_out++] = here & 0xffff/*here.val*/;\n      }\n      else if (op & 16) {                     /* length base */\n        len = here & 0xffff/*here.val*/;\n        op &= 15;                           /* number of extra bits */\n        if (op) {\n          if (bits < op) {\n            hold += input[_in++] << bits;\n            bits += 8;\n          }\n          len += hold & ((1 << op) - 1);\n          hold >>>= op;\n          bits -= op;\n        }\n        //Tracevv((stderr, \"inflate:         length %u\\n\", len));\n        if (bits < 15) {\n          hold += input[_in++] << bits;\n          bits += 8;\n          hold += input[_in++] << bits;\n          bits += 8;\n        }\n        here = dcode[hold & dmask];\n\n        dodist:\n        for (;;) { // goto emulation\n          op = here >>> 24/*here.bits*/;\n          hold >>>= op;\n          bits -= op;\n          op = (here >>> 16) & 0xff/*here.op*/;\n\n          if (op & 16) {                      /* distance base */\n            dist = here & 0xffff/*here.val*/;\n            op &= 15;                       /* number of extra bits */\n            if (bits < op) {\n              hold += input[_in++] << bits;\n              bits += 8;\n              if (bits < op) {\n                hold += input[_in++] << bits;\n                bits += 8;\n              }\n            }\n            dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n            if (dist > dmax) {\n              strm.msg = 'invalid distance too far back';\n              state.mode = BAD$1;\n              break top;\n            }\n//#endif\n            hold >>>= op;\n            bits -= op;\n            //Tracevv((stderr, \"inflate:         distance %u\\n\", dist));\n            op = _out - beg;                /* max distance in output */\n            if (dist > op) {                /* see if copy from window */\n              op = dist - op;               /* distance back in window */\n              if (op > whave) {\n                if (state.sane) {\n                  strm.msg = 'invalid distance too far back';\n                  state.mode = BAD$1;\n                  break top;\n                }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n//                if (len <= op - whave) {\n//                  do {\n//                    output[_out++] = 0;\n//                  } while (--len);\n//                  continue top;\n//                }\n//                len -= op - whave;\n//                do {\n//                  output[_out++] = 0;\n//                } while (--op > whave);\n//                if (op === 0) {\n//                  from = _out - dist;\n//                  do {\n//                    output[_out++] = output[from++];\n//                  } while (--len);\n//                  continue top;\n//                }\n//#endif\n              }\n              from = 0; // window index\n              from_source = s_window;\n              if (wnext === 0) {           /* very common case */\n                from += wsize - op;\n                if (op < len) {         /* some from window */\n                  len -= op;\n                  do {\n                    output[_out++] = s_window[from++];\n                  } while (--op);\n                  from = _out - dist;  /* rest from output */\n                  from_source = output;\n                }\n              }\n              else if (wnext < op) {      /* wrap around window */\n                from += wsize + wnext - op;\n                op -= wnext;\n                if (op < len) {         /* some from end of window */\n                  len -= op;\n                  do {\n                    output[_out++] = s_window[from++];\n                  } while (--op);\n                  from = 0;\n                  if (wnext < len) {  /* some from start of window */\n                    op = wnext;\n                    len -= op;\n                    do {\n                      output[_out++] = s_window[from++];\n                    } while (--op);\n                    from = _out - dist;      /* rest from output */\n                    from_source = output;\n                  }\n                }\n              }\n              else {                      /* contiguous in window */\n                from += wnext - op;\n                if (op < len) {         /* some from window */\n                  len -= op;\n                  do {\n                    output[_out++] = s_window[from++];\n                  } while (--op);\n                  from = _out - dist;  /* rest from output */\n                  from_source = output;\n                }\n              }\n              while (len > 2) {\n                output[_out++] = from_source[from++];\n                output[_out++] = from_source[from++];\n                output[_out++] = from_source[from++];\n                len -= 3;\n              }\n              if (len) {\n                output[_out++] = from_source[from++];\n                if (len > 1) {\n                  output[_out++] = from_source[from++];\n                }\n              }\n            }\n            else {\n              from = _out - dist;          /* copy direct from output */\n              do {                        /* minimum length is three */\n                output[_out++] = output[from++];\n                output[_out++] = output[from++];\n                output[_out++] = output[from++];\n                len -= 3;\n              } while (len > 2);\n              if (len) {\n                output[_out++] = output[from++];\n                if (len > 1) {\n                  output[_out++] = output[from++];\n                }\n              }\n            }\n          }\n          else if ((op & 64) === 0) {          /* 2nd level distance code */\n            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n            continue dodist;\n          }\n          else {\n            strm.msg = 'invalid distance code';\n            state.mode = BAD$1;\n            break top;\n          }\n\n          break; // need to emulate goto via \"continue\"\n        }\n      }\n      else if ((op & 64) === 0) {              /* 2nd level length code */\n        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n        continue dolen;\n      }\n      else if (op & 32) {                     /* end-of-block */\n        //Tracevv((stderr, \"inflate:         end of block\\n\"));\n        state.mode = TYPE$1;\n        break top;\n      }\n      else {\n        strm.msg = 'invalid literal/length code';\n        state.mode = BAD$1;\n        break top;\n      }\n\n      break; // need to emulate goto via \"continue\"\n    }\n  } while (_in < last && _out < end);\n\n  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n  len = bits >> 3;\n  _in -= len;\n  bits -= len << 3;\n  hold &= (1 << bits) - 1;\n\n  /* update state and return */\n  strm.next_in = _in;\n  strm.next_out = _out;\n  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n  state.hold = hold;\n  state.bits = bits;\n  return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n  8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n  28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n  const bits = opts.bits;\n      //here = opts.here; /* table entry for duplication */\n\n  let len = 0;               /* a code's length in bits */\n  let sym = 0;               /* index of code symbols */\n  let min = 0, max = 0;          /* minimum and maximum code lengths */\n  let root = 0;              /* number of index bits for root table */\n  let curr = 0;              /* number of index bits for current table */\n  let drop = 0;              /* code bits to drop for sub-table */\n  let left = 0;                   /* number of prefix codes available */\n  let used = 0;              /* code entries in table used */\n  let huff = 0;              /* Huffman code */\n  let incr;              /* for incrementing code, index */\n  let fill;              /* index for replicating entries */\n  let low;               /* low bits for current root entry */\n  let mask;              /* mask for low root bits */\n  let next;             /* next available space in table */\n  let base = null;     /* base value table to use */\n  let base_index = 0;\n//  let shoextra;    /* extra bits table to use */\n  let end;                    /* use base and extra for symbol > end */\n  const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1];    /* number of codes of each length */\n  const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1];     /* offsets in table for each length */\n  let extra = null;\n  let extra_index = 0;\n\n  let here_bits, here_op, here_val;\n\n  /*\n   Process a set of code lengths to create a canonical Huffman code.  The\n   code lengths are lens[0..codes-1].  Each length corresponds to the\n   symbols 0..codes-1.  The Huffman code is generated by first sorting the\n   symbols by length from short to long, and retaining the symbol order\n   for codes with equal lengths.  Then the code starts with all zero bits\n   for the first code of the shortest length, and the codes are integer\n   increments for the same length, and zeros are appended as the length\n   increases.  For the deflate format, these bits are stored backwards\n   from their more natural integer increment ordering, and so when the\n   decoding tables are built in the large loop below, the integer codes\n   are incremented backwards.\n\n   This routine assumes, but does not check, that all of the entries in\n   lens[] are in the range 0..MAXBITS.  The caller must assure this.\n   1..MAXBITS is interpreted as that code length.  zero means that that\n   symbol does not occur in this code.\n\n   The codes are sorted by computing a count of codes for each length,\n   creating from that a table of starting indices for each length in the\n   sorted table, and then entering the symbols in order in the sorted\n   table.  The sorted table is work[], with that space being provided by\n   the caller.\n\n   The length counts are used for other purposes as well, i.e. finding\n   the minimum and maximum length codes, determining if there are any\n   codes at all, checking for a valid set of lengths, and looking ahead\n   at length counts to determine sub-table sizes when building the\n   decoding tables.\n   */\n\n  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n  for (len = 0; len <= MAXBITS; len++) {\n    count[len] = 0;\n  }\n  for (sym = 0; sym < codes; sym++) {\n    count[lens[lens_index + sym]]++;\n  }\n\n  /* bound code lengths, force root to be within code lengths */\n  root = bits;\n  for (max = MAXBITS; max >= 1; max--) {\n    if (count[max] !== 0) { break; }\n  }\n  if (root > max) {\n    root = max;\n  }\n  if (max === 0) {                     /* no symbols to code at all */\n    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */\n    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;\n    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n    //table.op[opts.table_index] = 64;\n    //table.bits[opts.table_index] = 1;\n    //table.val[opts.table_index++] = 0;\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n    opts.bits = 1;\n    return 0;     /* no symbols, but wait for decoding to report error */\n  }\n  for (min = 1; min < max; min++) {\n    if (count[min] !== 0) { break; }\n  }\n  if (root < min) {\n    root = min;\n  }\n\n  /* check for an over-subscribed or incomplete set of lengths */\n  left = 1;\n  for (len = 1; len <= MAXBITS; len++) {\n    left <<= 1;\n    left -= count[len];\n    if (left < 0) {\n      return -1;\n    }        /* over-subscribed */\n  }\n  if (left > 0 && (type === CODES$1 || max !== 1)) {\n    return -1;                      /* incomplete set */\n  }\n\n  /* generate offsets into symbol table for each length for sorting */\n  offs[1] = 0;\n  for (len = 1; len < MAXBITS; len++) {\n    offs[len + 1] = offs[len] + count[len];\n  }\n\n  /* sort symbols by length, by symbol order within each length */\n  for (sym = 0; sym < codes; sym++) {\n    if (lens[lens_index + sym] !== 0) {\n      work[offs[lens[lens_index + sym]]++] = sym;\n    }\n  }\n\n  /*\n   Create and fill in decoding tables.  In this loop, the table being\n   filled is at next and has curr index bits.  The code being used is huff\n   with length len.  That code is converted to an index by dropping drop\n   bits off of the bottom.  For codes where len is less than drop + curr,\n   those top drop + curr - len bits are incremented through all values to\n   fill the table with replicated entries.\n\n   root is the number of index bits for the root table.  When len exceeds\n   root, sub-tables are created pointed to by the root entry with an index\n   of the low root bits of huff.  This is saved in low to check for when a\n   new sub-table should be started.  drop is zero when the root table is\n   being filled, and drop is root when sub-tables are being filled.\n\n   When a new sub-table is needed, it is necessary to look ahead in the\n   code lengths to determine what size sub-table is needed.  The length\n   counts are used for this, and so count[] is decremented as codes are\n   entered in the tables.\n\n   used keeps track of how many table entries have been allocated from the\n   provided *table space.  It is checked for LENS and DIST tables against\n   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n   the initial root table size constants.  See the comments in inftrees.h\n   for more information.\n\n   sym increments through all symbols, and the loop terminates when\n   all codes of length max, i.e. all codes, have been processed.  This\n   routine permits incomplete codes, so another loop after this one fills\n   in the rest of the decoding tables with invalid code markers.\n   */\n\n  /* set up for code type */\n  // poor man optimization - use if-else instead of switch,\n  // to avoid deopts in old v8\n  if (type === CODES$1) {\n    base = extra = work;    /* dummy value--not used */\n    end = 19;\n\n  } else if (type === LENS$1) {\n    base = lbase;\n    base_index -= 257;\n    extra = lext;\n    extra_index -= 257;\n    end = 256;\n\n  } else {                    /* DISTS */\n    base = dbase;\n    extra = dext;\n    end = -1;\n  }\n\n  /* initialize opts for loop */\n  huff = 0;                   /* starting code */\n  sym = 0;                    /* starting code symbol */\n  len = min;                  /* starting code length */\n  next = table_index;              /* current table to fill in */\n  curr = root;                /* current table index bits */\n  drop = 0;                   /* current bits to drop from code for index */\n  low = -1;                   /* trigger new sub-table when len > root */\n  used = 1 << root;          /* use root table entries */\n  mask = used - 1;            /* mask for comparing low */\n\n  /* check available table space */\n  if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n    (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n    return 1;\n  }\n\n  /* process all codes and make table entries */\n  for (;;) {\n    /* create table entry */\n    here_bits = len - drop;\n    if (work[sym] < end) {\n      here_op = 0;\n      here_val = work[sym];\n    }\n    else if (work[sym] > end) {\n      here_op = extra[extra_index + work[sym]];\n      here_val = base[base_index + work[sym]];\n    }\n    else {\n      here_op = 32 + 64;         /* end of block */\n      here_val = 0;\n    }\n\n    /* replicate for those indices with low len bits equal to huff */\n    incr = 1 << (len - drop);\n    fill = 1 << curr;\n    min = fill;                 /* save offset to next table */\n    do {\n      fill -= incr;\n      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n    } while (fill !== 0);\n\n    /* backwards increment the len-bit code huff */\n    incr = 1 << (len - 1);\n    while (huff & incr) {\n      incr >>= 1;\n    }\n    if (incr !== 0) {\n      huff &= incr - 1;\n      huff += incr;\n    } else {\n      huff = 0;\n    }\n\n    /* go to next symbol, update count, len */\n    sym++;\n    if (--count[len] === 0) {\n      if (len === max) { break; }\n      len = lens[lens_index + work[sym]];\n    }\n\n    /* create new sub-table if needed */\n    if (len > root && (huff & mask) !== low) {\n      /* if first time, transition to sub-tables */\n      if (drop === 0) {\n        drop = root;\n      }\n\n      /* increment past last table */\n      next += min;            /* here min is 1 << curr */\n\n      /* determine length of next table */\n      curr = len - drop;\n      left = 1 << curr;\n      while (curr + drop < max) {\n        left -= count[curr + drop];\n        if (left <= 0) { break; }\n        curr++;\n        left <<= 1;\n      }\n\n      /* check for enough space */\n      used += 1 << curr;\n      if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n        (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n        return 1;\n      }\n\n      /* point entry in root table to sub-table */\n      low = huff & mask;\n      /*table.op[low] = curr;\n      table.bits[low] = root;\n      table.val[low] = next - opts.table_index;*/\n      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n    }\n  }\n\n  /* fill in remaining table entry if code is incomplete (guaranteed to have\n   at most one remaining entry, since if the code is incomplete, the\n   maximum code length that was allowed to get this far is one bit) */\n  if (huff !== 0) {\n    //table.op[next + huff] = 64;            /* invalid code marker */\n    //table.bits[next + huff] = len - drop;\n    //table.val[next + huff] = 0;\n    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n  }\n\n  /* set return parameters */\n  //opts.table_index += used;\n  opts.bits = root;\n  return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n  Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n  Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n  Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst    HEAD = 1;       /* i: waiting for magic header */\nconst    FLAGS = 2;      /* i: waiting for method and flags (gzip) */\nconst    TIME = 3;       /* i: waiting for modification time (gzip) */\nconst    OS = 4;         /* i: waiting for extra flags and operating system (gzip) */\nconst    EXLEN = 5;      /* i: waiting for extra length (gzip) */\nconst    EXTRA = 6;      /* i: waiting for extra bytes (gzip) */\nconst    NAME = 7;       /* i: waiting for end of file name (gzip) */\nconst    COMMENT = 8;    /* i: waiting for end of comment (gzip) */\nconst    HCRC = 9;       /* i: waiting for header crc (gzip) */\nconst    DICTID = 10;    /* i: waiting for dictionary check value */\nconst    DICT = 11;      /* waiting for inflateSetDictionary() call */\nconst        TYPE = 12;      /* i: waiting for type bits, including last-flag bit */\nconst        TYPEDO = 13;    /* i: same, but skip check to exit inflate on new block */\nconst        STORED = 14;    /* i: waiting for stored size (length and complement) */\nconst        COPY_ = 15;     /* i/o: same as COPY below, but only first time in */\nconst        COPY = 16;      /* i/o: waiting for input or output to copy stored block */\nconst        TABLE = 17;     /* i: waiting for dynamic block table lengths */\nconst        LENLENS = 18;   /* i: waiting for code length code lengths */\nconst        CODELENS = 19;  /* i: waiting for length/lit and distance code lengths */\nconst            LEN_ = 20;      /* i: same as LEN below, but only first time in */\nconst            LEN = 21;       /* i: waiting for length/lit/eob code */\nconst            LENEXT = 22;    /* i: waiting for length extra bits */\nconst            DIST = 23;      /* i: waiting for distance code */\nconst            DISTEXT = 24;   /* i: waiting for distance extra bits */\nconst            MATCH = 25;     /* o: waiting for output space to copy string */\nconst            LIT = 26;       /* o: waiting for output space to write literal */\nconst    CHECK = 27;     /* i: waiting for 32-bit check value */\nconst    LENGTH = 28;    /* i: waiting for 32-bit length (gzip) */\nconst    DONE = 29;      /* finished check, done -- remain here until reset */\nconst    BAD = 30;       /* got a data error -- remain here until reset */\nconst    MEM = 31;       /* got an inflate() memory error -- remain here until reset */\nconst    SYNC = 32;      /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n  return  (((q >>> 24) & 0xff) +\n          ((q >>> 8) & 0xff00) +\n          ((q & 0xff00) << 8) +\n          ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n  this.mode = 0;             /* current inflate mode */\n  this.last = false;          /* true if processing last block */\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */\n  this.havedict = false;      /* true if dictionary provided */\n  this.flags = 0;             /* gzip header method and flags (0 if zlib) */\n  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */\n  this.check = 0;             /* protected copy of check value */\n  this.total = 0;             /* protected copy of output count */\n  // TODO: may be {}\n  this.head = null;           /* where to save gzip header information */\n\n  /* sliding window */\n  this.wbits = 0;             /* log base 2 of requested window size */\n  this.wsize = 0;             /* window size or zero if not using window */\n  this.whave = 0;             /* valid bytes in the window */\n  this.wnext = 0;             /* window write index */\n  this.window = null;         /* allocated sliding window, if needed */\n\n  /* bit accumulator */\n  this.hold = 0;              /* input bit accumulator */\n  this.bits = 0;              /* number of bits in \"in\" */\n\n  /* for string and stored block copying */\n  this.length = 0;            /* literal or length of data to copy */\n  this.offset = 0;            /* distance back to copy string from */\n\n  /* for table and code decoding */\n  this.extra = 0;             /* extra bits needed */\n\n  /* fixed and dynamic code tables */\n  this.lencode = null;          /* starting table for length/literal codes */\n  this.distcode = null;         /* starting table for distance codes */\n  this.lenbits = 0;           /* index bits for lencode */\n  this.distbits = 0;          /* index bits for distcode */\n\n  /* dynamic table building */\n  this.ncode = 0;             /* number of code length code lengths */\n  this.nlen = 0;              /* number of length code lengths */\n  this.ndist = 0;             /* number of distance code lengths */\n  this.have = 0;              /* number of code lengths in lens[] */\n  this.next = null;              /* next available space in codes[] */\n\n  this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n  this.work = new Uint16Array(288); /* work area for code table building */\n\n  /*\n   because we don't have pointers in js, we use lencode and distcode directly\n   as buffers so we don't need codes\n  */\n  //this.codes = new Int32Array(ENOUGH);       /* space for code tables */\n  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */\n  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */\n  this.sane = 0;                   /* if false, allow invalid distance too far */\n  this.back = 0;                   /* bits back of last unprocessed length/lit */\n  this.was = 0;                    /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n  if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n  const state = strm.state;\n  strm.total_in = strm.total_out = state.total = 0;\n  strm.msg = ''; /*Z_NULL*/\n  if (state.wrap) {       /* to support ill-conceived Java test suite */\n    strm.adler = state.wrap & 1;\n  }\n  state.mode = HEAD;\n  state.last = 0;\n  state.havedict = 0;\n  state.dmax = 32768;\n  state.head = null/*Z_NULL*/;\n  state.hold = 0;\n  state.bits = 0;\n  //state.lencode = state.distcode = state.next = state.codes;\n  state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n  state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n  state.sane = 1;\n  state.back = -1;\n  //Tracev((stderr, \"inflate: reset\\n\"));\n  return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n  if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n  const state = strm.state;\n  state.wsize = 0;\n  state.whave = 0;\n  state.wnext = 0;\n  return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n  let wrap;\n\n  /* get the state */\n  if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n  const state = strm.state;\n\n  /* extract wrap request from windowBits parameter */\n  if (windowBits < 0) {\n    wrap = 0;\n    windowBits = -windowBits;\n  }\n  else {\n    wrap = (windowBits >> 4) + 1;\n    if (windowBits < 48) {\n      windowBits &= 15;\n    }\n  }\n\n  /* set number of window bits, free window if different */\n  if (windowBits && (windowBits < 8 || windowBits > 15)) {\n    return Z_STREAM_ERROR$1;\n  }\n  if (state.window !== null && state.wbits !== windowBits) {\n    state.window = null;\n  }\n\n  /* update state and reset the rest of it */\n  state.wrap = wrap;\n  state.wbits = windowBits;\n  return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n  if (!strm) { return Z_STREAM_ERROR$1; }\n  //strm.msg = Z_NULL;                 /* in case we return an error */\n\n  const state = new InflateState();\n\n  //if (state === Z_NULL) return Z_MEM_ERROR;\n  //Tracev((stderr, \"inflate: allocated\\n\"));\n  strm.state = state;\n  state.window = null/*Z_NULL*/;\n  const ret = inflateReset2(strm, windowBits);\n  if (ret !== Z_OK$1) {\n    strm.state = null/*Z_NULL*/;\n  }\n  return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n  return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding.  Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter.  This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time.  However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n  /* build fixed huffman tables if first call (may not be thread safe) */\n  if (virgin) {\n    lenfix = new Int32Array(512);\n    distfix = new Int32Array(32);\n\n    /* literal/length table */\n    let sym = 0;\n    while (sym < 144) { state.lens[sym++] = 8; }\n    while (sym < 256) { state.lens[sym++] = 9; }\n    while (sym < 280) { state.lens[sym++] = 7; }\n    while (sym < 288) { state.lens[sym++] = 8; }\n\n    inftrees(LENS,  state.lens, 0, 288, lenfix,   0, state.work, { bits: 9 });\n\n    /* distance table */\n    sym = 0;\n    while (sym < 32) { state.lens[sym++] = 5; }\n\n    inftrees(DISTS, state.lens, 0, 32,   distfix, 0, state.work, { bits: 5 });\n\n    /* do this just once */\n    virgin = false;\n  }\n\n  state.lencode = lenfix;\n  state.lenbits = 9;\n  state.distcode = distfix;\n  state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning.  If window does not exist yet, create it.  This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n  let dist;\n  const state = strm.state;\n\n  /* if it hasn't been done already, allocate space for the window */\n  if (state.window === null) {\n    state.wsize = 1 << state.wbits;\n    state.wnext = 0;\n    state.whave = 0;\n\n    state.window = new Uint8Array(state.wsize);\n  }\n\n  /* copy state->wsize or less output bytes into the circular window */\n  if (copy >= state.wsize) {\n    state.window.set(src.subarray(end - state.wsize, end), 0);\n    state.wnext = 0;\n    state.whave = state.wsize;\n  }\n  else {\n    dist = state.wsize - state.wnext;\n    if (dist > copy) {\n      dist = copy;\n    }\n    //zmemcpy(state->window + state->wnext, end - copy, dist);\n    state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n    copy -= dist;\n    if (copy) {\n      //zmemcpy(state->window, end - copy, copy);\n      state.window.set(src.subarray(end - copy, end), 0);\n      state.wnext = copy;\n      state.whave = state.wsize;\n    }\n    else {\n      state.wnext += dist;\n      if (state.wnext === state.wsize) { state.wnext = 0; }\n      if (state.whave < state.wsize) { state.whave += dist; }\n    }\n  }\n  return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n  let state;\n  let input, output;          // input/output buffers\n  let next;                   /* next input INDEX */\n  let put;                    /* next output INDEX */\n  let have, left;             /* available input and output */\n  let hold;                   /* bit buffer */\n  let bits;                   /* bits in bit buffer */\n  let _in, _out;              /* save starting available input and output */\n  let copy;                   /* number of stored or match bytes to copy */\n  let from;                   /* where to copy match bytes from */\n  let from_source;\n  let here = 0;               /* current decoding table entry */\n  let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n  //let last;                   /* parent table entry */\n  let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n  let len;                    /* length to copy for repeats, bits to drop */\n  let ret;                    /* return code */\n  const hbuf = new Uint8Array(4);    /* buffer for gzip header crc calculation */\n  let opts;\n\n  let n; // temporary variable for NEED_BITS\n\n  const order = /* permutation of code lengths */\n    new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n  if (!strm || !strm.state || !strm.output ||\n      (!strm.input && strm.avail_in !== 0)) {\n    return Z_STREAM_ERROR$1;\n  }\n\n  state = strm.state;\n  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */\n\n\n  //--- LOAD() ---\n  put = strm.next_out;\n  output = strm.output;\n  left = strm.avail_out;\n  next = strm.next_in;\n  input = strm.input;\n  have = strm.avail_in;\n  hold = state.hold;\n  bits = state.bits;\n  //---\n\n  _in = have;\n  _out = left;\n  ret = Z_OK$1;\n\n  inf_leave: // goto emulation\n  for (;;) {\n    switch (state.mode) {\n      case HEAD:\n        if (state.wrap === 0) {\n          state.mode = TYPEDO;\n          break;\n        }\n        //=== NEEDBITS(16);\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */\n          state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32_1(state.check, hbuf, 2, 0);\n          //===//\n\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n          state.mode = FLAGS;\n          break;\n        }\n        state.flags = 0;           /* expect zlib header */\n        if (state.head) {\n          state.head.done = false;\n        }\n        if (!(state.wrap & 1) ||   /* check if zlib header allowed */\n          (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n          strm.msg = 'incorrect header check';\n          state.mode = BAD;\n          break;\n        }\n        if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n          strm.msg = 'unknown compression method';\n          state.mode = BAD;\n          break;\n        }\n        //--- DROPBITS(4) ---//\n        hold >>>= 4;\n        bits -= 4;\n        //---//\n        len = (hold & 0x0f)/*BITS(4)*/ + 8;\n        if (state.wbits === 0) {\n          state.wbits = len;\n        }\n        else if (len > state.wbits) {\n          strm.msg = 'invalid window size';\n          state.mode = BAD;\n          break;\n        }\n\n        // !!! pako patch. Force use `options.windowBits` if passed.\n        // Required to always use max window size by default.\n        state.dmax = 1 << state.wbits;\n        //state.dmax = 1 << len;\n\n        //Tracev((stderr, \"inflate:   zlib header ok\\n\"));\n        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n        state.mode = hold & 0x200 ? DICTID : TYPE;\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        break;\n      case FLAGS:\n        //=== NEEDBITS(16); */\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.flags = hold;\n        if ((state.flags & 0xff) !== Z_DEFLATED) {\n          strm.msg = 'unknown compression method';\n          state.mode = BAD;\n          break;\n        }\n        if (state.flags & 0xe000) {\n          strm.msg = 'unknown header flags set';\n          state.mode = BAD;\n          break;\n        }\n        if (state.head) {\n          state.head.text = ((hold >> 8) & 1);\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32_1(state.check, hbuf, 2, 0);\n          //===//\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = TIME;\n        /* falls through */\n      case TIME:\n        //=== NEEDBITS(32); */\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if (state.head) {\n          state.head.time = hold;\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC4(state.check, hold)\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          hbuf[2] = (hold >>> 16) & 0xff;\n          hbuf[3] = (hold >>> 24) & 0xff;\n          state.check = crc32_1(state.check, hbuf, 4, 0);\n          //===\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = OS;\n        /* falls through */\n      case OS:\n        //=== NEEDBITS(16); */\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if (state.head) {\n          state.head.xflags = (hold & 0xff);\n          state.head.os = (hold >> 8);\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32_1(state.check, hbuf, 2, 0);\n          //===//\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = EXLEN;\n        /* falls through */\n      case EXLEN:\n        if (state.flags & 0x0400) {\n          //=== NEEDBITS(16); */\n          while (bits < 16) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.length = hold;\n          if (state.head) {\n            state.head.extra_len = hold;\n          }\n          if (state.flags & 0x0200) {\n            //=== CRC2(state.check, hold);\n            hbuf[0] = hold & 0xff;\n            hbuf[1] = (hold >>> 8) & 0xff;\n            state.check = crc32_1(state.check, hbuf, 2, 0);\n            //===//\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n        }\n        else if (state.head) {\n          state.head.extra = null/*Z_NULL*/;\n        }\n        state.mode = EXTRA;\n        /* falls through */\n      case EXTRA:\n        if (state.flags & 0x0400) {\n          copy = state.length;\n          if (copy > have) { copy = have; }\n          if (copy) {\n            if (state.head) {\n              len = state.head.extra_len - state.length;\n              if (!state.head.extra) {\n                // Use untyped array for more convenient processing later\n                state.head.extra = new Uint8Array(state.head.extra_len);\n              }\n              state.head.extra.set(\n                input.subarray(\n                  next,\n                  // extra field is limited to 65536 bytes\n                  // - no need for additional size check\n                  next + copy\n                ),\n                /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n                len\n              );\n              //zmemcpy(state.head.extra + len, next,\n              //        len + copy > state.head.extra_max ?\n              //        state.head.extra_max - len : copy);\n            }\n            if (state.flags & 0x0200) {\n              state.check = crc32_1(state.check, input, copy, next);\n            }\n            have -= copy;\n            next += copy;\n            state.length -= copy;\n          }\n          if (state.length) { break inf_leave; }\n        }\n        state.length = 0;\n        state.mode = NAME;\n        /* falls through */\n      case NAME:\n        if (state.flags & 0x0800) {\n          if (have === 0) { break inf_leave; }\n          copy = 0;\n          do {\n            // TODO: 2 or 1 bytes?\n            len = input[next + copy++];\n            /* use constant limit because in js we should not preallocate memory */\n            if (state.head && len &&\n                (state.length < 65536 /*state.head.name_max*/)) {\n              state.head.name += String.fromCharCode(len);\n            }\n          } while (len && copy < have);\n\n          if (state.flags & 0x0200) {\n            state.check = crc32_1(state.check, input, copy, next);\n          }\n          have -= copy;\n          next += copy;\n          if (len) { break inf_leave; }\n        }\n        else if (state.head) {\n          state.head.name = null;\n        }\n        state.length = 0;\n        state.mode = COMMENT;\n        /* falls through */\n      case COMMENT:\n        if (state.flags & 0x1000) {\n          if (have === 0) { break inf_leave; }\n          copy = 0;\n          do {\n            len = input[next + copy++];\n            /* use constant limit because in js we should not preallocate memory */\n            if (state.head && len &&\n                (state.length < 65536 /*state.head.comm_max*/)) {\n              state.head.comment += String.fromCharCode(len);\n            }\n          } while (len && copy < have);\n          if (state.flags & 0x0200) {\n            state.check = crc32_1(state.check, input, copy, next);\n          }\n          have -= copy;\n          next += copy;\n          if (len) { break inf_leave; }\n        }\n        else if (state.head) {\n          state.head.comment = null;\n        }\n        state.mode = HCRC;\n        /* falls through */\n      case HCRC:\n        if (state.flags & 0x0200) {\n          //=== NEEDBITS(16); */\n          while (bits < 16) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          if (hold !== (state.check & 0xffff)) {\n            strm.msg = 'header crc mismatch';\n            state.mode = BAD;\n            break;\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n        }\n        if (state.head) {\n          state.head.hcrc = ((state.flags >> 9) & 1);\n          state.head.done = true;\n        }\n        strm.adler = state.check = 0;\n        state.mode = TYPE;\n        break;\n      case DICTID:\n        //=== NEEDBITS(32); */\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        strm.adler = state.check = zswap32(hold);\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = DICT;\n        /* falls through */\n      case DICT:\n        if (state.havedict === 0) {\n          //--- RESTORE() ---\n          strm.next_out = put;\n          strm.avail_out = left;\n          strm.next_in = next;\n          strm.avail_in = have;\n          state.hold = hold;\n          state.bits = bits;\n          //---\n          return Z_NEED_DICT$1;\n        }\n        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n        state.mode = TYPE;\n        /* falls through */\n      case TYPE:\n        if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n        /* falls through */\n      case TYPEDO:\n        if (state.last) {\n          //--- BYTEBITS() ---//\n          hold >>>= bits & 7;\n          bits -= bits & 7;\n          //---//\n          state.mode = CHECK;\n          break;\n        }\n        //=== NEEDBITS(3); */\n        while (bits < 3) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.last = (hold & 0x01)/*BITS(1)*/;\n        //--- DROPBITS(1) ---//\n        hold >>>= 1;\n        bits -= 1;\n        //---//\n\n        switch ((hold & 0x03)/*BITS(2)*/) {\n          case 0:                             /* stored block */\n            //Tracev((stderr, \"inflate:     stored block%s\\n\",\n            //        state.last ? \" (last)\" : \"\"));\n            state.mode = STORED;\n            break;\n          case 1:                             /* fixed block */\n            fixedtables(state);\n            //Tracev((stderr, \"inflate:     fixed codes block%s\\n\",\n            //        state.last ? \" (last)\" : \"\"));\n            state.mode = LEN_;             /* decode codes */\n            if (flush === Z_TREES) {\n              //--- DROPBITS(2) ---//\n              hold >>>= 2;\n              bits -= 2;\n              //---//\n              break inf_leave;\n            }\n            break;\n          case 2:                             /* dynamic block */\n            //Tracev((stderr, \"inflate:     dynamic codes block%s\\n\",\n            //        state.last ? \" (last)\" : \"\"));\n            state.mode = TABLE;\n            break;\n          case 3:\n            strm.msg = 'invalid block type';\n            state.mode = BAD;\n        }\n        //--- DROPBITS(2) ---//\n        hold >>>= 2;\n        bits -= 2;\n        //---//\n        break;\n      case STORED:\n        //--- BYTEBITS() ---// /* go to byte boundary */\n        hold >>>= bits & 7;\n        bits -= bits & 7;\n        //---//\n        //=== NEEDBITS(32); */\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n          strm.msg = 'invalid stored block lengths';\n          state.mode = BAD;\n          break;\n        }\n        state.length = hold & 0xffff;\n        //Tracev((stderr, \"inflate:       stored length %u\\n\",\n        //        state.length));\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = COPY_;\n        if (flush === Z_TREES) { break inf_leave; }\n        /* falls through */\n      case COPY_:\n        state.mode = COPY;\n        /* falls through */\n      case COPY:\n        copy = state.length;\n        if (copy) {\n          if (copy > have) { copy = have; }\n          if (copy > left) { copy = left; }\n          if (copy === 0) { break inf_leave; }\n          //--- zmemcpy(put, next, copy); ---\n          output.set(input.subarray(next, next + copy), put);\n          //---//\n          have -= copy;\n          next += copy;\n          left -= copy;\n          put += copy;\n          state.length -= copy;\n          break;\n        }\n        //Tracev((stderr, \"inflate:       stored end\\n\"));\n        state.mode = TYPE;\n        break;\n      case TABLE:\n        //=== NEEDBITS(14); */\n        while (bits < 14) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n        //--- DROPBITS(5) ---//\n        hold >>>= 5;\n        bits -= 5;\n        //---//\n        state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n        //--- DROPBITS(5) ---//\n        hold >>>= 5;\n        bits -= 5;\n        //---//\n        state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n        //--- DROPBITS(4) ---//\n        hold >>>= 4;\n        bits -= 4;\n        //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n        if (state.nlen > 286 || state.ndist > 30) {\n          strm.msg = 'too many length or distance symbols';\n          state.mode = BAD;\n          break;\n        }\n//#endif\n        //Tracev((stderr, \"inflate:       table sizes ok\\n\"));\n        state.have = 0;\n        state.mode = LENLENS;\n        /* falls through */\n      case LENLENS:\n        while (state.have < state.ncode) {\n          //=== NEEDBITS(3);\n          while (bits < 3) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n          //--- DROPBITS(3) ---//\n          hold >>>= 3;\n          bits -= 3;\n          //---//\n        }\n        while (state.have < 19) {\n          state.lens[order[state.have++]] = 0;\n        }\n        // We have separate tables & no pointers. 2 commented lines below not needed.\n        //state.next = state.codes;\n        //state.lencode = state.next;\n        // Switch to use dynamic table\n        state.lencode = state.lendyn;\n        state.lenbits = 7;\n\n        opts = { bits: state.lenbits };\n        ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n        state.lenbits = opts.bits;\n\n        if (ret) {\n          strm.msg = 'invalid code lengths set';\n          state.mode = BAD;\n          break;\n        }\n        //Tracev((stderr, \"inflate:       code lengths ok\\n\"));\n        state.have = 0;\n        state.mode = CODELENS;\n        /* falls through */\n      case CODELENS:\n        while (state.have < state.nlen + state.ndist) {\n          for (;;) {\n            here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n            here_bits = here >>> 24;\n            here_op = (here >>> 16) & 0xff;\n            here_val = here & 0xffff;\n\n            if ((here_bits) <= bits) { break; }\n            //--- PULLBYTE() ---//\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n            //---//\n          }\n          if (here_val < 16) {\n            //--- DROPBITS(here.bits) ---//\n            hold >>>= here_bits;\n            bits -= here_bits;\n            //---//\n            state.lens[state.have++] = here_val;\n          }\n          else {\n            if (here_val === 16) {\n              //=== NEEDBITS(here.bits + 2);\n              n = here_bits + 2;\n              while (bits < n) {\n                if (have === 0) { break inf_leave; }\n                have--;\n                hold += input[next++] << bits;\n                bits += 8;\n              }\n              //===//\n              //--- DROPBITS(here.bits) ---//\n              hold >>>= here_bits;\n              bits -= here_bits;\n              //---//\n              if (state.have === 0) {\n                strm.msg = 'invalid bit length repeat';\n                state.mode = BAD;\n                break;\n              }\n              len = state.lens[state.have - 1];\n              copy = 3 + (hold & 0x03);//BITS(2);\n              //--- DROPBITS(2) ---//\n              hold >>>= 2;\n              bits -= 2;\n              //---//\n            }\n            else if (here_val === 17) {\n              //=== NEEDBITS(here.bits + 3);\n              n = here_bits + 3;\n              while (bits < n) {\n                if (have === 0) { break inf_leave; }\n                have--;\n                hold += input[next++] << bits;\n                bits += 8;\n              }\n              //===//\n              //--- DROPBITS(here.bits) ---//\n              hold >>>= here_bits;\n              bits -= here_bits;\n              //---//\n              len = 0;\n              copy = 3 + (hold & 0x07);//BITS(3);\n              //--- DROPBITS(3) ---//\n              hold >>>= 3;\n              bits -= 3;\n              //---//\n            }\n            else {\n              //=== NEEDBITS(here.bits + 7);\n              n = here_bits + 7;\n              while (bits < n) {\n                if (have === 0) { break inf_leave; }\n                have--;\n                hold += input[next++] << bits;\n                bits += 8;\n              }\n              //===//\n              //--- DROPBITS(here.bits) ---//\n              hold >>>= here_bits;\n              bits -= here_bits;\n              //---//\n              len = 0;\n              copy = 11 + (hold & 0x7f);//BITS(7);\n              //--- DROPBITS(7) ---//\n              hold >>>= 7;\n              bits -= 7;\n              //---//\n            }\n            if (state.have + copy > state.nlen + state.ndist) {\n              strm.msg = 'invalid bit length repeat';\n              state.mode = BAD;\n              break;\n            }\n            while (copy--) {\n              state.lens[state.have++] = len;\n            }\n          }\n        }\n\n        /* handle error breaks in while */\n        if (state.mode === BAD) { break; }\n\n        /* check for end-of-block code (better have one) */\n        if (state.lens[256] === 0) {\n          strm.msg = 'invalid code -- missing end-of-block';\n          state.mode = BAD;\n          break;\n        }\n\n        /* build code tables -- note: do not change the lenbits or distbits\n           values here (9 and 6) without reading the comments in inftrees.h\n           concerning the ENOUGH constants, which depend on those values */\n        state.lenbits = 9;\n\n        opts = { bits: state.lenbits };\n        ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n        // We have separate tables & no pointers. 2 commented lines below not needed.\n        // state.next_index = opts.table_index;\n        state.lenbits = opts.bits;\n        // state.lencode = state.next;\n\n        if (ret) {\n          strm.msg = 'invalid literal/lengths set';\n          state.mode = BAD;\n          break;\n        }\n\n        state.distbits = 6;\n        //state.distcode.copy(state.codes);\n        // Switch to use dynamic table\n        state.distcode = state.distdyn;\n        opts = { bits: state.distbits };\n        ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n        // We have separate tables & no pointers. 2 commented lines below not needed.\n        // state.next_index = opts.table_index;\n        state.distbits = opts.bits;\n        // state.distcode = state.next;\n\n        if (ret) {\n          strm.msg = 'invalid distances set';\n          state.mode = BAD;\n          break;\n        }\n        //Tracev((stderr, 'inflate:       codes ok\\n'));\n        state.mode = LEN_;\n        if (flush === Z_TREES) { break inf_leave; }\n        /* falls through */\n      case LEN_:\n        state.mode = LEN;\n        /* falls through */\n      case LEN:\n        if (have >= 6 && left >= 258) {\n          //--- RESTORE() ---\n          strm.next_out = put;\n          strm.avail_out = left;\n          strm.next_in = next;\n          strm.avail_in = have;\n          state.hold = hold;\n          state.bits = bits;\n          //---\n          inffast(strm, _out);\n          //--- LOAD() ---\n          put = strm.next_out;\n          output = strm.output;\n          left = strm.avail_out;\n          next = strm.next_in;\n          input = strm.input;\n          have = strm.avail_in;\n          hold = state.hold;\n          bits = state.bits;\n          //---\n\n          if (state.mode === TYPE) {\n            state.back = -1;\n          }\n          break;\n        }\n        state.back = 0;\n        for (;;) {\n          here = state.lencode[hold & ((1 << state.lenbits) - 1)];  /*BITS(state.lenbits)*/\n          here_bits = here >>> 24;\n          here_op = (here >>> 16) & 0xff;\n          here_val = here & 0xffff;\n\n          if (here_bits <= bits) { break; }\n          //--- PULLBYTE() ---//\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n          //---//\n        }\n        if (here_op && (here_op & 0xf0) === 0) {\n          last_bits = here_bits;\n          last_op = here_op;\n          last_val = here_val;\n          for (;;) {\n            here = state.lencode[last_val +\n                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n            here_bits = here >>> 24;\n            here_op = (here >>> 16) & 0xff;\n            here_val = here & 0xffff;\n\n            if ((last_bits + here_bits) <= bits) { break; }\n            //--- PULLBYTE() ---//\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n            //---//\n          }\n          //--- DROPBITS(last.bits) ---//\n          hold >>>= last_bits;\n          bits -= last_bits;\n          //---//\n          state.back += last_bits;\n        }\n        //--- DROPBITS(here.bits) ---//\n        hold >>>= here_bits;\n        bits -= here_bits;\n        //---//\n        state.back += here_bits;\n        state.length = here_val;\n        if (here_op === 0) {\n          //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n          //        \"inflate:         literal '%c'\\n\" :\n          //        \"inflate:         literal 0x%02x\\n\", here.val));\n          state.mode = LIT;\n          break;\n        }\n        if (here_op & 32) {\n          //Tracevv((stderr, \"inflate:         end of block\\n\"));\n          state.back = -1;\n          state.mode = TYPE;\n          break;\n        }\n        if (here_op & 64) {\n          strm.msg = 'invalid literal/length code';\n          state.mode = BAD;\n          break;\n        }\n        state.extra = here_op & 15;\n        state.mode = LENEXT;\n        /* falls through */\n      case LENEXT:\n        if (state.extra) {\n          //=== NEEDBITS(state.extra);\n          n = state.extra;\n          while (bits < n) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n          //--- DROPBITS(state.extra) ---//\n          hold >>>= state.extra;\n          bits -= state.extra;\n          //---//\n          state.back += state.extra;\n        }\n        //Tracevv((stderr, \"inflate:         length %u\\n\", state.length));\n        state.was = state.length;\n        state.mode = DIST;\n        /* falls through */\n      case DIST:\n        for (;;) {\n          here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n          here_bits = here >>> 24;\n          here_op = (here >>> 16) & 0xff;\n          here_val = here & 0xffff;\n\n          if ((here_bits) <= bits) { break; }\n          //--- PULLBYTE() ---//\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n          //---//\n        }\n        if ((here_op & 0xf0) === 0) {\n          last_bits = here_bits;\n          last_op = here_op;\n          last_val = here_val;\n          for (;;) {\n            here = state.distcode[last_val +\n                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n            here_bits = here >>> 24;\n            here_op = (here >>> 16) & 0xff;\n            here_val = here & 0xffff;\n\n            if ((last_bits + here_bits) <= bits) { break; }\n            //--- PULLBYTE() ---//\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n            //---//\n          }\n          //--- DROPBITS(last.bits) ---//\n          hold >>>= last_bits;\n          bits -= last_bits;\n          //---//\n          state.back += last_bits;\n        }\n        //--- DROPBITS(here.bits) ---//\n        hold >>>= here_bits;\n        bits -= here_bits;\n        //---//\n        state.back += here_bits;\n        if (here_op & 64) {\n          strm.msg = 'invalid distance code';\n          state.mode = BAD;\n          break;\n        }\n        state.offset = here_val;\n        state.extra = (here_op) & 15;\n        state.mode = DISTEXT;\n        /* falls through */\n      case DISTEXT:\n        if (state.extra) {\n          //=== NEEDBITS(state.extra);\n          n = state.extra;\n          while (bits < n) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n          //--- DROPBITS(state.extra) ---//\n          hold >>>= state.extra;\n          bits -= state.extra;\n          //---//\n          state.back += state.extra;\n        }\n//#ifdef INFLATE_STRICT\n        if (state.offset > state.dmax) {\n          strm.msg = 'invalid distance too far back';\n          state.mode = BAD;\n          break;\n        }\n//#endif\n        //Tracevv((stderr, \"inflate:         distance %u\\n\", state.offset));\n        state.mode = MATCH;\n        /* falls through */\n      case MATCH:\n        if (left === 0) { break inf_leave; }\n        copy = _out - left;\n        if (state.offset > copy) {         /* copy from window */\n          copy = state.offset - copy;\n          if (copy > state.whave) {\n            if (state.sane) {\n              strm.msg = 'invalid distance too far back';\n              state.mode = BAD;\n              break;\n            }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n//          Trace((stderr, \"inflate.c too far\\n\"));\n//          copy -= state.whave;\n//          if (copy > state.length) { copy = state.length; }\n//          if (copy > left) { copy = left; }\n//          left -= copy;\n//          state.length -= copy;\n//          do {\n//            output[put++] = 0;\n//          } while (--copy);\n//          if (state.length === 0) { state.mode = LEN; }\n//          break;\n//#endif\n          }\n          if (copy > state.wnext) {\n            copy -= state.wnext;\n            from = state.wsize - copy;\n          }\n          else {\n            from = state.wnext - copy;\n          }\n          if (copy > state.length) { copy = state.length; }\n          from_source = state.window;\n        }\n        else {                              /* copy from output */\n          from_source = output;\n          from = put - state.offset;\n          copy = state.length;\n        }\n        if (copy > left) { copy = left; }\n        left -= copy;\n        state.length -= copy;\n        do {\n          output[put++] = from_source[from++];\n        } while (--copy);\n        if (state.length === 0) { state.mode = LEN; }\n        break;\n      case LIT:\n        if (left === 0) { break inf_leave; }\n        output[put++] = state.length;\n        left--;\n        state.mode = LEN;\n        break;\n      case CHECK:\n        if (state.wrap) {\n          //=== NEEDBITS(32);\n          while (bits < 32) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            // Use '|' instead of '+' to make sure that result is signed\n            hold |= input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          _out -= left;\n          strm.total_out += _out;\n          state.total += _out;\n          if (_out) {\n            strm.adler = state.check =\n                /*UPDATE(state.check, put - _out, _out);*/\n                (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n          }\n          _out = left;\n          // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n          if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n            strm.msg = 'incorrect data check';\n            state.mode = BAD;\n            break;\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n          //Tracev((stderr, \"inflate:   check matches trailer\\n\"));\n        }\n        state.mode = LENGTH;\n        /* falls through */\n      case LENGTH:\n        if (state.wrap && state.flags) {\n          //=== NEEDBITS(32);\n          while (bits < 32) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          if (hold !== (state.total & 0xffffffff)) {\n            strm.msg = 'incorrect length check';\n            state.mode = BAD;\n            break;\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n          //Tracev((stderr, \"inflate:   length matches trailer\\n\"));\n        }\n        state.mode = DONE;\n        /* falls through */\n      case DONE:\n        ret = Z_STREAM_END$1;\n        break inf_leave;\n      case BAD:\n        ret = Z_DATA_ERROR$1;\n        break inf_leave;\n      case MEM:\n        return Z_MEM_ERROR$1;\n      case SYNC:\n        /* falls through */\n      default:\n        return Z_STREAM_ERROR$1;\n    }\n  }\n\n  // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n  /*\n     Return from inflate(), updating the total counts and the check value.\n     If there was no progress during the inflate() call, return a buffer\n     error.  Call updatewindow() to create and/or update the window state.\n     Note: a memory error from inflate() is non-recoverable.\n   */\n\n  //--- RESTORE() ---\n  strm.next_out = put;\n  strm.avail_out = left;\n  strm.next_in = next;\n  strm.avail_in = have;\n  state.hold = hold;\n  state.bits = bits;\n  //---\n\n  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n                      (state.mode < CHECK || flush !== Z_FINISH$1))) {\n    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n  }\n  _in -= strm.avail_in;\n  _out -= strm.avail_out;\n  strm.total_in += _in;\n  strm.total_out += _out;\n  state.total += _out;\n  if (state.wrap && _out) {\n    strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n      (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n  }\n  strm.data_type = state.bits + (state.last ? 64 : 0) +\n                    (state.mode === TYPE ? 128 : 0) +\n                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n  if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n    ret = Z_BUF_ERROR;\n  }\n  return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n  if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n    return Z_STREAM_ERROR$1;\n  }\n\n  let state = strm.state;\n  if (state.window) {\n    state.window = null;\n  }\n  strm.state = null;\n  return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n  /* check state */\n  if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n  const state = strm.state;\n  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n  /* save header structure */\n  state.head = head;\n  head.done = false;\n  return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n  const dictLength = dictionary.length;\n\n  let state;\n  let dictid;\n  let ret;\n\n  /* check state */\n  if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n  state = strm.state;\n\n  if (state.wrap !== 0 && state.mode !== DICT) {\n    return Z_STREAM_ERROR$1;\n  }\n\n  /* check for correct dictionary identifier */\n  if (state.mode === DICT) {\n    dictid = 1; /* adler32(0, null, 0)*/\n    /* dictid = adler32(dictid, dictionary, dictLength); */\n    dictid = adler32_1(dictid, dictionary, dictLength, 0);\n    if (dictid !== state.check) {\n      return Z_DATA_ERROR$1;\n    }\n  }\n  /* copy dictionary to window using updatewindow(), which will amend the\n   existing dictionary if appropriate */\n  ret = updatewindow(strm, dictionary, dictLength, dictLength);\n  if (ret) {\n    state.mode = MEM;\n    return Z_MEM_ERROR$1;\n  }\n  state.havedict = 1;\n  // Tracev((stderr, \"inflate:   dictionary set\\n\"));\n  return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n  /* true if compressed data believed to be text */\n  this.text       = 0;\n  /* modification time */\n  this.time       = 0;\n  /* extra flags (not used when writing a gzip file) */\n  this.xflags     = 0;\n  /* operating system */\n  this.os         = 0;\n  /* pointer to extra field or Z_NULL if none */\n  this.extra      = null;\n  /* extra field length (valid if extra != Z_NULL) */\n  this.extra_len  = 0; // Actually, we don't need it in JS,\n                       // but leave for few code modifications\n\n  //\n  // Setup limits is not necessary because in js we should not preallocate memory\n  // for inflate use constant limit in 65536 bytes\n  //\n\n  /* space at extra (only when reading header) */\n  // this.extra_max  = 0;\n  /* pointer to zero-terminated file name or Z_NULL */\n  this.name       = '';\n  /* space at name (only when reading header) */\n  // this.name_max   = 0;\n  /* pointer to zero-terminated comment or Z_NULL */\n  this.comment    = '';\n  /* space at comment (only when reading header) */\n  // this.comm_max   = 0;\n  /* true if there was or will be a header crc */\n  this.hcrc       = 0;\n  /* true when done reading gzip header (not used when writing a gzip file) */\n  this.done       = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n  Z_NO_FLUSH, Z_FINISH,\n  Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n *   from utf8 to utf16 (javascript) string. When string output requested,\n *   chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true);  // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n  this.options = common.assign({\n    chunkSize: 1024 * 64,\n    windowBits: 15,\n    to: ''\n  }, options || {});\n\n  const opt = this.options;\n\n  // Force window size for `raw` data, if not set directly,\n  // because we have no header for autodetect.\n  if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n    opt.windowBits = -opt.windowBits;\n    if (opt.windowBits === 0) { opt.windowBits = -15; }\n  }\n\n  // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n  if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n      !(options && options.windowBits)) {\n    opt.windowBits += 32;\n  }\n\n  // Gzip header has no info about windows size, we can do autodetect only\n  // for deflate. So, if window size not set, force it to max when gzip possible\n  if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n    // bit 3 (16) -> gzipped data\n    // bit 4 (32) -> autodetect gzip/deflate\n    if ((opt.windowBits & 15) === 0) {\n      opt.windowBits |= 15;\n    }\n  }\n\n  this.err    = 0;      // error code, if happens (0 = Z_OK)\n  this.msg    = '';     // error message\n  this.ended  = false;  // used to avoid multiple onEnd() calls\n  this.chunks = [];     // chunks of compressed data\n\n  this.strm   = new zstream();\n  this.strm.avail_out = 0;\n\n  let status  = inflate_1$2.inflateInit2(\n    this.strm,\n    opt.windowBits\n  );\n\n  if (status !== Z_OK) {\n    throw new Error(messages[status]);\n  }\n\n  this.header = new gzheader();\n\n  inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n  // Setup dictionary\n  if (opt.dictionary) {\n    // Convert data if needed\n    if (typeof opt.dictionary === 'string') {\n      opt.dictionary = strings.string2buf(opt.dictionary);\n    } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n      opt.dictionary = new Uint8Array(opt.dictionary);\n    }\n    if (opt.raw) { //In raw mode we need to set the dictionary early\n      status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n      if (status !== Z_OK) {\n        throw new Error(messages[status]);\n      }\n    }\n  }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n *   flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n *   `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true);  // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n  const strm = this.strm;\n  const chunkSize = this.options.chunkSize;\n  const dictionary = this.options.dictionary;\n  let status, _flush_mode, last_avail_out;\n\n  if (this.ended) return false;\n\n  if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n  else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n  // Convert data if needed\n  if (toString.call(data) === '[object ArrayBuffer]') {\n    strm.input = new Uint8Array(data);\n  } else {\n    strm.input = data;\n  }\n\n  strm.next_in = 0;\n  strm.avail_in = strm.input.length;\n\n  for (;;) {\n    if (strm.avail_out === 0) {\n      strm.output = new Uint8Array(chunkSize);\n      strm.next_out = 0;\n      strm.avail_out = chunkSize;\n    }\n\n    status = inflate_1$2.inflate(strm, _flush_mode);\n\n    if (status === Z_NEED_DICT && dictionary) {\n      status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n      if (status === Z_OK) {\n        status = inflate_1$2.inflate(strm, _flush_mode);\n      } else if (status === Z_DATA_ERROR) {\n        // Replace code with more verbose\n        status = Z_NEED_DICT;\n      }\n    }\n\n    // Skip snyc markers if more data follows and not raw mode\n    while (strm.avail_in > 0 &&\n           status === Z_STREAM_END &&\n           strm.state.wrap > 0 &&\n           data[strm.next_in] !== 0)\n    {\n      inflate_1$2.inflateReset(strm);\n      status = inflate_1$2.inflate(strm, _flush_mode);\n    }\n\n    switch (status) {\n      case Z_STREAM_ERROR:\n      case Z_DATA_ERROR:\n      case Z_NEED_DICT:\n      case Z_MEM_ERROR:\n        this.onEnd(status);\n        this.ended = true;\n        return false;\n    }\n\n    // Remember real `avail_out` value, because we may patch out buffer content\n    // to align utf8 strings boundaries.\n    last_avail_out = strm.avail_out;\n\n    if (strm.next_out) {\n      if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n        if (this.options.to === 'string') {\n\n          let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n          let tail = strm.next_out - next_out_utf8;\n          let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n          // move tail & realign counters\n          strm.next_out = tail;\n          strm.avail_out = chunkSize - tail;\n          if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n          this.onData(utf8str);\n\n        } else {\n          this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n        }\n      }\n    }\n\n    // Must repeat iteration if out buffer is full\n    if (status === Z_OK && last_avail_out === 0) continue;\n\n    // Finalize if end of stream reached.\n    if (status === Z_STREAM_END) {\n      status = inflate_1$2.inflateEnd(this.strm);\n      this.onEnd(status);\n      this.ended = true;\n      return true;\n    }\n\n    if (strm.avail_in === 0) break;\n  }\n\n  return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n *   each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n  this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n *   other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n  // On success - join\n  if (status === Z_OK) {\n    if (this.options.to === 'string') {\n      this.result = this.chunks.join('');\n    } else {\n      this.result = common.flattenChunks(this.chunks);\n    }\n  }\n  this.chunks = [];\n  this.err = status;\n  this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n *   negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n *   from utf8 to utf16 (javascript) string. When string output requested,\n *   chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n *   output = pako.inflate(input);\n * } catch (err) {\n *   console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n  const inflator = new Inflate$1(options);\n\n  inflator.push(input);\n\n  // That will never happens, if you don't cheat with options :)\n  if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n  return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n  options = options || {};\n  options.raw = true;\n  return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\n\n\n\n//# sourceURL=webpack://vtkjs_viewer/./node_modules/pako/dist/pako.esm.mjs?");

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			id: moduleId,
/******/ 			loaded: false,
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/amd define */
/******/ 	(() => {
/******/ 		__webpack_require__.amdD = function () {
/******/ 			throw new Error('define cannot be used indirect');
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/amd options */
/******/ 	(() => {
/******/ 		__webpack_require__.amdO = {};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/node module decorator */
/******/ 	(() => {
/******/ 		__webpack_require__.nmd = (module) => {
/******/ 			module.paths = [];
/******/ 			if (!module.children) module.children = [];
/******/ 			return module;
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module can't be inlined because the eval devtool is used.
/******/ 	var __webpack_exports__ = __webpack_require__("./src/index.js");
/******/ 	
/******/ })()
;